makecoder 2.0.72 → 2.0.77
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/dist/cc.mjs +2252 -2280
- package/dist/coder.js +42 -84
- package/dist/gemini/{chunk-742OPB22.js → chunk-5NLMIA5F.js} +2 -2
- package/dist/gemini/{chunk-LJWQXOG6.js → chunk-ERSD2JN4.js} +2 -2
- package/dist/gemini/{chunk-YTXPXB3F.js → chunk-RINXQT6K.js} +2 -2
- package/dist/gemini/{chunk-CN5ZY54S.js → chunk-YYIHO5TB.js} +2 -2
- package/dist/gemini/{core-CQOMB6GX.js → core-QJQCNUBM.js} +1 -1
- package/dist/gemini/{devtoolsService-LPWJ7GXG.js → devtoolsService-6N7SRZYV.js} +2 -2
- package/dist/gemini/{devtoolsService-JSKAKMKA.js → devtoolsService-F37ICBM5.js} +2 -2
- package/dist/gemini/{dist-MMPCC5OA.js → dist-RUT7TWHF.js} +1 -1
- package/dist/gemini/gemini.js +4 -4
- package/dist/gemini/{interactiveCli-457SCMEA.js → interactiveCli-F5Z22JJJ.js} +2 -2
- package/dist/gemini/{interactiveCli-XB5DZLWK.js → interactiveCli-T7HAFJKN.js} +2 -2
- package/dist/gemini/{oauth2-provider-ZNP4J6EF.js → oauth2-provider-224QQNUV.js} +1 -1
- package/dist/gemini/{oauth2-provider-LSK6ONS7.js → oauth2-provider-BAYGJHVR.js} +1 -1
- package/dist/vendor/seccomp/arm64/apply-seccomp +0 -0
- package/dist/vendor/seccomp/x64/apply-seccomp +0 -0
- package/package.json +9 -4
- package/claude/claw/channels/feishu.md +0 -137
- package/claude/claw/channels/qq.md +0 -60
- package/claude/claw/channels/wecom.md +0 -64
- package/claude/claw/channels/weixin.md +0 -164
- package/claude/commands/claw.md +0 -127
- /package/dist/gemini/{tree-sitter-JU2EI3Z2.js → tree-sitter-JHZH2GQM.js} +0 -0
- /package/dist/gemini/{tree-sitter-bash-IAB7XJEE.js → tree-sitter-bash-KH6DKFBJ.js} +0 -0
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
# 微信渠道接入
|
|
2
|
-
|
|
3
|
-
接入微信ClawBot,完成 OpenClaw 机器人配置。
|
|
4
|
-
|
|
5
|
-
## 核心原则
|
|
6
|
-
|
|
7
|
-
- **严格按步骤走,不要加戏。**
|
|
8
|
-
- **二维码字符图和备用链接必须写进文字回复,不能只留在 bash 工具输出里。**
|
|
9
|
-
- **不要自动轮询。** 给完二维码等用户说"扫完了"再轮询。
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
## 常见踩坑
|
|
14
|
-
|
|
15
|
-
### 扫码成功但 OpenClaw 仍显示 `no token`
|
|
16
|
-
|
|
17
|
-
**原因**:凭证文件尚未写入,或网关未重启。
|
|
18
|
-
|
|
19
|
-
**解决方案**:检查 `~/.openclaw/openclaw-weixin/accounts/` 下的账号文件,若已存在则重启网关:
|
|
20
|
-
|
|
21
|
-
```bash
|
|
22
|
-
openclaw gateway restart
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
---
|
|
26
|
-
|
|
27
|
-
## Step 4:检查插件,未装则装
|
|
28
|
-
|
|
29
|
-
```bash
|
|
30
|
-
ls ~/.openclaw/extensions/openclaw-weixin/package.json 2>/dev/null && echo "INSTALLED" || echo "NOT_INSTALLED"
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
- `INSTALLED` → 跳到 Step 5
|
|
34
|
-
- `NOT_INSTALLED` → 安装:
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
openclaw plugins install @tencent-weixin/openclaw-weixin@legacy
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
装完验证 `ls ~/.openclaw/extensions/openclaw-weixin/package.json`,确认 `INSTALLED` 后继续。
|
|
41
|
-
|
|
42
|
-
---
|
|
43
|
-
|
|
44
|
-
## Step 5:获取二维码并渲染
|
|
45
|
-
|
|
46
|
-
**5a. 获取二维码数据:**
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
curl -s "https://ilinkai.weixin.qq.com/ilink/bot/get_bot_qrcode?bot_type=3"
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
从返回 JSON 提取:
|
|
53
|
-
|
|
54
|
-
- `qrcode` — 保存,Step 6 轮询用
|
|
55
|
-
- `qrcode_img_content` — 二维码页面链接
|
|
56
|
-
|
|
57
|
-
**5b. 用 qrcode-terminal 渲染字符二维码:**
|
|
58
|
-
|
|
59
|
-
```bash
|
|
60
|
-
node -e "
|
|
61
|
-
const qt = require(require('path').join(require('os').homedir(), '.openclaw/extensions/openclaw-weixin/node_modules/qrcode-terminal'));
|
|
62
|
-
qt.generate('<qrcode_img_content>', {small: true}, function(qr){ console.log(qr); });
|
|
63
|
-
"
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
**5c. 将以下内容完整写进文字回复(把实际字符二维码和链接替换进去):**
|
|
67
|
-
|
|
68
|
-
---
|
|
69
|
-
|
|
70
|
-
使用**微信**扫一扫下面的二维码:
|
|
71
|
-
|
|
72
|
-
```
|
|
73
|
-
<上一步命令输出的字符二维码,原样粘贴>
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
如果二维码无法识别,请在**电脑浏览器**打开以下链接后扫码:
|
|
77
|
-
`<qrcode_img_content 的值>`
|
|
78
|
-
|
|
79
|
-
扫完在手机上确认登录,完成后告诉我"ok"。⏱ 有效期约 1 分钟。
|
|
80
|
-
|
|
81
|
-
---
|
|
82
|
-
|
|
83
|
-
然后**停下来,等用户确认**。
|
|
84
|
-
|
|
85
|
-
---
|
|
86
|
-
|
|
87
|
-
## Step 6:用户确认后 → 轮询状态
|
|
88
|
-
|
|
89
|
-
```bash
|
|
90
|
-
curl -s "https://ilinkai.weixin.qq.com/ilink/bot/get_qrcode_status?qrcode=<qrcode>"
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
| status | 处理 |
|
|
94
|
-
| ----------- | ------------------------------------------------------------------ |
|
|
95
|
-
| `wait` | 等 3 秒再 poll |
|
|
96
|
-
| `scaned` | 告诉用户"已扫码,请在手机上确认登录" |
|
|
97
|
-
| `confirmed` | 成功!提取 `ilink_bot_id`、`bot_token`、`baseurl`、`ilink_user_id` |
|
|
98
|
-
| `expired` | 从 Step 5 重来 |
|
|
99
|
-
|
|
100
|
-
---
|
|
101
|
-
|
|
102
|
-
## Step 7:写入凭证(confirmed 后必须执行)
|
|
103
|
-
|
|
104
|
-
将 `ilink_bot_id` 中的 `@` → `-`、`.` → `-` 得到 `accountId`(例:`a34b410e2e6f@im.bot` → `a34b410e2e6f-im-bot`)。
|
|
105
|
-
|
|
106
|
-
用 Write 工具直接写入以下两个文件(将实际值填入):
|
|
107
|
-
|
|
108
|
-
**文件 1**:`~/.openclaw/openclaw-weixin/accounts/<accountId>.json`
|
|
109
|
-
```json
|
|
110
|
-
{
|
|
111
|
-
"token": "<ilink_bot_id>:<bot_token>",
|
|
112
|
-
"savedAt": "<当前 ISO 时间>",
|
|
113
|
-
"baseUrl": "<baseurl>",
|
|
114
|
-
"userId": "<ilink_user_id>"
|
|
115
|
-
}
|
|
116
|
-
```
|
|
117
|
-
|
|
118
|
-
**文件 2**:`~/.openclaw/openclaw-weixin/accounts.json`
|
|
119
|
-
|
|
120
|
-
先读取现有内容(若文件不存在则视为空数组),将 `<accountId>` 加入数组后写回:
|
|
121
|
-
```json
|
|
122
|
-
["<accountId>"]
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
写完后执行权限修正:
|
|
126
|
-
```bash
|
|
127
|
-
chmod 600 ~/.openclaw/openclaw-weixin/accounts/<accountId>.json
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
---
|
|
131
|
-
|
|
132
|
-
## Step 8:重启 Gateway
|
|
133
|
-
|
|
134
|
-
```bash
|
|
135
|
-
openclaw gateway restart
|
|
136
|
-
```
|
|
137
|
-
|
|
138
|
-
---
|
|
139
|
-
|
|
140
|
-
## Step 9:验证并提示用户
|
|
141
|
-
|
|
142
|
-
执行 `openclaw status` 确认 channel 状态为 `OK`,然后输出:
|
|
143
|
-
|
|
144
|
-
---
|
|
145
|
-
|
|
146
|
-
## 微信连接结果
|
|
147
|
-
|
|
148
|
-
- ✅ 状态:已绑定成功
|
|
149
|
-
- ✅ Gateway:已重启
|
|
150
|
-
- ilink_bot_id: `<ilink_bot_id>`
|
|
151
|
-
- ilink_user_id: `<ilink_user_id>`
|
|
152
|
-
|
|
153
|
-
现在可以直接在微信里发消息了 🎉
|
|
154
|
-
|
|
155
|
-
---
|
|
156
|
-
|
|
157
|
-
到此为止。不要再做任何额外操作。
|
|
158
|
-
|
|
159
|
-
## 绝对禁止
|
|
160
|
-
|
|
161
|
-
- 禁止自动开轮询(等用户说"扫完了 / ok")
|
|
162
|
-
- 禁止手动改写 `openclaw.json`
|
|
163
|
-
- 禁止跳过写凭证步骤(不写凭证插件无法连接)
|
|
164
|
-
- 禁止把二维码和链接只放在 bash 工具输出里——必须原样写进文字消息
|
package/claude/commands/claw.md
DELETED
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: claw
|
|
3
|
-
description: 安装并配置 OpenClaw,可选择接入飞书(feishu)、微信(weixin)、企业微信(wecom)或 QQ 渠道。用法:/claw [feishu|weixin|wecom|qq]。当用户需要将 OpenClaw 与即时通讯平台集成时使用此命令。
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# OpenClaw 安装与渠道接入
|
|
7
|
-
|
|
8
|
-
完成 OpenClaw 安装配置,并引导接入指定渠道。
|
|
9
|
-
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
## 参数解析
|
|
13
|
-
|
|
14
|
-
从命令参数中提取渠道名称(`$ARGUMENTS`):
|
|
15
|
-
|
|
16
|
-
- 有效渠道:`feishu`、`weixin`、`wecom`、`qq`
|
|
17
|
-
- 若参数不在上述列表中(且不为空),输出错误:**「未知渠道:<参数>,支持的渠道为 feishu / weixin / wecom / qq」**,然后停止执行
|
|
18
|
-
- 若参数为空,暂不处理,等安装完成后提示
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
## Step 1:检测并安装 OpenClaw
|
|
23
|
-
|
|
24
|
-
检查是否已安装:
|
|
25
|
-
|
|
26
|
-
```bash
|
|
27
|
-
openclaw --version
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
若未安装,执行下面命令安装:
|
|
31
|
-
|
|
32
|
-
```bash
|
|
33
|
-
npm install -g openclaw@2026.3.13 --registry=https://registry.npmmirror.com
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
安装后验证:
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
openclaw --version
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
---
|
|
43
|
-
|
|
44
|
-
## Step 1.5:检查新手引导配置状态
|
|
45
|
-
|
|
46
|
-
使用 Read 工具读取 `~/.openclaw/openclaw.json`。
|
|
47
|
-
|
|
48
|
-
**判断逻辑:**
|
|
49
|
-
|
|
50
|
-
- 若文件**不存在**或读取失败 → 继续执行 Step 2 和 Step 3(新手引导)
|
|
51
|
-
- 若文件**存在**,检查以下条件是否**同时满足**:
|
|
52
|
-
1. `models.providers` 数组非空(已配置模型提供者)
|
|
53
|
-
2. `gateway.port` 存在(网关已配置)
|
|
54
|
-
|
|
55
|
-
若以上条件**全部满足** → 提示用户「检测到新手引导已完成,跳过新手配置」,然后**直接跳至渠道选择步骤**。
|
|
56
|
-
|
|
57
|
-
否则 → 继续执行 Step 2 和 Step 3。
|
|
58
|
-
|
|
59
|
-
---
|
|
60
|
-
|
|
61
|
-
## Step 2:读取用户凭据
|
|
62
|
-
|
|
63
|
-
1. 读取 `~/.coder/config.json`(注意:是 `.coder` 目录,不是 `.codev`)
|
|
64
|
-
2. 提取 `auth.ak` 和 `auth.sk` 字段的**原始值**,不做任何修改
|
|
65
|
-
3. 构造 `API_KEY = {auth.ak}.{auth.sk}`(直接拼接,中间加一个英文句点),记录备用
|
|
66
|
-
4. 向用户确认构造结果:输出 `API_KEY 前缀为:{auth.ak}` 以便核对
|
|
67
|
-
|
|
68
|
-
---
|
|
69
|
-
|
|
70
|
-
## Step 3:运行新手引导
|
|
71
|
-
|
|
72
|
-
```bash
|
|
73
|
-
openclaw onboard --non-interactive --accept-risk \
|
|
74
|
-
--auth-choice custom-api-key \
|
|
75
|
-
--custom-base-url "https://makecoder.com/bigapis/codev/v1/claude" \
|
|
76
|
-
--custom-model-id "Claude Sonnet 4.6" \
|
|
77
|
-
--custom-api-key "<Step 2 中的 API_KEY>" \
|
|
78
|
-
--secret-input-mode plaintext \
|
|
79
|
-
--custom-compatibility anthropic \
|
|
80
|
-
--gateway-port 18789 \
|
|
81
|
-
--gateway-bind loopback \
|
|
82
|
-
--install-daemon \
|
|
83
|
-
--daemon-runtime node \
|
|
84
|
-
--skip-skills
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
命令完成后,修改 `~/.openclaw/openclaw.json`,对 `models.providers.models` 数组中**每一个**模型对象,设置或覆盖以下字段(已存在则覆盖为 18000,不存在则新增):
|
|
88
|
-
|
|
89
|
-
```json
|
|
90
|
-
"contextWindow": 18000,
|
|
91
|
-
"maxTokens": 18000
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
---
|
|
95
|
-
|
|
96
|
-
## 渠道选择
|
|
97
|
-
|
|
98
|
-
OpenClaw 安装配置完成后,根据参数决定下一步:
|
|
99
|
-
|
|
100
|
-
### 若参数已提供(feishu / weixin / wecom / qq)
|
|
101
|
-
|
|
102
|
-
直接跳转执行对应渠道的安装流程(见下方各渠道章节)。
|
|
103
|
-
|
|
104
|
-
### 若参数未提供
|
|
105
|
-
|
|
106
|
-
调用 `AskUserQuestion` 工具询问用户选择渠道,问题和选项如下:
|
|
107
|
-
|
|
108
|
-
- **question**:`OpenClaw 已安装配置完成!请选择要接入的渠道:`
|
|
109
|
-
- **header**:`渠道选择`
|
|
110
|
-
- **options**:
|
|
111
|
-
- `{ label: "feishu(飞书)", description: "飞书智能机器人" }`
|
|
112
|
-
- `{ label: "weixin(微信)", description: "微信 ClawBot" }`
|
|
113
|
-
- `{ label: "wecom(企业微信)", description: "企业微信智能机器人" }`
|
|
114
|
-
- `{ label: "qq(QQ)", description: "QQ 机器人" }`
|
|
115
|
-
|
|
116
|
-
根据用户所选选项的 label 前缀(feishu / weixin / wecom / qq)执行对应渠道流程。
|
|
117
|
-
|
|
118
|
-
---
|
|
119
|
-
|
|
120
|
-
## 渠道安装流程
|
|
121
|
-
|
|
122
|
-
根据选定渠道,读取并执行对应渠道文件中的步骤:
|
|
123
|
-
|
|
124
|
-
- **feishu**:执行 `~/.claude/claw/channels/feishu.md` 中的全部步骤
|
|
125
|
-
- **weixin**:执行 `~/.claude/claw/channels/weixin.md` 中的全部步骤
|
|
126
|
-
- **wecom**:执行 `~/.claude/claw/channels/wecom.md` 中的全部步骤
|
|
127
|
-
- **qq**:执行 `~/.claude/claw/channels/qq.md` 中的全部步骤
|
|
File without changes
|
|
File without changes
|