Files
wechat-access-unqclawed/common/runtime.ts
HenryXiaoYang ba754ccc31 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)
2026-03-10 02:29:06 +08:00

35 lines
1.0 KiB
TypeScript

import type { PluginRuntime } from "openclaw/plugin-sdk";
// ============================================
// Runtime 管理
// ============================================
// 用于存储和获取 OpenClaw 的运行时实例
// Runtime 提供了访问配置、会话、路由、事件等核心功能的接口
/**
* 全局运行时实例
* 在插件初始化时由 OpenClaw 框架注入
*/
let runtime: PluginRuntime | null = null;
/**
* 设置微信企业号运行时实例
* @param next - OpenClaw 提供的运行时实例
* @description 此方法应在插件初始化时调用一次,用于注入运行时依赖
*/
export const setWecomRuntime = (next: PluginRuntime): void => {
runtime = next;
};
/**
* 获取微信企业号运行时实例
* @returns OpenClaw 运行时实例
* @throws 如果运行时未初始化则抛出错误
* @description 在需要访问 OpenClaw 核心功能时调用此方法
*/
export const getWecomRuntime = (): PluginRuntime => {
if (!runtime) {
throw new Error("WeCom runtime not initialized");
}
return runtime;
};