summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAiden Cline <[email protected]>2026-04-26 23:57:32 -0500
committerGitHub <[email protected]>2026-04-26 23:57:32 -0500
commitf19d863689f4404bd6f712c9814299d25d045582 (patch)
tree9a11ab2755d024d0749d0032a00c38e6bde9f510
parent025a6392cebdbd412289c64a5477adca140bb495 (diff)
downloadopencode-f19d863689f4404bd6f712c9814299d25d045582.tar.gz
opencode-f19d863689f4404bd6f712c9814299d25d045582.zip
ignore: split up reasoning transforms (#24574)
-rw-r--r--packages/opencode/src/provider/transform.ts23
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") {