Tool tree
gradeNot graded
get_workspace_stateAnswer
Read the complete HomeWheel workspace: room and furniture geometry, every destination route and approach zone, personal mobility profile and priorities, protected or stability-critical constraints, prior rejection feedback, and pending proposal. Use this first.
View tool JSON
{
"name": "get_workspace_state",
"kind": "answer",
"impl": "imperative",
"description": "Read the complete HomeWheel workspace: room and furniture geometry, every destination route and approach zone, personal mobility profile and priorities, protected or stability-critical constraints, prior rejection feedback, and pending proposal. Use this first.",
"inputSchema": {
"type": "object",
"properties": {}
}
}set_mobility_profileAction
Update the personal movement envelope used by all route simulations. Only set values the person explicitly provides. This is personal planning, not medical or building-code certification.
View tool JSON
{
"name": "set_mobility_profile",
"kind": "act",
"impl": "imperative",
"description": "Update the personal movement envelope used by all route simulations. Only set values the person explicitly provides. This is personal planning, not medical or building-code certification.",
"inputSchema": {
"type": "object",
"properties": {
"deviceLabel": {
"type": "string",
"description": "The person's preferred name for their mobility device."
},
"chairWidth": {
"type": "number",
"minimum": 45,
"maximum": 110,
"description": "Mobility device width in centimeters."
},
"minimumPassage": {
"type": "number",
"minimum": 65,
"maximum": 150,
"description": "Person-preferred minimum clear passage in centimeters."
},
"turningDiameter": {
"type": "number",
"minimum": 90,
"maximum": 220,
"description": "Preferred turning diameter in centimeters."
},
"priorities": {
"type": "array",
"description": "The person's explicit decision priorities for proposals.",
"items": {
"type": "string",
"enum": [
"transfer-safety",
"fewest-moves",
"daily-reach",
"daylight"
]
}
}
}
}
}simulate_routesAction
Measure every required and optional route in the current live layout, including reachability, path length, estimated minimum clearance, clear transfer/work/reach zones, and whether a turning spot exists.
View tool JSON
{
"name": "simulate_routes",
"kind": "act",
"impl": "imperative",
"description": "Measure every required and optional route in the current live layout, including reachability, path length, estimated minimum clearance, clear transfer/work/reach zones, and whether a turning spot exists.",
"inputSchema": {
"type": "object",
"properties": {}
}
}find_barriersAnswer
Identify movable furniture that causes required route failures while preserving locked objects and reporting the person's latest rejected-plan feedback.
View tool JSON
{
"name": "find_barriers",
"kind": "answer",
"impl": "imperative",
"description": "Identify movable furniture that causes required route failures while preserving locked objects and reporting the person's latest rejected-plan feedback.",
"inputSchema": {
"type": "object",
"properties": {}
}
}create_layout_proposalAction
Create a visible, collision-checked preview of one to five exact furniture moves. This never changes the live room: the person must accept it in the page. Honor protected positions, stability-critical furniture, approach zones, personal priorities, and latest feedback.
View tool JSON
{
"name": "create_layout_proposal",
"kind": "act",
"impl": "imperative",
"description": "Create a visible, collision-checked preview of one to five exact furniture moves. This never changes the live room: the person must accept it in the page. Honor protected positions, stability-critical furniture, approach zones, personal priorities, and latest feedback.",
"inputSchema": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Concise proposal name."
},
"rationale": {
"type": "string",
"description": "Explain why these moves improve the person's required routes."
},
"moves": {
"type": "array",
"minItems": 1,
"maxItems": 5,
"items": {
"type": "object",
"properties": {
"object_id": {
"type": "string"
},
"x_cm": {
"type": "number"
},
"y_cm": {
"type": "number"
},
"rotation_degrees": {
"type": "number",
"enum": [
0,
90
]
},
"reason": {
"type": "string",
"description": "User-visible reason for this exact move."
}
},
"required": [
"object_id",
"x_cm",
"y_cm",
"reason"
]
}
},
"tradeoffs": {
"type": "array",
"maxItems": 4,
"items": {
"type": "string"
}
},
"responds_to_feedback_id": {
"type": "string",
"description": "Latest feedback id when this proposal revises a rejected option."
}
},
"required": [
"title",
"rationale",
"moves"
]
}
}set_object_constraintAction
Protect or release a furniture position and optionally mark it stability-critical after the person states a lived preference such as an outlet, transfer side, transfer stability, drawer access, light, or sentimental placement.
View tool JSON
{
"name": "set_object_constraint",
"kind": "act",
"impl": "imperative",
"description": "Protect or release a furniture position and optionally mark it stability-critical after the person states a lived preference such as an outlet, transfer side, transfer stability, drawer access, light, or sentimental placement.",
"inputSchema": {
"type": "object",
"properties": {
"object_id": {
"type": "string"
},
"locked": {
"type": "boolean"
},
"stability_critical": {
"type": "boolean",
"description": "Whether movement could compromise stability during transfers or daily use."
},
"reason": {
"type": "string",
"description": "Why this position matters to the person."
}
},
"required": [
"object_id",
"locked",
"reason"
]
}
}compare_layoutsAction
Show the room's baseline positions and return everything that changed.
View tool JSON
{
"name": "compare_layouts",
"kind": "act",
"impl": "imperative",
"description": "Show the room's baseline positions and return everything that changed.",
"inputSchema": {
"type": "object",
"properties": {}
}
}restore_layoutAction
Restore the scenario baseline or a history snapshot. Restoration is visible and logged.
View tool JSON
{
"name": "restore_layout",
"kind": "act",
"impl": "imperative",
"description": "Restore the scenario baseline or a history snapshot. Restoration is visible and logged.",
"inputSchema": {
"type": "object",
"properties": {
"snapshot_id": {
"type": "string",
"description": "Use 'baseline' or a snapshot id from get_workspace_state."
}
},
"required": [
"snapshot_id"
]
}
}