From a164880d66d91a7139d66a0c47ae67029bf57936 Mon Sep 17 00:00:00 2001 From: Joel Stucki Date: Fri, 21 Aug 2026 10:23:47 -0600 Subject: [PATCH] fix(provider): guard textVerbosity injection for @ai-sdk/openai-compatible providers Only enable the gpt-5.x textVerbosity default for integrations known to implement OpenAI's verbosity parameter (@ai-sdk/openai and @ai-sdk/amazon-bedrock/mantle). Previously the guard excluded only Azure, so generic @ai-sdk/openai-compatible providers (e.g. LiteLLM proxies) received textVerbosity as well. When such a proxy routes to AWS Bedrock behind the scenes, Bedrock rejects the resulting verbosity parameter with litellm.UnsupportedParamsError, breaking every request (including configured fallbacks) to any gpt-5.x model on that provider. This mirrors the existing reasoningSummary guard pattern fixed in #21237 / #22352, which textVerbosity never received. Fixes #43911 --- packages/opencode/src/provider/transform.ts | 6 +++--- packages/opencode/test/provider/transform.test.ts | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/packages/opencode/src/provider/transform.ts b/packages/opencode/src/provider/transform.ts index b388297aee80..0667fc2eb098 100644 --- a/packages/opencode/src/provider/transform.ts +++ b/packages/opencode/src/provider/transform.ts @@ -1303,13 +1303,13 @@ export function options(input: { } } - // Only set textVerbosity for non-chat gpt-5.x models - // Chat models (e.g. gpt-5.2-chat-latest) only support "medium" verbosity + // Generic OpenAI-compatible APIs do not necessarily support OpenAI's verbosity parameter. + // Only enable the default for integrations known to implement it. if ( input.model.api.id.includes("gpt-5.") && !input.model.api.id.includes("codex") && !input.model.api.id.includes("-chat") && - input.model.providerID !== "azure" + (input.model.api.npm === "@ai-sdk/openai" || input.model.api.npm === "@ai-sdk/amazon-bedrock/mantle") ) { result["textVerbosity"] = "low" } diff --git a/packages/opencode/test/provider/transform.test.ts b/packages/opencode/test/provider/transform.test.ts index 77aa38ad73a7..97f0de281483 100644 --- a/packages/opencode/test/provider/transform.test.ts +++ b/packages/opencode/test/provider/transform.test.ts @@ -523,6 +523,7 @@ describe("ProviderTransform.options - gpt-5 textVerbosity", () => { expect(result.reasoningEffort).toBe("medium") expect(result.reasoningSummary).toBeUndefined() expect(result.include).toBeUndefined() + expect(result.textVerbosity).toBeUndefined() }) test("azure chat completions omit Responses-only reasoning options after variants merge", async () => {