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

Function normalize_tool_raw

atomic-agent/src/hooks/codex.rs:656–675  ·  view source on GitHub ↗
(mut raw: Value)

Source from the content-addressed store, hash-verified

654}
655
656fn normalize_tool_raw(mut raw: Value) -> Value {
657 let Some(response) = raw.get("tool_response").cloned() else {
658 return raw;
659 };
660
661 if let Some(output) = extract_tool_output(&response) {
662 insert_if_missing(&mut raw, "tool_output", Value::String(output));
663 }
664 if let Some(status) = extract_tool_status(&response) {
665 insert_if_missing(&mut raw, "status", Value::String(status));
666 }
667 if let Some(duration) = extract_duration_ms(&response) {
668 insert_if_missing(&mut raw, "duration", Value::Number(duration.into()));
669 }
670 if let Some(file_path) = extract_file_path(raw.get("tool_input"), &response) {
671 insert_if_missing(&mut raw, "file_path", Value::String(file_path));
672 }
673
674 raw
675}
676
677fn extract_tool_output(response: &Value) -> Option<String> {
678 if let Some(text) = response.as_str() {

Callers 1

parse_eventMethod · 0.70

Calls 6

extract_tool_statusFunction · 0.85
extract_duration_msFunction · 0.85
extract_tool_outputFunction · 0.70
insert_if_missingFunction · 0.70
extract_file_pathFunction · 0.70
getMethod · 0.65

Tested by

no test coverage detected