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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send-media.js","sourceRoot":"","sources":["../../../src/messaging/send-media.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACzG,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAElG;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAMzC;IACC,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IACxD,MAAM,IAAI,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAqB,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IAElF,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"send-media.js","sourceRoot":"","sources":["../../../src/messaging/send-media.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACzG,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAElG;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAMzC;IACC,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;IACxD,MAAM,IAAI,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAqB,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IAElF,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,oDAAoD,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACnF,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC;YACzC,QAAQ;YACR,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE,UAAU;YAChB,UAAU;SACX,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CACT,2DAA2D,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,QAAQ,CAAC,QAAQ,EAAE,CACrH,CAAC;QACF,OAAO,sBAAsB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,oDAAoD,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACnF,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC;YACxC,QAAQ;YACR,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE,UAAU;YAChB,UAAU;SACX,CAAC,CAAC;QACH,MAAM,CAAC,IAAI,CACT,2DAA2D,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,QAAQ,CAAC,QAAQ,EAAE,CACrH,CAAC;QACF,OAAO,sBAAsB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,uCAAuC;IACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,CAAC,IAAI,CAAC,8DAA8D,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7F,MAAM,QAAQ,GAAG,MAAM,4BAA4B,CAAC;QAClD,QAAQ;QACR,QAAQ;QACR,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE,UAAU;QAChB,UAAU;KACX,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CACT,0DAA0D,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,QAAQ,CAAC,QAAQ,EAAE,CACpH,CAAC;IACF,OAAO,qBAAqB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;AACvE,CAAC"}
|
|
@@ -2,7 +2,7 @@ import { sendMessage as sendMessageApi } from "../api/api.js";
|
|
|
2
2
|
import { MessageItemType, MessageState, MessageType } from "../api/types.js";
|
|
3
3
|
import { logger } from "../util/logger.js";
|
|
4
4
|
import { generateId } from "../util/random.js";
|
|
5
|
-
import { redactToken } from "../util/redact.js";
|
|
5
|
+
import { redactError, redactToken } from "../util/redact.js";
|
|
6
6
|
export { StreamingMarkdownFilter } from "./markdown-filter.js";
|
|
7
7
|
function generateClientId() {
|
|
8
8
|
return generateId("openclaw-weixin");
|
|
@@ -61,7 +61,7 @@ export async function sendMessageWeixin(params) {
|
|
|
61
61
|
});
|
|
62
62
|
}
|
|
63
63
|
catch (err) {
|
|
64
|
-
logger.error(`sendMessageWeixin: failed to=${redactToken(to)} clientId=${clientId} err=${
|
|
64
|
+
logger.error(`sendMessageWeixin: failed to=${redactToken(to)} clientId=${clientId} err=${redactError(err)}`);
|
|
65
65
|
throw err;
|
|
66
66
|
}
|
|
67
67
|
return { messageId: clientId };
|
|
@@ -95,7 +95,7 @@ export async function sendMessageItemWeixin(params) {
|
|
|
95
95
|
});
|
|
96
96
|
}
|
|
97
97
|
catch (err) {
|
|
98
|
-
logger.error(`${params.label ?? "sendMessageItemWeixin"}: failed to=${redactToken(to)} clientId=${clientId} err=${
|
|
98
|
+
logger.error(`${params.label ?? "sendMessageItemWeixin"}: failed to=${redactToken(to)} clientId=${clientId} err=${redactError(err)}`);
|
|
99
99
|
throw err;
|
|
100
100
|
}
|
|
101
101
|
return { messageId: clientId };
|
|
@@ -136,7 +136,7 @@ async function sendMediaItems(params) {
|
|
|
136
136
|
});
|
|
137
137
|
}
|
|
138
138
|
catch (err) {
|
|
139
|
-
logger.error(`${label}: failed to=${redactToken(to)} clientId=${lastClientId} err=${
|
|
139
|
+
logger.error(`${label}: failed to=${redactToken(to)} clientId=${lastClientId} err=${redactError(err)}`);
|
|
140
140
|
throw err;
|
|
141
141
|
}
|
|
142
142
|
}
|
|
@@ -158,7 +158,7 @@ export async function sendImageMessageWeixin(params) {
|
|
|
158
158
|
logger.error("sendImageMessageWeixin: contextToken missing — refusing to send (silent-drop risk; upstream #247)");
|
|
159
159
|
throw new Error("[openclaw-weixin] sendImageMessageWeixin: contextToken missing — refusing to send to avoid silent-drop (upstream issue #247)");
|
|
160
160
|
}
|
|
161
|
-
logger.info(`sendImageMessageWeixin: to=${redactToken(to)} filekey=${uploaded.filekey} fileSize=${uploaded.fileSize} aeskey=present`);
|
|
161
|
+
logger.info(`sendImageMessageWeixin: to=${redactToken(to)} filekey=${redactToken(uploaded.filekey)} fileSize=${uploaded.fileSize} aeskey=present`);
|
|
162
162
|
const imageItem = {
|
|
163
163
|
type: MessageItemType.IMAGE,
|
|
164
164
|
image_item: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../../src/messaging/send.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,eAAe,CAAC;AAE9D,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE7E,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../../src/messaging/send.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
|
import { toggleDebugMode } from "./debug-mode.js";
|
|
3
4
|
import { sendMessageWeixin } from "./send.js";
|
|
4
5
|
/** 发送回复消息 */
|
|
@@ -39,7 +40,8 @@ export async function handleSlashCommand(content, ctx, receivedAt, eventTimestam
|
|
|
39
40
|
const spaceIdx = trimmed.indexOf(" ");
|
|
40
41
|
const command = spaceIdx === -1 ? trimmed.toLowerCase() : trimmed.slice(0, spaceIdx).toLowerCase();
|
|
41
42
|
const args = spaceIdx === -1 ? "" : trimmed.slice(spaceIdx + 1);
|
|
42
|
-
|
|
43
|
+
const knownCommand = command === "/echo" || command === "/toggle-debug";
|
|
44
|
+
logger.info(knownCommand ? `[weixin] Slash command: ${command} hasArgs=${Boolean(args)}` : "[weixin] Slash command: (unknown)");
|
|
43
45
|
try {
|
|
44
46
|
switch (command) {
|
|
45
47
|
case "/echo":
|
|
@@ -55,12 +57,12 @@ export async function handleSlashCommand(content, ctx, receivedAt, eventTimestam
|
|
|
55
57
|
}
|
|
56
58
|
}
|
|
57
59
|
catch (err) {
|
|
58
|
-
logger.error(`[weixin] Slash command error: ${
|
|
60
|
+
logger.error(`[weixin] Slash command error: ${redactError(err)}`);
|
|
59
61
|
if (!ctx.contextToken) {
|
|
60
62
|
return { handled: true };
|
|
61
63
|
}
|
|
62
64
|
try {
|
|
63
|
-
await sendReply(ctx,
|
|
65
|
+
await sendReply(ctx, "❌ 指令执行失败,请稍后重试。");
|
|
64
66
|
}
|
|
65
67
|
catch {
|
|
66
68
|
// 发送错误消息也失败了,只能记日志
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slash-commands.js","sourceRoot":"","sources":["../../../src/messaging/slash-commands.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"slash-commands.js","sourceRoot":"","sources":["../../../src/messaging/slash-commands.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,14 +7,14 @@ import { buildWeixinInboundDedupeKey, commitWeixinInboundMessage, logWeixinInbou
|
|
|
7
7
|
import { processOneMessage } from "../messaging/process-message.js";
|
|
8
8
|
import { getSyncBufFilePath, loadGetUpdatesBuf, saveGetUpdatesBuf } from "../storage/sync-buf.js";
|
|
9
9
|
import { logger } from "../util/logger.js";
|
|
10
|
-
import {
|
|
10
|
+
import { redactError, redactToken, redactUrl } from "../util/redact.js";
|
|
11
11
|
const DEFAULT_LONG_POLL_TIMEOUT_MS = 35_000;
|
|
12
12
|
const MAX_CONSECUTIVE_FAILURES = 3;
|
|
13
13
|
const BACKOFF_DELAY_MS = 30_000;
|
|
14
14
|
const RETRY_DELAY_MS = 2_000;
|
|
15
15
|
const PLUGIN_APPROVAL_RE = /^\/approve\s+plugin:/i;
|
|
16
16
|
/**
|
|
17
|
-
* Long-poll loop: getUpdates ->
|
|
17
|
+
* Long-poll loop: getUpdates -> public inbound turn dispatch.
|
|
18
18
|
* Runs until abort.
|
|
19
19
|
*/
|
|
20
20
|
export async function monitorWeixinProvider(opts) {
|
|
@@ -28,10 +28,10 @@ export async function monitorWeixinProvider(opts) {
|
|
|
28
28
|
aLog.error(msg);
|
|
29
29
|
throw new Error(msg);
|
|
30
30
|
}
|
|
31
|
-
log(`weixin monitor started (
|
|
32
|
-
aLog.info(`Monitor started: baseUrl=${baseUrl} timeoutMs=${longPollTimeoutMs ?? DEFAULT_LONG_POLL_TIMEOUT_MS}`);
|
|
31
|
+
log(`weixin monitor started (baseUrl=${redactUrl(baseUrl)}, account=${redactToken(accountId)})`);
|
|
32
|
+
aLog.info(`Monitor started: baseUrl=${redactUrl(baseUrl)} timeoutMs=${longPollTimeoutMs ?? DEFAULT_LONG_POLL_TIMEOUT_MS}`);
|
|
33
33
|
const syncFilePath = getSyncBufFilePath(accountId);
|
|
34
|
-
aLog.debug(
|
|
34
|
+
aLog.debug("sync state path resolved");
|
|
35
35
|
const previousGetUpdatesBuf = loadGetUpdatesBuf(syncFilePath);
|
|
36
36
|
let getUpdatesBuf = previousGetUpdatesBuf ?? "";
|
|
37
37
|
if (previousGetUpdatesBuf) {
|
|
@@ -57,7 +57,7 @@ export async function monitorWeixinProvider(opts) {
|
|
|
57
57
|
?.map((item) => item?.type)
|
|
58
58
|
.filter((type) => type !== undefined)
|
|
59
59
|
.join(",") ?? "none";
|
|
60
|
-
aLog.info(`inbound message: from=${full.from_user_id} types=${itemTypes}`);
|
|
60
|
+
aLog.info(`inbound message: from=${redactToken(full.from_user_id)} types=${itemTypes}`);
|
|
61
61
|
const now = Date.now();
|
|
62
62
|
setStatus?.({ accountId, lastEventAt: now, lastInboundAt: now });
|
|
63
63
|
// allowFrom filtering is delegated to processOneMessage via the framework
|
|
@@ -116,8 +116,8 @@ export async function monitorWeixinProvider(opts) {
|
|
|
116
116
|
// Owner released — re-enter admission so the message is not lost.
|
|
117
117
|
scheduleInboundMessage(full);
|
|
118
118
|
})().catch((err) => {
|
|
119
|
-
errLog(`weixin inbound inflight observe failed: ${
|
|
120
|
-
aLog.error(`Inbound inflight observe failed: ${
|
|
119
|
+
errLog(`weixin inbound inflight observe failed: ${redactError(err)}`);
|
|
120
|
+
aLog.error(`Inbound inflight observe failed: ${redactError(err)}`);
|
|
121
121
|
});
|
|
122
122
|
};
|
|
123
123
|
const scheduleInboundMessage = (full) => {
|
|
@@ -152,8 +152,8 @@ export async function monitorWeixinProvider(opts) {
|
|
|
152
152
|
await processInboundMessage(full, releaseOnce, dedupeKey);
|
|
153
153
|
})()
|
|
154
154
|
.catch((err) => {
|
|
155
|
-
errLog(`weixin inbound message failed: ${
|
|
156
|
-
aLog.error(`Inbound message failed: ${
|
|
155
|
+
errLog(`weixin inbound message failed: ${redactError(err)}`);
|
|
156
|
+
aLog.error(`Inbound message failed: ${redactError(err)}`);
|
|
157
157
|
})
|
|
158
158
|
.finally(releaseOnce);
|
|
159
159
|
}));
|
|
@@ -168,7 +168,7 @@ export async function monitorWeixinProvider(opts) {
|
|
|
168
168
|
let consecutiveFailures = 0;
|
|
169
169
|
while (!abortSignal?.aborted) {
|
|
170
170
|
try {
|
|
171
|
-
aLog.debug(`getUpdates:
|
|
171
|
+
aLog.debug(`getUpdates: cursor=${redactToken(getUpdatesBuf, 6)} timeoutMs=${nextTimeoutMs}`);
|
|
172
172
|
const resp = await getUpdates({
|
|
173
173
|
baseUrl,
|
|
174
174
|
token,
|
|
@@ -189,14 +189,14 @@ export async function monitorWeixinProvider(opts) {
|
|
|
189
189
|
if (isStaleToken) {
|
|
190
190
|
pauseSession(accountId);
|
|
191
191
|
const pauseMs = getRemainingPauseMs(accountId);
|
|
192
|
-
aLog.error(`getUpdates:
|
|
192
|
+
aLog.error(`getUpdates: account=${redactToken(accountId)} token stale, pausing all requests for ${Math.ceil(pauseMs / 60_000)} min`);
|
|
193
193
|
consecutiveFailures = 0;
|
|
194
194
|
await sleep(pauseMs, abortSignal);
|
|
195
195
|
continue;
|
|
196
196
|
}
|
|
197
197
|
consecutiveFailures += 1;
|
|
198
|
-
errLog(`weixin getUpdates failed: ret=${resp.ret} errcode=${resp.errcode}
|
|
199
|
-
aLog.error(`getUpdates failed: ret=${resp.ret} errcode=${resp.errcode}
|
|
198
|
+
errLog(`weixin getUpdates failed: ret=${resp.ret} errcode=${resp.errcode} (${consecutiveFailures}/${MAX_CONSECUTIVE_FAILURES})`);
|
|
199
|
+
aLog.error(`getUpdates failed: ret=${resp.ret} errcode=${resp.errcode} messages=${resp.msgs?.length ?? 0}`);
|
|
200
200
|
if (consecutiveFailures >= MAX_CONSECUTIVE_FAILURES) {
|
|
201
201
|
errLog(`weixin getUpdates: ${MAX_CONSECUTIVE_FAILURES} consecutive failures, backing off 30s`);
|
|
202
202
|
aLog.error(`getUpdates: ${MAX_CONSECUTIVE_FAILURES} consecutive failures, backing off 30s`);
|
|
@@ -229,8 +229,8 @@ export async function monitorWeixinProvider(opts) {
|
|
|
229
229
|
}
|
|
230
230
|
consecutiveFailures += 1;
|
|
231
231
|
const classified = classifyFetchError(err);
|
|
232
|
-
errLog(`weixin getUpdates error (${consecutiveFailures}/${MAX_CONSECUTIVE_FAILURES}): ${
|
|
233
|
-
aLog.error(`getUpdates error: ${
|
|
232
|
+
errLog(`weixin getUpdates error (${consecutiveFailures}/${MAX_CONSECUTIVE_FAILURES}): ${redactError(err)} type=${classified.type} description=${classified.description}${classified.code ? ` code=${classified.code}` : ""}`);
|
|
233
|
+
aLog.error(`getUpdates error: ${redactError(err)} type=${classified.type} code=${classified.code ?? "none"}`);
|
|
234
234
|
if (consecutiveFailures >= MAX_CONSECUTIVE_FAILURES) {
|
|
235
235
|
errLog(`weixin getUpdates: ${MAX_CONSECUTIVE_FAILURES} consecutive failures, backing off 30s`);
|
|
236
236
|
aLog.error(`getUpdates: ${MAX_CONSECUTIVE_FAILURES} consecutive failures, backing off 30s`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../../src/monitor/monitor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACjG,OAAO,EAAE,eAAe,EAAsB,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,EAC1B,yBAAyB,EACzB,2BAA2B,EAC3B,4BAA4B,EAC5B,iCAAiC,GAClC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAA6B,MAAM,iCAAiC,CAAC;AAC/F,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAElG,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../../src/monitor/monitor.ts"],"names":[],"mappings":"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"}
|
package/dist/src/util/logger.js
CHANGED
|
@@ -2,6 +2,7 @@ import fs from "node:fs";
|
|
|
2
2
|
import os from "node:os";
|
|
3
3
|
import path from "node:path";
|
|
4
4
|
import { resolvePreferredOpenClawTmpDir } from "openclaw/plugin-sdk/infra-runtime";
|
|
5
|
+
import { redactToken } from "./redact.js";
|
|
5
6
|
/**
|
|
6
7
|
* Plugin logger — writes JSON lines to the main openclaw log file:
|
|
7
8
|
* <tmpDir>/openclaw-YYYY-MM-DD.log
|
|
@@ -55,7 +56,7 @@ function resolveMainLogPath() {
|
|
|
55
56
|
}
|
|
56
57
|
let logDirEnsured = false;
|
|
57
58
|
function buildLoggerName(accountId) {
|
|
58
|
-
return accountId ? `${SUBSYSTEM}/${accountId}` : SUBSYSTEM;
|
|
59
|
+
return accountId ? `${SUBSYSTEM}/${redactToken(accountId)}` : SUBSYSTEM;
|
|
59
60
|
}
|
|
60
61
|
function writeLog(level, message, accountId) {
|
|
61
62
|
const levelId = LEVEL_IDS[level] ?? LEVEL_IDS.INFO;
|
|
@@ -63,7 +64,7 @@ function writeLog(level, message, accountId) {
|
|
|
63
64
|
return;
|
|
64
65
|
const now = new Date();
|
|
65
66
|
const loggerName = buildLoggerName(accountId);
|
|
66
|
-
const prefixedMessage = accountId ? `[${accountId}] ${message}` : message;
|
|
67
|
+
const prefixedMessage = accountId ? `[${redactToken(accountId)}] ${message}` : message;
|
|
67
68
|
const entry = JSON.stringify({
|
|
68
69
|
"0": loggerName,
|
|
69
70
|
"1": prefixedMessage,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/util/logger.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/util/logger.ts"],"names":[],"mappings":"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"}
|
package/dist/src/util/redact.js
CHANGED
|
@@ -1,5 +1,38 @@
|
|
|
1
|
-
const
|
|
2
|
-
const
|
|
1
|
+
const DEFAULT_TOKEN_PREFIX_LEN = 0;
|
|
2
|
+
const MAX_TOKEN_PREFIX_LEN = 6;
|
|
3
|
+
const SAFE_ERROR_NAMES = new Set([
|
|
4
|
+
"AbortError",
|
|
5
|
+
"AggregateError",
|
|
6
|
+
"Error",
|
|
7
|
+
"RangeError",
|
|
8
|
+
"ReferenceError",
|
|
9
|
+
"SyntaxError",
|
|
10
|
+
"TypeError",
|
|
11
|
+
"URIError",
|
|
12
|
+
]);
|
|
13
|
+
const SAFE_ERROR_CODES = new Set([
|
|
14
|
+
"CERT_HAS_EXPIRED",
|
|
15
|
+
"DEPTH_ZERO_SELF_SIGNED_CERT",
|
|
16
|
+
"EACCES",
|
|
17
|
+
"EAI_AGAIN",
|
|
18
|
+
"ECONNREFUSED",
|
|
19
|
+
"ECONNRESET",
|
|
20
|
+
"EEXIST",
|
|
21
|
+
"EHOSTUNREACH",
|
|
22
|
+
"EISDIR",
|
|
23
|
+
"EMFILE",
|
|
24
|
+
"ENETUNREACH",
|
|
25
|
+
"ENOENT",
|
|
26
|
+
"ENOSPC",
|
|
27
|
+
"ENOTDIR",
|
|
28
|
+
"ENOTFOUND",
|
|
29
|
+
"EPERM",
|
|
30
|
+
"ERR_SSL_PROTOCOL_ERROR",
|
|
31
|
+
"ETIMEDOUT",
|
|
32
|
+
"UNABLE_TO_VERIFY_LEAF_SIGNATURE",
|
|
33
|
+
"UND_ERR_CONNECT_TIMEOUT",
|
|
34
|
+
"UND_ERR_SOCKET",
|
|
35
|
+
]);
|
|
3
36
|
/**
|
|
4
37
|
* Truncate a string, appending a length indicator when trimmed.
|
|
5
38
|
* Returns `""` for empty/undefined input.
|
|
@@ -12,28 +45,40 @@ export function truncate(s, max) {
|
|
|
12
45
|
return `${s.slice(0, max)}…(len=${s.length})`;
|
|
13
46
|
}
|
|
14
47
|
/**
|
|
15
|
-
* Redact a token/
|
|
48
|
+
* Redact a token/identifier, optionally showing a short prefix for opt-in debug
|
|
49
|
+
* diagnostics. Normal logs use the default prefix length of zero.
|
|
16
50
|
* Returns `"(none)"` when absent.
|
|
17
51
|
*/
|
|
18
52
|
export function redactToken(token, prefixLen = DEFAULT_TOKEN_PREFIX_LEN) {
|
|
19
53
|
if (!token)
|
|
20
54
|
return "(none)";
|
|
21
|
-
|
|
55
|
+
const safePrefixLen = Number.isFinite(prefixLen)
|
|
56
|
+
? Math.min(MAX_TOKEN_PREFIX_LEN, Math.max(0, Math.floor(prefixLen)))
|
|
57
|
+
: 0;
|
|
58
|
+
if (safePrefixLen === 0 || token.length <= safePrefixLen)
|
|
22
59
|
return `****(len=${token.length})`;
|
|
23
|
-
return `${token.slice(0,
|
|
60
|
+
return `${token.slice(0, safePrefixLen)}…(len=${token.length})`;
|
|
61
|
+
}
|
|
62
|
+
export function getSafeErrorCode(code) {
|
|
63
|
+
return typeof code === "string" && SAFE_ERROR_CODES.has(code) ? code : undefined;
|
|
24
64
|
}
|
|
25
65
|
/**
|
|
26
|
-
*
|
|
27
|
-
* Redacts known sensitive fields before truncating.
|
|
66
|
+
* Return non-payload error metadata suitable for persisted diagnostics.
|
|
28
67
|
*/
|
|
29
|
-
export function
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
68
|
+
export function redactError(error) {
|
|
69
|
+
try {
|
|
70
|
+
if (!(error instanceof Error))
|
|
71
|
+
return "Error";
|
|
72
|
+
const name = SAFE_ERROR_NAMES.has(error.name) ? error.name : "Error";
|
|
73
|
+
const directCode = error.code;
|
|
74
|
+
const cause = error.cause;
|
|
75
|
+
const causeCode = typeof cause === "object" && cause !== null && "code" in cause ? cause.code : undefined;
|
|
76
|
+
const safeCode = getSafeErrorCode(directCode) ?? getSafeErrorCode(causeCode);
|
|
77
|
+
return safeCode ? `${name}(code=${safeCode})` : name;
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
return "Error";
|
|
81
|
+
}
|
|
37
82
|
}
|
|
38
83
|
/**
|
|
39
84
|
* Strip query string (which often contains signatures/tokens) from a URL,
|
|
@@ -42,11 +87,13 @@ export function redactBody(body, maxLen = DEFAULT_BODY_MAX_LEN) {
|
|
|
42
87
|
export function redactUrl(rawUrl) {
|
|
43
88
|
try {
|
|
44
89
|
const u = new URL(rawUrl);
|
|
90
|
+
if (u.protocol !== "http:" && u.protocol !== "https:")
|
|
91
|
+
return "(unsupported-url)";
|
|
45
92
|
const base = `${u.origin}${u.pathname}`;
|
|
46
|
-
return u.search ? `${base}?<redacted>` : base;
|
|
93
|
+
return u.search || u.hash ? `${base}?<redacted>` : base;
|
|
47
94
|
}
|
|
48
95
|
catch {
|
|
49
|
-
return
|
|
96
|
+
return "(invalid-url)";
|
|
50
97
|
}
|
|
51
98
|
}
|
|
52
99
|
//# sourceMappingURL=redact.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redact.js","sourceRoot":"","sources":["../../../src/util/redact.ts"],"names":[],"mappings":"AAAA,MAAM,oBAAoB,GAAG,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"redact.js","sourceRoot":"","sources":["../../../src/util/redact.ts"],"names":[],"mappings":"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"}
|
package/docs/en/architecture.md
CHANGED
|
@@ -19,7 +19,8 @@ The wire-level endpoint and message shapes are documented in the
|
|
|
19
19
|
| `src/auth/` | QR login, account persistence, ID compatibility, and pairing |
|
|
20
20
|
| `src/api/` | Build authenticated backend requests and classify failures |
|
|
21
21
|
| `src/monitor/monitor.ts` | Poll updates, persist cursors, and schedule inbound work |
|
|
22
|
-
| `src/messaging/process-message.ts` | Authorize, route,
|
|
22
|
+
| `src/messaging/process-message.ts` | Authorize, route, prepare context/media, and deliver one inbound message |
|
|
23
|
+
| `src/messaging/inbound-turn.ts` | Select the public host dispatch contract and adapt hook/lifecycle ownership |
|
|
23
24
|
| `src/messaging/send*.ts` | Convert outbound text/media to backend message items |
|
|
24
25
|
| `src/cdn/`, `src/media/` | Encrypt, upload, download, decrypt, and transcode media |
|
|
25
26
|
| `src/storage/` | Resolve state paths and persist the polling cursor |
|
|
@@ -61,8 +62,8 @@ sequenceDiagram
|
|
|
61
62
|
Monitor->>Processor: schedule message
|
|
62
63
|
Processor->>Processor: handle slash command or download media
|
|
63
64
|
Processor->>Runtime: authorize sender and resolve agent route
|
|
64
|
-
Processor->>Runtime:
|
|
65
|
-
|
|
65
|
+
Processor->>Runtime: build public inbound context and dispatch turn
|
|
66
|
+
Runtime->>Runtime: record session and manage reply dispatcher
|
|
66
67
|
Runtime-->>Processor: text, media, and item lifecycle events
|
|
67
68
|
```
|
|
68
69
|
|
|
@@ -70,26 +71,39 @@ Ordinary messages are serialized until OpenClaw accepts the turn, after which
|
|
|
70
71
|
polling can admit the next message. Plugin approval commands use a separate lane
|
|
71
72
|
so an active ordinary turn cannot block approval.
|
|
72
73
|
|
|
74
|
+
`inbound-turn.ts` uses `inbound.buildContext` and selects `inbound.dispatch`, or
|
|
75
|
+
the public legacy `inbound.dispatchReply` only when `dispatch` is absent. Both
|
|
76
|
+
delegate session recording and dispatcher cleanup to the host; errors never
|
|
77
|
+
trigger a retry through the other contract. The OpenClaw 2026.6.1 minimum and
|
|
78
|
+
account-scoped state remain unchanged. Deferred replies retain their progress
|
|
79
|
+
sender until the host's completion callback, not merely the initial dispatch
|
|
80
|
+
return.
|
|
81
|
+
|
|
73
82
|
## Outbound flow
|
|
74
83
|
|
|
75
84
|
```mermaid
|
|
76
85
|
flowchart LR
|
|
77
|
-
A[OpenClaw outbound request] -->
|
|
86
|
+
A[OpenClaw outbound request] --> F[Host message_sending hook]
|
|
87
|
+
F -->|cancelled| G[Return without adapter or backend send]
|
|
88
|
+
F -->|continue| B{Account ID supplied?}
|
|
78
89
|
B -->|yes| C[Resolve configured account]
|
|
79
90
|
B -->|no| D[Resolve by account-scoped context token]
|
|
80
91
|
D --> C
|
|
81
92
|
C --> E[Check active session]
|
|
82
|
-
E -->
|
|
83
|
-
F -->|cancelled| G[Return without backend send]
|
|
84
|
-
F -->|continue| H{Text or media?}
|
|
93
|
+
E --> H{Text or media?}
|
|
85
94
|
H -->|text| I[Filter markdown and call sendMessage]
|
|
86
95
|
H -->|media| J[Download if remote]
|
|
87
96
|
J --> K[Encrypt and upload to CDN]
|
|
88
97
|
K --> L[Build media message item]
|
|
89
|
-
I --> M[
|
|
98
|
+
I --> M[Host message_sent observation]
|
|
90
99
|
L --> M
|
|
91
100
|
```
|
|
92
101
|
|
|
102
|
+
Modern inbound and direct outbound sends use host-owned hooks. Legacy inbound
|
|
103
|
+
and independent debug sends retain local hooks; the legacy identity
|
|
104
|
+
`beforeDeliver` disables the SDK's duplicate text modifier. Raw delivery returns
|
|
105
|
+
existing client message IDs and never re-enters another hook-owning send path.
|
|
106
|
+
|
|
93
107
|
With multiple accounts, an omitted account ID is valid only when exactly one
|
|
94
108
|
account can be selected. Ambiguous or missing context must fail rather than risk
|
|
95
109
|
sending from the wrong bot.
|