diff --git a/packages/ai/src/models.generated.ts b/packages/ai/src/models.generated.ts index 6f2fe25c..3c78c4cb 100644 --- a/packages/ai/src/models.generated.ts +++ b/packages/ai/src/models.generated.ts @@ -3537,6 +3537,24 @@ export const MODELS = { contextWindow: 400000, maxTokens: 128000, } satisfies Model<"openai-responses">, + "gpt-5.5": { + id: "gpt-5.5", + name: "GPT-5.5", + api: "openai-responses", + provider: "github-copilot", + baseUrl: "https://api.individual.githubcopilot.com", + headers: {"User-Agent":"GitHubCopilotChat/0.35.0","Editor-Version":"vscode/1.107.0","Editor-Plugin-Version":"copilot-chat/0.35.0","Copilot-Integration-Id":"vscode-chat"}, + reasoning: true, + input: ["text", "image"], + cost: { + input: 0, + output: 0, + cacheRead: 0, + cacheWrite: 0, + }, + contextWindow: 400000, + maxTokens: 128000, + } satisfies Model<"openai-responses">, "grok-code-fast-1": { id: "grok-code-fast-1", name: "Grok Code Fast 1", @@ -5042,6 +5060,24 @@ export const MODELS = { contextWindow: 163840, maxTokens: 65536, } satisfies Model<"openai-completions">, + "deepseek-ai/DeepSeek-V4-Pro": { + id: "deepseek-ai/DeepSeek-V4-Pro", + name: "DeepSeek V4 Pro", + api: "openai-completions", + provider: "huggingface", + baseUrl: "https://router.huggingface.co/v1", + compat: {"supportsDeveloperRole":false}, + reasoning: true, + input: ["text"], + cost: { + input: 1.74, + output: 3.48, + cacheRead: 0.145, + cacheWrite: 0, + }, + contextWindow: 1048576, + maxTokens: 393216, + } satisfies Model<"openai-completions">, "moonshotai/Kimi-K2-Instruct": { id: "moonshotai/Kimi-K2-Instruct", name: "Kimi-K2-Instruct", @@ -6666,23 +6702,6 @@ export const MODELS = { contextWindow: 200000, maxTokens: 128000, } satisfies Model<"anthropic-messages">, - "claude-3-5-haiku": { - id: "claude-3-5-haiku", - name: "Claude Haiku 3.5", - api: "anthropic-messages", - provider: "opencode", - baseUrl: "https://opencode.ai/zen", - reasoning: false, - input: ["text", "image"], - cost: { - input: 0.8, - output: 4, - cacheRead: 0.08, - cacheWrite: 1, - }, - contextWindow: 200000, - maxTokens: 8192, - } satisfies Model<"anthropic-messages">, "claude-haiku-4-5": { id: "claude-haiku-4-5", name: "Claude Haiku 4.5", @@ -7125,6 +7144,40 @@ export const MODELS = { contextWindow: 1050000, maxTokens: 128000, } satisfies Model<"openai-responses">, + "gpt-5.5": { + id: "gpt-5.5", + name: "GPT-5.5", + api: "openai-responses", + provider: "opencode", + baseUrl: "https://opencode.ai/zen/v1", + reasoning: true, + input: ["text", "image"], + cost: { + input: 5, + output: 30, + cacheRead: 0.5, + cacheWrite: 0, + }, + contextWindow: 1050000, + maxTokens: 128000, + } satisfies Model<"openai-responses">, + "gpt-5.5-pro": { + id: "gpt-5.5-pro", + name: "GPT-5.5 Pro", + api: "openai-responses", + provider: "opencode", + baseUrl: "https://opencode.ai/zen/v1", + reasoning: true, + input: ["text", "image"], + cost: { + input: 30, + output: 180, + cacheRead: 30, + cacheWrite: 0, + }, + contextWindow: 1050000, + maxTokens: 128000, + } satisfies Model<"openai-responses">, "hy3-preview-free": { id: "hy3-preview-free", name: "Hy3 preview Free", @@ -7297,6 +7350,42 @@ export const MODELS = { } satisfies Model<"anthropic-messages">, }, "opencode-go": { + "deepseek-v4-flash": { + id: "deepseek-v4-flash", + name: "DeepSeek V4 Flash", + api: "openai-completions", + provider: "opencode-go", + baseUrl: "https://opencode.ai/zen/go/v1", + compat: {"requiresReasoningContentOnAssistantMessages":true}, + reasoning: true, + input: ["text"], + cost: { + input: 0.14, + output: 0.28, + cacheRead: 0.0028, + cacheWrite: 0, + }, + contextWindow: 1000000, + maxTokens: 384000, + } satisfies Model<"openai-completions">, + "deepseek-v4-pro": { + id: "deepseek-v4-pro", + name: "DeepSeek V4 Pro", + api: "openai-completions", + provider: "opencode-go", + baseUrl: "https://opencode.ai/zen/go/v1", + compat: {"requiresReasoningContentOnAssistantMessages":true}, + reasoning: true, + input: ["text"], + cost: { + input: 1.74, + output: 3.48, + cacheRead: 0.0145, + cacheWrite: 0, + }, + contextWindow: 1000000, + maxTokens: 384000, + } satisfies Model<"openai-completions">, "glm-5": { id: "glm-5", name: "GLM-5", @@ -7413,7 +7502,7 @@ export const MODELS = { cacheRead: 0.08, cacheWrite: 0, }, - contextWindow: 262144, + contextWindow: 1000000, maxTokens: 128000, } satisfies Model<"openai-completions">, "mimo-v2.5-pro": { @@ -7552,7 +7641,7 @@ export const MODELS = { cacheWrite: 0, }, contextWindow: 65536, - maxTokens: 4096, + maxTokens: 16384, } satisfies Model<"openai-completions">, "amazon/nova-2-lite-v1": { id: "amazon/nova-2-lite-v1", @@ -8113,7 +8202,7 @@ export const MODELS = { cacheWrite: 0, }, contextWindow: 163840, - maxTokens: 163840, + maxTokens: 16384, } satisfies Model<"openai-completions">, "deepseek/deepseek-chat-v3-0324": { id: "deepseek/deepseek-chat-v3-0324", @@ -8130,7 +8219,7 @@ export const MODELS = { cacheWrite: 0, }, contextWindow: 163840, - maxTokens: 4096, + maxTokens: 16384, } satisfies Model<"openai-completions">, "deepseek/deepseek-chat-v3.1": { id: "deepseek/deepseek-chat-v3.1", @@ -8181,7 +8270,7 @@ export const MODELS = { cacheWrite: 0, }, contextWindow: 163840, - maxTokens: 4096, + maxTokens: 32768, } satisfies Model<"openai-completions">, "deepseek/deepseek-v3.1-terminus": { id: "deepseek/deepseek-v3.1-terminus", @@ -8194,11 +8283,11 @@ export const MODELS = { cost: { input: 0.21, output: 0.7899999999999999, - cacheRead: 0.1300000002, + cacheRead: 0.13, cacheWrite: 0, }, contextWindow: 163840, - maxTokens: 4096, + maxTokens: 32768, } satisfies Model<"openai-completions">, "deepseek/deepseek-v3.2": { id: "deepseek/deepseek-v3.2", @@ -8246,7 +8335,7 @@ export const MODELS = { cost: { input: 0.14, output: 0.28, - cacheRead: 0.028, + cacheRead: 0.0028, cacheWrite: 0, }, contextWindow: 1048576, @@ -8262,9 +8351,9 @@ export const MODELS = { reasoning: true, input: ["text"], cost: { - input: 1.74, - output: 3.48, - cacheRead: 0.145, + input: 0.435, + output: 0.87, + cacheRead: 0.003625, cacheWrite: 0, }, contextWindow: 1048576, @@ -8491,6 +8580,40 @@ export const MODELS = { contextWindow: 1048576, maxTokens: 65536, } satisfies Model<"openai-completions">, + "google/gemma-3-12b-it": { + id: "google/gemma-3-12b-it", + name: "Google: Gemma 3 12B", + api: "openai-completions", + provider: "openrouter", + baseUrl: "https://openrouter.ai/api/v1", + reasoning: false, + input: ["text", "image"], + cost: { + input: 0.04, + output: 0.13, + cacheRead: 0, + cacheWrite: 0, + }, + contextWindow: 131072, + maxTokens: 16384, + } satisfies Model<"openai-completions">, + "google/gemma-3-27b-it": { + id: "google/gemma-3-27b-it", + name: "Google: Gemma 3 27B", + api: "openai-completions", + provider: "openrouter", + baseUrl: "https://openrouter.ai/api/v1", + reasoning: false, + input: ["text", "image"], + cost: { + input: 0.08, + output: 0.16, + cacheRead: 0, + cacheWrite: 0, + }, + contextWindow: 131072, + maxTokens: 16384, + } satisfies Model<"openai-completions">, "google/gemma-4-26b-a4b-it": { id: "google/gemma-4-26b-a4b-it", name: "Google: Gemma 4 26B A4B ", @@ -8540,7 +8663,7 @@ export const MODELS = { cacheWrite: 0, }, contextWindow: 262144, - maxTokens: 4096, + maxTokens: 16384, } satisfies Model<"openai-completions">, "google/gemma-4-31b-it:free": { id: "google/gemma-4-31b-it:free", @@ -8659,7 +8782,7 @@ export const MODELS = { cacheWrite: 0, }, contextWindow: 131072, - maxTokens: 4096, + maxTokens: 16384, } satisfies Model<"openai-completions">, "meta-llama/llama-3.1-8b-instruct": { id: "meta-llama/llama-3.1-8b-instruct", @@ -8795,7 +8918,7 @@ export const MODELS = { cacheWrite: 0, }, contextWindow: 196608, - maxTokens: 4096, + maxTokens: 131072, } satisfies Model<"openai-completions">, "minimax/minimax-m2.5:free": { id: "minimax/minimax-m2.5:free", @@ -9061,13 +9184,13 @@ export const MODELS = { reasoning: false, input: ["text"], cost: { - input: 0.01, - output: 0.03, + input: 0.02, + output: 0.04, cacheRead: 0, cacheWrite: 0, }, contextWindow: 131072, - maxTokens: 4096, + maxTokens: 16384, } satisfies Model<"openai-completions">, "mistralai/mistral-saba": { id: "mistralai/mistral-saba", @@ -9118,7 +9241,7 @@ export const MODELS = { cacheWrite: 0, }, contextWindow: 128000, - maxTokens: 4096, + maxTokens: 16384, } satisfies Model<"openai-completions">, "mistralai/mistral-small-creative": { id: "mistralai/mistral-small-creative", @@ -9339,7 +9462,7 @@ export const MODELS = { cacheWrite: 0, }, contextWindow: 131072, - maxTokens: 4096, + maxTokens: 16384, } satisfies Model<"openai-completions">, "nvidia/nemotron-3-nano-30b-a3b": { id: "nvidia/nemotron-3-nano-30b-a3b", @@ -9356,7 +9479,7 @@ export const MODELS = { cacheWrite: 0, }, contextWindow: 262144, - maxTokens: 4096, + maxTokens: 228000, } satisfies Model<"openai-completions">, "nvidia/nemotron-3-nano-30b-a3b:free": { id: "nvidia/nemotron-3-nano-30b-a3b:free", @@ -9441,7 +9564,7 @@ export const MODELS = { cacheWrite: 0, }, contextWindow: 131072, - maxTokens: 4096, + maxTokens: 16384, } satisfies Model<"openai-completions">, "nvidia/nemotron-nano-9b-v2:free": { id: "nvidia/nemotron-nano-9b-v2:free", @@ -10106,6 +10229,40 @@ export const MODELS = { contextWindow: 1050000, maxTokens: 128000, } satisfies Model<"openai-completions">, + "openai/gpt-5.5": { + id: "openai/gpt-5.5", + name: "OpenAI: GPT-5.5", + api: "openai-completions", + provider: "openrouter", + baseUrl: "https://openrouter.ai/api/v1", + reasoning: true, + input: ["text", "image"], + cost: { + input: 5, + output: 30, + cacheRead: 0.5, + cacheWrite: 0, + }, + contextWindow: 1050000, + maxTokens: 128000, + } satisfies Model<"openai-completions">, + "openai/gpt-5.5-pro": { + id: "openai/gpt-5.5-pro", + name: "OpenAI: GPT-5.5 Pro", + api: "openai-completions", + provider: "openrouter", + baseUrl: "https://openrouter.ai/api/v1", + reasoning: true, + input: ["text", "image"], + cost: { + input: 30, + output: 180, + cacheRead: 0, + cacheWrite: 0, + }, + contextWindow: 1050000, + maxTokens: 128000, + } satisfies Model<"openai-completions">, "openai/gpt-audio": { id: "openai/gpt-audio", name: "OpenAI: GPT Audio", @@ -10155,7 +10312,7 @@ export const MODELS = { cacheWrite: 0, }, contextWindow: 131072, - maxTokens: 4096, + maxTokens: 131072, } satisfies Model<"openai-completions">, "openai/gpt-oss-120b:free": { id: "openai/gpt-oss-120b:free", @@ -10189,7 +10346,7 @@ export const MODELS = { cacheWrite: 0, }, contextWindow: 131072, - maxTokens: 4096, + maxTokens: 131072, } satisfies Model<"openai-completions">, "openai/gpt-oss-20b:free": { id: "openai/gpt-oss-20b:free", @@ -10438,8 +10595,8 @@ export const MODELS = { reasoning: false, input: ["text"], cost: { - input: 0.12, - output: 0.39, + input: 0.36, + output: 0.39999999999999997, cacheRead: 0, cacheWrite: 0, }, @@ -10614,7 +10771,7 @@ export const MODELS = { cacheWrite: 0, }, contextWindow: 262144, - maxTokens: 4096, + maxTokens: 16384, } satisfies Model<"openai-completions">, "qwen/qwen3-235b-a22b-thinking-2507": { id: "qwen/qwen3-235b-a22b-thinking-2507", @@ -10648,7 +10805,7 @@ export const MODELS = { cacheWrite: 0, }, contextWindow: 40960, - maxTokens: 40960, + maxTokens: 16384, } satisfies Model<"openai-completions">, "qwen/qwen3-30b-a3b-instruct-2507": { id: "qwen/qwen3-30b-a3b-instruct-2507", @@ -10728,12 +10885,12 @@ export const MODELS = { input: ["text"], cost: { input: 0.22, - output: 1, - cacheRead: 0.022, + output: 1.7999999999999998, + cacheRead: 0, cacheWrite: 0, }, contextWindow: 262144, - maxTokens: 4096, + maxTokens: 65536, } satisfies Model<"openai-completions">, "qwen/qwen3-coder-30b-a3b-instruct": { id: "qwen/qwen3-coder-30b-a3b-instruct", @@ -10778,9 +10935,9 @@ export const MODELS = { reasoning: false, input: ["text"], cost: { - input: 0.15, + input: 0.14, output: 0.7999999999999999, - cacheRead: 0.11, + cacheRead: 0.09, cacheWrite: 0, }, contextWindow: 262144, @@ -10869,7 +11026,7 @@ export const MODELS = { cacheWrite: 0, }, contextWindow: 262144, - maxTokens: 4096, + maxTokens: 16384, } satisfies Model<"openai-completions">, "qwen/qwen3-next-80b-a3b-instruct:free": { id: "qwen/qwen3-next-80b-a3b-instruct:free", @@ -10920,7 +11077,7 @@ export const MODELS = { cacheWrite: 0, }, contextWindow: 262144, - maxTokens: 4096, + maxTokens: 16384, } satisfies Model<"openai-completions">, "qwen/qwen3-vl-235b-a22b-thinking": { id: "qwen/qwen3-vl-235b-a22b-thinking", @@ -11143,6 +11300,74 @@ export const MODELS = { contextWindow: 1000000, maxTokens: 65536, } satisfies Model<"openai-completions">, + "qwen/qwen3.5-plus-20260420": { + id: "qwen/qwen3.5-plus-20260420", + name: "Qwen: Qwen3.5 Plus 2026-04-20", + api: "openai-completions", + provider: "openrouter", + baseUrl: "https://openrouter.ai/api/v1", + reasoning: true, + input: ["text", "image"], + cost: { + input: 0.39999999999999997, + output: 2.4, + cacheRead: 0, + cacheWrite: 0, + }, + contextWindow: 1000000, + maxTokens: 65536, + } satisfies Model<"openai-completions">, + "qwen/qwen3.6-27b": { + id: "qwen/qwen3.6-27b", + name: "Qwen: Qwen3.6 27B", + api: "openai-completions", + provider: "openrouter", + baseUrl: "https://openrouter.ai/api/v1", + reasoning: true, + input: ["text", "image"], + cost: { + input: 0.5, + output: 2, + cacheRead: 0.25, + cacheWrite: 0, + }, + contextWindow: 262144, + maxTokens: 65536, + } satisfies Model<"openai-completions">, + "qwen/qwen3.6-flash": { + id: "qwen/qwen3.6-flash", + name: "Qwen: Qwen3.6 Flash", + api: "openai-completions", + provider: "openrouter", + baseUrl: "https://openrouter.ai/api/v1", + reasoning: true, + input: ["text", "image"], + cost: { + input: 0.25, + output: 1.5, + cacheRead: 0, + cacheWrite: 0.3125, + }, + contextWindow: 1000000, + maxTokens: 65536, + } satisfies Model<"openai-completions">, + "qwen/qwen3.6-max-preview": { + id: "qwen/qwen3.6-max-preview", + name: "Qwen: Qwen3.6 Max Preview", + api: "openai-completions", + provider: "openrouter", + baseUrl: "https://openrouter.ai/api/v1", + reasoning: true, + input: ["text"], + cost: { + input: 1.3, + output: 7.8, + cacheRead: 0, + cacheWrite: 1.625, + }, + contextWindow: 262144, + maxTokens: 65536, + } satisfies Model<"openai-completions">, "qwen/qwen3.6-plus": { id: "qwen/qwen3.6-plus", name: "Qwen: Qwen3.6 Plus", @@ -11698,11 +11923,11 @@ export const MODELS = { cost: { input: 0.3, output: 0.8999999999999999, - cacheRead: 0, + cacheRead: 0.049999999999999996, cacheWrite: 0, }, contextWindow: 131072, - maxTokens: 131072, + maxTokens: 24000, } satisfies Model<"openai-completions">, "z-ai/glm-4.7": { id: "z-ai/glm-4.7", @@ -11732,11 +11957,11 @@ export const MODELS = { cost: { input: 0.06, output: 0.39999999999999997, - cacheRead: 0.0100000002, + cacheRead: 0.01, cacheWrite: 0, }, contextWindow: 202752, - maxTokens: 4096, + maxTokens: 16384, } satisfies Model<"openai-completions">, "z-ai/glm-5": { id: "z-ai/glm-5", @@ -11753,7 +11978,7 @@ export const MODELS = { cacheWrite: 0, }, contextWindow: 202752, - maxTokens: 4096, + maxTokens: 16384, } satisfies Model<"openai-completions">, "z-ai/glm-5-turbo": { id: "z-ai/glm-5-turbo", @@ -12499,7 +12724,7 @@ export const MODELS = { cost: { input: 0.14, output: 0.28, - cacheRead: 0.014, + cacheRead: 0.028, cacheWrite: 0, }, contextWindow: 1000000, @@ -12514,9 +12739,9 @@ export const MODELS = { reasoning: true, input: ["text"], cost: { - input: 1.74, - output: 3.48, - cacheRead: 0.145, + input: 0.435, + output: 0.87, + cacheRead: 0.0036, cacheWrite: 0, }, contextWindow: 1000000, @@ -13797,6 +14022,40 @@ export const MODELS = { contextWindow: 1050000, maxTokens: 128000, } satisfies Model<"anthropic-messages">, + "openai/gpt-5.5": { + id: "openai/gpt-5.5", + name: "GPT 5.5", + api: "anthropic-messages", + provider: "vercel-ai-gateway", + baseUrl: "https://ai-gateway.vercel.sh", + reasoning: true, + input: ["text", "image"], + cost: { + input: 5, + output: 30, + cacheRead: 0.5, + cacheWrite: 0, + }, + contextWindow: 1000000, + maxTokens: 128000, + } satisfies Model<"anthropic-messages">, + "openai/gpt-5.5-pro": { + id: "openai/gpt-5.5-pro", + name: "GPT 5.5 Pro", + api: "anthropic-messages", + provider: "vercel-ai-gateway", + baseUrl: "https://ai-gateway.vercel.sh", + reasoning: true, + input: ["text", "image"], + cost: { + input: 30, + output: 180, + cacheRead: 0, + cacheWrite: 0, + }, + contextWindow: 1000000, + maxTokens: 128000, + } satisfies Model<"anthropic-messages">, "openai/gpt-oss-20b": { id: "openai/gpt-oss-20b", name: "GPT OSS 120B", @@ -14923,24 +15182,6 @@ export const MODELS = { } satisfies Model<"openai-completions">, }, "zai": { - "glm-4.5": { - id: "glm-4.5", - name: "GLM-4.5", - api: "openai-completions", - provider: "zai", - baseUrl: "https://api.z.ai/api/coding/paas/v4", - compat: {"supportsDeveloperRole":false,"thinkingFormat":"zai"}, - reasoning: true, - input: ["text"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, - contextWindow: 131072, - maxTokens: 98304, - } satisfies Model<"openai-completions">, "glm-4.5-air": { id: "glm-4.5-air", name: "GLM-4.5-Air", @@ -14959,78 +15200,6 @@ export const MODELS = { contextWindow: 131072, maxTokens: 98304, } satisfies Model<"openai-completions">, - "glm-4.5-flash": { - id: "glm-4.5-flash", - name: "GLM-4.5-Flash", - api: "openai-completions", - provider: "zai", - baseUrl: "https://api.z.ai/api/coding/paas/v4", - compat: {"supportsDeveloperRole":false,"thinkingFormat":"zai"}, - reasoning: true, - input: ["text"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, - contextWindow: 131072, - maxTokens: 98304, - } satisfies Model<"openai-completions">, - "glm-4.5v": { - id: "glm-4.5v", - name: "GLM-4.5V", - api: "openai-completions", - provider: "zai", - baseUrl: "https://api.z.ai/api/coding/paas/v4", - compat: {"supportsDeveloperRole":false,"thinkingFormat":"zai"}, - reasoning: true, - input: ["text", "image"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, - contextWindow: 64000, - maxTokens: 16384, - } satisfies Model<"openai-completions">, - "glm-4.6": { - id: "glm-4.6", - name: "GLM-4.6", - api: "openai-completions", - provider: "zai", - baseUrl: "https://api.z.ai/api/coding/paas/v4", - compat: {"supportsDeveloperRole":false,"thinkingFormat":"zai","zaiToolStream":true}, - reasoning: true, - input: ["text"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, - contextWindow: 204800, - maxTokens: 131072, - } satisfies Model<"openai-completions">, - "glm-4.6v": { - id: "glm-4.6v", - name: "GLM-4.6V", - api: "openai-completions", - provider: "zai", - baseUrl: "https://api.z.ai/api/coding/paas/v4", - compat: {"supportsDeveloperRole":false,"thinkingFormat":"zai","zaiToolStream":true}, - reasoning: true, - input: ["text", "image"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, - contextWindow: 128000, - maxTokens: 32768, - } satisfies Model<"openai-completions">, "glm-4.7": { id: "glm-4.7", name: "GLM-4.7", @@ -15049,60 +15218,6 @@ export const MODELS = { contextWindow: 204800, maxTokens: 131072, } satisfies Model<"openai-completions">, - "glm-4.7-flash": { - id: "glm-4.7-flash", - name: "GLM-4.7-Flash", - api: "openai-completions", - provider: "zai", - baseUrl: "https://api.z.ai/api/coding/paas/v4", - compat: {"supportsDeveloperRole":false,"thinkingFormat":"zai","zaiToolStream":true}, - reasoning: true, - input: ["text"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, - contextWindow: 200000, - maxTokens: 131072, - } satisfies Model<"openai-completions">, - "glm-4.7-flashx": { - id: "glm-4.7-flashx", - name: "GLM-4.7-FlashX", - api: "openai-completions", - provider: "zai", - baseUrl: "https://api.z.ai/api/coding/paas/v4", - compat: {"supportsDeveloperRole":false,"thinkingFormat":"zai","zaiToolStream":true}, - reasoning: true, - input: ["text"], - cost: { - input: 0.07, - output: 0.4, - cacheRead: 0.01, - cacheWrite: 0, - }, - contextWindow: 200000, - maxTokens: 131072, - } satisfies Model<"openai-completions">, - "glm-5": { - id: "glm-5", - name: "GLM-5", - api: "openai-completions", - provider: "zai", - baseUrl: "https://api.z.ai/api/coding/paas/v4", - compat: {"supportsDeveloperRole":false,"thinkingFormat":"zai","zaiToolStream":true}, - reasoning: true, - input: ["text"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, - contextWindow: 204800, - maxTokens: 131072, - } satisfies Model<"openai-completions">, "glm-5-turbo": { id: "glm-5-turbo", name: "GLM-5-Turbo", @@ -15139,23 +15254,5 @@ export const MODELS = { contextWindow: 200000, maxTokens: 131072, } satisfies Model<"openai-completions">, - "glm-5v-turbo": { - id: "glm-5v-turbo", - name: "glm-5v-turbo", - api: "openai-completions", - provider: "zai", - baseUrl: "https://api.z.ai/api/coding/paas/v4", - compat: {"supportsDeveloperRole":false,"thinkingFormat":"zai","zaiToolStream":true}, - reasoning: true, - input: ["text", "image"], - cost: { - input: 0, - output: 0, - cacheRead: 0, - cacheWrite: 0, - }, - contextWindow: 200000, - maxTokens: 131072, - } satisfies Model<"openai-completions">, }, } as const; diff --git a/packages/ai/test/context-overflow.test.ts b/packages/ai/test/context-overflow.test.ts index ab58ea07..aa34fd29 100644 --- a/packages/ai/test/context-overflow.test.ts +++ b/packages/ai/test/context-overflow.test.ts @@ -389,8 +389,8 @@ describe("Context overflow error handling", () => { // ============================================================================= describe.skipIf(!process.env.ZAI_API_KEY)("z.ai", () => { - it("glm-4.5-flash - should detect overflow via isContextOverflow when z.ai reports it", async () => { - const model = getModel("zai", "glm-4.5-flash"); + it("glm-4.5-air - should detect overflow via isContextOverflow when z.ai reports it", async () => { + const model = getModel("zai", "glm-4.5-air"); const result = await testContextOverflow(model, process.env.ZAI_API_KEY!); logResult(result); diff --git a/packages/ai/test/openai-completions-tool-choice.test.ts b/packages/ai/test/openai-completions-tool-choice.test.ts index d1645aa5..0fa00341 100644 --- a/packages/ai/test/openai-completions-tool-choice.test.ts +++ b/packages/ai/test/openai-completions-tool-choice.test.ts @@ -212,7 +212,7 @@ describe("openai-completions tool_choice", () => { }); it("enables tool_stream for supported z.ai models with tools", async () => { - const model = getModel("zai", "glm-5")!; + const model = getModel("zai", "glm-5.1")!; const tools: Tool[] = [ { name: "ping", @@ -249,10 +249,10 @@ describe("openai-completions tool_choice", () => { }); it("stores z.ai tool_stream support in model compat metadata", () => { - expect(getModel("zai", "glm-5")?.compat?.zaiToolStream).toBe(true); + expect(getModel("zai", "glm-5.1")?.compat?.zaiToolStream).toBe(true); expect(getModel("zai", "glm-4.7")?.compat?.zaiToolStream).toBe(true); - expect(getModel("zai", "glm-4.7-flash")?.compat?.zaiToolStream).toBe(true); - expect(getModel("zai", "glm-4.6v")?.compat?.zaiToolStream).toBe(true); + expect(getModel("zai", "glm-4.7")?.compat?.zaiToolStream).toBe(true); + expect(getModel("zai", "glm-5-turbo")?.compat?.zaiToolStream).toBe(true); expect(getModel("zai", "glm-4.5-air")?.compat?.zaiToolStream).toBeUndefined(); }); @@ -338,7 +338,7 @@ describe("openai-completions tool_choice", () => { }); it("omits tool_stream when no tools are provided", async () => { - const model = getModel("zai", "glm-5")!; + const model = getModel("zai", "glm-5.1")!; let payload: unknown; await streamSimple( @@ -380,7 +380,7 @@ describe("openai-completions tool_choice", () => { }, ]; - const model = getModel("zai", "glm-5")!; + const model = getModel("zai", "glm-5.1")!; const response = await streamSimple( model, { diff --git a/packages/ai/test/stream.test.ts b/packages/ai/test/stream.test.ts index d007f49f..ec212789 100644 --- a/packages/ai/test/stream.test.ts +++ b/packages/ai/test/stream.test.ts @@ -749,8 +749,8 @@ describe("Generate E2E Tests", () => { }, ); - describe.skipIf(!process.env.ZAI_API_KEY)("zAI Provider (glm-5 via OpenAI Completions)", () => { - const llm = getModel("zai", "glm-5"); + describe.skipIf(!process.env.ZAI_API_KEY)("zAI Provider (glm-5.1 via OpenAI Completions)", () => { + const llm = getModel("zai", "glm-5.1"); it("should complete basic text generation", { retry: 3 }, async () => { await basicTextGeneration(llm); diff --git a/packages/ai/test/tokens.test.ts b/packages/ai/test/tokens.test.ts index 2af593a2..f1a9d002 100644 --- a/packages/ai/test/tokens.test.ts +++ b/packages/ai/test/tokens.test.ts @@ -168,7 +168,7 @@ describe("Token Statistics on Abort", () => { }); describe.skipIf(!process.env.ZAI_API_KEY)("zAI Provider", () => { - const llm = getModel("zai", "glm-4.5-flash"); + const llm = getModel("zai", "glm-4.5-air"); it("should include token stats when aborted mid-stream", { retry: 3, timeout: 30000 }, async () => { await testTokensOnAbort(llm); diff --git a/packages/ai/test/tool-call-without-result.test.ts b/packages/ai/test/tool-call-without-result.test.ts index a872453c..63b52f80 100644 --- a/packages/ai/test/tool-call-without-result.test.ts +++ b/packages/ai/test/tool-call-without-result.test.ts @@ -177,7 +177,7 @@ describe("Tool Call Without Result Tests", () => { }); describe.skipIf(!process.env.ZAI_API_KEY)("zAI Provider", () => { - const model = getModel("zai", "glm-4.5-flash"); + const model = getModel("zai", "glm-4.5-air"); it("should filter out tool calls without corresponding tool results", { retry: 3, timeout: 30000 }, async () => { await testToolCallWithoutResult(model); diff --git a/packages/ai/test/total-tokens.test.ts b/packages/ai/test/total-tokens.test.ts index fd1ced76..314f3122 100644 --- a/packages/ai/test/total-tokens.test.ts +++ b/packages/ai/test/total-tokens.test.ts @@ -331,10 +331,10 @@ describe("totalTokens field", () => { describe.skipIf(!process.env.ZAI_API_KEY)("z.ai", () => { it( - "glm-4.5-flash - should return totalTokens equal to sum of components", + "glm-4.5-air - should return totalTokens equal to sum of components", { retry: 3, timeout: 60000 }, async () => { - const llm = getModel("zai", "glm-4.5-flash"); + const llm = getModel("zai", "glm-4.5-air"); console.log(`\nz.ai / ${llm.id}:`); const { first, second } = await testTotalTokensWithCache(llm, { apiKey: process.env.ZAI_API_KEY });