JohnXu22786/hooks-adapter
JohnXu22786★ 0JavaScriptLast synced: 2026-08-16
Universal hooks compatibility layer for DeepSeek Harness: run hooks declared in Claude Code / Codex / opencode configs on dsh
README excerpt
hooks-adapter 一个面向 DeepSeek Harness(dsh)的 hooks 配置兼容层 :读取主流 agent harness 已有的 hooks 配置文件(如 .claude/settings.json 中的 hooks 声明、 .codex/hooks.json 、 opencode.json 的 hooks 段),把它们的生命周期事件映射到 dsh 的扩展点,并执行 shell / webhook / oracle / proxy 四类 handler——让同一份 hooks 配置在不同的 harness 之间原样复用。 - 零运行时依赖(Node ≥ 18,纯 ESM + JSDoc 类型) - 配置只读不迁移:你已有的 hooks 声明不用改写 - 四类 handler 全支持:命令执行、HTTP 回调、LLM 评估、子代理委派 - 超时控制、失败降级策略、友好的配置校验( validate 子命令) - 三种接入方式:dsh 插件(Cordis apply )、stdio JSON-lines 协议(任意宿主)、一次性 CLI 它能做什么 在 .claude/settings.json 里声明 hooks(无论你之前为哪个 harness 写的),在 dsh 中它们照常生效: 配置文件须为严格 JSON(不支持注释); examples/ 下有完整的四方言示例。 - PreToolUse → 工具执行前的拦截点:handler 退出码 2 / JSON decision: "block" 会 阻止 工具调用(或转为 ask 交人工确认) - PostToolUse / PostToolUseFailure → 工具执行后(互斥触发):拒绝写回为结果反馈、追加上下文 - UserPromptSubmit / SessionStart / Stop / SubagentStart / SubagentStop / SessionEnd → 注入上下文、拒绝提示词、强制模型继续 - Notification / PreCompact → 手动或经 stdio 协议触发 四类 handler(配置里的 type 字段按各 harness 习惯书写,内部归一): 配置 type 内部 kind 行为 默认超时 command shell 起 shell 进程,stdin 喂 JSON 契约 600s http webhook POST JSON 到 URL,响应体即决策 600s prompt oracle 调 LLM 端点评估, {ok:false} 即拒绝 30s agent / subagent proxy 委派给子代理 runner(可配置命令) 60s 快速开始 方式一:dsh 插件(推荐) 加载后插件自动发现项目与用户目录下…
View full README on GitHub →