mirror of
https://github.com/router-for-me/CLIProxyAPIPlus.git
synced 2026-03-30 01:06:39 +00:00
- **Thinking Support**:
- Enabled thinking support for all Kiro Claude models, including Haiku 4.5 and agentic variants.
- Updated `model_definitions.go` with thinking configuration (Min: 1024, Max: 32000, ZeroAllowed: true).
- Fixed `extended_thinking` field names in `model_registry.go` (from `min_budget`/`max_budget` to `min`/`max`) to comply with Claude API specs, enabling thinking control in clients like Claude Code.
- **Kiro Executor Fixes**:
- Fixed `budget_tokens` handling: explicitly disable thinking when budget is 0 or negative.
- Removed aggressive duplicate content filtering logic that caused truncation/data loss.
- Enhanced thinking tag parsing with `extractThinkingFromContent` to correctly handle interleaved thinking/text blocks.
- Added EOF handling to flush pending thinking tag characters, preventing data loss at stream end.
- **Performance**:
- Optimized Claude stream handler (v6.2) with reduced buffer size (4KB) and faster flush interval (50ms) to minimize latency and prevent timeouts.
1049 lines
45 KiB
Go
1049 lines
45 KiB
Go
// Package registry provides model definitions for various AI service providers.
|
|
// This file contains static model definitions that can be used by clients
|
|
// when registering their supported models.
|
|
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: not supported for Haiku models
|
|
},
|
|
{
|
|
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: 100000, ZeroAllowed: false, DynamicAllowed: true},
|
|
},
|
|
{
|
|
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: 100000, ZeroAllowed: false, DynamicAllowed: true},
|
|
},
|
|
{
|
|
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: 100000, ZeroAllowed: false, DynamicAllowed: true},
|
|
},
|
|
{
|
|
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: 100000, ZeroAllowed: false, DynamicAllowed: true},
|
|
},
|
|
{
|
|
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: 100000, ZeroAllowed: false, DynamicAllowed: true},
|
|
},
|
|
{
|
|
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: 100000, ZeroAllowed: false, DynamicAllowed: true},
|
|
},
|
|
{
|
|
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},
|
|
},
|
|
{
|
|
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},
|
|
},
|
|
}
|
|
}
|
|
|
|
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},
|
|
},
|
|
{
|
|
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},
|
|
},
|
|
}
|
|
}
|
|
|
|
// 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: "Gemini 3 Pro Preview",
|
|
InputTokenLimit: 1048576,
|
|
OutputTokenLimit: 65536,
|
|
SupportedGenerationMethods: []string{"generateContent", "countTokens", "createCachedContent", "batchGenerateContent"},
|
|
Thinking: &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true},
|
|
},
|
|
}
|
|
}
|
|
|
|
// 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-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"}},
|
|
},
|
|
}
|
|
}
|
|
|
|
// 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: "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"},
|
|
},
|
|
}
|
|
}
|
|
|
|
// 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},
|
|
{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},
|
|
{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, Thinking: &ThinkingSupport{Levels: []string{"low", "medium", "high"}}},
|
|
{ID: "deepseek-v3.2-chat", DisplayName: "DeepSeek-V3.2", Description: "DeepSeek V3.2", Created: 1764576000},
|
|
{ID: "deepseek-v3.2", DisplayName: "DeepSeek-V3.2-Exp", Description: "DeepSeek V3.2 experimental", Created: 1759104000},
|
|
{ID: "deepseek-v3.1", DisplayName: "DeepSeek-V3.1-Terminus", Description: "DeepSeek V3.1 Terminus", Created: 1756339200},
|
|
{ID: "deepseek-r1", DisplayName: "DeepSeek-R1", Description: "DeepSeek reasoning model R1", Created: 1737331200, Thinking: &ThinkingSupport{Levels: []string{"low", "medium", "high"}}},
|
|
{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, Thinking: &ThinkingSupport{Levels: []string{"low", "medium", "high"}}},
|
|
{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: &ThinkingSupport{Levels: []string{"low", "medium", "high"}}},
|
|
}
|
|
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
|
|
Name string
|
|
}
|
|
|
|
// GetAntigravityModelConfig returns static configuration for antigravity models.
|
|
// Keys use the ALIASED model names (after modelName2Alias conversion) for direct lookup.
|
|
func GetAntigravityModelConfig() map[string]*AntigravityModelConfig {
|
|
return map[string]*AntigravityModelConfig{
|
|
"gemini-2.5-flash": {Thinking: &ThinkingSupport{Min: 0, Max: 24576, ZeroAllowed: true, DynamicAllowed: true}, Name: "models/gemini-2.5-flash"},
|
|
"gemini-2.5-flash-lite": {Thinking: &ThinkingSupport{Min: 0, Max: 24576, ZeroAllowed: true, DynamicAllowed: true}, Name: "models/gemini-2.5-flash-lite"},
|
|
"gemini-2.5-computer-use-preview-10-2025": {Name: "models/gemini-2.5-computer-use-preview-10-2025"},
|
|
"gemini-3-pro-preview": {Thinking: &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true}, Name: "models/gemini-3-pro-preview"},
|
|
"gemini-3-pro-image-preview": {Thinking: &ThinkingSupport{Min: 128, Max: 32768, ZeroAllowed: false, DynamicAllowed: true}, Name: "models/gemini-3-pro-image-preview"},
|
|
"gemini-claude-sonnet-4-5-thinking": {Thinking: &ThinkingSupport{Min: 1024, Max: 200000, ZeroAllowed: false, DynamicAllowed: true}, MaxCompletionTokens: 64000},
|
|
"gemini-claude-opus-4-5-thinking": {Thinking: &ThinkingSupport{Min: 1024, Max: 200000, ZeroAllowed: false, DynamicAllowed: true}, MaxCompletionTokens: 64000},
|
|
}
|
|
}
|
|
|
|
// GetGitHubCopilotModels returns the available models for GitHub Copilot.
|
|
// These models are available through the GitHub Copilot API at api.githubcopilot.com.
|
|
func GetGitHubCopilotModels() []*ModelInfo {
|
|
now := int64(1732752000) // 2024-11-27
|
|
return []*ModelInfo{
|
|
{
|
|
ID: "gpt-4.1",
|
|
Object: "model",
|
|
Created: now,
|
|
OwnedBy: "github-copilot",
|
|
Type: "github-copilot",
|
|
DisplayName: "GPT-4.1",
|
|
Description: "OpenAI GPT-4.1 via GitHub Copilot",
|
|
ContextLength: 128000,
|
|
MaxCompletionTokens: 16384,
|
|
},
|
|
{
|
|
ID: "gpt-5",
|
|
Object: "model",
|
|
Created: now,
|
|
OwnedBy: "github-copilot",
|
|
Type: "github-copilot",
|
|
DisplayName: "GPT-5",
|
|
Description: "OpenAI GPT-5 via GitHub Copilot",
|
|
ContextLength: 200000,
|
|
MaxCompletionTokens: 32768,
|
|
},
|
|
{
|
|
ID: "gpt-5-mini",
|
|
Object: "model",
|
|
Created: now,
|
|
OwnedBy: "github-copilot",
|
|
Type: "github-copilot",
|
|
DisplayName: "GPT-5 Mini",
|
|
Description: "OpenAI GPT-5 Mini via GitHub Copilot",
|
|
ContextLength: 128000,
|
|
MaxCompletionTokens: 16384,
|
|
},
|
|
{
|
|
ID: "gpt-5-codex",
|
|
Object: "model",
|
|
Created: now,
|
|
OwnedBy: "github-copilot",
|
|
Type: "github-copilot",
|
|
DisplayName: "GPT-5 Codex",
|
|
Description: "OpenAI GPT-5 Codex via GitHub Copilot",
|
|
ContextLength: 200000,
|
|
MaxCompletionTokens: 32768,
|
|
},
|
|
{
|
|
ID: "gpt-5.1",
|
|
Object: "model",
|
|
Created: now,
|
|
OwnedBy: "github-copilot",
|
|
Type: "github-copilot",
|
|
DisplayName: "GPT-5.1",
|
|
Description: "OpenAI GPT-5.1 via GitHub Copilot",
|
|
ContextLength: 200000,
|
|
MaxCompletionTokens: 32768,
|
|
},
|
|
{
|
|
ID: "gpt-5.1-codex",
|
|
Object: "model",
|
|
Created: now,
|
|
OwnedBy: "github-copilot",
|
|
Type: "github-copilot",
|
|
DisplayName: "GPT-5.1 Codex",
|
|
Description: "OpenAI GPT-5.1 Codex via GitHub Copilot",
|
|
ContextLength: 200000,
|
|
MaxCompletionTokens: 32768,
|
|
},
|
|
{
|
|
ID: "gpt-5.1-codex-mini",
|
|
Object: "model",
|
|
Created: now,
|
|
OwnedBy: "github-copilot",
|
|
Type: "github-copilot",
|
|
DisplayName: "GPT-5.1 Codex Mini",
|
|
Description: "OpenAI GPT-5.1 Codex Mini via GitHub Copilot",
|
|
ContextLength: 128000,
|
|
MaxCompletionTokens: 16384,
|
|
},
|
|
{
|
|
ID: "claude-haiku-4.5",
|
|
Object: "model",
|
|
Created: now,
|
|
OwnedBy: "github-copilot",
|
|
Type: "github-copilot",
|
|
DisplayName: "Claude Haiku 4.5",
|
|
Description: "Anthropic Claude Haiku 4.5 via GitHub Copilot",
|
|
ContextLength: 200000,
|
|
MaxCompletionTokens: 64000,
|
|
},
|
|
{
|
|
ID: "claude-opus-4.1",
|
|
Object: "model",
|
|
Created: now,
|
|
OwnedBy: "github-copilot",
|
|
Type: "github-copilot",
|
|
DisplayName: "Claude Opus 4.1",
|
|
Description: "Anthropic Claude Opus 4.1 via GitHub Copilot",
|
|
ContextLength: 200000,
|
|
MaxCompletionTokens: 32000,
|
|
},
|
|
{
|
|
ID: "claude-opus-4.5",
|
|
Object: "model",
|
|
Created: now,
|
|
OwnedBy: "github-copilot",
|
|
Type: "github-copilot",
|
|
DisplayName: "Claude Opus 4.5",
|
|
Description: "Anthropic Claude Opus 4.5 via GitHub Copilot",
|
|
ContextLength: 200000,
|
|
MaxCompletionTokens: 64000,
|
|
},
|
|
{
|
|
ID: "claude-sonnet-4",
|
|
Object: "model",
|
|
Created: now,
|
|
OwnedBy: "github-copilot",
|
|
Type: "github-copilot",
|
|
DisplayName: "Claude Sonnet 4",
|
|
Description: "Anthropic Claude Sonnet 4 via GitHub Copilot",
|
|
ContextLength: 200000,
|
|
MaxCompletionTokens: 64000,
|
|
},
|
|
{
|
|
ID: "claude-sonnet-4.5",
|
|
Object: "model",
|
|
Created: now,
|
|
OwnedBy: "github-copilot",
|
|
Type: "github-copilot",
|
|
DisplayName: "Claude Sonnet 4.5",
|
|
Description: "Anthropic Claude Sonnet 4.5 via GitHub Copilot",
|
|
ContextLength: 200000,
|
|
MaxCompletionTokens: 64000,
|
|
},
|
|
{
|
|
ID: "gemini-2.5-pro",
|
|
Object: "model",
|
|
Created: now,
|
|
OwnedBy: "github-copilot",
|
|
Type: "github-copilot",
|
|
DisplayName: "Gemini 2.5 Pro",
|
|
Description: "Google Gemini 2.5 Pro via GitHub Copilot",
|
|
ContextLength: 1048576,
|
|
MaxCompletionTokens: 65536,
|
|
},
|
|
{
|
|
ID: "gemini-3-pro",
|
|
Object: "model",
|
|
Created: now,
|
|
OwnedBy: "github-copilot",
|
|
Type: "github-copilot",
|
|
DisplayName: "Gemini 3 Pro",
|
|
Description: "Google Gemini 3 Pro via GitHub Copilot",
|
|
ContextLength: 1048576,
|
|
MaxCompletionTokens: 65536,
|
|
},
|
|
{
|
|
ID: "grok-code-fast-1",
|
|
Object: "model",
|
|
Created: now,
|
|
OwnedBy: "github-copilot",
|
|
Type: "github-copilot",
|
|
DisplayName: "Grok Code Fast 1",
|
|
Description: "xAI Grok Code Fast 1 via GitHub Copilot",
|
|
ContextLength: 128000,
|
|
MaxCompletionTokens: 16384,
|
|
},
|
|
{
|
|
ID: "raptor-mini",
|
|
Object: "model",
|
|
Created: now,
|
|
OwnedBy: "github-copilot",
|
|
Type: "github-copilot",
|
|
DisplayName: "Raptor Mini",
|
|
Description: "Raptor Mini via GitHub Copilot",
|
|
ContextLength: 128000,
|
|
MaxCompletionTokens: 16384,
|
|
},
|
|
}
|
|
}
|
|
|
|
// GetKiroModels returns the Kiro (AWS CodeWhisperer) model definitions
|
|
func GetKiroModels() []*ModelInfo {
|
|
return []*ModelInfo{
|
|
// --- Base Models ---
|
|
{
|
|
ID: "kiro-claude-opus-4-5",
|
|
Object: "model",
|
|
Created: 1732752000,
|
|
OwnedBy: "aws",
|
|
Type: "kiro",
|
|
DisplayName: "Kiro Claude Opus 4.5",
|
|
Description: "Claude Opus 4.5 via Kiro (2.2x credit)",
|
|
ContextLength: 200000,
|
|
MaxCompletionTokens: 64000,
|
|
Thinking: &ThinkingSupport{Min: 1024, Max: 32000, ZeroAllowed: true, DynamicAllowed: true},
|
|
},
|
|
{
|
|
ID: "kiro-claude-sonnet-4-5",
|
|
Object: "model",
|
|
Created: 1732752000,
|
|
OwnedBy: "aws",
|
|
Type: "kiro",
|
|
DisplayName: "Kiro Claude Sonnet 4.5",
|
|
Description: "Claude Sonnet 4.5 via Kiro (1.3x credit)",
|
|
ContextLength: 200000,
|
|
MaxCompletionTokens: 64000,
|
|
Thinking: &ThinkingSupport{Min: 1024, Max: 32000, ZeroAllowed: true, DynamicAllowed: true},
|
|
},
|
|
{
|
|
ID: "kiro-claude-sonnet-4",
|
|
Object: "model",
|
|
Created: 1732752000,
|
|
OwnedBy: "aws",
|
|
Type: "kiro",
|
|
DisplayName: "Kiro Claude Sonnet 4",
|
|
Description: "Claude Sonnet 4 via Kiro (1.3x credit)",
|
|
ContextLength: 200000,
|
|
MaxCompletionTokens: 64000,
|
|
Thinking: &ThinkingSupport{Min: 1024, Max: 32000, ZeroAllowed: true, DynamicAllowed: true},
|
|
},
|
|
{
|
|
ID: "kiro-claude-haiku-4-5",
|
|
Object: "model",
|
|
Created: 1732752000,
|
|
OwnedBy: "aws",
|
|
Type: "kiro",
|
|
DisplayName: "Kiro Claude Haiku 4.5",
|
|
Description: "Claude Haiku 4.5 via Kiro (0.4x credit)",
|
|
ContextLength: 200000,
|
|
MaxCompletionTokens: 64000,
|
|
Thinking: &ThinkingSupport{Min: 1024, Max: 32000, ZeroAllowed: true, DynamicAllowed: true},
|
|
},
|
|
// --- Agentic Variants (Optimized for coding agents with chunked writes) ---
|
|
{
|
|
ID: "kiro-claude-opus-4-5-agentic",
|
|
Object: "model",
|
|
Created: 1732752000,
|
|
OwnedBy: "aws",
|
|
Type: "kiro",
|
|
DisplayName: "Kiro Claude Opus 4.5 (Agentic)",
|
|
Description: "Claude Opus 4.5 optimized for coding agents (chunked writes)",
|
|
ContextLength: 200000,
|
|
MaxCompletionTokens: 64000,
|
|
Thinking: &ThinkingSupport{Min: 1024, Max: 32000, ZeroAllowed: true, DynamicAllowed: true},
|
|
},
|
|
{
|
|
ID: "kiro-claude-sonnet-4-5-agentic",
|
|
Object: "model",
|
|
Created: 1732752000,
|
|
OwnedBy: "aws",
|
|
Type: "kiro",
|
|
DisplayName: "Kiro Claude Sonnet 4.5 (Agentic)",
|
|
Description: "Claude Sonnet 4.5 optimized for coding agents (chunked writes)",
|
|
ContextLength: 200000,
|
|
MaxCompletionTokens: 64000,
|
|
Thinking: &ThinkingSupport{Min: 1024, Max: 32000, ZeroAllowed: true, DynamicAllowed: true},
|
|
},
|
|
{
|
|
ID: "kiro-claude-sonnet-4-agentic",
|
|
Object: "model",
|
|
Created: 1732752000,
|
|
OwnedBy: "aws",
|
|
Type: "kiro",
|
|
DisplayName: "Kiro Claude Sonnet 4 (Agentic)",
|
|
Description: "Claude Sonnet 4 optimized for coding agents (chunked writes)",
|
|
ContextLength: 200000,
|
|
MaxCompletionTokens: 64000,
|
|
Thinking: &ThinkingSupport{Min: 1024, Max: 32000, ZeroAllowed: true, DynamicAllowed: true},
|
|
},
|
|
{
|
|
ID: "kiro-claude-haiku-4-5-agentic",
|
|
Object: "model",
|
|
Created: 1732752000,
|
|
OwnedBy: "aws",
|
|
Type: "kiro",
|
|
DisplayName: "Kiro Claude Haiku 4.5 (Agentic)",
|
|
Description: "Claude Haiku 4.5 optimized for coding agents (chunked writes)",
|
|
ContextLength: 200000,
|
|
MaxCompletionTokens: 64000,
|
|
Thinking: &ThinkingSupport{Min: 1024, Max: 32000, ZeroAllowed: true, DynamicAllowed: true},
|
|
},
|
|
}
|
|
}
|
|
|
|
// GetAmazonQModels returns the Amazon Q (AWS CodeWhisperer) model definitions.
|
|
// These models use the same API as Kiro and share the same executor.
|
|
func GetAmazonQModels() []*ModelInfo {
|
|
return []*ModelInfo{
|
|
{
|
|
ID: "amazonq-auto",
|
|
Object: "model",
|
|
Created: 1732752000,
|
|
OwnedBy: "aws",
|
|
Type: "kiro", // Uses Kiro executor - same API
|
|
DisplayName: "Amazon Q Auto",
|
|
Description: "Automatic model selection by Amazon Q",
|
|
ContextLength: 200000,
|
|
MaxCompletionTokens: 64000,
|
|
},
|
|
{
|
|
ID: "amazonq-claude-opus-4.5",
|
|
Object: "model",
|
|
Created: 1732752000,
|
|
OwnedBy: "aws",
|
|
Type: "kiro",
|
|
DisplayName: "Amazon Q Claude Opus 4.5",
|
|
Description: "Claude Opus 4.5 via Amazon Q (2.2x credit)",
|
|
ContextLength: 200000,
|
|
MaxCompletionTokens: 64000,
|
|
},
|
|
{
|
|
ID: "amazonq-claude-sonnet-4.5",
|
|
Object: "model",
|
|
Created: 1732752000,
|
|
OwnedBy: "aws",
|
|
Type: "kiro",
|
|
DisplayName: "Amazon Q Claude Sonnet 4.5",
|
|
Description: "Claude Sonnet 4.5 via Amazon Q (1.3x credit)",
|
|
ContextLength: 200000,
|
|
MaxCompletionTokens: 64000,
|
|
},
|
|
{
|
|
ID: "amazonq-claude-sonnet-4",
|
|
Object: "model",
|
|
Created: 1732752000,
|
|
OwnedBy: "aws",
|
|
Type: "kiro",
|
|
DisplayName: "Amazon Q Claude Sonnet 4",
|
|
Description: "Claude Sonnet 4 via Amazon Q (1.3x credit)",
|
|
ContextLength: 200000,
|
|
MaxCompletionTokens: 64000,
|
|
},
|
|
{
|
|
ID: "amazonq-claude-haiku-4.5",
|
|
Object: "model",
|
|
Created: 1732752000,
|
|
OwnedBy: "aws",
|
|
Type: "kiro",
|
|
DisplayName: "Amazon Q Claude Haiku 4.5",
|
|
Description: "Claude Haiku 4.5 via Amazon Q (0.4x credit)",
|
|
ContextLength: 200000,
|
|
MaxCompletionTokens: 64000,
|
|
},
|
|
}
|
|
}
|