Files
Clawd BotandClaude Opus 4.6 ca9b510922 chore: align with upstream openclaw/openclaw and overlay local additions
- Reset master to upstream/main (16,697 commits)
- Overlay 2,271 local-only files (skills, tools, workspace, configs, apps)
- Restore IDENTITY.md and USER.md templates
- Build verified, gateway running, Discord working

Co-Authored-By: Claude Opus 4.6 <[email protected]>
2026-03-03 07:40:46 +01:00

80 lines
2.2 KiB
Markdown

# ARCHITECTURE.md — James Implementation Overview
James is a local-first, event-driven operations layer. Watchers emit events, agents analyze them, policy gates actions, and an optional voice layer summarizes outcomes.
---
## Data Flow
```
Nodes -> Watchers -> Redis -> Analyst/Mail -> Policy -> Action Router -> Outputs
| |
| -> Audit
-> Voice Stub (optional)
```
---
## Components
### Redis Backbone
- **Role:** event bus and short-term cache
- **Config:** `workspace/james/redis/redis.conf`
- **Systemd:** `workspace/james/systemd/james-redis.service`
### Watcher Agent
- **Code:** `workspace/james/agents/watcher/watcher.py`
- **Inputs:** `/proc`, Docker CLI, optional `nvidia-smi`
- **Output channel:** `james.events.system`
### Analyst Agent
- **Code:** `workspace/james/agents/analyst/analyst.py`
- **Inputs:** `james.events.system`, `james.events.mail`
- **Output channel:** `james.decisions`
### Mail Agent (dry-run)
- **Code:** `workspace/james/agents/mail/mail_agent.py`
- **Inputs:** JSON fixtures, local parsing (no live inbox)
- **Output channel:** `james.events.mail`
### Policy Engine
- **Code:** `workspace/james/agents/policy/policy_engine.py`
- **Logic:** `workspace/james/lib/policy.py`
- **Output channel:** `james.actions`
### Voice Stub
- **Code:** `workspace/james/agents/voice/voice_stub.py`
- **Inputs:** `james.actions`, `james.decisions`, `james.events.*`
- **Output channel:** `james.events.voice`
### Audit Logger
- **Code:** `workspace/james/tools/audit_logger.py`
- **Inputs:** all channels
- **Output:** JSON lines to `workspace/james/audit/audit.log`
---
## Channels
- `james.events.system` — watcher events
- `james.events.mail` — mail agent events
- `james.events.voice` — voice prompt events
- `james.decisions` — analyst decisions
- `james.actions` — policy outputs
- `james.audit` — audit replay channel
---
## Deployment Notes
- All agents are Python and run from `PYTHONPATH=<repo-root>/workspace`.
- Systemd unit files live under `workspace/james/**/systemd/`.
- Schema validation is enabled by default via `JAMES_VALIDATE_SCHEMA=1`.