/** * coco-ask-plugin.ts * * 把 botmux 的 AskUserQuestion hook 以 **CoCo 插件** 形式安装到 CoCo (Trae CLI)。 * * 为什么是插件而不是写配置文件:CoCo 0.120.x 把 hook 模型迁到了「插件 + * marketplace」——老的 traecli.yaml 顶层 `hooks:` 在迁移时被丢弃,现在 hook 要么 * 内联进 traecli.toml(无 matcher,会对每个 tool 调用都触发,浪费),要么打包进 * 插件的 hooks.json(**支持 matcher**,可精确只拦 AskUserQuestion)。我们选后者。 * * 插件目录结构(与 CoCo 官方插件一致): * /.codex-plugin/plugin.json —— 清单,hooks 指向 ./hooks.json * /hooks.json —— Claude settings.json 同构: * { hooks: { PreToolUse: [ { matcher:"AskUserQuestion", * hooks:[ {type:"command", command:, timeout} ] } ] } } * * 安装走 `coco plugin install --type local --yes`(幂等:同名插件覆盖; * 每个 daemon 生命周期由 ensureCliSkills 调用一次)。这是全局安装(写 * ~/.trae 的 traecli.toml 信任哈希 + plugins 缓存),所有 CoCo 会话都会装上这条 * hook——但 hook 客户端在缺 BOTMUX_* env 时直接 passthrough,不影响用户自己跑的 * CoCo(与 Claude 写全局 settings.json 的安全模型一致)。 */ /** 幂等地构建插件目录并 `coco plugin install` 安装。失败只 warn 不抛。 */ export declare function installCocoAskPlugin(cocoBin: string): void; //# sourceMappingURL=coco-ask-plugin.d.ts.map