From 1fe42954daaee87aac04475062f9721fd57351f7 Mon Sep 17 00:00:00 2001 From: Jason Carter Date: Fri, 8 May 2026 15:34:29 +0800 Subject: [PATCH 1/2] =?UTF-8?q?[TASK-tsk=5F78c40416db11be22b9ae10d5]=20fix?= =?UTF-8?q?:=20sync=20BUILTIN=5FMODEL=5FCATALOG=20with=20models.ts=20?= =?UTF-8?q?=E2=80=94=20add=20missing=20models=20and=20fix=20ID=20mismatche?= =?UTF-8?q?s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/core/src/llm/router.ts | 20 ++++++++++++++++++++ packages/shared/src/models.ts | 14 ++++++++------ 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/packages/core/src/llm/router.ts b/packages/core/src/llm/router.ts index 545c92ed..4bbd036e 100644 --- a/packages/core/src/llm/router.ts +++ b/packages/core/src/llm/router.ts @@ -1056,24 +1056,38 @@ const BUILTIN_MODEL_CATALOG: ModelDefinition[] = [ { id: 'claude-opus-4-6', name: 'Claude Opus 4.6', provider: 'anthropic', contextWindow: 1000000, maxOutputTokens: 128000, cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, reasoning: true, inputTypes: ['text', 'image'] }, { id: 'claude-sonnet-4-20250514', name: 'Claude Sonnet 4', provider: 'anthropic', contextWindow: 200000, maxOutputTokens: 64000, cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, reasoning: false, inputTypes: ['text', 'image'] }, { id: 'claude-3-5-haiku-20241022', name: 'Claude 3.5 Haiku', provider: 'anthropic', contextWindow: 200000, maxOutputTokens: 64000, cost: { input: 0.8, output: 4, cacheRead: 0.08, cacheWrite: 1 }, reasoning: false, inputTypes: ['text', 'image'] }, + { id: 'claude-sonnet-4-5', name: 'Claude Sonnet 4.5', provider: 'anthropic', contextWindow: 200000, maxOutputTokens: 64000, cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, reasoning: false, inputTypes: ['text', 'image'] }, // OpenAI — https://developers.openai.com/api/docs/models { id: 'gpt-5.4', name: 'GPT-5.4', provider: 'openai', contextWindow: 1100000, maxOutputTokens: 128000, cost: { input: 2.5, output: 15, cacheRead: 0.25 }, reasoning: true, inputTypes: ['text', 'image'] }, { id: 'gpt-4o', name: 'GPT-4o', provider: 'openai', contextWindow: 128000, maxOutputTokens: 16384, cost: { input: 2.5, output: 10 }, reasoning: false, inputTypes: ['text', 'image'] }, { id: 'o4-mini', name: 'o4-mini', provider: 'openai', contextWindow: 200000, maxOutputTokens: 100000, cost: { input: 1.1, output: 4.4 }, reasoning: true, inputTypes: ['text', 'image'] }, + { id: 'gpt-5.4-mini', name: 'GPT-5.4 Mini', provider: 'openai', contextWindow: 1100000, maxOutputTokens: 128000, cost: { input: 0.75, output: 4.5, cacheRead: 0.075 }, reasoning: true, inputTypes: ['text', 'image'] }, + { id: 'gpt-5.5', name: 'GPT-5.5', provider: 'openai', contextWindow: 1100000, maxOutputTokens: 128000, cost: { input: 5, output: 30, cacheRead: 0.5 }, reasoning: true, inputTypes: ['text', 'image'] }, + { id: 'gpt-4.1', name: 'GPT-4.1', provider: 'openai', contextWindow: 1000000, maxOutputTokens: 32768, cost: { input: 2, output: 8 }, reasoning: false, inputTypes: ['text', 'image'] }, + { id: 'gpt-4o-mini', name: 'GPT-4o Mini', provider: 'openai', contextWindow: 128000, maxOutputTokens: 16384, cost: { input: 0.15, output: 0.6 }, reasoning: false, inputTypes: ['text', 'image'] }, + { id: 'o3', name: 'o3', provider: 'openai', contextWindow: 200000, maxOutputTokens: 100000, cost: { input: 10, output: 40 }, reasoning: true, inputTypes: ['text', 'image'] }, + { id: 'o3-mini', name: 'o3-mini', provider: 'openai', contextWindow: 200000, maxOutputTokens: 100000, cost: { input: 1.1, output: 4.4 }, reasoning: true, inputTypes: ['text', 'image'] }, // OpenAI Codex (OAuth — uses ChatGPT subscription) { id: 'gpt-5.4', name: 'GPT-5.4 (Codex)', provider: 'openai-codex', contextWindow: 1100000, maxOutputTokens: 128000, cost: { input: 0, output: 0 }, reasoning: true, inputTypes: ['text', 'image'], description: 'Uses ChatGPT subscription via OAuth' }, { id: 'gpt-4o', name: 'GPT-4o (Codex)', provider: 'openai-codex', contextWindow: 128000, maxOutputTokens: 16384, cost: { input: 0, output: 0 }, reasoning: false, inputTypes: ['text', 'image'], description: 'Uses ChatGPT subscription via OAuth' }, // Google — https://cloud.google.com/vertex-ai/generative-ai/docs/models/gemini { id: 'gemini-3-1-pro', name: 'Gemini 3.1 Pro', provider: 'google', contextWindow: 1000000, maxOutputTokens: 65536, cost: { input: 2, output: 12 }, reasoning: true, inputTypes: ['text', 'image'] }, { id: 'gemini-2.5-flash', name: 'Gemini 2.5 Flash', provider: 'google', contextWindow: 1048576, maxOutputTokens: 65536, cost: { input: 0.15, output: 0.6 }, reasoning: true, inputTypes: ['text', 'image'] }, + { id: 'gemini-3-1-flash', name: 'Gemini 3.1 Flash', provider: 'google', contextWindow: 1000000, maxOutputTokens: 65536, cost: { input: 0.10, output: 0.40 }, reasoning: true, inputTypes: ['text', 'image'] }, + { id: 'gemini-3-0-flash', name: 'Gemini 3.0 Flash', provider: 'google', contextWindow: 1000000, maxOutputTokens: 65536, cost: { input: 0.075, output: 0.30 }, reasoning: true, inputTypes: ['text', 'image'] }, // MiniMax — https://platform.minimax.io/docs/api-reference/api-overview { id: 'MiniMax-M2.7', name: 'MiniMax M2.7', provider: 'minimax', contextWindow: 204800, maxOutputTokens: 128000, cost: { input: 0.3, output: 1.2 }, reasoning: true, inputTypes: ['text'] }, { id: 'MiniMax-M2.5', name: 'MiniMax M2.5', provider: 'minimax', contextWindow: 204800, maxOutputTokens: 128000, cost: { input: 0.2, output: 0.95 }, reasoning: false, inputTypes: ['text'] }, + { id: 'MiniMax-M3', name: 'MiniMax M3', provider: 'minimax', contextWindow: 204800, maxOutputTokens: 128000, cost: { input: 0.5, output: 2 }, reasoning: true, inputTypes: ['text'] }, + { id: 'MiniMax-M3-high', name: 'MiniMax M3-High', provider: 'minimax', contextWindow: 204800, maxOutputTokens: 128000, cost: { input: 0.8, output: 3.2 }, reasoning: true, inputTypes: ['text'] }, // OpenRouter — https://openrouter.ai/models (pass-through pricing varies by upstream provider) { id: 'xiaomi/mimo-v2-pro', name: 'MiMo-V2-Pro', provider: 'openrouter', contextWindow: 1048576, maxOutputTokens: 131072, cost: { input: 1, output: 3, cacheRead: 0.2 }, reasoning: true, inputTypes: ['text'] }, { id: 'anthropic/claude-opus-4-6', name: 'Claude Opus 4.6 (via OpenRouter)', provider: 'openrouter', contextWindow: 1000000, maxOutputTokens: 128000, cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, reasoning: true, inputTypes: ['text', 'image'] }, { id: 'openai/gpt-5.4', name: 'GPT-5.4 (via OpenRouter)', provider: 'openrouter', contextWindow: 1100000, maxOutputTokens: 128000, cost: { input: 2.5, output: 15, cacheRead: 0.25 }, reasoning: true, inputTypes: ['text', 'image'] }, { id: 'google/gemini-3-1-pro', name: 'Gemini 3.1 Pro (via OpenRouter)', provider: 'openrouter', contextWindow: 1000000, maxOutputTokens: 65536, cost: { input: 2, output: 12 }, reasoning: true, inputTypes: ['text', 'image'] }, + { id: 'anthropic/claude-sonnet-4-20250514', name: 'Claude Sonnet 4 (via OpenRouter)', provider: 'openrouter', contextWindow: 200000, maxOutputTokens: 64000, cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 }, reasoning: true, inputTypes: ['text', 'image'] }, + { id: 'deepseek/deepseek-v4-flash', name: 'DeepSeek-V4-Flash (via OpenRouter)', provider: 'openrouter', contextWindow: 1000000, maxOutputTokens: 384000, cost: { input: 0.14, output: 0.28, cacheRead: 0.028 }, reasoning: true, inputTypes: ['text'] }, + { id: 'deepseek/deepseek-v4-pro', name: 'DeepSeek-V4-Pro (via OpenRouter)', provider: 'openrouter', contextWindow: 1000000, maxOutputTokens: 384000, cost: { input: 1.67, output: 3.33, cacheRead: 0.14 }, reasoning: true, inputTypes: ['text'] }, // DeepSeek — https://api-docs.deepseek.com/ { id: 'deepseek-v4-flash', name: 'DeepSeek-V4-Flash', provider: 'deepseek', contextWindow: 1000000, maxOutputTokens: 384000, cost: { input: 0.14, output: 0.28, cacheRead: 0.028 }, reasoning: true, inputTypes: ['text'] }, { id: 'deepseek-v4-pro', name: 'DeepSeek-V4-Pro', provider: 'deepseek', contextWindow: 1000000, maxOutputTokens: 384000, cost: { input: 1.67, output: 3.33, cacheRead: 0.14 }, reasoning: true, inputTypes: ['text'] }, @@ -1085,4 +1099,10 @@ const BUILTIN_MODEL_CATALOG: ModelDefinition[] = [ { id: 'deepseek-ai/DeepSeek-V3', name: 'DeepSeek-V3 (via SiliconFlow)', provider: 'siliconflow', contextWindow: 65536, maxOutputTokens: 8192, cost: { input: 2, output: 8 }, reasoning: true, inputTypes: ['text'] }, { id: 'deepseek-ai/DeepSeek-Coder-V2', name: 'DeepSeek-Coder-V2 (via SiliconFlow)', provider: 'siliconflow', contextWindow: 65536, maxOutputTokens: 8192, cost: { input: 1, output: 4 }, reasoning: false, inputTypes: ['text'] }, { id: 'moonshotai/Kimi-K2.5', name: 'Kimi-K2.5 (via SiliconFlow)', provider: 'siliconflow', contextWindow: 131072, maxOutputTokens: 8192, cost: { input: 2, output: 8 }, reasoning: true, inputTypes: ['text'] }, + // ZAI — https://z.ai + { id: 'glm-5.1', name: 'GLM-5.1', provider: 'zai', contextWindow: 131072, maxOutputTokens: 8192, cost: { input: 1, output: 4 }, reasoning: true, inputTypes: ['text'] }, + { id: 'glm-5', name: 'GLM-5', provider: 'zai', contextWindow: 131072, maxOutputTokens: 8192, cost: { input: 1, output: 4 }, reasoning: true, inputTypes: ['text'] }, + { id: 'glm-5-turbo', name: 'GLM-5-Turbo', provider: 'zai', contextWindow: 131072, maxOutputTokens: 8192, cost: { input: 0.5, output: 2 }, reasoning: false, inputTypes: ['text'] }, + { id: 'glm-4.9', name: 'GLM-4.9', provider: 'zai', contextWindow: 131072, maxOutputTokens: 8192, cost: { input: 0.5, output: 2 }, reasoning: false, inputTypes: ['text'] }, + { id: 'glm-4-turbo', name: 'GLM-4-Turbo', provider: 'zai', contextWindow: 131072, maxOutputTokens: 8192, cost: { input: 0.3, output: 1 }, reasoning: false, inputTypes: ['text'] } ]; diff --git a/packages/shared/src/models.ts b/packages/shared/src/models.ts index debdcffb..a89378ff 100644 --- a/packages/shared/src/models.ts +++ b/packages/shared/src/models.ts @@ -17,21 +17,21 @@ export const PROVIDERS: ProviderModel[] = [ envKey: 'ANTHROPIC_API_KEY', defaultModel: 'claude-opus-4-6', isAnthropic: true, - models: ['claude-opus-4-6', 'claude-sonnet-4-6', 'claude-sonnet-4-5', 'claude-haiku-3-6'], + models: ['claude-opus-4-6', 'claude-sonnet-4-20250514', 'claude-sonnet-4-5', 'claude-3-5-haiku-20241022'], }, { id: 'openai', label: 'OpenAI', envKey: 'OPENAI_API_KEY', defaultModel: 'gpt-5.4', - models: ['gpt-5.4', 'gpt-4.1', 'gpt-4o', 'gpt-4o-mini', 'o3', 'o3-mini', 'o4-mini'], + models: ['gpt-5.5', 'gpt-5.4', 'gpt-5.4-mini', 'gpt-4.1', 'gpt-4o', 'gpt-4o-mini', 'o4-mini', 'o3', 'o3-mini'], }, { id: 'google', label: 'Google Gemini', envKey: 'GOOGLE_API_KEY', defaultModel: 'gemini-3-1-pro', - models: ['gemini-3-1-pro', 'gemini-3-1-flash', 'gemini-3-0-flash', 'gemini-2-5-pro'], + models: ['gemini-3-1-pro', 'gemini-3-1-flash', 'gemini-3-0-flash', 'gemini-2.5-flash'], }, { id: 'minimax', @@ -39,7 +39,7 @@ export const PROVIDERS: ProviderModel[] = [ envKey: 'MINIMAX_API_KEY', baseUrl: 'https://api.minimax.io/v1', defaultModel: 'MiniMax-M2.7', - models: ['MiniMax-M2.7', 'MiniMax-M3', 'MiniMax-M3-high'], + models: ['MiniMax-M2.7', 'MiniMax-M2.5', 'MiniMax-M3', 'MiniMax-M3-high'], }, { id: 'siliconflow', @@ -62,12 +62,14 @@ export const PROVIDERS: ProviderModel[] = [ baseUrl: 'https://openrouter.ai/api/v1', defaultModel: 'xiaomi/mimo-v2-pro:free', models: [ - 'anthropic/claude-opus-4.6', - 'anthropic/claude-sonnet-4.6', + 'anthropic/claude-opus-4-6', + 'anthropic/claude-sonnet-4-20250514', 'qwen/qwen3.6-plus', 'google/gemini-3-1-pro', 'xiaomi/mimo-v2-pro:free', 'deepseek-ai/DeepSeek-V3', + 'deepseek/deepseek-v4-flash', + 'deepseek/deepseek-v4-pro', ], }, { From 9088191dc3b7b947f0ec350ebfa473e082450fc2 Mon Sep 17 00:00:00 2001 From: Jason Carter Date: Fri, 8 May 2026 21:57:59 +0800 Subject: [PATCH 2/2] [TASK-tsk_78c40416db11be22b9ae10d5] fix: remove unverified MiniMax-M3/M3-high models --- packages/core/src/llm/router.ts | 2 -- packages/shared/src/models.ts | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/core/src/llm/router.ts b/packages/core/src/llm/router.ts index 4bbd036e..c45f79dc 100644 --- a/packages/core/src/llm/router.ts +++ b/packages/core/src/llm/router.ts @@ -1078,8 +1078,6 @@ const BUILTIN_MODEL_CATALOG: ModelDefinition[] = [ // MiniMax — https://platform.minimax.io/docs/api-reference/api-overview { id: 'MiniMax-M2.7', name: 'MiniMax M2.7', provider: 'minimax', contextWindow: 204800, maxOutputTokens: 128000, cost: { input: 0.3, output: 1.2 }, reasoning: true, inputTypes: ['text'] }, { id: 'MiniMax-M2.5', name: 'MiniMax M2.5', provider: 'minimax', contextWindow: 204800, maxOutputTokens: 128000, cost: { input: 0.2, output: 0.95 }, reasoning: false, inputTypes: ['text'] }, - { id: 'MiniMax-M3', name: 'MiniMax M3', provider: 'minimax', contextWindow: 204800, maxOutputTokens: 128000, cost: { input: 0.5, output: 2 }, reasoning: true, inputTypes: ['text'] }, - { id: 'MiniMax-M3-high', name: 'MiniMax M3-High', provider: 'minimax', contextWindow: 204800, maxOutputTokens: 128000, cost: { input: 0.8, output: 3.2 }, reasoning: true, inputTypes: ['text'] }, // OpenRouter — https://openrouter.ai/models (pass-through pricing varies by upstream provider) { id: 'xiaomi/mimo-v2-pro', name: 'MiMo-V2-Pro', provider: 'openrouter', contextWindow: 1048576, maxOutputTokens: 131072, cost: { input: 1, output: 3, cacheRead: 0.2 }, reasoning: true, inputTypes: ['text'] }, { id: 'anthropic/claude-opus-4-6', name: 'Claude Opus 4.6 (via OpenRouter)', provider: 'openrouter', contextWindow: 1000000, maxOutputTokens: 128000, cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 }, reasoning: true, inputTypes: ['text', 'image'] }, diff --git a/packages/shared/src/models.ts b/packages/shared/src/models.ts index a89378ff..edc7d144 100644 --- a/packages/shared/src/models.ts +++ b/packages/shared/src/models.ts @@ -39,7 +39,7 @@ export const PROVIDERS: ProviderModel[] = [ envKey: 'MINIMAX_API_KEY', baseUrl: 'https://api.minimax.io/v1', defaultModel: 'MiniMax-M2.7', - models: ['MiniMax-M2.7', 'MiniMax-M2.5', 'MiniMax-M3', 'MiniMax-M3-high'], + models: ['MiniMax-M2.7', 'MiniMax-M2.5'], }, { id: 'siliconflow',