{"name":"studio_workflow","inputSchema":{"type":"object","properties":{"action":{"type":"string","enum":["get","list","build","edit","run","run_status","rename","delete","workspace_list","workspace_create","workspace_delete","save","save_as_copy"]},"target":{"type":"string","enum":["library","canvas"]},"mode":{"type":"string","enum":["append","replace"]},"workflow_id":{"type":"string"},"seed_workflow_id":{"type":"string"},"room_id":{"type":"string"},"source_draft_id":{"description":"action=build only: an organic Planner draft id. The graph is seeded from that draft and delivered back to it.","type":"string"},"name":{"type":"string"},"description":{"type":"string"},"nodes":{"type":"array","items":{"type":"object","properties":{"ref":{"type":"string","minLength":1,"description":"Your name for this node; also becomes its id."},"type":{"type":"string","minLength":1,"description":"One of the canvas node types."},"data":{"description":"Config overrides, e.g. { model, positivePrompt }.","type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["ref","type"],"additionalProperties":false}},"connections":{"type":"array","items":{"type":"object","properties":{"from_ref":{"type":"string","minLength":1},"to_ref":{"type":"string","minLength":1},"role":{"description":"What the input is for — \"prompt\", \"negative\", \"first-frame\", \"ref-images\".","type":"string"}},"required":["from_ref","to_ref"],"additionalProperties":false}},"ops":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"op":{"type":"string","const":"add_node"},"ref":{"type":"string"},"type":{"type":"string"},"data":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["op","ref","type"],"additionalProperties":false},{"type":"object","properties":{"op":{"type":"string","const":"remove_node"},"id":{"type":"string"}},"required":["op","id"],"additionalProperties":false},{"type":"object","properties":{"op":{"type":"string","const":"update_node"},"id":{"type":"string"},"data":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["op","id","data"],"additionalProperties":false},{"type":"object","properties":{"op":{"type":"string","const":"connect"},"from":{"type":"string"},"to":{"type":"string"},"role":{"type":"string"}},"required":["op","from","to"],"additionalProperties":false},{"type":"object","properties":{"op":{"type":"string","const":"disconnect"},"from":{"type":"string"},"to":{"type":"string"},"targetHandle":{"type":"string"}},"required":["op"],"additionalProperties":false},{"type":"object","properties":{"op":{"type":"string","const":"rewire"},"from":{"type":"string"},"to":{"type":"string"},"role":{"type":"string"}},"required":["op","from","to"],"additionalProperties":false},{"type":"object","properties":{"op":{"type":"string","const":"attach_media"},"id":{"type":"string"},"media":{"type":"object","properties":{"assetId":{"description":"media.assets id when the media comes from the Library; keeps the usage trail.","type":"string"},"versionId":{"description":"Pinned media.asset_versions id for reproducible generation provenance.","type":"string"},"bucket":{"type":"string"},"storagePath":{"type":"string"},"fileName":{"type":"string"},"mediaKind":{"type":"string","enum":["image","video","audio","document"]},"referenceType":{"type":"string"}},"required":["bucket","storagePath","mediaKind"],"additionalProperties":false}},"required":["op","id","media"],"additionalProperties":false},{"type":"object","properties":{"op":{"type":"string","const":"attach_library_asset"},"id":{"type":"string"},"asset_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"},"version_id":{"type":"string","format":"uuid","pattern":"^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"}},"required":["op","id","asset_id"],"additionalProperties":false},{"type":"object","properties":{"op":{"type":"string","const":"attach_unsplash_photo"},"id":{"type":"string"},"photo_id":{"type":"string","pattern":"^[A-Za-z0-9_-]{1,100}$"}},"required":["op","id","photo_id"],"additionalProperties":false},{"type":"object","properties":{"op":{"type":"string","const":"detach_media"},"id":{"type":"string"}},"required":["op","id"],"additionalProperties":false},{"type":"object","properties":{"op":{"type":"string","const":"rename"},"id":{"type":"string"},"label":{"type":"string"}},"required":["op","id","label"],"additionalProperties":false},{"type":"object","properties":{"op":{"type":"string","const":"set_timeline"},"id":{"type":"string"},"items":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"sourceNodeId":{"type":"string","minLength":1},"order":{"type":"integer","minimum":0,"maximum":9007199254740991},"kind":{"type":"string","enum":["video","image"]},"trimStartSec":{"type":"number","minimum":0},"trimEndSec":{"type":"number","minimum":0},"durationSec":{"type":"number","minimum":0,"maximum":60},"muteAudio":{"type":"boolean"},"transition":{"type":"object","properties":{"type":{"type":"string","enum":["cut","fade","dipWhite","crossDissolve","slideLeft","slideRight","slideUp","slideDown","wipeLeft","wipeRight","zoomIn","spin"]},"durationSec":{"type":"number","minimum":0,"maximum":5}},"required":["type","durationSec"],"additionalProperties":false}},"required":["sourceNodeId","order"],"additionalProperties":false}}},"required":["op","id","items"],"additionalProperties":false}]}},"node_ids":{"type":"array","items":{"type":"string"}},"run_request_id":{"type":"string"},"expected_updated_at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"},"confirm_token":{"type":"string"}},"required":["action"],"additionalProperties":false}}
