refactor(brain): A2 — split arje-brain en 3 sub-crates

DAG de dependencias limpio (modularidad horizontal):
- arje-brain-rules     — rules + engine + dispatch (motor determinista)
- arje-brain-cognitive — observer + crystallize (estadística)
- arje-brain-audit     — audit chain → CAS (accountability)
- arje-brain           — umbrella de integración (introspect +
                         autopromote + metrics + loader)

Habilitador clave: TimedEvent movido de observer.rs a rules.rs
(engine lo necesitaba, era el único acoplo que rompía el DAG).

arje-brain re-exporta la API de los 3 sub-crates: arje-zero y chasqui
(consumidores) no requieren cambios. cargo check --workspace verde.
24 tests del brain pasan (4 rules + 6 cognitive + 5 audit + 9 umbrella).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
sergio
2026-05-20 00:24:48 +00:00
parent b83d40a833
commit 848fc7a072
21 changed files with 221 additions and 89 deletions
+15 -11
View File
@@ -6,21 +6,25 @@ rule engine + audit log, y un ente de smoke test.
## Crates
| crate | tipo | rol |
| ------------- | ---- | ----------------------------------------------------------- |
| `arje-bus` | lib | Unix SOCK_STREAM + postcard framing. Announce/Invoke/List |
| `arje-cas` | lib | Content-addressed storage SHA-256: blobs Wasm + audit log |
| `arje-wasm` | lib | Encarna `Payload::Wasm` vía `wasmi` en thread dedicado |
| `arje-brain` | lib | Rule engine + observer estadístico + audit chain con CAS |
| `arje-echo` | bin | Ente prueba — provee `Capability::Endpoint(echo)` |
| 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 log)
y `arje-wasm` (blobs).
- `arje-brain``arje-bus`, `arje-cas`. Consumido por Init para
observabilidad estadística + reglas declarativas.
- `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