Skip to main content

HookEvent

Enum HookEvent 

Source
pub enum HookEvent {
    PreToolUse,
    PostToolUse,
    PostToolFailure,
    UserPromptSubmit,
    SessionStart,
    SessionEnd,
    Stop,
    SubAgentStart,
    PreCompact,
    PostCompact,
}
Expand description

可拦截的 Agent 生命周期节点。

AgentEvent(28 种只读观察事件)互补,HookEvent 只覆盖 需要干预能力的节点 — 拦截、修改输入/输出、权限决策。

§Examples

use katu_core::hook::HookEvent;

let event = HookEvent::PreToolUse;
assert!(event.is_tool_event());
assert!(!HookEvent::SessionStart.is_tool_event());

Variants§

§

PreToolUse

工具执行前 — 可以 allow/deny/ask、修改 input。

§

PostToolUse

工具执行成功后 — 可以注入上下文、修改输出。

§

PostToolFailure

工具执行失败后 — 可以注入诊断上下文。

§

UserPromptSubmit

用户提交 prompt 前 — 可以注入上下文或拦截。

§

SessionStart

Session 开始。

§

SessionEnd

Session 结束。

§

Stop

Agent loop 单步结束判定 — 可以阻止停止、要求继续。

§

SubAgentStart

SubAgent 启动前。

§

PreCompact

上下文压缩前。

§

PostCompact

上下文压缩后。

Implementations§

Source§

impl HookEvent

Source

pub fn is_tool_event(&self) -> bool

是否为 Tool 相关事件。

Trait Implementations§

Source§

impl Clone for HookEvent

Source§

fn clone(&self) -> HookEvent

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for HookEvent

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for HookEvent

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Display for HookEvent

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Hash for HookEvent

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for HookEvent

Source§

fn eq(&self, other: &HookEvent) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Serialize for HookEvent

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Copy for HookEvent

Source§

impl Eq for HookEvent

Source§

impl StructuralPartialEq for HookEvent

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,