@cueframe/kernel 0.1.0 → 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 (355) hide show
  1. package/LICENSE +661 -0
  2. package/dist/_members/composition/ops/compositionOps.d.ts +1 -0
  3. package/dist/_members/composition/projection/behind-readiness.d.ts +127 -0
  4. package/dist/_members/composition/projection/index.d.ts +2 -0
  5. package/dist/_members/composition/projection/reframe-readiness.d.ts +156 -0
  6. package/dist/_members/composition/validators/composition.d.ts +42 -25
  7. package/dist/_members/composition/validators/render.d.ts +32 -0
  8. package/dist/_members/core/render/compositionRender.d.ts +17 -1
  9. package/dist/_members/core/render/types.d.ts +31 -0
  10. package/dist/authoring/build-tools.js +6 -6
  11. package/dist/authoring/context.js +4 -4
  12. package/dist/authoring/tools.js +5 -5
  13. package/dist/authoring.js +11 -9
  14. package/dist/{chunk-ZB3C3HM7.js → chunk-7FO3ZJ43.js} +3 -0
  15. package/dist/{chunk-ODL7GQJG.js → chunk-AP6ZIVAV.js} +2 -2
  16. package/dist/{chunk-IBYQG46O.js → chunk-AQBREB5O.js} +1 -1
  17. package/dist/{chunk-YIOY2XEO.js → chunk-DK2ODBNT.js} +15 -5
  18. package/dist/{chunk-JRQVPFLF.js → chunk-HY3RIEZW.js} +1 -1
  19. package/dist/{chunk-GEA7E2FL.js → chunk-JJ6XD7NG.js} +151 -1
  20. package/dist/{chunk-COYMZ76S.js → chunk-MBCXCJOE.js} +1 -1
  21. package/dist/{chunk-37NJ27UU.js → chunk-OCFDUCF4.js} +3 -0
  22. package/dist/{chunk-VOO5FQSS.js → chunk-PDYO3DOJ.js} +5 -5
  23. package/dist/{chunk-MXFAADCQ.js → chunk-PODIYN2K.js} +9 -2
  24. package/dist/{chunk-NFEGPWGS.js → chunk-TOJEXFXL.js} +1 -1
  25. package/dist/{chunk-LM4WDUQJ.js → chunk-UHGSZZDI.js} +1 -1
  26. package/dist/{chunk-XWKZB5U5.js → chunk-ZWMV6DD2.js} +24 -1
  27. package/dist/compose/renderer.js +3 -3
  28. package/dist/compose.js +6 -6
  29. package/dist/composition/graphics-plan.js +1 -1
  30. package/dist/composition/ops.js +3 -3
  31. package/dist/composition/primitive-catalog.js +1 -1
  32. package/dist/composition/projection.js +19 -3
  33. package/dist/composition/validators.js +6 -4
  34. package/dist/composition-ops.js +8 -6
  35. package/dist/composition.js +24 -6
  36. package/dist/{context-OKX3HHFS.js → context-YWUZDG5X.js} +4 -4
  37. package/dist/core/render.js +3 -3
  38. package/dist/core/select.js +2 -2
  39. package/dist/core.js +3 -3
  40. package/dist/errors.js +1 -1
  41. package/dist/mcp/adapter.js +1 -0
  42. package/dist/media-model/testing.js +1071 -718
  43. package/dist/nle-export/server.js +328 -130
  44. package/dist/nle-export.js +7 -6
  45. package/package.json +13 -14
  46. package/dist/_members/account-model/index.js +0 -4
  47. package/dist/_members/account-model/testing/conversationStoreContract.js +0 -168
  48. package/dist/_members/account-model/testing/index.js +0 -7
  49. package/dist/_members/account-model/testing/restorePointStoreContract.js +0 -69
  50. package/dist/_members/account-model/types/index.js +0 -1
  51. package/dist/_members/account-model/validators/contextFile.js +0 -18
  52. package/dist/_members/account-model/validators/conversation.js +0 -95
  53. package/dist/_members/account-model/validators/dashboardInsight.js +0 -16
  54. package/dist/_members/account-model/validators/index.js +0 -7
  55. package/dist/_members/account-model/validators/sessionToken.js +0 -49
  56. package/dist/_members/account-model/validators/uploadToken.js +0 -16
  57. package/dist/_members/account-model/validators/userSettings.js +0 -12
  58. package/dist/_members/account-model/validators/workingComposition.js +0 -20
  59. package/dist/_members/brand-derivation/constants.js +0 -20
  60. package/dist/_members/brand-derivation/contrastSafe.js +0 -114
  61. package/dist/_members/brand-derivation/index.js +0 -1
  62. package/dist/_members/cloud-import/chunk-XKO6ZSWI.js +0 -162
  63. package/dist/_members/cloud-import/chunk-XKO6ZSWI.js.map +0 -1
  64. package/dist/_members/cloud-import/index.js +0 -241
  65. package/dist/_members/cloud-import/index.js.map +0 -1
  66. package/dist/_members/cloud-import/multipartUpload.js +0 -7
  67. package/dist/_members/cloud-import/multipartUpload.js.map +0 -1
  68. package/dist/_members/composition/audio/audioMix.js +0 -61
  69. package/dist/_members/composition/audio/index.js +0 -5
  70. package/dist/_members/composition/audio/mixStaging.js +0 -195
  71. package/dist/_members/composition/audio/musicPack.generated.js +0 -136
  72. package/dist/_members/composition/audio/musicPack.js +0 -36
  73. package/dist/_members/composition/audio/pack.generated.js +0 -603
  74. package/dist/_members/composition/audio/pack.js +0 -48
  75. package/dist/_members/composition/audio/palette.js +0 -134
  76. package/dist/_members/composition/autozoom/index.js +0 -83
  77. package/dist/_members/composition/brand-kit.js +0 -45
  78. package/dist/_members/composition/brief/contract.js +0 -209
  79. package/dist/_members/composition/color-grade.js +0 -80
  80. package/dist/_members/composition/depth.js +0 -8
  81. package/dist/_members/composition/fixtures/index.js +0 -143
  82. package/dist/_members/composition/fixtures/vaayaErrored.d.ts +0 -25
  83. package/dist/_members/composition/fixtures/vaayaErrored.js +0 -203
  84. package/dist/_members/composition/fonts.js +0 -162
  85. package/dist/_members/composition/graphics-plan/compile.js +0 -221
  86. package/dist/_members/composition/graphics-plan/index.js +0 -10
  87. package/dist/_members/composition/graphics-plan/instantiateMotif.js +0 -44
  88. package/dist/_members/composition/graphics-plan/motion.js +0 -66
  89. package/dist/_members/composition/graphics-plan/schemas.js +0 -261
  90. package/dist/_members/composition/graphics-plan/solve.js +0 -145
  91. package/dist/_members/composition/index.js +0 -5
  92. package/dist/_members/composition/invariants/clipPlacement.js +0 -69
  93. package/dist/_members/composition/invariants/composition.js +0 -28
  94. package/dist/_members/composition/invariants/errors.js +0 -10
  95. package/dist/_members/composition/invariants/etag.js +0 -38
  96. package/dist/_members/composition/invariants/ids.js +0 -33
  97. package/dist/_members/composition/invariants/index.js +0 -9
  98. package/dist/_members/composition/invariants/keyframes.js +0 -45
  99. package/dist/_members/composition/invariants/markers.js +0 -29
  100. package/dist/_members/composition/invariants/time.js +0 -20
  101. package/dist/_members/composition/invariants/tracks.js +0 -304
  102. package/dist/_members/composition/ops/compositionOps.js +0 -1056
  103. package/dist/_members/composition/ops/headlessStore.js +0 -94
  104. package/dist/_members/composition/ops/index.js +0 -4
  105. package/dist/_members/composition/ops/selectors.js +0 -118
  106. package/dist/_members/composition/ops/timeline-word.js +0 -1
  107. package/dist/_members/composition/ops/transcript.js +0 -77
  108. package/dist/_members/composition/ops/types.js +0 -16
  109. package/dist/_members/composition/primitive-catalog/catalogQuery.js +0 -150
  110. package/dist/_members/composition/primitive-catalog/disabled.js +0 -32
  111. package/dist/_members/composition/primitive-catalog/generated/meta.js +0 -15161
  112. package/dist/_members/composition/primitive-catalog/index.js +0 -46
  113. package/dist/_members/composition/primitive-catalog/paramValidation.js +0 -231
  114. package/dist/_members/composition/primitive-catalog/projection.js +0 -164
  115. package/dist/_members/composition/primitive-catalog/types.js +0 -14
  116. package/dist/_members/composition/projection/behind-placement.js +0 -62
  117. package/dist/_members/composition/projection/brandKit.js +0 -482
  118. package/dist/_members/composition/projection/cardTokens.js +0 -209
  119. package/dist/_members/composition/projection/composition-floor.js +0 -582
  120. package/dist/_members/composition/projection/cropProjection.js +0 -257
  121. package/dist/_members/composition/projection/index.js +0 -7
  122. package/dist/_members/composition/projection/occlusion-budget.js +0 -104
  123. package/dist/_members/composition/projection/safe-zones.js +0 -99
  124. package/dist/_members/composition/reframe/aspectLoss.js +0 -115
  125. package/dist/_members/composition/reframe/coverage.js +0 -62
  126. package/dist/_members/composition/reframe/derive.js +0 -73
  127. package/dist/_members/composition/reframe/index.js +0 -109
  128. package/dist/_members/composition/reframe/kenBurns.js +0 -64
  129. package/dist/_members/composition/reframe/shotScale.js +0 -176
  130. package/dist/_members/composition/reframe/trajectory.js +0 -124
  131. package/dist/_members/composition/timeline/compound.js +0 -134
  132. package/dist/_members/composition/timeline/index.js +0 -9
  133. package/dist/_members/composition/timeline/intent.js +0 -228
  134. package/dist/_members/composition/timeline/keyframes.js +0 -121
  135. package/dist/_members/composition/timeline/link.js +0 -59
  136. package/dist/_members/composition/timeline/occupancy.js +0 -36
  137. package/dist/_members/composition/timeline/placement.js +0 -74
  138. package/dist/_members/composition/timeline/plan.js +0 -31
  139. package/dist/_members/composition/timeline/resolve.js +0 -170
  140. package/dist/_members/composition/timeline/trims.js +0 -278
  141. package/dist/_members/composition/types/index.js +0 -1
  142. package/dist/_members/composition/validators/brandKit.js +0 -295
  143. package/dist/_members/composition/validators/composePlan.js +0 -113
  144. package/dist/_members/composition/validators/composition.js +0 -703
  145. package/dist/_members/composition/validators/font.js +0 -34
  146. package/dist/_members/composition/validators/graphicKinds.js +0 -30
  147. package/dist/_members/composition/validators/index.js +0 -9
  148. package/dist/_members/composition/validators/project.js +0 -29
  149. package/dist/_members/composition/validators/registry.js +0 -41
  150. package/dist/_members/composition/validators/render.js +0 -139
  151. package/dist/_members/composition/validators/session.js +0 -37
  152. package/dist/_members/composition/validators/webhook.js +0 -72
  153. package/dist/_members/composition-ops/alphaLayers.js +0 -141
  154. package/dist/_members/composition-ops/index.js +0 -637
  155. package/dist/_members/composition-ops/materializeGrid.js +0 -99
  156. package/dist/_members/composition-ops/opRecorder.js +0 -196
  157. package/dist/_members/composition-ops/recordingStore.js +0 -14
  158. package/dist/_members/composition-ops/replaceRegion.js +0 -102
  159. package/dist/_members/composition-ops/testFixtures.js +0 -19
  160. package/dist/_members/core/index.js +0 -5
  161. package/dist/_members/core/render/bookends.js +0 -53
  162. package/dist/_members/core/render/captions.js +0 -127
  163. package/dist/_members/core/render/compositionRender.js +0 -1249
  164. package/dist/_members/core/render/deriveTrajectory.js +0 -889
  165. package/dist/_members/core/render/emphasis.js +0 -16
  166. package/dist/_members/core/render/eval/cropBox.js +0 -139
  167. package/dist/_members/core/render/eval/inclusion.js +0 -96
  168. package/dist/_members/core/render/eval/index.js +0 -146
  169. package/dist/_members/core/render/eval/metrics.js +0 -94
  170. package/dist/_members/core/render/exportSettings.js +0 -65
  171. package/dist/_members/core/render/index.js +0 -20
  172. package/dist/_members/core/render/mapFaceToPerson.js +0 -73
  173. package/dist/_members/core/render/types.js +0 -8
  174. package/dist/_members/core/render/vcam/cameraPath.js +0 -248
  175. package/dist/_members/core/render/vcam/constants.js +0 -115
  176. package/dist/_members/core/render/vcam/errorCodes.js +0 -39
  177. package/dist/_members/core/render/vcam/framing.js +0 -136
  178. package/dist/_members/core/render/vcam/requiredRegion.js +0 -137
  179. package/dist/_members/core/render/vcam/shots.js +0 -53
  180. package/dist/_members/core/render/vcam/subjectSet.js +0 -388
  181. package/dist/_members/core/select/errorCodes.js +0 -38
  182. package/dist/_members/core/select/index.js +0 -26
  183. package/dist/_members/core/select/model.js +0 -18
  184. package/dist/_members/core/select/select.js +0 -244
  185. package/dist/_members/core/select/stabilize.js +0 -242
  186. package/dist/_members/core/types.js +0 -7
  187. package/dist/_members/errors/index.js +0 -1
  188. package/dist/_members/errors/registry.js +0 -560
  189. package/dist/_members/foundation/codes/index.js +0 -31
  190. package/dist/_members/foundation/index.js +0 -2
  191. package/dist/_members/foundation/primitives/index.js +0 -5
  192. package/dist/_members/mcp/adapter.js +0 -771
  193. package/dist/_members/mcp/burnedNames.js +0 -73
  194. package/dist/_members/mcp/core.js +0 -390
  195. package/dist/_members/mcp/curation.js +0 -792
  196. package/dist/_members/mcp/executor.js +0 -142
  197. package/dist/_members/mcp/format.js +0 -9
  198. package/dist/_members/mcp/generated/catalogPreviews.js +0 -95
  199. package/dist/_members/mcp/generated/harness.js +0 -81
  200. package/dist/_members/mcp/generated/operations.js +0 -131
  201. package/dist/_members/mcp/index.js +0 -50
  202. package/dist/_members/mcp/internalLoopTools.js +0 -109
  203. package/dist/_members/mcp/prompts.js +0 -45
  204. package/dist/_members/mcp/resources.js +0 -166
  205. package/dist/_members/mcp/server.js +0 -340
  206. package/dist/_members/mcp/wait.js +0 -378
  207. package/dist/_members/mcp/x402Meta.js +0 -66
  208. package/dist/_members/media-model/api.js +0 -175
  209. package/dist/_members/media-model/index.js +0 -1
  210. package/dist/_members/media-model/media-kind.js +0 -116
  211. package/dist/_members/media-model/testing/index.js +0 -1
  212. package/dist/_members/media-model/testing/mediaStoreContract.js +0 -82
  213. package/dist/_members/media-model/transcriptSearch.js +0 -70
  214. package/dist/_members/media-model/transcriptSearchCases.json +0 -79
  215. package/dist/_members/nle-export/compact-timeline.js +0 -73
  216. package/dist/_members/nle-export/compact-timeline.js.map +0 -1
  217. package/dist/_members/nle-export/composition-to-input.js +0 -147
  218. package/dist/_members/nle-export/composition-to-input.js.map +0 -1
  219. package/dist/_members/nle-export/fcpxml.js +0 -159
  220. package/dist/_members/nle-export/fcpxml.js.map +0 -1
  221. package/dist/_members/nle-export/index.js +0 -12
  222. package/dist/_members/nle-export/index.js.map +0 -1
  223. package/dist/_members/nle-export/premiere.js +0 -161
  224. package/dist/_members/nle-export/premiere.js.map +0 -1
  225. package/dist/_members/nle-export/server/index.js +0 -2
  226. package/dist/_members/nle-export/server/index.js.map +0 -1
  227. package/dist/_members/nle-export/server/pack-zip.js +0 -38
  228. package/dist/_members/nle-export/server/pack-zip.js.map +0 -1
  229. package/dist/_members/nle-export/srt.js +0 -50
  230. package/dist/_members/nle-export/srt.js.map +0 -1
  231. package/dist/_members/nle-export/types.js +0 -9
  232. package/dist/_members/nle-export/types.js.map +0 -1
  233. package/dist/_members/nle-export/xml/index.js +0 -11
  234. package/dist/_members/nle-export/xml/index.js.map +0 -1
  235. package/dist/_members/nle-export/xml-utils.js +0 -48
  236. package/dist/_members/nle-export/xml-utils.js.map +0 -1
  237. package/dist/_members/perception/activeSpeaker.js +0 -103
  238. package/dist/_members/perception/audioQuality.js +0 -76
  239. package/dist/_members/perception/energyBeat.js +0 -99
  240. package/dist/_members/perception/identityMatch.js +0 -91
  241. package/dist/_members/perception/index.js +0 -48
  242. package/dist/_members/perception/visualQuality.js +0 -95
  243. package/dist/_members/plane/conformance.js +0 -90
  244. package/dist/_members/plane/contract.js +0 -49
  245. package/dist/_members/plane/index.js +0 -16
  246. package/dist/_members/primitives/backgrounds/index.js +0 -32
  247. package/dist/_members/primitives/backgrounds/index.js.map +0 -1
  248. package/dist/_members/primitives/captions/index.js +0 -398
  249. package/dist/_members/primitives/captions/index.js.map +0 -1
  250. package/dist/_members/primitives/chunk-2LVE4UIT.js +0 -139
  251. package/dist/_members/primitives/chunk-2LVE4UIT.js.map +0 -1
  252. package/dist/_members/primitives/chunk-3IQUH6KK.js +0 -20
  253. package/dist/_members/primitives/chunk-3IQUH6KK.js.map +0 -1
  254. package/dist/_members/primitives/chunk-3OMURV6Q.js +0 -112
  255. package/dist/_members/primitives/chunk-3OMURV6Q.js.map +0 -1
  256. package/dist/_members/primitives/chunk-4IS6TMEG.js +0 -21
  257. package/dist/_members/primitives/chunk-4IS6TMEG.js.map +0 -1
  258. package/dist/_members/primitives/chunk-5MWGAEGQ.js +0 -1644
  259. package/dist/_members/primitives/chunk-5MWGAEGQ.js.map +0 -1
  260. package/dist/_members/primitives/chunk-7RRPFPQK.js +0 -15
  261. package/dist/_members/primitives/chunk-7RRPFPQK.js.map +0 -1
  262. package/dist/_members/primitives/chunk-DH5TRZK2.js +0 -125
  263. package/dist/_members/primitives/chunk-DH5TRZK2.js.map +0 -1
  264. package/dist/_members/primitives/chunk-E3KNUSFG.js +0 -2337
  265. package/dist/_members/primitives/chunk-E3KNUSFG.js.map +0 -1
  266. package/dist/_members/primitives/chunk-G2B3G4HK.js +0 -47
  267. package/dist/_members/primitives/chunk-G2B3G4HK.js.map +0 -1
  268. package/dist/_members/primitives/chunk-HFPFGZXT.js +0 -1494
  269. package/dist/_members/primitives/chunk-HFPFGZXT.js.map +0 -1
  270. package/dist/_members/primitives/chunk-HIWVFZVH.js +0 -19
  271. package/dist/_members/primitives/chunk-HIWVFZVH.js.map +0 -1
  272. package/dist/_members/primitives/chunk-IDAL6G3Y.js +0 -134
  273. package/dist/_members/primitives/chunk-IDAL6G3Y.js.map +0 -1
  274. package/dist/_members/primitives/chunk-KNC6JP5F.js +0 -34
  275. package/dist/_members/primitives/chunk-KNC6JP5F.js.map +0 -1
  276. package/dist/_members/primitives/chunk-KYRDVZST.js +0 -459
  277. package/dist/_members/primitives/chunk-KYRDVZST.js.map +0 -1
  278. package/dist/_members/primitives/chunk-LWLHS2NS.js +0 -3410
  279. package/dist/_members/primitives/chunk-LWLHS2NS.js.map +0 -1
  280. package/dist/_members/primitives/chunk-QAQ3P7DR.js +0 -8855
  281. package/dist/_members/primitives/chunk-QAQ3P7DR.js.map +0 -1
  282. package/dist/_members/primitives/chunk-ROV2ODWC.js +0 -81
  283. package/dist/_members/primitives/chunk-ROV2ODWC.js.map +0 -1
  284. package/dist/_members/primitives/chunk-TCRC2FH3.js +0 -183
  285. package/dist/_members/primitives/chunk-TCRC2FH3.js.map +0 -1
  286. package/dist/_members/primitives/chunk-US4YEDAA.js +0 -96
  287. package/dist/_members/primitives/chunk-US4YEDAA.js.map +0 -1
  288. package/dist/_members/primitives/chunk-UVKRO5ER.js +0 -13
  289. package/dist/_members/primitives/chunk-UVKRO5ER.js.map +0 -1
  290. package/dist/_members/primitives/chunk-W4EIIF2I.js +0 -10
  291. package/dist/_members/primitives/chunk-W4EIIF2I.js.map +0 -1
  292. package/dist/_members/primitives/chunk-WPGKIPCO.js +0 -3563
  293. package/dist/_members/primitives/chunk-WPGKIPCO.js.map +0 -1
  294. package/dist/_members/primitives/chunk-WZFLEGMD.js +0 -1435
  295. package/dist/_members/primitives/chunk-WZFLEGMD.js.map +0 -1
  296. package/dist/_members/primitives/chunk-XHU3WBEI.js +0 -33
  297. package/dist/_members/primitives/chunk-XHU3WBEI.js.map +0 -1
  298. package/dist/_members/primitives/chunk-YN7WTZZ7.js +0 -46
  299. package/dist/_members/primitives/chunk-YN7WTZZ7.js.map +0 -1
  300. package/dist/_members/primitives/effects/index.js +0 -30
  301. package/dist/_members/primitives/effects/index.js.map +0 -1
  302. package/dist/_members/primitives/hero-text/index.js +0 -14
  303. package/dist/_members/primitives/hero-text/index.js.map +0 -1
  304. package/dist/_members/primitives/index.js +0 -64
  305. package/dist/_members/primitives/index.js.map +0 -1
  306. package/dist/_members/primitives/layouts/index.js +0 -24
  307. package/dist/_members/primitives/layouts/index.js.map +0 -1
  308. package/dist/_members/primitives/lib/easings.js +0 -26
  309. package/dist/_members/primitives/lib/easings.js.map +0 -1
  310. package/dist/_members/primitives/lib/index.js +0 -74
  311. package/dist/_members/primitives/lib/index.js.map +0 -1
  312. package/dist/_members/primitives/lib/palette.js +0 -72
  313. package/dist/_members/primitives/lib/palette.js.map +0 -1
  314. package/dist/_members/primitives/lib/preview.js +0 -8
  315. package/dist/_members/primitives/lib/preview.js.map +0 -1
  316. package/dist/_members/primitives/lib/schema.js +0 -12
  317. package/dist/_members/primitives/lib/schema.js.map +0 -1
  318. package/dist/_members/primitives/lib/seeded-random.js +0 -14
  319. package/dist/_members/primitives/lib/seeded-random.js.map +0 -1
  320. package/dist/_members/primitives/lib/text/contrast.js +0 -12
  321. package/dist/_members/primitives/lib/text/contrast.js.map +0 -1
  322. package/dist/_members/primitives/lib/text/fill.js +0 -8
  323. package/dist/_members/primitives/lib/text/fill.js.map +0 -1
  324. package/dist/_members/primitives/lib/text/fitText.js +0 -10
  325. package/dist/_members/primitives/lib/text/fitText.js.map +0 -1
  326. package/dist/_members/primitives/lib/text/marker.js +0 -8
  327. package/dist/_members/primitives/lib/text/marker.js.map +0 -1
  328. package/dist/_members/primitives/lib/text/motion.js +0 -16
  329. package/dist/_members/primitives/lib/text/motion.js.map +0 -1
  330. package/dist/_members/primitives/lib/text/recolor.js +0 -8
  331. package/dist/_members/primitives/lib/text/recolor.js.map +0 -1
  332. package/dist/_members/primitives/lib/text/spec.js +0 -1
  333. package/dist/_members/primitives/lib/text/spec.js.map +0 -1
  334. package/dist/_members/primitives/lib/text/stage.js +0 -8
  335. package/dist/_members/primitives/lib/text/stage.js.map +0 -1
  336. package/dist/_members/primitives/lib/text/typeface.js +0 -8
  337. package/dist/_members/primitives/lib/text/typeface.js.map +0 -1
  338. package/dist/_members/primitives/lib/tokens.js +0 -24
  339. package/dist/_members/primitives/lib/tokens.js.map +0 -1
  340. package/dist/_members/primitives/lib/types.js +0 -1
  341. package/dist/_members/primitives/lib/types.js.map +0 -1
  342. package/dist/_members/primitives/params-required.json +0 -153
  343. package/dist/_members/primitives/scenes/index.js +0 -25
  344. package/dist/_members/primitives/scenes/index.js.map +0 -1
  345. package/dist/_members/primitives/subject-foreground/index.js +0 -30
  346. package/dist/_members/primitives/subject-foreground/index.js.map +0 -1
  347. package/dist/_members/primitives/text/index.js +0 -57
  348. package/dist/_members/primitives/text/index.js.map +0 -1
  349. package/dist/_members/primitives/transitions/index.js +0 -67
  350. package/dist/_members/primitives/transitions/index.js.map +0 -1
  351. package/dist/_members/primitives/ui-blocks/index.js +0 -76
  352. package/dist/_members/primitives/ui-blocks/index.js.map +0 -1
  353. package/dist/_members/primitives/version-map.json +0 -105
  354. package/dist/_members/primitives/workspace.js +0 -60
  355. package/dist/_members/primitives/workspace.js.map +0 -1
@@ -1,304 +0,0 @@
1
- function isTimelineClip(c) {
2
- return "source" in c;
3
- }
4
- function end(c) {
5
- return c.startTime + c.duration;
6
- }
7
- /**
8
- * Clips and Gaps on a single Track cannot overlap.
9
- * track_clips_overlap { trackId, clipAId, clipBId, overlapRange }
10
- */
11
- export function checkTrackContentsNoOverlap(track) {
12
- const violations = [];
13
- const sorted = [...track.contents].sort((a, b) => a.startTime - b.startTime);
14
- for (let i = 1; i < sorted.length; i++) {
15
- const prev = sorted[i - 1];
16
- const cur = sorted[i];
17
- if (cur.startTime < end(prev)) {
18
- violations.push({
19
- code: "track_clips_overlap",
20
- message: `Track ${track.id}: items ${prev.id} and ${cur.id} overlap at [${cur.startTime}, ${Math.min(end(prev), end(cur))})`,
21
- details: {
22
- trackId: track.id,
23
- clipAId: prev.id,
24
- clipBId: cur.id,
25
- overlapRange: [cur.startTime, Math.min(end(prev), end(cur))],
26
- },
27
- });
28
- }
29
- }
30
- return violations;
31
- }
32
- /**
33
- * A TimelineClip.source.kind must match Track.kind per the compatibility table.
34
- * clip_source_track_kind_mismatch { trackId, clipId, sourceKind, trackKind }
35
- */
36
- export function checkClipSourceTrackKind(track) {
37
- const violations = [];
38
- for (const content of track.contents) {
39
- if (!isTimelineClip(content))
40
- continue;
41
- const ok = isSourceKindCompatible(track.kind, content.source.kind);
42
- if (!ok) {
43
- violations.push({
44
- code: "clip_source_track_kind_mismatch",
45
- message: `Track ${track.id} (kind=${track.kind}) cannot hold TimelineClip ${content.id} (source.kind=${content.source.kind})`,
46
- details: {
47
- trackId: track.id,
48
- clipId: content.id,
49
- sourceKind: content.source.kind,
50
- trackKind: track.kind,
51
- },
52
- });
53
- }
54
- }
55
- return violations;
56
- }
57
- export function isSourceKindCompatible(trackKind, sourceKind) {
58
- switch (trackKind) {
59
- case "video":
60
- // `composition` = a compound clip; its content is video-family by
61
- // definition (it flattens to the child's tracks at projection).
62
- return sourceKind === "media" || sourceKind === "component" || sourceKind === "composition";
63
- case "audio":
64
- return sourceKind === "media" || sourceKind === "component";
65
- case "image":
66
- // Image tracks carry stills via `kind: "media"`. The renderer
67
- // resolves them via <StillFrame>, distinct from <Video>. Component
68
- // sources are also allowed for parity with video/audio (e.g. a
69
- // future "synthetic still" primitive).
70
- return sourceKind === "media" || sourceKind === "component";
71
- case "overlay":
72
- // alpha-layer (a baked-alpha component) and card (authored static graphic)
73
- // composite on the overlay track too — keep in lockstep with the server's
74
- // clipTrackFamilyIssue (services/convex/composition/projection.ts) and
75
- // AUTHORED_GRAPHIC_KINDS (validators/composition.ts).
76
- return (sourceKind === "overlay" ||
77
- sourceKind === "component" ||
78
- sourceKind === "alpha-layer" ||
79
- sourceKind === "card");
80
- case "effect":
81
- return sourceKind === "effect";
82
- }
83
- }
84
- /**
85
- * A TimelineClip with transitionIn must have a contiguous TimelineClip predecessor on the
86
- * same Track (no Gap, not first element).
87
- *
88
- * transition_no_predecessor { trackId, clipId }
89
- * transition_too_long { trackId, clipId, transitionDuration, available }
90
- */
91
- export function checkTransitions(track) {
92
- const violations = [];
93
- const sorted = [...track.contents].sort((a, b) => a.startTime - b.startTime);
94
- for (let i = 0; i < sorted.length; i++) {
95
- const cur = sorted[i];
96
- if (!isTimelineClip(cur) || !cur.transitionIn)
97
- continue;
98
- const prev = sorted[i - 1];
99
- if (!prev || !isTimelineClip(prev)) {
100
- violations.push({
101
- code: "transition_no_predecessor",
102
- message: `Track ${track.id}: TimelineClip ${cur.id} has transitionIn but no TimelineClip predecessor`,
103
- details: { trackId: track.id, clipId: cur.id },
104
- });
105
- continue;
106
- }
107
- const d = cur.transitionIn.duration;
108
- const headroom = Math.min(prev.duration, cur.duration);
109
- if (d > headroom) {
110
- violations.push({
111
- code: "transition_too_long",
112
- message: `Track ${track.id}: TimelineClip ${cur.id} transitionIn.duration (${d}) exceeds available headroom (${headroom})`,
113
- details: {
114
- trackId: track.id,
115
- clipId: cur.id,
116
- transitionDuration: d,
117
- available: headroom,
118
- },
119
- });
120
- }
121
- }
122
- return violations;
123
- }
124
- /**
125
- * For each TimelineClip with a media source carrying excludedRanges, verify:
126
- * - each range has end > start
127
- * - every range is within the source trim window (or [0, duration] when trim absent)
128
- * - ranges are sorted and non-overlapping
129
- * - clip.duration === (trimEnd - trimStart) - Σ excluded, within float tolerance (1e-3)
130
- *
131
- * Coordinate space: source coordinates (same as `trim`).
132
- *
133
- * excluded_range_invalid { trackId, clipId, index, start, end }
134
- * excluded_range_out_of_bounds { trackId, clipId, index, start, end, trimStart, trimEnd }
135
- * excluded_range_overlap { trackId, clipId, index, start, prevEnd }
136
- * excluded_range_duration_mismatch { trackId, clipId, expected, actual, trimSpan, totalExcluded }
137
- */
138
- export function checkExcludedRanges(track) {
139
- const violations = [];
140
- for (const content of track.contents) {
141
- if (!isTimelineClip(content))
142
- continue;
143
- if (content.source.kind !== "media")
144
- continue;
145
- const ranges = content.source.excludedRanges;
146
- if (!ranges || ranges.length === 0)
147
- continue;
148
- const trim = content.source.trim;
149
- const trimStart = trim?.start ?? 0;
150
- // When trim is absent, source coordinates collapse to [0, duration] (1:1).
151
- const trimEnd = trim?.end ?? trimStart + content.duration;
152
- let prevEnd = -Infinity;
153
- let total = 0;
154
- let earlyExit = false;
155
- for (let i = 0; i < ranges.length; i++) {
156
- const r = ranges[i];
157
- if (r.end <= r.start) {
158
- violations.push({
159
- code: "excluded_range_invalid",
160
- message: `Track ${track.id}: TimelineClip ${content.id} excludedRanges[${i}] end (${r.end}) must be > start (${r.start})`,
161
- details: {
162
- trackId: track.id,
163
- clipId: content.id,
164
- index: i,
165
- start: r.start,
166
- end: r.end,
167
- },
168
- });
169
- earlyExit = true;
170
- break;
171
- }
172
- if (r.start < trimStart || r.end > trimEnd) {
173
- violations.push({
174
- code: "excluded_range_out_of_bounds",
175
- message: `Track ${track.id}: TimelineClip ${content.id} excludedRanges[${i}] [${r.start}, ${r.end}] outside trim [${trimStart}, ${trimEnd}]`,
176
- details: {
177
- trackId: track.id,
178
- clipId: content.id,
179
- index: i,
180
- start: r.start,
181
- end: r.end,
182
- trimStart,
183
- trimEnd,
184
- },
185
- });
186
- earlyExit = true;
187
- break;
188
- }
189
- if (r.start < prevEnd) {
190
- violations.push({
191
- code: "excluded_range_overlap",
192
- message: `Track ${track.id}: TimelineClip ${content.id} excludedRanges[${i}] overlaps preceding range (start ${r.start} < prevEnd ${prevEnd})`,
193
- details: {
194
- trackId: track.id,
195
- clipId: content.id,
196
- index: i,
197
- start: r.start,
198
- prevEnd,
199
- },
200
- });
201
- earlyExit = true;
202
- break;
203
- }
204
- prevEnd = r.end;
205
- total += r.end - r.start;
206
- }
207
- if (earlyExit)
208
- continue;
209
- const trimSpan = trimEnd - trimStart;
210
- const expectedDuration = trimSpan - total;
211
- // Tolerate float-roundoff at the millisecond level — wire is in seconds and
212
- // editor / agent ops compute these with float math.
213
- if (Math.abs(expectedDuration - content.duration) > 1e-3) {
214
- violations.push({
215
- code: "excluded_range_duration_mismatch",
216
- message: `Track ${track.id}: TimelineClip ${content.id} duration (${content.duration}) ≠ trimSpan (${trimSpan}) − Σexcluded (${total}) = ${expectedDuration}`,
217
- details: {
218
- trackId: track.id,
219
- clipId: content.id,
220
- expected: expectedDuration,
221
- actual: content.duration,
222
- trimSpan,
223
- totalExcluded: total,
224
- },
225
- });
226
- }
227
- }
228
- return violations;
229
- }
230
- /** Combined per-track invariants. */
231
- /**
232
- * A media clip's `duration` must equal its trimmed source span divided by its
233
- * playback rate — for clips that have NO excluded ranges.
234
- *
235
- * `checkExcludedRanges` computes exactly this relationship, but returns early on
236
- * `if (!ranges || ranges.length === 0) continue`, so it only ever runs for clips
237
- * that HAVE excluded ranges. A plainly-trimmed clip whose duration disagrees
238
- * with its trim is therefore unchecked. This closes that gap; the two together
239
- * cover every media clip.
240
- *
241
- * HONEST PROVENANCE: found while chasing a suspected corruption that turned out
242
- * not to be one. A project showed `duration 2.4` against `trim {0, 3.4}`, which
243
- * looked inconsistent until the clip's `excludedRanges` ([1.9, 2.9]) accounted
244
- * for exactly the difference. The composition was fine and the existing check
245
- * passed it correctly. No known production case violates THIS rule — it is here
246
- * because the coverage hole is real, not because a bug was seen through it.
247
- */
248
- export function checkClipDurationMatchesTrim(track) {
249
- const violations = [];
250
- for (const content of track.contents) {
251
- if (!isTimelineClip(content))
252
- continue;
253
- if (content.source.kind !== "media")
254
- continue;
255
- const trim = content.source.trim;
256
- // No trim ⇒ source coordinates collapse to [0, duration] and the identity is
257
- // vacuous; there is nothing to disagree with.
258
- if (!trim)
259
- continue;
260
- const rate = content.source.playbackRate ?? 1;
261
- if (!(rate > 0))
262
- continue; // `playbackRate` is validated positive elsewhere
263
- // Excluded ranges legitimately shorten the clip below its trim span, and
264
- // `checkExcludedRanges` already owns that arithmetic. Do not double-report.
265
- const excluded = content.source.excludedRanges;
266
- if (excluded && excluded.length > 0)
267
- continue;
268
- const trimSpan = trim.end - trim.start;
269
- const expected = trimSpan / rate;
270
- if (Math.abs(expected - content.duration) > 1e-3) {
271
- violations.push({
272
- code: "clip_duration_trim_mismatch",
273
- message: `Track ${track.id}: TimelineClip ${content.id} duration (${content.duration}) ≠ ` +
274
- `trimSpan (${trimSpan}) ÷ playbackRate (${rate}) = ${expected}`,
275
- details: {
276
- trackId: track.id,
277
- clipId: content.id,
278
- expected,
279
- actual: content.duration,
280
- trimSpan,
281
- playbackRate: rate,
282
- },
283
- });
284
- }
285
- }
286
- return violations;
287
- }
288
- export function checkTrack(track) {
289
- return [
290
- ...checkTrackContentsNoOverlap(track),
291
- ...checkClipSourceTrackKind(track),
292
- ...checkTransitions(track),
293
- ...checkExcludedRanges(track),
294
- ...checkClipDurationMatchesTrim(track),
295
- ];
296
- }
297
- /** Combined per-composition invariants that live at the Track level. */
298
- export function checkTracks(composition) {
299
- const out = [];
300
- for (const track of composition.tracks) {
301
- out.push(...checkTrack(track));
302
- }
303
- return out;
304
- }