wezard 0.3.3 → 1.0.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.
Files changed (65) hide show
  1. package/.claude-plugin/marketplace.json +3 -3
  2. package/.claude-plugin/plugin.json +3 -3
  3. package/CLAUDE.md +14 -14
  4. package/LICENSE +1 -1
  5. package/README.md +38 -38
  6. package/cli/{weclaude.sh → wezard.sh} +40 -35
  7. package/commands/audit.md +2 -2
  8. package/commands/wrc.md +2 -2
  9. package/config.example.jsonc +24 -11
  10. package/dist/cli/audit.js +2 -2
  11. package/dist/cli/audit.js.map +1 -1
  12. package/dist/cli/init.js +97 -24
  13. package/dist/cli/init.js.map +1 -1
  14. package/dist/cli/migrate.js +213 -0
  15. package/dist/cli/migrate.js.map +1 -0
  16. package/dist/cli/sync.js +34 -26
  17. package/dist/cli/sync.js.map +1 -1
  18. package/dist/daemon/approval.js +45 -21
  19. package/dist/daemon/approval.js.map +1 -1
  20. package/dist/daemon/audit.js +1 -1
  21. package/dist/daemon/audit.js.map +1 -1
  22. package/dist/daemon/cc-bridge.js +1 -1
  23. package/dist/daemon/cc-bridge.js.map +1 -1
  24. package/dist/daemon/cfg-sync.js +4 -4
  25. package/dist/daemon/cfg-sync.js.map +1 -1
  26. package/dist/daemon/claim.js +2 -2
  27. package/dist/daemon/claim.js.map +1 -1
  28. package/dist/daemon/danger.js +102 -0
  29. package/dist/daemon/danger.js.map +1 -0
  30. package/dist/daemon/inbound.js +42 -40
  31. package/dist/daemon/inbound.js.map +1 -1
  32. package/dist/daemon/index.js +7 -7
  33. package/dist/daemon/index.js.map +1 -1
  34. package/dist/daemon/mirror-bridge.js +18 -12
  35. package/dist/daemon/mirror-bridge.js.map +1 -1
  36. package/dist/daemon/pending.js +4 -0
  37. package/dist/daemon/pending.js.map +1 -1
  38. package/dist/daemon/quota.js +1 -1
  39. package/dist/daemon/quota.js.map +1 -1
  40. package/dist/daemon/session-scan.js +88 -26
  41. package/dist/daemon/session-scan.js.map +1 -1
  42. package/dist/daemon/spawn-tmux.js +5 -5
  43. package/dist/daemon/spawn-tmux.js.map +1 -1
  44. package/dist/daemon/usage.js +1 -1
  45. package/dist/daemon/usage.js.map +1 -1
  46. package/dist/daemon/wedoc.js +2 -2
  47. package/dist/daemon/wedoc.js.map +1 -1
  48. package/dist/mcp/server.js +4 -4
  49. package/dist/mcp/server.js.map +1 -1
  50. package/dist/shared/config-writer.js +1 -1
  51. package/dist/shared/config-writer.js.map +1 -1
  52. package/dist/shared/config.js +32 -19
  53. package/dist/shared/config.js.map +1 -1
  54. package/dist/shared/svr-token.js +22 -0
  55. package/dist/shared/svr-token.js.map +1 -0
  56. package/dist/svr/index.js +16 -31
  57. package/dist/svr/index.js.map +1 -1
  58. package/hooks/pre-tool-use.sh +24 -24
  59. package/launchd/{com.weclaude.daemon.plist.template → com.wezard.daemon.plist.template} +3 -3
  60. package/package.json +17 -14
  61. package/scripts/install.sh +15 -8
  62. package/scripts/postinstall.sh +2 -2
  63. package/scripts/uninstall.sh +35 -27
  64. package/systemd/{weclaude.service.template → wezard.service.template} +3 -3
  65. package/web/chat.css +13 -5
@@ -6,7 +6,7 @@
6
6
  // one CLI is invisible to the other. This module folds them back together.
7
7
  //
8
8
  // Merge is a real 3-way merge, not a copy: `git merge-file` against a base
9
- // snapshot of the last synced content (`~/.weclaude/cfgsync/<project>/base/`).
9
+ // snapshot of the last synced content (`~/.wezard/cfgsync/<project>/base/`).
10
10
  // Both sides' independent edits survive; only genuinely overlapping edits
11
11
  // conflict, and those files are reported and left untouched.
12
12
  //
@@ -20,14 +20,14 @@ import { expandHome } from "../shared/paths.js";
20
20
  import { activeBackends } from "../shared/cli-backends.js";
21
21
  // Subdirectories synced under each backend's project config dir. settings.json
22
22
  // is excluded on purpose: hook paths, plugin roots and MCP entries are per-CLI,
23
- // and weclaude's own `cli/sync.ts` owns the hook block inside them.
23
+ // and wezard's own `cli/sync.ts` owns the hook block inside them.
24
24
  const SUBDIRS = ["skills", "commands", "agents"];
25
25
  // Logical key for the per-CLI memory file. `CLAUDE.md` and `CODEBUDDY.md` are
26
26
  // the same asset under two names, so they collapse to one key and each side
27
27
  // materializes it under its own filename.
28
28
  const MEMORY_KEY = "MEMORY.md";
29
29
  const MAX_BYTES = 512 * 1024;
30
- const CFGSYNC_ROOT = "~/.weclaude/cfgsync";
30
+ const CFGSYNC_ROOT = "~/.wezard/cfgsync";
31
31
  // ── pure path algebra ───────────────────────────────────────────────────
32
32
  const isCodebuddy = (name) => name === "codebuddy";
33
33
  const projectRootOf = (b, cwd) => ({
@@ -223,7 +223,7 @@ const ICON = {
223
223
  };
224
224
  export const renderSyncReport = (r) => {
225
225
  if (r.roots.length < 2) {
226
- return `[weclaude] /cfgsync: 本项目只发现 ${r.roots.length} 个 CLI 配置树 (${r.roots.join(", ") || "无"}),无需同步。`;
226
+ return `[wezard] /cfgsync: 本项目只发现 ${r.roots.length} 个 CLI 配置树 (${r.roots.join(", ") || "无"}),无需同步。`;
227
227
  }
228
228
  const changed = r.items.filter((i) => i.status !== "same" && i.status !== "skip");
229
229
  const head = `📐 项目配置同步 \`${r.cwd}\`\nCLI: ${r.roots.join(" ⇄ ")}`;
@@ -1 +1 @@
1
- {"version":3,"file":"cfg-sync.js","sourceRoot":"","sources":["../../daemon/cfg-sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cfg-sync.js","sourceRoot":"","sources":["../../daemon/cfg-sync.ts"],"names":[],"mappings":"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"}
@@ -65,7 +65,7 @@ export const ackClaim = async (client, principal, log) => {
65
65
  msgtype: "markdown",
66
66
  markdown: {
67
67
  content: "✅ **已设为默认会话**\n\n" +
68
- "你已被加入 `allowFrom`。接下来 `weclaude init` 会触发一个真实授权演示——留意按钮卡片。",
68
+ "你已被加入 `allowFrom`。接下来 `wezard init` 会触发一个真实授权演示——留意按钮卡片。",
69
69
  },
70
70
  });
71
71
  }
@@ -84,7 +84,7 @@ export const ackAutoClaim = async (client, principal, log) => {
84
84
  markdown: {
85
85
  content: "🛡️ **已自动设为超级管理员**\n\n" +
86
86
  `首位单聊用户 \`${principal}\` 被写入 \`defaultChat\` 与 \`wrc.allowFrom\`,` +
87
- "后续无需再手动授权。如要再添加成员,请编辑 `~/.weclaude/config.jsonc`。",
87
+ "后续无需再手动授权。如要再添加成员,请编辑 `~/.wezard/config.jsonc`。",
88
88
  },
89
89
  });
90
90
  }
@@ -1 +1 @@
1
- {"version":3,"file":"claim.js","sourceRoot":"","sources":["../../daemon/claim.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"claim.js","sourceRoot":"","sources":["../../daemon/claim.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,102 @@
1
+ // ── 内置命令名单 (Bash / 任何带 command 的工具) ────────────────────────
2
+ const CMD_RULES = [
3
+ ["删除文件 rm", /\brm\b/],
4
+ ["删除目录 rmdir", /\brmdir\b/],
5
+ ["批量删除 find -delete", /\bfind\b[\s\S]*(-delete|-exec\s+rm)\b/],
6
+ ["管道删除 xargs rm", /\bxargs\b[\s\S]*\brm\b/],
7
+ ["清空文件 truncate", /\btruncate\b/],
8
+ ["裸设备写入 dd", /\bdd\s+(if|of)=/],
9
+ ["格式化 mkfs", /\bmkfs\b|\bdiskutil\s+(erase|partition)/],
10
+ ["重定向到设备", />\s*\/dev\/(?!null\b|stdout\b|stderr\b)/],
11
+ ["提权 sudo", /\bsudo\b|\bsu\s+-/],
12
+ ["递归改权限", /\bch(mod|own)\b[\s\S]*(-R|\b777\b)/],
13
+ ["强制杀进程", /\bkill\s+-9\b|\bkillall\b|\bpkill\b/],
14
+ ["关机/重启", /\b(shutdown|reboot|halt|poweroff)\b/],
15
+ ["服务停用", /\blaunchctl\s+(unload|bootout|remove)\b|\bsystemctl\s+(stop|disable|mask)\b/],
16
+ ["git 强推", /\bgit\b[\s\S]*\bpush\b[\s\S]*(--force|-f\b)/],
17
+ ["git 推送远端", /\bgit\b[\s\S]*\bpush\b/],
18
+ ["git 丢弃改动", /\bgit\s+(reset\s+--hard|clean\b|checkout\s+--\s|restore\b)/],
19
+ ["git 删分支", /\bgit\s+branch\s+-D\b|\bgit\s+push\b[\s\S]*--delete\b/],
20
+ ["发布包", /\bnpm\s+(publish|unpublish)\b|\byarn\s+publish\b|\bpnpm\s+publish\b/],
21
+ ["容器删除", /\bdocker\s+(rm|rmi|system\s+prune|volume\s+rm|compose\s+down)\b/],
22
+ ["k8s 删除", /\bkubectl\s+delete\b/],
23
+ ["基础设施销毁", /\bterraform\s+destroy\b/],
24
+ ["云资源删除", /\baws\s+[\s\S]*\b(rm|rb|delete-|terminate-)|\bgcloud\s+[\s\S]*\bdelete\b/],
25
+ ["GitHub 删除", /\bgh\s+(repo|release|secret|ssh-key)\s+delete\b/],
26
+ ["数据库 DROP/TRUNCATE", /\b(drop|truncate)\s+(table|database|schema|index)\b/i],
27
+ ["无条件 DELETE", /\bdelete\s+from\b(?![\s\S]*\bwhere\b)/i],
28
+ ["Redis 清库", /\bflush(all|db)\b/i],
29
+ ["下载即执行", /\b(curl|wget)\b[\s\S]*\|\s*(sudo\s+)?(ba)?sh\b/],
30
+ ["fork 炸弹", /:\(\)\s*\{.*\|.*&.*\}/],
31
+ ["清历史", /\bhistory\s+-c\b|\bdefaults\s+delete\b/],
32
+ ];
33
+ // ── 内置工具名名单 (MCP / 内置工具, 按名字判定) ────────────────────────
34
+ const TOOL_RULES = [
35
+ ["删除类工具", /(^|_|__|\b)(delete|remove|destroy|drop|purge|revoke|uninstall)/i],
36
+ ];
37
+ // ── 内置敏感路径名单 (任何工具的任意字符串入参) ────────────────────────
38
+ const PATH_RULES = [
39
+ ["SSH 密钥", /(^|\/)\.ssh\/|id_(rsa|ed25519|ecdsa)\b|authorized_keys\b/],
40
+ ["凭据文件", /(^|\/)\.(env|npmrc|netrc|aws|gnupg)\b|credentials\b|secrets?\.(json|ya?ml|env)\b/],
41
+ ["系统目录", /^\/(etc|System|Library\/LaunchDaemons|usr\/bin|bin|sbin)\//],
42
+ ["家目录根/根目录", /^\s*(~|\/|\$HOME)\/?\s*$/],
43
+ ];
44
+ const compile = (sources) => sources.flatMap((s) => {
45
+ try {
46
+ return [[`自定义:${s}`, new RegExp(s, "i")]];
47
+ }
48
+ catch {
49
+ return []; // 坏正则不应该让整条审批链挂掉
50
+ }
51
+ });
52
+ const firstHit = (rules, text) => {
53
+ const hit = rules.find(([, re]) => re.test(text));
54
+ return hit ? { rule: hit[0] } : undefined;
55
+ };
56
+ // 递归收集入参里的字符串叶子 (深度/数量有界 — 入参可能很大)。
57
+ const MAX_NODES = 200;
58
+ const strings = (v, depth = 0, acc = []) => {
59
+ if (acc.length >= MAX_NODES || depth > 4)
60
+ return acc;
61
+ if (typeof v === "string") {
62
+ acc.push(v);
63
+ return acc;
64
+ }
65
+ if (Array.isArray(v)) {
66
+ v.forEach((x) => strings(x, depth + 1, acc));
67
+ return acc;
68
+ }
69
+ if (v && typeof v === "object") {
70
+ Object.values(v).forEach((x) => strings(x, depth + 1, acc));
71
+ }
72
+ return acc;
73
+ };
74
+ // command 类入参: Bash.command, 以及任何叫 command/script/cmd 的字段。
75
+ const COMMAND_KEYS = new Set(["command", "cmd", "script", "shell"]);
76
+ const commandsOf = (input) => {
77
+ if (!input || typeof input !== "object")
78
+ return [];
79
+ return Object.entries(input)
80
+ .filter(([k, v]) => COMMAND_KEYS.has(k) && typeof v === "string")
81
+ .map(([, v]) => v);
82
+ };
83
+ // 路径类入参: 只看看起来像路径的字符串, 避免拿正文去撞路径规则。
84
+ const pathish = (s) => s.length < 512 && /^[~$/.]|\//.test(s);
85
+ /** 判定一次工具调用是否落在危险名单里。undefined = 安全。 */
86
+ export const dangerOf = (cfg, toolName, toolInput) => {
87
+ const d = cfg.approval.danger;
88
+ if (!d.enabled)
89
+ return undefined;
90
+ const cmds = commandsOf(toolInput);
91
+ const allow = compile(d.allowPatterns);
92
+ // 白名单优先: 任一命令被豁免则整条调用豁免 (显式覆盖内置的宽规则)。
93
+ if (allow.length > 0 && [toolName, ...cmds].some((t) => firstHit(allow, t)))
94
+ return undefined;
95
+ const cmdRules = [...(d.builtin ? CMD_RULES : []), ...compile(d.commandPatterns)];
96
+ const toolRules = [...(d.builtin ? TOOL_RULES : []), ...compile(d.toolPatterns)];
97
+ const pathRules = [...(d.builtin ? PATH_RULES : []), ...compile(d.pathPatterns)];
98
+ return (firstHit(toolRules, toolName) ??
99
+ cmds.reduce((acc, c) => acc ?? firstHit(cmdRules, c), undefined) ??
100
+ strings(toolInput).filter(pathish).reduce((acc, s) => acc ?? firstHit(pathRules, s), undefined));
101
+ };
102
+ //# sourceMappingURL=danger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"danger.js","sourceRoot":"","sources":["../../daemon/danger.ts"],"names":[],"mappings":"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"}
@@ -47,7 +47,7 @@ const authPrincipals = (msg) => {
47
47
  };
48
48
  // "会话id" = chat-binding (session/mirror key); "权限id" = either the group
49
49
  // OR the sender — allowFrom passes if any one of them is whitelisted.
50
- // Also surfaces per-id 授权状态 + 对应 `weclaude mirror` CLI 参数 (vid:/chatid:),
50
+ // Also surfaces per-id 授权状态 + 对应 `wezard mirror` CLI 参数 (vid:/chatid:),
51
51
  // so users can copy-paste straight into a terminal to bind a Claude session.
52
52
  const renderIds = (msg, cfg) => {
53
53
  const allowed = new Set(cfg.wrc.allowFrom.map((e) => sanitizeId(e)));
@@ -59,12 +59,12 @@ const renderIds = (msg, cfg) => {
59
59
  `群: \`${chat}\` ${mark(chat)}`,
60
60
  `发送者: \`${sender}\` ${mark(sender)}`,
61
61
  `(allowFrom 任一通过即可)`,
62
- `在已有claude会话中绑定本群聊: \`/weclaude:wrc chat:${msg.chatid}\``,
62
+ `在已有claude会话中绑定本群聊: \`/wezard:wrc chat:${msg.chatid}\``,
63
63
  ].join("\n");
64
64
  }
65
65
  return [
66
66
  `会话id: \`${sender}\` ${mark(sender)}`,
67
- `在已有claude会话中绑定本单聊: \`/weclaude:wrc user:${msg.from.userid}\``,
67
+ `在已有claude会话中绑定本单聊: \`/wezard:wrc user:${msg.from.userid}\``,
68
68
  ].join("\n");
69
69
  };
70
70
  const isIdCommand = (text) => text.trim() === "/id";
@@ -119,7 +119,7 @@ const isSkillBCommand = (text) => text.trim() === "/skill-b";
119
119
  // broadcast (natural-language, zh+en). Anything not matching a command is a
120
120
  // prompt forwarded to the bound Claude session.
121
121
  const renderHelp = () => [
122
- "*weclaude 命令*",
122
+ "*wezard 命令*",
123
123
  "",
124
124
  "▎会话",
125
125
  "`/new` 新开会话并绑定本聊天 (沿用当前会话的 CLI)",
@@ -205,7 +205,7 @@ const parseSessionsCommand = (text) => {
205
205
  // session currently mirrored to this chat's target (if any) is flagged.
206
206
  const renderSessionsList = (sessions, currentSid) => {
207
207
  if (sessions.length === 0)
208
- return "[weclaude] 未发现正在运行的 Claude 会话";
208
+ return "[wezard] 未发现正在运行的 Claude 会话";
209
209
  // Only annotate the CLI when the list actually spans more than one — with a
210
210
  // single backend the tag is pure noise on every row.
211
211
  const mixed = new Set(sessions.map((s) => s.cli)).size > 1;
@@ -216,7 +216,7 @@ const renderSessionsList = (sessions, currentSid) => {
216
216
  return `${s.label || "▫️"} \`${s.sessionId.slice(0, 8)}\` ${dir}${cli}${here}`;
217
217
  });
218
218
  return [
219
- "[weclaude] 正在运行的会话:",
219
+ "[wezard] 正在运行的会话:",
220
220
  ...lines,
221
221
  "> 切换:`/sessions <emoji 或 id>`,如 `/sessions 🐼`",
222
222
  ].join("\n");
@@ -234,7 +234,7 @@ const clip = (s, n) => (s.length > n ? `${s.slice(0, n)}…` : s);
234
234
  // visually merge into the next peer.
235
235
  const renderPeers = (peers) => {
236
236
  if (peers.length === 0)
237
- return "[weclaude] 本聊天还没有会话。发消息或 `/new` 建一个。";
237
+ return "[wezard] 本聊天还没有会话。发消息或 `/new` 建一个。";
238
238
  const dirs = uniq(peers.map(dirOf));
239
239
  const clis = uniq(peers.map((p) => p.cli));
240
240
  const shared = [dirs.length === 1 ? dirs[0] : "", clis.length === 1 ? clis[0] : ""].filter(Boolean);
@@ -250,7 +250,7 @@ const renderPeers = (peers) => {
250
250
  ];
251
251
  });
252
252
  return [
253
- `[weclaude] 本聊天的会话 · ${peers.length} 个${shared.length ? ` · ${shared.join(" · ")}` : ""}`,
253
+ `[wezard] 本聊天的会话 · ${peers.length} 个${shared.length ? ` · ${shared.join(" · ")}` : ""}`,
254
254
  "",
255
255
  ...rows,
256
256
  "> 协作:直接说「看下 #fix 的进展并推动它」,AI 会读它的终端并注入指令",
@@ -276,12 +276,14 @@ const stripMentions = (text) => {
276
276
  // DMs can't @ a bot — any "@" the user types is content (e.g. "@src/foo.ts"),
277
277
  // so we only strip mentions in group chats.
278
278
  const isGroup = (msg) => msg.chattype === "group" && !!msg.chatid;
279
- // Always kill "@weclaude" (bot's own name) regardless of chat type / @-count:
280
- // a DM user typing "@weclaude start …" would otherwise leak the mention into
279
+ // Always kill "@wezard" (bot's own name) regardless of chat type / @-count:
280
+ // a DM user typing "@wezard start …" would otherwise leak the mention into
281
281
  // Claude's prompt and get semantically parsed (e.g. spawning wrc). Word-tail
282
- // guard `(?![A-Za-z0-9_])` keeps identifiers like "@weclaude-foo" intact
282
+ // guard `(?![A-Za-z0-9_])` keeps identifiers like "@wezard-foo" intact
283
283
  // while allowing CJK / punctuation right after.
284
- const stripBotName = (text) => text.replace(/[ \t]*@weclaude(?![A-Za-z0-9_])[ \t]*/giu, " ").replace(/[ \t]{2,}/g, " ").trim();
284
+ // `weclaude` stays in the alternation: the bot's WeCom display name is chosen
285
+ // by the user, not by us, so pre-rename bots are still literally "@weclaude".
286
+ const stripBotName = (text) => text.replace(/[ \t]*@(?:wezard|weclaude)(?![A-Za-z0-9_])[ \t]*/giu, " ").replace(/[ \t]{2,}/g, " ").trim();
285
287
  const maybeStripMentions = (msg, text) => {
286
288
  const cleaned = stripBotName(text);
287
289
  return isGroup(msg) ? stripMentions(cleaned) : cleaned;
@@ -343,7 +345,7 @@ const isLastResponseQuote = (target, quoted) => {
343
345
  const withQuote = (msg, text) => {
344
346
  if (!msg.quote)
345
347
  return text;
346
- // Drop the quote when the user is replying to weclaude's most recent message
348
+ // Drop the quote when the user is replying to wezard's most recent message
347
349
  // in this chat — claude already has that turn in its context, surfacing it
348
350
  // again is redundant noise. Older self-quotes still flow through (the user
349
351
  // is genuinely pointing back to something earlier).
@@ -357,10 +359,10 @@ const withQuote = (msg, text) => {
357
359
  // - Normal: strip the bot @mention, attach any quote as a markdown context prefix.
358
360
  // - Pure-quote re-trigger: when the user adds NO new text and just quotes a
359
361
  // message, promote the quoted message to the body (strip its @mention so
360
- // "@weclaude /usage" → "/usage" hits the command path). WeCom silently dedups
362
+ // "@wezard /usage" → "/usage" hits the command path). WeCom silently dedups
361
363
  // identical text sends, so re-quoting the same command is the only way to
362
- // re-fire it — this makes that work. Self-quotes of weclaude's own last reply
363
- // are excluded (would echo weclaude's text back as a command).
364
+ // re-fire it — this makes that work. Self-quotes of wezard's own last reply
365
+ // are excluded (would echo wezard's text back as a command).
364
366
  // Also extracts the leading `#tag` (if any) from the effective body; the
365
367
  // returned `text` has the tag stripped so command matchers see clean
366
368
  // "/new"/"/pwd"/etc.
@@ -428,7 +430,7 @@ export const installInboundRouter = (client, cfg, log, bridge, sourcePath) => {
428
430
  const renderPwd = (who) => {
429
431
  if ("getCwd" in bridge) {
430
432
  const { runningCwd, pendingCwd, defaultCwd } = bridge.getCwd(who);
431
- const lines = [`[weclaude] 📂 当前项目: \`${runningCwd}\``];
433
+ const lines = [`[wezard] 📂 当前项目: \`${runningCwd}\``];
432
434
  if (pendingCwd && pendingCwd !== runningCwd) {
433
435
  lines.push(`下次切换: \`${pendingCwd}\` (使用 /new 或 /clear 生效)`);
434
436
  }
@@ -437,7 +439,7 @@ export const installInboundRouter = (client, cfg, log, bridge, sourcePath) => {
437
439
  lines.push("> 切换其他项目: 让 AI 调用 `cd` MCP 工具");
438
440
  return lines.join("\n");
439
441
  }
440
- return `[weclaude] 📂 当前项目: \`${expandHome(cfg.wrc.cwd)}\` (headless mode, 全局默认)`;
442
+ return `[wezard] 📂 当前项目: \`${expandHome(cfg.wrc.cwd)}\` (headless mode, 全局默认)`;
441
443
  };
442
444
  // Mirror-only auto-spawn / /new helper. Routes through bridge.newSession
443
445
  // which kills the old pane, spawns fresh in pendingCwd ?? runningCwd ??
@@ -447,11 +449,11 @@ export const installInboundRouter = (client, cfg, log, bridge, sourcePath) => {
447
449
  // status bar (e.g. `#docs` → window `docs`, not the principal slug).
448
450
  const spawnSession = async (who, cli) => {
449
451
  if (!("newSession" in bridge))
450
- return "[weclaude] /new only available in mirror mode";
452
+ return "[wezard] /new only available in mirror mode";
451
453
  const tag = tagOf(who);
452
454
  const r = await bridge.newSession(who, tag || who, cli);
453
455
  if (!r.ok)
454
- return `[weclaude] /new failed: ${r.reason ?? "unknown"}`;
456
+ return `[wezard] /new failed: ${r.reason ?? "unknown"}`;
455
457
  return `✅ 新会话已建立 \`${r.sessionId}\``;
456
458
  };
457
459
  // 同一 `#tag` 的两条消息会并发落进 gate,双双判定「未附着」→ 双 spawn,后者
@@ -584,7 +586,7 @@ export const installInboundRouter = (client, cfg, log, bridge, sourcePath) => {
584
586
  body = renderUsageReport(computeUsage());
585
587
  }
586
588
  catch (e) {
587
- body = `[weclaude] /cost failed: ${e.message}`;
589
+ body = `[wezard] /cost failed: ${e.message}`;
588
590
  }
589
591
  await replyText(frame, msg, who, body);
590
592
  return { stop: true };
@@ -607,8 +609,8 @@ export const installInboundRouter = (client, cfg, log, bridge, sourcePath) => {
607
609
  let body;
608
610
  if (!mirror) {
609
611
  body = audit.tag
610
- ? `[weclaude] /audit: 未找到 tag \`${audit.tag}\` 对应的 Claude 会话。`
611
- : `[weclaude] /audit: 未找到 ${who} 绑定的 Claude 会话。先 \`/new\` 或用 \`weclaude mirror\` 绑定后再试。`;
612
+ ? `[wezard] /audit: 未找到 tag \`${audit.tag}\` 对应的 Claude 会话。`
613
+ : `[wezard] /audit: 未找到 ${who} 绑定的 Claude 会话。先 \`/new\` 或用 \`wezard mirror\` 绑定后再试。`;
612
614
  }
613
615
  else {
614
616
  try {
@@ -619,7 +621,7 @@ export const installInboundRouter = (client, cfg, log, bridge, sourcePath) => {
619
621
  });
620
622
  }
621
623
  catch (e) {
622
- body = `[weclaude] /audit failed: ${e.message}`;
624
+ body = `[wezard] /audit failed: ${e.message}`;
623
625
  }
624
626
  }
625
627
  await replyText(frame, msg, who, body);
@@ -681,7 +683,7 @@ export const installInboundRouter = (client, cfg, log, bridge, sourcePath) => {
681
683
  log.info({ who, limits: report.limits.length }, "/usage panel: done");
682
684
  }
683
685
  catch (e) {
684
- body = `[weclaude] /usage failed: ${e.message}`;
686
+ body = `[wezard] /usage failed: ${e.message}`;
685
687
  log.error({ who, err: e.message }, "/usage panel: failed");
686
688
  }
687
689
  await replyText(frame, msg, who, body);
@@ -706,11 +708,11 @@ export const installInboundRouter = (client, cfg, log, bridge, sourcePath) => {
706
708
  // currently doing. Mirror-mode only; bails cleanly when no attachment.
707
709
  if (isStopCommand(text)) {
708
710
  if (!("interruptPane" in bridge)) {
709
- await replyText(frame, msg, who, "[weclaude] /stop only available in mirror mode");
711
+ await replyText(frame, msg, who, "[wezard] /stop only available in mirror mode");
710
712
  }
711
713
  else {
712
714
  const r = await bridge.interruptPane(who);
713
- await replyText(frame, msg, who, r.ok ? "✅ Esc sent" : `[weclaude] /stop failed: ${r.reason ?? "unknown"}`);
715
+ await replyText(frame, msg, who, r.ok ? "✅ Esc sent" : `[wezard] /stop failed: ${r.reason ?? "unknown"}`);
714
716
  }
715
717
  return { stop: true };
716
718
  }
@@ -719,11 +721,11 @@ export const installInboundRouter = (client, cfg, log, bridge, sourcePath) => {
719
721
  // the input box. Mirror-mode only; bails cleanly when no attachment.
720
722
  if (isEnterCommand(text)) {
721
723
  if (!("submitPane" in bridge)) {
722
- await replyText(frame, msg, who, "[weclaude] /n only available in mirror mode");
724
+ await replyText(frame, msg, who, "[wezard] /n only available in mirror mode");
723
725
  }
724
726
  else {
725
727
  const r = await bridge.submitPane(who);
726
- await replyText(frame, msg, who, r.ok ? "✅ Enter sent" : `[weclaude] /n failed: ${r.reason ?? "unknown"}`);
728
+ await replyText(frame, msg, who, r.ok ? "✅ Enter sent" : `[wezard] /n failed: ${r.reason ?? "unknown"}`);
727
729
  }
728
730
  return { stop: true };
729
731
  }
@@ -732,11 +734,11 @@ export const installInboundRouter = (client, cfg, log, bridge, sourcePath) => {
732
734
  // only; routed by `#tag` like any other session command.
733
735
  if (isRevealCommand(text)) {
734
736
  if (!("revealPane" in bridge)) {
735
- await replyText(frame, msg, who, "[weclaude] /reveal only available in mirror mode");
737
+ await replyText(frame, msg, who, "[wezard] /reveal only available in mirror mode");
736
738
  }
737
739
  else {
738
740
  const r = await bridge.revealPane(who);
739
- await replyText(frame, msg, who, r.ok ? "✅ 已切到本会话的 tmux 窗口" : `[weclaude] /reveal failed: ${r.reason ?? "unknown"}`);
741
+ await replyText(frame, msg, who, r.ok ? "✅ 已切到本会话的 tmux 窗口" : `[wezard] /reveal failed: ${r.reason ?? "unknown"}`);
740
742
  }
741
743
  return { stop: true };
742
744
  }
@@ -751,7 +753,7 @@ export const installInboundRouter = (client, cfg, log, bridge, sourcePath) => {
751
753
  body = renderSyncReport(await syncProjectConfig(cwd, cs.apply));
752
754
  }
753
755
  catch (e) {
754
- body = `[weclaude] /cfgsync failed: ${e.message}`;
756
+ body = `[wezard] /cfgsync failed: ${e.message}`;
755
757
  }
756
758
  log.info({ who, cwd, apply: cs.apply }, "/cfgsync");
757
759
  await replyText(frame, msg, who, body);
@@ -761,7 +763,7 @@ export const installInboundRouter = (client, cfg, log, bridge, sourcePath) => {
761
763
  // live busy state. Read-only, mirror-mode only.
762
764
  if (isPeersCommand(text)) {
763
765
  if (!("peers" in bridge)) {
764
- await replyText(frame, msg, who, "[weclaude] /peers only available in mirror mode");
766
+ await replyText(frame, msg, who, "[wezard] /peers only available in mirror mode");
765
767
  return { stop: true };
766
768
  }
767
769
  let body;
@@ -769,7 +771,7 @@ export const installInboundRouter = (client, cfg, log, bridge, sourcePath) => {
769
771
  body = renderPeers(await bridge.peers(who));
770
772
  }
771
773
  catch (e) {
772
- body = `[weclaude] /peers failed: ${e.message}`;
774
+ body = `[wezard] /peers failed: ${e.message}`;
773
775
  }
774
776
  await replyText(frame, msg, who, body);
775
777
  return { stop: true };
@@ -781,7 +783,7 @@ export const installInboundRouter = (client, cfg, log, bridge, sourcePath) => {
781
783
  const sc = parseSessionsCommand(text);
782
784
  if (sc) {
783
785
  if (!("attach" in bridge)) {
784
- await replyText(frame, msg, who, "[weclaude] /sessions only available in mirror mode");
786
+ await replyText(frame, msg, who, "[wezard] /sessions only available in mirror mode");
785
787
  return { stop: true };
786
788
  }
787
789
  let sessions = [];
@@ -800,17 +802,17 @@ export const installInboundRouter = (client, cfg, log, bridge, sourcePath) => {
800
802
  const hit = matchSession(sessions, sc.arg);
801
803
  if (!hit) {
802
804
  const avail = sessions.map((s) => `${s.label || "▫️"} ${s.sessionId.slice(0, 8)}`).join("、") || "无";
803
- await replyText(frame, msg, who, `[weclaude] 未找到会话 \`${sc.arg}\`。可用:${avail}`);
805
+ await replyText(frame, msg, who, `[wezard] 未找到会话 \`${sc.arg}\`。可用:${avail}`);
804
806
  return { stop: true };
805
807
  }
806
808
  if (hit.sessionId === currentSid) {
807
- await replyText(frame, msg, who, `[weclaude] 已经在该会话 ${hit.label} \`${hit.sessionId.slice(0, 8)}\``);
809
+ await replyText(frame, msg, who, `[wezard] 已经在该会话 ${hit.label} \`${hit.sessionId.slice(0, 8)}\``);
808
810
  return { stop: true };
809
811
  }
810
812
  const att = bridge.attach({ sessionId: hit.sessionId, jsonlPath: hit.jsonlPath, target: who, tmuxPane: hit.tmuxPane, tmuxSession: hit.tmuxSession, cwd: hit.cwd });
811
813
  await replyText(frame, msg, who, att.ok
812
814
  ? `✅ 已切到 ${hit.label} \`${hit.sessionId.slice(0, 8)}\` (${hit.cwd})`
813
- : `[weclaude] 切换失败: ${att.reason ?? "unknown"}`);
815
+ : `[wezard] 切换失败: ${att.reason ?? "unknown"}`);
814
816
  return { stop: true };
815
817
  }
816
818
  // Mirror mode but no Claude session attached for this chat yet. Since the
@@ -834,7 +836,7 @@ export const installInboundRouter = (client, cfg, log, bridge, sourcePath) => {
834
836
  catch (e) {
835
837
  log.error({ err: e.message }, "bridge dispatch failed");
836
838
  try {
837
- await client.replyStream(frame, msg.msgid, withTagHeader(who, `[weclaude] error: ${e.message}`), true);
839
+ await client.replyStream(frame, msg.msgid, withTagHeader(who, `[wezard] error: ${e.message}`), true);
838
840
  }
839
841
  catch { /* ignore */ }
840
842
  }
@@ -864,7 +866,7 @@ export const installInboundRouter = (client, cfg, log, bridge, sourcePath) => {
864
866
  const path = await downloadToInbox({ client, log, inboxDir }, msg.image.url, msg.image.aeskey, msg.msgid, 0);
865
867
  if (!path) {
866
868
  try {
867
- await client.replyStream(frame, msg.msgid, "[weclaude] 图片下载失败", true);
869
+ await client.replyStream(frame, msg.msgid, "[wezard] 图片下载失败", true);
868
870
  }
869
871
  catch { /* ignore */ }
870
872
  return;