@cueframe/kernel 0.0.1 → 0.1.1

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 (432) hide show
  1. package/LICENSE +661 -0
  2. package/dist/_members/account-model/testing/conversationStoreContract.d.ts +1 -1
  3. package/dist/_members/authoring/providers/resourceApi.d.ts +1 -1
  4. package/dist/_members/authoring/transpileComponent.d.ts +1 -1
  5. package/dist/_members/cloud-import/CloudImportService.d.ts +35 -0
  6. package/dist/_members/cloud-import/ImportProvider.d.ts +73 -0
  7. package/dist/_members/cloud-import/MediaItemPreprocessor.d.ts +27 -0
  8. package/dist/_members/cloud-import/cloudConfig.d.ts +23 -0
  9. package/dist/_members/cloud-import/index.d.ts +9 -0
  10. package/dist/_members/cloud-import/multipartUpload.d.ts +12 -0
  11. package/dist/_members/composition/ops/compositionOps.d.ts +2 -1
  12. package/dist/_members/composition/ops/types.d.ts +1 -1
  13. package/dist/_members/composition/projection/behind-readiness.d.ts +127 -0
  14. package/dist/_members/composition/projection/index.d.ts +2 -0
  15. package/dist/_members/composition/projection/reframe-readiness.d.ts +156 -0
  16. package/dist/_members/composition/timeline/placement.d.ts +1 -1
  17. package/dist/_members/composition/validators/composition.d.ts +43 -26
  18. package/dist/_members/composition/validators/render.d.ts +32 -0
  19. package/dist/_members/composition-ops/index.d.ts +1 -1
  20. package/dist/_members/composition-ops/opRecorder.d.ts +1 -1
  21. package/dist/_members/convex-api/api.d.ts +5 -0
  22. package/dist/_members/convex-api/dataModel.d.ts +6 -0
  23. package/dist/_members/core/render/compositionRender.d.ts +17 -1
  24. package/dist/_members/core/render/exportSettings.d.ts +1 -1
  25. package/dist/_members/core/render/types.d.ts +31 -0
  26. package/dist/_members/mcp/curation.d.ts +1 -1
  27. package/dist/_members/plane/conformance.d.ts +1 -1
  28. package/dist/_members/render-harness/localRender.d.ts +1 -1
  29. package/dist/animate.js +828 -79187
  30. package/dist/authoring/build-tools.js +8 -11
  31. package/dist/authoring/context.js +5 -5
  32. package/dist/authoring/models.js +1 -2
  33. package/dist/authoring/prompts.js +1 -1
  34. package/dist/authoring/tools.js +7 -7
  35. package/dist/authoring/transpileComponent.js +3 -2220
  36. package/dist/authoring.js +30 -30
  37. package/dist/brand-derivation.js +1 -1
  38. package/dist/chunk-6IU2UQI5.js +107 -0
  39. package/dist/{chunk-5I7VDCAC.js → chunk-7FO3ZJ43.js} +4 -1
  40. package/dist/{chunk-N67PDTKQ.js → chunk-ABL557OT.js} +1 -1
  41. package/dist/{chunk-MC5DLSEV.js → chunk-AP6ZIVAV.js} +15 -15
  42. package/dist/{chunk-QLAQHR3L.js → chunk-AQBREB5O.js} +1 -1
  43. package/dist/{chunk-DSNG6WLU.js → chunk-AYVJXDLB.js} +1 -4
  44. package/dist/{chunk-6CMVBTTP.js → chunk-DK2ODBNT.js} +19 -9
  45. package/dist/chunk-DSMLHYJ4.js +82 -0
  46. package/dist/{chunk-BRKJKB33.js → chunk-FYZVH3MC.js} +1 -1
  47. package/dist/{chunk-MVEE6HEC.js → chunk-GA23TRNR.js} +5 -7
  48. package/dist/chunk-HCCBDJLW.js +68 -0
  49. package/dist/{chunk-JRQVPFLF.js → chunk-HY3RIEZW.js} +1 -1
  50. package/dist/{chunk-OIRUO5P7.js → chunk-JJ6XD7NG.js} +152 -2
  51. package/dist/{_members/primitives/chunk-IDAL6G3Y.js → chunk-JQMPHKLU.js} +19 -27
  52. package/dist/{chunk-G3PBH53P.js → chunk-MBCXCJOE.js} +1 -1
  53. package/dist/{chunk-UEI3NLNK.js → chunk-MHOQTPOB.js} +1 -4
  54. package/dist/{chunk-37NJ27UU.js → chunk-OCFDUCF4.js} +3 -0
  55. package/dist/{chunk-WZTTZHNR.js → chunk-OLFOPQCA.js} +12 -9
  56. package/dist/{chunk-P43IE4WB.js → chunk-P727GZVO.js} +2 -4
  57. package/dist/{chunk-52AHXNKM.js → chunk-PDYO3DOJ.js} +5 -5
  58. package/dist/{chunk-S3P5BFFL.js → chunk-PMY24FUD.js} +2 -4
  59. package/dist/{chunk-ATAF24QG.js → chunk-PODIYN2K.js} +10 -3
  60. package/dist/chunk-RF7U3SCL.js +606 -0
  61. package/dist/{chunk-JD77Y2WM.js → chunk-SW336CJP.js} +1 -4
  62. package/dist/{chunk-TULRCY6U.js → chunk-TOJEXFXL.js} +1 -1
  63. package/dist/{chunk-ELLSET2N.js → chunk-UHGSZZDI.js} +3 -6
  64. package/dist/{chunk-M3I5LMAB.js → chunk-UY4SWJVE.js} +1 -1
  65. package/dist/{chunk-6QJ3V3VS.js → chunk-YX2GSJK7.js} +1 -1
  66. package/dist/chunk-ZT7MHRQU.js +104 -0
  67. package/dist/{chunk-NV4I6GJV.js → chunk-ZWMV6DD2.js} +27 -4
  68. package/dist/cloud-import/multipart.d.ts +1 -0
  69. package/dist/cloud-import/multipart.js +8 -0
  70. package/dist/cloud-import.d.ts +1 -0
  71. package/dist/cloud-import.js +234 -0
  72. package/dist/compose/renderer.js +19 -22
  73. package/dist/compose.js +19 -22
  74. package/dist/composition/graphics-plan.js +3 -3
  75. package/dist/composition/ops.js +4 -4
  76. package/dist/composition/primitive-catalog.js +1 -1
  77. package/dist/composition/projection.js +21 -5
  78. package/dist/composition/validators.js +6 -4
  79. package/dist/composition-ops.js +15 -13
  80. package/dist/composition.js +26 -8
  81. package/dist/{context-CEAKQ5T7.js → context-YWUZDG5X.js} +5 -5
  82. package/dist/convex-api/dataModel.d.ts +1 -0
  83. package/dist/convex-api/dataModel.js +0 -0
  84. package/dist/convex-api.d.ts +1 -0
  85. package/dist/convex-api.js +8 -0
  86. package/dist/core/render.js +3 -3
  87. package/dist/core/select.js +2 -2
  88. package/dist/core.js +3 -3
  89. package/dist/errors.js +1 -1
  90. package/dist/mcp/adapter.js +2 -5
  91. package/dist/mcp/server.js +1 -2
  92. package/dist/mcp.js +2 -95
  93. package/dist/media-model/media-kind.js +9 -98
  94. package/dist/media-model/testing.js +1071 -718
  95. package/dist/nle-export/server.js +328 -130
  96. package/dist/nle-export/xml.js +5 -22799
  97. package/dist/nle-export.js +20 -22
  98. package/dist/primitives/backgrounds.js +2 -3
  99. package/dist/primitives/captions.js +4 -243
  100. package/dist/primitives/effects.js +2 -3
  101. package/dist/primitives/hero-text.js +2 -3
  102. package/dist/primitives/layouts.js +2 -3
  103. package/dist/primitives/lib/index.js +8 -10
  104. package/dist/primitives/lib/preview.js +1 -2
  105. package/dist/primitives/lib/schema.js +1 -2
  106. package/dist/primitives/lib/text/fitText.js +1 -2
  107. package/dist/primitives/lib.js +8 -10
  108. package/dist/primitives/scenes.js +1 -2
  109. package/dist/primitives/text.js +2 -3
  110. package/dist/primitives/ui-blocks.js +4 -5
  111. package/dist/primitives.js +19 -21
  112. package/package.json +125 -16
  113. package/dist/TextureLoader-UQOFUSAP.js +0 -422
  114. package/dist/VideoTexture-AQWSPIJG.js +0 -62
  115. package/dist/_members/account-model/index.js +0 -4
  116. package/dist/_members/account-model/testing/conversationStoreContract.js +0 -168
  117. package/dist/_members/account-model/testing/index.js +0 -7
  118. package/dist/_members/account-model/testing/restorePointStoreContract.js +0 -69
  119. package/dist/_members/account-model/types/index.js +0 -1
  120. package/dist/_members/account-model/validators/contextFile.js +0 -18
  121. package/dist/_members/account-model/validators/conversation.js +0 -95
  122. package/dist/_members/account-model/validators/dashboardInsight.js +0 -16
  123. package/dist/_members/account-model/validators/index.js +0 -7
  124. package/dist/_members/account-model/validators/sessionToken.js +0 -49
  125. package/dist/_members/account-model/validators/uploadToken.js +0 -16
  126. package/dist/_members/account-model/validators/userSettings.js +0 -12
  127. package/dist/_members/account-model/validators/workingComposition.js +0 -20
  128. package/dist/_members/brand-derivation/constants.js +0 -20
  129. package/dist/_members/brand-derivation/contrastSafe.js +0 -114
  130. package/dist/_members/brand-derivation/index.js +0 -1
  131. package/dist/_members/composition/audio/audioMix.js +0 -61
  132. package/dist/_members/composition/audio/index.js +0 -5
  133. package/dist/_members/composition/audio/mixStaging.js +0 -195
  134. package/dist/_members/composition/audio/musicPack.generated.js +0 -136
  135. package/dist/_members/composition/audio/musicPack.js +0 -36
  136. package/dist/_members/composition/audio/pack.generated.js +0 -603
  137. package/dist/_members/composition/audio/pack.js +0 -48
  138. package/dist/_members/composition/audio/palette.js +0 -134
  139. package/dist/_members/composition/autozoom/index.js +0 -83
  140. package/dist/_members/composition/brand-kit.js +0 -45
  141. package/dist/_members/composition/brief/contract.js +0 -209
  142. package/dist/_members/composition/color-grade.js +0 -80
  143. package/dist/_members/composition/depth.js +0 -8
  144. package/dist/_members/composition/fixtures/index.js +0 -143
  145. package/dist/_members/composition/fixtures/vaayaErrored.d.ts +0 -25
  146. package/dist/_members/composition/fixtures/vaayaErrored.js +0 -203
  147. package/dist/_members/composition/fonts.js +0 -162
  148. package/dist/_members/composition/graphics-plan/compile.js +0 -221
  149. package/dist/_members/composition/graphics-plan/index.js +0 -10
  150. package/dist/_members/composition/graphics-plan/instantiateMotif.js +0 -44
  151. package/dist/_members/composition/graphics-plan/motion.js +0 -66
  152. package/dist/_members/composition/graphics-plan/schemas.js +0 -261
  153. package/dist/_members/composition/graphics-plan/solve.js +0 -145
  154. package/dist/_members/composition/index.js +0 -5
  155. package/dist/_members/composition/invariants/clipPlacement.js +0 -69
  156. package/dist/_members/composition/invariants/composition.js +0 -28
  157. package/dist/_members/composition/invariants/errors.js +0 -10
  158. package/dist/_members/composition/invariants/etag.js +0 -38
  159. package/dist/_members/composition/invariants/ids.js +0 -33
  160. package/dist/_members/composition/invariants/index.js +0 -9
  161. package/dist/_members/composition/invariants/keyframes.js +0 -45
  162. package/dist/_members/composition/invariants/markers.js +0 -29
  163. package/dist/_members/composition/invariants/time.js +0 -20
  164. package/dist/_members/composition/invariants/tracks.js +0 -304
  165. package/dist/_members/composition/ops/compositionOps.js +0 -1056
  166. package/dist/_members/composition/ops/headlessStore.js +0 -94
  167. package/dist/_members/composition/ops/index.js +0 -4
  168. package/dist/_members/composition/ops/selectors.js +0 -118
  169. package/dist/_members/composition/ops/timeline-word.js +0 -1
  170. package/dist/_members/composition/ops/transcript.js +0 -77
  171. package/dist/_members/composition/ops/types.js +0 -16
  172. package/dist/_members/composition/primitive-catalog/catalogQuery.js +0 -150
  173. package/dist/_members/composition/primitive-catalog/disabled.js +0 -32
  174. package/dist/_members/composition/primitive-catalog/generated/meta.js +0 -15161
  175. package/dist/_members/composition/primitive-catalog/index.js +0 -46
  176. package/dist/_members/composition/primitive-catalog/paramValidation.js +0 -231
  177. package/dist/_members/composition/primitive-catalog/projection.js +0 -164
  178. package/dist/_members/composition/primitive-catalog/types.js +0 -14
  179. package/dist/_members/composition/projection/behind-placement.js +0 -62
  180. package/dist/_members/composition/projection/brandKit.js +0 -482
  181. package/dist/_members/composition/projection/cardTokens.js +0 -209
  182. package/dist/_members/composition/projection/composition-floor.js +0 -582
  183. package/dist/_members/composition/projection/cropProjection.js +0 -257
  184. package/dist/_members/composition/projection/index.js +0 -7
  185. package/dist/_members/composition/projection/occlusion-budget.js +0 -104
  186. package/dist/_members/composition/projection/safe-zones.js +0 -99
  187. package/dist/_members/composition/reframe/aspectLoss.js +0 -115
  188. package/dist/_members/composition/reframe/coverage.js +0 -62
  189. package/dist/_members/composition/reframe/derive.js +0 -73
  190. package/dist/_members/composition/reframe/index.js +0 -109
  191. package/dist/_members/composition/reframe/kenBurns.js +0 -64
  192. package/dist/_members/composition/reframe/shotScale.js +0 -176
  193. package/dist/_members/composition/reframe/trajectory.js +0 -124
  194. package/dist/_members/composition/timeline/compound.js +0 -134
  195. package/dist/_members/composition/timeline/index.js +0 -9
  196. package/dist/_members/composition/timeline/intent.js +0 -228
  197. package/dist/_members/composition/timeline/keyframes.js +0 -121
  198. package/dist/_members/composition/timeline/link.js +0 -59
  199. package/dist/_members/composition/timeline/occupancy.js +0 -36
  200. package/dist/_members/composition/timeline/placement.js +0 -74
  201. package/dist/_members/composition/timeline/plan.js +0 -31
  202. package/dist/_members/composition/timeline/resolve.js +0 -170
  203. package/dist/_members/composition/timeline/trims.js +0 -278
  204. package/dist/_members/composition/types/index.js +0 -1
  205. package/dist/_members/composition/validators/brandKit.js +0 -295
  206. package/dist/_members/composition/validators/composePlan.js +0 -113
  207. package/dist/_members/composition/validators/composition.js +0 -703
  208. package/dist/_members/composition/validators/font.js +0 -34
  209. package/dist/_members/composition/validators/graphicKinds.js +0 -30
  210. package/dist/_members/composition/validators/index.js +0 -9
  211. package/dist/_members/composition/validators/project.js +0 -29
  212. package/dist/_members/composition/validators/registry.js +0 -41
  213. package/dist/_members/composition/validators/render.js +0 -139
  214. package/dist/_members/composition/validators/session.js +0 -37
  215. package/dist/_members/composition/validators/webhook.js +0 -72
  216. package/dist/_members/composition-ops/alphaLayers.js +0 -141
  217. package/dist/_members/composition-ops/index.js +0 -637
  218. package/dist/_members/composition-ops/materializeGrid.js +0 -99
  219. package/dist/_members/composition-ops/opRecorder.js +0 -196
  220. package/dist/_members/composition-ops/recordingStore.js +0 -14
  221. package/dist/_members/composition-ops/replaceRegion.js +0 -102
  222. package/dist/_members/composition-ops/testFixtures.js +0 -19
  223. package/dist/_members/core/index.js +0 -5
  224. package/dist/_members/core/render/bookends.js +0 -53
  225. package/dist/_members/core/render/captions.js +0 -127
  226. package/dist/_members/core/render/compositionRender.js +0 -1249
  227. package/dist/_members/core/render/deriveTrajectory.js +0 -889
  228. package/dist/_members/core/render/emphasis.js +0 -16
  229. package/dist/_members/core/render/eval/cropBox.js +0 -139
  230. package/dist/_members/core/render/eval/inclusion.js +0 -96
  231. package/dist/_members/core/render/eval/index.js +0 -146
  232. package/dist/_members/core/render/eval/metrics.js +0 -94
  233. package/dist/_members/core/render/exportSettings.js +0 -65
  234. package/dist/_members/core/render/index.js +0 -20
  235. package/dist/_members/core/render/mapFaceToPerson.js +0 -73
  236. package/dist/_members/core/render/types.js +0 -8
  237. package/dist/_members/core/render/vcam/cameraPath.js +0 -248
  238. package/dist/_members/core/render/vcam/constants.js +0 -115
  239. package/dist/_members/core/render/vcam/errorCodes.js +0 -39
  240. package/dist/_members/core/render/vcam/framing.js +0 -136
  241. package/dist/_members/core/render/vcam/requiredRegion.js +0 -137
  242. package/dist/_members/core/render/vcam/shots.js +0 -53
  243. package/dist/_members/core/render/vcam/subjectSet.js +0 -388
  244. package/dist/_members/core/select/errorCodes.js +0 -38
  245. package/dist/_members/core/select/index.js +0 -26
  246. package/dist/_members/core/select/model.js +0 -18
  247. package/dist/_members/core/select/select.js +0 -244
  248. package/dist/_members/core/select/stabilize.js +0 -242
  249. package/dist/_members/core/types.js +0 -7
  250. package/dist/_members/errors/index.js +0 -1
  251. package/dist/_members/errors/registry.js +0 -560
  252. package/dist/_members/foundation/codes/index.js +0 -31
  253. package/dist/_members/foundation/index.js +0 -2
  254. package/dist/_members/foundation/primitives/index.js +0 -5
  255. package/dist/_members/mcp/adapter.js +0 -771
  256. package/dist/_members/mcp/burnedNames.js +0 -73
  257. package/dist/_members/mcp/core.js +0 -390
  258. package/dist/_members/mcp/curation.js +0 -792
  259. package/dist/_members/mcp/executor.js +0 -142
  260. package/dist/_members/mcp/format.js +0 -9
  261. package/dist/_members/mcp/generated/catalogPreviews.js +0 -95
  262. package/dist/_members/mcp/generated/harness.js +0 -81
  263. package/dist/_members/mcp/generated/operations.js +0 -131
  264. package/dist/_members/mcp/index.js +0 -50
  265. package/dist/_members/mcp/internalLoopTools.js +0 -109
  266. package/dist/_members/mcp/prompts.js +0 -45
  267. package/dist/_members/mcp/resources.js +0 -166
  268. package/dist/_members/mcp/server.js +0 -340
  269. package/dist/_members/mcp/wait.js +0 -378
  270. package/dist/_members/mcp/x402Meta.js +0 -66
  271. package/dist/_members/media-model/api.js +0 -175
  272. package/dist/_members/media-model/index.js +0 -1
  273. package/dist/_members/media-model/media-kind.js +0 -116
  274. package/dist/_members/media-model/testing/index.js +0 -1
  275. package/dist/_members/media-model/testing/mediaStoreContract.js +0 -82
  276. package/dist/_members/media-model/transcriptSearch.js +0 -70
  277. package/dist/_members/media-model/transcriptSearchCases.json +0 -79
  278. package/dist/_members/nle-export/compact-timeline.js +0 -73
  279. package/dist/_members/nle-export/compact-timeline.js.map +0 -1
  280. package/dist/_members/nle-export/composition-to-input.js +0 -147
  281. package/dist/_members/nle-export/composition-to-input.js.map +0 -1
  282. package/dist/_members/nle-export/fcpxml.js +0 -159
  283. package/dist/_members/nle-export/fcpxml.js.map +0 -1
  284. package/dist/_members/nle-export/index.js +0 -12
  285. package/dist/_members/nle-export/index.js.map +0 -1
  286. package/dist/_members/nle-export/premiere.js +0 -161
  287. package/dist/_members/nle-export/premiere.js.map +0 -1
  288. package/dist/_members/nle-export/server/index.js +0 -2
  289. package/dist/_members/nle-export/server/index.js.map +0 -1
  290. package/dist/_members/nle-export/server/pack-zip.js +0 -38
  291. package/dist/_members/nle-export/server/pack-zip.js.map +0 -1
  292. package/dist/_members/nle-export/srt.js +0 -50
  293. package/dist/_members/nle-export/srt.js.map +0 -1
  294. package/dist/_members/nle-export/types.js +0 -9
  295. package/dist/_members/nle-export/types.js.map +0 -1
  296. package/dist/_members/nle-export/xml/index.js +0 -11
  297. package/dist/_members/nle-export/xml/index.js.map +0 -1
  298. package/dist/_members/nle-export/xml-utils.js +0 -48
  299. package/dist/_members/nle-export/xml-utils.js.map +0 -1
  300. package/dist/_members/perception/activeSpeaker.js +0 -103
  301. package/dist/_members/perception/audioQuality.js +0 -76
  302. package/dist/_members/perception/energyBeat.js +0 -99
  303. package/dist/_members/perception/identityMatch.js +0 -91
  304. package/dist/_members/perception/index.js +0 -48
  305. package/dist/_members/perception/visualQuality.js +0 -95
  306. package/dist/_members/plane/conformance.js +0 -90
  307. package/dist/_members/plane/contract.js +0 -49
  308. package/dist/_members/plane/index.js +0 -16
  309. package/dist/_members/primitives/backgrounds/index.js +0 -32
  310. package/dist/_members/primitives/backgrounds/index.js.map +0 -1
  311. package/dist/_members/primitives/captions/index.js +0 -398
  312. package/dist/_members/primitives/captions/index.js.map +0 -1
  313. package/dist/_members/primitives/chunk-2LVE4UIT.js +0 -139
  314. package/dist/_members/primitives/chunk-2LVE4UIT.js.map +0 -1
  315. package/dist/_members/primitives/chunk-3IQUH6KK.js +0 -20
  316. package/dist/_members/primitives/chunk-3IQUH6KK.js.map +0 -1
  317. package/dist/_members/primitives/chunk-3OMURV6Q.js +0 -112
  318. package/dist/_members/primitives/chunk-3OMURV6Q.js.map +0 -1
  319. package/dist/_members/primitives/chunk-4IS6TMEG.js +0 -21
  320. package/dist/_members/primitives/chunk-4IS6TMEG.js.map +0 -1
  321. package/dist/_members/primitives/chunk-5MWGAEGQ.js +0 -1644
  322. package/dist/_members/primitives/chunk-5MWGAEGQ.js.map +0 -1
  323. package/dist/_members/primitives/chunk-7RRPFPQK.js +0 -15
  324. package/dist/_members/primitives/chunk-7RRPFPQK.js.map +0 -1
  325. package/dist/_members/primitives/chunk-DH5TRZK2.js +0 -125
  326. package/dist/_members/primitives/chunk-DH5TRZK2.js.map +0 -1
  327. package/dist/_members/primitives/chunk-E3KNUSFG.js +0 -2337
  328. package/dist/_members/primitives/chunk-E3KNUSFG.js.map +0 -1
  329. package/dist/_members/primitives/chunk-G2B3G4HK.js +0 -47
  330. package/dist/_members/primitives/chunk-G2B3G4HK.js.map +0 -1
  331. package/dist/_members/primitives/chunk-HFPFGZXT.js +0 -1494
  332. package/dist/_members/primitives/chunk-HFPFGZXT.js.map +0 -1
  333. package/dist/_members/primitives/chunk-HIWVFZVH.js +0 -19
  334. package/dist/_members/primitives/chunk-HIWVFZVH.js.map +0 -1
  335. package/dist/_members/primitives/chunk-IDAL6G3Y.js.map +0 -1
  336. package/dist/_members/primitives/chunk-KNC6JP5F.js +0 -34
  337. package/dist/_members/primitives/chunk-KNC6JP5F.js.map +0 -1
  338. package/dist/_members/primitives/chunk-KYRDVZST.js +0 -459
  339. package/dist/_members/primitives/chunk-KYRDVZST.js.map +0 -1
  340. package/dist/_members/primitives/chunk-LWLHS2NS.js +0 -3410
  341. package/dist/_members/primitives/chunk-LWLHS2NS.js.map +0 -1
  342. package/dist/_members/primitives/chunk-QAQ3P7DR.js +0 -8855
  343. package/dist/_members/primitives/chunk-QAQ3P7DR.js.map +0 -1
  344. package/dist/_members/primitives/chunk-ROV2ODWC.js +0 -81
  345. package/dist/_members/primitives/chunk-ROV2ODWC.js.map +0 -1
  346. package/dist/_members/primitives/chunk-TCRC2FH3.js +0 -183
  347. package/dist/_members/primitives/chunk-TCRC2FH3.js.map +0 -1
  348. package/dist/_members/primitives/chunk-US4YEDAA.js +0 -96
  349. package/dist/_members/primitives/chunk-US4YEDAA.js.map +0 -1
  350. package/dist/_members/primitives/chunk-UVKRO5ER.js +0 -13
  351. package/dist/_members/primitives/chunk-UVKRO5ER.js.map +0 -1
  352. package/dist/_members/primitives/chunk-W4EIIF2I.js +0 -10
  353. package/dist/_members/primitives/chunk-W4EIIF2I.js.map +0 -1
  354. package/dist/_members/primitives/chunk-WPGKIPCO.js +0 -3563
  355. package/dist/_members/primitives/chunk-WPGKIPCO.js.map +0 -1
  356. package/dist/_members/primitives/chunk-WZFLEGMD.js +0 -1435
  357. package/dist/_members/primitives/chunk-WZFLEGMD.js.map +0 -1
  358. package/dist/_members/primitives/chunk-XHU3WBEI.js +0 -33
  359. package/dist/_members/primitives/chunk-XHU3WBEI.js.map +0 -1
  360. package/dist/_members/primitives/chunk-YN7WTZZ7.js +0 -46
  361. package/dist/_members/primitives/chunk-YN7WTZZ7.js.map +0 -1
  362. package/dist/_members/primitives/effects/index.js +0 -30
  363. package/dist/_members/primitives/effects/index.js.map +0 -1
  364. package/dist/_members/primitives/hero-text/index.js +0 -14
  365. package/dist/_members/primitives/hero-text/index.js.map +0 -1
  366. package/dist/_members/primitives/index.js +0 -64
  367. package/dist/_members/primitives/index.js.map +0 -1
  368. package/dist/_members/primitives/layouts/index.js +0 -24
  369. package/dist/_members/primitives/layouts/index.js.map +0 -1
  370. package/dist/_members/primitives/lib/easings.js +0 -26
  371. package/dist/_members/primitives/lib/easings.js.map +0 -1
  372. package/dist/_members/primitives/lib/index.js +0 -74
  373. package/dist/_members/primitives/lib/index.js.map +0 -1
  374. package/dist/_members/primitives/lib/palette.js +0 -72
  375. package/dist/_members/primitives/lib/palette.js.map +0 -1
  376. package/dist/_members/primitives/lib/preview.js +0 -8
  377. package/dist/_members/primitives/lib/preview.js.map +0 -1
  378. package/dist/_members/primitives/lib/schema.js +0 -12
  379. package/dist/_members/primitives/lib/schema.js.map +0 -1
  380. package/dist/_members/primitives/lib/seeded-random.js +0 -14
  381. package/dist/_members/primitives/lib/seeded-random.js.map +0 -1
  382. package/dist/_members/primitives/lib/text/contrast.js +0 -12
  383. package/dist/_members/primitives/lib/text/contrast.js.map +0 -1
  384. package/dist/_members/primitives/lib/text/fill.js +0 -8
  385. package/dist/_members/primitives/lib/text/fill.js.map +0 -1
  386. package/dist/_members/primitives/lib/text/fitText.js +0 -10
  387. package/dist/_members/primitives/lib/text/fitText.js.map +0 -1
  388. package/dist/_members/primitives/lib/text/marker.js +0 -8
  389. package/dist/_members/primitives/lib/text/marker.js.map +0 -1
  390. package/dist/_members/primitives/lib/text/motion.js +0 -16
  391. package/dist/_members/primitives/lib/text/motion.js.map +0 -1
  392. package/dist/_members/primitives/lib/text/recolor.js +0 -8
  393. package/dist/_members/primitives/lib/text/recolor.js.map +0 -1
  394. package/dist/_members/primitives/lib/text/spec.js +0 -1
  395. package/dist/_members/primitives/lib/text/spec.js.map +0 -1
  396. package/dist/_members/primitives/lib/text/stage.js +0 -8
  397. package/dist/_members/primitives/lib/text/stage.js.map +0 -1
  398. package/dist/_members/primitives/lib/text/typeface.js +0 -8
  399. package/dist/_members/primitives/lib/text/typeface.js.map +0 -1
  400. package/dist/_members/primitives/lib/tokens.js +0 -24
  401. package/dist/_members/primitives/lib/tokens.js.map +0 -1
  402. package/dist/_members/primitives/lib/types.js +0 -1
  403. package/dist/_members/primitives/lib/types.js.map +0 -1
  404. package/dist/_members/primitives/params-required.json +0 -153
  405. package/dist/_members/primitives/scenes/index.js +0 -25
  406. package/dist/_members/primitives/scenes/index.js.map +0 -1
  407. package/dist/_members/primitives/subject-foreground/index.js +0 -30
  408. package/dist/_members/primitives/subject-foreground/index.js.map +0 -1
  409. package/dist/_members/primitives/text/index.js +0 -57
  410. package/dist/_members/primitives/text/index.js.map +0 -1
  411. package/dist/_members/primitives/transitions/index.js +0 -67
  412. package/dist/_members/primitives/transitions/index.js.map +0 -1
  413. package/dist/_members/primitives/ui-blocks/index.js +0 -76
  414. package/dist/_members/primitives/ui-blocks/index.js.map +0 -1
  415. package/dist/_members/primitives/version-map.json +0 -105
  416. package/dist/_members/primitives/workspace.js +0 -60
  417. package/dist/_members/primitives/workspace.js.map +0 -1
  418. package/dist/chunk-7GISRVON.js +0 -14176
  419. package/dist/chunk-DIBOJJMU.js +0 -16838
  420. package/dist/chunk-EAUSEGB7.js +0 -420
  421. package/dist/chunk-FUWJOVVK.js +0 -3633
  422. package/dist/chunk-G75E7YA4.js +0 -11883
  423. package/dist/chunk-JCZQT7K3.js +0 -3266
  424. package/dist/chunk-KF5ETMKB.js +0 -544
  425. package/dist/chunk-NDKERSXY.js +0 -1296
  426. package/dist/chunk-V43Y7IE4.js +0 -3621
  427. package/dist/chunk-VIVQHIGZ.js +0 -4319
  428. package/dist/chunk-YA3OR2KK.js +0 -249
  429. package/dist/hls-HD4C5G6W.js +0 -33000
  430. package/dist/token-RGFIT24D.js +0 -69
  431. package/dist/token-util-GPLSGYVO.js +0 -5
  432. package/dist/vision_bundle-5Y376MAR.js +0 -4084
@@ -2,11 +2,11 @@ import {
2
2
  activeFaceKeepOutSeries,
3
3
  boundingBox,
4
4
  resolveBrandRefsDeep
5
- } from "./chunk-BRKJKB33.js";
5
+ } from "./chunk-FYZVH3MC.js";
6
6
  import {
7
7
  CueframeError,
8
8
  encodeError
9
- } from "./chunk-37NJ27UU.js";
9
+ } from "./chunk-OCFDUCF4.js";
10
10
 
11
11
  // ../composition/src/projection/cardTokens.ts
12
12
  var CARD_MOTION_VAR_NAMES = [
@@ -134,6 +134,148 @@ function deriveBehindAnchor(g) {
134
134
  };
135
135
  }
136
136
 
137
+ // ../composition/src/projection/behind-readiness.ts
138
+ async function matteIntentKey(intent) {
139
+ const canonical = {
140
+ startSec: Math.round(intent.startSec * 1e3) / 1e3,
141
+ endSec: Math.round(intent.endSec * 1e3) / 1e3,
142
+ subjectClass: intent.subjectClass
143
+ };
144
+ const bytes = new TextEncoder().encode(JSON.stringify(canonical));
145
+ const digest = await crypto.subtle.digest("SHA-256", bytes);
146
+ return Array.from(new Uint8Array(digest)).map((b) => b.toString(16).padStart(2, "0")).join("").slice(0, 12);
147
+ }
148
+ function overlapsMs(aStartSec, aDurationSec, bStartSec, bDurationSec) {
149
+ const aStart = aStartSec * 1e3;
150
+ const aEnd = (aStartSec + aDurationSec) * 1e3;
151
+ const bStart = bStartSec * 1e3;
152
+ const bEnd = (bStartSec + bDurationSec) * 1e3;
153
+ return aStart < bEnd && aEnd > bStart;
154
+ }
155
+ function tracksOf(composition) {
156
+ const tracks = composition?.tracks;
157
+ return Array.isArray(tracks) ? tracks : [];
158
+ }
159
+ function clipsOf(track) {
160
+ const contents = track.contents;
161
+ if (!Array.isArray(contents)) return [];
162
+ const out = [];
163
+ for (const c of contents) {
164
+ const id = c.id;
165
+ const startTime = c.startTime;
166
+ const duration = c.duration;
167
+ if (typeof id !== "string" || typeof startTime !== "number" || typeof duration !== "number") {
168
+ continue;
169
+ }
170
+ out.push(c);
171
+ }
172
+ return out;
173
+ }
174
+ function findClipById(composition, clipId) {
175
+ for (const track of tracksOf(composition)) {
176
+ for (const clip of clipsOf(track)) {
177
+ if (clip.id === clipId) return clip;
178
+ }
179
+ }
180
+ return null;
181
+ }
182
+ function primaryClipForOverlay(composition, overlayId) {
183
+ const overlay = findClipById(composition, overlayId);
184
+ if (!overlay || overlay.duration <= 0) return null;
185
+ for (const track of tracksOf(composition)) {
186
+ if (track.kind !== "video") continue;
187
+ for (const clip of clipsOf(track)) {
188
+ if (clip.source?.kind !== "media") continue;
189
+ const mediaId = clip.source.mediaId;
190
+ if (typeof mediaId !== "string" || !mediaId) continue;
191
+ if (!overlapsMs(clip.startTime, clip.duration, overlay.startTime, overlay.duration)) {
192
+ continue;
193
+ }
194
+ const trim = clip.source.trim;
195
+ const startSec = typeof trim?.start === "number" ? trim.start : 0;
196
+ const endSec = typeof trim?.end === "number" ? trim.end : startSec + clip.duration;
197
+ return { mediaId, window: { startSec, endSec } };
198
+ }
199
+ }
200
+ return null;
201
+ }
202
+ async function behindReadinessForOverlay(input) {
203
+ const target = primaryClipForOverlay(input.composition, input.overlayId);
204
+ return behindReadinessForTarget(
205
+ target,
206
+ target ? input.mattesByMediaId[target.mediaId] : void 0
207
+ );
208
+ }
209
+ async function behindReadinessForTarget(target, mattes) {
210
+ if (!target) return { state: "no-clip" };
211
+ const key = await matteIntentKey({ ...target.window, subjectClass: "person" });
212
+ const entry = mattes?.[key];
213
+ if (!entry?.geometryR2Key) return { state: "no-matte", target };
214
+ const presenceFraction = entry.presenceFraction ?? 0;
215
+ if (presenceFraction < MIN_PRESENCE_FOR_BEHIND) {
216
+ return { state: "no-subject", target, presenceFraction };
217
+ }
218
+ return { state: "subject-present", target };
219
+ }
220
+
221
+ // ../composition/src/projection/reframe-readiness.ts
222
+ async function sourceWindowKey(window) {
223
+ const canonical = {
224
+ startSec: Math.round(window.startSec * 1e3) / 1e3,
225
+ endSec: Math.round(window.endSec * 1e3) / 1e3
226
+ };
227
+ if (window.detector && window.detector !== "face") {
228
+ canonical.detector = window.detector;
229
+ }
230
+ const bytes = new TextEncoder().encode(JSON.stringify(canonical));
231
+ const digest = await crypto.subtle.digest("SHA-256", bytes);
232
+ return Array.from(new Uint8Array(digest)).map((b) => b.toString(16).padStart(2, "0")).join("").slice(0, 12);
233
+ }
234
+ var SUBJECT_MODES = /* @__PURE__ */ new Set(["face", "all-faces", "active-speaker"]);
235
+ function reframeNeedsDetection(segments) {
236
+ return segments.some((s) => {
237
+ const mode = s?.focus?.mode;
238
+ return typeof mode === "string" && SUBJECT_MODES.has(mode);
239
+ });
240
+ }
241
+ function reframeTargets(composition) {
242
+ const tracks = composition?.tracks;
243
+ if (!Array.isArray(tracks)) return [];
244
+ const out = [];
245
+ for (const track of tracks) {
246
+ const kind = track.kind;
247
+ if (kind !== "video" && kind !== "image") continue;
248
+ const contents = track.contents;
249
+ if (!Array.isArray(contents)) continue;
250
+ for (const content of contents) {
251
+ const src = content?.source;
252
+ if (!src || src.kind !== "media") continue;
253
+ const segments = src.reframe?.segments;
254
+ if (!Array.isArray(segments) || segments.length === 0) continue;
255
+ const clipId = content.id;
256
+ const mediaId = src.mediaId;
257
+ if (typeof clipId !== "string" || !clipId) continue;
258
+ if (typeof mediaId !== "string" || !mediaId) continue;
259
+ const duration = content.duration;
260
+ const startSec = typeof src.trim?.start === "number" ? src.trim.start : 0;
261
+ const endSec = typeof src.trim?.end === "number" ? src.trim.end : startSec + (typeof duration === "number" ? duration : 0);
262
+ if (!(endSec > startSec)) continue;
263
+ out.push({ clipId, mediaId, window: { startSec, endSec }, segments });
264
+ }
265
+ }
266
+ return out;
267
+ }
268
+ async function reframeReadinessForTarget(target, subjectTracks) {
269
+ if (!reframeNeedsDetection(target.segments)) return { state: "geometric" };
270
+ const key = await sourceWindowKey(target.window);
271
+ const entry = subjectTracks?.[key];
272
+ if (!entry) return { state: "no-track" };
273
+ if (typeof entry.trackUrl !== "string" || !entry.trackUrl) {
274
+ return { state: "track-unfetchable", entry };
275
+ }
276
+ return { state: "track-ready", entry, trackUrl: entry.trackUrl };
277
+ }
278
+
137
279
  // ../composition/src/projection/occlusion-budget.ts
138
280
  var BUDGET = { minBite: 0.15, maxCoverage: 0.65, maxTopHalf: 0.35 };
139
281
  var BEHIND_TEXT_EXTENT = { heightFrac: 0.18 };
@@ -381,6 +523,14 @@ export {
381
523
  MIN_PRESENCE_FOR_BEHIND,
382
524
  BEHIND_BAND,
383
525
  deriveBehindAnchor,
526
+ matteIntentKey,
527
+ primaryClipForOverlay,
528
+ behindReadinessForOverlay,
529
+ behindReadinessForTarget,
530
+ sourceWindowKey,
531
+ reframeNeedsDetection,
532
+ reframeTargets,
533
+ reframeReadinessForTarget,
384
534
  BUDGET,
385
535
  BEHIND_TEXT_EXTENT,
386
536
  evaluateOcclusionBudget,
@@ -1,13 +1,12 @@
1
- // src/lib/preview.tsx
1
+ // ../execution/primitives/src/lib/preview.tsx
2
2
  import * as React from "react";
3
3
  import { AbsoluteFill } from "remotion";
4
4
  import { Player } from "@remotion/player";
5
5
  import { TransitionSeries, linearTiming } from "@remotion/transitions";
6
- import { jsx, jsxs } from "react/jsx-runtime";
7
6
  var TransitionPanel = ({
8
7
  label,
9
8
  color
10
- }) => /* @__PURE__ */ jsx(
9
+ }) => /* @__PURE__ */ React.createElement(
11
10
  AbsoluteFill,
12
11
  {
13
12
  style: {
@@ -19,23 +18,19 @@ var TransitionPanel = ({
19
18
  fontFamily: "inherit",
20
19
  fontSize: 96,
21
20
  fontWeight: 600
22
- },
23
- children: label
24
- }
21
+ }
22
+ },
23
+ label
25
24
  );
26
25
  var TransitionPreviewComposition = ({ presentation, durationInFrames }) => {
27
26
  const half = Math.max(1, Math.floor(durationInFrames / 2));
28
- return /* @__PURE__ */ jsxs(TransitionSeries, { children: [
29
- /* @__PURE__ */ jsx(TransitionSeries.Sequence, { durationInFrames: half, children: /* @__PURE__ */ jsx(TransitionPanel, { label: "A", color: "#0ea5e9" }) }),
30
- /* @__PURE__ */ jsx(
31
- TransitionSeries.Transition,
32
- {
33
- timing: linearTiming({ durationInFrames: half }),
34
- presentation
35
- }
36
- ),
37
- /* @__PURE__ */ jsx(TransitionSeries.Sequence, { durationInFrames: half, children: /* @__PURE__ */ jsx(TransitionPanel, { label: "B", color: "#9333ea" }) })
38
- ] });
27
+ return /* @__PURE__ */ React.createElement(TransitionSeries, null, /* @__PURE__ */ React.createElement(TransitionSeries.Sequence, { durationInFrames: half }, /* @__PURE__ */ React.createElement(TransitionPanel, { label: "A", color: "#0ea5e9" })), /* @__PURE__ */ React.createElement(
28
+ TransitionSeries.Transition,
29
+ {
30
+ timing: linearTiming({ durationInFrames: half }),
31
+ presentation
32
+ }
33
+ ), /* @__PURE__ */ React.createElement(TransitionSeries.Sequence, { durationInFrames: half }, /* @__PURE__ */ React.createElement(TransitionPanel, { label: "B", color: "#9333ea" })));
39
34
  };
40
35
  var PrimitivePreview = ({
41
36
  primitive,
@@ -65,7 +60,7 @@ var PrimitivePreview = ({
65
60
  const loop = primitive.preview.mode === "loop";
66
61
  const shouldAutoPlay = autoPlay ?? loop;
67
62
  if (!example) {
68
- return /* @__PURE__ */ jsxs(
63
+ return /* @__PURE__ */ React.createElement(
69
64
  "div",
70
65
  {
71
66
  className,
@@ -80,17 +75,15 @@ var PrimitivePreview = ({
80
75
  fontFamily: "monospace",
81
76
  fontSize: 12,
82
77
  ...style
83
- },
84
- children: [
85
- "no example for ",
86
- primitive.id
87
- ]
88
- }
78
+ }
79
+ },
80
+ "no example for ",
81
+ primitive.id
89
82
  );
90
83
  }
91
84
  if (primitive.kind === "transition" && primitive.createPresentation) {
92
85
  const presentation = primitive.createPresentation(inputProps);
93
- return /* @__PURE__ */ jsx(
86
+ return /* @__PURE__ */ React.createElement(
94
87
  Player,
95
88
  {
96
89
  component: TransitionPreviewComposition,
@@ -110,7 +103,7 @@ var PrimitivePreview = ({
110
103
  }
111
104
  );
112
105
  }
113
- return /* @__PURE__ */ jsx(
106
+ return /* @__PURE__ */ React.createElement(
114
107
  Player,
115
108
  {
116
109
  component: primitive.component,
@@ -131,4 +124,3 @@ var PrimitivePreview = ({
131
124
  export {
132
125
  PrimitivePreview
133
126
  };
134
- //# sourceMappingURL=chunk-IDAL6G3Y.js.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  resolveBookendTimeline
3
- } from "./chunk-6CMVBTTP.js";
3
+ } from "./chunk-DK2ODBNT.js";
4
4
 
5
5
  // ../execution/compose/src/tokenResolver.ts
6
6
  var DEFAULTS = {
@@ -1,8 +1,5 @@
1
- import {
2
- zodToJsonSchema
3
- } from "./chunk-NDKERSXY.js";
4
-
5
1
  // ../execution/primitives/src/lib/schema.ts
2
+ import { zodToJsonSchema } from "zod-to-json-schema";
6
3
  function zodToJsonSchemaFor(schema, name) {
7
4
  return zodToJsonSchema(schema, {
8
5
  name,
@@ -362,6 +362,9 @@ var CueframeError = class extends Error {
362
362
  this.locator = locator;
363
363
  this.name = "CueframeError";
364
364
  }
365
+ code;
366
+ fix;
367
+ locator;
365
368
  toEnvelope() {
366
369
  const s = ERROR_CODES[this.code];
367
370
  return {
@@ -20,10 +20,7 @@ import {
20
20
  import {
21
21
  FitText,
22
22
  resolveFitFontSize
23
- } from "./chunk-DSNG6WLU.js";
24
- import {
25
- fitTextOnNLines
26
- } from "./chunk-YA3OR2KK.js";
23
+ } from "./chunk-AYVJXDLB.js";
27
24
  import {
28
25
  ACCENT,
29
26
  ACCENT_STRONG,
@@ -366,6 +363,7 @@ var Karaoke = ({
366
363
  // ../execution/primitives/src/text/kinetic-type/index.tsx
367
364
  import React4 from "react";
368
365
  import { useCurrentFrame as useCurrentFrame5, useVideoConfig as useVideoConfig5, spring as spring3, interpolate as interpolate5, AbsoluteFill as AbsoluteFill3 } from "remotion";
366
+ import { fitTextOnNLines } from "@remotion/layout-utils";
369
367
  var PHRASE_TEXT_WIDTH = 1600;
370
368
  var KineticType = ({
371
369
  text,
@@ -720,6 +718,7 @@ function MarkerHighlight({
720
718
  // ../execution/primitives/src/text/shimmer-sweep/index.tsx
721
719
  import { useMemo } from "react";
722
720
  import { interpolate as interpolate8, useCurrentFrame as useCurrentFrame8, useVideoConfig as useVideoConfig8 } from "remotion";
721
+ import { fitTextOnNLines as fitTextOnNLines2 } from "@remotion/layout-utils";
723
722
  function ShimmerSweep({
724
723
  text,
725
724
  baseColor = "#a1a1aa",
@@ -742,7 +741,7 @@ function ShimmerSweep({
742
741
  const t = (text ?? "").trim();
743
742
  if (!t) return fontSize;
744
743
  try {
745
- const { fontSize: fs } = fitTextOnNLines({
744
+ const { fontSize: fs } = fitTextOnNLines2({
746
745
  text: t,
747
746
  maxLines: 1,
748
747
  maxBoxWidth: 1500,
@@ -995,6 +994,7 @@ function TextFadeReplace({
995
994
  // ../execution/primitives/src/text/tracking-in/index.tsx
996
995
  import React7 from "react";
997
996
  import { interpolate as interpolate10, spring as spring6, useCurrentFrame as useCurrentFrame11, useVideoConfig as useVideoConfig11 } from "remotion";
997
+ import { fitTextOnNLines as fitTextOnNLines3 } from "@remotion/layout-utils";
998
998
  var TRACKING_IN_TEXT_WIDTH = 1500;
999
999
  var TRACKING_IN_SETTLED_SPACING = "-0.03em";
1000
1000
  function TrackingIn({
@@ -1024,7 +1024,7 @@ function TrackingIn({
1024
1024
  const fittedFontSize = React7.useMemo(() => {
1025
1025
  if (text.trim().length === 0) return fontSize;
1026
1026
  try {
1027
- const { fontSize: fit } = fitTextOnNLines({
1027
+ const { fontSize: fit } = fitTextOnNLines3({
1028
1028
  text,
1029
1029
  maxLines: 1,
1030
1030
  maxBoxWidth: TRACKING_IN_TEXT_WIDTH,
@@ -1067,6 +1067,7 @@ function TrackingIn({
1067
1067
  // ../execution/primitives/src/text/typewriter/index.tsx
1068
1068
  import React8 from "react";
1069
1069
  import { interpolate as interpolate11, useCurrentFrame as useCurrentFrame12, useVideoConfig as useVideoConfig12 } from "remotion";
1070
+ import { fitTextOnNLines as fitTextOnNLines4 } from "@remotion/layout-utils";
1070
1071
  var TYPEWRITER_TEXT_WIDTH = 1500;
1071
1072
  var TYPEWRITER_MAX_LINES = 3;
1072
1073
  var TYPEWRITER_LETTER_SPACING = "-0.03em";
@@ -1096,7 +1097,7 @@ function Typewriter({
1096
1097
  const fittedFontSize = React8.useMemo(() => {
1097
1098
  if (text.trim().length === 0) return fontSize;
1098
1099
  try {
1099
- const { fontSize: fit } = fitTextOnNLines({
1100
+ const { fontSize: fit } = fitTextOnNLines4({
1100
1101
  text,
1101
1102
  maxLines: TYPEWRITER_MAX_LINES,
1102
1103
  maxBoxWidth: TYPEWRITER_TEXT_WIDTH,
@@ -1689,6 +1690,7 @@ var TokenStream = ({
1689
1690
  // ../execution/primitives/src/text/strikethrough-replace/index.tsx
1690
1691
  import { useMemo as useMemo2 } from "react";
1691
1692
  import { interpolate as interpolate15, useCurrentFrame as useCurrentFrame19, useVideoConfig as useVideoConfig18 } from "remotion";
1693
+ import { fitTextOnNLines as fitTextOnNLines5 } from "@remotion/layout-utils";
1692
1694
  function StrikethroughReplace({
1693
1695
  from,
1694
1696
  to,
@@ -1725,7 +1727,7 @@ function StrikethroughReplace({
1725
1727
  const longest = [from, to].map((s) => (s ?? "").trim()).sort((a, b) => b.length - a.length)[0] || "";
1726
1728
  if (!longest) return fontSize;
1727
1729
  try {
1728
- const { fontSize: fs } = fitTextOnNLines({
1730
+ const { fontSize: fs } = fitTextOnNLines5({
1729
1731
  text: longest,
1730
1732
  maxLines: 1,
1731
1733
  maxBoxWidth: 1400,
@@ -1809,6 +1811,7 @@ function StrikethroughReplace({
1809
1811
  // ../execution/primitives/src/text/masked-slide-reveal/index.tsx
1810
1812
  import { useMemo as useMemo3 } from "react";
1811
1813
  import { spring as spring10, useCurrentFrame as useCurrentFrame20, useVideoConfig as useVideoConfig19 } from "remotion";
1814
+ import { fitTextOnNLines as fitTextOnNLines6 } from "@remotion/layout-utils";
1812
1815
  function MaskedSlideReveal({
1813
1816
  text,
1814
1817
  staggerDelay = 3,
@@ -1826,7 +1829,7 @@ function MaskedSlideReveal({
1826
1829
  const t = (text ?? "").trim();
1827
1830
  if (!t) return fontSize;
1828
1831
  try {
1829
- const { fontSize: fs } = fitTextOnNLines({
1832
+ const { fontSize: fs } = fitTextOnNLines6({
1830
1833
  text: t,
1831
1834
  maxLines: 2,
1832
1835
  maxBoxWidth: 1500,
@@ -12,13 +12,11 @@ import {
12
12
  } from "./chunk-ZFEXATWN.js";
13
13
  import {
14
14
  resolveFitFontSize
15
- } from "./chunk-DSNG6WLU.js";
16
- import {
17
- fitTextOnNLines
18
- } from "./chunk-YA3OR2KK.js";
15
+ } from "./chunk-AYVJXDLB.js";
19
16
 
20
17
  // ../execution/primitives/src/hero-text/HeroText.tsx
21
18
  import { useCurrentFrame, useVideoConfig } from "remotion";
19
+ import { fitTextOnNLines } from "@remotion/layout-utils";
22
20
  var REVEAL_WINDOW_MS = 240;
23
21
  function HeroText({
24
22
  text,
@@ -4,16 +4,16 @@ import {
4
4
  import {
5
5
  getPrimitiveSubtextParam,
6
6
  getPrimitiveTextParam
7
- } from "./chunk-5I7VDCAC.js";
7
+ } from "./chunk-7FO3ZJ43.js";
8
8
  import {
9
9
  selectAllOverlays
10
- } from "./chunk-NV4I6GJV.js";
10
+ } from "./chunk-ZWMV6DD2.js";
11
11
  import {
12
12
  ComposePlan
13
- } from "./chunk-TULRCY6U.js";
13
+ } from "./chunk-TOJEXFXL.js";
14
14
  import {
15
15
  OverlayClipSource
16
- } from "./chunk-ATAF24QG.js";
16
+ } from "./chunk-PODIYN2K.js";
17
17
 
18
18
  // ../authoring/src/tools/toolSets.ts
19
19
  var COMPOSE_PLANNER_TOOLS = [
@@ -65,7 +65,7 @@ var COMPOSE_ROLE_TOOLS = Object.freeze({
65
65
  // Always reads the LIVE composition. The session-cached context seeds the
66
66
  // system prompt only; a tool call must see clips added since the run began.
67
67
  handler: async (_args, capabilities) => {
68
- const { buildDirectorContext } = await import("./context-CEAKQ5T7.js");
68
+ const { buildDirectorContext } = await import("./context-YWUZDG5X.js");
69
69
  return buildDirectorContext(capabilities);
70
70
  }
71
71
  },
@@ -1,9 +1,6 @@
1
1
  import {
2
2
  resolveFitFontSize
3
- } from "./chunk-DSNG6WLU.js";
4
- import {
5
- fitTextOnNLines
6
- } from "./chunk-YA3OR2KK.js";
3
+ } from "./chunk-AYVJXDLB.js";
7
4
  import {
8
5
  ACCENT,
9
6
  ACCENT_SOFT,
@@ -1382,6 +1379,7 @@ function VectorField({
1382
1379
 
1383
1380
  // ../execution/primitives/src/backgrounds/volumetric-rays/index.tsx
1384
1381
  import { interpolate as interpolate2, useCurrentFrame as useCurrentFrame11 } from "remotion";
1382
+ import { fitTextOnNLines } from "@remotion/layout-utils";
1385
1383
  var FONT_FAMILY3 = "inherit";
1386
1384
  function VolumetricRays({
1387
1385
  text = "REMOCN",
@@ -266,7 +266,7 @@ var TimelineClip = z.object({
266
266
  * does not select its audio, so every ripple, move and trim silently desyncs
267
267
  * sound from picture and the user finds out at playback. Every editor this
268
268
  * repo has been measured against carries the same field; ours had none
269
- * (`grep linkGroup` returned nothing across `cueframe/src` and
269
+ * (`grep linkGroup` returned nothing across `apps/studio/src` and
270
270
  * `packages/composition/src` on 2026-08-23).
271
271
  *
272
272
  * Membership is the ONLY thing stored. What a link implies — expand the
@@ -434,20 +434,26 @@ var CaptionStyle = z.object({
434
434
  var CaptionSegment = z.object({
435
435
  words: z.array(CaptionWord)
436
436
  });
437
+ var CaptionDepth = z.enum(["front", "behind-subject"]).optional();
437
438
  var CompositionCaptions = z.discriminatedUnion("source", [
438
439
  z.object({
439
440
  source: z.literal("derived"),
440
441
  /** The clip these words are a projection OF. Re-derive from this. */
441
442
  from: z.object({ clipId: z.string() }),
442
443
  segments: z.array(CaptionSegment),
443
- style: CaptionStyle.optional()
444
+ style: CaptionStyle.optional(),
445
+ zPlane: CaptionDepth
444
446
  }),
445
447
  z.object({
446
448
  source: z.literal("authored"),
447
449
  segments: z.array(CaptionSegment),
448
- style: CaptionStyle.optional()
450
+ style: CaptionStyle.optional(),
451
+ zPlane: CaptionDepth
449
452
  })
450
453
  ]);
454
+ function captionsAreBehindSubject(captions) {
455
+ return captions?.zPlane === "behind-subject";
456
+ }
451
457
  function captionWords(c) {
452
458
  return c.segments.flatMap((s) => s.words);
453
459
  }
@@ -707,6 +713,7 @@ export {
707
713
  CaptionStyle,
708
714
  CaptionSegment,
709
715
  CompositionCaptions,
716
+ captionsAreBehindSubject,
710
717
  captionWords,
711
718
  Composition,
712
719
  CompositionAuthorKind,