arcature-cli 2026.1.0

Developer lifecycle CLI for Arcature applications.
Documentation
use crate::error::CommandError;
use crate::process::supervise;
use crate::project;
use crate::tool::{Tool, probe, warn_if_unverified};

pub(crate) fn execute() -> Result<(), CommandError> {
    let project = project::discover()?;
    for tool in [Tool::Node, Tool::Pnpm] {
        warn_if_unverified(tool, probe(tool)?);
    }
    let vite = project
        .frontend_root()
        .join("node_modules/vite/bin/vite.js");
    if !vite.is_file() {
        return Err(crate::tool::ToolError::MissingProjectExecutable {
            path: vite,
            advice: "run `pnpm install --frozen-lockfile` in the frontend directory",
        }
        .into());
    }
    supervise(&project)?;
    Ok(())
}