diff --git a/packages/types/src/providers/bedrock.ts b/packages/types/src/providers/bedrock.ts index 492089be5b..835215cf2d 100644 --- a/packages/types/src/providers/bedrock.ts +++ b/packages/types/src/providers/bedrock.ts @@ -258,6 +258,7 @@ export const bedrockModels = { // 128K max output tokens per the AWS Bedrock model card: // https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-anthropic-claude-opus-5-5.html maxTokens: 128_000, + supportsMaxTokens: true, contextWindow: 1_000_000, // 1M context window native (no beta header required) supportsImages: true, supportsPromptCache: true, diff --git a/src/api/providers/__tests__/bedrock.spec.ts b/src/api/providers/__tests__/bedrock.spec.ts index fd6da53a9b..a2089ed29e 100644 --- a/src/api/providers/__tests__/bedrock.spec.ts +++ b/src/api/providers/__tests__/bedrock.spec.ts @@ -141,16 +141,17 @@ describe("AwsBedrockHandler", () => { ["anthropic.claude-opus-4-7", 128_000], ["anthropic.claude-opus-4-8", 128_000], ["anthropic.claude-opus-5", 128_000], + ["anthropic.claude-opus-5-5", 128_000], ] as const)("exposes %s output ceiling without raising request defaults", async (apiModelId, ceiling) => { for (const enableReasoningEffort of [true, false]) { for (const modelMaxTokens of [undefined, ceiling]) { const provider = new AwsBedrockHandler({ apiModelId, enableReasoningEffort, modelMaxTokens }) - expect(provider.getModel().info.maxTokens).toBe(ceiling) + const modelInfo = provider.getModel().info + expect(modelInfo.maxTokens).toBe(ceiling) provider["client"].send = vi.fn().mockResolvedValue({ stream: asyncStreamFrom([]) }) await collectStream(provider.createMessage("system", [{ role: "user", content: "hello" }])) - const configurableWithoutReasoning = apiModelId.endsWith("-5") const expected = - modelMaxTokens && (enableReasoningEffort || configurableWithoutReasoning) + modelMaxTokens && (enableReasoningEffort || modelInfo.supportsMaxTokens) ? ceiling : enableReasoningEffort ? 16_384 diff --git a/webview-ui/src/components/settings/__tests__/ThinkingBudget.spec.tsx b/webview-ui/src/components/settings/__tests__/ThinkingBudget.spec.tsx index 30a7927468..ff1b6f59d7 100644 --- a/webview-ui/src/components/settings/__tests__/ThinkingBudget.spec.tsx +++ b/webview-ui/src/components/settings/__tests__/ThinkingBudget.spec.tsx @@ -84,6 +84,7 @@ describe("ThinkingBudget", () => { ["anthropic.claude-opus-4-8", 128_000], ["anthropic.claude-sonnet-5", 128_000], ["anthropic.claude-opus-5", 128_000], + ["anthropic.claude-opus-5-5", 128_000], ] as const)("allows selecting the documented Bedrock output ceiling for %s", (apiModelId, ceiling) => { render(