Expand description
§katu_core::hook
§职责
定义 Hook 系统的类型与执行契约 — Agent 生命周期的可拦截节点。
§设计
Hook 系统与 AgentEvent 互补:
AgentEvent(agent_event.rs)= 不可变的已发生事实,消费者只能观察Hook(本模块)= 可拦截的执行节点,Hook 可以拦截、修改、阻止
Agent Loop ──节点──► HookRegistry.run() ──决策──► 继续/修改/阻止
│
▼
AgentEvent(记录事实)§对外接口
HookEvent— 可拦截的生命周期节点(10 种)HookInput— 各事件的类型化输入HookOutput— Hook 的决策结果HookPermission— 权限决策(allow / deny / ask)Hook— 执行 trait(async, object-safe)HookSource— Hook 来源标识HookRegistry— 注册与匹配AggregatedHookOutput— 多 Hook 结果聚合
§调用者
katu-agent(future) — Agent loop 在各生命周期节点调用 Hook- 应用层 — 注册自定义 Hook 实现
Structs§
- Aggregated
Hook Output - 多个 Hook 结果的聚合 — 并行执行后合并。
- Hook
Output - Hook 的执行结果 — 告诉 Agent loop 如何继续。
- Hook
Registry - Hook 注册中心 — 管理已注册的 Hook 并按事件/matcher 分发。
- Registered
Hook - 已注册的 Hook 条目 — 包含 Hook 实例、来源和优先级。
Enums§
- Hook
Event - 可拦截的 Agent 生命周期节点。
- Hook
Input - Hook 输入 — 每个 HookEvent 携带的上下文数据。
- Hook
Permission - Hook 的权限决策 — 仅对
PreToolUse事件有意义。 - Hook
Source - Hook 来源 — 用于冲突解决、日志追踪和安全策略。
Constants§
- ALL_
HOOK_ EVENTS - 所有 Hook 事件的完整列表,按定义顺序。
Traits§
- Hook
- Hook 执行 trait — 所有可注册到 Agent loop 的 Hook 必须实现。
Functions§
- matches_
pattern - 模式匹配 — 判断
value是否匹配pattern。