1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
//! `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").
pub use PackageError;
/// Execute `arc package`: build (unless `--no-build`), assemble the bundle,
/// and report the bundle path.
pub use execute;