use std::sync::Arc;
use harness::{Claude, Harness, HarnessError, InstallEvent};
fn main() -> Result<(), HarnessError> {
let claude = Claude::new();
let log: harness::InstallCallback = Arc::new(|ev| match ev {
InstallEvent::Step { text } => eprintln!("• {text}"),
InstallEvent::Stdout { text } | InstallEvent::Stderr { text } => eprintln!(" {text}"),
InstallEvent::Done { ok, .. } => eprintln!("done (ok={ok})"),
});
let r = claude.readiness();
if !r.installed {
claude.install(Arc::clone(&log))?; }
if !r.auth_configured {
claude.login(log)?; }
println!("ready: {}", claude.readiness().ready);
Ok(())
}