@cueframe/kernel 0.2.52 → 0.2.54

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.
Files changed (71) hide show
  1. package/dist/_members/composition/fonts/bundledFaces.d.ts +9 -15
  2. package/dist/_members/composition/fonts/captionFaces.d.ts +2 -3
  3. package/dist/_members/composition/ops/captionOps.d.ts +11 -0
  4. package/dist/_members/composition/ops/compositionOps.d.ts +20 -19
  5. package/dist/_members/composition/ops/compositionOps.shared.d.ts +1 -0
  6. package/dist/_members/composition/validators/composition.d.ts +724 -0
  7. package/dist/_members/composition/validators/registry.d.ts +1 -1
  8. package/dist/_members/composition/validators/render.d.ts +332 -0
  9. package/dist/_members/composition-ops/index.d.ts +89 -0
  10. package/dist/_members/core/render/compositionAudioAndDepth.d.ts +3 -2
  11. package/dist/_members/core/render/index.d.ts +1 -1
  12. package/dist/_members/core/render/types.d.ts +3 -1
  13. package/dist/_members/plane/contract.d.ts +1 -1
  14. package/dist/_members/primitives/captions/Captions.d.ts +18 -1
  15. package/dist/_members/primitives/captions/index.d.ts +1 -1
  16. package/dist/_members/primitives/lib/text/spec.d.ts +1 -0
  17. package/dist/animate.js +2 -2
  18. package/dist/authoring/build-tools.js +6 -6
  19. package/dist/authoring/context.js +5 -5
  20. package/dist/authoring/tools.js +5 -5
  21. package/dist/authoring.js +9 -9
  22. package/dist/{chunk-MYBK6DKF.js → chunk-2BVKNYRB.js} +1 -1
  23. package/dist/{chunk-AVTEPAWI.js → chunk-7RGDRDAR.js} +17 -13
  24. package/dist/{chunk-7XZW26U2.js → chunk-AONWKKXK.js} +1 -1
  25. package/dist/{chunk-WZ22ZYXD.js → chunk-C3ARYFN6.js} +4 -4
  26. package/dist/{chunk-4B4V3HYW.js → chunk-C6ONUJIO.js} +1 -1
  27. package/dist/{chunk-CZOVEX2D.js → chunk-CR3G2JQP.js} +1 -1
  28. package/dist/{chunk-2PU2TSUG.js → chunk-D5E5XFHK.js} +1 -1
  29. package/dist/{chunk-D2EG7J7X.js → chunk-DFB7UFZD.js} +1 -1
  30. package/dist/{chunk-FSEB4LSU.js → chunk-FYMXVYWS.js} +1 -1
  31. package/dist/{chunk-6WQHVYJD.js → chunk-G7ZSFSQG.js} +1 -1
  32. package/dist/{chunk-5ZQLMPDY.js → chunk-GAACUQAB.js} +1 -1
  33. package/dist/{chunk-3I43W7DP.js → chunk-GZMKTLO3.js} +52 -21
  34. package/dist/{chunk-QVBUYWW6.js → chunk-Q2FWFTDZ.js} +1 -1
  35. package/dist/{chunk-MBSQKRDF.js → chunk-QCGT3M7M.js} +2 -2
  36. package/dist/{chunk-KMDZDH5E.js → chunk-QCJUGKRC.js} +4 -4
  37. package/dist/{chunk-Z6NY6MCL.js → chunk-RMLGMYEJ.js} +1 -1
  38. package/dist/{chunk-IHXMBXXL.js → chunk-SIGKJOSF.js} +30 -4
  39. package/dist/{chunk-5JCLZPMV.js → chunk-T7WKIMTB.js} +63 -44
  40. package/dist/{chunk-ACURZCPN.js → chunk-UKKY7HWN.js} +1 -1
  41. package/dist/{chunk-2M65KQNG.js → chunk-V6GL37RZ.js} +394 -54
  42. package/dist/{chunk-CV3QQUMK.js → chunk-VKZTGD5Z.js} +128 -5
  43. package/dist/{chunk-JWW54N24.js → chunk-VYSBZUXZ.js} +1 -1
  44. package/dist/{chunk-3OG2674K.js → chunk-ZDE5S3DE.js} +1 -1
  45. package/dist/component-runtime/render.js +2 -2
  46. package/dist/component-runtime.js +3 -3
  47. package/dist/compose.js +5 -5
  48. package/dist/composition/fonts.js +1 -1
  49. package/dist/composition/graphics-plan.js +3 -3
  50. package/dist/composition/ops.js +4 -4
  51. package/dist/composition/projection.js +3 -3
  52. package/dist/composition/validators.js +13 -3
  53. package/dist/composition-ops.js +8 -8
  54. package/dist/composition.js +15 -5
  55. package/dist/{context-2MBCDTCZ.js → context-I7SPXR2Z.js} +5 -5
  56. package/dist/core/render.js +4 -4
  57. package/dist/core.js +4 -4
  58. package/dist/mcp/adapter.js +2 -2
  59. package/dist/mcp/core.js +1 -1
  60. package/dist/mcp/scene-shot.js +2 -2
  61. package/dist/mcp/server.js +12 -12
  62. package/dist/mcp.js +12 -12
  63. package/dist/primitives/captions.js +276 -44
  64. package/dist/primitives/effects.js +3 -3
  65. package/dist/primitives/layouts.js +3 -3
  66. package/dist/primitives/lib/text/marker.js +1 -1
  67. package/dist/primitives/scenes.js +3 -3
  68. package/dist/primitives.js +5 -5
  69. package/dist/render-harness/cardFonts.js +2 -2
  70. package/dist/render-harness.js +7 -7
  71. package/package.json +10 -10
@@ -3,7 +3,7 @@ import {
3
3
  } from "./chunk-B7J5UUUV.js";
4
4
  import {
5
5
  captionFaceIssues
6
- } from "./chunk-AVTEPAWI.js";
6
+ } from "./chunk-7RGDRDAR.js";
7
7
 
8
8
  // ../composition/src/validators/opaqueId.ts
9
9
  import { z } from "zod";
@@ -11,6 +11,8 @@ var OpaqueId = z.string();
11
11
 
12
12
  // ../composition/src/validators/composition.ts
13
13
  import { z as z2 } from "zod";
14
+ import { sha256 } from "@noble/hashes/sha256";
15
+ import { bytesToHex } from "@noble/hashes/utils";
14
16
  var Format = z2.object({
15
17
  aspectRatio: z2.enum(["16:9", "9:16", "1:1", "4:5"]),
16
18
  fps: z2.union([z2.literal(24), z2.literal(25), z2.literal(30), z2.literal(60)]).optional(),
@@ -168,7 +170,7 @@ var TimelineClip = z2.object({
168
170
  region: Region.optional(),
169
171
  fit: ClipFit.optional(),
170
172
  captionVisibility: CaptionVisibility.optional().describe(
171
- "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."
173
+ "Video media clip only. Hide native captions while this clip is topmost and covers the lower picture, or when an opaque, effect-free clip has an explicitly full-frame region, even with fit:contain. Caption words and timings remain stored and resume when another visible clip takes over."
172
174
  ),
173
175
  effects: z2.array(PerClipEffect).optional(),
174
176
  transitionIn: Transition.optional(),
@@ -265,6 +267,9 @@ var CaptionStyle = z2.object({
265
267
  "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."
266
268
  ),
267
269
  textTransform: z2.enum(["none", "uppercase", "capitalize"]).optional(),
270
+ letterSpacing: z2.number().min(-5).max(20).optional().describe("Base caption glyph spacing in pixels."),
271
+ wordGapEm: z2.number().min(0).max(2).optional().describe("Gap between caption runs as a multiple of base font size; default 0.35."),
272
+ lineGapEm: z2.number().min(0).max(2).optional().describe("Gap between caption lines as a multiple of base font size; default 0.25."),
268
273
  emphasisColor: z2.string().optional(),
269
274
  emphasisGradient: z2.string().optional(),
270
275
  emphasisScale: z2.number().positive().optional(),
@@ -285,9 +290,111 @@ var CaptionStyle = z2.object({
285
290
  emphasisPlateRadius: z2.number().nonnegative().optional(),
286
291
  emphasisPlatePadX: z2.number().optional(),
287
292
  emphasisPlatePadY: z2.number().optional(),
293
+ emphasisPlateReveal: z2.boolean().optional().describe("Grow a shared emphasis plate as saved words appear while reserving its final layout width."),
288
294
  annotationColor: z2.string().optional(),
295
+ annotationStrokeWidth: z2.number().min(0.5).max(12).optional().describe("Annotation stroke width in its 100\xD7100 SVG coordinate system; default 4."),
289
296
  maxWidthPercent: z2.number().positive().max(100, "captions style.maxWidthPercent is % of composition width (max 100)").optional()
290
297
  });
298
+ var CaptionLayoutStyle = CaptionStyle.pick({
299
+ fontFamily: true,
300
+ fontSize: true,
301
+ fontWeight: true,
302
+ color: true,
303
+ highlightColor: true,
304
+ backgroundColor: true,
305
+ plate: true,
306
+ textTransform: true,
307
+ letterSpacing: true,
308
+ wordGapEm: true,
309
+ lineGapEm: true,
310
+ emphasisColor: true,
311
+ emphasisScale: true,
312
+ emphasisFontFamily: true,
313
+ emphasisFontWeight: true,
314
+ emphasisTextTransform: true,
315
+ emphasisLetterSpacing: true,
316
+ emphasisFontStyle: true,
317
+ emphasisPlate: true,
318
+ emphasisPlateColor: true,
319
+ emphasisPlateTextColor: true,
320
+ emphasisPlateAltColor: true,
321
+ emphasisPlateAltTextColor: true,
322
+ emphasisPlateRadius: true,
323
+ emphasisPlatePadX: true,
324
+ emphasisPlatePadY: true,
325
+ emphasisPlateReveal: true,
326
+ annotationColor: true,
327
+ annotationStrokeWidth: true,
328
+ entrance: true,
329
+ entranceMs: true,
330
+ entranceStaggerMs: true,
331
+ exitMs: true
332
+ }).strict();
333
+ var CaptionLayoutInput = z2.object({
334
+ segmentIndex: z2.number().int().nonnegative(),
335
+ wordStartIndex: z2.number().int().nonnegative(),
336
+ wordEndIndex: z2.number().int().positive().describe("Exclusive word index in the saved caption segment."),
337
+ region: CaptionRegion,
338
+ scale: z2.number().min(0.25).max(4).optional(),
339
+ rotation: z2.number().min(-45).max(45).optional(),
340
+ style: CaptionLayoutStyle.optional(),
341
+ holdThroughWordIndex: z2.number().int().nonnegative().optional().describe(
342
+ "Inclusive saved-word index in this segment. The layout stays visible until that word ends."
343
+ ),
344
+ wordMarks: z2.array(z2.object({
345
+ wordIndex: z2.number().int().nonnegative(),
346
+ emphasis: z2.boolean().optional(),
347
+ annotate: z2.enum(["circle", "underline"]).nullable().optional()
348
+ }).strict()).optional()
349
+ }).strict();
350
+ var CaptionLayout = CaptionLayoutInput.extend({
351
+ wordSignature: z2.string().regex(/^[a-f0-9]{64}$/)
352
+ });
353
+ function captionSegmentSignature(words) {
354
+ const encoded = JSON.stringify(words.map((word) => ({
355
+ text: word.text,
356
+ startMs: word.startMs,
357
+ endMs: word.endMs,
358
+ emphasis: word.emphasis ?? null,
359
+ annotate: word.annotate ?? null
360
+ })));
361
+ return bytesToHex(sha256(new TextEncoder().encode(encoded)));
362
+ }
363
+ function captionLayoutIssues(segments, layouts, checkSignature = false) {
364
+ const issues = [];
365
+ const occupied = /* @__PURE__ */ new Set();
366
+ layouts.forEach((layout, index) => {
367
+ const words = segments[layout.segmentIndex]?.words;
368
+ if (!words) {
369
+ issues.push({ index, field: "segmentIndex", message: "caption layout segment does not exist" });
370
+ return;
371
+ }
372
+ if (layout.wordStartIndex >= layout.wordEndIndex || layout.wordEndIndex > words.length) {
373
+ issues.push({ index, field: "wordEndIndex", message: "caption layout word range is outside its segment" });
374
+ return;
375
+ }
376
+ const hold = layout.holdThroughWordIndex ?? layout.wordEndIndex - 1;
377
+ if (hold < layout.wordEndIndex - 1 || hold >= words.length) {
378
+ issues.push({ index, field: "holdThroughWordIndex", message: "caption layout hold must reference this or a later word in the same segment" });
379
+ }
380
+ const marked = /* @__PURE__ */ new Set();
381
+ for (const mark of layout.wordMarks ?? []) {
382
+ if (mark.wordIndex < layout.wordStartIndex || mark.wordIndex >= layout.wordEndIndex || marked.has(mark.wordIndex)) {
383
+ issues.push({ index, field: "wordMarks", message: "caption layout word marks must be unique words inside the layout range" });
384
+ }
385
+ marked.add(mark.wordIndex);
386
+ }
387
+ for (let word = layout.wordStartIndex; word < layout.wordEndIndex; word++) {
388
+ const key = `${layout.segmentIndex}:${word}`;
389
+ if (occupied.has(key)) issues.push({ index, field: "wordStartIndex", message: "caption layout word ranges must not overlap" });
390
+ occupied.add(key);
391
+ }
392
+ if (checkSignature && "wordSignature" in layout && layout.wordSignature !== captionSegmentSignature(words)) {
393
+ issues.push({ index, field: "wordSignature", message: "caption layout is stale for these saved transcript words; reapply setCaptionLayouts" });
394
+ }
395
+ });
396
+ return issues;
397
+ }
291
398
  var CaptionSegment = z2.object({
292
399
  words: z2.array(CaptionWord)
293
400
  });
@@ -298,18 +405,29 @@ var CompositionCaptions = z2.discriminatedUnion("source", [
298
405
  from: z2.object({ clipId: z2.string() }),
299
406
  segments: z2.array(CaptionSegment),
300
407
  style: CaptionStyle.optional(),
408
+ layouts: z2.array(CaptionLayout).optional(),
301
409
  zPlane: CaptionDepth
302
410
  }),
303
411
  z2.object({
304
412
  source: z2.literal("authored"),
305
413
  segments: z2.array(CaptionSegment),
306
414
  style: CaptionStyle.optional(),
415
+ layouts: z2.array(CaptionLayout).optional(),
307
416
  zPlane: CaptionDepth
308
417
  })
309
418
  ]).superRefine((captions, ctx) => {
310
- if (!captions.style) return;
311
- for (const issue of captionFaceIssues(captions.style)) {
312
- ctx.addIssue({ code: "custom", path: ["style", issue.field], message: issue.message });
419
+ if (captions.style) {
420
+ for (const issue of captionFaceIssues(captions.style)) {
421
+ ctx.addIssue({ code: "custom", path: ["style", issue.field], message: issue.message });
422
+ }
423
+ }
424
+ for (const issue of captionLayoutIssues(captions.segments, captions.layouts ?? [], true)) {
425
+ ctx.addIssue({ code: "custom", path: ["layouts", issue.index, issue.field], message: issue.message });
426
+ }
427
+ for (const [index, layout] of (captions.layouts ?? []).entries()) {
428
+ for (const issue of captionFaceIssues({ ...captions.style, ...layout.style })) {
429
+ ctx.addIssue({ code: "custom", path: ["layouts", index, "style", issue.field], message: issue.message });
430
+ }
313
431
  }
314
432
  });
315
433
  function captionsAreBehindSubject(captions) {
@@ -540,6 +658,11 @@ export {
540
658
  Marker,
541
659
  CaptionWord,
542
660
  CaptionStyle,
661
+ CaptionLayoutStyle,
662
+ CaptionLayoutInput,
663
+ CaptionLayout,
664
+ captionSegmentSignature,
665
+ captionLayoutIssues,
543
666
  CaptionSegment,
544
667
  CompositionCaptions,
545
668
  captionsAreBehindSubject,
@@ -5,7 +5,7 @@ import {
5
5
  isOk,
6
6
  opById,
7
7
  safeParse
8
- } from "./chunk-2M65KQNG.js";
8
+ } from "./chunk-V6GL37RZ.js";
9
9
 
10
10
  // ../mcp/src/wait.ts
11
11
  var defaultSleep = (ms) => new Promise((r) => setTimeout(r, ms));
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  bodySchemaFor,
3
3
  opById
4
- } from "./chunk-2M65KQNG.js";
4
+ } from "./chunk-V6GL37RZ.js";
5
5
 
6
6
  // ../mcp/src/generated/sceneContract.ts
7
7
  function deepFreeze(value) {
@@ -26,7 +26,7 @@ import {
26
26
  stagedBrowserLocator,
27
27
  verifyLocalStagedBrowser,
28
28
  vp9AlphaFfmpegOverride
29
- } from "../chunk-7XZW26U2.js";
29
+ } from "../chunk-AONWKKXK.js";
30
30
  import "../chunk-WB2VFDQZ.js";
31
31
  import "../chunk-EXY4JJPH.js";
32
32
  import "../chunk-DAARYRNT.js";
@@ -35,7 +35,7 @@ import "../chunk-JWMWVP64.js";
35
35
  import "../chunk-EC6VFQE6.js";
36
36
  import "../chunk-CL5Y6V6K.js";
37
37
  import "../chunk-2L7PYYJK.js";
38
- import "../chunk-AVTEPAWI.js";
38
+ import "../chunk-7RGDRDAR.js";
39
39
  import "../chunk-2ESYSVXG.js";
40
40
  export {
41
41
  COMPONENT_BROWSER_CLEANUP_TIMEOUT_MS,
@@ -7,7 +7,7 @@ import {
7
7
  sourceIdentityForBake,
8
8
  startComponentAssetServer,
9
9
  verifyComponentOutput
10
- } from "./chunk-MYBK6DKF.js";
10
+ } from "./chunk-2BVKNYRB.js";
11
11
  import {
12
12
  COMPONENT_MEDIA_HEADROOM,
13
13
  COMPONENT_MEDIA_TIERS,
@@ -52,7 +52,7 @@ import {
52
52
  stagedBrowserLocator,
53
53
  verifyLocalStagedBrowser,
54
54
  vp9AlphaFfmpegOverride
55
- } from "./chunk-7XZW26U2.js";
55
+ } from "./chunk-AONWKKXK.js";
56
56
  import "./chunk-WB2VFDQZ.js";
57
57
  import {
58
58
  bundleIdentityFields,
@@ -131,7 +131,7 @@ import {
131
131
  } from "./chunk-EC6VFQE6.js";
132
132
  import "./chunk-CL5Y6V6K.js";
133
133
  import "./chunk-2L7PYYJK.js";
134
- import "./chunk-AVTEPAWI.js";
134
+ import "./chunk-7RGDRDAR.js";
135
135
  import "./chunk-2ESYSVXG.js";
136
136
  export {
137
137
  CANVAS2D_COMPONENT_MANIFEST_V2,
package/dist/compose.js CHANGED
@@ -10,16 +10,16 @@ import {
10
10
  } from "./chunk-VLJOIUHL.js";
11
11
  import {
12
12
  catalog as catalog2
13
- } from "./chunk-5ZQLMPDY.js";
13
+ } from "./chunk-GAACUQAB.js";
14
14
  import {
15
15
  catalog as catalog8
16
16
  } from "./chunk-7SQOXIWR.js";
17
17
  import {
18
18
  catalog as catalog4
19
- } from "./chunk-CZOVEX2D.js";
19
+ } from "./chunk-CR3G2JQP.js";
20
20
  import {
21
21
  catalog as catalog7
22
- } from "./chunk-4B4V3HYW.js";
22
+ } from "./chunk-C6ONUJIO.js";
23
23
  import "./chunk-S5H6GH6M.js";
24
24
  import "./chunk-QAGGJHAF.js";
25
25
  import "./chunk-MFHXCHRI.js";
@@ -40,7 +40,7 @@ import {
40
40
  import "./chunk-XHGZ2E77.js";
41
41
  import "./chunk-ZFEXATWN.js";
42
42
  import "./chunk-W2245F6G.js";
43
- import "./chunk-2PU2TSUG.js";
43
+ import "./chunk-D5E5XFHK.js";
44
44
  import "./chunk-XV2K3AQT.js";
45
45
  import {
46
46
  getPrimitiveSubtextParam,
@@ -58,7 +58,7 @@ import {
58
58
  } from "./chunk-VG2ND6PX.js";
59
59
  import "./chunk-CL5Y6V6K.js";
60
60
  import "./chunk-2L7PYYJK.js";
61
- import "./chunk-AVTEPAWI.js";
61
+ import "./chunk-7RGDRDAR.js";
62
62
  import "./chunk-2ESYSVXG.js";
63
63
 
64
64
  // ../execution/compose/src/primitiveRegistry.ts
@@ -34,7 +34,7 @@ import {
34
34
  resolveCaptionFaces,
35
35
  unrenderableFaceField,
36
36
  vendoredFontCatalog
37
- } from "../chunk-AVTEPAWI.js";
37
+ } from "../chunk-7RGDRDAR.js";
38
38
  import "../chunk-2ESYSVXG.js";
39
39
  export {
40
40
  ALIASED_FONT_FAMILIES,
@@ -20,17 +20,17 @@ import {
20
20
  PlanRect,
21
21
  StyleRole,
22
22
  ZPlane
23
- } from "../chunk-CV3QQUMK.js";
23
+ } from "../chunk-VKZTGD5Z.js";
24
24
  import "../chunk-WPZKOVYF.js";
25
25
  import "../chunk-B7J5UUUV.js";
26
26
  import {
27
27
  placeInLegalArea,
28
28
  resolveBrandRefsDeep
29
- } from "../chunk-Z6NY6MCL.js";
29
+ } from "../chunk-RMLGMYEJ.js";
30
30
  import "../chunk-WREYUH2E.js";
31
31
  import "../chunk-ILO4NEZ3.js";
32
32
  import "../chunk-VG2ND6PX.js";
33
- import "../chunk-AVTEPAWI.js";
33
+ import "../chunk-7RGDRDAR.js";
34
34
  import "../chunk-2ESYSVXG.js";
35
35
 
36
36
  // ../composition/src/graphics-plan/solve.ts
@@ -20,14 +20,14 @@ import {
20
20
  selectMediaClipAt,
21
21
  selectSceneMarkers,
22
22
  selectTracksByKind
23
- } from "../chunk-5JCLZPMV.js";
24
- import "../chunk-MBSQKRDF.js";
25
- import "../chunk-CV3QQUMK.js";
23
+ } from "../chunk-T7WKIMTB.js";
24
+ import "../chunk-QCGT3M7M.js";
25
+ import "../chunk-VKZTGD5Z.js";
26
26
  import "../chunk-WPZKOVYF.js";
27
27
  import "../chunk-B7J5UUUV.js";
28
28
  import "../chunk-KYRDKK2D.js";
29
29
  import "../chunk-WREYUH2E.js";
30
- import "../chunk-AVTEPAWI.js";
30
+ import "../chunk-7RGDRDAR.js";
31
31
  import "../chunk-2ESYSVXG.js";
32
32
  export {
33
33
  compositionWithSourceClip,
@@ -32,7 +32,7 @@ import {
32
32
  silhouetteKeepOutForWindow,
33
33
  sourceRectToOutput,
34
34
  sourceWindowKey
35
- } from "../chunk-6WQHVYJD.js";
35
+ } from "../chunk-G7ZSFSQG.js";
36
36
  import {
37
37
  BRAND_TOKEN_REFS,
38
38
  BRAND_TOKEN_ROOT_KEYS,
@@ -69,13 +69,13 @@ import {
69
69
  resolveLayoutIntent,
70
70
  resolveOverlayRegion,
71
71
  unionFaceKeepOutSeries
72
- } from "../chunk-Z6NY6MCL.js";
72
+ } from "../chunk-RMLGMYEJ.js";
73
73
  import {
74
74
  contrastRatio
75
75
  } from "../chunk-ILO4NEZ3.js";
76
76
  import "../chunk-E63UEO5C.js";
77
77
  import "../chunk-VG2ND6PX.js";
78
- import "../chunk-AVTEPAWI.js";
78
+ import "../chunk-7RGDRDAR.js";
79
79
  import "../chunk-2ESYSVXG.js";
80
80
  export {
81
81
  BEHIND_BAND,
@@ -48,11 +48,14 @@ import {
48
48
  WebhookDeliveryStatus,
49
49
  WebhookDestination,
50
50
  YoutubeDestination
51
- } from "../chunk-MBSQKRDF.js";
51
+ } from "../chunk-QCGT3M7M.js";
52
52
  import {
53
53
  ANIMATABLE_PARAMS,
54
54
  ANIMATABLE_VALUE,
55
55
  AlphaLayerClipSource,
56
+ CaptionLayout,
57
+ CaptionLayoutInput,
58
+ CaptionLayoutStyle,
56
59
  CaptionRegion,
57
60
  CaptionSegment,
58
61
  CaptionStyle,
@@ -85,10 +88,12 @@ import {
85
88
  Track,
86
89
  TrackContent,
87
90
  Transition,
91
+ captionLayoutIssues,
92
+ captionSegmentSignature,
88
93
  captionVisibilityIssues,
89
94
  captionWords,
90
95
  captionsAreBehindSubject
91
- } from "../chunk-CV3QQUMK.js";
96
+ } from "../chunk-VKZTGD5Z.js";
92
97
  import {
93
98
  AUTHORED_GRAPHIC_KINDS
94
99
  } from "../chunk-WPZKOVYF.js";
@@ -99,7 +104,7 @@ import {
99
104
  ReframeSegmentFields
100
105
  } from "../chunk-B7J5UUUV.js";
101
106
  import "../chunk-WREYUH2E.js";
102
- import "../chunk-AVTEPAWI.js";
107
+ import "../chunk-7RGDRDAR.js";
103
108
  import "../chunk-2ESYSVXG.js";
104
109
  export {
105
110
  ANIMATABLE_PARAMS,
@@ -108,6 +113,9 @@ export {
108
113
  AlphaLayerClipSource,
109
114
  AudioPaletteRef,
110
115
  BrandKit,
116
+ CaptionLayout,
117
+ CaptionLayoutInput,
118
+ CaptionLayoutStyle,
111
119
  CaptionRegion,
112
120
  CaptionSegment,
113
121
  CaptionStyle,
@@ -191,6 +199,8 @@ export {
191
199
  WebhookDeliveryStatus,
192
200
  WebhookDestination,
193
201
  YoutubeDestination,
202
+ captionLayoutIssues,
203
+ captionSegmentSignature,
194
204
  captionVisibilityIssues,
195
205
  captionWords,
196
206
  captionsAreBehindSubject
@@ -20,21 +20,21 @@ import {
20
20
  replaceRegion,
21
21
  resolveClipKind,
22
22
  wrapWithOpRecorder
23
- } from "./chunk-IHXMBXXL.js";
24
- import "./chunk-3I43W7DP.js";
23
+ } from "./chunk-SIGKJOSF.js";
24
+ import "./chunk-GZMKTLO3.js";
25
25
  import "./chunk-QH3YI3ND.js";
26
26
  import "./chunk-JPMVNMF3.js";
27
27
  import "./chunk-IMIUHG2E.js";
28
28
  import "./chunk-VZ7TYX6Z.js";
29
29
  import "./chunk-T56BK7NS.js";
30
- import "./chunk-5JCLZPMV.js";
31
- import "./chunk-MBSQKRDF.js";
32
- import "./chunk-CV3QQUMK.js";
30
+ import "./chunk-T7WKIMTB.js";
31
+ import "./chunk-QCGT3M7M.js";
32
+ import "./chunk-VKZTGD5Z.js";
33
33
  import "./chunk-WPZKOVYF.js";
34
34
  import "./chunk-B7J5UUUV.js";
35
35
  import "./chunk-KYRDKK2D.js";
36
- import "./chunk-6WQHVYJD.js";
37
- import "./chunk-Z6NY6MCL.js";
36
+ import "./chunk-G7ZSFSQG.js";
37
+ import "./chunk-RMLGMYEJ.js";
38
38
  import "./chunk-WREYUH2E.js";
39
39
  import "./chunk-ILO4NEZ3.js";
40
40
  import "./chunk-E63UEO5C.js";
@@ -42,7 +42,7 @@ import "./chunk-7PA7FGLD.js";
42
42
  import "./chunk-VG2ND6PX.js";
43
43
  import "./chunk-CL5Y6V6K.js";
44
44
  import "./chunk-2L7PYYJK.js";
45
- import "./chunk-AVTEPAWI.js";
45
+ import "./chunk-7RGDRDAR.js";
46
46
  import "./chunk-2ESYSVXG.js";
47
47
  export {
48
48
  CaptionMaterializationError,
@@ -73,11 +73,14 @@ import {
73
73
  WebhookDeliveryStatus,
74
74
  WebhookDestination,
75
75
  YoutubeDestination
76
- } from "./chunk-MBSQKRDF.js";
76
+ } from "./chunk-QCGT3M7M.js";
77
77
  import {
78
78
  ANIMATABLE_PARAMS,
79
79
  ANIMATABLE_VALUE,
80
80
  AlphaLayerClipSource,
81
+ CaptionLayout,
82
+ CaptionLayoutInput,
83
+ CaptionLayoutStyle,
81
84
  CaptionRegion,
82
85
  CaptionSegment,
83
86
  CaptionStyle,
@@ -110,10 +113,12 @@ import {
110
113
  Track,
111
114
  TrackContent,
112
115
  Transition,
116
+ captionLayoutIssues,
117
+ captionSegmentSignature,
113
118
  captionVisibilityIssues,
114
119
  captionWords,
115
120
  captionsAreBehindSubject
116
- } from "./chunk-CV3QQUMK.js";
121
+ } from "./chunk-VKZTGD5Z.js";
117
122
  import {
118
123
  AUTHORED_GRAPHIC_KINDS
119
124
  } from "./chunk-WPZKOVYF.js";
@@ -157,7 +162,7 @@ import {
157
162
  silhouetteKeepOutForWindow,
158
163
  sourceRectToOutput,
159
164
  sourceWindowKey
160
- } from "./chunk-6WQHVYJD.js";
165
+ } from "./chunk-G7ZSFSQG.js";
161
166
  import {
162
167
  BRAND_TOKEN_REFS,
163
168
  BRAND_TOKEN_ROOT_KEYS,
@@ -194,14 +199,14 @@ import {
194
199
  resolveLayoutIntent,
195
200
  resolveOverlayRegion,
196
201
  unionFaceKeepOutSeries
197
- } from "./chunk-Z6NY6MCL.js";
202
+ } from "./chunk-RMLGMYEJ.js";
198
203
  import "./chunk-WREYUH2E.js";
199
204
  import {
200
205
  contrastRatio
201
206
  } from "./chunk-ILO4NEZ3.js";
202
207
  import "./chunk-E63UEO5C.js";
203
208
  import "./chunk-VG2ND6PX.js";
204
- import "./chunk-AVTEPAWI.js";
209
+ import "./chunk-7RGDRDAR.js";
205
210
  import "./chunk-2ESYSVXG.js";
206
211
 
207
212
  // ../composition/src/color-grade.ts
@@ -309,6 +314,9 @@ export {
309
314
  COVIEW_MAX_SILHOUETTE_W,
310
315
  COVIEW_MIN_BAND_COVERAGE,
311
316
  CURRENT_MATTE_BAKE_VERSION,
317
+ CaptionLayout,
318
+ CaptionLayoutInput,
319
+ CaptionLayoutStyle,
312
320
  CaptionRegion,
313
321
  CaptionSegment,
314
322
  CaptionStyle,
@@ -410,6 +418,8 @@ export {
410
418
  buildSubjectsOutput,
411
419
  canonicalJSON,
412
420
  captionBehindWindowsOf,
421
+ captionLayoutIssues,
422
+ captionSegmentSignature,
413
423
  captionVisibilityIssues,
414
424
  captionWords,
415
425
  captionsAreBehindSubject,
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  buildDirectorContext
3
- } from "./chunk-FSEB4LSU.js";
4
- import "./chunk-5JCLZPMV.js";
5
- import "./chunk-MBSQKRDF.js";
6
- import "./chunk-CV3QQUMK.js";
3
+ } from "./chunk-FYMXVYWS.js";
4
+ import "./chunk-T7WKIMTB.js";
5
+ import "./chunk-QCGT3M7M.js";
6
+ import "./chunk-VKZTGD5Z.js";
7
7
  import "./chunk-WPZKOVYF.js";
8
8
  import "./chunk-B7J5UUUV.js";
9
9
  import "./chunk-KYRDKK2D.js";
10
10
  import "./chunk-WREYUH2E.js";
11
- import "./chunk-AVTEPAWI.js";
11
+ import "./chunk-7RGDRDAR.js";
12
12
  import "./chunk-2ESYSVXG.js";
13
13
  export {
14
14
  buildDirectorContext
@@ -69,7 +69,7 @@ import {
69
69
  splitIntoSentences,
70
70
  validateComposition,
71
71
  visiblePackedHostWindows
72
- } from "../chunk-3I43W7DP.js";
72
+ } from "../chunk-GZMKTLO3.js";
73
73
  import {
74
74
  buildEasedZooms,
75
75
  buildPannedCenters,
@@ -80,8 +80,8 @@ import "../chunk-IMIUHG2E.js";
80
80
  import "../chunk-VZ7TYX6Z.js";
81
81
  import "../chunk-T56BK7NS.js";
82
82
  import "../chunk-KYRDKK2D.js";
83
- import "../chunk-6WQHVYJD.js";
84
- import "../chunk-Z6NY6MCL.js";
83
+ import "../chunk-G7ZSFSQG.js";
84
+ import "../chunk-RMLGMYEJ.js";
85
85
  import "../chunk-WREYUH2E.js";
86
86
  import "../chunk-ILO4NEZ3.js";
87
87
  import "../chunk-E63UEO5C.js";
@@ -89,7 +89,7 @@ import "../chunk-7PA7FGLD.js";
89
89
  import "../chunk-VG2ND6PX.js";
90
90
  import "../chunk-CL5Y6V6K.js";
91
91
  import "../chunk-2L7PYYJK.js";
92
- import "../chunk-AVTEPAWI.js";
92
+ import "../chunk-7RGDRDAR.js";
93
93
  import "../chunk-2ESYSVXG.js";
94
94
  export {
95
95
  CARD_BOOKEND_DEFAULT_MS,
package/dist/core.js CHANGED
@@ -10,15 +10,15 @@ import {
10
10
  ensureEven,
11
11
  extractCaptionWordsFromDoc,
12
12
  isEmphasized
13
- } from "./chunk-3I43W7DP.js";
13
+ } from "./chunk-GZMKTLO3.js";
14
14
  import "./chunk-QH3YI3ND.js";
15
15
  import "./chunk-JPMVNMF3.js";
16
16
  import "./chunk-IMIUHG2E.js";
17
17
  import "./chunk-VZ7TYX6Z.js";
18
18
  import "./chunk-T56BK7NS.js";
19
19
  import "./chunk-KYRDKK2D.js";
20
- import "./chunk-6WQHVYJD.js";
21
- import "./chunk-Z6NY6MCL.js";
20
+ import "./chunk-G7ZSFSQG.js";
21
+ import "./chunk-RMLGMYEJ.js";
22
22
  import "./chunk-WREYUH2E.js";
23
23
  import "./chunk-ILO4NEZ3.js";
24
24
  import "./chunk-E63UEO5C.js";
@@ -26,7 +26,7 @@ import "./chunk-7PA7FGLD.js";
26
26
  import "./chunk-VG2ND6PX.js";
27
27
  import "./chunk-CL5Y6V6K.js";
28
28
  import "./chunk-2L7PYYJK.js";
29
- import "./chunk-AVTEPAWI.js";
29
+ import "./chunk-7RGDRDAR.js";
30
30
  import "./chunk-2ESYSVXG.js";
31
31
  export {
32
32
  DEFAULT_FPS,
@@ -2,7 +2,7 @@ import {
2
2
  querySchemaShape,
3
3
  serializeQuery,
4
4
  waitForJob
5
- } from "../chunk-JWW54N24.js";
5
+ } from "../chunk-VYSBZUXZ.js";
6
6
  import {
7
7
  CURATED_TOOLS
8
8
  } from "../chunk-4WBSXHQA.js";
@@ -16,7 +16,7 @@ import {
16
16
  opById,
17
17
  safeParse,
18
18
  sniffImageMediaType
19
- } from "../chunk-2M65KQNG.js";
19
+ } from "../chunk-V6GL37RZ.js";
20
20
  import "../chunk-2ESYSVXG.js";
21
21
 
22
22
  // ../mcp/src/adapter.ts
package/dist/mcp/core.js CHANGED
@@ -18,7 +18,7 @@ import {
18
18
  text,
19
19
  textWithData,
20
20
  withMedia
21
- } from "../chunk-2M65KQNG.js";
21
+ } from "../chunk-V6GL37RZ.js";
22
22
  import "../chunk-2ESYSVXG.js";
23
23
  export {
24
24
  __resetPreviewCache,
@@ -5,8 +5,8 @@ import {
5
5
  SCENE_SHOT_RULES,
6
6
  sceneBrandTokens,
7
7
  sceneShotContract
8
- } from "../chunk-3OG2674K.js";
9
- import "../chunk-2M65KQNG.js";
8
+ } from "../chunk-ZDE5S3DE.js";
9
+ import "../chunk-V6GL37RZ.js";
10
10
  import "../chunk-2ESYSVXG.js";
11
11
  export {
12
12
  SCENE_SHOT_LIMITS,