Батч 0: агентный набор инструментов (мост, валидация, CLI, доки)
Движок (packages/engine/src/agent/):
- types.ts: SceneAgent/AgentHost/Invariant/SnapshotLayer — каркас жанронезависим
- EngineAgent: снапшот+инварианты, step/waitFor, атомарные tapVirtual/press/key
- invariants.ts: checkFinite/checkRange/checkBounds/checkWalkable
- Engine.stepTick/stepTicks/tickCount; GameLoop.setManual/resetTiming
- InputManager.inject*: инъекция через те же структуры ввода
- DialogueRunner: nodeId/choices/waitingForChoice раскрыты для снапшота

Игра (apps/game):
- agent/GameAgent.ts: window.__agent (DEV): snapshot/step/waitFor/walkTo/runDialogue
- agent/snapshot.ts: чистые слои hero/enemies/npcs/dialogue/game
- data/validate.ts: runtime-валидация контента → Invariant[] (нашла 4 врага на воде)
- сцены реализуют SceneAgent: whitelist-команды, lastToast в снапшоте

Инструменты и доки:
- tools/agent-lib.mjs (openGame/AgentClient/Checks), tools/agent.mjs (CLI check/run/snapshot/screenshot/dev)
- tools/checks/agent-invariants.mjs; смоуки переписаны на мост; maps:fresh в gen.test.ts
- docs/llms.txt, docs/engine/agent.md, docs/engine/practices.md (живой документ)
- CLAUDE.md, docs/engine/README.md, docs/demo.md обновлены

Co-Authored-By: Claude Code <noreply@anthropic.com>
1 parent 1071da0 commit 9ce308a9e2809a0ee27a495fdf65c5a3e5c6e232
@root root authored 10 hours ago
Showing 38 changed files
View
CLAUDE.md
View
apps/game/src/Game.ts
View
apps/game/src/agent/GameAgent.ts 0 → 100644
View
apps/game/src/agent/__tests__/snapshot.test.ts 0 → 100644
View
apps/game/src/agent/snapshot.ts 0 → 100644
View
apps/game/src/data/__tests__/validate.test.ts 0 → 100644
View
apps/game/src/data/locations.ts
View
apps/game/src/data/validate.ts 0 → 100644
View
apps/game/src/scenes/LocationScene.ts
View
apps/game/src/scenes/MenuScene.ts
View
apps/game/src/systems/DialogueSystem.ts
View
docs/demo.md
View
docs/engine/README.md
View
docs/engine/agent.md 0 → 100644
View
docs/engine/practices.md 0 → 100644
View
docs/llms.txt 0 → 100644
View
package.json
View
packages/engine/src/agent/EngineAgent.ts 0 → 100644
View
packages/engine/src/agent/__tests__/EngineAgent.test.ts 0 → 100644
View
packages/engine/src/agent/__tests__/invariants.test.ts 0 → 100644
View
packages/engine/src/agent/invariants.ts 0 → 100644
View
packages/engine/src/agent/types.ts 0 → 100644
View
packages/engine/src/core/Engine.ts
View
packages/engine/src/core/GameLoop.ts
View
packages/engine/src/core/__tests__/GameLoop.manual.test.ts 0 → 100644
View
packages/engine/src/dialogue/DialogueRunner.ts
View
packages/engine/src/index.ts
View
packages/engine/src/input/InputManager.ts
View
packages/engine/src/input/__tests__/InputManager.test.ts
View
tools/agent-lib.mjs 0 → 100644
View
tools/agent.mjs 0 → 100644
View
tools/checks/agent-invariants.mjs 0 → 100644
View
tools/maps/gen.test.ts
View
tools/smoke-act1.mjs
View
tools/smoke-ponds.mjs
View
tools/smoke-quest.mjs
View
tools/smoke-zvenets.mjs
View
tools/smoke.mjs