diff --git a/packages/types/src/__tests__/provider-settings.test.ts b/packages/types/src/__tests__/provider-settings.test.ts index cedf9a3e2f3..c01db5cc03a 100644 --- a/packages/types/src/__tests__/provider-settings.test.ts +++ b/packages/types/src/__tests__/provider-settings.test.ts @@ -62,7 +62,7 @@ describe("getApiProtocol", () => { it("should return 'openai' for non-anthropic providers regardless of model", () => { expect(getApiProtocol("openrouter", "claude-3-opus")).toBe("openai") expect(getApiProtocol("openai", "claude-3-sonnet")).toBe("openai") - expect(getApiProtocol("litellm", "claude-instant")).toBe("openai") + expect(getApiProtocol("litellm", "anthropic.claude-sonnet-4-5-20250929-v1:0")).toBe("openai") expect(getApiProtocol("ollama", "claude-model")).toBe("openai") }) }) @@ -80,7 +80,7 @@ describe("getApiProtocol", () => { it("should be case-insensitive for claude detection", () => { expect(getApiProtocol("vertex", "CLAUDE-3-OPUS")).toBe("anthropic") expect(getApiProtocol("vertex", "claude-3-opus")).toBe("anthropic") - expect(getApiProtocol("vertex", "ClAuDe-InStAnT")).toBe("anthropic") + expect(getApiProtocol("vertex", "ClAuDe-SoNnEt-4-5")).toBe("anthropic") }) }) }) diff --git a/packages/types/src/providers/bedrock.ts b/packages/types/src/providers/bedrock.ts index 9eaa656ef11..b6cf7fec8ea 100644 --- a/packages/types/src/providers/bedrock.ts +++ b/packages/types/src/providers/bedrock.ts @@ -236,36 +236,6 @@ export const bedrockModels = { inputPrice: 0.25, outputPrice: 1.25, }, - "anthropic.claude-2-1-v1:0": { - maxTokens: 4096, - contextWindow: 100_000, - supportsImages: false, - supportsPromptCache: false, - supportsNativeTools: true, - inputPrice: 8.0, - outputPrice: 24.0, - description: "Claude 2.1", - }, - "anthropic.claude-2-0-v1:0": { - maxTokens: 4096, - contextWindow: 100_000, - supportsImages: false, - supportsPromptCache: false, - supportsNativeTools: true, - inputPrice: 8.0, - outputPrice: 24.0, - description: "Claude 2.0", - }, - "anthropic.claude-instant-v1:0": { - maxTokens: 4096, - contextWindow: 100_000, - supportsImages: false, - supportsPromptCache: false, - supportsNativeTools: true, - inputPrice: 0.8, - outputPrice: 2.4, - description: "Claude Instant", - }, "deepseek.r1-v1:0": { maxTokens: 32_768, contextWindow: 128_000, @@ -423,68 +393,6 @@ export const bedrockModels = { outputPrice: 0.6, description: "Amazon Titan Text Express", }, - "amazon.titan-text-embeddings-v1:0": { - maxTokens: 8192, - contextWindow: 8_000, - supportsImages: false, - supportsPromptCache: false, - inputPrice: 0.1, - description: "Amazon Titan Text Embeddings", - }, - "amazon.titan-text-embeddings-v2:0": { - maxTokens: 8192, - contextWindow: 8_000, - supportsImages: false, - supportsPromptCache: false, - inputPrice: 0.02, - description: "Amazon Titan Text Embeddings V2", - }, - "moonshot.kimi-k2-thinking": { - maxTokens: 32_000, - contextWindow: 262_144, - supportsImages: false, - supportsPromptCache: false, - supportsNativeTools: true, - defaultToolProtocol: "native", - preserveReasoning: true, - inputPrice: 0.6, - outputPrice: 2.5, - description: "Kimi K2 Thinking (1T parameter MoE model with 32B active parameters)", - }, - "minimax.minimax-m2": { - maxTokens: 16_384, - contextWindow: 196_608, - supportsImages: false, - supportsPromptCache: false, - supportsNativeTools: true, - defaultToolProtocol: "native", - preserveReasoning: true, - inputPrice: 0.3, - outputPrice: 1.2, - description: "MiniMax M2 (230B parameter MoE model with 10B active parameters)", - }, - "qwen.qwen3-next-80b-a3b": { - maxTokens: 8192, - contextWindow: 262_144, - supportsImages: false, - supportsPromptCache: false, - supportsNativeTools: true, - defaultToolProtocol: "native", - inputPrice: 0.15, - outputPrice: 1.2, - description: "Qwen3 Next 80B (MoE model with 3B active parameters)", - }, - "qwen.qwen3-coder-480b-a35b-v1:0": { - maxTokens: 8192, - contextWindow: 262_144, - supportsImages: false, - supportsPromptCache: false, - supportsNativeTools: true, - defaultToolProtocol: "native", - inputPrice: 0.45, - outputPrice: 1.8, - description: "Qwen3 Coder 480B (MoE model with 35B active parameters)", - }, } as const satisfies Record export const BEDROCK_DEFAULT_TEMPERATURE = 0.3 diff --git a/src/api/providers/__tests__/bedrock-invokedModelId.spec.ts b/src/api/providers/__tests__/bedrock-invokedModelId.spec.ts index 7fe7255f5bc..7118f8a33dd 100644 --- a/src/api/providers/__tests__/bedrock-invokedModelId.spec.ts +++ b/src/api/providers/__tests__/bedrock-invokedModelId.spec.ts @@ -122,7 +122,7 @@ describe("AwsBedrockHandler with invokedModelId", () => { trace: { promptRouter: { invokedModelId: - "arn:aws:bedrock:us-west-2:699475926481:inference-profile/us.anthropic.claude-2-1-v1:0", + "arn:aws:bedrock:us-west-2:699475926481:inference-profile/us.anthropic.claude-sonnet-4-5-20250929-v1:0", usage: { inputTokens: 150, outputTokens: 250, @@ -162,12 +162,12 @@ describe("AwsBedrockHandler with invokedModelId", () => { } // Verify that getModelById was called with the id, not the full arn - expect(getModelByIdSpy).toHaveBeenCalledWith("anthropic.claude-2-1-v1:0", "inference-profile") + expect(getModelByIdSpy).toHaveBeenCalledWith("anthropic.claude-sonnet-4-5-20250929-v1:0", "inference-profile") // Verify that getModel returns the updated model info const costModel = handler.getModel() //expect(costModel.id).toBe("anthropic.claude-3-5-sonnet-20240620-v1:0") - expect(costModel.info.inputPrice).toBe(8) + expect(costModel.info.inputPrice).toBe(3) // Verify that a usage event was emitted after updating the costModelConfig const usageEvents = events.filter((event) => event.type === "usage") diff --git a/src/api/providers/bedrock.ts b/src/api/providers/bedrock.ts index 4a4adfc0f41..8d0f5c1d75b 100644 --- a/src/api/providers/bedrock.ts +++ b/src/api/providers/bedrock.ts @@ -889,9 +889,9 @@ export class AwsBedrockHandler extends BaseProvider implements SingleCompletionH * macOS, Linux, and any other operating system where JavaScript runs. * * This matches ARNs like: - * - Foundation Model: arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-v2 + * - Foundation Model: arn:aws:bedrock:us-west-2::foundation-model/anthropic.claude-sonnet-4-20250514-v1:0 * - Prompt Router: arn:aws:bedrock:us-west-2:123456789012:prompt-router/anthropic-claude - * - Inference Profile: arn:aws:bedrock:us-west-2:123456789012:inference-profile/anthropic.claude-v2 + * - Inference Profile: arn:aws:bedrock:us-west-2:123456789012:inference-profile/anthropic.claude-opus-4-20250514-v1:0 * - Cross Region Inference Profile: arn:aws:bedrock:us-west-2:123456789012:inference-profile/us.anthropic.claude-3-5-sonnet-20241022-v2:0 * - Custom Model (Provisioned Throughput): arn:aws:bedrock:us-west-2:123456789012:provisioned-model/my-custom-model * - Imported Model: arn:aws:bedrock:us-west-2:123456789012:imported-model/my-imported-model diff --git a/src/core/task/__tests__/Task.spec.ts b/src/core/task/__tests__/Task.spec.ts index 4bae9c49d09..677aed60585 100644 --- a/src/core/task/__tests__/Task.spec.ts +++ b/src/core/task/__tests__/Task.spec.ts @@ -1454,7 +1454,7 @@ describe("Cline", () => { const claudeModelFormats = [ "claude-3-opus", "Claude-3-Sonnet", - "CLAUDE-instant", + "CLAUDE-sonnet-4-5", "anthropic/claude-3-haiku", "some-provider/claude-model", ] diff --git a/src/core/webview/__tests__/ClineProvider.apiHandlerRebuild.spec.ts b/src/core/webview/__tests__/ClineProvider.apiHandlerRebuild.spec.ts index 3671019f5db..dd81c3d2968 100644 --- a/src/core/webview/__tests__/ClineProvider.apiHandlerRebuild.spec.ts +++ b/src/core/webview/__tests__/ClineProvider.apiHandlerRebuild.spec.ts @@ -568,8 +568,8 @@ describe("ClineProvider - API Handler Rebuild Guard", () => { ) expect(getModelId({ apiProvider: "openai", openAiModelId: "gpt-4-turbo" })).toBe("gpt-4-turbo") expect(getModelId({ apiProvider: "glama", glamaModelId: "some-model" })).toBe("some-model") - expect(getModelId({ apiProvider: "bedrock", apiModelId: "anthropic.claude-v2" })).toBe( - "anthropic.claude-v2", + expect(getModelId({ apiProvider: "bedrock", apiModelId: "anthropic.claude-sonnet-4-5-20250929-v1:0" })).toBe( + "anthropic.claude-sonnet-4-5-20250929-v1:0", ) }) diff --git a/webview-ui/src/components/chat/__tests__/ApiConfigSelector.spec.tsx b/webview-ui/src/components/chat/__tests__/ApiConfigSelector.spec.tsx index ff1b95f9499..9007364983e 100644 --- a/webview-ui/src/components/chat/__tests__/ApiConfigSelector.spec.tsx +++ b/webview-ui/src/components/chat/__tests__/ApiConfigSelector.spec.tsx @@ -131,7 +131,7 @@ describe("ApiConfigSelector", () => { { id: "config4", name: "Config 4", modelId: "gpt-3.5-turbo" }, { id: "config5", name: "Config 5", modelId: "claude-3-haiku-20240307" }, { id: "config6", name: "Config 6", modelId: "gpt-4-turbo" }, - { id: "config7", name: "Config 7", modelId: "claude-2.1" }, + { id: "config7", name: "Config 7", modelId: "anthropic.claude-sonnet-4-5-20250929-v1:0" }, ], } render() @@ -165,7 +165,7 @@ describe("ApiConfigSelector", () => { { id: "config4", name: "Config 4", modelId: "gpt-3.5-turbo" }, { id: "config5", name: "Config 5", modelId: "claude-3-haiku-20240307" }, { id: "config6", name: "Config 6", modelId: "gpt-4-turbo" }, - { id: "config7", name: "Config 7", modelId: "claude-2.1" }, + { id: "config7", name: "Config 7", modelId: "anthropic.claude-sonnet-4-5-20250929-v1:0" }, ], } render() @@ -195,7 +195,7 @@ describe("ApiConfigSelector", () => { { id: "config4", name: "Config 4", modelId: "gpt-3.5-turbo" }, { id: "config5", name: "Config 5", modelId: "claude-3-haiku-20240307" }, { id: "config6", name: "Config 6", modelId: "gpt-4-turbo" }, - { id: "config7", name: "Config 7", modelId: "claude-2.1" }, + { id: "config7", name: "Config 7", modelId: "anthropic.claude-sonnet-4-5-20250929-v1:0" }, ], } render() @@ -221,7 +221,7 @@ describe("ApiConfigSelector", () => { { id: "config4", name: "Config 4", modelId: "gpt-3.5-turbo" }, { id: "config5", name: "Config 5", modelId: "claude-3-haiku-20240307" }, { id: "config6", name: "Config 6", modelId: "gpt-4-turbo" }, - { id: "config7", name: "Config 7", modelId: "claude-2.1" }, + { id: "config7", name: "Config 7", modelId: "anthropic.claude-sonnet-4-5-20250929-v1:0" }, ], } render() @@ -357,7 +357,7 @@ describe("ApiConfigSelector", () => { { id: "config4", name: "Config 4", modelId: "gpt-3.5-turbo" }, { id: "config5", name: "Config 5", modelId: "claude-3-haiku-20240307" }, { id: "config6", name: "Config 6", modelId: "gpt-4-turbo" }, - { id: "config7", name: "Config 7", modelId: "claude-2.1" }, + { id: "config7", name: "Config 7", modelId: "anthropic.claude-sonnet-4-5-20250929-v1:0" }, ], } render() @@ -414,7 +414,7 @@ describe("ApiConfigSelector", () => { { id: "config4", name: "Config 4", modelId: "gpt-3.5-turbo" }, { id: "config5", name: "Config 5", modelId: "claude-3-haiku-20240307" }, { id: "config6", name: "Config 6", modelId: "gpt-4-turbo" }, - { id: "config7", name: "Config 7", modelId: "claude-2.1" }, + { id: "config7", name: "Config 7", modelId: "anthropic.claude-sonnet-4-5-20250929-v1:0" }, ], } render()