Skip to main content

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), and `webdev` (the embedded route bundle `ign webdev deploy`
21//! zips — pure data, no I/O).
22
23pub mod actions;
24pub mod client;
25pub mod config;
26pub mod error;
27pub mod output;
28pub mod poll;
29pub mod rig;
30pub mod session;
31pub mod webdev;