@cueframe/kernel 0.2.56 → 0.2.58

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 (107) hide show
  1. package/dist/THIRD_PARTY_NOTICES.md +111 -0
  2. package/dist/_members/component-runtime/template/bind.d.ts +22 -0
  3. package/dist/_members/component-runtime/template/bind.d.ts.map +1 -0
  4. package/dist/_members/component-runtime/template/extract.d.ts +31 -0
  5. package/dist/_members/component-runtime/template/extract.d.ts.map +1 -0
  6. package/dist/_members/component-runtime/template/index.d.ts +5 -0
  7. package/dist/_members/component-runtime/template/index.d.ts.map +1 -0
  8. package/dist/_members/component-runtime/template/schema.d.ts +1580 -0
  9. package/dist/_members/component-runtime/template/schema.d.ts.map +1 -0
  10. package/dist/_members/component-runtime/template/testing/fixtures.d.ts +33 -0
  11. package/dist/_members/component-runtime/template/testing/fixtures.d.ts.map +1 -0
  12. package/dist/_members/component-runtime/template/testing/index.d.ts +3 -0
  13. package/dist/_members/component-runtime/template/testing/index.d.ts.map +1 -0
  14. package/dist/_members/component-runtime/template/testing/templateApplyContract.d.ts +54 -0
  15. package/dist/_members/component-runtime/template/testing/templateApplyContract.d.ts.map +1 -0
  16. package/dist/_members/composition/primitive-catalog/index.d.ts +2 -1
  17. package/dist/_members/composition/primitive-catalog/types.d.ts +3 -1
  18. package/dist/_members/composition/projection/brandKit.d.ts +1 -0
  19. package/dist/_members/composition/validators/brandKit.d.ts +8 -0
  20. package/dist/_members/composition/validators/brandKitBody.d.ts +543 -0
  21. package/dist/_members/composition/validators/render.d.ts +2 -0
  22. package/dist/_members/errors/registry.d.ts +36 -0
  23. package/dist/_members/mcp/server.d.ts +5 -2
  24. package/dist/_members/primitives/backgrounds/dynamic-grid/config.d.ts +1 -1
  25. package/dist/_members/primitives/effects/blur/config.d.ts +1 -1
  26. package/dist/_members/primitives/effects/color-grade/config.d.ts +2 -2
  27. package/dist/_members/primitives/effects/grain/config.d.ts +3 -3
  28. package/dist/_members/primitives/effects/particles/config.d.ts +2 -2
  29. package/dist/_members/primitives/effects/stage-camera/config.d.ts +6 -6
  30. package/dist/_members/primitives/effects/vignette/config.d.ts +1 -1
  31. package/dist/_members/primitives/layouts/flex-layout/config.d.ts +3 -3
  32. package/dist/_members/primitives/layouts/picture-in-picture/config.d.ts +2 -2
  33. package/dist/_members/primitives/lib/types.d.ts +1 -1
  34. package/dist/_members/primitives/scenes/device-showcase/config.d.ts +7 -7
  35. package/dist/_members/primitives/text/cinematic-title/config.d.ts +3 -3
  36. package/dist/_members/primitives/text/karaoke/config.d.ts +1 -1
  37. package/dist/_members/primitives/text/kinetic-type/config.d.ts +3 -3
  38. package/dist/_members/primitives/text/stat-counter/config.d.ts +1 -1
  39. package/dist/_members/primitives/text/text-effect/config.d.ts +2 -2
  40. package/dist/_members/primitives/transitions/grid-pixelate-wipe/config.d.ts +1 -1
  41. package/dist/_members/primitives/ui-blocks/badge-pop/config.d.ts +3 -3
  42. package/dist/_members/primitives/ui-blocks/terminal-simulator/config.d.ts +2 -2
  43. package/dist/_members/primitives/ui-blocks/toast-notification/config.d.ts +2 -2
  44. package/dist/authoring/build-tools.js +5 -4
  45. package/dist/authoring/context.js +2 -1
  46. package/dist/authoring/tools.js +4 -3
  47. package/dist/authoring.js +8 -7
  48. package/dist/{chunk-O7QDAIB6.js → chunk-2L33CKIY.js} +3 -5
  49. package/dist/{chunk-N54EGUVM.js → chunk-3VLDQE26.js} +1 -1
  50. package/dist/{chunk-7AZLFN26.js → chunk-4NIJWK45.js} +20 -12
  51. package/dist/{chunk-KSRFYFUZ.js → chunk-5T655LYZ.js} +1 -1
  52. package/dist/{chunk-E2LKX6C4.js → chunk-6UZYUWBX.js} +1 -1
  53. package/dist/{chunk-EGIVPZCJ.js → chunk-7EDLPIUN.js} +3 -3
  54. package/dist/{chunk-FOST4XYJ.js → chunk-7NIOFHMH.js} +2 -2
  55. package/dist/{chunk-E63UEO5C.js → chunk-AK5QBHOB.js} +6 -0
  56. package/dist/{chunk-TLOYCCCI.js → chunk-DKBFAQCW.js} +1 -0
  57. package/dist/{chunk-BDFAA747.js → chunk-GQ6XGAFB.js} +1 -1
  58. package/dist/chunk-IG3YAOUZ.js +418 -0
  59. package/dist/{chunk-Z4G3VM3H.js → chunk-JN3GF36B.js} +1 -1
  60. package/dist/{chunk-DV7ZFVL4.js → chunk-MFMR3LHO.js} +1 -1
  61. package/dist/{chunk-JPMVNMF3.js → chunk-MNO6AO2J.js} +1 -1
  62. package/dist/{chunk-VDLWT5RY.js → chunk-NVXSKKRN.js} +9 -8
  63. package/dist/chunk-PWWZTY3G.js +254 -0
  64. package/dist/chunk-REST55RC.js +366 -0
  65. package/dist/chunk-TR53N6HB.js +196 -0
  66. package/dist/{chunk-4DQRD7TD.js → chunk-UXRSEMJJ.js} +201 -201
  67. package/dist/component-runtime/template/testing.d.ts +1 -0
  68. package/dist/component-runtime/template/testing.js +380 -0
  69. package/dist/component-runtime/template.d.ts +1 -0
  70. package/dist/component-runtime/template.js +99 -0
  71. package/dist/compose.js +10 -10
  72. package/dist/composition/floors.js +1 -1
  73. package/dist/composition/graphics-plan.js +1 -1
  74. package/dist/composition/ops.js +2 -1
  75. package/dist/composition/primitive-catalog.js +3 -1
  76. package/dist/composition/projection.js +3 -3
  77. package/dist/composition/validators/brand-kit-body.d.ts +1 -0
  78. package/dist/composition/validators/brand-kit-body.js +17 -0
  79. package/dist/composition/validators.js +10 -6
  80. package/dist/composition-ops.js +8 -7
  81. package/dist/composition.js +13 -9
  82. package/dist/{context-O2HHUVSA.js → context-4WSFPRLX.js} +2 -1
  83. package/dist/core/render.js +5 -5
  84. package/dist/core/select.js +2 -2
  85. package/dist/core.js +5 -5
  86. package/dist/director/ai-sdk.js +3 -3
  87. package/dist/director/domain.js +2 -2
  88. package/dist/director.js +3 -3
  89. package/dist/errors.js +1 -1
  90. package/dist/mcp/server.js +1 -24
  91. package/dist/mcp.js +1 -24
  92. package/dist/nle-export.js +1 -1
  93. package/dist/primitives/captions.js +3 -3
  94. package/dist/primitives/hero-text.js +2 -2
  95. package/dist/primitives/scenes.js +2 -2
  96. package/dist/primitives/text.js +2 -2
  97. package/dist/primitives.js +8 -8
  98. package/dist/render-harness/cardAssetAdmission.js +2 -2
  99. package/dist/render-harness/cardFonts.js +2 -2
  100. package/dist/render-harness/renderInputAssets.js +2 -2
  101. package/dist/render-harness.js +9 -9
  102. package/dist/src-ZP6727AA.js +70 -0
  103. package/package.json +25 -13
  104. package/dist/chunk-VDNMCD6S.js +0 -660
  105. package/dist/{chunk-X34KW2SL.js → chunk-RBWS5XHE.js} +4 -4
  106. package/dist/{chunk-7SQOXIWR.js → chunk-RL5SO653.js} +3 -3
  107. package/dist/{chunk-MPAOB7HY.js → chunk-UKDBU7HM.js} +4 -4
@@ -0,0 +1,418 @@
1
+ import {
2
+ BrandKit
3
+ } from "./chunk-PWWZTY3G.js";
4
+ import {
5
+ Composition,
6
+ Copy,
7
+ Format,
8
+ GraphicRole,
9
+ OpaqueId
10
+ } from "./chunk-UFD4EZHM.js";
11
+
12
+ // ../composition/src/validators/composePlan.ts
13
+ import { z } from "zod";
14
+ var PlanSubject = z.discriminatedUnion("kind", [
15
+ z.object({ kind: z.literal("face"), faceId: z.string().min(1) }),
16
+ z.object({ kind: z.literal("all-faces") }),
17
+ z.object({ kind: z.literal("frame-center") }),
18
+ z.object({ kind: z.literal("active-speaker") }),
19
+ z.object({
20
+ kind: z.literal("point"),
21
+ x: z.number().min(0).max(1),
22
+ y: z.number().min(0).max(1)
23
+ })
24
+ ]);
25
+ var PlanFramingSegment = z.object({
26
+ startSec: z.number().nonnegative(),
27
+ endSec: z.number().positive(),
28
+ action: z.enum(["frame", "keep", "trim"]).describe(
29
+ "'frame' = SHOW this span cropped/tracked per `subject`. 'keep' = SHOW this span as-is, no reframe (footage with nothing to track). 'trim' = DELETE this span from the output entirely \u2014 trimmed footage never appears."
30
+ ),
31
+ subject: PlanSubject.optional(),
32
+ shotScale: z.enum(["close", "standard", "wide"]).optional(),
33
+ zoomScale: z.number().min(0.4).max(1).optional(),
34
+ verticalBias: z.number().min(-0.3).max(0.3).optional(),
35
+ lateralBias: z.number().min(-0.3).max(0.3).optional(),
36
+ intent: z.string().optional()
37
+ }).refine((s) => s.action !== "frame" || s.subject !== void 0, {
38
+ message: "frame segment requires a subject \u2014 for footage with no trackable subject use action:'keep' (shown as-is); do NOT trim spans you want shown"
39
+ }).refine((s) => s.action !== "keep" || s.subject === void 0, {
40
+ message: "keep segment shows footage as-is \u2014 it takes no subject (use action:'frame' to track one)"
41
+ }).refine((s) => s.shotScale === void 0 || s.zoomScale === void 0, {
42
+ message: "framing segment takes EITHER shotScale (editorial scale \u2014 the bake calibrates the zoom to the detected face) OR zoomScale (an explicit fraction of the frame), never both: shotScale wins and the zoomScale would be silently discarded",
43
+ path: ["zoomScale"]
44
+ });
45
+ var PlanCut = z.object({
46
+ startSec: z.number().nonnegative(),
47
+ endSec: z.number().positive(),
48
+ reason: z.string().min(1)
49
+ });
50
+ var PlanAssetRequest = z.object({
51
+ id: z.string().min(1),
52
+ atSec: z.number().nonnegative(),
53
+ durSec: z.number().positive(),
54
+ kind: z.enum(["broll", "audio", "sfx", "music", "ambience", "gif", "image"]),
55
+ source: z.enum(["find", "generate"]),
56
+ intent: z.string().min(1),
57
+ resolvedMediaId: z.string().optional()
58
+ });
59
+ var PlanGraphicRequest = z.object({
60
+ id: z.string().min(1),
61
+ atSec: z.number().nonnegative(),
62
+ durSec: z.number().positive(),
63
+ role: GraphicRole,
64
+ copy: Copy,
65
+ intent: z.string().min(1)
66
+ });
67
+ var PlanMarker = z.object({
68
+ startSec: z.number().nonnegative(),
69
+ endSec: z.number().nonnegative().optional(),
70
+ kind: z.string().min(1),
71
+ name: z.string().optional()
72
+ });
73
+ var ComposePlan = z.object({
74
+ framing: z.array(PlanFramingSegment).min(1),
75
+ cuts: z.array(PlanCut).optional(),
76
+ captions: z.object({ styleIntent: z.string().optional() }).optional(),
77
+ assets: z.array(PlanAssetRequest).optional(),
78
+ graphics: z.array(PlanGraphicRequest).optional(),
79
+ markers: z.array(PlanMarker).optional()
80
+ });
81
+
82
+ // ../composition/src/validators/font.ts
83
+ import { z as z2 } from "zod";
84
+ var FontStatus = z2.enum([
85
+ "pending",
86
+ "uploading",
87
+ "analyzing",
88
+ "subsetting",
89
+ "ready",
90
+ "partial",
91
+ // common-glyphs buffer present, custom glyphs still subsetting
92
+ "failed"
93
+ ]);
94
+ var FontVariant = z2.object({
95
+ weight: z2.number().int().min(100).max(900),
96
+ style: z2.enum(["normal", "italic"]),
97
+ storageKey: z2.string().min(1),
98
+ byteSize: z2.number().int().nonnegative().optional(),
99
+ subsetComplete: z2.boolean().optional()
100
+ });
101
+ var Font = z2.object({
102
+ id: z2.string().min(1),
103
+ family: z2.string().min(1),
104
+ status: FontStatus,
105
+ variants: z2.array(FontVariant).nonempty(),
106
+ source: z2.enum(["uploaded", "system", "web"]).optional(),
107
+ license: z2.object({
108
+ type: z2.string().min(1),
109
+ source: z2.string().optional(),
110
+ notes: z2.string().optional()
111
+ }).optional(),
112
+ createdAt: z2.number().optional(),
113
+ // epoch ms
114
+ ownerOrgId: z2.string().optional()
115
+ });
116
+
117
+ // ../composition/src/validators/render.ts
118
+ import { z as z3 } from "zod";
119
+ var RenderPriority = z3.enum(["interactive", "standard", "background"]);
120
+ var RenderIntent = z3.enum(["preview", "final"]);
121
+ var RenderMode = z3.enum(["offline", "live"]);
122
+ var RenderCancelReason = z3.enum([
123
+ "user",
124
+ "agent",
125
+ "cost_limit",
126
+ "superseded",
127
+ "source_removed",
128
+ "timeout",
129
+ "error"
130
+ ]);
131
+ var RenderStatus = z3.enum([
132
+ "pending",
133
+ "rendering",
134
+ "complete",
135
+ "error",
136
+ "cancelled"
137
+ ]);
138
+ var RenderProgressPhase = z3.object({
139
+ phase: z3.string().min(1),
140
+ percent: z3.number().min(0).max(100),
141
+ scenesTotal: z3.number().int().positive().optional()
142
+ });
143
+ var RegistryPin = z3.object({
144
+ package: z3.string().min(1),
145
+ name: z3.string().min(1),
146
+ version: z3.string().min(1)
147
+ });
148
+ var MediaSourceSnapshot = z3.object({
149
+ mediaId: OpaqueId,
150
+ presignedUrl: z3.string().url(),
151
+ expiresAt: z3.number().optional()
152
+ });
153
+ var RenderSnapshot = z3.object({
154
+ composition: Composition,
155
+ brandKit: BrandKit.optional(),
156
+ mediaSources: z3.array(MediaSourceSnapshot),
157
+ registryPins: z3.array(RegistryPin),
158
+ capturedAt: z3.number()
159
+ });
160
+ var R2Destination = z3.object({
161
+ kind: z3.literal("r2"),
162
+ path: z3.string().optional()
163
+ });
164
+ var S3Destination = z3.object({
165
+ kind: z3.literal("s3"),
166
+ credentialId: z3.string().min(1),
167
+ bucket: z3.string().min(1),
168
+ key: z3.string().min(1),
169
+ region: z3.string().optional(),
170
+ acl: z3.string().optional()
171
+ });
172
+ var YoutubeDestination = z3.object({
173
+ kind: z3.literal("youtube"),
174
+ credentialId: z3.string().min(1),
175
+ title: z3.string().min(1),
176
+ description: z3.string().optional(),
177
+ privacy: z3.enum(["public", "unlisted", "private"]),
178
+ tags: z3.array(z3.string()).optional()
179
+ });
180
+ var MuxDestination = z3.object({
181
+ kind: z3.literal("mux"),
182
+ credentialId: z3.string().min(1),
183
+ passthrough: z3.string().optional()
184
+ });
185
+ var WebhookDestination = z3.object({
186
+ kind: z3.literal("webhook"),
187
+ url: z3.string().url(),
188
+ signingKeyId: z3.string().optional(),
189
+ headers: z3.record(z3.string(), z3.string()).optional()
190
+ });
191
+ var Destination = z3.discriminatedUnion("kind", [
192
+ R2Destination,
193
+ S3Destination,
194
+ YoutubeDestination,
195
+ MuxDestination,
196
+ WebhookDestination
197
+ ]);
198
+ var DestinationDeliveryStatus = z3.enum([
199
+ "pending",
200
+ "uploading",
201
+ "delivered",
202
+ "failed"
203
+ ]);
204
+ var DestinationResult = z3.object({
205
+ destinationIndex: z3.number().int().nonnegative(),
206
+ status: DestinationDeliveryStatus,
207
+ url: z3.string().url().optional(),
208
+ deliveredAt: z3.number().optional(),
209
+ error: z3.string().optional()
210
+ });
211
+ var RenderJob = z3.object({
212
+ id: OpaqueId,
213
+ projectId: OpaqueId.optional(),
214
+ compositionId: OpaqueId,
215
+ compositionVersionId: z3.string().min(1),
216
+ status: RenderStatus,
217
+ progress: RenderProgressPhase.optional(),
218
+ mode: RenderMode.optional(),
219
+ priority: RenderPriority,
220
+ // required per data-model.md § Render priority
221
+ intent: RenderIntent.optional(),
222
+ snapshot: RenderSnapshot.optional(),
223
+ snapshotRef: z3.string().optional(),
224
+ outputUrl: z3.string().url().optional(),
225
+ outputExpiresAt: z3.number().optional(),
226
+ // epoch ms
227
+ destinations: z3.array(Destination).optional(),
228
+ destinationResults: z3.array(DestinationResult).optional(),
229
+ cancelReason: RenderCancelReason.optional(),
230
+ error: z3.object({
231
+ code: z3.string(),
232
+ message: z3.string(),
233
+ details: z3.record(z3.string(), z3.unknown()).optional()
234
+ }).optional(),
235
+ createdAt: z3.number(),
236
+ updatedAt: z3.number()
237
+ });
238
+ var RenderProgress = z3.object({
239
+ jobId: OpaqueId,
240
+ status: RenderStatus,
241
+ percent: z3.number().min(0).max(100).optional(),
242
+ framesRendered: z3.number().int().nonnegative().optional(),
243
+ framesTotal: z3.number().int().positive().optional()
244
+ });
245
+
246
+ // ../composition/src/validators/registry.ts
247
+ import { z as z4 } from "zod";
248
+ var PrimitiveOriginClass = z4.enum([
249
+ "first-party",
250
+ "community-verified",
251
+ "community-unverified",
252
+ "user-private",
253
+ "sandbox",
254
+ "deprecated"
255
+ ]);
256
+ var PrimitiveMode = z4.enum(["2d", "immersive", "interactive"]);
257
+ var PrimitiveToken = z4.object({
258
+ path: z4.string().min(1),
259
+ fallback: z4.unknown()
260
+ });
261
+ var PrimitiveOtioMapping = z4.object({
262
+ effectName: z4.string().min(1),
263
+ metadata: z4.record(z4.string(), z4.unknown()).optional()
264
+ });
265
+ var PrimitiveMeta = z4.object({
266
+ description: z4.string().optional(),
267
+ use_when: z4.array(z4.string()).optional(),
268
+ avoid_when: z4.array(z4.string()).optional(),
269
+ vibe: z4.array(z4.string()).optional(),
270
+ formats: z4.array(z4.string()).optional(),
271
+ pairs_well_with: z4.array(z4.string()).optional(),
272
+ exemplars: z4.array(z4.string()).optional()
273
+ });
274
+ var PrimitiveRegistryEntry = z4.object({
275
+ name: z4.string().min(1),
276
+ package: z4.string().min(1),
277
+ category: z4.enum(["overlay", "text", "effect", "transition", "layout"]),
278
+ version: z4.string().min(1),
279
+ origin: PrimitiveOriginClass,
280
+ modes: z4.array(PrimitiveMode).optional(),
281
+ paramsSchema: z4.unknown(),
282
+ varyingParams: z4.array(z4.string()).optional(),
283
+ extends: z4.string().optional(),
284
+ tokens: z4.array(PrimitiveToken).optional(),
285
+ otio: PrimitiveOtioMapping.optional(),
286
+ meta: PrimitiveMeta.optional()
287
+ });
288
+
289
+ // ../composition/src/validators/project.ts
290
+ import { z as z5 } from "zod";
291
+ var Project = z5.object({
292
+ id: OpaqueId,
293
+ name: z5.string().min(1),
294
+ defaultFormat: Format.optional(),
295
+ palConformDefault: z5.union([z5.literal(24), z5.literal(30)]).optional(),
296
+ activeCompositionId: OpaqueId.nullable().optional(),
297
+ brandKitId: z5.string().optional(),
298
+ ownerOrgId: z5.string().optional(),
299
+ createdAt: z5.number(),
300
+ updatedAt: z5.number()
301
+ });
302
+
303
+ // ../composition/src/validators/session.ts
304
+ import { z as z6 } from "zod";
305
+ var SessionMediaRole = z6.enum([
306
+ "main",
307
+ "wide",
308
+ "facecam",
309
+ "screen",
310
+ "audio"
311
+ ]);
312
+ var SessionMember = z6.object({
313
+ mediaId: OpaqueId,
314
+ role: SessionMediaRole,
315
+ label: z6.string().optional()
316
+ // human-readable annotation, e.g., "host's camera"
317
+ });
318
+ var SessionMux = z6.object({
319
+ videoRole: z6.enum(["main", "wide", "facecam", "screen"]),
320
+ audioRole: z6.literal("audio")
321
+ });
322
+ var Session = z6.object({
323
+ id: OpaqueId,
324
+ name: z6.string().min(1),
325
+ members: z6.array(SessionMember).nonempty(),
326
+ mux: z6.array(SessionMux).optional(),
327
+ ownerOrgId: z6.string().optional(),
328
+ createdAt: z6.number(),
329
+ updatedAt: z6.number()
330
+ });
331
+
332
+ // ../composition/src/validators/webhook.ts
333
+ import { z as z7 } from "zod";
334
+ var SubstrateWebhookEvent = z7.enum([
335
+ "render.completed",
336
+ "media.transcribed",
337
+ "media.completed",
338
+ "composition.updated"
339
+ ]);
340
+ var WebhookDeliveryStatus = z7.enum([
341
+ "pending",
342
+ "delivering",
343
+ "delivered",
344
+ "failed",
345
+ "exhausted"
346
+ // retry budget burned through
347
+ ]);
348
+ var Webhook = z7.object({
349
+ id: OpaqueId,
350
+ url: z7.string().url(),
351
+ events: z7.array(z7.string().min(1)).nonempty(),
352
+ signingKeyId: z7.string().optional(),
353
+ headers: z7.record(z7.string(), z7.string()).optional(),
354
+ enabled: z7.boolean().optional(),
355
+ ownerOrgId: z7.string().optional(),
356
+ createdAt: z7.number(),
357
+ updatedAt: z7.number()
358
+ });
359
+ var WebhookDelivery = z7.object({
360
+ id: z7.string().min(1),
361
+ webhookId: OpaqueId,
362
+ event: z7.string().min(1),
363
+ payload: z7.record(z7.string(), z7.unknown()),
364
+ status: WebhookDeliveryStatus,
365
+ attemptCount: z7.number().int().nonnegative(),
366
+ responseStatus: z7.number().int().optional(),
367
+ responseBody: z7.string().optional(),
368
+ error: z7.string().optional(),
369
+ createdAt: z7.number(),
370
+ deliveredAt: z7.number().optional()
371
+ });
372
+
373
+ export {
374
+ PlanSubject,
375
+ PlanFramingSegment,
376
+ PlanCut,
377
+ PlanAssetRequest,
378
+ PlanGraphicRequest,
379
+ PlanMarker,
380
+ ComposePlan,
381
+ FontStatus,
382
+ FontVariant,
383
+ Font,
384
+ RenderPriority,
385
+ RenderIntent,
386
+ RenderMode,
387
+ RenderCancelReason,
388
+ RenderStatus,
389
+ RenderProgressPhase,
390
+ RegistryPin,
391
+ MediaSourceSnapshot,
392
+ RenderSnapshot,
393
+ R2Destination,
394
+ S3Destination,
395
+ YoutubeDestination,
396
+ MuxDestination,
397
+ WebhookDestination,
398
+ Destination,
399
+ DestinationDeliveryStatus,
400
+ DestinationResult,
401
+ RenderJob,
402
+ RenderProgress,
403
+ PrimitiveOriginClass,
404
+ PrimitiveMode,
405
+ PrimitiveToken,
406
+ PrimitiveOtioMapping,
407
+ PrimitiveMeta,
408
+ PrimitiveRegistryEntry,
409
+ Project,
410
+ SessionMediaRole,
411
+ SessionMember,
412
+ SessionMux,
413
+ Session,
414
+ SubstrateWebhookEvent,
415
+ WebhookDeliveryStatus,
416
+ Webhook,
417
+ WebhookDelivery
418
+ };
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  ChatErrorView,
3
3
  DirectorTurnContext
4
- } from "./chunk-N54EGUVM.js";
4
+ } from "./chunk-3VLDQE26.js";
5
5
  import {
6
6
  GenerationArtifact
7
7
  } from "./chunk-73DQTUWY.js";
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-OSMXQV5V.js";
5
5
  import {
6
6
  CueframeError
7
- } from "./chunk-E63UEO5C.js";
7
+ } from "./chunk-AK5QBHOB.js";
8
8
 
9
9
  // ../execution/render-harness/src/cardAssetAdmission.ts
10
10
  import parseCss from "css-tree/parser";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  CueframeError,
3
3
  encodeError
4
- } from "./chunk-E63UEO5C.js";
4
+ } from "./chunk-AK5QBHOB.js";
5
5
 
6
6
  // ../execution/core/src/render/vcam/constants.ts
7
7
  var P_MIN = 0.5;
@@ -20,7 +20,7 @@ import {
20
20
  scoreAndRank,
21
21
  segmentShots,
22
22
  stabilizeSelectionHysteresis
23
- } from "./chunk-JPMVNMF3.js";
23
+ } from "./chunk-MNO6AO2J.js";
24
24
  import {
25
25
  flattenCompoundClips,
26
26
  hasCompoundClips
@@ -31,7 +31,7 @@ import {
31
31
  } from "./chunk-VZ7TYX6Z.js";
32
32
  import {
33
33
  resolveBrandRef
34
- } from "./chunk-TLOYCCCI.js";
34
+ } from "./chunk-DKBFAQCW.js";
35
35
  import {
36
36
  SHOT_SCALE_TARGET,
37
37
  shotScaleZoom
@@ -39,7 +39,7 @@ import {
39
39
  import {
40
40
  CueframeError,
41
41
  encodeError
42
- } from "./chunk-E63UEO5C.js";
42
+ } from "./chunk-AK5QBHOB.js";
43
43
  import {
44
44
  SCENE_CAPTURE_IDENTITY_FIELDS_V1,
45
45
  SCENE_PRESET_TRIANGLES,
@@ -1995,7 +1995,8 @@ function referencedMediaIds(composition) {
1995
1995
  function assertMergedCaptionFacesDrawable(composition) {
1996
1996
  const captions = composition.captions;
1997
1997
  if (!captions?.segments.some((segment) => segment.words.length > 0)) return;
1998
- const brandCaption = composition.brandKit?.caption;
1998
+ const brandKit = composition.brandKit;
1999
+ const brandCaption = brandKit?.syncCaptions === false ? void 0 : brandKit?.caption;
1999
2000
  const issues = mergedCaptionFaceIssues(captions.style, brandCaption);
2000
2001
  for (const [index, layout] of (captions.layouts ?? []).entries()) {
2001
2002
  for (const issue of mergedCaptionFaceIssues({ ...captions.style, ...layout.style }, brandCaption)) {
@@ -2005,7 +2006,7 @@ function assertMergedCaptionFacesDrawable(composition) {
2005
2006
  if (issues.length === 0) return;
2006
2007
  throw renderInputError(
2007
2008
  "font_not_reproducible",
2008
- "The caption style this render draws is the brand kit's caption block over the composition's own style, and that merge names a face with no file behind it: " + issues.map((issue) => `${issue.path}: ${issue.message}`).join(" "),
2009
+ "The caption style this render draws names a face with no file behind it: " + issues.map((issue) => `${issue.path}: ${issue.message}`).join(" "),
2009
2010
  {
2010
2011
  compositionPath: issues[0].path,
2011
2012
  fields: issues.map((issue) => issue.path)
@@ -2114,11 +2115,11 @@ function compositionToRenderInput(composition, srcUrls, trajectoryUrls, coViewUr
2114
2115
  bodyDurationInFrames,
2115
2116
  fps
2116
2117
  );
2117
- const cap = brandKit?.caption;
2118
- const brandAccent = cap?.fg ?? brandKit?.colors?.accent;
2118
+ const cap = brandKit?.syncCaptions === false ? void 0 : brandKit?.caption;
2119
+ const brandAccent = brandKit?.syncCaptions === false ? void 0 : cap?.fg ?? brandKit?.colors?.accent;
2119
2120
  const mot = brandKit?.motion;
2120
2121
  const ANIMATED_CAPTION_ENTRANCES = ["fade", "word-pop", "stagger-up"];
2121
- const captionEntrance = ANIMATED_CAPTION_ENTRANCES.includes(
2122
+ const captionEntrance = brandKit?.syncCaptions !== false && ANIMATED_CAPTION_ENTRANCES.includes(
2122
2123
  mot?.entrance
2123
2124
  ) ? mot.entrance : void 0;
2124
2125
  const captionMotion = captionEntrance ? {