import type {
CanonicalToolResultBlock,
CanonicalToolResultContentBlock,
} from "./canonical.js";
export function toolResultContentBlockToText(block: CanonicalToolResultContentBlock): string {
switch (block.type) {
case "text":
return block.text;
case "image":
return block.source === "url"
? `[Image: ${block.mimeType}, ${block.data}]`
: `[Image: ${block.mimeType}, ${block.data.length} base64 characters]`;
case "pdf":
return `[PDF: ${block.mimeType}, ${block.data.length} base64 characters${block.pages ? `, ${block.pages} pages` : ""}]`;
}
}
export function flattenToolResultContentText(
content: CanonicalToolResultContentBlock[],
): string {
return content.map(toolResultContentBlockToText).join("\n");
}
export function flattenToolResultBlockText(block: CanonicalToolResultBlock): string {
return flattenToolResultContentText(block.content);
}