ignition_core/lib.rs
1//! Core library for `ign` — the Ignition 8.3+ gateway CLI.
2//!
3//! This crate holds everything the binary (and, from Phase 6, the TUI) shares:
4//! config/profile management, the gateway HTTP client, actions, the typed
5//! error taxonomy, and output models.
6//!
7//! Invariants (ARCHITECTURE.md layering, made structural in Phase 1):
8//! - Core compiles without clap and without ratatui.
9//! - Core never prints to stdout — it returns models; the binary renders.
10//! - Actions are plain functions over injected [`client::GatewayApi`]-style
11//! seams, so the CLI and the TUI call the same code.
12//!
13//! Module map: `error` (the LOCKED exit-code taxonomy + failure envelope),
14//! `output` (the LOCKED success envelope), `config` (discovery, profiles,
15//! secrets, rigs), `client` (the [`client::GatewayApi`] seam + GatewayInfo),
16//! `session` (the [`session::Session`] execution seam — the ONE resolution
17//! choreography every auth/gateway client flows through), `poll` (the
18//! shared wait/retry engine), `rig` (the compose shell-out
19//! engine — runner seam, discovery, pre-flight), `actions` (the shared
20//! verb layer), `webdev` (the embedded route bundle `ign webdev deploy`
21//! zips — pure data, no I/O), and `module` (the pinned third-party
22//! `.modl` artifact registry, fetch, and cache-verify seam — Phase 15).
23
24pub mod actions;
25pub mod client;
26pub mod config;
27pub mod e2e;
28pub mod error;
29pub mod module;
30pub mod output;
31pub mod poll;
32pub mod rig;
33pub mod session;
34pub mod webdev;