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
@@ -24,23 +24,116 @@ export const rejectReason = (accept, c) => accept === "none" ? undefined
24
24
  : c.kind !== "result" || !c.text.trim() ? "没有 `RESULT:` 收口 (或 RESULT 后面是空的)"
25
25
  : accept === "artifact" && !c.artifacts.length ? "没有列出 `ARTIFACT:` 交付物"
26
26
  : undefined;
27
- /** 一个工单最多带这么多成员 —— 不是能力上限, 是"忘了收"的刹车: 每个成员都是一个
28
- * tmux pane 加一份上下文, 而 fd 是有限的 (见 launchd plist 的 NumberOfFiles)。 */
29
- export const JOB_MEMBER_MAX = 12;
27
+ /** 一个工单最多带这么多直接成员 —— 管辖幅度: 超了就该长一层子 lead, 不是再塞人。
28
+ * (同时也是 "忘了收" 的刹车: 每个成员是一个 tmux pane 加一份上下文。) */
29
+ export const JOB_MEMBER_MAX = 5;
30
+ /** 工单树深度上限: 1 = 根单, 2 = lead 的子单, 3 = 子 lead 的子单。 */
31
+ export const JOB_DEPTH_MAX = 3;
30
32
  const KEEP_CLOSED_MS = 24 * 60 * 60 * 1000;
31
33
  const newId = () => `J${randomUUID().slice(0, 6)}`;
32
34
  /** 写穿式单文件存储, 同 wizard 注册表。收工满 24h 的工单在下一次写盘时被丢掉 ——
33
35
  * 账本是为了收尾, 不是为了存档。 */
34
36
  const dropStale = (map) => {
35
37
  const cutoff = Date.now() - KEEP_CLOSED_MS;
36
- return Object.fromEntries(Object.entries(map).filter(([, j]) => j.status === "open" || (j.closedAt ?? 0) > cutoff));
38
+ // 祖先里还有开着的 (交付等人验收可以等好几天) → 已收工的子单留着, 免得面包屑断。
39
+ const rootOpen = (j) => ancestorsOf((id) => map[id], j).some((a) => a.status === "open");
40
+ return Object.fromEntries(Object.entries(map).filter(([, j]) => j.status === "open" || (j.closedAt ?? 0) > cutoff || rootOpen(j)));
37
41
  };
42
+ /** 祖先链, 由近及远 (不含自己)。带环保护: 账本是落盘数据, 不信它没写坏。 */
43
+ export const ancestorsOf = (get, j) => {
44
+ const go = (cur, seen) => {
45
+ const p = cur.parent && !seen.has(cur.parent) ? get(cur.parent) : undefined;
46
+ return p ? [p, ...go(p, new Set([...seen, p.id]))] : [];
47
+ };
48
+ return go(j, new Set([j.id]));
49
+ };
50
+ /** 深度: 根 = 1。 */
51
+ export const depthOf = (get, j) => 1 + ancestorsOf(get, j).length;
52
+ export const childrenOf = (all, id) => all.filter((j) => j.parent === id).sort((a, b) => a.openedAt - b.openedAt);
53
+ /** 前序展开成树序: 根在前、子单跟在父后。返回 [工单, 深度]。父不在账里的当根。 */
54
+ export const treeOrder = (all) => {
55
+ const ids = new Set(all.map((j) => j.id));
56
+ const walk = (j, d) => [[j, d], ...childrenOf(all, j.id).flatMap((c) => walk(c, d + 1))];
57
+ return all
58
+ .filter((j) => !j.parent || !ids.has(j.parent))
59
+ .sort((a, b) => b.openedAt - a.openedAt)
60
+ .flatMap((r) => walk(r, 1));
61
+ };
62
+ const roleOf = (mm) => mm.role ?? "exec";
63
+ /** 一张单现算的阶段 —— 不落盘 (见设计文档 §3.2)。 */
64
+ export const jobStage = (j, all, live) => {
65
+ if (j.status === "closed")
66
+ return "closed";
67
+ if (j.kind === "req" && j.hold)
68
+ return "shelved";
69
+ const open = j.members.filter((mm) => !mm.outcome);
70
+ const asking = open.some((mm) => live(j, mm) === "needs-input");
71
+ if (j.kind === "req") {
72
+ const lead = j.members.find((mm) => roleOf(mm) === "lead");
73
+ if (lead?.outcome === "done")
74
+ return "deliver";
75
+ if (lead?.outcome)
76
+ return "stalled";
77
+ if (asking)
78
+ return "clarify";
79
+ const sub = childrenOf(all, j.id).find((c) => c.status === "open" && c.members.length);
80
+ // 没有子单时 lead 手上还有在飞的活 (自己在干 / 返工中) 也是实施, 不是规划。
81
+ return sub ? jobStage(sub, all, live) : lead && live(j, lead) ? "build" : "plan";
82
+ }
83
+ if (!j.members.length)
84
+ return "plan";
85
+ if (asking)
86
+ return "clarify";
87
+ const doers = j.members.filter((mm) => roleOf(mm) !== "reviewer" && roleOf(mm) !== "expert");
88
+ const reviewers = j.members.filter((mm) => roleOf(mm) === "reviewer");
89
+ return doers.some((mm) => !mm.outcome) ? "build"
90
+ : reviewers.some((mm) => !mm.outcome) ? "review"
91
+ : open.length ? "build" : "deliver";
92
+ };
93
+ const ROLE_ZH = { lead: "lead", exec: "执行", reviewer: "评审", expert: "专家" };
94
+ /** 名册里一个 wizard 的任职: 开着的单里它是什么 (`J1 lead · J2 评审 · J3 开单`); 没有 = 空串。 */
95
+ export const dutyLine = (all, target) => all.filter((j) => j.status === "open")
96
+ .flatMap((j) => [
97
+ ...(j.owner === target ? [`${j.id} 开单`] : []),
98
+ ...j.members.filter((mm) => mm.target === target).map((mm) => `${j.id} ${ROLE_ZH[mm.role ?? "exec"]}`),
99
+ ])
100
+ .join(" · ");
101
+ /** 等人验收的根单: owner 的需求根单里 lead 已交差、单还开着。交付时刻 = lead 落定的那一刻。 */
102
+ export const awaitingAccept = (all, owner, live) => all.filter((j) => j.kind === "req" && j.owner === owner && jobStage(j, all, live) === "deliver")
103
+ .map((j) => ({ job: j, at: j.members.find((mm) => (mm.role ?? "exec") === "lead")?.settledAt ?? j.openedAt }));
104
+ /** lead 没交差就收场的根单 (timeout / silent / dead / canceled): 要管家重派或关单。 */
105
+ export const stalledRoots = (all, owner, live) => all.filter((j) => j.kind === "req" && j.owner === owner && jobStage(j, all, live) === "stalled")
106
+ .map((j) => ({ job: j, status: j.members.find((mm) => (mm.role ?? "exec") === "lead")?.outcome ?? "" }));
107
+ // ── 重试冒泡 (设计文档 §3.3.1) ──────────────────────────────────────
108
+ const HOUR = 3600_000;
109
+ /** 只在白天冒: [09:00, 21:00) 本地时间。 */
110
+ export const NUDGE_FROM_H = 9;
111
+ export const NUDGE_TO_H = 21;
112
+ /** 下一次冒泡的理想时刻 (还没算白天窗口): 交付后 4h → 之后 1 天 → 再之后每 2 天, 不封顶。 */
113
+ export const nextNudgeAt = (deliveredAt, nudge) => !nudge || nudge.n < 1 ? Math.max(deliveredAt, nudge?.lastAt ?? 0) + 4 * HOUR
114
+ : nudge.n < 2 ? nudge.lastAt + 24 * HOUR
115
+ : nudge.lastAt + 48 * HOUR;
116
+ /** 落在 [09:00, 21:00) 之外的时刻顺延到下一个 09:00 (本地时间)。 */
117
+ export const dayClamp = (t) => {
118
+ const d = new Date(t);
119
+ const h = d.getHours();
120
+ if (h >= NUDGE_FROM_H && h < NUDGE_TO_H)
121
+ return t;
122
+ if (h >= NUDGE_TO_H)
123
+ d.setDate(d.getDate() + 1);
124
+ d.setHours(NUDGE_FROM_H, 0, 0, 0);
125
+ return d.getTime();
126
+ };
127
+ /** 这张等验收的根单此刻该不该冒一次。 */
128
+ export const nudgeDue = (deliveredAt, nudge, now) => now >= dayClamp(nextNudgeAt(deliveredAt, nudge));
129
+ /** 搁置的需求根单: 不冒泡、不算等验收, 但挂起表里要看得见, 免得被遗忘。 */
130
+ export const shelvedRoots = (all, owner) => all.filter((j) => j.kind === "req" && j.owner === owner && j.status === "open" && j.hold);
38
131
  export const loadJobStore = (filePath) => {
39
132
  const db = loadJsonMap(filePath, dropStale);
40
133
  return {
41
- open: (base, owner, title, { plan, expect, maxTurns, accept } = {}) => {
134
+ open: (base, owner, title, { plan, expect, maxTurns, accept, parent, kind, criteria, origin, gate } = {}) => {
42
135
  const id = newId();
43
- return db.set(id, { id, base, owner, title, ...(plan ? { plan } : {}), ...(accept && accept !== "result" ? { accept } : {}), ...(expect ? { expect } : {}), ...(maxTurns ? { maxTurns, turns: 0 } : {}), members: [], status: "open", openedAt: Date.now() });
136
+ return db.set(id, { id, base, owner, title, ...(parent ? { parent } : {}), ...(kind ? { kind } : {}), ...(criteria ? { criteria } : {}), ...(origin ? { origin } : {}), ...(gate ? { gate } : {}), ...(plan ? { plan } : {}), ...(accept && accept !== "result" ? { accept } : {}), ...(expect ? { expect } : {}), ...(maxTurns ? { maxTurns, turns: 0 } : {}), members: [], status: "open", openedAt: Date.now() });
44
137
  },
45
138
  spend: (id) => {
46
139
  const j = db.get(id);
@@ -51,15 +144,24 @@ export const loadJobStore = (filePath) => {
51
144
  return { turns, ...(j.maxTurns ? { maxTurns: j.maxTurns } : {}) };
52
145
  },
53
146
  get: db.get,
54
- attach: (id, member) => {
147
+ attach: (id, member, kind = "task") => {
55
148
  const j = db.get(id);
56
- if (!j || j.status !== "open" || j.members.length >= JOB_MEMBER_MAX)
149
+ const prev = j?.members.find((x) => x.target === member.target);
150
+ // 满员只拦新面孔: 已在册的再派一段 (re 续问) 必须照记, 否则它旧的定论不作废, 「全部到齐」提前报。
151
+ if (!j || j.status !== "open" || (!prev && j.members.length >= JOB_MEMBER_MAX))
57
152
  return undefined;
58
153
  const rest = j.members.filter((x) => x.target !== member.target);
59
- const prev = j.members.find((x) => x.target === member.target);
60
154
  // 再派一段 (含 re 续问) = 它又在干了: 旧的定论作废, 不然「全部到齐」会提前报、
61
155
  // close_job 会把还在干活的它收掉。
62
- return db.set(id, { ...j, members: [...rest, { ...member, task: member.task || prev?.task || "", spawned: member.spawned || !!prev?.spawned, at: Date.now() }] });
156
+ const role = member.role ?? prev?.role;
157
+ const forkOf = member.forkOf ?? prev?.forkOf;
158
+ // 根单上 owner 给 lead 派了新活 (task; ask 只是问一句, 不算返工): 不再搁置; 若这一句让 lead 的定论作废, 冒泡也从头计。
159
+ // 定论照旧一律作废 (它又在干了, 见上), 只是 ask 不动 hold / nudge。
160
+ const toLead = j.kind === "req" && role === "lead" && kind === "task";
161
+ const { hold: _h, ...unheld } = j;
162
+ const { nudge: _n, ...unnudged } = unheld;
163
+ const base = !toLead ? j : prev?.outcome ? unnudged : unheld;
164
+ return db.set(id, { ...base, members: [...rest, { ...member, task: member.task || prev?.task || "", spawned: member.spawned || !!prev?.spawned, ...(role ? { role } : {}), ...(forkOf ? { forkOf } : {}), at: Date.now() }] });
63
165
  },
64
166
  settle: (id, target, outcome, artifacts) => {
65
167
  const j = db.get(id);
@@ -67,16 +169,23 @@ export const loadJobStore = (filePath) => {
67
169
  return undefined;
68
170
  return db.set(id, {
69
171
  ...j,
70
- members: j.members.map((x) => (x.target === target ? { ...x, outcome, ...(artifacts?.length ? { artifacts } : {}) } : x)),
172
+ members: j.members.map((x) => (x.target === target ? { ...x, outcome, settledAt: Date.now(), ...(artifacts?.length ? { artifacts } : {}) } : x)),
71
173
  });
72
174
  },
73
175
  tally: (id) => {
74
176
  const j = db.get(id);
75
177
  return j && { done: j.members.filter((x) => x.outcome).length, total: Math.max(j.members.length, j.expect ?? 0) };
76
178
  },
77
- close: (id, summary) => {
179
+ close: (id, summary, mark) => {
78
180
  const j = db.get(id);
79
- return j ? db.set(id, { ...j, status: "closed", closedAt: Date.now(), summary }) : undefined;
181
+ return j ? db.set(id, { ...j, ...(mark?.gate ? { gate: { ...j.gate, ...mark.gate } } : {}), ...(mark?.end ? { end: mark.end } : {}), status: "closed", closedAt: Date.now(), summary }) : undefined;
182
+ },
183
+ mark: (id, patch) => {
184
+ const j = db.get(id);
185
+ if (!j)
186
+ return undefined;
187
+ const { gate, ...rest } = patch;
188
+ return db.set(id, { ...j, ...rest, ...(gate ? { gate: { ...j.gate, ...gate } } : {}) });
80
189
  },
81
190
  detach: (target) => Object.values(db.all())
82
191
  .filter((j) => j.status === "open" && j.members.some((x) => x.target === target && !x.outcome))
@@ -1 +1 @@
1
- {"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../daemon/jobs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"jobs.js","sourceRoot":"","sources":["../../daemon/jobs.ts"],"names":[],"mappings":"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"}