feat: add WeChat QR code login and AGP WebSocket channel plugin

- Auth module: WeChat OAuth2 scan-to-login flow with terminal QR code
- Token persistence to ~/.openclaw/wechat-access-auth.json (chmod 600)
- Token resolution: config > saved state > interactive login
- Invite code verification (configurable bypass)
- Production/test environment support
- AGP WebSocket client with heartbeat, reconnect, wake detection
- Message handler: Agent dispatch with streaming text and tool calls
- Random device GUID generation (persisted, no real machine ID)
This commit is contained in:
HenryXiaoYang
2026-03-10 02:29:06 +08:00
commit ba754ccc31
33 changed files with 14992 additions and 0 deletions

44
package.json Normal file
View File

@@ -0,0 +1,44 @@
{
"name": "wechat-access",
"version": "1.0.0",
"type": "module",
"description": "简化的企业微信 服务号 接收消息 Demo",
"author": "aa",
"openclaw": {
"extensions": [
"./index.ts"
],
"channel": {
"id": "wechat-access",
"label": "wechat-access",
"selectionLabel": "WeCom (plugin)",
"detailLabel": "WeCom Bot",
"docsPath": "/channels/wechat-access",
"docsLabel": "wechat-access",
"blurb": "Enterprise WeCom intelligent bot (API mode) via encrypted webhooks + passive replies.",
"aliases": [
"wechatwork",
"wework",
"服务号",
"企微",
"企业微信"
],
"order": 85
},
"install": {
"npmSpec": "@yanhaidao/wechat-access",
"localPath": "extensions/wechat-access",
"defaultChoice": "npm"
}
},
"dependencies": {
"fast-xml-parser": "^5.4.1",
"qrcode-terminal": "^0.12.0",
"undici": "^7.20.0",
"ws": "^8.18.0",
"zod": "^4.3.6"
},
"peerDependencies": {
"openclaw": ">=2026.1.26"
}
}