From 474a3df9984347cb87c00780fa4a8ddc527353ef Mon Sep 17 00:00:00 2001 From: Austin Liu <193228693+Dingding-leo@users.noreply.github.com> Date: Tue, 28 Jul 2026 05:55:59 +0930 Subject: [PATCH] fix(bedrock): preserve additionalModelRequestFields in converse payload (fixes #8746) (#8764) Passes through request.additionalModelRequestFields in openAIToBedrockConverse so reasoning/thinking options passed from Kiro/Bedrock translators are retained in the AWS Converse payload. --- open-sse/executors/bedrock.ts | 4 ++++ tests/unit/executor-bedrock.test.ts | 13 +++++++++++++ 2 files changed, 17 insertions(+) diff --git a/open-sse/executors/bedrock.ts b/open-sse/executors/bedrock.ts index 740e3e8bd5..200962af96 100644 --- a/open-sse/executors/bedrock.ts +++ b/open-sse/executors/bedrock.ts @@ -366,6 +366,10 @@ export function openAIToBedrockConverse(model, body) { const toolConfig = toolConfigFromOpenAI(request.tools, request.tool_choice); if (toolConfig) payload.toolConfig = toolConfig; + if (request.additionalModelRequestFields !== undefined) { + payload.additionalModelRequestFields = request.additionalModelRequestFields; + } + return payload; } diff --git a/tests/unit/executor-bedrock.test.ts b/tests/unit/executor-bedrock.test.ts index 14fa822378..61f5b64d54 100644 --- a/tests/unit/executor-bedrock.test.ts +++ b/tests/unit/executor-bedrock.test.ts @@ -97,6 +97,19 @@ test("openAIToBedrockConverse avoids duplicate Bedrock toolUse ids from mixed to assert.equal(payload.messages[2].content[0].toolResult.toolUseId, "call_dup"); }); +test("openAIToBedrockConverse preserves additionalModelRequestFields", () => { + const payload = openAIToBedrockConverse("anthropic.claude-3-7-sonnet-20250219-v1:0", { + messages: [{ role: "user", content: "Hello" }], + additionalModelRequestFields: { + thinking: { type: "enabled", budget_tokens: 2048 }, + }, + }); + + assert.deepStrictEqual(payload.additionalModelRequestFields, { + thinking: { type: "enabled", budget_tokens: 2048 }, + }); +}); + test("openAIToBedrockConverse drops duplicate pending tool call ids", () => { const payload = openAIToBedrockConverse("anthropic.claude-sonnet-4-6", { messages: [