tawasuyu

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

⎇ b580c5bfc5b134c64a571136441f585c025deaaf crates/hammer-core/src/lib.rs Rust · 48 siq'ikuna · 1.4 KB Ñawpa willay Pi imata llamkarqan ch'uya

H4b: gate de compatibilidad de configs en la receta real + `hammer install` (SDD 15 §H4) 27066776b · sergio ·

1//! Tipos núcleo de hammer, compartidos por el lab, la CLI y el daemon.
2//!
3//! Ver `docs/01-architecture.md` y siguientes. Esto es el esqueleto de Fase 0: los tipos y
4//! contratos están definidos; la lógica pesada (sandbox, fanotify, bus) vive en los otros
5//! crates y se irá rellenando por fase.
6
7pub mod apply;
8pub mod caps;
9pub mod compat;
10pub mod hash;
11pub mod installed;
12pub mod proto;
13pub mod query;
14pub mod recipe;
15pub mod repo;
16pub mod sign;
17pub mod store;
18pub mod swm;
19
20pub use caps::{AgentCapsConfig, CapRule};
21pub use hash::ArtifactHash;
22pub use installed::{InstalledDb, InstalledPackage};
23pub use compat::Veredicto as CompatVeredicto;
24pub use recipe::{
25    CheckOutcome, Compiler, Deps, Evidence, EvidenceCheck, EvidenceKind, LinkMode, Phases, Recipe,
26    Slots, Source, SourceKind,
27};
28pub use repo::{PackageEntry, RepoIndex};
29pub use sign::{KeyPair, SigStatus, TrustStore};
30pub use store::Store;
31pub use swm::{Base, BaseCompat, BaseRef, Mutation, PinDiff, Signature, Swm, SwmBuild};
32
33/// Error común del ecosistema hammer.
34#[derive(Debug, thiserror::Error)]
35pub enum Error {
36    #[error("io: {0}")]
37    Io(#[from] std::io::Error),
38    #[error("serialización: {0}")]
39    Serde(String),
40    #[error("receta inválida: {0}")]
41    Recipe(String),
42    #[error("store: {0}")]
43    Store(String),
44    #[error(transparent)]
45    Other(#[from] anyhow::Error),
46}
47
48pub type Result<T> = std::result::Result<T, Error>;