MCPcopy Create free account
hub / github.com/atomicdotdev/atomic / dispatch

Method dispatch

atomic-agent/src/turn/orchestrator/mod.rs:351–359  ·  view source on GitHub ↗

Dispatch a turn event through the orchestrator. This is the main entry point called by the CLI hook handler. It: 1. Routes the event to the appropriate handler based on `event_type` 2. Loads or creates the session state 3. Runs the state machine transition 4. Executes any actions (begin/end turn, record change) 5. Saves the updated session state 6. Returns a `DispatchResult` with any data to send

(&mut self, event: TurnEvent)

Source from the content-addressed store, hash-verified

349 /// Most errors are non-fatal — the orchestrator logs warnings and
350 /// continues. Fatal errors (session store IO failure, etc.) are propagated.
351 pub async fn dispatch(&mut self, event: TurnEvent) -> AgentResult<DispatchResult> {
352 match event.event_type {
353 HookType::SessionStart => self.handle_session_start(event).await,
354 HookType::TurnStart => self.handle_turn_start(event).await,
355 HookType::TurnEnd => self.handle_turn_end(event).await,
356 HookType::SessionEnd => self.handle_session_end(event).await,
357 HookType::PreToolUse | HookType::PostToolUse => self.handle_tool_use(event).await,
358 }
359 }
360}
361
362// ═══════════════════════════════════════════════════════════════════════

Calls 5

handle_session_startMethod · 0.80
handle_turn_startMethod · 0.80
handle_turn_endMethod · 0.80
handle_session_endMethod · 0.80
handle_tool_useMethod · 0.80