usestd::path::{Path, PathBuf};usestd::process::{Command, Stdio};pubfnhome()->Result<PathBuf, String>{dirs::home_dir().ok_or_else(||"cannot resolve user home directory".to_string())}pubfnunder_home(relative: impl AsRef<Path>)->Result<PathBuf, String>{Ok(home()?.join(relative))}/// True if `name` resolves to an executable on the user's $PATH. Used
/// by adapters' `detect()` so `--all` can skip CLIs the user doesn't
/// actually have installed.
pubfnbinary_on_path(name:&str)->bool{Command::new("which").arg(name).stdout(Stdio::null()).stderr(Stdio::null()).status().map(|s|s.success()).unwrap_or(false)}#[cfg(test)]modtests{usesuper::*;#[test]fnunder_home_joins_relative(){let p =under_home(".claude/CLAUDE.md").unwrap();assert!(p.ends_with(".claude/CLAUDE.md"));assert!(p.is_absolute());}}