diff options
| author | Aiden Cline <[email protected]> | 2026-04-26 23:57:32 -0500 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-04-26 23:57:32 -0500 |
| commit | f19d863689f4404bd6f712c9814299d25d045582 (patch) | |
| tree | 9a11ab2755d024d0749d0032a00c38e6bde9f510 | |
| parent | 025a6392cebdbd412289c64a5477adca140bb495 (diff) | |
| download | opencode-f19d863689f4404bd6f712c9814299d25d045582.tar.gz opencode-f19d863689f4404bd6f712c9814299d25d045582.zip | |
ignore: split up reasoning transforms (#24574)
| -rw-r--r-- | packages/opencode/src/provider/transform.ts | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/packages/opencode/src/provider/transform.ts b/packages/opencode/src/provider/transform.ts index cb732fc58..5e9da5c08 100644 --- a/packages/opencode/src/provider/transform.ts +++ b/packages/opencode/src/provider/transform.ts @@ -52,7 +52,28 @@ function normalizeMessages( ): ModelMessage[] { // Anthropic rejects messages with empty content - filter out empty string messages // and remove empty text/reasoning parts from array content - if (model.api.npm === "@ai-sdk/anthropic" || model.api.npm === "@ai-sdk/amazon-bedrock") { + if (model.api.npm === "@ai-sdk/anthropic") { + msgs = msgs + .map((msg) => { + if (typeof msg.content === "string") { + if (msg.content === "") return undefined + return msg + } + if (!Array.isArray(msg.content)) return msg + const filtered = msg.content.filter((part) => { + if (part.type === "text" || part.type === "reasoning") { + return part.text !== "" + } + return true + }) + if (filtered.length === 0) return undefined + return { ...msg, content: filtered } + }) + .filter((msg): msg is ModelMessage => msg !== undefined && msg.content !== "") + } + + // Bedrock specific transforms + if (model.api.npm === "@ai-sdk/amazon-bedrock") { msgs = msgs .map((msg) => { if (typeof msg.content === "string") { |
