import { activityCompletedTrail } from "./chat-message-view.ts"; import type { PublicActivityPhase } from "./consultation-agent-events.ts"; import type { PublicRectificationTool } from "./rectification-agentic/v9/public-receipt.ts"; export const RECTIFICATION_TOOL_DONE_LABELS: Readonly> = { "rectification-read-case": "读取校正记录", "rectification-set-focus": "设置对话焦点", "rectification-resolve-focus": "处理当前焦点", "rectification-record-evidence-batch": "整理多条事件证据", "rectification-propose-evidence": "整理事件证据", "rectification-confirm-evidence": "确认事件证据", "rectification-revise-evidence": "修订事件证据", "rectification-compare-candidates": "比较候选时间", "rectification-read-diagnostics": "检查候选稳健性", "rectification-offer-candidates": "生成候选建议", "rectification-accept-candidate": "采用候选时间", "rectification-confirm-birth-time": "确认校正时间", "rectification-close-case": "完成校正记录", }; export const RECTIFICATION_TOOL_PROGRESS_LABELS: Readonly> = { "rectification-read-case": "正在读取校正记录…", "rectification-set-focus": "正在设置对话焦点…", "rectification-resolve-focus": "正在处理当前焦点…", "rectification-record-evidence-batch": "正在整理多条事件证据…", "rectification-propose-evidence": "正在整理事件证据…", "rectification-confirm-evidence": "正在确认事件证据…", "rectification-revise-evidence": "正在修订事件证据…", "rectification-compare-candidates": "正在比较候选时间…", "rectification-read-diagnostics": "正在检查候选稳健性…", "rectification-offer-candidates": "正在生成候选建议…", "rectification-accept-candidate": "正在采用候选时间…", "rectification-confirm-birth-time": "正在确认校正时间…", "rectification-close-case": "正在完成校正记录…", }; const COMPARE_TOOLS = new Set([ "rectification-compare-candidates", "rectification-read-diagnostics", "rectification-offer-candidates", ]); const LOAD_TOOLS = new Set([ "rectification-read-case", "rectification-set-focus", "rectification-resolve-focus", ]); export function rectificationCompletedTrail(steps: readonly PublicRectificationTool[]): string | undefined { return activityCompletedTrail(steps.map((tool) => RECTIFICATION_TOOL_DONE_LABELS[tool])); } export function rectificationToolActivityPhase(tool: PublicRectificationTool): PublicActivityPhase { if (LOAD_TOOLS.has(tool)) return "loading-method"; if (COMPARE_TOOLS.has(tool)) return "chart-calculation"; if ( tool === "rectification-accept-candidate" || tool === "rectification-confirm-birth-time" || tool === "rectification-close-case" ) { return "answer-composition"; } return "evidence-validation"; }