wezard 2.3.0 → 2.4.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 (70) hide show
  1. package/CLAUDE.md +3 -3
  2. package/README.md +5 -5
  3. package/config.example.jsonc +12 -0
  4. package/dist/daemon/approval.js +103 -15
  5. package/dist/daemon/approval.js.map +1 -1
  6. package/dist/daemon/chat-name.js +15 -0
  7. package/dist/daemon/chat-name.js.map +1 -1
  8. package/dist/daemon/config-api.js +281 -70
  9. package/dist/daemon/config-api.js.map +1 -1
  10. package/dist/daemon/danger.js +5 -7
  11. package/dist/daemon/danger.js.map +1 -1
  12. package/dist/daemon/detail.js +10 -2
  13. package/dist/daemon/detail.js.map +1 -1
  14. package/dist/daemon/handoff.js +4 -3
  15. package/dist/daemon/handoff.js.map +1 -1
  16. package/dist/daemon/idle-nudge.js +55 -0
  17. package/dist/daemon/idle-nudge.js.map +1 -0
  18. package/dist/daemon/inbound.js +17 -14
  19. package/dist/daemon/inbound.js.map +1 -1
  20. package/dist/daemon/index.js +957 -225
  21. package/dist/daemon/index.js.map +1 -1
  22. package/dist/daemon/jobs.js +122 -13
  23. package/dist/daemon/jobs.js.map +1 -1
  24. package/dist/daemon/mirror-bridge.js +97 -84
  25. package/dist/daemon/mirror-bridge.js.map +1 -1
  26. package/dist/daemon/model-select.js +3 -0
  27. package/dist/daemon/model-select.js.map +1 -1
  28. package/dist/daemon/notices.js +172 -33
  29. package/dist/daemon/notices.js.map +1 -1
  30. package/dist/daemon/peers.js +105 -78
  31. package/dist/daemon/peers.js.map +1 -1
  32. package/dist/daemon/pending-items.js +171 -0
  33. package/dist/daemon/pending-items.js.map +1 -0
  34. package/dist/daemon/receipts.js +58 -24
  35. package/dist/daemon/receipts.js.map +1 -1
  36. package/dist/daemon/route.js +76 -15
  37. package/dist/daemon/route.js.map +1 -1
  38. package/dist/daemon/spawn-tmux.js +2 -2
  39. package/dist/daemon/spawn-tmux.js.map +1 -1
  40. package/dist/daemon/steward-guard.js +32 -0
  41. package/dist/daemon/steward-guard.js.map +1 -0
  42. package/dist/daemon/top-only-nudge.js +29 -0
  43. package/dist/daemon/top-only-nudge.js.map +1 -0
  44. package/dist/daemon/wizard.js +114 -61
  45. package/dist/daemon/wizard.js.map +1 -1
  46. package/dist/mcp/server.js +75 -25
  47. package/dist/mcp/server.js.map +1 -1
  48. package/dist/shared/chat-http.js +23 -13
  49. package/dist/shared/chat-http.js.map +1 -1
  50. package/dist/shared/config-meta.js +91 -0
  51. package/dist/shared/config-meta.js.map +1 -0
  52. package/dist/shared/config-writer.js +5 -6
  53. package/dist/shared/config-writer.js.map +1 -1
  54. package/dist/shared/config.js +279 -294
  55. package/dist/shared/config.js.map +1 -1
  56. package/dist/shared/detail-render.js +121 -32
  57. package/dist/shared/detail-render.js.map +1 -1
  58. package/dist/shared/detail-store.js.map +1 -1
  59. package/dist/shared/keepalive.js +5 -5
  60. package/dist/shared/keepalive.js.map +1 -1
  61. package/dist/shared/role-render.js +52 -12
  62. package/dist/shared/role-render.js.map +1 -1
  63. package/dist/shared/role-view.js +84 -26
  64. package/dist/shared/role-view.js.map +1 -1
  65. package/dist/shared/world.js +82 -13
  66. package/dist/shared/world.js.map +1 -1
  67. package/hooks/pre-tool-use.sh +14 -12
  68. package/package.json +1 -1
  69. package/web/chat.css +63 -37
  70. package/web/chat.js +513 -283
@@ -0,0 +1,171 @@
1
+ import { renderReminder } from "../shared/reminder.js";
2
+ import { clipLine } from "../shared/std.js";
3
+ // ── 账本 ────────────────────────────────────────────────────────────
4
+ const KEEP_CLOSED_MS = 24 * 3600_000;
5
+ /** 开着没人管的也不留一辈子: 回执登记只留 24h, 过了它状态就算不出来了。 */
6
+ const EXPIRE_OPEN_MS = 48 * 3600_000;
7
+ const gc = (now) => (m) => Object.fromEntries(Object.entries(m).filter(([, x]) => (x.closed ? now - x.closed.at < KEEP_CLOSED_MS : now - x.touched < EXPIRE_OPEN_MS)));
8
+ export const pendingGc = (m) => gc(Date.now())(m);
9
+ /** 派活文本 → 一句话题: 首个非空行, 去掉 markdown 起头符号。 */
10
+ export const topicOf = (text) => clipLine((text.split("\n").map((l) => l.replace(/^[\s>#*\-\d.、)]+/, "").trim()).find(Boolean) ?? ""), 60);
11
+ const isFailure = (st) => st === "timeout" || st === "silent" || st === "dead" || st === "canceled";
12
+ export const createLedger = (store, now = Date.now) => {
13
+ const all = () => Object.values(store.all());
14
+ const close = (x, why) => { store.set(x.turn, { ...x, closed: { at: now(), why } }); };
15
+ const find = (owner, turn) => {
16
+ const x = store.get(turn);
17
+ return x && x.owner === owner && !x.closed ? x : undefined;
18
+ };
19
+ return {
20
+ open: ({ text, ...x }) => {
21
+ all().filter((y) => !y.closed && y.owner === x.owner && y.to === x.to && y.turn !== x.turn).forEach((y) => close(y, "同一对又派了一件, 旧的回执不会再来"));
22
+ store.set(x.turn, { ...x, topic: topicOf(text), touched: x.at });
23
+ },
24
+ touch: (owner, turn) => {
25
+ // 关掉了的也认: 对 done / drop / 失败的那件 re, 这一句又在飞了。
26
+ const x = store.get(turn);
27
+ if (!x || x.owner !== owner)
28
+ return;
29
+ const { status: _s, ask: _a, waitHuman: _w, heard: _h, told: _t, closed: _c, ...rest } = x;
30
+ store.set(turn, { ...rest, touched: now() });
31
+ },
32
+ outcome: (owner, turn, status, body, bySender) => {
33
+ const x = find(owner, turn);
34
+ if (!x)
35
+ return;
36
+ if (status === "done" || bySender) {
37
+ close(x, bySender ? "你自己收掉 / 取走了" : "done");
38
+ return;
39
+ }
40
+ // 有了新回执就是有动静: 「挂太久」「派出太久」的提醒从这里重新计。
41
+ const base = { ...x, status, touched: now(), told: { ...x.told, idle: undefined, slow: undefined } };
42
+ // 为上游 wizard 派的活, 反问是问发话方的 (它去问上游), 不挂「等人」。
43
+ const ask = clipLine(body.replace(/^[\s\S]*NEED\s*[::]\s*/, ""), 120);
44
+ store.set(turn, status !== "need" ? base
45
+ : x.for?.kind === "peer" ? { ...base, ask }
46
+ : { ...base, ask, waitHuman: now(), heard: undefined, told: { ...base.told, need: undefined } });
47
+ },
48
+ drop: (owner, turns, why) => {
49
+ const hit = turns.map((t) => find(owner, t.replace(/[`\s]/g, ""))).filter((x) => !!x);
50
+ hit.forEach((x) => close(x, why || "发话方消掉"));
51
+ return hit;
52
+ },
53
+ closeJob: (job) => all().filter((x) => !x.closed && x.job === job).forEach((x) => close(x, "工单收了")),
54
+ openOf: (owner) => all().filter((x) => !x.closed && x.owner === owner).sort((a, b) => a.at - b.at),
55
+ put: (x) => { store.set(x.turn, x); },
56
+ };
57
+ };
58
+ // ── 渲染 ────────────────────────────────────────────────────────────
59
+ export const ago = (ms) => ms < 60_000 ? "刚刚" : ms < 3_600_000 ? `${Math.round(ms / 60_000)}m` : `${Math.round(ms / 3_600_000)}h`;
60
+ /** 一行的状态词。等人 / 人已回话 / 没结论 优先于在飞的细分。 */
61
+ export const stateOf = (x, live, at) => x.waitHuman ? (x.heard ? `等人拍板 (人${at - x.heard < 60_000 ? "刚" : ` ${ago(at - x.heard)} 前`}在群里开过口, 是不是在答它由你判断)` : "等人拍板")
62
+ : x.status === "need" ? "它在反问, 等你答"
63
+ : x.status === "error" ? "CLI 报错停了"
64
+ : isFailure(x.status) ? `没结论 (${x.status})`
65
+ : live(x.turn)?.state ?? "在飞";
66
+ const forOf = (x, n) => x.for?.kind === "peer" ? `为 ${n.nameOf(x.for.from)} 的 \`${x.for.turn}\``
67
+ : x.for?.kind === "chat" ? `为群 ${n.chatOf(x.for.channel)}${x.asker ? ` 的 ${x.asker.who.replace(/^user:/, "")}` : ""}`
68
+ : "";
69
+ export const renderRow = (x, live, n, at) => [
70
+ `- \`${x.turn}\` → ${n.nameOf(x.to)} · ${stateOf(x, live, at)} ${ago(at - (x.waitHuman ?? x.at))}`,
71
+ `「${x.topic}」`,
72
+ forOf(x, n),
73
+ x.job ? `工单 ${x.job}` : "",
74
+ ].filter(Boolean).join(" · ") + (x.ask ? `\n 它问: ${x.ask}` : "");
75
+ const HOWTO = "答它 / 转达人的话 → `tell_peer({name, re: 件号})`; 没结论的改派或 re 追问; 不再要了 → `pending_items({drop:[件号]})`";
76
+ /** 等人验收的一行: 需求已交付、根单还开着, 等人说「好」或「不对」。 */
77
+ export const renderAwaiting = (title, job, deliveredAt, at) => `- 等验收 · ${title} (${job}) 交付于 ${at - deliveredAt < 60_000 ? "刚刚" : `${ago(at - deliveredAt)} 前`}`;
78
+ /** lead 没交差的一行: 要管家重派或关单。 */
79
+ export const renderStalled = (title, job, status) => `- lead 没交差 (${status}) · ${title} (${job})`;
80
+ const ACCEPT_HOWTO = "等验收的: 人认可 → `close_job(单号)` 归档并回收 lead; 人说不对 → `tell_peer({name: lead, re, job: 单号})` 返工 (同一张单); 人说不要了 → `close_job({job, as:\"cancel\"})`; 先放着 → `close_job({job, as:\"shelve\"})` (停提醒, 不关单)。对人别提单号。";
81
+ const SHELVED_HOWTO = "搁置的: 人又提起 → `close_job({job, as:\"resume\"})` 恢复 (给 lead `re` 或带 `job` 派话也会自动恢复); 不要了 → `as:\"cancel\"`。";
82
+ /** 搁置的一行: 需求根单被人说先放着, 账本留着、不再冒泡提醒。 */
83
+ export const renderShelved = (title, job, heldAt, at) => `- 搁置 · ${title} (${job}) 搁置于 ${at - heldAt < 60_000 ? "刚刚" : at - heldAt >= 24 * 3_600_000 ? `${Math.floor((at - heldAt) / (24 * 3_600_000))} 天前` : `${ago(at - heldAt)} 前`}`;
84
+ const STALLED_HOWTO = "lead 没交差的: lead 还在 → `tell_peer({name: lead, re, job})` 叫它续; 否则 `close_job(单号)` 关掉, 需要的话重新 `dispatch({lead:true})` 开新单。";
85
+ /** 读全表 (pending_items 的回包)。`awaiting` = 等验收的根单行 (见 renderAwaiting)。 */
86
+ export const renderTable = (xs, live, n, at, awaiting = [], stalled = [], shelved = []) => xs.length || awaiting.length || stalled.length || shelved.length
87
+ ? [
88
+ ...(xs.length ? [`派出去还没了结的 ${xs.length} 件 (守护进程按回执算的):`, ...xs.map((x) => renderRow(x, live, n, at)), HOWTO] : []),
89
+ ...(awaiting.length ? [`等人验收的 ${awaiting.length} 件:`, ...awaiting, ACCEPT_HOWTO] : []),
90
+ ...(stalled.length ? [`卡住的需求单 ${stalled.length} 件:`, ...stalled, STALLED_HOWTO] : []),
91
+ ...(shelved.length ? [`搁置的 ${shelved.length} 件:`, ...shelved, SHELVED_HOWTO] : []),
92
+ ].join("\n")
93
+ : "没有挂着的事。";
94
+ // ── 提醒 ────────────────────────────────────────────────────────────
95
+ /** 隔这么多次注入没给过全表, 再给一次。 */
96
+ export const FULL_EVERY = 15;
97
+ /** ctx 比上次全表时涨了这么多, 前面的账多半已经沉到底了。 */
98
+ export const FULL_CTX_GROWTH = 80_000;
99
+ /** 在飞这么久还没回执 → 提一行。 */
100
+ export const SLOW_MS = 30 * 60_000;
101
+ /** 「等人」的件, 人在那个群里再开口时提示「可能在答它」—— 同一件至多这么久提一次。 */
102
+ export const HEARD_EVERY_MS = 10 * 60_000;
103
+ /** 这么久没动静 (没回执、没续问) → 给一次全表。 */
104
+ export const IDLE_MS = 2 * 3600_000;
105
+ const chatOfItem = (x) => (x.for?.kind === "chat" ? x.for.channel : x.asker?.chat ?? "");
106
+ /** 这一次注入该挂什么 —— 纯函数: 全表的触发、增量的那几行、要记下的「提过了」。 */
107
+ export const digest = (d) => {
108
+ const cur = d.session ?? { sid: d.mark?.sid ?? "", ctx: d.mark?.ctx ?? 0 };
109
+ const base = { sid: cur.sid, ctx: cur.ctx, ctxAtFull: cur.ctx, drains: 0 };
110
+ if (!d.items.length)
111
+ return { full: "", lines: [], touched: [], mark: base };
112
+ // 头一次见到 (reload 后 / 第一件刚挂上): 只立基线, 不给全表; 增量照算。
113
+ const m = d.mark ?? base;
114
+ const idle = d.items.filter((x) => !x.told?.idle && d.now - x.touched >= IDLE_MS);
115
+ const why = !d.mark ? "" : [
116
+ m.sid && cur.sid && m.sid !== cur.sid ? "会话换过 (交接 / /clear), 之前的账不在你上下文里了" : "",
117
+ d.cut ? (d.cut === "clear" ? "刚 /clear 过" : "上下文刚被压缩过") : "",
118
+ m.drains + 1 >= FULL_EVERY ? `离上次全表已经 ${m.drains + 1} 轮` : "",
119
+ cur.ctx - m.ctxAtFull >= FULL_CTX_GROWTH ? `离上次全表 ctx 又涨了 ${Math.round((cur.ctx - m.ctxAtFull) / 1000)}k` : "",
120
+ idle.length ? `${idle.map((x) => `\`${x.turn}\``).join(" ")} 挂了 ${ago(d.now - Math.min(...idle.map((x) => x.touched)))} 没动静` : "",
121
+ ].filter(Boolean)[0] ?? "";
122
+ const to = (x) => d.nameOf(x.to);
123
+ const inChat = (x) => !!d.human && (!chatOfItem(x) || chatOfItem(x) === d.human.channel);
124
+ // 「这句可能在答哪件」与全表无关: 全表只摆出等人的件, 不知道人此刻开了口。
125
+ const heard = (x) => !!x.waitHuman && inChat(x) && (!x.heard || d.now - x.heard >= HEARD_EVERY_MS);
126
+ const heardLine = (x) => `heard? ${x.turn} ${to(x)} asked: ${x.ask ?? x.topic}`;
127
+ if (why) {
128
+ // 全表把各件都摆出来了: 它们各自那一行增量不必再提。
129
+ const touched = d.items.map((x) => ({
130
+ ...x,
131
+ ...(heard(x) ? { heard: d.now } : {}),
132
+ told: { ...x.told, ...(d.now - x.touched >= IDLE_MS ? { idle: true } : {}), ...(x.waitHuman ? { need: true } : {}), ...(d.now - x.touched >= SLOW_MS ? { slow: true } : {}) },
133
+ }));
134
+ return { full: why, lines: d.items.filter(heard).map(heardLine), touched, mark: base };
135
+ }
136
+ const steps = d.items.map((x) => {
137
+ if (heard(x))
138
+ return { line: heardLine(x), next: { ...x, heard: d.now, told: { ...x.told, need: true } } };
139
+ if (x.waitHuman && !x.told?.need) {
140
+ return { line: `need ${x.turn} ${to(x)} asks the human: ${x.ask ?? x.topic}`, next: { ...x, told: { ...x.told, need: true } } };
141
+ }
142
+ if (!x.status && !x.told?.slow && d.now - x.touched >= SLOW_MS) {
143
+ return { line: `slow ${x.turn} → ${to(x)} ${ago(d.now - x.touched)} since ${x.touched > x.at ? "re-ask" : "sent"}, no receipt: ${x.topic}`, next: { ...x, told: { ...x.told, slow: true } } };
144
+ }
145
+ return undefined;
146
+ });
147
+ const hit = steps.filter((s) => !!s);
148
+ return {
149
+ full: "",
150
+ lines: hit.map((s) => s.line),
151
+ touched: hit.map((s) => s.next),
152
+ mark: { ...m, sid: cur.sid || m.sid, ctx: cur.ctx || m.ctx, drains: m.drains + 1 },
153
+ };
154
+ };
155
+ /** 增量那几行 (need / heard? / slow) 怎么接 —— 窗口里没给过才挂 (`rule`)。 */
156
+ const RULE = "Pending (daemon-tracked). need: the human must answer → relay via tell_peer({name, re}). heard?: their line may be that answer → relay, else ignore. slow: no receipt yet, peek_peer if stuck. FYI — don't reply; pending_items = full list.";
157
+ /** 增量那几行 / 全表 → 挂在注入尾巴上的那段。 */
158
+ export const renderDigest = (o, table, rule = true) => o.full
159
+ ? renderReminder({ wezard: "pending", mode: "full" }, [
160
+ ...(rule ? [RULE] : []),
161
+ `Full list (${o.full}):`,
162
+ table,
163
+ ...o.lines.map((l) => `- ${l}`),
164
+ ])
165
+ : o.lines.length
166
+ ? renderReminder({ wezard: "pending", mode: "delta" }, [
167
+ ...(rule ? [RULE] : []),
168
+ ...o.lines.map((l) => `- ${l}`),
169
+ ])
170
+ : "";
171
+ //# sourceMappingURL=pending-items.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pending-items.js","sourceRoot":"","sources":["../../daemon/pending-items.ts"],"names":[],"mappings":"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"}
@@ -15,9 +15,9 @@
15
15
  // watcher 跟着进程一起没了, 发话方永远等不到回执。答案本来就在对方的 transcript 里
16
16
  // (按信封定位), 重启后接着守, 取到的还是同一段。
17
17
  import { randomBytes } from "node:crypto";
18
- import { parseClosing } from "./peers.js";
18
+ import { clipMiddle, parseClosing } from "./peers.js";
19
19
  import { isTerminal, turnState } from "../shared/turn-state.js";
20
- import { sleep, truncate } from "../shared/std.js";
20
+ import { sleep } from "../shared/std.js";
21
21
  /** 对方最长允许干多久 (超过就投一份 timeout 回执, 不占着内存等到天亮)。默认值;
22
22
  * tell_peer 的 `deadline` 可在 [MIN, MAX] 里改 —— 上限留在 KEEP_MS 之内, 超时那份
23
23
  * 回执还得数得进工单。 */
@@ -61,15 +61,21 @@ const sameK = (a, b) => kAttr(a) === kAttr(b);
61
61
  const KEEP_MS = 24 * 3600_000;
62
62
  export const createReceipts = (deps) => {
63
63
  const keyOfPair = (from, to) => `${from}\u0000${to}`;
64
+ const keyOfTurn = (from, to, turn) => `${keyOfPair(from, to)}\u0000${turn}`;
65
+ const keyOf = (s) => (s.parked ? keyOfTurn(s.from, s.to, s.turn ?? "") : keyOfPair(s.from, s.to));
64
66
  const live = (s) => Date.now() - s.at < KEEP_MS;
65
- const slots = new Map(Object.values(deps.store?.all() ?? {}).filter(live).map((s) => [keyOfPair(s.from, s.to), s]));
67
+ // 过了保留期的行开机时从盘上抹掉: 同一对的位置会被下一句覆盖, 按件号停放的不会。
68
+ Object.entries(deps.store?.all() ?? {}).filter(([, s]) => !live(s)).forEach(([key]) => deps.store?.drop(key));
69
+ const slots = new Map(Object.values(deps.store?.all() ?? {}).filter(live).map((s) => [keyOf(s), s]));
66
70
  /** 写穿到磁盘。被同一对的新一句顶掉的旧 slot 不写 —— 它的 key 已经归新的了。 */
67
71
  const save = (s) => {
68
72
  if (!stale(s))
69
- deps.store?.set(keyOfPair(s.from, s.to), s);
73
+ deps.store?.set(keyOf(s), s);
70
74
  };
71
75
  const settle = (s) => { s.settled = true; save(s); };
72
- const stale = (s) => slots.get(keyOfPair(s.from, s.to))?.gen !== s.gen;
76
+ const stale = (s) => slots.get(keyOf(s))?.gen !== s.gen;
77
+ /** `to` 答 `k` 那件活的那一份 —— 在 `from→to` 的位置上, 或已按件号停放。 */
78
+ const upstream = (k, to) => [slots.get(keyOfPair(k.from, to)), slots.get(keyOfTurn(k.from, to, k.turn))].find((p) => p?.turn === k.turn);
73
79
  const ofJob = (from, job) => [...slots.values()].filter((x) => x.from === from && x.job === job);
74
80
  /** P 的答话方在答 P 的那一轮里又派出去、还没落定的活。 */
75
81
  const children = (p) => [...slots.values()].filter((c) => c.from === p.to && c.k?.kind === "peer" && c.k.from === p.from && c.k.turn === p.turn && !c.settled);
@@ -77,18 +83,22 @@ export const createReceipts = (deps) => {
77
83
  * error 的那种还没落定: 续跑出来的真答案还要来。 */
78
84
  const siblings = (c) => [...slots.values()].filter((x) => x !== c && x.from === c.from && !!x.k && sameK(x.k, c.k) && !x.settled && !(x.delivered && x.resolved));
79
85
  /** 这份回执送进去之后, 发话方那一轮的终句去哪 (§3.3)。只在投递那一刻算: 兄弟们是
80
- * 陆续回来的, 早算一步就会两份都以为自己不是最后一份。 */
86
+ * 陆续回来的, 早算一步就会两份都以为自己不是最后一份。
87
+ * 频道只由去向定: 续回进群 (父 k 是人在群里开的那一轮、兄弟都落定了) 才有频道, 其余
88
+ * 一律 "" —— 回执轮不是谁在群里问的话。那件子活当初 public:true 派的也不例外: 公开的是
89
+ * 派活那一句和对方的答复, 不是发话方收到回执之后那一轮; 沿用它的频道, 私聊 ask 底下的
90
+ * 一轮就会因为没有父 k (chain:false)、只是中途回执 (NEED)、或上游那份已被取走而进群。 */
81
91
  const routeOf = (s, final) => {
82
92
  const k = s.k;
83
93
  if (!k || !final)
84
- return { channel: s.channel, ...(k ? { k } : {}) };
94
+ return { channel: "", ...(k ? { k } : {}) };
85
95
  const pending = siblings(s).length;
86
96
  if (pending)
87
97
  return { channel: "", k, pending };
88
98
  if (k.kind === "chat")
89
99
  return { channel: k.channel, k, replyTo: k };
90
- const p = slots.get(keyOfPair(k.from, s.from));
91
- return p && p.turn === k.turn && !p.resolved && !p.claimed ? { channel: "", k, replyTo: k, parent: p } : { channel: s.channel, k };
100
+ const p = upstream(k, s.from);
101
+ return p && !p.resolved && !p.claimed ? { channel: "", k, replyTo: k, parent: p } : { channel: "", k };
92
102
  };
93
103
  /** 续回: 上游那一份改锚到刚送进去的那份回执 (answerOf 按 reply-to 认它), 重新守。
94
104
  * 正在守的那个 watcher 自己会发现锚变了; 挂起 (deferred) 的才要重新 arm。 */
@@ -234,7 +244,7 @@ export const createReceipts = (deps) => {
234
244
  dead: "它的 pane 没了",
235
245
  };
236
246
  const last = deps.lastWords?.(s.to, s.at).trim();
237
- return `(守护进程: ${deps.nameOf(s.to)} 没有给出结论 —— ${why[status] ?? status}。)${last ? `\n它最后说的: ${truncate(last, 600)}` : ""}`;
247
+ return `(守护进程: ${deps.nameOf(s.to)} 没有给出结论 —— ${why[status] ?? status}。)${last ? `\n它最后说的: ${clipMiddle(last, 600)}` : ""}`;
238
248
  };
239
249
  const watch = async (s) => {
240
250
  const lg = deps.log.child({ mod: "receipt", from: deps.nameOf(s.from), to: deps.nameOf(s.to), ...(s.job ? { job: s.job } : {}) });
@@ -274,8 +284,8 @@ export const createReceipts = (deps) => {
274
284
  lg.info({ why, ok }, "receipt: 不合工单验收, 打回一次");
275
285
  // 打回没注入进去: 原来那份照常交上去 (钉成新 slot 的答案, 它的 watcher 直接拿去投)。
276
286
  if (!ok) {
277
- const n = slots.get(keyOfPair(s.from, s.to));
278
- if (n?.bounced && n.turn === s.turn) {
287
+ const n = upstream({ from: s.from, turn: s.turn }, s.to);
288
+ if (n?.bounced) {
279
289
  n.answer = out.body;
280
290
  save(n);
281
291
  }
@@ -286,6 +296,7 @@ export const createReceipts = (deps) => {
286
296
  s.outcome = out;
287
297
  s.resolved = final;
288
298
  save(s);
299
+ deps.onOutcome?.(s, out.status, out.body, false);
289
300
  if (final && s.job)
290
301
  deps.settleJob?.(s.job, s.to, out.status, parseClosing(out.body).artifacts);
291
302
  // 发话方自己在交接: 重开的那几秒里 pane 是死的, 别把这当成"已经不在了"。
@@ -363,25 +374,36 @@ export const createReceipts = (deps) => {
363
374
  release(s);
364
375
  };
365
376
  const register = (tell, watchIt = true) => {
366
- const k = keyOfPair(tell.from, tell.to);
367
377
  const at = tell.at ?? Date.now();
378
+ const turn = tell.turn ?? newTurn();
379
+ // 续问一件停放着的: 接替它在停放处的位置, 不碰这一对眼下那一件。
380
+ const parked = slots.get(keyOfTurn(tell.from, tell.to, turn));
381
+ const prev = parked ?? slots.get(keyOfPair(tell.from, tell.to));
382
+ // 挂起等子活的那份被另一件顶下来: 按件号停放, 不作废 (见 Slot.parked)。还没标上挂起、
383
+ // 但它已经为这件派了活的也算 —— watcher 可能还没读到那句「已派」。
384
+ const park = !parked && !!prev && !prev.settled && prev.turn !== turn && (!!prev.deferred || children(prev).length > 0);
385
+ if (park) {
386
+ prev.parked = true;
387
+ slots.set(keyOf(prev), prev);
388
+ save(prev);
389
+ }
368
390
  // 顶掉一份还没落定的工单活、自己又没带工单: 继承那张工单 —— 旧那份不会再投了,
369
- // 这一句的答案就是那个成员的交代; 不继承它就永远不计 done, 工单齐不了。
370
- const prev = slots.get(k);
371
- const job = tell.job || (prev?.job && !prev.resolved ? prev.job : "");
391
+ // 这一句的答案就是那个成员的交代; 不继承它就永远不计 done, 工单齐不了。停放的那份还会投, 不让。
392
+ const job = tell.job || (!park && prev?.job && !prev.resolved ? prev.job : "");
372
393
  const s = {
373
394
  ...tell,
374
395
  job,
375
396
  at,
376
- turn: tell.turn ?? newTurn(),
397
+ turn,
377
398
  legs: tell.legs ?? 1,
378
399
  deadlineAt: tell.deadlineAt ?? deadlineOf(at),
379
- gen: (slots.get(k)?.gen ?? 0) + 1,
400
+ gen: (prev?.gen ?? 0) + 1,
380
401
  claimed: false,
381
402
  delivered: false,
382
403
  resolved: false,
404
+ ...(parked ? { parked: true } : {}),
383
405
  };
384
- slots.set(k, s);
406
+ slots.set(keyOf(s), s);
385
407
  if (watchIt)
386
408
  arm(s);
387
409
  else {
@@ -394,9 +416,17 @@ export const createReceipts = (deps) => {
394
416
  };
395
417
  return {
396
418
  register,
419
+ reask: (from, to, turn) => {
420
+ const s = upstream({ from, turn }, to);
421
+ if (!s || s.resolved || s.claimed)
422
+ return undefined;
423
+ const legs = (s.legs ?? 1) + 1;
424
+ register({ from, to, channel: s.channel, job: s.job, turn, legs, ...(s.deadlineAt ? { deadlineAt: s.deadlineAt } : {}), ...(s.k ? { k: s.k } : {}), ...(s.asker ? { asker: s.asker } : {}) });
425
+ return { legs, channel: s.channel, ...(s.asker ? { asker: s.asker } : {}) };
426
+ },
397
427
  prepare: (from, to, re) => {
398
428
  const want = re?.replace(/[`\s]/g, "");
399
- const s = want ? slots.get(keyOfPair(from, to)) : undefined;
429
+ const s = want ? upstream({ from, turn: want }, to) : undefined;
400
430
  return s?.turn && s.turn === want
401
431
  ? { turn: s.turn, legs: (s.legs ?? 1) + 1, job: s.job, channel: s.channel }
402
432
  : { turn: newTurn(), legs: 1, ...(re ? { reUnknown: true } : {}) };
@@ -409,8 +439,10 @@ export const createReceipts = (deps) => {
409
439
  s.claimed = true;
410
440
  s.resolved = true;
411
441
  settle(s);
412
- if (fresh)
442
+ if (fresh) {
413
443
  release(s);
444
+ deps.onOutcome?.(s, "done", "", true);
445
+ }
414
446
  return s.delivered;
415
447
  },
416
448
  sentAt: (from, to) => slots.get(keyOfPair(from, to))?.at ?? 0,
@@ -436,7 +468,7 @@ export const createReceipts = (deps) => {
436
468
  },
437
469
  pending: (from, to) => {
438
470
  const s = slots.get(keyOfPair(from, to));
439
- return s && !s.resolved && !s.claimed ? { job: s.job, turn: s.turn ?? "", need: s.outcome?.status === "need" } : undefined;
471
+ return s && !s.resolved && !s.claimed ? { job: s.job, turn: s.turn ?? "", need: s.outcome?.status === "need", ...(s.deferred ? { deferred: true } : {}) } : undefined;
440
472
  },
441
473
  states: () => {
442
474
  // 一个 target 欠好几份时只探一次 (探针要读它 transcript 的尾巴)。
@@ -456,10 +488,11 @@ export const createReceipts = (deps) => {
456
488
  const last = deps.lastWords?.(s.to, s.at).trim();
457
489
  s.outcome = {
458
490
  status: "canceled",
459
- body: `(守护进程: ${deps.nameOf(s.to)} 被 ${deps.nameOf(by)} 收掉 / 打断了, 这件活没有结论。)${last ? `\n它最后说的: ${truncate(last, 600)}` : ""}`,
491
+ body: `(守护进程: ${deps.nameOf(s.to)} 被 ${deps.nameOf(by)} 收掉 / 打断了, 这件活没有结论。)${last ? `\n它最后说的: ${clipMiddle(last, 600)}` : ""}`,
460
492
  };
461
493
  if (s.job)
462
494
  deps.settleJob?.(s.job, s.to, "canceled", []);
495
+ deps.onOutcome?.(s, "canceled", s.outcome.body, s.from === by);
463
496
  // 发起 stop 的那方自己知道, 不投; 守着的 watcher 看到 claimed 就收尾。
464
497
  if (s.from === by) {
465
498
  s.claimed = true;
@@ -481,7 +514,8 @@ export const createReceipts = (deps) => {
481
514
  const p = [...slots.values()].find((x) => x.to === self && !x.resolved && !x.claimed && (env.turn ? x.turn === env.turn : deps.nameOf(x.from) === env.from));
482
515
  return p && { kind: "peer", from: p.from, turn: p.turn };
483
516
  }
484
- return { kind: "chat", channel, turn: opening };
517
+ // 私聊轮 (频道 "") 派出的活没有群可续: 不能回落成 home, 否则回执轮就进了群。
518
+ return channel ? { kind: "chat", channel, turn: opening } : undefined;
485
519
  },
486
520
  askerOf: (self, env) => {
487
521
  // 回执轮: 那件活是 self 派出去的; 派来的活: 那件活是派给 self 的。同一对后来又说了一句,
@@ -1 +1 @@
1
- {"version":3,"file":"receipts.js","sourceRoot":"","sources":["../../daemon/receipts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"receipts.js","sourceRoot":"","sources":["../../daemon/receipts.ts"],"names":[],"mappings":"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"}