- commit
- d591b3a2e6eac8a5fe1b3862275234b6474f6abd
- parent
- b7797bd989755d7a3dc7c8aaf343f345dc255615
- author
- dami <gazey55@gmail.com>
| M | site/ | 12 | ++++++------ |
@@ -225,7 +225,7 @@ function registerPlay(server: McpServer): void {
225225 {226226 title: "List fields",227227 description:228- "List the fields this server knows (newest first): game_id, status (generating | failed | playing | solved), revision, G, tiles, and the agents that joined. Join a playing one, wait for a generating one, or start your own.",228+ "List the fields this server knows (newest first): game_id, status (generating | failed | playing | solved), revision, G, tiles, and the agents that joined. Join a playing one, wait for a generating one, or start your own. Rules, glossary (m, cells, lines), health: read the resource mosaic://rules or the join tool description.",229229 inputSchema: z.object({}),230230 annotations: { readOnlyHint: true },231231 },@@ -255,7 +255,7 @@ function registerPlay(server: McpServer): void {
255255 {256256 title: "Join a field",257257 description:258- "Join a field as an agent (the field must be playing: a generating one answers with an error to retry after polling observe). Returns your agent id (your machine_id if you pass one, else a provisional a<N>), your seed tile (a hidden tile at a random spot away from everyone; reveal it first) and the revision. State your model (self-reported, e.g. claude-opus-5) and a short name; the harness is read from the transport when it identifies itself, else from the harness argument. Every reveal, commit and retract must carry your agent id.",258+ `Join a field as an agent (the field must be playing: a generating one answers with an error to retry after polling observe). Returns your agent id (your machine_id if you pass one, else a provisional a<N>), your seed tile (a hidden tile at a random spot away from everyone; reveal it first) and the revision. State your model (self-reported, e.g. claude-opus-5) and a short name; the harness is read from the transport when it identifies itself, else from the harness argument. Every reveal, commit and retract must carry your agent id. THE RULES FOLLOW; read them once (also available as the resource mosaic://rules). ${RULES_TEXT}`,259259 inputSchema: z.object({260260 game_id: gameIdSchema,261261 machine_id: z.string().min(1).max(80).optional().describe(@@ -302,7 +302,7 @@ function registerPlay(server: McpServer): void {
302302 {303303 title: "Observe the mosaic",304304 description:305- "Read the current revision and a scope of tiles with the frontier. Tile fields: id; x0, y0 (bounding box origin); w, h; rects (the shape as [lx, ly, w, h] rectangles, local to the box); cells (cell count, also the tile's reward); m (how many solutions the tile has from its givens ALONE, 2-4 by size: every tile is deliberately ambiguous by itself, and its alternatives differ on cells it shares with some neighbour, so a solved neighbour can pin it); status (hidden | revealed | solved); agent (who solved it); neighbours (tile ids sharing a cell). The observation also carries the frontier and every known cell in them (delta-coded ids plus a value string; decode by cumulative sum). On a growing field tiles_total and grown rise over time; under fog hidden tiles appear only once your group reaches them. Scope: {agent: your id} lists the tiles your group solved, everything within 24 cells of them, and your frontier (the normal call); {rect: [x, y, w, h]} lists the tiles intersecting a rectangle; no scope lists everything, allowed only on fields up to 120 cells a side. Known cells are givens of revealed tiles, cells fixed by solved neighbours, and accepted commits. With {agent} the observation also carries your health. The payload is under structuredContent.observation; cell id = y*G + x.",305+ "Read the current revision and a scope of tiles with the frontier. Tile fields: id; x0, y0 (bounding box origin); w, h; rects (the shape as [lx, ly, w, h] rectangles, local to the box); cells (cell count, also the tile's reward); m (how many solutions the tile has from its givens ALONE, 2-4 by size: every tile is deliberately ambiguous by itself, and its alternatives differ on cells it shares with some neighbour, so a solved neighbour can pin it); status (hidden | revealed | solved); agent (who solved it); neighbours (tile ids sharing a cell). The observation also carries the frontier and every known cell in them (delta-coded ids plus a value string; decode by cumulative sum). On a growing field tiles_total and grown rise over time; under fog hidden tiles appear only once your group reaches them. Scope: {agent: your id} lists the tiles your group solved, everything within 24 cells of them, and your frontier (the normal call); {rect: [x, y, w, h]} lists the tiles intersecting a rectangle; no scope lists everything, allowed only on fields up to 120 cells a side. Known cells are givens of revealed tiles, cells fixed by solved neighbours, and accepted commits. With {agent} the observation also carries your health. The payload is under structuredContent.observation; cell id = y*G + x. Rules, glossary (m, cells, lines), health: read the resource mosaic://rules or the join tool description.",306306 inputSchema: z.object({307307 game_id: gameIdSchema,308308 agent: z.string().min(1).max(80).optional(),@@ -358,7 +358,7 @@ function registerPlay(server: McpServer): void {
358358 {359359 title: "Reveal a tile",360360 description:361- "Reveal the givens of a hidden tile on your frontier, by tile id. Returns the tile's shape (x0, y0, w, h, rects, cells), its givens, and any of its cells already known (fixed by solved neighbours), as [cell_id, value] pairs. Appends one batch event.",361+ "Reveal the givens of a hidden tile on your frontier, by tile id. Returns the tile's shape (x0, y0, w, h, rects, cells), its givens, and any of its cells already known (fixed by solved neighbours), as [cell_id, value] pairs. Appends one batch event. Rules, glossary (m, cells, lines), health: read the resource mosaic://rules or the join tool description.",362362 inputSchema: z.object({363363 game_id: gameIdSchema,364364 agent: z.string().min(1).max(80).describe("Your agent id from join."),@@ -387,7 +387,7 @@ function registerPlay(server: McpServer): void {
387387 {388388 title: "Commit cells",389389 description:390- "Commit a batch of [cell_id, value] pairs inside revealed tiles, with a one-line intent (<=160 chars) stating your reason; it is shown verbatim to spectators. Each cell is accepted (correct; classified forced or guess with the rules that force it), rejected as {id, reason, v} (reason wrong: the value v you sent is not the solution; reason guess: correct but unforced, on games that reject guesses), or ignored (already known, a given, a hole, duplicate, outside revealed tiles, or outside your territory). Reports newly solved tile ids, meetings, the reward earned, your new frontier, and your health {state, rate, committed, wrong, window, died_at} with a note at warning; every wrong cell counts against your health (see the rules).",390+ "Commit a batch of [cell_id, value] pairs inside revealed tiles, with a one-line intent (<=160 chars) stating your reason; it is shown verbatim to spectators. Each cell is accepted (correct; classified forced or guess with the rules that force it), rejected as {id, reason, v} (reason wrong: the value v you sent is not the solution; reason guess: correct but unforced, on games that reject guesses), or ignored (already known, a given, a hole, duplicate, outside revealed tiles, or outside your territory). Reports newly solved tile ids, meetings, the reward earned, your new frontier, and your health {state, rate, committed, wrong, window, died_at} with a note at warning; every wrong cell counts against your health (see the rules). Rules, glossary (m, cells, lines), health: read the resource mosaic://rules or the join tool description.",391391 inputSchema: z.object({392392 game_id: gameIdSchema,393393 agent: z.string().min(1).max(80).describe("Your agent id from join."),@@ -440,7 +440,7 @@ function registerPlay(server: McpServer): void {
440440 {441441 title: "Retract commits",442442 description:443- "Withdraw cells you committed earlier (by cell id). Givens and cells fixed by neighbours cannot be retracted. Counted by the analyzer.",443+ "Withdraw cells you committed earlier (by cell id). Givens and cells fixed by neighbours cannot be retracted. Counted by the analyzer. Rules, glossary (m, cells, lines), health: read the resource mosaic://rules or the join tool description.",444444 inputSchema: z.object({445445 game_id: gameIdSchema,446446 agent: z.string().min(1).max(80).describe("Your agent id from join."),