import type { TaskChatEvidence } from "./task-chat.js"; const html = (value: unknown) => String(value ?? "").replace(/[&<>"']/g, c => ({ "&": "&", "<": "<", ">": ">", '"': """, "'": "'" })[c]!); export function renderTaskChat(evidence?: TaskChatEvidence) { if (!evidence || (!evidence.threads.length && evidence.status === "complete")) return ""; return `

Task chat

${evidence.status !== "complete" ? `

Conversation capture ${html(evidence.status)}. Some task history could not be collected (${evidence.missing.map(html).join(", ")}).

` : ""} ${evidence.threads.map(thread => `
${html(thread.identifier ? `${thread.identifier}: ` : "")}${html(thread.title)} · ${thread.messages.length} entries${thread.status === "partial" ? " · partial capture" : ""}

Recorded task brief, messages, requests and answers, with native agent progress when available. This is a read-only recording of the saved task conversation.

${thread.messages.length ? thread.messages.map(message => `
${html(message.author)}${message.kind === "answer" ? "Response" : ""}
${html(message.body)}
${message.at ? `
` : ""}
`).join("") : '

No messages were saved on this task.

'}
`).join("")}
`; }