diff --git a/README.md b/README.md index cc74bc67..ede7c426 100644 --- a/README.md +++ b/README.md @@ -85,8 +85,8 @@ For more control, use optional parameters: | Parameter | Aliases | Description | Default | | ------------- | ------- | ---------------------------------------------- | ------------------------ | | `path` | | custom path to a worker dir | repository root | -| `provider` | | provider for code generation | googleai | -| `model` | | model name from the provider | gemini-2.5-pro-preview-06-05 | +| `provider` | | provider for code generation | anthropic | +| `model` | | model name from the provider | claude-sonnet-4-5-20250929 | | `temperature` | `temp` | model temperature setting (0-1) | 0.5 | | `fallback` | | whether or not you want to use fallback models | true | @@ -98,17 +98,13 @@ For more control, use optional parameters: #### Available Models -- `claude-sonnet-4-20250514` -- `claude-sonnet-4-20250514-thinking` -- `claude-opus-4-1-20250805` -- `claude-opus-4-1-20250805-thinking` +- `claude-sonnet-4-5-20250929` +- `claude-sonnet-4-5-20250929-thinking` - `gpt-4.1` - `o4-mini-2025-04-16` - `o3-pro-2025-06-10` -- `gemini-2.0-pro-exp-02-05` (Medium-size, search grounding disabled) -- `gemini-2.0-flash-thinking-exp-01-21` (Small size, thinking, search grounding disabled) -- `gemini-2.0-flash` (Small size, search grounding enabled) -- `gemini-2.5-pro-preview-06-05` +- `gemini-2.5-pro` +- `gemini-2.5-flash` #### Improve Feature diff --git a/src/index.ts b/src/index.ts index ba40c617..ca556a53 100644 --- a/src/index.ts +++ b/src/index.ts @@ -248,7 +248,7 @@ export default { await sendPrompt( env, { - model: ModelName.Gemini_Exp_Pro, + model: ModelName.Gemini_2_5_Pro, prompts: analyzeSpecFilePrompts, temperature: 0.5, }, diff --git a/src/providers/anthropic.ts b/src/providers/anthropic.ts index a8d682b7..c272548c 100644 --- a/src/providers/anthropic.ts +++ b/src/providers/anthropic.ts @@ -41,26 +41,11 @@ export function anthropicRequest({ model, prompts, apiKey, stream, temperature } let actualModel = model; // Map thinking variants to base models - if (model === ModelName.Claude_4_Opus_thinking) { - actualModel = ModelName.Claude_4_Opus; - } else if (model === ModelName.Claude_4_Sonnet_thinking) { - actualModel = ModelName.Claude_4_Sonnet; + if (model === ModelName.Claude_4_5_Sonnet_thinking) { + actualModel = ModelName.Claude_4_5_Sonnet; } - let max_tokens: number; - - // Explicitly configure max_tokens for each Claude 4 model - if (model === ModelName.Claude_4_Opus_thinking) { - max_tokens = 32_000; - } else if (model === ModelName.Claude_4_Sonnet_thinking) { - max_tokens = 64_000; - } else if (model === ModelName.Claude_4_Opus) { - max_tokens = 32_000; - } else if (model === ModelName.Claude_4_Sonnet) { - max_tokens = 64_000; - } else { - throw new Error(`Unsupported model: ${model}`); - } + const max_tokens = 64_000; const query: AnthropicQuery = { model: actualModel, @@ -76,19 +61,12 @@ export function anthropicRequest({ model, prompts, apiKey, stream, temperature } temperature, }; - // Configure thinking mode for thinking models - if (model === ModelName.Claude_4_Sonnet_thinking || model === ModelName.Claude_4_Opus_thinking) { - if (model === ModelName.Claude_4_Opus_thinking) { - query.thinking = { - type: 'enabled', - budget_tokens: 20_000, - }; - } else { - query.thinking = { - type: 'enabled', - budget_tokens: 32_000, - }; - } + // Configure thinking mode for Claude 4.5 Sonnet thinking model + if (model === ModelName.Claude_4_5_Sonnet_thinking) { + query.thinking = { + type: 'enabled', + budget_tokens: 32_000, + }; query.temperature = 1; } diff --git a/src/providers/index.ts b/src/providers/index.ts index 4f09c68b..d5fca153 100644 --- a/src/providers/index.ts +++ b/src/providers/index.ts @@ -12,42 +12,31 @@ export enum ModelProvider { } export enum ModelName { - Claude_4_Sonnet = 'claude-sonnet-4-20250514', - Claude_4_Sonnet_thinking = 'claude-sonnet-4-20250514-thinking', - Claude_4_Opus = 'claude-opus-4-1-20250805', - Claude_4_Opus_thinking = 'claude-opus-4-1-20250805-thinking', + Claude_4_5_Sonnet = 'claude-sonnet-4-5-20250929', + Claude_4_5_Sonnet_thinking = 'claude-sonnet-4-5-20250929-thinking', GPT_4_1 = 'gpt-4.1', GPT_o4_Mini = 'o4-mini-2025-04-16', GPT_o3_Pro = 'o3-pro-2025-06-10', - /** - * Medium-size, search grounding disabled - */ - Gemini_Exp_Pro = 'gemini-2.0-pro-exp-02-05', - /** - * Small size, thinking, search grounding disabled - */ - Gemini_Exp_Flash_Thinking = 'gemini-2.0-flash-thinking-exp-01-21', - /** - * Small size, search grounding enabled - */ - Gemini_Flash = 'gemini-2.0-flash', - Gemini_2_5_Pro_Exp = 'gemini-2.5-pro-preview-06-05', + Gemini_2_5_Pro = 'gemini-2.5-pro', + Gemini_2_5_Flash = 'gemini-2.5-flash', } type ModelProviderMap = Record; export const MODEL_PROVIDERS: ModelProviderMap = { [ModelProvider.GoogleAi]: { - default: ModelName.Gemini_2_5_Pro_Exp, - models: [ModelName.Gemini_Flash, ModelName.Gemini_Exp_Pro, ModelName.Gemini_Exp_Flash_Thinking, ModelName.Gemini_2_5_Pro_Exp], + default: ModelName.Gemini_2_5_Pro, + models: [ModelName.Gemini_2_5_Pro, ModelName.Gemini_2_5_Flash], }, [ModelProvider.Anthropic]: { - default: ModelName.Claude_4_Opus, - models: [ModelName.Claude_4_Opus, ModelName.Claude_4_Opus_thinking, ModelName.Claude_4_Sonnet, ModelName.Claude_4_Sonnet_thinking], + default: ModelName.Claude_4_5_Sonnet, + models: [ + ModelName.Claude_4_5_Sonnet, ModelName.Claude_4_5_Sonnet_thinking + ], }, [ModelProvider.OpenAI]: { default: ModelName.GPT_o4_Mini, - models: [ModelName.GPT_4_1, ModelName.GPT_o3_Pro , ModelName.GPT_o4_Mini], + models: [ModelName.GPT_4_1, ModelName.GPT_o3_Pro, ModelName.GPT_o4_Mini], }, [ModelProvider.Unknown]: {}, }; diff --git a/src/utils.ts b/src/utils.ts index a50f252a..440aa4d6 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -38,7 +38,7 @@ type CommandArgs = { export function parseCommandArgs(args: string[]) { const result: CommandArgs = { basePath: '', - provider: ModelProvider.GoogleAi, + provider: ModelProvider.Anthropic, temperature: 0.5, fallback: true, }; diff --git a/test/unit/googleai/missing-close-xml-tag-response.json b/test/unit/googleai/missing-close-xml-tag-response.json index e249cdf1..e32e94a0 100644 --- a/test/unit/googleai/missing-close-xml-tag-response.json +++ b/test/unit/googleai/missing-close-xml-tag-response.json @@ -18,7 +18,7 @@ "candidatesTokenCount": 4, "totalTokenCount": 2635 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -39,7 +39,7 @@ "candidatesTokenCount": 18, "totalTokenCount": 2649 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -60,7 +60,7 @@ "candidatesTokenCount": 34, "totalTokenCount": 2665 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -81,7 +81,7 @@ "candidatesTokenCount": 66, "totalTokenCount": 2697 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -102,7 +102,7 @@ "candidatesTokenCount": 99, "totalTokenCount": 2730 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -123,7 +123,7 @@ "candidatesTokenCount": 149, "totalTokenCount": 2780 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -144,7 +144,7 @@ "candidatesTokenCount": 197, "totalTokenCount": 2828 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -165,7 +165,7 @@ "candidatesTokenCount": 262, "totalTokenCount": 2893 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -186,7 +186,7 @@ "candidatesTokenCount": 327, "totalTokenCount": 2958 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -207,7 +207,7 @@ "candidatesTokenCount": 392, "totalTokenCount": 3023 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -228,7 +228,7 @@ "candidatesTokenCount": 456, "totalTokenCount": 3087 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -249,7 +249,7 @@ "candidatesTokenCount": 519, "totalTokenCount": 3150 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -270,7 +270,7 @@ "candidatesTokenCount": 584, "totalTokenCount": 3215 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -291,7 +291,7 @@ "candidatesTokenCount": 650, "totalTokenCount": 3281 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -312,7 +312,7 @@ "candidatesTokenCount": 716, "totalTokenCount": 3347 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -333,7 +333,7 @@ "candidatesTokenCount": 779, "totalTokenCount": 3410 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -354,7 +354,7 @@ "candidatesTokenCount": 844, "totalTokenCount": 3475 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -375,7 +375,7 @@ "candidatesTokenCount": 910, "totalTokenCount": 3541 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -396,7 +396,7 @@ "candidatesTokenCount": 974, "totalTokenCount": 3605 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -428,6 +428,6 @@ "candidatesTokenCount": 1013, "totalTokenCount": 3644 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" } ] diff --git a/test/unit/googleai/missing-open-xml-tag-response.json b/test/unit/googleai/missing-open-xml-tag-response.json index 477210c4..c6403939 100644 --- a/test/unit/googleai/missing-open-xml-tag-response.json +++ b/test/unit/googleai/missing-open-xml-tag-response.json @@ -18,7 +18,7 @@ "candidatesTokenCount": 4, "totalTokenCount": 2635 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -39,7 +39,7 @@ "candidatesTokenCount": 18, "totalTokenCount": 2649 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -60,7 +60,7 @@ "candidatesTokenCount": 34, "totalTokenCount": 2665 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -81,7 +81,7 @@ "candidatesTokenCount": 66, "totalTokenCount": 2697 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -102,7 +102,7 @@ "candidatesTokenCount": 99, "totalTokenCount": 2730 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.0-pro" }, { "candidates": [ @@ -123,7 +123,7 @@ "candidatesTokenCount": 149, "totalTokenCount": 2780 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -144,7 +144,7 @@ "candidatesTokenCount": 197, "totalTokenCount": 2828 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -165,7 +165,7 @@ "candidatesTokenCount": 262, "totalTokenCount": 2893 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -186,7 +186,7 @@ "candidatesTokenCount": 327, "totalTokenCount": 2958 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -207,7 +207,7 @@ "candidatesTokenCount": 392, "totalTokenCount": 3023 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -228,7 +228,7 @@ "candidatesTokenCount": 456, "totalTokenCount": 3087 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -249,7 +249,7 @@ "candidatesTokenCount": 519, "totalTokenCount": 3150 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -270,7 +270,7 @@ "candidatesTokenCount": 584, "totalTokenCount": 3215 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -291,7 +291,7 @@ "candidatesTokenCount": 650, "totalTokenCount": 3281 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -312,7 +312,7 @@ "candidatesTokenCount": 716, "totalTokenCount": 3347 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -333,7 +333,7 @@ "candidatesTokenCount": 779, "totalTokenCount": 3410 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -354,7 +354,7 @@ "candidatesTokenCount": 844, "totalTokenCount": 3475 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -375,7 +375,7 @@ "candidatesTokenCount": 910, "totalTokenCount": 3541 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.0-pro" }, { "candidates": [ @@ -396,7 +396,7 @@ "candidatesTokenCount": 974, "totalTokenCount": 3605 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -428,6 +428,6 @@ "candidatesTokenCount": 1013, "totalTokenCount": 3644 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" } ] diff --git a/test/unit/googleai/missing-xml-tags-response.json b/test/unit/googleai/missing-xml-tags-response.json index 487f8801..d5f7be85 100644 --- a/test/unit/googleai/missing-xml-tags-response.json +++ b/test/unit/googleai/missing-xml-tags-response.json @@ -24,7 +24,7 @@ } ] }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -51,7 +51,7 @@ } ] }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -78,7 +78,7 @@ } ] }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -105,7 +105,7 @@ } ] }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -132,7 +132,7 @@ } ] }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -159,7 +159,7 @@ } ] }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -186,7 +186,7 @@ } ] }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -213,7 +213,7 @@ } ] }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -240,7 +240,7 @@ } ] }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -267,7 +267,7 @@ } ] }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -294,7 +294,7 @@ } ] }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -321,7 +321,7 @@ } ] }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -348,7 +348,7 @@ } ] }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -375,7 +375,7 @@ } ] }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -403,6 +403,6 @@ } ] }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" } ] diff --git a/test/unit/googleai/present-xml-tags-response.json b/test/unit/googleai/present-xml-tags-response.json index d6403e12..96781d85 100644 --- a/test/unit/googleai/present-xml-tags-response.json +++ b/test/unit/googleai/present-xml-tags-response.json @@ -18,7 +18,7 @@ "candidatesTokenCount": 4, "totalTokenCount": 2635 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -39,7 +39,7 @@ "candidatesTokenCount": 18, "totalTokenCount": 2649 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -60,7 +60,7 @@ "candidatesTokenCount": 34, "totalTokenCount": 2665 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -81,7 +81,7 @@ "candidatesTokenCount": 66, "totalTokenCount": 2697 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -102,7 +102,7 @@ "candidatesTokenCount": 99, "totalTokenCount": 2730 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -123,7 +123,7 @@ "candidatesTokenCount": 149, "totalTokenCount": 2780 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -144,7 +144,7 @@ "candidatesTokenCount": 197, "totalTokenCount": 2828 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -165,7 +165,7 @@ "candidatesTokenCount": 262, "totalTokenCount": 2893 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -186,7 +186,7 @@ "candidatesTokenCount": 327, "totalTokenCount": 2958 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -207,7 +207,7 @@ "candidatesTokenCount": 392, "totalTokenCount": 3023 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -228,7 +228,7 @@ "candidatesTokenCount": 456, "totalTokenCount": 3087 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -249,7 +249,7 @@ "candidatesTokenCount": 519, "totalTokenCount": 3150 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -270,7 +270,7 @@ "candidatesTokenCount": 584, "totalTokenCount": 3215 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -291,7 +291,7 @@ "candidatesTokenCount": 650, "totalTokenCount": 3281 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -312,7 +312,7 @@ "candidatesTokenCount": 716, "totalTokenCount": 3347 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -333,7 +333,7 @@ "candidatesTokenCount": 779, "totalTokenCount": 3410 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -354,7 +354,7 @@ "candidatesTokenCount": 844, "totalTokenCount": 3475 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -375,7 +375,7 @@ "candidatesTokenCount": 910, "totalTokenCount": 3541 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -396,7 +396,7 @@ "candidatesTokenCount": 974, "totalTokenCount": 3605 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" }, { "candidates": [ @@ -428,6 +428,6 @@ "candidatesTokenCount": 1013, "totalTokenCount": 3644 }, - "modelVersion": "gemini-2.0-pro-exp-02-05" + "modelVersion": "gemini-2.5-pro" } ] diff --git a/test/unit/prompt.test.ts b/test/unit/prompt.test.ts index b375f94e..bfee347d 100644 --- a/test/unit/prompt.test.ts +++ b/test/unit/prompt.test.ts @@ -65,7 +65,7 @@ describe('Unit tests for prompt functions', () => { describe('sendPrompt', () => { it('should throw SendPromptError on request failure', async () => { const params = { - model: ModelName.Gemini_Exp_Pro, + model: ModelName.Gemini_2_5_Pro, prompts: { system: 'system message', user: 'user message', diff --git a/test/unit/providers.test.ts b/test/unit/providers.test.ts index 72e6681b..191df641 100644 --- a/test/unit/providers.test.ts +++ b/test/unit/providers.test.ts @@ -7,7 +7,7 @@ import { ModelName, ProviderRequestParams } from '../../src/providers'; describe('Anthropic provider', () => { it('should build a valid request for Anthropic provider', () => { const params: ProviderRequestParams = { - model: ModelName.Claude_4_Opus, + model: ModelName.Claude_4_5_Sonnet, apiKey: 'test-api-key', prompts: { user: 'Test user prompt', @@ -22,15 +22,15 @@ describe('Anthropic provider', () => { expect(request.provider).toBe('anthropic'); expect(request.endpoint).toBe('v1/messages'); expect(request.headers['x-api-key']).toBe('test-api-key'); - expect(request.query.model).toBe(ModelName.Claude_4_Opus); + expect(request.query.model).toBe(ModelName.Claude_4_5_Sonnet); expect(request.query.messages[0].content).toBe('Test user prompt'); expect(request.query.system).toBe('Test system prompt'); expect(request.query.temperature).toBe(0.5); }); - it('should build a valid request for Claude 4 Opus thinking model', () => { + it('should build a valid request for Claude 4.5 Sonnet model without thinking', () => { const params: ProviderRequestParams = { - model: ModelName.Claude_4_Opus_thinking, + model: ModelName.Claude_4_5_Sonnet, apiKey: 'test-api-key', prompts: { user: 'Test user prompt', @@ -45,40 +45,15 @@ describe('Anthropic provider', () => { expect(request.provider).toBe('anthropic'); expect(request.endpoint).toBe('v1/messages'); expect(request.headers['x-api-key']).toBe('test-api-key'); - expect(request.query.model).toBe(ModelName.Claude_4_Opus); // Should map to base model - expect(request.query.thinking).toBeDefined(); - expect(request.query.thinking?.type).toBe('enabled'); - expect(request.query.thinking?.budget_tokens).toBe(20_000); - expect(request.query.temperature).toBe(1); // Should be forced to 1 for thinking - expect(request.query.max_tokens).toBe(32_000); - }); - - it('should build a valid request for Claude 4 Sonnet model without thinking', () => { - const params: ProviderRequestParams = { - model: ModelName.Claude_4_Sonnet, - apiKey: 'test-api-key', - prompts: { - user: 'Test user prompt', - system: 'Test system prompt', - }, - temperature: 0.5, - stream: true, - }; - - const request = anthropicRequest(params); - - expect(request.provider).toBe('anthropic'); - expect(request.endpoint).toBe('v1/messages'); - expect(request.headers['x-api-key']).toBe('test-api-key'); - expect(request.query.model).toBe(ModelName.Claude_4_Sonnet); + expect(request.query.model).toBe(ModelName.Claude_4_5_Sonnet); expect(request.query.thinking).toBeUndefined(); // Should not have thinking enabled expect(request.query.temperature).toBe(0.5); // Should preserve user temperature expect(request.query.max_tokens).toBe(64_000); }); - it('should build a valid request for Claude 4 Sonnet thinking model', () => { + it('should build a valid request for Claude 4.5 Sonnet thinking model', () => { const params: ProviderRequestParams = { - model: ModelName.Claude_4_Sonnet_thinking, + model: ModelName.Claude_4_5_Sonnet_thinking, apiKey: 'test-api-key', prompts: { user: 'Test user prompt', @@ -93,7 +68,7 @@ describe('Anthropic provider', () => { expect(request.provider).toBe('anthropic'); expect(request.endpoint).toBe('v1/messages'); expect(request.headers['x-api-key']).toBe('test-api-key'); - expect(request.query.model).toBe(ModelName.Claude_4_Sonnet); // Should map to base model + expect(request.query.model).toBe(ModelName.Claude_4_5_Sonnet); // Should map to base model expect(request.query.thinking).toBeDefined(); expect(request.query.thinking?.type).toBe('enabled'); expect(request.query.thinking?.budget_tokens).toBe(32_000); @@ -105,7 +80,7 @@ describe('Anthropic provider', () => { describe('Google AI provider', () => { it('should build a valid request for Google AI Studio provider', () => { const params: ProviderRequestParams = { - model: ModelName.Gemini_Exp_Pro, + model: ModelName.Gemini_2_5_Pro, apiKey: 'test-api-key', prompts: { user: 'Test user prompt', @@ -118,7 +93,7 @@ describe('Google AI provider', () => { const request = googleAIStudioRequest(params); expect(request.provider).toBe('google-ai-studio'); - expect(request.endpoint).toBe(`v1beta/models/${ModelName.Gemini_Exp_Pro}:streamGenerateContent`); + expect(request.endpoint).toBe(`v1beta/models/${ModelName.Gemini_2_5_Pro}:streamGenerateContent`); expect(request.headers['x-goog-api-key']).toBe('test-api-key'); expect(request.query.contents[0].parts[0].text).toBe('Test user prompt'); expect(request.query.systemInstruction.parts[0].text).toBe('Test system prompt'); @@ -130,7 +105,7 @@ describe('Google AI provider', () => { const parsedResponse = googleGeminiParsedResponse(response); expect(parsedResponse).toBeDefined(); - expect(parsedResponse.model).toBe('gemini-2.0-pro-exp-02-05'); + expect(parsedResponse.model).toBe('gemini-2.5-pro'); expect(parsedResponse.metaData).toMatchObject([]); }); });