import type { AgentChatMessage } from "../types"; import type { AnswerUiPart } from "./contract"; export function getAnswerPresentation(message: AgentChatMessage): { report: AnswerUiPart[]; process: AnswerUiPart[]; final: boolean; } { const parts = message.answerParts ?? (message.content ? [{ type: "text" as const, text: message.content }] : []); if (!message.finalAnswer) return { report: parts, process: [], final: false }; const selected = new Set(message.finalAnswer.uiBlockIds); const report: AnswerUiPart[] = [{ type: "text", text: message.finalAnswer.content }]; for (const id of selected) { const part = parts.find((item) => item.type === "answer-ui" && item.block.block_id === id); if (part) report.push(part); } const process = parts.filter((part) => part.type === "answer-ui" ? !selected.has(part.block.block_id) : part.text.trim() !== message.finalAnswer!.content.trim() ); return { report, process, final: true }; }