Cut Agent workflow
- Call
cut_get_projectbefore modifying an existing project. It returns only a compact overview, resource counts, the current internal edit revision, andavailableReads; retain that revision as an optimistic-concurrency token, not as a user-visible saved version. - Disclose details progressively. Use
cut_list_tracksfor structure,cut_list_clipsfor bounded filtered pages,cut_get_clipfor one exact clip,cut_list_media_assets/cut_get_media_assetfor safe media metadata, andcut_list_project_resourcesfor one paged collection of jobs, versions, exports, caption drafts, proposals, or logs. PassexpectedRevisionfromcut_get_projectand refresh the overview on conflict. - Never request, reconstruct, or replace the complete project IR through Agent tools. Use narrow mutations or
cut_apply_batch; the full document is reserved for the Workbench host path. - Import media with
cut_import_media; pass a runtime workspace path or portable file reference, never base64. - For a simple explicit edit, use the narrow atomic tool and include
baseRevisionplus a concisechangeSummary. - For a complex, destructive, or goal-level rough cut, search exact evidence with
cut_search_media_segments, inspect it withcut_get_media_segment, and createcut_create_edit_proposal. Every proposal item must cite evidence. - Let the user review the proposal diff, risk, evidence, and preview in Workbench. Use
cut_update_edit_proposalonly for explicit item decisions, andcut_apply_edit_proposalonly after approval with exact project and proposal revisions. - Never silently apply, rebase, or recreate a stale/rejected proposal. Use
cut_revert_edit_proposalonly after an explicit undo request and only at the exact applied project revision. Never bypass proposal review with a whole-document replacement. - Use
cut_update_project_settingsfor project width, height, fps, or background. Keep its defaultpreservepolicy unless the user explicitly asks to reframe the composition withcontain,cover, orstretch. - Read source orientation only from media
codedWidth,codedHeight,displayWidth,displayHeight, androtationDegrees. A cliptransform.rotationis an intentional composition edit, not source metadata; never clear or invert it merely because the project dimensions changed. - On an internal edit-revision conflict, reload; never overwrite a dirty Workbench copy. Repeated saves of unchanged document data do not advance the edit revision, and non-timeline operations such as transcription, task polling, and caption-draft editing do not create project versions.
- Create an immutable milestone only when the user explicitly requests one with
cut_finalize_version; ordinary edits never create version snapshots automatically. - For smart speech cleanup, transcribe the source and run visible Workbench media analysis first. Call
cut_create_speech_cleanup_proposalwith an explicitmode(conservative,balanced, oraggressive) and only the requested categories: long pauses, filler words, repeated phrases, word-level stutters, or exactmanualSegmentIdsselected from the transcript. The tool maps source evidence to the current timeline and proposes end-to-startripple_delete_rangesso picture and sound stay synchronized. Show the typedspeech_cleanupproposal, category counts, estimated removed duration, evidence, and preview; apply it only after approval. Retain the exact applied ranges. - When calling
cut_start_transcription, choosemode: platformonly when the current Xpert Speech-to-Text provider is configured and the media can use that provider. Choosemode: sandbox_whisperfor a durable offline background job that reads the Workspace Reference in Sandbox Browser with the bundled multilingual Q4 Whisper Tiny model. Uselanguage: zhwhen Chinese is known,language: enwhen English is known, orlanguage: undfor automatic detection. Browser-local Whisper remains a user-triggered Workbench action and is not a backend tool mode. Pollcut_get_analysis_joband do not create captions until transcription succeeds. - Add a title cover with
cut_add_coveronly after speech cleanup. It inserts full-canvas color/title tracks, shifts the program later, and increases project duration. Retain its duration as the caption timeline offset. - After cleanup and cover insertion, create captions with
cut_create_caption_draft, passing the exact applied cleanup ranges astimelineCutsand the cover duration astimelineOffsetSeconds. This retimes transcript cues to the final program timeline. - To translate captions, read the complete source draft, translate every cue without changing meaning or timing, and call
cut_create_translated_caption_draftwith one entry for every sourcecaptionId. A caption draft'ssourceRevisionis provenance and does not make it stale after unrelated project edits. For simultaneous bilingual or multilingual burned-in tracks, callcut_commit_caption_draftsonce with 1–4 approved drafts so all tracks are written atomically. - Use the Workbench browser export for an immediate one-off render and whenever referenced media exceeds the Sandbox Job input limit of 350 MiB. The Workbench disables Headless MP4 and explains this fallback before submission. For durable, background, multi-size, templated, or localized-media output whose referenced media stays within that limit, call
cut_start_headless_exportat the exact currentbaseRevision. Submit at most five variants; template values replace{{variable}}in text clips, andmediaAssetMapexplicitly maps a source asset UUID to another compatible imported project asset UUID. Every media clip must refer to an importedmediaAssetId. - Poll each returned job with
cut_get_analysis_job. Do not claim the MP4 is saved until status issucceededandresultExportIdis present. Usecut_cancel_analysis_jobfor explicit cancellation; retry failures by their machine-readablefailureCoderather than changing the project snapshot. - Record import, validation, media-load, save, or export failures with
cut_report_failure.
The project document is versioned schema 1. Time values are seconds. Clips may not extend beyond the project duration. split.at is absolute project time; trim and move times are also absolute project time.