wezard 2.2.2 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/CLAUDE.md +9 -6
  2. package/README.md +5 -5
  3. package/config.example.jsonc +12 -0
  4. package/dist/cli/init.js +2 -1
  5. package/dist/cli/init.js.map +1 -1
  6. package/dist/daemon/approval.js +90 -6
  7. package/dist/daemon/approval.js.map +1 -1
  8. package/dist/daemon/chat-log.js +6 -1
  9. package/dist/daemon/chat-log.js.map +1 -1
  10. package/dist/daemon/chat-name.js +15 -0
  11. package/dist/daemon/chat-name.js.map +1 -1
  12. package/dist/daemon/config-api.js +265 -70
  13. package/dist/daemon/config-api.js.map +1 -1
  14. package/dist/daemon/danger.js +15 -0
  15. package/dist/daemon/danger.js.map +1 -1
  16. package/dist/daemon/detail.js +49 -0
  17. package/dist/daemon/detail.js.map +1 -1
  18. package/dist/daemon/handoff.js +12 -5
  19. package/dist/daemon/handoff.js.map +1 -1
  20. package/dist/daemon/idle-nudge.js +55 -0
  21. package/dist/daemon/idle-nudge.js.map +1 -0
  22. package/dist/daemon/inbound.js +19 -14
  23. package/dist/daemon/inbound.js.map +1 -1
  24. package/dist/daemon/index.js +1509 -259
  25. package/dist/daemon/index.js.map +1 -1
  26. package/dist/daemon/jobs.js +180 -32
  27. package/dist/daemon/jobs.js.map +1 -1
  28. package/dist/daemon/last-response.js +15 -0
  29. package/dist/daemon/last-response.js.map +1 -1
  30. package/dist/daemon/memory-steward.js +124 -68
  31. package/dist/daemon/memory-steward.js.map +1 -1
  32. package/dist/daemon/mirror-bridge.js +506 -124
  33. package/dist/daemon/mirror-bridge.js.map +1 -1
  34. package/dist/daemon/mirror-store.js.map +1 -1
  35. package/dist/daemon/model-select.js +102 -0
  36. package/dist/daemon/model-select.js.map +1 -1
  37. package/dist/daemon/notices.js +147 -33
  38. package/dist/daemon/notices.js.map +1 -1
  39. package/dist/daemon/peers.js +261 -124
  40. package/dist/daemon/peers.js.map +1 -1
  41. package/dist/daemon/pending-items.js +171 -0
  42. package/dist/daemon/pending-items.js.map +1 -0
  43. package/dist/daemon/receipts.js +428 -80
  44. package/dist/daemon/receipts.js.map +1 -1
  45. package/dist/daemon/route.js +133 -19
  46. package/dist/daemon/route.js.map +1 -1
  47. package/dist/daemon/spawn-tmux.js +24 -13
  48. package/dist/daemon/spawn-tmux.js.map +1 -1
  49. package/dist/daemon/steward-guard.js +32 -0
  50. package/dist/daemon/steward-guard.js.map +1 -0
  51. package/dist/daemon/task-registry.js +1 -1
  52. package/dist/daemon/task-registry.js.map +1 -1
  53. package/dist/daemon/tasks.js +12 -4
  54. package/dist/daemon/tasks.js.map +1 -1
  55. package/dist/daemon/usage.js +4 -11
  56. package/dist/daemon/usage.js.map +1 -1
  57. package/dist/daemon/wizard-memory.js +36 -4
  58. package/dist/daemon/wizard-memory.js.map +1 -1
  59. package/dist/daemon/wizard.js +174 -87
  60. package/dist/daemon/wizard.js.map +1 -1
  61. package/dist/mcp/server.js +209 -132
  62. package/dist/mcp/server.js.map +1 -1
  63. package/dist/shared/charter-view.js +35 -0
  64. package/dist/shared/charter-view.js.map +1 -0
  65. package/dist/shared/chat-http.js +134 -32
  66. package/dist/shared/chat-http.js.map +1 -1
  67. package/dist/shared/chat-render.js +6 -3
  68. package/dist/shared/chat-render.js.map +1 -1
  69. package/dist/shared/chat-view.js +17 -6
  70. package/dist/shared/chat-view.js.map +1 -1
  71. package/dist/shared/cli-backends.js +2 -0
  72. package/dist/shared/cli-backends.js.map +1 -1
  73. package/dist/shared/config-meta.js +91 -0
  74. package/dist/shared/config-meta.js.map +1 -0
  75. package/dist/shared/config-writer.js +5 -6
  76. package/dist/shared/config-writer.js.map +1 -1
  77. package/dist/shared/config.js +273 -294
  78. package/dist/shared/config.js.map +1 -1
  79. package/dist/shared/daemon-token.js +18 -0
  80. package/dist/shared/daemon-token.js.map +1 -0
  81. package/dist/shared/detail-render.js +233 -20
  82. package/dist/shared/detail-render.js.map +1 -1
  83. package/dist/shared/detail-store.js +33 -12
  84. package/dist/shared/detail-store.js.map +1 -1
  85. package/dist/shared/effort.js +11 -0
  86. package/dist/shared/effort.js.map +1 -0
  87. package/dist/shared/keepalive.js +5 -5
  88. package/dist/shared/keepalive.js.map +1 -1
  89. package/dist/shared/model-prices.js +258 -0
  90. package/dist/shared/model-prices.js.map +1 -0
  91. package/dist/shared/pricing.js +55 -0
  92. package/dist/shared/pricing.js.map +1 -0
  93. package/dist/shared/reminder.js +18 -4
  94. package/dist/shared/reminder.js.map +1 -1
  95. package/dist/shared/role-render.js +210 -8
  96. package/dist/shared/role-render.js.map +1 -1
  97. package/dist/shared/role-view.js +104 -26
  98. package/dist/shared/role-view.js.map +1 -1
  99. package/dist/shared/session-label.js +4 -0
  100. package/dist/shared/session-label.js.map +1 -1
  101. package/dist/shared/task-file.js +16 -1
  102. package/dist/shared/task-file.js.map +1 -1
  103. package/dist/shared/turn-state.js +24 -0
  104. package/dist/shared/turn-state.js.map +1 -0
  105. package/dist/shared/world.js +116 -13
  106. package/dist/shared/world.js.map +1 -1
  107. package/dist/svr/index.js +2 -1
  108. package/dist/svr/index.js.map +1 -1
  109. package/hooks/pre-tool-use.sh +15 -3
  110. package/package.json +1 -1
  111. package/web/chat.css +226 -74
  112. package/web/chat.js +1075 -370
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../shared/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../shared/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ // daemon 写敏感路由 (/config/set) 的口令。HTTP 在 127.0.0.1 上谁都连得到, 请求体里的
2
+ // sessionId / tmuxPane 又都猜得出 —— 所以写配置要出示一个只有本机这个用户读得到的
3
+ // 文件 (0600) 里的值: wezard 自己的 MCP server 与 CLI 读它, 模型要 `cat` 它得先过审批卡。
4
+ // daemon 开机生成 (已有就沿用), 别的进程只读不建。
5
+ import { readFileSync } from "node:fs";
6
+ import { expandHome } from "./paths.js";
7
+ export const DAEMON_TOKEN_FILE = "~/.wezard/daemon-token";
8
+ export const DAEMON_TOKEN_HEADER = "x-wezard-token";
9
+ /** 读出口令; 文件不在 / 读不了 = ""。 */
10
+ export const readDaemonToken = (file = DAEMON_TOKEN_FILE) => {
11
+ try {
12
+ return readFileSync(expandHome(file), "utf8").trim();
13
+ }
14
+ catch {
15
+ return "";
16
+ }
17
+ };
18
+ //# sourceMappingURL=daemon-token.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"daemon-token.js","sourceRoot":"","sources":["../../shared/daemon-token.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,uDAAuD;AACvD,oEAAoE;AACpE,iCAAiC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,CAAC,MAAM,iBAAiB,GAAG,wBAAwB,CAAC;AAC1D,MAAM,CAAC,MAAM,mBAAmB,GAAG,gBAAgB,CAAC;AAEpD,6BAA6B;AAC7B,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,OAAe,iBAAiB,EAAU,EAAE;IAC1E,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC,CAAC"}
@@ -7,8 +7,10 @@ import { ansiToHtml } from "./ansi.js";
7
7
  import { staleAt, turnDone } from "./chat-view.js";
8
8
  import { isKeepaliveTurn } from "./keepalive.js";
9
9
  import { backendLabel } from "./cli-backends.js";
10
+ import { modelLabel } from "./pricing.js";
10
11
  import { truncate, clipLine } from "./std.js";
11
12
  import { parseReminders, stripReminders } from "./reminder.js";
13
+ import { stripSigil } from "./session-label.js";
12
14
  const escHtml = (s) => s.replace(/[&<>"']/g, (c) => c === "&" ? "&amp;" : c === "<" ? "&lt;" : c === ">" ? "&gt;" : c === '"' ? "&quot;" : "&#39;");
13
15
  const fmtTs = (ms) => {
14
16
  const d = new Date(ms);
@@ -449,6 +451,46 @@ const TURN_CSS = `
449
451
  .tool-result-line .del{color:#cf222e;font-weight:600}
450
452
  .tool-result-line .more{color:#8c959f}
451
453
  .tool-result-line .run{color:#9a6700}
454
+ /* ── 移交提示: 系统行, 不是消息 —— 没有底色与边框, 小一号 ── */
455
+ .handoff{font-size:11.5px;line-height:18px;color:#656d76}
456
+ /* 一行到底不换行: 箭头 · 移交 · 对方 · 活号 · 标签 · 原文首行 (占剩下的宽, 省略号) · 展开钮。 */
457
+ .handoff .ho-line{display:flex;align-items:center;gap:6px;padding:2px 6px 3px 24px;list-style:none;white-space:nowrap}
458
+ .handoff .ho-line>*{flex:none}
459
+ .handoff .ho-line:is([data-hto],[data-hrole],[data-job],.plan-go){cursor:pointer}
460
+ .handoff .ho-line[data-hplan]:not(.plan-go){cursor:default}
461
+ .handoff .ho-line[data-hplan]:not(.plan-go) .ho-chev{cursor:pointer}
462
+ details.handoff>.ho-line{background:none;border:0;font:inherit;color:inherit;
463
+ text-transform:none;letter-spacing:0;user-select:auto}
464
+ details.handoff>.ho-line::before{content:none}
465
+ .handoff .ho-line::-webkit-details-marker{display:none}
466
+ .handoff .ho-first{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;color:#8c959f}
467
+ .handoff .ho-chev{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;
468
+ border-radius:4px;color:#8c959f;cursor:pointer;transition:transform .12s}
469
+ .handoff .ho-chev:hover{color:#1f2328;background:#0000000d}
470
+ .handoff .ho-chev svg{width:10px;height:10px}
471
+ .handoff[open] .ho-chev{transform:rotate(90deg)}
472
+ /* 展开 = 交过去的那段原文 (tell_peer 的 text), 按 markdown 分行。 */
473
+ .handoff .ho-text{margin:0 6px 4px 24px;padding:4px 10px;border-left:2px solid #8250df40;color:#1f2328}
474
+ .handoff .ho-text .md-body{font-size:12.5px}
475
+ .handoff.pub>.say{margin:2px 6px 6px 24px}
476
+ /* 展开着的公开移交: 全文就在下面的气泡里, 行内的首行不再重复。 */
477
+ .handoff.pub[open] .ho-first{visibility:hidden}
478
+ /* 工具调用与挂在它下面的提示 (移交行 / 公开移交气泡) 之间一道分隔。 */
479
+ .bubble.tool>.handoff{border-top:1px solid #d0d7de;margin-top:4px;padding-top:2px}
480
+ /* 箭头的颜色就是这件活的回执状态 (title 写明): 进行中 · 已交 · 反问 · 报错 · 没有答案。 */
481
+ .handoff .ho-arrow{font-weight:600;margin-right:-2px;color:#8250df}
482
+ .handoff .ho-arrow.st-done{color:#1a7f37}
483
+ .handoff .ho-arrow.st-need{color:#9a6700}
484
+ .handoff .ho-arrow.st-error{color:#bc4c00}
485
+ .handoff .ho-arrow.st-fail{color:#cf222e}
486
+ .handoff .ho-arrow.st-plain{color:#8c959f}
487
+ .handoff .ho-nm{color:#1f2328;font-weight:500}
488
+ .handoff .ho-turn{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10.5px;color:#8c959f}
489
+ .handoff .ho-tag{border-radius:4px;padding:0 5px;font-size:10.5px;line-height:16px;background:#f1f3f6;color:#656d76}
490
+ .handoff .ho-tag.pub{color:#0969da;background:#0969da12}
491
+ .handoff .ho-tag.priv{color:#9a5b10;background:#9a5b1014}
492
+ .handoff .ho-why{color:#9a6700;min-width:0;overflow:hidden;text-overflow:ellipsis}
493
+ .handoff.fail .ho-why{color:#cf222e}
452
494
  /* ── 上下文断点条 ── */
453
495
  .tg-cut{display:flex;align-items:center;gap:8px;font-size:11px;color:#9a6700;
454
496
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.3px}
@@ -547,10 +589,171 @@ const toolBody = (use, result) => {
547
589
  : `<details><summary>result</summary><pre style="color:#656d76;font-style:italic;margin:0;padding:12px"><code>(尚未捕获)</code></pre></details>`;
548
590
  return `${primary}${inputSection}${resultJson}${resultRaw}`;
549
591
  };
592
+ const WEZARD_TOOL = /(?:^|__)(tell_peer|send_peer|dispatch|clone_wizard|spawn_wizard|open_job|close_job|stop_wizard|schedule_task)$/;
593
+ const objOf = (v) => (v && typeof v === "object" ? v : {});
594
+ const parseObj = (s) => {
595
+ try {
596
+ const v = JSON.parse(s);
597
+ return v && typeof v === "object" ? v : undefined;
598
+ }
599
+ catch {
600
+ return undefined;
601
+ }
602
+ };
603
+ const str = (v) => (typeof v === "string" && v ? v : undefined);
604
+ const PRIORITIES = ["normal", "urgent", "now"];
605
+ const priorityOf = (v) => PRIORITIES.find((p) => p === v);
606
+ /** 一次调用的结局: 回包没回来 = undefined, ok:true = ok, ok:false / `xxx failed:` = failed, 其余 = lost。 */
607
+ const outcomeOf = (result, j) => {
608
+ if (!result)
609
+ return {};
610
+ if (j && j.ok !== false)
611
+ return { state: "ok" };
612
+ const failed = j?.ok === false || /^\w+ failed: /.test(result.body);
613
+ return { state: failed ? "failed" : "lost", reason: clipLine(str(j?.reason) ?? result.body.replace(/^\w+ failed: /, ""), 120) };
614
+ };
615
+ const handoffFrom = (via, a, j, out) => {
616
+ const kind = str(j?.kind) ?? str(a.kind);
617
+ const dec = str(j?.decision);
618
+ return {
619
+ k: "handoff", via, ...out,
620
+ ...(dec === "existing" || dec === "spawn" ? { decision: { kind: dec, why: str(j?.reason) ?? "" } } : {}),
621
+ name: stripSigil(str(j?.name) ?? str(a.name) ?? str(a.to) ?? str(a.tag) ?? ""),
622
+ turn: str(j?.turn),
623
+ public: typeof j?.public === "boolean" ? j.public : a.public === true || (via === "dispatch" && a.public !== false),
624
+ priority: priorityOf(j?.priority) ?? priorityOf(a.priority) ?? (a.re ? "now" : "normal"),
625
+ busy: typeof j?.wasBusy === "boolean" ? j.wasBusy : undefined,
626
+ kind: kind === "ask" || kind === "fyi" ? kind : undefined,
627
+ text: str(a.text) ?? str(a.task) ?? "",
628
+ re: !!str(a.re),
629
+ // 分身的回包没有 receipt 字段: 活投进去了 (dispatched) 就守回执。
630
+ receipt: out.state === "ok" && (via === "clone" || via === "spawn" ? j?.dispatched === true : !!j?.receipt),
631
+ };
632
+ };
633
+ /** 这次调用要不要挂一行提示; 要就读出它的事实。 */
634
+ export const hintOf = (use, result) => {
635
+ const tool = WEZARD_TOOL.exec(use.toolName)?.[1];
636
+ if (!tool)
637
+ return undefined;
638
+ const a = objOf(use.toolInput);
639
+ const j = result ? parseObj(result.body) : undefined;
640
+ const out = outcomeOf(result, j);
641
+ switch (tool) {
642
+ case "tell_peer":
643
+ case "send_peer": return handoffFrom("tell", a, j, out);
644
+ case "dispatch": return a.dryRun ? undefined : handoffFrom("dispatch", a, j, out);
645
+ case "clone_wizard":
646
+ case "spawn_wizard": {
647
+ const via = tool === "clone_wizard" ? "clone" : "spawn";
648
+ return str(a.task) ? handoffFrom(via, a, j, out)
649
+ : { k: "born", via, ...out, name: stripSigil(str(j?.name) ?? str(a.name) ?? ""), text: str(a.description) ?? "" };
650
+ }
651
+ case "open_job": return { k: "job", open: true, ...out, job: str(j?.job) ?? "", title: str(a.title) ?? "", text: str(a.plan) ?? "" };
652
+ case "close_job": return { k: "job", open: false, ...out, job: str(j?.job) ?? str(a.job) ?? "", title: "", text: str(a.summary) ?? "", ...(typeof j?.recycled === "number" ? { recycled: j.recycled } : {}) };
653
+ case "stop_wizard": return { k: "stop", ...out, name: stripSigil(str(j?.name) ?? str(a.name) ?? str(a.tag) ?? ""), end: (str(j?.mode) ?? str(a.mode) ?? "end") === "end", forgotten: j?.forgotten === true, turn: str(a.turn) };
654
+ case "schedule_task": return { k: "task", ...out, id: str(j?.id) ?? str(a.id) ?? "", when: str(j?.when) ?? str(a.when) ?? "", next: str(j?.next) ?? "", note: str(a.note) ?? "", text: str(a.prompt) ?? "" };
655
+ default: return undefined;
656
+ }
657
+ };
658
+ // 排队 / 插话 / 打断只在投的那一刻对方正忙时才真发生 —— 只标真发生的那一种, 闲着 (或回包没说) 就不标。
659
+ const PRIORITY_TAG = {
660
+ normal: ["排队", "等它这一轮结束再投"],
661
+ now: ["插话", "落进它正在跑的这一轮"],
662
+ urgent: ["打断", "先打断它这一轮再投"],
663
+ };
664
+ /** 各种交法的图标与动词; 图标的颜色是回执状态。 */
665
+ const VIA = {
666
+ tell: ["↪", "移交"],
667
+ dispatch: ["↪", "派活"],
668
+ clone: ["⑂", "clone"],
669
+ spawn: ["✦", "spawn"],
670
+ };
671
+ const hoTag = (cls, text, tip) => `<span class="ho-tag ${cls}" title="${escHtml(tip)}">${escHtml(text)}</span>`;
672
+ const CHEVRON = `<svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m6 3 5 5-5 5"/></svg>`;
673
+ /** 交过去那段原文的首行 (行内跟着, 超长省略号)。 */
674
+ const firstLine = (text) => text.split("\n").map((l) => l.trim()).find(Boolean) ?? "";
675
+ /** 提示行: 整行是一个入口 (`attrs`), 原文只由行尾的 chevron 开合; 没有原文就只是一行。
676
+ * 私聊的原文默认收起, 行内跟着首行。公开移交 (`say` = 气泡的 data-key) 那句人在群里看得见: 默认展开,
677
+ * 行下是一颗与普通消息同一份渲染的气泡; chevron 照样能把它收成首行。`first` = 行内跟着的那句 (默认原文首行)。 */
678
+ const hoBox = (cls, attrs, line, text, say, first = firstLine(text), lead = "") => text
679
+ ? `<details class="handoff${cls}${say ? " pub" : ""}"${say ? " open" : ""}><summary class="ho-line"${attrs}>${line}<span class="ho-first">${escHtml(first)}</span>` +
680
+ `<span class="ho-chev" title="${say ? "收起 / 展开原文" : "展开原文"}">${CHEVRON}</span></summary>` +
681
+ `${say ? renderSay({ t: "text", body: text, ts: 0 }, say, undefined, lead) : `<div class="ho-text">${mdBody(text, lead)}</div>`}</details>`
682
+ : `<div class="handoff${cls}"><div class="ho-line"${attrs}>${line}${first ? `<span class="ho-first">${escHtml(first)}</span>` : ""}</div></div>`;
683
+ const hoArrow = (st, glyph = "↪") => `<span class="ho-arrow st-${st.key}" title="${escHtml(st.tip)}">${glyph}</span>`;
684
+ const plainWho = (name) => `<span class="ho-nm">.${escHtml(name)}</span>`;
685
+ /** 回包没回来 / 调用失败 / 不知结局: 三种非 ok 的结局共用一种写法。ok 返回 undefined, 由各自去画。 */
686
+ const hoTrouble = (h, glyph, what, attrs, text) => h.state === "failed" ? hoBox(" fail", attrs, `${hoArrow({ key: "fail", tip: "没调成" }, glyph)}${what} 没成<span class="ho-why">${escHtml(h.reason ?? "")}</span>`, text, undefined, "")
687
+ : h.state === "lost" ? hoBox("", attrs, `${hoArrow({ key: "need", tip: "没等到回包" }, glyph)}${what}<span class="ho-why" title="${escHtml(h.reason ?? "")}">成没成不确定</span>`, text)
688
+ : undefined;
689
+ const renderHandoff = (h, key, deco) => {
690
+ const [glyph, verb] = VIA[h.via];
691
+ const who = deco ? deco.who(h.name) : plainWho(h.name);
692
+ const attrs = deco ? deco.attrs(h) : "";
693
+ if (h.state === "failed")
694
+ return hoBox(" fail", attrs, `${hoArrow({ key: "fail", tip: "没交出去" }, glyph)}没交出去 ${who}<span class="ho-why">${escHtml(h.reason ?? "")}</span>`, h.text);
695
+ const [pt, tip] = PRIORITY_TAG[h.priority];
696
+ const tags = [
697
+ h.decision ? hoTag("pri", h.decision.kind === "existing" ? "选中" : "新生", h.decision.why) : "",
698
+ h.public ? hoTag("pub", "公开", "在群里说的, 回复也进群") : hoTag("priv", "私聊", "只在双方的 rolepage"),
699
+ h.busy === true ? hoTag("pri", pt, `${tip} —— 投的时候它正忙`) : "",
700
+ h.kind === "ask" ? hoTag("kind", "只问", "只问一句") : h.kind === "fyi" ? hoTag("kind", "知会", "只是知会, 不要回话") : "",
701
+ ].join("");
702
+ const turn = h.turn ? `<span class="ho-turn">${escHtml(h.turn)}</span>` : "";
703
+ const st = h.state === undefined ? { key: "run", tip: "投递中…" }
704
+ : h.state === "lost" ? { key: "need", tip: "没等到回包, 交没交出去不确定" }
705
+ : deco ? deco.status(h) : { key: "plain", tip: h.re ? "续问" : "已移交" };
706
+ const lost = h.state === "lost" ? `<span class="ho-why" title="${escHtml(h.reason ?? "")}">交没交出去不确定</span>` : "";
707
+ const acct = deco ? deco.acct(h) : "";
708
+ // 移交体「发给谁」就是被移交的那个 wizard; 点它与移交行同一套跳转 (同一份 attrs)。
709
+ const to = attrs ? `<span class="to-in" role="button" tabindex="0"${attrs}>${who}</span>` : "";
710
+ return hoBox("", attrs, `${hoArrow(st, glyph)}${verb} ${who}${turn}${tags}${lost}${acct ? `<span class="ho-acct">${acct}</span>` : ""}`, h.text, h.public ? `${key}:ho` : undefined, undefined, to);
711
+ };
712
+ const PLAIN = { key: "plain", tip: "" };
713
+ const RUN = { key: "run", tip: "调用中…" };
714
+ const stOf = (state) => (state === undefined ? RUN : PLAIN);
715
+ const jobAttrs = (id, deco) => deco && id ? ` data-job="${escHtml(id)}" title="打开工单 ${escHtml(id)}"` : "";
716
+ const renderHint = (h, key, deco) => {
717
+ if (h.k === "handoff")
718
+ return renderHandoff(h, key, deco);
719
+ const who = (name) => (deco ? deco.who(name) : plainWho(name));
720
+ const roleAt = (name) => (deco ? deco.role(name) : "");
721
+ switch (h.k) {
722
+ case "born": {
723
+ const [glyph, verb] = VIA[h.via];
724
+ const attrs = roleAt(h.name);
725
+ return hoTrouble(h, glyph, verb, attrs, h.text) ??
726
+ hoBox("", attrs, `${hoArrow(stOf(h.state), glyph)}${verb} ${who(h.name)}`, h.text);
727
+ }
728
+ case "job": {
729
+ const attrs = jobAttrs(h.job, deco);
730
+ const what = h.open ? "开工单" : "收工单";
731
+ const id = h.job ? `<span class="ho-turn">${escHtml(h.job)}</span>` : "";
732
+ const recycled = h.recycled ? hoTag("kind", `回收 ${h.recycled}`, `收掉了 ${h.recycled} 个为它生的分身`) : "";
733
+ return hoTrouble(h, "📋", what, attrs, h.text) ??
734
+ hoBox("", attrs, `${hoArrow(stOf(h.state), "📋")}${what}${id}${recycled}`, h.text, undefined, h.open ? h.title || firstLine(h.text) : firstLine(h.text));
735
+ }
736
+ case "stop": {
737
+ const [glyph, what] = h.end ? ["⏹", "收掉"] : ["⏸", "打断"];
738
+ const attrs = roleAt(h.name);
739
+ const tags = (h.turn ? `<span class="ho-turn">${escHtml(h.turn)}</span>` : "") + (h.forgotten ? hoTag("kind", "抹掉记录", "身份记录一并删了, 名字腾出来") : "");
740
+ return hoTrouble(h, glyph, `${what} .${h.name}`, attrs, "") ??
741
+ hoBox("", attrs, `${hoArrow(stOf(h.state), glyph)}${what} ${who(h.name)}${tags}`, "");
742
+ }
743
+ case "task": {
744
+ const attrs = deco ? deco.plan() : "";
745
+ const id = h.id ? `<span class="ho-turn">${escHtml(h.id)}</span>` : "";
746
+ const when = h.when ? hoTag("kind", h.when, h.next ? `下一次 ${h.next}` : "定时") : "";
747
+ return hoTrouble(h, "⏰", "定时", attrs, h.text) ??
748
+ hoBox("", attrs, `${hoArrow(stOf(h.state), "⏰")}定时${id}${when}`, h.text, undefined, h.note || firstLine(h.text));
749
+ }
750
+ }
751
+ };
550
752
  /** `lazyTurn`: 正文不随气泡下发, 只留一个指回 (turn, toolUseId) 的空壳, 客户端展开时再取。
551
753
  * 摘要行与 ⎿ 预览照常渲染 —— 折叠态看到的东西一样不少。 */
552
- const renderToolBubble = (use, result, key, done, lazyTurn) => {
754
+ const renderToolBubble = (use, result, key, done, lazyTurn, deco) => {
553
755
  const rawResult = result?.body ?? "";
756
+ const hint = hintOf(use, result);
554
757
  // 头部一行: ⏺ 工具名(参数) — 参数取命令/路径等主字段, 与 Claude CLI 同款。
555
758
  const arg = oneLineCompact(use.toolInput, 72);
556
759
  const dur = result ? `<span class="tool-dur">${escHtml(fmtDuration(result.ts - use.ts))}</span>` : "";
@@ -559,12 +762,13 @@ const renderToolBubble = (use, result, key, done, lazyTurn) => {
559
762
  ? `<div class="tool-body">${toolBody(use, result)}</div>`
560
763
  : `<div class="tool-body" data-lazy-turn="${escHtml(lazyTurn)}" data-lazy-use="${escHtml(use.toolUseId)}"></div>`;
561
764
  // 整个工具调用折叠进 <details> (默认收起); ⎿ 预览行是它的兄弟, 展开时 CSS 隐藏。
562
- return `<section class="bubble tool" data-key="${key}">
765
+ // data-use: 关系图的 clone 徽标按它落到 origin 调 clone_wizard 的那一处。
766
+ return `<section class="bubble tool" data-key="${key}" data-use="${escHtml(use.toolUseId)}">
563
767
  <details class="tool-call">
564
768
  <summary class="tool-summary"><span class="tool-dot">⏺</span><span class="tool-name">${escHtml(use.toolName)}</span>${arg ? `<span class="tool-arg">(${escHtml(arg)})</span>` : ""}${dur}${clock(use.ts)}</summary>
565
769
  ${body}
566
770
  </details>
567
- <div class="tool-result-line">${preview}</div>
771
+ <div class="tool-result-line">${preview}</div>${hint ? renderHint(hint, key, deco) : ""}
568
772
  </section>`;
569
773
  };
570
774
  /** 懒气泡的另一半: 一轮里某次工具调用的展开正文。不认识这次调用 → undefined。 */
@@ -594,30 +798,33 @@ const extractFilePath = (input) => {
594
798
  return typeof v === "string" ? v : "";
595
799
  };
596
800
  // 原文用 <script type="text/plain"> 承载 —— 免转义歧义, JS 端 textContent 读回原样。
597
- const mdBody = (body) => `<div class="md-body"></div><script type="text/plain" class="md-src">${escHtml(body)}</script>`;
801
+ // `lead` 预先挂在空 .md-body 里, 客户端填进 markdown 后把它塞进第一段 (「发给谁」.to-in)。
802
+ const mdBody = (body, lead = "") => `<div class="md-body">${lead}</div><script type="text/plain" class="md-src">${escHtml(body)}</script>`;
598
803
  /** 终句: 一颗实线气泡。没有标题行 —— 谁说的由消息行的 .mwho 交代。`cap` = 气泡头上
599
804
  * 那一行的账 (undefined = 不要这一行: 气泡紧跟在 .mwho 下面, 那里已经写过了)。 */
600
- const renderSay = (item, key, cap) => {
805
+ const renderSay = (item, key, cap, lead = "") => {
601
806
  const ts = fmtTs(item.ts);
602
807
  const head = cap === undefined
603
808
  ? ""
604
809
  : `<div class="say-cap"><time class="mt" title="${ts}">${ts.slice(11, 16)}</time>${cap}</div>`;
605
- return `<div class="say" data-key="${key}">${head}<div class="bubble">${mdBody(item.body)}</div></div>`;
810
+ return `<div class="say" data-key="${key}">${head}<div class="bubble">${mdBody(item.body, lead)}</div></div>`;
606
811
  };
607
812
  /** 途中的话: 和它带出来的工具调用同属一次应答, 留在过程框里。 */
608
813
  const renderNote = (item, key) => `<div class="bubble note" data-key="${key}">${mdBody(item.body)}</div>`;
609
- // 本轮的账: 模型 / token / 耗时。
814
+ // 本轮的账: 模型 / 上下文 / 耗时。
610
815
  const usageChips = (r, done, ageMs) => {
611
816
  const u = r.usage;
612
817
  const ctxPeak = u ? (u.ctxPeak ?? u.input + u.cacheRead + u.cacheWrite) : 0;
613
818
  return [
614
- r.model ? `<span class="chip model">${escHtml(r.model)}${r.modelAlt ? `<span class="alt"> +${r.modelAlt}</span>` : ""}</span>` : "",
819
+ r.model ? `<span class="chip model" title="${escHtml(r.model)}">${escHtml(modelLabel(r.model))}${r.modelAlt ? `<span class="alt"> +${r.modelAlt}</span>` : ""}</span>` : "",
615
820
  u?.serviceTier && u.serviceTier !== "standard" ? `<span class="chip tier">${escHtml(u.serviceTier)}</span>` : "",
616
821
  ctxPeak ? `<span class="tg-tok" title="上下文峰值">ctx ${fmtTok(ctxPeak)}</span>` : "",
617
- u?.output ? `<span class="tg-tok" title="输出 token">out ${fmtTok(u.output)}</span>` : "",
618
822
  // 耗时只在收口后写死 —— 进行中的 turn 每次渲染都会得到不同的 ageMs, 会把 sig 打乱,
619
- // 让 SSE 的"内容没变就不重发"彻底失效。进行中的时长由页脚 status bar 负责。
620
- done ? `<span class="tg-tok">${escHtml(fmtDuration(ageMs))}</span>` : "",
823
+ // 让 SSE 的"内容没变就不重发"彻底失效。进行中只给开始时刻 (不变), rolepage 按它走表。
824
+ // 单独一个 .tg-dur: rolepage 两人对话里藏模型 / ctx (.mrow.two), 时刻与耗时都留着。
825
+ done
826
+ ? `<span class="tg-dur">${escHtml(fmtDuration(ageMs))}</span>`
827
+ : `<span class="tg-dur live" data-since="${r.createdAt}"></span>`,
621
828
  ].filter(Boolean).join("");
622
829
  };
623
830
  const renderApprovalItem = (item, key) => {
@@ -665,7 +872,7 @@ const hashStr = (s) => {
665
872
  const tagSig = (html) => html ? html.replace(/(data-key="[^"]*")/, `$1 data-sig="${hashStr(html)}"`) : "";
666
873
  /** `capped`: 隔着过程框的终句气泡头上带一行时刻 + 本轮的账 (rolepage 的消息要,
667
874
  * 自带 .tg-head 的独立片段不要)。 */
668
- const turnParts = (r, keyPrefix = "", now = Date.now(), lazy = false, capped = false) => {
875
+ const turnParts = (r, keyPrefix = "", now = Date.now(), lazy = false, capped = false, deco) => {
669
876
  const items = [...r.items].sort((a, b) => a.ts - b.ts);
670
877
  const paired = pairItems(items);
671
878
  // data-key = 稳定项键 (items 只追加、按 ts 单调, 位置永不前移 → 索引稳定唯一)。
@@ -680,7 +887,7 @@ const turnParts = (r, keyPrefix = "", now = Date.now(), lazy = false, capped = f
680
887
  const isSay = (p, i) => p.kind === "solo" && p.item.t === "text" && (p.item.final === true || (done && i > lastAct));
681
888
  const body = (p, key, i) => {
682
889
  if (p.kind === "pair")
683
- return renderToolBubble(p.use, p.result, key, done, lazy ? r.id : undefined);
890
+ return renderToolBubble(p.use, p.result, key, done, lazy ? r.id : undefined, deco);
684
891
  const it = p.item;
685
892
  if (it.t === "text")
686
893
  return isSay(p, i) ? renderSay(it, key, capped && i > 0 ? chips : undefined) : renderNote(it, key);
@@ -762,7 +969,8 @@ const spliceChildren = (parts, stamps, children) => {
762
969
  // 同一个节点 (客户端的收起态挂在它身上)。头 + .bubbles 的骨架与 turn-group 同构,
763
970
  // reconcile 才能只换头、逐条对内层, 而不是整框重建。
764
971
  //
765
- // `settled`: 这段过程后面已经跟了终句 —— 答案出来了, 过程默认收起。`data-fold` 是给
972
+ // `settled`: 这段过程下面已经有东西了 (终句), 或这一轮已经结束 —— 只有最末尾、还在
973
+ // 进行中的那一段默认展开, 其余一律收起。`data-fold` 是给
766
974
  // 客户端的一次性信号: 已在屏上的框在它出现的那一刻收起一次, 之后用户再点开就不再管。
767
975
  const renderSteps = (run, key, settled) => {
768
976
  const calls = run.filter((p) => p.call).length;
@@ -771,18 +979,18 @@ const renderSteps = (run, key, settled) => {
771
979
  `<div class="bubbles">${run.map((p) => p.html).join("")}</div></div>`);
772
980
  };
773
981
  /** 连着的过程段合成一个框, 终句一段一颗气泡。 */
774
- const foldSteps = (parts) => parts.reduce((runs, p) => {
982
+ const foldSteps = (parts, done) => parts.reduce((runs, p) => {
775
983
  const last = runs[runs.length - 1];
776
984
  return last?.[0]?.step && p.step ? [...runs.slice(0, -1), [...last, p]] : [...runs, [p]];
777
985
  }, []).flatMap((run, i, runs) => {
778
986
  const [head] = run;
779
987
  // 过程段之间必隔着终句, 所以「后面还有一段」= 后面跟了终句。
780
- return head ? [head.step ? renderSteps(run, head.key, i < runs.length - 1) : head.html] : [];
988
+ return head ? [head.step ? renderSteps(run, head.key, done || i < runs.length - 1) : head.html] : [];
781
989
  });
782
990
  /** `standalone=false`: 这一轮是 rolepage 的一条消息, 不是自成一体的一段 —— 问的那句
783
991
  * 由发话方那条气泡承载, 本轮的账 (`meta`) 由消息行的 .mwho 承载, 片段里都不再带。 */
784
- export const renderTurnGroup = (r, now = Date.now(), children = [], standalone = true) => {
785
- const { parts, stamps, done, chips } = turnParts(r, `${r.id}:`, now, true, !standalone);
992
+ export const renderTurnGroup = (r, now = Date.now(), children = [], standalone = true, deco) => {
993
+ const { parts, stamps, done, chips } = turnParts(r, `${r.id}:`, now, true, !standalone, deco);
786
994
  const q = splitReminders(r.userQuery ?? "");
787
995
  const queryBubble = r.userQuery && standalone
788
996
  ? `<section class="bubble user" data-key="${r.id}:user">
@@ -792,7 +1000,7 @@ export const renderTurnGroup = (r, now = Date.now(), children = [], standalone =
792
1000
  : "";
793
1001
  const typing = done ? "" : `<div class="typing" data-key="${r.id}:typing">${escHtml(backendLabel(r.cli))} 正在思考</div>`;
794
1002
  // 子卡片已是完整片段 (自带 data-key/data-sig), 不再过 tagSig。
795
- const inner = [tagSig(queryBubble), ...foldSteps(spliceChildren(parts, stamps, children)), tagSig(typing)].join("");
1003
+ const inner = [tagSig(queryBubble), ...foldSteps(spliceChildren(parts, stamps, children), done), tagSig(typing)].join("");
796
1004
  const meta = `<span class="tg-dot${done ? "" : " live"}"></span>${chips}`;
797
1005
  const head = standalone ? `<div class="tg-head">${meta}</div>` : "";
798
1006
  // staleAt 只走 JSON, 绝不进 HTML —— 它跟着 updatedAt 变, 一旦计入 sig, SSE 的
@@ -814,13 +1022,18 @@ export const renderCutMark = (m) => {
814
1022
  createdAt: m.createdAt, updatedAt: m.createdAt, done: true, staleAt: 0,
815
1023
  };
816
1024
  };
1025
+ /** 一轮的账 (模型 / ctx / 耗时) —— 与这一轮出消息名字行上的同一份。 */
1026
+ export const turnUsageChips = (r, now = Date.now()) => {
1027
+ const done = turnDone(r, now);
1028
+ return usageChips(r, done, (done ? r.updatedAt : now) - r.createdAt);
1029
+ };
817
1030
  export { escHtml, fmtTs, fmtDuration, fmtTok, hashStr, tagSig, TURN_CSS };
818
1031
  export const renderDetailPage = (r) => {
819
1032
  if (r.kind === "tool")
820
1033
  return renderToolPage(r);
821
1034
  // turn / 断点标记 / 聊天票据都没有自己的页面 —— 前两者只是 rolepage 线程里的
822
1035
  // 一张卡片 / 一行, 票据只出现在 /role 的 `?id=` 上。
823
- if (r.kind === "turn" || r.kind === "mark" || r.kind === "post" || r.kind === "chat")
1036
+ if (r.kind === "turn" || r.kind === "mark" || r.kind === "post" || r.kind === "chat" || r.kind === "charter")
824
1037
  return renderNotFound(r.id);
825
1038
  return renderApprovalPage(r);
826
1039
  };