#!/usr/bin/env node export type StartBotLiveResult = { ok: true; state: 'started' | 'already-online'; processName: string; } | { ok: false; reason: 'not_found' | 'not_ready' | 'fleet_down' | 'pm2_error'; message: string; }; export type StopBotLiveResult = { ok: true; state: 'stopped' | 'already-stopped'; processName: string; } | { ok: false; reason: 'not_found' | 'pm2_error'; message: string; }; /** * runHook: hook 命令的纯业务逻辑,接受已解析的 payload/env/postAskFn, * 返回应写到 stdout 的字符串。通过依赖注入使单元测试无需真实 daemon/env。 * * @param payload 已经 JSON.parse 的 hook payload 对象 * @param env 包含 BOTMUX_* 环境变量的字典 * @param postAskFn 替代真实 postAsk 的可注入函数(测试用) * @param cliId CLI 适配器 ID * @param resolveAdoptRouteFn 可选:替代真实 adopt 路由解析的注入函数(测试用); * 缺省时使用真实 resolveAdoptRoute(查祖先 PID → daemon) * @returns { stdout: string } 应写到 stdout 的内容 */ export declare function runHook(payload: unknown, env: Record, postAskFn: (body: Record) => Promise, cliId: string, resolveAdoptRouteFn?: () => Promise, /** 按 OpenCode 原生会话 id(payload.session_id,ses_*)反查所属 botmux 会话; * 缺省用真实实现(在线 daemon 并发查询 + budget 封顶)。测试注入 stub。 */ resolveCliSessionRouteFn?: (cliSessionId: string) => Promise): Promise<{ stdout: string; }>; //# sourceMappingURL=cli.d.ts.map