31 Commits

Author SHA1 Message Date
opencode-agent[bot] 1f708f969e chore(sync): update CrossModel model catalog (#5225)
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
2026-08-21 19:25:55 +00:00
opencode-agent[bot] 8a99905508 chore(sync): update CrossModel model catalog (#5032)
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
2026-08-19 12:44:02 -05:00
opencode-agent[bot] 12bbfd88ca chore(sync): update CrossModel model catalog (#4865)
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
2026-08-17 03:33:04 +00:00
opencode-agent[bot] eb86f5d4e9 chore(sync): update CrossModel model catalog (#4811)
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
2026-08-16 15:24:24 -05:00
opencode-agent[bot] 41a2b1a780 chore(sync): update CrossModel model catalog (#4673)
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
2026-08-13 23:30:10 -05:00
opencode-agent[bot] f31bbbb4b0 chore(sync): update CrossModel model catalog (#4600)
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
2026-08-13 09:59:45 -05:00
opencode-agent[bot] 77d3ea2b0f chore(sync): update CrossModel model catalog (#4589)
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
2026-08-12 17:33:23 -05:00
opencode-agent[bot] 2133bd1441 chore(sync): update CrossModel model catalog (#4568)
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
2026-08-12 16:34:22 +00:00
opencode-agent[bot] 4c7dd3dca0 chore(sync): update CrossModel model catalog (#4443)
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
2026-08-10 11:33:32 +00:00
opencode-agent[bot] 23b7b63f06 chore(sync): update CrossModel model catalog (#4157)
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
2026-08-06 23:32:50 +00:00
JC f658a67277 fix(sync): map CrossModel structured output (#4038)
Co-authored-by: hujuncheng <hujuncheng@baidu.com>
2026-08-04 08:42:32 -05:00
opencode-agent[bot] 980878f3f3 chore(sync): update CrossModel model catalog (#4029)
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
2026-08-03 23:42:19 -05:00
opencode-agent[bot] 63b2780c58 chore(sync): update CrossModel model catalog (#3960)
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
2026-08-03 10:59:46 -05:00
opencode-agent[bot] 12783f6d96 chore(sync): update CrossModel model catalog (#3938)
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
2026-08-01 17:27:59 -05:00
opencode-agent[bot] de72809352 chore(sync): update CrossModel model catalog (#3896)
Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com>
2026-07-31 10:27:49 -05:00
github-actions[bot] 6f4163d814 chore(sync): update CrossModel model catalog (#3819)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-29 11:09:42 -05:00
github-actions[bot] 8a61715de2 chore(sync): update CrossModel model catalog (#3743)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-25 13:14:58 -05:00
github-actions[bot] 4dfe1920d5 chore(sync): update CrossModel model catalog (#3716)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-24 13:22:16 -05:00
Aiden Cline 5c92290660 fix(crossmodel): add hy3 reasoning_options effort none|low|high
Match hy3-preview and upstream Hy3 reasoning_effort (no_think→none, low, high).
2026-07-23 14:23:25 -05:00
github-actions[bot] 97851e4021 chore(sync): update CrossModel model catalog 2026-07-23 18:42:10 +00:00
github-actions[bot] d395d4fa5c chore(sync): update CrossModel model catalog 2026-07-19 03:24:35 +00:00
github-actions[bot] 80e891a596 chore(sync): update CrossModel model catalog 2026-07-14 14:54:43 +00:00
github-actions[bot] cbb3cc97eb chore(sync): update CrossModel model catalog 2026-07-13 13:57:39 +00:00
github-actions[bot] a3c968e9a4 chore(sync): update CrossModel model catalog 2026-07-13 05:26:57 +00:00
hujuncheng 1bfebd86c1 fix(crossmodel): add audio input modality to Gemini 2.5 Flash and 3 Flash Preview
Both Flash models accept audio input (matching their siblings
2.5-flash-lite and 3.5-flash and the google/* base models); the
catalog previously listed only text/image/video. Synced from the
live CrossModel /api/models endpoint.
2026-07-10 01:07:32 +08:00
hujuncheng 22bf5e359c fix(crossmodel): align Claude reasoning_options with Anthropic's native surface
Addresses the review blocker on #2790. CrossModel's upstream catalog now
reports each Claude model's reasoning surface as Anthropic exposes it, and
the regenerated TOMLs match providers/anthropic/models/ byte-for-byte:

- opus-4-7, opus-4-8, fable-5: effort [low,medium,high,xhigh,max]
- sonnet-5: toggle + effort [low,medium,high,xhigh,max]
- sonnet-4-6: effort [low,medium,high,max] + budget_tokens (min 1024)
- haiku-4-5: budget_tokens (min 1024)

The earlier gateway-specific values (effort truncated to low/medium/high,
budget clamped 1024..32000) are dropped in favor of parity with the native
Anthropic interface.

Also drops the misleading `context as number` cast: buildCrossModel now
skips a model with no resolvable context window instead of fabricating one,
which narrows the value to a number without the assertion.

bun run validate exits 0; bun models:sync crossmodel is idempotent.
2026-07-10 00:38:25 +08:00
hujuncheng e6a05d372f fix(crossmodel): sync API context tiers; drop non-discount cache pricing
Addresses the automated review on #2790:

- buildCrossModel now maps every non-base pricing tier from the live API
  into cost.tiers (threshold -> context size), matching the Venice sync
  convention, so tier pricing stays fresh on each sync instead of being
  frozen at hand-authored values. Falls back to existing tiers only when
  the API reports none.
- Cache fields are emitted only when cache_read is a genuine discount
  (< input). gpt-5.5-pro reports cache_read == input (no caching benefit,
  as OpenAI "pro" tiers offer no prompt caching), so both cache fields are
  now dropped, matching how every other provider ships this model. It is
  the only model in the catalog where cache_read >= input.
- reasoning effort values are filtered through an isReasoningEffort guard
  instead of an `as never` cast, so an unexpected upstream value is dropped
  rather than producing a TOML that fails validate.

bun run validate exits 0; bun models:sync crossmodel is idempotent
(0 created, 0 updated, 0 removed).
2026-07-09 21:53:18 +08:00
hujuncheng 4c5f3dac70 fix(crossmodel): correct sonnet-5 reasoning, qwen3.7-plus tier price, minimax-m2.7 output
Addresses automated review feedback:
- claude-sonnet-5: reasoning_options now toggle+effort+budget_tokens (matches
  siblings; the earlier [] came from a stale /api/models payload, now fixed)
- qwen3.7-plus: 256K context tier repriced (cache_write 0.18 -> 1.2, plus
  input/cache_read), now scaling correctly above the base tier
- minimax-m2.7: drop max-output override (upstream now reports 131072 = base)
- provider.toml: document CrossModel's reasoning API surface

Regenerated via bun models:sync crossmodel; bun run validate passes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-09 20:59:06 +08:00
hujuncheng 0844943895 feat(crossmodel): add claude-fable-5 and claude-sonnet-5
New reasoning models now served by the CrossModel gateway; generated via
the crossmodel sync module (bun models:sync crossmodel).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-09 16:58:54 +08:00
hujuncheng cf92424cdb feat(crossmodel): add sync module + per-model reasoning_options
Adds a sync provider module (packages/core/src/sync/providers/crossmodel.ts) that
pulls the catalog from CrossModel's public /api/models endpoint and regenerates the
provider TOMLs: served cost (USD micro/1M -> USD, context tiers preserved), limits,
modalities, and explicit per-model reasoning_options.

reasoning_options are provider-specific, derived from CrossModel's own gateway
surface rather than inherited from base_model:
- OpenAI-family: reasoning_effort (effort values per model; gpt-5.5-pro = medium/high/xhigh)
- Anthropic: thinking toggle + effort + budget_tokens, budget clamped to 1024..32000
  by the gateway (not the upstream's native 63999)
- Gemini: reasoning_effort via the OpenAI-compatible endpoint; flash variants add toggle
- domestic upstreams (qwen/glm/kimi/minimax/mimo/hunyuan/deepseek): native control via
  byte-transparent passthrough (toggle / budget / effort as each upstream accepts)
- non-reasoning models (gpt-4o-mini) carry no reasoning_options
- always-thinking / can't-disable models (kimi-k2.7-code, MiniMax M2.x) -> reasoning_options = []

Registered under the aggregators group so CI's hourly sync keeps the catalog fresh.
Validated with `bun run validate` (exit 0).
2026-07-05 20:51:15 +08:00
hujuncheng c018793aa0 feat(crossmodel): add CrossModel provider 2026-07-05 20:50:31 +08:00