@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
@@ -1,46 +0,0 @@
1
- // @cueframe/primitive-registry — React-free primitive catalog metadata + the
2
- // authoring-facing accessors. The renderer (@cueframe/compose, execution) keeps
3
- // its full registry (components + paramsSchema + createPresentation) and
4
- // RE-EXPORTS these accessors from here so there is exactly one source of truth
5
- // for the text/subtext/category contract — no parallel copy to drift.
6
- import { PRIMITIVE_META } from './generated/meta';
7
- export { PRIMITIVE_META };
8
- const byId = new Map(PRIMITIVE_META.map((m) => [m.id, m]));
9
- /** List primitives filtered by category. Used by `list_effect_styles` + discovery. */
10
- export function listPrimitivesByCategory(category) {
11
- return PRIMITIVE_META.filter((m) => m.category === category);
12
- }
13
- /**
14
- * The primitive's declared text-param name.
15
- * - string → the field accepting a single text payload (e.g. 'text').
16
- * - null → the primitive explicitly declines text (e.g. karaoke).
17
- * - undefined → unknown id, or no declared text contract.
18
- */
19
- export function getPrimitiveTextParam(id) {
20
- return byId.get(id)?.textParam;
21
- }
22
- /** Secondary text-param name. Same string/null/undefined semantics. */
23
- export function getPrimitiveSubtextParam(id) {
24
- return byId.get(id)?.subtextParam;
25
- }
26
- /** Lookup a primitive's catalog metadata by id. */
27
- export function getPrimitiveCatalogMeta(id) {
28
- return byId.get(id);
29
- }
30
- /** All registered primitive ids. */
31
- export function listPrimitiveIds() {
32
- return [...byId.keys()];
33
- }
34
- export { projectToComponentCatalog, projectToRegistryOverlays, derivePlacement, } from './projection';
35
- /** JSON Schema for a primitive's props, or undefined if unknown. */
36
- export function getPrimitivePropSchema(id) {
37
- return byId.get(id)?.propSchema;
38
- }
39
- // Pure, V8-safe param validation against the baked propSchema (closed-key +
40
- // typed). Imported by the Convex isolate's write/validate boundary guards.
41
- export { validatePrimitiveParams, validateParamsAgainstSchema, } from './paramValidation';
42
- // The disabled-primitive denylist — the single switch that takes a built-in
43
- // primitive out of circulation (discovery + write-boundary membership). See
44
- // ./disabled for why a denylist rather than a per-primitive flag.
45
- export { DISABLED_PRIMITIVE_IDS, isPrimitiveDisabled } from './disabled';
46
- export { queryCatalog, filterCatalog, hasAnyCatalogFilter, validateCatalogFilters, encodeCatalogCursor, decodeCatalogCursor, serializeSfxCatalog, CatalogFilterError, CatalogCursorError, CATALOG_CATEGORY_VALUES, CATALOG_KIND_VALUES, CATALOG_TIER_VALUES, CATALOG_USE_CASE_VALUES, } from "./catalogQuery";
@@ -1,231 +0,0 @@
1
- // @cueframe/primitive-registry — pure, React/Remotion-FREE param validation
2
- // against the catalog's baked JSON-Schema `propSchema` (the same SSOT the
3
- // renderer's Zod paramsSchema generates — see build-primitive-meta.mjs).
4
- //
5
- // WHY THIS MODULE IS DEPENDENCY-FREE AND V8-SAFE: it is imported by the Convex
6
- // V8 isolate (via `@cueframe/primitive-registry`, already proven safe — see
7
- // services/convex/api/registry/builtinRegistry.ts). It MUST NOT pull in ajv or
8
- // any validator that calls `eval` / `new Function` (forbidden in the isolate)
9
- // and MUST NOT import React/Remotion. The closed-key + primitive-type checks
10
- // below are hand-rolled against `propSchema.properties` with zero deps.
11
- //
12
- // WHAT IT CLOSES: overlay/effect clip `params` are wire-typed as
13
- // `z.record(z.string(), z.unknown())`, and every primitive's Zod paramsSchema
14
- // is `.passthrough()` (so `propSchema.additionalProperties === true` on all 87).
15
- // A TYPO'd key (`headlin` for `headline`) or an UNSUPPORTED key is therefore
16
- // silently dropped, and a WRONG-TYPED value (`text: 123`) is not caught until
17
- // render (render_unknown / no-op). This validates at the write/validate boundary
18
- // so those fail LOUD with the valid key set — not silently vanish.
19
- //
20
- // SCOPE BY DESIGN: TOP-LEVEL closed-key + TOP-LEVEL per-property primitive-type
21
- // check only. We deliberately do NOT recurse (deep/nested shape, refinements,
22
- // mins/maxes, enums) — that is the renderer's full-Zod job at inflate time. The
23
- // `additionalProperties: true` passthrough flag is the BUG we are closing, NOT a
24
- // license to allow unknown keys; the only escape hatch is the explicit
25
- // per-primitive `freeformParams` opt-out (no first-party config sets it today).
26
- import { PRIMITIVE_META } from './generated/meta';
27
- const byId = new Map(PRIMITIVE_META.map((m) => [m.id, m]));
28
- /** JSON-Schema primitive `type` names we can check structurally, no deps. */
29
- const PRIMITIVE_TYPES = new Set([
30
- 'string',
31
- 'number',
32
- 'integer',
33
- 'boolean',
34
- 'object',
35
- 'array',
36
- 'null',
37
- ]);
38
- /** Runtime JSON type label for a value — used in mismatch messages. */
39
- function jsonType(value) {
40
- if (value === null)
41
- return 'null';
42
- if (Array.isArray(value))
43
- return 'array';
44
- return typeof value; // 'string' | 'number' | 'boolean' | 'object' | ...
45
- }
46
- /** Does a runtime value satisfy a single JSON-Schema primitive `type` name? */
47
- function matchesType(value, type) {
48
- switch (type) {
49
- case 'string':
50
- return typeof value === 'string';
51
- case 'boolean':
52
- return typeof value === 'boolean';
53
- case 'number':
54
- return typeof value === 'number' && Number.isFinite(value);
55
- case 'integer':
56
- return typeof value === 'number' && Number.isInteger(value);
57
- case 'object':
58
- return value !== null && typeof value === 'object' && !Array.isArray(value);
59
- case 'array':
60
- return Array.isArray(value);
61
- case 'null':
62
- return value === null;
63
- default:
64
- // An unrecognised type keyword can't be checked structurally — don't
65
- // claim a mismatch (closed-key already caught typo'd KEYS).
66
- return true;
67
- }
68
- }
69
- /**
70
- * Collect value-constraint violations for a single CORRECTLY-TYPED value against
71
- * its declared property schema. Only the flat, top-level JSON-Schema keywords the
72
- * catalog bakes for scalars — maxLength/minLength (strings), minimum/maximum
73
- * (numbers), and enum (any primitive). Deep/nested-item and `.refine()` custom
74
- * logic stay the renderer's full-Zod job (now surfaced TYPED from inflate).
75
- */
76
- function collectConstraintViolations(key, value, prop, out) {
77
- if (typeof value === 'string') {
78
- if (typeof prop.maxLength === 'number' && value.length > prop.maxLength) {
79
- out.push({ key, constraint: 'maxLength', limit: prop.maxLength, actual: value.length });
80
- }
81
- if (typeof prop.minLength === 'number' && value.length < prop.minLength) {
82
- out.push({ key, constraint: 'minLength', limit: prop.minLength, actual: value.length });
83
- }
84
- }
85
- if (typeof value === 'number' && Number.isFinite(value)) {
86
- if (typeof prop.maximum === 'number' && value > prop.maximum) {
87
- out.push({ key, constraint: 'maximum', limit: prop.maximum, actual: value });
88
- }
89
- if (typeof prop.minimum === 'number' && value < prop.minimum) {
90
- out.push({ key, constraint: 'minimum', limit: prop.minimum, actual: value });
91
- }
92
- if (typeof prop.exclusiveMaximum === 'number' && value >= prop.exclusiveMaximum) {
93
- out.push({ key, constraint: 'exclusiveMaximum', limit: prop.exclusiveMaximum, actual: value });
94
- }
95
- if (typeof prop.exclusiveMinimum === 'number' && value <= prop.exclusiveMinimum) {
96
- out.push({ key, constraint: 'exclusiveMinimum', limit: prop.exclusiveMinimum, actual: value });
97
- }
98
- }
99
- if (Array.isArray(value)) {
100
- if (typeof prop.maxItems === 'number' && value.length > prop.maxItems) {
101
- out.push({ key, constraint: 'maxItems', limit: prop.maxItems, actual: value.length });
102
- }
103
- if (typeof prop.minItems === 'number' && value.length < prop.minItems) {
104
- out.push({ key, constraint: 'minItems', limit: prop.minItems, actual: value.length });
105
- }
106
- }
107
- if (Array.isArray(prop.enum) && prop.enum.length > 0) {
108
- if ((typeof value === 'string' ||
109
- typeof value === 'number' ||
110
- typeof value === 'boolean') &&
111
- !prop.enum.includes(value)) {
112
- out.push({
113
- key,
114
- constraint: 'enum',
115
- limit: prop.enum,
116
- actual: value,
117
- });
118
- }
119
- }
120
- }
121
- /**
122
- * Validate a params object against an EXPLICIT JSON-Schema `propSchema`. The
123
- * low-level core: pure, no registry lookup, so the "missing propSchema → fail
124
- * loud" branch is directly unit-testable (pass `undefined`).
125
- *
126
- * - CLOSED-KEY: every provided key must be a declared property; otherwise it
127
- * lands in `unknownKeys` (with `allowedKeys` = the valid set). Suppressed when
128
- * `opts.freeform` (the per-primitive opt-out) is set — typed checks still run.
129
- * - TYPED: each provided KNOWN key is checked against its declared primitive
130
- * `type` (string, or an array-of-strings union). Properties with no concrete
131
- * primitive `type` (anyOf/enum-only/$ref) skip the typed check — closed-key
132
- * still applies, deep shape is the renderer's full-Zod job.
133
- */
134
- export function validateParamsAgainstSchema(params, propSchema, opts) {
135
- const schema = propSchema;
136
- const properties = schema && typeof schema === 'object' ? schema.properties : undefined;
137
- // Fail loud: a primitive we were asked to validate has no usable object
138
- // propSchema. Never silently pass (that is the silent-drop class this exists
139
- // to kill). With the catalog's 87↔87 version-map alignment this should be
140
- // unreachable for a known primitive, so it only fires on real registry drift.
141
- if (!schema ||
142
- schema.type !== 'object' ||
143
- !properties ||
144
- typeof properties !== 'object') {
145
- return {
146
- missingPropSchema: true,
147
- unknownKeys: [],
148
- allowedKeys: [],
149
- typeMismatches: [],
150
- constraintViolations: [],
151
- };
152
- }
153
- const allowedKeys = Object.keys(properties).sort();
154
- const allowed = new Set(allowedKeys);
155
- const paramsObj = params && typeof params === 'object' && !Array.isArray(params)
156
- ? params
157
- : {};
158
- const unknownKeys = [];
159
- const typeMismatches = [];
160
- const constraintViolations = [];
161
- for (const [key, value] of Object.entries(paramsObj)) {
162
- if (!allowed.has(key)) {
163
- if (!opts?.freeform)
164
- unknownKeys.push(key);
165
- continue;
166
- }
167
- const prop = properties[key];
168
- const declared = prop?.type;
169
- let typeOk = true;
170
- if (typeof declared === 'string' && PRIMITIVE_TYPES.has(declared)) {
171
- if (!matchesType(value, declared)) {
172
- typeMismatches.push({ key, expected: declared, actual: jsonType(value) });
173
- typeOk = false;
174
- }
175
- }
176
- else if (Array.isArray(declared) &&
177
- declared.length > 0 &&
178
- declared.every((t) => typeof t === 'string')) {
179
- const types = declared;
180
- if (!types.some((t) => matchesType(value, t))) {
181
- typeMismatches.push({
182
- key,
183
- expected: types.join('|'),
184
- actual: jsonType(value),
185
- });
186
- typeOk = false;
187
- }
188
- }
189
- // No concrete primitive type (anyOf/enum-only/$ref) → typed check skipped,
190
- // but value constraints (enum membership, flat min/max/length) still apply.
191
- // Only value-check a value that is not already a type mismatch.
192
- if (typeOk && prop) {
193
- collectConstraintViolations(key, value, prop, constraintViolations);
194
- }
195
- }
196
- return {
197
- missingPropSchema: false,
198
- unknownKeys: unknownKeys.sort(),
199
- allowedKeys,
200
- typeMismatches,
201
- constraintViolations,
202
- };
203
- }
204
- /**
205
- * Resolve a registry primitive's baked `propSchema` and validate `params`
206
- * against it (closed-key + typed). The SSOT-resolving wrapper over
207
- * `validateParamsAgainstSchema`.
208
- *
209
- * - `known:false` when `primitiveId` is absent from the catalog — the
210
- * membership guard owns reporting unknown ids; the param-shape caller skips.
211
- * - `missingPropSchema:true` when a KNOWN primitive carries no usable
212
- * propSchema (registry drift) — the caller fails loud.
213
- * - Honours the per-primitive `freeformParams` opt-out (no config sets it today).
214
- */
215
- export function validatePrimitiveParams(primitiveId, params) {
216
- const meta = byId.get(primitiveId);
217
- if (!meta) {
218
- return {
219
- known: false,
220
- missingPropSchema: false,
221
- unknownKeys: [],
222
- allowedKeys: [],
223
- typeMismatches: [],
224
- constraintViolations: [],
225
- };
226
- }
227
- const result = validateParamsAgainstSchema(params, meta.propSchema, {
228
- freeform: meta.freeformParams === true,
229
- });
230
- return { known: true, ...result };
231
- }
@@ -1,164 +0,0 @@
1
- // @cueframe/primitive-registry — React-free projections from the generated
2
- // PRIMITIVE_META (the single source of truth) into the two catalog shapes the
3
- // API serves:
4
- // - projectToComponentCatalog → the unified 7-category shape served by the
5
- // new /v1/components endpoint.
6
- // - projectToRegistryOverlays → the legacy namespaced (cueframe:*) shape
7
- // served by the deprecated /v1/registry/overlays endpoint.
8
- // Convex (V8 isolate) imports these, so this module stays React/Remotion-free:
9
- // it imports only the metadata types and the generated meta.
10
- import { isPrimitiveDisabled } from './disabled';
11
- /**
12
- * Project a primitive's declared `tokens` into the public brand-binding hints.
13
- * Only tokens with a `brandKitPath` are brand-bindable; the rest are
14
- * render-internal CSS-var bindings with no agent-facing value. Returns
15
- * `undefined` (not `[]`) when none, so the field is omitted from the wire shape.
16
- */
17
- function deriveBrandBindings(tokens) {
18
- if (!tokens || tokens.length === 0)
19
- return undefined;
20
- const bindings = tokens
21
- .filter((t) => typeof t.brandKitPath === 'string' && t.brandKitPath.length > 0)
22
- .map((t) => ({ param: t.propPath, brandToken: `$brand:${t.brandKitPath}` }));
23
- return bindings.length > 0 ? bindings : undefined;
24
- }
25
- const EFFECT_PLACEMENT_CATEGORIES = new Set([
26
- 'effects',
27
- 'transitions',
28
- ]);
29
- const OVERLAY_PLACEMENT_CATEGORIES = new Set([
30
- 'text',
31
- 'ui-blocks',
32
- 'backgrounds',
33
- 'layouts',
34
- 'scenes',
35
- ]);
36
- /**
37
- * Derive the timeline-placement hint for a catalog entry from its provenance +
38
- * category. Fail-loud: an unmapped category means a new `PrimitiveCategory`
39
- * landed without a placement rule — a silent default would mis-author the clip.
40
- */
41
- export function derivePlacement(args) {
42
- // An org-installed custom component is the ONLY ComponentClipSource case.
43
- if (args.source === 'installed') {
44
- return { clipSourceKind: 'component', refField: 'componentId' };
45
- }
46
- if (EFFECT_PLACEMENT_CATEGORIES.has(args.category)) {
47
- return { clipSourceKind: 'effect', refField: 'primitiveId' };
48
- }
49
- if (OVERLAY_PLACEMENT_CATEGORIES.has(args.category)) {
50
- return { clipSourceKind: 'overlay', refField: 'primitiveId' };
51
- }
52
- throw new Error(`derivePlacement: no placement rule for category '${args.category}' (source '${args.source}'). ` +
53
- `Add it to EFFECT_PLACEMENT_CATEGORIES or OVERLAY_PLACEMENT_CATEGORIES.`);
54
- }
55
- // Default for installed rows in a later task that legitimately lack a propSchema.
56
- // Default-source rows always carry a real propSchema (Task 2 fails loud otherwise),
57
- // so the projection below uses m.propSchema directly.
58
- const EMPTY_SCHEMA = { type: 'object', properties: {} };
59
- function aspectRatio(w, h) {
60
- if (!w || !h)
61
- return undefined;
62
- const r = w / h;
63
- if (Math.abs(r - 16 / 9) < 0.02)
64
- return '16:9';
65
- if (Math.abs(r - 9 / 16) < 0.02)
66
- return '9:16';
67
- if (Math.abs(r - 1) < 0.02)
68
- return '1:1';
69
- if (Math.abs(r - 4 / 5) < 0.02)
70
- return '4:5';
71
- return undefined;
72
- }
73
- function resolution(h) {
74
- if (!h)
75
- return undefined;
76
- if (h >= 2160)
77
- return '4k';
78
- if (h >= 1080)
79
- return 'fhd';
80
- if (h >= 720)
81
- return 'hd';
82
- return undefined;
83
- }
84
- function sceneFps(fps) {
85
- if (fps === undefined)
86
- return undefined;
87
- if (fps === 24 || fps === 30 || fps === 60)
88
- return fps;
89
- throw new Error(`sceneFormat: unsupported scene fps ${fps} (expected 24|30|60)`);
90
- }
91
- function sceneFormat(m) {
92
- if (m.kind !== 'scene')
93
- return undefined;
94
- const ar = aspectRatio(m.width, m.height);
95
- if (!ar)
96
- return undefined;
97
- return {
98
- aspectRatio: ar,
99
- fps: sceneFps(m.fps),
100
- resolution: resolution(m.height),
101
- };
102
- }
103
- export function projectToComponentCatalog(metas) {
104
- // Disabled primitives are never OFFERED — a driving agent can't discover what
105
- // it isn't allowed to author (the write boundary rejects them too).
106
- return metas.filter((m) => !isPrimitiveDisabled(m.id)).map((m) => ({
107
- id: m.id,
108
- name: m.name,
109
- description: m.description ?? '',
110
- source: 'default',
111
- category: m.category,
112
- kind: m.kind,
113
- version: m.version,
114
- propSchema: m.propSchema ?? EMPTY_SCHEMA,
115
- propDefaults: m.propDefaults,
116
- textParam: m.textParam,
117
- subtextParam: m.subtextParam,
118
- format: sceneFormat(m),
119
- durationInFrames: m.durationInFrames,
120
- intent: m.intent,
121
- useWhen: m.useWhen,
122
- pairsWith: m.pairsWith,
123
- avoidWith: m.avoidWith,
124
- tags: m.tags,
125
- mood: m.mood,
126
- tier: m.tier,
127
- useCase: m.useCase,
128
- examples: m.examples,
129
- fixedCopy: m.fixedCopy,
130
- brandBindings: deriveBrandBindings(m.tokens),
131
- // Built-in primitives are always source:'default'; placement derives from
132
- // category (overlay for text/ui/scene, effect for effects/transitions).
133
- placement: derivePlacement({ source: 'default', category: m.category }),
134
- }));
135
- }
136
- const OVERLAY_CATEGORY = {
137
- text: 'cueframe:overlay.text',
138
- effects: 'cueframe:effect',
139
- transitions: 'cueframe:transition',
140
- scenes: 'cueframe:scene',
141
- };
142
- export function projectToRegistryOverlays(metas) {
143
- const out = [];
144
- for (const m of metas) {
145
- if (isPrimitiveDisabled(m.id))
146
- continue; // disabled primitives are never offered
147
- const category = OVERLAY_CATEGORY[m.category];
148
- if (!category)
149
- continue; // layouts/backgrounds/ui-blocks are not part of the legacy shape
150
- out.push({
151
- id: m.id,
152
- category,
153
- name: m.name,
154
- kind: m.kind === 'transition' ? 'transition' : 'component',
155
- description: m.description,
156
- textParam: m.textParam,
157
- subtextParam: m.subtextParam,
158
- format: sceneFormat(m),
159
- durationInFrames: m.durationInFrames,
160
- sampleProps: m.propDefaults ?? {},
161
- });
162
- }
163
- return out;
164
- }
@@ -1,14 +0,0 @@
1
- // @cueframe/primitive-registry — the React-free catalog-metadata contract.
2
- //
3
- // This is the AUTHORING-facing view of "what primitives exist and their param
4
- // contract" — distinct from:
5
- // - @cueframe/primitives PrimitiveMeta (the RUNTIME catalog entry: React
6
- // component + zod paramsSchema + createPresentation), which is execution-side.
7
- // - @cueframe/composition PrimitiveRegistryEntry (the MARKETPLACE/distribution
8
- // registry: origin class, modes, OTIO mapping), which is a different layer.
9
- //
10
- // The metadata here is generated from each primitive's config.ts (see
11
- // scripts/build-primitive-meta.mjs) so authoring can read the catalog without
12
- // importing the renderer (which would be an authoring -> execution boundary
13
- // violation). Mirror of the JSON-serializable subset of PrimitiveMeta.
14
- export {};
@@ -1,62 +0,0 @@
1
- /**
2
- * Launch-grade behind-text placement (spec §6). Derives a SCENE-space anchor from
3
- * the matte geometry sidecar: lateral center of the clip-union silhouette; vertical
4
- * in the shoulder band (head-top + a fraction) so the bite is rounded and partial,
5
- * never the flat torso wall; minTextWidth guarantees the line reads past the
6
- * silhouette on both sides. Pure; all values source-normalized [0,1].
7
- *
8
- * The sidecar is the person-matte bake's `.geometry.json` artifact (one record
9
- * per frame: subject bbox + 16-bucket column/row coverage marginals, computed
10
- * from the smoothed alpha — see person_matting.py `_frame_geometry`). The
11
- * orchestration activity downloads + camelCases it into `MatteGeometryLike`;
12
- * this module never does I/O.
13
- */
14
- /** Minimum fraction of bake-window frames with a detected subject before the
15
- * behind treatment is even considered (relocated `captionsBehindEligible`
16
- * principle — composition-floor's MIN_ACTIVE_SPEAKER_PRESENCE sibling). Below
17
- * this the clip reads as b-roll / no-speaker → no anchor, degrade to front. */
18
- export const MIN_PRESENCE_FOR_BEHIND = 0.6;
19
- /** Shoulder-band shape. `headLambda` drops the anchor a frame-height fraction
20
- * below the union head-top so the silhouette bites the line from below-the-chin
21
- * (rounded head + shoulders), not the flat torso wall. `widthPad` widens the
22
- * minimum text width past the union silhouette so the line reads on BOTH sides
23
- * of the body. Calibration constants — Phase-7 fixtures tune them. */
24
- export const BEHIND_BAND = { headLambda: 0.18, widthPad: 1.25 };
25
- /** Anchors never sink below this — past mid-frame the "behind" read collapses
26
- * into a lower-third (the silhouette no longer frames the line from above). */
27
- const MAX_ANCHOR_Y = 0.55;
28
- /** Hard ceiling on any text width estimate (frame fraction). */
29
- const MAX_TEXT_WIDTH = 0.95;
30
- /**
31
- * Derive the behind-text anchor from a clip's matte geometry. Returns null when
32
- * the clip has no stable subject to be behind (presence below the floor, or no
33
- * frame ever produced a bbox) — the caller degrades the overlay to front.
34
- *
35
- * Placement: lateral center of the UNION bbox across all present frames (stable
36
- * against per-frame jitter); vertical at union head-top + the shoulder-band
37
- * lambda, capped at MAX_ANCHOR_Y; minTextWidth = union silhouette width padded
38
- * by `widthPad` so the line extends past the body on both sides.
39
- */
40
- export function deriveBehindAnchor(g) {
41
- if (g.presenceFraction < MIN_PRESENCE_FOR_BEHIND)
42
- return null;
43
- let x0 = Infinity;
44
- let y0 = Infinity;
45
- let x1 = -Infinity;
46
- let hasBbox = false;
47
- for (const frame of g.frames) {
48
- if (!frame.bbox)
49
- continue;
50
- hasBbox = true;
51
- x0 = Math.min(x0, frame.bbox[0]);
52
- y0 = Math.min(y0, frame.bbox[1]);
53
- x1 = Math.max(x1, frame.bbox[2]);
54
- }
55
- if (!hasBbox)
56
- return null;
57
- return {
58
- x: (x0 + x1) / 2,
59
- y: Math.min(MAX_ANCHOR_Y, y0 + BEHIND_BAND.headLambda),
60
- minTextWidth: Math.min(MAX_TEXT_WIDTH, (x1 - x0) * BEHIND_BAND.widthPad),
61
- };
62
- }