canvas_layout
tools/call
Lay out a frame's nodes, or the nodes you list, again: layered (by their connectors), tree, or grid. Only positions change; text, links and connectors stay, and connectors reroute. At most 2000 selected nodes; labels and rerouted connectors are included in durable bounded saves.
Scopes
read:projectswrite:projects
A project canvas also needs its project to be readable, and for writes writable (Edit tasks, not archived) by the key's person. A workspace canvas is readable when its person owns it or it is shared with the workspace, and writable when its person owns it or holds Edit tasks on a shared one.
Inputs
- canvasIdstringRequired
- framestring
- nodesstring[]
- layout"layered" | "tree" | "grid"
- direction"TB" | "LR" | "BT" | "RL"
- baseSeqinteger
- idempotencyKeystringRequired
- Unique retry key; a retry with the same key returns the first result and writes nothing.
- jobAction"status" | "cancel"
- Repeat the original tool and full input with the same idempotencyKey, adding status to recover progress or cancel to stop running work. Recovery adds no logical admission or usage. Incomplete preparation stays fenced to its action owner and expires if abandoned. Cancellation retains earlier writes for human Revert.
Returns
Frozen caller-key mapping and truthful durable preparation/job progress. jobId is null until job creation; preparing is not execution or completion. Repeat original input with its idempotencyKey to continue without another logical charge; jobAction status only reads. Cancellation while preparing remains original-owner fenced; running-job cancellation retains earlier writes for Revert. A call returns content[0].text with the JSON result and structuredContent.result with the same value.
Listed when
The key has read:projects and Canvas is open for the workspace; the tools that write need write:projects too.