@wu529778790/open-im 1.11.4 → 1.11.5-beta.1
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/README.md +4 -4
- package/dist/clawbot/client.js +3 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# open-im
|
|
2
2
|
|
|
3
|
-
> 你的 AI
|
|
3
|
+
> 你的 AI 编程助手,在微信里。
|
|
4
4
|
|
|
5
|
-
open-im 把 Claude Code、Codex、CodeBuddy
|
|
5
|
+
open-im 把 Claude Code、Codex、CodeBuddy 接入微信客服号(ClawBot)、微信助理(WorkBuddy)、Telegram、飞书、企业微信、钉钉、QQ 机器人。手机发条消息,电脑上就写好代码。
|
|
6
6
|
|
|
7
7
|
## 为什么用 open-im
|
|
8
8
|
|
|
@@ -41,13 +41,13 @@ open-im start
|
|
|
41
41
|
|
|
42
42
|
| 平台 | 流式输出 | 图片 | 交互按钮 | 接入指南 |
|
|
43
43
|
|------|---------|------|---------|---------|
|
|
44
|
+
| **微信客服号(ClawBot)** | ✅ | ✅ | ❌ | [接入指南](https://www.codebuddy.cn/docs/workbuddy/Claw) |
|
|
45
|
+
| **微信助理(WorkBuddy)** | ✅ | ❌ | ❌ | [接入指南](https://www.codebuddy.cn/docs/workbuddy/Claw) |
|
|
44
46
|
| Telegram | ✅ | ✅ | ✅ | [Bot 文档](https://core.telegram.org/bots#creating-a-new-bot) |
|
|
45
47
|
| 飞书 | ✅ | ✅ | ✅ | [开放平台](https://open.feishu.cn/) |
|
|
46
48
|
| QQ 机器人 | ✅ | ✅ | ❌ | [开放平台](https://bot.q.qq.com/) |
|
|
47
49
|
| 企业微信 | ✅ | ✅ | ❌ | [管理后台](https://work.weixin.qq.com/) |
|
|
48
50
|
| 钉钉机器人 | ⚠️ 部分 | ✅ | ✅ | [开放平台](https://open-dev.dingtalk.com/) |
|
|
49
|
-
| 微信助理(WorkBuddy) | ✅ | ❌ | ❌ | [接入指南](https://www.codebuddy.cn/docs/workbuddy/Claw) |
|
|
50
|
-
| 微信客服号(ClawBot) | ✅ | ⚠️ 下载中 | ❌ | [接入指南](https://www.codebuddy.cn/docs/workbuddy/Claw) |
|
|
51
51
|
|
|
52
52
|
每个平台可单独配置 AI 后端(`claude` / `codex` / `codebuddy` / `opencode`),默认 `claude`。
|
|
53
53
|
|
package/dist/clawbot/client.js
CHANGED
|
@@ -284,13 +284,13 @@ async function extractImages(msg) {
|
|
|
284
284
|
const aesKeyHex = imageItem?.aeskey;
|
|
285
285
|
if (aesKeyHex && aesKeyHex.length === 32) {
|
|
286
286
|
try {
|
|
287
|
+
// AES-128-ECB 模式(官方 SDK 实现,无需 IV)
|
|
287
288
|
const keyBuf = Buffer.from(aesKeyHex, 'hex');
|
|
288
|
-
const
|
|
289
|
-
const decipher = createDecipheriv('aes-128-cbc', keyBuf, iv);
|
|
289
|
+
const decipher = createDecipheriv('aes-128-ecb', keyBuf, null);
|
|
290
290
|
finalBuffer = Buffer.concat([decipher.update(buffer), decipher.final()]);
|
|
291
291
|
}
|
|
292
292
|
catch {
|
|
293
|
-
log.info('AES decryption failed, using raw image data');
|
|
293
|
+
log.info('AES-128-ECB decryption failed, using raw image data');
|
|
294
294
|
finalBuffer = buffer;
|
|
295
295
|
}
|
|
296
296
|
}
|
package/package.json
CHANGED