From 12f608e0f4602960c3d3fe0ced78e8e2083e5906 Mon Sep 17 00:00:00 2001 From: roboomp Date: Thu, 18 Jun 2026 21:40:08 +0000 Subject: [PATCH] fix(providers): used neutral bedrock profile metadata Stopped synthetic Bedrock inference profile ARN models from inheriting Claude Opus reasoning and context metadata. Fixes #3004 --- .../coding-agent/src/config/model-resolver.ts | 18 +++++++++++------- .../coding-agent/test/model-resolver.test.ts | 4 ++++ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/packages/coding-agent/src/config/model-resolver.ts b/packages/coding-agent/src/config/model-resolver.ts index e9b84120f..e2cb21785 100644 --- a/packages/coding-agent/src/config/model-resolver.ts +++ b/packages/coding-agent/src/config/model-resolver.ts @@ -214,17 +214,21 @@ function resolveBedrockInferenceProfileModelId( return undefined; } - const providerModels = availableModels.filter(model => model.provider.toLowerCase() === AMAZON_BEDROCK_PROVIDER); - const defaultModelId = DEFAULT_MODEL_PER_PROVIDER[AMAZON_BEDROCK_PROVIDER]; - const template = - providerModels.find(model => model.id === defaultModelId) ?? pickDefaultAvailableModel(providerModels); + const template = availableModels.find(model => model.provider.toLowerCase() === AMAZON_BEDROCK_PROVIDER); if (!template) return undefined; - return { - ...template, + return buildModel({ id: requestedId, name: "Bedrock inference profile", - }; + api: "bedrock-converse-stream", + provider: AMAZON_BEDROCK_PROVIDER, + baseUrl: template.baseUrl, + reasoning: false, + input: ["text"], + cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, + contextWindow: null, + maxTokens: null, + }); } function resolveBedrockInferenceProfileReference( diff --git a/packages/coding-agent/test/model-resolver.test.ts b/packages/coding-agent/test/model-resolver.test.ts index 73d2d26b5..5120e30cc 100644 --- a/packages/coding-agent/test/model-resolver.test.ts +++ b/packages/coding-agent/test/model-resolver.test.ts @@ -918,6 +918,10 @@ describe("resolveCliModel", () => { expect(baseResult.model?.api).toBe("bedrock-converse-stream"); expect(baseResult.model?.id).toBe(profileArn); expect(baseResult.model?.name).toBe("Bedrock inference profile"); + expect(baseResult.model?.reasoning).toBe(false); + expect(baseResult.model?.thinking).toBeUndefined(); + expect(baseResult.model?.contextWindow).toBeNull(); + expect(baseResult.model?.maxTokens).toBeNull(); expect(baseResult.thinkingLevel).toBeUndefined(); expect(offResult.error).toBeUndefined(); expect(offResult.model?.id).toBe(profileArn);