# @nous/genie

Orchestration for Genie-class action-conditioned world models (Phase 176.5). The
trained dynamics plug in through the `WorldDynamics` interface; a deterministic
`ReferenceWorldDynamics` (a real navigable closed-form world) makes the whole
stack runnable and testable without a GPU.

- **`WorldSession`** — the durable, resumable session: deterministic seed,
  prompt log, pose-keyed `@nous/wm-memory` `MemoryBank`, input/frame history,
  mid-session re-prompting, a transport boundary (WebRTC video + input,
  fail-loud when absent), and a serialisable durable state tree.
- **`GenieWorldService`** — the `/maya/genie/create` endpoint: text prompt →
  interactive world session, persisted to a `SessionStore` (in-memory default;
  MinIO in 176.8.1.2), with resume-after-eviction. (176.5.1.5)
- **`AdversarialPromptController`** — the "adversarially prompt your experience"
  PvP mode: multiple players submit world-rewrite prompts, arbitrated by
  priority
  - per-player cooldown, broadcast through a `@maya/multiplayer` binding.
    (176.5.2.2)
- **`EducationScene`** — the `@metis/lessons` wrapper: a teacher prompt plus
  learning objectives + assessment hooks, tracking real exploration state
  (regions visited, prompts issued, pose) and emitting progress reports.
  (176.5.2.3)
- **Trainable video stack** (`nous_genie/`) — exact-default 8×16×16 VQ-VAE
  tokenizer with a 16,384-entry EMA codebook, causal eight-code latent action
  model, and action/prompt/persistent-memory-conditioned autoregressive
  dynamics. The full 11B recipe is represented without allocating it in local
  gates.

## Not included (external — left unchecked in TODOS)

The large-dataset training, published-quality interactive rollouts, and ≥24 FPS
720p B200 result in `176.5.1.1`–`176.5.1.4` require large-scale accelerated
training on hundreds of thousands of video hours. Their locally actionable
architectures and conditioning paths are implemented above.

```
npx vitest run --root libs/nous/genie
cd libs/nous/genie && python3 -m pytest tests-python/ -q
```
