agent_shell_parser/
hook.rs1use serde::Deserialize;
2
3#[derive(Debug, Deserialize)]
4pub struct WorktreeCreateInput {
5 pub name: String,
6 pub cwd: String,
7 #[serde(default)]
8 pub session_id: Option<String>,
9}
10
11#[derive(Debug, Deserialize)]
12pub struct WorktreeRemoveInput {
13 pub worktree_path: String,
14 #[serde(default)]
15 pub session_id: Option<String>,
16}
17
18#[derive(Debug, Deserialize)]
19pub struct PreToolUseInput {
20 pub tool_name: String,
21 #[serde(default)]
22 pub tool_input: serde_json::Value,
23 #[serde(default)]
24 pub cwd: Option<String>,
25}
26
27pub fn parse_input<T: serde::de::DeserializeOwned>() -> Result<T, crate::Error> {
28 let input = std::io::read_to_string(std::io::stdin())?;
29 Ok(serde_json::from_str(&input)?)
30}