# runtime/ — Infraestructura de ejecución **Propósito.** Servicios cross-cutting que el Init y los módulos consumen: bus IPC interno, content-addressed storage, sandbox WASM, rule engine + audit log, y un ente de smoke test. ## Crates | crate | tipo | rol | | ---------------------- | ---- | -------------------------------------------------- | | `arje-bus` | lib | Unix SOCK_STREAM + postcard framing | | `arje-cas` | lib | Content-addressed storage SHA-256: blobs + audit | | `arje-wasm` | lib | Encarna `Payload::Wasm` vía `wasmi` | | `arje-brain-rules` | lib | Motor determinista: rules + engine O(1) + dispatch | | `arje-brain-cognitive` | lib | Observer estadístico + crystallize de patrones | | `arje-brain-audit` | lib | Audit chain con hashes anclados al CAS | | `arje-brain` | lib | Integración: introspect + autopromote + metrics | | `arje-echo` | bin | Ente prueba — provee `Capability::Endpoint(echo)` | ## Dependencias - `arje-bus` ← `tokio` + `postcard`. Consumido por `init/arje-zero`. - `arje-cas` ← `sha2` + `sled`. Consumido por `arje-brain-audit` y `arje-wasm`. - **Brain split (DAG limpio)**: `arje-brain-rules` (base) ← `arje-brain-cognitive` ← `arje-brain-audit` ← `arje-brain` (umbrella de integración). - `arje-brain` re-exporta la API de los 3 sub-crates para los consumidores históricos (`arje-zero`, `chasqui`). ## Invariantes - Bus: framing length-prefixed, sin re-orden; un cliente=una sesión. - CAS: addresses inmutables; un blob = sha256(content) único. - Audit: cada evento del bus se hash-encadena al log en CAS. ## Estado LOC ~3.4K, tests parciales. Brain tiene 11 TODOs (reglas declarativas complejas pendientes). Ver `docs/changelog/runtime.md`.