Tool tree
gradeNot graded
how_to_useAction
READ ME FIRST. Call when the page opens and when the person returns after pinning a question. Guide one step at a time. Use only registered page tools (how_to_use, get_chart, get_selection, list_questions, answer_question, create_shapes, connect_shapes, align_shapes, equalize_size, distribute_shapes, create_canvas, open_saved_canvas) for all map reads/writes. Do not click, drag, type into, or operate Excalidraw UI controls; the page's pointer/keyboard controls remain for the person.
View tool JSON
{
"name": "how_to_use",
"kind": "act",
"impl": "imperative",
"description": "READ ME FIRST. Call when the page opens and when the person returns after pinning a question. Guide one step at a time. Use only registered page tools (how_to_use, get_chart, get_selection, list_questions, answer_question, create_shapes, connect_shapes, align_shapes, equalize_size, distribute_shapes, create_canvas, open_saved_canvas) for all map reads/writes. Do not click, drag, type into, or operate Excalidraw UI controls; the page's pointer/keyboard controls remain for the person.",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
},
"page": "/study-map/"
}select_shapesAction
Select up to 240 unlocked shapes by id, type, or visible label.
View tool JSON
{
"name": "select_shapes",
"kind": "act",
"impl": "imperative",
"description": "Select up to 240 unlocked shapes by id, type, or visible label.",
"inputSchema": {
"type": "object",
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 240
},
"type": {
"type": "string",
"enum": [
"rectangle",
"diamond",
"ellipse",
"arrow",
"line",
"text",
"freedraw"
]
},
"labelContains": {
"type": "string",
"maxLength": 50
}
},
"additionalProperties": false
},
"page": "/study-map/"
}get_canvas_stateAnswer
Read the current canvas name, local save id, and visible element count without changing it.
View tool JSON
{
"name": "get_canvas_state",
"kind": "answer",
"impl": "imperative",
"description": "Read the current canvas name, local save id, and visible element count without changing it.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/study-map/"
}choose_canvasAction
Record the person's explicit answer to continue the existing canvas or create a new one. Ask first and never infer their choice.
View tool JSON
{
"name": "choose_canvas",
"kind": "act",
"impl": "imperative",
"description": "Record the person's explicit answer to continue the existing canvas or create a new one. Ask first and never infer their choice.",
"inputSchema": {
"type": "object",
"properties": {
"choice": {
"type": "string",
"enum": [
"continue_existing",
"create_new"
]
}
},
"required": [
"choice"
],
"additionalProperties": false
},
"page": "/study-map/"
}align_shapesAction
Apply an exact edge or center alignment directly to the drawing.
View tool JSON
{
"name": "align_shapes",
"kind": "act",
"impl": "imperative",
"description": "Apply an exact edge or center alignment directly to the drawing.",
"inputSchema": {
"type": "object",
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 240
},
"edge": {
"type": "string",
"enum": [
"left",
"centerX",
"right",
"top",
"centerY",
"bottom"
]
},
"to": {
"type": "string",
"enum": [
"selection",
"canvas",
"first"
]
}
},
"required": [
"edge"
],
"additionalProperties": false
},
"page": "/study-map/"
}list_saved_canvasesAnswer
List locally saved canvases in newest-first pages of up to five.
View tool JSON
{
"name": "list_saved_canvases",
"kind": "answer",
"impl": "imperative",
"description": "List locally saved canvases in newest-first pages of up to five.",
"inputSchema": {
"type": "object",
"properties": {
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 49
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 5
}
},
"additionalProperties": false
},
"page": "/study-map/"
}get_chartAnswer
Read a bounded outline of the live study map without exposing geometry or files.
View tool JSON
{
"name": "get_chart",
"kind": "answer",
"impl": "imperative",
"description": "Read a bounded outline of the live study map without exposing geometry or files.",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
},
"page": "/study-map/"
}equalize_sizeAction
Apply equal widths or heights directly to the drawing.
View tool JSON
{
"name": "equalize_size",
"kind": "act",
"impl": "imperative",
"description": "Apply equal widths or heights directly to the drawing.",
"inputSchema": {
"type": "object",
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 240
},
"dimension": {
"type": "string",
"enum": [
"width",
"height"
]
},
"mode": {
"type": "string",
"enum": [
"max",
"min",
"first",
"average"
]
}
},
"required": [
"dimension"
],
"additionalProperties": false
},
"page": "/study-map/"
}save_canvasAction
Save or update the current canvas in this browser's local storage, optionally under a new name.
View tool JSON
{
"name": "save_canvas",
"kind": "act",
"impl": "imperative",
"description": "Save or update the current canvas in this browser's local storage, optionally under a new name.",
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80
}
},
"additionalProperties": false
},
"page": "/study-map/"
}get_selectionAnswer
Read the currently selected study nodes and their open questions.
View tool JSON
{
"name": "get_selection",
"kind": "answer",
"impl": "imperative",
"description": "Read the currently selected study nodes and their open questions.",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
},
"page": "/study-map/"
}distribute_shapesAction
Apply even gaps between shapes along one axis directly to the drawing.
View tool JSON
{
"name": "distribute_shapes",
"kind": "act",
"impl": "imperative",
"description": "Apply even gaps between shapes along one axis directly to the drawing.",
"inputSchema": {
"type": "object",
"properties": {
"ids": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 240
},
"axis": {
"type": "string",
"enum": [
"horizontal",
"vertical"
]
}
},
"required": [
"axis"
],
"additionalProperties": false
},
"page": "/study-map/"
}create_canvasAction
Create an undoable blank canvas and preserve the current canvas locally first when it contains work.
View tool JSON
{
"name": "create_canvas",
"kind": "act",
"impl": "imperative",
"description": "Create an undoable blank canvas and preserve the current canvas locally first when it contains work.",
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80
}
},
"additionalProperties": false
},
"page": "/study-map/"
}list_questionsAnswer
List bounded open question marks with their live study-node context.
View tool JSON
{
"name": "list_questions",
"kind": "answer",
"impl": "imperative",
"description": "List bounded open question marks with their live study-node context.",
"inputSchema": {
"type": "object",
"properties": {},
"required": [],
"additionalProperties": false
},
"page": "/study-map/"
}connect_shapesAction
Apply directed connectors from up to 40 explicit shapes to one target.
View tool JSON
{
"name": "connect_shapes",
"kind": "act",
"impl": "imperative",
"description": "Apply directed connectors from up to 40 explicit shapes to one target.",
"inputSchema": {
"type": "object",
"properties": {
"sourceIds": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 40,
"uniqueItems": true
},
"targetId": {
"type": "string"
}
},
"required": [
"sourceIds",
"targetId"
],
"additionalProperties": false
},
"page": "/study-map/"
}open_saved_canvasAction
Open one locally saved canvas by id, preserving the current canvas locally before switching.
View tool JSON
{
"name": "open_saved_canvas",
"kind": "act",
"impl": "imperative",
"description": "Open one locally saved canvas by id, preserving the current canvas locally before switching.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"pattern": "^[A-Za-z0-9_-]{1,80}$"
}
},
"required": [
"id"
],
"additionalProperties": false
},
"page": "/study-map/"
}answer_questionAction
Answer the person fully in chat, then distill the answer into a compact branch from the questioned node — do not paste full prose into the map.
View tool JSON
{
"name": "answer_question",
"kind": "act",
"impl": "imperative",
"description": "Answer the person fully in chat, then distill the answer into a compact branch from the questioned node — do not paste full prose into the map.",
"inputSchema": {
"type": "object",
"properties": {
"question_id": {
"type": "string",
"minLength": 1,
"maxLength": 64
},
"answer_summary": {
"type": "string",
"minLength": 1,
"maxLength": 160
},
"key_points": {
"type": "array",
"minItems": 1,
"maxItems": 5,
"uniqueItems": true,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 72
}
},
"sources": {
"type": "array",
"maxItems": 2,
"uniqueItems": true,
"items": {
"type": "object",
"properties": {
"title": {
"type": "string",
"minLength": 1,
"maxLength": 64
},
"url": {
"type": "string",
"minLength": 1,
"maxLength": 2048,
"pattern": "^https://"
}
},
"required": [
"title",
"url"
],
"additionalProperties": false
}
}
},
"required": [
"question_id",
"answer_summary",
"key_points"
],
"additionalProperties": false
},
"page": "/study-map/"
}create_shapesAction
Create labeled rectangle, ellipse, or diamond nodes directly on the drawing.
View tool JSON
{
"name": "create_shapes",
"kind": "act",
"impl": "imperative",
"description": "Create labeled rectangle, ellipse, or diamond nodes directly on the drawing.",
"inputSchema": {
"type": "object",
"properties": {
"shapes": {
"type": "array",
"minItems": 1,
"maxItems": 12,
"items": {
"type": "object",
"properties": {
"clientId": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$"
},
"type": {
"type": "string",
"enum": [
"rectangle",
"ellipse",
"diamond"
]
},
"label": {
"type": "string",
"maxLength": 80
},
"x": {
"type": "number",
"minimum": -10000,
"maximum": 10000
},
"y": {
"type": "number",
"minimum": -10000,
"maximum": 10000
},
"width": {
"type": "number",
"minimum": 40,
"maximum": 800
},
"height": {
"type": "number",
"minimum": 30,
"maximum": 600
}
},
"required": [
"type"
],
"additionalProperties": false
}
}
},
"required": [
"shapes"
],
"additionalProperties": false
},
"page": "/study-map/"
}