Canvas Apply
aimixer_canvas_applyUse when the user asks to add or edit text, titles, frames, layout or nodes in a Canvas project. Applies semantic edits, including server-planned layout_composition with near-square group-frame grid (ceil(sqrt(N)) columns, row-major, no overlaps), atomically to your Canvas project at expected_rev. Read capabilities and the project first. Use exact node IDs; remove nodes only when requested. Reuse the SAME request_id after a lost response. A revision conflict requires rereading; never force overwrite. This edits the draft only; generation uses the existing quote/submit tools. AFTER apply: if layout_warnings are returned, fix them; then call aimixer_canvas_inspect_layout for the frame and fix any overflow/overlap before telling the user it is done. When placing an imported image/video/audio from aimixer_media_import or a library managed_id, attach it to a media node with attach_media/reference; this creates a durable project reference. For new direct uploads first create/read the project, then use aimixer_media_upload_prepare with destination=canvas and project_id, then attach the managed_id. Titles: one short line plus an optional short subtitle; for add_note set w to fit inside the frame and wrap=true. Frames must fit their children with padding.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"project_id": "<project_id>",
"expected_rev": "<expected_rev>",
"request_id": "<request_id>",
"operations": "<operations>"
},
"name": "aimixer_canvas_apply"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| operations | Yes | ||
| project_id | Yes | ||
| request_id | Yes | ||
| expected_rev | Yes |