Editing stacks
Everything the stack editor changes, as calls — fields, geometry, channels and presets, plus the snapshots that make a big edit reversible.
update_stack
Set editor fields on a stack: media paths, widget toggles, widget_z_order, hook/endcard config + texts (incl. per-language pools, motion titles, voiceover toggles), auto-captions look (style/position/size), layout_zones, video_template, mandatory_hashtags, clip_context_enabled and more. Unknown fields error and list what is editable.
| Parameter | Type | Description |
|---|---|---|
stack (required) |
string | Stack name. |
fields (required) |
object | Editor fields to set, e.g. {"hook_enabled": true}. |
set_widget_geometry
Position/scale one widget (main, cta, brain, text, sound, watermark, hook, endcard) at stack, brand or brand+channel level — other context levels stay untouched. State fields per kind: media widgets take path/scale/pos, text takes text/style fields, sound takes volume, watermark takes opacity. scale/pos are relative to the editor's 300x533 canvas geometry (see get_editor for the current state incl. canvas rects). For media widgets, 'rect' places the asset into a target canvas rect instead — scale/pos are computed for you.
| Parameter | Type | Description |
|---|---|---|
stack (required) |
string | Stack name. |
widget (required) |
enum: main, cta, brain, text, sound, watermark, hook, endcard |
Widget kind. |
state |
object | State fields to merge, e.g. {"scale": 0.8, "pos": [10, 300]}. |
rect |
array of number | Target canvas rect [x, y, w, h] to fit the widget's media into (media widgets only; computes scale/pos). |
fit |
enum: contain, cover |
How the media fills 'rect': contain shows all of it (default), cover fills the rect and crops. |
brand |
string | Brand context (optional). |
channel |
string | Platform context (requires brand). |
set_stack_brands
Set which brands a stack posts as (the editor's brand picker): removed brands lose their channel selections, new brands get channel lists from their platform config. Empty list removes all brands.
| Parameter | Type | Description |
|---|---|---|
stack (required) |
string | Stack name. |
brands (required) |
array of string | The stack's new brand list. |
toggle_brand_channel
Toggle one platform on/off for one brand on a stack — the Brand-&-Channel map's per-platform switch. A platform switched off for the brand in the brand editor cannot be toggled on here (enable it via set_brand first).
| Parameter | Type | Description |
|---|---|---|
stack (required) |
string | Stack name. |
brand (required) |
string | Brand on the stack. |
platform (required) |
string | Platform key to toggle. |
Take a snapshot before a large edit. Restoring one freezes the current configuration as a safety snapshot first, so the rollback itself is reversible.
snapshot_stack
Freeze a stack's config (stack.json + every widget state) as a restore point under the stack folder — take one before a series of edits, then experiment freely. Rendered videos, transcripts and assets are not included (reproducible or untouched by edits). The newest 30 per stack are kept.
| Parameter | Type | Description |
|---|---|---|
stack (required) |
string | |
label |
string | Optional label, e.g. 'before hook restyle'. |
restore_stack_snapshot
Roll a stack's config back to a snapshot (see list_stack_snapshots). The current config is frozen as a safety snapshot first, so this is reversible — still requires confirm=true after the user confirmed the rollback.
| Parameter | Type | Description |
|---|---|---|
stack (required) |
string | |
snapshot (required) |
string | Snapshot id from list_stack_snapshots. |
confirm (required) |
boolean | Required true. Only pass it after the user explicitly confirmed this deletion in chat. |
apply_preset
Apply a stack preset onto an EXISTING stack (create_stack applies one at creation). overwrite_overrides=true also resets per-stack overrides the preset carries.
| Parameter | Type | Description |
|---|---|---|
stack (required) |
string | Stack name. |
preset (required) |
string | Stack preset (see list_presets). |
overwrite_overrides |
boolean | Also overwrite per-stack overrides (default false). |
save_stack_preset
Snapshot a stack's current configuration (widgets, background, captions look, zones, template) as a reusable stack preset for create_stack and assembly lines.
| Parameter | Type | Description |
|---|---|---|
name (required) |
string | Preset name. |
from_stack (required) |
string | Stack to snapshot. |
set_preset_included
Which fields / widget states a stack preset applies (the preset editor's 'Included fields'): included = {stack_fields: {field: bool}, widgets: {kind: bool}} — missing keys default to true.
| Parameter | Type | Description |
|---|---|---|
preset (required) |
string | Stack preset name. |
included (required) |
object |