-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
phase:4Phase 4: Dynamic capability demosPhase 4: Dynamic capability demos
Milestone
Description
Extends the spectator TUI (#122) into an interactive mode. The human player plays against an LLM-driven AI opponent, assisted by a second AI acting as a chess tutor via a chat panel.
This is the "and then we go further" follow-up to the arena0-parity demo.
Layout (extends #122)
- Left: ASCII chess board — human selects moves via arrow keys + enter, or algebraic notation input
- Top-right: Move history
- Bottom-right: Chat panel — human types natural language questions ("is Nf3 good here?", "what's the plan?"), tutor responds conversationally via scoped LLM capability
- Bottom bar: Connection status, turn indicator
Architecture
- The human's node spawns a tutor child process via
host.executor().runBytes(wasm) - The tutor receives a narrowed capability set: read-only board access (
getState,getLegalMoves,getFen) + scoped MCP client capability to the LLM — but NOTapplyMove - The human commits moves directly through the session protocol; the tutor only advises
- The AI opponent on the other node is a standalone LLM agent (no consultant sub-process)
This is the primary showcase for scoped capability delegation (#124 verifies the permission boundary).
Depends on: #122 (spectator TUI), #120 (MCP client capability), #124 (delegation mechanism).
Acceptance criteria
- Human can select and submit moves interactively (arrow keys or algebraic notation)
- Chat panel accepts natural language input and returns tutor responses
- Tutor process holds read-only board capability (cannot call applyMove)
- Tutor process holds scoped LLM capability for generating advice
- Game end states handled (checkmate, stalemate, resignation)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
phase:4Phase 4: Dynamic capability demosPhase 4: Dynamic capability demos