Handle a PreToolUse or PostToolUse event. Currently tracks tool usage for informational purposes. Future enhancements may create sub-turn recordings for sub-agent (Task) tools.
(
&mut self,
event: TurnEvent,
)
| 452 | /// Currently tracks tool usage for informational purposes. Future |
| 453 | /// enhancements may create sub-turn recordings for sub-agent (Task) tools. |
| 454 | pub(super) async fn handle_tool_use( |
| 455 | &mut self, |
| 456 | event: TurnEvent, |
| 457 | ) -> AgentResult<DispatchResult> { |
| 458 | let session_id = &event.session_id; |
| 459 | |
| 460 | let session = self.load_or_create_session(session_id, &event)?; |
| 461 | let turn_number = session.turn_count.saturating_add(1); |
| 462 | self.commit_hook_event(&event, turn_number)?; |
| 463 | |
| 464 | // Log tool usage |
| 465 | if let Some(ref tool_name) = event.tool_name { |
| 466 | log::info!( |
| 467 | "Session {} tool use: {} ({})", |
| 468 | session_id, |
| 469 | tool_name, |
| 470 | event.event_type, |
| 471 | ); |
| 472 | } |
| 473 | |
| 474 | Ok(DispatchResult::new(session_id, session.phase)) |
| 475 | } |
| 476 | |
| 477 | fn wait_turn_publication_lock( |
| 478 | &self, |
no test coverage detected