import type { AgentRunSnapshot, AgentRunView } from "./protocol"; /** Public task activity only. Native engine diagnostics stay in server snapshots. */ export function canvasAgentProgressLabel(message: string): string { if (/zcode|沙箱|sandbox|bwrap|seatbelt|systemd|\/var\/|\/opt\//i.test(message)) { if (/规划|执行画布|running/i.test(message)) return "正在分析需求并安排处理步骤"; if (/失败|error|failed|unavailable|denied|拒绝|不足/i.test(message)) return "任务暂时无法继续,已保留完成的结果"; return "正在准备处理任务"; } return message; } const oldTitles: Record = { planCanvasTask: "安排处理步骤", readCanvas: "查看画布", analyzeCanvasImages: "分析图片", generateCanvasImages: "生成图片", editTargetImage: "编辑图片", readProjectService: "读取所需资料", getWeather: "查询天气", createDocument: "创建文档", updateDocument: "更新文档", requestSuggestions: "整理修改建议", runProjectService: "处理创作内容", listProjectServices: "查找所需功能", loadProjectSkill: "读取技能要求", }; export function canvasAgentActivities(snapshot: AgentRunSnapshot) { return snapshot.calls.slice(-12).map(call => ({ id: call.id, title: canvasAgentProgressLabel((call.title && call.title !== call.name ? call.title : oldTitles[call.name]) || "处理任务"), status: call.status, })); } export type CanvasAgentProgress = Pick; export function canvasAgentProgress(run: AgentRunView): CanvasAgentProgress { return { id: run.id, status: run.status, message: canvasAgentProgressLabel(run.message), toolCount: run.toolCount, activities: run.activities || [] }; }