wezard 2.0.3 → 2.0.5
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 +1 -1
- package/README.md +119 -291
- package/dist/daemon/cc-session.js +2 -0
- package/dist/daemon/cc-session.js.map +1 -1
- package/dist/daemon/inbound.js +25 -34
- package/dist/daemon/inbound.js.map +1 -1
- package/dist/daemon/index.js +75 -21
- package/dist/daemon/index.js.map +1 -1
- package/dist/daemon/mirror-bridge.js +122 -31
- package/dist/daemon/mirror-bridge.js.map +1 -1
- package/dist/daemon/model-select.js +173 -61
- package/dist/daemon/model-select.js.map +1 -1
- package/dist/daemon/peers.js +65 -8
- package/dist/daemon/peers.js.map +1 -1
- package/dist/daemon/spawn-tmux.js +16 -4
- package/dist/daemon/spawn-tmux.js.map +1 -1
- package/dist/daemon/wizard.js +16 -4
- package/dist/daemon/wizard.js.map +1 -1
- package/dist/mcp/server.js +21 -7
- package/dist/mcp/server.js.map +1 -1
- package/dist/shared/detail-render.js +87 -265
- package/dist/shared/detail-render.js.map +1 -1
- package/dist/shared/role-view.js +9 -4
- package/dist/shared/role-view.js.map +1 -1
- package/package.json +1 -1
- package/web/chat.css +44 -68
- package/web/chat.js +25 -21
|
@@ -1,74 +1,186 @@
|
|
|
1
|
+
import { isModalPane } from "../shared/modal-pane.js";
|
|
1
2
|
import { sleep } from "../shared/std.js";
|
|
2
3
|
import { runTmux } from "./spawn-tmux.js";
|
|
3
|
-
const
|
|
4
|
+
const POLL_MS = 200;
|
|
5
|
+
const OPEN_TIMEOUT_MS = 6000;
|
|
6
|
+
const SETTLE_TIMEOUT_MS = 8000;
|
|
7
|
+
const CLOSE_TIMEOUT_MS = 3000;
|
|
4
8
|
const ARROW_STEP_MS = 350; // faster repeats get dropped/coalesced by the TUI — this is the empirically-verified floor
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
//
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
9
|
+
const MAX_STEPS = 60; // > any plausible catalog size, even with a few dropped arrows
|
|
10
|
+
const HEADER_RE = /^\s*Select model\s*$/u;
|
|
11
|
+
const FOOTER_RE = /Esc to cancel/u;
|
|
12
|
+
const SESSION_ONLY_RE = /\bs to use this session only/u;
|
|
13
|
+
// " ❯ 2. Opus 5.5 ✔ For complex work and everyday tasks" and its
|
|
14
|
+
// scrolled-window siblings ("↑ 3. …" / "↓ 10. …"): mark, number, label,
|
|
15
|
+
// current-model tick, description.
|
|
16
|
+
const ROW_RE = /^\s*([❯>↑↓])?\s*(\d+)\.\s+(.+?)(?:\s+(✔))?(?:\s{2,}(.*))?$/u;
|
|
17
|
+
const MORE_RE = /^\s*…\s*\+\d+\s+models?\b/u;
|
|
18
|
+
// Switching away from a model the conversation is cached on asks once more:
|
|
19
|
+
// "Switch model? … ❯ 1. Yes, switch to X / 2. No, go back".
|
|
20
|
+
const CONFIRM_RE = /^\s*Switch model\?\s*$/u;
|
|
21
|
+
const CONFIRM_LAST_RE = /^\s*[❯>]?\s*2\.\s+No\b/u;
|
|
22
|
+
const READBACK_RE = /(?:Set model to|Kept model as) .+/u;
|
|
23
|
+
const SESSION_RECEIPT_RE = /for this session only/u;
|
|
24
|
+
const linesOf = (screen) => screen.split("\n").map((l) => l.trimEnd()).filter(Boolean);
|
|
25
|
+
/** The picker as it stands on screen, or undefined when it isn't open. A real
|
|
26
|
+
* picker always hugs the bottom of the screen — its footer is the last line.
|
|
27
|
+
* The same text merely printed into the transcript (a tool result quoting a
|
|
28
|
+
* pane) is always followed by the input box, and must never be mistaken for
|
|
29
|
+
* one: we'd arrow through the input history and Esc a running turn. */
|
|
30
|
+
export const parseFrame = (screen) => {
|
|
31
|
+
const lines = linesOf(screen);
|
|
32
|
+
const head = lines.map((l) => HEADER_RE.test(l)).lastIndexOf(true);
|
|
33
|
+
const foot = lines.at(-1) ?? "";
|
|
34
|
+
if (head < 0 || !FOOTER_RE.test(foot))
|
|
35
|
+
return undefined;
|
|
36
|
+
const body = lines.slice(head + 1);
|
|
37
|
+
const hits = body.map((l) => ROW_RE.exec(l)).filter((m) => !!m);
|
|
38
|
+
return {
|
|
39
|
+
rows: hits.map((m) => ({ n: Number(m[2]), label: m[3].trim(), desc: (m[5] ?? "").trim(), current: !!m[4] })),
|
|
40
|
+
cursor: Number(hits.find((m) => m[1] === "❯" || m[1] === ">")?.[2] ?? 0),
|
|
41
|
+
bottom: !body.some((l) => MORE_RE.test(l)) && !hits.some((m) => m[1] === "↓"),
|
|
42
|
+
sessionOnly: SESSION_ONLY_RE.test(foot),
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
const isConfirm = (screen) => {
|
|
46
|
+
const lines = linesOf(screen);
|
|
47
|
+
return CONFIRM_LAST_RE.test(lines.at(-1) ?? "") && lines.some((l) => CONFIRM_RE.test(l));
|
|
48
|
+
};
|
|
49
|
+
const readbacks = (screen) => linesOf(screen).flatMap((l) => READBACK_RE.exec(l)?.[0].trim() ?? []);
|
|
50
|
+
const familyOf = (s) => (/[a-z]+/iu.exec(s)?.[0] ?? "").toLowerCase();
|
|
51
|
+
// "claude-haiku-4-5-20251001" → "4.5", "Opus 5.5" → "5.5", "opus[1m]" → "".
|
|
52
|
+
const versionOf = (s) => (/\d+(?:[.-]\d+)*/u.exec(s.replace(/-\d{8}\b/u, "").replace(/\[?1m\]?/giu, ""))?.[0] ?? "").replace(/-/gu, ".");
|
|
53
|
+
// exact > same line ("5" ↔ "5.5") > no version asked > the numerically nearest.
|
|
54
|
+
const versionFit = (want, have) => {
|
|
55
|
+
if (!want)
|
|
56
|
+
return 1;
|
|
57
|
+
if (want === have)
|
|
58
|
+
return 3;
|
|
59
|
+
if (have.startsWith(`${want}.`) || (have && want.startsWith(`${have}.`)))
|
|
60
|
+
return 2;
|
|
61
|
+
const d = Math.abs(Number.parseFloat(want) - Number.parseFloat(have));
|
|
62
|
+
return Number.isNaN(d) ? 0 : -d;
|
|
16
63
|
};
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
64
|
+
/** The row closest to a colloquial request: the family word has to be there
|
|
65
|
+
* ("opus" / "haiku" / "default" / "默认"), the version only ranks. Ties go to
|
|
66
|
+
* the earlier row — the picker lists each family newest first, which is what
|
|
67
|
+
* makes a bare "opus" (or "最新的 opus") land on the latest one. */
|
|
68
|
+
export const closestModel = (rows, wanted) => {
|
|
69
|
+
const want = wanted.toLowerCase();
|
|
70
|
+
const words = new Set([...(want.match(/[a-z]+/gu) ?? []), ...(/默认/u.test(want) ? ["default"] : [])]);
|
|
71
|
+
const ver = versionOf(want);
|
|
72
|
+
const fit = (r) => versionFit(ver, versionOf(r.label));
|
|
73
|
+
return rows
|
|
74
|
+
.filter((r) => words.has(familyOf(r.label)))
|
|
75
|
+
.reduce((best, r) => (!best || fit(r) > fit(best) ? r : best), undefined);
|
|
21
76
|
};
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
await sleep(
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
for (const line of cap.split("\n")) {
|
|
33
|
-
const m = CATALOG_ROW_RE.exec(line);
|
|
34
|
-
if (m)
|
|
35
|
-
seen.set(Number(m[1]), m[2]);
|
|
36
|
-
}
|
|
37
|
-
await runTmux(["send-keys", "-t", pane, "Down"]);
|
|
38
|
-
await sleep(ARROW_STEP_MS);
|
|
77
|
+
const screen = async (pane) => {
|
|
78
|
+
const r = await runTmux(["capture-pane", "-t", pane, "-p"]);
|
|
79
|
+
return r.ok ? r.stdout : "";
|
|
80
|
+
};
|
|
81
|
+
const key = (pane, k) => runTmux(["send-keys", "-t", pane, k]);
|
|
82
|
+
const until = async (probe, timeoutMs) => {
|
|
83
|
+
for (const deadline = Date.now() + timeoutMs; Date.now() < deadline; await sleep(POLL_MS)) {
|
|
84
|
+
const v = await probe();
|
|
85
|
+
if (v !== undefined)
|
|
86
|
+
return v;
|
|
39
87
|
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
88
|
+
return undefined;
|
|
89
|
+
};
|
|
90
|
+
// The window shows ~10 rows of a longer list. Walking UP reaches the far end
|
|
91
|
+
// in the fewest steps: from the current model (near the top) it hits row 1,
|
|
92
|
+
// then wraps straight onto the last window.
|
|
93
|
+
const readCatalog = async (pane, seen = new Map(), bottom = false, left = MAX_STEPS) => {
|
|
94
|
+
const f = parseFrame(await screen(pane));
|
|
95
|
+
const all = new Map([...seen, ...(f?.rows ?? []).map((r) => [r.n, r])]);
|
|
96
|
+
const sawBottom = bottom || !!f?.bottom;
|
|
97
|
+
// Numbers are 1..N, so "as many rows as the highest number" = no gap.
|
|
98
|
+
const complete = sawBottom && all.size === Math.max(0, ...all.keys());
|
|
99
|
+
if (!f?.rows.length || complete || left <= 0)
|
|
100
|
+
return [...all.values()].sort((a, b) => a.n - b.n);
|
|
101
|
+
await key(pane, "Up");
|
|
102
|
+
await sleep(ARROW_STEP_MS);
|
|
103
|
+
return readCatalog(pane, all, sawBottom, left - 1);
|
|
45
104
|
};
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
105
|
+
// One arrow at a time, re-reading the cursor after each: a dropped key costs
|
|
106
|
+
// one more step instead of a wrong model. The list wraps, so when the cursor
|
|
107
|
+
// sits on a row whose mark is hidden (cursor 0) any direction still gets there.
|
|
108
|
+
const moveTo = async (pane, n, left = MAX_STEPS) => {
|
|
109
|
+
const f = parseFrame(await screen(pane));
|
|
110
|
+
if (!f || f.cursor === n)
|
|
111
|
+
return f;
|
|
112
|
+
if (left <= 0)
|
|
113
|
+
return undefined;
|
|
114
|
+
await key(pane, f.cursor && n < f.cursor ? "Up" : "Down");
|
|
115
|
+
await sleep(ARROW_STEP_MS);
|
|
116
|
+
return moveTo(pane, n, left - 1);
|
|
117
|
+
};
|
|
118
|
+
// Esc is only safe while the picker is what's on screen — in a pane that is
|
|
119
|
+
// mid-turn, a stray Esc interrupts the turn. Returns once it is really gone,
|
|
120
|
+
// so whatever is typed into the pane next doesn't land in the picker.
|
|
121
|
+
const closePicker = async (pane) => {
|
|
122
|
+
if (!parseFrame(await screen(pane)))
|
|
123
|
+
return;
|
|
124
|
+
await key(pane, "Escape");
|
|
125
|
+
await until(async () => (parseFrame(await screen(pane)) ? undefined : true), CLOSE_TIMEOUT_MS);
|
|
126
|
+
};
|
|
127
|
+
// After the select key: answer the cache-warning confirm if it comes up, then
|
|
128
|
+
// wait for the picker to be gone and a receipt that wasn't there before.
|
|
129
|
+
const settle = (pane, before) => until(async () => {
|
|
130
|
+
const s = await screen(pane);
|
|
131
|
+
if (isConfirm(s)) {
|
|
132
|
+
await key(pane, "Enter");
|
|
133
|
+
await sleep(800);
|
|
134
|
+
return undefined;
|
|
135
|
+
}
|
|
136
|
+
if (parseFrame(s))
|
|
137
|
+
return undefined;
|
|
138
|
+
const rbs = readbacks(s);
|
|
139
|
+
return rbs.length && rbs.join("\n") !== before ? rbs.at(-1) : undefined;
|
|
140
|
+
}, SETTLE_TIMEOUT_MS);
|
|
141
|
+
/** Puts the pane on the model closest to `wanted` by driving its `/model`
|
|
142
|
+
* picker. Works on a pane that is mid-turn (the picker opens over a running
|
|
143
|
+
* turn), which is what lets a wizard switch itself. Never throws: a failed
|
|
144
|
+
* resolution leaves the pane on whatever model it already had. */
|
|
145
|
+
export const selectModel = async (pane, wanted, log, scope = "session") => {
|
|
51
146
|
const want = wanted.trim();
|
|
52
147
|
if (!want || !pane)
|
|
53
148
|
return { ok: true };
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
149
|
+
const start = await screen(pane);
|
|
150
|
+
// Typed into a permission confirm, "/model⏎" would answer it.
|
|
151
|
+
if (isModalPane(start).modal)
|
|
152
|
+
return { ok: false, reason: "pane 正停在一个确认框上, 这时敲 /model 会按到它 —— 等它过去再切" };
|
|
153
|
+
await runTmux(["send-keys", "-t", pane, "-l", "/model"]);
|
|
154
|
+
await sleep(150);
|
|
155
|
+
await key(pane, "Enter");
|
|
156
|
+
if (!(await until(async () => parseFrame(await screen(pane)), OPEN_TIMEOUT_MS))) {
|
|
157
|
+
log.warn({ pane, wanted: want, tail: (await screen(pane)).slice(-300) }, "model-select: picker never opened");
|
|
158
|
+
return { ok: false, reason: "/model 的模型列表没有出现" };
|
|
159
|
+
}
|
|
160
|
+
const rows = await readCatalog(pane);
|
|
161
|
+
const catalog = rows.map((r) => r.label);
|
|
162
|
+
const row = closestModel(rows, want);
|
|
163
|
+
log.info({ pane, wanted: want, scope, catalog, match: row?.label }, "model-select: read live catalog");
|
|
164
|
+
if (!row) {
|
|
165
|
+
await closePicker(pane);
|
|
166
|
+
return { ok: false, catalog, reason: `'${want}' 对不上列表里的任何模型 (${catalog.join(" / ") || "读取失败"})` };
|
|
167
|
+
}
|
|
168
|
+
// Already on it: nothing to do for this session — but making it the default
|
|
169
|
+
// still takes the Enter.
|
|
170
|
+
if (row.current && scope === "session") {
|
|
171
|
+
await closePicker(pane);
|
|
172
|
+
return { ok: true, applied: row.label, scope, catalog };
|
|
173
|
+
}
|
|
174
|
+
const at = await moveTo(pane, row.n);
|
|
175
|
+
if (!at) {
|
|
176
|
+
await closePicker(pane);
|
|
177
|
+
return { ok: false, catalog, reason: `光标没能停到 '${row.label}' 上` };
|
|
60
178
|
}
|
|
61
|
-
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
.
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
return { ok: false, reason: `'${want}' 不匹配任何已知模型 (当前目录: ${keywords.join(", ") || "读取失败"})` };
|
|
68
|
-
const second = await sendModelArg(pane, match);
|
|
69
|
-
if (SET_OK_RE.test(second))
|
|
70
|
-
return { ok: true, applied: match };
|
|
71
|
-
log.warn({ pane, wanted: want, match, tail: second.slice(-300) }, "model-select: retry with discovered keyword also failed");
|
|
72
|
-
return { ok: false, reason: `按目录匹配到 '${match}' 后仍未生效` };
|
|
179
|
+
await key(pane, scope === "session" && at.sessionOnly ? "s" : "Enter");
|
|
180
|
+
const receipt = await settle(pane, readbacks(start).join("\n"));
|
|
181
|
+
if (receipt?.startsWith("Set model to"))
|
|
182
|
+
return { ok: true, applied: row.label, scope: SESSION_RECEIPT_RE.test(receipt) ? "session" : "default", catalog };
|
|
183
|
+
log.warn({ pane, wanted: want, match: row.label, receipt, tail: (await screen(pane)).slice(-300) }, "model-select: selection did not land");
|
|
184
|
+
return { ok: false, catalog, reason: receipt ? `选中 '${row.label}' 后没有切换: ${receipt}` : `选中 '${row.label}' 后没等到回执` };
|
|
73
185
|
};
|
|
74
186
|
//# sourceMappingURL=model-select.js.map
|
|
@@ -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/peers.js
CHANGED
|
@@ -71,6 +71,12 @@ const readTailUntil = (jsonlPath, parse, enough) => {
|
|
|
71
71
|
// Meta wrappers Claude Code injects around slash commands / hook output. They
|
|
72
72
|
// are machinery, not conversation — drop them before any summary or handoff.
|
|
73
73
|
const META_RE = /<(system-reminder|command-[^>]*|local-command-[^>]*|task-notification)>[\s\S]*?<\/\1>/g;
|
|
74
|
+
// Claude Code (2.1.27x+) 把折叠成 `[Pasted text #N]` 的粘贴在 transcript 里包成
|
|
75
|
+
// `<pasted_content id="…">…</pasted_content id="…">`。wezard 的注入走 tmux paste, 所以
|
|
76
|
+
// **每一条多行注入** (人在企微里说的、同伴派的、定时任务放的) 落盘时都带着这层壳。
|
|
77
|
+
// 壳是传输的产物不是内容: 只剥标签, 里面的话原样留下。
|
|
78
|
+
const PASTED_TAG_RE = /<pasted_content id="[^"]*">\n?|\n?<\/pasted_content(?:\s+id="[^"]*")?>/g;
|
|
79
|
+
export const unwrapPasted = (s) => s.replace(PASTED_TAG_RE, "");
|
|
74
80
|
const blockText = (content) => {
|
|
75
81
|
if (typeof content === "string")
|
|
76
82
|
return content;
|
|
@@ -83,9 +89,11 @@ const blockText = (content) => {
|
|
|
83
89
|
};
|
|
84
90
|
/** Last `n` user/assistant turns of a transcript, oldest first. Backend-agnostic:
|
|
85
91
|
* the line shape is normalized through the owning CLI's dialect adapter. */
|
|
86
|
-
export const tailTurns = (jsonlPath, n = 3) => readTailUntil(jsonlPath, (raw) => parseTurns(jsonlPath, raw), (ts) => ts.length >= n).slice(-n);
|
|
87
|
-
/** 纯解析: 一段 transcript 原文 →
|
|
88
|
-
|
|
92
|
+
export const tailTurns = (jsonlPath, n = 3, keepLines = false) => readTailUntil(jsonlPath, (raw) => parseTurns(jsonlPath, raw, keepLines), (ts) => ts.length >= n).slice(-n);
|
|
93
|
+
/** 纯解析: 一段 transcript 原文 → 里面的对话轮次。`keepLines` 保留换行 —— 摘要与
|
|
94
|
+
* 预览要压成一行, 但交给另一个 wizard 读的回复不能: 表格 / 列表 / 代码块压成一行
|
|
95
|
+
* 之后对模型就是一团字。 */
|
|
96
|
+
const parseTurns = (jsonlPath, raw, keepLines = false) => {
|
|
89
97
|
if (!raw)
|
|
90
98
|
return [];
|
|
91
99
|
const normalize = backendForPath(jsonlPath).normalizeTranscriptLine;
|
|
@@ -114,7 +122,8 @@ const parseTurns = (jsonlPath, raw) => {
|
|
|
114
122
|
const role = row.message?.role;
|
|
115
123
|
if (role !== "user" && role !== "assistant")
|
|
116
124
|
return [];
|
|
117
|
-
const
|
|
125
|
+
const bare = unwrapPasted(blockText(row.message?.content)).replace(META_RE, "");
|
|
126
|
+
const text = (keepLines ? bare : bare.replace(/\s+/g, " ")).trim();
|
|
118
127
|
// Claude writes ISO timestamp strings; CodeBuddy writes epoch-ms NUMBERS.
|
|
119
128
|
// Date.parse(number) coerces to a bare digit-string and returns NaN —
|
|
120
129
|
// which silently stamped every CodeBuddy turn ms=0, degraded
|
|
@@ -166,6 +175,17 @@ export const keepalivePingSigs = (...pings) => pings.map((p) => normPing(p).slic
|
|
|
166
175
|
* the bare "ping" legacy streak form still present in older transcripts. */
|
|
167
176
|
export const isKeepalivePingText = (text, sigs) => normPing(text).toLowerCase() === "ping" ||
|
|
168
177
|
sigs.some((sig) => sig.length > 0 && normPing(text).includes(sig));
|
|
178
|
+
/** The keepalive ping this session's newest words answer: the text of the LAST
|
|
179
|
+
* user turn when that turn is a ping, else undefined. Read from the transcript
|
|
180
|
+
* on purpose — "was a keepalive sent" must survive whatever forgot the
|
|
181
|
+
* in-memory swallow (a daemon reload lands between the ping and its pong, and
|
|
182
|
+
* the restored tail starts past the ping line). tool_result-only user lines
|
|
183
|
+
* carry no text and are not turns, so a ping answered through a tool call
|
|
184
|
+
* still reads as open. */
|
|
185
|
+
export const openKeepalivePing = (jsonlPath, pingSigs) => {
|
|
186
|
+
const last = tailTurns(jsonlPath, 8).filter((t) => t.role === "user").at(-1);
|
|
187
|
+
return last && isKeepalivePingText(last.text, pingSigs) ? last.text : undefined;
|
|
188
|
+
};
|
|
169
189
|
/** 纯解析: transcript 原文 → 条目 (文本含 tool_use/tool_result)。 */
|
|
170
190
|
const parseToolEntries = (jsonlPath, raw) => {
|
|
171
191
|
if (!raw)
|
|
@@ -193,7 +213,7 @@ const parseToolEntries = (jsonlPath, raw) => {
|
|
|
193
213
|
const role = row.message?.role;
|
|
194
214
|
if (role !== "user" && role !== "assistant")
|
|
195
215
|
return [];
|
|
196
|
-
const text = blockTextWithTools(row.message?.content).replace(META_RE, "").replace(/\s+/g, " ").trim();
|
|
216
|
+
const text = unwrapPasted(blockTextWithTools(row.message?.content)).replace(META_RE, "").replace(/\s+/g, " ").trim();
|
|
197
217
|
return text ? [{ role, text }] : [];
|
|
198
218
|
});
|
|
199
219
|
};
|
|
@@ -247,9 +267,9 @@ export const renderDialog = (turns, per = 800) => turns
|
|
|
247
267
|
* `RESULT: …`, 这里把它捞出来。取**最后一个**匹配 —— 中间复述过这个格式的那些
|
|
248
268
|
* 不算数。捞不到返回 "", 调用方退回整段 lastText, 所以不遵守约定也只是退化。 */
|
|
249
269
|
export const extractResult = (text, max = 800) => {
|
|
250
|
-
// 标记之后的**全部**内容, 而不是"那一行" ——
|
|
251
|
-
//
|
|
252
|
-
//
|
|
270
|
+
// 标记之后的**全部**内容, 而不是"那一行" —— 结论常常不止一行 (路径一行、说明
|
|
271
|
+
// 一行)。约定是收口在最后, 所以标记之后剩下的就是结论。取最后一个匹配: 模型常
|
|
272
|
+
// 先复述一遍格式要求再给答案。
|
|
253
273
|
const hits = [...text.matchAll(/(?:^|[\s>*|-])(?:RESULT|结论)\s*[::]\s*/gim)];
|
|
254
274
|
const last = hits[hits.length - 1];
|
|
255
275
|
return last ? text.slice((last.index ?? 0) + last[0].length).trim().slice(0, max) : "";
|
|
@@ -261,6 +281,43 @@ export const lastAssistantText = (jsonlPath, max = 4000) => {
|
|
|
261
281
|
const last = turns[turns.length - 1]?.text ?? "";
|
|
262
282
|
return last.length > max ? `${last.slice(0, max)}…` : last;
|
|
263
283
|
};
|
|
284
|
+
/** 掐中间: 来龙去脉在头、结论在尾, 超长时丢的该是中段。(从尾巴截会把收口那一行
|
|
285
|
+
* 截掉 —— 而那恰恰是对方最想读的。) */
|
|
286
|
+
export const clipMiddle = (s, max = 4000, head = Math.floor(max / 4)) => s.length <= max ? s : `${s.slice(0, head)}\n…(略 ${s.length - max} 字)…\n${s.slice(head - max)}`;
|
|
287
|
+
/** `sinceMs` 之后这个会话最新的一条回复, 全文、保留换行 —— wait_peer 的载荷。
|
|
288
|
+
*
|
|
289
|
+
* 「最后一条 assistant 文本」本身不带归属: 那句话没被接住、或者它停在一个等人点
|
|
290
|
+
* 的弹窗上时, 最后一条是**上一件事**的答案, 原样交回去就是拿旧结论冒充新结论。
|
|
291
|
+
* 发话时刻是最便宜的关联 id (A2A 的 taskId 在这里的等价物): 早于它的一律不算。
|
|
292
|
+
* 没有时间戳的行 (ms=0) 无从判断, 放行 —— 退化成旧行为, 而不是把回复吞掉。 */
|
|
293
|
+
export const lastReply = (jsonlPath, sinceMs = 0) => tailTurns(jsonlPath, 40, true)
|
|
294
|
+
.filter((t) => t.role === "assistant" && (!t.ms || t.ms >= sinceMs))
|
|
295
|
+
.at(-1)?.text ?? "";
|
|
296
|
+
// ── wizard → wizard 的信封 ────────────────────────────────────────────
|
|
297
|
+
// 同伴的话是原样落进输入框的, 而落进输入框的东西在模型眼里都是「用户说的」。没有
|
|
298
|
+
// 信封, 收件方分不清这一轮是人说的还是 wizard 说的、回复给谁看、该不该回话 ——
|
|
299
|
+
// 于是对着 wizard 寒暄、把过程 notify 进群、或者 send_peer 回去 (发话方正挂在
|
|
300
|
+
// wait_peer 上, 这一回会给它多排一轮, 两边就此乒乓)。信封把这三件事写在每一轮
|
|
301
|
+
// 自己身上: 宪章是出生时的快照, 正在跑的老 wizard 读不到新规矩, 这一段读得到。
|
|
302
|
+
// 与 mention hint / 名册增量同一个 `<system-reminder>` 壳 —— mirror 的 meta 剥离器
|
|
303
|
+
// 和 tailTurns 都会丢掉它, 不进气泡、不进 rolepage、不进 peek。
|
|
304
|
+
/** `from` = 发话方的称呼 (`.name`); `chat` 给了 = 公开轮 (那个群的名字, 可以是 ""),
|
|
305
|
+
* 不给 = 私聊。 */
|
|
306
|
+
export const renderPeerEnvelope = (from, chat) => [
|
|
307
|
+
"",
|
|
308
|
+
"<system-reminder>",
|
|
309
|
+
...(chat === undefined
|
|
310
|
+
? [
|
|
311
|
+
`这一轮是 wizard \`${from}\` 发来的**私聊**, 不是人说的: 人看不见这一轮, 读你回复的是 \`${from}\`。`,
|
|
312
|
+
`你这一轮的**最后一条消息**就是给它的回执 —— 它用 wait_peer 取, 所以不要再 send_peer 回它 (除非它明说干完通知它), 也不要为这一轮 notify。`,
|
|
313
|
+
"对 wizard 直说: 不寒暄、不加对人的称呼、不复述它的话; 结论收口成末尾的 `RESULT: …` (交付物写进文件就回传路径), 要它补信息也写在那里。",
|
|
314
|
+
]
|
|
315
|
+
: [
|
|
316
|
+
`这一轮是 wizard \`${from}\` 在群${chat ? ` **${chat}** ` : ""}里**公开**对你说的: 你的回复会直接发进那个群, 人和 \`${from}\` 都看得到。`,
|
|
317
|
+
`照对人说话的方式答; 不要再 send_peer 把同一段话回给 \`${from}\`。`,
|
|
318
|
+
]),
|
|
319
|
+
"</system-reminder>",
|
|
320
|
+
].join("\n");
|
|
264
321
|
/** Prompt-token size of the session's most recent turn: input + both cache
|
|
265
322
|
* tiers = how full the context window is, i.e. exactly what a cold cache would
|
|
266
323
|
* have to re-write at 1.25x. Read from the last assistant usage snapshot in
|
package/dist/daemon/peers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"peers.js","sourceRoot":"","sources":["../../daemon/peers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"peers.js","sourceRoot":"","sources":["../../daemon/peers.ts"],"names":[],"mappings":"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"}
|
|
@@ -69,7 +69,11 @@ export const setTmuxTimeoutReporter = (fn) => {
|
|
|
69
69
|
timeoutReporter = fn;
|
|
70
70
|
};
|
|
71
71
|
export const runTmux = (args, opts = {}) => new Promise((resolve) => {
|
|
72
|
-
|
|
72
|
+
// `-u`: launchd/systemd 起的 daemon 没有 LANG/LC_*, tmux 把这样的 client 当非
|
|
73
|
+
// UTF-8, 输出里的控制字符一律洗成 `_` —— `-F "#{pane_id}\t…"` 的 tab 也在其中,
|
|
74
|
+
// 于是按 tab 切的每一处 (boot 恢复的 pane 快照 / pane 漂移跟随 / pane 上限) 都认不出
|
|
75
|
+
// 任何 pane, 而在带 locale 的 dev shell 里一切正常。
|
|
76
|
+
const proc = spawn("tmux", ["-u", ...args], {
|
|
73
77
|
env: { ...process.env, PATH: augmentedPath(process.env.PATH) },
|
|
74
78
|
stdio: [opts.stdin === undefined ? "ignore" : "pipe", "pipe", "pipe"],
|
|
75
79
|
});
|
|
@@ -136,6 +140,9 @@ const MIN_SETTLE_MS = 1500;
|
|
|
136
140
|
const TUI_READY_TIMEOUT_MS = 15_000;
|
|
137
141
|
// Poll interval for capture-pane checks.
|
|
138
142
|
const POLL_MS = 400;
|
|
143
|
+
// 注册表判就绪只是读几个小 json, 不起 tmux —— 查得密一些, idle 一报就走
|
|
144
|
+
// (实测冷启动 2.6–2.9s 报 idle, 400ms 的粒度平均白等 0.2–0.3s)。
|
|
145
|
+
const REGISTRY_POLL_MS = 100;
|
|
139
146
|
// Patterns indicating the TUI reached interactive state (input box visible).
|
|
140
147
|
// Covers Claude Code, Claude Internal, and CodeBuddy TUIs across versions.
|
|
141
148
|
const TUI_READY_RE = /for shortcuts|auto mode|Try "|>\s*$/m;
|
|
@@ -161,8 +168,9 @@ const waitForTuiReady = async (pane, cmd, backend, log) => {
|
|
|
161
168
|
let retriedEnter = false;
|
|
162
169
|
let resent = false;
|
|
163
170
|
let sawSession = false;
|
|
171
|
+
let lastCap = 0;
|
|
164
172
|
while (Date.now() < deadline) {
|
|
165
|
-
await sleep(POLL_MS);
|
|
173
|
+
await sleep(registry ? REGISTRY_POLL_MS : POLL_MS);
|
|
166
174
|
if (registry) {
|
|
167
175
|
const s = sessionOnPane(backend.homeDir, pane);
|
|
168
176
|
if (s?.status === "idle")
|
|
@@ -175,6 +183,10 @@ const waitForTuiReady = async (pane, cmd, backend, log) => {
|
|
|
175
183
|
// Shell rc needs time to source before capture-pane shows anything meaningful.
|
|
176
184
|
if (Date.now() - t0 < MIN_SETTLE_MS)
|
|
177
185
|
continue;
|
|
186
|
+
// pane 那一路仍按 POLL_MS 的节奏读屏 —— 注册表查得再密也不多起 tmux。
|
|
187
|
+
if (Date.now() - lastCap < POLL_MS)
|
|
188
|
+
continue;
|
|
189
|
+
lastCap = Date.now();
|
|
178
190
|
const cap = await capturePaneBottom(pane, 20);
|
|
179
191
|
if (!registry && TUI_READY_RE.test(cap))
|
|
180
192
|
return true;
|
|
@@ -374,8 +386,8 @@ export const spawnTmuxClaude = async ({ cfg, log, resumeSessionId, windowName, c
|
|
|
374
386
|
// user input, so we don't wait for the file — mirror tail tolerates a
|
|
375
387
|
// missing jsonl and starts emitting once claude writes the first line.
|
|
376
388
|
const tuiReady = await waitForTuiReady(tmuxPane, cmd, backend, log);
|
|
377
|
-
// Model selection needs the TUI actually up (it types `/model
|
|
378
|
-
// input box) — skip it if readiness never confirmed, same as any other
|
|
389
|
+
// Model selection needs the TUI actually up (it types `/model` into the
|
|
390
|
+
// input box and drives the picker) — skip it if readiness never confirmed, same as any other
|
|
379
391
|
// post-launch step would have to.
|
|
380
392
|
let resolvedModel = "";
|
|
381
393
|
let modelWarning;
|