@cueframe/kernel 0.2.51 → 0.2.53
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/composition/fonts/bundledFaces.d.ts +9 -15
- package/dist/_members/composition/fonts/captionFaces.d.ts +2 -3
- package/dist/_members/composition/ops/captionOps.d.ts +11 -0
- package/dist/_members/composition/ops/compositionOps.d.ts +20 -19
- package/dist/_members/composition/validators/composition.d.ts +664 -0
- package/dist/_members/composition/validators/registry.d.ts +1 -1
- package/dist/_members/composition/validators/render.d.ts +294 -0
- package/dist/_members/composition-ops/index.d.ts +86 -0
- package/dist/_members/core/render/compositionAudioAndDepth.d.ts +9 -3
- package/dist/_members/core/render/compositionRender.d.ts +14 -0
- package/dist/_members/core/render/index.d.ts +2 -2
- package/dist/_members/core/render/types.d.ts +4 -1
- package/dist/_members/plane/contract.d.ts +1 -1
- package/dist/_members/primitives/captions/Captions.d.ts +18 -1
- package/dist/_members/primitives/captions/index.d.ts +1 -1
- package/dist/animate.js +2 -2
- package/dist/authoring/build-tools.js +6 -6
- package/dist/authoring/context.js +5 -5
- package/dist/authoring/tools.js +5 -5
- package/dist/authoring.js +9 -9
- package/dist/{chunk-MYBK6DKF.js → chunk-2BVKNYRB.js} +1 -1
- package/dist/{chunk-2LUAUF46.js → chunk-46DGDPXR.js} +303 -47
- package/dist/{chunk-KY3QBG7O.js → chunk-4DM63RTI.js} +4 -4
- package/dist/{chunk-IHWC75AN.js → chunk-5E4YP44R.js} +1 -1
- package/dist/{chunk-MOUWO53S.js → chunk-7AUHC2X7.js} +1 -1
- package/dist/{chunk-AVTEPAWI.js → chunk-7RGDRDAR.js} +17 -13
- package/dist/{chunk-7XZW26U2.js → chunk-AONWKKXK.js} +1 -1
- package/dist/{chunk-O3SJTX6S.js → chunk-C6ONUJIO.js} +5 -5
- package/dist/{chunk-LO3DH776.js → chunk-CJMUTCJW.js} +2 -2
- package/dist/{chunk-CZOVEX2D.js → chunk-CR3G2JQP.js} +1 -1
- package/dist/{chunk-2PU2TSUG.js → chunk-D5E5XFHK.js} +1 -1
- package/dist/{chunk-6WQHVYJD.js → chunk-G7ZSFSQG.js} +1 -1
- package/dist/{chunk-7SXY6NFW.js → chunk-GAACUQAB.js} +4 -4
- package/dist/{chunk-4CNJGY7P.js → chunk-LPUQTBKU.js} +147 -27
- package/dist/{chunk-YKXOAGY3.js → chunk-P3DYA5NA.js} +8 -8
- package/dist/{chunk-Z6NY6MCL.js → chunk-RMLGMYEJ.js} +1 -1
- package/dist/{chunk-NLXQ7WTH.js → chunk-TPKPU4PE.js} +56 -38
- package/dist/{chunk-LZEX2GAY.js → chunk-UFNIB3JL.js} +144 -5
- package/dist/{chunk-ACURZCPN.js → chunk-UKKY7HWN.js} +1 -1
- package/dist/{chunk-M665ZQYB.js → chunk-VTM7NEJC.js} +38 -6
- package/dist/{chunk-FSA3UBVR.js → chunk-ZFW35DLG.js} +1 -1
- package/dist/{chunk-OVV35ZS2.js → chunk-ZIPGDGBR.js} +1 -1
- package/dist/component-runtime/render.js +2 -2
- package/dist/component-runtime.js +3 -3
- package/dist/compose.js +23 -23
- package/dist/composition/fonts.js +1 -1
- package/dist/composition/graphics-plan.js +3 -3
- package/dist/composition/ops.js +4 -4
- package/dist/composition/projection.js +3 -3
- package/dist/composition/validators.js +17 -3
- package/dist/composition-ops.js +8 -8
- package/dist/composition.js +19 -5
- package/dist/{context-AIUJG7R4.js → context-UAS5WJRB.js} +5 -5
- package/dist/core/render.js +6 -4
- package/dist/core.js +4 -4
- package/dist/mcp/adapter.js +2 -2
- package/dist/mcp/core.js +1 -1
- package/dist/mcp/scene-shot.js +2 -2
- package/dist/mcp/server.js +12 -12
- package/dist/mcp.js +12 -12
- package/dist/primitives/captions.js +195 -32
- package/dist/primitives/effects.js +4 -4
- package/dist/primitives/hero-text.js +2 -2
- package/dist/primitives/layouts.js +3 -3
- package/dist/primitives/scenes.js +4 -4
- package/dist/primitives/text.js +2 -2
- package/dist/primitives/ui-blocks.js +4 -4
- package/dist/primitives.js +23 -23
- package/dist/render-harness/cardFonts.js +2 -2
- package/dist/render-harness.js +12 -12
- package/package.json +12 -12
- package/dist/{chunk-RL5SO653.js → chunk-7SQOXIWR.js} +3 -3
- package/dist/{chunk-B3GSTQLR.js → chunk-VLJOIUHL.js} +6 -6
- package/dist/{chunk-RBWS5XHE.js → chunk-X34KW2SL.js} +4 -4
|
@@ -1436,6 +1436,7 @@ var BriefCreateRequest = zod19.strictObject({
|
|
|
1436
1436
|
"h": zod19.number().gt(briefCreateRequestSeededGraphicsItemRegionHExclusiveMin).max(briefCreateRequestSeededGraphicsItemRegionHMax)
|
|
1437
1437
|
}).optional(),
|
|
1438
1438
|
"fit": zod19.enum(["cover", "contain"]).optional(),
|
|
1439
|
+
"captionVisibility": zod19.enum(["visible", "hidden"]).optional().describe("Video media clip only. Hide native captions while this clip is the visible full-frame picture; caption words and timings remain stored and resume when another visible clip takes over."),
|
|
1439
1440
|
"effects": zod19.array(zod19.strictObject({
|
|
1440
1441
|
"primitiveId": zod19.string().min(1),
|
|
1441
1442
|
"params": zod19.record(zod19.string(), zod19.unknown()).optional()
|
|
@@ -1697,6 +1698,7 @@ var BriefResponse = zod21.strictObject({
|
|
|
1697
1698
|
"h": zod21.number().gt(briefResponseSeededGraphicsItemRegionHExclusiveMin).max(briefResponseSeededGraphicsItemRegionHMax)
|
|
1698
1699
|
}).optional(),
|
|
1699
1700
|
"fit": zod21.enum(["cover", "contain"]).optional(),
|
|
1701
|
+
"captionVisibility": zod21.enum(["visible", "hidden"]).optional().describe("Video media clip only. Hide native captions while this clip is the visible full-frame picture; caption words and timings remain stored and resume when another visible clip takes over."),
|
|
1700
1702
|
"effects": zod21.array(zod21.strictObject({
|
|
1701
1703
|
"primitiveId": zod21.string().min(1),
|
|
1702
1704
|
"params": zod21.record(zod21.string(), zod21.unknown()).optional()
|
|
@@ -1947,6 +1949,7 @@ var BriefPatchRequest = zod23.strictObject({
|
|
|
1947
1949
|
"h": zod23.number().gt(briefPatchRequestSeededGraphicsItemRegionHExclusiveMin).max(briefPatchRequestSeededGraphicsItemRegionHMax)
|
|
1948
1950
|
}).optional(),
|
|
1949
1951
|
"fit": zod23.enum(["cover", "contain"]).optional(),
|
|
1952
|
+
"captionVisibility": zod23.enum(["visible", "hidden"]).optional().describe("Video media clip only. Hide native captions while this clip is the visible full-frame picture; caption words and timings remain stored and resume when another visible clip takes over."),
|
|
1950
1953
|
"effects": zod23.array(zod23.strictObject({
|
|
1951
1954
|
"primitiveId": zod23.string().min(1),
|
|
1952
1955
|
"params": zod23.record(zod23.string(), zod23.unknown()).optional()
|
|
@@ -2601,6 +2604,39 @@ var compositionCaptionsOneStyleExitMsMin = 0;
|
|
|
2601
2604
|
var compositionCaptionsOneStyleEmphasisPlateRadiusMin = 0;
|
|
2602
2605
|
var compositionCaptionsOneStyleMaxWidthPercentExclusiveMin = 0;
|
|
2603
2606
|
var compositionCaptionsOneStyleMaxWidthPercentMax = 100;
|
|
2607
|
+
var compositionCaptionsOneLayoutsItemSegmentIndexMin = 0;
|
|
2608
|
+
var compositionCaptionsOneLayoutsItemSegmentIndexMax = 9007199254740991;
|
|
2609
|
+
var compositionCaptionsOneLayoutsItemWordStartIndexMin = 0;
|
|
2610
|
+
var compositionCaptionsOneLayoutsItemWordStartIndexMax = 9007199254740991;
|
|
2611
|
+
var compositionCaptionsOneLayoutsItemWordEndIndexExclusiveMin = 0;
|
|
2612
|
+
var compositionCaptionsOneLayoutsItemWordEndIndexMax = 9007199254740991;
|
|
2613
|
+
var compositionCaptionsOneLayoutsItemRegionXMin = 0;
|
|
2614
|
+
var compositionCaptionsOneLayoutsItemRegionXMax = 1;
|
|
2615
|
+
var compositionCaptionsOneLayoutsItemRegionYMin = 0;
|
|
2616
|
+
var compositionCaptionsOneLayoutsItemRegionYMax = 1;
|
|
2617
|
+
var compositionCaptionsOneLayoutsItemRegionWExclusiveMin = 0;
|
|
2618
|
+
var compositionCaptionsOneLayoutsItemRegionWMax = 1;
|
|
2619
|
+
var compositionCaptionsOneLayoutsItemRegionHExclusiveMin = 0;
|
|
2620
|
+
var compositionCaptionsOneLayoutsItemRegionHMax = 1;
|
|
2621
|
+
var compositionCaptionsOneLayoutsItemScaleMin = 0.25;
|
|
2622
|
+
var compositionCaptionsOneLayoutsItemScaleMax = 4;
|
|
2623
|
+
var compositionCaptionsOneLayoutsItemRotationMin = -45;
|
|
2624
|
+
var compositionCaptionsOneLayoutsItemRotationMax = 45;
|
|
2625
|
+
var compositionCaptionsOneLayoutsItemStyleFontSizeMax = 15;
|
|
2626
|
+
var compositionCaptionsOneLayoutsItemStyleFontWeightMin = 100;
|
|
2627
|
+
var compositionCaptionsOneLayoutsItemStyleFontWeightMax = 900;
|
|
2628
|
+
var compositionCaptionsOneLayoutsItemStyleEmphasisScaleExclusiveMin = 0;
|
|
2629
|
+
var compositionCaptionsOneLayoutsItemStyleEmphasisFontWeightMin = 100;
|
|
2630
|
+
var compositionCaptionsOneLayoutsItemStyleEmphasisFontWeightMax = 900;
|
|
2631
|
+
var compositionCaptionsOneLayoutsItemStyleEmphasisPlateRadiusMin = 0;
|
|
2632
|
+
var compositionCaptionsOneLayoutsItemStyleEntranceMsMin = 0;
|
|
2633
|
+
var compositionCaptionsOneLayoutsItemStyleEntranceStaggerMsMin = 0;
|
|
2634
|
+
var compositionCaptionsOneLayoutsItemStyleExitMsMin = 0;
|
|
2635
|
+
var compositionCaptionsOneLayoutsItemHoldThroughWordIndexMin = 0;
|
|
2636
|
+
var compositionCaptionsOneLayoutsItemHoldThroughWordIndexMax = 9007199254740991;
|
|
2637
|
+
var compositionCaptionsOneLayoutsItemWordMarksItemWordIndexMin = 0;
|
|
2638
|
+
var compositionCaptionsOneLayoutsItemWordMarksItemWordIndexMax = 9007199254740991;
|
|
2639
|
+
var compositionCaptionsOneLayoutsItemWordSignatureRegExp = new RegExp("^[a-f0-9]{64}$");
|
|
2604
2640
|
var compositionCaptionsTwoSegmentsItemWordsItemStartMsMin = 0;
|
|
2605
2641
|
var compositionCaptionsTwoSegmentsItemWordsItemEndMsMin = 0;
|
|
2606
2642
|
var compositionCaptionsTwoStyleFontSizeMax = 15;
|
|
@@ -2623,6 +2659,39 @@ var compositionCaptionsTwoStyleExitMsMin = 0;
|
|
|
2623
2659
|
var compositionCaptionsTwoStyleEmphasisPlateRadiusMin = 0;
|
|
2624
2660
|
var compositionCaptionsTwoStyleMaxWidthPercentExclusiveMin = 0;
|
|
2625
2661
|
var compositionCaptionsTwoStyleMaxWidthPercentMax = 100;
|
|
2662
|
+
var compositionCaptionsTwoLayoutsItemSegmentIndexMin = 0;
|
|
2663
|
+
var compositionCaptionsTwoLayoutsItemSegmentIndexMax = 9007199254740991;
|
|
2664
|
+
var compositionCaptionsTwoLayoutsItemWordStartIndexMin = 0;
|
|
2665
|
+
var compositionCaptionsTwoLayoutsItemWordStartIndexMax = 9007199254740991;
|
|
2666
|
+
var compositionCaptionsTwoLayoutsItemWordEndIndexExclusiveMin = 0;
|
|
2667
|
+
var compositionCaptionsTwoLayoutsItemWordEndIndexMax = 9007199254740991;
|
|
2668
|
+
var compositionCaptionsTwoLayoutsItemRegionXMin = 0;
|
|
2669
|
+
var compositionCaptionsTwoLayoutsItemRegionXMax = 1;
|
|
2670
|
+
var compositionCaptionsTwoLayoutsItemRegionYMin = 0;
|
|
2671
|
+
var compositionCaptionsTwoLayoutsItemRegionYMax = 1;
|
|
2672
|
+
var compositionCaptionsTwoLayoutsItemRegionWExclusiveMin = 0;
|
|
2673
|
+
var compositionCaptionsTwoLayoutsItemRegionWMax = 1;
|
|
2674
|
+
var compositionCaptionsTwoLayoutsItemRegionHExclusiveMin = 0;
|
|
2675
|
+
var compositionCaptionsTwoLayoutsItemRegionHMax = 1;
|
|
2676
|
+
var compositionCaptionsTwoLayoutsItemScaleMin = 0.25;
|
|
2677
|
+
var compositionCaptionsTwoLayoutsItemScaleMax = 4;
|
|
2678
|
+
var compositionCaptionsTwoLayoutsItemRotationMin = -45;
|
|
2679
|
+
var compositionCaptionsTwoLayoutsItemRotationMax = 45;
|
|
2680
|
+
var compositionCaptionsTwoLayoutsItemStyleFontSizeMax = 15;
|
|
2681
|
+
var compositionCaptionsTwoLayoutsItemStyleFontWeightMin = 100;
|
|
2682
|
+
var compositionCaptionsTwoLayoutsItemStyleFontWeightMax = 900;
|
|
2683
|
+
var compositionCaptionsTwoLayoutsItemStyleEmphasisScaleExclusiveMin = 0;
|
|
2684
|
+
var compositionCaptionsTwoLayoutsItemStyleEmphasisFontWeightMin = 100;
|
|
2685
|
+
var compositionCaptionsTwoLayoutsItemStyleEmphasisFontWeightMax = 900;
|
|
2686
|
+
var compositionCaptionsTwoLayoutsItemStyleEmphasisPlateRadiusMin = 0;
|
|
2687
|
+
var compositionCaptionsTwoLayoutsItemStyleEntranceMsMin = 0;
|
|
2688
|
+
var compositionCaptionsTwoLayoutsItemStyleEntranceStaggerMsMin = 0;
|
|
2689
|
+
var compositionCaptionsTwoLayoutsItemStyleExitMsMin = 0;
|
|
2690
|
+
var compositionCaptionsTwoLayoutsItemHoldThroughWordIndexMin = 0;
|
|
2691
|
+
var compositionCaptionsTwoLayoutsItemHoldThroughWordIndexMax = 9007199254740991;
|
|
2692
|
+
var compositionCaptionsTwoLayoutsItemWordMarksItemWordIndexMin = 0;
|
|
2693
|
+
var compositionCaptionsTwoLayoutsItemWordMarksItemWordIndexMax = 9007199254740991;
|
|
2694
|
+
var compositionCaptionsTwoLayoutsItemWordSignatureRegExp = new RegExp("^[a-f0-9]{64}$");
|
|
2626
2695
|
var Composition = zod58.strictObject({
|
|
2627
2696
|
"v": zod58.literal(1),
|
|
2628
2697
|
"format": zod58.strictObject({
|
|
@@ -2755,6 +2824,7 @@ var Composition = zod58.strictObject({
|
|
|
2755
2824
|
"h": zod58.number().gt(compositionTracksItemContentsItemOneRegionHExclusiveMin).max(compositionTracksItemContentsItemOneRegionHMax)
|
|
2756
2825
|
}).optional(),
|
|
2757
2826
|
"fit": zod58.enum(["cover", "contain"]).optional(),
|
|
2827
|
+
"captionVisibility": zod58.enum(["visible", "hidden"]).optional().describe("Video media clip only. Hide native captions while this clip is the visible full-frame picture; caption words and timings remain stored and resume when another visible clip takes over."),
|
|
2758
2828
|
"effects": zod58.array(zod58.strictObject({
|
|
2759
2829
|
"primitiveId": zod58.string().min(1),
|
|
2760
2830
|
"params": zod58.record(zod58.string(), zod58.unknown()).optional()
|
|
@@ -2843,6 +2913,56 @@ var Composition = zod58.strictObject({
|
|
|
2843
2913
|
"annotationColor": zod58.string().optional(),
|
|
2844
2914
|
"maxWidthPercent": zod58.number().gt(compositionCaptionsOneStyleMaxWidthPercentExclusiveMin).max(compositionCaptionsOneStyleMaxWidthPercentMax).optional()
|
|
2845
2915
|
}).optional(),
|
|
2916
|
+
"layouts": zod58.array(zod58.strictObject({
|
|
2917
|
+
"segmentIndex": zod58.int().min(compositionCaptionsOneLayoutsItemSegmentIndexMin).max(compositionCaptionsOneLayoutsItemSegmentIndexMax),
|
|
2918
|
+
"wordStartIndex": zod58.int().min(compositionCaptionsOneLayoutsItemWordStartIndexMin).max(compositionCaptionsOneLayoutsItemWordStartIndexMax),
|
|
2919
|
+
"wordEndIndex": zod58.int().gt(compositionCaptionsOneLayoutsItemWordEndIndexExclusiveMin).max(compositionCaptionsOneLayoutsItemWordEndIndexMax).describe("Exclusive word index in the saved caption segment."),
|
|
2920
|
+
"region": zod58.strictObject({
|
|
2921
|
+
"x": zod58.number().min(compositionCaptionsOneLayoutsItemRegionXMin).max(compositionCaptionsOneLayoutsItemRegionXMax),
|
|
2922
|
+
"y": zod58.number().min(compositionCaptionsOneLayoutsItemRegionYMin).max(compositionCaptionsOneLayoutsItemRegionYMax),
|
|
2923
|
+
"w": zod58.number().gt(compositionCaptionsOneLayoutsItemRegionWExclusiveMin).max(compositionCaptionsOneLayoutsItemRegionWMax),
|
|
2924
|
+
"h": zod58.number().gt(compositionCaptionsOneLayoutsItemRegionHExclusiveMin).max(compositionCaptionsOneLayoutsItemRegionHMax)
|
|
2925
|
+
}),
|
|
2926
|
+
"scale": zod58.number().min(compositionCaptionsOneLayoutsItemScaleMin).max(compositionCaptionsOneLayoutsItemScaleMax).optional(),
|
|
2927
|
+
"rotation": zod58.number().min(compositionCaptionsOneLayoutsItemRotationMin).max(compositionCaptionsOneLayoutsItemRotationMax).optional(),
|
|
2928
|
+
"style": zod58.strictObject({
|
|
2929
|
+
"fontFamily": zod58.string().min(1).optional(),
|
|
2930
|
+
"fontSize": zod58.number().min(1).max(compositionCaptionsOneLayoutsItemStyleFontSizeMax).optional().describe("Font size as % of composition height (1-15, default 5). NOT px."),
|
|
2931
|
+
"fontWeight": zod58.int().min(compositionCaptionsOneLayoutsItemStyleFontWeightMin).max(compositionCaptionsOneLayoutsItemStyleFontWeightMax).optional(),
|
|
2932
|
+
"color": zod58.string().min(1).optional(),
|
|
2933
|
+
"highlightColor": zod58.string().min(1).optional(),
|
|
2934
|
+
"backgroundColor": zod58.string().optional(),
|
|
2935
|
+
"plate": zod58.enum(["glass", "solid", "none"]).optional(),
|
|
2936
|
+
"textTransform": zod58.enum(["none", "uppercase", "capitalize"]).optional(),
|
|
2937
|
+
"emphasisColor": zod58.string().optional(),
|
|
2938
|
+
"emphasisScale": zod58.number().gt(compositionCaptionsOneLayoutsItemStyleEmphasisScaleExclusiveMin).optional(),
|
|
2939
|
+
"emphasisFontFamily": zod58.string().optional(),
|
|
2940
|
+
"emphasisFontWeight": zod58.int().min(compositionCaptionsOneLayoutsItemStyleEmphasisFontWeightMin).max(compositionCaptionsOneLayoutsItemStyleEmphasisFontWeightMax).optional(),
|
|
2941
|
+
"emphasisTextTransform": zod58.enum(["none", "uppercase", "capitalize"]).optional(),
|
|
2942
|
+
"emphasisLetterSpacing": zod58.number().optional(),
|
|
2943
|
+
"emphasisFontStyle": zod58.enum(["normal", "italic"]).optional(),
|
|
2944
|
+
"emphasisPlate": zod58.boolean().optional(),
|
|
2945
|
+
"emphasisPlateColor": zod58.string().optional(),
|
|
2946
|
+
"emphasisPlateTextColor": zod58.string().optional(),
|
|
2947
|
+
"emphasisPlateAltColor": zod58.string().optional(),
|
|
2948
|
+
"emphasisPlateAltTextColor": zod58.string().optional(),
|
|
2949
|
+
"emphasisPlateRadius": zod58.number().min(compositionCaptionsOneLayoutsItemStyleEmphasisPlateRadiusMin).optional(),
|
|
2950
|
+
"emphasisPlatePadX": zod58.number().optional(),
|
|
2951
|
+
"emphasisPlatePadY": zod58.number().optional(),
|
|
2952
|
+
"annotationColor": zod58.string().optional(),
|
|
2953
|
+
"entrance": zod58.enum(["none", "fade", "word-pop", "stagger-up"]).optional(),
|
|
2954
|
+
"entranceMs": zod58.number().min(compositionCaptionsOneLayoutsItemStyleEntranceMsMin).optional(),
|
|
2955
|
+
"entranceStaggerMs": zod58.number().min(compositionCaptionsOneLayoutsItemStyleEntranceStaggerMsMin).optional(),
|
|
2956
|
+
"exitMs": zod58.number().min(compositionCaptionsOneLayoutsItemStyleExitMsMin).optional()
|
|
2957
|
+
}).optional(),
|
|
2958
|
+
"holdThroughWordIndex": zod58.int().min(compositionCaptionsOneLayoutsItemHoldThroughWordIndexMin).max(compositionCaptionsOneLayoutsItemHoldThroughWordIndexMax).optional().describe("Inclusive saved-word index in this segment. The layout stays visible until that word ends."),
|
|
2959
|
+
"wordMarks": zod58.array(zod58.strictObject({
|
|
2960
|
+
"wordIndex": zod58.int().min(compositionCaptionsOneLayoutsItemWordMarksItemWordIndexMin).max(compositionCaptionsOneLayoutsItemWordMarksItemWordIndexMax),
|
|
2961
|
+
"emphasis": zod58.boolean().optional(),
|
|
2962
|
+
"annotate": zod58.union([zod58.enum(["circle", "underline"]), zod58.null()]).optional()
|
|
2963
|
+
})).optional(),
|
|
2964
|
+
"wordSignature": zod58.string().regex(compositionCaptionsOneLayoutsItemWordSignatureRegExp)
|
|
2965
|
+
})).optional(),
|
|
2846
2966
|
"zPlane": zod58.enum(["front", "behind-subject"]).optional()
|
|
2847
2967
|
}), zod58.strictObject({
|
|
2848
2968
|
"source": zod58.literal("authored"),
|
|
@@ -2894,6 +3014,56 @@ var Composition = zod58.strictObject({
|
|
|
2894
3014
|
"annotationColor": zod58.string().optional(),
|
|
2895
3015
|
"maxWidthPercent": zod58.number().gt(compositionCaptionsTwoStyleMaxWidthPercentExclusiveMin).max(compositionCaptionsTwoStyleMaxWidthPercentMax).optional()
|
|
2896
3016
|
}).optional(),
|
|
3017
|
+
"layouts": zod58.array(zod58.strictObject({
|
|
3018
|
+
"segmentIndex": zod58.int().min(compositionCaptionsTwoLayoutsItemSegmentIndexMin).max(compositionCaptionsTwoLayoutsItemSegmentIndexMax),
|
|
3019
|
+
"wordStartIndex": zod58.int().min(compositionCaptionsTwoLayoutsItemWordStartIndexMin).max(compositionCaptionsTwoLayoutsItemWordStartIndexMax),
|
|
3020
|
+
"wordEndIndex": zod58.int().gt(compositionCaptionsTwoLayoutsItemWordEndIndexExclusiveMin).max(compositionCaptionsTwoLayoutsItemWordEndIndexMax).describe("Exclusive word index in the saved caption segment."),
|
|
3021
|
+
"region": zod58.strictObject({
|
|
3022
|
+
"x": zod58.number().min(compositionCaptionsTwoLayoutsItemRegionXMin).max(compositionCaptionsTwoLayoutsItemRegionXMax),
|
|
3023
|
+
"y": zod58.number().min(compositionCaptionsTwoLayoutsItemRegionYMin).max(compositionCaptionsTwoLayoutsItemRegionYMax),
|
|
3024
|
+
"w": zod58.number().gt(compositionCaptionsTwoLayoutsItemRegionWExclusiveMin).max(compositionCaptionsTwoLayoutsItemRegionWMax),
|
|
3025
|
+
"h": zod58.number().gt(compositionCaptionsTwoLayoutsItemRegionHExclusiveMin).max(compositionCaptionsTwoLayoutsItemRegionHMax)
|
|
3026
|
+
}),
|
|
3027
|
+
"scale": zod58.number().min(compositionCaptionsTwoLayoutsItemScaleMin).max(compositionCaptionsTwoLayoutsItemScaleMax).optional(),
|
|
3028
|
+
"rotation": zod58.number().min(compositionCaptionsTwoLayoutsItemRotationMin).max(compositionCaptionsTwoLayoutsItemRotationMax).optional(),
|
|
3029
|
+
"style": zod58.strictObject({
|
|
3030
|
+
"fontFamily": zod58.string().min(1).optional(),
|
|
3031
|
+
"fontSize": zod58.number().min(1).max(compositionCaptionsTwoLayoutsItemStyleFontSizeMax).optional().describe("Font size as % of composition height (1-15, default 5). NOT px."),
|
|
3032
|
+
"fontWeight": zod58.int().min(compositionCaptionsTwoLayoutsItemStyleFontWeightMin).max(compositionCaptionsTwoLayoutsItemStyleFontWeightMax).optional(),
|
|
3033
|
+
"color": zod58.string().min(1).optional(),
|
|
3034
|
+
"highlightColor": zod58.string().min(1).optional(),
|
|
3035
|
+
"backgroundColor": zod58.string().optional(),
|
|
3036
|
+
"plate": zod58.enum(["glass", "solid", "none"]).optional(),
|
|
3037
|
+
"textTransform": zod58.enum(["none", "uppercase", "capitalize"]).optional(),
|
|
3038
|
+
"emphasisColor": zod58.string().optional(),
|
|
3039
|
+
"emphasisScale": zod58.number().gt(compositionCaptionsTwoLayoutsItemStyleEmphasisScaleExclusiveMin).optional(),
|
|
3040
|
+
"emphasisFontFamily": zod58.string().optional(),
|
|
3041
|
+
"emphasisFontWeight": zod58.int().min(compositionCaptionsTwoLayoutsItemStyleEmphasisFontWeightMin).max(compositionCaptionsTwoLayoutsItemStyleEmphasisFontWeightMax).optional(),
|
|
3042
|
+
"emphasisTextTransform": zod58.enum(["none", "uppercase", "capitalize"]).optional(),
|
|
3043
|
+
"emphasisLetterSpacing": zod58.number().optional(),
|
|
3044
|
+
"emphasisFontStyle": zod58.enum(["normal", "italic"]).optional(),
|
|
3045
|
+
"emphasisPlate": zod58.boolean().optional(),
|
|
3046
|
+
"emphasisPlateColor": zod58.string().optional(),
|
|
3047
|
+
"emphasisPlateTextColor": zod58.string().optional(),
|
|
3048
|
+
"emphasisPlateAltColor": zod58.string().optional(),
|
|
3049
|
+
"emphasisPlateAltTextColor": zod58.string().optional(),
|
|
3050
|
+
"emphasisPlateRadius": zod58.number().min(compositionCaptionsTwoLayoutsItemStyleEmphasisPlateRadiusMin).optional(),
|
|
3051
|
+
"emphasisPlatePadX": zod58.number().optional(),
|
|
3052
|
+
"emphasisPlatePadY": zod58.number().optional(),
|
|
3053
|
+
"annotationColor": zod58.string().optional(),
|
|
3054
|
+
"entrance": zod58.enum(["none", "fade", "word-pop", "stagger-up"]).optional(),
|
|
3055
|
+
"entranceMs": zod58.number().min(compositionCaptionsTwoLayoutsItemStyleEntranceMsMin).optional(),
|
|
3056
|
+
"entranceStaggerMs": zod58.number().min(compositionCaptionsTwoLayoutsItemStyleEntranceStaggerMsMin).optional(),
|
|
3057
|
+
"exitMs": zod58.number().min(compositionCaptionsTwoLayoutsItemStyleExitMsMin).optional()
|
|
3058
|
+
}).optional(),
|
|
3059
|
+
"holdThroughWordIndex": zod58.int().min(compositionCaptionsTwoLayoutsItemHoldThroughWordIndexMin).max(compositionCaptionsTwoLayoutsItemHoldThroughWordIndexMax).optional().describe("Inclusive saved-word index in this segment. The layout stays visible until that word ends."),
|
|
3060
|
+
"wordMarks": zod58.array(zod58.strictObject({
|
|
3061
|
+
"wordIndex": zod58.int().min(compositionCaptionsTwoLayoutsItemWordMarksItemWordIndexMin).max(compositionCaptionsTwoLayoutsItemWordMarksItemWordIndexMax),
|
|
3062
|
+
"emphasis": zod58.boolean().optional(),
|
|
3063
|
+
"annotate": zod58.union([zod58.enum(["circle", "underline"]), zod58.null()]).optional()
|
|
3064
|
+
})).optional(),
|
|
3065
|
+
"wordSignature": zod58.string().regex(compositionCaptionsTwoLayoutsItemWordSignatureRegExp)
|
|
3066
|
+
})).optional(),
|
|
2897
3067
|
"zPlane": zod58.enum(["front", "behind-subject"]).optional()
|
|
2898
3068
|
})]).optional(),
|
|
2899
3069
|
"license": zod58.strictObject({
|
|
@@ -6117,32 +6287,64 @@ var compositionOpOnethreeStyleExitMsMin = 0;
|
|
|
6117
6287
|
var compositionOpOnethreeStyleEmphasisPlateRadiusMin = 0;
|
|
6118
6288
|
var compositionOpOnethreeStyleMaxWidthPercentExclusiveMin = 0;
|
|
6119
6289
|
var compositionOpOnethreeStyleMaxWidthPercentMax = 100;
|
|
6120
|
-
var
|
|
6121
|
-
var
|
|
6122
|
-
var
|
|
6123
|
-
var
|
|
6124
|
-
var
|
|
6125
|
-
var
|
|
6126
|
-
var
|
|
6127
|
-
var
|
|
6128
|
-
var
|
|
6129
|
-
var
|
|
6130
|
-
var
|
|
6131
|
-
var
|
|
6132
|
-
var
|
|
6133
|
-
var
|
|
6134
|
-
var
|
|
6135
|
-
var
|
|
6136
|
-
var
|
|
6137
|
-
var
|
|
6138
|
-
var
|
|
6139
|
-
var
|
|
6140
|
-
var
|
|
6141
|
-
var
|
|
6142
|
-
var
|
|
6143
|
-
var
|
|
6144
|
-
var
|
|
6145
|
-
var
|
|
6290
|
+
var compositionOpOnefourLayoutsItemSegmentIndexMin = 0;
|
|
6291
|
+
var compositionOpOnefourLayoutsItemSegmentIndexMax = 9007199254740991;
|
|
6292
|
+
var compositionOpOnefourLayoutsItemWordStartIndexMin = 0;
|
|
6293
|
+
var compositionOpOnefourLayoutsItemWordStartIndexMax = 9007199254740991;
|
|
6294
|
+
var compositionOpOnefourLayoutsItemWordEndIndexExclusiveMin = 0;
|
|
6295
|
+
var compositionOpOnefourLayoutsItemWordEndIndexMax = 9007199254740991;
|
|
6296
|
+
var compositionOpOnefourLayoutsItemRegionXMin = 0;
|
|
6297
|
+
var compositionOpOnefourLayoutsItemRegionXMax = 1;
|
|
6298
|
+
var compositionOpOnefourLayoutsItemRegionYMin = 0;
|
|
6299
|
+
var compositionOpOnefourLayoutsItemRegionYMax = 1;
|
|
6300
|
+
var compositionOpOnefourLayoutsItemRegionWExclusiveMin = 0;
|
|
6301
|
+
var compositionOpOnefourLayoutsItemRegionWMax = 1;
|
|
6302
|
+
var compositionOpOnefourLayoutsItemRegionHExclusiveMin = 0;
|
|
6303
|
+
var compositionOpOnefourLayoutsItemRegionHMax = 1;
|
|
6304
|
+
var compositionOpOnefourLayoutsItemScaleMin = 0.25;
|
|
6305
|
+
var compositionOpOnefourLayoutsItemScaleMax = 4;
|
|
6306
|
+
var compositionOpOnefourLayoutsItemRotationMin = -45;
|
|
6307
|
+
var compositionOpOnefourLayoutsItemRotationMax = 45;
|
|
6308
|
+
var compositionOpOnefourLayoutsItemStyleFontSizeMax = 15;
|
|
6309
|
+
var compositionOpOnefourLayoutsItemStyleFontWeightMin = 100;
|
|
6310
|
+
var compositionOpOnefourLayoutsItemStyleFontWeightMax = 900;
|
|
6311
|
+
var compositionOpOnefourLayoutsItemStyleEmphasisScaleExclusiveMin = 0;
|
|
6312
|
+
var compositionOpOnefourLayoutsItemStyleEmphasisFontWeightMin = 100;
|
|
6313
|
+
var compositionOpOnefourLayoutsItemStyleEmphasisFontWeightMax = 900;
|
|
6314
|
+
var compositionOpOnefourLayoutsItemStyleEmphasisPlateRadiusMin = 0;
|
|
6315
|
+
var compositionOpOnefourLayoutsItemStyleEntranceMsMin = 0;
|
|
6316
|
+
var compositionOpOnefourLayoutsItemStyleEntranceStaggerMsMin = 0;
|
|
6317
|
+
var compositionOpOnefourLayoutsItemStyleExitMsMin = 0;
|
|
6318
|
+
var compositionOpOnefourLayoutsItemHoldThroughWordIndexMin = 0;
|
|
6319
|
+
var compositionOpOnefourLayoutsItemHoldThroughWordIndexMax = 9007199254740991;
|
|
6320
|
+
var compositionOpOnefourLayoutsItemWordMarksItemWordIndexMin = 0;
|
|
6321
|
+
var compositionOpOnefourLayoutsItemWordMarksItemWordIndexMax = 9007199254740991;
|
|
6322
|
+
var compositionOpOnesixSegmentsItemWordsItemStartMsMin = 0;
|
|
6323
|
+
var compositionOpOnesixSegmentsItemWordsItemEndMsMin = 0;
|
|
6324
|
+
var compositionOpOnesixStyleFontSizeMax = 15;
|
|
6325
|
+
var compositionOpOnesixStyleFontWeightMin = 100;
|
|
6326
|
+
var compositionOpOnesixStyleFontWeightMax = 900;
|
|
6327
|
+
var compositionOpOnesixStyleRegionXMin = 0;
|
|
6328
|
+
var compositionOpOnesixStyleRegionXMax = 1;
|
|
6329
|
+
var compositionOpOnesixStyleRegionYMin = 0;
|
|
6330
|
+
var compositionOpOnesixStyleRegionYMax = 1;
|
|
6331
|
+
var compositionOpOnesixStyleRegionWExclusiveMin = 0;
|
|
6332
|
+
var compositionOpOnesixStyleRegionWMax = 1;
|
|
6333
|
+
var compositionOpOnesixStyleRegionHExclusiveMin = 0;
|
|
6334
|
+
var compositionOpOnesixStyleRegionHMax = 1;
|
|
6335
|
+
var compositionOpOnesixStyleEmphasisScaleExclusiveMin = 0;
|
|
6336
|
+
var compositionOpOnesixStyleEmphasisFontWeightMin = 100;
|
|
6337
|
+
var compositionOpOnesixStyleEmphasisFontWeightMax = 900;
|
|
6338
|
+
var compositionOpOnesixStyleEntranceMsMin = 0;
|
|
6339
|
+
var compositionOpOnesixStyleEntranceStaggerMsMin = 0;
|
|
6340
|
+
var compositionOpOnesixStyleExitMsMin = 0;
|
|
6341
|
+
var compositionOpOnesixStyleEmphasisPlateRadiusMin = 0;
|
|
6342
|
+
var compositionOpOnesixStyleMaxWidthPercentExclusiveMin = 0;
|
|
6343
|
+
var compositionOpOnesixStyleMaxWidthPercentMax = 100;
|
|
6344
|
+
var compositionOpOnesevenWindowStartSecMin = 0;
|
|
6345
|
+
var compositionOpOnesevenWindowEndSecExclusiveMin = 0;
|
|
6346
|
+
var compositionOpTwozeroMaxMarkersExclusiveMin = 0;
|
|
6347
|
+
var compositionOpTwozeroMaxMarkersMax = 2e3;
|
|
6146
6348
|
var CompositionOp = zod67.union([zod67.strictObject({
|
|
6147
6349
|
"type": zod67.literal("scene.add"),
|
|
6148
6350
|
"clipId": zod67.string(),
|
|
@@ -6282,6 +6484,7 @@ var CompositionOp = zod67.union([zod67.strictObject({
|
|
|
6282
6484
|
"h": zod67.number().gt(compositionOpThreeClipRegionHExclusiveMin).max(compositionOpThreeClipRegionHMax)
|
|
6283
6485
|
}).optional(),
|
|
6284
6486
|
"fit": zod67.enum(["cover", "contain"]).optional(),
|
|
6487
|
+
"captionVisibility": zod67.enum(["visible", "hidden"]).optional().describe("Video media clip only. Hide native captions while this clip is the visible full-frame picture; caption words and timings remain stored and resume when another visible clip takes over."),
|
|
6285
6488
|
"effects": zod67.array(zod67.strictObject({
|
|
6286
6489
|
"primitiveId": zod67.string().min(1),
|
|
6287
6490
|
"params": zod67.record(zod67.string(), zod67.unknown()).optional()
|
|
@@ -6431,6 +6634,7 @@ var CompositionOp = zod67.union([zod67.strictObject({
|
|
|
6431
6634
|
"h": zod67.number().gt(compositionOpFivePatchRegionHExclusiveMin).max(compositionOpFivePatchRegionHMax)
|
|
6432
6635
|
}).optional(),
|
|
6433
6636
|
"fit": zod67.enum(["cover", "contain"]).optional(),
|
|
6637
|
+
"captionVisibility": zod67.enum(["visible", "hidden"]).optional().describe("Video media clip only. Hide native captions while this clip is the visible full-frame picture; caption words and timings remain stored and resume when another visible clip takes over."),
|
|
6434
6638
|
"effects": zod67.array(zod67.strictObject({
|
|
6435
6639
|
"primitiveId": zod67.string().min(1),
|
|
6436
6640
|
"params": zod67.record(zod67.string(), zod67.unknown()).optional()
|
|
@@ -6576,6 +6780,7 @@ var CompositionOp = zod67.union([zod67.strictObject({
|
|
|
6576
6780
|
"h": zod67.number().gt(compositionOpSevenClipsItemRegionHExclusiveMin).max(compositionOpSevenClipsItemRegionHMax)
|
|
6577
6781
|
}).optional(),
|
|
6578
6782
|
"fit": zod67.enum(["cover", "contain"]).optional(),
|
|
6783
|
+
"captionVisibility": zod67.enum(["visible", "hidden"]).optional().describe("Video media clip only. Hide native captions while this clip is the visible full-frame picture; caption words and timings remain stored and resume when another visible clip takes over."),
|
|
6579
6784
|
"effects": zod67.array(zod67.strictObject({
|
|
6580
6785
|
"primitiveId": zod67.string().min(1),
|
|
6581
6786
|
"params": zod67.record(zod67.string(), zod67.unknown()).optional()
|
|
@@ -6703,6 +6908,57 @@ var CompositionOp = zod67.union([zod67.strictObject({
|
|
|
6703
6908
|
"maxWidthPercent": zod67.number().gt(compositionOpOnethreeStyleMaxWidthPercentExclusiveMin).max(compositionOpOnethreeStyleMaxWidthPercentMax).optional()
|
|
6704
6909
|
})
|
|
6705
6910
|
}).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."), zod67.strictObject({
|
|
6911
|
+
"type": zod67.literal("setCaptionLayouts"),
|
|
6912
|
+
"layouts": zod67.array(zod67.strictObject({
|
|
6913
|
+
"segmentIndex": zod67.int().min(compositionOpOnefourLayoutsItemSegmentIndexMin).max(compositionOpOnefourLayoutsItemSegmentIndexMax),
|
|
6914
|
+
"wordStartIndex": zod67.int().min(compositionOpOnefourLayoutsItemWordStartIndexMin).max(compositionOpOnefourLayoutsItemWordStartIndexMax),
|
|
6915
|
+
"wordEndIndex": zod67.int().gt(compositionOpOnefourLayoutsItemWordEndIndexExclusiveMin).max(compositionOpOnefourLayoutsItemWordEndIndexMax).describe("Exclusive word index in the saved caption segment."),
|
|
6916
|
+
"region": zod67.strictObject({
|
|
6917
|
+
"x": zod67.number().min(compositionOpOnefourLayoutsItemRegionXMin).max(compositionOpOnefourLayoutsItemRegionXMax),
|
|
6918
|
+
"y": zod67.number().min(compositionOpOnefourLayoutsItemRegionYMin).max(compositionOpOnefourLayoutsItemRegionYMax),
|
|
6919
|
+
"w": zod67.number().gt(compositionOpOnefourLayoutsItemRegionWExclusiveMin).max(compositionOpOnefourLayoutsItemRegionWMax),
|
|
6920
|
+
"h": zod67.number().gt(compositionOpOnefourLayoutsItemRegionHExclusiveMin).max(compositionOpOnefourLayoutsItemRegionHMax)
|
|
6921
|
+
}),
|
|
6922
|
+
"scale": zod67.number().min(compositionOpOnefourLayoutsItemScaleMin).max(compositionOpOnefourLayoutsItemScaleMax).optional(),
|
|
6923
|
+
"rotation": zod67.number().min(compositionOpOnefourLayoutsItemRotationMin).max(compositionOpOnefourLayoutsItemRotationMax).optional(),
|
|
6924
|
+
"style": zod67.strictObject({
|
|
6925
|
+
"fontFamily": zod67.string().min(1).optional(),
|
|
6926
|
+
"fontSize": zod67.number().min(1).max(compositionOpOnefourLayoutsItemStyleFontSizeMax).optional().describe("Font size as % of composition height (1-15, default 5). NOT px."),
|
|
6927
|
+
"fontWeight": zod67.int().min(compositionOpOnefourLayoutsItemStyleFontWeightMin).max(compositionOpOnefourLayoutsItemStyleFontWeightMax).optional(),
|
|
6928
|
+
"color": zod67.string().min(1).optional(),
|
|
6929
|
+
"highlightColor": zod67.string().min(1).optional(),
|
|
6930
|
+
"backgroundColor": zod67.string().optional(),
|
|
6931
|
+
"plate": zod67.enum(["glass", "solid", "none"]).optional(),
|
|
6932
|
+
"textTransform": zod67.enum(["none", "uppercase", "capitalize"]).optional(),
|
|
6933
|
+
"emphasisColor": zod67.string().optional(),
|
|
6934
|
+
"emphasisScale": zod67.number().gt(compositionOpOnefourLayoutsItemStyleEmphasisScaleExclusiveMin).optional(),
|
|
6935
|
+
"emphasisFontFamily": zod67.string().optional(),
|
|
6936
|
+
"emphasisFontWeight": zod67.int().min(compositionOpOnefourLayoutsItemStyleEmphasisFontWeightMin).max(compositionOpOnefourLayoutsItemStyleEmphasisFontWeightMax).optional(),
|
|
6937
|
+
"emphasisTextTransform": zod67.enum(["none", "uppercase", "capitalize"]).optional(),
|
|
6938
|
+
"emphasisLetterSpacing": zod67.number().optional(),
|
|
6939
|
+
"emphasisFontStyle": zod67.enum(["normal", "italic"]).optional(),
|
|
6940
|
+
"emphasisPlate": zod67.boolean().optional(),
|
|
6941
|
+
"emphasisPlateColor": zod67.string().optional(),
|
|
6942
|
+
"emphasisPlateTextColor": zod67.string().optional(),
|
|
6943
|
+
"emphasisPlateAltColor": zod67.string().optional(),
|
|
6944
|
+
"emphasisPlateAltTextColor": zod67.string().optional(),
|
|
6945
|
+
"emphasisPlateRadius": zod67.number().min(compositionOpOnefourLayoutsItemStyleEmphasisPlateRadiusMin).optional(),
|
|
6946
|
+
"emphasisPlatePadX": zod67.number().optional(),
|
|
6947
|
+
"emphasisPlatePadY": zod67.number().optional(),
|
|
6948
|
+
"annotationColor": zod67.string().optional(),
|
|
6949
|
+
"entrance": zod67.enum(["none", "fade", "word-pop", "stagger-up"]).optional(),
|
|
6950
|
+
"entranceMs": zod67.number().min(compositionOpOnefourLayoutsItemStyleEntranceMsMin).optional(),
|
|
6951
|
+
"entranceStaggerMs": zod67.number().min(compositionOpOnefourLayoutsItemStyleEntranceStaggerMsMin).optional(),
|
|
6952
|
+
"exitMs": zod67.number().min(compositionOpOnefourLayoutsItemStyleExitMsMin).optional()
|
|
6953
|
+
}).optional(),
|
|
6954
|
+
"holdThroughWordIndex": zod67.int().min(compositionOpOnefourLayoutsItemHoldThroughWordIndexMin).max(compositionOpOnefourLayoutsItemHoldThroughWordIndexMax).optional().describe("Inclusive saved-word index in this segment. The layout stays visible until that word ends."),
|
|
6955
|
+
"wordMarks": zod67.array(zod67.strictObject({
|
|
6956
|
+
"wordIndex": zod67.int().min(compositionOpOnefourLayoutsItemWordMarksItemWordIndexMin).max(compositionOpOnefourLayoutsItemWordMarksItemWordIndexMax),
|
|
6957
|
+
"emphasis": zod67.boolean().optional(),
|
|
6958
|
+
"annotate": zod67.union([zod67.enum(["circle", "underline"]), zod67.null()]).optional()
|
|
6959
|
+
})).optional()
|
|
6960
|
+
}))
|
|
6961
|
+
}).describe("Replace native caption placements without changing transcript words or timings. Each layout references a half-open word-index range in one saved segment; a one-word range is valid. region places that group independently, optional bounded scale/rotation/style changes its look, and holdThroughWordIndex keeps it visible through a later saved word in the same segment. All words in a placed range occupy one page; rendering refuses a range that cannot fit its box, so enlarge region or split the range. The box reserves horizontal space of 1.6 font sizes and vertical space of 0.8 font sizes for padding, with at most three lines. Unreferenced words keep the default caption layout. Word ranges must not overlap. Reapply after caption regeneration or timeline cuts."), zod67.strictObject({
|
|
6706
6962
|
"type": zod67.literal("setCaptionDepth"),
|
|
6707
6963
|
"zPlane": zod67.enum(["front", "behind-subject"])
|
|
6708
6964
|
}).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."), zod67.strictObject({
|
|
@@ -6710,57 +6966,57 @@ var CompositionOp = zod67.union([zod67.strictObject({
|
|
|
6710
6966
|
"segments": zod67.array(zod67.strictObject({
|
|
6711
6967
|
"words": zod67.array(zod67.strictObject({
|
|
6712
6968
|
"text": zod67.string().min(1),
|
|
6713
|
-
"startMs": zod67.number().min(
|
|
6714
|
-
"endMs": zod67.number().min(
|
|
6969
|
+
"startMs": zod67.number().min(compositionOpOnesixSegmentsItemWordsItemStartMsMin).describe("Word start on the composition timeline, in milliseconds."),
|
|
6970
|
+
"endMs": zod67.number().min(compositionOpOnesixSegmentsItemWordsItemEndMsMin).describe("Word end on the composition timeline, in milliseconds."),
|
|
6715
6971
|
"emphasis": zod67.boolean().optional(),
|
|
6716
6972
|
"annotate": zod67.enum(["circle", "underline"]).optional()
|
|
6717
6973
|
}))
|
|
6718
6974
|
})),
|
|
6719
6975
|
"style": zod67.strictObject({
|
|
6720
6976
|
"fontFamily": zod67.string().min(1).optional(),
|
|
6721
|
-
"fontSize": zod67.number().min(1).max(
|
|
6722
|
-
"fontWeight": zod67.int().min(
|
|
6977
|
+
"fontSize": zod67.number().min(1).max(compositionOpOnesixStyleFontSizeMax).optional().describe("Font size as % of composition height (1-15, default 5). NOT px."),
|
|
6978
|
+
"fontWeight": zod67.int().min(compositionOpOnesixStyleFontWeightMin).max(compositionOpOnesixStyleFontWeightMax).optional(),
|
|
6723
6979
|
"color": zod67.string().min(1).optional(),
|
|
6724
6980
|
"highlightColor": zod67.string().min(1).optional(),
|
|
6725
6981
|
"backgroundColor": zod67.string().optional(),
|
|
6726
6982
|
"plate": zod67.enum(["glass", "solid", "none"]).optional(),
|
|
6727
6983
|
"position": zod67.enum(["top", "center", "bottom"]).optional(),
|
|
6728
6984
|
"region": zod67.strictObject({
|
|
6729
|
-
"x": zod67.number().min(
|
|
6730
|
-
"y": zod67.number().min(
|
|
6731
|
-
"w": zod67.number().gt(
|
|
6732
|
-
"h": zod67.number().gt(
|
|
6985
|
+
"x": zod67.number().min(compositionOpOnesixStyleRegionXMin).max(compositionOpOnesixStyleRegionXMax),
|
|
6986
|
+
"y": zod67.number().min(compositionOpOnesixStyleRegionYMin).max(compositionOpOnesixStyleRegionYMax),
|
|
6987
|
+
"w": zod67.number().gt(compositionOpOnesixStyleRegionWExclusiveMin).max(compositionOpOnesixStyleRegionWMax),
|
|
6988
|
+
"h": zod67.number().gt(compositionOpOnesixStyleRegionHExclusiveMin).max(compositionOpOnesixStyleRegionHMax)
|
|
6733
6989
|
}).optional().describe("Optional caption layout box {x,y,w,h} in normalized output-frame coordinates. Overrides position; text starts at its top edge and wraps/pages within its width and height."),
|
|
6734
6990
|
"textTransform": zod67.enum(["none", "uppercase", "capitalize"]).optional(),
|
|
6735
6991
|
"emphasisColor": zod67.string().optional(),
|
|
6736
6992
|
"emphasisGradient": zod67.string().optional(),
|
|
6737
|
-
"emphasisScale": zod67.number().gt(
|
|
6993
|
+
"emphasisScale": zod67.number().gt(compositionOpOnesixStyleEmphasisScaleExclusiveMin).optional(),
|
|
6738
6994
|
"emphasisFontFamily": zod67.string().optional(),
|
|
6739
|
-
"emphasisFontWeight": zod67.int().min(
|
|
6995
|
+
"emphasisFontWeight": zod67.int().min(compositionOpOnesixStyleEmphasisFontWeightMin).max(compositionOpOnesixStyleEmphasisFontWeightMax).optional(),
|
|
6740
6996
|
"emphasisTextTransform": zod67.enum(["none", "uppercase", "capitalize"]).optional(),
|
|
6741
6997
|
"emphasisLetterSpacing": zod67.number().optional(),
|
|
6742
6998
|
"emphasisFontStyle": zod67.enum(["normal", "italic"]).optional(),
|
|
6743
6999
|
"entrance": zod67.enum(["none", "fade", "word-pop", "stagger-up"]).optional(),
|
|
6744
|
-
"entranceMs": zod67.number().min(
|
|
6745
|
-
"entranceStaggerMs": zod67.number().min(
|
|
6746
|
-
"exitMs": zod67.number().min(
|
|
7000
|
+
"entranceMs": zod67.number().min(compositionOpOnesixStyleEntranceMsMin).optional(),
|
|
7001
|
+
"entranceStaggerMs": zod67.number().min(compositionOpOnesixStyleEntranceStaggerMsMin).optional(),
|
|
7002
|
+
"exitMs": zod67.number().min(compositionOpOnesixStyleExitMsMin).optional(),
|
|
6747
7003
|
"emphasisPlate": zod67.boolean().optional(),
|
|
6748
7004
|
"emphasisPlateColor": zod67.string().optional(),
|
|
6749
7005
|
"emphasisPlateTextColor": zod67.string().optional(),
|
|
6750
7006
|
"emphasisPlateAltColor": zod67.string().optional(),
|
|
6751
7007
|
"emphasisPlateAltTextColor": zod67.string().optional(),
|
|
6752
|
-
"emphasisPlateRadius": zod67.number().min(
|
|
7008
|
+
"emphasisPlateRadius": zod67.number().min(compositionOpOnesixStyleEmphasisPlateRadiusMin).optional(),
|
|
6753
7009
|
"emphasisPlatePadX": zod67.number().optional(),
|
|
6754
7010
|
"emphasisPlatePadY": zod67.number().optional(),
|
|
6755
7011
|
"annotationColor": zod67.string().optional(),
|
|
6756
|
-
"maxWidthPercent": zod67.number().gt(
|
|
7012
|
+
"maxWidthPercent": zod67.number().gt(compositionOpOnesixStyleMaxWidthPercentExclusiveMin).max(compositionOpOnesixStyleMaxWidthPercentMax).optional()
|
|
6757
7013
|
}).optional()
|
|
6758
7014
|
}).describe("Replace the caption SEGMENTS wholesale \u2014 author the word-timed caption layer directly (each segment = one sentence/page of `words` with timeline-ms `startMs`/`endMs`, optional `emphasis`). This is how a client with its OWN word timings (e.g. a generated VO take) gets word-synced captions without a source transcript; the compose lane's transcript slice writes the same layer. `style`, when given, merges with setCaptionStyle semantics; an omitted style keeps the existing one. Renderer paginates within a segment and never pools words across two \u2014 keep segments sentence-bounded."), zod67.strictObject({
|
|
6759
7015
|
"type": zod67.literal("captions.fromTranscript"),
|
|
6760
7016
|
"mediaId": zod67.string().min(1),
|
|
6761
7017
|
"window": zod67.strictObject({
|
|
6762
|
-
"startSec": zod67.number().min(
|
|
6763
|
-
"endSec": zod67.number().gt(
|
|
7018
|
+
"startSec": zod67.number().min(compositionOpOnesevenWindowStartSecMin),
|
|
7019
|
+
"endSec": zod67.number().gt(compositionOpOnesevenWindowEndSecExclusiveMin)
|
|
6764
7020
|
}).optional()
|
|
6765
7021
|
}).describe("Attach caption CONTENT from the media's cached transcript \u2014 no pasting words. ROUTE-MATERIALIZED like applyMotionPreset/materializeGrid: the server slices the word-timed transcript to `window` (source seconds; absent = the whole media), rebases times, sentence-splits into segments, and applies it as `setCaptions`. 422 media_no_transcript when the media has no transcript or no words in the window. For your OWN word timings use setCaptions directly. For edited multi-clip timelines, use captions.fromComposition after saving the edits; that operation projects all selected track clips, trims, exclusions, and placements."), zod67.strictObject({
|
|
6766
7022
|
"type": zod67.literal("captions.fromComposition"),
|
|
@@ -6778,7 +7034,7 @@ var CompositionOp = zod67.union([zod67.strictObject({
|
|
|
6778
7034
|
"type": zod67.literal("materializeGrid"),
|
|
6779
7035
|
"clipId": zod67.string(),
|
|
6780
7036
|
"grid": zod67.enum(["beat", "word", "shot"]),
|
|
6781
|
-
"maxMarkers": zod67.int().gt(
|
|
7037
|
+
"maxMarkers": zod67.int().gt(compositionOpTwozeroMaxMarkersExclusiveMin).max(compositionOpTwozeroMaxMarkersMax).optional()
|
|
6782
7038
|
}).describe('Materialize a clip\'s SOURCE-media temporal GRID as timeline markers \u2014 the rhythm authority you cut to. `grid:"beat"` reads a MUSIC bed\'s beat map (get_media_context.beatGrid), `grid:"word"` the VO word onsets (wordGrid); each grid point is projected from media time to TIMELINE time through the clip\'s placement (startTime, trim, playbackRate, excludedRanges) and written as a `kind:"beat"|"word"` marker (`metadata.sourceClipId` set). Points outside the clip\'s visible window are skipped. Re-running REPLACES the prior markers from the same clip+grid (idempotent). Land cuts and transition MIDPOINTS on the markers (a 0.5s transition starts 0.25s before its marker). `maxMarkers` (default 500, ceiling 2000) \u2014 exceeding it fails loud with the count. `grid:"shot"` is not yet exposed (shot_grid_unavailable). The target must be a media clip; absent evidence fails loud (grid_unavailable) naming how to get it (declare audioRole:"music" at ingest / transcribe).'), zod67.strictObject({
|
|
6783
7039
|
"type": zod67.literal("setFormat"),
|
|
6784
7040
|
"format": zod67.strictObject({
|
|
@@ -7911,7 +8167,7 @@ var RenderFontsResponse = zod157.strictObject({
|
|
|
7911
8167
|
"min": zod157.number(),
|
|
7912
8168
|
"max": zod157.number()
|
|
7913
8169
|
})).describe("The weights a shipped file declares. A static face has min === max; a variable face gives its declared wght axis range. Any weight inside a range renders; anything outside every range is REFUSED, never synthesised."),
|
|
7914
|
-
"styles": zod157.array(zod157.enum(["normal"])).describe("The styles bytes exist for
|
|
8170
|
+
"styles": zod157.array(zod157.enum(["normal", "italic"])).describe("The styles bytes exist for in this family. Request italic only when this list includes 'italic'; the renderer refuses synthetic slant."),
|
|
7915
8171
|
"captionDefaults": zod157.strictObject({
|
|
7916
8172
|
"base": zod157.number(),
|
|
7917
8173
|
"emphasis": zod157.number()
|
|
@@ -9375,7 +9631,7 @@ var GENERATED_OPERATIONS = [
|
|
|
9375
9631
|
{ operationId: "listMediaSuggestions", toolName: "cueframe_api_listMediaSuggestions", title: "List Media Suggestions", method: "GET", pathTemplate: "/v1/media/{id}/suggestions", pathParams: ["id"], queryParams: [{ "name": "limit", "required": false, "description": "Page size (1..100), default 20. Out-of-range or unparseable clamps into the range.", "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "minimum": 1, "maximum": 100 } }, { "name": "after", "required": false, "description": "Opaque cursor from the previous page's `pagination.nextCursor`. Forward-only.", "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "string" } }, { "name": "platform", "required": false, "description": "Only suggestions cut for this delivery platform.", "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "string" } }, { "name": "format", "required": false, "description": "Only suggestions in this output format.", "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "string" } }, { "name": "topic", "required": false, "description": "Only suggestions matching this topic label.", "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "string" } }], bodyKey: null, description: "List clip suggestions for a media item \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 }, outputSchema: { "type": "object", "properties": { "status": { "type": "string", "enum": ["idle", "generating", "completed", "failed"] }, "createdAt": { "type": ["string", "null"] }, "analyzedAt": { "type": ["string", "null"] }, "jobId": { "type": ["string", "null"] }, "topics": { "type": "array" }, "suggestions": { "type": "array" }, "pagination": { "type": "object", "description": "Cursor pagination metadata." } }, "additionalProperties": true } },
|
|
9376
9632
|
{ operationId: "listProjectRenders", toolName: "cueframe_api_listProjectRenders", title: "List Project Renders", method: "GET", pathTemplate: "/v1/projects/{id}/renders", pathParams: ["id"], queryParams: [{ "name": "limit", "required": false, "description": "Page size (1..100), default 20. Out-of-range or unparseable clamps into the range.", "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "minimum": 1, "maximum": 100 } }, { "name": "after", "required": false, "description": "Opaque cursor from the previous page's `pagination.nextCursor`. Forward-only.", "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "string" } }, { "name": "status", "required": false, "description": "Comma-separated render statuses to include (e.g. `error,cancelled`). Omit for every status.", "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "string" } }], bodyKey: null, description: "List renders for a project \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 }, outputSchema: { "type": "object", "properties": { "data": { "type": "array" }, "pagination": { "type": "object", "description": "Cursor pagination metadata." } }, "additionalProperties": true } },
|
|
9377
9633
|
{ operationId: "listProjects", toolName: "cueframe_api_listProjects", title: "List Projects", method: "GET", pathTemplate: "/v1/projects", pathParams: [], queryParams: [{ "name": "limit", "required": false, "description": "Page size (1..100), default 20. Out-of-range or unparseable clamps into the range.", "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "minimum": 1, "maximum": 100 } }, { "name": "after", "required": false, "description": "Opaque cursor from the previous page's `pagination.nextCursor`. Forward-only.", "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "string" } }], bodyKey: null, description: "List projects \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 }, outputSchema: { "type": "object", "properties": { "data": { "type": "array" }, "pagination": { "type": "object", "description": "Cursor pagination metadata." } }, "additionalProperties": true } },
|
|
9378
|
-
{ operationId: "listRenderFonts", toolName: "cueframe_api_listRenderFonts", title: "List Render Fonts", method: "GET", pathTemplate: "/v1/fonts", pathParams: [], queryParams: [], bodyKey: null, description: "List the font faces the renderer can actually draw \u2014 The renderer's admitted font set: per family the exact name authoring accepts, the weight ranges a shipped file declares, the styles bytes exist for, the caption default weights, and whether the bytes are bundled or an aliased metric-compatible stand-in. Choose from here and validate_composition will not refuse the face. Unlike POST /fonts/search (which searches the GOOGLE catalog) this is what the render page can rasterize. `manifestVersion` identifies the exact table and moves only when the admitted set does. Covers the BUNDLED set only \u2014 a brand kit's sealed faces are per-org and per-render
|
|
9634
|
+
{ operationId: "listRenderFonts", toolName: "cueframe_api_listRenderFonts", title: "List Render Fonts", method: "GET", pathTemplate: "/v1/fonts", pathParams: [], queryParams: [], bodyKey: null, description: "List the font faces the renderer can actually draw \u2014 The renderer's admitted font set: per family the exact name authoring accepts, the weight ranges a shipped file declares, the styles bytes exist for, the caption default weights, and whether the bytes are bundled or an aliased metric-compatible stand-in. Choose from here and validate_composition will not refuse the face. Unlike POST /fonts/search (which searches the GOOGLE catalog) this is what the render page can rasterize. `manifestVersion` identifies the exact table and moves only when the admitted set does. Covers the BUNDLED set only \u2014 a brand kit's sealed faces are per-org and per-render. \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 }, outputSchema: { "type": "object", "properties": { "manifestVersion": { "type": "string", "description": "Identifies this exact face table. Derived from the table's own content, so it moves when and only when the admitted set moves. Record it beside a composition to state which face table a font choice was validated against." }, "families": { "type": "array" } }, "additionalProperties": true } },
|
|
9379
9635
|
{ operationId: "listSelectorCandidates", toolName: "cueframe_api_listSelectorCandidates", title: "List Selector Candidates", method: "GET", pathTemplate: "/v1/projects/{id}/selector/candidates", pathParams: ["id"], queryParams: [{ "name": "groupId", "required": true, "description": "The synced-angle group to score.", "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "string", "minLength": 1 } }], bodyKey: null, description: "List switch (multicam) candidates + recommendation for a synced-angle group \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 }, outputSchema: { "type": "object", "properties": { "projectId": { "type": "string" }, "groupId": { "type": "string" }, "selectorVersion": { "type": "string" }, "signalVersions": { "type": "object" }, "moments": { "type": "array" }, "recommendation": { "type": "object" }, "divergesFromComposition": { "type": "boolean" } }, "additionalProperties": true } },
|
|
9380
9636
|
{ operationId: "listSessions", toolName: "cueframe_api_listSessions", title: "List Sessions", method: "GET", pathTemplate: "/v1/sessions", pathParams: [], queryParams: [{ "name": "limit", "required": false, "description": "Page size (1..100), default 20. Out-of-range or unparseable clamps into the range.", "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "minimum": 1, "maximum": 100 } }, { "name": "after", "required": false, "description": "Opaque cursor from the previous page's `pagination.nextCursor`. Forward-only.", "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "string" } }], bodyKey: null, description: "List sessions \u2014 Required permission: sessions: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 }, outputSchema: { "type": "object", "properties": { "data": { "type": "array" }, "pagination": { "type": "object", "description": "Cursor pagination metadata." } }, "additionalProperties": true } },
|
|
9381
9637
|
{ operationId: "listSkills", toolName: "cueframe_api_listSkills", title: "List Skills", method: "GET", pathTemplate: "/v1/skills", pathParams: [], queryParams: [], 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 }, outputSchema: { "type": "object", "properties": { "skills": { "type": "array" } }, "additionalProperties": true } },
|
|
@@ -9398,7 +9654,7 @@ var GENERATED_OPERATIONS = [
|
|
|
9398
9654
|
{ operationId: "retryRender", toolName: "cueframe_api_retryRender", title: "Retry Render", method: "POST", pathTemplate: "/v1/projects/{id}/renders/{renderId}/retry", pathParams: ["id", "renderId"], queryParams: [], bodyKey: null, description: "Re-render against an existing renderJob's snapshot \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 }, outputSchema: { "type": "object", "properties": { "id": { "type": "string" }, "status": { "type": "string", "enum": ["queued", "pending", "rendering", "complete", "error", "cancelled"] }, "progress": { "type": "object", "description": "Non-terminal render progress; phase is one of the worker's emitted stages." }, "outputUrl": { "type": ["string", "null"] }, "outputExpiresAt": { "type": ["string", "null"] }, "error": { "type": ["string", "null"], "description": "Human-readable failure message. Pair with `errorCode` for a stable, machine-readable code an agent runner can branch on." }, "errorCode": { "type": ["string", "null"], "description": "Stable, machine-readable error code (e.g. `render_pipeline_unavailable`, `render_route_missing`, `render_pipeline_failed`). Null when status is not `error` or unavailable for an older render." }, "errorDetails": { "description": "Structured failure context \u2014 `{ targetUrl?, upstreamStatus?, upstreamCode?, attemptedAt? }`. Surfaced so agent runners can distinguish operator-config issues from upstream-down vs route-missing without parsing `error`." }, "category": { "description": "Failure taxonomy when status is `error`; null otherwise. `authoring` = deterministic defect in YOUR composition/request \u2014 fix it, retrying is futile; `transient` = temporary pipeline/infra failure \u2014 safe to retry_render; `internal` = unexpected server fault \u2014 retry once then escalate. Mirrors the render.failed webhook's `category`." }, "retryable": { "type": ["boolean", "null"], "description": "Whether re-attempting the SAME render can succeed (status `error`); null otherwise. true \u2192 call retry_render. false \u2192 deterministic (category authoring/internal); fix the composition first \u2014 retry_render alone reproduces it. Mirrors the render.failed webhook's `retryable`." }, "createdAt": { "type": "string" }, "updatedAt": { "type": "string", "description": "ISO-8601 timestamp of the render's most recent progress update. Compute staleness = now \u2212 updatedAt to distinguish a wedged render from a slow one and decide whether to wait, cancel, or retry." }, "listUsd": { "type": "number", "description": "A2 money stamp: the metered event's LIST price (USD), stamped at the success terminal (exports for deliverable renders, compose_capture for A8 previews). A plan allowance may zero the actual invoice line \u2014 this is the list price, never a Stripe charge. Absent while running, on failure, and for x402 orgs (on-chain receipts). Mirrors the get_usage ledger." }, "warnings": { "type": "array", "description": "Non-fatal advisories surfaced at render-CREATE (omitted when none, and on GET \u2014 create-time only)." } }, "additionalProperties": true } },
|
|
9399
9655
|
{ operationId: "scoreComposition", toolName: "cueframe_api_scoreComposition", title: "Score Composition", method: "POST", pathTemplate: "/v1/projects/{id}/score-composition", pathParams: ["id"], queryParams: [], bodyKey: "scoreCompositionBody", description: "Score a composition (the standalone sighted judge) \u2014 Queue the server-side judge: it samples eval beats, renders them, and grades editorial/spatial/brand/caption (0\u201310 + weighted composite + worst-first critique). Your REGISTERED CRITICS run too (register_critic) \u2014 rules + rubric verdicts ride the result as clientScores, exactly like the Director's gates evaluate them (evaluator-webhook critics run in the Director lane only). Returns a jobId \u2014 wait_job(kind='verify') for the result, which ALSO carries a checkpointId: the verdicts mint a durable kind:'score' Checkpoint (the same evidence noun the Director's gates produce). Stateless \u2014 nothing to open, warm or close; the compose_verify meter fires on the job's success terminal. \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 }, outputSchema: { "type": "object", "properties": { "jobId": { "type": "string", "description": "Poll GET /v1/jobs/{jobId} / wait_job until terminal." }, "jobKey": { "type": "string", "description": "Deterministic identity of the work (content hash of every input the result depends on). Re-enqueueing the same key returns the same job while it runs; a failed key revives as a fresh attempt." }, "kind": { "type": "string", "description": "Job family, e.g. `verify` | `preview` | `brand_kit_extract`." }, "status": { "type": "string", "description": "running on a fresh/deduped enqueue; succeeded when an identical request already completed. Cancelled is part of the shared status vocabulary; identical cancelled work revives to running.", "enum": ["running", "succeeded", "cancelled"] } }, "additionalProperties": true } },
|
|
9400
9656
|
{ operationId: "scoreTrace", toolName: "cueframe_api_scoreTrace", title: "Score Trace", method: "POST", pathTemplate: "/v1/traces/{traceId}/scores", pathParams: ["traceId"], queryParams: [], bodyKey: "scoreTraceBody", description: "Attach production scores to one of your director traces \u2014 Record 1\u201310 named scores (0..1) on a trace the CueFrame gateway produced for YOUR director run \u2014 the trace id is the `trace_id` the client stamped on that run's requests. Only the trace's own user may score it; any other trace id answers 404. Scores are accepted asynchronously and acknowledged with 202. Free. \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 }, outputSchema: { "type": "object", "properties": { "accepted": { "type": "integer" } }, "additionalProperties": true } },
|
|
9401
|
-
{ operationId: "searchFonts", toolName: "cueframe_api_searchFonts", title: "Search Fonts", method: "POST", pathTemplate: "/v1/fonts/search", pathParams: [], queryParams: [], bodyKey: "searchFontsBody", description: "Search web font families by name/style \u2014 Search the Google Fonts web-font catalog by keyword. Returns matching font families (family name + category + available variants + a css2 stylesheet URL). DISCOVERY ONLY, and this is NOT the set the renderer can draw: a cloud render draws only the faces GET /v1/fonts lists, or a face sealed in a brand kit font asset. Naming any other family in captions/params fails validate_composition with font_not_reproducible. Read GET /v1/fonts to choose a family AND an admitted weight before authoring
|
|
9657
|
+
{ operationId: "searchFonts", toolName: "cueframe_api_searchFonts", title: "Search Fonts", method: "POST", pathTemplate: "/v1/fonts/search", pathParams: [], queryParams: [], bodyKey: "searchFontsBody", description: "Search web font families by name/style \u2014 Search the Google Fonts web-font catalog by keyword. Returns matching font families (family name + category + available variants + a css2 stylesheet URL). DISCOVERY ONLY, and this is NOT the set the renderer can draw: a cloud render draws only the faces GET /v1/fonts lists, or a face sealed in a brand kit font asset. Naming any other family in captions/params fails validate_composition with font_not_reproducible. Read GET /v1/fonts to choose a family AND an admitted weight and style before authoring. Read-only and free; results are cached server-side. An empty `results` array means no match (or the upstream catalog was unavailable). \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": true }, outputSchema: { "type": "object", "properties": { "results": { "type": "array" } }, "additionalProperties": true } },
|
|
9402
9658
|
{ operationId: "searchLibrary", toolName: "cueframe_api_searchLibrary", title: "Search Library", method: "GET", pathTemplate: "/v1/media/search", pathParams: [], queryParams: [{ "name": "q", "required": true, "description": "What the moment should look like, in plain language. Describe the IMAGE, not the words spoken.", "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "string", "minLength": 1 } }, { "name": "limit", "required": false, "description": "Maximum moments to return. Default 10, maximum 25.", "style": "form", "explode": true, "allowReserved": false, "schema": { "type": "integer", "minimum": 1, "maximum": 25, "default": 10 } }], bodyKey: null, description: 'Semantic search over the org\'s own footage \u2014 Find MOMENTS in your library by describing what they look like. The query uses the same visual-semantic index as the footage, so it matches on visual content \u2014 "wide shot of a speaker at a whiteboard", "hands on a keyboard", "city skyline at dusk" \u2014 including shots nobody talks about (which is where transcript search fails). Results are time-ranged: feed `mediaId` + `startSec`/`endSec` straight into apply_composition as a clip. `q` is required; `limit` defaults to 10 and caps at 25. `indexing` is COVERAGE, not emptiness: it is true whenever some of the org\'s footage is not in the visual index yet (media that predates it, or still processing), and it can be true ALONGSIDE results \u2014 then read them as "the best moments among what we have looked at so far". Empty `results` with `indexing: true` is a state, not a failure; re-run the item through processing to index it. The first search after an idle period can take up to ~90s; subsequent searches are typically faster. \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 }, outputSchema: { "type": "object", "properties": { "results": { "type": "array", "description": "Matching moments, best first. Empty means nothing matched (when `indexing` is false) \u2014 the library was searched and came back empty-handed." }, "indexing": { "type": "boolean", "description": 'TRUE when some of the org\'s footage is NOT in the visual index yet \u2014 media that predates it, or is still processing. This is COVERAGE, not emptiness: it can be true ALONGSIDE results, and then it means "these are the best moments among what we have looked at so far", not "these are the best moments". An empty `results` with `indexing: true` means "not looked at yet", NOT "no match" \u2014 re-run the media through processing (reprocess) to index it, then search again. FALSE with empty `results` is a real miss: the library was searched and nothing matched.' } }, "additionalProperties": true } },
|
|
9403
9659
|
{ operationId: "searchResources", toolName: "cueframe_api_searchResources", title: "Search Resources", method: "POST", pathTemplate: "/v1/resources/search", pathParams: [], queryParams: [], bodyKey: "searchResourcesBody", description: "Search stock media (Pexels / Pixabay / Freesound / Klipy) \u2014 Search licensed stock media by keyword. Pass `query` for one search, or `queries[]` (\u226410) to run a batch in ONE call \u2014 the batch returns `results[]`, one entry per query in order, each with its own `candidates` (and an `error` string if that single query failed; one bad query never discards the rest). `kind` selects the corpus (video/photo default to Pexels; Pixabay is explicitly selectable; sfx \u2192 Freesound CC0-only; gif \u2192 Klipy); defaults to video. Returns ranked candidates each carrying an opaque `candidateId` \u2014 pass it to import_resource to bring the asset into a project. Free + rate-limited; results are cached for 7 days, after which a candidateId must be refreshed by searching again. For sfx, bound the result by clip length with `durationSec` \u2014 impacts/ticks \u2248 0\u20132s, risers/whooshes \u2248 2\u20138s, ambients unbounded. For video, use minWidth/minHeight to exclude smaller renditions. \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": true }, outputSchema: { "type": "object", "properties": { "provider": { "type": "string", "enum": ["pexels", "pixabay", "freesound", "klipy"] }, "kind": { "type": "string", "enum": ["video", "photo", "sfx", "gif"] }, "candidates": { "type": "array" }, "results": { "type": "array" } }, "additionalProperties": true } },
|
|
9404
9660
|
{ operationId: "selectComposeCandidate", toolName: "cueframe_api_selectComposeCandidate", title: "Select Compose Candidate", method: "POST", pathTemplate: "/v1/projects/{id}/compose/jobs/{composeJobId}/select", pathParams: ["id", "composeJobId"], queryParams: [], bodyKey: "selectComposeCandidateBody", description: "Promote a compose candidate to the active composition \u2014 Selects one candidate from a finished compose ensemble and writes it to the project's composition. `selectStrategy` decides how the editor draft interacts with the write (per compose-api-contract.md). \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 }, outputSchema: { "type": "object", "properties": { "newCompositionEtag": { "type": "string" }, "mergeResult": { "type": "object" } }, "additionalProperties": true } },
|
|
@@ -7,13 +7,13 @@ import {
|
|
|
7
7
|
} from "./chunk-7AZLFN26.js";
|
|
8
8
|
import {
|
|
9
9
|
selectAllOverlays
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-TPKPU4PE.js";
|
|
11
11
|
import {
|
|
12
12
|
ComposePlan
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-CJMUTCJW.js";
|
|
14
14
|
import {
|
|
15
15
|
OverlayClipSource
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-UFNIB3JL.js";
|
|
17
17
|
|
|
18
18
|
// ../authoring/src/tools/toolSets.ts
|
|
19
19
|
var COMPOSE_PLANNER_TOOLS = [
|
|
@@ -63,7 +63,7 @@ var COMPOSE_ROLE_TOOLS = Object.freeze({
|
|
|
63
63
|
schema: z.object({}),
|
|
64
64
|
metadata: { label: "Get Context" },
|
|
65
65
|
handler: async (_args, capabilities) => {
|
|
66
|
-
const { buildDirectorContext } = await import("./context-
|
|
66
|
+
const { buildDirectorContext } = await import("./context-UAS5WJRB.js");
|
|
67
67
|
return buildDirectorContext(capabilities);
|
|
68
68
|
}
|
|
69
69
|
},
|