diff --git a/packages/ai/src/protocols/anthropic-messages.ts b/packages/ai/src/protocols/anthropic-messages.ts index 2edfcce975f..0df11b2aa9d 100644 --- a/packages/ai/src/protocols/anthropic-messages.ts +++ b/packages/ai/src/protocols/anthropic-messages.ts @@ -422,14 +422,14 @@ const lowerMedia = Effect.fn("AnthropicMessages.lowerMedia")(function* (part: Me // Tool results may carry structured text, images, and documents. Keep media as provider-native // content instead of JSON-stringifying base64 into a prompt string. -const lowerToolResultContentItem = Effect.fn("AnthropicMessages.lowerToolResultContentItem")(function* ( +const lowerToolResultContentItem = Effect.fnUntraced(function* ( item: Tool.Content, ) { if (item.type === "text") return { type: "text" as const, text: item.text } satisfies AnthropicTextBlock return yield* lowerMedia({ type: "media", mediaType: item.mime, data: item.uri, filename: item.name }) }) -const lowerToolResultContent = Effect.fn("AnthropicMessages.lowerToolResultContent")(function* (part: ToolResultPart) { +const lowerToolResultContent = Effect.fnUntraced(function* (part: ToolResultPart) { // Text / json / error results stay as a string for backward compatibility // with existing cassettes and provider expectations. if (part.result.type !== "content") return ProviderShared.toolResultText(part) diff --git a/packages/ai/src/protocols/open-responses.ts b/packages/ai/src/protocols/open-responses.ts index 03068b24fc1..d6c99cd7a4a 100644 --- a/packages/ai/src/protocols/open-responses.ts +++ b/packages/ai/src/protocols/open-responses.ts @@ -358,7 +358,7 @@ const lowerMedia = Effect.fn("OpenResponses.lowerMedia")(function* ( return { type: "input_image" as const, image_url: media.dataUrl } }) -const lowerUserContent = Effect.fn("OpenResponses.lowerUserContent")(function* ( +const lowerUserContent = Effect.fnUntraced(function* ( part: LLMRequest["messages"][number]["content"][number], request: LLMRequest, extension: Extension, @@ -370,7 +370,7 @@ const lowerUserContent = Effect.fn("OpenResponses.lowerUserContent")(function* ( // Tool results may carry structured text, images, and files. Keep media as provider-native // content instead of JSON-stringifying base64 into a prompt string. -const lowerToolResultContentItem = Effect.fn("OpenResponses.lowerToolResultContentItem")(function* ( +const lowerToolResultContentItem = Effect.fnUntraced(function* ( item: Content, request: LLMRequest, extension: Extension, @@ -383,7 +383,7 @@ const lowerToolResultContentItem = Effect.fn("OpenResponses.lowerToolResultConte ) }) -const lowerToolResultOutput = Effect.fn("OpenResponses.lowerToolResultOutput")(function* ( +const lowerToolResultOutput = Effect.fnUntraced(function* ( part: ToolResultPart, request: LLMRequest, extension: Extension,