(path: &Path)
| 177 | // ── Helpers ───────────────────────────────────────────────────────────────── |
| 178 | |
| 179 | fn read_manifest(path: &Path) -> AgentResult<HookManifest> { |
| 180 | let content = std::fs::read_to_string(path).map_err(|e| AgentError::ConfigError { |
| 181 | operation: "read manifest".to_string(), |
| 182 | path: path.to_path_buf(), |
| 183 | reason: e.to_string(), |
| 184 | })?; |
| 185 | serde_json::from_str(&content).map_err(|e| AgentError::ConfigError { |
| 186 | operation: "parse manifest".to_string(), |
| 187 | path: path.to_path_buf(), |
| 188 | reason: e.to_string(), |
| 189 | }) |
| 190 | } |
| 191 | |
| 192 | fn expand_target(target: &str) -> AgentResult<PathBuf> { |
| 193 | if target == "~" { |
no outgoing calls
no test coverage detected