openclaw-weixin 3.1.2 → 3.1.5
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 +31 -0
- package/CHANGELOG_EN.md +35 -0
- package/README.md +61 -72
- package/README_EN.md +74 -86
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/src/channel.js +2 -13
- package/dist/src/channel.js.map +1 -1
- package/dist/src/config/config-schema.js +43 -17
- package/dist/src/config/config-schema.js.map +1 -1
- package/docs/{architecture_EN.md → en/architecture.md} +2 -2
- package/docs/{backend-api_EN.md → en/backend-api.md} +24 -13
- package/docs/en/distributions.md +41 -0
- package/docs/{guide_EN.md → en/guide.md} +40 -0
- package/docs/{architecture.md → zh-CN/architecture.md} +1 -1
- package/docs/{backend-api.md → zh-CN/backend-api.md} +18 -10
- package/docs/zh-CN/distributions.md +27 -0
- package/docs/{guide.md → zh-CN/guide.md} +34 -0
- package/index.ts +2 -3
- package/openclaw.plugin.json +13 -2
- package/package.json +8 -2
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,37 @@
|
|
|
6
6
|
|
|
7
7
|
## [未发布]
|
|
8
8
|
|
|
9
|
+
## [3.1.5] - 2026-08-16
|
|
10
|
+
|
|
11
|
+
### 变更
|
|
12
|
+
|
|
13
|
+
- **Node.js 兼容范围:** 发布包现在声明支持 Node.js `>=22.22.3`,包括 Node.js 24 和
|
|
14
|
+
26;CI 新增当前 Node.js 26 兼容性验证。
|
|
15
|
+
|
|
16
|
+
### 修复
|
|
17
|
+
|
|
18
|
+
- **OpenClaw beta 配置兼容:** 插件入口和 channel 注册现在共用宿主提供的 JSON Schema
|
|
19
|
+
边界,不再导入已移除的 `openclaw/plugin-sdk/zod`;该 schema 覆盖文档中的
|
|
20
|
+
`botAgent`、进度消息和字符串/数字路由标签,使插件可在新版宿主加载且不会携带第二份
|
|
21
|
+
Zod。
|
|
22
|
+
|
|
23
|
+
## [3.1.4] - 2026-08-12
|
|
24
|
+
|
|
25
|
+
### 修复
|
|
26
|
+
|
|
27
|
+
- **发布版本缺口:** npmjs 和 GitHub Packages 不再要求仓库中间版本已发布;流程仍会检查
|
|
28
|
+
当前精确目标、要求 `latest` 低于待发布版本、在不可逆边界前重新检查远端状态,并对非
|
|
29
|
+
404 查询错误显式失败。
|
|
30
|
+
|
|
31
|
+
## [3.1.3] - 2026-08-12
|
|
32
|
+
|
|
33
|
+
### 修复
|
|
34
|
+
|
|
35
|
+
- **发布流程可靠性:** npmjs、ClawHub 和 GitHub Packages 现在从已验证的 release tag
|
|
36
|
+
并行发布,并以成功的发布响应完成各自任务,避免 npm registry 的即时可见性延迟使已成功的
|
|
37
|
+
发布失败;GitHub Release 在三个包目标完成后收尾。ClawHub OIDC 可信发布不再覆盖包
|
|
38
|
+
owner。
|
|
39
|
+
|
|
9
40
|
## [3.1.2] - 2026-08-12
|
|
10
41
|
|
|
11
42
|
### 变更
|
package/CHANGELOG_EN.md
CHANGED
|
@@ -6,6 +6,41 @@ This project follows the [Keep a Changelog](https://keepachangelog.com/) format.
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [3.1.5] - 2026-08-16
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
|
|
13
|
+
- **Node.js compatibility range:** the published package now declares support
|
|
14
|
+
for Node.js `>=22.22.3`, including Node.js 24 and 26; CI adds compatibility
|
|
15
|
+
coverage for the current Node.js 26 runtime.
|
|
16
|
+
|
|
17
|
+
### Fixed
|
|
18
|
+
|
|
19
|
+
- **OpenClaw beta config compatibility:** the plugin entry and channel
|
|
20
|
+
registration now share the host's JSON Schema boundary instead of the removed
|
|
21
|
+
`openclaw/plugin-sdk/zod` export. The schema covers the documented `botAgent`,
|
|
22
|
+
progress-message setting, and string or numeric route tags, allowing the plugin
|
|
23
|
+
to load on newer hosts without shipping a second Zod copy.
|
|
24
|
+
|
|
25
|
+
## [3.1.4] - 2026-08-12
|
|
26
|
+
|
|
27
|
+
### Fixed
|
|
28
|
+
|
|
29
|
+
- **Release version gaps:** npmjs and GitHub Packages no longer require
|
|
30
|
+
intermediate repository versions to be published. The workflows still check
|
|
31
|
+
the exact target, require `latest` to be lower than the release, recheck remote
|
|
32
|
+
state before irreversible boundaries, and fail explicit non-404 lookup errors.
|
|
33
|
+
|
|
34
|
+
## [3.1.3] - 2026-08-12
|
|
35
|
+
|
|
36
|
+
### Fixed
|
|
37
|
+
|
|
38
|
+
- **Release workflow reliability:** npmjs, ClawHub, and GitHub Packages now
|
|
39
|
+
publish in parallel from the validated release tag and complete from successful
|
|
40
|
+
publish responses, avoiding a false failure when npm registry propagation
|
|
41
|
+
lags; GitHub Release finalizes after all three package targets complete.
|
|
42
|
+
ClawHub OIDC trusted publishing no longer overrides the package owner.
|
|
43
|
+
|
|
9
44
|
## [3.1.2] - 2026-08-12
|
|
10
45
|
|
|
11
46
|
### Changed
|
package/README.md
CHANGED
|
@@ -4,46 +4,52 @@
|
|
|
4
4
|
[English](https://openclaw-weixin.newfuture.cc/en/) · [在线文档](https://openclaw-weixin.newfuture.cc/)
|
|
5
5
|
<!-- docs-site:repo-only:end -->
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
**把 OpenClaw 接入微信**
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
的社区维护发行版,提供 npm 与 ClawHub 两个发布入口。
|
|
12
|
-
</p>
|
|
9
|
+
社区维护的 OpenClaw 微信渠道插件,提供 npm 与 ClawHub 两个安装源。
|
|
10
|
+
本插件需要 OpenClaw `>=2026.6.1`。
|
|
13
11
|
|
|
14
|
-
<
|
|
12
|
+
<a id="connect-wechat"></a>
|
|
15
13
|
|
|
16
|
-
|
|
17
|
-
提示词让 OpenClaw 优先使用 npm、失败时回退 ClawHub,并完成安装与连接检查;直接命令只安装或替换插件。</p>
|
|
14
|
+
## 选择一种安装方式
|
|
18
15
|
|
|
19
|
-
|
|
20
|
-
<a href="#agent-install"><strong>复制提示词</strong><span>npm 优先,ClawHub 兜底</span></a>
|
|
21
|
-
<span class="choice-or" aria-hidden="true">或</span>
|
|
22
|
-
<a href="#direct-install"><strong>运行命令</strong><span>自己选择 npm 或 ClawHub</span></a>
|
|
23
|
-
</div>
|
|
16
|
+
[**复制提示词**](#agent-install) **或** [**运行命令**](#direct-install)
|
|
24
17
|
|
|
25
18
|
<!-- registry-prompt:start -->
|
|
26
|
-
<
|
|
19
|
+
<a id="agent-install"></a>
|
|
27
20
|
|
|
28
|
-
|
|
21
|
+
### 让 OpenClaw 自动完成安装
|
|
22
|
+
|
|
23
|
+
把下面这段话粘贴到 OpenClaw 聊天框并发送:
|
|
29
24
|
|
|
30
25
|
```text
|
|
31
26
|
请为当前 OpenClaw 安装或原位替换微信插件,并检查微信连接。优先安装 npm 的 `npm:openclaw-weixin`;仅当 npm 来源明确不可用时,改用 ClawHub 的 `clawhub:openclaw-wechat`,全程只安装一个。
|
|
32
|
-
|
|
33
27
|
请遵循 OpenClaw 的安装策略,对所用来源执行同一 `openclaw-weixin` 插件 ID 的原位替换(对应 `--force`),并保留现有配置和登录数据;请使用 OpenClaw 插件安装流程,而不是普通的 `npm install`。安装后确认插件已加载并探测微信 Channel;未登录时提示扫码。最后简要报告来源和结果;失败时说明原因。
|
|
34
28
|
```
|
|
35
29
|
<!-- registry-prompt:end -->
|
|
36
30
|
|
|
37
|
-
<
|
|
31
|
+
<a id="direct-install"></a>
|
|
32
|
+
|
|
33
|
+
### 直接运行命令
|
|
34
|
+
|
|
35
|
+
> [!WARNING]
|
|
36
|
+
> **替换腾讯版时不要先卸载。** 两个社区发布源都保留插件 ID、Channel ID、配置和
|
|
37
|
+
> 登录状态。`--force` 不会绕过 OpenClaw 的安装策略或内置依赖拒绝列表;OpenClaw
|
|
38
|
+
> 会自动轮换配置备份。
|
|
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) |
|
|
38
46
|
|
|
39
47
|
<!-- registry-source:npm:start -->
|
|
40
|
-
<
|
|
48
|
+
<a id="npm-source"></a>
|
|
41
49
|
|
|
42
|
-
|
|
43
|
-
<code>--force</code> 表示你已审阅并明确选择该 npm 来源,同时允许覆盖相同插件 ID
|
|
44
|
-
的现有安装。</p>
|
|
50
|
+
#### npm:`openclaw-weixin`
|
|
45
51
|
|
|
46
|
-
<
|
|
52
|
+
<a id="npm-cli-install"></a>
|
|
47
53
|
|
|
48
54
|
```bash
|
|
49
55
|
openclaw plugins install npm:openclaw-weixin --force
|
|
@@ -51,51 +57,22 @@ openclaw plugins install npm:openclaw-weixin --force
|
|
|
51
57
|
<!-- registry-source:npm:end -->
|
|
52
58
|
|
|
53
59
|
<!-- registry-source:clawhub:start -->
|
|
54
|
-
<
|
|
60
|
+
<a id="clawhub-source"></a>
|
|
61
|
+
|
|
62
|
+
#### ClawHub:`openclaw-wechat`
|
|
55
63
|
|
|
56
|
-
|
|
57
|
-
页面顶部不带 <code>--force</code> 的命令适合没有现有微信插件的全新安装;下面保留
|
|
58
|
-
<code>--force</code>,使同一条命令也能原位替换占用 <code>openclaw-weixin</code>
|
|
59
|
-
插件 ID 的腾讯版或 npm 版。</p>
|
|
64
|
+
下面的命令也可原位替换占用 `openclaw-weixin` 插件 ID 的腾讯版或 npm 版。
|
|
60
65
|
|
|
61
|
-
<
|
|
66
|
+
<a id="clawhub-cli-install"></a>
|
|
62
67
|
|
|
63
68
|
```bash
|
|
64
69
|
openclaw plugins install clawhub:openclaw-wechat --force
|
|
65
70
|
```
|
|
66
71
|
<!-- registry-source:clawhub:end -->
|
|
67
72
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
会自动轮换配置备份。</p>
|
|
72
|
-
|
|
73
|
-
## 两个社区入口
|
|
74
|
-
|
|
75
|
-
| 安装来源 | 包名 |
|
|
76
|
-
| --- | --- |
|
|
77
|
-
| npm | `openclaw-weixin` |
|
|
78
|
-
| ClawHub | `openclaw-wechat` |
|
|
79
|
-
|
|
80
|
-
本项目是 [Tencent/openclaw-weixin](https://github.com/Tencent/openclaw-weixin) 的
|
|
81
|
-
社区维护发行版;腾讯官方 npm 包是 `@tencent-weixin/openclaw-weixin`。社区版的包名和
|
|
82
|
-
发布渠道不同,但沿用 `openclaw-weixin` 插件、Channel 和状态 ID,因此可以原位替换并
|
|
83
|
-
保留现有配置与登录状态。
|
|
84
|
-
|
|
85
|
-
**两个社区入口任选一个即可,不要同时安装。**本插件需要 OpenClaw `>=2026.6.1`,并遵循
|
|
86
|
-
以下 Node.js 范围:`>=22.22.3 <23`、`>=24.15.0 <25` 或 `>=25.9.0`。
|
|
87
|
-
|
|
88
|
-
当前能力包括微信私聊、文本与媒体收发、扫码登录和多账号;插件没有声明群聊能力。
|
|
89
|
-
|
|
90
|
-
> **名称兼容:** `openclaw-wechat` 是 ClawHub 包名及 channel 兼容别名,
|
|
91
|
-
> `openclaw-weixin` 仍是规范 plugin/channel ID。在 OpenClaw 2026.7.1 及以上版本,
|
|
92
|
-
> 可以使用 `--channel openclaw-wechat` 选择同一 channel;较早的受支持宿主仍需使用
|
|
93
|
-
> `openclaw-weixin`。插件启停命令、配置和状态路径始终使用 `openclaw-weixin`,并且不要
|
|
94
|
-
> 同时安装两个发行包。
|
|
95
|
-
|
|
96
|
-
<p class="install-done"><strong>如果当前 OpenClaw 已有微信登录状态,安装后通常只需确认连接。</strong>
|
|
97
|
-
全新安装需要展开完整检查并扫码绑定;安装报错、未自动恢复连接或需要确认目标账号时,
|
|
98
|
-
也在此检查。</p>
|
|
73
|
+
> [!TIP]
|
|
74
|
+
> **如果当前 OpenClaw 已有微信登录状态,安装后通常只需确认连接。** 全新安装需要
|
|
75
|
+
> 展开完整检查并扫码绑定;安装报错、未自动恢复连接或需要确认目标账号时,也在此检查。
|
|
99
76
|
|
|
100
77
|
<details id="verify-connection" class="full-check">
|
|
101
78
|
<summary>完整检查、扫码与恢复</summary>
|
|
@@ -106,11 +83,9 @@ openclaw plugins install clawhub:openclaw-wechat --force
|
|
|
106
83
|
|
|
107
84
|
```bash
|
|
108
85
|
openclaw --version
|
|
109
|
-
node --version
|
|
110
86
|
```
|
|
111
87
|
|
|
112
|
-
需要 OpenClaw `>=2026.6.1
|
|
113
|
-
安装,请不要卸载现有插件;按
|
|
88
|
+
需要 OpenClaw `>=2026.6.1`。若版本过低或 Nix 模式禁止安装,请不要卸载现有插件;按
|
|
114
89
|
[安装限制与故障排查](https://openclaw-weixin.newfuture.cc/guide.html#安装限制)处理。
|
|
115
90
|
|
|
116
91
|
### 安装后没有自动连接
|
|
@@ -123,14 +98,11 @@ openclaw plugins list
|
|
|
123
98
|
openclaw channels status --probe
|
|
124
99
|
```
|
|
125
100
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
<li>使用多账号时,探测结果对应你准备使用的别名或账号 ID。</li>
|
|
132
|
-
</ul>
|
|
133
|
-
</div>
|
|
101
|
+
**满足以下条件即表示连接成功:**
|
|
102
|
+
|
|
103
|
+
- `openclaw plugins list` 显示插件已启用,并且没有加载错误。
|
|
104
|
+
- `openclaw channels status --probe` 对目标微信账号探测成功。
|
|
105
|
+
- 使用多账号时,探测结果对应你准备使用的别名或账号 ID。
|
|
134
106
|
|
|
135
107
|
| 检查结果 | 下一步 |
|
|
136
108
|
| --- | --- |
|
|
@@ -139,7 +111,9 @@ openclaw channels status --probe
|
|
|
139
111
|
| 账号显示未登录 | 继续下面的扫码绑定 |
|
|
140
112
|
| Channel 显示 `OK` 但未连接 | 按[连接故障排查](https://openclaw-weixin.newfuture.cc/guide.html#channel-显示-ok-但未连接)重载实际运行单元 |
|
|
141
113
|
|
|
142
|
-
<
|
|
114
|
+
<a id="bind-account"></a>
|
|
115
|
+
|
|
116
|
+
### 状态显示未登录
|
|
143
117
|
|
|
144
118
|
仅在探测显示目标账号未登录时执行:
|
|
145
119
|
|
|
@@ -192,9 +166,24 @@ openclaw channels login --channel openclaw-weixin --account nezha
|
|
|
192
166
|
|
|
193
167
|
</details>
|
|
194
168
|
|
|
169
|
+
## 主动与定时发送
|
|
170
|
+
|
|
171
|
+
微信后端要求每条出站消息携带由该收件人入站消息下发的账号级 context token。插件收到
|
|
172
|
+
消息后会按账号保存该 token:
|
|
173
|
+
|
|
174
|
+
- 尚未收到该收件人的消息或 token 缺失时,插件会拒绝发送消息,不会返回本地“成功”
|
|
175
|
+
结果。
|
|
176
|
+
- 已保存的 token 仍可能失效;长时间无交互后发送失败时,请让收件人先向对应 bot
|
|
177
|
+
发送一条消息以刷新 token,再重试。
|
|
178
|
+
|
|
179
|
+
多账号部署的定时任务应同时显式设置 `delivery.to` 和 `delivery.accountId`。未指定
|
|
180
|
+
`accountId` 时,只有恰好能从账号级上下文选出一个账号才会发送;缺失或歧义都会失败。
|
|
181
|
+
context token 属于敏感数据,不要跨账号复制或写入任务配置。
|
|
182
|
+
|
|
195
183
|
## 文档与支持
|
|
196
184
|
|
|
197
|
-
- [详细指南](https://openclaw-weixin.newfuture.cc/guide.html)
|
|
185
|
+
- [详细指南](https://openclaw-weixin.newfuture.cc/guide.html):安装行为、可选配置、主动发送限制、卸载和故障排查
|
|
186
|
+
- [社区版与腾讯版](https://openclaw-weixin.newfuture.cc/distributions.html)
|
|
198
187
|
- [后端 API 协议](https://openclaw-weixin.newfuture.cc/backend-api.html)
|
|
199
188
|
- [架构说明](https://openclaw-weixin.newfuture.cc/architecture.html)
|
|
200
189
|
- [变更日志](https://openclaw-weixin.newfuture.cc/changelog.html)
|
package/README_EN.md
CHANGED
|
@@ -4,49 +4,55 @@
|
|
|
4
4
|
[简体中文](https://openclaw-weixin.newfuture.cc/) · [Documentation site](https://openclaw-weixin.newfuture.cc/en/)
|
|
5
5
|
<!-- docs-site:repo-only:end -->
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
**Bring OpenClaw into WeChat**
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
is available from both npm and ClawHub.
|
|
13
|
-
</p>
|
|
9
|
+
A community-maintained OpenClaw WeChat channel plugin available from npm and
|
|
10
|
+
ClawHub.
|
|
11
|
+
This plugin requires OpenClaw `>=2026.6.1`.
|
|
14
12
|
|
|
15
|
-
<
|
|
13
|
+
<a id="connect-wechat"></a>
|
|
16
14
|
|
|
17
|
-
|
|
18
|
-
The prompt tries ClawHub first, falls back to npm, and completes installation
|
|
19
|
-
and connection checks; direct commands only install or replace the plugin.</p>
|
|
15
|
+
## Choose an installation method
|
|
20
16
|
|
|
21
|
-
|
|
22
|
-
<a href="#agent-install"><strong>Copy the prompt</strong><span>ClawHub first, npm fallback</span></a>
|
|
23
|
-
<span class="choice-or" aria-hidden="true">or</span>
|
|
24
|
-
<a href="#direct-install"><strong>Run a command</strong><span>Choose npm or ClawHub yourself</span></a>
|
|
25
|
-
</div>
|
|
17
|
+
[**Copy the prompt**](#agent-install) **or** [**Run a command**](#direct-install)
|
|
26
18
|
|
|
27
19
|
<!-- registry-prompt:start -->
|
|
28
|
-
<
|
|
20
|
+
<a id="agent-install"></a>
|
|
29
21
|
|
|
30
|
-
|
|
22
|
+
### Let OpenClaw complete the installation
|
|
23
|
+
|
|
24
|
+
Paste this prompt into an OpenClaw chat and send it:
|
|
31
25
|
|
|
32
26
|
```text
|
|
33
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.
|
|
34
|
-
|
|
35
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.
|
|
36
29
|
```
|
|
37
30
|
<!-- registry-prompt:end -->
|
|
38
31
|
|
|
39
|
-
<
|
|
32
|
+
<a id="direct-install"></a>
|
|
33
|
+
|
|
34
|
+
### Run a command directly
|
|
35
|
+
|
|
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.
|
|
41
|
+
|
|
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) |
|
|
40
49
|
|
|
41
50
|
<!-- registry-source:npm:start -->
|
|
42
|
-
<
|
|
51
|
+
<a id="npm-source"></a>
|
|
43
52
|
|
|
44
|
-
|
|
45
|
-
default to this source.</strong> <code>--force</code> confirms that you reviewed and
|
|
46
|
-
selected this npm source and allows replacement of an existing installation with
|
|
47
|
-
the same plugin id.</p>
|
|
53
|
+
#### npm: `openclaw-weixin`
|
|
48
54
|
|
|
49
|
-
<
|
|
55
|
+
<a id="npm-cli-install"></a>
|
|
50
56
|
|
|
51
57
|
```bash
|
|
52
58
|
openclaw plugins install npm:openclaw-weixin --force
|
|
@@ -54,61 +60,26 @@ openclaw plugins install npm:openclaw-weixin --force
|
|
|
54
60
|
<!-- registry-source:npm:end -->
|
|
55
61
|
|
|
56
62
|
<!-- registry-source:clawhub:start -->
|
|
57
|
-
<
|
|
63
|
+
<a id="clawhub-source"></a>
|
|
58
64
|
|
|
59
|
-
|
|
60
|
-
The banner command without <code>--force</code> is suitable for a fresh install
|
|
61
|
-
with no existing WeChat plugin. The command below keeps <code>--force</code> so it
|
|
62
|
-
can also replace a Tencent or npm installation that owns the
|
|
63
|
-
<code>openclaw-weixin</code> plugin id.</p>
|
|
65
|
+
#### ClawHub: `openclaw-wechat`
|
|
64
66
|
|
|
65
|
-
|
|
67
|
+
The command can also replace a Tencent or npm installation that owns the
|
|
68
|
+
`openclaw-weixin` plugin id.
|
|
69
|
+
|
|
70
|
+
<a id="clawhub-cli-install"></a>
|
|
66
71
|
|
|
67
72
|
```bash
|
|
68
73
|
openclaw plugins install clawhub:openclaw-wechat --force
|
|
69
74
|
```
|
|
70
75
|
<!-- registry-source:clawhub:end -->
|
|
71
76
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
## Community package sources
|
|
79
|
-
|
|
80
|
-
| Source | Package name |
|
|
81
|
-
| --- | --- |
|
|
82
|
-
| npm | `openclaw-weixin` |
|
|
83
|
-
| ClawHub | `openclaw-wechat` |
|
|
84
|
-
|
|
85
|
-
This project is a community-maintained distribution of
|
|
86
|
-
[Tencent/openclaw-weixin](https://github.com/Tencent/openclaw-weixin); Tencent's
|
|
87
|
-
official npm package is `@tencent-weixin/openclaw-weixin`. The community package
|
|
88
|
-
names and registries differ, but they keep the `openclaw-weixin` plugin, channel,
|
|
89
|
-
and state ID, allowing in-place replacement without losing existing configuration
|
|
90
|
-
or login state.
|
|
91
|
-
|
|
92
|
-
**Choose one community source; do not install both.** The plugin requires OpenClaw
|
|
93
|
-
`>=2026.6.1` and one of these Node.js ranges: `>=22.22.3 <23`,
|
|
94
|
-
`>=24.15.0 <25`, or `>=25.9.0`.
|
|
95
|
-
|
|
96
|
-
Current capabilities include direct chats, text and media transfer, QR login,
|
|
97
|
-
and multiple accounts. The plugin does not advertise group-chat support.
|
|
98
|
-
|
|
99
|
-
> **Name compatibility:** `openclaw-wechat` is the ClawHub package name and
|
|
100
|
-
> channel compatibility alias; `openclaw-weixin` remains the canonical
|
|
101
|
-
> plugin/channel ID. On OpenClaw 2026.7.1 and later,
|
|
102
|
-
> `--channel openclaw-wechat` selects the same channel; earlier supported hosts
|
|
103
|
-
> must continue to use `openclaw-weixin`. Plugin enable/disable commands, config,
|
|
104
|
-
> and state paths always use `openclaw-weixin`. Do not install both
|
|
105
|
-
> distributions at once.
|
|
106
|
-
|
|
107
|
-
<p class="install-done"><strong>If this OpenClaw instance already has a WeChat login,
|
|
108
|
-
you usually only need to confirm the connection after installation.</strong> For a
|
|
109
|
-
new installation, open the full check and scan the QR code. Use it as well when
|
|
110
|
-
installation fails, the connection does not return automatically, or you need to
|
|
111
|
-
confirm the intended account.</p>
|
|
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.
|
|
112
83
|
|
|
113
84
|
<details id="verify-connection" class="full-check">
|
|
114
85
|
<summary>Full check, QR login, and recovery</summary>
|
|
@@ -119,12 +90,10 @@ Check only when installation reports an incompatible version:
|
|
|
119
90
|
|
|
120
91
|
```bash
|
|
121
92
|
openclaw --version
|
|
122
|
-
node --version
|
|
123
93
|
```
|
|
124
94
|
|
|
125
|
-
The plugin requires OpenClaw `>=2026.6.1
|
|
126
|
-
|
|
127
|
-
uninstall the existing plugin. Follow the
|
|
95
|
+
The plugin requires OpenClaw `>=2026.6.1`. If the host is too old or Nix mode
|
|
96
|
+
disables installation, do not uninstall the existing plugin. Follow the
|
|
128
97
|
[installation limitations and troubleshooting](https://openclaw-weixin.newfuture.cc/en/guide.html#limitations).
|
|
129
98
|
|
|
130
99
|
### The connection does not return after installation
|
|
@@ -138,14 +107,12 @@ openclaw plugins list
|
|
|
138
107
|
openclaw channels status --probe
|
|
139
108
|
```
|
|
140
109
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
</ul>
|
|
148
|
-
</div>
|
|
110
|
+
**You are connected when all of these are true:**
|
|
111
|
+
|
|
112
|
+
- `openclaw plugins list` shows the plugin enabled with no load error.
|
|
113
|
+
- `openclaw channels status --probe` succeeds for the intended WeChat account.
|
|
114
|
+
- With multiple accounts, the result belongs to the alias or account ID you
|
|
115
|
+
intend to use.
|
|
149
116
|
|
|
150
117
|
| Result | Next action |
|
|
151
118
|
| --- | --- |
|
|
@@ -154,7 +121,9 @@ openclaw channels status --probe
|
|
|
154
121
|
| Account is not logged in | Continue to QR login below |
|
|
155
122
|
| Channel shows `OK` but does not connect | Follow [connection troubleshooting](https://openclaw-weixin.newfuture.cc/en/guide.html#channel-shows-ok-but-doesn-t-connect) to reload the actual runtime |
|
|
156
123
|
|
|
157
|
-
<
|
|
124
|
+
<a id="bind-account"></a>
|
|
125
|
+
|
|
126
|
+
### The status reports no login
|
|
158
127
|
|
|
159
128
|
Run this only when the probe reports that the intended account is not logged in:
|
|
160
129
|
|
|
@@ -212,9 +181,28 @@ files from `~/.openclaw/openclaw-weixin/`.
|
|
|
212
181
|
|
|
213
182
|
</details>
|
|
214
183
|
|
|
184
|
+
## Proactive and scheduled sends
|
|
185
|
+
|
|
186
|
+
The WeChat backend requires every outbound message to carry an account-scoped
|
|
187
|
+
context token issued by an inbound message from that recipient. The plugin
|
|
188
|
+
stores the token under the receiving account:
|
|
189
|
+
|
|
190
|
+
- If the recipient has not messaged the bot or the token is missing, the plugin
|
|
191
|
+
refuses delivery instead of returning a local success result.
|
|
192
|
+
- A stored token can still become stale. If a send fails after a long idle
|
|
193
|
+
period, ask the recipient to message the corresponding bot once to refresh
|
|
194
|
+
the token, then retry.
|
|
195
|
+
|
|
196
|
+
Scheduled jobs in multi-account deployments should explicitly set both
|
|
197
|
+
`delivery.to` and `delivery.accountId`. Without `accountId`, delivery proceeds
|
|
198
|
+
only when account-scoped context selects exactly one account; missing or
|
|
199
|
+
ambiguous context fails. Context tokens are sensitive: never copy them between
|
|
200
|
+
accounts or put them in job configuration.
|
|
201
|
+
|
|
215
202
|
## Documentation and support
|
|
216
203
|
|
|
217
|
-
- [Detailed guide](https://openclaw-weixin.newfuture.cc/en/guide.html): install behavior,
|
|
204
|
+
- [Detailed guide](https://openclaw-weixin.newfuture.cc/en/guide.html): install behavior, optional settings, proactive-send constraints, uninstall, and troubleshooting
|
|
205
|
+
- [Community and Tencent distributions](https://openclaw-weixin.newfuture.cc/en/distributions.html)
|
|
218
206
|
- [Backend API protocol](https://openclaw-weixin.newfuture.cc/en/backend-api.html)
|
|
219
207
|
- [Architecture](https://openclaw-weixin.newfuture.cc/en/architecture.html)
|
|
220
208
|
- [Changelog](https://openclaw-weixin.newfuture.cc/en/changelog.html)
|
package/dist/index.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import { buildChannelConfigSchema } from "openclaw/plugin-sdk/channel-config-schema";
|
|
2
1
|
import { weixinPlugin } from "./src/channel.js";
|
|
3
2
|
import { assertHostCompatibility } from "./src/compat.js";
|
|
4
|
-
import {
|
|
3
|
+
import { WeixinChannelConfigSchema } from "./src/config/config-schema.js";
|
|
5
4
|
export default {
|
|
6
5
|
id: "openclaw-weixin",
|
|
7
6
|
name: "WeChat",
|
|
8
7
|
description: "Community-maintained WeChat (Weixin) channel plugin for OpenClaw using the iLink bot API.",
|
|
9
|
-
configSchema:
|
|
8
|
+
configSchema: WeixinChannelConfigSchema,
|
|
10
9
|
register(api) {
|
|
11
10
|
// Fail-fast: reject incompatible host versions before any side-effects.
|
|
12
11
|
assertHostCompatibility(api.runtime?.version);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAE1E,eAAe;IACb,EAAE,EAAE,iBAAiB;IACrB,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,2FAA2F;IACxG,YAAY,EAAE,yBAAyB;IACvC,QAAQ,CAAC,GAAsB;QAC7B,wEAAwE;QACxE,uBAAuB,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAE9C,GAAG,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IAChD,CAAC;CACF,CAAC"}
|
package/dist/src/channel.js
CHANGED
|
@@ -5,6 +5,7 @@ import { assertSessionActive } from "./api/session-guard.js";
|
|
|
5
5
|
import { DEFAULT_BASE_URL, listWeixinAccountIds, loadWeixinAccount, migrateBoundAccountToAlias, persistWeixinLoginAccounts, resolvePrimaryAccountId, resolveWeixinAccount, triggerWeixinChannelReload, } from "./auth/accounts.js";
|
|
6
6
|
import { DEFAULT_ILINK_BOT_TYPE, displayQRCode, startWeixinLoginWithQr, waitForWeixinLogin } from "./auth/login-qr.js";
|
|
7
7
|
import { downloadRemoteImageToTemp } from "./cdn/upload.js";
|
|
8
|
+
import { WeixinChannelConfigSchema } from "./config/config-schema.js";
|
|
8
9
|
import { appendWeixinExecApprovalQuickReplies, splitWeixinExecApprovalOtherOptions, } from "./messaging/approval-quick-replies.js";
|
|
9
10
|
import { clearContextTokensForAccount, findAccountIdsByContextToken, getContextToken, restoreContextTokens, } from "./messaging/inbound.js";
|
|
10
11
|
// Lazy-imported inside startAccount to avoid pulling in the monitor -> process-message ->
|
|
@@ -124,19 +125,7 @@ export const weixinPlugin = {
|
|
|
124
125
|
blurb: "getUpdates long-poll upstream, sendMessage downstream; token auth.",
|
|
125
126
|
order: 75,
|
|
126
127
|
},
|
|
127
|
-
configSchema:
|
|
128
|
-
schema: {
|
|
129
|
-
type: "object",
|
|
130
|
-
additionalProperties: false,
|
|
131
|
-
properties: {
|
|
132
|
-
replyProgressMessages: {
|
|
133
|
-
type: "boolean",
|
|
134
|
-
default: true,
|
|
135
|
-
description: "Send structured tool-call progress messages.",
|
|
136
|
-
},
|
|
137
|
-
},
|
|
138
|
-
},
|
|
139
|
-
},
|
|
128
|
+
configSchema: WeixinChannelConfigSchema,
|
|
140
129
|
capabilities: {
|
|
141
130
|
chatTypes: ["direct"],
|
|
142
131
|
media: true,
|
package/dist/src/channel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/channel.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AACnF,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,0BAA0B,EAC1B,0BAA0B,EAC1B,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,GAC3B,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACvH,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EACL,oCAAoC,EACpC,mCAAmC,GACpC,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,EAC5B,eAAe,EACf,oBAAoB,GACrB,MAAM,wBAAwB,CAAC;AAChC,0FAA0F;AAC1F,6FAA6F;AAC7F,iDAAiD;AACjD,OAAO,EAAE,6BAA6B,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACrG,OAAO,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,2FAA2F;AAC3F,SAAS,eAAe,CAAC,QAAgB;IACvC,kEAAkE;IAClE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,WAAW,CAAC,QAAgB;IACnC,OAAO,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,uBAAuB,GAAG,IAAI,CAAC,IAAI,CAAC,8BAA8B,EAAE,EAAE,4BAA4B,CAAC,CAAC;AAE1G,oEAAoE;AACpE,SAAS,gBAAgB,CAAC,QAAgB;IACxC,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC;IACtE,gFAAgF;IAChF,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9D,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,wBAAwB,CAAC,GAAmB,EAAE,EAAU;IAC/D,MAAM,MAAM,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;IAEzC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,4FAA4F,CAAC,CAAC;IAChH,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,MAAM,CAAC,IAAI,CAAC,mDAAmD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5E,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IACnB,CAAC;IAED,4EAA4E;IAC5E,MAAM,OAAO,GAAG,4BAA4B,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAEzD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,+CAA+C,OAAO,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACtF,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,CAAC,IAAI,CACT,yCAAyC,OAAO,CAAC,MAAM,4BAA4B,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC/G,CAAC;QACF,MAAM,IAAI,KAAK,CACb,oCAAoC,EAAE,GAAG;YACvC,IAAI,OAAO,CAAC,MAAM,uDAAuD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;YAChG,2DAA2D,CAC9D,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,KAAK,CACb,wDAAwD,EAAE,GAAG;QAC3D,IAAI,MAAM,CAAC,MAAM,yEAAyE;QAC1F,kGAAkG,CACrG,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,MAMjC;IACC,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IACnE,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC;IAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAClD,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IACtC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QACzD,MAAM,IAAI,KAAK,CAAC,uFAAuF,CAAC,CAAC;IAC3G,CAAC;IACD,MAAM,CAAC,GAAG,IAAI,uBAAuB,EAAE,CAAC;IACxC,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;IAClC,IAAI,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC;IAE/C,MAAM,aAAa,GAAG,MAAM,6BAA6B,CAAC;QACxD,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,IAAI,EAAE,YAAY;QAClB,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC,CAAC;IACH,IAAI,aAAa,CAAC,SAAS,EAAE,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,4DAA4D,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;QACnF,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IACvD,CAAC;IACD,YAAY,GAAG,aAAa,CAAC,IAAI,CAAC;IAElC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;YACrC,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE;gBACJ,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,YAAY,EAAE,MAAM,CAAC,YAAY;aAClC;SACF,CAAC,CAAC;QACH,qBAAqB,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;QAC7G,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;IACrE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,qBAAqB,CAAC;YACpB,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,OAAO,EAAE,YAAY;YACrB,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC;YAClB,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC,CAAC;QACH,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,YAAY,GAAyC;IAChE,EAAE,EAAE,iBAAiB;IACrB,IAAI,EAAE;QACJ,EAAE,EAAE,iBAAiB;QACrB,OAAO,EAAE,CAAC,iBAAiB,CAAC;QAC5B,KAAK,EAAE,QAAQ;QACf,cAAc,EAAE,oBAAoB;QACpC,QAAQ,EAAE,uCAAuC;QACjD,SAAS,EAAE,QAAQ;QACnB,KAAK,EAAE,oEAAoE;QAC3E,KAAK,EAAE,EAAE;KACV;IACD,YAAY,EAAE;QACZ,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,oBAAoB,EAAE,KAAK;YAC3B,UAAU,EAAE;gBACV,qBAAqB,EAAE;oBACrB,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,8CAA8C;iBAC5D;aACF;SACF;KACF;IACD,YAAY,EAAE;QACZ,SAAS,EAAE,CAAC,QAAQ,CAAC;QACrB,KAAK,EAAE,IAAI;QACX,cAAc,EAAE,IAAI;KACrB;IACD,SAAS,EAAE;QACT,8BAA8B,EAAE;YAC9B,QAAQ,EAAE,GAAG;YACb,MAAM,EAAE,IAAI;SACb;KACF;IACD,SAAS,EAAE;QACT,cAAc,EAAE;YACd,0FAA0F;YAC1F,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC;SACjD;KACF;IACD,WAAW,EAAE;QACX,gBAAgB,EAAE,GAAG,EAAE,CAAC;YACtB,yOAAyO;YACzO,sOAAsO;YACtO,uNAAuN;YACvN,giBAAgiB;YAChiB,2OAA2O;SAC5O;KACF;IACD,MAAM,EAAE,EAAE,cAAc,EAAE,CAAC,0BAA0B,CAAC,EAAE;IACxD,MAAM,EAAE;QACN,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,oBAAoB,CAAC,GAAG,CAAC;QAClD,cAAc,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,oBAAoB,CAAC,GAAG,EAAE,SAAS,CAAC;QACxE,8DAA8D;QAC9D,yEAAyE;QACzE,yEAAyE;QACzE,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,KAAK,KAAK,IAAI,OAAO,CAAC,SAAS,KAAK,OAAO,CAAC,SAAS;QAC5F,YAAY,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU;QAC7C,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YAC7B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC;KACH;IACD,QAAQ,EAAE;QACR,YAAY,EAAE,QAAQ;QACtB,cAAc,EAAE,IAAI;QACpB,gBAAgB,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,mCAAmC,CAAC,OAAO,CAAC;QAC/E,oBAAoB,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE;YAC1C,oCAAoC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACtB,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,wBAAwB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7E,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YACzD,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC;gBACtC,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,YAAY,EAAE,eAAe,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,EAAE,CAAC;aACzD,CAAC,CAAC;YACH,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACvB,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,wBAAwB,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7E,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YACzD,MAAM,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC;YAC3C,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;YAClD,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;YACtC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBACxB,IAAI,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;gBAChD,MAAM,IAAI,KAAK,CAAC,uFAAuF,CAAC,CAAC;YAC3G,CAAC;YAED,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;YAC9B,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;YAE1B,MAAM,aAAa,GAAG,MAAM,6BAA6B,CAAC;gBACxD,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,IAAI;gBACJ,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,QAAQ;aACT,CAAC,CAAC;YACH,IAAI,aAAa,CAAC,SAAS,EAAE,CAAC;gBAC5B,IAAI,CAAC,IAAI,CAAC,mDAAmD,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;gBACvE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;YACvD,CAAC;YACD,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC;YAE1B,IAAI,QAAQ,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;gBACrE,IAAI,QAAgB,CAAC;gBACrB,IAAI,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC9B,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;oBACtC,IAAI,CAAC,KAAK,CAAC,mCAAmC,QAAQ,EAAE,CAAC,CAAC;gBAC5D,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,KAAK,CAAC,0CAA0C,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;oBACjF,QAAQ,GAAG,MAAM,yBAAyB,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAC;oBAC9E,IAAI,CAAC,KAAK,CAAC,yCAAyC,QAAQ,EAAE,CAAC,CAAC;gBAClE,CAAC;gBACD,MAAM,YAAY,GAAG,eAAe,CAAC,gBAAgB,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC/D,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC;wBACvC,QAAQ;wBACR,EAAE,EAAE,GAAG,CAAC,EAAE;wBACV,IAAI;wBACJ,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE;wBACtE,UAAU,EAAE,OAAO,CAAC,UAAU;qBAC/B,CAAC,CAAC;oBACH,qBAAqB,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;oBAClG,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;gBACrE,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,qBAAqB,CAAC;wBACpB,EAAE,EAAE,GAAG,CAAC,EAAE;wBACV,OAAO,EAAE,IAAI;wBACb,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC;wBAClB,SAAS,EAAE,OAAO,CAAC,SAAS;qBAC7B,CAAC,CAAC;oBACH,MAAM,GAAG,CAAC;gBACZ,CAAC;YACH,CAAC;YAED,MAAM,YAAY,GAAG,eAAe,CAAC,gBAAgB,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/D,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC;oBACrC,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,IAAI;oBACJ,IAAI,EAAE;wBACJ,OAAO,EAAE,OAAO,CAAC,OAAO;wBACxB,KAAK,EAAE,OAAO,CAAC,KAAK;wBACpB,YAAY;qBACb;iBACF,CAAC,CAAC;gBACH,qBAAqB,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;gBAClG,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC;YACrE,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,qBAAqB,CAAC;oBACpB,EAAE,EAAE,GAAG,CAAC,EAAE;oBACV,OAAO,EAAE,IAAI;oBACb,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC;oBAClB,SAAS,EAAE,OAAO,CAAC,SAAS;iBAC7B,CAAC,CAAC;gBACH,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;KACF;IACD,MAAM,EAAE;QACN,cAAc,EAAE;YACd,SAAS,EAAE,EAAE;YACb,SAAS,EAAE,IAAI;YACf,aAAa,EAAE,IAAI;YACnB,cAAc,EAAE,IAAI;SACrB;QACD,mBAAmB,EAAE,GAAG,EAAE,CAAC,EAAE;QAC7B,mBAAmB,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;YACtC,UAAU,EAAE,QAAQ,CAAC,UAAU,IAAI,KAAK;YACxC,SAAS,EAAE,QAAQ,CAAC,SAAS,IAAI,IAAI;YACrC,aAAa,EAAE,QAAQ,CAAC,aAAa,IAAI,IAAI;YAC7C,cAAc,EAAE,QAAQ,CAAC,cAAc,IAAI,IAAI;SAChD,CAAC;QACF,oBAAoB,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;YAC/C,GAAG,OAAO;YACV,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,UAAU,EAAE,OAAO,CAAC,UAAU;SAC/B,CAAC;KACH;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE;YACpD,MAAM,OAAO,GAAG,oBAAoB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;YAErD,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE;gBAC1B,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;YACtB,CAAC,CAAC;YAEF,GAAG,CAAC,SAAS,CAAC,CAAC;YACf,MAAM,WAAW,GAAwB,MAAM,sBAAsB,CAAC;gBACpE,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,UAAU,EAAE,OAAO,CAAC,OAAO;gBAC3B,OAAO,EAAE,sBAAsB;gBAC/B,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;aAC1B,CAAC,CAAC;YAEH,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC;gBAC3B,MAAM,CAAC,IAAI,CAAC,+CAA+C,OAAO,CAAC,SAAS,YAAY,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC/G,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACvC,CAAC;YAED,GAAG,CAAC,yBAAyB,CAAC,CAAC;YAC/B,MAAM,aAAa,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAE3C,MAAM,cAAc,GAAG,OAAO,CAAC;YAC/B,GAAG,CAAC,eAAe,CAAC,CAAC;YAErB,MAAM,UAAU,GAAuB,MAAM,kBAAkB,CAAC;gBAC9D,UAAU,EAAE,WAAW,CAAC,UAAU;gBAClC,UAAU,EAAE,OAAO,CAAC,OAAO;gBAC3B,SAAS,EAAE,cAAc;gBACzB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC;gBACzB,OAAO,EAAE,sBAAsB;aAChC,CAAC,CAAC;YAEH,IAAI,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;gBACxE,IAAI,CAAC;oBACH,0EAA0E;oBAC1E,uEAAuE;oBACvE,wEAAwE;oBACxE,MAAM,EAAE,OAAO,EAAE,GAAG,0BAA0B,CAAC;wBAC7C,YAAY,EAAE,UAAU,CAAC,SAAS;wBAClC,KAAK,EAAE,UAAU,CAAC,QAAQ;wBAC1B,OAAO,EAAE,UAAU,CAAC,OAAO;wBAC3B,MAAM,EAAE,UAAU,CAAC,MAAM;wBACzB,kBAAkB,EAAE,OAAO,CAAC,SAAS;wBACrC,oBAAoB,EAAE,4BAA4B;qBACnD,CAAC,CAAC;oBACH,KAAK,0BAA0B,EAAE,CAAC;oBAClC,GAAG,CACD,OAAO;wBACL,CAAC,CAAC,8CAA8C;wBAChD,CAAC,CAAC,uBAAuB,CAC5B,CAAC;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,KAAK,CAAC,+CAA+C,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC3E,GAAG,CAAC,iBAAiB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACpC,MAAM,GAAG,CAAC;gBACZ,CAAC;YACH,CAAC;iBAAM,IAAI,UAAU,CAAC,gBAAgB,EAAE,CAAC;gBACvC,0EAA0E;gBAC1E,kEAAkE;gBAClE,kEAAkE;gBAClE,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,0BAA0B,CAAC;wBAC1C,kBAAkB,EAAE,OAAO,CAAC,SAAS;wBACrC,oBAAoB,EAAE,4BAA4B;qBACnD,CAAC,CAAC;oBACH,IAAI,QAAQ,EAAE,CAAC;wBACb,KAAK,0BAA0B,EAAE,CAAC;wBAClC,GAAG,CAAC,iCAAiC,CAAC,CAAC;wBACvC,MAAM,CAAC,IAAI,CAAC,oEAAoE,CAAC,CAAC;oBACpF,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;oBACpE,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,KAAK,CAAC,0DAA0D,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACtF,GAAG,CAAC,OAAO,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC1B,MAAM,GAAG,CAAC;gBACZ,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,CAAC,8CAA8C,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;gBAChF,2BAA2B;gBAC3B,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;KACF;IACD,OAAO,EAAE;QACP,YAAY,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YAC1B,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;YACnC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,MAAM,CAAC,IAAI,CAAC,2DAA2D,CAAC,CAAC;gBACzE,OAAO;YACT,CAAC;YACD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;YAC5B,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC;YACzD,0EAA0E;YAC1E,6DAA6D;YAC7D,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACpC,MAAM,CAAC,IAAI,CAAC,kFAAkF,CAAC,CAAC;gBAChG,GAAG,CAAC,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gBAClE,OAAO;YACT,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAC3C,IAAI,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;YAClD,oBAAoB,CAAC,SAAS,CAAC,CAAC;YAChC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;YAErC,GAAG,CAAC,SAAS,EAAE,CAAC;gBACd,SAAS,EAAE,SAAS;gBACpB,OAAO,EAAE,IAAI;gBACb,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;gBACvB,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;aACxB,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;gBACxB,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;gBACrC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,CACd,IAAI,SAAS,iFAAiF,CAC/F,CAAC;gBACF,GAAG,CAAC,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC1D,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;YAC1D,CAAC;YAED,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,+BAA+B,gBAAgB,GAAG,CAAC,CAAC;YAEjF,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC;oBAC7B,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,KAAK,EAAE,OAAO,CAAC,KAAK;iBACrB,CAAC,CAAC;gBACH,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;oBAC7C,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,CAAC,GAAG,WAAW,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,CAAC;gBACxE,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,IAAI,CAAC,gDAAgD,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC3E,CAAC;YAED,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YACtC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,SAAS,kBAAkB,OAAO,EAAE,CAAC,CAAC;YAE1D,yFAAyF;YACzF,qFAAqF;YACrF,wEAAwE;YACxE,IAAI,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC;gBACxB,MAAM,GAAG,GAAG,2EAA2E,CAAC;gBACxF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAChB,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC,CAAC;gBAC1C,GAAG,CAAC,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;gBAC1D,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;YAED,MAAM,EAAE,qBAAqB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;YACvE,OAAO,qBAAqB,CAAC;gBAC3B,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,SAAS,EAAE,SAAS;gBACpB,cAAc,EAAE,OAAO,CAAC,OAAO,IAAI,SAAS;gBAC5C,MAAM,EAAE,GAAG,CAAC,GAAG;gBACf,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,cAAc,EAAE,GAAG,CAAC,cAAqD;gBACzE,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,SAAS,EAAE,GAAG,CAAC,SAAS;aACzB,CAAC,CAAC;QACL,CAAC;QACD,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;YACzB,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;YAC5B,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC;YACzD,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACpC,MAAM,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;gBAClE,OAAO;YACT,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAC3C,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;gBAClD,IAAI,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAC;gBAChF,OAAO;YACT,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC;oBAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,KAAK,EAAE,OAAO,CAAC,KAAK;iBACrB,CAAC,CAAC;gBACH,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC;oBAC7C,IAAI,CAAC,IAAI,CAAC,mBAAmB,IAAI,CAAC,GAAG,WAAW,IAAI,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC,CAAC;gBACvE,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,IAAI,CAAC,gDAAgD,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC3E,CAAC;QACH,CAAC;QACD,gBAAgB,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;YACxD,4FAA4F;YAC5F,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACtE,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpF,MAAM,MAAM,GAAwB,MAAM,sBAAsB,CAAC;gBAC/D,SAAS,EAAE,SAAS,IAAI,SAAS;gBACjC,UAAU,EAAE,YAAY,IAAI,gBAAgB;gBAC5C,OAAO,EAAE,sBAAsB;gBAC/B,KAAK;gBACL,OAAO;aACR,CAAC,CAAC;YACH,uEAAuE;YACvE,OAAO;gBACL,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,UAAU,EAAE,MAAM,CAAC,UAAU;aACa,CAAC;QAC/C,CAAC;QACD,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;YAChC,0FAA0F;YAC1F,MAAM,UAAU,GAAI,MAAkC,CAAC,UAAU,IAAI,MAAM,CAAC,SAAS,IAAI,EAAE,CAAC;YAC5F,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,uBAAuB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACpF,MAAM,YAAY,GAAG,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpF,MAAM,MAAM,GAAuB,MAAM,kBAAkB,CAAC;gBAC1D,UAAU;gBACV,UAAU,EAAE,YAAY,IAAI,gBAAgB;gBAC5C,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B,CAAC,CAAC;YAEH,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBAC5D,IAAI,CAAC;oBACH,MAAM,EAAE,OAAO,EAAE,GAAG,0BAA0B,CAAC;wBAC7C,YAAY,EAAE,MAAM,CAAC,SAAS;wBAC9B,KAAK,EAAE,MAAM,CAAC,QAAQ;wBACtB,OAAO,EAAE,MAAM,CAAC,OAAO;wBACvB,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,kBAAkB,EAAE,MAAM,CAAC,SAAS;wBACpC,oBAAoB,EAAE,4BAA4B;qBACnD,CAAC,CAAC;oBACH,KAAK,0BAA0B,EAAE,CAAC;oBAClC,MAAM,CAAC,IAAI,CACT,OAAO;wBACL,CAAC,CAAC,wDAAwD;wBAC1D,CAAC,CAAC,wDAAwD,CAC7D,CAAC;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,KAAK,CAAC,oDAAoD,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAChF,MAAM,GAAG,CAAC;gBACZ,CAAC;YACH,CAAC;iBAAM,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;gBACnC,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,0BAA0B,CAAC;wBAC1C,kBAAkB,EAAE,MAAM,CAAC,SAAS;wBACpC,oBAAoB,EAAE,4BAA4B;qBACnD,CAAC,CAAC;oBACH,IAAI,QAAQ,EAAE,CAAC;wBACb,KAAK,0BAA0B,EAAE,CAAC;wBAClC,MAAM,CAAC,IAAI,CAAC,yEAAyE,CAAC,CAAC;oBACzF,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,CAAC,KAAK,CAAC,+DAA+D,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBAC3F,MAAM,GAAG,CAAC;gBACZ,CAAC;YACH,CAAC;YAED,OAAO;gBACL,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC;gBAC/D,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,SAAS,EAAE,MAAM,CAAC,SAAS;aACe,CAAC;QAC/C,CAAC;KACF;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/channel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,46 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { buildJsonChannelConfigSchema } from "openclaw/plugin-sdk/channel-config-schema";
|
|
2
2
|
import { CDN_BASE_URL, DEFAULT_BASE_URL } from "../auth/accounts.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
name:
|
|
8
|
-
enabled:
|
|
9
|
-
baseUrl:
|
|
10
|
-
cdnBaseUrl:
|
|
11
|
-
routeTag:
|
|
12
|
-
}
|
|
3
|
+
const routeTagSchema = {
|
|
4
|
+
anyOf: [{ type: "number" }, { type: "string" }],
|
|
5
|
+
};
|
|
6
|
+
const weixinAccountProperties = {
|
|
7
|
+
name: { type: "string" },
|
|
8
|
+
enabled: { type: "boolean" },
|
|
9
|
+
baseUrl: { type: "string", default: DEFAULT_BASE_URL },
|
|
10
|
+
cdnBaseUrl: { type: "string", default: CDN_BASE_URL },
|
|
11
|
+
routeTag: { type: "number" },
|
|
12
|
+
};
|
|
13
|
+
const weixinAccountSchema = {
|
|
14
|
+
type: "object",
|
|
15
|
+
additionalProperties: true,
|
|
16
|
+
properties: weixinAccountProperties,
|
|
17
|
+
};
|
|
18
|
+
const botAgentSchema = {
|
|
19
|
+
type: "string",
|
|
20
|
+
description: "Self-declared bot_agent identifier for backend observability.",
|
|
21
|
+
};
|
|
22
|
+
const replyProgressMessagesSchema = {
|
|
23
|
+
type: "boolean",
|
|
24
|
+
default: true,
|
|
25
|
+
description: "Send structured tool-call progress messages.",
|
|
26
|
+
};
|
|
13
27
|
/** Top-level weixin config schema (token is stored in credentials file, not config). */
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
28
|
+
const weixinChannelConfigJsonSchema = {
|
|
29
|
+
type: "object",
|
|
30
|
+
additionalProperties: true,
|
|
31
|
+
properties: {
|
|
32
|
+
...weixinAccountProperties,
|
|
33
|
+
// Section-level routing also accepts the string form read by loadConfigRouteTag.
|
|
34
|
+
routeTag: routeTagSchema,
|
|
35
|
+
accounts: {
|
|
36
|
+
type: "object",
|
|
37
|
+
additionalProperties: weixinAccountSchema,
|
|
38
|
+
},
|
|
39
|
+
botAgent: botAgentSchema,
|
|
40
|
+
replyProgressMessages: replyProgressMessagesSchema,
|
|
41
|
+
/** ISO 8601; bumped on each successful login to refresh gateway config from disk. */
|
|
42
|
+
channelConfigUpdatedAt: { type: "string" },
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
export const WeixinChannelConfigSchema = buildJsonChannelConfigSchema(weixinChannelConfigJsonSchema);
|
|
20
46
|
//# sourceMappingURL=config-schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-schema.js","sourceRoot":"","sources":["../../../src/config/config-schema.ts"],"names":[],"mappings":"AAAA,OAAO,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;CACpB,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,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,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,6 @@
|
|
|
1
1
|
# Architecture
|
|
2
2
|
|
|
3
|
-
[简体中文](
|
|
3
|
+
[简体中文](../zh-CN/architecture.md)
|
|
4
4
|
|
|
5
5
|
`openclaw-weixin` adapts the Weixin HTTP/CDN protocol to the OpenClaw channel
|
|
6
6
|
runtime. The plugin owns login, account state, long polling, message conversion,
|
|
@@ -8,7 +8,7 @@ and outbound media transfer. OpenClaw owns routing, sessions, command
|
|
|
8
8
|
authorization, reply generation, hooks, and the unified media store.
|
|
9
9
|
|
|
10
10
|
The wire-level endpoint and message shapes are documented in the
|
|
11
|
-
[backend API protocol](./backend-
|
|
11
|
+
[backend API protocol](./backend-api.md).
|
|
12
12
|
|
|
13
13
|
## Component map
|
|
14
14
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# Backend API Protocol
|
|
2
2
|
|
|
3
|
-
[Back to detailed guide](./
|
|
4
|
-
[简体中文](
|
|
3
|
+
[Back to detailed guide](./guide.md) |
|
|
4
|
+
[简体中文](../zh-CN/backend-api.md)
|
|
5
5
|
|
|
6
6
|
This document covers every Weixin backend endpoint used by the plugin for QR
|
|
7
7
|
login, lifecycle notifications, messaging, and media. The two QR login requests
|
|
@@ -37,7 +37,7 @@ not. The message examples below omit it for readability.
|
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
`bot_agent` is for observability only. Its supported format and configuration
|
|
40
|
-
are documented in the [detailed guide](./
|
|
40
|
+
are documented in the [detailed guide](./guide.md#custom-botagent-optional).
|
|
41
41
|
|
|
42
42
|
## Endpoint List
|
|
43
43
|
|
|
@@ -71,6 +71,12 @@ Content-Type: application/json
|
|
|
71
71
|
}
|
|
72
72
|
```
|
|
73
73
|
|
|
74
|
+
`local_token_list` contains up to 10 local `bot_token` values from the most
|
|
75
|
+
recently registered accounts; it is empty when no local credentials exist. The
|
|
76
|
+
backend uses the list to recognize bots already bound to this OpenClaw and may
|
|
77
|
+
respond with `binded_redirect`. Every token in the list is sensitive; never put
|
|
78
|
+
a real value in logs or examples.
|
|
79
|
+
|
|
74
80
|
The response contains an opaque `qrcode` identifier and
|
|
75
81
|
`qrcode_img_content`, the URL rendered as the QR code. Poll
|
|
76
82
|
`GET /ilink/bot/get_qrcode_status?qrcode=<opaque-id>` until it reaches a
|
|
@@ -169,8 +175,11 @@ Send a message to a user.
|
|
|
169
175
|
|
|
170
176
|
## getUploadUrl
|
|
171
177
|
|
|
172
|
-
Get CDN upload pre-signed parameters. Call this endpoint before uploading a
|
|
173
|
-
|
|
178
|
+
Get CDN upload pre-signed parameters. Call this endpoint before uploading a
|
|
179
|
+
file; clients prefer `upload_full_url` and otherwise use `upload_param`.
|
|
180
|
+
`thumb_upload_param` may be returned only when a thumbnail is requested. The
|
|
181
|
+
current plugin always sends `no_need_thumb: true`, uploads only the original
|
|
182
|
+
media, and neither requests nor uses thumbnail upload parameters.
|
|
174
183
|
|
|
175
184
|
**Request body:**
|
|
176
185
|
|
|
@@ -335,13 +344,15 @@ AES-128-ECB encryption:
|
|
|
335
344
|
|
|
336
345
|
1. Calculate the file's plaintext size, MD5, and ciphertext size after
|
|
337
346
|
AES-128-ECB encryption
|
|
338
|
-
2.
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
`thumb_upload_param`)
|
|
342
|
-
4. Encrypt the file content with AES-128-ECB and `POST` it to the CDN URL as
|
|
347
|
+
2. Call `getUploadUrl` with `no_need_thumb: true`
|
|
348
|
+
3. Prefer `upload_full_url`; otherwise construct the CDN URL from `upload_param`
|
|
349
|
+
4. Encrypt the original media with AES-128-ECB and `POST` it to the CDN URL as
|
|
343
350
|
`application/octet-stream`
|
|
344
|
-
5.
|
|
345
|
-
6. Read `x-encrypted-param` from the CDN response and use it as
|
|
351
|
+
5. Read `x-encrypted-param` from the CDN response and use it as
|
|
346
352
|
`encrypt_query_param` in the `CDNMedia` reference
|
|
347
|
-
|
|
353
|
+
6. Include the reference in the `MessageItem` and send
|
|
354
|
+
|
|
355
|
+
The protocol also defines `thumb_rawsize`, `thumb_rawfilemd5`,
|
|
356
|
+
`thumb_filesize`, and `thumb_upload_param` for implementations that set
|
|
357
|
+
`no_need_thumb: false` and upload a thumbnail. The current plugin does not enter
|
|
358
|
+
that branch.
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# Community and Tencent distributions
|
|
2
|
+
|
|
3
|
+
[Back to overview](https://openclaw-weixin.newfuture.cc/en/) |
|
|
4
|
+
[简体中文](https://openclaw-weixin.newfuture.cc/distributions.html)
|
|
5
|
+
|
|
6
|
+
This project is a community-maintained distribution of
|
|
7
|
+
[Tencent/openclaw-weixin](https://github.com/Tencent/openclaw-weixin); Tencent's
|
|
8
|
+
official npm package is `@tencent-weixin/openclaw-weixin`. This project is
|
|
9
|
+
maintained and published independently and is not an official Tencent or WeChat
|
|
10
|
+
release. Both distributions use the same WeChat backend protocol and
|
|
11
|
+
`openclaw-weixin` internal identity. The main differences are their publication
|
|
12
|
+
sources and how fixes, new features, and security updates are incorporated.
|
|
13
|
+
|
|
14
|
+
- **Shipped community fixes:** On top of Tencent upstream, this distribution
|
|
15
|
+
includes inbound replay deduplication, per-agent inbound media isolation,
|
|
16
|
+
stable multi-account aliases, case-insensitive context-token user IDs, and
|
|
17
|
+
explicit failure instead of false success when a context token is missing. See
|
|
18
|
+
the [community changelog](https://openclaw-weixin.newfuture.cc/en/changelog.html)
|
|
19
|
+
for the first release of each change.
|
|
20
|
+
- **Explicit compatibility boundaries:** The minimum supported host and
|
|
21
|
+
recommended development host are both validated, and a precompiled runtime is
|
|
22
|
+
published to reduce uncertainty from host upgrades and install-time
|
|
23
|
+
compilation.
|
|
24
|
+
- **Flexible installation and migration:** The same community implementation is
|
|
25
|
+
available from npm and ClawHub. It retains Tencent's plugin, channel, and state
|
|
26
|
+
ID, allowing an in-place replacement that preserves configuration and login
|
|
27
|
+
state.
|
|
28
|
+
- **Transparent maintenance:** Bilingual documentation and changelogs are paired
|
|
29
|
+
with an [upstream intake tracker](https://github.com/NewFuture/openclaw-weixin/issues/36)
|
|
30
|
+
that distinguishes Tencent-side status, community inclusion, and release
|
|
31
|
+
status.
|
|
32
|
+
|
|
33
|
+
Current capabilities include direct chats, text and media transfer, QR login,
|
|
34
|
+
and multiple accounts.
|
|
35
|
+
|
|
36
|
+
> **Name compatibility:** `openclaw-wechat` is the ClawHub package name and
|
|
37
|
+
> channel compatibility alias; `openclaw-weixin` remains the canonical
|
|
38
|
+
> plugin/channel ID. On OpenClaw 2026.7.1 and later,
|
|
39
|
+
> `--channel openclaw-wechat` selects the same channel; earlier supported hosts
|
|
40
|
+
> must continue to use `openclaw-weixin`. Plugin enable/disable commands, config,
|
|
41
|
+
> and state paths always use `openclaw-weixin`.
|
|
@@ -80,6 +80,45 @@ authentication or routing. All registered agents on this plugin instance
|
|
|
80
80
|
currently share the same `botAgent` declaration; per-agent overrides may be
|
|
81
81
|
added in a future version if needed.
|
|
82
82
|
|
|
83
|
+
## Tool-call progress messages (optional)
|
|
84
|
+
|
|
85
|
+
`replyProgressMessages` defaults to `true`. While the model calls tools, the
|
|
86
|
+
plugin sends structured `TOOL_CALL_START` and `TOOL_CALL_RESULT` progress
|
|
87
|
+
messages. Disable these extra messages in `openclaw.json` if they are not
|
|
88
|
+
wanted:
|
|
89
|
+
|
|
90
|
+
```json
|
|
91
|
+
{
|
|
92
|
+
"channels": {
|
|
93
|
+
"openclaw-weixin": {
|
|
94
|
+
"replyProgressMessages": false
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
Setting it to `false` suppresses only tool-call progress messages. It does not
|
|
101
|
+
disable the final reply or ordinary text and media messages.
|
|
102
|
+
|
|
103
|
+
## Proactive and scheduled sends
|
|
104
|
+
|
|
105
|
+
The WeChat backend requires every outbound message to carry an account-scoped
|
|
106
|
+
context token issued by an inbound message from that recipient. The plugin
|
|
107
|
+
stores the token under the receiving account.
|
|
108
|
+
|
|
109
|
+
- If the recipient has not messaged the bot or the token is missing, the plugin
|
|
110
|
+
refuses delivery instead of returning a local success result.
|
|
111
|
+
- A stored token can still become stale. If a send fails after a long idle
|
|
112
|
+
period, ask the recipient to message the corresponding bot once to refresh
|
|
113
|
+
the token, then retry.
|
|
114
|
+
- Scheduled jobs in multi-account deployments should explicitly set both
|
|
115
|
+
`delivery.to` and `delivery.accountId`. Without `accountId`, delivery proceeds
|
|
116
|
+
only when account-scoped context selects exactly one account; missing or
|
|
117
|
+
ambiguous context fails.
|
|
118
|
+
|
|
119
|
+
Context tokens are sensitive: never copy them between accounts, put them in job
|
|
120
|
+
configuration, or share their state files.
|
|
121
|
+
|
|
83
122
|
## Uninstall
|
|
84
123
|
|
|
85
124
|
> [!WARNING]
|
|
@@ -120,5 +159,6 @@ openclaw channels status --probe
|
|
|
120
159
|
|
|
121
160
|
## Developer Documentation
|
|
122
161
|
|
|
162
|
+
- [Community and Tencent distributions](https://openclaw-weixin.newfuture.cc/en/distributions.html)
|
|
123
163
|
- [Backend API protocol](https://openclaw-weixin.newfuture.cc/en/backend-api.html)
|
|
124
164
|
- [Architecture](https://openclaw-weixin.newfuture.cc/en/architecture.html)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 后端 API 协议
|
|
2
2
|
|
|
3
|
-
[返回详细指南](./guide.md) | [English](
|
|
3
|
+
[返回详细指南](./guide.md) | [English](../en/backend-api.md)
|
|
4
4
|
|
|
5
5
|
本文档覆盖插件用于扫码登录、生命周期通知、消息和媒体的全部微信后端接口。两个扫码
|
|
6
6
|
登录请求始终使用腾讯固定服务;账号登录后 `baseurl` 指定的后端需要实现生命周期、
|
|
@@ -67,6 +67,10 @@ Content-Type: application/json
|
|
|
67
67
|
}
|
|
68
68
|
```
|
|
69
69
|
|
|
70
|
+
`local_token_list` 最多包含账号索引中最近注册的 10 个本地 `bot_token`;没有本地凭据
|
|
71
|
+
时为空。后端用它识别已绑定到当前 OpenClaw 的 bot,并可能返回
|
|
72
|
+
`binded_redirect`。列表中的 token 均属敏感信息,不要在日志或示例中使用真实值。
|
|
73
|
+
|
|
70
74
|
响应包含不透明的 `qrcode` 标识,以及用于生成二维码的 URL
|
|
71
75
|
`qrcode_img_content`。随后轮询
|
|
72
76
|
`GET /ilink/bot/get_qrcode_status?qrcode=<opaque-id>`,直到进入终止状态。遇到
|
|
@@ -163,8 +167,10 @@ Content-Type: application/json
|
|
|
163
167
|
|
|
164
168
|
## getUploadUrl
|
|
165
169
|
|
|
166
|
-
获取 CDN
|
|
167
|
-
`
|
|
170
|
+
获取 CDN 上传预签名参数。上传文件前需先调用此接口;客户端优先使用
|
|
171
|
+
`upload_full_url`,否则使用 `upload_param`。仅在请求缩略图时才可能返回
|
|
172
|
+
`thumb_upload_param`。当前插件始终传入 `no_need_thumb: true`,只上传原始媒体,
|
|
173
|
+
不请求或使用缩略图上传参数。
|
|
168
174
|
|
|
169
175
|
**请求体:**
|
|
170
176
|
|
|
@@ -327,12 +333,14 @@ Content-Type: application/json
|
|
|
327
333
|
## CDN 上传流程
|
|
328
334
|
|
|
329
335
|
1. 计算文件明文大小、MD5,以及 AES-128-ECB 加密后的密文大小
|
|
330
|
-
2.
|
|
331
|
-
3.
|
|
332
|
-
|
|
333
|
-
4. 使用 AES-128-ECB 加密文件内容,以 `application/octet-stream` 通过 `POST`
|
|
336
|
+
2. 调用 `getUploadUrl`,并传入 `no_need_thumb: true`
|
|
337
|
+
3. 优先使用 `upload_full_url`,否则通过 `upload_param` 构造 CDN URL
|
|
338
|
+
4. 使用 AES-128-ECB 加密原始媒体,以 `application/octet-stream` 通过 `POST`
|
|
334
339
|
上传到 CDN URL
|
|
335
|
-
5.
|
|
336
|
-
6. 从 CDN 响应读取 `x-encrypted-param`,作为 `CDNMedia` 引用中的
|
|
340
|
+
5. 从 CDN 响应读取 `x-encrypted-param`,作为 `CDNMedia` 引用中的
|
|
337
341
|
`encrypt_query_param`
|
|
338
|
-
|
|
342
|
+
6. 将引用放入 `MessageItem` 后发送
|
|
343
|
+
|
|
344
|
+
协议还定义了 `thumb_rawsize`、`thumb_rawfilemd5`、`thumb_filesize` 和
|
|
345
|
+
`thumb_upload_param`,供设置 `no_need_thumb: false` 的实现上传缩略图;当前插件
|
|
346
|
+
不会进入该分支。
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# 社区版与腾讯版
|
|
2
|
+
|
|
3
|
+
[返回概览](https://openclaw-weixin.newfuture.cc/) |
|
|
4
|
+
[English](https://openclaw-weixin.newfuture.cc/en/distributions.html)
|
|
5
|
+
|
|
6
|
+
本项目是 [Tencent/openclaw-weixin](https://github.com/Tencent/openclaw-weixin) 的
|
|
7
|
+
社区维护发行版;腾讯官方 npm 包是 `@tencent-weixin/openclaw-weixin`。本项目由社区
|
|
8
|
+
独立维护和发布,不是腾讯或微信官方版本。两者使用相同的微信后端协议及
|
|
9
|
+
`openclaw-weixin` 内部标识,差异主要在发布来源、修复纳入和新功能支持以及安全更新。
|
|
10
|
+
|
|
11
|
+
- **已发布的社区修复:** 在腾讯上游基础上,已加入入站重放去重、按 Agent 隔离入站
|
|
12
|
+
媒体、稳定多账号别名、context token 用户 ID 大小写兼容,以及缺少 context token
|
|
13
|
+
时拒绝“假成功”;具体首发版本见[社区变更日志](https://openclaw-weixin.newfuture.cc/changelog.html)。
|
|
14
|
+
- **明确的兼容边界:** 同时验证最低支持宿主与推荐开发宿主,并发布预编译运行时,
|
|
15
|
+
减少宿主升级或安装期编译带来的不确定性。
|
|
16
|
+
- **灵活的安装与迁移:** 同一套社区实现提供 npm 和 ClawHub 两个安装源,并沿用腾讯版的
|
|
17
|
+
插件、Channel 和状态 ID,可原位替换并保留现有配置与登录状态。
|
|
18
|
+
- **透明的维护过程:** 提供中英文文档与变更日志,并在
|
|
19
|
+
[上游合入跟踪](https://github.com/NewFuture/openclaw-weixin/issues/36)中区分腾讯侧
|
|
20
|
+
状态、社区版合入和正式发布。
|
|
21
|
+
|
|
22
|
+
当前能力包括微信私聊、文本与媒体收发、扫码登录和多账号。
|
|
23
|
+
|
|
24
|
+
> **名称兼容:** `openclaw-wechat` 是 ClawHub 包名及 channel 兼容别名,
|
|
25
|
+
> `openclaw-weixin` 仍是规范 plugin/channel ID。在 OpenClaw 2026.7.1 及以上版本,
|
|
26
|
+
> 可以使用 `--channel openclaw-wechat` 选择同一 channel;较早的受支持宿主仍需使用
|
|
27
|
+
> `openclaw-weixin`。插件启停命令、配置和状态路径始终使用 `openclaw-weixin`。
|
|
@@ -69,6 +69,39 @@
|
|
|
69
69
|
已注册的 agent 共享同一个 `botAgent` 声明;如有需要按 agent 单独标识的场景,
|
|
70
70
|
可在后续版本扩展配置。
|
|
71
71
|
|
|
72
|
+
## 工具调用进度消息(可选)
|
|
73
|
+
|
|
74
|
+
`replyProgressMessages` 默认为 `true`。模型调用工具时,插件会发送结构化的
|
|
75
|
+
`TOOL_CALL_START` 和 `TOOL_CALL_RESULT` 进度消息。若不希望显示这些额外消息,可在
|
|
76
|
+
`openclaw.json` 中关闭:
|
|
77
|
+
|
|
78
|
+
```json
|
|
79
|
+
{
|
|
80
|
+
"channels": {
|
|
81
|
+
"openclaw-weixin": {
|
|
82
|
+
"replyProgressMessages": false
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
设为 `false` 只会停止工具调用进度消息,不会关闭最终回复或普通文本与媒体消息。
|
|
89
|
+
|
|
90
|
+
## 主动与定时发送
|
|
91
|
+
|
|
92
|
+
微信后端要求每条出站消息携带由该收件人入站消息下发的账号级 context token。插件收到
|
|
93
|
+
消息后会按账号保存该 token。
|
|
94
|
+
|
|
95
|
+
- 尚未收到该收件人的消息或 token 缺失时,插件会拒绝发送消息,不会返回本地“成功”
|
|
96
|
+
结果。
|
|
97
|
+
- 已保存的 token 仍可能失效;长时间无交互后发送失败时,请让收件人先向对应 bot
|
|
98
|
+
发送一条消息以刷新 token,再重试。
|
|
99
|
+
- 多账号部署的定时任务应同时显式设置 `delivery.to` 和 `delivery.accountId`。未指定
|
|
100
|
+
`accountId` 时,只有恰好能从账号级上下文选出一个账号才会发送;缺失或歧义都会
|
|
101
|
+
失败。
|
|
102
|
+
|
|
103
|
+
context token 属于敏感数据,不要跨账号复制、写入任务配置或分享状态文件。
|
|
104
|
+
|
|
72
105
|
## 卸载
|
|
73
106
|
|
|
74
107
|
> [!WARNING]
|
|
@@ -105,5 +138,6 @@ openclaw channels status --probe
|
|
|
105
138
|
|
|
106
139
|
## 开发者文档
|
|
107
140
|
|
|
141
|
+
- [社区版与腾讯版](https://openclaw-weixin.newfuture.cc/distributions.html)
|
|
108
142
|
- [后端 API 协议](https://openclaw-weixin.newfuture.cc/backend-api.html)
|
|
109
143
|
- [架构说明](https://openclaw-weixin.newfuture.cc/architecture.html)
|
package/index.ts
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
import { buildChannelConfigSchema } from "openclaw/plugin-sdk/channel-config-schema";
|
|
2
1
|
import type { OpenClawPluginApi } from "openclaw/plugin-sdk/plugin-entry";
|
|
3
2
|
|
|
4
3
|
import { weixinPlugin } from "./src/channel.js";
|
|
5
4
|
import { assertHostCompatibility } from "./src/compat.js";
|
|
6
|
-
import {
|
|
5
|
+
import { WeixinChannelConfigSchema } from "./src/config/config-schema.js";
|
|
7
6
|
|
|
8
7
|
export default {
|
|
9
8
|
id: "openclaw-weixin",
|
|
10
9
|
name: "WeChat",
|
|
11
10
|
description: "Community-maintained WeChat (Weixin) channel plugin for OpenClaw using the iLink bot API.",
|
|
12
|
-
configSchema:
|
|
11
|
+
configSchema: WeixinChannelConfigSchema,
|
|
13
12
|
register(api: OpenClawPluginApi) {
|
|
14
13
|
// Fail-fast: reject incompatible host versions before any side-effects.
|
|
15
14
|
assertHostCompatibility(api.runtime?.version);
|
package/openclaw.plugin.json
CHANGED
|
@@ -3,13 +3,24 @@
|
|
|
3
3
|
"name": "WeChat",
|
|
4
4
|
"description": "Community-maintained WeChat (Weixin) channel plugin for OpenClaw using the iLink bot API.",
|
|
5
5
|
"icon": "https://openclaw-weixin.newfuture.cc/logo.svg",
|
|
6
|
-
"version": "3.1.
|
|
6
|
+
"version": "3.1.5",
|
|
7
7
|
"channels": ["openclaw-weixin"],
|
|
8
8
|
"channelConfigs": {
|
|
9
9
|
"openclaw-weixin": {
|
|
10
10
|
"schema": {
|
|
11
11
|
"type": "object",
|
|
12
|
-
"additionalProperties": true
|
|
12
|
+
"additionalProperties": true,
|
|
13
|
+
"properties": {
|
|
14
|
+
"botAgent": {
|
|
15
|
+
"type": "string",
|
|
16
|
+
"description": "Self-declared bot_agent identifier for backend observability."
|
|
17
|
+
},
|
|
18
|
+
"replyProgressMessages": {
|
|
19
|
+
"type": "boolean",
|
|
20
|
+
"default": true,
|
|
21
|
+
"description": "Send structured tool-call progress messages."
|
|
22
|
+
}
|
|
23
|
+
}
|
|
13
24
|
},
|
|
14
25
|
"label": "WeChat",
|
|
15
26
|
"description": "Weixin channel configuration."
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openclaw-weixin",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.5",
|
|
4
4
|
"description": "Community-maintained WeChat (Weixin) channel plugin for OpenClaw using the iLink bot API.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Tencent",
|
|
@@ -28,6 +28,12 @@
|
|
|
28
28
|
"openclaw.plugin.json",
|
|
29
29
|
"dist/",
|
|
30
30
|
"docs/",
|
|
31
|
+
"!docs/CONTRIBUTING.md",
|
|
32
|
+
"!docs/SECURITY.md",
|
|
33
|
+
"!docs/en/release.md",
|
|
34
|
+
"!docs/zh-CN/contributing.md",
|
|
35
|
+
"!docs/zh-CN/release.md",
|
|
36
|
+
"!docs/zh-CN/security.md",
|
|
31
37
|
"README.md",
|
|
32
38
|
"README_EN.md",
|
|
33
39
|
"README.zh_CN.md",
|
|
@@ -59,7 +65,7 @@
|
|
|
59
65
|
"prepublishOnly": "npm run check:static && npm test"
|
|
60
66
|
},
|
|
61
67
|
"engines": {
|
|
62
|
-
"node": ">=22.22.3
|
|
68
|
+
"node": ">=22.22.3"
|
|
63
69
|
},
|
|
64
70
|
"dependencies": {
|
|
65
71
|
"qrcode-terminal": "0.12.0"
|