wezard 2.3.0 → 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.
- package/CLAUDE.md +3 -3
- package/README.md +5 -5
- package/config.example.jsonc +12 -0
- package/dist/daemon/approval.js +84 -2
- package/dist/daemon/approval.js.map +1 -1
- package/dist/daemon/chat-name.js +15 -0
- package/dist/daemon/chat-name.js.map +1 -1
- package/dist/daemon/config-api.js +265 -70
- package/dist/daemon/config-api.js.map +1 -1
- package/dist/daemon/danger.js +5 -7
- package/dist/daemon/danger.js.map +1 -1
- package/dist/daemon/detail.js +10 -2
- package/dist/daemon/detail.js.map +1 -1
- package/dist/daemon/handoff.js +4 -3
- package/dist/daemon/handoff.js.map +1 -1
- package/dist/daemon/idle-nudge.js +55 -0
- package/dist/daemon/idle-nudge.js.map +1 -0
- package/dist/daemon/inbound.js +10 -10
- package/dist/daemon/inbound.js.map +1 -1
- package/dist/daemon/index.js +872 -214
- package/dist/daemon/index.js.map +1 -1
- package/dist/daemon/jobs.js +122 -13
- package/dist/daemon/jobs.js.map +1 -1
- package/dist/daemon/mirror-bridge.js +95 -83
- package/dist/daemon/mirror-bridge.js.map +1 -1
- package/dist/daemon/model-select.js +3 -0
- package/dist/daemon/model-select.js.map +1 -1
- package/dist/daemon/notices.js +145 -33
- package/dist/daemon/notices.js.map +1 -1
- package/dist/daemon/peers.js +88 -74
- package/dist/daemon/peers.js.map +1 -1
- package/dist/daemon/pending-items.js +171 -0
- package/dist/daemon/pending-items.js.map +1 -0
- package/dist/daemon/receipts.js +54 -20
- package/dist/daemon/receipts.js.map +1 -1
- package/dist/daemon/route.js +76 -15
- package/dist/daemon/route.js.map +1 -1
- package/dist/daemon/spawn-tmux.js +2 -2
- package/dist/daemon/spawn-tmux.js.map +1 -1
- package/dist/daemon/steward-guard.js +32 -0
- package/dist/daemon/steward-guard.js.map +1 -0
- package/dist/daemon/wizard.js +104 -61
- package/dist/daemon/wizard.js.map +1 -1
- package/dist/mcp/server.js +75 -25
- package/dist/mcp/server.js.map +1 -1
- package/dist/shared/chat-http.js +8 -8
- package/dist/shared/chat-http.js.map +1 -1
- package/dist/shared/config-meta.js +91 -0
- package/dist/shared/config-meta.js.map +1 -0
- package/dist/shared/config-writer.js +5 -6
- package/dist/shared/config-writer.js.map +1 -1
- package/dist/shared/config.js +269 -294
- package/dist/shared/config.js.map +1 -1
- package/dist/shared/detail-render.js +121 -32
- package/dist/shared/detail-render.js.map +1 -1
- package/dist/shared/detail-store.js.map +1 -1
- package/dist/shared/keepalive.js +5 -5
- package/dist/shared/keepalive.js.map +1 -1
- package/dist/shared/role-render.js +49 -11
- package/dist/shared/role-render.js.map +1 -1
- package/dist/shared/role-view.js +18 -4
- package/dist/shared/role-view.js.map +1 -1
- package/dist/shared/world.js +82 -13
- package/dist/shared/world.js.map +1 -1
- package/hooks/pre-tool-use.sh +5 -6
- package/package.json +1 -1
- package/web/chat.css +57 -37
- package/web/chat.js +454 -227
|
@@ -198,6 +198,9 @@ export const labelFitsId = (label, id) => {
|
|
|
198
198
|
const m = PLAIN_LABEL_RE.exec(label.trim());
|
|
199
199
|
return !!m && (id.toLowerCase().match(/[a-z]+/gu) ?? []).includes(m[1].toLowerCase()) && versionOf(id) === m[2];
|
|
200
200
|
};
|
|
201
|
+
/** Claude Code's own `--model` aliases: valid launch args as-is, so a tier's
|
|
202
|
+
* "haiku" needs no `/model` picker (whose "Kept model as …" echo is chat noise). */
|
|
203
|
+
export const isLaunchAlias = (wanted) => /^(?:haiku|sonnet|opus)$/i.test(wanted.trim());
|
|
201
204
|
/** The exact id to launch with, or undefined when `wanted` is colloquial
|
|
202
205
|
* ("opus", "最新的 opus") or names nothing ever seen. `seen` is consumed
|
|
203
206
|
* lazily, likeliest first — the first hit ends the scan. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model-select.js","sourceRoot":"","sources":["../../daemon/model-select.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"model-select.js","sourceRoot":"","sources":["../../daemon/model-select.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon/notices.js
CHANGED
|
@@ -4,38 +4,154 @@
|
|
|
4
4
|
// 越假 —— 新分身出生、老 wizard 收工、谁改了职责, 它一概不知道, 除非自己去
|
|
5
5
|
// wizard_roster 问。问一次要花一轮, 于是实际上没人问。
|
|
6
6
|
//
|
|
7
|
-
// 这里是另一半。变动发生时不打扰任何人,
|
|
7
|
+
// 这里是另一半。变动发生时不打扰任何人, 只把一条事件投进每个相关 wizard 的信箱;
|
|
8
8
|
// 下一次**无论谁**往它那儿注入点什么 (人在群里说话、同伴派活、定时任务到点),
|
|
9
9
|
// 这些行以 `<system-reminder>` 的形式挂在那段文本尾巴上一起进去。不占一轮、不进
|
|
10
|
-
// 气泡、不进 transcript (META_RE 会把它剥掉)
|
|
11
|
-
//
|
|
10
|
+
// 气泡、不进 transcript (META_RE 会把它剥掉)。点名提示 (mention) 与挂起事项
|
|
11
|
+
// (pending) 走同一条边界, 由 noticeSuffixFor 一并拼出。
|
|
12
12
|
//
|
|
13
13
|
// 感知 = spawn 时的快照 + turn 时的增量。两者都不花额外的轮次。
|
|
14
14
|
//
|
|
15
|
-
//
|
|
15
|
+
// 尾巴每一轮都要付钱, 所以拼的时候看一眼「近 SEEN_DEPTH 次注入里挂过什么」(SeenRing):
|
|
16
|
+
// 同一个 wizard 的点名说明、同一行变动、每段固定的规矩, 窗口里给过就不再给 —— 它们
|
|
17
|
+
// 还在模型的上下文里。窗口随会话走: 换了 sid (交接 / 重生)、/clear、压缩、新宪章,
|
|
18
|
+
// 都清零重来。窗口落盘, 否则 reload 之后每个 pane 的头一条注入又把整段说明挂一遍。
|
|
19
|
+
//
|
|
20
|
+
// 信箱投递即清空: 那一次注入失败的话这几行就丢了。通知是提示, 真相永远可以
|
|
16
21
|
// wizard_roster 问到; 为一行提示做可靠投递不值当。信箱是纯内存的, daemon 重启即
|
|
17
22
|
// 清空 —— 同 graph run, 诚实地说: pane 还在, 没送到的提示没了。
|
|
23
|
+
import { homedir } from "node:os";
|
|
18
24
|
import { baseOfKey } from "../shared/session-label.js";
|
|
19
25
|
import { renderReminder } from "../shared/reminder.js";
|
|
20
|
-
|
|
26
|
+
import { clipLine } from "../shared/std.js";
|
|
27
|
+
const none = { text: "", keys: [] };
|
|
28
|
+
// ── 近 N 次注入的窗口 ────────────────────────────────────────────────
|
|
29
|
+
export const SEEN_DEPTH = 10;
|
|
30
|
+
const STALE_MS = 7 * 24 * 3600_000;
|
|
31
|
+
/** 一周没注入过的 pane 不再记。 */
|
|
32
|
+
export const gcSeen = (rows, now = Date.now()) => Object.fromEntries(Object.entries(rows).filter(([, r]) => now - r.at < STALE_MS));
|
|
33
|
+
/** `store` 不给 = 纯内存。`sidOf` 给出此刻的会话 id ("" = 不知道, 不据此作废)。 */
|
|
34
|
+
export const createSeenRing = (store, sidOf, depth = SEEN_DEPTH) => {
|
|
35
|
+
const mem = new Map(Object.entries(store?.all() ?? {}));
|
|
36
|
+
const live = (t) => {
|
|
37
|
+
const r = mem.get(t);
|
|
38
|
+
const sid = sidOf(t);
|
|
39
|
+
return r && (!sid || !r.sid || r.sid === sid) ? r : undefined;
|
|
40
|
+
};
|
|
41
|
+
const put = (t, r) => {
|
|
42
|
+
if (r) {
|
|
43
|
+
mem.set(t, r);
|
|
44
|
+
store?.set(t, r);
|
|
45
|
+
}
|
|
46
|
+
else if (mem.delete(t))
|
|
47
|
+
store?.drop(t);
|
|
48
|
+
};
|
|
49
|
+
return {
|
|
50
|
+
of: (t) => {
|
|
51
|
+
const ks = new Set((live(t)?.ring ?? []).flat());
|
|
52
|
+
return (k) => ks.has(k);
|
|
53
|
+
},
|
|
54
|
+
push: (t, keys) => {
|
|
55
|
+
const prev = live(t)?.ring ?? [];
|
|
56
|
+
// 一路空着的窗口不必为又一次空注入写盘。
|
|
57
|
+
if (!keys.length && !prev.some((s) => s.length))
|
|
58
|
+
return;
|
|
59
|
+
put(t, { sid: sidOf(t) || mem.get(t)?.sid || "", at: Date.now(), ring: [...prev, [...keys]].slice(-depth) });
|
|
60
|
+
},
|
|
61
|
+
reset: (t) => put(t, undefined),
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
// ── 名册变动: 净化与渲染 ─────────────────────────────────────────────
|
|
65
|
+
const nameOf = (n) => ("name" in n && n.op !== "chat" ? n.name : undefined);
|
|
66
|
+
/** 两次注入之间生了又收掉的: 那一段关于它的全部变动净值为零, 一并略过。
|
|
67
|
+
* 先收后生 (同名顶替) 是真变化, 保留。 */
|
|
68
|
+
export const netNotices = (ns) => {
|
|
69
|
+
const void_ = ns.flatMap((n, j) => {
|
|
70
|
+
if (n.op !== "ended")
|
|
71
|
+
return [];
|
|
72
|
+
const i = ns.findIndex((b, k) => k < j && b.op === "born" && b.name === n.name);
|
|
73
|
+
return i < 0 ? [] : [[i, j, n.name]];
|
|
74
|
+
});
|
|
75
|
+
return ns.filter((n, k) => !void_.some(([i, j, name]) => k >= i && k <= j && nameOf(n) === name));
|
|
76
|
+
};
|
|
77
|
+
const HOME = homedir();
|
|
78
|
+
export const tildePath = (p) => (p === HOME || p.startsWith(`${HOME}/`) ? `~${p.slice(HOME.length)}` : p);
|
|
79
|
+
/** logfmt 的值: 有空白 / 引号 / `=` 才加引号。 */
|
|
80
|
+
const val = (s) => (/[\s"=]/.test(s) ? `"${s.replace(/"/g, "'")}"` : s);
|
|
81
|
+
const kv = (k, v) => (v ? ` ${k}=${val(v)}` : "");
|
|
82
|
+
const clip = (s) => clipLine(s, 80);
|
|
83
|
+
/** 一条变动 → 一行 logfmt (`op .name k=v …`)。`cwd` = 收件人自己的工作区: 同一个就不提。 */
|
|
84
|
+
export const renderNotice = (n, cwd = "") => {
|
|
85
|
+
switch (n.op) {
|
|
86
|
+
case "born":
|
|
87
|
+
return `born ${n.name}${kv("by", n.by)} ${n.clone ? "clone" : "spawn"}${kv("ctx", n.ctx)}${kv("job", n.job && clip(n.job))}${n.cwd && n.cwd !== cwd ? kv("cwd", tildePath(n.cwd)) : ""}`;
|
|
88
|
+
case "ended":
|
|
89
|
+
return `ended ${n.name}${kv("by", n.by)}${n.why ? ` ${n.why}` : ""}`;
|
|
90
|
+
case "renamed":
|
|
91
|
+
return `renamed ${n.name}${kv("was", n.was)}${kv("job", n.job && clip(n.job))}`;
|
|
92
|
+
case "job":
|
|
93
|
+
return `job ${n.name}${kv("job", clip(n.job))}`;
|
|
94
|
+
case "chat":
|
|
95
|
+
return `chat ${val(n.name)} auto-named (usable as \`chat\` in notify / spawn_wizard)`;
|
|
96
|
+
case "note":
|
|
97
|
+
return `note ${n.text}`;
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
const HOLE = "\u0000";
|
|
101
|
+
/** 名字挖掉之后的那一行: 生 / 收的模板相同 = 除了是谁之外处处相同, 可以并成一行。 */
|
|
102
|
+
const templateOf = (n, cwd) => n.op === "born" || n.op === "ended" ? renderNotice({ ...n, name: HOLE }, cwd) : renderNotice(n, cwd);
|
|
103
|
+
const listNames = (xs) => (xs.length <= 4 ? xs.join(" ") : `${xs.slice(0, 3).join(" ")} …(+${xs.length - 3})`);
|
|
104
|
+
/** 同一模板的几条并成一行, 名字依次列出 —— 一批分身一起收掉只占一行, 不是九行。 */
|
|
105
|
+
export const groupRows = (ns, cwd) => {
|
|
106
|
+
const groups = ns.reduce((acc, n) => ((k) => acc.set(k, [...new Set([...(acc.get(k) ?? []), nameOf(n) ?? ""])]))(templateOf(n, cwd)), new Map());
|
|
107
|
+
return [...groups].map(([tpl, names]) => tpl.replace(HOLE, listNames(names)));
|
|
108
|
+
};
|
|
109
|
+
/** 名册那一段。去重按单条 (`r:<那一行>`) 记, 渲染时再并行; 规矩只在窗口里没给过时给。 */
|
|
110
|
+
export const rosterPart = (ns, cwd) => (seen) => {
|
|
111
|
+
const fresh = [...new Map(netNotices(ns).map((n) => [renderNotice(n, cwd), n]))].filter(([r]) => !seen(`r:${r}`));
|
|
112
|
+
if (!fresh.length)
|
|
113
|
+
return none;
|
|
114
|
+
const rows = groupRows(fresh.map(([, n]) => n), cwd);
|
|
115
|
+
const rule = !seen("rule:roster");
|
|
116
|
+
return {
|
|
117
|
+
text: renderReminder({ wezard: "roster" }, [
|
|
118
|
+
...(rule ? ["Roster changes since your charter snapshot (truth: wizard_roster). FYI only — don't reply or relay; skip if irrelevant."] : []),
|
|
119
|
+
...rows.map((r) => `- ${r}`),
|
|
120
|
+
]),
|
|
121
|
+
keys: [...(rule ? ["rule:roster"] : []), ...fresh.map(([r]) => `r:${r}`)],
|
|
122
|
+
};
|
|
123
|
+
};
|
|
124
|
+
/** `max`: 每个信箱最多攒几条 —— 一个挂了很久的 wizard 不该在醒来时读一部编年史,
|
|
21
125
|
* 溢出时留最新的那些 (旧的那些多半已经被后面的变动覆盖了)。
|
|
22
126
|
* `probe` 是投递那一刻现算的行 (不是谁投进来的, 而是「此刻它的状态值得提一句」,
|
|
23
|
-
* 如上下文快满); 排在信箱里的那些前面。
|
|
24
|
-
|
|
127
|
+
* 如上下文快满); 排在信箱里的那些前面。
|
|
128
|
+
* `digest` 是另一类搭车的: 投递那一刻现算、自带壳的整段 (挂起事项, 见 pending-items.ts)。 */
|
|
129
|
+
export const createNoticeBox = (o = {}) => {
|
|
130
|
+
const max = o.max ?? 24;
|
|
25
131
|
const boxes = new Map();
|
|
132
|
+
const ring = o.seen ?? createSeenRing(undefined, () => "");
|
|
133
|
+
const drain = (target) => {
|
|
134
|
+
const ns = [...(o.probe?.(target) ?? []).map((text) => ({ op: "note", text })), ...(boxes.get(target) ?? [])];
|
|
135
|
+
boxes.delete(target);
|
|
136
|
+
return ns;
|
|
137
|
+
};
|
|
26
138
|
return {
|
|
27
|
-
post: (audience,
|
|
28
|
-
|
|
139
|
+
post: (audience, n) => {
|
|
140
|
+
const one = typeof n === "string" ? { op: "note", text: n } : n;
|
|
141
|
+
if (one.op === "note" && !one.text.trim())
|
|
29
142
|
return;
|
|
30
|
-
for (const t of new Set(audience))
|
|
31
|
-
boxes.set(t, [...(boxes.get(t) ?? []),
|
|
32
|
-
}
|
|
143
|
+
for (const t of new Set(audience))
|
|
144
|
+
boxes.set(t, [...(boxes.get(t) ?? []), one].slice(-max));
|
|
33
145
|
},
|
|
34
|
-
drain
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
146
|
+
drain,
|
|
147
|
+
suffix: (target, via, lead) => {
|
|
148
|
+
const seen = ring.of(target);
|
|
149
|
+
const parts = [...lead, rosterPart(drain(target), o.cwdOf?.(target) ?? ""), ...(o.digest ? [o.digest(target, via)] : [])];
|
|
150
|
+
const secs = parts.map((p) => p(seen));
|
|
151
|
+
ring.push(target, secs.flatMap((s) => s.keys));
|
|
152
|
+
return secs.map((s) => s.text).join("");
|
|
38
153
|
},
|
|
154
|
+
forget: (target) => ring.reset(target),
|
|
39
155
|
};
|
|
40
156
|
};
|
|
41
157
|
// 进程内唯一的信箱。inbound (人说的话) 和 mirror-bridge (同伴/定时注入) 是两条
|
|
@@ -44,26 +160,22 @@ export const createNoticeBox = (max = 12, probe = () => []) => {
|
|
|
44
160
|
let bound;
|
|
45
161
|
export const bindNoticeBox = (box) => (bound = box);
|
|
46
162
|
export const noticeBox = () => bound;
|
|
47
|
-
/**
|
|
48
|
-
|
|
49
|
-
|
|
163
|
+
/** 注入边界上取一次尾巴。`lead` 是排在名册前面的段 (人那条路径上的点名提示)。
|
|
164
|
+
* slash 命令按行解析, 尾巴上多挂一段会让它不再被识别成命令 —— 这类注入直接跳过
|
|
165
|
+
* (信箱不清空, 窗口不前进, 等下一条普通消息)。没绑信箱时前置段照样给, 只是不去重。 */
|
|
166
|
+
export const noticeSuffixFor = (target, text, via = {}, lead = []) => {
|
|
167
|
+
if (text.trimStart().startsWith("/"))
|
|
50
168
|
return "";
|
|
51
|
-
return renderReminder({ wezard: "roster" }, [
|
|
52
|
-
"你出生时拿到的宪章 (名册、记忆) 是快照, 这段时间里变了:",
|
|
53
|
-
...lines.map((l) => `- ${l}`),
|
|
54
|
-
"名册的真相是 wizard_roster, 记忆的真相是那份文件。与手头的活无关就略过,",
|
|
55
|
-
"**不要为此回话, 也不要向用户复述这几行** —— 群里该看见的气泡已经发过了。",
|
|
56
|
-
]);
|
|
57
|
-
};
|
|
58
|
-
/** 注入边界上取一次增量。slash 命令按行解析, 尾巴上多挂一段会让它不再被识别成
|
|
59
|
-
* 命令 —— 同 inbound 对 mention hint 的处理, 这类注入直接跳过 (信箱不清空, 等
|
|
60
|
-
* 下一条普通消息)。 */
|
|
61
|
-
export const noticeSuffixFor = (target, text) => {
|
|
62
169
|
const box = noticeBox();
|
|
63
|
-
|
|
64
|
-
return "";
|
|
65
|
-
return renderNotices(box.drain(target));
|
|
170
|
+
return box ? box.suffix(target, via, lead) : lead.map((p) => p(() => false).text).join("");
|
|
66
171
|
};
|
|
172
|
+
/** 收件人 `t` 该不该听到关于 `who` 的变动 —— 只有会改变它接下来怎么做的才算:
|
|
173
|
+
* - 长住且有职责的 (没有 parent、写了 description): 同群都该知道, 别人照它的职责派活、按名字找它。
|
|
174
|
+
* - 分身 / 帮手 (有 parent): 只是生它那位与拉它进工单那位手上的活。不往上走家谱 —— 孙辈是子
|
|
175
|
+
* wizard 自己的事: 回归测试的一整批临时分身曾这样从跑测试那位一路刷到群管家。
|
|
176
|
+
* - 没有 parent 也没写职责的 (还没自我介绍的新会话、forget 之后残留的冷记录): 谁也不告诉;
|
|
177
|
+
* 它写下职责那一刻 (job 事件) 才算登场。 */
|
|
178
|
+
export const hears = (who) => (t) => !who.parent ? !!who.description?.trim() : t === who.parent || !!who.owners?.includes(t);
|
|
67
179
|
/** 同一个聊天里除了当事人之外的所有 wizard —— 一次变动的默认听众。跨聊天的同伴
|
|
68
180
|
* 不在其中: 群成员变动是那个群的事, 别的群只在真的去 send_peer 时才需要知道。 */
|
|
69
181
|
export const chatAudience = (liveTargets, base, except) => liveTargets.filter((t) => baseOfKey(t) === base && !except.includes(t));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notices.js","sourceRoot":"","sources":["../../daemon/notices.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"notices.js","sourceRoot":"","sources":["../../daemon/notices.ts"],"names":[],"mappings":"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"}
|
package/dist/daemon/peers.js
CHANGED
|
@@ -11,7 +11,8 @@
|
|
|
11
11
|
// attachments) and the graph runner (which drives them) both compose on top.
|
|
12
12
|
import { existsSync, openSync, readSync, closeSync, statSync } from "node:fs";
|
|
13
13
|
import { backendForPath } from "../shared/cli-backends.js";
|
|
14
|
-
import { truncate, truncateWithCount } from "../shared/std.js";
|
|
14
|
+
import { clipLine, truncate, truncateWithCount } from "../shared/std.js";
|
|
15
|
+
import { tildePath } from "./notices.js";
|
|
15
16
|
import { isKeepalivePingText, withoutKeepalive } from "../shared/keepalive.js";
|
|
16
17
|
import { envelopeAttrs, parseEnvelope, renderReminder } from "../shared/reminder.js";
|
|
17
18
|
/** Strip ANSI SGR/CSI + OSC so captured pane text is safe to embed / match on. */
|
|
@@ -89,9 +90,9 @@ export const firstStamp = (jsonlPath) => {
|
|
|
89
90
|
/** 从文件尾读一段并解析; `enough` 说不够就翻四倍重读, 直到够了、读完整个文件、
|
|
90
91
|
* 或者撞上上限。窗口是手段不是目的 —— 调用方只说"我要几轮", 不该关心一条
|
|
91
92
|
* attachment 有多大。 */
|
|
92
|
-
const readTailUntil = (jsonlPath, parse, enough) => {
|
|
93
|
+
const readTailUntil = (jsonlPath, parse, enough, max = TAIL_BYTES_MAX) => {
|
|
93
94
|
const size = fileSize(jsonlPath);
|
|
94
|
-
const ceiling = Math.min(size || TAIL_BYTES,
|
|
95
|
+
const ceiling = Math.min(size || TAIL_BYTES, max);
|
|
95
96
|
const walk = (win) => {
|
|
96
97
|
const parsed = parse(readTailBytes(jsonlPath, win));
|
|
97
98
|
return enough(parsed) || win >= ceiling ? parsed : walk(Math.min(win * 4, ceiling));
|
|
@@ -127,12 +128,16 @@ export const lastUserTurn = (jsonlPath) => readTailUntil(jsonlPath, (raw) => par
|
|
|
127
128
|
.filter((t) => t.role === "user").at(-1);
|
|
128
129
|
/** `tailTurns` 去掉保温 ping/pong 之后的最后 `n` 轮 —— 凡是交给另一个 wizard (或人)
|
|
129
130
|
* **读**的都走这里: 挂机一晚的会话尾巴上全是 ping/pong, 照 tailTurns 数出来的
|
|
130
|
-
* 「最近 6 轮」一句真话都没有, 「最后一条回复」是一个 pong
|
|
131
|
-
* 那一种 —— resumePing ("continue") 之后模型是真的在干活, 那一轮不能丢。 */
|
|
131
|
+
* 「最近 6 轮」一句真话都没有, 「最后一条回复」是一个 pong。 */
|
|
132
132
|
export const talkTurns = (jsonlPath, n, pingSigs = [], keepLines = false, marks = false) => {
|
|
133
133
|
const clean = (ts) => withoutKeepalive(ts, pingSigs);
|
|
134
134
|
return clean(readTailUntil(jsonlPath, (raw) => parseTurns(jsonlPath, raw, keepLines, marks), (ts) => clean(ts).length >= n)).slice(-n);
|
|
135
135
|
};
|
|
136
|
+
/** 从 `sinceMs` 起的全部来回 (带标记): 往回读到越过它的第一行为止, **不受 TAIL_BYTES_MAX
|
|
137
|
+
* 限制**。按条数读尾巴的 talkTurns 管不了一轮很长的情形: 一轮里的大段工具输出 (读文件、
|
|
138
|
+
* 跑命令) 能把开这一轮的那句推到 2MB 之外 —— 回执就再也定位不到问话, 对方答完了也只能
|
|
139
|
+
* 报 silent。问话一定晚于发话时刻, 所以读到发话时刻之前就够了, 再大的文件也只读这一段。 */
|
|
140
|
+
export const turnsSince = (jsonlPath, sinceMs, pingSigs = []) => withoutKeepalive(readTailUntil(jsonlPath, (raw) => parseTurns(jsonlPath, raw, true, true), (ts) => ts.some((t) => !!t.ms && t.ms < sinceMs), Infinity), pingSigs);
|
|
136
141
|
/** 一个会话的来回, 每个来回 = 一句问话 + 它之后的全部回答 (途中的话在前, 终句在
|
|
137
142
|
* 最后), 旧的在前。读多深由时间窗定, 调用方再按时刻与条数裁:
|
|
138
143
|
* 给了 `since` → 一直读到比它更早的那一句 (窗口内的一句不漏);
|
|
@@ -182,7 +187,7 @@ const parseTurns = (jsonlPath, raw, keepLines = false, marks = false) => {
|
|
|
182
187
|
if (marks && att?.type === "queued_command" && typeof att.prompt === "string" && !parsed.isSidechain) {
|
|
183
188
|
const env = parseEnvelope(att.prompt);
|
|
184
189
|
const ms = Date.parse(String(parsed.timestamp ?? ""));
|
|
185
|
-
return env ? [{ role: "user", text: "", ms
|
|
190
|
+
return env ? [{ role: "user", text: "", ms, env, queued: true }] : [];
|
|
186
191
|
}
|
|
187
192
|
let row;
|
|
188
193
|
try {
|
|
@@ -206,13 +211,12 @@ const parseTurns = (jsonlPath, raw, keepLines = false, marks = false) => {
|
|
|
206
211
|
// keepaliveStamps to mtime fallback, and let the keepalive's own ping
|
|
207
212
|
// writes (plus snapshot/summary churn) read as REAL activity that reset
|
|
208
213
|
// the round budget without bound.
|
|
209
|
-
const
|
|
210
|
-
const ms = typeof rawTs === "number" ? rawTs : Date.parse(String(rawTs ?? ""));
|
|
214
|
+
const ms = stampMs(parsed.timestamp);
|
|
211
215
|
const mid = role === "assistant" && row.message?.stop_reason === "tool_use";
|
|
212
216
|
if (!text && marks && role === "user" && raw.includes("<task-notification"))
|
|
213
|
-
return [{ role, text: "", ms
|
|
217
|
+
return [{ role, text: "", ms, notice: true }];
|
|
214
218
|
const apiError = role === "assistant" && parsed.isApiErrorMessage === true;
|
|
215
|
-
return text ? [{ role, text, ms
|
|
219
|
+
return text ? [{ role, text, ms, ...(env ? { env } : {}), ...(mid ? { mid: true } : {}), ...(apiError ? { apiError: true } : {}) }] : [];
|
|
216
220
|
});
|
|
217
221
|
};
|
|
218
222
|
// Flatten a message's content for QUOTE DEDUP only — unlike `blockText` this
|
|
@@ -439,7 +443,7 @@ export const clipMiddle = (s, max = 4000, head = Math.floor(max / 4)) => s.lengt
|
|
|
439
443
|
export const lastReply = (jsonlPath, sinceMs = 0, pingSigs = []) => talkTurns(jsonlPath, 40, pingSigs, true, true)
|
|
440
444
|
.filter((t) => t.role === "assistant" && (!t.ms || t.ms >= sinceMs))
|
|
441
445
|
.at(-1)?.text ?? "";
|
|
442
|
-
/** 报错之后叫它接着干的那一句 (
|
|
446
|
+
/** 报错之后叫它接着干的那一句 (`continue` / `继续` …)。 */
|
|
443
447
|
const RESUME_RE = /^(?:continue|go on|resume|继续|接着(?:干|做)?)[\s.!。!]*$/i;
|
|
444
448
|
/** paste 到那一行落盘之间的抖动 —— 问话的时间戳可能比我们记的发话时刻早一点。 */
|
|
445
449
|
const ASK_SLACK_MS = 60_000;
|
|
@@ -452,8 +456,10 @@ const ASK_SLACK_MS = 60_000;
|
|
|
452
456
|
* 输入框里没读进) 返回 `undefined`; 找到了问话但它后面还没有回答返回 "" —— 两种都要
|
|
453
457
|
* 接着等, 绝不能退回按时刻取把上一件事的结论当成这一次的回执 (receipts 只用前者分辨
|
|
454
458
|
* 「它在忙前面的轮」与「读进了却没答」)。 */
|
|
459
|
+
/** 找问话的那一段: 有发话时刻就读到它之前 (问话可以离尾巴很远), 没有 (老调用) 退回最近 80 条。 */
|
|
460
|
+
const askWindow = (jsonlPath, sinceMs, pingSigs) => sinceMs > 0 ? turnsSince(jsonlPath, sinceMs - ASK_SLACK_MS, pingSigs) : talkTurns(jsonlPath, 80, pingSigs, true, true);
|
|
455
461
|
export const replyToPeer = (jsonlPath, fromName, sinceMs = 0, pingSigs = [], turn) => {
|
|
456
|
-
const r = answerOf(
|
|
462
|
+
const r = answerOf(askWindow(jsonlPath, sinceMs, pingSigs), fromName, sinceMs, turn);
|
|
457
463
|
return r && { text: r.text, ...(r.error ? { error: true } : {}) };
|
|
458
464
|
};
|
|
459
465
|
/** 交接那一刻, `from` 那一句在旧会话里**收口**了没有 —— 比 replyToPeer 再严一档。
|
|
@@ -462,7 +468,7 @@ export const replyToPeer = (jsonlPath, fromName, sinceMs = 0, pingSigs = [], tur
|
|
|
462
468
|
* 不是答案。所以只认在 `untilMs` 之前就被下一句 user 行关上的那一轮: 问话那一轮
|
|
463
469
|
* 还开着 (就是交接这一轮) → "", 这份回执的义务跟着简报转进新会话。三态同 replyToPeer。 */
|
|
464
470
|
export const replyClosedBefore = (jsonlPath, fromName, sinceMs, untilMs, pingSigs = [], turn) => {
|
|
465
|
-
const r = answerOf(
|
|
471
|
+
const r = answerOf(askWindow(jsonlPath, sinceMs, pingSigs), fromName, sinceMs, turn);
|
|
466
472
|
return r && (r.closedAt !== undefined && r.closedAt < untilMs && !r.error ? r.text : "");
|
|
467
473
|
};
|
|
468
474
|
/** 这一行是在续上一轮 (报错之后没有信封的 `continue` / 「继续」), 不起新的一轮。 */
|
|
@@ -470,6 +476,9 @@ const resumesAt = (ts, i) => !!ts[i - 1]?.apiError && !ts[i].env && !ts[i].notic
|
|
|
470
476
|
/** 开最近这一轮的那句 user 行 (`marks` 读出来的 turns): 排队吃进的、后台通知、报错后的
|
|
471
477
|
* 续跑都不算 —— 它们不起新的一轮, 这一轮是谁发起的要看再往前那一句。 */
|
|
472
478
|
export const openingOf = (ts) => ts.filter((t, i) => t.role === "user" && !t.queued && !t.notice && !resumesAt(ts, i)).at(-1);
|
|
479
|
+
/** 开最近这一轮的那句 user 行, 往回读到有为止 (不受 TAIL_BYTES_MAX 限制) —— 一轮再长,
|
|
480
|
+
* 「这一轮是谁发起的」也要认得出 (父 k、链头、打断会不会误伤别人的活都靠它)。 */
|
|
481
|
+
export const openingTurn = (jsonlPath, pingSigs = []) => openingOf(withoutKeepalive(readTailUntil(jsonlPath, (raw) => parseTurns(jsonlPath, raw, false, true), (ts) => !!openingOf(withoutKeepalive(ts, pingSigs)), Infinity), pingSigs));
|
|
473
482
|
const answerOf = (ts, fromName, sinceMs, turn) => {
|
|
474
483
|
const lastAsk = (hit) => ts.reduce((at, t, i) => (t.role === "user" && t.env && hit(t.env) && (!t.ms || t.ms >= sinceMs - ASK_SLACK_MS) ? i : at), -1);
|
|
475
484
|
const byTurn = turn ? lastAsk((e) => !e.receipt && e.turn === turn) : -1;
|
|
@@ -566,12 +575,17 @@ export const renderReceiptEnvelope = (from, chat, job, status = "done", turn, ro
|
|
|
566
575
|
...(turn ? [`这件活是 \`${turn}\`: 要就它追问、补充, 用 \`tell_peer({name: "${from}", re: "${turn}"})\` —— 沿用同一个频道, 工单还开着就沿用工单。`] : []),
|
|
567
576
|
// 「齐了吗」是守护进程数的, 不让模型在上下文里自己数 —— 异步回执是 N 个独立
|
|
568
577
|
// 的轮次陆续进来的, 数错一个就会提前收口或者永远等。
|
|
569
|
-
...(job && job.job && status !== "need"
|
|
578
|
+
...(job && job.job && status !== "need" && !(job.req && status === "error")
|
|
570
579
|
? job.closed
|
|
571
580
|
? [`工单 \`${job.job}\` 已经收工 (close_job 过了), 这一份是收工之后才到的: 不必再 close_job, 也不计入那次汇总${status === "done" && !route?.replyTo ? " —— 这段结论还有用, 就自己补一句交代 (notify 给人 / 回给上游)" : ""}。`]
|
|
572
|
-
: job.
|
|
573
|
-
|
|
574
|
-
|
|
581
|
+
: job.req
|
|
582
|
+
// 需求根单: 不走「汇总 → close_job」—— 关单 = 归档, 要等人验收。
|
|
583
|
+
? [status === "done"
|
|
584
|
+
? `这是需求根单 \`${job.job}\` 的交付: lead 交差了。向人交代结果后**别 close_job**, 等人验收 —— 认可 → \`close_job({job: "${job.job}"})\` 归档并回收 lead; 说不对 → \`tell_peer({name: "${from}", re: "${turn}", job: "${job.job}"})\` 返工 (同一张单)。对人别提单号。`
|
|
585
|
+
: `这是需求根单 \`${job.job}\`, 但 lead 没交差 (${status}): 向人说明卡在哪。lead 还在 → \`tell_peer({name: "${from}", re: "${turn}", job: "${job.job}"})\` 叫它续; 否则 \`close_job({job: "${job.job}"})\` 关掉, 需要的话重新 \`dispatch({lead:true})\` 开新单。对人别提单号。`]
|
|
586
|
+
: job.done >= job.total
|
|
587
|
+
? [`这是工单 \`${job.job}\` 的**最后一份** (${job.done}/${job.total}, 全部到齐): 现在可以汇总收口了 —— close_job(summary) 留档并回收临时分身 (不发群); 给人的结论就是你这一轮的最后一条消息, 用你自己的话写${route?.replyTo && !route.replyTo.startsWith(".") ? " —— 它会进群" : ""}。`]
|
|
588
|
+
: [`这是工单 \`${job.job}\` 的第 ${job.done}/${job.total} 份, **还差 ${job.total - job.done} 份**: 先把这一份记住 (或落到文件里), 不要现在汇总、也不要向人汇报进度; 等最后一份到了会明确告诉你「全部到齐」。`]
|
|
575
589
|
: []),
|
|
576
590
|
]);
|
|
577
591
|
const FAILED = {
|
|
@@ -640,6 +654,41 @@ const pickCacheTtl = (jsonlPath, raw) => {
|
|
|
640
654
|
}
|
|
641
655
|
return 0;
|
|
642
656
|
};
|
|
657
|
+
/** When this session's prompt cache was last touched: the START of its newest answered
|
|
658
|
+
* API request (= the user / tool_result row it was sent after), since TTL runs from
|
|
659
|
+
* the start of the request that reads or writes the entry. File mtime marks the
|
|
660
|
+
* END — a minute later at p99, several on a long generation — and also moves on
|
|
661
|
+
* metadata rows that touch no cache. Synthetic replies (`<synthetic>`, all-zero
|
|
662
|
+
* usage) sent nothing. A request still in flight is not counted (its user row may be a
|
|
663
|
+
* local command that sends nothing) — older = colder, the safe side.
|
|
664
|
+
* 0 = no request on record — the caller falls back to mtime. */
|
|
665
|
+
export const cacheTouchMs = (jsonlPath) => readTailUntil(jsonlPath, (raw) => pickCacheTouch(jsonlPath, raw), (v) => v > 0);
|
|
666
|
+
const pickCacheTouch = (jsonlPath, raw) => {
|
|
667
|
+
const normalize = backendForPath(jsonlPath).normalizeTranscriptLine;
|
|
668
|
+
return raw.split("\n").reduce((acc, line) => {
|
|
669
|
+
let parsed;
|
|
670
|
+
try {
|
|
671
|
+
parsed = JSON.parse(line);
|
|
672
|
+
}
|
|
673
|
+
catch {
|
|
674
|
+
return acc;
|
|
675
|
+
}
|
|
676
|
+
const row = normalize(parsed);
|
|
677
|
+
if (!row || row.isSidechain)
|
|
678
|
+
return acc;
|
|
679
|
+
const ms = stampMs(parsed.timestamp);
|
|
680
|
+
if (row.type === "user")
|
|
681
|
+
return ms ? { ...acc, sentAt: ms } : acc;
|
|
682
|
+
const u = row.type === "assistant" ? row.message?.usage : undefined;
|
|
683
|
+
const sent = (u?.input_tokens ?? 0) + (u?.cache_read_input_tokens ?? 0) + (u?.cache_creation_input_tokens ?? 0) > 0;
|
|
684
|
+
return sent ? { ...acc, touch: acc.sentAt || ms } : acc;
|
|
685
|
+
}, { sentAt: 0, touch: 0 }).touch;
|
|
686
|
+
};
|
|
687
|
+
/** A row's `timestamp` as epoch ms (Claude: ISO string, CodeBuddy: number); 0 if absent / unparsable. */
|
|
688
|
+
const stampMs = (ts) => {
|
|
689
|
+
const ms = typeof ts === "number" ? ts : Date.parse(String(ts ?? ""));
|
|
690
|
+
return Number.isNaN(ms) ? 0 : ms;
|
|
691
|
+
};
|
|
643
692
|
/** 这段上下文里读过 / 改过的文件 (旧的在前、去重, 同一文件按最后一次碰它的位置排)。
|
|
644
693
|
*
|
|
645
694
|
* 「它的上下文里装着什么」是可以算出来的事实: 从文件尾往回, 撞上 compact 边界就停
|
|
@@ -739,8 +788,8 @@ const lastToolMs = (jsonlPath) => {
|
|
|
739
788
|
return m;
|
|
740
789
|
const content = row.message?.content;
|
|
741
790
|
const tooly = Array.isArray(content) && content.some((b) => /^tool_(use|result)$/.test(b?.type ?? ""));
|
|
742
|
-
const ms =
|
|
743
|
-
return tooly &&
|
|
791
|
+
const ms = stampMs(parsed.timestamp);
|
|
792
|
+
return tooly && ms ? Math.max(m, ms) : m;
|
|
744
793
|
}
|
|
745
794
|
catch {
|
|
746
795
|
return m;
|
|
@@ -775,64 +824,29 @@ export const paneIsBusy = (paneText) => stripAnsi(paneText)
|
|
|
775
824
|
.filter(Boolean)
|
|
776
825
|
.slice(-FOOTER_ROWS)
|
|
777
826
|
.some((l) => BUSY_MARKERS.some((re) => re.test(l)));
|
|
778
|
-
const stallRows = (jsonlPath) => {
|
|
779
|
-
const normalize = backendForPath(jsonlPath).normalizeTranscriptLine;
|
|
780
|
-
return readTailBytes(jsonlPath, TAIL_BYTES)
|
|
781
|
-
.split("\n")
|
|
782
|
-
.flatMap((line) => {
|
|
783
|
-
if (!line.trim())
|
|
784
|
-
return [];
|
|
785
|
-
try {
|
|
786
|
-
const parsed = JSON.parse(line);
|
|
787
|
-
const row = normalize(parsed);
|
|
788
|
-
const role = row?.message?.role;
|
|
789
|
-
if (!row || row.isMeta || row.isSidechain || (role !== "user" && role !== "assistant"))
|
|
790
|
-
return [];
|
|
791
|
-
const content = row.message?.content;
|
|
792
|
-
const blocks = Array.isArray(content) ? content : [];
|
|
793
|
-
const ms = typeof parsed.timestamp === "number" ? parsed.timestamp : Date.parse(String(parsed.timestamp ?? ""));
|
|
794
|
-
return [{
|
|
795
|
-
role, ms: Number.isNaN(ms) ? 0 : ms,
|
|
796
|
-
apiError: parsed.isApiErrorMessage === true,
|
|
797
|
-
toolResult: blocks.length > 0 && blocks.every((b) => b?.type === "tool_result"),
|
|
798
|
-
text: stripMeta(blockText(content)).trim(),
|
|
799
|
-
}];
|
|
800
|
-
}
|
|
801
|
-
catch {
|
|
802
|
-
return [];
|
|
803
|
-
} // truncated first line of the tail window
|
|
804
|
-
});
|
|
805
|
-
};
|
|
806
|
-
export const transcriptStalled = (jsonlPath, pingSigs, quietMs, now = Date.now()) => {
|
|
807
|
-
const rows = stallRows(jsonlPath);
|
|
808
|
-
const last = rows.at(-1);
|
|
809
|
-
if (!last || !last.ms || now - last.ms < quietMs)
|
|
810
|
-
return false;
|
|
811
|
-
if (last.toolResult)
|
|
812
|
-
return true;
|
|
813
|
-
if (!(last.role === "assistant" && last.apiError))
|
|
814
|
-
return false;
|
|
815
|
-
if (/\/login\b|log(ged)? ?in|auth/i.test(last.text))
|
|
816
|
-
return false;
|
|
817
|
-
const opener = [...rows].reverse().find((r) => r.role === "user" && !r.toolResult);
|
|
818
|
-
return !!opener && !isKeepalivePingText(opener.text, pingSigs);
|
|
819
|
-
};
|
|
820
827
|
/** Machinery, not conversation: the `<system-reminder>` wrapper is the same
|
|
821
828
|
* marker the mirror's meta-stripper and `tailTurns` already drop, so the hint
|
|
822
829
|
* reaches the agent's context without leaking into WeCom bubbles or peer
|
|
823
|
-
* summaries.
|
|
824
|
-
|
|
830
|
+
* summaries. A wizard already introduced within the recent injections (`seen`)
|
|
831
|
+
* only gets its name re-listed — the full row is still in context; the usage
|
|
832
|
+
* rule rides along only when the window has none. `cwd` = the recipient's own
|
|
833
|
+
* workspace: a peer working in the same one doesn't repeat it. */
|
|
834
|
+
export const peerMentionPart = (mentions, cwd = "") => (seen) => {
|
|
825
835
|
if (mentions.length === 0)
|
|
826
|
-
return "";
|
|
827
|
-
const
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
"
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
836
|
+
return { text: "", keys: [] };
|
|
837
|
+
const fresh = mentions.filter((m) => !seen(`m:.${m.tag}`));
|
|
838
|
+
const known = mentions.filter((m) => seen(`m:.${m.tag}`));
|
|
839
|
+
const rule = !seen("rule:mention");
|
|
840
|
+
const row = (m) => `- .${m.tag}${m.job ? ` job="${clipLine(m.job, 80).replace(/"/g, "'")}"` : ""}${m.foreign ? ` chat=${m.chat || "(other)"}` : ""}${m.cwd && m.cwd !== cwd ? ` cwd=${tildePath(m.cwd)}` : ""}`;
|
|
841
|
+
return {
|
|
842
|
+
text: renderReminder({ wezard: "mention", names: mentions.map((m) => `.${m.tag}`).join(" ") }, [
|
|
843
|
+
...(rule
|
|
844
|
+
? ["`.name` tokens above are live wizards, not literal text. To involve / check / relay to one: tell_peer · peek_peer · wait_peer(name) — never answer for it; wizard_roster for all. A passing mention needs no tool."]
|
|
845
|
+
: []),
|
|
846
|
+
...fresh.map(row),
|
|
847
|
+
...(known.length ? [`${known.map((m) => `.${m.tag}`).join(" ")}: wizards (described earlier)`] : []),
|
|
848
|
+
]),
|
|
849
|
+
keys: [...(rule ? ["rule:mention"] : []), ...fresh.map((m) => `m:.${m.tag}`)],
|
|
850
|
+
};
|
|
837
851
|
};
|
|
838
852
|
//# sourceMappingURL=peers.js.map
|