Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 6 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 |

Expand All @@ -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

Expand Down
2 changes: 1 addition & 1 deletion src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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,
},
Expand Down
40 changes: 9 additions & 31 deletions src/providers/anthropic.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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;
}

Expand Down
33 changes: 11 additions & 22 deletions src/providers/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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<ModelProvider, { default?: ModelName; models?: ModelName[] }>;

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]: {},
};
Expand Down
2 changes: 1 addition & 1 deletion src/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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,
};
Expand Down
40 changes: 20 additions & 20 deletions test/unit/googleai/missing-close-xml-tag-response.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
"candidatesTokenCount": 4,
"totalTokenCount": 2635
},
"modelVersion": "gemini-2.0-pro-exp-02-05"
"modelVersion": "gemini-2.5-pro"
},
{
"candidates": [
Expand All @@ -39,7 +39,7 @@
"candidatesTokenCount": 18,
"totalTokenCount": 2649
},
"modelVersion": "gemini-2.0-pro-exp-02-05"
"modelVersion": "gemini-2.5-pro"
},
{
"candidates": [
Expand All @@ -60,7 +60,7 @@
"candidatesTokenCount": 34,
"totalTokenCount": 2665
},
"modelVersion": "gemini-2.0-pro-exp-02-05"
"modelVersion": "gemini-2.5-pro"
},
{
"candidates": [
Expand All @@ -81,7 +81,7 @@
"candidatesTokenCount": 66,
"totalTokenCount": 2697
},
"modelVersion": "gemini-2.0-pro-exp-02-05"
"modelVersion": "gemini-2.5-pro"
},
{
"candidates": [
Expand All @@ -102,7 +102,7 @@
"candidatesTokenCount": 99,
"totalTokenCount": 2730
},
"modelVersion": "gemini-2.0-pro-exp-02-05"
"modelVersion": "gemini-2.5-pro"
},
{
"candidates": [
Expand All @@ -123,7 +123,7 @@
"candidatesTokenCount": 149,
"totalTokenCount": 2780
},
"modelVersion": "gemini-2.0-pro-exp-02-05"
"modelVersion": "gemini-2.5-pro"
},
{
"candidates": [
Expand All @@ -144,7 +144,7 @@
"candidatesTokenCount": 197,
"totalTokenCount": 2828
},
"modelVersion": "gemini-2.0-pro-exp-02-05"
"modelVersion": "gemini-2.5-pro"
},
{
"candidates": [
Expand All @@ -165,7 +165,7 @@
"candidatesTokenCount": 262,
"totalTokenCount": 2893
},
"modelVersion": "gemini-2.0-pro-exp-02-05"
"modelVersion": "gemini-2.5-pro"
},
{
"candidates": [
Expand All @@ -186,7 +186,7 @@
"candidatesTokenCount": 327,
"totalTokenCount": 2958
},
"modelVersion": "gemini-2.0-pro-exp-02-05"
"modelVersion": "gemini-2.5-pro"
},
{
"candidates": [
Expand All @@ -207,7 +207,7 @@
"candidatesTokenCount": 392,
"totalTokenCount": 3023
},
"modelVersion": "gemini-2.0-pro-exp-02-05"
"modelVersion": "gemini-2.5-pro"
},
{
"candidates": [
Expand All @@ -228,7 +228,7 @@
"candidatesTokenCount": 456,
"totalTokenCount": 3087
},
"modelVersion": "gemini-2.0-pro-exp-02-05"
"modelVersion": "gemini-2.5-pro"
},
{
"candidates": [
Expand All @@ -249,7 +249,7 @@
"candidatesTokenCount": 519,
"totalTokenCount": 3150
},
"modelVersion": "gemini-2.0-pro-exp-02-05"
"modelVersion": "gemini-2.5-pro"
},
{
"candidates": [
Expand All @@ -270,7 +270,7 @@
"candidatesTokenCount": 584,
"totalTokenCount": 3215
},
"modelVersion": "gemini-2.0-pro-exp-02-05"
"modelVersion": "gemini-2.5-pro"
},
{
"candidates": [
Expand All @@ -291,7 +291,7 @@
"candidatesTokenCount": 650,
"totalTokenCount": 3281
},
"modelVersion": "gemini-2.0-pro-exp-02-05"
"modelVersion": "gemini-2.5-pro"
},
{
"candidates": [
Expand All @@ -312,7 +312,7 @@
"candidatesTokenCount": 716,
"totalTokenCount": 3347
},
"modelVersion": "gemini-2.0-pro-exp-02-05"
"modelVersion": "gemini-2.5-pro"
},
{
"candidates": [
Expand All @@ -333,7 +333,7 @@
"candidatesTokenCount": 779,
"totalTokenCount": 3410
},
"modelVersion": "gemini-2.0-pro-exp-02-05"
"modelVersion": "gemini-2.5-pro"
},
{
"candidates": [
Expand All @@ -354,7 +354,7 @@
"candidatesTokenCount": 844,
"totalTokenCount": 3475
},
"modelVersion": "gemini-2.0-pro-exp-02-05"
"modelVersion": "gemini-2.5-pro"
},
{
"candidates": [
Expand All @@ -375,7 +375,7 @@
"candidatesTokenCount": 910,
"totalTokenCount": 3541
},
"modelVersion": "gemini-2.0-pro-exp-02-05"
"modelVersion": "gemini-2.5-pro"
},
{
"candidates": [
Expand All @@ -396,7 +396,7 @@
"candidatesTokenCount": 974,
"totalTokenCount": 3605
},
"modelVersion": "gemini-2.0-pro-exp-02-05"
"modelVersion": "gemini-2.5-pro"
},
{
"candidates": [
Expand Down Expand Up @@ -428,6 +428,6 @@
"candidatesTokenCount": 1013,
"totalTokenCount": 3644
},
"modelVersion": "gemini-2.0-pro-exp-02-05"
"modelVersion": "gemini-2.5-pro"
}
]
Loading