//! Tipos núcleo de takana, compartidos por el lab, la CLI y el daemon. //! //! Ver `docs/01-architecture.md` y siguientes. Esto es el esqueleto de Fase 0: los tipos y //! contratos están definidos; la lógica pesada (sandbox, fanotify, bus) vive en los otros //! crates y se irá rellenando por fase. pub mod apply; pub mod caps; pub mod compat; pub mod differs; pub mod env; pub mod hash; pub mod installed; pub mod kernel; pub mod lab; pub mod proto; pub mod query; pub mod recipe; pub mod repo; pub mod service; pub mod sign; pub mod store; pub mod swm; pub mod user; pub use caps::{AgentCapsConfig, CapRule}; pub use differs::{why_differs, Causa, Divergencia, Informe}; pub use hash::ArtifactHash; pub use installed::{InstalledDb, InstalledPackage}; pub use compat::Veredicto as CompatVeredicto; pub use recipe::{ CheckOutcome, Compiler, Deps, Evidence, EvidenceCheck, EvidenceKind, LinkMode, Phases, Recipe, Slots, Source, SourceKind, }; pub use repo::{PackageEntry, RepoIndex}; pub use sign::{KeyPair, SigStatus, TrustStore}; pub use store::Store; pub use swm::{Base, BaseCompat, BaseRef, Mutation, PinDiff, Signature, Swm, SwmBuild}; /// Error común del ecosistema takana. #[derive(Debug, thiserror::Error)] pub enum Error { #[error("io: {0}")] Io(#[from] std::io::Error), #[error("serialización: {0}")] Serde(String), #[error("receta inválida: {0}")] Recipe(String), #[error("store: {0}")] Store(String), #[error(transparent)] Other(#[from] anyhow::Error), } pub type Result = std::result::Result;