From 6008b2a7cec12477cd7f903aeda95943d6386bfe Mon Sep 17 00:00:00 2001 From: Jean Bispo <1jeanbispo@gmail.com> Date: Mon, 25 May 2026 21:40:09 -0300 Subject: [PATCH 1/5] feat(gemini): gemini-3.5-flash support --- packages/types/src/providers/gemini.ts | 13 +++++++++++++ packages/types/src/providers/vertex.ts | 12 ++++++++++++ 2 files changed, 25 insertions(+) diff --git a/packages/types/src/providers/gemini.ts b/packages/types/src/providers/gemini.ts index 4734606d5d..eea5f0ad61 100644 --- a/packages/types/src/providers/gemini.ts +++ b/packages/types/src/providers/gemini.ts @@ -6,6 +6,19 @@ export type GeminiModelId = keyof typeof geminiModels export const geminiDefaultModelId: GeminiModelId = "gemini-3.1-pro-preview" export const geminiModels = { + "gemini-3.5-flash": { + maxTokens: 65_536, + contextWindow: 1_048_576, + supportsImages: true, + supportsPromptCache: true, + supportsReasoningEffort: ["minimal", "low", "medium", "high"], + reasoningEffort: "medium", + inputPrice: 1.5, + outputPrice: 9, + cacheReadsPrice: 0.15, + cacheWritesPrice: 0.083, + supportsReasoningBudget: false, + }, "gemini-3.1-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 e27c0cb101..7ded02abe4 100644 --- a/packages/types/src/providers/vertex.ts +++ b/packages/types/src/providers/vertex.ts @@ -6,6 +6,18 @@ export type VertexModelId = keyof typeof vertexModels export const vertexDefaultModelId: VertexModelId = "claude-sonnet-4-5@20250929" export const vertexModels = { + "gemini-3.5-flash": { + maxTokens: 65_536, + contextWindow: 1_048_576, + supportsImages: true, + supportsPromptCache: true, + supportsReasoningEffort: ["minimal", "low", "medium", "high"], + reasoningEffort: "medium", + inputPrice: 1.5, + outputPrice: 9, + cacheReadsPrice: 0.15, + cacheWritesPrice: 0.083, + }, "gemini-3.1-pro-preview": { maxTokens: 65_536, contextWindow: 1_048_576, From c2a777c38b19e88bebbdf9c44961848ca5a78b8d Mon Sep 17 00:00:00 2001 From: Jean Bispo <1jeanbispo@gmail.com> Date: Mon, 25 May 2026 21:52:07 -0300 Subject: [PATCH 2/5] fix(vertex): reaffirm lack of support for reasoning budget --- packages/types/src/providers/vertex.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/types/src/providers/vertex.ts b/packages/types/src/providers/vertex.ts index 7ded02abe4..f83262e5ed 100644 --- a/packages/types/src/providers/vertex.ts +++ b/packages/types/src/providers/vertex.ts @@ -17,6 +17,7 @@ export const vertexModels = { outputPrice: 9, cacheReadsPrice: 0.15, cacheWritesPrice: 0.083, + supportsReasoningBudget: false, }, "gemini-3.1-pro-preview": { maxTokens: 65_536, From d8d9f52e1d4c7dd926dc2c4b9d94ae4e451fbd79 Mon Sep 17 00:00:00 2001 From: Jean Bispo <1jeanbispo@gmail.com> Date: Tue, 26 May 2026 17:10:46 -0300 Subject: [PATCH 3/5] Update packages/types/src/providers/gemini.ts Co-authored-by: edelauna <54631123+edelauna@users.noreply.github.com> --- packages/types/src/providers/gemini.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/types/src/providers/gemini.ts b/packages/types/src/providers/gemini.ts index eea5f0ad61..b26faa39bd 100644 --- a/packages/types/src/providers/gemini.ts +++ b/packages/types/src/providers/gemini.ts @@ -16,7 +16,7 @@ export const geminiModels = { inputPrice: 1.5, outputPrice: 9, cacheReadsPrice: 0.15, - cacheWritesPrice: 0.083, + cacheWritesPrice: 1.0, supportsReasoningBudget: false, }, "gemini-3.1-pro-preview": { From beca98387492ed11d2eb385dd211c3acf60ffb9f Mon Sep 17 00:00:00 2001 From: Jean Bispo <1jeanbispo@gmail.com> Date: Tue, 26 May 2026 17:11:04 -0300 Subject: [PATCH 4/5] Update packages/types/src/providers/vertex.ts Co-authored-by: edelauna <54631123+edelauna@users.noreply.github.com> --- packages/types/src/providers/vertex.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/types/src/providers/vertex.ts b/packages/types/src/providers/vertex.ts index f83262e5ed..0709561a72 100644 --- a/packages/types/src/providers/vertex.ts +++ b/packages/types/src/providers/vertex.ts @@ -16,7 +16,7 @@ export const vertexModels = { inputPrice: 1.5, outputPrice: 9, cacheReadsPrice: 0.15, - cacheWritesPrice: 0.083, + cacheWritesPrice: 1.0, supportsReasoningBudget: false, }, "gemini-3.1-pro-preview": { From 938b00f995481c781acfc226e56d7c90842cfa36 Mon Sep 17 00:00:00 2001 From: Jean Bispo <1jeanbispo@gmail.com> Date: Wed, 3 Jun 2026 11:56:56 -0300 Subject: [PATCH 5/5] fix(gemini): cov tests error --- src/api/providers/__tests__/gemini.spec.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/api/providers/__tests__/gemini.spec.ts b/src/api/providers/__tests__/gemini.spec.ts index bc1ca6e360..e2633474a3 100644 --- a/src/api/providers/__tests__/gemini.spec.ts +++ b/src/api/providers/__tests__/gemini.spec.ts @@ -176,12 +176,12 @@ describe("GeminiHandler", () => { it("should honor a custom gemini model id not present in geminiModels (#227)", () => { const customHandler = new GeminiHandler({ - apiModelId: "gemini-3.5-flash", + apiModelId: "gemini-9.9-nonexistent", geminiApiKey: "test-key", }) const modelInfo = customHandler.getModel() // The configured id must be invoked, not silently swapped for the default. - expect(modelInfo.id).toBe("gemini-3.5-flash") + expect(modelInfo.id).toBe("gemini-9.9-nonexistent") expect(modelInfo.id).not.toBe(geminiDefaultModelId) // A baseline ModelInfo is provided so downstream params resolve. expect(modelInfo.info).toBeDefined()