Architecture
Five clean layers. Every line in plain TypeScript.
CLAW NOVA is built as five layers with clean boundaries. No SaaS dependency sits in the critical path; everything works against your local machine.
The layers
1. Interface
Next.js App Router · React 19 · shadcn/ui · Tailwind · Framer Motion. Three route groups: marketing, docs, and the authenticated app.
2. Hermes runtime
Pure TypeScript, no React. The loop is planner → executor → memory. The runtime knows nothing about the UI; it can be embedded in a Node CLI or a Tauri app without modification.
3. AI gateway
A streaming OpenAI-compatible client. Reads endpoint, model and key from the settings store at call time, so switching providers is instantaneous and per-session.
4. Storage
Dexie over IndexedDB. Tables for projects, memories, knowledge, workflows, prompts, settings, sessions and observations. Optional Qdrant for vector search at scale.
5. Web3
wagmi + viem for EVM, @solana/wallet-adapter for Solana. Wallet address is identity; sign-in is SIWE/SIWS message-only.
Data flow
User goal
↓
Hermes.planner ── (chat) ─→ AI gateway ──→ Model
↓ structured Plan
Hermes.executor ──→ tools[N] ──→ observations
↓
Hermes.memory ──→ Dexie (IndexedDB)
↓
UI streams plan + observations live
Boundary discipline
The runtime imports zero React. The UI imports the runtime as data. This means:
- Hermes is testable in isolation.
- A future native shell can reuse Hermes verbatim.
- Tool authors write plain TypeScript, not React components.