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.
Files changed (68) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/CHANGELOG_EN.md +46 -0
  3. package/NOTICE +2 -1
  4. package/README.md +16 -21
  5. package/README_EN.md +21 -27
  6. package/assets/icon.png +0 -0
  7. package/dist/src/api/api.js +40 -35
  8. package/dist/src/api/api.js.map +1 -1
  9. package/dist/src/api/config-cache.js +3 -2
  10. package/dist/src/api/config-cache.js.map +1 -1
  11. package/dist/src/api/session-guard.js +3 -2
  12. package/dist/src/api/session-guard.js.map +1 -1
  13. package/dist/src/auth/accounts.js +14 -16
  14. package/dist/src/auth/accounts.js.map +1 -1
  15. package/dist/src/auth/login-qr.js +20 -21
  16. package/dist/src/auth/login-qr.js.map +1 -1
  17. package/dist/src/auth/pairing.js +2 -1
  18. package/dist/src/auth/pairing.js.map +1 -1
  19. package/dist/src/cdn/cdn-upload.js +17 -10
  20. package/dist/src/cdn/cdn-upload.js.map +1 -1
  21. package/dist/src/cdn/pic-decrypt.js +15 -7
  22. package/dist/src/cdn/pic-decrypt.js.map +1 -1
  23. package/dist/src/cdn/upload.js +7 -7
  24. package/dist/src/cdn/upload.js.map +1 -1
  25. package/dist/src/channel.js +57 -135
  26. package/dist/src/channel.js.map +1 -1
  27. package/dist/src/config/block-streaming.js +8 -0
  28. package/dist/src/config/block-streaming.js.map +1 -0
  29. package/dist/src/config/config-schema.js +10 -0
  30. package/dist/src/config/config-schema.js.map +1 -1
  31. package/dist/src/media/media-download.js +15 -14
  32. package/dist/src/media/media-download.js.map +1 -1
  33. package/dist/src/media/silk-transcode.js +2 -1
  34. package/dist/src/media/silk-transcode.js.map +1 -1
  35. package/dist/src/messaging/debug-mode.js +2 -1
  36. package/dist/src/messaging/debug-mode.js.map +1 -1
  37. package/dist/src/messaging/error-notice.js +3 -3
  38. package/dist/src/messaging/error-notice.js.map +1 -1
  39. package/dist/src/messaging/inbound-dedupe.js +2 -1
  40. package/dist/src/messaging/inbound-dedupe.js.map +1 -1
  41. package/dist/src/messaging/inbound-turn.js +102 -0
  42. package/dist/src/messaging/inbound-turn.js.map +1 -0
  43. package/dist/src/messaging/inbound.js +6 -5
  44. package/dist/src/messaging/inbound.js.map +1 -1
  45. package/dist/src/messaging/outbound-hooks.js +36 -3
  46. package/dist/src/messaging/outbound-hooks.js.map +1 -1
  47. package/dist/src/messaging/process-message.js +124 -193
  48. package/dist/src/messaging/process-message.js.map +1 -1
  49. package/dist/src/messaging/reply-progress-sender.js +3 -2
  50. package/dist/src/messaging/reply-progress-sender.js.map +1 -1
  51. package/dist/src/messaging/send-media.js +7 -6
  52. package/dist/src/messaging/send-media.js.map +1 -1
  53. package/dist/src/messaging/send.js +5 -5
  54. package/dist/src/messaging/send.js.map +1 -1
  55. package/dist/src/messaging/slash-commands.js +5 -3
  56. package/dist/src/messaging/slash-commands.js.map +1 -1
  57. package/dist/src/monitor/monitor.js +16 -16
  58. package/dist/src/monitor/monitor.js.map +1 -1
  59. package/dist/src/util/logger.js +3 -2
  60. package/dist/src/util/logger.js.map +1 -1
  61. package/dist/src/util/redact.js +64 -17
  62. package/dist/src/util/redact.js.map +1 -1
  63. package/docs/en/architecture.md +22 -8
  64. package/docs/en/guide.md +77 -15
  65. package/docs/zh-CN/architecture.md +18 -8
  66. package/docs/zh-CN/guide.md +72 -13
  67. package/openclaw.plugin.json +6 -2
  68. package/package.json +8 -14
package/CHANGELOG.md CHANGED
@@ -6,6 +6,42 @@
6
6
 
7
7
  ## [未发布]
8
8
 
9
+ ## [3.2.0] - 2026-09-16
10
+
11
+ ### 新增
12
+
13
+ - **维护报告预览:** 新增手动触发的 gh-aw 维护摘要,仅以 staged 模式预览结果,并分别
14
+ 限制主任务和威胁检测的推理额度;不自动创建 issue、PR 或执行发布。
15
+
16
+ ### 变更
17
+
18
+ - **入站宿主编排:** 使用共用公开上下文 builder,按运行时能力选择路由型或旧版公开分派,
19
+ 同时保留 OpenClaw `2026.6.1` 下限、账号隔离和独立审批通道。分派失败不会改走另一
20
+ 契约重试。
21
+ - **发布包来源优先级:** 仓库、官网和 ClawHub 包改为 ClawHub-first;npm 与
22
+ GitHub Packages 从同一源包生成 npm-first README,不再转换官网内容;各发布 job
23
+ 复用验证阶段生成的相同 tarball。
24
+
25
+ ### 修复
26
+
27
+ - **插件图标元数据:** 移除 ClawHub 针对 OpenClaw `2026.9.4` 校验时报告的顶层
28
+ manifest `icon` URL,将现有品牌图案作为 `assets/icon.png` 打包到所有 registry
29
+ 产物中。插件/频道 ID 和最低宿主版本保持不变;图标显示取决于宿主是否支持包内图标。
30
+ - **回复 Hook:** 现代入站回复和宿主管理的直接文本/媒体发送由宿主统一执行 hook,避免
31
+ 重复修改内容或重复观察发送结果。旧版入站回复与独立调试消息保留本地 hook;成功回复
32
+ 返回既有客户端传输 ID。
33
+ - **登录重载:** 改为在宿主的当前源配置上只更新频道时间戳,并显式采用宿主的自动重载
34
+ 策略,避免旧运行时快照覆盖其他配置。配置写入失败不会回滚已保存的登录凭据。
35
+ - **分块回复:** 默认恢复按顺序发送工具调用之间完成的文本块,并支持通过频道级或账号级
36
+ `blockStreaming: false` 仅发送最终回复。
37
+
38
+ ## [3.1.6] - 2026-08-22
39
+
40
+ ### 修复
41
+
42
+ - **诊断隐私:** 普通日志现在会完全遮盖标识符和令牌;显式启用的 DEBUG 日志最多显示脱敏
43
+ 短前缀;诊断信息不再持久化消息正文、URL 查询参数、二维码 URL 或原始文件系统路径。
44
+
9
45
  ## [3.1.5] - 2026-08-16
10
46
 
11
47
  ### 变更
package/CHANGELOG_EN.md CHANGED
@@ -6,6 +6,52 @@ This project follows the [Keep a Changelog](https://keepachangelog.com/) format.
6
6
 
7
7
  ## [Unreleased]
8
8
 
9
+ ## [3.2.0] - 2026-09-16
10
+
11
+ ### Added
12
+
13
+ - **Maintenance report preview:** Added a manually triggered gh-aw maintenance
14
+ summary with staged-only outputs and separate agent and threat-detection
15
+ inference budgets; it does not automatically create issues, PRs, or releases.
16
+
17
+ ### Changed
18
+
19
+ - **Inbound host orchestration:** Use the shared public context builder and
20
+ select routed or legacy public dispatch by runtime capability, while retaining
21
+ the OpenClaw `2026.6.1` minimum, account isolation and independent approval lane.
22
+ Failed dispatches are never retried through another contract.
23
+ - **Package source priority:** The repository, website, and ClawHub package are
24
+ now ClawHub-first. npm and GitHub Packages generate npm-first READMEs from the
25
+ same source package, removing the website-only transformation; publishing
26
+ jobs reuse the exact tarballs created during validation.
27
+
28
+ ### Fixed
29
+
30
+ - **Plugin icon metadata:** Removed the top-level manifest `icon` URL flagged by
31
+ ClawHub validation against OpenClaw `2026.9.4` and bundled the existing brand
32
+ artwork as `assets/icon.png` in every registry package. Plugin/channel IDs and
33
+ the minimum supported host remain unchanged; icon display follows the host's
34
+ packaged-icon support.
35
+ - **Reply hooks:** Modern inbound replies and host-managed direct text/media
36
+ sends use one host hook owner, avoiding duplicate content changes and sent
37
+ observations. Legacy inbound replies and independent debug sends retain local
38
+ hooks; successful replies expose their existing client transport IDs.
39
+ - **Login reload:** Update only the channel timestamp in the host's current
40
+ source config with an explicit automatic reload policy, avoiding stale runtime
41
+ snapshots overwriting unrelated settings. Failed config writes leave saved
42
+ login credentials intact.
43
+ - **Block replies:** Restored ordered delivery of completed text blocks between
44
+ tool calls by default, with channel-level and per-account
45
+ `blockStreaming: false` opt-outs for final-only replies.
46
+
47
+ ## [3.1.6] - 2026-08-22
48
+
49
+ ### Fixed
50
+
51
+ - **Diagnostic privacy:** normal logs now fully mask identifiers and tokens,
52
+ opt-in DEBUG logs expose at most short redacted prefixes, and diagnostics no
53
+ longer persist message text, URL queries, QR URLs, or raw filesystem paths.
54
+
9
55
  ## [3.1.5] - 2026-08-16
10
56
 
11
57
  ### Changed
package/NOTICE CHANGED
@@ -10,6 +10,7 @@ openclaw-weixin is licensed under the MIT.
10
10
 
11
11
  Modifications Copyright (C) 2026 Contributors to NewFuture/openclaw-weixin.
12
12
 
13
- The OpenClaw lobster artwork in docs/site/logo.svg is adapted from
13
+ assets/icon.png is a 512x512 PNG rendering of docs/site/logo.svg.
14
+ The OpenClaw lobster artwork in both images is adapted from
14
15
  openclaw/openclaw ui/public/favicon.svg.
15
16
  Copyright (C) 2026 OpenClaw Foundation. Licensed under the MIT License.
package/README.md CHANGED
@@ -8,6 +8,8 @@
8
8
 
9
9
  社区维护的 OpenClaw 微信渠道插件,提供 npm 与 ClawHub 两个安装源。
10
10
  本插件需要 OpenClaw `>=2026.6.1`。
11
+ OpenClaw `2026.9.1` / `2026.9.2` 的固定版本及运行环境 CI 覆盖见
12
+ [兼容矩阵](https://openclaw-weixin.newfuture.cc/contributing.html#openclaw-兼容矩阵)。
11
13
 
12
14
  <a id="connect-wechat"></a>
13
15
 
@@ -23,8 +25,8 @@
23
25
  把下面这段话粘贴到 OpenClaw 聊天框并发送:
24
26
 
25
27
  ```text
26
- 请为当前 OpenClaw 安装或原位替换微信插件,并检查微信连接。优先安装 npm 的 `npm:openclaw-weixin`;仅当 npm 来源明确不可用时,改用 ClawHub 的 `clawhub:openclaw-wechat`,全程只安装一个。
27
- 请遵循 OpenClaw 的安装策略,对所用来源执行同一 `openclaw-weixin` 插件 ID 的原位替换(对应 `--force`),并保留现有配置和登录数据;请使用 OpenClaw 插件安装流程,而不是普通的 `npm install`。安装后确认插件已加载并探测微信 Channel;未登录时提示扫码。最后简要报告来源和结果;失败时说明原因。
28
+ 请安装或更新当前 OpenClaw 的微信插件。优先使用 `npm:openclaw-weixin`;不可用时使用 `clawhub:openclaw-wechat`,二选一。npm 安装或替换安装时加 `--force`。
29
+ 不要先卸载,保留现有配置和登录状态。按提示确认插件能力;使用 OpenClaw 插件流程,不要直接运行 `npm install`。
28
30
  ```
29
31
  <!-- registry-prompt:end -->
30
32
 
@@ -32,47 +34,38 @@
32
34
 
33
35
  ### 直接运行命令
34
36
 
35
- > [!WARNING]
36
- > **替换腾讯版时不要先卸载。** 两个社区发布源都保留插件 ID、Channel ID、配置和
37
- > 登录状态。`--force` 不会绕过 OpenClaw 的安装策略或内置依赖拒绝列表;OpenClaw
38
- > 会自动轮换配置备份。
37
+ **之前使用下方 ClawHub 或 npm 命令安装社区版:** 运行
38
+ `openclaw plugins update openclaw-weixin`。
39
39
 
40
- `--force` 允许覆盖相同插件 ID 的现有安装。
41
-
42
- | 安装来源 | 包名 |
43
- | --- | --- |
44
- | npm | [`openclaw-weixin`](https://www.npmjs.com/package/openclaw-weixin) |
45
- | ClawHub | [`openclaw-wechat`](https://clawhub.ai/newfuture/plugins/openclaw-wechat) |
40
+ **首次安装、替换腾讯官方包,或现有插件通过其他来源安装:** 从下面任选一个安装命令,无需先卸载。
41
+ 替换现有插件时,在所选安装命令末尾加 `--force`。配置和登录状态会保留。
46
42
 
47
43
  <!-- registry-source:npm:start -->
48
44
  <a id="npm-source"></a>
49
45
 
50
- #### npm:`openclaw-weixin`
46
+ #### npm:[`openclaw-weixin`](https://www.npmjs.com/package/openclaw-weixin)
51
47
 
52
48
  <a id="npm-cli-install"></a>
53
49
 
54
50
  ```bash
55
- openclaw plugins install npm:openclaw-weixin --force
51
+ openclaw plugins install npm:openclaw-weixin
56
52
  ```
57
53
  <!-- registry-source:npm:end -->
58
54
 
59
55
  <!-- registry-source:clawhub:start -->
60
56
  <a id="clawhub-source"></a>
61
57
 
62
- #### ClawHub:`openclaw-wechat`
63
-
64
- 下面的命令也可原位替换占用 `openclaw-weixin` 插件 ID 的腾讯版或 npm 版。
58
+ #### ClawHub:[`openclaw-wechat`](https://clawhub.ai/newfuture/plugins/openclaw-wechat)
65
59
 
66
60
  <a id="clawhub-cli-install"></a>
67
61
 
68
62
  ```bash
69
- openclaw plugins install clawhub:openclaw-wechat --force
63
+ openclaw plugins install clawhub:openclaw-wechat
70
64
  ```
71
65
  <!-- registry-source:clawhub:end -->
72
66
 
73
- > [!TIP]
74
- > **如果当前 OpenClaw 已有微信登录状态,安装后通常只需确认连接。** 全新安装需要
75
- > 展开完整检查并扫码绑定;安装报错、未自动恢复连接或需要确认目标账号时,也在此检查。
67
+ **如果当前 OpenClaw 已有微信登录状态,安装后通常只需确认连接。** 全新安装需要
68
+ 展开完整检查并扫码绑定;安装报错、未自动恢复连接或需要确认目标账号时,也在此检查。
76
69
 
77
70
  <details id="verify-connection" class="full-check">
78
71
  <summary>完整检查、扫码与恢复</summary>
@@ -186,6 +179,8 @@ context token 属于敏感数据,不要跨账号复制或写入任务配置。
186
179
  - [社区版与腾讯版](https://openclaw-weixin.newfuture.cc/distributions.html)
187
180
  - [后端 API 协议](https://openclaw-weixin.newfuture.cc/backend-api.html)
188
181
  - [架构说明](https://openclaw-weixin.newfuture.cc/architecture.html)
182
+ - [参与贡献与 Agent 工作流](https://openclaw-weixin.newfuture.cc/contributing.html):开 Issue、修复 Bug 和开发新功能
183
+ - [Coding Agent 指引](https://github.com/NewFuture/openclaw-weixin/blob/main/AGENTS.md)
189
184
  - [变更日志](https://openclaw-weixin.newfuture.cc/changelog.html)
190
185
  - [安全策略](https://openclaw-weixin.newfuture.cc/security.html)
191
186
  - [问题反馈](https://github.com/NewFuture/openclaw-weixin/issues)
package/README_EN.md CHANGED
@@ -9,6 +9,8 @@
9
9
  A community-maintained OpenClaw WeChat channel plugin available from npm and
10
10
  ClawHub.
11
11
  This plugin requires OpenClaw `>=2026.6.1`.
12
+ See the [compatibility matrix](https://openclaw-weixin.newfuture.cc/en/contributing.html#openclaw-compatibility-matrix)
13
+ for pinned OpenClaw `2026.9.1` / `2026.9.2` coverage and runtime/platform CI targets.
12
14
 
13
15
  <a id="connect-wechat"></a>
14
16
 
@@ -24,8 +26,8 @@ This plugin requires OpenClaw `>=2026.6.1`.
24
26
  Paste this prompt into an OpenClaw chat and send it:
25
27
 
26
28
  ```text
27
- Install or replace the WeChat plugin in place for this OpenClaw instance and check its connection. Install from ClawHub `clawhub:openclaw-wechat` first; only if the ClawHub source is explicitly unavailable, fall back to npm `npm:openclaw-weixin`, and install only one.
28
- Follow OpenClaw's install policy and use in-place replacement for an existing installation with the same `openclaw-weixin` plugin ID (the `--force` behavior), preserving configuration and login data. Use the OpenClaw plugin installation flow rather than plain `npm install`. After installation, verify that the plugin is loaded and probe the WeChat channel; prompt for QR login if needed. Briefly report the source and result, or explain the failure.
29
+ Install or update the WeChat plugin for this OpenClaw instance. Prefer `npm:openclaw-weixin`; if it is unavailable, use `clawhub:openclaw-wechat`. Choose one source. For npm or replacement installations, add `--force`.
30
+ Do not uninstall first; preserve existing configuration and login state. Confirm plugin capabilities when prompted, and use the OpenClaw plugin flow rather than plain `npm install`.
29
31
  ```
30
32
  <!-- registry-prompt:end -->
31
33
 
@@ -33,53 +35,43 @@ Follow OpenClaw's install policy and use in-place replacement for an existing in
33
35
 
34
36
  ### Run a command directly
35
37
 
36
- > [!WARNING]
37
- > **Do not uninstall Tencent's package first when replacing it.** Both community
38
- > sources preserve the plugin id, channel id, configuration, and login state.
39
- > `--force` does not bypass OpenClaw's install policy or built-in dependency
40
- > denylist. OpenClaw rotates configuration backups automatically.
38
+ **Community plugin previously installed with one of the ClawHub or npm commands below:** run
39
+ `openclaw plugins update openclaw-weixin`.
41
40
 
42
- `--force` allows replacement of an existing installation with the same plugin
43
- id.
44
-
45
- | Source | Package name |
46
- | --- | --- |
47
- | npm | [`openclaw-weixin`](https://www.npmjs.com/package/openclaw-weixin) |
48
- | ClawHub | [`openclaw-wechat`](https://clawhub.ai/newfuture/plugins/openclaw-wechat) |
41
+ **First installation, replacing Tencent's official package, or an existing
42
+ plugin installed from another source:** choose one installation command below;
43
+ do not uninstall first. When replacing an existing plugin, add `--force` to the
44
+ chosen installation command. Configuration and login state are preserved.
49
45
 
50
46
  <!-- registry-source:npm:start -->
51
47
  <a id="npm-source"></a>
52
48
 
53
- #### npm: `openclaw-weixin`
49
+ #### npm: [`openclaw-weixin`](https://www.npmjs.com/package/openclaw-weixin)
54
50
 
55
51
  <a id="npm-cli-install"></a>
56
52
 
57
53
  ```bash
58
- openclaw plugins install npm:openclaw-weixin --force
54
+ openclaw plugins install npm:openclaw-weixin
59
55
  ```
60
56
  <!-- registry-source:npm:end -->
61
57
 
62
58
  <!-- registry-source:clawhub:start -->
63
59
  <a id="clawhub-source"></a>
64
60
 
65
- #### ClawHub: `openclaw-wechat`
66
-
67
- The command can also replace a Tencent or npm installation that owns the
68
- `openclaw-weixin` plugin id.
61
+ #### ClawHub: [`openclaw-wechat`](https://clawhub.ai/newfuture/plugins/openclaw-wechat)
69
62
 
70
63
  <a id="clawhub-cli-install"></a>
71
64
 
72
65
  ```bash
73
- openclaw plugins install clawhub:openclaw-wechat --force
66
+ openclaw plugins install clawhub:openclaw-wechat
74
67
  ```
75
68
  <!-- registry-source:clawhub:end -->
76
69
 
77
- > [!TIP]
78
- > **If this OpenClaw instance already has a WeChat login, you usually only need
79
- > to confirm the connection after installation.** For a new installation, open
80
- > the full check and scan the QR code. Use it as well when installation fails,
81
- > the connection does not return automatically, or you need to confirm the
82
- > intended account.
70
+ **If this OpenClaw instance already has a WeChat login, you usually only need
71
+ to confirm the connection after installation.** For a new installation, open
72
+ the full check and scan the QR code. Use it as well when installation fails,
73
+ the connection does not return automatically, or you need to confirm the
74
+ intended account.
83
75
 
84
76
  <details id="verify-connection" class="full-check">
85
77
  <summary>Full check, QR login, and recovery</summary>
@@ -205,6 +197,8 @@ accounts or put them in job configuration.
205
197
  - [Community and Tencent distributions](https://openclaw-weixin.newfuture.cc/en/distributions.html)
206
198
  - [Backend API protocol](https://openclaw-weixin.newfuture.cc/en/backend-api.html)
207
199
  - [Architecture](https://openclaw-weixin.newfuture.cc/en/architecture.html)
200
+ - [Contributing and agent workflows](https://openclaw-weixin.newfuture.cc/en/contributing.html): open issues, fix bugs, and develop features
201
+ - [Coding agent guide](https://github.com/NewFuture/openclaw-weixin/blob/main/AGENTS.md)
208
202
  - [Changelog](https://openclaw-weixin.newfuture.cc/en/changelog.html)
209
203
  - [Security policy](https://openclaw-weixin.newfuture.cc/en/security.html)
210
204
  - [Issue tracker](https://github.com/NewFuture/openclaw-weixin/issues)
Binary file
@@ -4,7 +4,7 @@ import path from "node:path";
4
4
  import { fileURLToPath } from "node:url";
5
5
  import { loadConfigBotAgent, loadConfigRouteTag } from "../auth/accounts.js";
6
6
  import { logger } from "../util/logger.js";
7
- import { redactBody, redactUrl } from "../util/redact.js";
7
+ import { getSafeErrorCode, redactError, redactUrl } from "../util/redact.js";
8
8
  /**
9
9
  * Identify whether a parsed package.json belongs to this plugin.
10
10
  *
@@ -210,34 +210,39 @@ function buildHeaders(opts) {
210
210
  * This does NOT cover HTTP-level errors (4xx/5xx) — those are thrown separately.
211
211
  */
212
212
  export function classifyFetchError(err) {
213
- if (err instanceof Error && err.name === "AbortError") {
214
- return { type: "timeout", description: "request timeout" };
215
- }
216
- const cause = err?.cause;
217
- const causeCode = typeof cause === "object" && cause !== null && "code" in cause
218
- ? String(cause.code ?? "")
219
- : "";
220
- const causeStr = `${String(cause ?? err ?? "")} ${String(causeCode)}`;
221
- const matchedCode = causeCode || (typeof cause === "string" ? cause : "");
222
- if (/ENOTFOUND|EAI_AGAIN|getaddrinfo/i.test(causeStr)) {
223
- return {
224
- type: "dns",
225
- description: "DNS resolution failed, check DNS configuration",
226
- ...(matchedCode ? { code: matchedCode } : {}),
227
- };
228
- }
229
- if (/ECONNREFUSED/i.test(causeStr)) {
230
- return { type: "tcp", description: "TCP connection refused", ...(matchedCode ? { code: matchedCode } : {}) };
231
- }
232
- if (/UND_ERR_CONNECT_TIMEOUT|ETIMEDOUT|ENETUNREACH|EHOSTUNREACH/i.test(causeStr)) {
233
- return {
234
- type: "tcp",
235
- description: "TCP connection timeout or unreachable",
236
- ...(matchedCode ? { code: matchedCode } : {}),
237
- };
213
+ try {
214
+ if (err instanceof Error && err.name === "AbortError") {
215
+ return { type: "timeout", description: "request timeout" };
216
+ }
217
+ const cause = err?.cause;
218
+ const causeCode = typeof cause === "object" && cause !== null && "code" in cause
219
+ ? String(cause.code ?? "")
220
+ : "";
221
+ const causeStr = `${String(cause ?? err ?? "")} ${String(causeCode)}`;
222
+ const matchedCode = getSafeErrorCode(causeCode) ?? getSafeErrorCode(cause);
223
+ if (/ENOTFOUND|EAI_AGAIN|getaddrinfo/i.test(causeStr)) {
224
+ return {
225
+ type: "dns",
226
+ description: "DNS resolution failed, check DNS configuration",
227
+ ...(matchedCode ? { code: matchedCode } : {}),
228
+ };
229
+ }
230
+ if (/ECONNREFUSED/i.test(causeStr)) {
231
+ return { type: "tcp", description: "TCP connection refused", ...(matchedCode ? { code: matchedCode } : {}) };
232
+ }
233
+ if (/UND_ERR_CONNECT_TIMEOUT|ETIMEDOUT|ENETUNREACH|EHOSTUNREACH/i.test(causeStr)) {
234
+ return {
235
+ type: "tcp",
236
+ description: "TCP connection timeout or unreachable",
237
+ ...(matchedCode ? { code: matchedCode } : {}),
238
+ };
239
+ }
240
+ if (/UND_ERR_SOCKET|SSL|TLS|CERT|UNABLE_TO_VERIFY|DEPTH_ZERO/i.test(causeStr)) {
241
+ return { type: "tls", description: "TLS handshake error", ...(matchedCode ? { code: matchedCode } : {}) };
242
+ }
238
243
  }
239
- if (/UND_ERR_SOCKET|SSL|TLS|CERT|UNABLE_TO_VERIFY|DEPTH_ZERO/i.test(causeStr)) {
240
- return { type: "tls", description: "TLS handshake error", ...(matchedCode ? { code: matchedCode } : {}) };
244
+ catch {
245
+ return { type: "unknown", description: "network request failed" };
241
246
  }
242
247
  return { type: "unknown", description: "network request failed" };
243
248
  }
@@ -264,9 +269,9 @@ export async function apiGetFetch(params) {
264
269
  if (t !== undefined)
265
270
  clearTimeout(t);
266
271
  const rawText = await res.text();
267
- logger.debug(`${params.label} status=${res.status} raw=${redactBody(rawText)}`);
272
+ logger.debug(`${params.label} status=${res.status} bodyBytes=${Buffer.byteLength(rawText)}`);
268
273
  if (!res.ok) {
269
- throw new Error(`${params.label} ${res.status}: ${rawText}`);
274
+ throw new Error(`${params.label} ${res.status}`);
270
275
  }
271
276
  return rawText;
272
277
  }
@@ -274,7 +279,7 @@ export async function apiGetFetch(params) {
274
279
  if (t !== undefined)
275
280
  clearTimeout(t);
276
281
  const classified = classifyFetchError(err);
277
- logger.error(`${params.label}: GET fetch failed url=${redactUrl(url.toString())} timeoutMs=${timeoutMs ?? "none"} type=${classified.type} description=${classified.description}${classified.code ? ` code=${classified.code}` : ""} error=${String(err)}`);
282
+ logger.error(`${params.label}: GET fetch failed url=${redactUrl(url.toString())} timeoutMs=${timeoutMs ?? "none"} type=${classified.type} description=${classified.description}${classified.code ? ` code=${classified.code}` : ""} error=${redactError(err)}`);
278
283
  throw err;
279
284
  }
280
285
  }
@@ -315,7 +320,7 @@ export async function apiPostFetch(params) {
315
320
  const base = ensureTrailingSlash(params.baseUrl);
316
321
  const url = new URL(params.endpoint, base);
317
322
  const hdrs = buildHeaders({ token: params.token });
318
- logger.debug(`POST ${redactUrl(url.toString())} body=${redactBody(params.body)}`);
323
+ logger.debug(`POST ${redactUrl(url.toString())} bodyBytes=${Buffer.byteLength(params.body)}`);
319
324
  const controller = params.timeoutMs !== undefined ? new AbortController() : undefined;
320
325
  const t = controller != null && params.timeoutMs !== undefined
321
326
  ? setTimeout(() => controller.abort(), params.timeoutMs)
@@ -334,9 +339,9 @@ export async function apiPostFetch(params) {
334
339
  if (t !== undefined)
335
340
  clearTimeout(t);
336
341
  const rawText = await res.text();
337
- logger.debug(`${params.label} status=${res.status} raw=${redactBody(rawText)}`);
342
+ logger.debug(`${params.label} status=${res.status} bodyBytes=${Buffer.byteLength(rawText)}`);
338
343
  if (!res.ok) {
339
- throw new Error(`${params.label} ${res.status}: ${rawText}`);
344
+ throw new Error(`${params.label} ${res.status}`);
340
345
  }
341
346
  return rawText;
342
347
  }
@@ -344,7 +349,7 @@ export async function apiPostFetch(params) {
344
349
  if (t !== undefined)
345
350
  clearTimeout(t);
346
351
  const classified = classifyFetchError(err);
347
- logger.error(`${params.label}: POST fetch failed url=${redactUrl(url.toString())} timeoutMs=${params.timeoutMs ?? "none"} type=${classified.type} description=${classified.description}${classified.code ? ` code=${classified.code}` : ""} error=${String(err)}`);
352
+ logger.error(`${params.label}: POST fetch failed url=${redactUrl(url.toString())} timeoutMs=${params.timeoutMs ?? "none"} type=${classified.type} description=${classified.description}${classified.code ? ` code=${classified.code}` : ""} error=${redactError(err)}`);
348
353
  throw err;
349
354
  }
350
355
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/api/api.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAkC1D;;;;;GAKG;AACH,SAAS,gBAAgB,CAAC,MAAmB;IAC3C,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAClD,OAAO,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AACpF,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAgB;IACrD,IAAI,CAAC;QACH,IAAI,GAAG,GAAG,QAAQ,CAAC;QACnB,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACjC,OAAO,GAAG,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YACjD,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7B,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAgB,CAAC;oBAC9E,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC7B,OAAO,MAAM,CAAC;oBAChB,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,4CAA4C;gBAC9C,CAAC;YACH,CAAC;YACD,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,iCAAiC;IACnC,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,eAAe;IACtB,OAAO,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;AAE9B,MAAM,eAAe,GAAG,GAAG,CAAC,OAAO,IAAI,SAAS,CAAC;AAEjD,yDAAyD;AACzD,MAAM,YAAY,GAAW,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC;AAEnD;;;;GAIG;AACH,SAAS,kBAAkB,CAAC,OAAe;IACzC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IAC7D,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5B,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,wBAAwB,GAAW,kBAAkB,CAAC,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC,CAAC;AAEpF;;;GAGG;AACH,MAAM,iBAAiB,GAAG,UAAU,CAAC;AAErC,kEAAkE;AAClE,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAE9B;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAuB;IACtD,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,iBAAiB,CAAC;IAC9D,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3B,IAAI,CAAC,OAAO;QAAE,OAAO,iBAAiB,CAAC;IAEvC,MAAM,SAAS,GAAG,+CAA+C,CAAC;IAClE,MAAM,aAAa,GAAG,8BAA8B,CAAC;IAErD,+EAA+E;IAC/E,4EAA4E;IAC5E,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9C,sEAAsE;YACtE,IAAI,GAAG,GAAG,GAAG,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtD,CAAC,IAAI,CAAC,CAAC;gBACP,GAAG,IAAI,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5B,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,cAAc,GAAkB,IAAI,CAAC;IACzC,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,cAAc,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChD,QAAQ,CAAC,IAAI,CAAC,GAAG,cAAc,KAAK,KAAK,GAAG,CAAC,CAAC;gBAC9C,cAAc,GAAG,IAAI,CAAC;YACxB,CAAC;iBAAM,CAAC;gBACN,IAAI,cAAc,EAAE,CAAC;oBACnB,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;oBAC9B,cAAc,GAAG,IAAI,CAAC;gBACxB,CAAC;YACH,CAAC;YACD,SAAS;QACX,CAAC;QACD,IAAI,cAAc,EAAE,CAAC;YACnB,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC9B,cAAc,GAAG,IAAI,CAAC;QACxB,CAAC;QACD,IAAI,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,cAAc,GAAG,GAAG,CAAC;QACvB,CAAC;IACH,CAAC;IACD,IAAI,cAAc;QAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAElD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,iBAAiB,CAAC;IAEpD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClC,IAAI,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,iBAAiB;QAAE,OAAO,MAAM,CAAC;IAE3E,4DAA4D;IAC5D,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC7E,IAAI,GAAG,GAAG,GAAG,GAAG,iBAAiB;YAAE,MAAM;QACzC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,GAAG,IAAI,GAAG,CAAC;IACb,CAAC;IACD,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;AACxE,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,aAAa;IAC3B,OAAO;QACL,eAAe,EAAE,eAAe;QAChC,SAAS,EAAE,gBAAgB,CAAC,kBAAkB,EAAE,CAAC;KAClD,CAAC;AACJ,CAAC;AAED,yDAAyD;AACzD,MAAM,4BAA4B,GAAG,MAAM,CAAC;AAC5C,4EAA4E;AAC5E,MAAM,sBAAsB,GAAG,MAAM,CAAC;AACtC,4EAA4E;AAC5E,MAAM,yBAAyB,GAAG,MAAM,CAAC;AAEzC,SAAS,mBAAmB,CAAC,GAAW;IACtC,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC;AAC7C,CAAC;AAED,sEAAsE;AACtE,SAAS,eAAe;IACtB,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IACrD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACjE,CAAC;AAED,0DAA0D;AAC1D,SAAS,kBAAkB;IACzB,MAAM,OAAO,GAA2B;QACtC,cAAc,EAAE,YAAY;QAC5B,yBAAyB,EAAE,MAAM,CAAC,wBAAwB,CAAC;KAC5D,CAAC;IACF,MAAM,QAAQ,GAAG,kBAAkB,EAAE,CAAC;IACtC,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,CAAC,UAAU,GAAG,QAAQ,CAAC;IAChC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,YAAY,CAAC,IAAwB;IAC5C,MAAM,OAAO,GAA2B;QACtC,cAAc,EAAE,kBAAkB;QAClC,iBAAiB,EAAE,iBAAiB;QACpC,cAAc,EAAE,eAAe,EAAE;QACjC,GAAG,kBAAkB,EAAE;KACxB,CAAC;IACF,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;QACvB,OAAO,CAAC,aAAa,GAAG,UAAU,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;IACxD,CAAC;IACD,MAAM,CAAC,KAAK,CACV,mBAAmB,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,CACrH,CAAC;IACF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,GAAY;IAK7C,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACtD,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC;IAC7D,CAAC;IAED,MAAM,KAAK,GAAI,GAA6B,EAAE,KAAK,CAAC;IACpD,MAAM,SAAS,GACb,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,MAAM,IAAI,KAAK;QAC5D,CAAC,CAAC,MAAM,CAAE,KAA4B,CAAC,IAAI,IAAI,EAAE,CAAC;QAClD,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,QAAQ,GAAG,GAAG,MAAM,CAAC,KAAK,IAAI,GAAG,IAAI,EAAE,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;IACtE,MAAM,WAAW,GAAG,SAAS,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAE1E,IAAI,kCAAkC,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtD,OAAO;YACL,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,gDAAgD;YAC7D,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9C,CAAC;IACJ,CAAC;IACD,IAAI,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,wBAAwB,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC/G,CAAC;IACD,IAAI,6DAA6D,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjF,OAAO;YACL,IAAI,EAAE,KAAK;YACX,WAAW,EAAE,uCAAuC;YACpD,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9C,CAAC;IACJ,CAAC;IACD,IAAI,0DAA0D,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9E,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;IAC5G,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,wBAAwB,EAAE,CAAC;AACpE,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAKjC;IACC,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,kBAAkB,EAAE,CAAC;IAClC,MAAM,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IAEjD,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IACnC,MAAM,UAAU,GAAG,SAAS,IAAI,IAAI,IAAI,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1F,MAAM,CAAC,GAAG,UAAU,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChH,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;YACtC,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,IAAI;YACb,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrD,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,SAAS;YAAE,YAAY,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,WAAW,GAAG,CAAC,MAAM,QAAQ,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAChF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,KAAK,SAAS;YAAE,YAAY,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,CAAC,KAAK,CACV,GAAG,MAAM,CAAC,KAAK,0BAA0B,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,cAAc,SAAS,IAAI,MAAM,SAAS,UAAU,CAAC,IAAI,gBAAgB,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,MAAM,CAAC,GAAG,CAAC,EAAE,CAC7O,CAAC;QACF,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,MAA8D;IAIzF,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IACtC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC;IACzD,CAAC;IACD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC;IACjD,CAAC;IACD,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;QACrB,QAAQ,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC;IACxD,CAAC;IACD,MAAM,eAAe,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;IAC/C,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACpE,OAAO;QACL,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,eAAe,CAAC;KACtE,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAQlC;IACC,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC3C,MAAM,IAAI,GAAG,YAAY,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,KAAK,CAAC,QAAQ,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAElF,MAAM,UAAU,GAAG,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACtF,MAAM,CAAC,GACL,UAAU,IAAI,IAAI,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS;QAClD,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC;QACxD,CAAC,CAAC,SAAS,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,mBAAmB,CAAC;QAC9C,QAAQ,EAAE,UAAU;QACpB,QAAQ,EAAE,MAAM,CAAC,WAAW;KAC7B,CAAC,CAAC;IACH,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE;YACtC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC9B,CAAC,CAAC;QACH,IAAI,CAAC,KAAK,SAAS;YAAE,YAAY,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,WAAW,GAAG,CAAC,MAAM,QAAQ,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAChF,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,IAAI,GAAG,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,KAAK,SAAS;YAAE,YAAY,CAAC,CAAC,CAAC,CAAC;QACrC,MAAM,UAAU,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;QAC3C,MAAM,CAAC,KAAK,CACV,GAAG,MAAM,CAAC,KAAK,2BAA2B,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,cAAc,MAAM,CAAC,SAAS,IAAI,MAAM,SAAS,UAAU,CAAC,IAAI,gBAAgB,UAAU,CAAC,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,MAAM,CAAC,GAAG,CAAC,EAAE,CACrP,CAAC;QACF,MAAM,GAAG,CAAC;IACZ,CAAC;YAAS,CAAC;QACT,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MASC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,IAAI,4BAA4B,CAAC;IACjE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC;YACjC,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,sBAAsB;YAChC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,EAAE;gBAC7C,SAAS,EAAE,aAAa,EAAE;aAC3B,CAAC;YACF,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,SAAS,EAAE,OAAO;YAClB,KAAK,EAAE,YAAY;YACnB,WAAW,EAAE,MAAM,CAAC,WAAW;SAChC,CAAC,CAAC;QACH,MAAM,IAAI,GAAmB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,0EAA0E;QAC1E,0EAA0E;QAC1E,IAAI,GAAG,YAAY,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YACtD,IAAI,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;gBAChC,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC,yCAAyC,OAAO,8BAA8B,CAAC,CAAC;YAC/F,CAAC;YACD,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC;QACvE,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,kDAAkD;AAClD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,MAA0C;IAC3E,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC;QACjC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,wBAAwB;QAClC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,SAAS,EAAE,aAAa,EAAE;SAC3B,CAAC;QACF,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,sBAAsB;QACrD,KAAK,EAAE,cAAc;KACtB,CAAC,CAAC;IACH,MAAM,IAAI,GAAqB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACnD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,wCAAwC;AACxC;;;;;;;;;;GAUG;AACH,MAAM,UAAU,0BAA0B,CAAC,IAAqB,EAAE,IAAoB;IACpF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;IACnC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,mBAAmB,IAAI,CAAC,GAAG,WAAW,MAAM,EAAE,CAAC;IACxD,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,aAAa;QAClC,CAAC,CAAC,oJAAoJ;QACtJ,CAAC,CAAC,gIAAgI,CAAC;IACrI,OAAO,mBAAmB,IAAI,CAAC,GAAG,oBAAoB,IAAI,EAAE,CAAC;AAC/D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAmD;IACnF,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC;QACjC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,uBAAuB;QACjC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,CAAC;QACpE,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,sBAAsB;QACrD,KAAK,EAAE,aAAa;KACrB,CAAC,CAAC;IACH,MAAM,IAAI,GAAoB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAClD,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACjE,CAAC;AACH,CAAC;AAED,kEAAkE;AAClE,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,MAAyE;IAEzE,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC;QACjC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,qBAAqB;QAC/B,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,aAAa,EAAE,MAAM,CAAC,WAAW;YACjC,aAAa,EAAE,MAAM,CAAC,YAAY;YAClC,SAAS,EAAE,aAAa,EAAE;SAC3B,CAAC;QACF,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,yBAAyB;QACxD,KAAK,EAAE,WAAW;KACnB,CAAC,CAAC;IACH,MAAM,IAAI,GAAkB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAChD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,yCAAyC;AACzC,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAkD;IACjF,MAAM,YAAY,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,sBAAsB;QAChC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,CAAC;QACpE,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,yBAAyB;QACxD,KAAK,EAAE,YAAY;KACpB,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAwB;IACvD,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC;QACjC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,0BAA0B;QACpC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,CAAC;QACpD,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,yBAAyB;QACxD,KAAK,EAAE,YAAY;KACpB,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAmB,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,MAAwB;IACxD,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC;QACjC,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,2BAA2B;QACrC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,CAAC;QACpD,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,yBAAyB;QACxD,KAAK,EAAE,aAAa;KACrB,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAoB,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/api/api.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { redactError, redactToken } from "../util/redact.js";
1
2
  import { getConfig } from "./api.js";
2
3
  const CONFIG_CACHE_TTL_MS = 24 * 60 * 60 * 1000;
3
4
  const CONFIG_CACHE_INITIAL_RETRY_MS = 2_000;
@@ -34,12 +35,12 @@ export class WeixinConfigManager {
34
35
  nextFetchAt: now + Math.random() * CONFIG_CACHE_TTL_MS,
35
36
  retryDelayMs: CONFIG_CACHE_INITIAL_RETRY_MS,
36
37
  });
37
- this.log(`[weixin] config ${entry?.everSucceeded ? "refreshed" : "cached"} for ${userId}`);
38
+ this.log(`[weixin] config ${entry?.everSucceeded ? "refreshed" : "cached"} for ${redactToken(userId)}`);
38
39
  fetchOk = true;
39
40
  }
40
41
  }
41
42
  catch (err) {
42
- this.log(`[weixin] getConfig failed for ${userId} (ignored): ${String(err)}`);
43
+ this.log(`[weixin] getConfig failed for ${redactToken(userId)} (ignored): ${redactError(err)}`);
43
44
  }
44
45
  if (!fetchOk) {
45
46
  const prevDelay = entry?.retryDelayMs ?? CONFIG_CACHE_INITIAL_RETRY_MS;
@@ -1 +1 @@
1
- {"version":3,"file":"config-cache.js","sourceRoot":"","sources":["../../../src/api/config-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAOrC,MAAM,mBAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAChD,MAAM,6BAA6B,GAAG,KAAK,CAAC;AAC5C,MAAM,yBAAyB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AASjD;;;GAGG;AACH,MAAM,OAAO,mBAAmB;IAIpB,OAAO;IACP,GAAG;IAJL,KAAK,GAAG,IAAI,GAAG,EAA4B,CAAC;IAEpD,YACU,OAA4C,EAC5C,GAA0B;uBAD1B,OAAO;mBACP,GAAG;IACV,CAAC;IAEJ,KAAK,CAAC,UAAU,CAAC,MAAc,EAAE,YAAqB;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACrC,MAAM,WAAW,GAAG,CAAC,KAAK,IAAI,GAAG,IAAI,KAAK,CAAC,WAAW,CAAC;QAEvD,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC;oBAC3B,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO;oBAC7B,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;oBACzB,WAAW,EAAE,MAAM;oBACnB,YAAY;iBACb,CAAC,CAAC;gBACH,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;oBACnB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE;wBACrB,MAAM,EAAE,EAAE,YAAY,EAAE,IAAI,CAAC,aAAa,IAAI,EAAE,EAAE;wBAClD,aAAa,EAAE,IAAI;wBACnB,WAAW,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,mBAAmB;wBACtD,YAAY,EAAE,6BAA6B;qBAC5C,CAAC,CAAC;oBACH,IAAI,CAAC,GAAG,CAAC,mBAAmB,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,QAAQ,MAAM,EAAE,CAAC,CAAC;oBAC3F,OAAO,GAAG,IAAI,CAAC;gBACjB,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,GAAG,CAAC,iCAAiC,MAAM,eAAe,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAChF,CAAC;YACD,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,SAAS,GAAG,KAAK,EAAE,YAAY,IAAI,6BAA6B,CAAC;gBACvE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,EAAE,yBAAyB,CAAC,CAAC;gBACrE,IAAI,KAAK,EAAE,CAAC;oBACV,KAAK,CAAC,WAAW,GAAG,GAAG,GAAG,SAAS,CAAC;oBACpC,KAAK,CAAC,YAAY,GAAG,SAAS,CAAC;gBACjC,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE;wBACrB,MAAM,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE;wBAC5B,aAAa,EAAE,KAAK;wBACpB,WAAW,EAAE,GAAG,GAAG,6BAA6B;wBAChD,YAAY,EAAE,6BAA6B;qBAC5C,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;IAChE,CAAC;CACF"}
1
+ {"version":3,"file":"config-cache.js","sourceRoot":"","sources":["../../../src/api/config-cache.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { logger } from "../util/logger.js";
2
+ import { redactToken } from "../util/redact.js";
2
3
  const SESSION_PAUSE_DURATION_MS = 60 * 60 * 1000;
3
4
  /** Error code returned by the server when the bot token is stale / expired. */
4
5
  export const STALE_TOKEN_ERRCODE = -14;
@@ -7,7 +8,7 @@ const pauseUntilMap = new Map();
7
8
  export function pauseSession(accountId) {
8
9
  const until = Date.now() + SESSION_PAUSE_DURATION_MS;
9
10
  pauseUntilMap.set(accountId, until);
10
- logger.info(`session-guard: paused accountId=${accountId} until=${new Date(until).toISOString()} (${SESSION_PAUSE_DURATION_MS / 1000}s)`);
11
+ logger.info(`session-guard: paused account=${redactToken(accountId)} until=${new Date(until).toISOString()} (${SESSION_PAUSE_DURATION_MS / 1000}s)`);
11
12
  }
12
13
  /** Returns `true` when the bot is still within its one-hour cooldown window. */
13
14
  export function isSessionPaused(accountId) {
@@ -36,7 +37,7 @@ export function getRemainingPauseMs(accountId) {
36
37
  export function assertSessionActive(accountId) {
37
38
  if (isSessionPaused(accountId)) {
38
39
  const remainingMin = Math.ceil(getRemainingPauseMs(accountId) / 60_000);
39
- throw new Error(`session paused for accountId=${accountId}, ${remainingMin} min remaining (errcode ${STALE_TOKEN_ERRCODE})`);
40
+ throw new Error(`session paused for account, ${remainingMin} min remaining (errcode ${STALE_TOKEN_ERRCODE})`);
40
41
  }
41
42
  }
42
43
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"session-guard.js","sourceRoot":"","sources":["../../../src/api/session-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,yBAAyB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEjD,+EAA+E;AAC/E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAAE,CAAC;AAEvC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEhD,yEAAyE;AACzE,MAAM,UAAU,YAAY,CAAC,SAAiB;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,yBAAyB,CAAC;IACrD,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACpC,MAAM,CAAC,IAAI,CACT,mCAAmC,SAAS,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,KAAK,yBAAyB,GAAG,IAAI,IAAI,CAC7H,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC3C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,EAAE,CAAC;QACxB,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,mBAAmB,CAAC,SAAiB;IACnD,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC3C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACrC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACnB,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAChC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,mBAAmB,CAAC,SAAiB;IACnD,IAAI,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,CAAC;QACxE,MAAM,IAAI,KAAK,CACb,gCAAgC,SAAS,KAAK,YAAY,2BAA2B,mBAAmB,GAAG,CAC5G,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,aAAa,CAAC,KAAK,EAAE,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"session-guard.js","sourceRoot":"","sources":["../../../src/api/session-guard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,yBAAyB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEjD,+EAA+E;AAC/E,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAAE,CAAC;AAEvC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEhD,yEAAyE;AACzE,MAAM,UAAU,YAAY,CAAC,SAAiB;IAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,yBAAyB,CAAC;IACrD,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACpC,MAAM,CAAC,IAAI,CACT,iCAAiC,WAAW,CAAC,SAAS,CAAC,UAAU,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,KAAK,yBAAyB,GAAG,IAAI,IAAI,CACxI,CAAC;AACJ,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,eAAe,CAAC,SAAiB;IAC/C,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC3C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC;IACtC,IAAI,IAAI,CAAC,GAAG,EAAE,IAAI,KAAK,EAAE,CAAC;QACxB,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,mBAAmB,CAAC,SAAiB;IACnD,MAAM,KAAK,GAAG,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC3C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACrC,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACnB,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAChC,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,mBAAmB,CAAC,SAAiB;IACnD,IAAI,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,+BAA+B,YAAY,2BAA2B,mBAAmB,GAAG,CAAC,CAAC;IAChH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,aAAa,CAAC,KAAK,EAAE,CAAC;AACxB,CAAC"}
@@ -3,6 +3,7 @@ import path from "node:path";
3
3
  import { normalizeAccountId } from "openclaw/plugin-sdk/account-id";
4
4
  import { resolveStateDir } from "../storage/state-dir.js";
5
5
  import { logger } from "../util/logger.js";
6
+ import { redactError } from "../util/redact.js";
6
7
  import { resolveFrameworkAllowFromPath } from "./pairing.js";
7
8
  export const DEFAULT_BASE_URL = "https://ilinkai.weixin.qq.com";
8
9
  export const CDN_BASE_URL = "https://novac2c.cdn.weixin.qq.com/c2c";
@@ -541,30 +542,27 @@ export function loadConfigBotAgent() {
541
542
  return typeof value === "string" && value.trim() ? value : undefined;
542
543
  }
543
544
  /**
544
- * Bump `channels.openclaw-weixin.channelConfigUpdatedAt` in openclaw.json on each successful login
545
- * so the gateway reloads config from disk (no empty `accounts: {}` placeholder).
545
+ * Bump the channel timestamp in the current source config after login.
546
+ * The host owns the write and automatic reload policy.
546
547
  */
547
548
  export async function triggerWeixinChannelReload() {
548
549
  try {
549
- const { loadConfig, writeConfigFile } = await import("openclaw/plugin-sdk/config-runtime");
550
- const cfg = loadConfig();
551
- const channels = (cfg.channels ?? {});
552
- const existing = channels["openclaw-weixin"] ?? {};
553
- const updated = {
554
- ...cfg,
555
- channels: {
556
- ...channels,
557
- "openclaw-weixin": {
558
- ...existing,
550
+ const { mutateConfigFile } = await import("openclaw/plugin-sdk/config-mutation");
551
+ await mutateConfigFile({
552
+ base: "source",
553
+ afterWrite: { mode: "auto" },
554
+ mutate(draft) {
555
+ draft.channels ??= {};
556
+ draft.channels["openclaw-weixin"] = {
557
+ ...draft.channels["openclaw-weixin"],
559
558
  channelConfigUpdatedAt: new Date().toISOString(),
560
- },
559
+ };
561
560
  },
562
- };
563
- await writeConfigFile(updated);
561
+ });
564
562
  logger.info("triggerWeixinChannelReload: wrote channel config to openclaw.json");
565
563
  }
566
564
  catch (err) {
567
- logger.warn(`triggerWeixinChannelReload: failed to update config: ${String(err)}`);
565
+ logger.warn(`triggerWeixinChannelReload: failed to update config: ${redactError(err)}`);
568
566
  }
569
567
  }
570
568
  /**