(
agent_name: &str,
hook_type: HookType,
raw_json: serde_json::Value,
)
| 248 | } |
| 249 | |
| 250 | fn parse_post_tool( |
| 251 | agent_name: &str, |
| 252 | hook_type: HookType, |
| 253 | raw_json: serde_json::Value, |
| 254 | ) -> AgentResult<TurnEvent> { |
| 255 | let parsed: PostToolInput = |
| 256 | serde_json::from_value(raw_json.clone()).map_err(|e| AgentError::HookParseFailed { |
| 257 | agent: agent_name.to_string(), |
| 258 | hook_type: hook_type.as_str().to_string(), |
| 259 | reason: e.to_string(), |
| 260 | })?; |
| 261 | |
| 262 | let mut event = |
| 263 | TurnEvent::new(extract_session_id(parsed.session_id), hook_type).with_raw_json(raw_json); |
| 264 | |
| 265 | if let Some(path) = parsed.transcript_path { |
| 266 | event = event.with_transcript_path(path); |
| 267 | } |
| 268 | if let Some(id) = parsed.tool_use_id { |
| 269 | event = event.with_tool_use_id(id); |
| 270 | } |
| 271 | if let Some(name) = parsed.tool_name { |
| 272 | event = event.with_tool_name(name); |
| 273 | } |
| 274 | |
| 275 | Ok(event) |
| 276 | } |
no test coverage detected