From 17fbfae80c670ad03d15e764cc0a33e30b61b124 Mon Sep 17 00:00:00 2001 From: Peter Dave Hello Date: Fri, 20 Feb 2026 02:44:58 +0800 Subject: [PATCH] Add Gemini 3.1 Pro support and set Gemini default model Add Gemini 3.1 model entries for Gemini and Vertex providers. Include the Gemini custom-tools endpoint model id in Gemini provider. Update geminiDefaultModelId to gemini-3.1-pro-preview. References: - https://ai.google.dev/gemini-api/docs/models/gemini-3.1-pro-preview - https://ai.google.dev/gemini-api/docs/pricing - https://ai.google.dev/gemini-api/docs/thinking - https://cloud.google.com/vertex-ai/generative-ai/docs/models/gemini/3-1-pro - https://cloud.google.com/vertex-ai/generative-ai/pricing - https://cloud.google.com/blog/products/ai-machine-learning/gemini-3-1-pro-on-gemini-cli-gemini-enterprise-and-vertex-ai - https://deepmind.google/models/model-cards/gemini-3-1-pro/ - https://blog.google/innovation-and-ai/models-and-research/gemini-models/gemini-3-1-pro/ --- packages/types/src/providers/gemini.ts | 60 +++++++++++++++++++++++++- packages/types/src/providers/vertex.ts | 29 +++++++++++++ 2 files changed, 88 insertions(+), 1 deletion(-) diff --git a/packages/types/src/providers/gemini.ts b/packages/types/src/providers/gemini.ts index 18aa2b77510..4734606d5d9 100644 --- a/packages/types/src/providers/gemini.ts +++ b/packages/types/src/providers/gemini.ts @@ -3,9 +3,67 @@ import type { ModelInfo } from "../model.js" // https://ai.google.dev/gemini-api/docs/models/gemini export type GeminiModelId = keyof typeof geminiModels -export const geminiDefaultModelId: GeminiModelId = "gemini-3-pro-preview" +export const geminiDefaultModelId: GeminiModelId = "gemini-3.1-pro-preview" export const geminiModels = { + "gemini-3.1-pro-preview": { + maxTokens: 65_536, + contextWindow: 1_048_576, + supportsImages: true, + supportsPromptCache: true, + supportsReasoningEffort: ["low", "medium", "high"], + reasoningEffort: "low", + + supportsTemperature: true, + defaultTemperature: 1, + inputPrice: 4.0, + outputPrice: 18.0, + cacheReadsPrice: 0.4, + cacheWritesPrice: 4.5, + tiers: [ + { + contextWindow: 200_000, + inputPrice: 2.0, + outputPrice: 12.0, + cacheReadsPrice: 0.2, + }, + { + contextWindow: Infinity, + inputPrice: 4.0, + outputPrice: 18.0, + cacheReadsPrice: 0.4, + }, + ], + }, + "gemini-3.1-pro-preview-customtools": { + maxTokens: 65_536, + contextWindow: 1_048_576, + supportsImages: true, + supportsPromptCache: true, + supportsReasoningEffort: ["low", "medium", "high"], + reasoningEffort: "low", + + supportsTemperature: true, + defaultTemperature: 1, + inputPrice: 4.0, + outputPrice: 18.0, + cacheReadsPrice: 0.4, + cacheWritesPrice: 4.5, + tiers: [ + { + contextWindow: 200_000, + inputPrice: 2.0, + outputPrice: 12.0, + cacheReadsPrice: 0.2, + }, + { + contextWindow: Infinity, + inputPrice: 4.0, + outputPrice: 18.0, + cacheReadsPrice: 0.4, + }, + ], + }, "gemini-3-pro-preview": { maxTokens: 65_536, contextWindow: 1_048_576, diff --git a/packages/types/src/providers/vertex.ts b/packages/types/src/providers/vertex.ts index 2f8a05602a4..b1291d2f592 100644 --- a/packages/types/src/providers/vertex.ts +++ b/packages/types/src/providers/vertex.ts @@ -6,6 +6,35 @@ export type VertexModelId = keyof typeof vertexModels export const vertexDefaultModelId: VertexModelId = "claude-sonnet-4-5@20250929" export const vertexModels = { + "gemini-3.1-pro-preview": { + maxTokens: 65_536, + contextWindow: 1_048_576, + supportsImages: true, + supportsPromptCache: true, + supportsReasoningEffort: ["low", "medium", "high"], + reasoningEffort: "low", + + supportsTemperature: true, + defaultTemperature: 1, + inputPrice: 4.0, + outputPrice: 18.0, + cacheReadsPrice: 0.4, + cacheWritesPrice: 4.5, + tiers: [ + { + contextWindow: 200_000, + inputPrice: 2.0, + outputPrice: 12.0, + cacheReadsPrice: 0.2, + }, + { + contextWindow: Infinity, + inputPrice: 4.0, + outputPrice: 18.0, + cacheReadsPrice: 0.4, + }, + ], + }, "gemini-3-pro-preview": { maxTokens: 65_536, contextWindow: 1_048_576,