chore(models): update Gemini 3.1 provider catalogs and antigravity opus 4.6

This commit is contained in:
Mario Zechner 2026-02-19 20:33:27 +01:00
parent 4ba3e5be22
commit 18c7ab8a47
4 changed files with 313 additions and 164 deletions

View file

@ -1093,6 +1093,18 @@ async function generateModels() {
contextWindow: 200000, contextWindow: 200000,
maxTokens: 64000, maxTokens: 64000,
}, },
{
id: "claude-opus-4-6-thinking",
name: "Claude Opus 4.6 Thinking (Antigravity)",
api: "google-gemini-cli",
provider: "google-antigravity",
baseUrl: ANTIGRAVITY_ENDPOINT,
reasoning: true,
input: ["text", "image"],
cost: { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 },
contextWindow: 200000,
maxTokens: 128000,
},
{ {
id: "gpt-oss-120b-medium", id: "gpt-oss-120b-medium",
name: "GPT-OSS 120B Medium (Antigravity)", name: "GPT-OSS 120B Medium (Antigravity)",
@ -1122,6 +1134,18 @@ async function generateModels() {
contextWindow: 1000000, contextWindow: 1000000,
maxTokens: 64000, maxTokens: 64000,
}, },
{
id: "gemini-3.1-pro-preview",
name: "Gemini 3.1 Pro Preview (Vertex)",
api: "google-vertex",
provider: "google-vertex",
baseUrl: VERTEX_BASE_URL,
reasoning: true,
input: ["text", "image"],
cost: { input: 2, output: 12, cacheRead: 0.2, cacheWrite: 0 },
contextWindow: 1048576,
maxTokens: 65536,
},
{ {
id: "gemini-3-flash-preview", id: "gemini-3-flash-preview",
name: "Gemini 3 Flash Preview (Vertex)", name: "Gemini 3 Flash Preview (Vertex)",

View file

@ -362,6 +362,23 @@ export const MODELS = {
contextWindow: 200000, contextWindow: 200000,
maxTokens: 64000, maxTokens: 64000,
} satisfies Model<"bedrock-converse-stream">, } satisfies Model<"bedrock-converse-stream">,
"anthropic.claude-sonnet-4-6": {
id: "anthropic.claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
api: "bedrock-converse-stream",
provider: "amazon-bedrock",
baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
reasoning: true,
input: ["text", "image"],
cost: {
input: 3,
output: 15,
cacheRead: 0.3,
cacheWrite: 3.75,
},
contextWindow: 200000,
maxTokens: 64000,
} satisfies Model<"bedrock-converse-stream">,
"cohere.command-r-plus-v1:0": { "cohere.command-r-plus-v1:0": {
id: "cohere.command-r-plus-v1:0", id: "cohere.command-r-plus-v1:0",
name: "Command R+", name: "Command R+",
@ -532,6 +549,23 @@ export const MODELS = {
contextWindow: 200000, contextWindow: 200000,
maxTokens: 64000, maxTokens: 64000,
} satisfies Model<"bedrock-converse-stream">, } satisfies Model<"bedrock-converse-stream">,
"eu.anthropic.claude-sonnet-4-6": {
id: "eu.anthropic.claude-sonnet-4-6",
name: "Claude Sonnet 4.6 (EU)",
api: "bedrock-converse-stream",
provider: "amazon-bedrock",
baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
reasoning: true,
input: ["text", "image"],
cost: {
input: 3,
output: 15,
cacheRead: 0.3,
cacheWrite: 3.75,
},
contextWindow: 200000,
maxTokens: 64000,
} satisfies Model<"bedrock-converse-stream">,
"global.anthropic.claude-haiku-4-5-20251001-v1:0": { "global.anthropic.claude-haiku-4-5-20251001-v1:0": {
id: "global.anthropic.claude-haiku-4-5-20251001-v1:0", id: "global.anthropic.claude-haiku-4-5-20251001-v1:0",
name: "Claude Haiku 4.5 (Global)", name: "Claude Haiku 4.5 (Global)",
@ -617,6 +651,23 @@ export const MODELS = {
contextWindow: 200000, contextWindow: 200000,
maxTokens: 64000, maxTokens: 64000,
} satisfies Model<"bedrock-converse-stream">, } satisfies Model<"bedrock-converse-stream">,
"global.anthropic.claude-sonnet-4-6": {
id: "global.anthropic.claude-sonnet-4-6",
name: "Claude Sonnet 4.6 (Global)",
api: "bedrock-converse-stream",
provider: "amazon-bedrock",
baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
reasoning: true,
input: ["text", "image"],
cost: {
input: 3,
output: 15,
cacheRead: 0.3,
cacheWrite: 3.75,
},
contextWindow: 200000,
maxTokens: 64000,
} satisfies Model<"bedrock-converse-stream">,
"google.gemma-3-27b-it": { "google.gemma-3-27b-it": {
id: "google.gemma-3-27b-it", id: "google.gemma-3-27b-it",
name: "Google Gemma 3 27B Instruct", name: "Google Gemma 3 27B Instruct",
@ -1280,6 +1331,23 @@ export const MODELS = {
contextWindow: 200000, contextWindow: 200000,
maxTokens: 64000, maxTokens: 64000,
} satisfies Model<"bedrock-converse-stream">, } satisfies Model<"bedrock-converse-stream">,
"us.anthropic.claude-sonnet-4-6": {
id: "us.anthropic.claude-sonnet-4-6",
name: "Claude Sonnet 4.6 (US)",
api: "bedrock-converse-stream",
provider: "amazon-bedrock",
baseUrl: "https://bedrock-runtime.us-east-1.amazonaws.com",
reasoning: true,
input: ["text", "image"],
cost: {
input: 3,
output: 15,
cacheRead: 0.3,
cacheWrite: 3.75,
},
contextWindow: 200000,
maxTokens: 64000,
} satisfies Model<"bedrock-converse-stream">,
"writer.palmyra-x4-v1:0": { "writer.palmyra-x4-v1:0": {
id: "writer.palmyra-x4-v1:0", id: "writer.palmyra-x4-v1:0",
name: "Palmyra X4", name: "Palmyra X4",
@ -2517,6 +2585,24 @@ export const MODELS = {
contextWindow: 128000, contextWindow: 128000,
maxTokens: 32000, maxTokens: 32000,
} satisfies Model<"anthropic-messages">, } satisfies Model<"anthropic-messages">,
"claude-sonnet-4.6": {
id: "claude-sonnet-4.6",
name: "Claude Sonnet 4.6",
api: "anthropic-messages",
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: 128000,
maxTokens: 32000,
} satisfies Model<"anthropic-messages">,
"gemini-2.5-pro": { "gemini-2.5-pro": {
id: "gemini-2.5-pro", id: "gemini-2.5-pro",
name: "Gemini 2.5 Pro", name: "Gemini 2.5 Pro",
@ -3066,6 +3152,40 @@ export const MODELS = {
contextWindow: 1000000, contextWindow: 1000000,
maxTokens: 64000, maxTokens: 64000,
} satisfies Model<"google-generative-ai">, } satisfies Model<"google-generative-ai">,
"gemini-3.1-pro-preview": {
id: "gemini-3.1-pro-preview",
name: "Gemini 3.1 Pro Preview",
api: "google-generative-ai",
provider: "google",
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
reasoning: true,
input: ["text", "image"],
cost: {
input: 2,
output: 12,
cacheRead: 0.2,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 65536,
} satisfies Model<"google-generative-ai">,
"gemini-3.1-pro-preview-customtools": {
id: "gemini-3.1-pro-preview-customtools",
name: "Gemini 3.1 Pro Preview Custom Tools",
api: "google-generative-ai",
provider: "google",
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
reasoning: true,
input: ["text", "image"],
cost: {
input: 2,
output: 12,
cacheRead: 0.2,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 65536,
} satisfies Model<"google-generative-ai">,
"gemini-flash-latest": { "gemini-flash-latest": {
id: "gemini-flash-latest", id: "gemini-flash-latest",
name: "Gemini Flash Latest", name: "Gemini Flash Latest",
@ -3153,6 +3273,23 @@ export const MODELS = {
contextWindow: 200000, contextWindow: 200000,
maxTokens: 64000, maxTokens: 64000,
} satisfies Model<"google-gemini-cli">, } satisfies Model<"google-gemini-cli">,
"claude-opus-4-6-thinking": {
id: "claude-opus-4-6-thinking",
name: "Claude Opus 4.6 Thinking (Antigravity)",
api: "google-gemini-cli",
provider: "google-antigravity",
baseUrl: "https://daily-cloudcode-pa.sandbox.googleapis.com",
reasoning: true,
input: ["text", "image"],
cost: {
input: 5,
output: 25,
cacheRead: 0.5,
cacheWrite: 6.25,
},
contextWindow: 200000,
maxTokens: 128000,
} satisfies Model<"google-gemini-cli">,
"claude-sonnet-4-5": { "claude-sonnet-4-5": {
id: "claude-sonnet-4-5", id: "claude-sonnet-4-5",
name: "Claude Sonnet 4.5 (Antigravity)", name: "Claude Sonnet 4.5 (Antigravity)",
@ -3531,6 +3668,23 @@ export const MODELS = {
contextWindow: 1000000, contextWindow: 1000000,
maxTokens: 64000, maxTokens: 64000,
} satisfies Model<"google-vertex">, } satisfies Model<"google-vertex">,
"gemini-3.1-pro-preview": {
id: "gemini-3.1-pro-preview",
name: "Gemini 3.1 Pro Preview (Vertex)",
api: "google-vertex",
provider: "google-vertex",
baseUrl: "https://{location}-aiplatform.googleapis.com",
reasoning: true,
input: ["text", "image"],
cost: {
input: 2,
output: 12,
cacheRead: 0.2,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 65536,
} satisfies Model<"google-vertex">,
}, },
"groq": { "groq": {
"deepseek-r1-distill-llama-70b": { "deepseek-r1-distill-llama-70b": {
@ -5457,9 +5611,9 @@ export const MODELS = {
"big-pickle": { "big-pickle": {
id: "big-pickle", id: "big-pickle",
name: "Big Pickle", name: "Big Pickle",
api: "openai-completions", api: "anthropic-messages",
provider: "opencode", provider: "opencode",
baseUrl: "https://opencode.ai/zen/v1", baseUrl: "https://opencode.ai/zen",
reasoning: true, reasoning: true,
input: ["text"], input: ["text"],
cost: { cost: {
@ -5470,7 +5624,7 @@ export const MODELS = {
}, },
contextWindow: 200000, contextWindow: 200000,
maxTokens: 128000, maxTokens: 128000,
} satisfies Model<"openai-completions">, } satisfies Model<"anthropic-messages">,
"claude-3-5-haiku": { "claude-3-5-haiku": {
id: "claude-3-5-haiku", id: "claude-3-5-haiku",
name: "Claude Haiku 3.5", name: "Claude Haiku 3.5",
@ -5590,6 +5744,23 @@ export const MODELS = {
contextWindow: 200000, contextWindow: 200000,
maxTokens: 64000, maxTokens: 64000,
} satisfies Model<"anthropic-messages">, } satisfies Model<"anthropic-messages">,
"claude-sonnet-4-6": {
id: "claude-sonnet-4-6",
name: "Claude Sonnet 4.6",
api: "anthropic-messages",
provider: "opencode",
baseUrl: "https://opencode.ai/zen",
reasoning: true,
input: ["text", "image"],
cost: {
input: 3,
output: 15,
cacheRead: 0.3,
cacheWrite: 3.75,
},
contextWindow: 1000000,
maxTokens: 64000,
} satisfies Model<"anthropic-messages">,
"gemini-3-flash": { "gemini-3-flash": {
id: "gemini-3-flash", id: "gemini-3-flash",
name: "Gemini 3 Flash", name: "Gemini 3 Flash",
@ -5624,6 +5795,23 @@ export const MODELS = {
contextWindow: 1048576, contextWindow: 1048576,
maxTokens: 65536, maxTokens: 65536,
} satisfies Model<"google-generative-ai">, } satisfies Model<"google-generative-ai">,
"gemini-3.1-pro": {
id: "gemini-3.1-pro",
name: "Gemini 3.1 Pro Preview",
api: "google-generative-ai",
provider: "opencode",
baseUrl: "https://opencode.ai/zen/v1",
reasoning: true,
input: ["text", "image"],
cost: {
input: 2,
output: 12,
cacheRead: 0.2,
cacheWrite: 0,
},
contextWindow: 1048576,
maxTokens: 65536,
} satisfies Model<"google-generative-ai">,
"glm-4.6": { "glm-4.6": {
id: "glm-4.6", id: "glm-4.6",
name: "GLM-4.6", name: "GLM-4.6",
@ -5896,23 +6084,6 @@ export const MODELS = {
contextWindow: 262144, contextWindow: 262144,
maxTokens: 262144, maxTokens: 262144,
} satisfies Model<"openai-completions">, } satisfies Model<"openai-completions">,
"kimi-k2.5-free": {
id: "kimi-k2.5-free",
name: "Kimi K2.5 Free",
api: "openai-completions",
provider: "opencode",
baseUrl: "https://opencode.ai/zen/v1",
reasoning: true,
input: ["text", "image"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 262144,
} satisfies Model<"openai-completions">,
"minimax-m2.1": { "minimax-m2.1": {
id: "minimax-m2.1", id: "minimax-m2.1",
name: "MiniMax M2.1", name: "MiniMax M2.1",
@ -5950,9 +6121,9 @@ export const MODELS = {
"minimax-m2.5-free": { "minimax-m2.5-free": {
id: "minimax-m2.5-free", id: "minimax-m2.5-free",
name: "MiniMax M2.5 Free", name: "MiniMax M2.5 Free",
api: "openai-completions", api: "anthropic-messages",
provider: "opencode", provider: "opencode",
baseUrl: "https://opencode.ai/zen/v1", baseUrl: "https://opencode.ai/zen",
reasoning: true, reasoning: true,
input: ["text"], input: ["text"],
cost: { cost: {
@ -5963,6 +6134,23 @@ export const MODELS = {
}, },
contextWindow: 204800, contextWindow: 204800,
maxTokens: 131072, maxTokens: 131072,
} satisfies Model<"anthropic-messages">,
"trinity-large-preview-free": {
id: "trinity-large-preview-free",
name: "Trinity Large Preview",
api: "openai-completions",
provider: "opencode",
baseUrl: "https://opencode.ai/zen/v1",
reasoning: false,
input: ["text"],
cost: {
input: 0,
output: 0,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 131072,
maxTokens: 131072,
} satisfies Model<"openai-completions">, } satisfies Model<"openai-completions">,
}, },
"openrouter": { "openrouter": {
@ -6147,8 +6335,8 @@ export const MODELS = {
cost: { cost: {
input: 6, input: 6,
output: 30, output: 30,
cacheRead: 0, cacheRead: 0.6,
cacheWrite: 0, cacheWrite: 7.5,
}, },
contextWindow: 200000, contextWindow: 200000,
maxTokens: 8192, maxTokens: 8192,
@ -6519,9 +6707,9 @@ export const MODELS = {
reasoning: false, reasoning: false,
input: ["text"], input: ["text"],
cost: { cost: {
input: 0.3, input: 0.32,
output: 1.2, output: 0.8899999999999999,
cacheRead: 0.15, cacheRead: 0,
cacheWrite: 0, cacheWrite: 0,
}, },
contextWindow: 163840, contextWindow: 163840,
@ -6748,23 +6936,6 @@ export const MODELS = {
contextWindow: 1048576, contextWindow: 1048576,
maxTokens: 65535, maxTokens: 65535,
} satisfies Model<"openai-completions">, } satisfies Model<"openai-completions">,
"google/gemini-2.5-flash-preview-09-2025": {
id: "google/gemini-2.5-flash-preview-09-2025",
name: "Google: Gemini 2.5 Flash Preview 09-2025",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: true,
input: ["text", "image"],
cost: {
input: 0.3,
output: 2.5,
cacheRead: 0.03,
cacheWrite: 0.08333333333333334,
},
contextWindow: 1048576,
maxTokens: 65536,
} satisfies Model<"openai-completions">,
"google/gemini-2.5-pro": { "google/gemini-2.5-pro": {
id: "google/gemini-2.5-pro", id: "google/gemini-2.5-pro",
name: "Google: Gemini 2.5 Pro", name: "Google: Gemini 2.5 Pro",
@ -6850,6 +7021,23 @@ export const MODELS = {
contextWindow: 1048576, contextWindow: 1048576,
maxTokens: 65536, maxTokens: 65536,
} satisfies Model<"openai-completions">, } satisfies Model<"openai-completions">,
"google/gemini-3.1-pro-preview": {
id: "google/gemini-3.1-pro-preview",
name: "Google: Gemini 3.1 Pro Preview",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: true,
input: ["text", "image"],
cost: {
input: 2,
output: 12,
cacheRead: 0.19999999999999998,
cacheWrite: 0.375,
},
contextWindow: 1048576,
maxTokens: 65536,
} satisfies Model<"openai-completions">,
"google/gemma-3-27b-it": { "google/gemma-3-27b-it": {
id: "google/gemma-3-27b-it", id: "google/gemma-3-27b-it",
name: "Google: Gemma 3 27B", name: "Google: Gemma 3 27B",
@ -7165,13 +7353,13 @@ export const MODELS = {
reasoning: false, reasoning: false,
input: ["text"], input: ["text"],
cost: { cost: {
input: 0.049999999999999996, input: 0.39999999999999997,
output: 0.22, output: 2,
cacheRead: 0.024999999999999998, cacheRead: 0,
cacheWrite: 0, cacheWrite: 0,
}, },
contextWindow: 262144, contextWindow: 262144,
maxTokens: 65536, maxTokens: 4096,
} satisfies Model<"openai-completions">, } satisfies Model<"openai-completions">,
"mistralai/devstral-medium": { "mistralai/devstral-medium": {
id: "mistralai/devstral-medium", id: "mistralai/devstral-medium",
@ -7411,23 +7599,6 @@ export const MODELS = {
contextWindow: 32768, contextWindow: 32768,
maxTokens: 16384, maxTokens: 16384,
} satisfies Model<"openai-completions">, } satisfies Model<"openai-completions">,
"mistralai/mistral-small-3.1-24b-instruct": {
id: "mistralai/mistral-small-3.1-24b-instruct",
name: "Mistral: Mistral Small 3.1 24B",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: false,
input: ["text", "image"],
cost: {
input: 0.03,
output: 0.11,
cacheRead: 0.015,
cacheWrite: 0,
},
contextWindow: 131072,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"mistralai/mistral-small-3.1-24b-instruct:free": { "mistralai/mistral-small-3.1-24b-instruct:free": {
id: "mistralai/mistral-small-3.1-24b-instruct:free", id: "mistralai/mistral-small-3.1-24b-instruct:free",
name: "Mistral: Mistral Small 3.1 24B (free)", name: "Mistral: Mistral Small 3.1 24B (free)",
@ -7607,13 +7778,13 @@ export const MODELS = {
reasoning: true, reasoning: true,
input: ["text"], input: ["text"],
cost: { cost: {
input: 0.39999999999999997, input: 0.47,
output: 1.75, output: 2,
cacheRead: 0.19999999999999998, cacheRead: 0.14100000000000001,
cacheWrite: 0, cacheWrite: 0,
}, },
contextWindow: 262144, contextWindow: 131072,
maxTokens: 65535, maxTokens: 4096,
} satisfies Model<"openai-completions">, } satisfies Model<"openai-completions">,
"moonshotai/kimi-k2.5": { "moonshotai/kimi-k2.5": {
id: "moonshotai/kimi-k2.5", id: "moonshotai/kimi-k2.5",
@ -7649,40 +7820,6 @@ export const MODELS = {
contextWindow: 131072, contextWindow: 131072,
maxTokens: 163840, maxTokens: 163840,
} satisfies Model<"openai-completions">, } satisfies Model<"openai-completions">,
"nousresearch/deephermes-3-mistral-24b-preview": {
id: "nousresearch/deephermes-3-mistral-24b-preview",
name: "Nous: DeepHermes 3 Mistral 24B Preview",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: true,
input: ["text"],
cost: {
input: 0.02,
output: 0.09999999999999999,
cacheRead: 0.01,
cacheWrite: 0,
},
contextWindow: 32768,
maxTokens: 32768,
} satisfies Model<"openai-completions">,
"nousresearch/hermes-4-70b": {
id: "nousresearch/hermes-4-70b",
name: "Nous: Hermes 4 70B",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: true,
input: ["text"],
cost: {
input: 0.11,
output: 0.38,
cacheRead: 0.055,
cacheWrite: 0,
},
contextWindow: 131072,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"nvidia/llama-3.1-nemotron-70b-instruct": { "nvidia/llama-3.1-nemotron-70b-instruct": {
id: "nvidia/llama-3.1-nemotron-70b-instruct", id: "nvidia/llama-3.1-nemotron-70b-instruct",
name: "NVIDIA: Llama 3.1 Nemotron 70B Instruct", name: "NVIDIA: Llama 3.1 Nemotron 70B Instruct",
@ -8865,9 +9002,9 @@ export const MODELS = {
reasoning: true, reasoning: true,
input: ["text"], input: ["text"],
cost: { cost: {
input: 0.049999999999999996, input: 0.06,
output: 0.22, output: 0.24,
cacheRead: 0.024999999999999998, cacheRead: 0,
cacheWrite: 0, cacheWrite: 0,
}, },
contextWindow: 40960, contextWindow: 40960,
@ -8882,13 +9019,13 @@ export const MODELS = {
reasoning: true, reasoning: true,
input: ["text"], input: ["text"],
cost: { cost: {
input: 0.3, input: 0.45499999999999996,
output: 1.2, output: 1.8199999999999998,
cacheRead: 0.15, cacheRead: 0,
cacheWrite: 0, cacheWrite: 0,
}, },
contextWindow: 40960, contextWindow: 131072,
maxTokens: 40960, maxTokens: 8192,
} satisfies Model<"openai-completions">, } satisfies Model<"openai-completions">,
"qwen/qwen3-235b-a22b-2507": { "qwen/qwen3-235b-a22b-2507": {
id: "qwen/qwen3-235b-a22b-2507", id: "qwen/qwen3-235b-a22b-2507",
@ -8933,9 +9070,9 @@ export const MODELS = {
reasoning: true, reasoning: true,
input: ["text"], input: ["text"],
cost: { cost: {
input: 0.06, input: 0.08,
output: 0.22, output: 0.28,
cacheRead: 0.03, cacheRead: 0,
cacheWrite: 0, cacheWrite: 0,
}, },
contextWindow: 40960, contextWindow: 40960,
@ -8950,9 +9087,9 @@ export const MODELS = {
reasoning: false, reasoning: false,
input: ["text"], input: ["text"],
cost: { cost: {
input: 0.08, input: 0.09,
output: 0.33, output: 0.3,
cacheRead: 0.04, cacheRead: 0,
cacheWrite: 0, cacheWrite: 0,
}, },
contextWindow: 262144, contextWindow: 262144,
@ -8992,23 +9129,6 @@ export const MODELS = {
contextWindow: 40960, contextWindow: 40960,
maxTokens: 40960, maxTokens: 40960,
} satisfies Model<"openai-completions">, } satisfies Model<"openai-completions">,
"qwen/qwen3-4b": {
id: "qwen/qwen3-4b",
name: "Qwen: Qwen3 4B",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: true,
input: ["text"],
cost: {
input: 0.0715,
output: 0.273,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 131072,
maxTokens: 8192,
} satisfies Model<"openai-completions">,
"qwen/qwen3-4b:free": { "qwen/qwen3-4b:free": {
id: "qwen/qwen3-4b:free", id: "qwen/qwen3-4b:free",
name: "Qwen: Qwen3 4B (free)", name: "Qwen: Qwen3 4B (free)",
@ -9553,23 +9673,6 @@ export const MODELS = {
contextWindow: 163840, contextWindow: 163840,
maxTokens: 163840, maxTokens: 163840,
} satisfies Model<"openai-completions">, } satisfies Model<"openai-completions">,
"tngtech/tng-r1t-chimera": {
id: "tngtech/tng-r1t-chimera",
name: "TNG: R1T Chimera",
api: "openai-completions",
provider: "openrouter",
baseUrl: "https://openrouter.ai/api/v1",
reasoning: true,
input: ["text"],
cost: {
input: 0.25,
output: 0.85,
cacheRead: 0.125,
cacheWrite: 0,
},
contextWindow: 163840,
maxTokens: 65536,
} satisfies Model<"openai-completions">,
"upstage/solar-pro-3:free": { "upstage/solar-pro-3:free": {
id: "upstage/solar-pro-3:free", id: "upstage/solar-pro-3:free",
name: "Upstage: Solar Pro 3 (free)", name: "Upstage: Solar Pro 3 (free)",
@ -9766,13 +9869,13 @@ export const MODELS = {
reasoning: true, reasoning: true,
input: ["text"], input: ["text"],
cost: { cost: {
input: 0.35, input: 0.55,
output: 1.55, output: 2,
cacheRead: 0.175, cacheRead: 0,
cacheWrite: 0, cacheWrite: 0,
}, },
contextWindow: 131072, contextWindow: 131000,
maxTokens: 65536, maxTokens: 131000,
} satisfies Model<"openai-completions">, } satisfies Model<"openai-completions">,
"z-ai/glm-4.5-air": { "z-ai/glm-4.5-air": {
id: "z-ai/glm-4.5-air", id: "z-ai/glm-4.5-air",
@ -9834,13 +9937,13 @@ export const MODELS = {
reasoning: true, reasoning: true,
input: ["text"], input: ["text"],
cost: { cost: {
input: 0.33999999999999997, input: 0.35,
output: 1.7, output: 1.71,
cacheRead: 0.16999999999999998, cacheRead: 0,
cacheWrite: 0, cacheWrite: 0,
}, },
contextWindow: 202752, contextWindow: 202752,
maxTokens: 65536, maxTokens: 131072,
} satisfies Model<"openai-completions">, } satisfies Model<"openai-completions">,
"z-ai/glm-4.6:exacto": { "z-ai/glm-4.6:exacto": {
id: "z-ai/glm-4.6:exacto", id: "z-ai/glm-4.6:exacto",
@ -10369,7 +10472,7 @@ export const MODELS = {
cacheWrite: 3.75, cacheWrite: 3.75,
}, },
contextWindow: 1000000, contextWindow: 1000000,
maxTokens: 64000, maxTokens: 128000,
} satisfies Model<"anthropic-messages">, } satisfies Model<"anthropic-messages">,
"arcee-ai/trinity-large-preview": { "arcee-ai/trinity-large-preview": {
id: "arcee-ai/trinity-large-preview", id: "arcee-ai/trinity-large-preview",
@ -10626,6 +10729,23 @@ export const MODELS = {
contextWindow: 1000000, contextWindow: 1000000,
maxTokens: 64000, maxTokens: 64000,
} satisfies Model<"anthropic-messages">, } satisfies Model<"anthropic-messages">,
"google/gemini-3.1-pro-preview": {
id: "google/gemini-3.1-pro-preview",
name: "Gemini 3.1 Pro Preview",
api: "anthropic-messages",
provider: "vercel-ai-gateway",
baseUrl: "https://ai-gateway.vercel.sh",
reasoning: true,
input: ["text", "image"],
cost: {
input: 2,
output: 12,
cacheRead: 0.19999999999999998,
cacheWrite: 0,
},
contextWindow: 1000000,
maxTokens: 64000,
} satisfies Model<"anthropic-messages">,
"inception/mercury-coder-small": { "inception/mercury-coder-small": {
id: "inception/mercury-coder-small", id: "inception/mercury-coder-small",
name: "Mercury Coder Small Beta", name: "Mercury Coder Small Beta",

View file

@ -480,10 +480,10 @@ describe("totalTokens field", () => {
); );
it( it(
"mistralai/mistral-small-3.1-24b-instruct - should return totalTokens equal to sum of components", "mistralai/mistral-small-3.2-24b-instruct - should return totalTokens equal to sum of components",
{ retry: 3, timeout: 60000 }, { retry: 3, timeout: 60000 },
async () => { async () => {
const llm = getModel("openrouter", "mistralai/mistral-small-3.1-24b-instruct"); const llm = getModel("openrouter", "mistralai/mistral-small-3.2-24b-instruct");
console.log(`\nOpenRouter / ${llm.id}:`); console.log(`\nOpenRouter / ${llm.id}:`);
const { first, second } = await testTotalTokensWithCache(llm, { apiKey: process.env.OPENROUTER_API_KEY }); const { first, second } = await testTotalTokensWithCache(llm, { apiKey: process.env.OPENROUTER_API_KEY });

View file

@ -2,6 +2,11 @@
## [Unreleased] ## [Unreleased]
### Changed
- Updated bundled model catalog to add Gemini 3.1 Pro Preview for Google Vertex and keep Google Gemini CLI and Antigravity Gemini catalogs aligned with currently exposed models.
- Added Claude Opus 4.6 Thinking to the Google Antigravity model catalog.
## [0.53.0] - 2026-02-17 ## [0.53.0] - 2026-02-17
### Breaking Changes ### Breaking Changes