Peter Steinberger
00d8d7ead0
refactor: extract normalization core package
...
Extract shared normalization/coercion helpers into private @openclaw/normalization-core workspace package while preserving existing plugin SDK helper subpaths.\n\nAlso keeps direct normalization-core imports internal, wires UI/build/loader resolution, and replaces the slow PR network CodeQL lane with a fast added-line boundary scan while retaining full CodeQL for scheduled/manual runs.\n\nVerification: local moved tests, plugin SDK boundary tests, extension loader tests, agents-support shard, UI build/test, build artifacts, lint, workflow guards, autoreview, and GitHub CI passed on PR head 963d893715 .
2026-05-31 01:33:00 +01:00
Peter Steinberger
4c33aaa86c
refactor: unify OpenAI provider identity ( #88451 )
...
* refactor: unify OpenAI provider identity
* refactor: move legacy oauth sidecar doctor helpers
* test: align OpenAI fixtures after rebase
* test: clean OpenAI provider unification
* fix: finish OpenAI provider cleanup
* fix: finish OpenAI cleanup follow-through
* fix: finish OpenAI CI cleanup
2026-05-31 00:29:44 +01:00
Peter Steinberger
b374505e7a
refactor: source model catalog types from core
...
Source model catalog SDK types from @openclaw/model-catalog-core while preserving released compat fields and sanitized routing normalization.
2026-05-30 22:00:51 +01:00
Peter Steinberger
5891cfec3e
refactor: move model catalog normalization into core package
...
Move model catalog normalization and package-owned catalog schema/types into model-catalog-core while keeping public plugin SDK model catalog declarations on the existing SDK surface. Verified focused tests, package-boundary compile, full build, changed gate, declaration leak grep, CI, and autoreview.
2026-05-30 20:51:11 +01:00
Peter Steinberger
4e8b74568f
refactor: move model catalog refs into core package
...
Move model catalog ref helpers into @openclaw/model-catalog-core/model-catalog-refs and update internal callers/package-boundary aliases. Also fix the timestamp predicate typing that blocked prod type checks on current main.
2026-05-30 20:04:16 +01:00
Vincent Koc
27b15a19e8
refactor(voice): catalog voice models through providers ( #87794 )
...
* refactor(providers): catalog voice models
* feat(tts): route speech through voice models
* refactor(tts): rename speaker selection fields
* refactor(tts): mark default speech models
* test(tts): type migrated speaker config assertions
* refactor(providers): avoid catalog merge map spread
* fix(tts): honor voice model fallbacks
* refactor(tts): move speech core into package
* chore(tts): register speech core knip workspace
* fix(tts): show migrated speaker voice in status
* fix(tts): satisfy speech core lint
* fix(tts): preserve explicit model aliases
* test(tts): narrow provider config assertion
* test(doctor): allow slow commitments repair check
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com >
2026-05-29 04:46:45 +01:00
Peter Steinberger
77d9ac30bb
refactor: reuse shared coercion helpers ( #86419 )
...
* refactor: share talk event metric extraction
* refactor: reuse shared coercion helpers
* refactor: reuse shared primitive guards
* refactor: reuse shared record guard
* refactor: reuse shared primitive helpers
* refactor: reuse shared string guards
* refactor: reuse shared non-empty string guard
* refactor: share plugin primitive coercion helpers
* refactor: reuse plugin coercion helpers
* refactor: reuse plugin coercion helpers in more plugins
* refactor: reuse channel coercion helpers
* refactor: reuse monitor coercion helpers
* refactor: reuse provider coercion helpers
* refactor: reuse core coercion helpers
* refactor: reuse runtime coercion helpers
* refactor: reuse helper coercion in codex paths
* refactor: reuse helper coercion in runtime paths
* refactor: reuse codex app-server coercion helpers
* refactor: reuse codex record helpers
* refactor: reuse migration and qa record helpers
* refactor: reuse feishu and core helper guards
* refactor: reuse browser and policy coercion helpers
* refactor: reuse memory wiki record helper
* refactor: share boolean coercion helpers
* refactor: reuse finite number coercion
* refactor: reuse trimmed string list helpers
* refactor: reuse string list normalization
* refactor: reuse remaining string list helpers
* refactor: reuse string entry normalizer
* refactor: share sorted string helpers
* refactor: share string list normalization
* test: preserve command registry browser imports
* refactor: reuse trimmed list helpers
* refactor: reuse string dedupe helpers
* refactor: reuse local dedupe helpers
* refactor: reuse more string dedupe helpers
* refactor: reuse command string dedupe helpers
* refactor: dedupe memory path lists with helper
* refactor: expose string dedupe helpers to plugins
* refactor: reuse core string dedupe helpers
* refactor: reuse shared unique value helpers
* refactor: reuse unique helpers in agent utilities
* refactor: reuse unique helpers in config plumbing
* refactor: reuse unique helpers in extensions
* refactor: reuse unique helpers in core utilities
* refactor: reuse unique helpers in qa plugins
* refactor: reuse unique helpers in memory plugins
* refactor: reuse unique helpers in channel plugins
* refactor: reuse unique helpers in core tails
* refactor: reuse unique helper in comfy workflow
* refactor: reuse unique helpers in test utilities
* refactor: expose unique value helper to plugins
* refactor: reuse unique helpers for numeric lists
* refactor: replace index dedupe filters
* refactor: reuse string entry normalization
* refactor: reuse string normalization in plugin helpers
* refactor: reuse string normalization in extension helpers
* refactor: reuse string normalization in channel parsers
* refactor: reuse string normalization in memory search
* refactor: reuse string normalization in provider parsers
* refactor: reuse string normalization in qa helpers
* refactor: reuse string normalization in infra parsers
* refactor: reuse string normalization in messaging parsers
* refactor: reuse string normalization in core parsers
* refactor: reuse string normalization in extension parsers
* refactor: reuse string normalization in remaining parsers
* refactor: reuse string normalization in final parser spots
* refactor: reuse string normalization in qa media helpers
* refactor: reuse normalization in provider and media lists
* refactor: reuse normalization for remaining set filters
* refactor: reuse normalization in policy allowlists
* refactor: reuse normalization in session and owner lists
* refactor: centralize primitive string lists
* refactor: reuse lowercase entry helpers
* refactor: reuse sorted string helpers
* refactor: reuse unique trimmed helpers
* refactor: reuse string normalization helpers
* refactor: reuse catalog string helpers
* refactor: reuse remaining string helpers
* refactor: simplify remaining list normalization
* refactor: reuse codex auth order normalization
* chore: refresh plugin sdk api baseline
* fix: make shared string sorting deterministic
* chore: refresh plugin sdk api baseline
* fix: align host env security ordering
2026-05-25 21:20:41 +01:00
Peter Steinberger
4c210e22fa
Adapt image compression quality by model ( #85742 )
...
* feat: adapt image compression quality
* refactor: move image limits into model metadata
* test: cover adaptive image downscaling
* test: cover image tool live providers
* fix: apply media metadata to all image paths
* fix: align providerless image compression
* fix: add chutes runtime image limits
* fix: optimize image data urls with model limits
* fix: type media metadata merge
* fix: optimize data url byte limits after decode
* fix: preserve data url optimizer fallback
* fix: keep low-side image compression fallbacks
* fix: enforce data url image compression policy
* fix: preserve gif data url media policy
* fix: satisfy adaptive image type checks
* test: keep cron provider-runtime mock current
2026-05-23 21:45:55 +01:00
Peter Steinberger
3e8fd4944f
fix: avoid gateway startup event-loop stalls
...
Defer Gateway channel startup until after readiness, remove startup model prewarm, and move model catalog data onto manifest/static paths so startup no longer loads broad provider runtimes.
Verification:
- focused gateway/catalog/auth/QA Vitest runs
- autoreview clean
- Blacksmith Testbox-through-Crabbox tbx_01ksahn65rsrsqz3q1qyxwf929: pnpm check:changed, exit 0
- PR CI green on ee2b631c72
2026-05-23 15:08:58 +01:00
Gio Della-Libera
6e9d47bd12
fix(doctor): migrate invalid thinking formats ( #84626 )
2026-05-20 13:58:01 -07:00
Peter Steinberger
3fad770510
fix: update PI runtime packages
2026-05-17 06:12:09 +01:00
Peter Steinberger
f453904165
feat: add fal and OpenRouter music generation ( #82789 )
...
* feat: add fal and OpenRouter music generation
* fix: repair music generation CI gates
* chore: refresh proof gate
2026-05-17 02:05:22 +01:00
Shakker
8b6eab3e22
test: tighten manifest catalog planner assertions
2026-05-11 04:30:22 +01:00
Peter Steinberger
325d9ca7cb
fix: add strict OpenAI-compatible message key mode
2026-05-10 10:02:05 +01:00
Jeff
c919702b8f
fix(moonshot): resolve moonshotai direct model refs
...
Summary:
- accept `moonshotai` and `moonshot-ai` as direct Moonshot provider aliases at runtime
- expose both aliases in the Moonshot manifest catalog
- add resolver/catalog regression coverage for #73876
Verification:
- `pnpm test src/agents/model-selection.test.ts src/agents/pi-embedded-runner/model.test.ts src/model-catalog/manifest-planner.test.ts`
- `pnpm test src/plugins/contracts/plugin-registration.moonshot.contract.test.ts`
- `git diff --check`
- `OPENCLAW_TESTBOX=0 pnpm check:changed`
2026-05-10 02:12:13 -04:00
Peter Steinberger
dcc0c90ba4
test: tighten manifest planner assertions
2026-05-09 22:16:27 +01:00
Liu Wenyu
c91fffdd67
feat(config): support Qwen thinkingFormat values ( #79777 )
...
## Summary
- allow configured OpenAI-compatible Qwen models to opt into `qwen` and `qwen-chat-template` thinking payloads
- preserve those compat values through schema validation and catalog normalization
- map OpenClaw `/think` levels to `enable_thinking` or `chat_template_kwargs.enable_thinking` without also sending `reasoning_effort`
- clarify docs that request-level chat-template kwargs require compatible backends such as vLLM
## Verification
- git diff --check
- pnpm exec oxfmt --check --threads=1 CHANGELOG.md docs/gateway/config-agents.md docs/gateway/config-tools.md src/config/zod-schema.core.ts src/config/types.models.ts src/model-catalog/normalize.ts src/agents/openai-transport-stream.ts src/config/config-misc.test.ts src/model-catalog/normalize.test.ts src/agents/openai-transport-stream.test.ts
- pnpm config:schema:check
- pnpm test src/config/config-misc.test.ts src/model-catalog/normalize.test.ts src/agents/openai-transport-stream.test.ts
- GitHub CI on 2404edca39
Thanks @indulgeback.
2026-05-09 08:02:39 -04:00
Peter Steinberger
cb46ace2e8
test: tighten model catalog authority assertions
2026-05-09 13:00:47 +01:00
Peter Steinberger
4f437f0040
test: tighten provider index catalog assertions
2026-05-09 11:52:42 +01:00
Peter Steinberger
311e4608d1
feat: unify model catalog registration
2026-05-09 02:34:56 -04:00
Shakker
3ee3fd72bb
test: tighten registry empty array assertions
2026-05-09 05:40:02 +01:00
Vincent Koc
dda2db97d4
fix(plugins): accept clawhub provider index installs
2026-05-02 07:27:20 -07:00
Peter Steinberger
8e78c412e9
refactor: trim model planner exports
2026-05-02 00:21:49 +01:00
Peter Steinberger
e40c381fb8
refactor: trim model catalog exports
2026-05-02 00:19:13 +01:00
Peter Steinberger
ad3e4dbcce
refactor: trim unused exports
2026-05-01 07:55:40 +01:00
Shakker
4fbd683819
test: clarify manifest catalog alias planning
2026-04-29 09:40:45 +01:00
Peter Steinberger
947aae5a99
refactor(models): move suppressions to manifests
2026-04-28 02:38:31 +01:00
Shakker
13feb1b284
fix: narrow manifest alias overrides
2026-04-27 17:13:11 +01:00
Shakker
1056a9ea81
refactor: reuse manifest catalog provider refs
2026-04-27 17:13:11 +01:00
Shakker
b2685e72c1
refactor: plan manifest catalog aliases and suppressions
2026-04-27 17:13:11 +01:00
Peter Steinberger
252c63429e
fix(providers): map native reasoning efforts
2026-04-27 13:27:58 +01:00
Peter Steinberger
836d4b4105
refactor(vllm): own qwen thinking payloads
2026-04-27 11:50:25 +01:00
Vincent Koc
50c427efc8
fix(providers): export provider index install types
2026-04-25 22:52:21 -07:00
Vincent Koc
62a5963d24
feat(providers): add provider index install metadata
2026-04-25 22:52:21 -07:00
Vincent Koc
639cd50261
fix(models): preserve provider index catalog fallback ( #71985 )
...
* fix(models): preserve provider index catalog fallback
* fix(models): mark provider index rows as previews
2026-04-25 22:31:52 -07:00
Shakker
89f368e2f9
test: exercise unsafe provider index keys
2026-04-26 05:14:51 +01:00
Shakker
e827778129
fix: keep provider index previews authoritative
2026-04-26 05:14:51 +01:00
Shakker
911172e1e6
fix: avoid provider index preview row spread
2026-04-26 05:14:51 +01:00
Shakker
96ac51d23d
feat: add model catalog provider index contract
2026-04-26 05:14:51 +01:00
Shakker
82a529aaaf
feat: carry manifest catalog discovery mode
2026-04-26 04:41:51 +01:00
Shakker
b6c24e5322
fix: report model catalog manifest conflicts
2026-04-25 04:05:30 +01:00
Shakker
9e190f1f6a
test: cover manifest model catalog planner
2026-04-25 04:05:30 +01:00
Shakker
dabdc779be
feat: add manifest model catalog planner
2026-04-25 04:05:30 +01:00
Shakker
8a14328c69
fix: normalize manifest catalog provider ids
2026-04-25 03:58:44 +01:00
Shakker
31f4991205
test: cover model catalog normalization
2026-04-25 03:34:36 +01:00
Shakker
b9da940813
feat: add model catalog normalizer
2026-04-25 03:34:36 +01:00
Shakker
efcd96a8eb
feat: add model catalog shared types
2026-04-25 03:34:36 +01:00