diff --git a/nexus/README.md b/nexus/README.md new file mode 100644 index 00000000..1f5adb2e --- /dev/null +++ b/nexus/README.md @@ -0,0 +1,48 @@ +# Nexus Symbolic Engine (Layer 4) + +This directory contains the core symbolic reasoning and agent state management components for the Nexus. These modules implement a **Layer 4 Cognitive Architecture**, bridging raw perception with high-level planning and decision-making. + +## Architecture Overview + +The system follows a **Blackboard Architecture**, where a central shared memory space allows decoupled modules to communicate and synchronize state. + +### Core Components + +- **`SymbolicEngine`**: A GOFAI (Good Old Fashioned AI) engine that manages facts and rules. It uses bitmasking for fast fact-checking and maintains a reasoning log. +- **`AgentFSM`v*: A Finite State Machine for agents. It transitions between states (e.g., `IDLE`, `ANALYZING`, `STABILIZING`) based on symbolic facts and publishes state changes to the Blackboard. +- **`Blackboard`**: The central communication hub. It allows modules to `write` and `read` state, and `subscribe` to changes. +- **`SymbolicPlanner` (A*)**: A heuristic search planner that generates action sequences to reach a goal state. +- **`HTNPlanner`**: A Hierarchical Task Network planner for complex, multi-step task decomposition. +- **`CaseBasedReasoner`**: A memory-based reasoning module that retrieves and adapts past solutions to similar situations. +- **`NeuroSymbolicBridge`**: Translates raw perception data (e.g., energy levels, stability) into symbolic concepts (e.g., `CRITICAL_DRAIN_PATTERN`). +- **`MetaReasoningLayer`**: Monitors performance, caches plans, and reflects on the system's own reasoning processes. + +## Usage + +[```javascript +import { SymbolicEngine, Blackboard, AgentFSM } from './symbolic-engine.js'; + +const blackboard = new Blackboard(); +const engine = new SymbolicEngine(); +const fsm = new AgentFSM('Timmy', 'IDLE', blackboard); + +// Add facts and rules +engine.addFact('activePortals', 3); +engine.addRule( + (facts) => facts.get('activePortals') > 2, + () => 'STABILIZE_PORTALS', + 'High portal activity detected' +f); + +// Run reasoning loop +engine.reason(); +fsm.update(engine.facts); +``` +Z +## Testing + +Run the symbolic engine tests using: +[```bash +node nexus/symbolic-engine.test.js +``` +Z \ No newline at end of file