67c0fcad11
El loader vivía partido: arje-brain/loader.rs cargaba EntityCards Y Rules, mientras brahman-cards tenía su propia infra de card-loading. Resolución por linaje: - Card-loading (load_card_file, extract_card_from_json) → brahman-cards (entity_loader.rs). Toda card-loading del ecosistema vive ahí. - Rule-loading (load_rules_file, extract_rules_from_json) → arje-brain-rules (loader.rs), junto a la definición de Rule. - arje-brain/loader.rs eliminado. arje-brain re-exporta ambos para compat de consumidores (arje-zero). cargo check --workspace verde. Tests: 13 arje-brain-rules + 31 brahman-cards. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
16 lines
611 B
Rust
16 lines
611 B
Rust
//! arje-brain-rules — motor de reglas determinista.
|
|
//!
|
|
//! Capa base del brain: tipos de regla (triplet Subject+Event+Action),
|
|
//! `RuleEngine` con dispatch O(1) por discriminante de evento, y el
|
|
//! ejecutor async de acciones. Sin dependencias estadísticas ni de UI.
|
|
|
|
pub mod rules;
|
|
pub mod engine;
|
|
pub mod dispatch;
|
|
pub mod loader;
|
|
|
|
pub use rules::{Action, EventKind, EventPattern, LogLevel, Rule, Scope, TimedEvent};
|
|
pub use engine::{EventKindDiscriminant, RuleEngine, SubjectInfo};
|
|
pub use dispatch::{dispatch_actions, ActionSink, NullSink};
|
|
pub use loader::{extract_rules_from_json, load_rules_file};
|