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.
- package/.claude-plugin/marketplace.json +3 -3
- package/.claude-plugin/plugin.json +3 -3
- package/CLAUDE.md +14 -14
- package/LICENSE +1 -1
- package/README.md +38 -38
- package/cli/{weclaude.sh → wezard.sh} +40 -35
- package/commands/audit.md +2 -2
- package/commands/wrc.md +2 -2
- package/config.example.jsonc +24 -11
- package/dist/cli/audit.js +2 -2
- package/dist/cli/audit.js.map +1 -1
- package/dist/cli/init.js +97 -24
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/migrate.js +213 -0
- package/dist/cli/migrate.js.map +1 -0
- package/dist/cli/sync.js +34 -26
- package/dist/cli/sync.js.map +1 -1
- package/dist/daemon/approval.js +45 -21
- package/dist/daemon/approval.js.map +1 -1
- package/dist/daemon/audit.js +1 -1
- package/dist/daemon/audit.js.map +1 -1
- package/dist/daemon/cc-bridge.js +1 -1
- package/dist/daemon/cc-bridge.js.map +1 -1
- package/dist/daemon/cfg-sync.js +4 -4
- package/dist/daemon/cfg-sync.js.map +1 -1
- package/dist/daemon/claim.js +2 -2
- package/dist/daemon/claim.js.map +1 -1
- package/dist/daemon/danger.js +102 -0
- package/dist/daemon/danger.js.map +1 -0
- package/dist/daemon/inbound.js +42 -40
- package/dist/daemon/inbound.js.map +1 -1
- package/dist/daemon/index.js +7 -7
- package/dist/daemon/index.js.map +1 -1
- package/dist/daemon/mirror-bridge.js +18 -12
- package/dist/daemon/mirror-bridge.js.map +1 -1
- package/dist/daemon/pending.js +4 -0
- package/dist/daemon/pending.js.map +1 -1
- package/dist/daemon/quota.js +1 -1
- package/dist/daemon/quota.js.map +1 -1
- package/dist/daemon/session-scan.js +88 -26
- package/dist/daemon/session-scan.js.map +1 -1
- package/dist/daemon/spawn-tmux.js +5 -5
- package/dist/daemon/spawn-tmux.js.map +1 -1
- package/dist/daemon/usage.js +1 -1
- package/dist/daemon/usage.js.map +1 -1
- package/dist/daemon/wedoc.js +2 -2
- package/dist/daemon/wedoc.js.map +1 -1
- package/dist/mcp/server.js +4 -4
- package/dist/mcp/server.js.map +1 -1
- package/dist/shared/config-writer.js +1 -1
- package/dist/shared/config-writer.js.map +1 -1
- package/dist/shared/config.js +32 -19
- package/dist/shared/config.js.map +1 -1
- package/dist/shared/svr-token.js +22 -0
- package/dist/shared/svr-token.js.map +1 -0
- package/dist/svr/index.js +16 -31
- package/dist/svr/index.js.map +1 -1
- package/hooks/pre-tool-use.sh +24 -24
- package/launchd/{com.weclaude.daemon.plist.template → com.wezard.daemon.plist.template} +3 -3
- package/package.json +17 -14
- package/scripts/install.sh +15 -8
- package/scripts/postinstall.sh +2 -2
- package/scripts/uninstall.sh +35 -27
- package/systemd/{weclaude.service.template → wezard.service.template} +3 -3
- package/web/chat.css +13 -5
package/dist/daemon/cfg-sync.js
CHANGED
|
@@ -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 (`~/.
|
|
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
|
|
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 = "~/.
|
|
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 `[
|
|
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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"}
|
package/dist/daemon/claim.js
CHANGED
|
@@ -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`。接下来 `
|
|
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
|
-
"后续无需再手动授权。如要再添加成员,请编辑 `~/.
|
|
87
|
+
"后续无需再手动授权。如要再添加成员,请编辑 `~/.wezard/config.jsonc`。",
|
|
88
88
|
},
|
|
89
89
|
});
|
|
90
90
|
}
|
package/dist/daemon/claim.js.map
CHANGED
|
@@ -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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"}
|
package/dist/daemon/inbound.js
CHANGED
|
@@ -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 授权状态 + 对应 `
|
|
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会话中绑定本群聊: \`/
|
|
62
|
+
`在已有claude会话中绑定本群聊: \`/wezard:wrc chat:${msg.chatid}\``,
|
|
63
63
|
].join("\n");
|
|
64
64
|
}
|
|
65
65
|
return [
|
|
66
66
|
`会话id: \`${sender}\` ${mark(sender)}`,
|
|
67
|
-
`在已有claude会话中绑定本单聊: \`/
|
|
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
|
-
"*
|
|
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 "[
|
|
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
|
-
"[
|
|
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 "[
|
|
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
|
-
`[
|
|
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 "@
|
|
280
|
-
// a DM user typing "@
|
|
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 "@
|
|
282
|
+
// guard `(?![A-Za-z0-9_])` keeps identifiers like "@wezard-foo" intact
|
|
283
283
|
// while allowing CJK / punctuation right after.
|
|
284
|
-
|
|
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
|
|
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
|
-
// "@
|
|
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
|
|
363
|
-
// are excluded (would echo
|
|
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 = [`[
|
|
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 `[
|
|
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 "[
|
|
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 `[
|
|
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 = `[
|
|
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
|
-
? `[
|
|
611
|
-
: `[
|
|
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 = `[
|
|
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 = `[
|
|
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, "[
|
|
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" : `[
|
|
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, "[
|
|
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" : `[
|
|
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, "[
|
|
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 窗口" : `[
|
|
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 = `[
|
|
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, "[
|
|
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 = `[
|
|
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, "[
|
|
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, `[
|
|
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, `[
|
|
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
|
-
: `[
|
|
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, `[
|
|
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, "[
|
|
869
|
+
await client.replyStream(frame, msg.msgid, "[wezard] 图片下载失败", true);
|
|
868
870
|
}
|
|
869
871
|
catch { /* ignore */ }
|
|
870
872
|
return;
|