feat: add Tencent WeChat channel plugin and update related configurations

- Added the Tencent WeChat channel plugin (`@tencent-weixin/openclaw-weixin`) to the project dependencies.
- Updated the `pnpm-lock.yaml` to include the new plugin version.
- Enhanced the README files to document the WeChat integration process.
- Implemented QR code login functionality for WeChat in the channel management system.
- Updated UI components to support WeChat channel configuration and display.
- Added localization support for WeChat connection messages in English, Japanese, and Chinese.
This commit is contained in:
Haze
2026-03-22 16:20:41 +08:00
parent f16e8062e1
commit 2ab0e7c386
31 changed files with 1602 additions and 152 deletions

View File

@@ -2,7 +2,7 @@
* Shared OpenClaw Plugin Install Utilities
*
* Provides version-aware install/upgrade logic for bundled OpenClaw plugins
* (DingTalk, WeCom, QQBot, Feishu). Used both at app startup (to auto-upgrade
* (DingTalk, WeCom, QQBot, Feishu, WeChat). Used both at app startup (to auto-upgrade
* stale plugins) and when a user configures a channel.
*/
import { app } from 'electron';
@@ -171,6 +171,7 @@ const PLUGIN_NPM_NAMES: Record<string, string> = {
wecom: '@wecom/wecom-openclaw-plugin',
'feishu-openclaw-plugin': '@larksuite/openclaw-lark',
qqbot: '@sliverp/qqbot',
'openclaw-weixin': '@tencent-weixin/openclaw-weixin',
};
// ── Version helper ───────────────────────────────────────────────────────────
@@ -450,6 +451,10 @@ export function ensureQQBotPluginInstalled(): { installed: boolean; warning?: st
return ensurePluginInstalled('qqbot', buildCandidateSources('qqbot'), 'QQ Bot');
}
export function ensureWeChatPluginInstalled(): { installed: boolean; warning?: string } {
return ensurePluginInstalled('openclaw-weixin', buildCandidateSources('openclaw-weixin'), 'WeChat');
}
// ── Bulk startup installer ───────────────────────────────────────────────────
/**
@@ -460,6 +465,7 @@ const ALL_BUNDLED_PLUGINS = [
{ fn: ensureWeComPluginInstalled, label: 'WeCom' },
{ fn: ensureQQBotPluginInstalled, label: 'QQ Bot' },
{ fn: ensureFeishuPluginInstalled, label: 'Feishu' },
{ fn: ensureWeChatPluginInstalled, label: 'WeChat' },
] as const;
/**