arcature-cli 2026.1.0

Developer lifecycle CLI for Arcature applications.
Documentation
use super::{HealthStatus, NumericVersion, Tool};

pub(crate) fn certification_status(tool: Tool, version: NumericVersion) -> HealthStatus {
    let certified = match tool {
        Tool::Rustc | Tool::Cargo => version == NumericVersion::new(1, 97, 1),
        Tool::Node => version.major == 24 && version.minor >= 19,
        Tool::Pnpm => version == NumericVersion::new(11, 20, 0),
    };
    if certified {
        HealthStatus::Ok
    } else {
        HealthStatus::Unverified
    }
}

pub(crate) fn warn_if_unverified(tool: Tool, version: NumericVersion) {
    if certification_status(tool, version) == HealthStatus::Unverified {
        eprintln!(
            "warning: {} {} is outside Arcature's certified toolchain; continuing unverified",
            tool.program(),
            version
        );
    }
}