Files
Jyotisha/frontend/src/lib/rectification-activity-labels.ts
T
Jesse_Chen 3659519bd0 fix(web): apply rectification choice cards without invoking the agent
Clicking A/B/C/D or stop must persist the answer, close the probe, and
update posteriors in one idempotent transaction instead of sending the
option text as a chat message.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-24 18:38:05 +08:00

77 lines
3.4 KiB
TypeScript

import { activityCompletedTrail } from "./chat-message-view.ts";
import type { PublicActivityPhase } from "./consultation-agent-events.ts";
import type {
PublicRectificationActivity,
PublicRectificationTool,
} from "./rectification-agentic/v9/public-receipt.ts";
export const RECTIFICATION_TOOL_DONE_LABELS: Readonly<Record<PublicRectificationTool, string>> = {
"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_ACTIVITY_PROGRESS_LABELS: Readonly<Record<PublicRectificationActivity, string>> = {
reading_case: "正在读取校正记录…",
recording_answer: "正在记录本次选择…",
updating_candidates: "正在更新候选时间…",
checking_stability: "正在检查候选稳健性…",
preparing_question: "正在准备下一个问题…",
preparing_result: "正在准备结果…",
};
export const RECTIFICATION_TOOL_PROGRESS_LABELS: Readonly<Record<PublicRectificationTool, string>> = {
"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<PublicRectificationTool>([
"rectification-compare-candidates",
"rectification-read-diagnostics",
"rectification-offer-candidates",
]);
const LOAD_TOOLS = new Set<PublicRectificationTool>([
"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";
}