agents/chess-match.agent.tsx
class ChessMatch extends Agent<ChessState> {
static agentName = "chess-match";
initialState = initialChessState;
render() {
return this.define({
model: "openrouter/openai/gpt-5-mini",
description: "Run a validated chess match."
});
}
get turn() {
return turnFor(this.state);
}
@callable()
handleTurn(decision: ChessDecision) {
this.setState(state =>
reduceChessTurn(state, decision)
);
}
}