Tool tree
gradeNot graded
get_editor_stateAnswer
Get the current ship design, selected part, camera, and save state in the Shipwright editor.
View tool JSON
{
"name": "get_editor_state",
"kind": "answer",
"impl": "imperative",
"description": "Get the current ship design, selected part, camera, and save state in the Shipwright editor.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}add_ship_partAction
Add one polygonal part to the visible ship design and select it.
View tool JSON
{
"name": "add_ship_part",
"kind": "act",
"impl": "imperative",
"description": "Add one polygonal part to the visible ship design and select it.",
"inputSchema": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"box",
"wedge",
"ramp",
"trapezoid",
"tapered-block",
"cylinder",
"sphere",
"cone"
]
},
"position": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 3,
"maxItems": 3
}
},
"required": [
"type"
],
"additionalProperties": false
}
}update_ship_partAction
Move, rotate, scale, recolor, texture, rename, or change supported shape features on an existing ship part. Transform values are absolute.
View tool JSON
{
"name": "update_ship_part",
"kind": "act",
"impl": "imperative",
"description": "Move, rotate, scale, recolor, texture, rename, or change supported shape features on an existing ship part. Transform values are absolute.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
"texture": {
"type": "string",
"enum": [
"smooth",
"brushed",
"plated",
"composite"
]
},
"features": {
"type": "object",
"description": "Shape-specific toggles. Use chamfered for boxes, hollow for cylinders, and truncated for cones.",
"properties": {
"chamfered": {
"type": "boolean",
"description": "Chamfer the edges of a box."
},
"hollow": {
"type": "boolean",
"description": "Turn a cylinder into a hollow tube."
},
"truncated": {
"type": "boolean",
"description": "Turn a cone into a conical frustum."
}
},
"additionalProperties": false
},
"position": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 3,
"maxItems": 3
},
"rotation": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 3,
"maxItems": 3
},
"scale": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 3,
"maxItems": 3
}
},
"required": [
"id"
],
"additionalProperties": false
}
}remove_ship_partAction
Remove one part from the visible ship design by its ID.
View tool JSON
{
"name": "remove_ship_part",
"kind": "act",
"impl": "imperative",
"description": "Remove one part from the visible ship design by its ID.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string"
}
},
"required": [
"id"
],
"additionalProperties": false
}
}copy_selected_ship_partAction
Copy the selected ship part to the editor clipboard.
View tool JSON
{
"name": "copy_selected_ship_part",
"kind": "act",
"impl": "imperative",
"description": "Copy the selected ship part to the editor clipboard.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}paste_ship_partAction
Paste the copied ship part with a new ID and a small position offset.
View tool JSON
{
"name": "paste_ship_part",
"kind": "act",
"impl": "imperative",
"description": "Paste the copied ship part with a new ID and a small position offset.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}undo_ship_editAction
Undo the most recent component change.
View tool JSON
{
"name": "undo_ship_edit",
"kind": "act",
"impl": "imperative",
"description": "Undo the most recent component change.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}select_ship_partAction
Select a ship part by ID so its transform controls and inspector are visible. Use null to clear selection.
View tool JSON
{
"name": "select_ship_part",
"kind": "act",
"impl": "imperative",
"description": "Select a ship part by ID so its transform controls and inspector are visible. Use null to clear selection.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": [
"string",
"null"
]
}
},
"required": [
"id"
],
"additionalProperties": false
}
}set_editor_cameraAction
Set the 3D camera position and orbit target for the visible editing canvas.
View tool JSON
{
"name": "set_editor_camera",
"kind": "act",
"impl": "imperative",
"description": "Set the 3D camera position and orbit target for the visible editing canvas.",
"inputSchema": {
"type": "object",
"properties": {
"position": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 3,
"maxItems": 3
},
"target": {
"type": "array",
"items": {
"type": "number"
},
"minItems": 3,
"maxItems": 3
}
},
"required": [
"position",
"target"
],
"additionalProperties": false
}
}set_canvas_backgroundAction
Set the background and fog color of the visible editing canvas.
View tool JSON
{
"name": "set_canvas_background",
"kind": "act",
"impl": "imperative",
"description": "Set the background and fog color of the visible editing canvas.",
"inputSchema": {
"type": "object",
"properties": {
"color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
}
},
"required": [
"color"
],
"additionalProperties": false
}
}new_ship_designAction
Start a new empty ship design in the visible editor.
View tool JSON
{
"name": "new_ship_design",
"kind": "act",
"impl": "imperative",
"description": "Start a new empty ship design in the visible editor.",
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 80
}
},
"additionalProperties": false
}
}save_ship_designAction
Save the current ship design to the authenticated user's D1-backed collection.
View tool JSON
{
"name": "save_ship_design",
"kind": "act",
"impl": "imperative",
"description": "Save the current ship design to the authenticated user's D1-backed collection.",
"inputSchema": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 80
}
},
"additionalProperties": false
}
}list_ship_designsAnswer
List saved ship designs owned by the authenticated user.
View tool JSON
{
"name": "list_ship_designs",
"kind": "answer",
"impl": "imperative",
"description": "List saved ship designs owned by the authenticated user.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}load_ship_designAction
Load one saved ship design into the visible editor by its ID.
View tool JSON
{
"name": "load_ship_design",
"kind": "act",
"impl": "imperative",
"description": "Load one saved ship design into the visible editor by its ID.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string"
}
},
"required": [
"id"
],
"additionalProperties": false
}
}export_ship_designAction
Export the visible ship as a portable, versioned Shipwright design object for sharing.
View tool JSON
{
"name": "export_ship_design",
"kind": "act",
"impl": "imperative",
"description": "Export the visible ship as a portable, versioned Shipwright design object for sharing.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}import_ship_designAction
Replace the visible editor contents with a portable Shipwright design. The imported design remains unsaved until it is saved explicitly.
View tool JSON
{
"name": "import_ship_design",
"kind": "act",
"impl": "imperative",
"description": "Replace the visible editor contents with a portable Shipwright design. The imported design remains unsaved until it is saved explicitly.",
"inputSchema": {
"type": "object",
"properties": {
"format": {
"type": "string",
"enum": [
"shipwright-design"
]
},
"formatVersion": {
"type": "number",
"enum": [
1
]
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"data": {
"type": "object",
"properties": {
"version": {
"type": "number",
"enum": [
1
]
},
"parts": {
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"name": {
"type": "string",
"maxLength": 80
},
"type": {
"type": "string",
"enum": [
"box"
]
},
"color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
"texture": {
"type": "string",
"enum": [
"smooth",
"brushed",
"plated",
"composite"
]
},
"features": {
"type": "object",
"properties": {
"chamfered": {
"type": "boolean"
}
},
"additionalProperties": false
},
"position": {
"type": "array",
"items": {
"type": "number",
"minimum": -1000,
"maximum": 1000
},
"minItems": 3,
"maxItems": 3
},
"rotation": {
"type": "array",
"items": {
"type": "number",
"minimum": -314.1592653589793,
"maximum": 314.1592653589793
},
"minItems": 3,
"maxItems": 3
},
"scale": {
"type": "array",
"items": {
"type": "number",
"minimum": 0.01,
"maximum": 100
},
"minItems": 3,
"maxItems": 3
}
},
"required": [
"id",
"name",
"type",
"color",
"position",
"rotation",
"scale"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"name": {
"type": "string",
"maxLength": 80
},
"type": {
"type": "string",
"enum": [
"wedge"
]
},
"color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
"texture": {
"type": "string",
"enum": [
"smooth",
"brushed",
"plated",
"composite"
]
},
"position": {
"type": "array",
"items": {
"type": "number",
"minimum": -1000,
"maximum": 1000
},
"minItems": 3,
"maxItems": 3
},
"rotation": {
"type": "array",
"items": {
"type": "number",
"minimum": -314.1592653589793,
"maximum": 314.1592653589793
},
"minItems": 3,
"maxItems": 3
},
"scale": {
"type": "array",
"items": {
"type": "number",
"minimum": 0.01,
"maximum": 100
},
"minItems": 3,
"maxItems": 3
}
},
"required": [
"id",
"name",
"type",
"color",
"position",
"rotation",
"scale"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"name": {
"type": "string",
"maxLength": 80
},
"type": {
"type": "string",
"enum": [
"ramp"
]
},
"color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
"texture": {
"type": "string",
"enum": [
"smooth",
"brushed",
"plated",
"composite"
]
},
"position": {
"type": "array",
"items": {
"type": "number",
"minimum": -1000,
"maximum": 1000
},
"minItems": 3,
"maxItems": 3
},
"rotation": {
"type": "array",
"items": {
"type": "number",
"minimum": -314.1592653589793,
"maximum": 314.1592653589793
},
"minItems": 3,
"maxItems": 3
},
"scale": {
"type": "array",
"items": {
"type": "number",
"minimum": 0.01,
"maximum": 100
},
"minItems": 3,
"maxItems": 3
}
},
"required": [
"id",
"name",
"type",
"color",
"position",
"rotation",
"scale"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"name": {
"type": "string",
"maxLength": 80
},
"type": {
"type": "string",
"enum": [
"trapezoid"
]
},
"color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
"texture": {
"type": "string",
"enum": [
"smooth",
"brushed",
"plated",
"composite"
]
},
"position": {
"type": "array",
"items": {
"type": "number",
"minimum": -1000,
"maximum": 1000
},
"minItems": 3,
"maxItems": 3
},
"rotation": {
"type": "array",
"items": {
"type": "number",
"minimum": -314.1592653589793,
"maximum": 314.1592653589793
},
"minItems": 3,
"maxItems": 3
},
"scale": {
"type": "array",
"items": {
"type": "number",
"minimum": 0.01,
"maximum": 100
},
"minItems": 3,
"maxItems": 3
}
},
"required": [
"id",
"name",
"type",
"color",
"position",
"rotation",
"scale"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"name": {
"type": "string",
"maxLength": 80
},
"type": {
"type": "string",
"enum": [
"tapered-block"
]
},
"color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
"texture": {
"type": "string",
"enum": [
"smooth",
"brushed",
"plated",
"composite"
]
},
"position": {
"type": "array",
"items": {
"type": "number",
"minimum": -1000,
"maximum": 1000
},
"minItems": 3,
"maxItems": 3
},
"rotation": {
"type": "array",
"items": {
"type": "number",
"minimum": -314.1592653589793,
"maximum": 314.1592653589793
},
"minItems": 3,
"maxItems": 3
},
"scale": {
"type": "array",
"items": {
"type": "number",
"minimum": 0.01,
"maximum": 100
},
"minItems": 3,
"maxItems": 3
}
},
"required": [
"id",
"name",
"type",
"color",
"position",
"rotation",
"scale"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"name": {
"type": "string",
"maxLength": 80
},
"type": {
"type": "string",
"enum": [
"cylinder"
]
},
"color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
"texture": {
"type": "string",
"enum": [
"smooth",
"brushed",
"plated",
"composite"
]
},
"features": {
"type": "object",
"properties": {
"hollow": {
"type": "boolean"
}
},
"additionalProperties": false
},
"position": {
"type": "array",
"items": {
"type": "number",
"minimum": -1000,
"maximum": 1000
},
"minItems": 3,
"maxItems": 3
},
"rotation": {
"type": "array",
"items": {
"type": "number",
"minimum": -314.1592653589793,
"maximum": 314.1592653589793
},
"minItems": 3,
"maxItems": 3
},
"scale": {
"type": "array",
"items": {
"type": "number",
"minimum": 0.01,
"maximum": 100
},
"minItems": 3,
"maxItems": 3
}
},
"required": [
"id",
"name",
"type",
"color",
"position",
"rotation",
"scale"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"name": {
"type": "string",
"maxLength": 80
},
"type": {
"type": "string",
"enum": [
"sphere"
]
},
"color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
"texture": {
"type": "string",
"enum": [
"smooth",
"brushed",
"plated",
"composite"
]
},
"position": {
"type": "array",
"items": {
"type": "number",
"minimum": -1000,
"maximum": 1000
},
"minItems": 3,
"maxItems": 3
},
"rotation": {
"type": "array",
"items": {
"type": "number",
"minimum": -314.1592653589793,
"maximum": 314.1592653589793
},
"minItems": 3,
"maxItems": 3
},
"scale": {
"type": "array",
"items": {
"type": "number",
"minimum": 0.01,
"maximum": 100
},
"minItems": 3,
"maxItems": 3
}
},
"required": [
"id",
"name",
"type",
"color",
"position",
"rotation",
"scale"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"name": {
"type": "string",
"maxLength": 80
},
"type": {
"type": "string",
"enum": [
"cone"
]
},
"color": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
},
"texture": {
"type": "string",
"enum": [
"smooth",
"brushed",
"plated",
"composite"
]
},
"features": {
"type": "object",
"properties": {
"truncated": {
"type": "boolean"
}
},
"additionalProperties": false
},
"position": {
"type": "array",
"items": {
"type": "number",
"minimum": -1000,
"maximum": 1000
},
"minItems": 3,
"maxItems": 3
},
"rotation": {
"type": "array",
"items": {
"type": "number",
"minimum": -314.1592653589793,
"maximum": 314.1592653589793
},
"minItems": 3,
"maxItems": 3
},
"scale": {
"type": "array",
"items": {
"type": "number",
"minimum": 0.01,
"maximum": 100
},
"minItems": 3,
"maxItems": 3
}
},
"required": [
"id",
"name",
"type",
"color",
"position",
"rotation",
"scale"
],
"additionalProperties": false
}
]
},
"maxItems": 100
},
"camera": {
"type": "object",
"properties": {
"position": {
"type": "array",
"items": {
"type": "number",
"minimum": -1000,
"maximum": 1000
},
"minItems": 3,
"maxItems": 3
},
"target": {
"type": "array",
"items": {
"type": "number",
"minimum": -1000,
"maximum": 1000
},
"minItems": 3,
"maxItems": 3
}
},
"required": [
"position",
"target"
],
"additionalProperties": false
},
"backgroundColor": {
"type": "string",
"pattern": "^#[0-9a-fA-F]{6}$"
}
},
"required": [
"version",
"parts",
"camera"
],
"additionalProperties": false
}
},
"required": [
"format",
"formatVersion",
"name",
"data"
],
"additionalProperties": false
}
}