@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,61 +0,0 @@
1
- /**
2
- * AUDIO_MIX — the one SSOT for audio design policy (spec 2026-07-20
3
- * time-synced-sfx-audio-design §5). Consumed by the director's sfxCompile
4
- * (placement) AND the evaluation audio floors (grading) so the resolver and the
5
- * grader can never disagree on what "too dense" means.
6
- *
7
- * The content-kind split is the restraint rule: real footage (a transcript with
8
- * words exists) gets the left column BY CONSTRUCTION — podcasts / talking-head
9
- * content cannot be opted into generated-tier density except via the explicit
10
- * `dense` intensity.
11
- */
12
- /** Density policy per content kind at each intensity. `off` emits nothing (the
13
- * resolver returns [] before consulting this table). `dense` on real footage is
14
- * the explicit opt-in that unlocks the generated-tier caps. */
15
- export const SFX_DENSITY = {
16
- "real-footage": {
17
- light: { maxHitsPer30s: 3, minSpacingSec: 2.5, perElementTicks: false, maxTicksPerGraphic: 0, hitDb: -18 },
18
- standard: { maxHitsPer30s: 3, minSpacingSec: 2.5, perElementTicks: false, maxTicksPerGraphic: 0, hitDb: -18 },
19
- dense: { maxHitsPer30s: 8, minSpacingSec: 1.2, perElementTicks: true, maxTicksPerGraphic: 5, hitDb: -12 },
20
- },
21
- generated: {
22
- light: { maxHitsPer30s: 4, minSpacingSec: 2.0, perElementTicks: false, maxTicksPerGraphic: 0, hitDb: -14 },
23
- standard: { maxHitsPer30s: 8, minSpacingSec: 1.2, perElementTicks: true, maxTicksPerGraphic: 5, hitDb: -12 },
24
- dense: { maxHitsPer30s: 12, minSpacingSec: 0.8, perElementTicks: true, maxTicksPerGraphic: 5, hitDb: -12 },
25
- },
26
- };
27
- /** Default intensity per content kind when brief/brand express audio intent but
28
- * no explicit sfx intensity. */
29
- export const DEFAULT_SFX_INTENSITY = {
30
- "real-footage": "light",
31
- generated: "standard",
32
- };
33
- /** Speech-collision policy (real footage only — generated content has no speech
34
- * unless VO ships): a hit whose transient lands inside a speech word ±150ms is
35
- * attenuated a further -6 dB; risers that would UNDERLAP speech are dropped. */
36
- export const SPEECH_COLLISION = {
37
- windowMs: 150,
38
- attenuateDb: -6,
39
- };
40
- /** Music bed defaults (spec §6): base level, fades, duck. */
41
- export const MUSIC_BED = {
42
- volumeDb: -21,
43
- fadeInMs: 500,
44
- fadeOutMs: 1200,
45
- duck: { duckDb: -12, attackMs: 150, releaseMs: 400 },
46
- };
47
- /** Ambience bed defaults (audio-substrate P0). Like a music bed — it LOOPS to
48
- * fill the timeline — but the founder ruling is that ambience HOLDS under VO: it
49
- * sits at the BOTTOM of the mix (a further −5 dB below the music bed) and is
50
- * NEVER duck-stamped (no `duck` key — the absence IS the contract; the render's
51
- * duck pass only ever acts on music/vo roles). No beat map, no anchor semantics. */
52
- export const AMBIENCE_BED = {
53
- volumeDb: -26,
54
- fadeInMs: 500,
55
- fadeOutMs: 1200,
56
- };
57
- /** Dedicated audio track ids — separate tracks so the no-overlap invariant never
58
- * fights bed-vs-hit, and so eval can address each role's track. */
59
- export const SFX_TRACK_ID = "track-audio-sfx";
60
- export const MUSIC_TRACK_ID = "track-audio-music";
61
- export const AMBIENCE_TRACK_ID = "track-audio-ambience";
@@ -1,5 +0,0 @@
1
- export * from "./audioMix";
2
- export * from "./mixStaging";
3
- export * from "./pack";
4
- export * from "./musicPack";
5
- export * from "./palette";
@@ -1,195 +0,0 @@
1
- /**
2
- * ROLE_DEFAULT_GAIN_DB — engine default level per role (dB relative to source),
3
- * calibrated to the doctrine's ≥6 dB-VO-over-bed rule:
4
- *
5
- * vo 0 dB — the clarity reference; the mix anchors on speech.
6
- * sfx −6 dB — punctuation: audible under VO, never masks it.
7
- * music −16 dB WHEN VO is present anywhere in the composition — a ≥16 dB bed
8
- * keeps speech intelligible with peak headroom (the 1.5 dB
9
- * memoir mush becomes ≥16 dB of separation).
10
- * −8 dB WHEN no VO clip exists — a music-driven montage must not bury
11
- * its own bed, so it sits forward. (This conditional is the
12
- * load-bearing one.)
13
- * ambience −22 dB — bottom of the mix; HOLDS under VO (never ducks).
14
- */
15
- export const ROLE_DEFAULT_GAIN_DB = {
16
- vo: 0,
17
- sfx: -6,
18
- music: { withVo: -16, withoutVo: -8 },
19
- ambience: -22,
20
- };
21
- /** The clarity hierarchy, loudest-first. Lower index = should sit higher in the
22
- * mix. Used by the inversion advisory. */
23
- export const ROLE_HIERARCHY = ["vo", "sfx", "music", "ambience"];
24
- /** Resolve the engine default level (dB) for a role. `music` is conditional on
25
- * whether the composition contains any VO. */
26
- export function roleDefaultGainDb(role, voPresent) {
27
- switch (role) {
28
- case "vo":
29
- return ROLE_DEFAULT_GAIN_DB.vo;
30
- case "sfx":
31
- return ROLE_DEFAULT_GAIN_DB.sfx;
32
- case "music":
33
- return voPresent ? ROLE_DEFAULT_GAIN_DB.music.withVo : ROLE_DEFAULT_GAIN_DB.music.withoutVo;
34
- case "ambience":
35
- return ROLE_DEFAULT_GAIN_DB.ambience;
36
- }
37
- }
38
- /**
39
- * True when ANY clip in ANY enabled track declares `audioRole: 'vo'`. VO can be a
40
- * dedicated audio clip OR a talking-head video clip's own audio, so this scans
41
- * every track kind (not just audio) — the music-conditional default depends on it.
42
- */
43
- export function compositionHasVo(composition) {
44
- for (const track of composition.tracks) {
45
- if (track.enabled === false)
46
- continue;
47
- for (const c of track.contents) {
48
- if (!("source" in c))
49
- continue;
50
- const src = c.source;
51
- if (src.kind === "media" && src.audioRole === "vo")
52
- return true;
53
- }
54
- }
55
- return false;
56
- }
57
- /**
58
- * Effective level (dB relative to source) of a media clip source under the mix
59
- * policy: authored `volumeDb` wins; else authored linear `volume` converted to
60
- * dB (`20·log10`); else the role default. A role-less source has no policy level
61
- * (returns undefined — it stays at unity, out of the hierarchy comparison).
62
- */
63
- export function effectiveClipGainDb(source, voPresent) {
64
- if (source.volumeDb !== undefined)
65
- return source.volumeDb;
66
- if (source.volume !== undefined) {
67
- // volume 0 → −Infinity dB (silence); never a false "louder-than" in a compare.
68
- return source.volume <= 0 ? -Infinity : 20 * Math.log10(source.volume);
69
- }
70
- if (source.audioRole !== undefined)
71
- return roleDefaultGainDb(source.audioRole, voPresent);
72
- return undefined;
73
- }
74
- /**
75
- * Authored sfx transients (audio-substrate P0, Phase 4 — the AV-sync floor): every
76
- * clip whose source is a media clip tagged `audioRole: 'sfx'`, as {clipId, startMs}
77
- * where startMs is the clip's authored timeline position (`startTime`, seconds → ms).
78
- * Sorted earliest-first. These are the "expected transients" the delivered-mix onset
79
- * analysis matches against — an sfx hit that lands nowhere near a detected onset has
80
- * drifted. PURE (no I/O); the render policy (cap, fail/advisory) lives in the director.
81
- */
82
- export function sfxTransients(composition) {
83
- const out = [];
84
- for (const track of composition.tracks) {
85
- if (track.enabled === false)
86
- continue;
87
- for (const c of track.contents) {
88
- if (!("source" in c))
89
- continue;
90
- const src = c.source;
91
- if (src.kind === "media" && src.audioRole === "sfx") {
92
- out.push({ clipId: c.id, startMs: Math.round(c.startTime * 1000) });
93
- }
94
- }
95
- }
96
- return out.sort((a, b) => a.startMs - b.startMs);
97
- }
98
- /**
99
- * Detect a composition with NO deliberate audio at all — no audio-family
100
- * track content, no role-tagged media clip, and every video media clip muted
101
- * (or all silent stills/cards). "Silence is a level" only when someone CHOSE
102
- * it: a marker of kind "intentional-silence" suppresses the advisory.
103
- *
104
- * ADVISORY only — pushed onto the render `warnings[]` channel, never blocks.
105
- * Craft basis: video-craft-standards cross-cutting rule "audio is decided,
106
- * never defaulted" (three clean-agent trials shipped silent reels because
107
- * nothing asked the question — 2026-07-30).
108
- */
109
- export function detectNoAudioTrack(composition) {
110
- if ((composition.markers ?? []).some((m) => m.kind === "intentional-silence"))
111
- return [];
112
- for (const track of composition.tracks) {
113
- if (track.enabled === false)
114
- continue;
115
- for (const c of track.contents) {
116
- if (!("source" in c))
117
- continue;
118
- const src = c.source;
119
- if (src.kind !== "media")
120
- continue;
121
- // Any role-tagged clip (music/vo/sfx/ambience) counts as decided audio.
122
- if (src.audioRole !== undefined)
123
- return [];
124
- // An unmuted media clip on an audio track, or an unmuted video clip,
125
- // carries source audio into the mix.
126
- if (track.kind === "audio" && src.muted !== true)
127
- return [];
128
- if (track.kind === "video" && src.muted !== true)
129
- return [];
130
- }
131
- }
132
- return [
133
- "no_audio_track — the composition has no audio: no music/vo/sfx/ambience clip and " +
134
- "every media clip is muted. If silence is deliberate, add a marker " +
135
- '{kind:"intentional-silence"} to suppress this; otherwise add a bed or ambience ' +
136
- "(search_resources kind:sfx, audioRole:\"music\") before the final render.",
137
- ];
138
- }
139
- /**
140
- * Detect hierarchy inversions across the ROLES PRESENT in the composition and
141
- * return one advisory string per offending (higher-role, lower-role) pair. An
142
- * inversion is a lower-priority role's LOUDEST clip sitting above a
143
- * higher-priority role's QUIETEST clip (e.g. any music clip above any vo clip).
144
- *
145
- * ADVISORY only — the caller pushes these onto the render `warnings[]` channel;
146
- * they NEVER block a render. Because engine defaults are hierarchy-correct by
147
- * construction, only AUTHORED levels can trip this.
148
- */
149
- export function detectMixHierarchyInversion(composition) {
150
- const voPresent = compositionHasVo(composition);
151
- // Collect the effective level of every role-tagged media clip, grouped by role.
152
- const byRole = new Map();
153
- for (const track of composition.tracks) {
154
- if (track.enabled === false)
155
- continue;
156
- for (const c of track.contents) {
157
- if (!("source" in c))
158
- continue;
159
- const src = c.source;
160
- if (src.kind !== "media" || src.audioRole === undefined)
161
- continue;
162
- const effectiveDb = effectiveClipGainDb(src, voPresent);
163
- if (effectiveDb === undefined)
164
- continue;
165
- const list = byRole.get(src.audioRole) ?? [];
166
- list.push({ clipId: c.id, role: src.audioRole, effectiveDb });
167
- byRole.set(src.audioRole, list);
168
- }
169
- }
170
- const advisories = [];
171
- // Walk every ordered (higher, lower) role pair present. rank(higher) < rank(lower).
172
- for (let i = 0; i < ROLE_HIERARCHY.length; i++) {
173
- const higherRole = ROLE_HIERARCHY[i];
174
- const higherClips = byRole.get(higherRole);
175
- if (!higherClips || higherClips.length === 0)
176
- continue;
177
- // Quietest higher-role clip — the ceiling a lower role must stay below.
178
- const quietestHigher = higherClips.reduce((a, b) => (b.effectiveDb < a.effectiveDb ? b : a));
179
- for (let j = i + 1; j < ROLE_HIERARCHY.length; j++) {
180
- const lowerRole = ROLE_HIERARCHY[j];
181
- const lowerClips = byRole.get(lowerRole);
182
- if (!lowerClips || lowerClips.length === 0)
183
- continue;
184
- const loudestLower = lowerClips.reduce((a, b) => (b.effectiveDb > a.effectiveDb ? b : a));
185
- if (loudestLower.effectiveDb > quietestHigher.effectiveDb) {
186
- advisories.push(`mix_hierarchy_inverted: ${lowerRole} clip "${loudestLower.clipId}" ` +
187
- `(${loudestLower.effectiveDb.toFixed(1)} dB) sits above ${higherRole} clip ` +
188
- `"${quietestHigher.clipId}" (${quietestHigher.effectiveDb.toFixed(1)} dB) — ` +
189
- `${higherRole} should lead ${lowerRole} in the mix. Levels are advisory; ` +
190
- `set volumeDb on the clips to override.`);
191
- }
192
- }
193
- }
194
- return advisories;
195
- }
@@ -1,136 +0,0 @@
1
- export const MUSIC_PACK_VERSION = "v1";
2
- export const MUSIC_PACK_ENTRIES = [
3
- {
4
- "bedId": "awake-electronic",
5
- "genre": "electronic",
6
- "mood": [
7
- "energetic",
8
- "driving"
9
- ],
10
- "bpm": 89.1,
11
- "bpmMethod": "detected",
12
- "durationSec": 57.314,
13
- "description": "driving electronic bed, steady pulse — energetic underscore",
14
- "attribution": "driving electronic bed, steady pulse — energetic underscore — by cynicmusic (https://opengameart.org/content/awake-megawall-10) — License: Creative Commons 0",
15
- "sha256": "85d44a98775e51ed321c968116ddfb044dd6dd18cf13f971a34b1d541258b7de",
16
- "source": {
17
- "url": "https://opengameart.org/content/awake-megawall-10",
18
- "author": "cynicmusic",
19
- "license": "CC0"
20
- }
21
- },
22
- {
23
- "bedId": "bossa-nova",
24
- "genre": "jazz",
25
- "mood": [
26
- "playful",
27
- "jazzy"
28
- ],
29
- "bpm": 129.2,
30
- "bpmMethod": "detected",
31
- "durationSec": 59.611,
32
- "description": "jazzy bossa-nova bed, syncopated groove — light and cheerful",
33
- "attribution": "jazzy bossa-nova bed, syncopated groove — light and cheerful — by Joth (https://opengameart.org/content/bossa-nova) — License: Creative Commons 0",
34
- "sha256": "ca311e561e7bb4671579e8f6a765ab823dc7ad00b9c3c458812a879945bd1067",
35
- "source": {
36
- "url": "https://opengameart.org/content/bossa-nova",
37
- "author": "Joth",
38
- "license": "CC0"
39
- }
40
- },
41
- {
42
- "bedId": "cave-dark",
43
- "genre": "ambient",
44
- "mood": [
45
- "dark",
46
- "brooding"
47
- ],
48
- "bpm": 136,
49
- "bpmMethod": "detected",
50
- "durationSec": 280,
51
- "description": "dark brooding cave ambience — long, atmospheric bed",
52
- "attribution": "dark brooding cave ambience — long, atmospheric bed — by Brandon75689 (https://opengameart.org/content/cave-theme) — License: Creative Commons 0",
53
- "sha256": "90c9753d8765603ca00e4ed55a52ea5a3648ed03cd334006a5fa4d1e71adec79",
54
- "source": {
55
- "url": "https://opengameart.org/content/cave-theme",
56
- "author": "Brandon75689",
57
- "license": "CC0"
58
- }
59
- },
60
- {
61
- "bedId": "creepy-forest",
62
- "genre": "ambient",
63
- "mood": [
64
- "eerie",
65
- "tense"
66
- ],
67
- "bpm": 136,
68
- "bpmMethod": "detected",
69
- "durationSec": 216,
70
- "description": "eerie tense forest ambience — unsettling atmospheric bed",
71
- "attribution": "eerie tense forest ambience — unsettling atmospheric bed — by Augmentality (Brandon Morris) (https://opengameart.org/content/creepy-forest-f) — License: Creative Commons 0",
72
- "sha256": "15f970c6f659dbe2f4c0345e30211e13712ae0c90a6de81ea993c9a4f83dfb35",
73
- "source": {
74
- "url": "https://opengameart.org/content/creepy-forest-f",
75
- "author": "Augmentality (Brandon Morris)",
76
- "license": "CC0"
77
- }
78
- },
79
- {
80
- "bedId": "crystal-cave-calm",
81
- "genre": "ambient",
82
- "mood": [
83
- "calm",
84
- "mysterious"
85
- ],
86
- "bpm": 99.4,
87
- "bpmMethod": "detected",
88
- "durationSec": 49.563,
89
- "description": "calm crystalline ambient bed, gentle motion",
90
- "attribution": "calm crystalline ambient bed, gentle motion — by cynicmusic (https://opengameart.org/content/crystal-cave-song18) — License: Creative Commons 0",
91
- "sha256": "927a0a0c3e312ea079e13eb3d7e73889ef0174dc72399413e60f7967386659d4",
92
- "source": {
93
- "url": "https://opengameart.org/content/crystal-cave-song18",
94
- "author": "cynicmusic",
95
- "license": "CC0"
96
- }
97
- },
98
- {
99
- "bedId": "enchanted-tiki",
100
- "genre": "world",
101
- "mood": [
102
- "playful",
103
- "tropical"
104
- ],
105
- "bpm": 103.4,
106
- "bpmMethod": "detected",
107
- "durationSec": 117.398,
108
- "description": "playful tropical bed, marimba-led — light and warm",
109
- "attribution": "playful tropical bed, marimba-led — light and warm — by cynicmusic (https://opengameart.org/content/enchanted-tiki-86) — License: Creative Commons 0",
110
- "sha256": "df3da48e199494b83df63bbec6eea4b3e57131c1ab0183bd70fbc13539447c93",
111
- "source": {
112
- "url": "https://opengameart.org/content/enchanted-tiki-86",
113
- "author": "cynicmusic",
114
- "license": "CC0"
115
- }
116
- },
117
- {
118
- "bedId": "menu-bright",
119
- "genre": "electronic",
120
- "mood": [
121
- "bright",
122
- "upbeat"
123
- ],
124
- "bpm": 117.5,
125
- "bpmMethod": "detected",
126
- "durationSec": 47.722,
127
- "description": "bright upbeat electronic bed — clean, forward energy",
128
- "attribution": "bright upbeat electronic bed — clean, forward energy — by mrpoly (https://opengameart.org/content/menu-music) — License: Creative Commons 0",
129
- "sha256": "cb7cf40ea0c8a83e280adef0301843e3960427744306737f9a6ebe1760b2302a",
130
- "source": {
131
- "url": "https://opengameart.org/content/menu-music",
132
- "author": "mrpoly",
133
- "license": "CC0"
134
- }
135
- }
136
- ];
@@ -1,36 +0,0 @@
1
- /**
2
- * The CueFrame MUSIC-BED pack — a CLOSED, versioned catalog of CC0 music beds
3
- * (audio-substrate Phase 2). The music-tier twin of the SFX pack (pack.ts): a
4
- * Map built once from the generated entries; unknown ids fail loud; no runtime
5
- * search, no network.
6
- *
7
- * Bytes live at content-addressed shared R2 keys `packs/music/v1/{bedId}.mp3`
8
- * (cross-org shared-bytes model, one copy ever); each entry records sha256 +
9
- * full provenance (source URL, author, license). Entries are written by the
10
- * curation script (services/scripts/curate-music-pack.mjs), which normalizes
11
- * every bed to −16 LUFS integrated (ffmpeg loudnorm — the music loudness anchor,
12
- * NOT the sfx −6 dBFS peak rule) — hand-editing musicPack.generated.ts is a bug.
13
- *
14
- * LICENSE: CC0 ONLY — a hard constraint, not a preference (same as the SFX
15
- * pack). Beds embed into customers' videos that they redistribute and monetize
16
- * at scale through the API (multi-tenant sublicensing by machine); only CC0
17
- * survives that. The curation script audits each source's license PAGE and fails
18
- * loud on anything it cannot verify as CC0.
19
- */
20
- import { MUSIC_PACK_ENTRIES, MUSIC_PACK_VERSION } from "./musicPack.generated";
21
- const registry = new Map(MUSIC_PACK_ENTRIES.map((e) => [e.bedId, e]));
22
- export { MUSIC_PACK_VERSION, MUSIC_PACK_ENTRIES };
23
- /** R2 key for a music bed's shared bytes. */
24
- export function musicPackR2Key(bedId) {
25
- return `packs/music/${MUSIC_PACK_VERSION}/${bedId}.mp3`;
26
- }
27
- /** Look up a bed — FAIL LOUD on an unknown id (closed registry; a typo'd bedId
28
- * must never silently place silence). */
29
- export function getMusicPackEntry(bedId) {
30
- const e = registry.get(bedId);
31
- if (!e) {
32
- throw new Error(`music-pack: unknown bedId '${bedId}' (pack ${MUSIC_PACK_VERSION}, ${registry.size} beds). ` +
33
- `The catalog is closed — beds enter only via the curation script.`);
34
- }
35
- return e;
36
- }