diff --git a/src/agents/pi-embedded-runner/extra-params.xai-tool-payload.test.ts b/src/agents/pi-embedded-runner/extra-params.xai-tool-payload.test.ts index f832e83fd2e..f402256c3e2 100644 --- a/src/agents/pi-embedded-runner/extra-params.xai-tool-payload.test.ts +++ b/src/agents/pi-embedded-runner/extra-params.xai-tool-payload.test.ts @@ -43,6 +43,29 @@ describe("extra-params: xAI tool payload compatibility", () => { expect(payload.tools?.[0]?.function).not.toHaveProperty("strict"); }); + it("strips xai Responses reasoning payload fields", () => { + const payload = runExtraParamsCase({ + applyProvider: "xai", + applyModelId: "grok-4.20-beta-latest-reasoning", + model: { + api: "openai-responses", + provider: "xai", + id: "grok-4.20-beta-latest-reasoning", + } as Model<"openai-responses">, + payload: { + model: "grok-4.20-beta-latest-reasoning", + input: [], + reasoning: { effort: "high", summary: "auto" }, + reasoningEffort: "high", + reasoning_effort: "high", + }, + }).payload as Record; + + expect(payload).not.toHaveProperty("reasoning"); + expect(payload).not.toHaveProperty("reasoningEffort"); + expect(payload).not.toHaveProperty("reasoning_effort"); + }); + it("keeps function.strict for non-xai providers", () => { const payload = runToolPayloadCase("openai", "gpt-5.4");