DAG总览 / 组目录 / G19 Hooks 扩展

dsh-hooks-codex · @deepseek-ai/dsh-hooks-codex

Layer 5G19L3 其余
目录:ACP 协议API 网关与控制器附件启动与插件管理客户端运行时客户端 UI 包上下文压缩上下文注入核心运行时凭据与授权交付物文档处理实验特性宿主扩展反馈通道文件系统目标与计划工具守卫Hooks 扩展宿主服务交互命令作业调度LLM 适配LSP 集成MCP 协议规划模式Agent 预设代码执行运行时运行时诊断沙箱定时调度SDK 与协议会话核心会话检索设置Shell 执行技能溢出存储SSH 远程执行存储子代理子进程终端待办类型契约框架 vendorWeb 访问Webhook工作流工作区
依赖链 · 上游(该插件依赖的前驱):
依赖链 · 下游(依赖该插件的节点):
无下游(叶子/被消费端)
同一拓扑层(Layer 5,层次遍历层序):
↑ Layer 4(13 插件)Layer 5↓ Layer 6(18 插件)

插件信息

包名@deepseek-ai/dsh-hooks-codex
分组G19 · Hooks 扩展
拓扑层Layer 5(层次遍历:被依赖方先于依赖方)
源码路径packages/hooks/hooks-codex
来源层L3 其余插件(独立于 bundle 装配的扩展/变体/示例)

① 实现逻辑

把未改动的 Codex command hooks 桥接到 harness:SessionStart、UserPromptSubmit、PreToolUse/PostToolUse、Stop,仅同步 command 类型、正则匹配、snake_case payload 且 stdin 无尾换行(src/index.ts:119-176, 152)。config.ts 解析 Codex 五事件子集,跳过非 command 与 async hooks,并对非法 matcher 抛 SyntaxError(src/config.ts:43-85)。决策映射只保留阻断路径:工具与生命周期拦截点分别映射为 PreToolDecision/PostToolDecision 与 PreStepDecision(src/index.ts:191-276)。

内部结构动态 DAG(深色主题:橙色=上游依赖 · 绿色=下游依赖 · 棕色=外部seam · 蓝=本插件)
本插件 上游依赖 下游依赖 外部 seam

② 注册/提供(provides)

③ 依赖(depends_on · 上游前驱)

dsh-agentE1+E2
在 agent 生命周期与步进点注入上下文并映射 hook 决策
src/index.ts:17 import (Agent, PreStepDecision) + src/index.ts:191 ctx.on('agent/created') + src/index.ts:205 ctx.on('agent/pre-step')
dsh-hook-protocolE1+E2
复用共享的 hook 执行/解析/合并/持久事件与 matcher 校验
src/index.ts:30-42 import (runHook, mergeHookOutputs, appendHookInvoked, ...) + src/index.ts:147 runHook(...) + src/config.ts:8 import matcherDiagnostic
dsh-llmE1
构造注入模型的上下文消息及其来源标签
src/index.ts:19-20 import (createUserMessage, ContextFormed) + src/index.ts:27 import (ContentBlock, MessageSource)
dsh-sessionE1
hook 上下文消息使用的会话消息类型
src/index.ts:28 import UserMessage
dsh-session-projectionE1+E2
读取 turnBoundary 投影获取 turn_id 以记录 hook 事件
src/index.ts:18 import type {} + src/index.ts:288 ctx.sessionProjections.stateOf(agent.session,'turnBoundary')
dsh-toolsE1+E2
在工具执行前后拦截点运行 hook 并映射为工具决策
src/index.ts:29 import (PostToolDecision, PreToolDecision, ToolExecution, ToolExecutionResult) + src/index.ts:231 ctx.on('tools/pre-execute') + src/index.ts:240 ctx.on('tools/post-execute')

④ 被依赖(dependents · 下游消费者)

无下游(叶子/被消费端)