Skip to main content

from_payload

Function from_payload 

Source
pub fn from_payload(payload: &str) -> Option<(String, Option<String>)>
Expand description

The path a provider’s pre-tool payload names, and the provider’s own session id: the fields Claude Code sends (tool_input.file_path, tool_input.notebook_path, session_id). None when the payload names no path — a tool that writes no file.

use majordomus_cli::guard::from_payload;

let p = r#"{"session_id":"s1","tool_name":"Edit","tool_input":{"file_path":"/r/lib/a.sh"}}"#;
assert_eq!(from_payload(p), Some(("/r/lib/a.sh".to_string(), Some("s1".to_string()))));
let n = r#"{"session_id":"s1","tool_input":{"notebook_path":"/r/n.ipynb"}}"#;
assert_eq!(from_payload(n).unwrap().0, "/r/n.ipynb");
assert_eq!(from_payload(r#"{"tool_input":{"command":"ls"}}"#), None);
assert_eq!(from_payload("not json"), None);