# @nous/wm-ops

Serving operations and evaluation for the Phase 176 world models (Phase 176.8,
TS side; the Rust inference runtime lives in `@nous/wm-serving`).

- **`DurableSessionStore`** — persists a session's durable state tree (memory
  bank + seed + prompt log) gzip-compressed into object storage (MinIO boundary)
  with HMAC-signed, verifiable `session_id → resumable URL`. (176.8.1.2)
- **`MultiplayerWorld`** — two+ Maya users share one Genie world (same seed +
  memory bank); per-tick inputs merge deterministically and simultaneous prompts
  resolve by a deterministic order so clients never diverge. (176.8.1.3)
- **`GpuAutoscaler`** — session↔GPU affinity (stickiness), utilisation-based
  scale up/down, and graceful drain that migrates a node's sessions to the
  least-loaded survivors without dropping them. (176.8.1.4)
- **`BenchmarkHarness`** — runs a checkpoint across the standard suites
  (Atari-100k, Crafter, Procgen, DMLab-30, Minecraft-diamond, MineRL BASALT,
  RT-Bench) and emits human-normalised scorecards with mean/median HNS.
  (176.8.2.1)
- **`PoetEvaluator`** — the POET co-evolutionary loop (mutate →
  minimal-criterion
  - novelty filter → optimise → transfer) scoring emergent complexity.
    (176.8.2.2)
- **`WorldModelTrajectoryCollector`** — the Phase 85 flywheel extension: ingests
  session transitions, computes a real quality label, and emits
  `@nous/world-model-core` episodes for continual retraining. (176.8.2.3)
- **`HumanFactorsEvaluator`** — consistency / memory-fidelity / prompt-adherence
  / enjoyability scoring from paid raters with an LLM-judge backstop, driving a
  promotion gate. (176.8.2.4)

```
npx vitest run --root libs/nous/wm-ops
```
