Tool tree
gradeNot graded
list_commandsAnswer
Lists what can be done in Connector Foundry, a designer for 3D-printable connector parts, right now: the commands its command palette (Cmd/Ctrl+K) offers. They follow the tab in use (Library, Bench, Holes) and what is selected, so list again after a change. Without a query the everyday commands are listed; parts, hole types, camera views and guides are found with a query. A command marked "opens" leads to a list of choices (Grid step, Attach a part…): list those by passing its id in "within". Run a command with run_command.
View tool JSON
{
"name": "list_commands",
"kind": "answer",
"impl": "imperative",
"description": "Lists what can be done in Connector Foundry, a designer for 3D-printable connector parts, right now: the commands its command palette (Cmd/Ctrl+K) offers. They follow the tab in use (Library, Bench, Holes) and what is selected, so list again after a change. Without a query the everyday commands are listed; parts, hole types, camera views and guides are found with a query. A command marked \"opens\" leads to a list of choices (Grid step, Attach a part…): list those by passing its id in \"within\". Run a command with run_command.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Words to look for, as typed into the palette: \"download stl\", \"m3\", \"gridfinity bin\"."
},
"within": {
"type": "array",
"items": {
"type": "string"
},
"description": "Ids of the commands whose lists to open, outermost first: [\"bench.attach\"]."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 300,
"description": "At most this many (100)."
}
}
},
"page": "/connector-foundry/app/"
}run_commandAction
Runs one of the commands list_commands lists, as pressing Enter on it in the command palette would — or another of its actions, by title ("Copy link", "Open in Bench"). A command from a list of choices needs the same "within" it was listed with. Changes to a bench or holes can be undone by the user (Undo). The app updates once it has run: get_app_state shows the result.
View tool JSON
{
"name": "run_command",
"kind": "act",
"impl": "imperative",
"description": "Runs one of the commands list_commands lists, as pressing Enter on it in the command palette would — or another of its actions, by title (\"Copy link\", \"Open in Bench\"). A command from a list of choices needs the same \"within\" it was listed with. Changes to a bench or holes can be undone by the user (Undo). The app updates once it has run: get_app_state shows the result.",
"inputSchema": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The command's id, from list_commands."
},
"within": {
"type": "array",
"items": {
"type": "string"
},
"description": "The ids of the lists it is on, as passed to list_commands."
},
"action": {
"type": "string",
"description": "Which of its actions, by title. The first one if left out."
}
},
"required": [
"id"
]
},
"page": "/connector-foundry/app/"
}search_partsAnswer
Searches the catalogue of parts: connectors and accessories for Gridfinity, openGrid, Multiboard, Skådis and other systems. Each part comes with its parameters and their defaults, the values a parameter can take, and its named variants. Open one with open_part. Without a query, lists them all.
View tool JSON
{
"name": "search_parts",
"kind": "answer",
"impl": "imperative",
"description": "Searches the catalogue of parts: connectors and accessories for Gridfinity, openGrid, Multiboard, Skådis and other systems. Each part comes with its parameters and their defaults, the values a parameter can take, and its named variants. Open one with open_part. Without a query, lists them all.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "Words in the part's name, system or id: \"gridfinity bin\", \"opengrid board\"."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 50,
"description": "At most this many (50)."
}
}
},
"page": "/connector-foundry/app/"
}open_partAction
Opens a catalogue part with the given parameters: in the Library to preview and download it, on the Bench as the base of a new assembly, or in Holes to drill holes into it. Parameters left out keep their defaults (search_parts lists them). Replacing a bench or placed holes asks the user first.
View tool JSON
{
"name": "open_part",
"kind": "act",
"impl": "imperative",
"description": "Opens a catalogue part with the given parameters: in the Library to preview and download it, on the Bench as the base of a new assembly, or in Holes to drill holes into it. Parameters left out keep their defaults (search_parts lists them). Replacing a bench or placed holes asks the user first.",
"inputSchema": {
"type": "object",
"properties": {
"partId": {
"type": "string",
"description": "The part's id, from search_parts: \"gridfinity/bin\"."
},
"params": {
"type": "object",
"description": "Parameter values by name: { \"gx\": 2, \"gy\": 3 }.",
"additionalProperties": true
},
"target": {
"type": "string",
"enum": [
"library",
"bench",
"holes"
],
"description": "Which tab to open it in (library)."
}
},
"required": [
"partId"
]
},
"page": "/connector-foundry/app/"
}attach_partAction
Attaches a catalogue part to an open slot on the Bench, as picking it in Attach a part… does: it starts with the parameters it would get there (a grid part sized to the surface, a part turned upright on a side face), and params given here go over those. get_app_state lists the open slots once the bench has rendered. A bench takes at most 3 attached parts. The user can undo it.
View tool JSON
{
"name": "attach_part",
"kind": "act",
"impl": "imperative",
"description": "Attaches a catalogue part to an open slot on the Bench, as picking it in Attach a part… does: it starts with the parameters it would get there (a grid part sized to the surface, a part turned upright on a side face), and params given here go over those. get_app_state lists the open slots once the bench has rendered. A bench takes at most 3 attached parts. The user can undo it.",
"inputSchema": {
"type": "object",
"properties": {
"partId": {
"type": "string",
"description": "The part's id, from search_parts: \"basics/plate\"."
},
"parentId": {
"type": "string",
"description": "The node the slot is on, from get_app_state's openSlots (\"root\" if left out)."
},
"slotName": {
"type": "string",
"description": "The slot, from get_app_state's openSlots: \"mount_0_0\"."
},
"params": {
"type": "object",
"description": "Parameter values by name, over the ones it starts with.",
"additionalProperties": true
},
"joint": {
"type": "string",
"enum": [
"fused",
"bolted",
"snap",
"pin",
"screwed"
],
"description": "How it joins the part below (fused)."
}
},
"required": [
"partId",
"slotName"
]
},
"page": "/connector-foundry/app/"
}get_app_stateAnswer
Says which tab is showing and what is on each: the Library's part and its parameters, the Bench's assembly as a bench config (the document load_bench takes), and the Holes tab's model and how many holes it has. Imported meshes' STL data is left out. preview is how the showing tab's render went: "rendering" until it lands, then "done", or "error" with the message — check it after a change, since a bad parameter or slot only shows there. On the Bench, openSlots lists where attach_part can put a part.
View tool JSON
{
"name": "get_app_state",
"kind": "answer",
"impl": "imperative",
"description": "Says which tab is showing and what is on each: the Library's part and its parameters, the Bench's assembly as a bench config (the document load_bench takes), and the Holes tab's model and how many holes it has. Imported meshes' STL data is left out. preview is how the showing tab's render went: \"rendering\" until it lands, then \"done\", or \"error\" with the message — check it after a change, since a bad parameter or slot only shows there. On the Bench, openSlots lists where attach_part can put a part.",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/connector-foundry/app/"
}load_benchAction
Replaces the Bench's assembly with a bench config and shows the Bench. Read the current one with get_app_state, change it (a part's params, a joint, a rotation), and pass the whole document back. An imported mesh may keep "stl": "(left out)" when it is on the bench now. To attach a part, use attach_part: which slots a part has depends on its rendered size. Joints: fused, bolted, snap, pin, screwed. The user can undo it.
View tool JSON
{
"name": "load_bench",
"kind": "act",
"impl": "imperative",
"description": "Replaces the Bench's assembly with a bench config and shows the Bench. Read the current one with get_app_state, change it (a part's params, a joint, a rotation), and pass the whole document back. An imported mesh may keep \"stl\": \"(left out)\" when it is on the bench now. To attach a part, use attach_part: which slots a part has depends on its rendered size. Joints: fused, bolted, snap, pin, screwed. The user can undo it.",
"inputSchema": {
"type": "object",
"properties": {
"config": {
"type": "object",
"description": "A bench config: { \"format\": \"connector-foundry/bench\", \"version\": 1, \"root\", \"nodes\" }.",
"additionalProperties": true
}
},
"required": [
"config"
]
},
"page": "/connector-foundry/app/"
}