/** * 账户级热更新 Reconciler(OpenClaw 6.x,无 accountScopedRestart)。 * * 前提:index.ts 通过 api.registerReload({ hotPrefixes: ["channels.xg_cwork_im"] }) 让 * Gateway 对通道配置变更走 hot reload(提交运行时快照)但不重启通道。因此本模块 * 需要自行轮询 api.runtime.config.current() 感知账号变更,并对变更账号单独启停。 * * 运行中账号:Map;每个账号一个 AbortController + 一个连接句柄。 * diff 指纹(robotKey|appKey|baseUrl|wsBaseUrl|agentId|enabled)后: * - 新增 → 启动 * - 删除 / enabled=false → 停止 * - 指纹变化 → 重启 * - 指纹不变 → 空转(非连接字段由每次入站重读最新 config 生效) */ import type { OpenClawConfig, PluginRuntime } from "openclaw/plugin-sdk"; import { type Logger } from "./channel-log.js"; import type { GatewayStartContext, XgImConfig } from "./types.js"; export declare function fingerprintOf(config: XgImConfig): string; /** 从配置中解析应保持运行的账号集合(与 config.listAccountIds 口径一致,过滤 disabled/未配置)。 */ export declare function collectDesiredAccounts(cfg: OpenClawConfig): Map; export interface AccountReconcilerOptions { pollIntervalMs?: number; debounceMs?: number; logSink?: unknown; } export declare class AccountReconciler { private readonly options; private rt; private runs; private pollTimer; private reconcileTimer; private lastCfg; private started; constructor(options?: AccountReconcilerOptions); private get pollIntervalMs(); private get debounceMs(); setRuntime(rt: PluginRuntime): void; start(): void; stopAll(): Promise; /** Gateway startAccount 委托入口:确保账号运行,并等待 Gateway 端 abort 停止该账号。 */ startAccountLifecycle(ctx: GatewayStartContext): Promise; /** 确保某账号按最新配置运行(新增/指纹变化时启动或重启)。失败会抛错。 */ syncAccount(accountId: string, cfg: OpenClawConfig, config: XgImConfig, logOverride?: Logger): Promise; private startRun; private stopRun; private stopAccount; private channelLog; private latestCfg; private poll; private reconcile; private snapshotMatches; } /** 插件级单例:由 index.ts 注入 runtime 并启动/停止。 */ export declare const accountReconciler: AccountReconciler; //# sourceMappingURL=account-reconciler.d.ts.map