Tool tree
gradeNot graded
inspect_roomAction
Inspect room dimensions, derived floor area, architecture, circulation, shared view, revision, and a bounded furniture page with geometry, finish, mounting, support, and art intent.
View tool JSON
{
"name": "inspect_room",
"kind": "act",
"impl": "imperative",
"description": "Inspect room dimensions, derived floor area, architecture, circulation, shared view, revision, and a bounded furniture page with geometry, finish, mounting, support, and art intent.",
"inputSchema": {
"type": "object",
"properties": {
"inventoryOffset": {
"type": "integer",
"minimum": 0,
"maximum": 120,
"description": "Zero-based inventory offset. Follow nextInventoryOffset until hasMore is false."
},
"inventoryLimit": {
"type": "integer",
"minimum": 1,
"maximum": 20,
"description": "Maximum inventory entries requested. The response may return fewer to stay within its output budget."
}
},
"additionalProperties": false
}
}review_recent_changesAnswer
Return up to five newest committed room changes retained locally, with actor, revision, timestamp, and bounded summary, newest first.
View tool JSON
{
"name": "review_recent_changes",
"kind": "answer",
"impl": "imperative",
"description": "Return up to five newest committed room changes retained locally, with actor, revision, timestamp, and bounded summary, newest first.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}list_furnitureAnswer
List RoomDex's curated furniture catalog with real-world dimensions, placement type, and support-surface capability.
View tool JSON
{
"name": "list_furniture",
"kind": "answer",
"impl": "imperative",
"description": "List RoomDex's curated furniture catalog with real-world dimensions, placement type, and support-surface capability.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}analyze_layoutAction
Analyze the current room for furniture collisions, room-boundary errors, tight clearances, blocked wall openings, and circulation obstructions in the walkway or entry landing.
View tool JSON
{
"name": "analyze_layout",
"kind": "act",
"impl": "imperative",
"description": "Analyze the current room for furniture collisions, room-boundary errors, tight clearances, blocked wall openings, and circulation obstructions in the walkway or entry landing.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}compare_layoutsAction
Simulate every built-in room arrangement without changing the room. Compare fit, moved catalog pieces, issue counts, chair-to-window distance, chair-to-lamp clearance, and sofa-to-chair clearance before applying one.
View tool JSON
{
"name": "compare_layouts",
"kind": "act",
"impl": "imperative",
"description": "Simulate every built-in room arrangement without changing the room. Compare fit, moved catalog pieces, issue counts, chair-to-window distance, chair-to-lamp clearance, and sofa-to-chair clearance before applying one.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}measure_clearanceAction
Measure horizontal edge-to-edge clearance in feet between two uniquely named room items.
View tool JSON
{
"name": "measure_clearance",
"kind": "act",
"impl": "imperative",
"description": "Measure horizontal edge-to-edge clearance in feet between two uniquely named room items.",
"inputSchema": {
"type": "object",
"properties": {
"first": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[^\\u0000-\\u001F\\u007F]+$",
"description": "Unique visible furniture name, such as Floor lamp."
},
"second": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[^\\u0000-\\u001F\\u007F]+$",
"description": "Unique visible furniture name, such as Floor lamp."
}
},
"required": [
"first",
"second"
],
"additionalProperties": false
}
}inspect_furnitureAnswer
Inspect one named item's exact geometry, finish, mounting, support, and artwork direction at the current revision. Does not select or change it.
View tool JSON
{
"name": "inspect_furniture",
"kind": "answer",
"impl": "imperative",
"description": "Inspect one named item's exact geometry, finish, mounting, support, and artwork direction at the current revision. Does not select or change it.",
"inputSchema": {
"type": "object",
"properties": {
"target": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[^\\u0000-\\u001F\\u007F]+$",
"description": "Unique visible furniture name, such as Floor lamp."
}
},
"required": [
"target"
],
"additionalProperties": false
}
}preview_furniture_moveAction
Simulate moving one named item and its supported objects without changing the room or selection. Returns whether the move can apply and the resulting layout issue counts. A valid move may still have clearance or collision concerns; inspect the analysis before committing.
View tool JSON
{
"name": "preview_furniture_move",
"kind": "act",
"impl": "imperative",
"description": "Simulate moving one named item and its supported objects without changing the room or selection. Returns whether the move can apply and the resulting layout issue counts. A valid move may still have clearance or collision concerns; inspect the analysis before committing.",
"inputSchema": {
"type": "object",
"properties": {
"target": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[^\\u0000-\\u001F\\u007F]+$",
"description": "Unique visible furniture name, such as Floor lamp."
},
"x": {
"type": "number",
"minimum": -100,
"maximum": 100,
"description": "Center position across the room in feet."
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 40,
"description": "Base elevation above the floor in feet."
},
"z": {
"type": "number",
"minimum": -100,
"maximum": 100,
"description": "Center position from back to front in feet."
},
"relation": {
"type": "string",
"enum": [
"left_of",
"right_of",
"in_front_of",
"behind",
"beside",
"on"
],
"description": "Relationship to the named anchor."
},
"anchor": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[^\\u0000-\\u001F\\u007F]+$",
"description": "Unique visible name of the anchor item."
},
"side": {
"type": "string",
"enum": [
"left",
"right"
],
"description": "Preferred side when relation is beside."
},
"wall": {
"type": "string",
"enum": [
"back",
"front",
"left",
"right"
],
"description": "Wall to place the item against."
},
"offset": {
"type": "number",
"minimum": -100,
"maximum": 100,
"description": "Position along the selected wall, measured from its center."
},
"gap": {
"type": "number",
"minimum": 0,
"maximum": 20,
"description": "Requested edge-to-edge gap in feet."
},
"elevation": {
"type": "number",
"minimum": 0,
"maximum": 40,
"description": "Bottom elevation above the floor for a wall-mounted item."
}
},
"required": [
"target"
],
"additionalProperties": false,
"oneOf": [
{
"title": "Coordinates",
"required": [
"x",
"z"
],
"not": {
"anyOf": [
{
"required": [
"relation"
]
},
{
"required": [
"anchor"
]
},
{
"required": [
"side"
]
},
{
"required": [
"wall"
]
},
{
"required": [
"offset"
]
},
{
"required": [
"gap"
]
},
{
"required": [
"elevation"
]
}
]
}
},
{
"title": "Relative to furniture",
"required": [
"relation",
"anchor"
],
"not": {
"anyOf": [
{
"required": [
"x"
]
},
{
"required": [
"y"
]
},
{
"required": [
"z"
]
},
{
"required": [
"wall"
]
},
{
"required": [
"offset"
]
},
{
"required": [
"elevation"
]
}
]
}
},
{
"title": "Against a wall",
"required": [
"wall"
],
"not": {
"anyOf": [
{
"required": [
"x"
]
},
{
"required": [
"y"
]
},
{
"required": [
"z"
]
},
{
"required": [
"relation"
]
},
{
"required": [
"anchor"
]
},
{
"required": [
"side"
]
}
]
}
}
]
}
}select_furnitureAction
Select one named item in the shared canvas and inspector, or use null to clear the selection. Does not alter furniture, create an undo step, or advance the room revision.
View tool JSON
{
"name": "select_furniture",
"kind": "act",
"impl": "imperative",
"description": "Select one named item in the shared canvas and inspector, or use null to clear the selection. Does not alter furniture, create an undo step, or advance the room revision.",
"inputSchema": {
"type": "object",
"properties": {
"target": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[^\\u0000-\\u001F\\u007F]+$",
"description": "Unique visible furniture name, such as Floor lamp."
},
{
"type": "null"
}
]
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"description": "Optional room revision from a prior read. The write is rejected if the room changed."
}
},
"required": [
"target"
],
"additionalProperties": false
}
}move_furniture_groupAction
Translate up to twelve named floor pieces together by an offset in feet. Attached surface objects follow automatically. Commits one undoable change or rejects the entire move if affected items overlap, leave the room, block openings, or obstruct circulation.
View tool JSON
{
"name": "move_furniture_group",
"kind": "act",
"impl": "imperative",
"description": "Translate up to twelve named floor pieces together by an offset in feet. Attached surface objects follow automatically. Commits one undoable change or rejects the entire move if affected items overlap, leave the room, block openings, or obstruct circulation.",
"inputSchema": {
"type": "object",
"properties": {
"targets": {
"type": "array",
"minItems": 1,
"maxItems": 12,
"uniqueItems": true,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[^\\u0000-\\u001F\\u007F]+$",
"description": "Unique visible furniture name, such as Floor lamp."
},
"description": "One to twelve distinct, uniquely named room items."
},
"offsetX": {
"type": "number",
"minimum": -100,
"maximum": 100,
"description": "Horizontal group offset in feet; defaults to zero."
},
"offsetZ": {
"type": "number",
"minimum": -100,
"maximum": 100,
"description": "Depth group offset in feet; defaults to zero."
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"description": "Optional room revision from a prior read. The write is rejected if the room changed."
}
},
"required": [
"targets"
],
"additionalProperties": false,
"anyOf": [
{
"required": [
"offsetX"
]
},
{
"required": [
"offsetZ"
]
}
]
}
}style_furniture_groupAction
Apply a shared color, material, or both to up to twelve named items in one undoable change. Preserves geometry and selection. Every target must resolve before any change is made.
View tool JSON
{
"name": "style_furniture_group",
"kind": "act",
"impl": "imperative",
"description": "Apply a shared color, material, or both to up to twelve named items in one undoable change. Preserves geometry and selection. Every target must resolve before any change is made.",
"inputSchema": {
"type": "object",
"properties": {
"targets": {
"type": "array",
"minItems": 1,
"maxItems": 12,
"uniqueItems": true,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[^\\u0000-\\u001F\\u007F]+$",
"description": "Unique visible furniture name, such as Floor lamp."
},
"description": "One to twelve distinct, uniquely named room items."
},
"color": {
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$",
"description": "Shared item color as #RRGGBB."
},
"material": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"pattern": "^[^\\u0000-\\u001F\\u007F]+$",
"description": "Shared material description."
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"description": "Optional room revision from a prior read. The write is rejected if the room changed."
}
},
"required": [
"targets"
],
"additionalProperties": false,
"anyOf": [
{
"required": [
"color"
]
},
{
"required": [
"material"
]
}
]
}
}align_furnitureAction
Align the centers of named floor pieces to an anchor's x or z coordinate in one undoable change. Preserves the other coordinate and rotation; supported objects follow. Rejects the whole change if affected items overlap, leave the room, block openings, or obstruct circulation.
View tool JSON
{
"name": "align_furniture",
"kind": "act",
"impl": "imperative",
"description": "Align the centers of named floor pieces to an anchor's x or z coordinate in one undoable change. Preserves the other coordinate and rotation; supported objects follow. Rejects the whole change if affected items overlap, leave the room, block openings, or obstruct circulation.",
"inputSchema": {
"type": "object",
"properties": {
"targets": {
"type": "array",
"minItems": 1,
"maxItems": 12,
"uniqueItems": true,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[^\\u0000-\\u001F\\u007F]+$",
"description": "Unique visible furniture name, such as Floor lamp."
},
"description": "One to twelve distinct, uniquely named room items."
},
"anchor": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[^\\u0000-\\u001F\\u007F]+$",
"description": "Unique visible furniture name, such as Floor lamp."
},
"axis": {
"type": "string",
"enum": [
"x",
"z"
],
"description": "Coordinate to match to the anchor's center."
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"description": "Optional room revision from a prior read. The write is rejected if the room changed."
}
},
"required": [
"targets",
"anchor",
"axis"
],
"additionalProperties": false
}
}update_wall_artAction
Redesign existing wall art with a new visual direction, palette, or both. Preserves the artwork's name, dimensions, wall, and position. Use create_wall_art to add another piece.
View tool JSON
{
"name": "update_wall_art",
"kind": "act",
"impl": "imperative",
"description": "Redesign existing wall art with a new visual direction, palette, or both. Preserves the artwork's name, dimensions, wall, and position. Use create_wall_art to add another piece.",
"inputSchema": {
"type": "object",
"properties": {
"target": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[^\\u0000-\\u001F\\u007F]+$",
"description": "Unique visible furniture name, such as Floor lamp."
},
"style": {
"type": "string",
"minLength": 1,
"maxLength": 240,
"pattern": "^[^\\u0000-\\u001F\\u007F]+$",
"description": "Visual direction, such as geometric or layered color fields."
},
"palette": {
"type": "array",
"minItems": 2,
"maxItems": 6,
"items": {
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$",
"description": "Palette color as #RRGGBB."
}
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"description": "Optional room revision from a prior read. The write is rejected if the room changed."
}
},
"required": [
"target"
],
"additionalProperties": false,
"anyOf": [
{
"required": [
"style"
]
},
{
"required": [
"palette"
]
}
]
}
}restore_roomAction
Start over in one undoable change. Mode demo restores the original furnished room, shell, and view. Mode empty removes every item while preserving the current shell, brief, and view. Always specify the intended mode.
View tool JSON
{
"name": "restore_room",
"kind": "act",
"impl": "imperative",
"description": "Start over in one undoable change. Mode demo restores the original furnished room, shell, and view. Mode empty removes every item while preserving the current shell, brief, and view. Always specify the intended mode.",
"inputSchema": {
"type": "object",
"properties": {
"mode": {
"type": "string",
"enum": [
"demo",
"empty"
],
"description": "Restore the furnished demo or empty the current room."
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"description": "Optional room revision from a prior read. The write is rejected if the room changed."
}
},
"required": [
"mode"
],
"additionalProperties": false
}
}set_room_shellAction
Change selected room shell fields while preserving all furniture.
View tool JSON
{
"name": "set_room_shell",
"kind": "act",
"impl": "imperative",
"description": "Change selected room shell fields while preserving all furniture.",
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"pattern": "^[^\\u0000-\\u001F\\u007F]+$",
"description": "Room name."
},
"width": {
"type": "number",
"minimum": 4,
"maximum": 100,
"description": "Interior room width in feet."
},
"depth": {
"type": "number",
"minimum": 4,
"maximum": 100,
"description": "Interior room depth in feet."
},
"height": {
"type": "number",
"minimum": 6,
"maximum": 40,
"description": "Interior room height in feet."
},
"wallColor": {
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$",
"description": "Wall color as #RRGGBB."
},
"floorColor": {
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$",
"description": "Floor color as #RRGGBB."
},
"floorFinish": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"pattern": "^[^\\u0000-\\u001F\\u007F]+$",
"description": "Floor material or finish."
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"description": "Optional room revision from a prior read. The write is rejected if the room changed."
}
},
"additionalProperties": false,
"anyOf": [
{
"required": [
"name"
]
},
{
"required": [
"width"
]
},
{
"required": [
"depth"
]
},
{
"required": [
"height"
]
},
{
"required": [
"wallColor"
]
},
{
"required": [
"floorColor"
]
},
{
"required": [
"floorFinish"
]
}
]
}
}set_room_briefAction
Replace the room's intended use, human priorities, or both so later planning works from explicit shared context.
View tool JSON
{
"name": "set_room_brief",
"kind": "act",
"impl": "imperative",
"description": "Replace the room's intended use, human priorities, or both so later planning works from explicit shared context.",
"inputSchema": {
"type": "object",
"properties": {
"purpose": {
"type": "string",
"minLength": 1,
"maxLength": 120,
"pattern": "^[^\\u0000-\\u001F\\u007F]+$",
"description": "How the person intends to use this room."
},
"priorities": {
"type": "array",
"maxItems": 5,
"items": {
"type": "string",
"minLength": 1,
"maxLength": 48,
"pattern": "^[^\\u0000-\\u001F\\u007F]+$",
"description": "One concise room-planning priority."
},
"description": "Complete replacement list of up to five human priorities. An empty list clears them."
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"description": "Optional room revision from a prior read. The write is rejected if the room changed."
}
},
"additionalProperties": false,
"anyOf": [
{
"required": [
"purpose"
]
},
{
"required": [
"priorities"
]
}
]
}
}add_furnitureAction
Add one catalog item with optional exact dimensions at coordinates, relative to named furniture, or against a wall. Surface items must use relation on with a supporting piece.
View tool JSON
{
"name": "add_furniture",
"kind": "act",
"impl": "imperative",
"description": "Add one catalog item with optional exact dimensions at coordinates, relative to named furniture, or against a wall. Surface items must use relation on with a supporting piece.",
"inputSchema": {
"type": "object",
"properties": {
"catalogItem": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[^\\u0000-\\u001F\\u007F]+$",
"description": "Catalog ID or catalog name."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[^\\u0000-\\u001F\\u007F]+$",
"description": "Optional unique visible name for this copy."
},
"rotation": {
"type": "number",
"minimum": -3600,
"maximum": 3600,
"description": "Clockwise rotation in degrees."
},
"width": {
"type": "number",
"minimum": 0.1,
"maximum": 100,
"description": "Optional exact item width in feet."
},
"depth": {
"type": "number",
"minimum": 0.1,
"maximum": 100,
"description": "Optional exact item depth in feet."
},
"height": {
"type": "number",
"minimum": 0.05,
"maximum": 100,
"description": "Optional exact item height in feet."
},
"color": {
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$",
"description": "Optional item color as #RRGGBB."
},
"material": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"pattern": "^[^\\u0000-\\u001F\\u007F]+$",
"description": "Optional material description."
},
"x": {
"type": "number",
"minimum": -100,
"maximum": 100,
"description": "Center position across the room in feet."
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 40,
"description": "Base elevation above the floor in feet."
},
"z": {
"type": "number",
"minimum": -100,
"maximum": 100,
"description": "Center position from back to front in feet."
},
"relation": {
"type": "string",
"enum": [
"left_of",
"right_of",
"in_front_of",
"behind",
"beside",
"on"
],
"description": "Relationship to the named anchor."
},
"anchor": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[^\\u0000-\\u001F\\u007F]+$",
"description": "Unique visible name of the anchor item."
},
"side": {
"type": "string",
"enum": [
"left",
"right"
],
"description": "Preferred side when relation is beside."
},
"wall": {
"type": "string",
"enum": [
"back",
"front",
"left",
"right"
],
"description": "Wall to place the item against."
},
"offset": {
"type": "number",
"minimum": -100,
"maximum": 100,
"description": "Position along the selected wall, measured from its center."
},
"gap": {
"type": "number",
"minimum": 0,
"maximum": 20,
"description": "Requested edge-to-edge gap in feet."
},
"elevation": {
"type": "number",
"minimum": 0,
"maximum": 40,
"description": "Bottom elevation above the floor for a wall-mounted item."
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"description": "Optional room revision from a prior read. The write is rejected if the room changed."
}
},
"required": [
"catalogItem"
],
"additionalProperties": false,
"oneOf": [
{
"title": "Coordinates",
"required": [
"x",
"z"
],
"not": {
"anyOf": [
{
"required": [
"relation"
]
},
{
"required": [
"anchor"
]
},
{
"required": [
"side"
]
},
{
"required": [
"wall"
]
},
{
"required": [
"offset"
]
},
{
"required": [
"gap"
]
},
{
"required": [
"elevation"
]
}
]
}
},
{
"title": "Relative to furniture",
"required": [
"relation",
"anchor"
],
"not": {
"anyOf": [
{
"required": [
"x"
]
},
{
"required": [
"y"
]
},
{
"required": [
"z"
]
},
{
"required": [
"wall"
]
},
{
"required": [
"offset"
]
},
{
"required": [
"elevation"
]
}
]
}
},
{
"title": "Against a wall",
"required": [
"wall"
],
"not": {
"anyOf": [
{
"required": [
"x"
]
},
{
"required": [
"y"
]
},
{
"required": [
"z"
]
},
{
"required": [
"relation"
]
},
{
"required": [
"anchor"
]
},
{
"required": [
"side"
]
}
]
}
}
]
}
}move_furnitureAction
Move one named item to coordinates, relative to another item, or against a wall without redesigning it. Surface items stay attached; wall items can set bottom elevation.
View tool JSON
{
"name": "move_furniture",
"kind": "act",
"impl": "imperative",
"description": "Move one named item to coordinates, relative to another item, or against a wall without redesigning it. Surface items stay attached; wall items can set bottom elevation.",
"inputSchema": {
"type": "object",
"properties": {
"target": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[^\\u0000-\\u001F\\u007F]+$",
"description": "Unique visible furniture name, such as Floor lamp."
},
"x": {
"type": "number",
"minimum": -100,
"maximum": 100,
"description": "Center position across the room in feet."
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 40,
"description": "Base elevation above the floor in feet."
},
"z": {
"type": "number",
"minimum": -100,
"maximum": 100,
"description": "Center position from back to front in feet."
},
"relation": {
"type": "string",
"enum": [
"left_of",
"right_of",
"in_front_of",
"behind",
"beside",
"on"
],
"description": "Relationship to the named anchor."
},
"anchor": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[^\\u0000-\\u001F\\u007F]+$",
"description": "Unique visible name of the anchor item."
},
"side": {
"type": "string",
"enum": [
"left",
"right"
],
"description": "Preferred side when relation is beside."
},
"wall": {
"type": "string",
"enum": [
"back",
"front",
"left",
"right"
],
"description": "Wall to place the item against."
},
"offset": {
"type": "number",
"minimum": -100,
"maximum": 100,
"description": "Position along the selected wall, measured from its center."
},
"gap": {
"type": "number",
"minimum": 0,
"maximum": 20,
"description": "Requested edge-to-edge gap in feet."
},
"elevation": {
"type": "number",
"minimum": 0,
"maximum": 40,
"description": "Bottom elevation above the floor for a wall-mounted item."
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"description": "Optional room revision from a prior read. The write is rejected if the room changed."
}
},
"required": [
"target"
],
"additionalProperties": false,
"oneOf": [
{
"title": "Coordinates",
"required": [
"x",
"z"
],
"not": {
"anyOf": [
{
"required": [
"relation"
]
},
{
"required": [
"anchor"
]
},
{
"required": [
"side"
]
},
{
"required": [
"wall"
]
},
{
"required": [
"offset"
]
},
{
"required": [
"gap"
]
},
{
"required": [
"elevation"
]
}
]
}
},
{
"title": "Relative to furniture",
"required": [
"relation",
"anchor"
],
"not": {
"anyOf": [
{
"required": [
"x"
]
},
{
"required": [
"y"
]
},
{
"required": [
"z"
]
},
{
"required": [
"wall"
]
},
{
"required": [
"offset"
]
},
{
"required": [
"elevation"
]
}
]
}
},
{
"title": "Against a wall",
"required": [
"wall"
],
"not": {
"anyOf": [
{
"required": [
"x"
]
},
{
"required": [
"y"
]
},
{
"required": [
"z"
]
},
{
"required": [
"relation"
]
},
{
"required": [
"anchor"
]
},
{
"required": [
"side"
]
}
]
}
}
]
}
}resize_furnitureAction
Change one named item's physical width, depth, or height in feet.
View tool JSON
{
"name": "resize_furniture",
"kind": "act",
"impl": "imperative",
"description": "Change one named item's physical width, depth, or height in feet.",
"inputSchema": {
"type": "object",
"properties": {
"target": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[^\\u0000-\\u001F\\u007F]+$",
"description": "Unique visible furniture name, such as Floor lamp."
},
"width": {
"type": "number",
"minimum": 0.1,
"maximum": 100,
"description": "Item width in feet."
},
"depth": {
"type": "number",
"minimum": 0.1,
"maximum": 100,
"description": "Item depth in feet."
},
"height": {
"type": "number",
"minimum": 0.05,
"maximum": 100,
"description": "Item height in feet."
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"description": "Optional room revision from a prior read. The write is rejected if the room changed."
}
},
"required": [
"target"
],
"additionalProperties": false,
"anyOf": [
{
"required": [
"width"
]
},
{
"required": [
"depth"
]
},
{
"required": [
"height"
]
}
]
}
}rotate_furnitureAction
Set one named item's clockwise rotation in degrees.
View tool JSON
{
"name": "rotate_furniture",
"kind": "act",
"impl": "imperative",
"description": "Set one named item's clockwise rotation in degrees.",
"inputSchema": {
"type": "object",
"properties": {
"target": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[^\\u0000-\\u001F\\u007F]+$",
"description": "Unique visible furniture name, such as Floor lamp."
},
"rotation": {
"type": "number",
"minimum": -3600,
"maximum": 3600,
"description": "Clockwise rotation in degrees."
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"description": "Optional room revision from a prior read. The write is rejected if the room changed."
}
},
"required": [
"target",
"rotation"
],
"additionalProperties": false
}
}style_furnitureAction
Change one named item's color, material, or both without moving or resizing it.
View tool JSON
{
"name": "style_furniture",
"kind": "act",
"impl": "imperative",
"description": "Change one named item's color, material, or both without moving or resizing it.",
"inputSchema": {
"type": "object",
"properties": {
"target": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[^\\u0000-\\u001F\\u007F]+$",
"description": "Unique visible furniture name, such as Floor lamp."
},
"color": {
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$",
"description": "Item color as #RRGGBB."
},
"material": {
"type": "string",
"minLength": 1,
"maxLength": 80,
"pattern": "^[^\\u0000-\\u001F\\u007F]+$",
"description": "Material description."
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"description": "Optional room revision from a prior read. The write is rejected if the room changed."
}
},
"required": [
"target"
],
"additionalProperties": false,
"anyOf": [
{
"required": [
"color"
]
},
{
"required": [
"material"
]
}
]
}
}rename_furnitureAction
Give one existing room item a new unique visible name without changing its geometry or finish.
View tool JSON
{
"name": "rename_furniture",
"kind": "act",
"impl": "imperative",
"description": "Give one existing room item a new unique visible name without changing its geometry or finish.",
"inputSchema": {
"type": "object",
"properties": {
"target": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[^\\u0000-\\u001F\\u007F]+$",
"description": "Unique visible furniture name, such as Floor lamp."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[^\\u0000-\\u001F\\u007F]+$",
"description": "New unique visible item name."
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"description": "Optional room revision from a prior read. The write is rejected if the room changed."
}
},
"required": [
"target",
"name"
],
"additionalProperties": false
}
}duplicate_furnitureAction
Copy one named item with an explicit or predictable default offset.
View tool JSON
{
"name": "duplicate_furniture",
"kind": "act",
"impl": "imperative",
"description": "Copy one named item with an explicit or predictable default offset.",
"inputSchema": {
"type": "object",
"properties": {
"target": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[^\\u0000-\\u001F\\u007F]+$",
"description": "Unique visible furniture name, such as Floor lamp."
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[^\\u0000-\\u001F\\u007F]+$",
"description": "Optional unique name for the copy."
},
"offsetX": {
"type": "number",
"minimum": -100,
"maximum": 100,
"description": "Horizontal copy offset in feet."
},
"offsetY": {
"type": "number",
"minimum": -40,
"maximum": 40,
"description": "Vertical copy offset in feet."
},
"offsetZ": {
"type": "number",
"minimum": -100,
"maximum": 100,
"description": "Depth copy offset in feet."
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"description": "Optional room revision from a prior read. The write is rejected if the room changed."
}
},
"required": [
"target"
],
"additionalProperties": false
}
}remove_furnitureAction
Remove one explicit, uniquely named furniture item from the room.
View tool JSON
{
"name": "remove_furniture",
"kind": "act",
"impl": "imperative",
"description": "Remove one explicit, uniquely named furniture item from the room.",
"inputSchema": {
"type": "object",
"properties": {
"target": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[^\\u0000-\\u001F\\u007F]+$",
"description": "Unique visible furniture name, such as Floor lamp."
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"description": "Optional room revision from a prior read. The write is rejected if the room changed."
}
},
"required": [
"target"
],
"additionalProperties": false
}
}create_wall_artAction
Create authored procedural wall art from a visual style and a palette of 2 to 6 colors. Omit anchor and offset to use the nearest space that clears openings and other wall art.
View tool JSON
{
"name": "create_wall_art",
"kind": "act",
"impl": "imperative",
"description": "Create authored procedural wall art from a visual style and a palette of 2 to 6 colors. Omit anchor and offset to use the nearest space that clears openings and other wall art.",
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[^\\u0000-\\u001F\\u007F]+$",
"description": "Visible name for the art."
},
"wall": {
"type": "string",
"enum": [
"back",
"front",
"left",
"right"
],
"description": "Wall that receives the art."
},
"anchor": {
"type": "string",
"minLength": 1,
"maxLength": 100,
"pattern": "^[^\\u0000-\\u001F\\u007F]+$",
"description": "Optional furniture name to place the art above."
},
"style": {
"type": "string",
"minLength": 1,
"maxLength": 240,
"pattern": "^[^\\u0000-\\u001F\\u007F]+$",
"description": "Visual direction, such as geometric or layered color fields."
},
"palette": {
"type": "array",
"minItems": 2,
"maxItems": 6,
"items": {
"type": "string",
"pattern": "^#[0-9A-Fa-f]{6}$",
"description": "Palette color as #RRGGBB."
}
},
"width": {
"type": "number",
"minimum": 0.5,
"maximum": 20,
"description": "Art width in feet."
},
"height": {
"type": "number",
"minimum": 0.5,
"maximum": 15,
"description": "Art height in feet."
},
"elevation": {
"type": "number",
"minimum": 0,
"maximum": 40,
"description": "Bottom elevation above the floor in feet."
},
"offset": {
"type": "number",
"minimum": -100,
"maximum": 100,
"description": "Position along the selected wall from center."
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"description": "Optional room revision from a prior read. The write is rejected if the room changed."
}
},
"required": [
"wall",
"style",
"palette"
],
"additionalProperties": false,
"not": {
"required": [
"anchor",
"offset"
]
}
}
}apply_layoutAction
Apply one deterministic room-level arrangement. Reading corner groups the chair and lamp by the back-wall window; conversation faces seating inward; open walkway clears the center path.
View tool JSON
{
"name": "apply_layout",
"kind": "act",
"impl": "imperative",
"description": "Apply one deterministic room-level arrangement. Reading corner groups the chair and lamp by the back-wall window; conversation faces seating inward; open walkway clears the center path.",
"inputSchema": {
"type": "object",
"properties": {
"layout": {
"type": "string",
"enum": [
"reading-corner",
"conversation",
"open-walkway"
],
"description": "Room-level arrangement to apply."
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"description": "Optional room revision from a prior read. The write is rejected if the room changed."
}
},
"required": [
"layout"
],
"additionalProperties": false
}
}set_room_viewAction
Set the shared viewport to perspective, plan, front, or left elevation.
View tool JSON
{
"name": "set_room_view",
"kind": "act",
"impl": "imperative",
"description": "Set the shared viewport to perspective, plan, front, or left elevation.",
"inputSchema": {
"type": "object",
"properties": {
"view": {
"type": "string",
"enum": [
"perspective",
"plan",
"front",
"left"
],
"description": "Shared room viewport."
},
"expectedRevision": {
"type": "integer",
"minimum": 0,
"description": "Optional room revision from a prior read. The write is rejected if the room changed."
}
},
"required": [
"view"
],
"additionalProperties": false
}
}undo_room_changeAction
Restore the previous genuine room state as a new, auditable revision.
View tool JSON
{
"name": "undo_room_change",
"kind": "act",
"impl": "imperative",
"description": "Restore the previous genuine room state as a new, auditable revision.",
"inputSchema": {
"type": "object",
"properties": {
"expectedRevision": {
"type": "integer",
"minimum": 0,
"description": "Optional room revision from a prior read. The write is rejected if the room changed."
}
},
"additionalProperties": false
}
}redo_room_changeAction
Reapply the next genuine room state as a new, auditable revision.
View tool JSON
{
"name": "redo_room_change",
"kind": "act",
"impl": "imperative",
"description": "Reapply the next genuine room state as a new, auditable revision.",
"inputSchema": {
"type": "object",
"properties": {
"expectedRevision": {
"type": "integer",
"minimum": 0,
"description": "Optional room revision from a prior read. The write is rejected if the room changed."
}
},
"additionalProperties": false
}
}