@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,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
- }