Tool tree
gradeNot graded
read_boardAnswer
Read the live Sudoku grid, empty-cell candidates, locks, conflicts, and the next safe technique. Use this before acting. Do not print the full solution. Follow board.agentPolicy.
View tool JSON
{
"name": "read_board",
"kind": "answer",
"impl": "imperative",
"description": "Read the live Sudoku grid, empty-cell candidates, locks, conflicts, and the next safe technique. Use this before acting. Do not print the full solution. Follow board.agentPolicy.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}select_cellAction
Select a cell so the human can see where you are looking. Does not change digits.
View tool JSON
{
"name": "select_cell",
"kind": "act",
"impl": "imperative",
"description": "Select a cell so the human can see where you are looking. Does not change digits.",
"inputSchema": {
"type": "object",
"properties": {
"row": {
"type": "integer",
"minimum": 1,
"maximum": 9,
"description": "Row number, 1 at the top."
},
"col": {
"type": "integer",
"minimum": 1,
"maximum": 9,
"description": "Column number, 1 at the left."
}
},
"required": [
"row",
"col"
],
"additionalProperties": false
}
}set_cellAction
Fill one empty cell with a digit. Prefer hint or apply_next_step unless the user asked you to enter a specific digit. Cannot change givens or locked cells.
View tool JSON
{
"name": "set_cell",
"kind": "act",
"impl": "imperative",
"description": "Fill one empty cell with a digit. Prefer hint or apply_next_step unless the user asked you to enter a specific digit. Cannot change givens or locked cells.",
"inputSchema": {
"type": "object",
"properties": {
"row": {
"type": "integer",
"minimum": 1,
"maximum": 9,
"description": "Row number, 1 at the top."
},
"col": {
"type": "integer",
"minimum": 1,
"maximum": 9,
"description": "Column number, 1 at the left."
},
"digit": {
"type": "integer",
"minimum": 1,
"maximum": 9,
"description": "Digit 1-9."
}
},
"required": [
"row",
"col",
"digit"
],
"additionalProperties": false
}
}clear_cellAction
Clear a non-given cell. Cannot clear givens or locked cells.
View tool JSON
{
"name": "clear_cell",
"kind": "act",
"impl": "imperative",
"description": "Clear a non-given cell. Cannot clear givens or locked cells.",
"inputSchema": {
"type": "object",
"properties": {
"row": {
"type": "integer",
"minimum": 1,
"maximum": 9,
"description": "Row number, 1 at the top."
},
"col": {
"type": "integer",
"minimum": 1,
"maximum": 9,
"description": "Column number, 1 at the left."
}
},
"required": [
"row",
"col"
],
"additionalProperties": false
}
}toggle_candidateAction
Pencil or cross off a candidate digit in an empty cell.
View tool JSON
{
"name": "toggle_candidate",
"kind": "act",
"impl": "imperative",
"description": "Pencil or cross off a candidate digit in an empty cell.",
"inputSchema": {
"type": "object",
"properties": {
"row": {
"type": "integer",
"minimum": 1,
"maximum": 9,
"description": "Row number, 1 at the top."
},
"col": {
"type": "integer",
"minimum": 1,
"maximum": 9,
"description": "Column number, 1 at the left."
},
"digit": {
"type": "integer",
"minimum": 1,
"maximum": 9,
"description": "Digit 1-9."
}
},
"required": [
"row",
"col",
"digit"
],
"additionalProperties": false
}
}lock_cellAction
Lock a cell so the agent cannot write there. The human can still edit it.
View tool JSON
{
"name": "lock_cell",
"kind": "act",
"impl": "imperative",
"description": "Lock a cell so the agent cannot write there. The human can still edit it.",
"inputSchema": {
"type": "object",
"properties": {
"row": {
"type": "integer",
"minimum": 1,
"maximum": 9,
"description": "Row number, 1 at the top."
},
"col": {
"type": "integer",
"minimum": 1,
"maximum": 9,
"description": "Column number, 1 at the left."
}
},
"required": [
"row",
"col"
],
"additionalProperties": false
}
}unlock_cellAction
Allow the agent to write in a previously locked cell.
View tool JSON
{
"name": "unlock_cell",
"kind": "act",
"impl": "imperative",
"description": "Allow the agent to write in a previously locked cell.",
"inputSchema": {
"type": "object",
"properties": {
"row": {
"type": "integer",
"minimum": 1,
"maximum": 9,
"description": "Row number, 1 at the top."
},
"col": {
"type": "integer",
"minimum": 1,
"maximum": 9,
"description": "Column number, 1 at the left."
}
},
"required": [
"row",
"col"
],
"additionalProperties": false
}
}hintAction
Find the next safe Sudoku technique (naked single, hidden single, naked pair, or pointing pair). Highlights the cells and explains why. Does not fill anything. Use this when the user wants help without spoilers.
View tool JSON
{
"name": "hint",
"kind": "act",
"impl": "imperative",
"description": "Find the next safe Sudoku technique (naked single, hidden single, naked pair, or pointing pair). Highlights the cells and explains why. Does not fill anything. Use this when the user wants help without spoilers.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}explain_cellAction
Explain one cell: current digit or remaining candidates, and why other digits are impossible.
View tool JSON
{
"name": "explain_cell",
"kind": "act",
"impl": "imperative",
"description": "Explain one cell: current digit or remaining candidates, and why other digits are impossible.",
"inputSchema": {
"type": "object",
"properties": {
"row": {
"type": "integer",
"minimum": 1,
"maximum": 9,
"description": "Row number, 1 at the top."
},
"col": {
"type": "integer",
"minimum": 1,
"maximum": 9,
"description": "Column number, 1 at the left."
}
},
"required": [
"row",
"col"
],
"additionalProperties": false
}
}check_moveAnswer
Check whether a proposed digit belongs in a cell. Distinguishes conflicts, guesses that are not yet forced, and digits that a technique already forces. Does not fill the cell.
View tool JSON
{
"name": "check_move",
"kind": "answer",
"impl": "imperative",
"description": "Check whether a proposed digit belongs in a cell. Distinguishes conflicts, guesses that are not yet forced, and digits that a technique already forces. Does not fill the cell.",
"inputSchema": {
"type": "object",
"properties": {
"row": {
"type": "integer",
"minimum": 1,
"maximum": 9,
"description": "Row number, 1 at the top."
},
"col": {
"type": "integer",
"minimum": 1,
"maximum": 9,
"description": "Column number, 1 at the left."
},
"digit": {
"type": "integer",
"minimum": 1,
"maximum": 9,
"description": "Digit 1-9."
}
},
"required": [
"row",
"col",
"digit"
],
"additionalProperties": false
}
}apply_next_stepAction
Apply exactly one safe deduction: fill a forced cell or cross off candidates from a pair/pointing claim. Never solves the whole puzzle in one call. Use only when the user wants a fill, not just an explanation.
View tool JSON
{
"name": "apply_next_step",
"kind": "act",
"impl": "imperative",
"description": "Apply exactly one safe deduction: fill a forced cell or cross off candidates from a pair/pointing claim. Never solves the whole puzzle in one call. Use only when the user wants a fill, not just an explanation.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}undoAction
Undo the last grid change (fill, clear, pencil, or lock).
View tool JSON
{
"name": "undo",
"kind": "act",
"impl": "imperative",
"description": "Undo the last grid change (fill, clear, pencil, or lock).",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}load_puzzleAction
Load a bundled puzzle by id. Ids: last-five, morning-paper, coffee-break, commute, evening, ink-hard. Resets the board.
View tool JSON
{
"name": "load_puzzle",
"kind": "act",
"impl": "imperative",
"description": "Load a bundled puzzle by id. Ids: last-five, morning-paper, coffee-break, commute, evening, ink-hard. Resets the board.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Puzzle id from read_board or this list: last-five, morning-paper, coffee-break, commute, evening, ink-hard."
}
},
"required": [
"id"
],
"additionalProperties": false
}
}load_custom_puzzleAction
Load a Sudoku the human pasted. grid is 81 cells (digits, 0 or . for blanks). Spaces and line breaks are allowed. Rejects invalid, unsolvable, or non-unique grids. Resets the board.
View tool JSON
{
"name": "load_custom_puzzle",
"kind": "act",
"impl": "imperative",
"description": "Load a Sudoku the human pasted. grid is 81 cells (digits, 0 or . for blanks). Spaces and line breaks are allowed. Rejects invalid, unsolvable, or non-unique grids. Resets the board.",
"inputSchema": {
"type": "object",
"properties": {
"grid": {
"type": "string",
"description": "81 Sudoku cells as digits. Use 0 or . for empty cells."
}
},
"required": [
"grid"
],
"additionalProperties": false
}
}