Spaces:
Paused
Paused
| // Package registry provides model definitions for various AI service providers. | |
| // This file stores the static model metadata catalog. | |
| package registry | |
| // GetClaudeModels returns the standard Claude model definitions | |
| func GetClaudeModels() []*ModelInfo { | |
| return []*ModelInfo{ | |
| { | |
| ID: "claude-haiku-4-5-20251001", | |
| Object: "model", | |
| Created: 1759276800, // 2025-10-01 | |
| OwnedBy: "anthropic", | |
| Type: "claude", | |
| DisplayName: "Claude 4.5 Haiku", | |
| ContextLength: 200000, | |
| MaxCompletionTokens: 64000, | |
| Thinking: &ThinkingSupport{Min: 1024, Max: 128000, ZeroAllowed: true, DynamicAllowed: false}, | |
| }, | |
| { | |
| ID: "claude-sonnet-4-5-20250929", | |
| Object: "model", | |
| Created: 1759104000, // 2025-09-29 | |
| OwnedBy: "anthropic", | |
| Type: "claude", | |
| DisplayName: "Claude 4.5 Sonnet", | |
| ContextLength: 200000, | |
| MaxCompletionTokens: 64000, | |
| Thinking: &ThinkingSupport{Min: 1024, Max: 128000, ZeroAllowed: true, DynamicAllowed: false}, | |
| }, | |
| { | |
| ID: "claude-opus-4-6", | |
| Object: "model", | |
| Created: 1770318000, // 2026-02-05 | |
| OwnedBy: "anthropic", | |
| Type: "claude", | |
| DisplayName: "Claude 4.6 Opus", | |
| Description: "Premium model combining maximum intelligence with practical performance", | |
| ContextLength: 1000000, | |
| MaxCompletionTokens: 128000, | |
| Thinking: &ThinkingSupport{Min: 1024, Max: 128000, ZeroAllowed: true, DynamicAllowed: false}, | |
| }, | |
| { | |
| ID: "claude-opus-4-5-20251101", | |
| Object: "model", | |
| Created: 1761955200, // 2025-11-01 | |
| OwnedBy: "anthropic", | |
| Type: "claude", | |
| DisplayName: "Claude 4.5 Opus", | |
| Description: "Premium model combining maximum intelligence with practical performance", | |
| ContextLength: 200000, | |
| MaxCompletionTokens: 64000, | |
| Thinking: &ThinkingSupport{Min: 1024, Max: 128000, ZeroAllowed: true, DynamicAllowed: false}, | |
| }, | |
| { | |
| ID: "claude-opus-4-1-20250805", | |
| Object: "model", | |
| Created: 1722945600, // 2025-08-05 | |
| OwnedBy: "anthropic", | |
| Type: "claude", | |
| DisplayName: "Claude 4.1 Opus", | |
| ContextLength: 200000, | |
| MaxCompletionTokens: 32000, | |
| Thinking: &ThinkingSupport{Min: 1024, Max: 128000, ZeroAllowed: false, DynamicAllowed: false}, | |
| }, | |
| { | |
| ID: "claude-opus-4-20250514", | |
| Object: "model", | |
| Created: 1715644800, // 2025-05-14 | |
| OwnedBy: "anthropic", | |
| Type: "claude", | |
| DisplayName: "Claude 4 Opus", | |
| ContextLength: 200000, | |
| MaxCompletionTokens: 32000, | |
| Thinking: &ThinkingSupport{Min: 1024, Max: 128000, ZeroAllowed: false, DynamicAllowed: false}, | |
| }, | |
| { | |
| ID: "claude-sonnet-4-20250514", | |
| Object: "model", | |
| Created: 1715644800, // 2025-05-14 | |
| OwnedBy: "anthropic", | |
| Type: "claude", | |
| DisplayName: "Claude 4 Sonnet", | |
| ContextLength: 200000, | |
| MaxCompletionTokens: 64000, | |
| Thinking: &ThinkingSupport{Min: 1024, Max: 128000, ZeroAllowed: false, DynamicAllowed: false}, | |
| }, | |
| { | |
| ID: "claude-3-7-sonnet-20250219", | |
| Object: "model", | |
| Created: 1708300800, // 2025-02-19 | |
| OwnedBy: "anthropic", | |
| Type: "claude", | |
| DisplayName: "Claude 3.7 Sonnet", | |
| ContextLength: 128000, | |
| MaxCompletionTokens: 8192, | |
| Thinking: &ThinkingSupport{Min: 1024, Max: 128000, ZeroAllowed: false, DynamicAllowed: false}, | |
| }, | |
| { | |
| ID: "claude-3-5-haiku-20241022", | |
| Object: "model", | |
| Created: 1729555200, // 2024-10-22 | |
| OwnedBy: "anthropic", | |
| Type: "claude", | |
| DisplayName: "Claude 3.5 Haiku", | |
| ContextLength: 128000, | |
| MaxCompletionTokens: 8192, | |
| // Thinking: not supported for Haiku models | |
| }, | |
| } | |
| } | |
| // GetGeminiModels returns the standard Gemini model definitions | |
| func GetGeminiModels() []*ModelInfo { | |
| return []*ModelInfo{ | |
| { | |
| ID: "gemini-2.5-pro", | |
| Object: "model", | |
| Created: 1750118400, | |
| OwnedBy: "google", | |
| Type: "gemini", | |
| Name: "models/gemini-2.5-pro", | |
| Version: "2.5", | |
| DisplayName: "Gemini 2.5 Pro", | |
| Description: "Stable release (June 17th, 2025) of Gemini 2.5 Pro", | |
| InputTokenLimit: 1048576, | |
| OutputTokenLimit: 65536, | |
| SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"}, | |
| Thinking: &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true}, | |
| }, | |
| { | |
| ID: "gemini-2.5-flash", | |
| Object: "model", | |
| Created: 1750118400, | |
| OwnedBy: "google", | |
| Type: "gemini", | |
| Name: "models/gemini-2.5-flash", | |
| Version: "001", | |
| DisplayName: "Gemini 2.5 Flash", | |
| Description: "Stable version of Gemini 2.5 Flash, our mid-size multimodal model that supports up to 1 million tokens, released in June of 2025.", | |
| InputTokenLimit: 1048576, | |
| OutputTokenLimit: 65536, | |
| SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"}, | |
| Thinking: &ThinkingSupport{Min: 0, Max: 24576, ZeroAllowed: true, DynamicAllowed: true}, | |
| }, | |
| { | |
| ID: "gemini-2.5-flash-lite", | |
| Object: "model", | |
| Created: 1753142400, | |
| OwnedBy: "google", | |
| Type: "gemini", | |
| Name: "models/gemini-2.5-flash-lite", | |
| Version: "2.5", | |
| DisplayName: "Gemini 2.5 Flash Lite", | |
| Description: "Our smallest and most cost effective model, built for at scale usage.", | |
| InputTokenLimit: 1048576, | |
| OutputTokenLimit: 65536, | |
| SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"}, | |
| Thinking: &ThinkingSupport{Min: 0, Max: 24576, ZeroAllowed: true, DynamicAllowed: true}, | |
| }, | |
| { | |
| ID: "gemini-3-pro-preview", | |
| Object: "model", | |
| Created: 1737158400, | |
| OwnedBy: "google", | |
| Type: "gemini", | |
| Name: "models/gemini-3-pro-preview", | |
| Version: "3.0", | |
| DisplayName: "Gemini 3 Pro Preview", | |
| Description: "Gemini 3 Pro Preview", | |
| InputTokenLimit: 1048576, | |
| OutputTokenLimit: 65536, | |
| SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"}, | |
| Thinking: &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true, Levels: []string{"low", "high"}}, | |
| }, | |
| { | |
| ID: "gemini-3-flash-preview", | |
| Object: "model", | |
| Created: 1765929600, | |
| OwnedBy: "google", | |
| Type: "gemini", | |
| Name: "models/gemini-3-flash-preview", | |
| Version: "3.0", | |
| DisplayName: "Gemini 3 Flash Preview", | |
| Description: "Gemini 3 Flash Preview", | |
| InputTokenLimit: 1048576, | |
| OutputTokenLimit: 65536, | |
| SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"}, | |
| Thinking: &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true, Levels: []string{"minimal", "low", "medium", "high"}}, | |
| }, | |
| { | |
| ID: "gemini-3-pro-image-preview", | |
| Object: "model", | |
| Created: 1737158400, | |
| OwnedBy: "google", | |
| Type: "gemini", | |
| Name: "models/gemini-3-pro-image-preview", | |
| Version: "3.0", | |
| DisplayName: "Gemini 3 Pro Image Preview", | |
| Description: "Gemini 3 Pro Image Preview", | |
| InputTokenLimit: 1048576, | |
| OutputTokenLimit: 65536, | |
| SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"}, | |
| Thinking: &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true, Levels: []string{"low", "high"}}, | |
| }, | |
| } | |
| } | |
| func GetGeminiVertexModels() []*ModelInfo { | |
| return []*ModelInfo{ | |
| { | |
| ID: "gemini-2.5-pro", | |
| Object: "model", | |
| Created: 1750118400, | |
| OwnedBy: "google", | |
| Type: "gemini", | |
| Name: "models/gemini-2.5-pro", | |
| Version: "2.5", | |
| DisplayName: "Gemini 2.5 Pro", | |
| Description: "Stable release (June 17th, 2025) of Gemini 2.5 Pro", | |
| InputTokenLimit: 1048576, | |
| OutputTokenLimit: 65536, | |
| SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"}, | |
| Thinking: &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true}, | |
| }, | |
| { | |
| ID: "gemini-2.5-flash", | |
| Object: "model", | |
| Created: 1750118400, | |
| OwnedBy: "google", | |
| Type: "gemini", | |
| Name: "models/gemini-2.5-flash", | |
| Version: "001", | |
| DisplayName: "Gemini 2.5 Flash", | |
| Description: "Stable version of Gemini 2.5 Flash, our mid-size multimodal model that supports up to 1 million tokens, released in June of 2025.", | |
| InputTokenLimit: 1048576, | |
| OutputTokenLimit: 65536, | |
| SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"}, | |
| Thinking: &ThinkingSupport{Min: 0, Max: 24576, ZeroAllowed: true, DynamicAllowed: true}, | |
| }, | |
| { | |
| ID: "gemini-2.5-flash-lite", | |
| Object: "model", | |
| Created: 1753142400, | |
| OwnedBy: "google", | |
| Type: "gemini", | |
| Name: "models/gemini-2.5-flash-lite", | |
| Version: "2.5", | |
| DisplayName: "Gemini 2.5 Flash Lite", | |
| Description: "Our smallest and most cost effective model, built for at scale usage.", | |
| InputTokenLimit: 1048576, | |
| OutputTokenLimit: 65536, | |
| SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"}, | |
| Thinking: &ThinkingSupport{Min: 0, Max: 24576, ZeroAllowed: true, DynamicAllowed: true}, | |
| }, | |
| { | |
| ID: "gemini-3-pro-preview", | |
| Object: "model", | |
| Created: 1737158400, | |
| OwnedBy: "google", | |
| Type: "gemini", | |
| Name: "models/gemini-3-pro-preview", | |
| Version: "3.0", | |
| DisplayName: "Gemini 3 Pro Preview", | |
| Description: "Gemini 3 Pro Preview", | |
| InputTokenLimit: 1048576, | |
| OutputTokenLimit: 65536, | |
| SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"}, | |
| Thinking: &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true, Levels: []string{"low", "high"}}, | |
| }, | |
| { | |
| ID: "gemini-3-flash-preview", | |
| Object: "model", | |
| Created: 1765929600, | |
| OwnedBy: "google", | |
| Type: "gemini", | |
| Name: "models/gemini-3-flash-preview", | |
| Version: "3.0", | |
| DisplayName: "Gemini 3 Flash Preview", | |
| Description: "Our most intelligent model built for speed, combining frontier intelligence with superior search and grounding.", | |
| InputTokenLimit: 1048576, | |
| OutputTokenLimit: 65536, | |
| SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"}, | |
| Thinking: &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true, Levels: []string{"minimal", "low", "medium", "high"}}, | |
| }, | |
| { | |
| ID: "gemini-3-pro-image-preview", | |
| Object: "model", | |
| Created: 1737158400, | |
| OwnedBy: "google", | |
| Type: "gemini", | |
| Name: "models/gemini-3-pro-image-preview", | |
| Version: "3.0", | |
| DisplayName: "Gemini 3 Pro Image Preview", | |
| Description: "Gemini 3 Pro Image Preview", | |
| InputTokenLimit: 1048576, | |
| OutputTokenLimit: 65536, | |
| SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"}, | |
| Thinking: &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true, Levels: []string{"low", "high"}}, | |
| }, | |
| // Imagen image generation models - use :predict action | |
| { | |
| ID: "imagen-4.0-generate-001", | |
| Object: "model", | |
| Created: 1750000000, | |
| OwnedBy: "google", | |
| Type: "gemini", | |
| Name: "models/imagen-4.0-generate-001", | |
| Version: "4.0", | |
| DisplayName: "Imagen 4.0 Generate", | |
| Description: "Imagen 4.0 image generation model", | |
| SupportedGenerationMethods: []string{"predict"}, | |
| }, | |
| { | |
| ID: "imagen-4.0-ultra-generate-001", | |
| Object: "model", | |
| Created: 1750000000, | |
| OwnedBy: "google", | |
| Type: "gemini", | |
| Name: "models/imagen-4.0-ultra-generate-001", | |
| Version: "4.0", | |
| DisplayName: "Imagen 4.0 Ultra Generate", | |
| Description: "Imagen 4.0 Ultra high-quality image generation model", | |
| SupportedGenerationMethods: []string{"predict"}, | |
| }, | |
| { | |
| ID: "imagen-3.0-generate-002", | |
| Object: "model", | |
| Created: 1740000000, | |
| OwnedBy: "google", | |
| Type: "gemini", | |
| Name: "models/imagen-3.0-generate-002", | |
| Version: "3.0", | |
| DisplayName: "Imagen 3.0 Generate", | |
| Description: "Imagen 3.0 image generation model", | |
| SupportedGenerationMethods: []string{"predict"}, | |
| }, | |
| { | |
| ID: "imagen-3.0-fast-generate-001", | |
| Object: "model", | |
| Created: 1740000000, | |
| OwnedBy: "google", | |
| Type: "gemini", | |
| Name: "models/imagen-3.0-fast-generate-001", | |
| Version: "3.0", | |
| DisplayName: "Imagen 3.0 Fast Generate", | |
| Description: "Imagen 3.0 fast image generation model", | |
| SupportedGenerationMethods: []string{"predict"}, | |
| }, | |
| { | |
| ID: "imagen-4.0-fast-generate-001", | |
| Object: "model", | |
| Created: 1750000000, | |
| OwnedBy: "google", | |
| Type: "gemini", | |
| Name: "models/imagen-4.0-fast-generate-001", | |
| Version: "4.0", | |
| DisplayName: "Imagen 4.0 Fast Generate", | |
| Description: "Imagen 4.0 fast image generation model", | |
| SupportedGenerationMethods: []string{"predict"}, | |
| }, | |
| } | |
| } | |
| // GetGeminiCLIModels returns the standard Gemini model definitions | |
| func GetGeminiCLIModels() []*ModelInfo { | |
| return []*ModelInfo{ | |
| { | |
| ID: "gemini-2.5-pro", | |
| Object: "model", | |
| Created: 1750118400, | |
| OwnedBy: "google", | |
| Type: "gemini", | |
| Name: "models/gemini-2.5-pro", | |
| Version: "2.5", | |
| DisplayName: "Gemini 2.5 Pro", | |
| Description: "Stable release (June 17th, 2025) of Gemini 2.5 Pro", | |
| InputTokenLimit: 1048576, | |
| OutputTokenLimit: 65536, | |
| SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"}, | |
| Thinking: &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true}, | |
| }, | |
| { | |
| ID: "gemini-2.5-flash", | |
| Object: "model", | |
| Created: 1750118400, | |
| OwnedBy: "google", | |
| Type: "gemini", | |
| Name: "models/gemini-2.5-flash", | |
| Version: "001", | |
| DisplayName: "Gemini 2.5 Flash", | |
| Description: "Stable version of Gemini 2.5 Flash, our mid-size multimodal model that supports up to 1 million tokens, released in June of 2025.", | |
| InputTokenLimit: 1048576, | |
| OutputTokenLimit: 65536, | |
| SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"}, | |
| Thinking: &ThinkingSupport{Min: 0, Max: 24576, ZeroAllowed: true, DynamicAllowed: true}, | |
| }, | |
| { | |
| ID: "gemini-2.5-flash-lite", | |
| Object: "model", | |
| Created: 1753142400, | |
| OwnedBy: "google", | |
| Type: "gemini", | |
| Name: "models/gemini-2.5-flash-lite", | |
| Version: "2.5", | |
| DisplayName: "Gemini 2.5 Flash Lite", | |
| Description: "Our smallest and most cost effective model, built for at scale usage.", | |
| InputTokenLimit: 1048576, | |
| OutputTokenLimit: 65536, | |
| SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"}, | |
| Thinking: &ThinkingSupport{Min: 0, Max: 24576, ZeroAllowed: true, DynamicAllowed: true}, | |
| }, | |
| { | |
| ID: "gemini-3-pro-preview", | |
| Object: "model", | |
| Created: 1737158400, | |
| OwnedBy: "google", | |
| Type: "gemini", | |
| Name: "models/gemini-3-pro-preview", | |
| Version: "3.0", | |
| DisplayName: "Gemini 3 Pro Preview", | |
| Description: "Our most intelligent model with SOTA reasoning and multimodal understanding, and powerful agentic and vibe coding capabilities", | |
| InputTokenLimit: 1048576, | |
| OutputTokenLimit: 65536, | |
| SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"}, | |
| Thinking: &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true, Levels: []string{"low", "high"}}, | |
| }, | |
| { | |
| ID: "gemini-3-flash-preview", | |
| Object: "model", | |
| Created: 1765929600, | |
| OwnedBy: "google", | |
| Type: "gemini", | |
| Name: "models/gemini-3-flash-preview", | |
| Version: "3.0", | |
| DisplayName: "Gemini 3 Flash Preview", | |
| Description: "Our most intelligent model built for speed, combining frontier intelligence with superior search and grounding.", | |
| InputTokenLimit: 1048576, | |
| OutputTokenLimit: 65536, | |
| SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"}, | |
| Thinking: &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true, Levels: []string{"minimal", "low", "medium", "high"}}, | |
| }, | |
| } | |
| } | |
| // GetAIStudioModels returns the Gemini model definitions for AI Studio integrations | |
| func GetAIStudioModels() []*ModelInfo { | |
| return []*ModelInfo{ | |
| { | |
| ID: "gemini-2.5-pro", | |
| Object: "model", | |
| Created: 1750118400, | |
| OwnedBy: "google", | |
| Type: "gemini", | |
| Name: "models/gemini-2.5-pro", | |
| Version: "2.5", | |
| DisplayName: "Gemini 2.5 Pro", | |
| Description: "Stable release (June 17th, 2025) of Gemini 2.5 Pro", | |
| InputTokenLimit: 1048576, | |
| OutputTokenLimit: 65536, | |
| SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"}, | |
| Thinking: &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true}, | |
| }, | |
| { | |
| ID: "gemini-2.5-flash", | |
| Object: "model", | |
| Created: 1750118400, | |
| OwnedBy: "google", | |
| Type: "gemini", | |
| Name: "models/gemini-2.5-flash", | |
| Version: "001", | |
| DisplayName: "Gemini 2.5 Flash", | |
| Description: "Stable version of Gemini 2.5 Flash, our mid-size multimodal model that supports up to 1 million tokens, released in June of 2025.", | |
| InputTokenLimit: 1048576, | |
| OutputTokenLimit: 65536, | |
| SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"}, | |
| Thinking: &ThinkingSupport{Min: 0, Max: 24576, ZeroAllowed: true, DynamicAllowed: true}, | |
| }, | |
| { | |
| ID: "gemini-2.5-flash-lite", | |
| Object: "model", | |
| Created: 1753142400, | |
| OwnedBy: "google", | |
| Type: "gemini", | |
| Name: "models/gemini-2.5-flash-lite", | |
| Version: "2.5", | |
| DisplayName: "Gemini 2.5 Flash Lite", | |
| Description: "Our smallest and most cost effective model, built for at scale usage.", | |
| InputTokenLimit: 1048576, | |
| OutputTokenLimit: 65536, | |
| SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"}, | |
| Thinking: &ThinkingSupport{Min: 0, Max: 24576, ZeroAllowed: true, DynamicAllowed: true}, | |
| }, | |
| { | |
| ID: "gemini-3-pro-preview", | |
| Object: "model", | |
| Created: 1737158400, | |
| OwnedBy: "google", | |
| Type: "gemini", | |
| Name: "models/gemini-3-pro-preview", | |
| Version: "3.0", | |
| DisplayName: "Gemini 3 Pro Preview", | |
| Description: "Gemini 3 Pro Preview", | |
| InputTokenLimit: 1048576, | |
| OutputTokenLimit: 65536, | |
| SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"}, | |
| Thinking: &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true}, | |
| }, | |
| { | |
| ID: "gemini-3-flash-preview", | |
| Object: "model", | |
| Created: 1765929600, | |
| OwnedBy: "google", | |
| Type: "gemini", | |
| Name: "models/gemini-3-flash-preview", | |
| Version: "3.0", | |
| DisplayName: "Gemini 3 Flash Preview", | |
| Description: "Our most intelligent model built for speed, combining frontier intelligence with superior search and grounding.", | |
| InputTokenLimit: 1048576, | |
| OutputTokenLimit: 65536, | |
| SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"}, | |
| Thinking: &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true}, | |
| }, | |
| { | |
| ID: "gemini-pro-latest", | |
| Object: "model", | |
| Created: 1750118400, | |
| OwnedBy: "google", | |
| Type: "gemini", | |
| Name: "models/gemini-pro-latest", | |
| Version: "2.5", | |
| DisplayName: "Gemini Pro Latest", | |
| Description: "Latest release of Gemini Pro", | |
| InputTokenLimit: 1048576, | |
| OutputTokenLimit: 65536, | |
| SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"}, | |
| Thinking: &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true}, | |
| }, | |
| { | |
| ID: "gemini-flash-latest", | |
| Object: "model", | |
| Created: 1750118400, | |
| OwnedBy: "google", | |
| Type: "gemini", | |
| Name: "models/gemini-flash-latest", | |
| Version: "2.5", | |
| DisplayName: "Gemini Flash Latest", | |
| Description: "Latest release of Gemini Flash", | |
| InputTokenLimit: 1048576, | |
| OutputTokenLimit: 65536, | |
| SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"}, | |
| Thinking: &ThinkingSupport{Min: 0, Max: 24576, ZeroAllowed: true, DynamicAllowed: true}, | |
| }, | |
| { | |
| ID: "gemini-flash-lite-latest", | |
| Object: "model", | |
| Created: 1753142400, | |
| OwnedBy: "google", | |
| Type: "gemini", | |
| Name: "models/gemini-flash-lite-latest", | |
| Version: "2.5", | |
| DisplayName: "Gemini Flash-Lite Latest", | |
| Description: "Latest release of Gemini Flash-Lite", | |
| InputTokenLimit: 1048576, | |
| OutputTokenLimit: 65536, | |
| SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"}, | |
| Thinking: &ThinkingSupport{Min: 512, Max: 24576, ZeroAllowed: true, DynamicAllowed: true}, | |
| }, | |
| // { | |
| // ID: "gemini-2.5-flash-image-preview", | |
| // Object: "model", | |
| // Created: 1756166400, | |
| // OwnedBy: "google", | |
| // Type: "gemini", | |
| // Name: "models/gemini-2.5-flash-image-preview", | |
| // Version: "2.5", | |
| // DisplayName: "Gemini 2.5 Flash Image Preview", | |
| // Description: "State-of-the-art image generation and editing model.", | |
| // InputTokenLimit: 1048576, | |
| // OutputTokenLimit: 8192, | |
| // SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"}, | |
| // // image models don't support thinkingConfig; leave Thinking nil | |
| // }, | |
| { | |
| ID: "gemini-2.5-flash-image", | |
| Object: "model", | |
| Created: 1759363200, | |
| OwnedBy: "google", | |
| Type: "gemini", | |
| Name: "models/gemini-2.5-flash-image", | |
| Version: "2.5", | |
| DisplayName: "Gemini 2.5 Flash Image", | |
| Description: "State-of-the-art image generation and editing model.", | |
| InputTokenLimit: 1048576, | |
| OutputTokenLimit: 8192, | |
| SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"}, | |
| // image models don't support thinkingConfig; leave Thinking nil | |
| }, | |
| } | |
| } | |
| // GetOpenAIModels returns the standard OpenAI model definitions | |
| func GetOpenAIModels() []*ModelInfo { | |
| return []*ModelInfo{ | |
| { | |
| ID: "gpt-5", | |
| Object: "model", | |
| Created: 1754524800, | |
| OwnedBy: "openai", | |
| Type: "openai", | |
| Version: "gpt-5-2025-08-07", | |
| DisplayName: "GPT 5", | |
| Description: "Stable version of GPT 5, The best model for coding and agentic tasks across domains.", | |
| ContextLength: 400000, | |
| MaxCompletionTokens: 128000, | |
| SupportedParameters: []string{"tools"}, | |
| Thinking: &ThinkingSupport{Levels: []string{"minimal", "low", "medium", "high"}}, | |
| }, | |
| { | |
| ID: "gpt-5-codex", | |
| Object: "model", | |
| Created: 1757894400, | |
| OwnedBy: "openai", | |
| Type: "openai", | |
| Version: "gpt-5-2025-09-15", | |
| DisplayName: "GPT 5 Codex", | |
| Description: "Stable version of GPT 5 Codex, The best model for coding and agentic tasks across domains.", | |
| ContextLength: 400000, | |
| MaxCompletionTokens: 128000, | |
| SupportedParameters: []string{"tools"}, | |
| Thinking: &ThinkingSupport{Levels: []string{"low", "medium", "high"}}, | |
| }, | |
| { | |
| ID: "gpt-5-codex-mini", | |
| Object: "model", | |
| Created: 1762473600, | |
| OwnedBy: "openai", | |
| Type: "openai", | |
| Version: "gpt-5-2025-11-07", | |
| DisplayName: "GPT 5 Codex Mini", | |
| Description: "Stable version of GPT 5 Codex Mini: cheaper, faster, but less capable version of GPT 5 Codex.", | |
| ContextLength: 400000, | |
| MaxCompletionTokens: 128000, | |
| SupportedParameters: []string{"tools"}, | |
| Thinking: &ThinkingSupport{Levels: []string{"low", "medium", "high"}}, | |
| }, | |
| { | |
| ID: "gpt-5.1", | |
| Object: "model", | |
| Created: 1762905600, | |
| OwnedBy: "openai", | |
| Type: "openai", | |
| Version: "gpt-5.1-2025-11-12", | |
| DisplayName: "GPT 5", | |
| Description: "Stable version of GPT 5, The best model for coding and agentic tasks across domains.", | |
| ContextLength: 400000, | |
| MaxCompletionTokens: 128000, | |
| SupportedParameters: []string{"tools"}, | |
| Thinking: &ThinkingSupport{Levels: []string{"none", "low", "medium", "high"}}, | |
| }, | |
| { | |
| ID: "gpt-5.1-codex", | |
| Object: "model", | |
| Created: 1762905600, | |
| OwnedBy: "openai", | |
| Type: "openai", | |
| Version: "gpt-5.1-2025-11-12", | |
| DisplayName: "GPT 5.1 Codex", | |
| Description: "Stable version of GPT 5.1 Codex, The best model for coding and agentic tasks across domains.", | |
| ContextLength: 400000, | |
| MaxCompletionTokens: 128000, | |
| SupportedParameters: []string{"tools"}, | |
| Thinking: &ThinkingSupport{Levels: []string{"low", "medium", "high"}}, | |
| }, | |
| { | |
| ID: "gpt-5.1-codex-mini", | |
| Object: "model", | |
| Created: 1762905600, | |
| OwnedBy: "openai", | |
| Type: "openai", | |
| Version: "gpt-5.1-2025-11-12", | |
| DisplayName: "GPT 5.1 Codex Mini", | |
| Description: "Stable version of GPT 5.1 Codex Mini: cheaper, faster, but less capable version of GPT 5.1 Codex.", | |
| ContextLength: 400000, | |
| MaxCompletionTokens: 128000, | |
| SupportedParameters: []string{"tools"}, | |
| Thinking: &ThinkingSupport{Levels: []string{"low", "medium", "high"}}, | |
| }, | |
| { | |
| ID: "gpt-5.1-codex-max", | |
| Object: "model", | |
| Created: 1763424000, | |
| OwnedBy: "openai", | |
| Type: "openai", | |
| Version: "gpt-5.1-max", | |
| DisplayName: "GPT 5.1 Codex Max", | |
| Description: "Stable version of GPT 5.1 Codex Max", | |
| ContextLength: 400000, | |
| MaxCompletionTokens: 128000, | |
| SupportedParameters: []string{"tools"}, | |
| Thinking: &ThinkingSupport{Levels: []string{"low", "medium", "high", "xhigh"}}, | |
| }, | |
| { | |
| ID: "gpt-5.2", | |
| Object: "model", | |
| Created: 1765440000, | |
| OwnedBy: "openai", | |
| Type: "openai", | |
| Version: "gpt-5.2", | |
| DisplayName: "GPT 5.2", | |
| Description: "Stable version of GPT 5.2", | |
| ContextLength: 400000, | |
| MaxCompletionTokens: 128000, | |
| SupportedParameters: []string{"tools"}, | |
| Thinking: &ThinkingSupport{Levels: []string{"none", "low", "medium", "high", "xhigh"}}, | |
| }, | |
| { | |
| ID: "gpt-5.2-codex", | |
| Object: "model", | |
| Created: 1765440000, | |
| OwnedBy: "openai", | |
| Type: "openai", | |
| Version: "gpt-5.2", | |
| DisplayName: "GPT 5.2 Codex", | |
| Description: "Stable version of GPT 5.2 Codex, The best model for coding and agentic tasks across domains.", | |
| ContextLength: 400000, | |
| MaxCompletionTokens: 128000, | |
| SupportedParameters: []string{"tools"}, | |
| Thinking: &ThinkingSupport{Levels: []string{"low", "medium", "high", "xhigh"}}, | |
| }, | |
| { | |
| ID: "gpt-5.3-codex", | |
| Object: "model", | |
| Created: 1770307200, | |
| OwnedBy: "openai", | |
| Type: "openai", | |
| Version: "gpt-5.3", | |
| DisplayName: "GPT 5.3 Codex", | |
| Description: "Stable version of GPT 5.3 Codex, The best model for coding and agentic tasks across domains.", | |
| ContextLength: 400000, | |
| MaxCompletionTokens: 128000, | |
| SupportedParameters: []string{"tools"}, | |
| Thinking: &ThinkingSupport{Levels: []string{"low", "medium", "high", "xhigh"}}, | |
| }, | |
| { | |
| ID: "gpt-5.3-codex-spark", | |
| Object: "model", | |
| Created: 1770912000, | |
| OwnedBy: "openai", | |
| Type: "openai", | |
| Version: "gpt-5.3", | |
| DisplayName: "GPT 5.3 Codex Spark", | |
| Description: "Ultra-fast coding model.", | |
| ContextLength: 128000, | |
| MaxCompletionTokens: 128000, | |
| SupportedParameters: []string{"tools"}, | |
| Thinking: &ThinkingSupport{Levels: []string{"low", "medium", "high", "xhigh"}}, | |
| }, | |
| } | |
| } | |
| // GetQwenModels returns the standard Qwen model definitions | |
| func GetQwenModels() []*ModelInfo { | |
| return []*ModelInfo{ | |
| { | |
| ID: "qwen3-coder-plus", | |
| Object: "model", | |
| Created: 1753228800, | |
| OwnedBy: "qwen", | |
| Type: "qwen", | |
| Version: "3.0", | |
| DisplayName: "Qwen3 Coder Plus", | |
| Description: "Advanced code generation and understanding model", | |
| ContextLength: 32768, | |
| MaxCompletionTokens: 8192, | |
| SupportedParameters: []string{"temperature", "top_p", "max_tokens", "stream", "stop"}, | |
| }, | |
| { | |
| ID: "qwen3-coder-flash", | |
| Object: "model", | |
| Created: 1753228800, | |
| OwnedBy: "qwen", | |
| Type: "qwen", | |
| Version: "3.0", | |
| DisplayName: "Qwen3 Coder Flash", | |
| Description: "Fast code generation model", | |
| ContextLength: 8192, | |
| MaxCompletionTokens: 2048, | |
| SupportedParameters: []string{"temperature", "top_p", "max_tokens", "stream", "stop"}, | |
| }, | |
| { | |
| ID: "coder-model", | |
| Object: "model", | |
| Created: 1771171200, | |
| OwnedBy: "qwen", | |
| Type: "qwen", | |
| Version: "3.5", | |
| DisplayName: "Qwen 3.5 Plus", | |
| Description: "efficient hybrid model with leading coding performance", | |
| ContextLength: 1048576, | |
| MaxCompletionTokens: 65536, | |
| SupportedParameters: []string{"temperature", "top_p", "max_tokens", "stream", "stop"}, | |
| }, | |
| { | |
| ID: "vision-model", | |
| Object: "model", | |
| Created: 1758672000, | |
| OwnedBy: "qwen", | |
| Type: "qwen", | |
| Version: "3.0", | |
| DisplayName: "Qwen3 Vision Model", | |
| Description: "Vision model model", | |
| ContextLength: 32768, | |
| MaxCompletionTokens: 2048, | |
| SupportedParameters: []string{"temperature", "top_p", "max_tokens", "stream", "stop"}, | |
| }, | |
| } | |
| } | |
| // iFlowThinkingSupport is a shared ThinkingSupport configuration for iFlow models | |
| // that support thinking mode via chat_template_kwargs.enable_thinking (boolean toggle). | |
| // Uses level-based configuration so standard normalization flows apply before conversion. | |
| var iFlowThinkingSupport = &ThinkingSupport{ | |
| Levels: []string{"none", "auto", "minimal", "low", "medium", "high", "xhigh"}, | |
| } | |
| // GetIFlowModels returns supported models for iFlow OAuth accounts. | |
| func GetIFlowModels() []*ModelInfo { | |
| entries := []struct { | |
| ID string | |
| DisplayName string | |
| Description string | |
| Created int64 | |
| Thinking *ThinkingSupport | |
| }{ | |
| {ID: "tstars2.0", DisplayName: "TStars-2.0", Description: "iFlow TStars-2.0 multimodal assistant", Created: 1746489600}, | |
| {ID: "qwen3-coder-plus", DisplayName: "Qwen3-Coder-Plus", Description: "Qwen3 Coder Plus code generation", Created: 1753228800}, | |
| {ID: "qwen3-max", DisplayName: "Qwen3-Max", Description: "Qwen3 flagship model", Created: 1758672000}, | |
| {ID: "qwen3-vl-plus", DisplayName: "Qwen3-VL-Plus", Description: "Qwen3 multimodal vision-language", Created: 1758672000}, | |
| {ID: "qwen3-max-preview", DisplayName: "Qwen3-Max-Preview", Description: "Qwen3 Max preview build", Created: 1757030400, Thinking: iFlowThinkingSupport}, | |
| {ID: "kimi-k2-0905", DisplayName: "Kimi-K2-Instruct-0905", Description: "Moonshot Kimi K2 instruct 0905", Created: 1757030400}, | |
| {ID: "glm-4.6", DisplayName: "GLM-4.6", Description: "Zhipu GLM 4.6 general model", Created: 1759190400, Thinking: iFlowThinkingSupport}, | |
| {ID: "glm-4.7", DisplayName: "GLM-4.7", Description: "Zhipu GLM 4.7 general model", Created: 1766448000, Thinking: iFlowThinkingSupport}, | |
| {ID: "glm-5", DisplayName: "GLM-5", Description: "Zhipu GLM 5 general model", Created: 1770768000, Thinking: iFlowThinkingSupport}, | |
| {ID: "kimi-k2", DisplayName: "Kimi-K2", Description: "Moonshot Kimi K2 general model", Created: 1752192000}, | |
| {ID: "kimi-k2-thinking", DisplayName: "Kimi-K2-Thinking", Description: "Moonshot Kimi K2 thinking model", Created: 1762387200}, | |
| {ID: "deepseek-v3.2-chat", DisplayName: "DeepSeek-V3.2", Description: "DeepSeek V3.2 Chat", Created: 1764576000}, | |
| {ID: "deepseek-v3.2-reasoner", DisplayName: "DeepSeek-V3.2", Description: "DeepSeek V3.2 Reasoner", Created: 1764576000}, | |
| {ID: "deepseek-v3.2", DisplayName: "DeepSeek-V3.2-Exp", Description: "DeepSeek V3.2 experimental", Created: 1759104000, Thinking: iFlowThinkingSupport}, | |
| {ID: "deepseek-v3.1", DisplayName: "DeepSeek-V3.1-Terminus", Description: "DeepSeek V3.1 Terminus", Created: 1756339200, Thinking: iFlowThinkingSupport}, | |
| {ID: "deepseek-r1", DisplayName: "DeepSeek-R1", Description: "DeepSeek reasoning model R1", Created: 1737331200}, | |
| {ID: "deepseek-v3", DisplayName: "DeepSeek-V3-671B", Description: "DeepSeek V3 671B", Created: 1734307200}, | |
| {ID: "qwen3-32b", DisplayName: "Qwen3-32B", Description: "Qwen3 32B", Created: 1747094400}, | |
| {ID: "qwen3-235b-a22b-thinking-2507", DisplayName: "Qwen3-235B-A22B-Thinking", Description: "Qwen3 235B A22B Thinking (2507)", Created: 1753401600}, | |
| {ID: "qwen3-235b-a22b-instruct", DisplayName: "Qwen3-235B-A22B-Instruct", Description: "Qwen3 235B A22B Instruct", Created: 1753401600}, | |
| {ID: "qwen3-235b", DisplayName: "Qwen3-235B-A22B", Description: "Qwen3 235B A22B", Created: 1753401600}, | |
| {ID: "minimax-m2", DisplayName: "MiniMax-M2", Description: "MiniMax M2", Created: 1758672000, Thinking: iFlowThinkingSupport}, | |
| {ID: "minimax-m2.1", DisplayName: "MiniMax-M2.1", Description: "MiniMax M2.1", Created: 1766448000, Thinking: iFlowThinkingSupport}, | |
| {ID: "minimax-m2.5", DisplayName: "MiniMax-M2.5", Description: "MiniMax M2.5", Created: 1770825600, Thinking: iFlowThinkingSupport}, | |
| {ID: "iflow-rome-30ba3b", DisplayName: "iFlow-ROME", Description: "iFlow Rome 30BA3B model", Created: 1736899200}, | |
| {ID: "kimi-k2.5", DisplayName: "Kimi-K2.5", Description: "Moonshot Kimi K2.5", Created: 1769443200, Thinking: iFlowThinkingSupport}, | |
| } | |
| models := make([]*ModelInfo, 0, len(entries)) | |
| for _, entry := range entries { | |
| models = append(models, &ModelInfo{ | |
| ID: entry.ID, | |
| Object: "model", | |
| Created: entry.Created, | |
| OwnedBy: "iflow", | |
| Type: "iflow", | |
| DisplayName: entry.DisplayName, | |
| Description: entry.Description, | |
| Thinking: entry.Thinking, | |
| }) | |
| } | |
| return models | |
| } | |
| // AntigravityModelConfig captures static antigravity model overrides, including | |
| // Thinking budget limits and provider max completion tokens. | |
| type AntigravityModelConfig struct { | |
| Thinking *ThinkingSupport | |
| MaxCompletionTokens int | |
| } | |
| // GetAntigravityModelConfig returns static configuration for antigravity models. | |
| // Keys use upstream model names returned by the Antigravity models endpoint. | |
| func GetAntigravityModelConfig() map[string]*AntigravityModelConfig { | |
| return map[string]*AntigravityModelConfig{ | |
| // "rev19-uic3-1p": {Thinking: &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true}}, | |
| "gemini-2.5-flash": {Thinking: &ThinkingSupport{Min: 0, Max: 24576, ZeroAllowed: true, DynamicAllowed: true}}, | |
| "gemini-2.5-flash-lite": {Thinking: &ThinkingSupport{Min: 0, Max: 24576, ZeroAllowed: true, DynamicAllowed: true}}, | |
| "gemini-3-pro-high": {Thinking: &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true, Levels: []string{"low", "high"}}}, | |
| "gemini-3-pro-image": {Thinking: &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true, Levels: []string{"low", "high"}}}, | |
| "gemini-3-flash": {Thinking: &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true, Levels: []string{"minimal", "low", "medium", "high"}}}, | |
| "claude-sonnet-4-5-thinking": {Thinking: &ThinkingSupport{Min: 1024, Max: 128000, ZeroAllowed: true, DynamicAllowed: true}, MaxCompletionTokens: 64000}, | |
| "claude-opus-4-5-thinking": {Thinking: &ThinkingSupport{Min: 1024, Max: 128000, ZeroAllowed: true, DynamicAllowed: true}, MaxCompletionTokens: 64000}, | |
| "claude-opus-4-6-thinking": {Thinking: &ThinkingSupport{Min: 1024, Max: 128000, ZeroAllowed: true, DynamicAllowed: true}, MaxCompletionTokens: 64000}, | |
| "claude-sonnet-4-5": {MaxCompletionTokens: 64000}, | |
| "gpt-oss-120b-medium": {}, | |
| "tab_flash_lite_preview": {}, | |
| } | |
| } | |
| // GetKimiModels returns the standard Kimi (Moonshot AI) model definitions | |
| func GetKimiModels() []*ModelInfo { | |
| return []*ModelInfo{ | |
| { | |
| ID: "kimi-k2", | |
| Object: "model", | |
| Created: 1752192000, // 2025-07-11 | |
| OwnedBy: "moonshot", | |
| Type: "kimi", | |
| DisplayName: "Kimi K2", | |
| Description: "Kimi K2 - Moonshot AI's flagship coding model", | |
| ContextLength: 131072, | |
| MaxCompletionTokens: 32768, | |
| }, | |
| { | |
| ID: "kimi-k2-thinking", | |
| Object: "model", | |
| Created: 1762387200, // 2025-11-06 | |
| OwnedBy: "moonshot", | |
| Type: "kimi", | |
| DisplayName: "Kimi K2 Thinking", | |
| Description: "Kimi K2 Thinking - Extended reasoning model", | |
| ContextLength: 131072, | |
| MaxCompletionTokens: 32768, | |
| Thinking: &ThinkingSupport{Min: 1024, Max: 32000, ZeroAllowed: true, DynamicAllowed: true}, | |
| }, | |
| { | |
| ID: "kimi-k2.5", | |
| Object: "model", | |
| Created: 1769472000, // 2026-01-26 | |
| OwnedBy: "moonshot", | |
| Type: "kimi", | |
| DisplayName: "Kimi K2.5", | |
| Description: "Kimi K2.5 - Latest Moonshot AI coding model with improved capabilities", | |
| ContextLength: 131072, | |
| MaxCompletionTokens: 32768, | |
| Thinking: &ThinkingSupport{Min: 1024, Max: 32000, ZeroAllowed: true, DynamicAllowed: true}, | |
| }, | |
| } | |
| } | |