Browse Source

feat: update Gemini models with latest 09-2025 versions (#8486)

* feat: update Gemini models with latest 09-2025 versions

- Add gemini-flash-latest and gemini-flash-lite-latest models
- Add gemini-2.5-flash-preview-09-2025 and gemini-2.5-flash-lite-preview-09-2025
- Reorganize models list with most recent versions at the top
- Maintain all existing models for backward compatibility

Fixes #8485

* fix: restore missing maxThinkingTokens and supportsReasoningBudget for gemini-2.5-pro-preview-03-25

Backward compatibility regression fix - these properties were accidentally
removed during reorganization and are required to preserve existing
reasoning-budget controls for users pinned to this model version.

---------

Co-authored-by: Roo Code <[email protected]>
Co-authored-by: daniel-lxs <[email protected]>
roomote[bot] 4 months ago
parent
commit
49fde41616
1 changed files with 124 additions and 51 deletions
  1. 124 51
      packages/types/src/providers/gemini.ts

+ 124 - 51
packages/types/src/providers/gemini.ts

@@ -6,25 +6,73 @@ export type GeminiModelId = keyof typeof geminiModels
 export const geminiDefaultModelId: GeminiModelId = "gemini-2.0-flash-001"
 export const geminiDefaultModelId: GeminiModelId = "gemini-2.0-flash-001"
 
 
 export const geminiModels = {
 export const geminiModels = {
-	"gemini-2.5-flash-preview-04-17:thinking": {
-		maxTokens: 65_535,
+	// Latest models (pointing to the most recent stable versions)
+	"gemini-flash-latest": {
+		maxTokens: 65_536,
 		contextWindow: 1_048_576,
 		contextWindow: 1_048_576,
 		supportsImages: true,
 		supportsImages: true,
-		supportsPromptCache: false,
-		inputPrice: 0.15,
-		outputPrice: 3.5,
+		supportsPromptCache: true,
+		inputPrice: 0.3,
+		outputPrice: 2.5,
+		cacheReadsPrice: 0.075,
+		cacheWritesPrice: 1.0,
 		maxThinkingTokens: 24_576,
 		maxThinkingTokens: 24_576,
 		supportsReasoningBudget: true,
 		supportsReasoningBudget: true,
-		requiredReasoningBudget: true,
 	},
 	},
-	"gemini-2.5-flash-preview-04-17": {
-		maxTokens: 65_535,
+	"gemini-flash-lite-latest": {
+		maxTokens: 65_536,
 		contextWindow: 1_048_576,
 		contextWindow: 1_048_576,
 		supportsImages: true,
 		supportsImages: true,
-		supportsPromptCache: false,
-		inputPrice: 0.15,
-		outputPrice: 0.6,
+		supportsPromptCache: true,
+		inputPrice: 0.1,
+		outputPrice: 0.4,
+		cacheReadsPrice: 0.025,
+		cacheWritesPrice: 1.0,
+		supportsReasoningBudget: true,
+		maxThinkingTokens: 24_576,
+	},
+
+	// 2.5 Flash models (09-2025 versions - most recent)
+	"gemini-2.5-flash-preview-09-2025": {
+		maxTokens: 65_536,
+		contextWindow: 1_048_576,
+		supportsImages: true,
+		supportsPromptCache: true,
+		inputPrice: 0.3,
+		outputPrice: 2.5,
+		cacheReadsPrice: 0.075,
+		cacheWritesPrice: 1.0,
+		maxThinkingTokens: 24_576,
+		supportsReasoningBudget: true,
+	},
+	"gemini-2.5-flash-lite-preview-09-2025": {
+		maxTokens: 65_536,
+		contextWindow: 1_048_576,
+		supportsImages: true,
+		supportsPromptCache: true,
+		inputPrice: 0.1,
+		outputPrice: 0.4,
+		cacheReadsPrice: 0.025,
+		cacheWritesPrice: 1.0,
+		supportsReasoningBudget: true,
+		maxThinkingTokens: 24_576,
+	},
+
+	// 2.5 Flash models (06-17 version)
+	"gemini-2.5-flash-lite-preview-06-17": {
+		maxTokens: 64_000,
+		contextWindow: 1_048_576,
+		supportsImages: true,
+		supportsPromptCache: true,
+		inputPrice: 0.1,
+		outputPrice: 0.4,
+		cacheReadsPrice: 0.025,
+		cacheWritesPrice: 1.0,
+		supportsReasoningBudget: true,
+		maxThinkingTokens: 24_576,
 	},
 	},
+
+	// 2.5 Flash models (05-20 versions)
 	"gemini-2.5-flash-preview-05-20:thinking": {
 	"gemini-2.5-flash-preview-05-20:thinking": {
 		maxTokens: 65_535,
 		maxTokens: 65_535,
 		contextWindow: 1_048_576,
 		contextWindow: 1_048_576,
@@ -48,6 +96,29 @@ export const geminiModels = {
 		cacheReadsPrice: 0.0375,
 		cacheReadsPrice: 0.0375,
 		cacheWritesPrice: 1.0,
 		cacheWritesPrice: 1.0,
 	},
 	},
+
+	// 2.5 Flash models (04-17 versions)
+	"gemini-2.5-flash-preview-04-17:thinking": {
+		maxTokens: 65_535,
+		contextWindow: 1_048_576,
+		supportsImages: true,
+		supportsPromptCache: false,
+		inputPrice: 0.15,
+		outputPrice: 3.5,
+		maxThinkingTokens: 24_576,
+		supportsReasoningBudget: true,
+		requiredReasoningBudget: true,
+	},
+	"gemini-2.5-flash-preview-04-17": {
+		maxTokens: 65_535,
+		contextWindow: 1_048_576,
+		supportsImages: true,
+		supportsPromptCache: false,
+		inputPrice: 0.15,
+		outputPrice: 0.6,
+	},
+
+	// 2.5 Flash stable
 	"gemini-2.5-flash": {
 	"gemini-2.5-flash": {
 		maxTokens: 64_000,
 		maxTokens: 64_000,
 		contextWindow: 1_048_576,
 		contextWindow: 1_048_576,
@@ -60,15 +131,9 @@ export const geminiModels = {
 		maxThinkingTokens: 24_576,
 		maxThinkingTokens: 24_576,
 		supportsReasoningBudget: true,
 		supportsReasoningBudget: true,
 	},
 	},
-	"gemini-2.5-pro-exp-03-25": {
-		maxTokens: 65_535,
-		contextWindow: 1_048_576,
-		supportsImages: true,
-		supportsPromptCache: false,
-		inputPrice: 0,
-		outputPrice: 0,
-	},
-	"gemini-2.5-pro-preview-03-25": {
+
+	// 2.5 Pro models
+	"gemini-2.5-pro-preview-06-05": {
 		maxTokens: 65_535,
 		maxTokens: 65_535,
 		contextWindow: 1_048_576,
 		contextWindow: 1_048_576,
 		supportsImages: true,
 		supportsImages: true,
@@ -77,6 +142,8 @@ export const geminiModels = {
 		outputPrice: 15,
 		outputPrice: 15,
 		cacheReadsPrice: 0.625,
 		cacheReadsPrice: 0.625,
 		cacheWritesPrice: 4.5,
 		cacheWritesPrice: 4.5,
+		maxThinkingTokens: 32_768,
+		supportsReasoningBudget: true,
 		tiers: [
 		tiers: [
 			{
 			{
 				contextWindow: 200_000,
 				contextWindow: 200_000,
@@ -116,7 +183,7 @@ export const geminiModels = {
 			},
 			},
 		],
 		],
 	},
 	},
-	"gemini-2.5-pro-preview-06-05": {
+	"gemini-2.5-pro-preview-03-25": {
 		maxTokens: 65_535,
 		maxTokens: 65_535,
 		contextWindow: 1_048_576,
 		contextWindow: 1_048_576,
 		supportsImages: true,
 		supportsImages: true,
@@ -142,6 +209,14 @@ export const geminiModels = {
 			},
 			},
 		],
 		],
 	},
 	},
+	"gemini-2.5-pro-exp-03-25": {
+		maxTokens: 65_535,
+		contextWindow: 1_048_576,
+		supportsImages: true,
+		supportsPromptCache: false,
+		inputPrice: 0,
+		outputPrice: 0,
+	},
 	"gemini-2.5-pro": {
 	"gemini-2.5-pro": {
 		maxTokens: 64_000,
 		maxTokens: 64_000,
 		contextWindow: 1_048_576,
 		contextWindow: 1_048_576,
@@ -169,16 +244,8 @@ export const geminiModels = {
 			},
 			},
 		],
 		],
 	},
 	},
-	"gemini-2.0-flash-001": {
-		maxTokens: 8192,
-		contextWindow: 1_048_576,
-		supportsImages: true,
-		supportsPromptCache: true,
-		inputPrice: 0.1,
-		outputPrice: 0.4,
-		cacheReadsPrice: 0.025,
-		cacheWritesPrice: 1.0,
-	},
+
+	// 2.0 Flash models
 	"gemini-2.0-flash-lite-preview-02-05": {
 	"gemini-2.0-flash-lite-preview-02-05": {
 		maxTokens: 8192,
 		maxTokens: 8192,
 		contextWindow: 1_048_576,
 		contextWindow: 1_048_576,
@@ -187,14 +254,6 @@ export const geminiModels = {
 		inputPrice: 0,
 		inputPrice: 0,
 		outputPrice: 0,
 		outputPrice: 0,
 	},
 	},
-	"gemini-2.0-pro-exp-02-05": {
-		maxTokens: 8192,
-		contextWindow: 2_097_152,
-		supportsImages: true,
-		supportsPromptCache: false,
-		inputPrice: 0,
-		outputPrice: 0,
-	},
 	"gemini-2.0-flash-thinking-exp-01-21": {
 	"gemini-2.0-flash-thinking-exp-01-21": {
 		maxTokens: 65_536,
 		maxTokens: 65_536,
 		contextWindow: 1_048_576,
 		contextWindow: 1_048_576,
@@ -219,6 +278,28 @@ export const geminiModels = {
 		inputPrice: 0,
 		inputPrice: 0,
 		outputPrice: 0,
 		outputPrice: 0,
 	},
 	},
+	"gemini-2.0-flash-001": {
+		maxTokens: 8192,
+		contextWindow: 1_048_576,
+		supportsImages: true,
+		supportsPromptCache: true,
+		inputPrice: 0.1,
+		outputPrice: 0.4,
+		cacheReadsPrice: 0.025,
+		cacheWritesPrice: 1.0,
+	},
+
+	// 2.0 Pro models
+	"gemini-2.0-pro-exp-02-05": {
+		maxTokens: 8192,
+		contextWindow: 2_097_152,
+		supportsImages: true,
+		supportsPromptCache: false,
+		inputPrice: 0,
+		outputPrice: 0,
+	},
+
+	// 1.5 Flash models
 	"gemini-1.5-flash-002": {
 	"gemini-1.5-flash-002": {
 		maxTokens: 8192,
 		maxTokens: 8192,
 		contextWindow: 1_048_576,
 		contextWindow: 1_048_576,
@@ -259,6 +340,8 @@ export const geminiModels = {
 		inputPrice: 0,
 		inputPrice: 0,
 		outputPrice: 0,
 		outputPrice: 0,
 	},
 	},
+
+	// 1.5 Pro models
 	"gemini-1.5-pro-002": {
 	"gemini-1.5-pro-002": {
 		maxTokens: 8192,
 		maxTokens: 8192,
 		contextWindow: 2_097_152,
 		contextWindow: 2_097_152,
@@ -275,6 +358,8 @@ export const geminiModels = {
 		inputPrice: 0,
 		inputPrice: 0,
 		outputPrice: 0,
 		outputPrice: 0,
 	},
 	},
+
+	// Experimental models
 	"gemini-exp-1206": {
 	"gemini-exp-1206": {
 		maxTokens: 8192,
 		maxTokens: 8192,
 		contextWindow: 2_097_152,
 		contextWindow: 2_097_152,
@@ -283,16 +368,4 @@ export const geminiModels = {
 		inputPrice: 0,
 		inputPrice: 0,
 		outputPrice: 0,
 		outputPrice: 0,
 	},
 	},
-	"gemini-2.5-flash-lite-preview-06-17": {
-		maxTokens: 64_000,
-		contextWindow: 1_048_576,
-		supportsImages: true,
-		supportsPromptCache: true,
-		inputPrice: 0.1,
-		outputPrice: 0.4,
-		cacheReadsPrice: 0.025,
-		cacheWritesPrice: 1.0,
-		supportsReasoningBudget: true,
-		maxThinkingTokens: 24_576,
-	},
 } as const satisfies Record<string, ModelInfo>
 } as const satisfies Record<string, ModelInfo>