@cueframe/kernel 0.1.2 → 0.1.3
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/dist/_members/authoring/index.d.ts +1 -1
- package/dist/_members/authoring/prompts/index.d.ts +0 -1
- package/dist/_members/convex-api/api.d.ts +3 -0
- package/dist/_members/convex-api/api.generated.d.ts +1444 -0
- package/dist/_members/convex-api/dataModel.d.ts +3 -1
- package/dist/_members/errors/registry.d.ts +103 -1
- package/dist/_members/mcp/core.d.ts +1 -1
- package/dist/_members/mcp/generated/harness.d.ts +1 -1
- package/dist/_members/mcp/generated/operations.d.ts +12 -0
- package/dist/_members/mcp/wait.d.ts +1 -1
- package/dist/_members/render-harness/remotion-runtime.d.ts +53 -0
- package/dist/authoring/prompts.js +1 -5
- package/dist/authoring.js +3 -7
- package/dist/{chunk-LLUW26BS.js → chunk-AW57IWNW.js} +18 -1
- package/dist/{chunk-AO744WIK.js → chunk-DJW3UGBH.js} +41 -30
- package/dist/{chunk-W3SIWT7J.js → chunk-DL7WYISQ.js} +267 -13
- package/dist/{chunk-PIURX6IZ.js → chunk-GIA2SVVB.js} +1 -1
- package/dist/{chunk-CAJQ7H5A.js → chunk-HBVAZXYO.js} +1 -1
- package/dist/{chunk-K2IUBCND.js → chunk-HFC3MKXA.js} +0 -51
- package/dist/{chunk-TD347SSX.js → chunk-KFECIHED.js} +29 -18
- package/dist/{chunk-VHF66LCQ.js → chunk-NQSMEUJ6.js} +2 -2
- package/dist/{chunk-QETYXKQQ.js → chunk-SDCEJAO2.js} +97 -14
- package/dist/{chunk-LJ5W4ZBU.js → chunk-TMB5AY6Q.js} +1 -1
- package/dist/{chunk-ZPLJ24OV.js → chunk-TO4BFNLJ.js} +1 -1
- package/dist/{chunk-VFMW3JUY.js → chunk-TXSFYUZH.js} +1 -1
- package/dist/{chunk-XQ72DZKJ.js → chunk-ZPRBGW4Y.js} +1 -1
- package/dist/compose/renderer.js +2 -2
- package/dist/compose.js +5 -5
- package/dist/composition/projection.js +2 -2
- package/dist/composition-ops.js +3 -3
- package/dist/composition.js +2 -2
- package/dist/core/render.js +3 -3
- package/dist/core/select.js +2 -2
- package/dist/core.js +3 -3
- package/dist/director/ai-sdk.js +3 -3
- package/dist/director/domain.js +2 -2
- package/dist/director.js +3 -3
- package/dist/errors.js +1 -1
- package/dist/mcp/adapter.js +44 -14
- package/dist/mcp/core.js +1 -1
- package/dist/mcp/curation.js +1 -1
- package/dist/mcp/server.js +4 -4
- package/dist/mcp.js +4 -4
- package/dist/media-model/testing.js +6 -6
- package/dist/nle-export.js +5 -5
- package/package.json +14 -13
|
@@ -45,6 +45,20 @@ function adviseError(err) {
|
|
|
45
45
|
// ../sdk/src/zod.ts
|
|
46
46
|
var zod_exports = {};
|
|
47
47
|
__export(zod_exports, {
|
|
48
|
+
analyzeTimelineBody: () => analyzeTimelineBody,
|
|
49
|
+
analyzeTimelineBodyWordsItemClipIdMax: () => analyzeTimelineBodyWordsItemClipIdMax,
|
|
50
|
+
analyzeTimelineBodyWordsItemPoolItemIdMax: () => analyzeTimelineBodyWordsItemPoolItemIdMax,
|
|
51
|
+
analyzeTimelineBodyWordsItemSourceEndMin: () => analyzeTimelineBodyWordsItemSourceEndMin,
|
|
52
|
+
analyzeTimelineBodyWordsItemSourceStartMin: () => analyzeTimelineBodyWordsItemSourceStartMin,
|
|
53
|
+
analyzeTimelineBodyWordsItemSpeakerIdMax: () => analyzeTimelineBodyWordsItemSpeakerIdMax,
|
|
54
|
+
analyzeTimelineBodyWordsItemTextMax: () => analyzeTimelineBodyWordsItemTextMax,
|
|
55
|
+
analyzeTimelineBodyWordsItemTimelineEndMin: () => analyzeTimelineBodyWordsItemTimelineEndMin,
|
|
56
|
+
analyzeTimelineBodyWordsItemTimelineStartMin: () => analyzeTimelineBodyWordsItemTimelineStartMin,
|
|
57
|
+
analyzeTimelineBodyWordsMax: () => analyzeTimelineBodyWordsMax,
|
|
58
|
+
analyzeTimelineResponse: () => analyzeTimelineResponse,
|
|
59
|
+
analyzeTimelineResponseEmphasisItemMin: () => analyzeTimelineResponseEmphasisItemMin,
|
|
60
|
+
analyzeTimelineResponseFillersItemMin: () => analyzeTimelineResponseFillersItemMin,
|
|
61
|
+
analyzeTimelineResponseSilenceGapsItemMin: () => analyzeTimelineResponseSilenceGapsItemMin,
|
|
48
62
|
analyzeTranscriptBody: () => analyzeTranscriptBody,
|
|
49
63
|
analyzeTranscriptBodyWindowEndSecMin: () => analyzeTranscriptBodyWindowEndSecMin,
|
|
50
64
|
analyzeTranscriptBodyWindowStartSecMin: () => analyzeTranscriptBodyWindowStartSecMin,
|
|
@@ -396,6 +410,7 @@ __export(zod_exports, {
|
|
|
396
410
|
cancelExportResponseProgressMin: () => cancelExportResponseProgressMin,
|
|
397
411
|
cancelJobParams: () => cancelJobParams,
|
|
398
412
|
cancelJobResponse: () => cancelJobResponse,
|
|
413
|
+
cancelJobResponseResultArtifactsItemLayersOverlaysMin: () => cancelJobResponseResultArtifactsItemLayersOverlaysMin,
|
|
399
414
|
cancelRenderParams: () => cancelRenderParams,
|
|
400
415
|
cancelRenderResponse: () => cancelRenderResponse,
|
|
401
416
|
cancelRenderResponseProgressScenesCompletedMin: () => cancelRenderResponseProgressScenesCompletedMin,
|
|
@@ -757,6 +772,7 @@ __export(zod_exports, {
|
|
|
757
772
|
getExportResponseProgressMin: () => getExportResponseProgressMin,
|
|
758
773
|
getJobParams: () => getJobParams,
|
|
759
774
|
getJobResponse: () => getJobResponse,
|
|
775
|
+
getJobResponseResultArtifactsItemLayersOverlaysMin: () => getJobResponseResultArtifactsItemLayersOverlaysMin,
|
|
760
776
|
getMediaContextParams: () => getMediaContextParams,
|
|
761
777
|
getMediaContextResponse: () => getMediaContextResponse,
|
|
762
778
|
getMediaParams: () => getMediaParams,
|
|
@@ -1043,8 +1059,12 @@ __export(zod_exports, {
|
|
|
1043
1059
|
previewFrameBodyJpegQualityMax: () => previewFrameBodyJpegQualityMax,
|
|
1044
1060
|
previewFrameBodyScaleMax: () => previewFrameBodyScaleMax,
|
|
1045
1061
|
previewFrameBodyScaleMin: () => previewFrameBodyScaleMin,
|
|
1062
|
+
previewFrameJobBody: () => previewFrameJobBody,
|
|
1063
|
+
previewFrameJobBodyJpegQualityMax: () => previewFrameJobBodyJpegQualityMax,
|
|
1064
|
+
previewFrameJobBodyScaleMax: () => previewFrameJobBodyScaleMax,
|
|
1065
|
+
previewFrameJobBodyScaleMin: () => previewFrameJobBodyScaleMin,
|
|
1066
|
+
previewFrameJobParams: () => previewFrameJobParams,
|
|
1046
1067
|
previewFrameParams: () => previewFrameParams,
|
|
1047
|
-
previewFrameResponse: () => previewFrameResponse,
|
|
1048
1068
|
previewSelectorBody: () => previewSelectorBody,
|
|
1049
1069
|
previewSelectorBodyCooldownSecMin: () => previewSelectorBodyCooldownSecMin,
|
|
1050
1070
|
previewSelectorBodyEnterSecMin: () => previewSelectorBodyEnterSecMin,
|
|
@@ -2342,6 +2362,11 @@ var createBriefBody = zod5.object({
|
|
|
2342
2362
|
"kind": zod5.literal("effect"),
|
|
2343
2363
|
"primitiveId": zod5.string().min(1),
|
|
2344
2364
|
"params": zod5.record(zod5.string(), zod5.unknown()).optional()
|
|
2365
|
+
}).strict(), zod5.object({
|
|
2366
|
+
"kind": zod5.literal("alpha-layer"),
|
|
2367
|
+
"componentId": zod5.string().min(1),
|
|
2368
|
+
"props": zod5.record(zod5.string(), zod5.unknown()),
|
|
2369
|
+
"zPlane": zod5.enum(["front", "behind-subject"]).optional()
|
|
2345
2370
|
}).strict(), zod5.object({
|
|
2346
2371
|
"kind": zod5.literal("card"),
|
|
2347
2372
|
"html": zod5.string().min(1),
|
|
@@ -2601,6 +2626,11 @@ var listBriefsResponse = zod5.object({
|
|
|
2601
2626
|
"kind": zod5.literal("effect"),
|
|
2602
2627
|
"primitiveId": zod5.string().min(1),
|
|
2603
2628
|
"params": zod5.record(zod5.string(), zod5.unknown()).optional()
|
|
2629
|
+
}), zod5.object({
|
|
2630
|
+
"kind": zod5.literal("alpha-layer"),
|
|
2631
|
+
"componentId": zod5.string().min(1),
|
|
2632
|
+
"props": zod5.record(zod5.string(), zod5.unknown()),
|
|
2633
|
+
"zPlane": zod5.enum(["front", "behind-subject"]).optional()
|
|
2604
2634
|
}), zod5.object({
|
|
2605
2635
|
"kind": zod5.literal("card"),
|
|
2606
2636
|
"html": zod5.string().min(1),
|
|
@@ -2876,6 +2906,11 @@ var getBriefResponse = zod5.object({
|
|
|
2876
2906
|
"kind": zod5.literal("effect"),
|
|
2877
2907
|
"primitiveId": zod5.string().min(1),
|
|
2878
2908
|
"params": zod5.record(zod5.string(), zod5.unknown()).optional()
|
|
2909
|
+
}), zod5.object({
|
|
2910
|
+
"kind": zod5.literal("alpha-layer"),
|
|
2911
|
+
"componentId": zod5.string().min(1),
|
|
2912
|
+
"props": zod5.record(zod5.string(), zod5.unknown()),
|
|
2913
|
+
"zPlane": zod5.enum(["front", "behind-subject"]).optional()
|
|
2879
2914
|
}), zod5.object({
|
|
2880
2915
|
"kind": zod5.literal("card"),
|
|
2881
2916
|
"html": zod5.string().min(1),
|
|
@@ -3141,6 +3176,11 @@ var updateBriefBody = zod5.object({
|
|
|
3141
3176
|
"kind": zod5.literal("effect"),
|
|
3142
3177
|
"primitiveId": zod5.string().min(1),
|
|
3143
3178
|
"params": zod5.record(zod5.string(), zod5.unknown()).optional()
|
|
3179
|
+
}).strict(), zod5.object({
|
|
3180
|
+
"kind": zod5.literal("alpha-layer"),
|
|
3181
|
+
"componentId": zod5.string().min(1),
|
|
3182
|
+
"props": zod5.record(zod5.string(), zod5.unknown()),
|
|
3183
|
+
"zPlane": zod5.enum(["front", "behind-subject"]).optional()
|
|
3144
3184
|
}).strict(), zod5.object({
|
|
3145
3185
|
"kind": zod5.literal("card"),
|
|
3146
3186
|
"html": zod5.string().min(1),
|
|
@@ -3399,6 +3439,11 @@ var updateBriefResponse = zod5.object({
|
|
|
3399
3439
|
"kind": zod5.literal("effect"),
|
|
3400
3440
|
"primitiveId": zod5.string().min(1),
|
|
3401
3441
|
"params": zod5.record(zod5.string(), zod5.unknown()).optional()
|
|
3442
|
+
}), zod5.object({
|
|
3443
|
+
"kind": zod5.literal("alpha-layer"),
|
|
3444
|
+
"componentId": zod5.string().min(1),
|
|
3445
|
+
"props": zod5.record(zod5.string(), zod5.unknown()),
|
|
3446
|
+
"zPlane": zod5.enum(["front", "behind-subject"]).optional()
|
|
3402
3447
|
}), zod5.object({
|
|
3403
3448
|
"kind": zod5.literal("card"),
|
|
3404
3449
|
"html": zod5.string().min(1),
|
|
@@ -4360,6 +4405,11 @@ var getCompositionResponse = zod11.object({
|
|
|
4360
4405
|
"kind": zod11.literal("effect"),
|
|
4361
4406
|
"primitiveId": zod11.string().min(1),
|
|
4362
4407
|
"params": zod11.record(zod11.string(), zod11.unknown()).optional()
|
|
4408
|
+
}), zod11.object({
|
|
4409
|
+
"kind": zod11.literal("alpha-layer"),
|
|
4410
|
+
"componentId": zod11.string().min(1),
|
|
4411
|
+
"props": zod11.record(zod11.string(), zod11.unknown()),
|
|
4412
|
+
"zPlane": zod11.enum(["front", "behind-subject"]).optional()
|
|
4363
4413
|
}), zod11.object({
|
|
4364
4414
|
"kind": zod11.literal("card"),
|
|
4365
4415
|
"html": zod11.string().min(1),
|
|
@@ -4699,6 +4749,11 @@ var putCompositionBody = zod11.object({
|
|
|
4699
4749
|
"kind": zod11.literal("effect"),
|
|
4700
4750
|
"primitiveId": zod11.string().min(1),
|
|
4701
4751
|
"params": zod11.record(zod11.string(), zod11.unknown()).optional()
|
|
4752
|
+
}).strict(), zod11.object({
|
|
4753
|
+
"kind": zod11.literal("alpha-layer"),
|
|
4754
|
+
"componentId": zod11.string().min(1),
|
|
4755
|
+
"props": zod11.record(zod11.string(), zod11.unknown()),
|
|
4756
|
+
"zPlane": zod11.enum(["front", "behind-subject"]).optional()
|
|
4702
4757
|
}).strict(), zod11.object({
|
|
4703
4758
|
"kind": zod11.literal("card"),
|
|
4704
4759
|
"html": zod11.string().min(1),
|
|
@@ -5150,6 +5205,11 @@ var applyCompositionOpBody = zod11.union([zod11.object({
|
|
|
5150
5205
|
"kind": zod11.literal("effect"),
|
|
5151
5206
|
"primitiveId": zod11.string().min(1),
|
|
5152
5207
|
"params": zod11.record(zod11.string(), zod11.unknown()).optional()
|
|
5208
|
+
}).strict(), zod11.object({
|
|
5209
|
+
"kind": zod11.literal("alpha-layer"),
|
|
5210
|
+
"componentId": zod11.string().min(1),
|
|
5211
|
+
"props": zod11.record(zod11.string(), zod11.unknown()),
|
|
5212
|
+
"zPlane": zod11.enum(["front", "behind-subject"]).optional()
|
|
5153
5213
|
}).strict(), zod11.object({
|
|
5154
5214
|
"kind": zod11.literal("card"),
|
|
5155
5215
|
"html": zod11.string().min(1),
|
|
@@ -5292,6 +5352,11 @@ var applyCompositionOpBody = zod11.union([zod11.object({
|
|
|
5292
5352
|
"kind": zod11.literal("effect"),
|
|
5293
5353
|
"primitiveId": zod11.string().min(1),
|
|
5294
5354
|
"params": zod11.record(zod11.string(), zod11.unknown()).optional()
|
|
5355
|
+
}).strict(), zod11.object({
|
|
5356
|
+
"kind": zod11.literal("alpha-layer"),
|
|
5357
|
+
"componentId": zod11.string().min(1),
|
|
5358
|
+
"props": zod11.record(zod11.string(), zod11.unknown()),
|
|
5359
|
+
"zPlane": zod11.enum(["front", "behind-subject"]).optional()
|
|
5295
5360
|
}).strict(), zod11.object({
|
|
5296
5361
|
"kind": zod11.literal("card"),
|
|
5297
5362
|
"html": zod11.string().min(1),
|
|
@@ -5430,6 +5495,11 @@ var applyCompositionOpBody = zod11.union([zod11.object({
|
|
|
5430
5495
|
"kind": zod11.literal("effect"),
|
|
5431
5496
|
"primitiveId": zod11.string().min(1),
|
|
5432
5497
|
"params": zod11.record(zod11.string(), zod11.unknown()).optional()
|
|
5498
|
+
}).strict(), zod11.object({
|
|
5499
|
+
"kind": zod11.literal("alpha-layer"),
|
|
5500
|
+
"componentId": zod11.string().min(1),
|
|
5501
|
+
"props": zod11.record(zod11.string(), zod11.unknown()),
|
|
5502
|
+
"zPlane": zod11.enum(["front", "behind-subject"]).optional()
|
|
5433
5503
|
}).strict(), zod11.object({
|
|
5434
5504
|
"kind": zod11.literal("card"),
|
|
5435
5505
|
"html": zod11.string().min(1),
|
|
@@ -5572,6 +5642,9 @@ var applyCompositionOpBody = zod11.union([zod11.object({
|
|
|
5572
5642
|
"maxWidthPercent": zod11.number().max(applyCompositionOpBodyStyleMaxWidthPercentMax).optional()
|
|
5573
5643
|
}).strict()
|
|
5574
5644
|
}).strict().describe("Merge style overrides (font/color/position/emphasis) onto the composition's caption layer. Partial \u2014 omitted fields keep their current value; creates the caption container if absent."), zod11.object({
|
|
5645
|
+
"type": zod11.literal("setCaptionDepth"),
|
|
5646
|
+
"zPlane": zod11.enum(["front", "behind-subject"])
|
|
5647
|
+
}).strict().describe("Set the caption compositing plane. Use `behind-subject` to place captions behind the segmented foreground subject; use `front` for conventional captions above all video layers."), zod11.object({
|
|
5575
5648
|
"type": zod11.literal("setCaptions"),
|
|
5576
5649
|
"segments": zod11.array(zod11.object({
|
|
5577
5650
|
"words": zod11.array(zod11.object({
|
|
@@ -5950,6 +6023,11 @@ var applyCompositionBody = zod11.object({
|
|
|
5950
6023
|
"kind": zod11.literal("effect"),
|
|
5951
6024
|
"primitiveId": zod11.string().min(1),
|
|
5952
6025
|
"params": zod11.record(zod11.string(), zod11.unknown()).optional()
|
|
6026
|
+
}).strict(), zod11.object({
|
|
6027
|
+
"kind": zod11.literal("alpha-layer"),
|
|
6028
|
+
"componentId": zod11.string().min(1),
|
|
6029
|
+
"props": zod11.record(zod11.string(), zod11.unknown()),
|
|
6030
|
+
"zPlane": zod11.enum(["front", "behind-subject"]).optional()
|
|
5953
6031
|
}).strict(), zod11.object({
|
|
5954
6032
|
"kind": zod11.literal("card"),
|
|
5955
6033
|
"html": zod11.string().min(1),
|
|
@@ -6092,6 +6170,11 @@ var applyCompositionBody = zod11.object({
|
|
|
6092
6170
|
"kind": zod11.literal("effect"),
|
|
6093
6171
|
"primitiveId": zod11.string().min(1),
|
|
6094
6172
|
"params": zod11.record(zod11.string(), zod11.unknown()).optional()
|
|
6173
|
+
}).strict(), zod11.object({
|
|
6174
|
+
"kind": zod11.literal("alpha-layer"),
|
|
6175
|
+
"componentId": zod11.string().min(1),
|
|
6176
|
+
"props": zod11.record(zod11.string(), zod11.unknown()),
|
|
6177
|
+
"zPlane": zod11.enum(["front", "behind-subject"]).optional()
|
|
6095
6178
|
}).strict(), zod11.object({
|
|
6096
6179
|
"kind": zod11.literal("card"),
|
|
6097
6180
|
"html": zod11.string().min(1),
|
|
@@ -6230,6 +6313,11 @@ var applyCompositionBody = zod11.object({
|
|
|
6230
6313
|
"kind": zod11.literal("effect"),
|
|
6231
6314
|
"primitiveId": zod11.string().min(1),
|
|
6232
6315
|
"params": zod11.record(zod11.string(), zod11.unknown()).optional()
|
|
6316
|
+
}).strict(), zod11.object({
|
|
6317
|
+
"kind": zod11.literal("alpha-layer"),
|
|
6318
|
+
"componentId": zod11.string().min(1),
|
|
6319
|
+
"props": zod11.record(zod11.string(), zod11.unknown()),
|
|
6320
|
+
"zPlane": zod11.enum(["front", "behind-subject"]).optional()
|
|
6233
6321
|
}).strict(), zod11.object({
|
|
6234
6322
|
"kind": zod11.literal("card"),
|
|
6235
6323
|
"html": zod11.string().min(1),
|
|
@@ -6372,6 +6460,9 @@ var applyCompositionBody = zod11.object({
|
|
|
6372
6460
|
"maxWidthPercent": zod11.number().max(applyCompositionBodyOpsItemStyleMaxWidthPercentMax).optional()
|
|
6373
6461
|
}).strict()
|
|
6374
6462
|
}).strict().describe("Merge style overrides (font/color/position/emphasis) onto the composition's caption layer. Partial \u2014 omitted fields keep their current value; creates the caption container if absent."), zod11.object({
|
|
6463
|
+
"type": zod11.literal("setCaptionDepth"),
|
|
6464
|
+
"zPlane": zod11.enum(["front", "behind-subject"])
|
|
6465
|
+
}).strict().describe("Set the caption compositing plane. Use `behind-subject` to place captions behind the segmented foreground subject; use `front` for conventional captions above all video layers."), zod11.object({
|
|
6375
6466
|
"type": zod11.literal("setCaptions"),
|
|
6376
6467
|
"segments": zod11.array(zod11.object({
|
|
6377
6468
|
"words": zod11.array(zod11.object({
|
|
@@ -6682,6 +6773,11 @@ var validateCompositionBody = zod11.object({
|
|
|
6682
6773
|
"kind": zod11.literal("effect"),
|
|
6683
6774
|
"primitiveId": zod11.string().min(1),
|
|
6684
6775
|
"params": zod11.record(zod11.string(), zod11.unknown()).optional()
|
|
6776
|
+
}).strict(), zod11.object({
|
|
6777
|
+
"kind": zod11.literal("alpha-layer"),
|
|
6778
|
+
"componentId": zod11.string().min(1),
|
|
6779
|
+
"props": zod11.record(zod11.string(), zod11.unknown()),
|
|
6780
|
+
"zPlane": zod11.enum(["front", "behind-subject"]).optional()
|
|
6685
6781
|
}).strict(), zod11.object({
|
|
6686
6782
|
"kind": zod11.literal("card"),
|
|
6687
6783
|
"html": zod11.string().min(1),
|
|
@@ -6942,7 +7038,21 @@ var previewFrameBody = zod14.object({
|
|
|
6942
7038
|
"scale": zod14.number().min(previewFrameBodyScaleMin).max(previewFrameBodyScaleMax).optional().describe("Render scale 0.1\u20131. Default 0.5, which is what this schema has always recommended for vision-bound looks. Pass 1 when judging fine detail \u2014 it costs ~4x the vision tokens."),
|
|
6943
7039
|
"jpegQuality": zod14.number().min(1).max(previewFrameBodyJpegQualityMax).optional().describe("JPEG quality (jpeg only). Default 70 \u2014 the quality the eval panel grades at.")
|
|
6944
7040
|
}).strict();
|
|
6945
|
-
var
|
|
7041
|
+
var previewFrameJobParams = zod14.object({
|
|
7042
|
+
"id": zod14.string()
|
|
7043
|
+
});
|
|
7044
|
+
var previewFrameJobBodyScaleMin = 0.1;
|
|
7045
|
+
var previewFrameJobBodyScaleMax = 1;
|
|
7046
|
+
var previewFrameJobBodyJpegQualityMax = 100;
|
|
7047
|
+
var previewFrameJobBody = zod14.object({
|
|
7048
|
+
"composition": zod14.unknown().optional().describe("The composition to render. Absent \u21D2 the project's ACTIVE composition \u2014 what create_render will encode. The response's `previewed.source` names what was rendered."),
|
|
7049
|
+
"compositionId": zod14.string().optional().describe("Preview a SPECIFIC persisted composition of this project (create_render parity). Absent \u21D2 the active one. A stale/foreign id is a 404 \u2014 never a silent fall-through."),
|
|
7050
|
+
"session_id": zod14.string().optional().describe("Compose-session id: render that session's SCRATCH composition (what the session has been editing) instead of the active row. Ignored when `composition` is passed."),
|
|
7051
|
+
"timestamps": zod14.array(zod14.number()).min(1),
|
|
7052
|
+
"imageFormat": zod14.enum(["png", "jpeg"]).optional().describe("Still format. Default jpeg \u2014 these pixels go to a vision model, where jpeg is equivalent and png costs multiples in bytes to store and move. Pass png only when you need full fidelity."),
|
|
7053
|
+
"scale": zod14.number().min(previewFrameJobBodyScaleMin).max(previewFrameJobBodyScaleMax).optional().describe("Render scale 0.1\u20131. Default 0.5, which is what this schema has always recommended for vision-bound looks. Pass 1 when judging fine detail \u2014 it costs ~4x the vision tokens."),
|
|
7054
|
+
"jpegQuality": zod14.number().min(1).max(previewFrameJobBodyJpegQualityMax).optional().describe("JPEG quality (jpeg only). Default 70 \u2014 the quality the eval panel grades at.")
|
|
7055
|
+
}).strict();
|
|
6946
7056
|
var previewComponentParams = zod14.object({
|
|
6947
7057
|
"id": zod14.string()
|
|
6948
7058
|
});
|
|
@@ -7061,17 +7171,70 @@ import * as zod18 from "zod";
|
|
|
7061
7171
|
var getJobParams = zod18.object({
|
|
7062
7172
|
"jobId": zod18.string()
|
|
7063
7173
|
});
|
|
7174
|
+
var getJobResponseResultArtifactsItemLayersOverlaysMin = 0;
|
|
7064
7175
|
var getJobResponse = zod18.object({
|
|
7065
7176
|
"id": zod18.string().describe("Job id \u2014 pass to GET /v1/jobs/{id} / wait_job."),
|
|
7066
7177
|
"jobKey": zod18.string().describe("Deterministic identity of the work (idempotency key, e.g. `verify-<sessionId>-<contentHash>` \u2014 the hash covers the composition AND grading inputs). Re-enqueueing the same key returns the same job while it runs."),
|
|
7067
7178
|
"kind": zod18.string().describe("Job family, e.g. `verify`."),
|
|
7068
|
-
"status": zod18.enum(["running", "succeeded", "failed"]).describe("Poll until terminal (`succeeded` | `failed`)."),
|
|
7179
|
+
"status": zod18.enum(["running", "succeeded", "failed", "cancelled"]).describe("Poll until terminal (`succeeded` | `failed` | `cancelled`)."),
|
|
7069
7180
|
"progress": zod18.object({
|
|
7070
7181
|
"phase": zod18.string(),
|
|
7071
7182
|
"percent": zod18.number().optional(),
|
|
7072
7183
|
"message": zod18.string().optional()
|
|
7073
7184
|
}).nullable().describe("Executor heartbeat while running; null when none reported."),
|
|
7074
|
-
"result": zod18.
|
|
7185
|
+
"result": zod18.union([zod18.object({
|
|
7186
|
+
"artifacts": zod18.array(zod18.object({
|
|
7187
|
+
"id": zod18.string(),
|
|
7188
|
+
"beatSec": zod18.number(),
|
|
7189
|
+
"r2Key": zod18.string().describe("Durable private artifact identity; use the materialized url to fetch."),
|
|
7190
|
+
"bytes": zod18.number(),
|
|
7191
|
+
"contentType": zod18.enum(["image/png", "image/jpeg"]),
|
|
7192
|
+
"layers": zod18.object({
|
|
7193
|
+
"video": zod18.string().nullable(),
|
|
7194
|
+
"overlays": zod18.number().min(getJobResponseResultArtifactsItemLayersOverlaysMin)
|
|
7195
|
+
}),
|
|
7196
|
+
"url": zod18.string().optional(),
|
|
7197
|
+
"urlExpiresAt": zod18.string().optional()
|
|
7198
|
+
})),
|
|
7199
|
+
"geometry": zod18.object({
|
|
7200
|
+
"scale": zod18.number(),
|
|
7201
|
+
"compositionWidth": zod18.number().optional(),
|
|
7202
|
+
"compositionHeight": zod18.number().optional(),
|
|
7203
|
+
"width": zod18.number().optional(),
|
|
7204
|
+
"height": zod18.number().optional()
|
|
7205
|
+
}),
|
|
7206
|
+
"warnings": zod18.array(zod18.record(zod18.string(), zod18.unknown())).optional(),
|
|
7207
|
+
"previewed": zod18.object({
|
|
7208
|
+
"source": zod18.enum(["inline", "scratch", "persisted"]),
|
|
7209
|
+
"compositionId": zod18.string().optional(),
|
|
7210
|
+
"etag": zod18.string().optional()
|
|
7211
|
+
}),
|
|
7212
|
+
"listUsd": zod18.number().optional().describe("List price charged for this delivered capture.")
|
|
7213
|
+
}), zod18.union([zod18.object({
|
|
7214
|
+
"artifactKind": zod18.literal("image"),
|
|
7215
|
+
"contentType": zod18.enum(["image/png", "image/jpeg"]),
|
|
7216
|
+
"outputR2Key": zod18.string(),
|
|
7217
|
+
"cached": zod18.boolean(),
|
|
7218
|
+
"url": zod18.string().optional(),
|
|
7219
|
+
"urlExpiresAt": zod18.string().optional(),
|
|
7220
|
+
"listUsd": zod18.number().optional().describe("List price charged for this delivered preview.")
|
|
7221
|
+
}), zod18.object({
|
|
7222
|
+
"artifactKind": zod18.literal("motion"),
|
|
7223
|
+
"contentType": zod18.literal("video/webm"),
|
|
7224
|
+
"outputR2Key": zod18.string(),
|
|
7225
|
+
"cached": zod18.boolean(),
|
|
7226
|
+
"url": zod18.string().optional(),
|
|
7227
|
+
"urlExpiresAt": zod18.string().optional(),
|
|
7228
|
+
"listUsd": zod18.number().optional().describe("List price charged for this delivered preview.")
|
|
7229
|
+
})]), zod18.object({
|
|
7230
|
+
"perCriterion": zod18.unknown().optional(),
|
|
7231
|
+
"composite": zod18.number(),
|
|
7232
|
+
"critique": zod18.string(),
|
|
7233
|
+
"checkpointId": zod18.string(),
|
|
7234
|
+
"stillR2Keys": zod18.array(zod18.string()),
|
|
7235
|
+
"clientScores": zod18.array(zod18.unknown()).optional(),
|
|
7236
|
+
"evalCostUsd": zod18.number().optional()
|
|
7237
|
+
}), zod18.record(zod18.string(), zod18.unknown()), zod18.null()]).describe("Kind-specific payload when status is `succeeded`; null otherwise."),
|
|
7075
7238
|
"error": zod18.object({
|
|
7076
7239
|
"code": zod18.string(),
|
|
7077
7240
|
"message": zod18.string()
|
|
@@ -7083,17 +7246,70 @@ var getJobResponse = zod18.object({
|
|
|
7083
7246
|
var cancelJobParams = zod18.object({
|
|
7084
7247
|
"jobId": zod18.string()
|
|
7085
7248
|
});
|
|
7249
|
+
var cancelJobResponseResultArtifactsItemLayersOverlaysMin = 0;
|
|
7086
7250
|
var cancelJobResponse = zod18.object({
|
|
7087
7251
|
"id": zod18.string().describe("Job id \u2014 pass to GET /v1/jobs/{id} / wait_job."),
|
|
7088
7252
|
"jobKey": zod18.string().describe("Deterministic identity of the work (idempotency key, e.g. `verify-<sessionId>-<contentHash>` \u2014 the hash covers the composition AND grading inputs). Re-enqueueing the same key returns the same job while it runs."),
|
|
7089
7253
|
"kind": zod18.string().describe("Job family, e.g. `verify`."),
|
|
7090
|
-
"status": zod18.enum(["running", "succeeded", "failed"]).describe("Poll until terminal (`succeeded` | `failed`)."),
|
|
7254
|
+
"status": zod18.enum(["running", "succeeded", "failed", "cancelled"]).describe("Poll until terminal (`succeeded` | `failed` | `cancelled`)."),
|
|
7091
7255
|
"progress": zod18.object({
|
|
7092
7256
|
"phase": zod18.string(),
|
|
7093
7257
|
"percent": zod18.number().optional(),
|
|
7094
7258
|
"message": zod18.string().optional()
|
|
7095
7259
|
}).nullable().describe("Executor heartbeat while running; null when none reported."),
|
|
7096
|
-
"result": zod18.
|
|
7260
|
+
"result": zod18.union([zod18.object({
|
|
7261
|
+
"artifacts": zod18.array(zod18.object({
|
|
7262
|
+
"id": zod18.string(),
|
|
7263
|
+
"beatSec": zod18.number(),
|
|
7264
|
+
"r2Key": zod18.string().describe("Durable private artifact identity; use the materialized url to fetch."),
|
|
7265
|
+
"bytes": zod18.number(),
|
|
7266
|
+
"contentType": zod18.enum(["image/png", "image/jpeg"]),
|
|
7267
|
+
"layers": zod18.object({
|
|
7268
|
+
"video": zod18.string().nullable(),
|
|
7269
|
+
"overlays": zod18.number().min(cancelJobResponseResultArtifactsItemLayersOverlaysMin)
|
|
7270
|
+
}),
|
|
7271
|
+
"url": zod18.string().optional(),
|
|
7272
|
+
"urlExpiresAt": zod18.string().optional()
|
|
7273
|
+
})),
|
|
7274
|
+
"geometry": zod18.object({
|
|
7275
|
+
"scale": zod18.number(),
|
|
7276
|
+
"compositionWidth": zod18.number().optional(),
|
|
7277
|
+
"compositionHeight": zod18.number().optional(),
|
|
7278
|
+
"width": zod18.number().optional(),
|
|
7279
|
+
"height": zod18.number().optional()
|
|
7280
|
+
}),
|
|
7281
|
+
"warnings": zod18.array(zod18.record(zod18.string(), zod18.unknown())).optional(),
|
|
7282
|
+
"previewed": zod18.object({
|
|
7283
|
+
"source": zod18.enum(["inline", "scratch", "persisted"]),
|
|
7284
|
+
"compositionId": zod18.string().optional(),
|
|
7285
|
+
"etag": zod18.string().optional()
|
|
7286
|
+
}),
|
|
7287
|
+
"listUsd": zod18.number().optional().describe("List price charged for this delivered capture.")
|
|
7288
|
+
}), zod18.union([zod18.object({
|
|
7289
|
+
"artifactKind": zod18.literal("image"),
|
|
7290
|
+
"contentType": zod18.enum(["image/png", "image/jpeg"]),
|
|
7291
|
+
"outputR2Key": zod18.string(),
|
|
7292
|
+
"cached": zod18.boolean(),
|
|
7293
|
+
"url": zod18.string().optional(),
|
|
7294
|
+
"urlExpiresAt": zod18.string().optional(),
|
|
7295
|
+
"listUsd": zod18.number().optional().describe("List price charged for this delivered preview.")
|
|
7296
|
+
}), zod18.object({
|
|
7297
|
+
"artifactKind": zod18.literal("motion"),
|
|
7298
|
+
"contentType": zod18.literal("video/webm"),
|
|
7299
|
+
"outputR2Key": zod18.string(),
|
|
7300
|
+
"cached": zod18.boolean(),
|
|
7301
|
+
"url": zod18.string().optional(),
|
|
7302
|
+
"urlExpiresAt": zod18.string().optional(),
|
|
7303
|
+
"listUsd": zod18.number().optional().describe("List price charged for this delivered preview.")
|
|
7304
|
+
})]), zod18.object({
|
|
7305
|
+
"perCriterion": zod18.unknown().optional(),
|
|
7306
|
+
"composite": zod18.number(),
|
|
7307
|
+
"critique": zod18.string(),
|
|
7308
|
+
"checkpointId": zod18.string(),
|
|
7309
|
+
"stillR2Keys": zod18.array(zod18.string()),
|
|
7310
|
+
"clientScores": zod18.array(zod18.unknown()).optional(),
|
|
7311
|
+
"evalCostUsd": zod18.number().optional()
|
|
7312
|
+
}), zod18.record(zod18.string(), zod18.unknown()), zod18.null()]).describe("Kind-specific payload when status is `succeeded`; null otherwise."),
|
|
7097
7313
|
"error": zod18.object({
|
|
7098
7314
|
"code": zod18.string(),
|
|
7099
7315
|
"message": zod18.string()
|
|
@@ -7130,7 +7346,8 @@ var createMediaUploadBodySizeMax = 10737418240;
|
|
|
7130
7346
|
var createMediaUploadBody = zod19.object({
|
|
7131
7347
|
"filename": zod19.string().min(1).max(createMediaUploadBodyFilenameMax),
|
|
7132
7348
|
"contentType": zod19.enum(["video/mp4", "video/quicktime", "video/x-matroska", "video/webm", "audio/mpeg", "audio/wav", "audio/x-wav", "audio/mp4", "audio/aac", "image/png", "image/jpeg", "image/webp", "image/gif", "image/svg+xml", "application/json", "font/ttf", "font/otf", "font/woff", "font/woff2"]),
|
|
7133
|
-
"size": zod19.number().max(createMediaUploadBodySizeMax)
|
|
7349
|
+
"size": zod19.number().max(createMediaUploadBodySizeMax),
|
|
7350
|
+
"projectId": zod19.string().min(1).optional()
|
|
7134
7351
|
}).strict().describe("POST /media upload initiation body.");
|
|
7135
7352
|
var listMediaResponse = zod19.object({
|
|
7136
7353
|
"data": zod19.array(zod19.object({
|
|
@@ -7524,6 +7741,36 @@ var analyzeTranscriptResponse = zod19.object({
|
|
|
7524
7741
|
"result": zod19.string().describe("The answer, as text. `summary` is prose; `chapters` and `highlights` are one record per LINE in the shape documented on the request's `task` field \u2014 split on newlines to parse them. Timestamps are absolute seconds from the start of the media and every one is CHECKED against the transcript before the response is returned (a fabricated timestamp fails the call rather than shipping), but they are line-start markers about 15s apart \u2014 a boundary can sit up to 15s BEFORE the moment you want. Use them to locate, not to cut: refine against the word timings in GET /v1/media/{id}/context."),
|
|
7525
7742
|
"model": zod19.string().describe("The model that produced this answer (e.g. `claude-sonnet-4-6`). Recorded on the response because the same task on the same transcript is not stable across models \u2014 if you cache or compare answers, key on this.")
|
|
7526
7743
|
}).describe("The analysis of one media item's transcript. Metered: this is a real LLM call, billed on measured token spend, so it is not a read to poll.");
|
|
7744
|
+
var analyzeTimelineBodyWordsItemTextMax = 1e3;
|
|
7745
|
+
var analyzeTimelineBodyWordsItemTimelineStartMin = 0;
|
|
7746
|
+
var analyzeTimelineBodyWordsItemTimelineEndMin = 0;
|
|
7747
|
+
var analyzeTimelineBodyWordsItemClipIdMax = 256;
|
|
7748
|
+
var analyzeTimelineBodyWordsItemPoolItemIdMax = 256;
|
|
7749
|
+
var analyzeTimelineBodyWordsItemSourceStartMin = 0;
|
|
7750
|
+
var analyzeTimelineBodyWordsItemSourceEndMin = 0;
|
|
7751
|
+
var analyzeTimelineBodyWordsItemSpeakerIdMax = 256;
|
|
7752
|
+
var analyzeTimelineBodyWordsMax = 12e3;
|
|
7753
|
+
var analyzeTimelineBody = zod19.object({
|
|
7754
|
+
"words": zod19.array(zod19.object({
|
|
7755
|
+
"text": zod19.string().min(1).max(analyzeTimelineBodyWordsItemTextMax),
|
|
7756
|
+
"timelineStart": zod19.number().min(analyzeTimelineBodyWordsItemTimelineStartMin),
|
|
7757
|
+
"timelineEnd": zod19.number().min(analyzeTimelineBodyWordsItemTimelineEndMin),
|
|
7758
|
+
"clipId": zod19.string().min(1).max(analyzeTimelineBodyWordsItemClipIdMax),
|
|
7759
|
+
"poolItemId": zod19.string().min(1).max(analyzeTimelineBodyWordsItemPoolItemIdMax),
|
|
7760
|
+
"sourceStart": zod19.number().min(analyzeTimelineBodyWordsItemSourceStartMin),
|
|
7761
|
+
"sourceEnd": zod19.number().min(analyzeTimelineBodyWordsItemSourceEndMin),
|
|
7762
|
+
"speakerId": zod19.string().max(analyzeTimelineBodyWordsItemSpeakerIdMax).nullable()
|
|
7763
|
+
}).strict()).min(1).max(analyzeTimelineBodyWordsMax)
|
|
7764
|
+
}).strict().describe("A bounded merged timeline transcript for CueFrame edit analysis. The server selects the model; clients cannot provide a provider, API key, or model override.");
|
|
7765
|
+
var analyzeTimelineResponseFillersItemMin = 0;
|
|
7766
|
+
var analyzeTimelineResponseSilenceGapsItemMin = 0;
|
|
7767
|
+
var analyzeTimelineResponseEmphasisItemMin = 0;
|
|
7768
|
+
var analyzeTimelineResponse = zod19.object({
|
|
7769
|
+
"fillers": zod19.array(zod19.number().min(analyzeTimelineResponseFillersItemMin)),
|
|
7770
|
+
"silenceGaps": zod19.array(zod19.number().min(analyzeTimelineResponseSilenceGapsItemMin)),
|
|
7771
|
+
"emphasis": zod19.array(zod19.number().min(analyzeTimelineResponseEmphasisItemMin)),
|
|
7772
|
+
"model": zod19.string()
|
|
7773
|
+
}).describe("CueFrame-model analysis of timeline word indices. Every returned index refers to the request's words array.");
|
|
7527
7774
|
|
|
7528
7775
|
// ../sdk/src/generated/zod/projects/projects.ts
|
|
7529
7776
|
import * as zod20 from "zod";
|
|
@@ -7853,6 +8100,11 @@ var getProjectContextResponse = zod20.object({
|
|
|
7853
8100
|
"kind": zod20.literal("effect"),
|
|
7854
8101
|
"primitiveId": zod20.string().min(1),
|
|
7855
8102
|
"params": zod20.record(zod20.string(), zod20.unknown()).optional()
|
|
8103
|
+
}), zod20.object({
|
|
8104
|
+
"kind": zod20.literal("alpha-layer"),
|
|
8105
|
+
"componentId": zod20.string().min(1),
|
|
8106
|
+
"props": zod20.record(zod20.string(), zod20.unknown()),
|
|
8107
|
+
"zPlane": zod20.enum(["front", "behind-subject"]).optional()
|
|
7856
8108
|
}), zod20.object({
|
|
7857
8109
|
"kind": zod20.literal("card"),
|
|
7858
8110
|
"html": zod20.string().min(1),
|
|
@@ -8726,12 +8978,13 @@ var createWorkspaceBody = zod28.object({
|
|
|
8726
8978
|
|
|
8727
8979
|
// ../mcp/src/generated/operations.ts
|
|
8728
8980
|
var GENERATED_OPERATIONS = [
|
|
8981
|
+
{ operationId: "analyzeTimeline", toolName: "cueframe_api_analyzeTimeline", title: "Analyze Timeline", method: "POST", pathTemplate: "/v1/timeline-analysis", pathParams: [], bodyKey: "analyzeTimelineBody", description: "Analyze a timeline transcript for edit decisions \u2014 Returns filler, silence-gap, and emphasis word indices for an editor timeline. CueFrame selects and runs the model server-side; provider, API key, and model overrides are not accepted. \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": false, "idempotentHint": false, "openWorldHint": false } },
|
|
8729
8982
|
{ operationId: "analyzeTranscript", toolName: "cueframe_api_analyzeTranscript", title: "Analyze Transcript", method: "POST", pathTemplate: "/v1/media/{id}/transcript/analyze", pathParams: ["id"], bodyKey: "analyzeTranscriptBody", description: "Analyse a media item's transcript \u2014 Ask ONE editorial question of a transcript and get the answer as text: `summary` (what is actually said, plus the takeaways), `chapters` (where the subject changes), or `highlights` (the moments that stand alone as a short). PRECISION: timestamps are ABSOLUTE seconds from the start of the media and every one is verified against the transcript before you see it (a fabricated timestamp fails the call rather than shipping) \u2014 but they are LINE-START markers roughly 15s apart, so a boundary can sit up to 15s BEFORE the moment you asked for. Treat every span as APPROXIMATE: use it to LOCATE the moment, then refine the in/out against the word timings from GET /v1/media/{id}/context before you cut. Feeding a raw span straight into a clip trim will start it mid-sentence. Pass `window` to analyse one slice; omit it for the whole thing. This is a METERED LLM call, not a read: it bills on measured token spend, and a recording too long to analyse in one pass is rejected with 422 `transcript_too_long` (over ~100k characters, roughly two hours of speech) rather than silently summarising only its first half \u2014 narrow it with `window`. 422 `media_no_transcript` means the item has no speech on file (or none inside your window); GET /v1/media/{id}/context shows transcript state, and GET /v1/media/{id}/transcript returns the raw words. \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": false, "idempotentHint": false, "openWorldHint": false } },
|
|
8730
8983
|
{ operationId: "applyComposition", toolName: "cueframe_api_applyComposition", title: "Apply Composition", method: "POST", pathTemplate: "/v1/projects/{id}/composition/apply", pathParams: ["id"], bodyKey: "applyCompositionBody", description: "Apply a batch of operations to a project's composition (or dry-run validate) \u2014 Atomically applies an array of CompositionOps. All ops succeed or none do (transactional). Pass `if_match` for optimistic-concurrency control (409 stale_etag on mismatch). Pass `dry_run: true` to validate the batch \u2014 runs the same apply + projection accept/reject guards WITHOUT persisting, returning `{ valid, errors }` with `locator.op_index` on the first failing op. Both modes may carry `warnings[]` \u2014 non-fatal authoring advisories (e.g. a card whose html reads a CSS custom property no token defines). Warnings never block. \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": false, "idempotentHint": false, "openWorldHint": false } },
|
|
8731
8984
|
{ operationId: "applyCompositionOp", toolName: "cueframe_api_applyCompositionOp", title: "Apply Composition Op", method: "POST", pathTemplate: "/v1/projects/{id}/composition/ops", pathParams: ["id"], bodyKey: "applyCompositionOpBody", description: "Apply one operation to a project's composition \u2014 Required permission: projects:write \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": false, "idempotentHint": false, "openWorldHint": false } },
|
|
8732
8985
|
{ operationId: "cancelCompose", toolName: "cueframe_api_cancelCompose", title: "Cancel Compose", method: "POST", pathTemplate: "/v1/projects/{id}/compose/jobs/{composeJobId}/cancel", pathParams: ["id", "composeJobId"], bodyKey: null, description: "Cancel an in-flight compose job \u2014 Cancel a running compose so an agent (or a cost guard) can abort a mis-priced or runaway ensemble without waiting out its budget or TTL. The director-worker cancel is confirmed BEFORE the row flips; the terminal seam fires compose.cancelled and releases any linked charge. Already-terminal jobs are rejected (422 compose_not_cancellable). \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": false, "idempotentHint": false, "openWorldHint": false } },
|
|
8733
8986
|
{ operationId: "cancelExport", toolName: "cueframe_api_cancelExport", title: "Cancel Export", method: "POST", pathTemplate: "/v1/projects/{id}/exports/{exportId}/cancel", pathParams: ["id", "exportId"], bodyKey: null, description: "Cancel an in-flight export \u2014 Required permission: renders:write \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": false, "idempotentHint": false, "openWorldHint": false } },
|
|
8734
|
-
{ operationId: "cancelJob", toolName: "cueframe_api_cancelJob", title: "Cancel Job", method: "POST", pathTemplate: "/v1/jobs/{jobId}/cancel", pathParams: ["jobId"], bodyKey: null, description: "Cancel an async job \u2014 Cancel a running async job so an agent can abort a mis-priced/runaway operation without waiting out its TTL.
|
|
8987
|
+
{ operationId: "cancelJob", toolName: "cueframe_api_cancelJob", title: "Cancel Job", method: "POST", pathTemplate: "/v1/jobs/{jobId}/cancel", pathParams: ["jobId"], bodyKey: null, description: "Cancel an async job \u2014 Cancel a running async job so an agent can abort a mis-priced/runaway operation without waiting out its TTL. Durable workflows are cancelled from the persisted execution receipt; legacy warm boxes are reaped when present. Cancel never meters. Already-terminal jobs are rejected (422 job_not_cancellable). \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": false, "idempotentHint": false, "openWorldHint": false } },
|
|
8735
8988
|
{ operationId: "cancelRender", toolName: "cueframe_api_cancelRender", title: "Cancel Render", method: "POST", pathTemplate: "/v1/projects/{id}/renders/{renderId}/cancel", pathParams: ["id", "renderId"], bodyKey: null, description: "Cancel a render \u2014 Required permission: renders:write \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": false, "idempotentHint": false, "openWorldHint": false } },
|
|
8736
8989
|
{ operationId: "closeComposeSession", toolName: "cueframe_api_closeComposeSession", title: "Close Compose Session", method: "DELETE", pathTemplate: "/v1/projects/{id}/compose-session/{sessionId}", pathParams: ["id", "sessionId"], bodyKey: null, description: "Close a compose session \u2014 Required permission: projects:write \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": true, "idempotentHint": true, "openWorldHint": false } },
|
|
8737
8990
|
{ operationId: "commitComposeSession", toolName: "cueframe_api_commitComposeSession", title: "Commit Compose Session", method: "POST", pathTemplate: "/v1/projects/{id}/compose-session/{sessionId}/commit", pathParams: ["id", "sessionId"], bodyKey: null, description: "Commit the session scratch onto the project's active composition \u2014 Required permission: projects:write \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": false, "idempotentHint": false, "openWorldHint": false } },
|
|
@@ -8777,7 +9030,7 @@ var GENERATED_OPERATIONS = [
|
|
|
8777
9030
|
{ operationId: "getComposeSessionComposition", toolName: "cueframe_api_getComposeSessionComposition", title: "Get Compose Session Composition", method: "GET", pathTemplate: "/v1/projects/{id}/compose-session/{sessionId}/composition", pathParams: ["id", "sessionId"], bodyKey: null, description: "Read the session's scratch composition \u2014 Pure read: returns the composition currently held in the session's SCRATCH (what the author LLM has been editing over this session), NOT the project's active composition. The Director ensemble reads this back per candidate and returns it as the authored composition \u2014 the winner is saved downstream, so a candidate never commits its scratch to active. 404 when the session is unknown/foreign or has never written a scratch. \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": true, "openWorldHint": false } },
|
|
8778
9031
|
{ operationId: "getComposition", toolName: "cueframe_api_getComposition", title: "Get Composition", method: "GET", pathTemplate: "/v1/projects/{id}/composition", pathParams: ["id"], bodyKey: null, description: "Get a project's composition \u2014 Required permission: projects:read \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": true, "openWorldHint": false } },
|
|
8779
9032
|
{ operationId: "getExport", toolName: "cueframe_api_getExport", title: "Get Export", method: "GET", pathTemplate: "/v1/projects/{id}/exports/{exportId}", pathParams: ["id", "exportId"], bodyKey: null, description: "Get an export job \u2014 Required permission: renders:read \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": true, "openWorldHint": false } },
|
|
8780
|
-
{ operationId: "getJob", toolName: "cueframe_api_getJob", title: "Get Job", method: "GET", pathTemplate: "/v1/jobs/{jobId}", pathParams: ["jobId"], bodyKey: null, description: "Get an async job's status and result \u2014 Read one async job \u2014 the uniform status/result resource behind every long-running operation. Poll until `status` is terminal (`succeeded` | `failed`), then read `result` (kind-specific payload) or `error` (stable code + message). `job_timeout` means the executor died mid-run and the stall sweep reaped the job \u2014 re-enqueue the operation to retry. \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": true, "openWorldHint": false } },
|
|
9033
|
+
{ operationId: "getJob", toolName: "cueframe_api_getJob", title: "Get Job", method: "GET", pathTemplate: "/v1/jobs/{jobId}", pathParams: ["jobId"], bodyKey: null, description: "Get an async job's status and result \u2014 Read one async job \u2014 the uniform status/result resource behind every long-running operation. Poll until `status` is terminal (`succeeded` | `failed` | `cancelled`), then read `result` (kind-specific payload) or `error` (stable code + message). `job_timeout` means the executor died mid-run and the stall sweep reaped the job \u2014 re-enqueue the operation to retry. \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": true, "openWorldHint": false } },
|
|
8781
9034
|
{ operationId: "getMedia", toolName: "cueframe_api_getMedia", title: "Get Media", method: "GET", pathTemplate: "/v1/media/{id}", pathParams: ["id"], bodyKey: null, description: "Get a media item by id \u2014 Required permission: media:read \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": true, "openWorldHint": false } },
|
|
8782
9035
|
{ operationId: "getMediaContext", toolName: "cueframe_api_getMediaContext", title: "Get Media Context", method: "GET", pathTemplate: "/v1/media/{id}/context", pathParams: ["id"], bodyKey: null, description: "Get authoring context for a media item (faces + transcript + beat/word grids) \u2014 The read-only context an agent needs to author a composition over this source: the detected face/subject roster (face-0 = primary speaker, with normalized bbox + active-speaker share), the transcript, the temporal grids \u2014 `beatGrid` (a MUSIC bed's rhythm: bpm, beatTimesMs in milliseconds, confidence, method) and `wordGrid` (VO word-onset timings in milliseconds, from the transcript) \u2014 and a presigned `thumbnail` (~the footage at a glance). For stills at CHOSEN timestamps, call preview_frame with a one-clip composition over this media. Call this before authoring crop intents (reframe) and overlay/caption timing. Faces are lazily detected \u2014 `faces.status` is `not_detected` until a compose/detect pass has run over the source, never a faked empty roster. `beatGrid` is null until beat analysis has run: generated music beds are analyzed automatically at delivery; an uploaded/imported bed may not carry a grid yet (on-demand analysis is not client-triggerable today). `audioRole` is the DECLARED role of an audio asset (vo | music | sfx | ambience) \u2014 author the clip source's `audioRole` from it; `envelope` carries the coarse `envelopeClass` (transient | sweep | ambient) plus any probed attack/centroid/volume stats. Both are null for footage/images or an undeclared audio asset. \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": true, "openWorldHint": false } },
|
|
8783
9036
|
{ operationId: "getMediaPerformance", toolName: "cueframe_api_getMediaPerformance", title: "Get Media Performance", method: "GET", pathTemplate: "/v1/media/{id}/performance", pathParams: ["id"], bodyKey: null, description: "Per-media performance breakdown (Axiom workflow + activity spans) \u2014 Required permission: media:read \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": true, "openWorldHint": false } },
|
|
@@ -8815,12 +9068,13 @@ var GENERATED_OPERATIONS = [
|
|
|
8815
9068
|
{ operationId: "listSkills", toolName: "cueframe_api_listSkills", title: "List Skills", method: "GET", pathTemplate: "/v1/skills", pathParams: [], bodyKey: null, description: "List available CueFrame agent skills \u2014 Returns the agent skills CueFrame publishes (e.g. `cueframe-cli`). Metadata only \u2014 fetch the markdown body from GET /skills/{name}. Unauthenticated, like /openapi.json. \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": true, "openWorldHint": false } },
|
|
8816
9069
|
{ operationId: "listWebhooks", toolName: "cueframe_api_listWebhooks", title: "List Webhooks", method: "GET", pathTemplate: "/v1/webhooks", pathParams: [], bodyKey: null, description: "List webhook endpoints \u2014 Required permission: webhooks:read \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": true, "openWorldHint": false } },
|
|
8817
9070
|
{ operationId: "newComposition", toolName: "cueframe_api_newComposition", title: "New Composition", method: "POST", pathTemplate: "/v1/projects/{id}/compositions", pathParams: ["id"], bodyKey: "newCompositionBody", description: "Create a new composition (video) in a project \u2014 Required permission: projects:write \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": false, "idempotentHint": false, "openWorldHint": false } },
|
|
8818
|
-
{ operationId: "openComposeSession", toolName: "cueframe_api_openComposeSession", title: "Open Compose Session", method: "POST", pathTemplate: "/v1/projects/{id}/compose-session", pathParams: ["id"], bodyKey: "openComposeSessionBody", description: "Open
|
|
9071
|
+
{ operationId: "openComposeSession", toolName: "cueframe_api_openComposeSession", title: "Open Compose Session", method: "POST", pathTemplate: "/v1/projects/{id}/compose-session", pathParams: ["id"], bodyKey: "openComposeSessionBody", description: "Open an isolated scratch composition \u2014 Mint isolated scratch state for project authoring. This returns immediately and starts no sandbox or render provider; use /preview-frame-jobs and /score-composition for durable preview and verification work. The scratch closes automatically after its idle TTL or explicitly via DELETE. Optionally seed it from a supplied composition (seedComposition); a bodyless open derives from the project's active composition. \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": false, "idempotentHint": false, "openWorldHint": false } },
|
|
8819
9072
|
{ operationId: "patchProject", toolName: "cueframe_api_patchProject", title: "Patch Project", method: "PATCH", pathTemplate: "/v1/projects/{id}", pathParams: ["id"], bodyKey: "patchProjectBody", description: "Update a project \u2014 Required permission: projects:write \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": true, "idempotentHint": false, "openWorldHint": false } },
|
|
8820
9073
|
{ operationId: "patchWebhook", toolName: "cueframe_api_patchWebhook", title: "Patch Webhook", method: "PATCH", pathTemplate: "/v1/webhooks/{id}", pathParams: ["id"], bodyKey: "patchWebhookBody", description: "Update a webhook endpoint \u2014 Required permission: webhooks:write \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": true, "idempotentHint": false, "openWorldHint": true } },
|
|
8821
9074
|
{ operationId: "previewClip", toolName: "cueframe_api_previewClip", title: "Preview Clip", method: "POST", pathTemplate: "/v1/projects/{id}/preview-clip", pathParams: ["id"], bodyKey: "previewClipBody", description: "Render a scoped motion preview of the composition \u2014 A cheap, watchable MP4 of ONLY [fromSec, toSec) of the composition at preview quality (capped resolution, lighter encode). The way to judge motion \u2014 a cut, a transition, a component's animation \u2014 with real fidelity BEFORE paying for a full render. Async: returns a render job; wait_job(kind='render') or webhook render.completed for the URL. Meters the capture feature, never an exports credit. \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": false, "idempotentHint": false, "openWorldHint": false } },
|
|
8822
|
-
{ operationId: "previewComponent", toolName: "cueframe_api_previewComponent", title: "Preview Component", method: "POST", pathTemplate: "/v1/projects/{id}/component-preview", pathParams: ["id"], bodyKey: "previewComponentBody", description: "Render one component
|
|
9075
|
+
{ operationId: "previewComponent", toolName: "cueframe_api_previewComponent", title: "Preview Component", method: "POST", pathTemplate: "/v1/projects/{id}/component-preview", pathParams: ["id"], bodyKey: "previewComponentBody", description: "Render one component preview \u2014 Queue a preview of ONE org-installed component. Baked components return the SAME content-addressed VP9-alpha motion clip the production render composites; live components return a still captured through the live JS lane without silently baking. Returns a jobId \u2014 wait_job(kind='preview') for the artifact. Compile/runtime failures land on the job terminal with the sanitized author-fixable message. \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": false, "idempotentHint": false, "openWorldHint": false } },
|
|
8823
9076
|
{ operationId: "previewFrame", toolName: "cueframe_api_previewFrame", title: "Preview Frame", method: "POST", pathTemplate: "/v1/projects/{id}/preview-frame", pathParams: ["id"], bodyKey: "previewFrameBody", description: "Render still frame(s) of a composition \u2014 Render presigned still(s) of the composition at the given timestamps \u2014 the live preview for layout/copy judgment (a still cannot show motion: judge motion with preview_clip or preview_component). Stateless: nothing to open, warm, or close, and concurrent previews no longer contend. \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": false, "idempotentHint": false, "openWorldHint": false } },
|
|
9077
|
+
{ operationId: "previewFrameJob", toolName: "cueframe_api_previewFrameJob", title: "Preview Frame Job", method: "POST", pathTemplate: "/v1/projects/{id}/preview-frame-jobs", pathParams: ["id"], bodyKey: "previewFrameJobBody", description: "Queue still-frame evidence for a composition \u2014 Resolve and freeze the exact authored target, then queue durable still capture. Returns immediately; poll the generic job with wait_job(kind='preview_frame'). One successful request is one compose_capture operation regardless of timestamp count. \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": false, "idempotentHint": false, "openWorldHint": false } },
|
|
8824
9078
|
{ operationId: "previewSelector", toolName: "cueframe_api_previewSelector", title: "Preview Selector", method: "POST", pathTemplate: "/v1/projects/{id}/selector/preview", pathParams: ["id"], bodyKey: "previewSelectorBody", description: "Re-resolve a switch advisory under a hand-supplied policy (A/B taste; not persisted) \u2014 Required permission: media:read \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": false, "idempotentHint": false, "openWorldHint": false } },
|
|
8825
9079
|
{ operationId: "purchaseMediaFact", toolName: "cueframe_api_purchaseMediaFact", title: "Purchase Media Fact", method: "POST", pathTemplate: "/v1/media/{id}/facts", pathParams: ["id"], bodyKey: "purchaseMediaFactBody", description: "Buy a derived fact (subject track or behind-subject matte) \u2014 Purchases one enhancement for this source. `matte` REQUIRES `intent:{startSec,endSec}` \u2014 the clip's SOURCE window \u2014 because a matte's cost scales with its duration. For `subjectTrack` the same `intent` is OPTIONAL: give the clip's source window to buy the track the render will look up for THAT clip (and pay only for its duration); omit it for the whole source. If the fact already exists (pending or ready) this returns it with `alreadyExisted:true` and charges nothing. Charging happens on DELIVERY, never here: a job that never lands is never billed. \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": false, "idempotentHint": false, "openWorldHint": false } },
|
|
8826
9080
|
{ operationId: "putComposition", toolName: "cueframe_api_putComposition", title: "Put Composition", method: "PUT", pathTemplate: "/v1/projects/{id}/composition", pathParams: ["id"], bodyKey: "putCompositionBody", description: "Replace a project's composition \u2014 Required permission: projects:write \u2014 Advanced (expert layer) \u2014 prefer the curated high-level tools (compose, apply_composition, create_render, wait_job, get_media_context) when they fit your task.", annotations: { "readOnlyHint": false, "destructiveHint": true, "idempotentHint": true, "openWorldHint": false } },
|
|
@@ -9066,10 +9320,10 @@ function paymentRequiredResult(paymentRequired) {
|
|
|
9066
9320
|
structuredContent: paymentRequired
|
|
9067
9321
|
};
|
|
9068
9322
|
}
|
|
9069
|
-
async function dispatchOp(ex, op, mapArg, body, extra, label, formatOk) {
|
|
9323
|
+
async function dispatchOp(ex, op, mapArg, body, extra, label, formatOk, query) {
|
|
9070
9324
|
const paymentObj = extractPaymentFromMeta(extra?._meta);
|
|
9071
9325
|
const payment = paymentObj ? encodePaymentSignature(paymentObj) : void 0;
|
|
9072
|
-
const res = await invokeOp(ex, op, mapArg, body, payment);
|
|
9326
|
+
const res = await invokeOp(ex, op, mapArg, body, payment, query);
|
|
9073
9327
|
if (res.status === MCP_PAYMENT_REQUIRED_CODE) {
|
|
9074
9328
|
const parsed = safeParse(res.text);
|
|
9075
9329
|
if (isX402PaymentRequired(parsed)) return paymentRequiredResult(parsed);
|