openclaw-weixin 3.1.5 → 3.2.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/CHANGELOG.md +36 -0
- package/CHANGELOG_EN.md +46 -0
- package/NOTICE +2 -1
- package/README.md +16 -21
- package/README_EN.md +21 -27
- package/assets/icon.png +0 -0
- package/dist/src/api/api.js +40 -35
- package/dist/src/api/api.js.map +1 -1
- package/dist/src/api/config-cache.js +3 -2
- package/dist/src/api/config-cache.js.map +1 -1
- package/dist/src/api/session-guard.js +3 -2
- package/dist/src/api/session-guard.js.map +1 -1
- package/dist/src/auth/accounts.js +14 -16
- package/dist/src/auth/accounts.js.map +1 -1
- package/dist/src/auth/login-qr.js +20 -21
- package/dist/src/auth/login-qr.js.map +1 -1
- package/dist/src/auth/pairing.js +2 -1
- package/dist/src/auth/pairing.js.map +1 -1
- package/dist/src/cdn/cdn-upload.js +17 -10
- package/dist/src/cdn/cdn-upload.js.map +1 -1
- package/dist/src/cdn/pic-decrypt.js +15 -7
- package/dist/src/cdn/pic-decrypt.js.map +1 -1
- package/dist/src/cdn/upload.js +7 -7
- package/dist/src/cdn/upload.js.map +1 -1
- package/dist/src/channel.js +57 -135
- package/dist/src/channel.js.map +1 -1
- package/dist/src/config/block-streaming.js +8 -0
- package/dist/src/config/block-streaming.js.map +1 -0
- package/dist/src/config/config-schema.js +10 -0
- package/dist/src/config/config-schema.js.map +1 -1
- package/dist/src/media/media-download.js +15 -14
- package/dist/src/media/media-download.js.map +1 -1
- package/dist/src/media/silk-transcode.js +2 -1
- package/dist/src/media/silk-transcode.js.map +1 -1
- package/dist/src/messaging/debug-mode.js +2 -1
- package/dist/src/messaging/debug-mode.js.map +1 -1
- package/dist/src/messaging/error-notice.js +3 -3
- package/dist/src/messaging/error-notice.js.map +1 -1
- package/dist/src/messaging/inbound-dedupe.js +2 -1
- package/dist/src/messaging/inbound-dedupe.js.map +1 -1
- package/dist/src/messaging/inbound-turn.js +102 -0
- package/dist/src/messaging/inbound-turn.js.map +1 -0
- package/dist/src/messaging/inbound.js +6 -5
- package/dist/src/messaging/inbound.js.map +1 -1
- package/dist/src/messaging/outbound-hooks.js +36 -3
- package/dist/src/messaging/outbound-hooks.js.map +1 -1
- package/dist/src/messaging/process-message.js +124 -193
- package/dist/src/messaging/process-message.js.map +1 -1
- package/dist/src/messaging/reply-progress-sender.js +3 -2
- package/dist/src/messaging/reply-progress-sender.js.map +1 -1
- package/dist/src/messaging/send-media.js +7 -6
- package/dist/src/messaging/send-media.js.map +1 -1
- package/dist/src/messaging/send.js +5 -5
- package/dist/src/messaging/send.js.map +1 -1
- package/dist/src/messaging/slash-commands.js +5 -3
- package/dist/src/messaging/slash-commands.js.map +1 -1
- package/dist/src/monitor/monitor.js +16 -16
- package/dist/src/monitor/monitor.js.map +1 -1
- package/dist/src/util/logger.js +3 -2
- package/dist/src/util/logger.js.map +1 -1
- package/dist/src/util/redact.js +64 -17
- package/dist/src/util/redact.js.map +1 -1
- package/docs/en/architecture.md +22 -8
- package/docs/en/guide.md +77 -15
- package/docs/zh-CN/architecture.md +18 -8
- package/docs/zh-CN/guide.md +72 -13
- package/openclaw.plugin.json +6 -2
- package/package.json +8 -14
package/dist/src/channel.js
CHANGED
|
@@ -8,13 +8,10 @@ import { downloadRemoteImageToTemp } from "./cdn/upload.js";
|
|
|
8
8
|
import { WeixinChannelConfigSchema } from "./config/config-schema.js";
|
|
9
9
|
import { appendWeixinExecApprovalQuickReplies, splitWeixinExecApprovalOtherOptions, } from "./messaging/approval-quick-replies.js";
|
|
10
10
|
import { clearContextTokensForAccount, findAccountIdsByContextToken, getContextToken, restoreContextTokens, } from "./messaging/inbound.js";
|
|
11
|
-
// Lazy-imported inside startAccount to avoid pulling in the monitor -> process-message ->
|
|
12
|
-
// command-auth chain during plugin registration, which can re-enter plugin/provider registry
|
|
13
|
-
// resolution before the account actually starts.
|
|
14
|
-
import { applyWeixinMessageSendingHook, emitWeixinMessageSent } from "./messaging/outbound-hooks.js";
|
|
15
11
|
import { StreamingMarkdownFilter, sendMessageWeixin } from "./messaging/send.js";
|
|
16
12
|
import { sendWeixinMediaFile } from "./messaging/send-media.js";
|
|
17
13
|
import { logger } from "./util/logger.js";
|
|
14
|
+
import { redactError, redactToken } from "./util/redact.js";
|
|
18
15
|
/** Returns true when mediaUrl refers to a local filesystem path (absolute or relative). */
|
|
19
16
|
function isLocalFilePath(mediaUrl) {
|
|
20
17
|
// Treat anything without a URL scheme (no "://") as a local path.
|
|
@@ -48,71 +45,25 @@ function resolveOutboundAccountId(cfg, to) {
|
|
|
48
45
|
throw new Error(`weixin: no accounts registered — run \`openclaw channels login --channel openclaw-weixin\``);
|
|
49
46
|
}
|
|
50
47
|
if (allIds.length === 1) {
|
|
51
|
-
logger.info(`resolveOutboundAccountId: single account, using ${allIds[0]}`);
|
|
48
|
+
logger.info(`resolveOutboundAccountId: single account, using ${redactToken(allIds[0])}`);
|
|
52
49
|
return allIds[0];
|
|
53
50
|
}
|
|
54
51
|
// Multiple accounts: find which ones have a contextToken for the recipient.
|
|
55
52
|
const matched = findAccountIdsByContextToken(allIds, to);
|
|
56
53
|
if (matched.length === 1) {
|
|
57
|
-
logger.info(`resolveOutboundAccountId: matched
|
|
54
|
+
logger.info(`resolveOutboundAccountId: matched account=${redactToken(matched[0])} for to=${redactToken(to)}`);
|
|
58
55
|
return matched[0];
|
|
59
56
|
}
|
|
60
57
|
if (matched.length > 1) {
|
|
61
|
-
logger.warn(`resolveOutboundAccountId: ambiguous — ${matched.length} accounts matched for to=${to
|
|
62
|
-
throw new Error(`weixin: ambiguous account for
|
|
63
|
-
`(${matched.length} accounts have active sessions with this recipient
|
|
58
|
+
logger.warn(`resolveOutboundAccountId: ambiguous — ${matched.length} accounts matched for to=${redactToken(to)}`);
|
|
59
|
+
throw new Error(`weixin: ambiguous account for recipient ` +
|
|
60
|
+
`(${matched.length} accounts have active sessions with this recipient). ` +
|
|
64
61
|
`Specify accountId in the delivery config to disambiguate.`);
|
|
65
62
|
}
|
|
66
|
-
throw new Error(`weixin: cannot determine which account to use for
|
|
63
|
+
throw new Error(`weixin: cannot determine which account to use for recipient ` +
|
|
67
64
|
`(${allIds.length} accounts registered, none has an active session with this recipient). ` +
|
|
68
65
|
`Specify accountId in the delivery config, or ensure the recipient has recently messaged the bot.`);
|
|
69
66
|
}
|
|
70
|
-
async function sendWeixinOutbound(params) {
|
|
71
|
-
const account = resolveWeixinAccount(params.cfg, params.accountId);
|
|
72
|
-
const storageAccountId = account.primaryId;
|
|
73
|
-
const aLog = logger.withAccount(storageAccountId);
|
|
74
|
-
assertSessionActive(storageAccountId);
|
|
75
|
-
if (!account.configured) {
|
|
76
|
-
aLog.error(`sendWeixinOutbound: account not configured`);
|
|
77
|
-
throw new Error("weixin not configured: please run `openclaw channels login --channel openclaw-weixin`");
|
|
78
|
-
}
|
|
79
|
-
const f = new StreamingMarkdownFilter();
|
|
80
|
-
const rawText = params.text ?? "";
|
|
81
|
-
let filteredText = f.feed(rawText) + f.flush();
|
|
82
|
-
const sendingResult = await applyWeixinMessageSendingHook({
|
|
83
|
-
to: params.to,
|
|
84
|
-
text: filteredText,
|
|
85
|
-
accountId: account.accountId,
|
|
86
|
-
});
|
|
87
|
-
if (sendingResult.cancelled) {
|
|
88
|
-
aLog.info(`sendWeixinOutbound: cancelled by message_sending hook to=${params.to}`);
|
|
89
|
-
return { channel: "openclaw-weixin", messageId: "" };
|
|
90
|
-
}
|
|
91
|
-
filteredText = sendingResult.text;
|
|
92
|
-
try {
|
|
93
|
-
const result = await sendMessageWeixin({
|
|
94
|
-
to: params.to,
|
|
95
|
-
text: filteredText,
|
|
96
|
-
opts: {
|
|
97
|
-
baseUrl: account.baseUrl,
|
|
98
|
-
token: account.token,
|
|
99
|
-
contextToken: params.contextToken,
|
|
100
|
-
},
|
|
101
|
-
});
|
|
102
|
-
emitWeixinMessageSent({ to: params.to, content: filteredText, success: true, accountId: account.accountId });
|
|
103
|
-
return { channel: "openclaw-weixin", messageId: result.messageId };
|
|
104
|
-
}
|
|
105
|
-
catch (err) {
|
|
106
|
-
emitWeixinMessageSent({
|
|
107
|
-
to: params.to,
|
|
108
|
-
content: filteredText,
|
|
109
|
-
success: false,
|
|
110
|
-
error: String(err),
|
|
111
|
-
accountId: account.accountId,
|
|
112
|
-
});
|
|
113
|
-
throw err;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
67
|
export const weixinPlugin = {
|
|
117
68
|
id: "openclaw-weixin",
|
|
118
69
|
meta: {
|
|
@@ -178,14 +129,22 @@ export const weixinPlugin = {
|
|
|
178
129
|
sendText: async (ctx) => {
|
|
179
130
|
const accountId = ctx.accountId || resolveOutboundAccountId(ctx.cfg, ctx.to);
|
|
180
131
|
const account = resolveWeixinAccount(ctx.cfg, accountId);
|
|
181
|
-
|
|
182
|
-
|
|
132
|
+
assertSessionActive(account.primaryId);
|
|
133
|
+
if (!account.configured) {
|
|
134
|
+
logger.withAccount(account.primaryId).error("sendText: account not configured");
|
|
135
|
+
throw new Error("weixin not configured: please run `openclaw channels login --channel openclaw-weixin`");
|
|
136
|
+
}
|
|
137
|
+
const filter = new StreamingMarkdownFilter();
|
|
138
|
+
const result = await sendMessageWeixin({
|
|
183
139
|
to: ctx.to,
|
|
184
|
-
text: ctx.text,
|
|
185
|
-
|
|
186
|
-
|
|
140
|
+
text: filter.feed(ctx.text ?? "") + filter.flush(),
|
|
141
|
+
opts: {
|
|
142
|
+
baseUrl: account.baseUrl,
|
|
143
|
+
token: account.token,
|
|
144
|
+
contextToken: getContextToken(account.primaryId, ctx.to),
|
|
145
|
+
},
|
|
187
146
|
});
|
|
188
|
-
return result;
|
|
147
|
+
return { channel: "openclaw-weixin", messageId: result.messageId };
|
|
189
148
|
},
|
|
190
149
|
sendMedia: async (ctx) => {
|
|
191
150
|
const accountId = ctx.accountId || resolveOutboundAccountId(ctx.cfg, ctx.to);
|
|
@@ -198,76 +157,39 @@ export const weixinPlugin = {
|
|
|
198
157
|
throw new Error("weixin not configured: please run `openclaw channels login --channel openclaw-weixin`");
|
|
199
158
|
}
|
|
200
159
|
const mediaUrl = ctx.mediaUrl;
|
|
201
|
-
|
|
202
|
-
const sendingResult = await applyWeixinMessageSendingHook({
|
|
203
|
-
to: ctx.to,
|
|
204
|
-
text,
|
|
205
|
-
accountId: account.accountId,
|
|
206
|
-
mediaUrl,
|
|
207
|
-
});
|
|
208
|
-
if (sendingResult.cancelled) {
|
|
209
|
-
aLog.info(`sendMedia: cancelled by message_sending hook to=${ctx.to}`);
|
|
210
|
-
return { channel: "openclaw-weixin", messageId: "" };
|
|
211
|
-
}
|
|
212
|
-
text = sendingResult.text;
|
|
160
|
+
const text = ctx.text ?? "";
|
|
213
161
|
if (mediaUrl && (isLocalFilePath(mediaUrl) || isRemoteUrl(mediaUrl))) {
|
|
214
162
|
let filePath;
|
|
215
163
|
if (isLocalFilePath(mediaUrl)) {
|
|
216
164
|
filePath = resolveLocalPath(mediaUrl);
|
|
217
|
-
aLog.debug(
|
|
165
|
+
aLog.debug("sendMedia: uploading local file");
|
|
218
166
|
}
|
|
219
167
|
else {
|
|
220
|
-
aLog.debug(
|
|
168
|
+
aLog.debug("sendMedia: downloading remote media");
|
|
221
169
|
filePath = await downloadRemoteImageToTemp(mediaUrl, MEDIA_OUTBOUND_TEMP_DIR);
|
|
222
|
-
aLog.debug(
|
|
170
|
+
aLog.debug("sendMedia: remote media downloaded");
|
|
223
171
|
}
|
|
224
172
|
const contextToken = getContextToken(storageAccountId, ctx.to);
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
filePath,
|
|
228
|
-
to: ctx.to,
|
|
229
|
-
text,
|
|
230
|
-
opts: { baseUrl: account.baseUrl, token: account.token, contextToken },
|
|
231
|
-
cdnBaseUrl: account.cdnBaseUrl,
|
|
232
|
-
});
|
|
233
|
-
emitWeixinMessageSent({ to: ctx.to, content: text, success: true, accountId: account.accountId });
|
|
234
|
-
return { channel: "openclaw-weixin", messageId: result.messageId };
|
|
235
|
-
}
|
|
236
|
-
catch (err) {
|
|
237
|
-
emitWeixinMessageSent({
|
|
238
|
-
to: ctx.to,
|
|
239
|
-
content: text,
|
|
240
|
-
success: false,
|
|
241
|
-
error: String(err),
|
|
242
|
-
accountId: account.accountId,
|
|
243
|
-
});
|
|
244
|
-
throw err;
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
const contextToken = getContextToken(storageAccountId, ctx.to);
|
|
248
|
-
try {
|
|
249
|
-
const result = await sendMessageWeixin({
|
|
173
|
+
const result = await sendWeixinMediaFile({
|
|
174
|
+
filePath,
|
|
250
175
|
to: ctx.to,
|
|
251
176
|
text,
|
|
252
|
-
opts: {
|
|
253
|
-
|
|
254
|
-
token: account.token,
|
|
255
|
-
contextToken,
|
|
256
|
-
},
|
|
177
|
+
opts: { baseUrl: account.baseUrl, token: account.token, contextToken },
|
|
178
|
+
cdnBaseUrl: account.cdnBaseUrl,
|
|
257
179
|
});
|
|
258
|
-
emitWeixinMessageSent({ to: ctx.to, content: text, success: true, accountId: account.accountId });
|
|
259
180
|
return { channel: "openclaw-weixin", messageId: result.messageId };
|
|
260
181
|
}
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
}
|
|
182
|
+
const contextToken = getContextToken(storageAccountId, ctx.to);
|
|
183
|
+
const result = await sendMessageWeixin({
|
|
184
|
+
to: ctx.to,
|
|
185
|
+
text,
|
|
186
|
+
opts: {
|
|
187
|
+
baseUrl: account.baseUrl,
|
|
188
|
+
token: account.token,
|
|
189
|
+
contextToken,
|
|
190
|
+
},
|
|
191
|
+
});
|
|
192
|
+
return { channel: "openclaw-weixin", messageId: result.messageId };
|
|
271
193
|
},
|
|
272
194
|
},
|
|
273
195
|
status: {
|
|
@@ -306,7 +228,7 @@ export const weixinPlugin = {
|
|
|
306
228
|
verbose: Boolean(verbose),
|
|
307
229
|
});
|
|
308
230
|
if (!startResult.qrcodeUrl) {
|
|
309
|
-
logger.warn(`auth.login: failed to get QR code
|
|
231
|
+
logger.warn(`auth.login: failed to get QR code account=${redactToken(account.accountId)}`);
|
|
310
232
|
log(startResult.message);
|
|
311
233
|
throw new Error(startResult.message);
|
|
312
234
|
}
|
|
@@ -340,8 +262,8 @@ export const weixinPlugin = {
|
|
|
340
262
|
: `\n已将此 OpenClaw 连接到微信。`);
|
|
341
263
|
}
|
|
342
264
|
catch (err) {
|
|
343
|
-
logger.error(`auth.login: failed to save account data err=${
|
|
344
|
-
log(`⚠️
|
|
265
|
+
logger.error(`auth.login: failed to save account data err=${redactError(err)}`);
|
|
266
|
+
log(`⚠️ 保存账号数据失败,请稍后重试。`);
|
|
345
267
|
throw err;
|
|
346
268
|
}
|
|
347
269
|
}
|
|
@@ -364,13 +286,13 @@ export const weixinPlugin = {
|
|
|
364
286
|
}
|
|
365
287
|
}
|
|
366
288
|
catch (err) {
|
|
367
|
-
logger.error(`auth.login: already-connected alias binding failed err=${
|
|
368
|
-
log(`⚠️
|
|
289
|
+
logger.error(`auth.login: already-connected alias binding failed err=${redactError(err)}`);
|
|
290
|
+
log(`⚠️ 账号别名绑定失败,请稍后重试。`);
|
|
369
291
|
throw err;
|
|
370
292
|
}
|
|
371
293
|
}
|
|
372
294
|
else {
|
|
373
|
-
logger.warn(
|
|
295
|
+
logger.warn("auth.login: login did not complete");
|
|
374
296
|
// log(waitResult.message);
|
|
375
297
|
throw new Error(waitResult.message);
|
|
376
298
|
}
|
|
@@ -404,35 +326,35 @@ export const weixinPlugin = {
|
|
|
404
326
|
});
|
|
405
327
|
if (!account.configured) {
|
|
406
328
|
aLog.error(`account not configured`);
|
|
407
|
-
ctx.log?.error?.(`[${primaryId}] weixin not logged in — run: openclaw channels login --channel openclaw-weixin`);
|
|
329
|
+
ctx.log?.error?.(`[${redactToken(primaryId)}] weixin not logged in — run: openclaw channels login --channel openclaw-weixin`);
|
|
408
330
|
ctx.setStatus?.({ accountId: primaryId, running: false });
|
|
409
331
|
throw new Error("weixin not configured: missing token");
|
|
410
332
|
}
|
|
411
|
-
ctx.log?.info?.(`[${primaryId}] starting weixin provider
|
|
333
|
+
ctx.log?.info?.(`[${redactToken(primaryId)}] starting weixin provider`);
|
|
412
334
|
try {
|
|
413
335
|
const resp = await notifyStart({
|
|
414
336
|
baseUrl: account.baseUrl,
|
|
415
337
|
token: account.token,
|
|
416
338
|
});
|
|
417
339
|
if (resp.ret !== undefined && resp.ret !== 0) {
|
|
418
|
-
aLog.warn(`notifyStart: ret=${resp.ret}
|
|
340
|
+
aLog.warn(`notifyStart: ret=${resp.ret}`);
|
|
419
341
|
}
|
|
420
342
|
}
|
|
421
343
|
catch (err) {
|
|
422
|
-
aLog.warn(`notifyStart failed during startup (ignored): ${
|
|
344
|
+
aLog.warn(`notifyStart failed during startup (ignored): ${redactError(err)}`);
|
|
423
345
|
}
|
|
424
|
-
|
|
425
|
-
ctx.log?.info?.(`[${primaryId}] weixin logs: ${logPath}`);
|
|
346
|
+
ctx.log?.info?.(`[${redactToken(primaryId)}] weixin logging initialized`);
|
|
426
347
|
// The gateway injects the channel runtime surface per-call (task-scoped). We require it:
|
|
427
348
|
// it carries reply/routing/session/media/commands helpers used by processOneMessage.
|
|
428
349
|
// Available on hosts >= 2026.2.19 (our peerDependency is >= 2026.3.22).
|
|
429
350
|
if (!ctx.channelRuntime) {
|
|
430
351
|
const msg = `ctx.channelRuntime missing — host too old or plugin SDK contract violated`;
|
|
431
352
|
aLog.error(msg);
|
|
432
|
-
ctx.log?.error?.(`[${primaryId}] ${msg}`);
|
|
353
|
+
ctx.log?.error?.(`[${redactToken(primaryId)}] ${msg}`);
|
|
433
354
|
ctx.setStatus?.({ accountId: primaryId, running: false });
|
|
434
355
|
throw new Error(msg);
|
|
435
356
|
}
|
|
357
|
+
// Avoid loading the inbound command/registry chain during plugin registration.
|
|
436
358
|
const { monitorWeixinProvider } = await import("./monitor/monitor.js");
|
|
437
359
|
return monitorWeixinProvider({
|
|
438
360
|
baseUrl: account.baseUrl,
|
|
@@ -465,11 +387,11 @@ export const weixinPlugin = {
|
|
|
465
387
|
token: account.token,
|
|
466
388
|
});
|
|
467
389
|
if (resp.ret !== undefined && resp.ret !== 0) {
|
|
468
|
-
aLog.warn(`notifyStop: ret=${resp.ret}
|
|
390
|
+
aLog.warn(`notifyStop: ret=${resp.ret}`);
|
|
469
391
|
}
|
|
470
392
|
}
|
|
471
393
|
catch (err) {
|
|
472
|
-
aLog.warn(`notifyStop failed during shutdown (ignored): ${
|
|
394
|
+
aLog.warn(`notifyStop failed during shutdown (ignored): ${redactError(err)}`);
|
|
473
395
|
}
|
|
474
396
|
},
|
|
475
397
|
loginWithQrStart: async ({ accountId, force, verbose }) => {
|
|
@@ -516,7 +438,7 @@ export const weixinPlugin = {
|
|
|
516
438
|
: "loginWithQrWait: saved account data for primary bot id");
|
|
517
439
|
}
|
|
518
440
|
catch (err) {
|
|
519
|
-
logger.error(`loginWithQrWait: failed to save account data err=${
|
|
441
|
+
logger.error(`loginWithQrWait: failed to save account data err=${redactError(err)}`);
|
|
520
442
|
throw err;
|
|
521
443
|
}
|
|
522
444
|
}
|
|
@@ -532,7 +454,7 @@ export const weixinPlugin = {
|
|
|
532
454
|
}
|
|
533
455
|
}
|
|
534
456
|
catch (err) {
|
|
535
|
-
logger.error(`loginWithQrWait: already-connected alias binding failed err=${
|
|
457
|
+
logger.error(`loginWithQrWait: already-connected alias binding failed err=${redactError(err)}`);
|
|
536
458
|
throw err;
|
|
537
459
|
}
|
|
538
460
|
}
|
package/dist/src/channel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/channel.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/channel.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export function resolveWeixinBlockStreamingEnabled(cfg, accountId, fallbackAccountId) {
|
|
2
|
+
const section = cfg.channels?.["openclaw-weixin"];
|
|
3
|
+
return (section?.accounts?.[accountId]?.blockStreaming ??
|
|
4
|
+
(fallbackAccountId ? section?.accounts?.[fallbackAccountId]?.blockStreaming : undefined) ??
|
|
5
|
+
section?.blockStreaming ??
|
|
6
|
+
true);
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=block-streaming.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"block-streaming.js","sourceRoot":"","sources":["../../../src/config/block-streaming.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,kCAAkC,CAChD,GAAmB,EACnB,SAAiB,EACjB,iBAA0B;IAE1B,MAAM,OAAO,GAAG,GAAG,CAAC,QAAQ,EAAE,CAAC,iBAAiB,CAA2C,CAAC;IAC5F,OAAO,CACL,OAAO,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,cAAc;QAC9C,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC,iBAAiB,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC;QACxF,OAAO,EAAE,cAAc;QACvB,IAAI,CACL,CAAC;AACJ,CAAC"}
|
|
@@ -9,6 +9,10 @@ const weixinAccountProperties = {
|
|
|
9
9
|
baseUrl: { type: "string", default: DEFAULT_BASE_URL },
|
|
10
10
|
cdnBaseUrl: { type: "string", default: CDN_BASE_URL },
|
|
11
11
|
routeTag: { type: "number" },
|
|
12
|
+
blockStreaming: {
|
|
13
|
+
type: "boolean",
|
|
14
|
+
description: "Send completed text blocks before the final reply.",
|
|
15
|
+
},
|
|
12
16
|
};
|
|
13
17
|
const weixinAccountSchema = {
|
|
14
18
|
type: "object",
|
|
@@ -24,6 +28,11 @@ const replyProgressMessagesSchema = {
|
|
|
24
28
|
default: true,
|
|
25
29
|
description: "Send structured tool-call progress messages.",
|
|
26
30
|
};
|
|
31
|
+
const blockStreamingSchema = {
|
|
32
|
+
type: "boolean",
|
|
33
|
+
default: true,
|
|
34
|
+
description: "Send completed text blocks before the final reply.",
|
|
35
|
+
};
|
|
27
36
|
/** Top-level weixin config schema (token is stored in credentials file, not config). */
|
|
28
37
|
const weixinChannelConfigJsonSchema = {
|
|
29
38
|
type: "object",
|
|
@@ -37,6 +46,7 @@ const weixinChannelConfigJsonSchema = {
|
|
|
37
46
|
additionalProperties: weixinAccountSchema,
|
|
38
47
|
},
|
|
39
48
|
botAgent: botAgentSchema,
|
|
49
|
+
blockStreaming: blockStreamingSchema,
|
|
40
50
|
replyProgressMessages: replyProgressMessagesSchema,
|
|
41
51
|
/** ISO 8601; bumped on each successful login to refresh gateway config from disk. */
|
|
42
52
|
channelConfigUpdatedAt: { type: "string" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-schema.js","sourceRoot":"","sources":["../../../src/config/config-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AAEzF,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAErE,MAAM,cAAc,GAAG;IACrB,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;CACvC,CAAC;AAEX,MAAM,uBAAuB,GAAG;IAC9B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACxB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC5B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE;IACtD,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;IACrD,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;
|
|
1
|
+
{"version":3,"file":"config-schema.js","sourceRoot":"","sources":["../../../src/config/config-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,2CAA2C,CAAC;AAEzF,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAErE,MAAM,cAAc,GAAG;IACrB,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;CACvC,CAAC;AAEX,MAAM,uBAAuB,GAAG;IAC9B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IACxB,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;IAC5B,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE;IACtD,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;IACrD,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC5B,cAAc,EAAE;QACd,IAAI,EAAE,SAAS;QACf,WAAW,EAAE,oDAAoD;KAClE;CACO,CAAC;AAEX,MAAM,mBAAmB,GAAG;IAC1B,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAE,IAAI;IAC1B,UAAU,EAAE,uBAAuB;CAC3B,CAAC;AAEX,MAAM,cAAc,GAAG;IACrB,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,+DAA+D;CACpE,CAAC;AAEX,MAAM,2BAA2B,GAAG;IAClC,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,8CAA8C;CACnD,CAAC;AAEX,MAAM,oBAAoB,GAAG;IAC3B,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,oDAAoD;CACzD,CAAC;AAEX,wFAAwF;AACxF,MAAM,6BAA6B,GAAG;IACpC,IAAI,EAAE,QAAQ;IACd,oBAAoB,EAAE,IAAI;IAC1B,UAAU,EAAE;QACV,GAAG,uBAAuB;QAC1B,iFAAiF;QACjF,QAAQ,EAAE,cAAc;QACxB,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,mBAAmB;SAC1C;QACD,QAAQ,EAAE,cAAc;QACxB,cAAc,EAAE,oBAAoB;QACpC,qBAAqB,EAAE,2BAA2B;QAClD,qFAAqF;QACrF,sBAAsB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;KAC3C;CACO,CAAC;AAEX,MAAM,CAAC,MAAM,yBAAyB,GAAG,4BAA4B,CAAC,6BAA6B,CAAC,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { MessageItemType } from "../api/types.js";
|
|
2
2
|
import { downloadAndDecryptBuffer, downloadPlainCdnBuffer } from "../cdn/pic-decrypt.js";
|
|
3
3
|
import { logger } from "../util/logger.js";
|
|
4
|
+
import { redactError } from "../util/redact.js";
|
|
4
5
|
import { getMimeFromFilename } from "./mime.js";
|
|
5
6
|
import { silkToWav } from "./silk-transcode.js";
|
|
6
7
|
const WEIXIN_MEDIA_MAX_BYTES = 100 * 1024 * 1024;
|
|
@@ -17,18 +18,18 @@ export async function downloadMediaFromItem(item, deps) {
|
|
|
17
18
|
if (!img?.media?.encrypt_query_param && !img?.media?.full_url)
|
|
18
19
|
return result;
|
|
19
20
|
const aesKeyBase64 = img.aeskey ? Buffer.from(img.aeskey, "hex").toString("base64") : img.media.aes_key;
|
|
20
|
-
logger.debug(`${label} image:
|
|
21
|
+
logger.debug(`${label} image: hasEncryptedQuery=${Boolean(img.media.encrypt_query_param)} hasAesKey=${Boolean(aesKeyBase64)} aeskeySource=${img.aeskey ? "image_item.aeskey" : "media.aes_key"} fullUrl=${Boolean(img.media.full_url)}`);
|
|
21
22
|
try {
|
|
22
23
|
const buf = aesKeyBase64
|
|
23
24
|
? await downloadAndDecryptBuffer(img.media.encrypt_query_param ?? "", aesKeyBase64, cdnBaseUrl, `${label} image`, img.media.full_url)
|
|
24
25
|
: await downloadPlainCdnBuffer(img.media.encrypt_query_param ?? "", cdnBaseUrl, `${label} image-plain`, img.media.full_url);
|
|
25
26
|
const saved = await saveMedia(buf, undefined, subdir, WEIXIN_MEDIA_MAX_BYTES);
|
|
26
27
|
result.decryptedPicPath = saved.path;
|
|
27
|
-
logger.debug(`${label} image saved
|
|
28
|
+
logger.debug(`${label} image saved`);
|
|
28
29
|
}
|
|
29
30
|
catch (err) {
|
|
30
|
-
logger.error(`${label} image download/decrypt failed: ${
|
|
31
|
-
errLog(`weixin ${label} image download/decrypt failed: ${
|
|
31
|
+
logger.error(`${label} image download/decrypt failed: ${redactError(err)}`);
|
|
32
|
+
errLog(`weixin ${label} image download/decrypt failed: ${redactError(err)}`);
|
|
32
33
|
}
|
|
33
34
|
}
|
|
34
35
|
else if (item.type === MessageItemType.VOICE) {
|
|
@@ -43,18 +44,18 @@ export async function downloadMediaFromItem(item, deps) {
|
|
|
43
44
|
const saved = await saveMedia(wavBuf, "audio/wav", subdir, WEIXIN_MEDIA_MAX_BYTES);
|
|
44
45
|
result.decryptedVoicePath = saved.path;
|
|
45
46
|
result.voiceMediaType = "audio/wav";
|
|
46
|
-
logger.debug(`${label} voice: saved WAV
|
|
47
|
+
logger.debug(`${label} voice: saved WAV`);
|
|
47
48
|
}
|
|
48
49
|
else {
|
|
49
50
|
const saved = await saveMedia(silkBuf, "audio/silk", subdir, WEIXIN_MEDIA_MAX_BYTES);
|
|
50
51
|
result.decryptedVoicePath = saved.path;
|
|
51
52
|
result.voiceMediaType = "audio/silk";
|
|
52
|
-
logger.debug(`${label} voice: silk transcode unavailable, saved raw SILK
|
|
53
|
+
logger.debug(`${label} voice: silk transcode unavailable, saved raw SILK`);
|
|
53
54
|
}
|
|
54
55
|
}
|
|
55
56
|
catch (err) {
|
|
56
|
-
logger.error(`${label} voice download/transcode failed: ${
|
|
57
|
-
errLog(`weixin ${label} voice download/transcode failed: ${
|
|
57
|
+
logger.error(`${label} voice download/transcode failed: ${redactError(err)}`);
|
|
58
|
+
errLog(`weixin ${label} voice download/transcode failed: ${redactError(err)}`);
|
|
58
59
|
}
|
|
59
60
|
}
|
|
60
61
|
else if (item.type === MessageItemType.FILE) {
|
|
@@ -67,11 +68,11 @@ export async function downloadMediaFromItem(item, deps) {
|
|
|
67
68
|
const saved = await saveMedia(buf, mime, subdir, WEIXIN_MEDIA_MAX_BYTES, fileItem.file_name ?? undefined);
|
|
68
69
|
result.decryptedFilePath = saved.path;
|
|
69
70
|
result.fileMediaType = mime;
|
|
70
|
-
logger.debug(`${label} file: saved
|
|
71
|
+
logger.debug(`${label} file: saved mime=${mime}`);
|
|
71
72
|
}
|
|
72
73
|
catch (err) {
|
|
73
|
-
logger.error(`${label} file download failed: ${
|
|
74
|
-
errLog(`weixin ${label} file download failed: ${
|
|
74
|
+
logger.error(`${label} file download failed: ${redactError(err)}`);
|
|
75
|
+
errLog(`weixin ${label} file download failed: ${redactError(err)}`);
|
|
75
76
|
}
|
|
76
77
|
}
|
|
77
78
|
else if (item.type === MessageItemType.VIDEO) {
|
|
@@ -82,11 +83,11 @@ export async function downloadMediaFromItem(item, deps) {
|
|
|
82
83
|
const buf = await downloadAndDecryptBuffer(videoItem.media.encrypt_query_param ?? "", videoItem.media.aes_key, cdnBaseUrl, `${label} video`, videoItem.media.full_url);
|
|
83
84
|
const saved = await saveMedia(buf, "video/mp4", subdir, WEIXIN_MEDIA_MAX_BYTES);
|
|
84
85
|
result.decryptedVideoPath = saved.path;
|
|
85
|
-
logger.debug(`${label} video: saved
|
|
86
|
+
logger.debug(`${label} video: saved`);
|
|
86
87
|
}
|
|
87
88
|
catch (err) {
|
|
88
|
-
logger.error(`${label} video download failed: ${
|
|
89
|
-
errLog(`weixin ${label} video download failed: ${
|
|
89
|
+
logger.error(`${label} video download failed: ${redactError(err)}`);
|
|
90
|
+
errLog(`weixin ${label} video download failed: ${redactError(err)}`);
|
|
90
91
|
}
|
|
91
92
|
}
|
|
92
93
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media-download.js","sourceRoot":"","sources":["../../../src/media/media-download.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAEzF,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,MAAM,sBAAsB,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,CAAC;AAWjD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,IAA4E,EAC5E,IAYC;IAED,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IACtD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,SAAS,CAAC;IACxC,MAAM,MAAM,GAA2B,EAAE,CAAC;IAE1C,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,CAAC,KAAK,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC;QAC5B,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,mBAAmB,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,QAAQ;YAAE,OAAO,MAAM,CAAC;QAC7E,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;QACxG,MAAM,CAAC,KAAK,CACV,GAAG,KAAK
|
|
1
|
+
{"version":3,"file":"media-download.js","sourceRoot":"","sources":["../../../src/media/media-download.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { logger } from "../util/logger.js";
|
|
2
|
+
import { redactError } from "../util/redact.js";
|
|
2
3
|
/** Default sample rate for Weixin voice messages. */
|
|
3
4
|
const SILK_SAMPLE_RATE = 24_000;
|
|
4
5
|
/**
|
|
@@ -57,7 +58,7 @@ export async function silkToWav(silkBuf) {
|
|
|
57
58
|
return wav;
|
|
58
59
|
}
|
|
59
60
|
catch (err) {
|
|
60
|
-
logger.warn(`silkToWav: transcode failed, will use raw silk err=${
|
|
61
|
+
logger.warn(`silkToWav: transcode failed, will use raw silk err=${redactError(err)}`);
|
|
61
62
|
return null;
|
|
62
63
|
}
|
|
63
64
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"silk-transcode.js","sourceRoot":"","sources":["../../../src/media/silk-transcode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"silk-transcode.js","sourceRoot":"","sources":["../../../src/media/silk-transcode.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,7 @@ import fs from "node:fs";
|
|
|
11
11
|
import path from "node:path";
|
|
12
12
|
import { resolveStateDir } from "../storage/state-dir.js";
|
|
13
13
|
import { logger } from "../util/logger.js";
|
|
14
|
+
import { redactError } from "../util/redact.js";
|
|
14
15
|
function resolveDebugModePath() {
|
|
15
16
|
return path.join(resolveStateDir(), "openclaw-weixin", "debug-mode.json");
|
|
16
17
|
}
|
|
@@ -40,7 +41,7 @@ export function toggleDebugMode(accountId) {
|
|
|
40
41
|
saveState(state);
|
|
41
42
|
}
|
|
42
43
|
catch (err) {
|
|
43
|
-
logger.error(`debug-mode: failed to persist state: ${
|
|
44
|
+
logger.error(`debug-mode: failed to persist state: ${redactError(err)}`);
|
|
44
45
|
}
|
|
45
46
|
return next;
|
|
46
47
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug-mode.js","sourceRoot":"","sources":["../../../src/messaging/debug-mode.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"debug-mode.js","sourceRoot":"","sources":["../../../src/messaging/debug-mode.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAMhD,SAAS,oBAAoB;IAC3B,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,iBAAiB,EAAE,iBAAiB,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,SAAS;IAChB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,oBAAoB,EAAE,EAAE,OAAO,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAmB,CAAC;QACjD,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;YAAE,OAAO,MAAM,CAAC;IACnE,CAAC;IAAC,MAAM,CAAC;QACP,mCAAmC;IACrC,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AAC1B,CAAC;AAED,SAAS,SAAS,CAAC,KAAqB;IACtC,MAAM,QAAQ,GAAG,oBAAoB,EAAE,CAAC;IACxC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1D,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACtE,CAAC;AAED,kEAAkE;AAClE,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;IAC1B,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACxC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IACjC,IAAI,CAAC;QACH,SAAS,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,KAAK,CAAC,wCAAwC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,WAAW,CAAC,SAAiB;IAC3C,OAAO,SAAS,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,IAAI,CAAC;QACH,EAAE,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,wBAAwB;IAC1B,CAAC;AACH,CAAC"}
|