cueframe 0.11.0 → 0.11.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -0
- package/dist/analyze-I7B5SFLM.js +2 -0
- package/dist/{chunk-M3NS5UR2.js → chunk-HB4NDWMH.js} +7 -7
- package/dist/cueframe.js +46 -46
- package/dist/skills/add-music-bed/SKILL.md +5 -23
- package/dist/skills/brand-reel/SKILL.md +5 -28
- package/dist/skills/clip-a-talking-head/SKILL.md +2 -20
- package/dist/skills/composing-video/SKILL.md +36 -432
- package/dist/skills/composing-video/references/acceptance-template.md +21 -0
- package/dist/skills/composing-video/references/audio-design.md +125 -0
- package/dist/skills/composing-video/references/card-and-motion-runtime.md +49 -0
- package/dist/skills/composing-video/references/craft-principles.md +25 -0
- package/dist/skills/composing-video/references/film-planning.md +37 -0
- package/dist/skills/composing-video/references/format-decisions.md +17 -0
- package/dist/skills/composing-video/references/format-playbooks.md +96 -0
- package/dist/skills/composing-video/references/motion-design.md +25 -0
- package/dist/skills/composing-video/references/project-policy.md +18 -0
- package/dist/skills/composing-video/references/sfx-pack.md +69 -0
- package/dist/skills/composing-video/references/sound-and-timing.md +15 -0
- package/dist/skills/composing-video/references/tool-map.md +43 -0
- package/dist/skills/cueframe-brand-demo/SKILL.md +1 -7
- package/dist/skills/cueframe-cli/SKILL.md +9 -7
- package/dist/skills/cueframe-component-authoring/SKILL.md +20 -169
- package/dist/skills/cueframe-component-authoring/references/authoring-paths.md +72 -0
- package/dist/skills/cueframe-component-authoring/references/forking-and-layout.md +35 -0
- package/dist/skills/cueframe-component-authoring/references/native-component-workflows.md +98 -0
- package/dist/skills/cueframe-component-authoring/references/native-source-contract.md +54 -0
- package/dist/skills/cueframe-component-authoring/references/parented-device-card.json +13 -0
- package/dist/skills/cueframe-component-authoring/references/parented-motion.md +25 -0
- package/dist/skills/cueframe-component-authoring/references/retired-projects.md +26 -0
- package/dist/skills/cueframe-compose-loop/SKILL.md +14 -115
- package/dist/skills/cueframe-compose-loop/references/convergence-loop.md +128 -0
- package/dist/skills/cueframe-compose-loop/references/preview-workflow.md +6 -2
- package/dist/skills/cueframe-connect/SKILL.md +1 -7
- package/dist/skills/cueframe-connect/references/tools.md +6 -5
- package/dist/skills/cueframe-product-video/SKILL.md +1 -7
- package/dist/skills/cueframe-reference-video/SKILL.md +30 -0
- package/dist/skills/cueframe-reference-video/references/measurement-and-comparison.md +45 -0
- package/dist/skills/cueframe-reference-video/scripts/motion-grid.sh +116 -0
- package/dist/skills/cueframe-scene-shot/SKILL.md +2 -8
- package/dist/skills/cueframe-storyboard/SKILL.md +1 -7
- package/dist/skills/every-format-from-one-edit/SKILL.md +3 -19
- package/dist/skills/extracting-brand-kits/SKILL.md +1 -7
- package/dist/skills/launch-video/SKILL.md +6 -26
- package/dist/skills/make-a-social-reel/SKILL.md +7 -26
- package/dist/skills/rebrand-a-video/SKILL.md +2 -19
- package/dist/skills/video-craft-standards/SKILL.md +20 -103
- package/dist/skills/video-craft-standards/references/format-standards.md +118 -0
- package/package.json +4 -4
- package/dist/analyze-5KCAIZI6.js +0 -2
package/README.md
CHANGED
|
@@ -46,6 +46,14 @@ This reads your account and credit entitlements without rendering. Cloud process
|
|
|
46
46
|
|
|
47
47
|
## Quick start — upload → author → render
|
|
48
48
|
|
|
49
|
+
To compare an exact certified reference frame with an existing composition preview:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
npx -y cueframe@0.11 compare <projectId> --reference-media <mediaId> --reference-representation <identity> --reference-frame 117 --candidate-job <jobId> --candidate-artifact <artifactId> --out ./comparison --json
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
This uses the shared comparison operation without rendering the composition again. The default views are side-by-side and an unaligned 50% overlay. Select `--views overlay,difference` or one shared-coordinate `--crop x,y,width,height` when useful. `--out` saves verified PNGs; NDJSON reports compact source and image receipts. Without `--out`, receipts describe the images but do not save them. These diagnostics do not replace motion or sound review.
|
|
56
|
+
|
|
49
57
|
```bash
|
|
50
58
|
# 1. Register media (video / image / audio)
|
|
51
59
|
npx -y cueframe@0.11 upload ./source.mp4 --json # → mediaItemId
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{a as y}from"./chunk-3QSA3EBY.js";var u=class extends Error{status;code;details;requestId;constructor(t,r,n){super(r.message),this.name="ApiError",this.status=t,this.code=r.code,this.details=r.details,this.requestId=n}},v=class extends Error{url;timeoutMs;constructor(t,r){super(`Request timed out after ${r}ms: ${t}`),this.name="TimeoutError",this.url=t,this.timeoutMs=r}},q=class extends Error{url;constructor(t,r){super(`Request failed before a response: ${t}`,{cause:r}),this.name="NetworkError",this.url=t}},g={baseUrl:""};function
|
|
2
|
+
import{a as y}from"./chunk-3QSA3EBY.js";var u=class extends Error{status;code;details;requestId;constructor(t,r,n){super(r.message),this.name="ApiError",this.status=t,this.code=r.code,this.details=r.details,this.requestId=n}},v=class extends Error{url;timeoutMs;constructor(t,r){super(`Request timed out after ${r}ms: ${t}`),this.name="TimeoutError",this.url=t,this.timeoutMs=r}},q=class extends Error{url;constructor(t,r){super(`Request failed before a response: ${t}`,{cause:r}),this.name="NetworkError",this.url=t}},g={baseUrl:""};function I(e){return g={timeoutMs:3e4,...e},g}function O(){return g}function ft(e,t){return/^https?:\/\//.test(t)?t:e.replace(/\/$/,"")+(t.startsWith("/")?t:`/${t}`)}async function j(e,t={}){if(!g.baseUrl)throw new Error("@cueframe/sdk: createClient({baseUrl}) must be called before issuing requests.");let r=g.fetch??fetch,n=ft(g.baseUrl,e),o=new Headers({accept:"application/json"});for(let[c,d]of Object.entries(g.headers??{}))o.set(c,d);t.headers&&new Headers(t.headers).forEach((c,d)=>o.set(d,c)),g.apiKey&&!o.has("authorization")&&o.set("authorization",`Bearer ${g.apiKey}`);let s=g.timeoutMs??3e4,i=new AbortController,p=setTimeout(()=>i.abort(),s),m=t.signal?AbortSignal.any([t.signal,i.signal]):i.signal;try{let c=await r(n,{...t,headers:o,signal:m}),d={};c.headers.forEach((b,x)=>{d[x.toLowerCase()]=b});let l=null;if(c.status!==204)if((c.headers.get("content-type")??"").includes("application/json"))try{l=await c.json()}catch{l=null}else l=await c.text();return{status:c.status,statusText:c.statusText,headers:d,body:l,requestId:d["x-request-id"]}}catch(c){throw t.signal?.aborted?c:i.signal.aborted?new v(n,s):new q(n,c)}finally{clearTimeout(p)}}async function a(e,t={}){let r=await j(e,t);if(r.status>=400){let n;throw r.body&&typeof r.body=="object"&&"error"in r.body?n=r.body.error??{code:"unknown",message:r.statusText}:n={code:"unknown",message:r.statusText},new u(r.status,n,r.requestId)}if(r.status!==204)return r.body}var mt={unauthorized:"The credential is invalid or expired for this target, or it belongs to a different environment. Re-authenticate the way you connected: reconnect the MCP server, run `cueframe login` in a terminal, or supply a current API key.",forbidden:"The credential's permissions don't cover this operation. The server message above names the exact missing ones and the `permissions` body that grants them; a key's permissions are fixed at creation, so this needs a NEW key, not a change to this one.",not_found:"No such resource in this org (cross-org access also reads as 404). Check the id, or enumerate with the matching list command/tool.",media_not_ready:"Media is still processing. Wait for the `media.transcribed` webhook or retry after ~30s.",suggestions_already_complete:"Suggestions already exist for this media item. To re-run, call DELETE /v1/media/:id/suggestions first to reset state.",precondition_required:"Fetch the resource with GET first to obtain its ETag, then resend the write with `If-Match: <etag>`. `cueframe composition get` returns one for you.",stale_etag:"Resource was modified since your last GET \u2014 `details.currentEtag` is the value to thread next. Re-GET (or run `cueframe composition get`) and rebase your edits before retrying.",conflict:"ETag mismatch \u2014 the resource was modified since your last GET. Re-fetch and merge before retrying.",media_in_use:"Media is referenced by other resources. See `details.projectIds` and `details.sessionIds` \u2014 remove those references before deleting.",session_in_use:"Session is referenced by a composition. See `details.projectIds` \u2014 remove those references before deleting.",render_not_cancellable:"Render is already in a terminal state (complete / error / cancelled) and cannot be cancelled.",rate_limited:"Rate limit exceeded. Back off using the `retry-after` response header.",invalid_composition:"Composition violates an invariant (see `details`). Common ones: clip_source_track_kind_mismatch, track_clips_overlap, transition_no_predecessor.",clip_not_found:"The clip suggestion publicId doesn't exist in this org. Run `cueframe clips <mediaItemId>` to enumerate valid sug_* ids.",service_unavailable:"The processing pipeline is temporarily unavailable. Retry shortly; if it persists, contact support@cueframe.ai with the requestId.",payment_required:"The request exceeds a billing limit. For generation, the estimated cost is over the per-call ceiling (see `details.estimateUsd` / `details.ceilingUsd`) \u2014 lower the requested duration or raise the ceiling."};function A(e){return e instanceof u?mt[e.code]??null:null}async function*ut(e,t,r){let n=O();if(!n?.baseUrl)throw new Error(`@cueframe/sdk: createClient({baseUrl}) must be called before ${t}.`);let o=n.baseUrl.replace(/\/$/,"")+e,s=new Headers({accept:"text/event-stream",...n.headers??{}});n.apiKey&&!s.has("authorization")&&s.set("authorization",`Bearer ${n.apiKey}`);let p=await(n.fetch??fetch)(o,{method:"GET",headers:s,signal:r.signal});if(!p.ok){let l;try{l=(await p.json()).error??{code:"unknown",message:p.statusText}}catch{l={code:"unknown",message:p.statusText}}throw new u(p.status,l,p.headers.get("x-request-id")??void 0)}if(!p.body)throw new Error("SSE response has no body");let m=p.body.getReader(),c=new TextDecoder("utf-8"),d="";try{for(;;){let{value:l,done:b}=await m.read();if(b)break;d+=c.decode(l,{stream:!0});let x=d.indexOf(`
|
|
3
3
|
|
|
4
4
|
`);for(;x!==-1;){let dt=d.slice(0,x);d=d.slice(x+2);let N=lt(dt);N&&(yield N),x=d.indexOf(`
|
|
5
5
|
|
|
6
6
|
`)}}}finally{try{m.releaseLock()}catch{}}}function lt(e){if(!e.trim())return null;let t=null,r=[];for(let n of e.split(`
|
|
7
7
|
`)){if(!n||n.startsWith(":"))continue;let o=n.indexOf(":");if(o===-1)continue;let s=n.slice(0,o),i=n.slice(o+1).replace(/^ /,"");s==="event"?t=i:s==="data"&&r.push(i)}return!t||r.length===0?null:{event:t,data:r.join(`
|
|
8
|
-
`)}}async function*gt(e,t,r={}){let n=`/v1/projects/${encodeURIComponent(e)}/renders/${encodeURIComponent(t)}/stream`;for await(let o of ut(n,"iterRenderEvents",r)){let s=yt(o);s&&(yield s)}}function yt(e){let{event:t,data:r}=e;if(r===null||t!=="progress"&&t!=="complete"&&t!=="error")return null;let n;try{n=JSON.parse(r)}catch{return null}return{event:t,data:n}}var P={};y(P,{composeFromSuggestion:()=>ht,getComposeFromSuggestionUrl:()=>L,getListMediaSuggestionsUrl:()=>G,getResetMediaSuggestionsUrl:()=>F,getSuggestBriefsUrl:()=>$,listMediaSuggestions:()=>vt,resetMediaSuggestions:()=>Et,suggestBriefs:()=>qt});var L=e=>`/v1/projects/${e}/composition/from-suggestion`,ht=async(e,t,r)=>{let n=o=>{if(!o)return{};if(o instanceof Headers)return Object.fromEntries(o.entries());if(Symbol.iterator in o)return Object.fromEntries(Array.from(o,i=>Array.from(i)));let s={};for(let[i,p]of Object.entries(o))p!==void 0&&(s[i]=p);return s};return a(L(e),{...r,method:"POST",headers:{"Content-Type":"application/json",...n(r?.headers)},body:JSON.stringify(t)})},G=(e,t)=>{let r=new URLSearchParams;Object.entries(t||{}).forEach(([o,s])=>{s!==void 0&&r.append(o,s===null?"null":String(s))});let n=r.toString();return n.length>0?`/v1/media/${e}/suggestions?${n}`:`/v1/media/${e}/suggestions`},vt=async(e,t,r)=>a(G(e,t),{...r,method:"GET"}),$=e=>`/v1/media/${e}/suggestions`,qt=async(e,t)=>a($(e),{...t,method:"POST"}),F=e=>`/v1/media/${e}/suggestions`,Et=async(e,t)=>a(F(e),{...t,method:"DELETE"});var Z={};y(Z,{createComponent:()=>jt,getBlankComponentSource:()=>kt,getComponent:()=>Mt,getComponentSource:()=>Ut,getCreateComponentUrl:()=>V,getGetBlankComponentSourceUrl:()=>H,getGetComponentSourceUrl:()=>Y,getGetComponentUrl:()=>X,getListCatalogUrl:()=>D,getPatchComponentUrl:()=>z,getRepinComponentUrl:()=>_,getResolveBuiltinComponentUrl:()=>J,getUpdateComponentUrl:()=>W,listCatalog:()=>It,patchComponent:()=>wt,repinComponent:()=>Tt,resolveBuiltinComponent:()=>Ot,updateComponent:()=>At});var _=e=>`/v1/projects/${e}/components/native-upgrade`,Tt=async(e,t,r)=>{let n=o=>{if(!o)return{};if(o instanceof Headers)return Object.fromEntries(o.entries());if(Symbol.iterator in o)return Object.fromEntries(Array.from(o,i=>Array.from(i)));let s={};for(let[i,p]of Object.entries(o))p!==void 0&&(s[i]=p);return s};return a(_(e),{...r,method:"POST",headers:{"Content-Type":"application/json",...n(r?.headers)},body:JSON.stringify(t)})},H=()=>"/v1/components/blank-source",kt=async e=>a(H(),{...e,method:"GET"}),J=e=>{let t=new URLSearchParams;Object.entries(e||{}).forEach(([n,o])=>{o!==void 0&&t.append(n,o===null?"null":String(o))});let r=t.toString();return r.length>0?`/v1/components/builtin/resolve?${r}`:"/v1/components/builtin/resolve"},Ot=async(e,t)=>a(J(e),{...t,method:"GET"}),D=e=>{let t=new URLSearchParams;Object.entries(e||{}).forEach(([n,o])=>{o!==void 0&&t.append(n,o===null?"null":String(o))});let r=t.toString();return r.length>0?`/v1/components?${r}`:"/v1/components"},It=async(e,t)=>a(D(e),{...t,method:"GET"}),V=()=>"/v1/components",jt=async(e,t)=>{let r=n=>{if(!n)return{};if(n instanceof Headers)return Object.fromEntries(n.entries());if(Symbol.iterator in n)return Object.fromEntries(Array.from(n,s=>Array.from(s)));let o={};for(let[s,i]of Object.entries(n))i!==void 0&&(o[s]=i);return o};return a(V(),{...t,method:"POST",headers:{"Content-Type":"application/json",...r(t?.headers)},body:JSON.stringify(e)})},W=e=>`/v1/components/${e}`,At=async(e,t,r)=>{let n=o=>{if(!o)return{};if(o instanceof Headers)return Object.fromEntries(o.entries());if(Symbol.iterator in o)return Object.fromEntries(Array.from(o,i=>Array.from(i)));let s={};for(let[i,p]of Object.entries(o))p!==void 0&&(s[i]=p);return s};return a(W(e),{...r,method:"PUT",headers:{"Content-Type":"application/json",...n(r?.headers)},body:JSON.stringify(t)})},z=e=>`/v1/components/${e}`,wt=async(e,t,r)=>{let n=o=>{if(!o)return{};if(o instanceof Headers)return Object.fromEntries(o.entries());if(Symbol.iterator in o)return Object.fromEntries(Array.from(o,i=>Array.from(i)));let s={};for(let[i,p]of Object.entries(o))p!==void 0&&(s[i]=p);return s};return a(z(e),{...r,method:"PATCH",headers:{"Content-Type":"application/json",...n(r?.headers)},body:JSON.stringify(t)})},X=e=>`/v1/components/${e}`,Mt=async(e,t)=>a(X(e),{...t,method:"GET"}),Y=(e,t)=>{let r=new URLSearchParams;Object.entries(t||{}).forEach(([o,s])=>{s!==void 0&&r.append(o,s===null?"null":String(s))});let n=r.toString();return n.length>0?`/v1/components/${e}/source?${n}`:`/v1/components/${e}/source`},Ut=async(e,t,r)=>a(Y(e,t),{...r,method:"GET"});var se={};y(se,{cancelExport:()=>Wt,createFcpxmlExport:()=>_t,createPremiereExport:()=>Ht,createVideoClipExport:()=>Jt,getCancelExportUrl:()=>ne,getCreateFcpxmlExportUrl:()=>Q,getCreatePremiereExportUrl:()=>ee,getCreateVideoClipExportUrl:()=>te,getExport:()=>Vt,getGetExportUrl:()=>oe,getRetryExportUrl:()=>re,retryExport:()=>Dt});var Q=e=>`/v1/projects/${e}/exports/fcpxml`,_t=async(e,t,r)=>{let n=o=>{if(!o)return{};if(o instanceof Headers)return Object.fromEntries(o.entries());if(Symbol.iterator in o)return Object.fromEntries(Array.from(o,i=>Array.from(i)));let s={};for(let[i,p]of Object.entries(o))p!==void 0&&(s[i]=p);return s};return a(Q(e),{...r,method:"POST",headers:{"Content-Type":"application/json",...n(r?.headers)},body:JSON.stringify(t)})},ee=e=>`/v1/projects/${e}/exports/premiere`,Ht=async(e,t,r)=>{let n=o=>{if(!o)return{};if(o instanceof Headers)return Object.fromEntries(o.entries());if(Symbol.iterator in o)return Object.fromEntries(Array.from(o,i=>Array.from(i)));let s={};for(let[i,p]of Object.entries(o))p!==void 0&&(s[i]=p);return s};return a(ee(e),{...r,method:"POST",headers:{"Content-Type":"application/json",...n(r?.headers)},body:JSON.stringify(t)})},te=e=>`/v1/projects/${e}/exports/videoClip`,Jt=async(e,t,r)=>{let n=o=>{if(!o)return{};if(o instanceof Headers)return Object.fromEntries(o.entries());if(Symbol.iterator in o)return Object.fromEntries(Array.from(o,i=>Array.from(i)));let s={};for(let[i,p]of Object.entries(o))p!==void 0&&(s[i]=p);return s};return a(te(e),{...r,method:"POST",headers:{"Content-Type":"application/json",...n(r?.headers)},body:JSON.stringify(t)})},re=(e,t)=>`/v1/projects/${e}/exports/${t}/retry`,Dt=async(e,t,r)=>a(re(e,t),{...r,method:"POST"}),oe=(e,t)=>`/v1/projects/${e}/exports/${t}`,Vt=async(e,t,r)=>a(oe(e,t),{...r,method:"GET"}),ne=(e,t)=>`/v1/projects/${e}/exports/${t}/cancel`,Wt=async(e,t,r)=>a(ne(e,t),{...r,method:"POST"});var ke={};y(ke,{analyzeTimeline:()=>Cr,analyzeTranscript:()=>Rr,cancelHostedProcessingRun:()=>rr,createMediaUpload:()=>nr,createUploadToken:()=>or,deleteMedia:()=>cr,finalizeMedia:()=>ir,generateMedia:()=>ar,getAnalyzeTimelineUrl:()=>Te,getAnalyzeTranscriptUrl:()=>Ee,getCancelHostedProcessingRunUrl:()=>de,getCreateMediaUploadUrl:()=>me,getCreateUploadTokenUrl:()=>fe,getDeleteMediaUrl:()=>xe,getFinalizeMediaUrl:()=>le,getGenerateMediaUrl:()=>ge,getGetHostedProcessingArtifactUrl:()=>ce,getGetHostedProcessingRunUrl:()=>pe,getGetMediaContextUrl:()=>Pe,getGetMediaDownloadUrlUrl:()=>Ce,getGetMediaTranscriptUrl:()=>be,getGetMediaUrl:()=>Re,getHostedProcessingArtifact:()=>tr,getHostedProcessingRun:()=>er,getImportMediaUrl:()=>ye,getListMediaFactsUrl:()=>ve,getListMediaUrl:()=>ue,getMedia:()=>dr,getMediaContext:()=>ur,getMediaDownloadUrl:()=>fr,getMediaTranscript:()=>mr,getPurchaseMediaFactUrl:()=>qe,getSearchLibraryUrl:()=>ie,getStartHostedProcessingRunUrl:()=>ae,getTriggerMatteBakeUrl:()=>he,getTriggerSubjectDetectionUrl:()=>Se,importMedia:()=>pr,listMedia:()=>sr,listMediaFacts:()=>yr,purchaseMediaFact:()=>xr,searchLibrary:()=>Zt,startHostedProcessingRun:()=>Qt,triggerMatteBake:()=>gr,triggerSubjectDetection:()=>lr});var ie=e=>{let t=new URLSearchParams;Object.entries(e||{}).forEach(([n,o])=>{let s=["mediaId"];if(Array.isArray(o)&&s.includes(n)){o.forEach(i=>{t.append(n,i===null?"null":String(i))});return}o!==void 0&&t.append(n,o===null?"null":String(o))});let r=t.toString();return r.length>0?`/v1/media/search?${r}`:"/v1/media/search"},Zt=async(e,t)=>a(ie(e),{...t,method:"GET"}),ae=e=>`/v1/media/${e}/processing-runs`,Qt=async(e,t,r)=>{let n=o=>{if(!o)return{};if(o instanceof Headers)return Object.fromEntries(o.entries());if(Symbol.iterator in o)return Object.fromEntries(Array.from(o,i=>Array.from(i)));let s={};for(let[i,p]of Object.entries(o))p!==void 0&&(s[i]=p);return s};return a(ae(e),{...r,method:"POST",headers:{"Content-Type":"application/json",...n(r?.headers)},body:JSON.stringify(t)})},pe=(e,t)=>`/v1/media/${e}/processing-runs/${t}`,er=async(e,t,r)=>a(pe(e,t),{...r,method:"GET"}),ce=(e,t,r)=>`/v1/media/${e}/processing-runs/${t}/artifacts/${r}`,tr=async(e,t,r,n)=>a(ce(e,t,r),{...n,method:"GET"}),de=(e,t)=>`/v1/media/${e}/processing-runs/${t}/cancel`,rr=async(e,t,r)=>a(de(e,t),{...r,method:"POST"}),fe=()=>"/v1/uploads/token",or=async(e,t)=>{let r=n=>{if(!n)return{};if(n instanceof Headers)return Object.fromEntries(n.entries());if(Symbol.iterator in n)return Object.fromEntries(Array.from(n,s=>Array.from(s)));let o={};for(let[s,i]of Object.entries(n))i!==void 0&&(o[s]=i);return o};return a(fe(),{...t,method:"POST",headers:{"Content-Type":"application/json",...r(t?.headers)},body:JSON.stringify(e)})},me=()=>"/v1/media",nr=async(e,t)=>{let r=n=>{if(!n)return{};if(n instanceof Headers)return Object.fromEntries(n.entries());if(Symbol.iterator in n)return Object.fromEntries(Array.from(n,s=>Array.from(s)));let o={};for(let[s,i]of Object.entries(n))i!==void 0&&(o[s]=i);return o};return a(me(),{...t,method:"POST",headers:{"Content-Type":"application/json",...r(t?.headers)},body:JSON.stringify(e)})},ue=e=>{let t=new URLSearchParams;Object.entries(e||{}).forEach(([n,o])=>{o!==void 0&&t.append(n,o===null?"null":String(o))});let r=t.toString();return r.length>0?`/v1/media?${r}`:"/v1/media"},sr=async(e,t)=>a(ue(e),{...t,method:"GET"}),le=e=>`/v1/media/${e}/finalize`,ir=async(e,t,r)=>{let n=o=>{if(!o)return{};if(o instanceof Headers)return Object.fromEntries(o.entries());if(Symbol.iterator in o)return Object.fromEntries(Array.from(o,i=>Array.from(i)));let s={};for(let[i,p]of Object.entries(o))p!==void 0&&(s[i]=p);return s};return a(le(e),{...r,method:"POST",headers:{"Content-Type":"application/json",...n(r?.headers)},body:JSON.stringify(t)})},ge=()=>"/v1/media/generate",ar=async(e,t)=>{let r=n=>{if(!n)return{};if(n instanceof Headers)return Object.fromEntries(n.entries());if(Symbol.iterator in n)return Object.fromEntries(Array.from(n,s=>Array.from(s)));let o={};for(let[s,i]of Object.entries(n))i!==void 0&&(o[s]=i);return o};return a(ge(),{...t,method:"POST",headers:{"Content-Type":"application/json",...r(t?.headers)},body:JSON.stringify(e)})},ye=()=>"/v1/media/import",pr=async(e,t)=>{let r=n=>{if(!n)return{};if(n instanceof Headers)return Object.fromEntries(n.entries());if(Symbol.iterator in n)return Object.fromEntries(Array.from(n,s=>Array.from(s)));let o={};for(let[s,i]of Object.entries(n))i!==void 0&&(o[s]=i);return o};return a(ye(),{...t,method:"POST",headers:{"Content-Type":"application/json",...r(t?.headers)},body:JSON.stringify(e)})},xe=e=>`/v1/media/${e}`,cr=async(e,t)=>a(xe(e),{...t,method:"DELETE"}),Re=(e,t)=>{let r=new URLSearchParams;Object.entries(t||{}).forEach(([o,s])=>{s!==void 0&&r.append(o,s===null?"null":String(s))});let n=r.toString();return n.length>0?`/v1/media/${e}?${n}`:`/v1/media/${e}`},dr=async(e,t,r)=>a(Re(e,t),{...r,method:"GET"}),Ce=(e,t)=>{let r=new URLSearchParams;Object.entries(t||{}).forEach(([o,s])=>{s!==void 0&&r.append(o,s===null?"null":String(s))});let n=r.toString();return n.length>0?`/v1/media/${e}/download-url?${n}`:`/v1/media/${e}/download-url`},fr=async(e,t,r)=>a(Ce(e,t),{...r,method:"GET"}),be=(e,t)=>{let r=new URLSearchParams;Object.entries(t||{}).forEach(([o,s])=>{s!==void 0&&r.append(o,s===null?"null":String(s))});let n=r.toString();return n.length>0?`/v1/media/${e}/transcript?${n}`:`/v1/media/${e}/transcript`},mr=async(e,t,r)=>a(be(e,t),{...r,method:"GET"}),Pe=(e,t)=>{let r=new URLSearchParams;Object.entries(t||{}).forEach(([o,s])=>{s!==void 0&&r.append(o,s===null?"null":String(s))});let n=r.toString();return n.length>0?`/v1/media/${e}/context?${n}`:`/v1/media/${e}/context`},ur=async(e,t,r)=>a(Pe(e,t),{...r,method:"GET"}),Se=(e,t)=>{let r=new URLSearchParams;Object.entries(t||{}).forEach(([o,s])=>{s!==void 0&&r.append(o,s===null?"null":String(s))});let n=r.toString();return n.length>0?`/v1/media/${e}/detect-subjects?${n}`:`/v1/media/${e}/detect-subjects`},lr=async(e,t,r)=>a(Se(e,t),{...r,method:"POST"}),he=e=>`/v1/media/${e}/matte`,gr=async(e,t,r)=>{let n=o=>{if(!o)return{};if(o instanceof Headers)return Object.fromEntries(o.entries());if(Symbol.iterator in o)return Object.fromEntries(Array.from(o,i=>Array.from(i)));let s={};for(let[i,p]of Object.entries(o))p!==void 0&&(s[i]=p);return s};return a(he(e),{...r,method:"POST",headers:{"Content-Type":"application/json",...n(r?.headers)},body:JSON.stringify(t)})},ve=(e,t)=>{let r=new URLSearchParams;Object.entries(t||{}).forEach(([o,s])=>{s!==void 0&&r.append(o,s===null?"null":String(s))});let n=r.toString();return n.length>0?`/v1/media/${e}/facts?${n}`:`/v1/media/${e}/facts`},yr=async(e,t,r)=>a(ve(e,t),{...r,method:"GET"}),qe=e=>`/v1/media/${e}/facts`,xr=async(e,t,r)=>{let n=o=>{if(!o)return{};if(o instanceof Headers)return Object.fromEntries(o.entries());if(Symbol.iterator in o)return Object.fromEntries(Array.from(o,i=>Array.from(i)));let s={};for(let[i,p]of Object.entries(o))p!==void 0&&(s[i]=p);return s};return a(qe(e),{...r,method:"POST",headers:{"Content-Type":"application/json",...n(r?.headers)},body:JSON.stringify(t)})},Ee=e=>`/v1/media/${e}/transcript/analyze`,Rr=async(e,t,r)=>{let n=o=>{if(!o)return{};if(o instanceof Headers)return Object.fromEntries(o.entries());if(Symbol.iterator in o)return Object.fromEntries(Array.from(o,i=>Array.from(i)));let s={};for(let[i,p]of Object.entries(o))p!==void 0&&(s[i]=p);return s};return a(Ee(e),{...r,method:"POST",headers:{"Content-Type":"application/json",...n(r?.headers)},body:JSON.stringify(t)})},Te=()=>"/v1/timeline-analysis",Cr=async(e,t)=>{let r=n=>{if(!n)return{};if(n instanceof Headers)return Object.fromEntries(n.entries());if(Symbol.iterator in n)return Object.fromEntries(Array.from(n,s=>Array.from(s)));let o={};for(let[s,i]of Object.entries(n))i!==void 0&&(o[s]=i);return o};return a(Te(),{...t,method:"POST",headers:{"Content-Type":"application/json",...r(t?.headers)},body:JSON.stringify(e)})};var Ue={};y(Ue,{createProject:()=>Pr,deleteProject:()=>vr,getCreateProjectUrl:()=>Ie,getDeleteProjectUrl:()=>we,getGetProjectContextUrl:()=>Me,getGetProjectUrl:()=>je,getListProjectsUrl:()=>Oe,getPatchProjectUrl:()=>Ae,getProject:()=>Sr,getProjectContext:()=>qr,listProjects:()=>br,patchProject:()=>hr});var Oe=e=>{let t=new URLSearchParams;Object.entries(e||{}).forEach(([n,o])=>{o!==void 0&&t.append(n,o===null?"null":String(o))});let r=t.toString();return r.length>0?`/v1/projects?${r}`:"/v1/projects"},br=async(e,t)=>a(Oe(e),{...t,method:"GET"}),Ie=()=>"/v1/projects",Pr=async(e,t)=>{let r=n=>{if(!n)return{};if(n instanceof Headers)return Object.fromEntries(n.entries());if(Symbol.iterator in n)return Object.fromEntries(Array.from(n,s=>Array.from(s)));let o={};for(let[s,i]of Object.entries(n))i!==void 0&&(o[s]=i);return o};return a(Ie(),{...t,method:"POST",headers:{"Content-Type":"application/json",...r(t?.headers)},body:JSON.stringify(e)})},je=e=>`/v1/projects/${e}`,Sr=async(e,t)=>a(je(e),{...t,method:"GET"}),Ae=e=>`/v1/projects/${e}`,hr=async(e,t,r)=>{let n=o=>{if(!o)return{};if(o instanceof Headers)return Object.fromEntries(o.entries());if(Symbol.iterator in o)return Object.fromEntries(Array.from(o,i=>Array.from(i)));let s={};for(let[i,p]of Object.entries(o))p!==void 0&&(s[i]=p);return s};return a(Ae(e),{...r,method:"PATCH",headers:{"Content-Type":"application/json",...n(r?.headers)},body:JSON.stringify(t)})},we=e=>`/v1/projects/${e}`,vr=async(e,t)=>a(we(e),{...t,method:"DELETE"}),Me=e=>`/v1/projects/${e}/context`,qr=async(e,t)=>a(Me(e),{...t,method:"GET"});var He={};y(He,{cancelRender:()=>Ir,createRender:()=>Er,getCancelRenderUrl:()=>Ge,getCreateRenderUrl:()=>Ke,getGetRenderUrl:()=>Le,getListProjectRendersUrl:()=>Be,getPreviewClipUrl:()=>Ne,getRefreshRenderUrlUrl:()=>Fe,getRender:()=>Or,getRetryRenderUrl:()=>$e,getStreamRenderUrl:()=>_e,listProjectRenders:()=>Tr,previewClip:()=>kr,refreshRenderUrl:()=>Ar,retryRender:()=>jr,streamRender:()=>wr});var Ke=e=>`/v1/projects/${e}/renders`,Er=async(e,t,r)=>{let n=o=>{if(!o)return{};if(o instanceof Headers)return Object.fromEntries(o.entries());if(Symbol.iterator in o)return Object.fromEntries(Array.from(o,i=>Array.from(i)));let s={};for(let[i,p]of Object.entries(o))p!==void 0&&(s[i]=p);return s};return a(Ke(e),{...r,method:"POST",headers:{"Content-Type":"application/json",...n(r?.headers)},body:JSON.stringify(t)})},Be=(e,t)=>{let r=new URLSearchParams;Object.entries(t||{}).forEach(([o,s])=>{s!==void 0&&r.append(o,s===null?"null":String(s))});let n=r.toString();return n.length>0?`/v1/projects/${e}/renders?${n}`:`/v1/projects/${e}/renders`},Tr=async(e,t,r)=>a(Be(e,t),{...r,method:"GET"}),Ne=e=>`/v1/projects/${e}/preview-clip`,kr=async(e,t,r)=>{let n=o=>{if(!o)return{};if(o instanceof Headers)return Object.fromEntries(o.entries());if(Symbol.iterator in o)return Object.fromEntries(Array.from(o,i=>Array.from(i)));let s={};for(let[i,p]of Object.entries(o))p!==void 0&&(s[i]=p);return s};return a(Ne(e),{...r,method:"POST",headers:{"Content-Type":"application/json",...n(r?.headers)},body:JSON.stringify(t)})},Le=(e,t)=>`/v1/projects/${e}/renders/${t}`,Or=async(e,t,r)=>a(Le(e,t),{...r,method:"GET"}),Ge=(e,t)=>`/v1/projects/${e}/renders/${t}/cancel`,Ir=async(e,t,r)=>a(Ge(e,t),{...r,method:"POST"}),$e=(e,t)=>`/v1/projects/${e}/renders/${t}/retry`,jr=async(e,t,r)=>a($e(e,t),{...r,method:"POST"}),Fe=(e,t)=>`/v1/projects/${e}/renders/${t}/refresh-url`,Ar=async(e,t,r)=>a(Fe(e,t),{...r,method:"POST"}),_e=(e,t)=>`/v1/projects/${e}/renders/${t}/stream`,wr=async(e,t,r)=>a(_e(e,t),{...r,method:"GET"});var Ze={};y(Ze,{cancelMuxJob:()=>Fr,createSession:()=>Br,deleteSession:()=>Lr,getCancelMuxJobUrl:()=>Ye,getCreateSessionUrl:()=>De,getDeleteSessionUrl:()=>We,getGetMuxJobUrl:()=>Xe,getGetSessionUrl:()=>Ve,getListSessionsUrl:()=>Je,getMuxJob:()=>$r,getSession:()=>Nr,getTriggerMuxJobUrl:()=>ze,listSessions:()=>Kr,triggerMuxJob:()=>Gr});var Je=e=>{let t=new URLSearchParams;Object.entries(e||{}).forEach(([n,o])=>{o!==void 0&&t.append(n,o===null?"null":String(o))});let r=t.toString();return r.length>0?`/v1/sessions?${r}`:"/v1/sessions"},Kr=async(e,t)=>a(Je(e),{...t,method:"GET"}),De=()=>"/v1/sessions",Br=async(e,t)=>{let r=n=>{if(!n)return{};if(n instanceof Headers)return Object.fromEntries(n.entries());if(Symbol.iterator in n)return Object.fromEntries(Array.from(n,s=>Array.from(s)));let o={};for(let[s,i]of Object.entries(n))i!==void 0&&(o[s]=i);return o};return a(De(),{...t,method:"POST",headers:{"Content-Type":"application/json",...r(t?.headers)},body:JSON.stringify(e)})},Ve=e=>`/v1/sessions/${e}`,Nr=async(e,t)=>a(Ve(e),{...t,method:"GET"}),We=e=>`/v1/sessions/${e}`,Lr=async(e,t)=>a(We(e),{...t,method:"DELETE"}),ze=e=>`/v1/sessions/${e}/mux-job`,Gr=async(e,t,r)=>{let n=o=>{if(!o)return{};if(o instanceof Headers)return Object.fromEntries(o.entries());if(Symbol.iterator in o)return Object.fromEntries(Array.from(o,i=>Array.from(i)));let s={};for(let[i,p]of Object.entries(o))p!==void 0&&(s[i]=p);return s};return a(ze(e),{...r,method:"POST",headers:{"Content-Type":"application/json",...n(r?.headers)},body:JSON.stringify(t)})},Xe=e=>`/v1/sessions/${e}/mux-job`,$r=async(e,t)=>a(Xe(e),{...t,method:"GET"}),Ye=e=>`/v1/sessions/${e}/mux-job/cancel`,Fr=async(e,t,r)=>{let n=o=>{if(!o)return{};if(o instanceof Headers)return Object.fromEntries(o.entries());if(Symbol.iterator in o)return Object.fromEntries(Array.from(o,i=>Array.from(i)));let s={};for(let[i,p]of Object.entries(o))p!==void 0&&(s[i]=p);return s};return a(Ye(e),{...r,method:"POST",headers:{"Content-Type":"application/json",...n(r?.headers)},body:JSON.stringify(t)})};var Ri={"16:9":"16:9","9:16":"9:16","1:1":"1:1","4:5":"4:5"};var bi={hd:"hd",fhd:"fhd","4k":"4k"};var ua={preview:"preview",final:"final"};var ga={interactive:"interactive",standard:"standard",background:"background"};var Qe=[3,4],Wr={version:4,componentId:"blank-component",template:`<template><div id="root" data-composition-id="blank-component" data-width="1920" data-height="1080" data-no-timeline data-composition-variables='[{"id":"background","type":"color","label":"Background","default":"#101014"}]'><div data-cf-scene></div></div><script>
|
|
8
|
+
`)}}async function*gt(e,t,r={}){let n=`/v1/projects/${encodeURIComponent(e)}/renders/${encodeURIComponent(t)}/stream`;for await(let o of ut(n,"iterRenderEvents",r)){let s=yt(o);s&&(yield s)}}function yt(e){let{event:t,data:r}=e;if(r===null||t!=="progress"&&t!=="complete"&&t!=="error")return null;let n;try{n=JSON.parse(r)}catch{return null}return{event:t,data:n}}var P={};y(P,{composeFromSuggestion:()=>ht,getComposeFromSuggestionUrl:()=>L,getListMediaSuggestionsUrl:()=>G,getResetMediaSuggestionsUrl:()=>F,getSuggestBriefsUrl:()=>$,listMediaSuggestions:()=>vt,resetMediaSuggestions:()=>Et,suggestBriefs:()=>qt});var L=e=>`/v1/projects/${e}/composition/from-suggestion`,ht=async(e,t,r)=>{let n=o=>{if(!o)return{};if(o instanceof Headers)return Object.fromEntries(o.entries());if(Symbol.iterator in o)return Object.fromEntries(Array.from(o,i=>Array.from(i)));let s={};for(let[i,p]of Object.entries(o))p!==void 0&&(s[i]=p);return s};return a(L(e),{...r,method:"POST",headers:{"Content-Type":"application/json",...n(r?.headers)},body:JSON.stringify(t)})},G=(e,t)=>{let r=new URLSearchParams;Object.entries(t||{}).forEach(([o,s])=>{s!==void 0&&r.append(o,s===null?"null":String(s))});let n=r.toString();return n.length>0?`/v1/media/${e}/suggestions?${n}`:`/v1/media/${e}/suggestions`},vt=async(e,t,r)=>a(G(e,t),{...r,method:"GET"}),$=e=>`/v1/media/${e}/suggestions`,qt=async(e,t)=>a($(e),{...t,method:"POST"}),F=e=>`/v1/media/${e}/suggestions`,Et=async(e,t)=>a(F(e),{...t,method:"DELETE"});var Z={};y(Z,{createComponent:()=>jt,getBlankComponentSource:()=>Tt,getComponent:()=>Mt,getComponentSource:()=>Ut,getCreateComponentUrl:()=>V,getGetBlankComponentSourceUrl:()=>H,getGetComponentSourceUrl:()=>Y,getGetComponentUrl:()=>X,getListCatalogUrl:()=>D,getPatchComponentUrl:()=>z,getRepinComponentUrl:()=>_,getResolveBuiltinComponentUrl:()=>J,getUpdateComponentUrl:()=>W,listCatalog:()=>Ot,patchComponent:()=>wt,repinComponent:()=>kt,resolveBuiltinComponent:()=>It,updateComponent:()=>At});var _=e=>`/v1/projects/${e}/components/native-upgrade`,kt=async(e,t,r)=>{let n=o=>{if(!o)return{};if(o instanceof Headers)return Object.fromEntries(o.entries());if(Symbol.iterator in o)return Object.fromEntries(Array.from(o,i=>Array.from(i)));let s={};for(let[i,p]of Object.entries(o))p!==void 0&&(s[i]=p);return s};return a(_(e),{...r,method:"POST",headers:{"Content-Type":"application/json",...n(r?.headers)},body:JSON.stringify(t)})},H=()=>"/v1/components/blank-source",Tt=async e=>a(H(),{...e,method:"GET"}),J=e=>{let t=new URLSearchParams;Object.entries(e||{}).forEach(([n,o])=>{o!==void 0&&t.append(n,o===null?"null":String(o))});let r=t.toString();return r.length>0?`/v1/components/builtin/resolve?${r}`:"/v1/components/builtin/resolve"},It=async(e,t)=>a(J(e),{...t,method:"GET"}),D=e=>{let t=new URLSearchParams;Object.entries(e||{}).forEach(([n,o])=>{o!==void 0&&t.append(n,o===null?"null":String(o))});let r=t.toString();return r.length>0?`/v1/components?${r}`:"/v1/components"},Ot=async(e,t)=>a(D(e),{...t,method:"GET"}),V=()=>"/v1/components",jt=async(e,t)=>{let r=n=>{if(!n)return{};if(n instanceof Headers)return Object.fromEntries(n.entries());if(Symbol.iterator in n)return Object.fromEntries(Array.from(n,s=>Array.from(s)));let o={};for(let[s,i]of Object.entries(n))i!==void 0&&(o[s]=i);return o};return a(V(),{...t,method:"POST",headers:{"Content-Type":"application/json",...r(t?.headers)},body:JSON.stringify(e)})},W=e=>`/v1/components/${e}`,At=async(e,t,r)=>{let n=o=>{if(!o)return{};if(o instanceof Headers)return Object.fromEntries(o.entries());if(Symbol.iterator in o)return Object.fromEntries(Array.from(o,i=>Array.from(i)));let s={};for(let[i,p]of Object.entries(o))p!==void 0&&(s[i]=p);return s};return a(W(e),{...r,method:"PUT",headers:{"Content-Type":"application/json",...n(r?.headers)},body:JSON.stringify(t)})},z=e=>`/v1/components/${e}`,wt=async(e,t,r)=>{let n=o=>{if(!o)return{};if(o instanceof Headers)return Object.fromEntries(o.entries());if(Symbol.iterator in o)return Object.fromEntries(Array.from(o,i=>Array.from(i)));let s={};for(let[i,p]of Object.entries(o))p!==void 0&&(s[i]=p);return s};return a(z(e),{...r,method:"PATCH",headers:{"Content-Type":"application/json",...n(r?.headers)},body:JSON.stringify(t)})},X=e=>`/v1/components/${e}`,Mt=async(e,t)=>a(X(e),{...t,method:"GET"}),Y=(e,t)=>{let r=new URLSearchParams;Object.entries(t||{}).forEach(([o,s])=>{s!==void 0&&r.append(o,s===null?"null":String(s))});let n=r.toString();return n.length>0?`/v1/components/${e}/source?${n}`:`/v1/components/${e}/source`},Ut=async(e,t,r)=>a(Y(e,t),{...r,method:"GET"});var se={};y(se,{cancelExport:()=>Wt,createFcpxmlExport:()=>_t,createPremiereExport:()=>Ht,createVideoClipExport:()=>Jt,getCancelExportUrl:()=>ne,getCreateFcpxmlExportUrl:()=>Q,getCreatePremiereExportUrl:()=>ee,getCreateVideoClipExportUrl:()=>te,getExport:()=>Vt,getGetExportUrl:()=>oe,getRetryExportUrl:()=>re,retryExport:()=>Dt});var Q=e=>`/v1/projects/${e}/exports/fcpxml`,_t=async(e,t,r)=>{let n=o=>{if(!o)return{};if(o instanceof Headers)return Object.fromEntries(o.entries());if(Symbol.iterator in o)return Object.fromEntries(Array.from(o,i=>Array.from(i)));let s={};for(let[i,p]of Object.entries(o))p!==void 0&&(s[i]=p);return s};return a(Q(e),{...r,method:"POST",headers:{"Content-Type":"application/json",...n(r?.headers)},body:JSON.stringify(t)})},ee=e=>`/v1/projects/${e}/exports/premiere`,Ht=async(e,t,r)=>{let n=o=>{if(!o)return{};if(o instanceof Headers)return Object.fromEntries(o.entries());if(Symbol.iterator in o)return Object.fromEntries(Array.from(o,i=>Array.from(i)));let s={};for(let[i,p]of Object.entries(o))p!==void 0&&(s[i]=p);return s};return a(ee(e),{...r,method:"POST",headers:{"Content-Type":"application/json",...n(r?.headers)},body:JSON.stringify(t)})},te=e=>`/v1/projects/${e}/exports/videoClip`,Jt=async(e,t,r)=>{let n=o=>{if(!o)return{};if(o instanceof Headers)return Object.fromEntries(o.entries());if(Symbol.iterator in o)return Object.fromEntries(Array.from(o,i=>Array.from(i)));let s={};for(let[i,p]of Object.entries(o))p!==void 0&&(s[i]=p);return s};return a(te(e),{...r,method:"POST",headers:{"Content-Type":"application/json",...n(r?.headers)},body:JSON.stringify(t)})},re=(e,t)=>`/v1/projects/${e}/exports/${t}/retry`,Dt=async(e,t,r)=>a(re(e,t),{...r,method:"POST"}),oe=(e,t)=>`/v1/projects/${e}/exports/${t}`,Vt=async(e,t,r)=>a(oe(e,t),{...r,method:"GET"}),ne=(e,t)=>`/v1/projects/${e}/exports/${t}/cancel`,Wt=async(e,t,r)=>a(ne(e,t),{...r,method:"POST"});var Te={};y(Te,{analyzeTimeline:()=>Cr,analyzeTranscript:()=>Rr,cancelHostedProcessingRun:()=>rr,createMediaUpload:()=>nr,createUploadToken:()=>or,deleteMedia:()=>cr,finalizeMedia:()=>ir,generateMedia:()=>ar,getAnalyzeTimelineUrl:()=>ke,getAnalyzeTranscriptUrl:()=>Ee,getCancelHostedProcessingRunUrl:()=>de,getCreateMediaUploadUrl:()=>me,getCreateUploadTokenUrl:()=>fe,getDeleteMediaUrl:()=>xe,getFinalizeMediaUrl:()=>le,getGenerateMediaUrl:()=>ge,getGetHostedProcessingArtifactUrl:()=>ce,getGetHostedProcessingRunUrl:()=>pe,getGetMediaContextUrl:()=>Pe,getGetMediaDownloadUrlUrl:()=>Ce,getGetMediaTranscriptUrl:()=>be,getGetMediaUrl:()=>Re,getHostedProcessingArtifact:()=>tr,getHostedProcessingRun:()=>er,getImportMediaUrl:()=>ye,getListMediaFactsUrl:()=>ve,getListMediaUrl:()=>ue,getMedia:()=>dr,getMediaContext:()=>ur,getMediaDownloadUrl:()=>fr,getMediaTranscript:()=>mr,getPurchaseMediaFactUrl:()=>qe,getSearchLibraryUrl:()=>ie,getStartHostedProcessingRunUrl:()=>ae,getTriggerMatteBakeUrl:()=>he,getTriggerSubjectDetectionUrl:()=>Se,importMedia:()=>pr,listMedia:()=>sr,listMediaFacts:()=>yr,purchaseMediaFact:()=>xr,searchLibrary:()=>Zt,startHostedProcessingRun:()=>Qt,triggerMatteBake:()=>gr,triggerSubjectDetection:()=>lr});var ie=e=>{let t=new URLSearchParams;Object.entries(e||{}).forEach(([n,o])=>{let s=["mediaId"];if(Array.isArray(o)&&s.includes(n)){o.forEach(i=>{t.append(n,i===null?"null":String(i))});return}o!==void 0&&t.append(n,o===null?"null":String(o))});let r=t.toString();return r.length>0?`/v1/media/search?${r}`:"/v1/media/search"},Zt=async(e,t)=>a(ie(e),{...t,method:"GET"}),ae=e=>`/v1/media/${e}/processing-runs`,Qt=async(e,t,r)=>{let n=o=>{if(!o)return{};if(o instanceof Headers)return Object.fromEntries(o.entries());if(Symbol.iterator in o)return Object.fromEntries(Array.from(o,i=>Array.from(i)));let s={};for(let[i,p]of Object.entries(o))p!==void 0&&(s[i]=p);return s};return a(ae(e),{...r,method:"POST",headers:{"Content-Type":"application/json",...n(r?.headers)},body:JSON.stringify(t)})},pe=(e,t)=>`/v1/media/${e}/processing-runs/${t}`,er=async(e,t,r)=>a(pe(e,t),{...r,method:"GET"}),ce=(e,t,r)=>`/v1/media/${e}/processing-runs/${t}/artifacts/${r}`,tr=async(e,t,r,n)=>a(ce(e,t,r),{...n,method:"GET"}),de=(e,t)=>`/v1/media/${e}/processing-runs/${t}/cancel`,rr=async(e,t,r)=>a(de(e,t),{...r,method:"POST"}),fe=()=>"/v1/uploads/token",or=async(e,t)=>{let r=n=>{if(!n)return{};if(n instanceof Headers)return Object.fromEntries(n.entries());if(Symbol.iterator in n)return Object.fromEntries(Array.from(n,s=>Array.from(s)));let o={};for(let[s,i]of Object.entries(n))i!==void 0&&(o[s]=i);return o};return a(fe(),{...t,method:"POST",headers:{"Content-Type":"application/json",...r(t?.headers)},body:JSON.stringify(e)})},me=()=>"/v1/media",nr=async(e,t)=>{let r=n=>{if(!n)return{};if(n instanceof Headers)return Object.fromEntries(n.entries());if(Symbol.iterator in n)return Object.fromEntries(Array.from(n,s=>Array.from(s)));let o={};for(let[s,i]of Object.entries(n))i!==void 0&&(o[s]=i);return o};return a(me(),{...t,method:"POST",headers:{"Content-Type":"application/json",...r(t?.headers)},body:JSON.stringify(e)})},ue=e=>{let t=new URLSearchParams;Object.entries(e||{}).forEach(([n,o])=>{o!==void 0&&t.append(n,o===null?"null":String(o))});let r=t.toString();return r.length>0?`/v1/media?${r}`:"/v1/media"},sr=async(e,t)=>a(ue(e),{...t,method:"GET"}),le=e=>`/v1/media/${e}/finalize`,ir=async(e,t,r)=>{let n=o=>{if(!o)return{};if(o instanceof Headers)return Object.fromEntries(o.entries());if(Symbol.iterator in o)return Object.fromEntries(Array.from(o,i=>Array.from(i)));let s={};for(let[i,p]of Object.entries(o))p!==void 0&&(s[i]=p);return s};return a(le(e),{...r,method:"POST",headers:{"Content-Type":"application/json",...n(r?.headers)},body:JSON.stringify(t)})},ge=()=>"/v1/media/generate",ar=async(e,t)=>{let r=n=>{if(!n)return{};if(n instanceof Headers)return Object.fromEntries(n.entries());if(Symbol.iterator in n)return Object.fromEntries(Array.from(n,s=>Array.from(s)));let o={};for(let[s,i]of Object.entries(n))i!==void 0&&(o[s]=i);return o};return a(ge(),{...t,method:"POST",headers:{"Content-Type":"application/json",...r(t?.headers)},body:JSON.stringify(e)})},ye=()=>"/v1/media/import",pr=async(e,t)=>{let r=n=>{if(!n)return{};if(n instanceof Headers)return Object.fromEntries(n.entries());if(Symbol.iterator in n)return Object.fromEntries(Array.from(n,s=>Array.from(s)));let o={};for(let[s,i]of Object.entries(n))i!==void 0&&(o[s]=i);return o};return a(ye(),{...t,method:"POST",headers:{"Content-Type":"application/json",...r(t?.headers)},body:JSON.stringify(e)})},xe=e=>`/v1/media/${e}`,cr=async(e,t)=>a(xe(e),{...t,method:"DELETE"}),Re=(e,t)=>{let r=new URLSearchParams;Object.entries(t||{}).forEach(([o,s])=>{s!==void 0&&r.append(o,s===null?"null":String(s))});let n=r.toString();return n.length>0?`/v1/media/${e}?${n}`:`/v1/media/${e}`},dr=async(e,t,r)=>a(Re(e,t),{...r,method:"GET"}),Ce=(e,t)=>{let r=new URLSearchParams;Object.entries(t||{}).forEach(([o,s])=>{s!==void 0&&r.append(o,s===null?"null":String(s))});let n=r.toString();return n.length>0?`/v1/media/${e}/download-url?${n}`:`/v1/media/${e}/download-url`},fr=async(e,t,r)=>a(Ce(e,t),{...r,method:"GET"}),be=(e,t)=>{let r=new URLSearchParams;Object.entries(t||{}).forEach(([o,s])=>{s!==void 0&&r.append(o,s===null?"null":String(s))});let n=r.toString();return n.length>0?`/v1/media/${e}/transcript?${n}`:`/v1/media/${e}/transcript`},mr=async(e,t,r)=>a(be(e,t),{...r,method:"GET"}),Pe=(e,t)=>{let r=new URLSearchParams;Object.entries(t||{}).forEach(([o,s])=>{s!==void 0&&r.append(o,s===null?"null":String(s))});let n=r.toString();return n.length>0?`/v1/media/${e}/context?${n}`:`/v1/media/${e}/context`},ur=async(e,t,r)=>a(Pe(e,t),{...r,method:"GET"}),Se=(e,t)=>{let r=new URLSearchParams;Object.entries(t||{}).forEach(([o,s])=>{s!==void 0&&r.append(o,s===null?"null":String(s))});let n=r.toString();return n.length>0?`/v1/media/${e}/detect-subjects?${n}`:`/v1/media/${e}/detect-subjects`},lr=async(e,t,r)=>a(Se(e,t),{...r,method:"POST"}),he=e=>`/v1/media/${e}/matte`,gr=async(e,t,r)=>{let n=o=>{if(!o)return{};if(o instanceof Headers)return Object.fromEntries(o.entries());if(Symbol.iterator in o)return Object.fromEntries(Array.from(o,i=>Array.from(i)));let s={};for(let[i,p]of Object.entries(o))p!==void 0&&(s[i]=p);return s};return a(he(e),{...r,method:"POST",headers:{"Content-Type":"application/json",...n(r?.headers)},body:JSON.stringify(t)})},ve=(e,t)=>{let r=new URLSearchParams;Object.entries(t||{}).forEach(([o,s])=>{s!==void 0&&r.append(o,s===null?"null":String(s))});let n=r.toString();return n.length>0?`/v1/media/${e}/facts?${n}`:`/v1/media/${e}/facts`},yr=async(e,t,r)=>a(ve(e,t),{...r,method:"GET"}),qe=e=>`/v1/media/${e}/facts`,xr=async(e,t,r)=>{let n=o=>{if(!o)return{};if(o instanceof Headers)return Object.fromEntries(o.entries());if(Symbol.iterator in o)return Object.fromEntries(Array.from(o,i=>Array.from(i)));let s={};for(let[i,p]of Object.entries(o))p!==void 0&&(s[i]=p);return s};return a(qe(e),{...r,method:"POST",headers:{"Content-Type":"application/json",...n(r?.headers)},body:JSON.stringify(t)})},Ee=e=>`/v1/media/${e}/transcript/analyze`,Rr=async(e,t,r)=>{let n=o=>{if(!o)return{};if(o instanceof Headers)return Object.fromEntries(o.entries());if(Symbol.iterator in o)return Object.fromEntries(Array.from(o,i=>Array.from(i)));let s={};for(let[i,p]of Object.entries(o))p!==void 0&&(s[i]=p);return s};return a(Ee(e),{...r,method:"POST",headers:{"Content-Type":"application/json",...n(r?.headers)},body:JSON.stringify(t)})},ke=()=>"/v1/timeline-analysis",Cr=async(e,t)=>{let r=n=>{if(!n)return{};if(n instanceof Headers)return Object.fromEntries(n.entries());if(Symbol.iterator in n)return Object.fromEntries(Array.from(n,s=>Array.from(s)));let o={};for(let[s,i]of Object.entries(n))i!==void 0&&(o[s]=i);return o};return a(ke(),{...t,method:"POST",headers:{"Content-Type":"application/json",...r(t?.headers)},body:JSON.stringify(e)})};var Ue={};y(Ue,{createProject:()=>Pr,deleteProject:()=>vr,getCreateProjectUrl:()=>Oe,getDeleteProjectUrl:()=>we,getGetProjectContextUrl:()=>Me,getGetProjectUrl:()=>je,getListProjectsUrl:()=>Ie,getPatchProjectUrl:()=>Ae,getProject:()=>Sr,getProjectContext:()=>qr,listProjects:()=>br,patchProject:()=>hr});var Ie=e=>{let t=new URLSearchParams;Object.entries(e||{}).forEach(([n,o])=>{o!==void 0&&t.append(n,o===null?"null":String(o))});let r=t.toString();return r.length>0?`/v1/projects?${r}`:"/v1/projects"},br=async(e,t)=>a(Ie(e),{...t,method:"GET"}),Oe=()=>"/v1/projects",Pr=async(e,t)=>{let r=n=>{if(!n)return{};if(n instanceof Headers)return Object.fromEntries(n.entries());if(Symbol.iterator in n)return Object.fromEntries(Array.from(n,s=>Array.from(s)));let o={};for(let[s,i]of Object.entries(n))i!==void 0&&(o[s]=i);return o};return a(Oe(),{...t,method:"POST",headers:{"Content-Type":"application/json",...r(t?.headers)},body:JSON.stringify(e)})},je=e=>`/v1/projects/${e}`,Sr=async(e,t)=>a(je(e),{...t,method:"GET"}),Ae=e=>`/v1/projects/${e}`,hr=async(e,t,r)=>{let n=o=>{if(!o)return{};if(o instanceof Headers)return Object.fromEntries(o.entries());if(Symbol.iterator in o)return Object.fromEntries(Array.from(o,i=>Array.from(i)));let s={};for(let[i,p]of Object.entries(o))p!==void 0&&(s[i]=p);return s};return a(Ae(e),{...r,method:"PATCH",headers:{"Content-Type":"application/json",...n(r?.headers)},body:JSON.stringify(t)})},we=e=>`/v1/projects/${e}`,vr=async(e,t)=>a(we(e),{...t,method:"DELETE"}),Me=e=>`/v1/projects/${e}/context`,qr=async(e,t)=>a(Me(e),{...t,method:"GET"});var He={};y(He,{cancelRender:()=>Or,createRender:()=>Er,getCancelRenderUrl:()=>Ge,getCreateRenderUrl:()=>Ke,getGetRenderUrl:()=>Le,getListProjectRendersUrl:()=>Be,getPreviewClipUrl:()=>Ne,getRefreshRenderUrlUrl:()=>Fe,getRender:()=>Ir,getRetryRenderUrl:()=>$e,getStreamRenderUrl:()=>_e,listProjectRenders:()=>kr,previewClip:()=>Tr,refreshRenderUrl:()=>Ar,retryRender:()=>jr,streamRender:()=>wr});var Ke=e=>`/v1/projects/${e}/renders`,Er=async(e,t,r)=>{let n=o=>{if(!o)return{};if(o instanceof Headers)return Object.fromEntries(o.entries());if(Symbol.iterator in o)return Object.fromEntries(Array.from(o,i=>Array.from(i)));let s={};for(let[i,p]of Object.entries(o))p!==void 0&&(s[i]=p);return s};return a(Ke(e),{...r,method:"POST",headers:{"Content-Type":"application/json",...n(r?.headers)},body:JSON.stringify(t)})},Be=(e,t)=>{let r=new URLSearchParams;Object.entries(t||{}).forEach(([o,s])=>{s!==void 0&&r.append(o,s===null?"null":String(s))});let n=r.toString();return n.length>0?`/v1/projects/${e}/renders?${n}`:`/v1/projects/${e}/renders`},kr=async(e,t,r)=>a(Be(e,t),{...r,method:"GET"}),Ne=e=>`/v1/projects/${e}/preview-clip`,Tr=async(e,t,r)=>{let n=o=>{if(!o)return{};if(o instanceof Headers)return Object.fromEntries(o.entries());if(Symbol.iterator in o)return Object.fromEntries(Array.from(o,i=>Array.from(i)));let s={};for(let[i,p]of Object.entries(o))p!==void 0&&(s[i]=p);return s};return a(Ne(e),{...r,method:"POST",headers:{"Content-Type":"application/json",...n(r?.headers)},body:JSON.stringify(t)})},Le=(e,t)=>`/v1/projects/${e}/renders/${t}`,Ir=async(e,t,r)=>a(Le(e,t),{...r,method:"GET"}),Ge=(e,t)=>`/v1/projects/${e}/renders/${t}/cancel`,Or=async(e,t,r)=>a(Ge(e,t),{...r,method:"POST"}),$e=(e,t)=>`/v1/projects/${e}/renders/${t}/retry`,jr=async(e,t,r)=>a($e(e,t),{...r,method:"POST"}),Fe=(e,t)=>`/v1/projects/${e}/renders/${t}/refresh-url`,Ar=async(e,t,r)=>a(Fe(e,t),{...r,method:"POST"}),_e=(e,t)=>`/v1/projects/${e}/renders/${t}/stream`,wr=async(e,t,r)=>a(_e(e,t),{...r,method:"GET"});var Ze={};y(Ze,{cancelMuxJob:()=>$r,createSession:()=>Kr,deleteSession:()=>Nr,getCancelMuxJobUrl:()=>Ye,getCreateSessionUrl:()=>De,getDeleteSessionUrl:()=>We,getGetMuxJobUrl:()=>Xe,getGetSessionUrl:()=>Ve,getListSessionsUrl:()=>Je,getMuxJob:()=>Gr,getSession:()=>Br,getTriggerMuxJobUrl:()=>ze,listSessions:()=>Ur,triggerMuxJob:()=>Lr});var Je=e=>{let t=new URLSearchParams;Object.entries(e||{}).forEach(([n,o])=>{o!==void 0&&t.append(n,o===null?"null":String(o))});let r=t.toString();return r.length>0?`/v1/sessions?${r}`:"/v1/sessions"},Ur=async(e,t)=>a(Je(e),{...t,method:"GET"}),De=()=>"/v1/sessions",Kr=async(e,t)=>{let r=n=>{if(!n)return{};if(n instanceof Headers)return Object.fromEntries(n.entries());if(Symbol.iterator in n)return Object.fromEntries(Array.from(n,s=>Array.from(s)));let o={};for(let[s,i]of Object.entries(n))i!==void 0&&(o[s]=i);return o};return a(De(),{...t,method:"POST",headers:{"Content-Type":"application/json",...r(t?.headers)},body:JSON.stringify(e)})},Ve=e=>`/v1/sessions/${e}`,Br=async(e,t)=>a(Ve(e),{...t,method:"GET"}),We=e=>`/v1/sessions/${e}`,Nr=async(e,t)=>a(We(e),{...t,method:"DELETE"}),ze=e=>`/v1/sessions/${e}/mux-job`,Lr=async(e,t,r)=>{let n=o=>{if(!o)return{};if(o instanceof Headers)return Object.fromEntries(o.entries());if(Symbol.iterator in o)return Object.fromEntries(Array.from(o,i=>Array.from(i)));let s={};for(let[i,p]of Object.entries(o))p!==void 0&&(s[i]=p);return s};return a(ze(e),{...r,method:"POST",headers:{"Content-Type":"application/json",...n(r?.headers)},body:JSON.stringify(t)})},Xe=e=>`/v1/sessions/${e}/mux-job`,Gr=async(e,t)=>a(Xe(e),{...t,method:"GET"}),Ye=e=>`/v1/sessions/${e}/mux-job/cancel`,$r=async(e,t,r)=>{let n=o=>{if(!o)return{};if(o instanceof Headers)return Object.fromEntries(o.entries());if(Symbol.iterator in o)return Object.fromEntries(Array.from(o,i=>Array.from(i)));let s={};for(let[i,p]of Object.entries(o))p!==void 0&&(s[i]=p);return s};return a(Ye(e),{...r,method:"POST",headers:{"Content-Type":"application/json",...n(r?.headers)},body:JSON.stringify(t)})};var Ci={"16:9":"16:9","9:16":"9:16","1:1":"1:1","4:5":"4:5"};var Pi={hd:"hd",fhd:"fhd","4k":"4k"};var la={preview:"preview",final:"final"};var ya={interactive:"interactive",standard:"standard",background:"background"};var Qe=[3,4],Vr={version:4,componentId:"blank-component",template:`<template><div id="root" data-composition-id="blank-component" data-width="1920" data-height="1080" data-no-timeline data-composition-variables='[{"id":"background","type":"color","label":"Background","default":"#101014"}]'><div data-cf-scene></div></div><script>
|
|
9
9
|
const { h, MediaTileScene } = __cfScene;
|
|
10
10
|
function Blank({ params }) {
|
|
11
11
|
return h(MediaTileScene, { streams: {}, tiles: [], background: params.background ?? '#101014' });
|
|
12
12
|
}
|
|
13
13
|
__cfScene.mount({ root: document.getElementById('root'), component: Blank, variables: __hyperframes.getVariables() });
|
|
14
|
-
</script></template>`,manifest:{version:4,runtime:"hyperframes",hfContract:1,kind:"scene",assets:{},graphics:{api:"webgl2",required:!0,accelerationPreference:"software-allowed"},alphaPolicy:"allows-opaque"},definition:{inputSchema:{type:"object",additionalProperties:!1,properties:{background:{type:"string",pattern:"^#[0-9a-fA-F]{6}$",default:"#101014",title:"Background"}}},defaults:{},brandBindings:[],timing:{defaultDuration:{frames:90,fps:30}},capabilities:[{kind:"clip"}]}};function
|
|
15
|
-
\u2192 ${r}`:t}import
|
|
16
|
-
`)}function K(e,t,r,n){e.json&&U(e,t,r,n)}function
|
|
17
|
-
Run \`cueframe clips ${e}\` to check results.`);return}let o=M("Waiting for analysis to complete\u2026",t.json),s=Date.now();for(;;){await new Promise(i=>setTimeout(i,
|
|
18
|
-
${c+1}. ${m.title} (${m.id})`),console.log(` ${m.trim.start.toFixed(1)}s \u2013 ${m.trim.end.toFixed(1)}s (${d}s) score: ${m.score}`),console.log(` ${m.reason}`)});return}let p=Math.round((Date.now()-s)/1e3);o.text=`Waiting for analysis\u2026 (${p}s)`,C(t,"analyze_progress",{mediaItemId:e,elapsedSec:p})}catch{}}}export{u as a,
|
|
14
|
+
</script></template>`,manifest:{version:4,runtime:"hyperframes",hfContract:1,kind:"scene",assets:{},graphics:{api:"webgl2",required:!0,accelerationPreference:"software-allowed"},alphaPolicy:"allows-opaque"},definition:{inputSchema:{type:"object",additionalProperties:!1,properties:{background:{type:"string",pattern:"^#[0-9a-fA-F]{6}$",default:"#101014",title:"Background"}}},defaults:{},brandBindings:[],timing:{defaultDuration:{frames:90,fps:30}},capabilities:[{kind:"clip"}]}};function Wr(e){return e.replace(/^W\//,"").replace(/-gzip(?=("?)$)/,"")}var E="X-CueFrame-Client";var zr=/^[A-Za-z0-9][A-Za-z0-9._+-]{0,31}$/,Xr=["web","console","clips"];function Yr(e,t){return Xr.includes(e)===(t==="browser")}function et(e){if(!zr.test(e.version))throw new Error(`${E} cannot carry the version ${JSON.stringify(e.version)}.`);if(!Yr(e.surface,e.os))throw new Error(`${E} cannot carry ${e.surface} on ${e.os}.`);return`${e.surface}/${e.version}/${e.os}`}function tt(e){return e==="darwin"?"macos":e==="win32"?"windows":e==="linux"?"linux":"unknown"}import{readFileSync as Zr,writeFileSync as Qr,mkdirSync as eo,existsSync as to}from"fs";import{join as rt}from"path";import{homedir as ro}from"os";var f={Success:0,UserError:2,ApiClientError:3,ApiServerError:4,NetworkError:5,PaymentRequired:6};function w(e){if(e instanceof u){if(e.status===402)return f.PaymentRequired;if(e.status>=500)return f.ApiServerError;if(e.status>=400)return f.ApiClientError}let t=e?.exitCode;return typeof t=="number"?t:f.NetworkError}function xv(e){return e===402?f.PaymentRequired:e>=500?f.ApiServerError:e>=400?f.ApiClientError:f.Success}function S(e){process.exit(e)}var ot=rt(ro(),".cueframe"),k=rt(ot,"auth.json"),R={local:"http://127.0.0.1:3211",prod:"https://api.cueframe.ai"},oo="prod";function hv(e=oo){return process.env.CUEFRAME_API_URL??R[e]??R.prod}var h=class extends Error{constructor(r,n){super(n);this.code=r;this.name="AuthStoreError"}code;exitCode=f.UserError};function vv(e){if(!/^cf_(?:live|test)_[A-Za-z0-9_-]{8,}$/.test(e))throw new h("auth_invalid","Invalid API key. Expected a key beginning with cf_live_ or cf_test_.")}function nt(){if(!to(k))return{targets:{}};let e=Zr(k,"utf-8");try{return JSON.parse(e)}catch{throw new h("auth_config_corrupt",`${k} is corrupt and cannot be parsed. Delete it and re-run \`cueframe login\`.`)}}function no(e){eo(ot,{recursive:!0,mode:448}),Qr(k,JSON.stringify(e,null,2),{mode:384})}function qv(e,t="prod",r){let n=nt(),o=R[t]??R.prod;n.targets[t]={apiKey:e,apiUrl:r??o},no(n)}function st(e="prod"){let t=process.env.CUEFRAME_API_KEY,r=process.env.CUEFRAME_API_URL;if(t)return{apiKey:t,apiUrl:r??R[e]??R.prod};let o=nt().targets[e];if(!o)throw new h("auth_missing",`No auth configured for target "${e}". Run \`cueframe login --target ${e}\` (browser sign-in) or \`cueframe auth <api-key> --target ${e}\` (CI / headless).`);return o}function so(){return{[E]:et({surface:"cli",version:"0.11.4",os:tt(process.platform)})}}function it(e,t={}){let{apiKey:r,apiUrl:n}=st(e);I({baseUrl:n,apiKey:r,headers:so(),...t})}function T(e){let t=e instanceof u?`${e.message} (${e.code}${e.status?`, ${e.status}`:""})`:e instanceof Error?e.message:String(e),r=A(e);return r?`${t}
|
|
15
|
+
\u2192 ${r}`:t}import io from"ora";import ao from"pino";var po="v1",at=ao({level:"trace",base:{schemaVersion:po},messageKey:"event",timestamp:()=>`,"ts":${Date.now()}`,formatters:{level:()=>({_:0})}});function M(e,t){return io({text:e,isSilent:!!t}).start()}function C(e,t,r={}){e.json&&at.info(r,t)}function Mv(e,t,r){if(e.json){console.log(JSON.stringify(t,null,2));return}r()}function U(e,t,r,n){let o=r instanceof Error?r.message:String(r),s=typeof r?.code=="string"?r.code:void 0,i=r?.status;e.json?at.info({phase:t,message:o,...s?{code:s}:{},...typeof i=="number"?{status:i}:{},exitCode:n},"error"):process.stderr.write(`\u2716 ${t}: ${T(r)}
|
|
16
|
+
`)}function K(e,t,r,n){e.json&&U(e,t,r,n)}function Uv(e,t){t.json||console.log(e)}function co(e){for(let t=0;t<e.length;t++){let r=e.charCodeAt(t);if(r<=31||r===127)return!0}return!1}function ct(e,t,r){e.length===0&&pt(`${t} is empty.`,r),co(e)&&pt(`${t} contains a control character (newline, tab, or null byte). Identifiers must be plain text \u2014 check for a stray copy-paste artifact.`,r)}function pt(e,t){U(t,"preflight",new Error(e),f.UserError),S(f.UserError)}var fo=5e3,B=300*1e3;async function Jv(e,t){if(ct(e,"mediaItemId",t),t.dryRun){C(t,"analyze_dry_run",{mediaItemId:e,target:t.target,wait:!!t.wait,wouldCall:"POST /v1/media/:id/suggestions"}),t.json||console.log(`[dry-run] Would trigger clip analysis for ${e} on ${t.target}.`);return}it(t.target),C(t,"analyze_prepare",{mediaItemId:e,target:t.target,wait:!!t.wait});let r=M("Triggering clip analysis\u2026",t.json),n;try{n=await P.suggestBriefs(e),r.succeed(`Analysis ${n.alreadyRunning?"already running":"started"}`)}catch(i){r.fail(`Failed to start analysis: ${T(i)}`),K(t,"analyze_prepare",i,w(i)),S(w(i))}if(C(t,"analyze_ready",{mediaItemId:e,status:n.status,alreadyRunning:!!n.alreadyRunning}),!t.wait){t.json||console.log(`
|
|
17
|
+
Run \`cueframe clips ${e}\` to check results.`);return}let o=M("Waiting for analysis to complete\u2026",t.json),s=Date.now();for(;;){await new Promise(i=>setTimeout(i,fo)),Date.now()-s>B&&(o.fail(`Timed out after ${Math.round(B/1e3)}s. Run \`cueframe clips ${e}\` to check later.`),K(t,"analyze_progress",new Error(`Analysis did not complete within ${Math.round(B/1e3)}s`),f.UserError),S(f.UserError));try{let i=await P.listMediaSuggestions(e);if(i.suggestions.length>0){o.succeed(`Analysis complete \u2014 ${i.suggestions.length} clips found`),C(t,"analyze_complete",{mediaItemId:e,durationMs:Date.now()-s,suggestionCount:i.suggestions.length,suggestions:i.suggestions}),t.json||i.suggestions.forEach((m,c)=>{let d=(m.trim.end-m.trim.start).toFixed(1);console.log(`
|
|
18
|
+
${c+1}. ${m.title} (${m.id})`),console.log(` ${m.trim.start.toFixed(1)}s \u2013 ${m.trim.end.toFixed(1)}s (${d}s) score: ${m.score}`),console.log(` ${m.reason}`)});return}let p=Math.round((Date.now()-s)/1e3);o.text=`Waiting for analysis\u2026 (${p}s)`,C(t,"analyze_progress",{mediaItemId:e,elapsedSec:p})}catch{}}}export{u as a,I as b,j as c,a as d,A as e,gt as f,P as g,Z as h,se as i,Te as j,Ue as k,He as l,Ze as m,Ci as n,Pi as o,la as p,ya as q,Qe as r,Vr as s,Wr as t,f as u,w as v,xv as w,S as x,hv as y,vv as z,qv as A,so as B,it as C,T as D,M as E,C as F,Mv as G,U as H,K as I,Uv as J,ct as K,Jv as L};
|