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

Function parse_post_tool

atomic-agent/src/hooks/claude_code/parse.rs:250–276  ·  view source on GitHub ↗
(
    agent_name: &str,
    hook_type: HookType,
    raw_json: serde_json::Value,
)

Source from the content-addressed store, hash-verified

248}
249
250fn 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}

Callers 1

parse_hook_eventFunction · 0.85

Calls 7

extract_session_idFunction · 0.85
with_raw_jsonMethod · 0.80
with_transcript_pathMethod · 0.80
with_tool_use_idMethod · 0.80
cloneMethod · 0.45
as_strMethod · 0.45
with_tool_nameMethod · 0.45

Tested by

no test coverage detected