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…
⎇ 895401b479b28cb8aa2a4473e3526d0e77f388ac
crates/hammer-core/src/lib.rs
History
Who touched what
raw
cierre #2 del SDD 17: `hammer why-differs` — el diffoscope propio
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 differs;
11pub mod hash;
12pub mod installed;
13pub mod proto;
14pub mod query;
15pub mod recipe;
16pub mod repo;
17pub mod sign;
18pub mod store;
19pub mod swm;
20
21pub use caps::{AgentCapsConfig, CapRule};
22pub use differs::{why_differs, Causa, Divergencia, Informe};
23pub use hash::ArtifactHash;
24pub use installed::{InstalledDb, InstalledPackage};
25pub use compat::Veredicto as CompatVeredicto;
26pub use recipe::{
27 CheckOutcome, Compiler, Deps, Evidence, EvidenceCheck, EvidenceKind, LinkMode, Phases, Recipe,
28 Slots, Source, SourceKind,
29};
30pub use repo::{PackageEntry, RepoIndex};
31pub use sign::{KeyPair, SigStatus, TrustStore};
32pub use store::Store;
33pub use swm::{Base, BaseCompat, BaseRef, Mutation, PinDiff, Signature, Swm, SwmBuild};
34
35/// Error común del ecosistema hammer.
36#[derive(Debug, thiserror::Error)]
37pub enum Error {
38 #[error("io: {0}")]
39 Io(#[from] std::io::Error),
40 #[error("serialización: {0}")]
41 Serde(String),
42 #[error("receta inválida: {0}")]
43 Recipe(String),
44 #[error("store: {0}")]
45 Store(String),
46 #[error(transparent)]
47 Other(#[from] anyhow::Error),
48}
49
50pub type Result<T> = std::result::Result<T, Error>;