wezard 2.0.0 → 2.0.2
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-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/CLAUDE.md +7 -8
- package/README.md +20 -32
- package/cli/wezard.sh +0 -62
- package/config.example.jsonc +3 -9
- package/dist/cli/init.js +12 -21
- package/dist/cli/init.js.map +1 -1
- package/dist/daemon/approval.js +2 -4
- package/dist/daemon/approval.js.map +1 -1
- package/dist/daemon/cc-session.js +136 -0
- package/dist/daemon/cc-session.js.map +1 -0
- package/dist/daemon/detail.js +2 -3
- package/dist/daemon/detail.js.map +1 -1
- package/dist/daemon/inbound.js +90 -110
- package/dist/daemon/inbound.js.map +1 -1
- package/dist/daemon/index.js +130 -111
- package/dist/daemon/index.js.map +1 -1
- package/dist/daemon/memory-steward.js +82 -0
- package/dist/daemon/memory-steward.js.map +1 -0
- package/dist/daemon/mirror-bridge.js +201 -62
- package/dist/daemon/mirror-bridge.js.map +1 -1
- package/dist/daemon/session-name.js +4 -27
- package/dist/daemon/session-name.js.map +1 -1
- package/dist/daemon/spawn-tmux.js +35 -13
- package/dist/daemon/spawn-tmux.js.map +1 -1
- package/dist/daemon/wizard-memory.js +21 -26
- package/dist/daemon/wizard-memory.js.map +1 -1
- package/dist/daemon/wizard.js +54 -11
- package/dist/daemon/wizard.js.map +1 -1
- package/dist/mcp/server.js +63 -153
- package/dist/mcp/server.js.map +1 -1
- package/dist/shared/chat-http.js +44 -16
- package/dist/shared/chat-http.js.map +1 -1
- package/dist/shared/chat-render.js +10 -8
- package/dist/shared/chat-render.js.map +1 -1
- package/dist/shared/cli-backends.js +2 -7
- package/dist/shared/cli-backends.js.map +1 -1
- package/dist/shared/config.js +10 -12
- package/dist/shared/config.js.map +1 -1
- package/dist/shared/detail-render.js +35 -16
- package/dist/shared/detail-render.js.map +1 -1
- package/dist/shared/detail-store.js +14 -3
- package/dist/shared/detail-store.js.map +1 -1
- package/dist/shared/role-render.js +4 -1
- package/dist/shared/role-render.js.map +1 -1
- package/dist/shared/role-view.js +49 -11
- package/dist/shared/role-view.js.map +1 -1
- package/dist/shared/world.js +11 -1
- package/dist/shared/world.js.map +1 -1
- package/hooks/pre-tool-use.sh +4 -4
- package/package.json +1 -2
- package/web/chat.css +103 -58
- package/web/chat.js +153 -82
- package/commands/wrc.md +0 -7
- package/dist/daemon/cc-bridge.js +0 -183
- package/dist/daemon/cc-bridge.js.map +0 -1
- package/dist/daemon/sessions.js +0 -4
- package/dist/daemon/sessions.js.map +0 -1
package/dist/mcp/server.js
CHANGED
|
@@ -1,13 +1,8 @@
|
|
|
1
|
-
// MCP server `wezard`. Stdio transport
|
|
2
|
-
//
|
|
3
|
-
//
|
|
4
|
-
// every child process), so multiple windows can each /wrc without trampling.
|
|
1
|
+
// MCP server `wezard`. Stdio transport, stateless: every tool POSTs to the
|
|
2
|
+
// resident daemon over loopback. Sessions are opened from the chat side (the
|
|
3
|
+
// daemon spawns the pane), so nothing here attaches a session.
|
|
5
4
|
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
6
5
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
7
|
-
import { spawn } from "node:child_process";
|
|
8
|
-
import { existsSync, readdirSync, statSync } from "node:fs";
|
|
9
|
-
import { join, basename } from "node:path";
|
|
10
|
-
import { homedir } from "node:os";
|
|
11
6
|
import { z } from "zod";
|
|
12
7
|
const DAEMON_BASE = process.env.WEZARD_DAEMON_BASE ?? "http://127.0.0.1:17890";
|
|
13
8
|
const ok = (data) => ({
|
|
@@ -17,73 +12,6 @@ const fail = (msg) => ({
|
|
|
17
12
|
isError: true,
|
|
18
13
|
content: [{ type: "text", text: msg }],
|
|
19
14
|
});
|
|
20
|
-
// Project-dir encoding is backend-specific:
|
|
21
|
-
// Claude Code / claude-internal: `/` `.` → `-` (yields leading `-`)
|
|
22
|
-
// CodeBuddy: strip leading `/`, then `/` `.` → `-` (no leading `-`)
|
|
23
|
-
const encodeClaude = (absCwd) => absCwd.replace(/[/.]/g, "-");
|
|
24
|
-
const encodeCodebuddy = (absCwd) => absCwd.replace(/^[/]+/, "").replace(/[/.]/g, "-");
|
|
25
|
-
const PROJECT_ROOTS = [
|
|
26
|
-
{ dir: join(homedir(), ".claude-internal", "projects"), encode: encodeClaude },
|
|
27
|
-
{ dir: join(homedir(), ".claude", "projects"), encode: encodeClaude },
|
|
28
|
-
{ dir: join(homedir(), ".codebuddy", "projects"), encode: encodeCodebuddy },
|
|
29
|
-
];
|
|
30
|
-
const findProjectDir = (cwd) => {
|
|
31
|
-
for (const root of PROJECT_ROOTS) {
|
|
32
|
-
const p = join(root.dir, root.encode(cwd));
|
|
33
|
-
if (existsSync(p))
|
|
34
|
-
return p;
|
|
35
|
-
}
|
|
36
|
-
return undefined;
|
|
37
|
-
};
|
|
38
|
-
const latestJsonlByMtime = (projectDir) => {
|
|
39
|
-
const files = readdirSync(projectDir).filter((n) => n.endsWith(".jsonl"));
|
|
40
|
-
if (files.length === 0)
|
|
41
|
-
return null;
|
|
42
|
-
return files
|
|
43
|
-
.map((n) => ({ p: join(projectDir, n), m: statSync(join(projectDir, n)).mtimeMs }))
|
|
44
|
-
.reduce((a, b) => (b.m > a.m ? b : a)).p;
|
|
45
|
-
};
|
|
46
|
-
const resolveCallerSession = () => {
|
|
47
|
-
// CodeBuddy exports CODEBUDDY_PROJECT_DIR / CODEBUDDY_SESSION_ID (native) and
|
|
48
|
-
// also CLAUDE_PROJECT_DIR / CLAUDE_SESSION_ID (compat). Check native first so
|
|
49
|
-
// a codebuddy session inside a claude project dir doesn't mis-resolve.
|
|
50
|
-
const cwd = process.env.CODEBUDDY_PROJECT_DIR
|
|
51
|
-
?? process.env.CLAUDE_PROJECT_DIR
|
|
52
|
-
?? process.cwd();
|
|
53
|
-
const projectDir = findProjectDir(cwd);
|
|
54
|
-
if (!projectDir)
|
|
55
|
-
return { error: `no claude project dir for cwd ${cwd}` };
|
|
56
|
-
// Primary: env tells us exactly which session invoked us. Trust it
|
|
57
|
-
// unconditionally — claude only writes the jsonl after the first user
|
|
58
|
-
// message lands, so a fresh session (e.g. /clear-then-/wrc, or a brand-new
|
|
59
|
-
// CLI window) will have envSid set but no file yet. The daemon's tail
|
|
60
|
-
// tolerates a missing path (see mirror-bridge.ts attach()), and any
|
|
61
|
-
// existsSync gate here would mis-route to a stale jsonl picked by mtime.
|
|
62
|
-
const envSid = process.env.CODEBUDDY_SESSION_ID
|
|
63
|
-
?? process.env.CLAUDE_CODE_SESSION_ID
|
|
64
|
-
?? process.env.CLAUDE_SESSION_ID;
|
|
65
|
-
if (envSid)
|
|
66
|
-
return { sessionId: envSid, jsonlPath: join(projectDir, `${envSid}.jsonl`) };
|
|
67
|
-
// Fallback: most-recently-written jsonl. Only reached when env is absent
|
|
68
|
-
// (older claude versions, exotic launchers).
|
|
69
|
-
const jsonlPath = latestJsonlByMtime(projectDir);
|
|
70
|
-
if (!jsonlPath)
|
|
71
|
-
return { error: `no .jsonl under ${projectDir}` };
|
|
72
|
-
return { sessionId: basename(jsonlPath, ".jsonl"), jsonlPath };
|
|
73
|
-
};
|
|
74
|
-
// Resolve the current pane's tmux session name. `tmux display-message -p` runs
|
|
75
|
-
// against the tmux server pointed at by $TMUX (set in every process running
|
|
76
|
-
// inside tmux), so it returns the session containing *this* pane without us
|
|
77
|
-
// needing to pass a target. Returns undefined if not in tmux or query failed.
|
|
78
|
-
const detectTmuxSession = () => new Promise((resolve) => {
|
|
79
|
-
if (!process.env.TMUX)
|
|
80
|
-
return resolve(undefined);
|
|
81
|
-
const p = spawn("tmux", ["display-message", "-p", "#{session_name}"], { stdio: ["ignore", "pipe", "ignore"] });
|
|
82
|
-
let out = "";
|
|
83
|
-
p.stdout?.on("data", (c) => (out += c.toString("utf8")));
|
|
84
|
-
p.on("error", () => resolve(undefined));
|
|
85
|
-
p.on("close", (code) => resolve(code === 0 ? out.trim() || undefined : undefined));
|
|
86
|
-
});
|
|
87
15
|
const server = new McpServer({ name: "wezard", version: "0.0.1" }, { capabilities: { tools: {} } });
|
|
88
16
|
const withLegacyAddress = (shape) => {
|
|
89
17
|
const extra = {
|
|
@@ -123,39 +51,6 @@ const normalizeTarget = (raw) => {
|
|
|
123
51
|
return `chat:${raw.slice(7)}`;
|
|
124
52
|
return raw;
|
|
125
53
|
};
|
|
126
|
-
server.registerTool("wrc", {
|
|
127
|
-
title: "WeCom remote control",
|
|
128
|
-
description: "wecom remote control — attach the current agent session to a WeCom chat for live mirror push",
|
|
129
|
-
inputSchema: {
|
|
130
|
-
target: z
|
|
131
|
-
.string()
|
|
132
|
-
.optional()
|
|
133
|
-
.describe('Optional push target. Accepts "vid:<userid>" (DM), "chatid:<chatid>" (group), or raw "user:<id>"/"chat:<id>". Empty → use config defaultChat / mirror.pushChat.'),
|
|
134
|
-
},
|
|
135
|
-
}, async ({ target }) => {
|
|
136
|
-
const r = resolveCallerSession();
|
|
137
|
-
if ("error" in r)
|
|
138
|
-
return fail(r.error);
|
|
139
|
-
const normalizedTarget = normalizeTarget(target);
|
|
140
|
-
// tmux sets $TMUX_PANE for every process inside a pane (e.g. `%5`); we
|
|
141
|
-
// inherit it through claude → MCP child, so each /wrc auto-picks its own
|
|
142
|
-
// pane without the user touching config. Pane ids are not stable across
|
|
143
|
-
// tmux server restarts, so we also capture the session name — the daemon
|
|
144
|
-
// uses it to re-derive a fresh paneId after reload, and as the "user wants
|
|
145
|
-
// a tmux pane" signal that drives respawn when their pane dies.
|
|
146
|
-
const tmuxPane = process.env.TMUX_PANE?.trim();
|
|
147
|
-
const tmuxSession = tmuxPane ? await detectTmuxSession() : undefined;
|
|
148
|
-
const { j } = await daemonPost("/mirror/attach", {
|
|
149
|
-
sessionId: r.sessionId,
|
|
150
|
-
jsonlPath: r.jsonlPath,
|
|
151
|
-
...(normalizedTarget ? { target: normalizedTarget } : {}),
|
|
152
|
-
...(tmuxPane ? { tmuxPane } : {}),
|
|
153
|
-
...(tmuxSession ? { tmuxSession } : {}),
|
|
154
|
-
});
|
|
155
|
-
return j.ok
|
|
156
|
-
? ok({ ok: true, sessionId: r.sessionId, target: j.target })
|
|
157
|
-
: fail(`attach failed: ${j.reason ?? "unknown"}`);
|
|
158
|
-
});
|
|
159
54
|
// set_workspace — one-shot project switch: the daemon applies the switch
|
|
160
55
|
// itself by walking the exact /new path — setPendingCwd → kill pane →
|
|
161
56
|
// respawn in the new cwd → attach → "📂 当前项目" push. NOTE: when the
|
|
@@ -166,7 +61,7 @@ server.registerTool("wrc", {
|
|
|
166
61
|
// the switch.
|
|
167
62
|
server.registerTool("set_workspace", {
|
|
168
63
|
title: "Switch workspace directory",
|
|
169
|
-
description: "一步换掉这个 wizard 的**工作区**: 杀掉当前 pane, 在给定目录下重开一个全新的会话 —— 等价于往那个目录 `/new`。群里收到新会话的 📂 项目信息气泡当回执; 对话上下文**不会**带过去 (和 /new 一样是全新会话, 但身份的系统提示还在)。调用方就是被替换的那一个时, 它在调用当口就被终结 —— 这是预期行为, 群里那条气泡就是回执。用绝对路径 (或 `~` 开头)。想换目录又想保住手上的上下文: 先 wizard_handoff_self 把工作压成简报, 或者
|
|
64
|
+
description: "一步换掉这个 wizard 的**工作区**: 杀掉当前 pane, 在给定目录下重开一个全新的会话 —— 等价于往那个目录 `/new`。群里收到新会话的 📂 项目信息气泡当回执; 对话上下文**不会**带过去 (和 /new 一样是全新会话, 但身份的系统提示还在)。调用方就是被替换的那一个时, 它在调用当口就被终结 —— 这是预期行为, 群里那条气泡就是回执。用绝对路径 (或 `~` 开头)。想换目录又想保住手上的上下文: 先 wizard_handoff_self 把工作压成简报, 或者 spawn_wizard({cwd}) 生一个子 wizard 去那边干。\n"
|
|
170
65
|
+ "**`keep:true` 是另一支**: 人回答「不用换, 就用现在这个目录」时调它 —— 不重开会话, 只把「这个工作区是人认过的」记下来, 此后新会话的开局不再问这件事。一个新聊天的第一个 wizard 落在默认兜底目录里, 开局会被要求先问一句要去哪个项目; 人给路径就走 `cwd`, 人说不用换就走 `keep`。",
|
|
171
66
|
inputSchema: {
|
|
172
67
|
cwd: z.string().optional().describe("Absolute project path, e.g. /Users/foo/projects/bar. ~ is expanded. 与 `keep` 二选一。"),
|
|
@@ -292,12 +187,12 @@ const daemonGet = async (path) => {
|
|
|
292
187
|
const unwrap = (name, { j, status }, pick = (x) => x) => j.ok ? ok(pick(j)) : fail(`${name} failed: ${(j.reason ?? j.error ?? `http ${status}`)}`);
|
|
293
188
|
// 地址语法只有一套, 每个吃地址的工具都把它原样重述一遍: 模型单看一个 schema
|
|
294
189
|
// 时没有别的地方能学到它, 而猜出来的地址会安静地指向另一个 wizard 的终端。
|
|
295
|
-
const ADDRESS_DOC = "wizard 的名字 —— 全机唯一, 它就是地址: `'fix'` 或 `'.fix'` 都行, 不分它住在哪个群。`''` = 你这个聊天的默认 wizard。永远别自己拼 key: wizard_roster / list_peers /
|
|
190
|
+
const ADDRESS_DOC = "wizard 的名字 —— 全机唯一, 它就是地址: `'fix'` 或 `'.fix'` 都行, 不分它住在哪个群。`''` = 你这个聊天的默认 wizard。永远别自己拼 key: wizard_roster / list_peers / spawn_wizard / clone_wizard 返回的 `name` (或 409 里的 `address`) 原样传回来。老的 `聊天名#tag` 写法仍然认, 但别再写。";
|
|
296
191
|
// 造一个 wizard: 它的 home 默认是调用方自己的聊天 (所以走 `selfRef`); 给了 `chat`
|
|
297
192
|
// 就落在另一个**起过名字**的聊天里。名字全局唯一, 与 home 无关。
|
|
298
193
|
server.registerTool("new_claude_session", {
|
|
299
194
|
title: "Spawn a blank new wizard",
|
|
300
|
-
description: "在指定项目目录下长出一个**全新的 wizard** —— 自己的 tmux pane、自己的全局名字 (`.name`), home 默认是你这个聊天, 等价于人在群里敲 `/new .name`。它**不继承任何上下文**(白纸一张): 要一个开局就带着你读过的材料的分身, 用
|
|
195
|
+
description: "在指定项目目录下长出一个**全新的 wizard** —— 自己的 tmux pane、自己的全局名字 (`.name`), home 默认是你这个聊天, 等价于人在群里敲 `/new .name`。它**不继承任何上下文**(白纸一张): 要一个开局就带着你读过的材料的分身, 用 clone_wizard; 要一个归你管、干完可回收的白板子 wizard, 用 spawn_wizard。这个工具生的 wizard 独立长住, 不挂在谁名下。新 wizard 在群里说话时气泡头是 `emoji .name`, 之后用 wizard_roster / peek_peer / send_peer / wait_peer 驱动它。用户说「在 /path 下新建一个会话」「帮我在 xxx 目录起个 agent」时调它。给 `chat` 就把它的 home 设在**另一个**聊天里 —— 那个聊天必须起过名字(list_chats 能看到)。目录不存在会自动创建。绝不会顶掉一个聊天的默认 wizard。名字全局唯一: 撞上的 wizard 静默超过一天就直接顶掉它、名字归新的; 撞上一个还在的 wizard 返回 409, 返回里的 `name` 是最终落定的名字。",
|
|
301
196
|
inputSchema: {
|
|
302
197
|
cwd: z.string().describe("Absolute project path to start the new session in, e.g. /Users/foo/projects/bar. Created if missing."),
|
|
303
198
|
name: z
|
|
@@ -335,7 +230,7 @@ server.registerTool("new_claude_session", {
|
|
|
335
230
|
// point at, and what a chat's default wizard is born named after.
|
|
336
231
|
server.registerTool("name_chat", {
|
|
337
232
|
title: "Name this WeCom chat",
|
|
338
|
-
description: "给**这个聊天**起个短名字: notify 的收件人、new_claude_session /
|
|
233
|
+
description: "给**这个聊天**起个短名字: notify 的收件人、new_claude_session / spawn_wizard / clone_wizard 的 `chat` 从此能指到这里。没起过名字的聊天不会一直没名字 —— 第一次有人用到时守护进程按它的工作区自动补一个 (`~/develop/foo` → `foo`, 撞名加序号), 所以这个工具的用途是**起一个更好的名字**。这里的默认 wizard 出生时取聊天名; 它若还叫旧聊天名, 会跟着改 (wizard 的名字全局唯一, 撞名加后缀, 返回里的 `wizardRenamed` 就是它的新名字)。wizard 自己的名字用 wizard_identity 改, 与这里无关。用户说「给这个群起名叫 daily」「这个群叫什么」(不传 `name` 就是读) 「取消命名」(传 '-') 时调它。名字全机唯一、大小写不敏感。",
|
|
339
234
|
inputSchema: {
|
|
340
235
|
name: z
|
|
341
236
|
.string()
|
|
@@ -365,7 +260,7 @@ server.registerTool("peek_peer", {
|
|
|
365
260
|
}, async ({ name, turns }) => unwrap("peek_peer", await daemonPost("/peers/peek", { name, ...(turns ? { turns } : {}) })));
|
|
366
261
|
server.registerTool("send_peer", {
|
|
367
262
|
title: "Say something to another wizard",
|
|
368
|
-
description: "跟另一个 wizard 说话 —— 文本原样落进它的输入框, 它当成新的一轮接手。这是你**驱动**同伴的唯一方式: 派活、解它的阻塞、回答它的提问、叫它继续。「推动 .fix 干到底」的典型循环: peek_peer 看它在哪 → send_peer 说该说的 → wait_peer 等它停下 → 再 peek。名字全局唯一, 目标住在哪个群都一样叫。对方还不存在就自己造: 要它继承你的上下文用
|
|
263
|
+
description: "跟另一个 wizard 说话 —— 文本原样落进它的输入框, 它当成新的一轮接手。这是你**驱动**同伴的唯一方式: 派活、解它的阻塞、回答它的提问、叫它继续。「推动 .fix 干到底」的典型循环: peek_peer 看它在哪 → send_peer 说该说的 → wait_peer 等它停下 → 再 peek。名字全局唯一, 目标住在哪个群都一样叫。对方还不存在就自己造: 要它继承你的上下文用 clone_wizard, 要一个白纸一张的子 wizard 用 spawn_wizard。\n" +
|
|
369
264
|
"**默认是私聊**: 不出任何群气泡, 只记在你们双方的 rolepage 里; 它那一轮的回复也不进群, 用 wait_peer 取。**`public:true` 则在公开频道说** —— 你这一轮所在的群里出一条 `.你 → .它` 的气泡, 它那一轮的回复也发进这个群。公开与否由你判断: 需要人知道的、或本该当着人讨论的 (关键决策、给人的结论、要人拍板的分歧) 用 public; 过程性的派活、催进度、对齐细节用私聊。无论哪种都直说: 要什么、给什么、结论是什么, 不用寒暄、不用引用原文。拒绝对自己发送。",
|
|
370
265
|
inputSchema: {
|
|
371
266
|
name: z.string().describe(ADDRESS_DOC),
|
|
@@ -418,7 +313,7 @@ server.registerTool("wait_peer", {
|
|
|
418
313
|
})));
|
|
419
314
|
server.registerTool("run_agent_graph", {
|
|
420
315
|
title: "Run a loop graph over several tagged agents",
|
|
421
|
-
description: "把这个聊天里的几个 wizard 串成一条**会循环的流水线**, 交给守护进程去驱动。`nodes` 是参与的 `#tag` wizard (每个可以自选 cli / 模型 / 工作区; 不存在的当场造出来, 已经在跑的原样复用、上下文不动)。`steps` 是有序管线 —— 每一步向一个 wizard 发一段提示、等它干完、抓住它的回复、喂给下一步。整张 step 表会被走 `rounds` 遍, 这才叫**循环**: `fix → review → fix → review …` 直到某个回复里出现 `until` 或轮次用完。提示模板可以引用前面的产出: `{{last}}` = 上一步的回复, `{{<tag>}}` = 那个 wizard 最新的回复, `{{round}}` = 第几轮。立刻返回 runId 并把进度播报进群; 用 graph_status 查、stop_graph 停。用户要「几个 agent 互相评审/迭代到收敛」时用它。只是推一个 wizard 一把, 用 send_peer + wait_peer。要它们开局就共享同一批材料, 先
|
|
316
|
+
description: "把这个聊天里的几个 wizard 串成一条**会循环的流水线**, 交给守护进程去驱动。`nodes` 是参与的 `#tag` wizard (每个可以自选 cli / 模型 / 工作区; 不存在的当场造出来, 已经在跑的原样复用、上下文不动)。`steps` 是有序管线 —— 每一步向一个 wizard 发一段提示、等它干完、抓住它的回复、喂给下一步。整张 step 表会被走 `rounds` 遍, 这才叫**循环**: `fix → review → fix → review …` 直到某个回复里出现 `until` 或轮次用完。提示模板可以引用前面的产出: `{{last}}` = 上一步的回复, `{{<tag>}}` = 那个 wizard 最新的回复, `{{round}}` = 第几轮。立刻返回 runId 并把进度播报进群; 用 graph_status 查、stop_graph 停。用户要「几个 agent 互相评审/迭代到收敛」时用它。只是推一个 wizard 一把, 用 send_peer + wait_peer。要它们开局就共享同一批材料, 先 clone_wizard 出这些节点再跑图。",
|
|
422
317
|
inputSchema: {
|
|
423
318
|
nodes: z
|
|
424
319
|
.array(z.object({
|
|
@@ -577,52 +472,67 @@ server.registerTool("wizard_roster", {
|
|
|
577
472
|
...(alive ? { alive } : {}),
|
|
578
473
|
...(limit ? { limit } : {}),
|
|
579
474
|
})));
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
475
|
+
// 生孩子与分身是两个操作, 不是一个开关的两档: 一个白纸起步、可以去别的目录;
|
|
476
|
+
// 一个 fork 调用方此刻的上下文、必须留在原地。拆成两个工具, 模型选的是动词,
|
|
477
|
+
// 而不是在一个布尔上猜。两者落到同一条路由 (`inherit` 由工具定死)。
|
|
478
|
+
const offspringShape = {
|
|
479
|
+
description: z.string().describe("它负责什么, 一句话。它会写进它的系统提示, 也会出现在名册里让别人看到。"),
|
|
480
|
+
name: z.string().optional().describe("它的名字 (如 'docs'、'fix', 带不带 '.' 都行)。全机唯一。省略则按 description 首词生成。"),
|
|
481
|
+
task: z.string().optional().describe("就位后立刻派下去的第一件活 (私聊)。省略则它就位待命。"),
|
|
482
|
+
chat: z.string().optional().describe("把它生在另一个聊天里 (list_chats 里的名字)。省略 = 你自己的聊天, 这是绝大多数情况。"),
|
|
483
|
+
cli: z.enum(["claude", "claude-internal", "codebuddy"]).optional().describe("用哪个 CLI。省略则继承。"),
|
|
484
|
+
model: z.string().optional().describe("跑在哪个模型上, 口语化随便写 ('opus' / 'sonnet' / '最新的 opus' / 'claude-sonnet-5' 都行) —— 不是直接塞给启动参数, 而是等 pane 起来后真的敲 `/model` 校验, 认不出就翻一遍这台 CLI 此刻的目录再重试, 所以返回里的 `model` 才是真正落地的那个, 可能跟你传的字符串不完全一样; 万一没匹配上会带 `modelWarning`, 那时它还在跑但停在了原来的模型上, 不是失败。省略用该 CLI 的默认。要判断力的给 opus, 跑腿的 (grep、跑测试、照着清单改) 给 haiku —— 一批不必齐步走。"),
|
|
485
|
+
job: z
|
|
486
|
+
.string()
|
|
487
|
+
.optional()
|
|
488
|
+
.describe("归到某个工单名下 (open_job 给的 id)。它们攒到 close_job 那一条里一起交代, 过程在各自的 rolepage; close_job 还会把它们整批回收掉。"),
|
|
489
|
+
keepalive: z
|
|
490
|
+
.boolean()
|
|
491
|
+
.optional()
|
|
492
|
+
.describe("要不要被 keepalive 心跳保温 (空闲时定期 ping 一下防 prompt cache 过期)。false = 永远不保温, 省下那份 ping 的钱 —— 适合跑腿一次就收工的; true = 明确要保温 —— 适合会长期挂着、随时可能被叫醒接手的。省略则按 daemon 配置的默认值。"),
|
|
493
|
+
};
|
|
494
|
+
const bear = (tool, inherit) => async (a) => unwrap(tool, await daemonPost("/wizard/clone", {
|
|
495
|
+
inherit,
|
|
496
|
+
description: a.description,
|
|
497
|
+
...(a.name ? { name: a.name } : {}),
|
|
498
|
+
...(a.task ? { task: a.task } : {}),
|
|
499
|
+
...(a.from ? { from: a.from } : {}),
|
|
500
|
+
...(a.job ? { job: a.job } : {}),
|
|
501
|
+
...(a.cwd ? { cwd: a.cwd } : {}),
|
|
502
|
+
...(a.chat ? { chat: a.chat } : {}),
|
|
503
|
+
...(a.cli ? { cli: a.cli } : {}),
|
|
504
|
+
...(a.model ? { model: a.model } : {}),
|
|
505
|
+
...(a.keepalive !== undefined ? { keepalive: a.keepalive } : {}),
|
|
506
|
+
}));
|
|
507
|
+
const OFFSPRING_TAIL = "名字全局唯一: 撞上的 wizard 静默超过一天就直接顶掉它、名字归新的; 撞上一个还在的 wizard 返回 409 (附它的死活), 返回里的 `name` 是落定的名字。之后用 send_peer 继续派活、wait_peer 等它做完、stop_wizard 收掉它。它自己也能再 spawn_wizard / clone_wizard, 层级不限。每一个都有成本 (一个 pane + 一份上下文), 名下同时活着的有上限; 任务少于两三件时你自己做完更快。";
|
|
508
|
+
server.registerTool("spawn_wizard", {
|
|
509
|
+
title: "Spawn a blank child wizard",
|
|
510
|
+
description: "**从白板生**一个子 wizard —— 新的 tmux pane、自己的全局名字 (`.name`)、自己的职责, 归你管 (家谱里挂在你名下, 工单收工时可整批回收)。它**不继承你的任何上下文**, 只拿到身份。适合干一件与你手头无关的事, 或者要去别的目录 (`cwd`) / 别的聊天里干活。要一个开局就带着你读过的材料的, 用 clone_wizard。\n" +
|
|
511
|
+
"带上 `task` 可以在它就位的同时把第一件活私聊派下去, 省掉一次 send_peer; 要它的回复进群, 就别带 task, 就位后用 `send_peer({public:true})` 转给它。" +
|
|
512
|
+
OFFSPRING_TAIL,
|
|
587
513
|
inputSchema: {
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
.describe("true = fork 你此刻的上下文 (它开局就有你读过的材料, 必须留在同一工作区); false = 空白分身, 只继承身份。必填, 没有默认值。"),
|
|
591
|
-
description: z.string().describe("这个分身负责什么, 一句话。它会写进分身的系统提示, 也会出现在名册里让别人看到。"),
|
|
592
|
-
name: z.string().optional().describe("分身的名字 (如 'docs'、'fix', 带不带 '.' 都行)。全机唯一。省略则按 description 首词生成。"),
|
|
593
|
-
task: z.string().optional().describe("就位后立刻派下去的第一件活。省略则它就位待命。"),
|
|
594
|
-
cwd: z.string().optional().describe("分身的工作区绝对路径。只在 inherit=false 时有意义 —— 换目录与继承上下文互斥。"),
|
|
595
|
-
chat: z.string().optional().describe("把分身生在另一个聊天里 (list_chats 里的名字)。省略 = 你自己的聊天, 这是绝大多数情况。"),
|
|
596
|
-
cli: z.enum(["claude", "claude-internal", "codebuddy"]).optional().describe("分身用哪个 CLI。省略则继承。"),
|
|
597
|
-
model: z.string().optional().describe("分身跑在哪个模型上, 口语化随便写 ('opus' / 'sonnet' / '最新的 opus' / 'claude-sonnet-5' 都行) —— 不是直接塞给启动参数, 而是等 pane 起来后真的敲 `/model` 校验, 认不出就翻一遍这台 CLI 此刻的目录再重试, 所以返回里的 `model` 才是真正落地的那个, 可能跟你传的字符串不完全一样; 万一没匹配上会带 `modelWarning`, 那时分身还在跑但停在了原来的模型上, 不是失败。省略用该 CLI 的默认。分身可以和你跑在不同模型上: 要判断力的那一路给 opus, 跑腿的 (grep、跑测试、照着清单改) 给 haiku —— 一批分身不必齐步走。"),
|
|
598
|
-
job: z
|
|
599
|
-
.string()
|
|
600
|
-
.optional()
|
|
601
|
-
.describe("把这个分身归到某个工单名下 (open_job 给的 id)。它们攒到 close_job 那一条里一起交代, 过程在各自的 rolepage; close_job 还会把它们整批回收掉。"),
|
|
602
|
-
keepalive: z
|
|
603
|
-
.boolean()
|
|
604
|
-
.optional()
|
|
605
|
-
.describe("这个分身要不要被 keepalive 心跳保温 (空闲时定期 ping 一下防 prompt cache 过期)。false = 永远不保温, 省下那份 ping 的钱 —— 适合跑腿一次就收工的临时分身; true = 明确要保温 —— 适合会长期挂着、随时可能被叫醒接手的分身。省略则按 daemon 配置的默认值。"),
|
|
514
|
+
...offspringShape,
|
|
515
|
+
cwd: z.string().optional().describe("它的工作区绝对路径。省略 = 跟你同一个目录。"),
|
|
606
516
|
},
|
|
607
|
-
},
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
}))
|
|
517
|
+
}, bear("spawn_wizard", false));
|
|
518
|
+
server.registerTool("clone_wizard", {
|
|
519
|
+
title: "Clone a wizard, context and all",
|
|
520
|
+
description: "**克隆**一个 wizard 出分身 —— fork 它此刻的上下文: 分身开局就拥有它已经读过的一切 (规范、目录结构、刚啃完的那份文档), 不必重读; 被克隆的那个毫发无损。默认克隆你自己; `from` 点名就克隆别的 wizard (比如一个已经把某个模块啃透的同伴) —— 分身仍归你管 (占你的名额、随你的工单回收), 只是上下文来自它。分身留在被克隆者的工作区。\n" +
|
|
521
|
+
"这是编排一组「共享同一批材料」的任务的正确姿势: 先让一个 wizard (你自己或某个同伴) 把公共材料读进上下文, 再从它克隆出 N 个分身, 材料只读一遍却进了 N 份上下文。要白纸一张、或要去别的目录, 用 spawn_wizard。被克隆者正在干活时, 分身拿到的是它此刻为止的上下文 —— 想要它读完再分, 先 wait_peer 等它停下。\n" +
|
|
522
|
+
"带上 `task` 可以在它就位的同时把第一件活私聊派下去 (分叉本来就由第一句话触发, 省一次往返)。" +
|
|
523
|
+
OFFSPRING_TAIL,
|
|
524
|
+
inputSchema: {
|
|
525
|
+
...offspringShape,
|
|
526
|
+
from: z.string().optional().describe("克隆谁 —— wizard 的名字 ('fix' / '.fix')。省略 = 克隆你自己。它必须已经有会话 (说过话), 否则返回 409。"),
|
|
527
|
+
},
|
|
528
|
+
}, bear("clone_wizard", true));
|
|
619
529
|
// ── Job: 一次 fan-out 的工单 ────────────────────────────────────────────────
|
|
620
530
|
// 工单不是第二个编排器: 控制流始终在你自己的上下文里 (你自己 spawn、自己 wait、
|
|
621
531
|
// 自己汇总)。守护进程只替你记一本账 —— 谁属于这个活、谁是临时生的、群里出哪两条
|
|
622
532
|
// 气泡、收工时该回收谁。
|
|
623
533
|
server.registerTool("open_job", {
|
|
624
534
|
title: "Open a job for a fan-out",
|
|
625
|
-
description: "开一个**工单**: 你接下来要同时派出两个以上的分身干同一件事时, 先开它。返回一个 id, 把这个 id 传给
|
|
535
|
+
description: "开一个**工单**: 你接下来要同时派出两个以上的分身干同一件事时, 先开它。返回一个 id, 把这个 id 传给 spawn_wizard / clone_wizard / send_peer 的 `job` 参数, 它们就归到这个工单名下。\n" +
|
|
626
536
|
"开了工单之后有三件事不一样: ① 群里出「开工」与 close_job 的「收工」两条气泡, 人据此读得出这批活的结构 (过程在各自的 rolepage 里, 收工那条会把成员和各自那段活列出来)。② close_job 会把为这个工单生出来的分身**整批回收**, 不必一个个 stop_wizard —— 忘记回收是常态, 每个分身都占着一个 pane 和一份上下文。③ list_jobs 能看到还开着哪些活。\n" +
|
|
627
537
|
"派活时顺手让每个分身**把结论收口成一行** `RESULT: …` (交付物写进文件就回传路径): wait_peer 会把这一行单独摘出来放进 `result`, 你汇总时不必再从八百字里找结论。\n" +
|
|
628
538
|
"只派一个分身、或者只是推某个同伴一把, 不用开工单。",
|
|
@@ -657,7 +567,7 @@ server.registerTool("stop_wizard", {
|
|
|
657
567
|
}, async ({ name, mode, forget }) => unwrap("stop_wizard", await daemonPost("/wizard/stop", { name, ...(mode ? { mode } : {}), ...(forget ? { forget } : {}) })));
|
|
658
568
|
server.registerTool("wizard_remember", {
|
|
659
569
|
title: "Write something into your long-term memory",
|
|
660
|
-
description: "写一条长期记忆。它不在对话里 —— 每次 wizard (重)开会话时重新压进系统提示, 所以能跨 /clear、跨交接、跨重启活下来。三种作用域: `self` (默认) 只属于你; `chat` 是**本群共享**的记忆 (这个群里人的习惯、约定), 在这个群出生的每个 wizard 都会读到; `workspace` 是**本工作区共享**的记忆 (这个仓库的硬约束、踩过的坑、'发版前必须更新 CHANGELOG' 这种规矩), 在这个目录下干活的每个 wizard 都会读到。后两者存成 markdown (`~/.wezard/memory/…`),
|
|
570
|
+
description: "写一条长期记忆。它不在对话里 —— 每次 wizard (重)开会话时重新压进系统提示, 所以能跨 /clear、跨交接、跨重启活下来。三种作用域: `self` (默认) 只属于你; `chat` 是**本群共享**的记忆 (这个群里人的习惯、约定), 在这个群出生的每个 wizard 都会读到; `workspace` 是**本工作区共享**的记忆 (这个仓库的硬约束、踩过的坑、'发版前必须更新 CHANGELOG' 这种规矩), 在这个目录下干活的每个 wizard 都会读到。后两者存成 markdown (`~/.wezard/memory/…`), 人也会直接改; 你写的只是一条**提议**, 由定时的记忆整理者去重、改写、合并 (半小时内), 所以不必先读全文查重, 也别为改一个字反复提交。一条一句话, 越具体越有用; 选对作用域 —— 属于群/仓库的别只记在自己身上。传 forget (子串匹配) 删掉 / 提议删掉过时的那条。别拿它存这次任务的临时状态 —— 那种东西属于交接简报。",
|
|
661
571
|
inputSchema: {
|
|
662
572
|
note: z.string().optional().describe("要记住的一句话。"),
|
|
663
573
|
forget: z.string().optional().describe("要忘掉的记忆里的一个子串, 命中的整条删除。"),
|
package/dist/mcp/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../mcp/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../mcp/server.ts"],"names":[],"mappings":"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"}
|
package/dist/shared/chat-http.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { baseOfKey } from "./session-label.js";
|
|
2
2
|
import { isMark, isTurn } from "./chat-view.js";
|
|
3
3
|
import { buildWorld, EMPTY_FACTS } from "./world.js";
|
|
4
|
-
import { allMessages, convMessages, convsOf, hasRelations, inSpan, makeDirectory, marksOf, messagesOfTurn, roleInfo, roleStats, sessionsOf, } from "./role-view.js";
|
|
4
|
+
import { allMessages, convMessages, convsOf, hasRelations, inSpan, makeDirectory, marksOf, messagesOfTurn, roleInfo, roleStats, sessionsOf, windowStats, } from "./role-view.js";
|
|
5
5
|
import { renderMark, renderMsg } from "./role-render.js";
|
|
6
|
+
import { renderToolBody } from "./detail-render.js";
|
|
6
7
|
import { chatScript, chatStyles, renderChatPage } from "./chat-render.js";
|
|
7
8
|
const DEFAULT_LIMIT = 60;
|
|
8
9
|
const FLUSH_MS = 300;
|
|
@@ -61,17 +62,19 @@ export const createChatRoutes = (store, facts) => {
|
|
|
61
62
|
res.setHeader("content-type", a.type);
|
|
62
63
|
res.end(a.body);
|
|
63
64
|
};
|
|
64
|
-
/** role 摘要: 身份、会话列表、session
|
|
65
|
-
const summary = (records, f, role, sid, ticketBase) => {
|
|
65
|
+
/** role 摘要: 身份、会话列表、session 分段、页脚总账 (role 自己的 + 当前窗口的)。 */
|
|
66
|
+
const summary = (records, f, role, sid, ticketBase, win) => {
|
|
66
67
|
const now = Date.now();
|
|
67
68
|
const dir = makeDirectory(records, f);
|
|
68
69
|
const msgs = allMessages(records, now);
|
|
69
70
|
const spans = sessionsOf(records, role, now);
|
|
70
71
|
const span = spanOf(spans, sid);
|
|
71
|
-
const convs = convsOf(msgs.filter((m) => inSpan(span)(m.ts)), role, dir);
|
|
72
|
+
const convs = convsOf(msgs.filter((m) => inSpan(span)(m.ts)), role, dir, now);
|
|
72
73
|
const stats = roleStats(records, role, now, span);
|
|
73
|
-
const info = roleInfo(role, dir, f, stats);
|
|
74
|
+
const info = roleInfo(role, dir, f, stats, now);
|
|
75
|
+
// 日程页画的两样东西 (与 chat.js 的 renderPlan 同一口径) —— 都没有就不给入口。
|
|
74
76
|
const schedules = f.schedules.filter((x) => (x.owner || x.createdBy || x.target) === role);
|
|
77
|
+
const jobs = f.jobs.filter((j) => j.owner === role || j.members.some((m) => m.target === role));
|
|
75
78
|
return {
|
|
76
79
|
at: now,
|
|
77
80
|
role: info,
|
|
@@ -81,8 +84,12 @@ export const createChatRoutes = (store, facts) => {
|
|
|
81
84
|
// 链接来自哪个群就默认开哪个群; 否则最近活动的那个。
|
|
82
85
|
conv: convs.find((c) => c.key === `c:${ticketBase}`)?.key ?? convs[0]?.key ?? "",
|
|
83
86
|
relations: hasRelations(msgs, role, info),
|
|
84
|
-
schedules: schedules.length,
|
|
87
|
+
schedules: schedules.length + jobs.length,
|
|
85
88
|
stats,
|
|
89
|
+
// 「只看我与某个 wizard」的窗口自带一本账 —— 人的视角没有 stats, 用量看这里。
|
|
90
|
+
winStats: win?.conv && dir.isWizard(win.with)
|
|
91
|
+
? windowStats(records, convMessages(msgs, role, win.conv, win.with).filter((m) => inSpan(span)(m.ts)), win.with, now)
|
|
92
|
+
: undefined,
|
|
86
93
|
};
|
|
87
94
|
};
|
|
88
95
|
const role = (_req, res, url) => {
|
|
@@ -93,23 +100,25 @@ export const createChatRoutes = (store, facts) => {
|
|
|
93
100
|
}
|
|
94
101
|
void getFacts().then((f) => {
|
|
95
102
|
const records = store.list();
|
|
96
|
-
const
|
|
97
|
-
if (!
|
|
103
|
+
const v = viewOf(records, makeDirectory(records, f), ticket, url);
|
|
104
|
+
if (!v) {
|
|
98
105
|
json(res, 404, { ok: false, error: "不认识这个 role" });
|
|
99
106
|
return;
|
|
100
107
|
}
|
|
101
|
-
json(res, 200, { ok: true, ...summary(records, f,
|
|
108
|
+
json(res, 200, { ok: true, ...summary(records, f, v.role, url.searchParams.get("session"), baseOfKey(ticket.selfTarget), v) });
|
|
102
109
|
});
|
|
103
110
|
};
|
|
104
|
-
/** 一个窗口的全部片段, 时间序: 消息 + 视角 role 自己的断点。
|
|
111
|
+
/** 一个窗口的全部片段, 时间序: 消息 + 视角 role 自己的断点。
|
|
112
|
+
* 给的是**待渲染**的片段 —— 窗口通常只上屏最后几十条, 先按时间切片再渲染,
|
|
113
|
+
* 没上屏的那几百轮就一个字都不用排。 */
|
|
105
114
|
const windowFrags = (records, dir, v, now) => {
|
|
106
115
|
const msgs = convMessages(allMessages(records, now), v.role, v.conv, v.with || undefined)
|
|
107
116
|
.filter((m) => inSpan(v.span)(m.ts));
|
|
108
117
|
const lo = msgs[0]?.ts ?? Infinity;
|
|
109
118
|
const marks = marksOf(records, v.role).filter((mk) => mk.createdAt >= lo && inSpan(v.span)(mk.createdAt));
|
|
110
119
|
return [
|
|
111
|
-
...msgs.map((m) => renderMsg(m, records, dir, now)),
|
|
112
|
-
...marks.map((mk) => renderMark(mk, v.role, dir)),
|
|
120
|
+
...msgs.map((m) => ({ ts: m.ts, render: () => renderMsg(m, records, dir, now) })),
|
|
121
|
+
...marks.map((mk) => ({ ts: mk.createdAt, render: () => renderMark(mk, v.role, dir) })),
|
|
113
122
|
].sort((a, b) => a.ts - b.ts);
|
|
114
123
|
};
|
|
115
124
|
const viewOf = (records, dir, ticket, url) => {
|
|
@@ -143,10 +152,24 @@ export const createChatRoutes = (store, facts) => {
|
|
|
143
152
|
const raw = url.searchParams.get("limit");
|
|
144
153
|
const n = raw === null ? Number.NaN : Number(raw);
|
|
145
154
|
const limit = Number.isFinite(n) && n >= 0 ? n : DEFAULT_LIMIT;
|
|
146
|
-
const shown = limit === 0 ? all : all.slice(-limit);
|
|
155
|
+
const shown = (limit === 0 ? all : all.slice(-limit)).map((x) => x.render());
|
|
147
156
|
json(res, 200, { ok: true, at: Date.now(), role: v.role, conv: v.conv, total: all.length, truncated: shown.length < all.length, msgs: shown });
|
|
148
157
|
});
|
|
149
158
|
};
|
|
159
|
+
// 票据照旧只证明「拿到过一条真链接」—— 任一有效票据可以看任一轮, 与 msgs 同一口径。
|
|
160
|
+
const tool = (_req, res, url) => {
|
|
161
|
+
if (!resolveTicket(store, url)) {
|
|
162
|
+
json(res, 404, { ok: false, error: NOT_FOUND });
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
const r = store.get(url.searchParams.get("turn") ?? "");
|
|
166
|
+
const html = r && isTurn(r) ? renderToolBody(r, url.searchParams.get("use") ?? "") : undefined;
|
|
167
|
+
if (html === undefined) {
|
|
168
|
+
json(res, 404, { ok: false, error: "未找到该工具调用" });
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
json(res, 200, { ok: true, html });
|
|
172
|
+
};
|
|
150
173
|
// SSE — 一条连接喂两种事件: role (侧栏 + 顶栏 + 页脚) 与 msg (当前窗口的增量)。
|
|
151
174
|
// store.subscribe 的回调在写入路径上, 所以这里只打标记, 由 FLUSH_MS 定时器合并推送:
|
|
152
175
|
// 一次工具结果会连带更新 turn 记录多次, 逐条推会把同一段 HTML 重复渲染。
|
|
@@ -194,7 +217,7 @@ export const createChatRoutes = (store, facts) => {
|
|
|
194
217
|
v ??= viewOf(records, makeDirectory(records, ff), ticket, url);
|
|
195
218
|
if (!v)
|
|
196
219
|
return;
|
|
197
|
-
send("role", summary(records, ff, v.role, url.searchParams.get("session"), baseOfKey(ticket.selfTarget)));
|
|
220
|
+
send("role", summary(records, ff, v.role, url.searchParams.get("session"), baseOfKey(ticket.selfTarget), v));
|
|
198
221
|
};
|
|
199
222
|
/** 这一轮拆出的消息里, 落在当前窗口的那几条。 */
|
|
200
223
|
const pushTurn = (id, records, dir, now) => {
|
|
@@ -239,6 +262,9 @@ export const createChatRoutes = (store, facts) => {
|
|
|
239
262
|
res.write(": ping\n\n");
|
|
240
263
|
}
|
|
241
264
|
catch { /* closed */ } }, PING_MS);
|
|
265
|
+
// 「执行中」的一半来自名册 (pane 的 busy), 而名册变了不会写 store —— 没有这一拍,
|
|
266
|
+
// 最后一次写入带出去的那份旧快照会让灯一直亮着, 别人开工了侧栏也不知道。
|
|
267
|
+
const beat = setInterval(() => { factsAt = 0; roleDirty = true; }, FACTS_MS);
|
|
242
268
|
const unsub = store.subscribe((rec) => {
|
|
243
269
|
if (!isTurn(rec) && !isMark(rec))
|
|
244
270
|
return;
|
|
@@ -255,6 +281,7 @@ export const createChatRoutes = (store, facts) => {
|
|
|
255
281
|
unsub();
|
|
256
282
|
clearInterval(flush);
|
|
257
283
|
clearInterval(ping);
|
|
284
|
+
clearInterval(beat);
|
|
258
285
|
try {
|
|
259
286
|
res.end();
|
|
260
287
|
}
|
|
@@ -290,7 +317,7 @@ export const createChatRoutes = (store, facts) => {
|
|
|
290
317
|
json(res, 200, { ok: true, ...w, chats: w.chats.map((c) => ({ ...c, token: tickets.get(c.base) })) });
|
|
291
318
|
});
|
|
292
319
|
};
|
|
293
|
-
return { page, styles: asset(chatStyles), script: asset(chatScript), role, msgs, events, world };
|
|
320
|
+
return { page, styles: asset(chatStyles), script: asset(chatScript), role, msgs, tool, events, world };
|
|
294
321
|
};
|
|
295
322
|
/** Path → handler map; the daemon registers each, svr dispatches through it. */
|
|
296
323
|
export const chatRouteTable = (routes) => ({
|
|
@@ -300,12 +327,13 @@ export const chatRouteTable = (routes) => ({
|
|
|
300
327
|
"GET /chat/app.js": routes.script,
|
|
301
328
|
"GET /api/role": routes.role,
|
|
302
329
|
"GET /api/msgs": routes.msgs,
|
|
330
|
+
"GET /api/tool": routes.tool,
|
|
303
331
|
"GET /api/role-events": routes.events,
|
|
304
332
|
"GET /api/world": routes.world,
|
|
305
333
|
});
|
|
306
334
|
/** Route keys, single-sourced so the daemon's registration can't drift. */
|
|
307
335
|
export const CHAT_ROUTE_KEYS = [
|
|
308
336
|
"GET /role", "GET /chat", "GET /chat/app.css", "GET /chat/app.js",
|
|
309
|
-
"GET /api/role", "GET /api/msgs", "GET /api/role-events", "GET /api/world",
|
|
337
|
+
"GET /api/role", "GET /api/msgs", "GET /api/tool", "GET /api/role-events", "GET /api/world",
|
|
310
338
|
];
|
|
311
339
|
//# sourceMappingURL=chat-http.js.map
|