enhancedocs
For agentsOpen Enhance ↗
CLI commands / enhance-dev canvas create-editable-frame

Enhance documentation

enhance-dev canvas create-editable-frame

Insert one validated primitive subtree beside its source screen as an atomic canvas edit.

↓ Markdown

enhance-dev canvas create-editable-frame

enhance-dev canvas create-editable-frame [options]

Arguments

This command takes no positional arguments.

Options

OptionRequiredDefaultMeaning
--canvas-id <string>YesNoneCanvas id, from enhance canvas list.
--document-format-version <number>YesNoneSupported canvas schema version for this writer, not the saved revision in baseVersion. Update the client if its format is no longer supported.
--mutation-id <string>YesNoneClient-minted UUID identifying this atomic canvas mutation.
--base-version <number>YesNoneDocument version returned by enhance canvas document get.
--screen-node-id <string>YesNoneRoot-level screen node id returned by enhance canvas tree.
--draft [json]NoNoneVersioned primitive subtree JSON produced by screen conversion.
--json <json>NoNoneComplete procedure input as JSON; do not combine it with field flags.
--client-token <uuid>NoNoneStable UUID to reuse when retrying the exact same mutation.

Input

This command presents the capability canvas.createEditableFrame. It has write effect and single idempotency.

Show complete input JSON Schema (JSON file)

Output

This command writes JSON records to standard output. Returns a typed canvas.createEditableFrame result from the Enhance API without transport-specific prose.

Show complete output JSON Schema (JSON file)

Examples

enhance-dev canvas create-editable-frame --canvas-id <string> --document-format-version <number> --mutation-id <string> --base-version <number> --screen-node-id <string>
Show example input
{
 "canvasId": "00000000-0000-4000-8000-000000000010",
 "documentFormatVersion": 13,
 "mutationId": "00000000-0000-4000-8000-000000000010",
 "baseVersion": 1,
 "screenNodeId": "x",
 "draft": {
  "version": 1,
  "rootTemporaryId": "x",
  "nodes": [
   {
    "label": "x",
    "component": "x",
    "styles": {},
    "temporaryId": "x"
   }
  ],
  "relationships": []
 }
}
Show example output
{
 "canvasId": "00000000-0000-4000-8000-000000000010",
 "mutationId": "00000000-0000-4000-8000-000000000010",
 "previousVersion": 1,
 "version": 1,
 "rootNodeId": "x",
 "idMap": {},
 "insertedNodeIds": [],
 "removedNodeIds": [],
 "boxes": {},
 "affectedBounds": {
  "x": 0,
  "y": 0,
  "width": 0,
  "height": 0
 },
 "operation": {
  "op": "insertConvertedSubtree",
  "destination": {
   "kind": "adjacent"
  },
  "rootNodeId": "x",
  "nodes": {},
  "relationships": {}
 },
 "next": []
}

Exit behaviour

Exit codeMeaning
0The command succeeded.
1The command failed for another reason (INTERNAL). A write may have an unknown outcome.
2The command line was malformed. Nothing ran.
3The API refused the input (BAD_REQUEST).
4The credential is missing or expired (UNAUTHORIZED).
5The API refused the request (FORBIDDEN, NOT_FOUND, CONFLICT, RATE_LIMITED).
6A batch finished only in part. Retry with the same --client-token.

Versions

Minimum tested versions: Enhance CLI and MCP runtime 0.1.40, plugin 1.0.38, Node.js 24. No older floor is published.