@lanbaolu/dsh-wechat-bridge 0.3.0 → 0.4.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.
@@ -3,7 +3,7 @@ import { createInterface } from 'node:readline';
3
3
  import process from 'node:process';
4
4
  import { spawnSync } from 'node:child_process';
5
5
  import { join, basename, extname } from 'node:path';
6
- import { unlinkSync, writeFileSync, mkdirSync, existsSync } from 'node:fs';
6
+ import { unlinkSync, writeFileSync, readFileSync, mkdirSync, existsSync } from 'node:fs';
7
7
  import { homedir } from 'node:os';
8
8
  import { WeChatApi } from './wechat/api.js';
9
9
  import { loadLatestAccount } from './wechat/accounts.js';
@@ -28,6 +28,36 @@ const MAX_MESSAGE_LENGTH = 4000;
28
28
  * Fallback target for proactive notifications when account.userId is empty.
29
29
  */
30
30
  let lastActiveUserId = '';
31
+ /**
32
+ * iLink 主动发消息(bot → 用户)必须回传最近一次入站消息携带的
33
+ * context_token,空 token 会被服务端拒绝(ret:-2 "prepare failed")。
34
+ * 每次收到绑定用户的消息就刷新并持久化它,供主动通知 / 审批推送使用。
35
+ */
36
+ let lastContextToken = '';
37
+ function contextTokenPath() {
38
+ return join(DATA_DIR, 'context-token.json');
39
+ }
40
+ function loadContextToken() {
41
+ try {
42
+ const parsed = JSON.parse(readFileSync(contextTokenPath(), 'utf8'));
43
+ lastContextToken = typeof parsed.token === 'string' ? parsed.token : '';
44
+ }
45
+ catch {
46
+ lastContextToken = '';
47
+ }
48
+ }
49
+ function updateContextToken(token) {
50
+ if (!token || token === lastContextToken)
51
+ return;
52
+ lastContextToken = token;
53
+ try {
54
+ mkdirSync(DATA_DIR, { recursive: true });
55
+ writeFileSync(contextTokenPath(), JSON.stringify({ token, updatedAt: Date.now() }) + '\n', 'utf8');
56
+ }
57
+ catch (err) {
58
+ logger.warn('Failed to persist context token', { error: err instanceof Error ? err.message : String(err) });
59
+ }
60
+ }
31
61
  /** Extensions eligible for auto-push when detected in DSH's response text. */
32
62
  const AUTO_PUSH_EXTENSIONS = new Set([
33
63
  '.png', '.jpg', '.jpeg', '.gif', '.webp', '.bmp', '.svg', '.ico',
@@ -95,6 +125,20 @@ function splitByNewline(text, maxLen) {
95
125
  return chunks;
96
126
  }
97
127
  /** Split a message into WeChat-safe chunks, preserving paragraphs. */
128
+ /**
129
+ * 从流式缓冲头部切出一段待发文本:优先在换行边界截断(≤ maxChars,不切词);
130
+ * 找不到合适边界时按 maxChars 硬切(罕见,长串无换行文本)。返回 [切出部分, 剩余]。
131
+ */
132
+ function takeBatch(buffer, maxChars) {
133
+ if (buffer.length <= maxChars)
134
+ return [buffer, ''];
135
+ const windowText = buffer.slice(0, maxChars);
136
+ const cut = windowText.lastIndexOf('\n');
137
+ // 边界太靠前(不足一半)就放弃边界硬切,避免切出过短碎片。
138
+ if (cut >= maxChars / 2)
139
+ return [windowText.slice(0, cut), buffer.slice(cut + 1)];
140
+ return [windowText, buffer.slice(maxChars)];
141
+ }
98
142
  function splitMessage(text, maxLen = MAX_MESSAGE_LENGTH) {
99
143
  if (text.length <= maxLen)
100
144
  return [text];
@@ -255,12 +299,13 @@ async function runDaemon() {
255
299
  }
256
300
  const sender = createSender(api, account.accountId);
257
301
  lastActiveUserId = account.userId || '';
302
+ loadContextToken();
258
303
  // -------------------------------------------------------------------------
259
304
  // Proactive notification endpoint (DSH → daemon), throttled.
260
305
  // WeChat personal accounts are sensitive to proactive high-frequency pushes,
261
306
  // so notifications go through a queue + rate limits (see notify.ts).
262
307
  // -------------------------------------------------------------------------
263
- const notifyThrottle = createNotifyThrottle((message) => sender.sendText(lastActiveUserId, '', message));
308
+ const notifyThrottle = createNotifyThrottle((message) => sender.sendText(lastActiveUserId, lastContextToken, message));
264
309
  const notifyPortPath = join(DATA_DIR, 'daemon-port.json');
265
310
  const notifyServer = createServer((req, res) => {
266
311
  const token = process.env.DSH_BRIDGE_API_TOKEN;
@@ -274,7 +319,9 @@ async function runDaemon() {
274
319
  res.end(JSON.stringify(notifyThrottle.getStatus()));
275
320
  return;
276
321
  }
277
- if (req.method !== 'POST' || (req.url !== '/notify' && req.url !== '/notify/')) {
322
+ const isNotify = req.url === '/notify' || req.url === '/notify/';
323
+ const isApproval = req.url === '/approval' || req.url === '/approval/';
324
+ if (req.method !== 'POST' || (!isNotify && !isApproval)) {
278
325
  res.writeHead(404, { 'Content-Type': 'application/json' });
279
326
  res.end(JSON.stringify({ ok: false, error: 'not found' }));
280
327
  return;
@@ -288,7 +335,27 @@ async function runDaemon() {
288
335
  req.on('end', () => {
289
336
  try {
290
337
  const parsed = JSON.parse(body);
291
- const result = notifyThrottle.enqueue(String(parsed?.message ?? ''));
338
+ const message = String(parsed?.message ?? '');
339
+ // 审批是阻塞交互且量极低(由用户自己的任务触发),绕过节流直发,
340
+ // 否则 60s 的最小通知间隔会把审批拖到超时。
341
+ if (isApproval) {
342
+ if (!message.trim()) {
343
+ res.writeHead(400, { 'Content-Type': 'application/json' });
344
+ res.end(JSON.stringify({ ok: false, error: 'empty message' }));
345
+ return;
346
+ }
347
+ sender.sendText(lastActiveUserId, lastContextToken, message)
348
+ .then(() => {
349
+ res.writeHead(200, { 'Content-Type': 'application/json' });
350
+ res.end(JSON.stringify({ ok: true }));
351
+ })
352
+ .catch((err) => {
353
+ res.writeHead(500, { 'Content-Type': 'application/json' });
354
+ res.end(JSON.stringify({ ok: false, error: err instanceof Error ? err.message : String(err) }));
355
+ });
356
+ return;
357
+ }
358
+ const result = notifyThrottle.enqueue(message);
292
359
  res.writeHead(result.accepted ? 200 : 400, { 'Content-Type': 'application/json' });
293
360
  res.end(JSON.stringify(result));
294
361
  }
@@ -323,6 +390,12 @@ async function runDaemon() {
323
390
  function handlePriorityCommand(msg) {
324
391
  if (msg.message_type !== MessageType.USER || !msg.item_list)
325
392
  return false;
393
+ // Priority commands are destructive (cancel in-flight turn / clear session).
394
+ // Fail-closed sender check: only the bound account owner may trigger them,
395
+ // otherwise any contact could stop or wipe someone's running work.
396
+ const ownerId = account?.userId;
397
+ if (!ownerId || msg.from_user_id !== ownerId)
398
+ return false;
326
399
  const text = extractTextFromItems(msg.item_list);
327
400
  if (!/^\/(?:stop|clear|new)(?:\s|$)/i.test(text))
328
401
  return false;
@@ -347,10 +420,53 @@ async function runDaemon() {
347
420
  }
348
421
  return true;
349
422
  }
423
+ /**
424
+ * 审批回复是时间敏感的交互(host 侧的 agent 正挂着等裁决),必须像
425
+ * /stop 一样抢在消息队列之前处理——否则排队到任务结束就死锁到超时。
426
+ * 同样 fail-closed:只认绑定账号本人的 /yes /no。
427
+ */
428
+ async function handleApprovalReply(msg) {
429
+ if (msg.message_type !== MessageType.USER || !msg.item_list)
430
+ return false;
431
+ const ownerId = account?.userId;
432
+ if (!ownerId || msg.from_user_id !== ownerId)
433
+ return false;
434
+ const text = extractTextFromItems(msg.item_list).trim();
435
+ const match = /^\/(yes|no)(?:\s|$)/i.exec(text);
436
+ if (!match)
437
+ return false;
438
+ const approved = match[1].toLowerCase() === 'yes';
439
+ let reply;
440
+ try {
441
+ const result = await client.decideApproval(account.accountId, approved);
442
+ if (result.ok) {
443
+ reply = approved
444
+ ? `✅ 已批准${result.toolName ? `:${result.toolName}` : ''},任务继续执行。`
445
+ : `🚫 已拒绝${result.toolName ? `:${result.toolName}` : ''}。`;
446
+ }
447
+ else if (result.reason === 'disabled') {
448
+ reply = 'ℹ️ 微信审批未启用,请在电脑端处理该请求。';
449
+ }
450
+ else {
451
+ reply = '当前没有待审批的请求(可能已超时自动拒绝)。';
452
+ }
453
+ }
454
+ catch {
455
+ reply = '⚠️ 审批结果未能送达 DSH,请到电脑端确认任务状态。';
456
+ }
457
+ await sender.sendText(ownerId, msg.context_token ?? '', reply).catch(() => { });
458
+ return true;
459
+ }
350
460
  const callbacks = {
351
461
  onMessage: async (msg) => {
462
+ // 绑定用户的每条入站消息都刷新 context_token(主动推送的通行证)。
463
+ if (msg.context_token && msg.from_user_id && msg.from_user_id === account?.userId) {
464
+ updateContextToken(msg.context_token);
465
+ }
352
466
  if (handlePriorityCommand(msg))
353
467
  return;
468
+ if (await handleApprovalReply(msg))
469
+ return;
354
470
  messageQueue.push(msg);
355
471
  drainQueue();
356
472
  },
@@ -385,7 +501,9 @@ async function handleMessage(msg, account, session, sessionStore, sender, config
385
501
  return;
386
502
  if (!msg.from_user_id || !msg.item_list)
387
503
  return;
388
- if (account.userId && msg.from_user_id !== account.userId)
504
+ // Fail-closed: with no known owner we accept nobody. login.ts guarantees a
505
+ // real userId on save, but an empty/legacy field must deny, not allow-all.
506
+ if (!account.userId || msg.from_user_id !== account.userId)
389
507
  return;
390
508
  const contextToken = msg.context_token ?? '';
391
509
  const fromUserId = msg.from_user_id;
@@ -495,11 +613,26 @@ async function sendToDsh(userText, imageItem, fileItem, fromUserId, contextToken
495
613
  let keepaliveTimer;
496
614
  let pendingSend = '';
497
615
  let lastSentTime = Date.now();
498
- const flush = async (force) => {
616
+ // 流式攒批策略:攒够字数或流停顿时才发送,避免碎片消息刷屏:
617
+ // - 缓冲 ≥ 1200 字:立即按自然边界切出一段发送(见 chunk 分支);
618
+ // - 缓冲 ≥ 600 字:定时器补一刀发掉;
619
+ // - 流停顿超过 2.5s(生成间隙):把尾巴发出去,别让用户干等;
620
+ // - 其余情况继续攒——宁可少发几条整的,也不要把一句话切成三段。
621
+ const BATCH_TICK_MS = 800;
622
+ const BATCH_MIN_CHARS = 600;
623
+ const STREAM_STALL_MS = 2500;
624
+ let lastChunkTime = Date.now();
625
+ const flush = async (maxChars) => {
499
626
  if (!pendingSend)
500
627
  return;
501
- const text = pendingSend;
502
- pendingSend = '';
628
+ let text;
629
+ if (maxChars !== undefined) {
630
+ [text, pendingSend] = takeBatch(pendingSend, maxChars);
631
+ }
632
+ else {
633
+ text = pendingSend;
634
+ pendingSend = '';
635
+ }
503
636
  for (const chunk of splitMessage(text)) {
504
637
  try {
505
638
  await sender.sendText(fromUserId, contextToken, chunk);
@@ -515,8 +648,12 @@ async function sendToDsh(userText, imageItem, fileItem, fromUserId, contextToken
515
648
  }
516
649
  };
517
650
  flushTimer = setInterval(() => {
518
- void flush(true).catch(() => { });
519
- }, 1500);
651
+ if (!pendingSend)
652
+ return;
653
+ if (pendingSend.length >= BATCH_MIN_CHARS || Date.now() - lastChunkTime > STREAM_STALL_MS) {
654
+ void flush().catch(() => { });
655
+ }
656
+ }, BATCH_TICK_MS);
520
657
  // 超时安抚:如果 5 分钟没有产出任何消息,主动告诉用户还在处理。
521
658
  const SILENCE_WARNING_MS = 5 * 60 * 1000;
522
659
  keepaliveTimer = setInterval(() => {
@@ -533,10 +670,10 @@ async function sendToDsh(userText, imageItem, fileItem, fromUserId, contextToken
533
670
  if (event.text) {
534
671
  finalText += event.text;
535
672
  pendingSend += event.text;
536
- // Batch streaming chunks into reasonably-sized WeChat messages;
537
- // flush immediately per-chunk would spam hundreds of tiny messages.
673
+ lastChunkTime = Date.now();
674
+ // 缓冲攒大后按自然边界切出一段先发(不切词),剩余的继续攒。
538
675
  if (pendingSend.length >= 1200) {
539
- void flush(false).catch(() => { });
676
+ void flush(1200).catch(() => { });
540
677
  }
541
678
  }
542
679
  break;
@@ -557,7 +694,7 @@ async function sendToDsh(userText, imageItem, fileItem, fromUserId, contextToken
557
694
  clearInterval(flushTimer);
558
695
  if (keepaliveTimer)
559
696
  clearInterval(keepaliveTimer);
560
- await flush(true);
697
+ await flush();
561
698
  const resultText = finalText.trim();
562
699
  if (resultText) {
563
700
  sessionStore.addChatMessage(session, 'assistant', resultText);
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/bridge/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/bridge/main.ts"],"names":[],"mappings":"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"}
package/lib/index.js CHANGED
@@ -20,6 +20,8 @@ import z from '@deepseek-ai/schemastery';
20
20
  import { defineTool } from '@deepseek-ai/dsh-tools';
21
21
  import { SessionId } from '@deepseek-ai/dsh-session';
22
22
  import { createUserMessage } from '@deepseek-ai/dsh-llm';
23
+ import { createApprovalManager } from './approval.js';
24
+ import { createWechatAgentSetup } from './agent-setup.js';
23
25
  import { startQrLogin, checkQrStatus } from './bridge/wechat/login.js';
24
26
  import { loadJson, saveJson, validateAccountId } from './bridge/store.js';
25
27
  export const name = '@lanbaolu/dsh-wechat-bridge';
@@ -33,6 +35,8 @@ export const Config = z.object({
33
35
  provider: z.string().default(''),
34
36
  model: z.string().default(''),
35
37
  workingDirectory: z.string().default(''),
38
+ approvalViaWechat: z.boolean().default(true),
39
+ approvalTimeoutSec: z.number().min(10).max(3600).default(300),
36
40
  });
37
41
  const PLUGIN_ROOT = join(dirname(fileURLToPath(import.meta.url)), '..');
38
42
  function defaultDataDir() {
@@ -178,11 +182,17 @@ export function apply(ctx, config) {
178
182
  dshSessionId = sessionMap[accountId] || undefined;
179
183
  }
180
184
  isSelected = !!selectedSessionId && dshSessionId === selectedSessionId;
185
+ const setup = createWechatAgentSetup({
186
+ accountId,
187
+ approval: approvalManager,
188
+ log: debugLog,
189
+ });
181
190
  if (dshSessionId) {
182
191
  try {
183
192
  const candidate = await ctx.agents.resume({
184
193
  resumeSessionId: SessionId(dshSessionId),
185
194
  agentOptions,
195
+ setup,
186
196
  });
187
197
  const persistedCwd = candidate.agent.session.header.cwd;
188
198
  selectedCwd = persistedCwd || undefined;
@@ -227,6 +237,7 @@ export function apply(ctx, config) {
227
237
  sessionId: SessionId(dshSessionId),
228
238
  meta: input?.cwd ? { cwd: resolve(input.cwd) } : undefined,
229
239
  agentOptions,
240
+ setup,
230
241
  });
231
242
  }
232
243
  else {
@@ -644,6 +655,23 @@ export function apply(ctx, config) {
644
655
  sendJson(res, 200, { ok: true });
645
656
  return;
646
657
  }
658
+ // 微信审批裁决:daemon 转发的 /yes /no。仅裁决本账号自己的 pending,
659
+ // 无 pending(超时/被撤销/从未推送)时明确返回 no-pending。
660
+ if (req.method === 'POST' && url.pathname === '/api/approval/decide') {
661
+ const body = await readBody(req);
662
+ const sessionId = String(body.sessionId || '');
663
+ const approved = body.approved === true;
664
+ if (!approvalManager) {
665
+ sendJson(res, 200, { ok: false, reason: 'disabled' });
666
+ return;
667
+ }
668
+ // 未知/非法 accountId 在 decide 里自然落到 no-pending,无需额外校验。
669
+ const result = sessionId
670
+ ? approvalManager.decide(sessionId, approved)
671
+ : { ok: false, reason: 'no-pending' };
672
+ sendJson(res, 200, result);
673
+ return;
674
+ }
647
675
  if (req.method === 'POST' && url.pathname === '/api/clear') {
648
676
  const body = await readBody(req);
649
677
  const sessionId = String(body.sessionId || 'default');
@@ -1126,6 +1154,51 @@ export function apply(ctx, config) {
1126
1154
  return { ok: false, message: `无法连接守护进程:${err instanceof Error ? err.message : String(err)}` };
1127
1155
  }
1128
1156
  }
1157
+ /**
1158
+ * Push an urgent approval question to the bound WeChat account via the
1159
+ * daemon's direct (non-throttled) /approval endpoint. Resolves false when
1160
+ * the daemon is unreachable so callers can fall back to other answerers.
1161
+ */
1162
+ async function pushApprovalMessage(message) {
1163
+ const portPath = join(dataDir, 'daemon-port.json');
1164
+ let info = null;
1165
+ try {
1166
+ info = JSON.parse(readFileSync(portPath, 'utf8'));
1167
+ }
1168
+ catch {
1169
+ return false;
1170
+ }
1171
+ if (!info?.port || !info?.token)
1172
+ return false;
1173
+ try {
1174
+ const controller = new AbortController();
1175
+ const timer = setTimeout(() => controller.abort(), 10_000);
1176
+ const resp = await fetch(`http://127.0.0.1:${info.port}/approval`, {
1177
+ method: 'POST',
1178
+ headers: {
1179
+ 'Content-Type': 'application/json',
1180
+ 'x-dsh-bridge-token': info.token,
1181
+ },
1182
+ body: JSON.stringify({ message }),
1183
+ signal: controller.signal,
1184
+ });
1185
+ clearTimeout(timer);
1186
+ return resp.ok;
1187
+ }
1188
+ catch {
1189
+ return false;
1190
+ }
1191
+ }
1192
+ // 微信审批应答器:仅当配置启用时创建;daemon 推送失败/超时均 fail-closed。
1193
+ const approvalManager = config.approvalViaWechat
1194
+ ? createApprovalManager({
1195
+ timeoutMs: config.approvalTimeoutSec * 1000,
1196
+ push: pushApprovalMessage,
1197
+ log: debugLog,
1198
+ })
1199
+ : undefined;
1200
+ // 插件卸载时撤销所有悬而未决的审批(收敛为 cancelled,不留孤儿定时器)。
1201
+ ctx.effect(() => () => approvalManager?.dispose());
1129
1202
  function registerTools() {
1130
1203
  const simpleOutput = {
1131
1204
  schema: {