weclaude 0.0.4 → 0.1.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 (48) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +34 -22
  3. package/cli/{wrc.sh → weclaude.sh} +34 -18
  4. package/commands/wrc.md +4 -4
  5. package/config.example.jsonc +6 -6
  6. package/dist/cli/init.js +10 -10
  7. package/dist/cli/init.js.map +1 -1
  8. package/dist/cli/sync.js +35 -18
  9. package/dist/cli/sync.js.map +1 -1
  10. package/dist/daemon/approval.js +480 -36
  11. package/dist/daemon/approval.js.map +1 -1
  12. package/dist/daemon/cc-bridge.js +37 -20
  13. package/dist/daemon/cc-bridge.js.map +1 -1
  14. package/dist/daemon/claim.js +1 -1
  15. package/dist/daemon/claim.js.map +1 -1
  16. package/dist/daemon/detail.js +500 -0
  17. package/dist/daemon/detail.js.map +1 -0
  18. package/dist/daemon/http.js +2 -1
  19. package/dist/daemon/http.js.map +1 -1
  20. package/dist/daemon/inbound.js +115 -21
  21. package/dist/daemon/inbound.js.map +1 -1
  22. package/dist/daemon/index.js +24 -7
  23. package/dist/daemon/index.js.map +1 -1
  24. package/dist/daemon/mirror-bridge.js +972 -151
  25. package/dist/daemon/mirror-bridge.js.map +1 -1
  26. package/dist/daemon/mirror-store.js +39 -0
  27. package/dist/daemon/mirror-store.js.map +1 -0
  28. package/dist/daemon/pending.js +46 -0
  29. package/dist/daemon/pending.js.map +1 -1
  30. package/dist/daemon/session-cache.js +71 -3
  31. package/dist/daemon/session-cache.js.map +1 -1
  32. package/dist/daemon/spawn-tmux.js +132 -0
  33. package/dist/daemon/spawn-tmux.js.map +1 -0
  34. package/dist/mcp/server.js +104 -65
  35. package/dist/mcp/server.js.map +1 -1
  36. package/dist/shared/config-writer.js +1 -1
  37. package/dist/shared/config.js +34 -20
  38. package/dist/shared/config.js.map +1 -1
  39. package/dist/shared/paths.js +6 -0
  40. package/dist/shared/paths.js.map +1 -1
  41. package/docs/DESIGN-INIT.md +6 -6
  42. package/docs/ONBOARDING.md +25 -25
  43. package/hooks/pre-tool-use.sh +32 -7
  44. package/launchd/{com.cc-wecom.daemon.plist.template → com.weclaude.daemon.plist.template} +3 -3
  45. package/package.json +10 -11
  46. package/scripts/install.sh +6 -6
  47. package/scripts/uninstall.sh +3 -3
  48. package/systemd/{cc-wecom.service.template → weclaude.service.template} +3 -3
@@ -2,14 +2,48 @@
2
2
  // (mode=headless) or the mirror bridge (mode=mirror).
3
3
  import { mkdirSync, writeFileSync } from "node:fs";
4
4
  import { join } from "node:path";
5
- import { expandHome } from "../shared/paths.js";
5
+ import { expandHome, sanitizeId } from "../shared/paths.js";
6
6
  import { tryConsumeClaim, persistClaim, ackClaim } from "./claim.js";
7
- const principal = (msg) => msg.chattype === "group" && msg.chatid ? `chat:${msg.chatid}` : `user:${msg.from.userid}`;
8
- const isAllowed = (cfg, who) => {
7
+ import { spawnTmuxClaude } from "./spawn-tmux.js";
8
+ // Chat-binding key: stable id for "this conversation thread". Used as
9
+ // session-map key, mirror target, defaultChat. NOT used for auth.
10
+ const chatPrincipal = (msg) => msg.chattype === "group" && msg.chatid ? `chat:${msg.chatid}` : `user:${msg.from.userid}`;
11
+ // Auth principals: any-of test against allowFrom. Tiered — allowing a user
12
+ // grants them access in any chat; allowing a group grants every member of
13
+ // that group access. DMs collapse to just the sender.
14
+ const authPrincipals = (msg) => {
15
+ const user = `user:${msg.from.userid}`;
16
+ if (msg.chattype === "group" && msg.chatid)
17
+ return [`chat:${msg.chatid}`, user];
18
+ return [user];
19
+ };
20
+ // "会话id" = chat-binding (session/mirror key); "权限id" = either the group
21
+ // OR the sender — allowFrom passes if any one of them is whitelisted.
22
+ const renderIds = (msg) => {
23
+ const sender = `user:${msg.from.userid}`;
24
+ if (msg.chattype === "group" && msg.chatid) {
25
+ const chat = `chat:${msg.chatid}`;
26
+ return `[weclaude] 会话id: \`${chat}\`\n发送者: \`${sender}\`\n权限id (allowFrom): \`${chat}\` 或 \`${sender}\` 任一即可`;
27
+ }
28
+ return `[weclaude] 会话id / 权限id: \`${sender}\``;
29
+ };
30
+ const isIdCommand = (text) => text.trim() === "/id";
31
+ const isNewCommand = (text) => text.trim() === "/new";
32
+ // Strip any "@<botname>" mention (leading, mid-text, or trailing) so it doesn't
33
+ // leak into claude's prompt. WeCom may place the mention anywhere depending on
34
+ // where the user typed it.
35
+ const stripMentions = (text) => text.replace(/\s*@\S+\s*/gu, " ").replace(/\s+/gu, " ").trim();
36
+ const isAllowed = (cfg, principals) => {
9
37
  if (cfg.wrc.allowFrom.length === 0)
10
38
  return false;
11
- return cfg.wrc.allowFrom.includes(who);
39
+ // Tolerate invisible chars sneaking into hand-edited config (paste artifacts).
40
+ const allowed = new Set(cfg.wrc.allowFrom.map((e) => sanitizeId(e)));
41
+ return principals.some((p) => allowed.has(p));
12
42
  };
43
+ // Mirror mode grants implicit talkback: any chat that's currently a mirror
44
+ // target can post back without being in `allowFrom`. The act of /wrc'ing into
45
+ // that chat is the authorization signal.
46
+ const isMirrorTarget = (bridge, who) => "hasMirrorTarget" in bridge && bridge.hasMirrorTarget(who);
13
47
  // Sniff extension from magic bytes; falls back to .bin. WeCom doesn't always
14
48
  // give us a filename for images, and we want claude's Read tool to recognize
15
49
  // the file (it dispatches on extension).
@@ -44,10 +78,38 @@ const downloadToInbox = async (deps, url, aesKey, msgid, index) => {
44
78
  };
45
79
  export const installInboundRouter = (client, cfg, log, bridge, sourcePath) => {
46
80
  const inboxDir = expandHome(cfg.wrc.mirror.inboxDir);
81
+ // Mirror-only auto-spawn: create a fresh tmux+claude and attach it to `who`.
82
+ // Returns the user-facing status string; void when not in mirror mode.
83
+ const autoSpawnAndAttach = async (who) => {
84
+ if (!("attach" in bridge))
85
+ return "[weclaude] /new only available in mirror mode";
86
+ const r = await spawnTmuxClaude({ cfg, log: log.child({ sub: "spawn", who }), windowName: who });
87
+ if (!r.ok)
88
+ return `[weclaude] auto-spawn failed: ${r.reason ?? "unknown"}`;
89
+ const att = bridge.attach({
90
+ sessionId: r.sessionId,
91
+ jsonlPath: r.jsonlPath,
92
+ target: who,
93
+ tmuxPane: r.tmuxPane,
94
+ tmuxSession: r.tmuxSession,
95
+ });
96
+ if (!att.ok)
97
+ return `[weclaude] attach failed: ${att.reason ?? "unknown"}`;
98
+ return `✅ tmux \`${r.tmuxSession}\` → claude session \`${r.sessionId}\` attached`;
99
+ };
47
100
  // Common gating: claim bootstrap + allowFrom check. Returns true if the
48
101
  // caller should stop (claim consumed or message rejected).
49
102
  const gate = async (frame, msg, text) => {
50
- const who = principal(msg);
103
+ const who = chatPrincipal(msg);
104
+ const auths = authPrincipals(msg);
105
+ // /id — bypass allowFrom so users can discover their ids before configuring.
106
+ if (isIdCommand(text)) {
107
+ try {
108
+ await client.replyStream(frame, msg.msgid, renderIds(msg), true);
109
+ }
110
+ catch { /* ignore */ }
111
+ return { stop: true, who };
112
+ }
51
113
  if (tryConsumeClaim(text, who)) {
52
114
  log.info({ who }, "claim consumed — bootstrapping defaultChat + allowFrom");
53
115
  try {
@@ -63,24 +125,50 @@ export const installInboundRouter = (client, cfg, log, bridge, sourcePath) => {
63
125
  catch { /* ignore */ }
64
126
  return { stop: true, who };
65
127
  }
66
- if (!isAllowed(cfg, who)) {
67
- log.warn({ from: who }, "drop: not in allowFrom");
128
+ if (!isAllowed(cfg, auths) && !isMirrorTarget(bridge, who)) {
129
+ log.warn({ from: who, auths }, "drop: not in allowFrom");
130
+ try {
131
+ await client.replyStream(frame, msg.msgid, `[weclaude] 未授权\n${renderIds(msg)}\n请将上述任一权限id加入 config 的 wrc.allowFrom 数组`, true);
132
+ }
133
+ catch { /* ignore */ }
134
+ return { stop: true, who };
135
+ }
136
+ // Authorized `/new` — spawn a tmux+claude pair and attach it to this chat.
137
+ // Runs BEFORE the mirror-not-attached short-circuit so it works as the
138
+ // very first message from a fresh user.
139
+ if (isNewCommand(text)) {
140
+ const reply = await autoSpawnAndAttach(who);
68
141
  try {
69
- await client.replyStream(frame, msg.msgid, "[cc-wecom] 未授权(请在 config 的 wrc.allowFrom 加入你的 user:<id>)", true);
142
+ await client.replyStream(frame, msg.msgid, reply, true);
70
143
  }
71
144
  catch { /* ignore */ }
72
145
  return { stop: true, who };
73
146
  }
147
+ // Mirror mode but no Claude session attached for this chat yet. Since the
148
+ // sender is already in allowFrom, we treat that authorization as license
149
+ // to auto-spawn: this inbound becomes both the binding signal and the
150
+ // first prompt — attach, then fall through to dispatch.
151
+ if ("hasMirrorTarget" in bridge && !bridge.hasMirrorTarget(who)) {
152
+ const reply = await autoSpawnAndAttach(who);
153
+ if (!reply.startsWith("✅")) {
154
+ try {
155
+ await client.replyStream(frame, msg.msgid, reply, true);
156
+ }
157
+ catch { /* ignore */ }
158
+ return { stop: true, who };
159
+ }
160
+ // attached — fall through to dispatch
161
+ }
74
162
  return { stop: false, who };
75
163
  };
76
- const send = async (frame, msg, who, text) => {
164
+ const send = async (frame, msg, who, text, images = []) => {
77
165
  try {
78
- await bridge.dispatch({ principal: who, text, frame, streamId: msg.msgid });
166
+ await bridge.dispatch({ principal: who, text, images, frame, streamId: msg.msgid });
79
167
  }
80
168
  catch (e) {
81
169
  log.error({ err: e.message }, "bridge dispatch failed");
82
170
  try {
83
- await client.replyStream(frame, msg.msgid, `[cc-wecom] error: ${e.message}`, true);
171
+ await client.replyStream(frame, msg.msgid, `[weclaude] error: ${e.message}`, true);
84
172
  }
85
173
  catch { /* ignore */ }
86
174
  }
@@ -89,7 +177,8 @@ export const installInboundRouter = (client, cfg, log, bridge, sourcePath) => {
89
177
  const msg = frame.body;
90
178
  if (!msg)
91
179
  return;
92
- const text = msg.text?.content ?? "";
180
+ const raw = msg.text?.content ?? "";
181
+ const text = stripMentions(raw);
93
182
  log.info({ msgid: msg.msgid, len: text.length }, "rx text");
94
183
  const { stop, who } = await gate(frame, msg, text);
95
184
  if (stop)
@@ -107,14 +196,16 @@ export const installInboundRouter = (client, cfg, log, bridge, sourcePath) => {
107
196
  const path = await downloadToInbox({ client, log, inboxDir }, msg.image.url, msg.image.aeskey, msg.msgid, 0);
108
197
  if (!path) {
109
198
  try {
110
- await client.replyStream(frame, msg.msgid, "[cc-wecom] 图片下载失败", true);
199
+ await client.replyStream(frame, msg.msgid, "[weclaude] 图片下载失败", true);
111
200
  }
112
201
  catch { /* ignore */ }
113
202
  return;
114
203
  }
115
- // Bare path claude attaches the image (its TUI accepts absolute file paths
116
- // dropped/pasted into the input box).
117
- await send(frame, msg, who, path);
204
+ // Pass the path through the bridge's `images` channel mirror mode pumps
205
+ // each via macOS clipboard + Ctrl+V into the live TTY (matches Claude
206
+ // Code's documented image paste flow → image content block, no Read tool
207
+ // turn). Spawn-mode falls back to `@<path>` automatically.
208
+ await send(frame, msg, who, "", [path]);
118
209
  });
119
210
  client.on("message.mixed", async (frame) => {
120
211
  const msg = frame.body;
@@ -124,21 +215,24 @@ export const installInboundRouter = (client, cfg, log, bridge, sourcePath) => {
124
215
  const { stop, who } = await gate(frame, msg, "");
125
216
  if (stop)
126
217
  return;
127
- const parts = [];
218
+ const texts = [];
219
+ const images = [];
128
220
  let imgIdx = 0;
129
221
  for (const item of msg.mixed?.msg_item ?? []) {
130
222
  if (item.msgtype === "text" && item.text?.content) {
131
- parts.push(item.text.content);
223
+ const t = stripMentions(item.text.content);
224
+ if (t)
225
+ texts.push(t);
132
226
  }
133
227
  else if (item.msgtype === "image" && item.image?.url) {
134
228
  const path = await downloadToInbox({ client, log, inboxDir }, item.image.url, item.image.aeskey, msg.msgid, imgIdx++);
135
229
  if (path)
136
- parts.push(path);
230
+ images.push(path);
137
231
  }
138
232
  }
139
- if (parts.length === 0)
233
+ if (texts.length === 0 && images.length === 0)
140
234
  return;
141
- await send(frame, msg, who, parts.join("\n"));
235
+ await send(frame, msg, who, texts.join("\n"), images);
142
236
  });
143
237
  // template_card_event is handled in approval module; no listener here.
144
238
  };
@@ -1 +1 @@
1
- {"version":3,"file":"inbound.js","sourceRoot":"","sources":["../../daemon/inbound.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inbound.js","sourceRoot":"","sources":["../../daemon/inbound.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,12 @@ import { startWs } from "./ws.js";
5
5
  import { startHttp, json } from "./http.js";
6
6
  import { installInboundRouter } from "./inbound.js";
7
7
  import { loadSessionStore } from "./sessions.js";
8
+ import { loadMirrorStore } from "./mirror-store.js";
8
9
  import { makeBridge } from "./cc-bridge.js";
9
- import { startMirror } from "./mirror-bridge.js";
10
+ import { startMirror, installMirrorEventListener } from "./mirror-bridge.js";
10
11
  import { installApprovalEventListener, makeApproveHandler } from "./approval.js";
12
+ import { initDetailPersistence, makeDetailHandler } from "./detail.js";
13
+ import { initAutoWindowPersistence } from "./session-cache.js";
11
14
  import { makeMessageHandler } from "./outbound.js";
12
15
  import { makeCardHandler, makeAskHandler, installAskEventListener } from "./ask.js";
13
16
  import { makeClaimStartHandler, makeClaimStatusHandler, makeClaimResetHandler, } from "./claim.js";
@@ -15,7 +18,7 @@ import { makeClaimStartHandler, makeClaimStatusHandler, makeClaimResetHandler, }
15
18
  // vanishes. Mirror anything fatal to stderr too so launchd's stderr.log captures it.
16
19
  const fatalExit = (msg, extra) => {
17
20
  // eslint-disable-next-line no-console
18
- console.error(`[wrc-daemon] FATAL: ${msg}`, extra ?? "");
21
+ console.error(`[weclaude-daemon] FATAL: ${msg}`, extra ?? "");
19
22
  process.exit(1);
20
23
  };
21
24
  const main = async () => {
@@ -23,13 +26,20 @@ const main = async () => {
23
26
  const log = makeLogger({
24
27
  logFile: cfg.daemon.logFile,
25
28
  logLevel: cfg.daemon.logLevel,
26
- name: "wrc-daemon",
29
+ name: "weclaude-daemon",
27
30
  });
28
31
  log.info({ sourcePath, pid: process.pid }, "daemon start");
32
+ // Restore auto-approve windows persisted across daemon restarts —
33
+ // otherwise a `weclaude reload` silently drops the user's "10min" choice.
34
+ initAutoWindowPersistence(cfg.daemon.stateDir);
35
+ // Replay tool/approval detail records so reload doesn't lose click-to-detail
36
+ // links from messages already on the user's WeCom timeline.
37
+ initDetailPersistence(cfg.daemon.stateDir, log.child({ mod: "detail" }));
29
38
  const ws = startWs(cfg, log);
30
39
  const sessions = loadSessionStore(cfg.wrc.sessionMapFile);
40
+ const mirrorStore = loadMirrorStore(cfg.wrc.mirror.attachmentsFile);
31
41
  const bridge = cfg.wrc.mode === "mirror"
32
- ? startMirror({ cfg, log: log.child({ mod: "mirror" }), client: ws.client })
42
+ ? startMirror({ cfg, log: log.child({ mod: "mirror" }), client: ws.client, store: mirrorStore })
33
43
  : makeBridge({ cfg, log: log.child({ mod: "bridge" }), client: ws.client, sessions });
34
44
  if (!bridge) {
35
45
  log.fatal("bridge failed to start");
@@ -37,18 +47,25 @@ const main = async () => {
37
47
  }
38
48
  installInboundRouter(ws.client, cfg, log, bridge, sourcePath);
39
49
  installApprovalEventListener(ws.client, log.child({ mod: "approval" }), cfg);
50
+ // In mirror mode, route approval cards to the WeCom chat bound to the requesting session.
51
+ // Falls back to cfg.approval.approvers / cfg.defaultChat when no mirror is attached.
52
+ const getMirrorTarget = cfg.wrc.mode === "mirror"
53
+ ? (sid) => bridge.targetForSession(sid)
54
+ : undefined;
40
55
  const http = startHttp({ cfg, ws, log, sourcePath });
41
- http.register("POST /approve", makeApproveHandler({ cfg, log: log.child({ mod: "approval" }), client: ws.client }));
56
+ http.register("POST /approve", makeApproveHandler({ cfg, log: log.child({ mod: "approval" }), client: ws.client, getMirrorTarget }));
42
57
  http.register("POST /message", makeMessageHandler(ws.client, log.child({ mod: "outbound" })));
43
58
  http.register("POST /card", makeCardHandler(ws.client, log.child({ mod: "outbound" })));
44
59
  http.register("POST /ask", makeAskHandler(ws.client, log.child({ mod: "ask" })));
45
60
  http.register("POST /claim/start", makeClaimStartHandler({ log: log.child({ mod: "claim" }) }));
46
61
  http.register("GET /claim/status", makeClaimStatusHandler());
47
62
  http.register("POST /claim/reset", makeClaimResetHandler());
63
+ http.register("GET /detail", makeDetailHandler(log.child({ mod: "detail" })));
48
64
  installAskEventListener(ws.client, log.child({ mod: "ask" }));
49
65
  // Mirror-mode: expose attach/status so a slash command can pin the live session.
50
66
  if (cfg.wrc.mode === "mirror") {
51
67
  const m = bridge;
68
+ installMirrorEventListener(ws.client, m, log.child({ mod: "mirror" }));
52
69
  http.register("GET /mirror/status", (_req, res) => json(res, 200, m.status()));
53
70
  http.register("POST /mirror/attach", async (req, res) => {
54
71
  const { readBody } = await import("./http.js");
@@ -57,7 +74,7 @@ const main = async () => {
57
74
  json(res, 400, { ok: false, reason: "sessionId and jsonlPath required" });
58
75
  return;
59
76
  }
60
- const r = m.attach({ sessionId: body.sessionId, jsonlPath: body.jsonlPath, target: body.target });
77
+ const r = m.attach({ sessionId: body.sessionId, jsonlPath: body.jsonlPath, target: body.target, tmuxPane: body.tmuxPane, tmuxSession: body.tmuxSession });
61
78
  json(res, r.ok ? 200 : 400, r);
62
79
  });
63
80
  }
@@ -79,7 +96,7 @@ const main = async () => {
79
96
  };
80
97
  main().catch((e) => {
81
98
  // eslint-disable-next-line no-console
82
- console.error("[wrc-daemon] fatal:", e);
99
+ console.error("[weclaude-daemon] fatal:", e);
83
100
  process.exit(1);
84
101
  });
85
102
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../daemon/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../daemon/index.ts"],"names":[],"mappings":"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"}