pub struct HookEvent {Show 15 fields
pub wire: Wire,
pub kind: EventKind,
pub session_id: Option<String>,
pub tool_name: Option<String>,
pub tool_use_id: Option<String>,
pub cwd: Option<String>,
pub transcript_path: Option<String>,
pub turn_id: Option<String>,
pub agent_id: Option<String>,
pub parent_tool_use_id: Option<String>,
pub prompt: Option<String>,
pub stop_hook_active: Option<bool>,
pub last_assistant_message: Option<String>,
pub tool_input: Option<Value>,
pub raw: Value,
}Expand description
One hook invocation, normalized.
Fields§
§wire: Wire§kind: EventKind§session_id: Option<String>thread_id, session_id or sessionId, first present non-blank string in that order.
tool_name: Option<String>§tool_use_id: Option<String>§cwd: Option<String>§transcript_path: Option<String>§turn_id: Option<String>Codex’s per-turn id (Legion’s Codex Stop fixture).
agent_id: Option<String>Claude marks a subagent’s hook input with agent_id.
parent_tool_use_id: Option<String>§prompt: Option<String>prompt, falling back to user_prompt (Membrane’s reader).
stop_hook_active: Option<bool>§last_assistant_message: Option<String>§tool_input: Option<Value>§raw: ValueThe original payload, unmodified.
Implementations§
Source§impl HookEvent
impl HookEvent
Sourcepub fn from_value(wire: Wire, payload: Value) -> Result<Self, ParseError>
pub fn from_value(wire: Wire, payload: Value) -> Result<Self, ParseError>
Normalize a payload that is already JSON.
pub fn from_slice(wire: Wire, bytes: &[u8]) -> Result<Self, ParseError>
Sourcepub fn from_reader(wire: Wire, reader: impl Read) -> Result<Self, ParseError>
pub fn from_reader(wire: Wire, reader: impl Read) -> Result<Self, ParseError>
Read at most STDIN_CAP bytes and parse. Larger input is ParseError::TooLarge.
Sourcepub fn is_own_turn(&self) -> bool
pub fn is_own_turn(&self) -> bool
Whether this hook belongs to the chat’s own turn rather than a subagent’s, Pulse’s rule:
every event but PostToolUse is the chat’s own; for PostToolUse Claude’s subagent hooks
carry agent_id, and Codex reports the parent’s session id with a different transcript
file, so the transcript file name must contain the session id.
Trait Implementations§
impl StructuralPartialEq for HookEvent
Auto Trait Implementations§
impl Freeze for HookEvent
impl RefUnwindSafe for HookEvent
impl Send for HookEvent
impl Sync for HookEvent
impl Unpin for HookEvent
impl UnsafeUnpin for HookEvent
impl UnwindSafe for HookEvent
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more