{"ok":true,"site":{"host":"inkframe-eta.vercel.app","url":"https://inkframe-eta.vercel.app/editor","type":"live","desc":"Browser-native Elah video editor for 9:16 and 16:9 exports","tools":[{"name":"get_capabilities","kind":"answer","impl":"imperative","description":"Read Inkframe capabilities and the safe, same-origin workspace routes.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"name":"list_templates","kind":"answer","impl":"imperative","description":"List and filter Inkframe templates, including aspect, duration, and editable layer metadata.","annotations":{"readOnlyHint":true,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"query":{"type":"string","maxLength":80},"kind":{"type":"string","enum":["all","editor"]},"limit":{"type":"integer","minimum":1,"maximum":20}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"route":{"type":"string","enum":["home","editor","templates"]},"confirmed":{"type":"boolean","const":true}},"required":["route","confirmed"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"templateId":{"type":"string","minLength":1},"confirmed":{"type":"boolean","const":true}},"required":["templateId","confirmed"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"assetId":{"type":"string","minLength":1,"maxLength":128}},"required":["assetId"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"ticketId":{"type":"string","minLength":1,"maxLength":128},"content":{"type":"string","minLength":1,"maxLength":200000}},"required":["ticketId","content"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"name":"editor_remove_audio_ducking","kind":"act","impl":"imperative","description":"Remove a ducking rule with explicit confirmation.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"name":"editor_add_track","kind":"act","impl":"imperative","description":"Create a named lane. Requires an explicit aspect, current revision, and retry-safe operation ID.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"name":"editor_get_state_summary","kind":"answer","impl":"imperative","description":"Get a compact summary of the current editor canvas and timeline.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"name":"editor_validate_project","kind":"act","impl":"imperative","description":"Check export readiness, missing media, unsafe text, timeline gaps, overflow risk, and transition integrity.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"aspect":{"type":"string","enum":["reel_9_16","widescreen_16_9"]}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"name":"editor_get_render_diagnostics","kind":"answer","impl":"imperative","description":"Inspect Elah adapter diagnostics and browser encoding capability alongside project validation.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"aspect":{"type":"string","enum":["reel_9_16","widescreen_16_9"]}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"name":"editor_color_status","kind":"answer","impl":"imperative","description":"Check whether color proposals, previews, approvals, and operations remain valid at the current project revision.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"name":"editor_get_export_status","kind":"answer","impl":"imperative","description":"Read browser render progress, recovery guidance, and metadata for the latest exported MP4.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"name":"editor_list_style_presets","kind":"act","impl":"imperative","description":"List text styles with native Elah preview and export parity.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"name":"editor_list_assets","kind":"answer","impl":"imperative","description":"List safe asset metadata without exposing File objects, object URLs, data URLs, or secrets.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"maxItems":{"type":"integer","minimum":1,"maximum":100}},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"aspect":{"type":"string","enum":["reel_9_16","widescreen_16_9"]},"includeUnused":{"default":false,"type":"boolean"}},"required":["includeUnused"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"name":"editor_search_stock_videos","kind":"answer","impl":"imperative","description":"Search sanitized Pexels video metadata for the requested canvas.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"name":"editor_search_stock_photos","kind":"answer","impl":"imperative","description":"Search sanitized Pexels photo metadata for the requested canvas.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"query":{"type":"string","minLength":2,"maxLength":120}},"required":["query"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"query":{"type":"string","minLength":2,"maxLength":120}},"required":["query"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"name":"editor_list_variants","kind":"act","impl":"imperative","description":"List isolated timeline drafts without changing the active edit.","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"name":"editor_create_variant","kind":"act","impl":"imperative","description":"Create an isolated snapshot of the current or specified canvas for safe creative comparison.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"name":"editor_apply_variant","kind":"act","impl":"imperative","description":"Replace the matching canvas timeline with an isolated variant. Requires explicit confirmation.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"variantId":{"type":"string","minLength":1,"maxLength":128},"confirmed":{"type":"boolean","const":true}},"required":["variantId","confirmed"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"name":"editor_delete_variant","kind":"transact","impl":"imperative","description":"Delete an isolated variant without changing the active edit. Requires explicit confirmation.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"variantId":{"type":"string","minLength":1,"maxLength":128},"confirmed":{"type":"boolean","const":true}},"required":["variantId","confirmed"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"name":"editor_switch_canvas","kind":"act","impl":"imperative","description":"Switch the active canvas aspect ratio.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"aspect":{"type":"string","enum":["reel_9_16","widescreen_16_9"]}},"required":["aspect"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"name":"editor_select_timeline_item","kind":"act","impl":"imperative","description":"Select an existing clip, text overlay, or audio track in the editor timeline.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"name":"editor_add_text_overlay","kind":"act","impl":"imperative","description":"Add a text overlay to the current or specified canvas.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"name":"editor_update_text_overlay","kind":"act","impl":"imperative","description":"Update fields on an existing text overlay.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"name":"editor_remove_text_overlay","kind":"act","impl":"imperative","description":"Remove a text overlay. Requires explicit confirmation.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"name":"editor_remove_clip","kind":"act","impl":"imperative","description":"Remove a clip and its connected transitions. Requires explicit confirmation.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"name":"editor_move_clip","kind":"act","impl":"imperative","description":"Move an existing clip one position earlier or later in the timeline.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"name":"editor_split_clip","kind":"act","impl":"imperative","description":"Split a visual clip at an exact timeline frame.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"name":"editor_duplicate_clip","kind":"act","impl":"imperative","description":"Duplicate a visual clip directly after the original.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"name":"editor_set_transition","kind":"act","impl":"imperative","description":"Set a fade, slide, or wipe transition between adjacent clips.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"name":"editor_remove_transition","kind":"act","impl":"imperative","description":"Remove a transition. Requires explicit confirmation.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"name":"editor_update_audio_track","kind":"act","impl":"imperative","description":"Update timing, trim, or volume fields on an existing audio track.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"name":"editor_remove_audio_track","kind":"act","impl":"imperative","description":"Remove an audio track. Requires explicit confirmation.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"name":"editor_apply_ai_editor_actions","kind":"act","impl":"imperative","description":"Apply validated structured AI editor actions. Requires explicit confirmation.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"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},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"confirmed":{"type":"boolean","const":true}},"required":["confirmed"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"confirmed":{"type":"boolean","const":true}},"required":["confirmed"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"confirmed":{"type":"boolean","const":true}},"required":["confirmed"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"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.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"confirmed":{"type":"boolean","const":true}},"required":["confirmed"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"name":"editor_cancel_export","kind":"transact","impl":"imperative","description":"Cancel the active browser export. Requires explicit confirmation.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"confirmed":{"type":"boolean","const":true}},"required":["confirmed"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"name":"editor_remove_asset","kind":"act","impl":"imperative","description":"Remove an asset and its timeline references through the host editor. Requires explicit confirmation.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"assetId":{"type":"string","minLength":1,"maxLength":128},"confirmed":{"type":"boolean","const":true}},"required":["assetId","confirmed"],"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"name":"editor_undo","kind":"act","impl":"imperative","description":"Undo the latest editor mutation.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"},{"name":"editor_redo","kind":"act","impl":"imperative","description":"Redo the latest undone editor mutation.","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/editor"}],"category":"Productivity & Business","favicon":"/favicons/inkframe-eta.vercel.app.ico","apiSurface":"spec","toolCount":87}}