← WebMCP Directory

Tool tree

inkframe-eta.vercel.app

Productivity & BusinessTools verified
Website
Browser-native Elah video editor for 9:16 and 16:9 exports
Explore capabilities
    get_capabilitiesAnswer

    Read Inkframe capabilities and the safe, same-origin workspace routes.

    View tool JSON
    {
      "name": "get_capabilities",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read Inkframe capabilities and the safe, same-origin workspace routes.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/editor"
    }
    list_templatesAnswer

    List and filter Inkframe templates, including aspect, duration, and editable layer metadata.

    View tool JSON
    {
      "name": "list_templates",
      "kind": "answer",
      "impl": "imperative",
      "description": "List and filter Inkframe templates, including aspect, duration, and editable layer metadata.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "maxLength": 80
          },
          "kind": {
            "type": "string",
            "enum": [
              "all",
              "editor"
            ]
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "maximum": 20
          }
        },
        "additionalProperties": false
      },
      "page": "/editor"
    }
    navigate_workspaceAction

    Navigate to a known Inkframe workspace route. Explicit confirmation is required because navigation can discard unsaved work.

    View tool JSON
    {
      "name": "navigate_workspace",
      "kind": "act",
      "impl": "imperative",
      "description": "Navigate to a known Inkframe workspace route. Explicit confirmation is required because navigation can discard unsaved work.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "route": {
            "type": "string",
            "enum": [
              "home",
              "editor",
              "templates"
            ]
          },
          "confirmed": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "route",
          "confirmed"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    open_templateAction

    Open a validated template. After navigation, continue the requested workflow with the editor_* tools registered by the destination page. Explicit confirmation is required because navigation can discard unsaved work.

    View tool JSON
    {
      "name": "open_template",
      "kind": "act",
      "impl": "imperative",
      "description": "Open a validated template. After navigation, continue the requested workflow with the editor_* tools registered by the destination page. Explicit confirmation is required because navigation can discard unsaved work.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "templateId": {
            "type": "string",
            "minLength": 1
          },
          "confirmed": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "templateId",
          "confirmed"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_inspect_video_momentsAction

    Sample six video frames. Visually choose preferredStartSeconds for beat montage; metrics are not semantic judgments and sampling may miss action peaks.

    View tool JSON
    {
      "name": "editor_inspect_video_moments",
      "kind": "act",
      "impl": "imperative",
      "description": "Sample six video frames. Visually choose preferredStartSeconds for beat montage; metrics are not semantic judgments and sampling may miss action peaks.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "assetId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          }
        },
        "required": [
          "assetId"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_plan_beat_montageAction

    Preview beat-aligned trims, not rendered video. First inspect each video's frames to choose order/start times. Videos cycle in supplied order. Applying replaces clips/audio/transitions/captions; text retention is optional. Review returned plan and warnings first.

    View tool JSON
    {
      "name": "editor_plan_beat_montage",
      "kind": "act",
      "impl": "imperative",
      "description": "Preview beat-aligned trims, not rendered video. First inspect each video's frames to choose order/start times. Videos cycle in supplied order. Applying replaces clips/audio/transitions/captions; text retention is optional. Review returned plan and warnings first.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "videos": {
            "minItems": 1,
            "maxItems": 30,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "assetId": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 128
                },
                "preferredStartSeconds": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 86400
                }
              },
              "required": [
                "assetId"
              ],
              "additionalProperties": false
            }
          },
          "audioAssetId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "durationSeconds": {
            "type": "number",
            "minimum": 1,
            "maximum": 60
          },
          "musicStartSeconds": {
            "default": 0,
            "type": "number",
            "minimum": 0,
            "maximum": 86400
          },
          "minShotSeconds": {
            "default": 1.5,
            "type": "number",
            "minimum": 0.5,
            "maximum": 10
          },
          "maxShotSeconds": {
            "default": 4,
            "type": "number",
            "minimum": 0.5,
            "maximum": 20
          },
          "preserveText": {
            "default": true,
            "type": "boolean"
          }
        },
        "required": [
          "aspect",
          "videos",
          "audioAssetId",
          "durationSeconds",
          "musicStartSeconds",
          "minShotSeconds",
          "maxShotSeconds",
          "preserveText"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_apply_beat_montageAction

    Apply the exact reviewed beat montage in one undoable, retry-safe command. Requires its planId and revision. Replaces the selected aspect master. Play the timeline to review the result; undo to restore the previous edit.

    View tool JSON
    {
      "name": "editor_apply_beat_montage",
      "kind": "act",
      "impl": "imperative",
      "description": "Apply the exact reviewed beat montage in one undoable, retry-safe command. Requires its planId and revision. Replaces the selected aspect master. Play the timeline to review the result; undo to restore the previous edit.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "planId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "operationId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "confirmed": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "aspect",
          "planId",
          "expectedRevision",
          "operationId",
          "confirmed"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_prepare_transcriptionAction

    Download trimmed WAV for desktop Whisper; returns a ticket. Does not run native software. Normal-speed master video only. Follow returned handoff instructions.

    View tool JSON
    {
      "name": "editor_prepare_transcription",
      "kind": "act",
      "impl": "imperative",
      "description": "Download trimmed WAV for desktop Whisper; returns a ticket. Does not run native software. Normal-speed master video only. Follow returned handoff instructions.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "clipId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "confirmed": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "aspect",
          "clipId",
          "confirmed"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_preview_transcriptAction

    Preview untrusted Whisper JSON segments {start,end,text}, in trimmed-WAV seconds, using a handoff ticket. Returns cues and previewId; no edits.

    View tool JSON
    {
      "name": "editor_preview_transcript",
      "kind": "act",
      "impl": "imperative",
      "description": "Preview untrusted Whisper JSON segments {start,end,text}, in trimmed-WAV seconds, using a handoff ticket. Returns cues and previewId; no edits.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "ticketId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "content": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200000
          }
        },
        "required": [
          "ticketId",
          "content"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_apply_transcriptAction

    Apply reviewed previewId to a new caption lane; preserves captions. Confirmed, revision-checked, undoable and retry-safe by operationId.

    View tool JSON
    {
      "name": "editor_apply_transcript",
      "kind": "act",
      "impl": "imperative",
      "description": "Apply reviewed previewId to a new caption lane; preserves captions. Confirmed, revision-checked, undoable and retry-safe by operationId.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "ticketId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "previewId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "operationId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "confirmed": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "aspect",
          "ticketId",
          "previewId",
          "expectedRevision",
          "operationId",
          "confirmed"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_track_objectAction

    Analyze a top-left normalized source box using local pixel matching. Returns clip-local centers and confidence, without editing. Low confidence stops tracking; this is not semantic segmentation. Inspect the path, correct it, then attach to an image graphic.

    View tool JSON
    {
      "name": "editor_track_object",
      "kind": "act",
      "impl": "imperative",
      "description": "Analyze a top-left normalized source box using local pixel matching. Returns clip-local centers and confidence, without editing. Low confidence stops tracking; this is not semantic segmentation. Inspect the path, correct it, then attach to an image graphic.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "clipId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "box": {
            "type": "object",
            "properties": {
              "x": {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              },
              "y": {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              },
              "width": {
                "type": "number",
                "exclusiveMinimum": 0,
                "maximum": 1
              },
              "height": {
                "type": "number",
                "exclusiveMinimum": 0,
                "maximum": 1
              }
            },
            "required": [
              "x",
              "y",
              "width",
              "height"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "aspect",
          "clipId",
          "box"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_correct_object_trackAction

    Correct a clip-local tracking point with a source-normalized center. Does not edit the timeline or certify recovery of a lost track.

    View tool JSON
    {
      "name": "editor_correct_object_track",
      "kind": "act",
      "impl": "imperative",
      "description": "Correct a clip-local tracking point with a source-normalized center. Does not edit the timeline or certify recovery of a lost track.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "trackingId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "frame": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1800
          },
          "x": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "y": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          }
        },
        "required": [
          "trackingId",
          "frame",
          "x",
          "y"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_attach_object_trackAction

    Apply a reviewed complete track to an existing image graphic as x/y keyframes in one undo step. Replaces that graphic's position animation; other channels are preserved. Lost tracks cannot be applied.

    View tool JSON
    {
      "name": "editor_attach_object_track",
      "kind": "act",
      "impl": "imperative",
      "description": "Apply a reviewed complete track to an existing image graphic as x/y keyframes in one undo step. Replaces that graphic's position animation; other channels are preserved. Lost tracks cannot be applied.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "operationId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "trackingId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "targetClipId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "confirmed": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "aspect",
          "expectedRevision",
          "operationId",
          "trackingId",
          "targetClipId",
          "confirmed"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_set_selective_gradeAction

    Replace up to eight independent feathered ellipse/rectangle regions on a clip. Center and size are source-normalized; inverted masks grade outside. Uses SDR pixels and the same preview/export renderer. Empty regions clears local grading; global settings stay unchanged.

    View tool JSON
    {
      "name": "editor_set_selective_grade",
      "kind": "act",
      "impl": "imperative",
      "description": "Replace up to eight independent feathered ellipse/rectangle regions on a clip. Center and size are source-normalized; inverted masks grade outside. Uses SDR pixels and the same preview/export renderer. Empty regions clears local grading; global settings stay unchanged.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "operationId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "clipId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "regions": {
            "maxItems": 8,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 128
                },
                "shape": {
                  "type": "string",
                  "enum": [
                    "ellipse",
                    "rectangle"
                  ]
                },
                "x": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1
                },
                "y": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1
                },
                "width": {
                  "type": "number",
                  "exclusiveMinimum": 0,
                  "maximum": 1
                },
                "height": {
                  "type": "number",
                  "exclusiveMinimum": 0,
                  "maximum": 1
                },
                "feather": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1
                },
                "inverted": {
                  "type": "boolean"
                },
                "exposure": {
                  "type": "number",
                  "minimum": -2,
                  "maximum": 2
                },
                "temperature": {
                  "type": "number",
                  "minimum": -1,
                  "maximum": 1
                },
                "tint": {
                  "type": "number",
                  "minimum": -1,
                  "maximum": 1
                },
                "saturation": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 2
                }
              },
              "required": [
                "id",
                "shape",
                "x",
                "y",
                "width",
                "height",
                "feather",
                "exposure",
                "temperature",
                "tint",
                "saturation"
              ],
              "additionalProperties": false
            }
          },
          "confirmed": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "aspect",
          "expectedRevision",
          "operationId",
          "clipId",
          "regions",
          "confirmed"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_set_clip_keyframesAction

    Replace clip-local animation channels. Frame controls include the exclusive end boundary; interpolation is linear or hold.

    View tool JSON
    {
      "name": "editor_set_clip_keyframes",
      "kind": "act",
      "impl": "imperative",
      "description": "Replace clip-local animation channels. Frame controls include the exclusive end boundary; interpolation is linear or hold.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "operationId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "clipId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "keyframes": {
            "type": "object",
            "properties": {
              "x": {
                "maxItems": 1000,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 128
                    },
                    "frame": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 1800
                    },
                    "value": {
                      "type": "number"
                    },
                    "interpolation": {
                      "type": "string",
                      "enum": [
                        "linear",
                        "hold"
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "frame",
                    "value",
                    "interpolation"
                  ],
                  "additionalProperties": false
                }
              },
              "y": {
                "maxItems": 1000,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 128
                    },
                    "frame": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 1800
                    },
                    "value": {
                      "type": "number"
                    },
                    "interpolation": {
                      "type": "string",
                      "enum": [
                        "linear",
                        "hold"
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "frame",
                    "value",
                    "interpolation"
                  ],
                  "additionalProperties": false
                }
              },
              "scale": {
                "maxItems": 1000,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 128
                    },
                    "frame": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 1800
                    },
                    "value": {
                      "type": "number"
                    },
                    "interpolation": {
                      "type": "string",
                      "enum": [
                        "linear",
                        "hold"
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "frame",
                    "value",
                    "interpolation"
                  ],
                  "additionalProperties": false
                }
              },
              "rotation": {
                "maxItems": 1000,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 128
                    },
                    "frame": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 1800
                    },
                    "value": {
                      "type": "number"
                    },
                    "interpolation": {
                      "type": "string",
                      "enum": [
                        "linear",
                        "hold"
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "frame",
                    "value",
                    "interpolation"
                  ],
                  "additionalProperties": false
                }
              },
              "opacity": {
                "maxItems": 1000,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 128
                    },
                    "frame": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 1800
                    },
                    "value": {
                      "type": "number"
                    },
                    "interpolation": {
                      "type": "string",
                      "enum": [
                        "linear",
                        "hold"
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "frame",
                    "value",
                    "interpolation"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "aspect",
          "expectedRevision",
          "operationId",
          "clipId",
          "keyframes"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_upsert_caption_cuesAction

    Atomically add or update caption cues by ID on existing caption lanes. Same-lane overlap is invalid.

    View tool JSON
    {
      "name": "editor_upsert_caption_cues",
      "kind": "act",
      "impl": "imperative",
      "description": "Atomically add or update caption cues by ID on existing caption lanes. Same-lane overlap is invalid.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "operationId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "cues": {
            "minItems": 1,
            "maxItems": 1000,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 128
                },
                "trackId": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 128
                },
                "startFrame": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 1800
                },
                "endFrame": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 1800
                },
                "text": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 4000
                }
              },
              "required": [
                "id",
                "trackId",
                "startFrame",
                "endFrame",
                "text"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "aspect",
          "expectedRevision",
          "operationId",
          "cues"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_import_captionsAction

    Import plain SRT/WebVTT atomically. Starts round down and ends round up to frames; unsupported styling and collisions are errors.

    View tool JSON
    {
      "name": "editor_import_captions",
      "kind": "act",
      "impl": "imperative",
      "description": "Import plain SRT/WebVTT atomically. Starts round down and ends round up to frames; unsupported styling and collisions are errors.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "operationId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "trackId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "format": {
            "type": "string",
            "enum": [
              "srt",
              "vtt"
            ]
          },
          "content": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200000
          },
          "mode": {
            "default": "append",
            "type": "string",
            "enum": [
              "append",
              "replace"
            ]
          }
        },
        "required": [
          "aspect",
          "expectedRevision",
          "operationId",
          "trackId",
          "format",
          "content",
          "mode"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_plan_audio_balanceAction

    Read-only preview of interval-based music ducking under selected narration. Returns a validated rule, gain envelope, warnings, and revision. This does not analyze speech or measure loudness. Review the plan before applying the same inputs with its revision.

    View tool JSON
    {
      "name": "editor_plan_audio_balance",
      "kind": "act",
      "impl": "imperative",
      "description": "Read-only preview of interval-based music ducking under selected narration. Returns a validated rule, gain envelope, warnings, and revision. This does not analyze speech or measure loudness. Review the plan before applying the same inputs with its revision.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "music": {
            "type": "object",
            "properties": {
              "kind": {
                "type": "string",
                "enum": [
                  "audio",
                  "video"
                ]
              },
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 128
              }
            },
            "required": [
              "kind",
              "id"
            ],
            "additionalProperties": false
          },
          "narration": {
            "minItems": 1,
            "maxItems": 1000,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "kind": {
                  "type": "string",
                  "enum": [
                    "audio",
                    "video"
                  ]
                },
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 128
                }
              },
              "required": [
                "kind",
                "id"
              ],
              "additionalProperties": false
            }
          },
          "strength": {
            "type": "string",
            "enum": [
              "gentle",
              "balanced",
              "strong"
            ]
          },
          "ruleId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          }
        },
        "required": [
          "aspect",
          "music",
          "narration",
          "strength",
          "ruleId"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_apply_audio_balanceAction

    Apply a reviewed interval-based balance plan with confirmed:true and its expectedRevision. Revalidates the same music, narration, strength, and new ruleId inputs; creates one ducking rule in one undo step. Existing rule IDs are rejected. Retry with the same operationId; undo with editor_undo or remove with editor_remove_audio_ducking.

    View tool JSON
    {
      "name": "editor_apply_audio_balance",
      "kind": "act",
      "impl": "imperative",
      "description": "Apply a reviewed interval-based balance plan with confirmed:true and its expectedRevision. Revalidates the same music, narration, strength, and new ruleId inputs; creates one ducking rule in one undo step. Existing rule IDs are rejected. Retry with the same operationId; undo with editor_undo or remove with editor_remove_audio_ducking.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "operationId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "music": {
            "type": "object",
            "properties": {
              "kind": {
                "type": "string",
                "enum": [
                  "audio",
                  "video"
                ]
              },
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 128
              }
            },
            "required": [
              "kind",
              "id"
            ],
            "additionalProperties": false
          },
          "narration": {
            "minItems": 1,
            "maxItems": 1000,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "kind": {
                  "type": "string",
                  "enum": [
                    "audio",
                    "video"
                  ]
                },
                "id": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 128
                }
              },
              "required": [
                "kind",
                "id"
              ],
              "additionalProperties": false
            }
          },
          "strength": {
            "type": "string",
            "enum": [
              "gentle",
              "balanced",
              "strong"
            ]
          },
          "ruleId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "confirmed": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "aspect",
          "expectedRevision",
          "operationId",
          "music",
          "narration",
          "strength",
          "ruleId",
          "confirmed"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_set_audio_duckingAction

    Duck a target by a negative dB attenuation during selected narration intervals. Rules combine using strongest attenuation.

    View tool JSON
    {
      "name": "editor_set_audio_ducking",
      "kind": "act",
      "impl": "imperative",
      "description": "Duck a target by a negative dB attenuation during selected narration intervals. Rules combine using strongest attenuation.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "operationId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "rule": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 128
              },
              "target": {
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "enum": [
                      "audio",
                      "video"
                    ]
                  },
                  "id": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  }
                },
                "required": [
                  "kind",
                  "id"
                ],
                "additionalProperties": false
              },
              "triggers": {
                "minItems": 1,
                "maxItems": 1000,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "kind": {
                      "type": "string",
                      "enum": [
                        "audio",
                        "video"
                      ]
                    },
                    "id": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "kind",
                    "id"
                  ],
                  "additionalProperties": false
                }
              },
              "attenuationDb": {
                "type": "number",
                "minimum": -60,
                "maximum": 0
              },
              "attackFrames": {
                "type": "integer",
                "minimum": 0,
                "maximum": 1800
              },
              "releaseFrames": {
                "type": "integer",
                "minimum": 0,
                "maximum": 1800
              }
            },
            "required": [
              "id",
              "target",
              "triggers",
              "attenuationDb",
              "attackFrames",
              "releaseFrames"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "aspect",
          "expectedRevision",
          "operationId",
          "rule"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_remove_audio_duckingAction

    Remove a ducking rule with explicit confirmation.

    View tool JSON
    {
      "name": "editor_remove_audio_ducking",
      "kind": "act",
      "impl": "imperative",
      "description": "Remove a ducking rule with explicit confirmation.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "operationId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "ruleId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "confirmed": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "aspect",
          "expectedRevision",
          "operationId",
          "ruleId",
          "confirmed"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_freeze_clip_rangeAction

    Replace a timeline interval inside a video clip with a held source timestamp in microseconds. Duration stays fixed and held audio is muted.

    View tool JSON
    {
      "name": "editor_freeze_clip_range",
      "kind": "act",
      "impl": "imperative",
      "description": "Replace a timeline interval inside a video clip with a held source timestamp in microseconds. Duration stays fixed and held audio is muted.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "operationId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "clipId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "startFrame": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1800
          },
          "endFrame": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1800
          },
          "sourceTimeUs": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "aspect",
          "expectedRevision",
          "operationId",
          "clipId",
          "startFrame",
          "endFrame",
          "sourceTimeUs"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_set_clip_speed_rampAction

    Replace positive speed controls; source time integrates the speed curve. Timeline duration is preserved and embedded audio is muted.

    View tool JSON
    {
      "name": "editor_set_clip_speed_ramp",
      "kind": "act",
      "impl": "imperative",
      "description": "Replace positive speed controls; source time integrates the speed curve. Timeline duration is preserved and embedded audio is muted.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "operationId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "clipId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "points": {
            "minItems": 1,
            "maxItems": 1000,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "frame": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 1800
                },
                "speed": {
                  "type": "number",
                  "exclusiveMinimum": 0
                },
                "interpolation": {
                  "type": "string",
                  "enum": [
                    "linear",
                    "hold"
                  ]
                }
              },
              "required": [
                "frame",
                "speed",
                "interpolation"
              ],
              "additionalProperties": false
            }
          },
          "audioPolicy": {
            "type": "string",
            "const": "mute"
          }
        },
        "required": [
          "aspect",
          "expectedRevision",
          "operationId",
          "clipId",
          "points",
          "audioPolicy"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_add_trackAction

    Create a named lane. Requires an explicit aspect, current revision, and retry-safe operation ID.

    View tool JSON
    {
      "name": "editor_add_track",
      "kind": "act",
      "impl": "imperative",
      "description": "Create a named lane. Requires an explicit aspect, current revision, and retry-safe operation ID.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "operationId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "kind": {
            "type": "string",
            "enum": [
              "video",
              "text",
              "audio",
              "caption"
            ]
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          }
        },
        "required": [
          "aspect",
          "expectedRevision",
          "operationId",
          "id",
          "kind",
          "name"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_reorder_tracksAction

    Set lane order using every track ID exactly once. Earlier video lanes render above later video lanes.

    View tool JSON
    {
      "name": "editor_reorder_tracks",
      "kind": "act",
      "impl": "imperative",
      "description": "Set lane order using every track ID exactly once. Earlier video lanes render above later video lanes.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "operationId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "trackIds": {
            "minItems": 1,
            "maxItems": 100,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            }
          }
        },
        "required": [
          "aspect",
          "expectedRevision",
          "operationId",
          "trackIds"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_place_clipAction

    Place a clip at an absolute frame on a video lane without ripple or source trim changes.

    View tool JSON
    {
      "name": "editor_place_clip",
      "kind": "act",
      "impl": "imperative",
      "description": "Place a clip at an absolute frame on a video lane without ripple or source trim changes.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "operationId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "clipId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "trackId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "startFrame": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1800
          }
        },
        "required": [
          "aspect",
          "expectedRevision",
          "operationId",
          "clipId",
          "trackId",
          "startFrame"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_set_clip_transformAction

    Set static transform: x/y in normalized canvas coordinates, raw source scale, rotation in radians, normalized anchor; opacity is 0–1.

    View tool JSON
    {
      "name": "editor_set_clip_transform",
      "kind": "act",
      "impl": "imperative",
      "description": "Set static transform: x/y in normalized canvas coordinates, raw source scale, rotation in radians, normalized anchor; opacity is 0–1.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "operationId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "clipId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "transform": {
            "type": "object",
            "properties": {
              "x": {
                "type": "number"
              },
              "y": {
                "type": "number"
              },
              "scale": {
                "type": "number",
                "exclusiveMinimum": 0
              },
              "rotation": {
                "type": "number"
              },
              "anchor": {
                "type": "object",
                "properties": {
                  "x": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 1
                  },
                  "y": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 1
                  }
                },
                "required": [
                  "x",
                  "y"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "x",
              "y",
              "scale",
              "rotation",
              "anchor"
            ],
            "additionalProperties": false
          },
          "opacity": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          }
        },
        "required": [
          "aspect",
          "expectedRevision",
          "operationId",
          "clipId",
          "transform"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_get_capabilitiesAnswer

    Discover the recommended Inkframe agent workflows, tool groups, safeguards, and timeline limits. Start here instead of scanning every atomic tool.

    View tool JSON
    {
      "name": "editor_get_capabilities",
      "kind": "answer",
      "impl": "imperative",
      "description": "Discover the recommended Inkframe agent workflows, tool groups, safeguards, and timeline limits. Start here instead of scanning every atomic tool.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_get_state_summaryAnswer

    Get a compact summary of the current editor canvas and timeline.

    View tool JSON
    {
      "name": "editor_get_state_summary",
      "kind": "answer",
      "impl": "imperative",
      "description": "Get a compact summary of the current editor canvas and timeline.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_get_projectAnswer

    Inspect bounded, sanitized project timelines. Follow nextOffset to read every item; maxItems may shrink to fit the response. Keep aspect and revision fixed across pages.

    View tool JSON
    {
      "name": "editor_get_project",
      "kind": "answer",
      "impl": "imperative",
      "description": "Inspect bounded, sanitized project timelines. Follow nextOffset to read every item; maxItems may shrink to fit the response. Keep aspect and revision fixed across pages.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "maxItems": {
            "type": "integer",
            "minimum": 1,
            "maximum": 25
          },
          "offset": {
            "default": 0,
            "type": "integer",
            "minimum": 0,
            "maximum": 100000
          }
        },
        "required": [
          "offset"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_validate_projectAction

    Check export readiness, missing media, unsafe text, timeline gaps, overflow risk, and transition integrity.

    View tool JSON
    {
      "name": "editor_validate_project",
      "kind": "act",
      "impl": "imperative",
      "description": "Check export readiness, missing media, unsafe text, timeline gaps, overflow risk, and transition integrity.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          }
        },
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_get_render_diagnosticsAnswer

    Inspect Elah adapter diagnostics and browser encoding capability alongside project validation.

    View tool JSON
    {
      "name": "editor_get_render_diagnostics",
      "kind": "answer",
      "impl": "imperative",
      "description": "Inspect Elah adapter diagnostics and browser encoding capability alongside project validation.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          }
        },
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_color_inspectAction

    Sample browser-readable source frames for exposure, white-balance, saturation, palette, and lighting drift. Falls back deterministically to clip filter metadata when source pixels are unavailable.

    View tool JSON
    {
      "name": "editor_color_inspect",
      "kind": "act",
      "impl": "imperative",
      "description": "Sample browser-readable source frames for exposure, white-balance, saturation, palette, and lighting drift. Falls back deterministically to clip filter metadata when source pixels are unavailable.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "clipIds": {
            "maxItems": 100,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            }
          }
        },
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_color_proposeAction

    Propose per-shot videoFilter candidates. A single-video candidate requires three independent review agents: colorist, technical reviewer, visual critic. Delegate all three, preview with includeImages:true, submit their feedback via editor_color_submit_review, and revise until all judge improvement. If delegation is unavailable, leave unapproved. Never simulate independent reviewers.

    View tool JSON
    {
      "name": "editor_color_propose",
      "kind": "act",
      "impl": "imperative",
      "description": "Propose per-shot videoFilter candidates. A single-video candidate requires three independent review agents: colorist, technical reviewer, visual critic. Delegate all three, preview with includeImages:true, submit their feedback via editor_color_submit_review, and revise until all judge improvement. If delegation is unavailable, leave unapproved. Never simulate independent reviewers.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "clipIds": {
            "maxItems": 100,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            }
          },
          "findingIds": {
            "maxItems": 400,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 160
            }
          },
          "creativeIntent": {
            "type": "string",
            "minLength": 1,
            "maxLength": 2000
          },
          "strength": {
            "type": "number",
            "minimum": 0,
            "maximum": 2
          },
          "candidates": {
            "minItems": 1,
            "maxItems": 12,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "clipId": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 128
                },
                "rationale": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 1000
                },
                "videoFilter": {
                  "type": "object",
                  "properties": {
                    "preset": {
                      "type": "string",
                      "enum": [
                        "none",
                        "cinematic",
                        "warm",
                        "cool",
                        "vintage",
                        "mono",
                        "custom"
                      ]
                    },
                    "brightness": {
                      "type": "number",
                      "minimum": 0.5,
                      "maximum": 1.5
                    },
                    "contrast": {
                      "type": "number",
                      "minimum": 0.5,
                      "maximum": 1.5
                    },
                    "saturation": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 2
                    },
                    "sepia": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 1
                    },
                    "grayscale": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 1
                    },
                    "hueRotate": {
                      "type": "number",
                      "minimum": -30,
                      "maximum": 30
                    },
                    "selectiveRegions": {
                      "maxItems": 8,
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 128
                          },
                          "shape": {
                            "type": "string",
                            "enum": [
                              "ellipse",
                              "rectangle"
                            ]
                          },
                          "x": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1
                          },
                          "y": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1
                          },
                          "width": {
                            "type": "number",
                            "exclusiveMinimum": 0,
                            "maximum": 1
                          },
                          "height": {
                            "type": "number",
                            "exclusiveMinimum": 0,
                            "maximum": 1
                          },
                          "feather": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 1
                          },
                          "inverted": {
                            "type": "boolean"
                          },
                          "exposure": {
                            "type": "number",
                            "minimum": -2,
                            "maximum": 2
                          },
                          "temperature": {
                            "type": "number",
                            "minimum": -1,
                            "maximum": 1
                          },
                          "tint": {
                            "type": "number",
                            "minimum": -1,
                            "maximum": 1
                          },
                          "saturation": {
                            "type": "number",
                            "minimum": 0,
                            "maximum": 2
                          }
                        },
                        "required": [
                          "id",
                          "shape",
                          "x",
                          "y",
                          "width",
                          "height",
                          "feather",
                          "exposure",
                          "temperature",
                          "tint",
                          "saturation"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "exposure": {
                      "type": "number",
                      "minimum": -2,
                      "maximum": 2
                    },
                    "temperature": {
                      "type": "number",
                      "minimum": -1,
                      "maximum": 1
                    },
                    "tint": {
                      "type": "number",
                      "minimum": -1,
                      "maximum": 1
                    },
                    "shadows": {
                      "type": "number",
                      "minimum": -1,
                      "maximum": 1
                    },
                    "highlights": {
                      "type": "number",
                      "minimum": -1,
                      "maximum": 1
                    },
                    "toneCurve": {
                      "type": "string",
                      "enum": [
                        "linear",
                        "filmic"
                      ]
                    }
                  },
                  "required": [
                    "preset",
                    "brightness",
                    "contrast",
                    "saturation",
                    "sepia",
                    "grayscale",
                    "hueRotate"
                  ],
                  "additionalProperties": false
                }
              },
              "required": [
                "clipId",
                "rationale",
                "videoFilter"
              ],
              "additionalProperties": false
            }
          }
        },
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_color_previewAction

    Preview up to four candidates per image batch using includeImages:true. Returns paired before/after source-only frames rendered with native grading, not the whole composition. Metadata-only previews cannot authorize approval. Classify every evidenced candidate as improves, neutral, or worse.

    View tool JSON
    {
      "name": "editor_color_preview",
      "kind": "act",
      "impl": "imperative",
      "description": "Preview up to four candidates per image batch using includeImages:true. Returns paired before/after source-only frames rendered with native grading, not the whole composition. Metadata-only previews cannot authorize approval. Classify every evidenced candidate as improves, neutral, or worse.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "proposalId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "targetIds": {
            "maxItems": 100,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            }
          },
          "changeIds": {
            "minItems": 1,
            "maxItems": 100,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 160
            }
          },
          "includeImages": {
            "default": false,
            "type": "boolean"
          }
        },
        "required": [
          "proposalId",
          "includeImages"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_color_submit_reviewSensitive Action

    Record one delegated colorist, technical, or critic review of an exact single-video image preview. Supply the actual independent agent ID and its feedback. Three distinct agents must judge improves before approval. A revised candidate needs fresh images and reviews.

    View tool JSON
    {
      "name": "editor_color_submit_review",
      "kind": "transact",
      "impl": "imperative",
      "description": "Record one delegated colorist, technical, or critic review of an exact single-video image preview. Supply the actual independent agent ID and its feedback. Three distinct agents must judge improves before approval. A revised candidate needs fresh images and reviews.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "proposalId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "previewId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "persona": {
            "type": "string",
            "enum": [
              "colorist",
              "technical",
              "critic"
            ]
          },
          "reviewerId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "verdict": {
            "type": "string",
            "enum": [
              "improves",
              "revise",
              "reject"
            ]
          },
          "findings": {
            "type": "string",
            "minLength": 20,
            "maxLength": 2000
          },
          "requestedChanges": {
            "type": "string",
            "minLength": 1,
            "maxLength": 2000
          }
        },
        "required": [
          "proposalId",
          "previewId",
          "persona",
          "reviewerId",
          "verdict",
          "findings",
          "requestedChanges"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_color_approveAction

    Record a visual decision for every candidate in an exact preview. Only candidates judged improves receive one-use, revision-bound approval; neutral and worse candidates cannot be applied.

    View tool JSON
    {
      "name": "editor_color_approve",
      "kind": "act",
      "impl": "imperative",
      "description": "Record a visual decision for every candidate in an exact preview. Only candidates judged improves receive one-use, revision-bound approval; neutral and worse candidates cannot be applied.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "proposalId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "previewId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "decisions": {
            "minItems": 1,
            "maxItems": 100,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "changeId": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 160
                },
                "decision": {
                  "type": "string",
                  "enum": [
                    "improves",
                    "neutral",
                    "worse"
                  ]
                },
                "reason": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 500
                }
              },
              "required": [
                "changeId",
                "decision"
              ],
              "additionalProperties": false
            }
          },
          "changeIds": {
            "minItems": 1,
            "maxItems": 100,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 160
            }
          },
          "confirmed": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "proposalId",
          "previewId",
          "decisions",
          "confirmed"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_color_applyAction

    Atomically apply only exact, previewed, revision-bound color changes explicitly judged improves and authorized by a one-use approval.

    View tool JSON
    {
      "name": "editor_color_apply",
      "kind": "act",
      "impl": "imperative",
      "description": "Atomically apply only exact, previewed, revision-bound color changes explicitly judged improves and authorized by a one-use approval.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "proposalId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "approvalId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "operationId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          }
        },
        "required": [
          "proposalId",
          "approvalId",
          "expectedRevision",
          "operationId"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_color_undoAction

    Atomically restore the filters captured by a color operation. Only the latest unchanged color operation can be undone.

    View tool JSON
    {
      "name": "editor_color_undo",
      "kind": "act",
      "impl": "imperative",
      "description": "Atomically restore the filters captured by a color operation. Only the latest unchanged color operation can be undone.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "operationId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "undoOperationId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "expectedRevision": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          }
        },
        "required": [
          "operationId",
          "undoOperationId",
          "expectedRevision"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_color_statusAnswer

    Check whether color proposals, previews, approvals, and operations remain valid at the current project revision.

    View tool JSON
    {
      "name": "editor_color_status",
      "kind": "answer",
      "impl": "imperative",
      "description": "Check whether color proposals, previews, approvals, and operations remain valid at the current project revision.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "proposalId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "previewId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "approvalId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "operationId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          }
        },
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_capture_frameAction

    Seek the active Elah preview, report active timeline items, and optionally return a reduced JPEG data URL without changing project state.

    View tool JSON
    {
      "name": "editor_capture_frame",
      "kind": "act",
      "impl": "imperative",
      "description": "Seek the active Elah preview, report active timeline items, and optionally return a reduced JPEG data URL without changing project state.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "frame": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1800
          },
          "includeImage": {
            "default": false,
            "type": "boolean"
          }
        },
        "required": [
          "frame",
          "includeImage"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_capture_contact_sheetSensitive Action

    Capture representative active-canvas frames, inspect timeline contents and contrast, and publish a visible in-editor contact sheet for human review.

    View tool JSON
    {
      "name": "editor_capture_contact_sheet",
      "kind": "transact",
      "impl": "imperative",
      "description": "Capture representative active-canvas frames, inspect timeline contents and contrast, and publish a visible in-editor contact sheet for human review.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "frames": {
            "minItems": 2,
            "maxItems": 8,
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0,
              "maximum": 1800
            }
          },
          "includeImages": {
            "default": false,
            "type": "boolean"
          }
        },
        "required": [
          "includeImages"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_get_export_statusAnswer

    Read browser render progress, recovery guidance, and metadata for the latest exported MP4.

    View tool JSON
    {
      "name": "editor_get_export_status",
      "kind": "answer",
      "impl": "imperative",
      "description": "Read browser render progress, recovery guidance, and metadata for the latest exported MP4.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_get_export_artifactAnswer

    Return the retained page-scoped MP4 Blob URL, integrity metadata, and browser playback verification for the latest completed export.

    View tool JSON
    {
      "name": "editor_get_export_artifact",
      "kind": "answer",
      "impl": "imperative",
      "description": "Return the retained page-scoped MP4 Blob URL, integrity metadata, and browser playback verification for the latest completed export.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_list_style_presetsAction

    List text styles with native Elah preview and export parity.

    View tool JSON
    {
      "name": "editor_list_style_presets",
      "kind": "act",
      "impl": "imperative",
      "description": "List text styles with native Elah preview and export parity.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_list_assetsAnswer

    List safe asset metadata without exposing File objects, object URLs, data URLs, or secrets.

    View tool JSON
    {
      "name": "editor_list_assets",
      "kind": "answer",
      "impl": "imperative",
      "description": "List safe asset metadata without exposing File objects, object URLs, data URLs, or secrets.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "maxItems": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100
          }
        },
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_get_attribution_reportAction

    Create a copyable provenance and attribution report for media used by the active or specified timeline.

    View tool JSON
    {
      "name": "editor_get_attribution_report",
      "kind": "act",
      "impl": "imperative",
      "description": "Create a copyable provenance and attribution report for media used by the active or specified timeline.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "includeUnused": {
            "default": false,
            "type": "boolean"
          }
        },
        "required": [
          "includeUnused"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_search_stock_videosAnswer

    Search sanitized Pexels video metadata for the requested canvas.

    View tool JSON
    {
      "name": "editor_search_stock_videos",
      "kind": "answer",
      "impl": "imperative",
      "description": "Search sanitized Pexels video metadata for the requested canvas.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "minLength": 2,
            "maxLength": 120
          },
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          }
        },
        "required": [
          "query"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_import_stock_videoAction

    Download a selected Pexels video into the browser and append it to both canvas timelines.

    View tool JSON
    {
      "name": "editor_import_stock_video",
      "kind": "act",
      "impl": "imperative",
      "description": "Download a selected Pexels video into the browser and append it to both canvas timelines.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "minLength": 2,
            "maxLength": 120
          },
          "videoId": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          }
        },
        "required": [
          "query",
          "videoId"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_search_stock_photosAnswer

    Search sanitized Pexels photo metadata for the requested canvas.

    View tool JSON
    {
      "name": "editor_search_stock_photos",
      "kind": "answer",
      "impl": "imperative",
      "description": "Search sanitized Pexels photo metadata for the requested canvas.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "minLength": 2,
            "maxLength": 120
          },
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          }
        },
        "required": [
          "query"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_import_stock_photoAction

    Download a selected Pexels photo into the browser and append it to both canvas timelines.

    View tool JSON
    {
      "name": "editor_import_stock_photo",
      "kind": "act",
      "impl": "imperative",
      "description": "Download a selected Pexels photo into the browser and append it to both canvas timelines.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "minLength": 2,
            "maxLength": 120
          },
          "photoId": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          }
        },
        "required": [
          "query",
          "photoId"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_search_licensed_musicAction

    Search downloadable CC0/CC BY/CC BY-SA music from Freesound with source and license metadata.

    View tool JSON
    {
      "name": "editor_search_licensed_music",
      "kind": "act",
      "impl": "imperative",
      "description": "Search downloadable CC0/CC BY/CC BY-SA music from Freesound with source and license metadata.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "minLength": 2,
            "maxLength": 120
          }
        },
        "required": [
          "query"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_import_licensed_musicAction

    Import a selected Freesound track into this browser and retain its source, creator, and license. Requires confirmation.

    View tool JSON
    {
      "name": "editor_import_licensed_music",
      "kind": "act",
      "impl": "imperative",
      "description": "Import a selected Freesound track into this browser and retain its source, creator, and license. Requires confirmation.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "confirmed": {
            "type": "boolean",
            "const": true
          },
          "query": {
            "type": "string",
            "minLength": 2,
            "maxLength": 120
          },
          "audioId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "startFrame": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1800
          },
          "endFrame": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1800
          },
          "volume": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          }
        },
        "required": [
          "confirmed",
          "query",
          "audioId"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_search_licensed_sfxAction

    Search CC0/CC BY/CC BY-SA professional sound effects from Freesound with attribution metadata.

    View tool JSON
    {
      "name": "editor_search_licensed_sfx",
      "kind": "act",
      "impl": "imperative",
      "description": "Search CC0/CC BY/CC BY-SA professional sound effects from Freesound with attribution metadata.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "minLength": 2,
            "maxLength": 120
          }
        },
        "required": [
          "query"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_import_licensed_sfxAction

    Import a selected Freesound effect into this browser and retain its source, creator, and license. Requires confirmation.

    View tool JSON
    {
      "name": "editor_import_licensed_sfx",
      "kind": "act",
      "impl": "imperative",
      "description": "Import a selected Freesound effect into this browser and retain its source, creator, and license. Requires confirmation.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "confirmed": {
            "type": "boolean",
            "const": true
          },
          "query": {
            "type": "string",
            "minLength": 2,
            "maxLength": 120
          },
          "audioId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "startFrame": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1800
          },
          "endFrame": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1800
          },
          "volume": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          }
        },
        "required": [
          "confirmed",
          "query",
          "audioId"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_import_audio_urlAction

    Download a confirmed HTTPS audio source into the browser and add it to the active timeline.

    View tool JSON
    {
      "name": "editor_import_audio_url",
      "kind": "act",
      "impl": "imperative",
      "description": "Download a confirmed HTTPS audio source into the browser and add it to the active timeline.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "confirmed": {
            "type": "boolean",
            "const": true
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "startFrame": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1800
          },
          "endFrame": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1800
          },
          "trimStartFrame": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1800
          },
          "volume": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "sourceUrl": {
            "type": "string",
            "format": "uri"
          },
          "creatorName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "creatorUrl": {
            "type": "string",
            "format": "uri"
          },
          "provider": {
            "type": "string",
            "enum": [
              "mixkit",
              "freesound"
            ]
          },
          "licenseName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "licenseUrl": {
            "type": "string",
            "format": "uri"
          },
          "attributionRequired": {
            "type": "boolean"
          }
        },
        "required": [
          "confirmed",
          "url"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_request_media_pickerAction

    Open Inkframe's native media picker so the user can choose local video, image, or audio files.

    View tool JSON
    {
      "name": "editor_request_media_picker",
      "kind": "act",
      "impl": "imperative",
      "description": "Open Inkframe's native media picker so the user can choose local video, image, or audio files.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_plan_storyboardAction

    Validate and preview a multi-scene storyboard without changing the editor. Returns the approval token required by editor_compose_storyboard.

    View tool JSON
    {
      "name": "editor_plan_storyboard",
      "kind": "act",
      "impl": "imperative",
      "description": "Validate and preview a multi-scene storyboard without changing the editor. Returns the approval token required by editor_compose_storyboard.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "scenes": {
            "minItems": 1,
            "maxItems": 12,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "text": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 400
                },
                "assetId": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 128
                },
                "durationSeconds": {
                  "default": 3,
                  "type": "number",
                  "minimum": 0.5,
                  "maximum": 20
                },
                "x": {
                  "default": 50,
                  "type": "number",
                  "minimum": 6,
                  "maximum": 94
                },
                "y": {
                  "default": 50,
                  "type": "number",
                  "minimum": 8,
                  "maximum": 90
                },
                "fontSize": {
                  "default": 64,
                  "type": "integer",
                  "minimum": 24,
                  "maximum": 180
                },
                "color": {
                  "default": "#f2ede3",
                  "type": "string",
                  "pattern": "^#[0-9a-fA-F]{6}$"
                },
                "fontFamily": {
                  "default": "sans",
                  "type": "string",
                  "enum": [
                    "sans",
                    "modern",
                    "serif",
                    "cursive",
                    "mono",
                    "display",
                    "editorial",
                    "rounded"
                  ]
                },
                "fontWeight": {
                  "default": 700,
                  "type": "integer",
                  "minimum": 100,
                  "maximum": 900
                },
                "textAlign": {
                  "default": "center",
                  "type": "string",
                  "enum": [
                    "left",
                    "center",
                    "right"
                  ]
                },
                "animationIn": {
                  "default": "rise",
                  "type": "string",
                  "enum": [
                    "fade",
                    "rise",
                    "slide-left",
                    "punch",
                    "typewriter",
                    "word-reveal"
                  ]
                },
                "animationOut": {
                  "default": "fade",
                  "type": "string",
                  "enum": [
                    "fade",
                    "rise",
                    "slide-left",
                    "punch",
                    "typewriter",
                    "word-reveal"
                  ]
                },
                "animationDurationSeconds": {
                  "default": 0.4,
                  "type": "number",
                  "minimum": 0.05,
                  "maximum": 2
                }
              },
              "required": [
                "text",
                "durationSeconds",
                "x",
                "y",
                "fontSize",
                "color",
                "fontFamily",
                "fontWeight",
                "textAlign",
                "animationIn",
                "animationOut",
                "animationDurationSeconds"
              ],
              "additionalProperties": false
            }
          },
          "transition": {
            "default": {
              "kind": "fade",
              "direction": "left",
              "easing": "ease-out",
              "durationSeconds": 0.4
            },
            "type": "object",
            "properties": {
              "kind": {
                "default": "fade",
                "type": "string",
                "enum": [
                  "fade",
                  "slide",
                  "wipe"
                ]
              },
              "direction": {
                "default": "left",
                "type": "string",
                "enum": [
                  "left",
                  "right",
                  "up",
                  "down"
                ]
              },
              "easing": {
                "default": "ease-out",
                "type": "string",
                "enum": [
                  "linear",
                  "ease-in",
                  "ease-out"
                ]
              },
              "durationSeconds": {
                "default": 0.4,
                "type": "number",
                "minimum": 0,
                "maximum": 2
              }
            },
            "required": [
              "kind",
              "direction",
              "easing",
              "durationSeconds"
            ],
            "additionalProperties": false
          },
          "preserveAudio": {
            "default": true,
            "type": "boolean"
          },
          "variantName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          }
        },
        "required": [
          "scenes",
          "transition",
          "preserveAudio"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_auto_fix_projectAction

    Apply conservative export-readiness fixes and optionally correct failed text contrast at one captured frame. Requires explicit confirmation and reports every change.

    View tool JSON
    {
      "name": "editor_auto_fix_project",
      "kind": "act",
      "impl": "imperative",
      "description": "Apply conservative export-readiness fixes and optionally correct failed text contrast at one captured frame. Requires explicit confirmation and reports every change.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "contrastFrame": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1800
          },
          "confirmed": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "confirmed"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_compose_storyboardAction

    Replace the visual timeline with the exact storyboard returned by editor_plan_storyboard. Requires its approval token and explicit human confirmation.

    View tool JSON
    {
      "name": "editor_compose_storyboard",
      "kind": "act",
      "impl": "imperative",
      "description": "Replace the visual timeline with the exact storyboard returned by editor_plan_storyboard. Requires its approval token and explicit human confirmation.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "scenes": {
            "minItems": 1,
            "maxItems": 12,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "text": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 400
                },
                "assetId": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 128
                },
                "durationSeconds": {
                  "default": 3,
                  "type": "number",
                  "minimum": 0.5,
                  "maximum": 20
                },
                "x": {
                  "default": 50,
                  "type": "number",
                  "minimum": 6,
                  "maximum": 94
                },
                "y": {
                  "default": 50,
                  "type": "number",
                  "minimum": 8,
                  "maximum": 90
                },
                "fontSize": {
                  "default": 64,
                  "type": "integer",
                  "minimum": 24,
                  "maximum": 180
                },
                "color": {
                  "default": "#f2ede3",
                  "type": "string",
                  "pattern": "^#[0-9a-fA-F]{6}$"
                },
                "fontFamily": {
                  "default": "sans",
                  "type": "string",
                  "enum": [
                    "sans",
                    "modern",
                    "serif",
                    "cursive",
                    "mono",
                    "display",
                    "editorial",
                    "rounded"
                  ]
                },
                "fontWeight": {
                  "default": 700,
                  "type": "integer",
                  "minimum": 100,
                  "maximum": 900
                },
                "textAlign": {
                  "default": "center",
                  "type": "string",
                  "enum": [
                    "left",
                    "center",
                    "right"
                  ]
                },
                "animationIn": {
                  "default": "rise",
                  "type": "string",
                  "enum": [
                    "fade",
                    "rise",
                    "slide-left",
                    "punch",
                    "typewriter",
                    "word-reveal"
                  ]
                },
                "animationOut": {
                  "default": "fade",
                  "type": "string",
                  "enum": [
                    "fade",
                    "rise",
                    "slide-left",
                    "punch",
                    "typewriter",
                    "word-reveal"
                  ]
                },
                "animationDurationSeconds": {
                  "default": 0.4,
                  "type": "number",
                  "minimum": 0.05,
                  "maximum": 2
                }
              },
              "required": [
                "text",
                "durationSeconds",
                "x",
                "y",
                "fontSize",
                "color",
                "fontFamily",
                "fontWeight",
                "textAlign",
                "animationIn",
                "animationOut",
                "animationDurationSeconds"
              ],
              "additionalProperties": false
            }
          },
          "transition": {
            "default": {
              "kind": "fade",
              "direction": "left",
              "easing": "ease-out",
              "durationSeconds": 0.4
            },
            "type": "object",
            "properties": {
              "kind": {
                "default": "fade",
                "type": "string",
                "enum": [
                  "fade",
                  "slide",
                  "wipe"
                ]
              },
              "direction": {
                "default": "left",
                "type": "string",
                "enum": [
                  "left",
                  "right",
                  "up",
                  "down"
                ]
              },
              "easing": {
                "default": "ease-out",
                "type": "string",
                "enum": [
                  "linear",
                  "ease-in",
                  "ease-out"
                ]
              },
              "durationSeconds": {
                "default": 0.4,
                "type": "number",
                "minimum": 0,
                "maximum": 2
              }
            },
            "required": [
              "kind",
              "direction",
              "easing",
              "durationSeconds"
            ],
            "additionalProperties": false
          },
          "preserveAudio": {
            "default": true,
            "type": "boolean"
          },
          "variantName": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          },
          "approvalToken": {
            "type": "string",
            "minLength": 8,
            "maxLength": 80
          },
          "confirmed": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "scenes",
          "transition",
          "preserveAudio",
          "approvalToken",
          "confirmed"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_list_variantsAction

    List isolated timeline drafts without changing the active edit.

    View tool JSON
    {
      "name": "editor_list_variants",
      "kind": "act",
      "impl": "imperative",
      "description": "List isolated timeline drafts without changing the active edit.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_create_variantAction

    Create an isolated snapshot of the current or specified canvas for safe creative comparison.

    View tool JSON
    {
      "name": "editor_create_variant",
      "kind": "act",
      "impl": "imperative",
      "description": "Create an isolated snapshot of the current or specified canvas for safe creative comparison.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          },
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_apply_variantAction

    Replace the matching canvas timeline with an isolated variant. Requires explicit confirmation.

    View tool JSON
    {
      "name": "editor_apply_variant",
      "kind": "act",
      "impl": "imperative",
      "description": "Replace the matching canvas timeline with an isolated variant. Requires explicit confirmation.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "variantId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "confirmed": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "variantId",
          "confirmed"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_delete_variantSensitive Action

    Delete an isolated variant without changing the active edit. Requires explicit confirmation.

    View tool JSON
    {
      "name": "editor_delete_variant",
      "kind": "transact",
      "impl": "imperative",
      "description": "Delete an isolated variant without changing the active edit. Requires explicit confirmation.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "variantId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "confirmed": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "variantId",
          "confirmed"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_switch_canvasAction

    Switch the active canvas aspect ratio.

    View tool JSON
    {
      "name": "editor_switch_canvas",
      "kind": "act",
      "impl": "imperative",
      "description": "Switch the active canvas aspect ratio.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          }
        },
        "required": [
          "aspect"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_select_timeline_itemAction

    Select an existing clip, text overlay, or audio track in the editor timeline.

    View tool JSON
    {
      "name": "editor_select_timeline_item",
      "kind": "act",
      "impl": "imperative",
      "description": "Select an existing clip, text overlay, or audio track in the editor timeline.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "itemType": {
            "type": "string",
            "enum": [
              "clip",
              "textOverlay",
              "audioTrack"
            ]
          },
          "itemId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          }
        },
        "required": [
          "itemType",
          "itemId"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_add_text_overlayAction

    Add a text overlay to the current or specified canvas.

    View tool JSON
    {
      "name": "editor_add_text_overlay",
      "kind": "act",
      "impl": "imperative",
      "description": "Add a text overlay to the current or specified canvas.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "text": {
            "type": "string",
            "minLength": 1,
            "maxLength": 2000
          },
          "startFrame": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1800
          },
          "endFrame": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1800
          },
          "x": {
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "y": {
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "fontSize": {
            "type": "number",
            "minimum": 1,
            "maximum": 500
          },
          "color": {
            "type": "string",
            "pattern": "^#[0-9a-fA-F]{6}$"
          },
          "fontFamily": {
            "type": "string",
            "enum": [
              "sans",
              "modern",
              "serif",
              "cursive",
              "mono",
              "display",
              "editorial",
              "rounded"
            ]
          },
          "fontWeight": {
            "type": "integer",
            "minimum": 100,
            "maximum": 900
          },
          "fontStyle": {
            "type": "string",
            "enum": [
              "normal",
              "italic"
            ]
          },
          "textAlign": {
            "type": "string",
            "enum": [
              "left",
              "center",
              "right"
            ]
          },
          "stylePreset": {
            "type": "string",
            "const": "classic"
          },
          "contrast": {
            "type": "string",
            "const": "outline"
          },
          "animation": {
            "type": "object",
            "properties": {
              "in": {
                "type": "string",
                "enum": [
                  "fade",
                  "rise",
                  "slide-left",
                  "punch",
                  "typewriter",
                  "word-reveal"
                ]
              },
              "out": {
                "type": "string",
                "enum": [
                  "fade",
                  "rise",
                  "slide-left",
                  "punch",
                  "typewriter",
                  "word-reveal"
                ]
              },
              "durationFrames": {
                "type": "integer",
                "minimum": 1,
                "maximum": 1800
              }
            },
            "required": [
              "durationFrames"
            ],
            "additionalProperties": false
          }
        },
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_update_text_overlayAction

    Update fields on an existing text overlay.

    View tool JSON
    {
      "name": "editor_update_text_overlay",
      "kind": "act",
      "impl": "imperative",
      "description": "Update fields on an existing text overlay.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "overlayId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "text": {
            "type": "string",
            "minLength": 1,
            "maxLength": 2000
          },
          "startFrame": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1800
          },
          "endFrame": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1800
          },
          "x": {
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "y": {
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "fontSize": {
            "type": "number",
            "minimum": 1,
            "maximum": 500
          },
          "color": {
            "type": "string",
            "pattern": "^#[0-9a-fA-F]{6}$"
          },
          "fontFamily": {
            "type": "string",
            "enum": [
              "sans",
              "modern",
              "serif",
              "cursive",
              "mono",
              "display",
              "editorial",
              "rounded"
            ]
          },
          "fontWeight": {
            "type": "integer",
            "minimum": 100,
            "maximum": 900
          },
          "fontStyle": {
            "type": "string",
            "enum": [
              "normal",
              "italic"
            ]
          },
          "textAlign": {
            "type": "string",
            "enum": [
              "left",
              "center",
              "right"
            ]
          },
          "stylePreset": {
            "type": "string",
            "const": "classic"
          },
          "contrast": {
            "type": "string",
            "const": "outline"
          },
          "animation": {
            "type": "object",
            "properties": {
              "in": {
                "type": "string",
                "enum": [
                  "fade",
                  "rise",
                  "slide-left",
                  "punch",
                  "typewriter",
                  "word-reveal"
                ]
              },
              "out": {
                "type": "string",
                "enum": [
                  "fade",
                  "rise",
                  "slide-left",
                  "punch",
                  "typewriter",
                  "word-reveal"
                ]
              },
              "durationFrames": {
                "type": "integer",
                "minimum": 1,
                "maximum": 1800
              }
            },
            "required": [
              "durationFrames"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "overlayId"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_remove_text_overlayAction

    Remove a text overlay. Requires explicit confirmation.

    View tool JSON
    {
      "name": "editor_remove_text_overlay",
      "kind": "act",
      "impl": "imperative",
      "description": "Remove a text overlay. Requires explicit confirmation.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "overlayId": {
            "type": "string",
            "minLength": 1
          },
          "confirmed": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "overlayId",
          "confirmed"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_update_clipAction

    Update timing, trim, volume, or export-safe video color grade fields on an existing media clip.

    View tool JSON
    {
      "name": "editor_update_clip",
      "kind": "act",
      "impl": "imperative",
      "description": "Update timing, trim, volume, or export-safe video color grade fields on an existing media clip.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "clipId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "startFrame": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1800
          },
          "endFrame": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1800
          },
          "trimStartFrame": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1800
          },
          "trimEndFrame": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1800
          },
          "volume": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "videoFilter": {
            "type": "object",
            "properties": {
              "preset": {
                "type": "string",
                "enum": [
                  "none",
                  "cinematic",
                  "warm",
                  "cool",
                  "vintage",
                  "mono",
                  "custom"
                ]
              },
              "brightness": {
                "type": "number",
                "minimum": 0.5,
                "maximum": 1.5
              },
              "contrast": {
                "type": "number",
                "minimum": 0.5,
                "maximum": 1.5
              },
              "saturation": {
                "type": "number",
                "minimum": 0,
                "maximum": 2
              },
              "sepia": {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              },
              "grayscale": {
                "type": "number",
                "minimum": 0,
                "maximum": 1
              },
              "hueRotate": {
                "type": "number",
                "minimum": -30,
                "maximum": 30
              },
              "selectiveRegions": {
                "maxItems": 8,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 128
                    },
                    "shape": {
                      "type": "string",
                      "enum": [
                        "ellipse",
                        "rectangle"
                      ]
                    },
                    "x": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 1
                    },
                    "y": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 1
                    },
                    "width": {
                      "type": "number",
                      "exclusiveMinimum": 0,
                      "maximum": 1
                    },
                    "height": {
                      "type": "number",
                      "exclusiveMinimum": 0,
                      "maximum": 1
                    },
                    "feather": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 1
                    },
                    "inverted": {
                      "type": "boolean"
                    },
                    "exposure": {
                      "type": "number",
                      "minimum": -2,
                      "maximum": 2
                    },
                    "temperature": {
                      "type": "number",
                      "minimum": -1,
                      "maximum": 1
                    },
                    "tint": {
                      "type": "number",
                      "minimum": -1,
                      "maximum": 1
                    },
                    "saturation": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 2
                    }
                  },
                  "required": [
                    "id",
                    "shape",
                    "x",
                    "y",
                    "width",
                    "height",
                    "feather",
                    "exposure",
                    "temperature",
                    "tint",
                    "saturation"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "required": [
              "preset",
              "brightness",
              "contrast",
              "saturation",
              "sepia",
              "grayscale",
              "hueRotate"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "clipId"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_remove_clipAction

    Remove a clip and its connected transitions. Requires explicit confirmation.

    View tool JSON
    {
      "name": "editor_remove_clip",
      "kind": "act",
      "impl": "imperative",
      "description": "Remove a clip and its connected transitions. Requires explicit confirmation.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "clipId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "confirmed": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "clipId",
          "confirmed"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_move_clipAction

    Move an existing clip one position earlier or later in the timeline.

    View tool JSON
    {
      "name": "editor_move_clip",
      "kind": "act",
      "impl": "imperative",
      "description": "Move an existing clip one position earlier or later in the timeline.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "clipId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "offset": {
            "anyOf": [
              {
                "type": "number",
                "const": -1
              },
              {
                "type": "number",
                "const": 1
              }
            ]
          }
        },
        "required": [
          "clipId",
          "offset"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_split_clipAction

    Split a visual clip at an exact timeline frame.

    View tool JSON
    {
      "name": "editor_split_clip",
      "kind": "act",
      "impl": "imperative",
      "description": "Split a visual clip at an exact timeline frame.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "clipId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "splitFrame": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1800
          }
        },
        "required": [
          "clipId",
          "splitFrame"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_duplicate_clipAction

    Duplicate a visual clip directly after the original.

    View tool JSON
    {
      "name": "editor_duplicate_clip",
      "kind": "act",
      "impl": "imperative",
      "description": "Duplicate a visual clip directly after the original.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "clipId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          }
        },
        "required": [
          "clipId"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_set_transitionAction

    Set a fade, slide, or wipe transition between adjacent clips.

    View tool JSON
    {
      "name": "editor_set_transition",
      "kind": "act",
      "impl": "imperative",
      "description": "Set a fade, slide, or wipe transition between adjacent clips.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "fromClipId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "toClipId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "durationInFrames": {
            "type": "integer",
            "minimum": 1,
            "maximum": 1800
          },
          "kind": {
            "default": "fade",
            "type": "string",
            "enum": [
              "fade",
              "slide",
              "wipe"
            ]
          },
          "direction": {
            "type": "string",
            "enum": [
              "left",
              "right",
              "up",
              "down"
            ]
          },
          "easing": {
            "default": "linear",
            "type": "string",
            "enum": [
              "linear",
              "ease-in",
              "ease-out"
            ]
          }
        },
        "required": [
          "fromClipId",
          "toClipId",
          "durationInFrames",
          "kind",
          "easing"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_remove_transitionAction

    Remove a transition. Requires explicit confirmation.

    View tool JSON
    {
      "name": "editor_remove_transition",
      "kind": "act",
      "impl": "imperative",
      "description": "Remove a transition. Requires explicit confirmation.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "fromClipId": {
            "type": "string",
            "minLength": 1
          },
          "toClipId": {
            "type": "string",
            "minLength": 1
          },
          "confirmed": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "fromClipId",
          "toClipId",
          "confirmed"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_update_audio_trackAction

    Update timing, trim, or volume fields on an existing audio track.

    View tool JSON
    {
      "name": "editor_update_audio_track",
      "kind": "act",
      "impl": "imperative",
      "description": "Update timing, trim, or volume fields on an existing audio track.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "trackId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "startFrame": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1800
          },
          "endFrame": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1800
          },
          "trimStartFrame": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1800
          },
          "trimEndFrame": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1800
          },
          "volume": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "fadeInFrames": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1800
          },
          "fadeOutFrames": {
            "type": "integer",
            "minimum": 0,
            "maximum": 1800
          },
          "muted": {
            "type": "boolean"
          }
        },
        "required": [
          "trackId"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_remove_audio_trackAction

    Remove an audio track. Requires explicit confirmation.

    View tool JSON
    {
      "name": "editor_remove_audio_track",
      "kind": "act",
      "impl": "imperative",
      "description": "Remove an audio track. Requires explicit confirmation.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "aspect": {
            "type": "string",
            "enum": [
              "reel_9_16",
              "widescreen_16_9"
            ]
          },
          "trackId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "confirmed": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "trackId",
          "confirmed"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_apply_ai_editor_actionsAction

    Apply validated structured AI editor actions. Requires explicit confirmation.

    View tool JSON
    {
      "name": "editor_apply_ai_editor_actions",
      "kind": "act",
      "impl": "imperative",
      "description": "Apply validated structured AI editor actions. Requires explicit confirmation.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "confirmed": {
            "type": "boolean",
            "const": true
          },
          "actions": {
            "type": "object",
            "properties": {
              "targetAspect": {
                "type": "string",
                "enum": [
                  "active",
                  "reel_9_16",
                  "widescreen_16_9"
                ]
              },
              "scenes": {
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "text": {
                      "type": "string",
                      "minLength": 1
                    },
                    "durationSeconds": {
                      "type": "number",
                      "exclusiveMinimum": 0,
                      "maximum": 30
                    },
                    "x": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 100
                    },
                    "y": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 100
                    },
                    "fontSize": {
                      "type": "integer",
                      "minimum": 12,
                      "maximum": 200
                    },
                    "color": {
                      "type": "string",
                      "minLength": 1
                    },
                    "fontFamily": {
                      "type": "string",
                      "enum": [
                        "sans",
                        "modern",
                        "serif",
                        "mono",
                        "display",
                        "editorial",
                        "rounded"
                      ]
                    },
                    "fontWeight": {
                      "type": "integer",
                      "minimum": 100,
                      "maximum": 900
                    },
                    "fontStyle": {
                      "type": "string",
                      "enum": [
                        "normal",
                        "italic"
                      ]
                    },
                    "textAlign": {
                      "type": "string",
                      "enum": [
                        "left",
                        "center",
                        "right"
                      ]
                    },
                    "animation": {
                      "type": "object",
                      "properties": {
                        "in": {
                          "type": "string",
                          "enum": [
                            "fade",
                            "rise",
                            "slide-left",
                            "punch",
                            "typewriter",
                            "word-reveal"
                          ]
                        },
                        "out": {
                          "type": "string",
                          "enum": [
                            "fade",
                            "rise",
                            "slide-left",
                            "punch",
                            "typewriter",
                            "word-reveal"
                          ]
                        },
                        "durationSeconds": {
                          "type": "number",
                          "minimum": 0.05,
                          "maximum": 2
                        }
                      },
                      "additionalProperties": false
                    },
                    "stylePreset": {
                      "type": "string",
                      "const": "classic"
                    }
                  },
                  "required": [
                    "text"
                  ],
                  "additionalProperties": false
                }
              },
              "transitionSeconds": {
                "type": "number",
                "minimum": 0,
                "maximum": 2
              },
              "assetNameHint": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "scenes"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "confirmed",
          "actions"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_export_fcpxmlAction

    Download the active timeline as Final Cut Pro XML 1.9 for Final Cut Pro or DaVinci Resolve. Returns compatibility diagnostics and requires explicit confirmation because it creates an external artifact.

    View tool JSON
    {
      "name": "editor_export_fcpxml",
      "kind": "act",
      "impl": "imperative",
      "description": "Download the active timeline as Final Cut Pro XML 1.9 for Final Cut Pro or DaVinci Resolve. Returns compatibility diagnostics and requires explicit confirmation because it creates an external artifact.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "confirmed": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "confirmed"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_export_edlAction

    Download the active timeline as a CMX 3600 edit decision list. Returns compatibility diagnostics and requires explicit confirmation because it creates an external artifact.

    View tool JSON
    {
      "name": "editor_export_edl",
      "kind": "act",
      "impl": "imperative",
      "description": "Download the active timeline as a CMX 3600 edit decision list. Returns compatibility diagnostics and requires explicit confirmation because it creates an external artifact.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "confirmed": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "confirmed"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_export_fcpxml_bundleAction

    Download a ZIP containing the active FCPXML timeline, stored source media, relinking manifest, and import instructions. Requires explicit confirmation because it creates an external artifact.

    View tool JSON
    {
      "name": "editor_export_fcpxml_bundle",
      "kind": "act",
      "impl": "imperative",
      "description": "Download a ZIP containing the active FCPXML timeline, stored source media, relinking manifest, and import instructions. Requires explicit confirmation because it creates an external artifact.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "confirmed": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "confirmed"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_request_exportAction

    Validate the active project and request a local browser MP4 download. Requires explicit confirmation because it creates an external artifact.

    View tool JSON
    {
      "name": "editor_request_export",
      "kind": "act",
      "impl": "imperative",
      "description": "Validate the active project and request a local browser MP4 download. Requires explicit confirmation because it creates an external artifact.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "confirmed": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "confirmed"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_cancel_exportSensitive Action

    Cancel the active browser export. Requires explicit confirmation.

    View tool JSON
    {
      "name": "editor_cancel_export",
      "kind": "transact",
      "impl": "imperative",
      "description": "Cancel the active browser export. Requires explicit confirmation.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "confirmed": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "confirmed"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_remove_assetAction

    Remove an asset and its timeline references through the host editor. Requires explicit confirmation.

    View tool JSON
    {
      "name": "editor_remove_asset",
      "kind": "act",
      "impl": "imperative",
      "description": "Remove an asset and its timeline references through the host editor. Requires explicit confirmation.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "assetId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "confirmed": {
            "type": "boolean",
            "const": true
          }
        },
        "required": [
          "assetId",
          "confirmed"
        ],
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_undoAction

    Undo the latest editor mutation.

    View tool JSON
    {
      "name": "editor_undo",
      "kind": "act",
      "impl": "imperative",
      "description": "Undo the latest editor mutation.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/editor"
    }
    editor_redoAction

    Redo the latest undone editor mutation.

    View tool JSON
    {
      "name": "editor_redo",
      "kind": "act",
      "impl": "imperative",
      "description": "Redo the latest undone editor mutation.",
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "page": "/editor"
    }