Skip to main content

HookManager

Struct HookManager 

Source
pub struct HookManager { /* private fields */ }
Expand description

Orchestrates hook execution for lifecycle events.

The manager holds a frozen snapshot of the hook configuration, an executor for running subprocess commands, and session metadata used to build stdin payloads for hook commands.

Implementations§

Source§

impl HookManager

Source

pub fn new( config: HookConfig, session_id: impl Into<String>, cwd: impl Into<String>, ) -> Self

Create a new hook manager.

The config should already have compile_all() and strip_unknown_events() called on it.

Source

pub fn noop() -> Self

Create a manager with no hooks configured (no-op for all events).

Source

pub fn has_hooks_for(&self, event: HookEvent) -> bool

Fast check: are there hooks registered for this event?

Source

pub async fn run_hooks( &self, event: HookEvent, match_value: Option<&str>, event_data: Option<&Value>, ) -> HookOutcome

Run all matching hooks for an event.

Hooks execute sequentially. Short-circuits on block (exit code 2).

§Arguments
  • event: The lifecycle event.
  • match_value: Value to test against matcher regex (e.g., tool name).
  • event_data: Additional event-specific data for the stdin payload.
Source

pub fn run_hooks_async( &self, event: HookEvent, match_value: Option<String>, event_data: Option<Value>, )
where Self: Send + Sync + 'static,

Fire-and-forget hook execution.

Spawns hook execution as a background tokio task. Used for events where we don’t need to wait for the result (e.g., PostToolUse logging).

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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, 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> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more