diff --git a/packages/opencode/src/provider/transform.ts b/packages/opencode/src/provider/transform.ts index 303ff11fdfd..9d98815cdad 100644 --- a/packages/opencode/src/provider/transform.ts +++ b/packages/opencode/src/provider/transform.ts @@ -1270,8 +1270,14 @@ export function options(input: { result["gateway"] = { caching: "auto" } } - if (input.model.api.npm === "@ai-sdk/azure" && input.model.api.id.includes("gpt-5.5")) { - result["reasoningSummary"] = "auto" + // Any gpt version above 5.4 in combination with azure does not support reasoningEffort + // so we should return early here. + const [, gptMajorVersion, gptMinorVersion] = input.model.api.id.match(/gpt-(\d+)\.(\d+)/) ?? [] + const isGpt55OrNewer = Number(gptMajorVersion) > 5 || (Number(gptMajorVersion) === 5 && Number(gptMinorVersion) >= 5) + if (input.model.api.npm === "@ai-sdk/azure" && input.providerOptions?.useCompletionUrls) { + if (!isGpt55OrNewer) { + result["reasoningEffort"] = "medium" + } return result } diff --git a/packages/opencode/test/provider/transform.test.ts b/packages/opencode/test/provider/transform.test.ts index 0b88fa59dff..6e9efe06bb0 100644 --- a/packages/opencode/test/provider/transform.test.ts +++ b/packages/opencode/test/provider/transform.test.ts @@ -690,6 +690,16 @@ describe("ProviderTransform.options - gpt-5 reasoningEffort", () => { expect(result.reasoningEffort).toBeUndefined() }) + + test("gpt-5.6 should NOT set reasoningEffort", () => { + const result = ProviderTransform.options({ + model: createModel("gpt-5.6"), + sessionID, + providerOptions: {}, + }) + + expect(result.reasoningEffort).toBeUndefined() + }) }) describe("ProviderTransform.options - gateway", () => {