arcature-cli 2026.2.0

Developer lifecycle CLI for Arcature applications.
Documentation
//! `arc package` — assemble a production artifact bundle (AP2.1-10).
//!
//! `arc package` is the canonical production packaging command (NOT
//! `arc release`, which is RV2-owned framework publishing — ADR-0005).
//! It takes the app's `arc build` output (the release binary + Vite's
//! `public/build/`) and assembles a deployable bundle at
//! `dist/<app-target>/`:
//!
//! ```text
//! dist/<app-target>/
//!     app-binary
//!     public/build/...
//!     manifest.json
//!     checksums.sha256
//!     sbom.spdx.json
//!     licenses/
//! ```
//!
//! # Preconditions
//!
//! `arc build` must have run (the release binary and `public/build/` must
//! exist). `arc package` runs `arc build` itself if the build output is
//! missing, so the common workflow is just `arc package`. An explicit
//! `--no-build` skips the precondition build (for CI that already built).
//!
//! # Honesty (AGENTS.md §9, §24)
//!
//! The bundle is non-SSR: a native Rust app + built frontend assets (no
//! Node on the host). If SSR is enabled (future), `arc package` will
//! represent the Node runtime explicitly — it does NOT fake "no Node".
//! The SBOM declares only what `arc package` knows; the license inventory
//! carries only the LICENSE texts the repo contains. No zero-downtime or
//! deploy completeness is claimed from packaging alone (PROGRAM.md
//! AP2.1-10: "do not advertise zero downtime from a happy-path unit test").

mod bundle;
mod checksums;
mod deps;
mod error;
mod licenses;
mod manifest;
mod run;
mod sbom;
mod target;
mod timestamp;
mod version;
mod workspace;

pub(crate) use error::PackageError;
/// Execute `arc package`: build (unless `--no-build`), assemble the bundle,
/// and report the bundle path.
pub(crate) use run::execute;