Tool tree
gradeNot graded
get_sheetAnswer
Summary of the paper on the stage: how many flat regions it has, how many folds have been applied, how deep the layer stack is, whether it is turned over, and how many creases are foldable now. Returns counts, not geometry.
View tool JSON
{
"name": "get_sheet",
"kind": "answer",
"impl": "imperative",
"description": "Summary of the paper on the stage: how many flat regions it has, how many folds have been applied, how deep the layer stack is, whether it is turned over, and how many creases are foldable now. Returns counts, not geometry.",
"inputSchema": {
"type": "object",
"properties": {},
"required": []
}
}list_creasesAnswer
Every crease that can be folded from the current state, with its id, a short label, its endpoints in sheet coordinates, and how many flat regions the fold would move. Only these ids are accepted by fold_crease.
View tool JSON
{
"name": "list_creases",
"kind": "answer",
"impl": "imperative",
"description": "Every crease that can be folded from the current state, with its id, a short label, its endpoints in sheet coordinates, and how many flat regions the fold would move. Only these ids are accepted by fold_crease.",
"inputSchema": {
"type": "object",
"properties": {},
"required": []
}
}describe_sheetAnswer
The current state in plain sentences, suitable for reading aloud to the person. Same text the canvas exposes as its accessible description.
View tool JSON
{
"name": "describe_sheet",
"kind": "answer",
"impl": "imperative",
"description": "The current state in plain sentences, suitable for reading aloud to the person. Same text the canvas exposes as its accessible description.",
"inputSchema": {
"type": "object",
"properties": {},
"required": []
}
}list_modelsAnswer
The authored catalogue: each model's id, name, difficulty, and step count. These are simple-fold models; the engine does not do reverse or petal folds, so no crane is offered.
View tool JSON
{
"name": "list_models",
"kind": "answer",
"impl": "imperative",
"description": "The authored catalogue: each model's id, name, difficulty, and step count. These are simple-fold models; the engine does not do reverse or petal folds, so no crane is offered.",
"inputSchema": {
"type": "object",
"properties": {},
"required": []
}
}get_active_modelAnswer
Which model is selected, how many of its steps the sheet has completed, and whether the sheet is still on its sequence.
View tool JSON
{
"name": "get_active_model",
"kind": "answer",
"impl": "imperative",
"description": "Which model is selected, how many of its steps the sheet has completed, and whether the sheet is still on its sequence.",
"inputSchema": {
"type": "object",
"properties": {},
"required": []
}
}get_next_stepAnswer
The next authored step for the active model, naming the crease id, the fold type, and a short note. Fails when no model is selected or the sheet has left the sequence.
View tool JSON
{
"name": "get_next_step",
"kind": "answer",
"impl": "imperative",
"description": "The next authored step for the active model, naming the crease id, the fold type, and a short note. Fails when no model is selected or the sheet has left the sequence.",
"inputSchema": {
"type": "object",
"properties": {},
"required": []
}
}check_progressAnswer
Whether the sheet matches the expected state for the active model. Progress is measured by replaying the model and comparing geometry, so a fold the person made by hand is reported honestly rather than assumed away.
View tool JSON
{
"name": "check_progress",
"kind": "answer",
"impl": "imperative",
"description": "Whether the sheet matches the expected state for the active model. Progress is measured by replaying the model and comparing geometry, so a fold the person made by hand is reported honestly rather than assumed away.",
"inputSchema": {
"type": "object",
"properties": {},
"required": []
}
}get_fold_historyAnswer
Applied sheet changes in order, including folds and whole-model flips, each tagged person or agent. Returns at most the newest ten plus total and truncation counts; undone changes are excluded.
View tool JSON
{
"name": "get_fold_history",
"kind": "answer",
"impl": "imperative",
"description": "Applied sheet changes in order, including folds and whole-model flips, each tagged person or agent. Returns at most the newest ten plus total and truncation counts; undone changes are excluded.",
"inputSchema": {
"type": "object",
"properties": {},
"required": []
}
}get_viewAnswer
The shared camera as azimuth degrees, elevation degrees, and zoom factor. The person and the agent drive the same view.
View tool JSON
{
"name": "get_view",
"kind": "answer",
"impl": "imperative",
"description": "The shared camera as azimuth degrees, elevation degrees, and zoom factor. The person and the agent drive the same view.",
"inputSchema": {
"type": "object",
"properties": {},
"required": []
}
}get_tool_activityAnswer
Recent tool calls this page recorded, newest last, each tagged with its origin. Entries include text supplied by the caller.
View tool JSON
{
"name": "get_tool_activity",
"kind": "answer",
"impl": "imperative",
"description": "Recent tool calls this page recorded, newest last, each tagged with its origin. Entries include text supplied by the caller.",
"inputSchema": {
"type": "object",
"properties": {},
"required": []
}
}fold_creaseAction
Fold the sheet along one currently legal crease. Refuses any id outside the legal set and names the legal ids in the refusal. Returns the resulting sheet summary.
View tool JSON
{
"name": "fold_crease",
"kind": "act",
"impl": "imperative",
"description": "Fold the sheet along one currently legal crease. Refuses any id outside the legal set and names the legal ids in the refusal. Returns the resulting sheet summary.",
"inputSchema": {
"type": "object",
"properties": {
"crease_id": {
"type": "string",
"description": "Crease id from list_creases, for example diag-a.",
"maxLength": 80
},
"type": {
"type": "string",
"description": "valley folds the flap up and over, mountain tucks it under.",
"maxLength": 80,
"enum": [
"valley",
"mountain"
]
}
},
"required": [
"crease_id",
"type"
]
}
}advance_stepAction
Perform the next authored step of the active model. Fails when no model is selected, when the model is complete, or when the sheet has left the sequence. It never silently corrects the sheet.
View tool JSON
{
"name": "advance_step",
"kind": "act",
"impl": "imperative",
"description": "Perform the next authored step of the active model. Fails when no model is selected, when the model is complete, or when the sheet has left the sequence. It never silently corrects the sheet.",
"inputSchema": {
"type": "object",
"properties": {},
"required": []
}
}undo_foldAction
Step back one change in the action history, whether a fold or whole-model flip. The person can always take over, so undo is available to both of you.
View tool JSON
{
"name": "undo_fold",
"kind": "act",
"impl": "imperative",
"description": "Step back one change in the action history, whether a fold or whole-model flip. The person can always take over, so undo is available to both of you.",
"inputSchema": {
"type": "object",
"properties": {},
"required": []
}
}redo_foldAction
Reapply the most recently undone fold or whole-model flip, when one exists.
View tool JSON
{
"name": "redo_fold",
"kind": "act",
"impl": "imperative",
"description": "Reapply the most recently undone fold or whole-model flip, when one exists.",
"inputSchema": {
"type": "object",
"properties": {},
"required": []
}
}reset_sheetAction
Discard all folds and return to a fresh square. Past three folds this requires confirm true, so a casual call cannot wipe the person's work.
View tool JSON
{
"name": "reset_sheet",
"kind": "act",
"impl": "imperative",
"description": "Discard all folds and return to a fresh square. Past three folds this requires confirm true, so a casual call cannot wipe the person's work.",
"inputSchema": {
"type": "object",
"properties": {
"confirm": {
"type": "boolean",
"description": "Must be true to discard more than three folds."
}
},
"required": []
}
}flip_sheetAction
Turn the whole model over, the diagram instruction that usually loses people. Layer order and face colours invert with it.
View tool JSON
{
"name": "flip_sheet",
"kind": "act",
"impl": "imperative",
"description": "Turn the whole model over, the diagram instruction that usually loses people. Layer order and face colours invert with it.",
"inputSchema": {
"type": "object",
"properties": {},
"required": []
}
}select_modelAction
Set the active target from the authored catalogue. Does not fold anything on its own; use advance_step to walk the sequence.
View tool JSON
{
"name": "select_model",
"kind": "act",
"impl": "imperative",
"description": "Set the active target from the authored catalogue. Does not fold anything on its own; use advance_step to walk the sequence.",
"inputSchema": {
"type": "object",
"properties": {
"model_id": {
"type": "string",
"description": "Model id from list_models, for example blintz.",
"maxLength": 80
}
},
"required": [
"model_id"
]
}
}highlight_creaseAction
Make one crease pulse in the scene so the person can see which flap you mean. This is how you point at the answer instead of describing it.
View tool JSON
{
"name": "highlight_crease",
"kind": "act",
"impl": "imperative",
"description": "Make one crease pulse in the scene so the person can see which flap you mean. This is how you point at the answer instead of describing it.",
"inputSchema": {
"type": "object",
"properties": {
"crease_id": {
"type": "string",
"description": "Crease id from list_creases.",
"maxLength": 80
}
},
"required": [
"crease_id"
]
}
}clear_highlightAction
Remove any crease highlight from the scene.
View tool JSON
{
"name": "clear_highlight",
"kind": "act",
"impl": "imperative",
"description": "Remove any crease highlight from the scene.",
"inputSchema": {
"type": "object",
"properties": {},
"required": []
}
}set_viewAction
Orbit and zoom the shared camera so the person sees what you are working on. Omitted values stay as they are.
View tool JSON
{
"name": "set_view",
"kind": "act",
"impl": "imperative",
"description": "Orbit and zoom the shared camera so the person sees what you are working on. Omitted values stay as they are.",
"inputSchema": {
"type": "object",
"properties": {
"azimuth": {
"type": "number",
"description": "Horizontal angle in degrees.",
"minimum": 0,
"maximum": 360
},
"elevation": {
"type": "number",
"description": "Vertical angle in degrees, 15 to 85. The sheet is flat, so lower is not useful.",
"minimum": 15,
"maximum": 85
},
"zoom": {
"type": "number",
"description": "Zoom factor, 0.5 to 2.2. The camera already frames the sheet.",
"minimum": 0.5,
"maximum": 2.2
}
},
"required": []
}
}