wezard 2.6.4 → 2.7.1

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 (97) hide show
  1. package/CLAUDE.md +6 -6
  2. package/README.md +1 -15
  3. package/dist/cli/codex-hook.js +5 -1
  4. package/dist/cli/codex-hook.js.map +1 -1
  5. package/dist/cli/sync.js +5 -4
  6. package/dist/cli/sync.js.map +1 -1
  7. package/dist/daemon/approval.js +12 -5
  8. package/dist/daemon/approval.js.map +1 -1
  9. package/dist/daemon/chat-log.js +5 -5
  10. package/dist/daemon/chat-log.js.map +1 -1
  11. package/dist/daemon/chat-name.js +5 -2
  12. package/dist/daemon/chat-name.js.map +1 -1
  13. package/dist/daemon/detail.js +28 -5
  14. package/dist/daemon/detail.js.map +1 -1
  15. package/dist/daemon/direction.js +3 -2
  16. package/dist/daemon/direction.js.map +1 -1
  17. package/dist/daemon/dispatch.js +6 -0
  18. package/dist/daemon/dispatch.js.map +1 -0
  19. package/dist/daemon/handoff.js +66 -15
  20. package/dist/daemon/handoff.js.map +1 -1
  21. package/dist/daemon/inbound.js +3 -5
  22. package/dist/daemon/inbound.js.map +1 -1
  23. package/dist/daemon/index.js +1072 -714
  24. package/dist/daemon/index.js.map +1 -1
  25. package/dist/daemon/jobs.js +7 -2
  26. package/dist/daemon/jobs.js.map +1 -1
  27. package/dist/daemon/last-response.js +8 -3
  28. package/dist/daemon/last-response.js.map +1 -1
  29. package/dist/daemon/message-events.js +232 -59
  30. package/dist/daemon/message-events.js.map +1 -1
  31. package/dist/daemon/mirror-bridge.js +556 -770
  32. package/dist/daemon/mirror-bridge.js.map +1 -1
  33. package/dist/daemon/mirror-store.js.map +1 -1
  34. package/dist/daemon/notices.js +9 -2
  35. package/dist/daemon/notices.js.map +1 -1
  36. package/dist/daemon/peers.js +122 -143
  37. package/dist/daemon/peers.js.map +1 -1
  38. package/dist/daemon/pending-items.js +33 -34
  39. package/dist/daemon/pending-items.js.map +1 -1
  40. package/dist/daemon/route.js +5 -2
  41. package/dist/daemon/route.js.map +1 -1
  42. package/dist/daemon/router.js +643 -0
  43. package/dist/daemon/router.js.map +1 -0
  44. package/dist/daemon/session-name.js +1 -1
  45. package/dist/daemon/session-name.js.map +1 -1
  46. package/dist/daemon/spawn-tmux.js +32 -13
  47. package/dist/daemon/spawn-tmux.js.map +1 -1
  48. package/dist/daemon/subagent-tail.js +3 -3
  49. package/dist/daemon/subagent-tail.js.map +1 -1
  50. package/dist/daemon/{cc-session.js → wezard-session.js} +32 -2
  51. package/dist/daemon/wezard-session.js.map +1 -0
  52. package/dist/daemon/wizard.js +5 -5
  53. package/dist/daemon/wizard.js.map +1 -1
  54. package/dist/daemon/workflow-nodes.js +3 -3
  55. package/dist/daemon/workflow-nodes.js.map +1 -1
  56. package/dist/daemon/workflow-plans.js +9 -6
  57. package/dist/daemon/workflow-plans.js.map +1 -1
  58. package/dist/mcp/server.js +38 -47
  59. package/dist/mcp/server.js.map +1 -1
  60. package/dist/shared/chat-http.js +2 -2
  61. package/dist/shared/chat-http.js.map +1 -1
  62. package/dist/shared/chat-view.js +0 -4
  63. package/dist/shared/chat-view.js.map +1 -1
  64. package/dist/shared/cli-backends.js +11 -1
  65. package/dist/shared/cli-backends.js.map +1 -1
  66. package/dist/shared/config.js +3 -44
  67. package/dist/shared/config.js.map +1 -1
  68. package/dist/shared/detail-render.js +36 -11
  69. package/dist/shared/detail-render.js.map +1 -1
  70. package/dist/shared/detail-store.js.map +1 -1
  71. package/dist/shared/message-footer.js +8 -8
  72. package/dist/shared/message-footer.js.map +1 -1
  73. package/dist/shared/reminder.js +104 -37
  74. package/dist/shared/reminder.js.map +1 -1
  75. package/dist/shared/role-render.js +28 -20
  76. package/dist/shared/role-render.js.map +1 -1
  77. package/dist/shared/role-search.js +3 -3
  78. package/dist/shared/role-search.js.map +1 -1
  79. package/dist/shared/role-view.js +50 -30
  80. package/dist/shared/role-view.js.map +1 -1
  81. package/dist/shared/session-label.js +25 -6
  82. package/dist/shared/session-label.js.map +1 -1
  83. package/dist/shared/turn-state.js +7 -7
  84. package/dist/shared/turn-state.js.map +1 -1
  85. package/dist/shared/world.js +1 -3
  86. package/dist/shared/world.js.map +1 -1
  87. package/hooks/pre-tool-use.sh +5 -25
  88. package/package.json +1 -1
  89. package/web/chat.css +3 -33
  90. package/web/chat.js +11 -62
  91. package/dist/daemon/answer-transfer.js +0 -56
  92. package/dist/daemon/answer-transfer.js.map +0 -1
  93. package/dist/daemon/cc-session.js.map +0 -1
  94. package/dist/daemon/receipts.js +0 -968
  95. package/dist/daemon/receipts.js.map +0 -1
  96. package/dist/shared/keepalive.js +0 -46
  97. package/dist/shared/keepalive.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"detail-store.js","sourceRoot":"","sources":["../../shared/detail-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"detail-store.js","sourceRoot":"","sources":["../../shared/detail-store.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
- import { headed, linkedTagHead, rawTagHeader, resolveTagTarget, tagUrlOf, targetOfTagUrl } from "./session-label.js";
1
+ import { headed, rawTagHeader, resolveTagTarget, tagHead, tagUrlOf, targetOfTagUrl } from "./session-label.js";
2
2
  const footerUrl = (content) => /\[[✨✦]\]\(([^\n)]*)\)\s*$/.exec(content)?.[1];
3
3
  /** Only the daemon's trusted ticket resolver can classify a generated footer. */
4
4
  export const withoutMessageFooter = (content, _ownUrl) => {
5
5
  const match = /(?:\n\s*)?\[[✨✦]\]\(([^\n)]*)\)\s*$/.exec(content);
6
6
  return match && targetOfTagUrl(match[1]) ? withoutMessageFooter(content.slice(0, match.index).trimEnd()) : content;
7
7
  };
8
- /** The real destination default uses a footer; every other known sender keeps a name header. */
8
+ /** Every known sender has a detail footer; only the destination default omits its name header. */
9
9
  export const withMessageFooter = (content, policy) => {
10
10
  if (!policy)
11
11
  return content;
@@ -13,7 +13,8 @@ export const withMessageFooter = (content, policy) => {
13
13
  const footerTarget = candidate && targetOfTagUrl(candidate);
14
14
  const clean = footerTarget ? withoutMessageFooter(content) : content;
15
15
  // A previously generated footer owns the identity. A body link at the start stays body content.
16
- const header = footerTarget ? undefined : rawTagHeader(clean);
16
+ const raw = rawTagHeader(clean);
17
+ const header = !footerTarget || (raw && !raw.url && resolveTagTarget(raw.tag, policy.principal) === footerTarget) ? raw : undefined;
17
18
  const sender = footerTarget || (header?.url ? targetOfTagUrl(header.url) : header && resolveTagTarget(header.tag, policy.principal));
18
19
  if (!sender)
19
20
  return content;
@@ -24,11 +25,10 @@ export const withMessageFooter = (content, policy) => {
24
25
  const emptyHeader = footerTarget && rawTagHeader(body);
25
26
  const emptySender = emptyHeader && (emptyHeader.url ? targetOfTagUrl(emptyHeader.url) : resolveTagTarget(emptyHeader.tag, policy.principal));
26
27
  const payload = emptyHeader && !emptyHeader.body.trim() && emptySender === sender ? "" : body;
27
- if (sender === policy.defaultTarget)
28
- return `${payload.trimEnd()} [✦](${url})`;
29
- if (header?.url)
30
- return content;
31
28
  const seq = header?.header.match(/\b\d+\/\d+\b/)?.[0];
32
- return headed([`${linkedTagHead(sender, url)}:`, seq].filter(Boolean).join(" "), payload);
29
+ // 这一层是所有出站气泡 (stream / standalone / frozen final) 的最后一道改写: 上游 chatHead 写的头在这里被剥掉重写,
30
+ // 所以非 default wizard 的 code 样式署名只能在这里定 —— 名字不挂链接, rolepage 入口归尾部 ✦。
31
+ const head = [sender === policy.defaultTarget ? "" : `\`${tagHead(sender)}\`:`, seq].filter(Boolean).join(" ");
32
+ return `${headed(head, payload).trimEnd()} [✦](${url})`;
33
33
  };
34
34
  //# sourceMappingURL=message-footer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"message-footer.js","sourceRoot":"","sources":["../../shared/message-footer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message-footer.js","sourceRoot":"","sources":["../../shared/message-footer.ts"],"names":[],"mappings":"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"}
@@ -1,34 +1,92 @@
1
1
  // `<system-reminder>`: 注入时挂在一句话尾巴上的机器信息 —— 信封 (谁、在哪说的) /
2
- // 点名提示 / 名册增量。两个读者各取一半:
2
+ // 点名提示 / 名册增量 / 挂起事项。两个读者各取一半:
3
3
  // 模型读正文 —— 规矩是写给它的, 措辞随时会改;
4
- // 读回来的一方 (read_chat 的 parseEnvelope) 读开标签上的属性 ——
4
+ // 读回来的一方 (parseEnvelope / 提交见证 / rolepage / regress) 读开标签上的属性 ——
5
5
  // 事实只写一次、按名取, 改措辞不再牵连解析。
6
6
  // 属性出现之前落盘的 transcript / 轮次记录里只有正文, 那些靠 LEGACY 表按措辞认。
7
7
  //
8
- // 属性一览 (`wezard` 区分种类):
9
- // envelope kind=human|peer|task from chat? scope=private|public (仅 peer)
10
- // receipt=1 (仅 peer): 这一轮是守护进程自动送回来的回执, 不是新活
11
- // quiet=1 (仅 peer): 发话方不收回执; 不改变公开/私聊或工具授权
12
- // reply-to (仅回执): 这一轮的终句会送到哪 (`.x` / 群名); 缺省 = 只进 rolepage
13
- // k (仅回执): 机器读的父 k (`chat:<base>` / `peer:<turn>:<key>`), 下一跳继承
14
- // mention names (空格分隔的 `.name`)
15
- // roster 正文里 `- ` 开头的每一行是一条变动
16
- // hint role=steward: 人对管家说的那一轮挂的「自己答还是派出去」(只给模型, 不读回)
8
+ // 形状 (一句话): 一个信封块打头 (属性只放机器读回的与模型要抄的 id; 注入事件 id 作为 `msg`
9
+ // 并在信封上), 后面按 TAIL_ORDER 平铺只给模型看的旁注块 —— 全是 `<system-reminder wezard=…>`,
10
+ // 由 REMINDER_KINDS 约束、renderTail 拼出。不嵌套、不另起 tag 名、属性不塞 JSON、不打版本号: 有没有 `msg`
11
+ // 本身就分得出新旧。
12
+ //
13
+ // reminder **不是路由的真相来源**: 去向 / 放行闸 / 追述 / GC 只读 router 的 journal; 这里是
14
+ // 给模型的快照, 与 mirror / chat-log 认出处的回读。会过期的派生量 (行状态、是否追述) 不写成属性。
15
+ //
16
+ // 退役不再写、只为老 transcript 照认的: message-event 块 (event = 注入事件 id, 现为信封 `msg`;
17
+ // 没有信封的注入仍挂它兜底), receipt-delivery (与 message-event 同值重复), 派活信封的
18
+ // event / quiet / act / deadline, 回执的 serves / via / late, 名册 / 挂起事项的 mode,
19
+ // mention 的 names, hint 的 role。
20
+ /** 种类注册表: 每种块允许写哪些属性 (`wezard` 自己不列)。渲染只认这里登记过的; 新增一个属性
21
+ * = 在这里加一行并说清谁读它。读者在行尾。 */
22
+ export const REMINDER_KINDS = {
23
+ envelope: {
24
+ kind: "M", from: "M", scope: "M", chat: "M", // 出处: parseEnvelope → read_chat / rolepage / mirror
25
+ "chat-key": "M", // 人话: 改名不变的群 key (mirror 恢复频道)
26
+ "asker-user": "M", "asker-chat": "M", // 链头那句人话 (askerOf: 卡片落哪个群)
27
+ msg: "M", // 注入事件 id: 提交见证 / 轮次↔事件绑定 / serves 反查
28
+ event: "C", // 路由行 id (仅回执 / 定时): `tell_peer({re})` 抄它
29
+ receipt: "M", status: "M", audience: "M", // 回执: mirror / chat-log / regress
30
+ job: "M", done: "M", total: "M", complete: "M", // 工单进度: regress (齐没齐由守护进程数)
31
+ },
32
+ /** 退役中: 只在没有信封的注入上兜底 (见 withMsg)。 */
33
+ "message-event": { event: "M" },
34
+ hint: {},
35
+ lead: {},
36
+ after: {},
37
+ mention: {},
38
+ roster: {},
39
+ pending: {},
40
+ };
41
+ /** 尾巴上的固定顺序: 信封打头 (parseEnvelope 取最后一个信封, 而尾巴只有一个), 旁注按
42
+ * 「这一轮怎么接 → 附件 → 环境」排。表外的 (codebuddy 自己的块、老种类) 排最后, 相对顺序不变。 */
43
+ export const TAIL_ORDER = ["envelope", "message-event", "hint", "lead", "after", "mention", "roster", "pending"];
17
44
  // 开标签容许属性: 我们自己的, 以及 codebuddy 的 `data-role="command-caveat"`。
18
- export const REMINDER_RE = /<system-reminder(\s[^>]*)?>([\s\S]*?)<\/system-reminder>/g;
45
+ // 开标签锚定行首 (渲染方永远 `\n` 起头, 见 renderReminder): 正文里行中提及的
46
+ // `<system-reminder>` 字面量 (讨论这个 tag 本身时很常见) 一旦当成开标签, 懒惰匹配会
47
+ // 从那里一路吞掉后面真正的信封块 —— 整句的信封 / 注入事件 id 全丢, 轮次再也绑不回
48
+ // 路由行 (2026-10-15 .remindtrim e3c34b4.1: 派活正文里写了 `<system-reminder>` 四个字,
49
+ // 那轮 RESULT: 终句永远没认领, sweeper 误判闲置追问)。
50
+ export const REMINDER_RE = /^<system-reminder(\s[^>]*)?>([\s\S]*?)<\/system-reminder>/gm;
19
51
  const ENT = [["&", "&amp;"], ['"', "&quot;"], ["<", "&lt;"], [">", "&gt;"]];
20
52
  const escAttr = (s) => ENT.reduce((a, [c, e]) => a.split(c).join(e), s);
21
53
  const unescAttr = (s) => [...ENT].reverse().reduce((a, [c, e]) => a.split(e).join(c), s);
22
54
  const attrsOf = (s = "") => Object.fromEntries([...s.matchAll(/([\w-]+)="([^"]*)"/g)].map((m) => [m[1], unescAttr(m[2])]));
55
+ /** 没在 REMINDER_KINDS 登记的属性 (含未登记的种类)。渲染时直接丢掉 —— 类型挡住了字面量, 这里挡住展开进来的。 */
56
+ export const unregisteredAttrs = (attrs) => {
57
+ const known = REMINDER_KINDS[attrs.wezard ?? ""];
58
+ return Object.keys(attrs).filter((k) => k !== "wezard" && !(known && k in known));
59
+ };
60
+ const openTag = (attrs) => {
61
+ const bad = new Set(unregisteredAttrs(attrs));
62
+ return `<system-reminder${Object.entries(attrs).filter(([k, v]) => !bad.has(k) && v !== undefined).map(([k, v]) => ` ${k}="${escAttr(v)}"`).join("")}>`;
63
+ };
23
64
  /** 以换行起头 —— 直接接在正文后面。 */
24
- export const renderReminder = (attrs, lines) => [
25
- "",
26
- `<system-reminder${Object.entries(attrs).map(([k, v]) => ` ${k}="${escAttr(v)}"`).join("")}>`,
27
- ...lines,
28
- "</system-reminder>",
29
- ].join("\n");
65
+ export const renderReminder = (attrs, lines) => ["", openTag(attrs), ...lines, "</system-reminder>"].join("\n");
30
66
  export const parseReminders = (text) => [...text.matchAll(REMINDER_RE)].map((m) => ({ attrs: attrsOf(m[1]), body: (m[2] ?? "").trim(), raw: m[0] }));
31
67
  export const stripReminders = (text) => text.replace(REMINDER_RE, "").trim();
68
+ const rankOf = (attrs) => {
69
+ const i = TAIL_ORDER.indexOf(attrs.wezard ?? "");
70
+ return i < 0 ? TAIL_ORDER.length : i;
71
+ };
72
+ /** 一次注入的尾巴: 把各处拼好的块 (信封、旁注、通知) 按 TAIL_ORDER 稳定排序后接起来。
73
+ * 只收 reminder 块 —— 段里块以外的字会被丢掉, 所以只喂渲染出来的尾巴, 别喂正文。 */
74
+ export const renderTail = (...parts) => parts.flatMap((p) => [...p.matchAll(REMINDER_RE)].map((m) => ({ raw: m[0], rank: rankOf(attrsOf(m[1])) })))
75
+ .map((b, i) => ({ ...b, i }))
76
+ .sort((a, b) => a.rank - b.rank || a.i - b.i)
77
+ .map((b) => `\n${b.raw}`)
78
+ .join("");
79
+ /** 投递那一刻把注入事件 id 写进这句话的信封 (`msg`): 取**最后一个**信封 (正文里引用的老信封在它前面)。
80
+ * 没有信封的注入 (slash 之外的少数) 兜底挂一块老形状的 message-event —— 提交见证照样认得。 */
81
+ export const withMsg = (text, msg) => {
82
+ const hit = [...text.matchAll(REMINDER_RE)].filter((m) => attrsOf(m[1]).wezard === "envelope").at(-1);
83
+ if (!hit || hit.index === undefined)
84
+ return text + renderReminder({ wezard: "message-event", event: msg }, []);
85
+ const old = `<system-reminder${hit[1] ?? ""}>`;
86
+ return text.slice(0, hit.index) + openTag({ ...attrsOf(hit[1]), msg }) + text.slice(hit.index + old.length);
87
+ };
88
+ /** 这句话是不是带着注入事件 `id` 进来的 (提交见证用): 任一信封的 `msg`, 或老形状的块。 */
89
+ export const carriesMsg = (text, id) => !!id && parseReminders(text).some((r) => (r.attrs.wezard === "envelope" && r.attrs.msg === id) || (r.attrs.wezard === "message-event" && r.attrs.event === id));
32
90
  /** Human identity comes from inbound metadata; a private hop keeps that origin. */
33
91
  export const askerFromEnvelope = (env, chatOf) => {
34
92
  if (env.asker)
@@ -43,23 +101,19 @@ const askerAttrs = (asker) => asker
43
101
  export const envelopeAttrs = {
44
102
  human: (user, chat, chatKey) => ({ wezard: "envelope", kind: "human", from: user, chat, ...(chatKey ? { "chat-key": chatKey } : {}) }),
45
103
  /** `chat` 不给 = 私聊。 */
46
- peer: (from, chat, t) => ({
104
+ peer: (from, chat, asker) => ({
47
105
  wezard: "envelope", kind: "peer", from, scope: chat === undefined ? "private" : "public", ...(chat ? { chat } : {}),
48
- ...askerAttrs(t?.asker),
49
- ...(t?.quiet || t?.act === "fyi" ? { quiet: "1" } : {}),
50
- ...(t ? { turn: t.turn, ...(t.re ? { re: t.turn } : {}), ...(t.deadline ? { deadline: new Date(t.deadline).toISOString() } : {}), ...(t.act ? { act: t.act } : {}) } : {}),
106
+ ...askerAttrs(asker),
51
107
  }),
52
- /** `turn` = 这一枪的件号 (安静任务按它定位终句, 见 index.ts relayUnlessQuiet)。 */
53
- task: (taskId, turn) => ({ wezard: "envelope", kind: "task", from: taskId, ...(turn ? { turn } : {}) }),
108
+ /** `event` = 这一枪为它开的那条群根行 (安静任务按它定位终句, 见 index.ts relayUnlessQuiet)。 */
109
+ task: (taskId, event) => ({ wezard: "envelope", kind: "task", from: taskId, ...(event ? { event } : {}) }),
54
110
  /** 回执也是「`from` 在对你说话」, 所以仍是 peer 信封 —— read_chat / rolepage 照旧
55
111
  * 把它归到那场对话里; 多一个 `receipt` 属性说明它是自动送回来的结论而不是新活。 */
56
- receipt: (from, chat, job, status = "done", turn, route) => ({
57
- ...envelopeAttrs.peer(from, chat, turn ? { turn } : undefined),
112
+ receipt: (from, chat, job, status = "done", event, route) => ({
113
+ ...envelopeAttrs.peer(from, chat, route?.asker),
114
+ ...(event ? { event } : {}),
58
115
  receipt: "1",
59
116
  status,
60
- ...askerAttrs(route?.asker),
61
- ...(route?.replyTo ? { "reply-to": route.replyTo } : {}),
62
- ...(route?.k ? { k: route.k } : {}),
63
117
  ...(route?.audience ? { audience: route.audience } : {}),
64
118
  // 工单的「齐了吗」由守护进程数出来写在属性上, 不让模型自己记: 异步回执是 N 个
65
119
  // 独立的轮次陆续进来的, 靠模型在上下文里数到五是最容易出错的那种事。
@@ -68,8 +122,8 @@ export const envelopeAttrs = {
68
122
  : {}),
69
123
  }),
70
124
  };
71
- const KINDS = new Set(["peer", "human", "task"]);
72
- const envelopeOfAttrs = (a) => a.wezard === "envelope" && KINDS.has(a.kind ?? "")
125
+ const ENVELOPE_KINDS = new Set(["peer", "human", "task"]);
126
+ const envelopeOfAttrs = (a) => a.wezard === "envelope" && ENVELOPE_KINDS.has(a.kind ?? "")
73
127
  ? {
74
128
  kind: a.kind,
75
129
  from: a.kind === "task" ? `定时 ${a.from ?? ""}` : a.from ?? "",
@@ -78,12 +132,9 @@ const envelopeOfAttrs = (a) => a.wezard === "envelope" && KINDS.has(a.kind ?? ""
78
132
  ...(a["chat-key"] ? { chatKey: a["chat-key"] } : {}),
79
133
  ...(a["asker-user"] && a["asker-chat"] ? { asker: { who: a["asker-user"], chat: a["asker-chat"] } } : {}),
80
134
  ...(a.receipt === "1" ? { receipt: true } : {}),
81
- ...(a.quiet === "1" || a.act === "fyi" ? { quiet: true } : {}),
82
135
  ...(a.status ? { status: a.status } : {}),
83
- ...(a.turn ? { turn: a.turn } : {}),
84
- ...(a.re ? { re: a.re } : {}),
85
- ...(a["reply-to"] ? { replyTo: a["reply-to"] } : {}),
86
- ...(a.k ? { k: a.k } : {}),
136
+ ...(a.event ? { event: a.event } : {}),
137
+ ...(a.msg ? { eventId: a.msg } : {}),
87
138
  ...(a.audience ? { audience: a.audience } : {}),
88
139
  }
89
140
  : undefined;
@@ -101,7 +152,23 @@ const envelopeOf = (r) => envelopeOfAttrs(r.attrs) ?? legacyEnvelope(r.body);
101
152
  export const parseEnvelope = (raw) => {
102
153
  const reminders = parseReminders(raw);
103
154
  const env = reminders.reduce((hit, r) => envelopeOf(r) ?? hit, undefined);
155
+ if (!env || env.eventId)
156
+ return env;
157
+ // 老形状: 注入事件 id 挂在信封外的 message-event 块上 (receipt-delivery: 退役前回执多挂的一块,
158
+ // 值与 message-event 相同) —— 老 transcript 照认。
104
159
  const eventId = reminders.filter((r) => ["message-event", "receipt-delivery"].includes(r.attrs.wezard ?? "")).at(-1)?.attrs.event;
105
- return env && { ...env, ...(eventId ? { eventId } : {}) };
160
+ return { ...env, ...(eventId ? { eventId } : {}) };
161
+ };
162
+ /** rolepage 折叠态的标签: 认得出种类就写种类 (信封带上发话方, 回执带上定论), codebuddy 自己的块写
163
+ * 它的 `data-role`, 认不出的仍叫 reminder。`machine` = 只给机器的空块 (老形状的 message-event /
164
+ * receipt-delivery) —— 画淡一点。老措辞的信封 (LEGACY) 也按信封标。 */
165
+ export const reminderLabel = (r) => {
166
+ const w = r.attrs.wezard ?? "";
167
+ if (w === "message-event" || w === "receipt-delivery")
168
+ return { label: "msg", machine: true };
169
+ const env = envelopeOf(r);
170
+ if (env)
171
+ return { label: env.receipt ? `回执 · ${env.from} · ${env.status ?? "done"}` : `envelope · ${env.from}` };
172
+ return { label: w || r.attrs["data-role"] || "reminder" };
106
173
  };
107
174
  //# sourceMappingURL=reminder.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reminder.js","sourceRoot":"","sources":["../../shared/reminder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reminder.js","sourceRoot":"","sources":["../../shared/reminder.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,6 @@
7
7
  // 断点 视角 role 自己的 /clear /new
8
8
  import { renderCutMark, renderTurnGroup, splitReminders, escHtml, fmtTs, hashStr, tagSig, turnUsageChips } from "./detail-render.js";
9
9
  import { isTurn, staleAt, turnDone } from "./chat-view.js";
10
- import { isKeepaliveTurn } from "./keepalive.js";
11
10
  import { jobProgress } from "./world.js";
12
11
  import { channelOf, doneAt, injectTurnsOf, teammateOf, unwrapMates } from "./role-view.js";
13
12
  import { nameHead } from "./session-label.js";
@@ -45,8 +44,8 @@ const indexOf = (records) => {
45
44
  const hit = INDEX.get(records);
46
45
  if (hit)
47
46
  return hit;
48
- const asks = asksWhere(records, (t) => t.from?.kind === "peer" && !t.from.receipt && !!t.from.turn && !!t.userQuery?.trim());
49
- const dispatch = asks.reduce((m, t) => (m.has(t.from.turn) ? m : m.set(t.from.turn, t)), new Map());
47
+ const asks = asksWhere(records, (t) => t.from?.kind === "peer" && !t.from.receipt && !!t.from.event && !!t.userQuery?.trim());
48
+ const dispatch = asks.reduce((m, t) => (m.has(t.from.event) ? m : m.set(t.from.event, t)), new Map());
50
49
  const byTarget = turnsWhere(records, (t) => !!t.target && !t.agent)
51
50
  .reduce((m, t) => m.set(t.target, [...(m.get(t.target) ?? []), t]), new Map());
52
51
  const ix = { dispatch, byTarget };
@@ -73,11 +72,11 @@ const answerOf = (rc, records) => {
73
72
  const f = rc.from;
74
73
  if (f?.kind !== "peer" || !f.receipt || !f.from)
75
74
  return undefined;
76
- const d = f.turn ? dispatchOf(records, f.turn) : undefined;
75
+ const d = f.event ? dispatchOf(records, f.event) : undefined;
77
76
  const mine = (indexOf(records).byTarget.get(f.from) ?? []).filter((t) => t.createdAt <= rc.createdAt && t.createdAt >= (d?.createdAt ?? 0));
78
77
  const said = squash(rc.userQuery ?? "");
79
78
  const byText = mine.filter((t) => ((p) => p.length >= 4 && said.includes(p))(finalHead(t))).at(-1);
80
- return byText ?? mine.filter((t) => t.from?.kind === "peer" && !t.from.receipt && t.from.turn === f.turn).at(-1);
79
+ return byText ?? mine.filter((t) => t.from?.kind === "peer" && !t.from.receipt && t.from.event === f.event).at(-1);
81
80
  };
82
81
  /** 答话方的轮次 id → 交回它的那份回执 (同一轮被认领多次取最新)。按 records 快照记一次: 每条出消息都要查。 */
83
82
  const RECEIPTS = new WeakMap();
@@ -98,23 +97,23 @@ const receiptChip = (r, records, dir) => {
98
97
  return "";
99
98
  const st = f.status ?? "done";
100
99
  const seq = f.job && f.total ? ` · ${escHtml(f.job)} 第 ${f.done ?? 0}/${f.total} 份` : "";
101
- const d = f.turn ? dispatchOf(records, f.turn) : undefined;
102
- const what = `.${dir.nameOf(r.target ?? "")} 把 ${f.turn ? `${f.turn} ` : ""}的结论交回给 .${dir.nameOf(rc.target ?? "")}`;
103
- const [tag, attrs] = f.turn && d
104
- ? ["button", `${gotoAttrs(f.turn, d)} title="${escHtml(`${what} · 点击跳到派活那句`)}"`]
100
+ const d = f.event ? dispatchOf(records, f.event) : undefined;
101
+ const what = `.${dir.nameOf(r.target ?? "")} 把 ${f.event ? `${f.event} ` : ""}的结论交回给 .${dir.nameOf(rc.target ?? "")}`;
102
+ const [tag, attrs] = f.event && d
103
+ ? ["button", `${gotoAttrs(f.event, d)} title="${escHtml(`${what} · 点击跳到派活那句`)}"`]
105
104
  : ["span", ` title="${escHtml(`${what} · 派活那句已不在记录里`)}"`];
106
105
  return `<${tag} class="mchip rcpt st-${escHtml(st)}"${attrs}>↩ 回执 · ${RCPT[st] ?? escHtml(st)}${seq}</${tag}>`;
107
106
  };
108
107
  /** 这一行移交落成的那句。同一个活号续问多次就有多句 (每次 tell_peer 一句): 按原文认 ——
109
108
  * 落地的那句就是原文贴进去的 (外面裹着信封), 取首段比对; 认不出 (没原文) 退回最早那句。 */
110
109
  const dispatchFor = (records, h) => {
111
- const all = asksWhere(records, (t) => t.from?.kind === "peer" && !t.from.receipt && t.from.turn === h.turn && !!t.userQuery?.trim());
110
+ const all = asksWhere(records, (t) => t.from?.kind === "peer" && !t.from.receipt && t.from.event === h.turn && !!t.userQuery?.trim());
112
111
  const head = squash(h.text).slice(0, 80);
113
112
  return (head.length >= 4 ? all.find((t) => squash(t.userQuery ?? "").includes(head)) : undefined) ?? all[0];
114
113
  };
115
114
  /** 整行点了要开的那段往来: 移交双方 (发话方 = 这一轮的 role, 收信方) 在哪个频道 —— 派活那句在就以它为准
116
115
  * 并带上落点; 还没接手就按这次调用公开与否推 (公开的落在发话方此刻的群)。会话键随视角, 由客户端算。 */
117
- const pairAttrs = (r, to, h, d) => ` data-hfrom="${escHtml(r.target ?? "")}" data-hto="${escHtml(to)}" data-hch="${escHtml(d ? channelOf(d) : h.public ? channelOf(r) : "")}"` +
116
+ const pairAttrs = (r, to, h, d, pub) => ` data-hfrom="${escHtml(r.target ?? "")}" data-hto="${escHtml(to)}" data-hch="${escHtml(d ? channelOf(d) : pub ? channelOf(r) : "")}"` +
118
117
  (d ? ` data-gid="${escHtml(d.id)}:in" data-gts="${d.createdAt}"` : "");
119
118
  const FAIL = new Set(["timeout", "silent", "dead", "canceled"]);
120
119
  /** 移交行的 rolepage 那一半: 对方是名录里的谁 (头像 + 名字), 整行点了开双方的那段往来并落到这一句,
@@ -123,9 +122,18 @@ const FAIL = new Set(["timeout", "silent", "dead", "canceled"]);
123
122
  const handoffDeco = (r, records, dir, now) => {
124
123
  // 老的 clone / spawn 回包不带活号: 分身的开场白就是这件活, 从它收到的第一句 (r 的主人私聊派来的) 读回来。
125
124
  const turnOf = (h) => h.turn ?? ((id) => id && (h.via === "clone" || h.via === "spawn")
126
- ? asksWhere(records, (t) => t.target === id && t.from?.kind === "peer" && !t.from.receipt && t.from.from === r.target && t.createdAt >= r.createdAt)[0]?.from?.turn
125
+ ? asksWhere(records, (t) => t.target === id && t.from?.kind === "peer" && !t.from.receipt && t.from.from === r.target && t.createdAt >= r.createdAt)[0]?.from?.event
127
126
  : undefined)(dir.resolve(h.name));
128
127
  const landed = (h) => ((turn) => (turn ? dispatchFor(records, { ...h, turn }) : undefined))(turnOf(h));
128
+ // 回包 T10 后不再带活号, `landed` 于是常常落空 —— 原文落没落进群里改按正文认:
129
+ // 对方接手的哪一轮在问话里带着这段原文的首行, 它就是这一行的那一轮 (同 dispatchFor 的认法)。
130
+ const landedByText = (h, id) => {
131
+ const head = squash(h.text).slice(0, 80);
132
+ return head.length < 4 ? undefined : asksWhere(records, (t) => t.target === id && t.from?.kind === "peer" && !t.from.receipt && t.from.from === r.target &&
133
+ t.createdAt >= r.createdAt && squash(t.userQuery ?? "").includes(head))[0];
134
+ };
135
+ /** 原文真落进公开频道了吗 —— 读对方接手那一轮的频道; 窗口里读不到 = 不知道 (退回调用参数推的那份)。 */
136
+ const pubOf = (h) => ((id) => (id ? ((d) => (d ? !!channelOf(d) : undefined))(landedByText(h, id)) : undefined))(dir.resolve(h.name));
129
137
  return {
130
138
  who: (name) => {
131
139
  const id = dir.resolve(name);
@@ -133,18 +141,19 @@ const handoffDeco = (r, records, dir, now) => {
133
141
  ? `<span class="ho-who">${nameHead(`<span class="av">${escHtml(dir.labelOf(id))}</span>`, `<span class="nm wizard">${escHtml(dir.nameOf(id))}</span>`)}</span>`
134
142
  : `<span class="ho-nm">.${escHtml(name)}</span>`;
135
143
  },
144
+ pub: pubOf,
136
145
  role: (name) => ((id) => (id ? ` data-hrole="${escHtml(id)}" title="${escHtml(`以 .${dir.nameOf(id)} 为 viewpoint 看它的往来`)}"` : ""))(dir.resolve(name)),
137
146
  plan: () => (r.target ? ` data-hplan="${escHtml(r.target)}"` : ""),
138
147
  attrs: (h) => {
139
148
  const id = dir.resolve(h.name);
140
- return id ? `${pairAttrs(r, id, h, landed(h))} title="${escHtml(`打开 .${dir.nameOf(r.target ?? "")} 与 .${dir.nameOf(id)} 的往来, 定位到这一句`)}"` : "";
149
+ return id ? `${pairAttrs(r, id, h, landed(h), pubOf(h) ?? h.public)} title="${escHtml(`打开 .${dir.nameOf(r.target ?? "")} 与 .${dir.nameOf(id)} 的往来, 定位到这一句`)}"` : "";
141
150
  },
142
151
  status: (h0) => {
143
152
  const h = { ...h0, turn: turnOf(h0) };
144
153
  if (!h.turn || !h.receipt)
145
154
  return { key: "plain", tip: h.kind === "fyi" ? "只是知会, 不等回执" : "不等回执" };
146
155
  const d = landed(h);
147
- const rc = turnsWhere(records, (t) => t.from?.kind === "peer" && !!t.from.receipt && t.from.turn === h.turn && t.createdAt >= (d?.createdAt ?? 0))[0];
156
+ const rc = turnsWhere(records, (t) => t.from?.kind === "peer" && !!t.from.receipt && t.from.event === h.turn && t.createdAt >= (d?.createdAt ?? 0))[0];
148
157
  if (!rc)
149
158
  return { key: "run", tip: d ? "在办 · 等回执" : "等它接手" };
150
159
  const st = rc.from?.status ?? "done";
@@ -155,7 +164,7 @@ const handoffDeco = (r, records, dir, now) => {
155
164
  };
156
165
  };
157
166
  /** 派活 / 续问那句带上它的活号, 回执凭它定位回来。 */
158
- const pturnAttr = (r) => r.from?.kind === "peer" && r.from.turn && !r.from.receipt ? ` data-pturn="${escHtml(r.from.turn)}"` : "";
167
+ const pturnAttr = (r) => r.from?.kind === "peer" && r.from.event && !r.from.receipt ? ` data-pturn="${escHtml(r.from.event)}"` : "";
159
168
  const renderIn = (r) => {
160
169
  const q = splitReminders(unwrapMates(r.userQuery ?? ""));
161
170
  return tagSig(`<section class="bubble mq" data-key="${escHtml(r.id)}:in"${pturnAttr(r)}>${inMeta(r)}` +
@@ -193,8 +202,8 @@ export const dependentsOf = (r, records) => {
193
202
  // 插话那句的入消息渲染在它落进的那一轮里, 重推的是那一轮
194
203
  (x.injects ?? []).some((i) => i.from?.kind === "peer" && i.from.from === r.target && mine(i.ts))));
195
204
  const f = r.from?.kind === "peer" ? r.from : undefined;
196
- const owner = f?.turn ? (f.receipt ? r.target : f.from) : undefined;
197
- const handed = owner ? records.filter(isTurn).filter((t) => t.target === owner && t.items.some((it) => it.t === "tool_result" && it.body.includes(f.turn))) : [];
205
+ const owner = f?.event ? (f.receipt ? r.target : f.from) : undefined;
206
+ const handed = owner ? records.filter(isTurn).filter((t) => t.target === owner && t.items.some((it) => it.t === "tool_result" && it.body.includes(f.event))) : [];
198
207
  const answered = f?.receipt ? [answerOf(r, records)].filter((t) => !!t) : [];
199
208
  return [...new Set([...said, ...handed, ...answered].map((x) => x.id))].filter((id) => id !== r.id);
200
209
  };
@@ -212,7 +221,6 @@ export const renderMsg = (m, records, dir, now) => {
212
221
  const fin = doneAt(m);
213
222
  return {
214
223
  id: m.id, turnId: r.id, dir: m.dir, ...base(m, dir), ts: m.ts,
215
- ping: isKeepaliveTurn(r),
216
224
  html, meta, sig: hashStr(html + meta),
217
225
  staleAt: live ? staleAt(r) : 0,
218
226
  ...(fin !== undefined ? { fin } : {}),
@@ -222,7 +230,7 @@ export const renderMark = (mk, role, dir) => {
222
230
  const f = renderCutMark(mk);
223
231
  return {
224
232
  id: `m:${mk.id}`, turnId: mk.id, dir: "mark", ...base({ from: role, to: role, channel: "" }, dir),
225
- ts: mk.createdAt, ping: false, html: f.html, meta: "", sig: f.sig, staleAt: 0,
233
+ ts: mk.createdAt, html: f.html, meta: "", sig: f.sig, staleAt: 0,
226
234
  };
227
235
  };
228
236
  // 工单窗口的开工 / 收工两行: 不是哪一轮的消息, 是账本上的两个时刻。收工那行按成员列定论与交付物,
@@ -252,7 +260,7 @@ export const renderJobMarks = (j, dir, all = []) => {
252
260
  const members = j.members.length ? `<ul class="jmem">${j.members.map((mm) => memberLine(mm, dir, j.status === "closed")).join("")}</ul>` : "";
253
261
  const row = (phase, ts, body) => {
254
262
  const html = tagSig(`<div class="tg-job ${phase}" data-key="j:${escHtml(j.id)}:${phase}">${body}</div>`);
255
- return { id: `j:${j.id}:${phase}`, turnId: j.id, dir: "mark", ...base(owner, dir), ts, ping: false, html, meta: "", sig: hashStr(html), staleAt: 0 };
263
+ return { id: `j:${j.id}:${phase}`, turnId: j.id, dir: "mark", ...base(owner, dir), ts, html, meta: "", sig: hashStr(html), staleAt: 0 };
256
264
  };
257
265
  // 计划 / 结论是人写的 markdown, 换行要留着: 交给客户端同一个 markdown 渲染 (breaks:true)。
258
266
  const md = (cls, text) => text?.trim() ? `<div class="md-body ${cls}"></div><script type="text/plain" class="md-src">${escHtml(text.trim())}</script>` : "";