Files
le-mystere-professeur-zacus/docs/architecture/component-map.md
T
L'électron rare 20aed903ba feat: AI integration — voice pipeline, hints engine, MCP server, analytics, security
- Voice pipeline: ESP32 WebSocket client → voice bridge → LLM → Piper TTS (Tower :8001)
- Hints engine: 3 puzzles (LA_440, LEFOU_PIANO, QR_FINALE), anti-cheat, 3 hint levels
- MCP hardware server: 6 tools (puzzle, audio, LED, camera, scenario, status), stdio transport
- Analytics: ESP32 module + 6 web endpoints + Dashboard UI with chat interface
- Security: auth middleware (Bearer NVS), rate limiting, input validation on 30 endpoints
- Frontend: code-split (1.1MB → 210KB initial), ErrorBoundary, API timeout, WS reconnect
- Tests: 24 Python + 38 TypeScript + 18 MCP = 80 project tests (+ 19 mascarade)
- Specs: AI_INTEGRATION_SPEC, MCP_HARDWARE_SERVER_SPEC, QA_TEST_MATRIX_SPEC
- Docs: SECURITY, DEPLOYMENT_RUNBOOK, voice pipeline guide, AI architecture map
- 6 AI agent definitions (.github/agents/ai_*.md)
- TUI orchestration script (tools/dev/zacus_tui.py)
- Docker compose TTS for Tower + KXKM-AI
- CHANGELOG, README, mkdocs.yml updated
- Cycle detection (DFS) in runtime3 validator
- Sprint plan: plans/SPRINT_AI_INTEGRATION.md

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 13:52:45 +01:00

1.1 KiB

Component Map

flowchart LR
  subgraph Studio
    App["App.tsx"]
    Designer["BlocklyDesigner.tsx"]
    ScenarioLib["lib/scenario.ts"]
    Runtime3Lib["lib/runtime3.ts"]
    ApiLib["lib/api.ts"]
  end

  subgraph Canon
    ScenarioYaml["game/scenarios/zacus_v2.yaml"]
  end

  subgraph Runtime3
    CompilerPy["tools/scenario/compile_runtime3.py"]
    RuntimeCommon["tools/scenario/runtime3_common.py"]
    SimPy["tools/scenario/simulate_runtime3.py"]
  end

  subgraph Device
    Firmware["hardware/firmware"]
    StoryCore["lib/story runtime adapter"]
    UI["Freenove UI + API"]
  end

  ScenarioYaml --> ScenarioLib
  Designer --> ScenarioLib
  ScenarioLib --> Runtime3Lib
  Runtime3Lib --> App
  ScenarioYaml --> CompilerPy
  CompilerPy --> RuntimeCommon
  RuntimeCommon --> SimPy
  RuntimeCommon --> Firmware
  Firmware --> StoryCore
  StoryCore --> UI
  ApiLib --> UI

Notes

  • The React studio owns authoring ergonomics and previews.
  • The Python compiler/simulator owns deterministic offline validation.
  • Firmware consumes the Runtime 3 contract and exposes runtime APIs.