type ToolPayloadTextBlock = { type: "text"; text: string; }; export type ToolPayloadCarrier = { details?: unknown; content?: unknown; }; function isToolPayloadTextBlock(block: unknown): block is ToolPayloadTextBlock { return ( !!block && typeof block === "object" && (block as { type?: unknown }).type === "text" && typeof (block as { text?: unknown }).text === "string" ); } /** * Extract the most useful payload from tool result-like objects shared across * outbound core flows and bundled plugin helpers. */ export function extractToolPayload(result: ToolPayloadCarrier | null | undefined): unknown { if (!result) { return undefined; } if (result.details !== undefined) { return result.details; } const textBlock = Array.isArray(result.content) ? result.content.find(isToolPayloadTextBlock) : undefined; const text = textBlock?.text; if (!text) { return result.content ?? result; } try { return JSON.parse(text); } catch { return text; } }