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,
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",
name: "GPT-OSS 120B Medium (Antigravity)",
@ -1122,6 +1134,18 @@ async function generateModels() {
contextWindow: 1000000,
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",
name: "Gemini 3 Flash Preview (Vertex)",

View file

@ -362,6 +362,23 @@ export const MODELS = {
contextWindow: 200000,
maxTokens: 64000,
} 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": {
id: "cohere.command-r-plus-v1:0",
name: "Command R+",
@ -532,6 +549,23 @@ export const MODELS = {
contextWindow: 200000,
maxTokens: 64000,
} 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": {
id: "global.anthropic.claude-haiku-4-5-20251001-v1:0",
name: "Claude Haiku 4.5 (Global)",
@ -617,6 +651,23 @@ export const MODELS = {
contextWindow: 200000,
maxTokens: 64000,
} 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": {
id: "google.gemma-3-27b-it",
name: "Google Gemma 3 27B Instruct",
@ -1280,6 +1331,23 @@ export const MODELS = {
contextWindow: 200000,
maxTokens: 64000,
} 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": {
id: "writer.palmyra-x4-v1:0",
name: "Palmyra X4",
@ -2517,6 +2585,24 @@ export const MODELS = {
contextWindow: 128000,
maxTokens: 32000,
} 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": {
id: "gemini-2.5-pro",
name: "Gemini 2.5 Pro",
@ -3066,6 +3152,40 @@ export const MODELS = {
contextWindow: 1000000,
maxTokens: 64000,
} 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": {
id: "gemini-flash-latest",
name: "Gemini Flash Latest",
@ -3153,6 +3273,23 @@ export const MODELS = {
contextWindow: 200000,
maxTokens: 64000,
} 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": {
id: "claude-sonnet-4-5",
name: "Claude Sonnet 4.5 (Antigravity)",
@ -3531,6 +3668,23 @@ export const MODELS = {
contextWindow: 1000000,
maxTokens: 64000,
} 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": {
"deepseek-r1-distill-llama-70b": {
@ -5457,9 +5611,9 @@ export const MODELS = {
"big-pickle": {
id: "big-pickle",
name: "Big Pickle",
api: "openai-completions",
api: "anthropic-messages",
provider: "opencode",
baseUrl: "https://opencode.ai/zen/v1",
baseUrl: "https://opencode.ai/zen",
reasoning: true,
input: ["text"],
cost: {
@ -5470,7 +5624,7 @@ export const MODELS = {
},
contextWindow: 200000,
maxTokens: 128000,
} satisfies Model<"openai-completions">,
} satisfies Model<"anthropic-messages">,
"claude-3-5-haiku": {
id: "claude-3-5-haiku",
name: "Claude Haiku 3.5",
@ -5590,6 +5744,23 @@ export const MODELS = {
contextWindow: 200000,
maxTokens: 64000,
} 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": {
id: "gemini-3-flash",
name: "Gemini 3 Flash",
@ -5624,6 +5795,23 @@ export const MODELS = {
contextWindow: 1048576,
maxTokens: 65536,
} 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": {
id: "glm-4.6",
name: "GLM-4.6",
@ -5896,23 +6084,6 @@ export const MODELS = {
contextWindow: 262144,
maxTokens: 262144,
} 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": {
id: "minimax-m2.1",
name: "MiniMax M2.1",
@ -5950,9 +6121,9 @@ export const MODELS = {
"minimax-m2.5-free": {
id: "minimax-m2.5-free",
name: "MiniMax M2.5 Free",
api: "openai-completions",
api: "anthropic-messages",
provider: "opencode",
baseUrl: "https://opencode.ai/zen/v1",
baseUrl: "https://opencode.ai/zen",
reasoning: true,
input: ["text"],
cost: {
@ -5963,6 +6134,23 @@ export const MODELS = {
},
contextWindow: 204800,
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">,
},
"openrouter": {
@ -6147,8 +6335,8 @@ export const MODELS = {
cost: {
input: 6,
output: 30,
cacheRead: 0,
cacheWrite: 0,
cacheRead: 0.6,
cacheWrite: 7.5,
},
contextWindow: 200000,
maxTokens: 8192,
@ -6519,9 +6707,9 @@ export const MODELS = {
reasoning: false,
input: ["text"],
cost: {
input: 0.3,
output: 1.2,
cacheRead: 0.15,
input: 0.32,
output: 0.8899999999999999,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 163840,
@ -6748,23 +6936,6 @@ export const MODELS = {
contextWindow: 1048576,
maxTokens: 65535,
} 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": {
id: "google/gemini-2.5-pro",
name: "Google: Gemini 2.5 Pro",
@ -6850,6 +7021,23 @@ export const MODELS = {
contextWindow: 1048576,
maxTokens: 65536,
} 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": {
id: "google/gemma-3-27b-it",
name: "Google: Gemma 3 27B",
@ -7165,13 +7353,13 @@ export const MODELS = {
reasoning: false,
input: ["text"],
cost: {
input: 0.049999999999999996,
output: 0.22,
cacheRead: 0.024999999999999998,
input: 0.39999999999999997,
output: 2,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 65536,
maxTokens: 4096,
} satisfies Model<"openai-completions">,
"mistralai/devstral-medium": {
id: "mistralai/devstral-medium",
@ -7411,23 +7599,6 @@ export const MODELS = {
contextWindow: 32768,
maxTokens: 16384,
} 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": {
id: "mistralai/mistral-small-3.1-24b-instruct:free",
name: "Mistral: Mistral Small 3.1 24B (free)",
@ -7607,13 +7778,13 @@ export const MODELS = {
reasoning: true,
input: ["text"],
cost: {
input: 0.39999999999999997,
output: 1.75,
cacheRead: 0.19999999999999998,
input: 0.47,
output: 2,
cacheRead: 0.14100000000000001,
cacheWrite: 0,
},
contextWindow: 262144,
maxTokens: 65535,
contextWindow: 131072,
maxTokens: 4096,
} satisfies Model<"openai-completions">,
"moonshotai/kimi-k2.5": {
id: "moonshotai/kimi-k2.5",
@ -7649,40 +7820,6 @@ export const MODELS = {
contextWindow: 131072,
maxTokens: 163840,
} 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": {
id: "nvidia/llama-3.1-nemotron-70b-instruct",
name: "NVIDIA: Llama 3.1 Nemotron 70B Instruct",
@ -8865,9 +9002,9 @@ export const MODELS = {
reasoning: true,
input: ["text"],
cost: {
input: 0.049999999999999996,
output: 0.22,
cacheRead: 0.024999999999999998,
input: 0.06,
output: 0.24,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 40960,
@ -8882,13 +9019,13 @@ export const MODELS = {
reasoning: true,
input: ["text"],
cost: {
input: 0.3,
output: 1.2,
cacheRead: 0.15,
input: 0.45499999999999996,
output: 1.8199999999999998,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 40960,
maxTokens: 40960,
contextWindow: 131072,
maxTokens: 8192,
} satisfies Model<"openai-completions">,
"qwen/qwen3-235b-a22b-2507": {
id: "qwen/qwen3-235b-a22b-2507",
@ -8933,9 +9070,9 @@ export const MODELS = {
reasoning: true,
input: ["text"],
cost: {
input: 0.06,
output: 0.22,
cacheRead: 0.03,
input: 0.08,
output: 0.28,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 40960,
@ -8950,9 +9087,9 @@ export const MODELS = {
reasoning: false,
input: ["text"],
cost: {
input: 0.08,
output: 0.33,
cacheRead: 0.04,
input: 0.09,
output: 0.3,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 262144,
@ -8992,23 +9129,6 @@ export const MODELS = {
contextWindow: 40960,
maxTokens: 40960,
} 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": {
id: "qwen/qwen3-4b:free",
name: "Qwen: Qwen3 4B (free)",
@ -9553,23 +9673,6 @@ export const MODELS = {
contextWindow: 163840,
maxTokens: 163840,
} 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": {
id: "upstage/solar-pro-3:free",
name: "Upstage: Solar Pro 3 (free)",
@ -9766,13 +9869,13 @@ export const MODELS = {
reasoning: true,
input: ["text"],
cost: {
input: 0.35,
output: 1.55,
cacheRead: 0.175,
input: 0.55,
output: 2,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 131072,
maxTokens: 65536,
contextWindow: 131000,
maxTokens: 131000,
} satisfies Model<"openai-completions">,
"z-ai/glm-4.5-air": {
id: "z-ai/glm-4.5-air",
@ -9834,13 +9937,13 @@ export const MODELS = {
reasoning: true,
input: ["text"],
cost: {
input: 0.33999999999999997,
output: 1.7,
cacheRead: 0.16999999999999998,
input: 0.35,
output: 1.71,
cacheRead: 0,
cacheWrite: 0,
},
contextWindow: 202752,
maxTokens: 65536,
maxTokens: 131072,
} satisfies Model<"openai-completions">,
"z-ai/glm-4.6:exacto": {
id: "z-ai/glm-4.6:exacto",
@ -10369,7 +10472,7 @@ export const MODELS = {
cacheWrite: 3.75,
},
contextWindow: 1000000,
maxTokens: 64000,
maxTokens: 128000,
} satisfies Model<"anthropic-messages">,
"arcee-ai/trinity-large-preview": {
id: "arcee-ai/trinity-large-preview",
@ -10626,6 +10729,23 @@ export const MODELS = {
contextWindow: 1000000,
maxTokens: 64000,
} 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": {
id: "inception/mercury-coder-small",
name: "Mercury Coder Small Beta",

View file

@ -480,10 +480,10 @@ describe("totalTokens field", () => {
);
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 },
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}:`);
const { first, second } = await testTotalTokensWithCache(llm, { apiKey: process.env.OPENROUTER_API_KEY });

View file

@ -2,6 +2,11 @@
## [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
### Breaking Changes