claudy 0.2.0

Modern multi-provider launcher for Claude CLI
fn main() {
    #[cfg(feature = "analytics-ui")]
    {
        let manifest_dir =
            std::env::var("CARGO_MANIFEST_DIR").expect("CARGO_MANIFEST_DIR must be set by cargo");
        let ui_dir = std::path::Path::new(&manifest_dir).join("ui");
        let dist_dir = ui_dir.join("dist");

        if !dist_dir.join("assets").exists() && ui_dir.join("package.json").exists() {
            let npm = if cfg!(windows) { "npm.cmd" } else { "npm" };

            let status = std::process::Command::new(npm)
                .arg("ci")
                .current_dir(&ui_dir)
                .status()
                .expect("failed to run npm ci");
            assert!(status.success(), "npm ci failed for analytics dashboard");

            let status = std::process::Command::new(npm)
                .arg("run")
                .arg("build")
                .current_dir(&ui_dir)
                .status()
                .expect("failed to run npm build");
            assert!(status.success(), "npm build failed for analytics dashboard");
        }

        tauri_build::build();
    }
}