pub struct RunHooks<'a> {
pub session_id: Option<Uuid>,
pub turn_sink: Option<&'a dyn TurnSink>,
pub event_sink: Option<&'a dyn EventSink>,
pub policy: Option<&'a dyn ToolPolicy>,
}Expand description
Grouped run hooks passed to crate::runner::run_agent /
crate::runner::run_agent_streaming.
Bundles the session id (for event correlation), the optional per-turn
[TurnSink] (for persistence), and the optional EventSink (for
observability). Replacing the old on_turn: Option<&dyn TurnSink> parameter
with &RunHooks keeps the function signature stable while leaving room for
future hooks without API churn.
Use RunHooks::default for a no-hooks run (no persistence, no events).
Fields§
§session_id: Option<Uuid>The session id (for event correlation). None when the caller has no
session concept (e.g. a stateless one-shot run).
turn_sink: Option<&'a dyn TurnSink>Optional per-turn sink (typically SessionRunner for persistence).
event_sink: Option<&'a dyn EventSink>Optional event sink (typically EventBus for observability).
policy: Option<&'a dyn ToolPolicy>Optional tool policy hook (Fae deviation; see the README). When set,
the agent loop consults it before each tool call and denies/confirms
per the returned crate::policy::PolicyVerdict. None (the default)
means allow-all — existing consumers are unaffected.
Implementations§
Source§impl<'a> RunHooks<'a>
impl<'a> RunHooks<'a>
Sourcepub fn from_turn_sink(turn_sink: &'a dyn TurnSink) -> Self
pub fn from_turn_sink(turn_sink: &'a dyn TurnSink) -> Self
Create hooks with only a turn sink (the pre-4c calling convention).
Sourcepub fn emit_event(&self, make: impl FnOnce(Uuid) -> RunEvent)
pub fn emit_event(&self, make: impl FnOnce(Uuid) -> RunEvent)
Conditionally emit an event, constructed only when both a session id
and an event sink are configured. The closure receives the session id
so callers don’t need to branch on Option:
hooks.emit_event(|sid| RunEvent::TurnStarted { session: sid, turn: 1 });When session_id or event_sink is None, the closure is never
called (zero cost) — no event is constructed or emitted.