Skip to main content

ironclad_core/
lib.rs

1//! # ironclad-core
2//!
3//! Core types, configuration, error handling, and encrypted credential storage
4//! for the Ironclad agent runtime. This is the leaf crate in the dependency
5//! graph -- every other workspace crate depends on it.
6//!
7//! ## Key Types
8//!
9//! - [`IroncladConfig`] -- Central configuration loaded from `ironclad.toml`
10//! - [`IroncladError`] / [`Result`] -- Unified error type (13 variants) used across all crates
11//! - [`Keystore`] -- Encrypted key-value storage for API keys and secrets
12//! - [`SurvivalTier`] -- Financial health tier derived from on-chain balance
13//!
14//! ## Modules
15//!
16//! - `config` -- Configuration structs, TOML parsing, tilde expansion, validation
17//! - `error` -- `IroncladError` enum and `Result` type alias
18//! - `keystore` -- Encrypted JSON file store with machine-key auto-unlock
19//! - `personality` -- OS/firmware personality loading from workspace
20//! - `style` -- Terminal theme (CRT, typewriter effect, icons)
21//! - `types` -- Shared domain enums: `SurvivalTier`, `AgentState`, `ApiFormat`,
22//!   `ModelTier`, `PolicyDecision`, `RiskLevel`, `SkillManifest`, etc.
23
24pub mod config;
25pub mod error;
26pub mod input_capability_scan;
27pub mod keystore;
28pub mod personality;
29pub mod security;
30pub mod style;
31pub mod types;
32
33pub use config::{IroncladConfig, home_dir, resolve_config_path};
34pub use error::{IroncladError, Result};
35pub use keystore::Keystore;
36pub use types::*;