@cueframe/kernel 0.0.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 (1119) hide show
  1. package/dist/TextureLoader-UQOFUSAP.js +422 -0
  2. package/dist/VideoTexture-AQWSPIJG.js +62 -0
  3. package/dist/_members/account-model/index.d.ts +1 -0
  4. package/dist/_members/account-model/index.js +4 -0
  5. package/dist/_members/account-model/testing/conversationStoreContract.d.ts +97 -0
  6. package/dist/_members/account-model/testing/conversationStoreContract.js +168 -0
  7. package/dist/_members/account-model/testing/index.d.ts +7 -0
  8. package/dist/_members/account-model/testing/index.js +7 -0
  9. package/dist/_members/account-model/testing/restorePointStoreContract.d.ts +52 -0
  10. package/dist/_members/account-model/testing/restorePointStoreContract.js +69 -0
  11. package/dist/_members/account-model/types/index.d.ts +5 -0
  12. package/dist/_members/account-model/types/index.js +1 -0
  13. package/dist/_members/account-model/validators/contextFile.d.ts +36 -0
  14. package/dist/_members/account-model/validators/contextFile.js +18 -0
  15. package/dist/_members/account-model/validators/conversation.d.ts +153 -0
  16. package/dist/_members/account-model/validators/conversation.js +95 -0
  17. package/dist/_members/account-model/validators/dashboardInsight.d.ts +30 -0
  18. package/dist/_members/account-model/validators/dashboardInsight.js +16 -0
  19. package/dist/_members/account-model/validators/index.d.ts +7 -0
  20. package/dist/_members/account-model/validators/index.js +7 -0
  21. package/dist/_members/account-model/validators/sessionToken.d.ts +79 -0
  22. package/dist/_members/account-model/validators/sessionToken.js +49 -0
  23. package/dist/_members/account-model/validators/uploadToken.d.ts +33 -0
  24. package/dist/_members/account-model/validators/uploadToken.js +16 -0
  25. package/dist/_members/account-model/validators/userSettings.d.ts +22 -0
  26. package/dist/_members/account-model/validators/userSettings.js +12 -0
  27. package/dist/_members/account-model/validators/workingComposition.d.ts +34 -0
  28. package/dist/_members/account-model/validators/workingComposition.js +20 -0
  29. package/dist/_members/animate/animations/Create.d.ts +36 -0
  30. package/dist/_members/animate/animations/FadeIn.d.ts +36 -0
  31. package/dist/_members/animate/animations/GrowArrow.d.ts +36 -0
  32. package/dist/_members/animate/animations/GrowFromCenter.d.ts +25 -0
  33. package/dist/_members/animate/animations/Indicate.d.ts +29 -0
  34. package/dist/_members/animate/animations/MoveAlongPath.d.ts +30 -0
  35. package/dist/_members/animate/animations/Transform.d.ts +46 -0
  36. package/dist/_members/animate/animations/Wiggle.d.ts +31 -0
  37. package/dist/_members/animate/animations/Write.d.ts +35 -0
  38. package/dist/_members/animate/animations/index.d.ts +9 -0
  39. package/dist/_members/animate/composition/AnimationGroup.d.ts +32 -0
  40. package/dist/_members/animate/composition/LaggedStart.d.ts +33 -0
  41. package/dist/_members/animate/composition/Succession.d.ts +27 -0
  42. package/dist/_members/animate/composition/index.d.ts +3 -0
  43. package/dist/_members/animate/easing/index.d.ts +3 -0
  44. package/dist/_members/animate/easing/rush.d.ts +16 -0
  45. package/dist/_members/animate/easing/smooth.d.ts +8 -0
  46. package/dist/_members/animate/easing/smootherstep.d.ts +7 -0
  47. package/dist/_members/animate/index.d.ts +25 -0
  48. package/dist/_members/animate/mobjects/Arrow.d.ts +41 -0
  49. package/dist/_members/animate/mobjects/BrandBox.d.ts +43 -0
  50. package/dist/_members/animate/mobjects/DiGraph.d.ts +21 -0
  51. package/dist/_members/animate/mobjects/Graph.d.ts +72 -0
  52. package/dist/_members/animate/mobjects/index.d.ts +4 -0
  53. package/dist/_members/animate/three/ThreeCanvas.d.ts +36 -0
  54. package/dist/_members/animate/three/drei.d.ts +13 -0
  55. package/dist/_members/animate/three/index.d.ts +2 -0
  56. package/dist/_members/authoring/agent/buildTools.d.ts +54 -0
  57. package/dist/_members/authoring/agent/contextManagement.d.ts +73 -0
  58. package/dist/_members/authoring/agent/errors.d.ts +12 -0
  59. package/dist/_members/authoring/agent/index.d.ts +2 -0
  60. package/dist/_members/authoring/agent/memoryTool.d.ts +8 -0
  61. package/dist/_members/authoring/agent/promptCache.d.ts +34 -0
  62. package/dist/_members/authoring/agent.d.ts +59 -0
  63. package/dist/_members/authoring/capabilities.d.ts +306 -0
  64. package/dist/_members/authoring/composer/index.d.ts +2 -0
  65. package/dist/_members/authoring/composer/scopes.d.ts +26 -0
  66. package/dist/_members/authoring/context/brand.d.ts +37 -0
  67. package/dist/_members/authoring/context/brandTokens.d.ts +6 -0
  68. package/dist/_members/authoring/context/index.d.ts +8 -0
  69. package/dist/_members/authoring/context/timeline.d.ts +33 -0
  70. package/dist/_members/authoring/context/transcript.d.ts +24 -0
  71. package/dist/_members/authoring/context/types.d.ts +5 -0
  72. package/dist/_members/authoring/decomposer.d.ts +17 -0
  73. package/dist/_members/authoring/evaluate.d.ts +37 -0
  74. package/dist/_members/authoring/evaluator.d.ts +22 -0
  75. package/dist/_members/authoring/index.d.ts +25 -0
  76. package/dist/_members/authoring/models/modelFactory.d.ts +107 -0
  77. package/dist/_members/authoring/motion/applyMotionPreset.d.ts +31 -0
  78. package/dist/_members/authoring/motion/index.d.ts +6 -0
  79. package/dist/_members/authoring/motion/materializeMotionPresetOps.d.ts +38 -0
  80. package/dist/_members/authoring/motion/shell.d.ts +30 -0
  81. package/dist/_members/authoring/pipelineTrace.d.ts +38 -0
  82. package/dist/_members/authoring/prompts/decomposerPrompt.d.ts +5 -0
  83. package/dist/_members/authoring/prompts/designReviewerPrompt.d.ts +18 -0
  84. package/dist/_members/authoring/prompts/evaluatorPrompt.d.ts +5 -0
  85. package/dist/_members/authoring/prompts/graphics.d.ts +14 -0
  86. package/dist/_members/authoring/prompts/index.d.ts +4 -0
  87. package/dist/_members/authoring/prompts/plannerPrompt.d.ts +48 -0
  88. package/dist/_members/authoring/providers/index.d.ts +1 -0
  89. package/dist/_members/authoring/providers/resourceApi.d.ts +32 -0
  90. package/dist/_members/authoring/resource-routing.d.ts +186 -0
  91. package/dist/_members/authoring/resources.d.ts +59 -0
  92. package/dist/_members/authoring/scope.d.ts +31 -0
  93. package/dist/_members/authoring/tools/brandTokens.d.ts +34 -0
  94. package/dist/_members/authoring/tools/composeRoleTools.d.ts +112 -0
  95. package/dist/_members/authoring/tools/index.d.ts +4 -0
  96. package/dist/_members/authoring/tools/toolSets.d.ts +54 -0
  97. package/dist/_members/authoring/transpileComponent.d.ts +40 -0
  98. package/dist/_members/authoring/transpileHelper.d.ts +26 -0
  99. package/dist/_members/authoring/types.d.ts +572 -0
  100. package/dist/_members/brand-derivation/constants.d.ts +27 -0
  101. package/dist/_members/brand-derivation/constants.js +20 -0
  102. package/dist/_members/brand-derivation/contrastSafe.d.ts +47 -0
  103. package/dist/_members/brand-derivation/contrastSafe.js +114 -0
  104. package/dist/_members/brand-derivation/index.d.ts +1 -0
  105. package/dist/_members/brand-derivation/index.js +1 -0
  106. package/dist/_members/compose/CompositionRenderer.d.ts +12 -0
  107. package/dist/_members/compose/catalog.d.ts +1 -0
  108. package/dist/_members/compose/index.d.ts +8 -0
  109. package/dist/_members/compose/primitiveRegistry.d.ts +90 -0
  110. package/dist/_members/compose/sceneToRenderInput.d.ts +51 -0
  111. package/dist/_members/compose/schema.d.ts +45 -0
  112. package/dist/_members/compose/tokenResolver.d.ts +28 -0
  113. package/dist/_members/composition/audio/audioMix.d.ts +67 -0
  114. package/dist/_members/composition/audio/audioMix.js +61 -0
  115. package/dist/_members/composition/audio/index.d.ts +5 -0
  116. package/dist/_members/composition/audio/index.js +5 -0
  117. package/dist/_members/composition/audio/mixStaging.d.ts +107 -0
  118. package/dist/_members/composition/audio/mixStaging.js +195 -0
  119. package/dist/_members/composition/audio/musicPack.d.ts +56 -0
  120. package/dist/_members/composition/audio/musicPack.generated.d.ts +9 -0
  121. package/dist/_members/composition/audio/musicPack.generated.js +136 -0
  122. package/dist/_members/composition/audio/musicPack.js +36 -0
  123. package/dist/_members/composition/audio/pack.d.ts +67 -0
  124. package/dist/_members/composition/audio/pack.generated.d.ts +9 -0
  125. package/dist/_members/composition/audio/pack.generated.js +603 -0
  126. package/dist/_members/composition/audio/pack.js +48 -0
  127. package/dist/_members/composition/audio/palette.d.ts +82 -0
  128. package/dist/_members/composition/audio/palette.js +134 -0
  129. package/dist/_members/composition/autozoom/index.d.ts +57 -0
  130. package/dist/_members/composition/autozoom/index.js +83 -0
  131. package/dist/_members/composition/brand-kit.d.ts +58 -0
  132. package/dist/_members/composition/brand-kit.js +45 -0
  133. package/dist/_members/composition/brief/contract.d.ts +132 -0
  134. package/dist/_members/composition/brief/contract.js +209 -0
  135. package/dist/_members/composition/color-grade.d.ts +17 -0
  136. package/dist/_members/composition/color-grade.js +80 -0
  137. package/dist/_members/composition/depth.d.ts +24 -0
  138. package/dist/_members/composition/depth.js +8 -0
  139. package/dist/_members/composition/fixtures/agentErrored.d.ts +25 -0
  140. package/dist/_members/composition/fixtures/index.d.ts +7 -0
  141. package/dist/_members/composition/fixtures/index.js +143 -0
  142. package/dist/_members/composition/fixtures/vaayaErrored.d.ts +25 -0
  143. package/dist/_members/composition/fixtures/vaayaErrored.js +203 -0
  144. package/dist/_members/composition/fonts.d.ts +68 -0
  145. package/dist/_members/composition/fonts.js +162 -0
  146. package/dist/_members/composition/graphics-plan/compile.d.ts +43 -0
  147. package/dist/_members/composition/graphics-plan/compile.js +221 -0
  148. package/dist/_members/composition/graphics-plan/index.d.ts +11 -0
  149. package/dist/_members/composition/graphics-plan/index.js +10 -0
  150. package/dist/_members/composition/graphics-plan/instantiateMotif.d.ts +51 -0
  151. package/dist/_members/composition/graphics-plan/instantiateMotif.js +44 -0
  152. package/dist/_members/composition/graphics-plan/motion.d.ts +19 -0
  153. package/dist/_members/composition/graphics-plan/motion.js +66 -0
  154. package/dist/_members/composition/graphics-plan/schemas.d.ts +1672 -0
  155. package/dist/_members/composition/graphics-plan/schemas.js +261 -0
  156. package/dist/_members/composition/graphics-plan/solve.d.ts +34 -0
  157. package/dist/_members/composition/graphics-plan/solve.js +145 -0
  158. package/dist/_members/composition/index.d.ts +7 -0
  159. package/dist/_members/composition/index.js +5 -0
  160. package/dist/_members/composition/invariants/clipPlacement.d.ts +65 -0
  161. package/dist/_members/composition/invariants/clipPlacement.js +69 -0
  162. package/dist/_members/composition/invariants/composition.d.ts +9 -0
  163. package/dist/_members/composition/invariants/composition.js +28 -0
  164. package/dist/_members/composition/invariants/errors.d.ts +11 -0
  165. package/dist/_members/composition/invariants/errors.js +10 -0
  166. package/dist/_members/composition/invariants/etag.d.ts +10 -0
  167. package/dist/_members/composition/invariants/etag.js +38 -0
  168. package/dist/_members/composition/invariants/ids.d.ts +9 -0
  169. package/dist/_members/composition/invariants/ids.js +33 -0
  170. package/dist/_members/composition/invariants/index.d.ts +9 -0
  171. package/dist/_members/composition/invariants/index.js +9 -0
  172. package/dist/_members/composition/invariants/keyframes.d.ts +23 -0
  173. package/dist/_members/composition/invariants/keyframes.js +45 -0
  174. package/dist/_members/composition/invariants/markers.d.ts +9 -0
  175. package/dist/_members/composition/invariants/markers.js +29 -0
  176. package/dist/_members/composition/invariants/time.d.ts +22 -0
  177. package/dist/_members/composition/invariants/time.js +20 -0
  178. package/dist/_members/composition/invariants/tracks.d.ts +58 -0
  179. package/dist/_members/composition/invariants/tracks.js +304 -0
  180. package/dist/_members/composition/ops/compositionOps.d.ts +129 -0
  181. package/dist/_members/composition/ops/compositionOps.js +1056 -0
  182. package/dist/_members/composition/ops/headlessStore.d.ts +40 -0
  183. package/dist/_members/composition/ops/headlessStore.js +94 -0
  184. package/dist/_members/composition/ops/index.d.ts +6 -0
  185. package/dist/_members/composition/ops/index.js +4 -0
  186. package/dist/_members/composition/ops/selectors.d.ts +81 -0
  187. package/dist/_members/composition/ops/selectors.js +118 -0
  188. package/dist/_members/composition/ops/timeline-word.d.ts +24 -0
  189. package/dist/_members/composition/ops/timeline-word.js +1 -0
  190. package/dist/_members/composition/ops/transcript.d.ts +44 -0
  191. package/dist/_members/composition/ops/transcript.js +77 -0
  192. package/dist/_members/composition/ops/types.d.ts +145 -0
  193. package/dist/_members/composition/ops/types.js +16 -0
  194. package/dist/_members/composition/primitive-catalog/catalogQuery.d.ts +82 -0
  195. package/dist/_members/composition/primitive-catalog/catalogQuery.js +150 -0
  196. package/dist/_members/composition/primitive-catalog/disabled.d.ts +3 -0
  197. package/dist/_members/composition/primitive-catalog/disabled.js +32 -0
  198. package/dist/_members/composition/primitive-catalog/generated/meta.d.ts +2 -0
  199. package/dist/_members/composition/primitive-catalog/generated/meta.js +15161 -0
  200. package/dist/_members/composition/primitive-catalog/index.d.ts +28 -0
  201. package/dist/_members/composition/primitive-catalog/index.js +46 -0
  202. package/dist/_members/composition/primitive-catalog/paramValidation.d.ts +76 -0
  203. package/dist/_members/composition/primitive-catalog/paramValidation.js +231 -0
  204. package/dist/_members/composition/primitive-catalog/projection.d.ts +99 -0
  205. package/dist/_members/composition/primitive-catalog/projection.js +164 -0
  206. package/dist/_members/composition/primitive-catalog/types.d.ts +123 -0
  207. package/dist/_members/composition/primitive-catalog/types.js +14 -0
  208. package/dist/_members/composition/projection/behind-placement.d.ts +64 -0
  209. package/dist/_members/composition/projection/behind-placement.js +62 -0
  210. package/dist/_members/composition/projection/brandKit.d.ts +308 -0
  211. package/dist/_members/composition/projection/brandKit.js +482 -0
  212. package/dist/_members/composition/projection/cardTokens.d.ts +70 -0
  213. package/dist/_members/composition/projection/cardTokens.js +209 -0
  214. package/dist/_members/composition/projection/composition-floor.d.ts +349 -0
  215. package/dist/_members/composition/projection/composition-floor.js +582 -0
  216. package/dist/_members/composition/projection/cropProjection.d.ts +140 -0
  217. package/dist/_members/composition/projection/cropProjection.js +257 -0
  218. package/dist/_members/composition/projection/index.d.ts +7 -0
  219. package/dist/_members/composition/projection/index.js +7 -0
  220. package/dist/_members/composition/projection/occlusion-budget.d.ts +67 -0
  221. package/dist/_members/composition/projection/occlusion-budget.js +104 -0
  222. package/dist/_members/composition/projection/safe-zones.d.ts +38 -0
  223. package/dist/_members/composition/projection/safe-zones.js +99 -0
  224. package/dist/_members/composition/reframe/aspectLoss.d.ts +49 -0
  225. package/dist/_members/composition/reframe/aspectLoss.js +115 -0
  226. package/dist/_members/composition/reframe/coverage.d.ts +48 -0
  227. package/dist/_members/composition/reframe/coverage.js +62 -0
  228. package/dist/_members/composition/reframe/derive.d.ts +37 -0
  229. package/dist/_members/composition/reframe/derive.js +73 -0
  230. package/dist/_members/composition/reframe/index.d.ts +658 -0
  231. package/dist/_members/composition/reframe/index.js +109 -0
  232. package/dist/_members/composition/reframe/kenBurns.d.ts +43 -0
  233. package/dist/_members/composition/reframe/kenBurns.js +64 -0
  234. package/dist/_members/composition/reframe/shotScale.d.ts +118 -0
  235. package/dist/_members/composition/reframe/shotScale.js +176 -0
  236. package/dist/_members/composition/reframe/trajectory.d.ts +99 -0
  237. package/dist/_members/composition/reframe/trajectory.js +124 -0
  238. package/dist/_members/composition/timeline/compound.d.ts +36 -0
  239. package/dist/_members/composition/timeline/compound.js +134 -0
  240. package/dist/_members/composition/timeline/index.d.ts +9 -0
  241. package/dist/_members/composition/timeline/index.js +9 -0
  242. package/dist/_members/composition/timeline/intent.d.ts +54 -0
  243. package/dist/_members/composition/timeline/intent.js +228 -0
  244. package/dist/_members/composition/timeline/keyframes.d.ts +50 -0
  245. package/dist/_members/composition/timeline/keyframes.js +121 -0
  246. package/dist/_members/composition/timeline/link.d.ts +36 -0
  247. package/dist/_members/composition/timeline/link.js +59 -0
  248. package/dist/_members/composition/timeline/occupancy.d.ts +72 -0
  249. package/dist/_members/composition/timeline/occupancy.js +36 -0
  250. package/dist/_members/composition/timeline/placement.d.ts +86 -0
  251. package/dist/_members/composition/timeline/placement.js +74 -0
  252. package/dist/_members/composition/timeline/plan.d.ts +109 -0
  253. package/dist/_members/composition/timeline/plan.js +31 -0
  254. package/dist/_members/composition/timeline/resolve.d.ts +55 -0
  255. package/dist/_members/composition/timeline/resolve.js +170 -0
  256. package/dist/_members/composition/timeline/trims.d.ts +54 -0
  257. package/dist/_members/composition/timeline/trims.js +278 -0
  258. package/dist/_members/composition/types/index.d.ts +8 -0
  259. package/dist/_members/composition/types/index.js +1 -0
  260. package/dist/_members/composition/validators/brandKit.d.ts +1472 -0
  261. package/dist/_members/composition/validators/brandKit.js +295 -0
  262. package/dist/_members/composition/validators/composePlan.d.ts +960 -0
  263. package/dist/_members/composition/validators/composePlan.js +113 -0
  264. package/dist/_members/composition/validators/composition.d.ts +6881 -0
  265. package/dist/_members/composition/validators/composition.js +703 -0
  266. package/dist/_members/composition/validators/font.d.ts +114 -0
  267. package/dist/_members/composition/validators/font.js +34 -0
  268. package/dist/_members/composition/validators/graphicKinds.d.ts +32 -0
  269. package/dist/_members/composition/validators/graphicKinds.js +30 -0
  270. package/dist/_members/composition/validators/index.d.ts +9 -0
  271. package/dist/_members/composition/validators/index.js +9 -0
  272. package/dist/_members/composition/validators/project.d.ts +62 -0
  273. package/dist/_members/composition/validators/project.js +29 -0
  274. package/dist/_members/composition/validators/registry.d.ts +161 -0
  275. package/dist/_members/composition/validators/registry.js +41 -0
  276. package/dist/_members/composition/validators/render.d.ts +8274 -0
  277. package/dist/_members/composition/validators/render.js +139 -0
  278. package/dist/_members/composition/validators/session.d.ts +117 -0
  279. package/dist/_members/composition/validators/session.js +37 -0
  280. package/dist/_members/composition/validators/webhook.d.ts +83 -0
  281. package/dist/_members/composition/validators/webhook.js +72 -0
  282. package/dist/_members/composition-ops/alphaLayers.d.ts +70 -0
  283. package/dist/_members/composition-ops/alphaLayers.js +141 -0
  284. package/dist/_members/composition-ops/index.d.ts +4940 -0
  285. package/dist/_members/composition-ops/index.js +637 -0
  286. package/dist/_members/composition-ops/materializeGrid.d.ts +56 -0
  287. package/dist/_members/composition-ops/materializeGrid.js +99 -0
  288. package/dist/_members/composition-ops/opRecorder.d.ts +77 -0
  289. package/dist/_members/composition-ops/opRecorder.js +196 -0
  290. package/dist/_members/composition-ops/recordingStore.d.ts +23 -0
  291. package/dist/_members/composition-ops/recordingStore.js +14 -0
  292. package/dist/_members/composition-ops/replaceRegion.d.ts +65 -0
  293. package/dist/_members/composition-ops/replaceRegion.js +102 -0
  294. package/dist/_members/composition-ops/testFixtures.d.ts +19 -0
  295. package/dist/_members/composition-ops/testFixtures.js +19 -0
  296. package/dist/_members/core/index.d.ts +3 -0
  297. package/dist/_members/core/index.js +5 -0
  298. package/dist/_members/core/render/bookends.d.ts +62 -0
  299. package/dist/_members/core/render/bookends.js +53 -0
  300. package/dist/_members/core/render/captions.d.ts +65 -0
  301. package/dist/_members/core/render/captions.js +127 -0
  302. package/dist/_members/core/render/compositionRender.d.ts +190 -0
  303. package/dist/_members/core/render/compositionRender.js +1249 -0
  304. package/dist/_members/core/render/deriveTrajectory.d.ts +188 -0
  305. package/dist/_members/core/render/deriveTrajectory.js +889 -0
  306. package/dist/_members/core/render/emphasis.d.ts +13 -0
  307. package/dist/_members/core/render/emphasis.js +16 -0
  308. package/dist/_members/core/render/eval/cropBox.d.ts +88 -0
  309. package/dist/_members/core/render/eval/cropBox.js +139 -0
  310. package/dist/_members/core/render/eval/inclusion.d.ts +50 -0
  311. package/dist/_members/core/render/eval/inclusion.js +96 -0
  312. package/dist/_members/core/render/eval/index.d.ts +93 -0
  313. package/dist/_members/core/render/eval/index.js +146 -0
  314. package/dist/_members/core/render/eval/metrics.d.ts +50 -0
  315. package/dist/_members/core/render/eval/metrics.js +94 -0
  316. package/dist/_members/core/render/exportSettings.d.ts +40 -0
  317. package/dist/_members/core/render/exportSettings.js +65 -0
  318. package/dist/_members/core/render/index.d.ts +14 -0
  319. package/dist/_members/core/render/index.js +20 -0
  320. package/dist/_members/core/render/mapFaceToPerson.d.ts +39 -0
  321. package/dist/_members/core/render/mapFaceToPerson.js +73 -0
  322. package/dist/_members/core/render/types.d.ts +304 -0
  323. package/dist/_members/core/render/types.js +8 -0
  324. package/dist/_members/core/render/vcam/cameraPath.d.ts +51 -0
  325. package/dist/_members/core/render/vcam/cameraPath.js +248 -0
  326. package/dist/_members/core/render/vcam/constants.d.ts +113 -0
  327. package/dist/_members/core/render/vcam/constants.js +115 -0
  328. package/dist/_members/core/render/vcam/errorCodes.d.ts +30 -0
  329. package/dist/_members/core/render/vcam/errorCodes.js +39 -0
  330. package/dist/_members/core/render/vcam/framing.d.ts +90 -0
  331. package/dist/_members/core/render/vcam/framing.js +136 -0
  332. package/dist/_members/core/render/vcam/requiredRegion.d.ts +85 -0
  333. package/dist/_members/core/render/vcam/requiredRegion.js +137 -0
  334. package/dist/_members/core/render/vcam/shots.d.ts +45 -0
  335. package/dist/_members/core/render/vcam/shots.js +53 -0
  336. package/dist/_members/core/render/vcam/subjectSet.d.ts +106 -0
  337. package/dist/_members/core/render/vcam/subjectSet.js +388 -0
  338. package/dist/_members/core/select/errorCodes.d.ts +27 -0
  339. package/dist/_members/core/select/errorCodes.js +38 -0
  340. package/dist/_members/core/select/index.d.ts +27 -0
  341. package/dist/_members/core/select/index.js +26 -0
  342. package/dist/_members/core/select/model.d.ts +178 -0
  343. package/dist/_members/core/select/model.js +18 -0
  344. package/dist/_members/core/select/select.d.ts +63 -0
  345. package/dist/_members/core/select/select.js +244 -0
  346. package/dist/_members/core/select/stabilize.d.ts +145 -0
  347. package/dist/_members/core/select/stabilize.js +242 -0
  348. package/dist/_members/core/types.d.ts +84 -0
  349. package/dist/_members/core/types.js +7 -0
  350. package/dist/_members/errors/index.d.ts +1 -0
  351. package/dist/_members/errors/index.js +1 -0
  352. package/dist/_members/errors/registry.d.ts +708 -0
  353. package/dist/_members/errors/registry.js +560 -0
  354. package/dist/_members/foundation/codes/index.d.ts +31 -0
  355. package/dist/_members/foundation/codes/index.js +31 -0
  356. package/dist/_members/foundation/index.d.ts +2 -0
  357. package/dist/_members/foundation/index.js +2 -0
  358. package/dist/_members/foundation/primitives/index.d.ts +9 -0
  359. package/dist/_members/foundation/primitives/index.js +5 -0
  360. package/dist/_members/mcp/adapter.d.ts +138 -0
  361. package/dist/_members/mcp/adapter.js +771 -0
  362. package/dist/_members/mcp/burnedNames.d.ts +23 -0
  363. package/dist/_members/mcp/burnedNames.js +73 -0
  364. package/dist/_members/mcp/core.d.ts +158 -0
  365. package/dist/_members/mcp/core.js +390 -0
  366. package/dist/_members/mcp/curation.d.ts +155 -0
  367. package/dist/_members/mcp/curation.js +792 -0
  368. package/dist/_members/mcp/executor.d.ts +60 -0
  369. package/dist/_members/mcp/executor.js +142 -0
  370. package/dist/_members/mcp/format.d.ts +7 -0
  371. package/dist/_members/mcp/format.js +9 -0
  372. package/dist/_members/mcp/generated/catalogPreviews.d.ts +2 -0
  373. package/dist/_members/mcp/generated/catalogPreviews.js +95 -0
  374. package/dist/_members/mcp/generated/harness.d.ts +1 -0
  375. package/dist/_members/mcp/generated/harness.js +81 -0
  376. package/dist/_members/mcp/generated/operations.d.ts +41 -0
  377. package/dist/_members/mcp/generated/operations.js +131 -0
  378. package/dist/_members/mcp/index.d.ts +3 -0
  379. package/dist/_members/mcp/index.js +50 -0
  380. package/dist/_members/mcp/internalLoopTools.d.ts +25 -0
  381. package/dist/_members/mcp/internalLoopTools.js +109 -0
  382. package/dist/_members/mcp/prompts.d.ts +22 -0
  383. package/dist/_members/mcp/prompts.js +45 -0
  384. package/dist/_members/mcp/resources.d.ts +16 -0
  385. package/dist/_members/mcp/resources.js +166 -0
  386. package/dist/_members/mcp/server.d.ts +92 -0
  387. package/dist/_members/mcp/server.js +340 -0
  388. package/dist/_members/mcp/wait.d.ts +37 -0
  389. package/dist/_members/mcp/wait.js +378 -0
  390. package/dist/_members/mcp/x402Meta.d.ts +50 -0
  391. package/dist/_members/mcp/x402Meta.js +66 -0
  392. package/dist/_members/media-model/api.d.ts +877 -0
  393. package/dist/_members/media-model/api.js +175 -0
  394. package/dist/_members/media-model/index.d.ts +1 -0
  395. package/dist/_members/media-model/index.js +1 -0
  396. package/dist/_members/media-model/media-kind.d.ts +36 -0
  397. package/dist/_members/media-model/media-kind.js +116 -0
  398. package/dist/_members/media-model/testing/index.d.ts +2 -0
  399. package/dist/_members/media-model/testing/index.js +1 -0
  400. package/dist/_members/media-model/testing/mediaStoreContract.d.ts +17 -0
  401. package/dist/_members/media-model/testing/mediaStoreContract.js +82 -0
  402. package/dist/_members/media-model/transcriptSearch.d.ts +54 -0
  403. package/dist/_members/media-model/transcriptSearch.js +70 -0
  404. package/dist/_members/media-model/transcriptSearchCases.json +79 -0
  405. package/dist/_members/nle-export/compact-timeline.d.ts +2 -0
  406. package/dist/_members/nle-export/compact-timeline.js +73 -0
  407. package/dist/_members/nle-export/compact-timeline.js.map +1 -0
  408. package/dist/_members/nle-export/composition-to-input.d.ts +2 -0
  409. package/dist/_members/nle-export/composition-to-input.js +147 -0
  410. package/dist/_members/nle-export/composition-to-input.js.map +1 -0
  411. package/dist/_members/nle-export/fcpxml.d.ts +15 -0
  412. package/dist/_members/nle-export/fcpxml.js +159 -0
  413. package/dist/_members/nle-export/fcpxml.js.map +1 -0
  414. package/dist/_members/nle-export/index.d.ts +11 -0
  415. package/dist/_members/nle-export/index.js +12 -0
  416. package/dist/_members/nle-export/index.js.map +1 -0
  417. package/dist/_members/nle-export/premiere.d.ts +2 -0
  418. package/dist/_members/nle-export/premiere.js +161 -0
  419. package/dist/_members/nle-export/premiere.js.map +1 -0
  420. package/dist/_members/nle-export/server/index.d.ts +1 -0
  421. package/dist/_members/nle-export/server/index.js +2 -0
  422. package/dist/_members/nle-export/server/index.js.map +1 -0
  423. package/dist/_members/nle-export/server/pack-zip.d.ts +6 -0
  424. package/dist/_members/nle-export/server/pack-zip.js +38 -0
  425. package/dist/_members/nle-export/server/pack-zip.js.map +1 -0
  426. package/dist/_members/nle-export/srt.d.ts +2 -0
  427. package/dist/_members/nle-export/srt.js +50 -0
  428. package/dist/_members/nle-export/srt.js.map +1 -0
  429. package/dist/_members/nle-export/types.d.ts +183 -0
  430. package/dist/_members/nle-export/types.js +9 -0
  431. package/dist/_members/nle-export/types.js.map +1 -0
  432. package/dist/_members/nle-export/xml/index.d.ts +10 -0
  433. package/dist/_members/nle-export/xml/index.js +11 -0
  434. package/dist/_members/nle-export/xml/index.js.map +1 -0
  435. package/dist/_members/nle-export/xml-utils.d.ts +21 -0
  436. package/dist/_members/nle-export/xml-utils.js +48 -0
  437. package/dist/_members/nle-export/xml-utils.js.map +1 -0
  438. package/dist/_members/perception/activeSpeaker.d.ts +108 -0
  439. package/dist/_members/perception/activeSpeaker.js +103 -0
  440. package/dist/_members/perception/audioQuality.d.ts +78 -0
  441. package/dist/_members/perception/audioQuality.js +76 -0
  442. package/dist/_members/perception/energyBeat.d.ts +95 -0
  443. package/dist/_members/perception/energyBeat.js +99 -0
  444. package/dist/_members/perception/identityMatch.d.ts +80 -0
  445. package/dist/_members/perception/identityMatch.js +91 -0
  446. package/dist/_members/perception/index.d.ts +90 -0
  447. package/dist/_members/perception/index.js +48 -0
  448. package/dist/_members/perception/visualQuality.d.ts +86 -0
  449. package/dist/_members/perception/visualQuality.js +95 -0
  450. package/dist/_members/plane/conformance.d.ts +75 -0
  451. package/dist/_members/plane/conformance.js +90 -0
  452. package/dist/_members/plane/contract.d.ts +55 -0
  453. package/dist/_members/plane/contract.js +49 -0
  454. package/dist/_members/plane/index.d.ts +16 -0
  455. package/dist/_members/plane/index.js +16 -0
  456. package/dist/_members/primitives/backgrounds/animated-bar-chart/config.d.ts +42 -0
  457. package/dist/_members/primitives/backgrounds/animated-bar-chart/index.d.ts +28 -0
  458. package/dist/_members/primitives/backgrounds/animated-line-chart/config.d.ts +42 -0
  459. package/dist/_members/primitives/backgrounds/animated-line-chart/index.d.ts +29 -0
  460. package/dist/_members/primitives/backgrounds/dither-gradient-bg/config.d.ts +30 -0
  461. package/dist/_members/primitives/backgrounds/dither-gradient-bg/index.d.ts +25 -0
  462. package/dist/_members/primitives/backgrounds/dynamic-grid/config.d.ts +24 -0
  463. package/dist/_members/primitives/backgrounds/dynamic-grid/index.d.ts +17 -0
  464. package/dist/_members/primitives/backgrounds/ecosystem-constellation/config.d.ts +21 -0
  465. package/dist/_members/primitives/backgrounds/ecosystem-constellation/index.d.ts +16 -0
  466. package/dist/_members/primitives/backgrounds/index.d.ts +13 -0
  467. package/dist/_members/primitives/backgrounds/index.js +32 -0
  468. package/dist/_members/primitives/backgrounds/index.js.map +1 -0
  469. package/dist/_members/primitives/backgrounds/infinite-marquee/config.d.ts +36 -0
  470. package/dist/_members/primitives/backgrounds/infinite-marquee/index.d.ts +21 -0
  471. package/dist/_members/primitives/backgrounds/mesh-gradient-bg/config.d.ts +21 -0
  472. package/dist/_members/primitives/backgrounds/mesh-gradient-bg/index.d.ts +16 -0
  473. package/dist/_members/primitives/backgrounds/perspective-marquee/config.d.ts +42 -0
  474. package/dist/_members/primitives/backgrounds/perspective-marquee/index.d.ts +23 -0
  475. package/dist/_members/primitives/backgrounds/silk-flow-bg/config.d.ts +36 -0
  476. package/dist/_members/primitives/backgrounds/silk-flow-bg/index.d.ts +30 -0
  477. package/dist/_members/primitives/backgrounds/vector-field/config.d.ts +30 -0
  478. package/dist/_members/primitives/backgrounds/vector-field/index.d.ts +25 -0
  479. package/dist/_members/primitives/backgrounds/volumetric-rays/config.d.ts +33 -0
  480. package/dist/_members/primitives/backgrounds/volumetric-rays/index.d.ts +30 -0
  481. package/dist/_members/primitives/captions/Captions.d.ts +33 -0
  482. package/dist/_members/primitives/captions/index.d.ts +17 -0
  483. package/dist/_members/primitives/captions/index.js +398 -0
  484. package/dist/_members/primitives/captions/index.js.map +1 -0
  485. package/dist/_members/primitives/captions/paginate.d.ts +31 -0
  486. package/dist/_members/primitives/captions/placement.d.ts +35 -0
  487. package/dist/_members/primitives/chunk-2LVE4UIT.js +139 -0
  488. package/dist/_members/primitives/chunk-2LVE4UIT.js.map +1 -0
  489. package/dist/_members/primitives/chunk-3IQUH6KK.js +20 -0
  490. package/dist/_members/primitives/chunk-3IQUH6KK.js.map +1 -0
  491. package/dist/_members/primitives/chunk-3OMURV6Q.js +112 -0
  492. package/dist/_members/primitives/chunk-3OMURV6Q.js.map +1 -0
  493. package/dist/_members/primitives/chunk-4IS6TMEG.js +21 -0
  494. package/dist/_members/primitives/chunk-4IS6TMEG.js.map +1 -0
  495. package/dist/_members/primitives/chunk-5MWGAEGQ.js +1644 -0
  496. package/dist/_members/primitives/chunk-5MWGAEGQ.js.map +1 -0
  497. package/dist/_members/primitives/chunk-7RRPFPQK.js +15 -0
  498. package/dist/_members/primitives/chunk-7RRPFPQK.js.map +1 -0
  499. package/dist/_members/primitives/chunk-DH5TRZK2.js +125 -0
  500. package/dist/_members/primitives/chunk-DH5TRZK2.js.map +1 -0
  501. package/dist/_members/primitives/chunk-E3KNUSFG.js +2337 -0
  502. package/dist/_members/primitives/chunk-E3KNUSFG.js.map +1 -0
  503. package/dist/_members/primitives/chunk-G2B3G4HK.js +47 -0
  504. package/dist/_members/primitives/chunk-G2B3G4HK.js.map +1 -0
  505. package/dist/_members/primitives/chunk-HFPFGZXT.js +1494 -0
  506. package/dist/_members/primitives/chunk-HFPFGZXT.js.map +1 -0
  507. package/dist/_members/primitives/chunk-HIWVFZVH.js +19 -0
  508. package/dist/_members/primitives/chunk-HIWVFZVH.js.map +1 -0
  509. package/dist/_members/primitives/chunk-IDAL6G3Y.js +134 -0
  510. package/dist/_members/primitives/chunk-IDAL6G3Y.js.map +1 -0
  511. package/dist/_members/primitives/chunk-KNC6JP5F.js +34 -0
  512. package/dist/_members/primitives/chunk-KNC6JP5F.js.map +1 -0
  513. package/dist/_members/primitives/chunk-KYRDVZST.js +459 -0
  514. package/dist/_members/primitives/chunk-KYRDVZST.js.map +1 -0
  515. package/dist/_members/primitives/chunk-LWLHS2NS.js +3410 -0
  516. package/dist/_members/primitives/chunk-LWLHS2NS.js.map +1 -0
  517. package/dist/_members/primitives/chunk-QAQ3P7DR.js +8855 -0
  518. package/dist/_members/primitives/chunk-QAQ3P7DR.js.map +1 -0
  519. package/dist/_members/primitives/chunk-ROV2ODWC.js +81 -0
  520. package/dist/_members/primitives/chunk-ROV2ODWC.js.map +1 -0
  521. package/dist/_members/primitives/chunk-TCRC2FH3.js +183 -0
  522. package/dist/_members/primitives/chunk-TCRC2FH3.js.map +1 -0
  523. package/dist/_members/primitives/chunk-US4YEDAA.js +96 -0
  524. package/dist/_members/primitives/chunk-US4YEDAA.js.map +1 -0
  525. package/dist/_members/primitives/chunk-UVKRO5ER.js +13 -0
  526. package/dist/_members/primitives/chunk-UVKRO5ER.js.map +1 -0
  527. package/dist/_members/primitives/chunk-W4EIIF2I.js +10 -0
  528. package/dist/_members/primitives/chunk-W4EIIF2I.js.map +1 -0
  529. package/dist/_members/primitives/chunk-WPGKIPCO.js +3563 -0
  530. package/dist/_members/primitives/chunk-WPGKIPCO.js.map +1 -0
  531. package/dist/_members/primitives/chunk-WZFLEGMD.js +1435 -0
  532. package/dist/_members/primitives/chunk-WZFLEGMD.js.map +1 -0
  533. package/dist/_members/primitives/chunk-XHU3WBEI.js +33 -0
  534. package/dist/_members/primitives/chunk-XHU3WBEI.js.map +1 -0
  535. package/dist/_members/primitives/chunk-YN7WTZZ7.js +46 -0
  536. package/dist/_members/primitives/chunk-YN7WTZZ7.js.map +1 -0
  537. package/dist/_members/primitives/effects/blur/config.d.ts +24 -0
  538. package/dist/_members/primitives/effects/blur/index.d.ts +29 -0
  539. package/dist/_members/primitives/effects/color-grade/config.d.ts +30 -0
  540. package/dist/_members/primitives/effects/color-grade/index.d.ts +35 -0
  541. package/dist/_members/primitives/effects/grain/config.d.ts +21 -0
  542. package/dist/_members/primitives/effects/grain/index.d.ts +21 -0
  543. package/dist/_members/primitives/effects/index.d.ts +12 -0
  544. package/dist/_members/primitives/effects/index.js +30 -0
  545. package/dist/_members/primitives/effects/index.js.map +1 -0
  546. package/dist/_members/primitives/effects/parallax/config.d.ts +21 -0
  547. package/dist/_members/primitives/effects/parallax/index.d.ts +25 -0
  548. package/dist/_members/primitives/effects/particles/config.d.ts +33 -0
  549. package/dist/_members/primitives/effects/particles/index.d.ts +31 -0
  550. package/dist/_members/primitives/effects/pulsing-indicator/config.d.ts +24 -0
  551. package/dist/_members/primitives/effects/pulsing-indicator/index.d.ts +19 -0
  552. package/dist/_members/primitives/effects/spotlight-card/config.d.ts +42 -0
  553. package/dist/_members/primitives/effects/spotlight-card/index.d.ts +25 -0
  554. package/dist/_members/primitives/effects/spring-pop-in/config.d.ts +27 -0
  555. package/dist/_members/primitives/effects/spring-pop-in/index.d.ts +22 -0
  556. package/dist/_members/primitives/effects/success-confetti/config.d.ts +42 -0
  557. package/dist/_members/primitives/effects/success-confetti/index.d.ts +23 -0
  558. package/dist/_members/primitives/effects/vignette/config.d.ts +21 -0
  559. package/dist/_members/primitives/effects/vignette/index.d.ts +23 -0
  560. package/dist/_members/primitives/hero-text/HeroText.d.ts +29 -0
  561. package/dist/_members/primitives/hero-text/config.d.ts +46 -0
  562. package/dist/_members/primitives/hero-text/index.d.ts +18 -0
  563. package/dist/_members/primitives/hero-text/index.js +14 -0
  564. package/dist/_members/primitives/hero-text/index.js.map +1 -0
  565. package/dist/_members/primitives/index.d.ts +21 -0
  566. package/dist/_members/primitives/index.js +64 -0
  567. package/dist/_members/primitives/index.js.map +1 -0
  568. package/dist/_members/primitives/layouts/chat-to-preview-layout/config.d.ts +21 -0
  569. package/dist/_members/primitives/layouts/chat-to-preview-layout/index.d.ts +19 -0
  570. package/dist/_members/primitives/layouts/index.d.ts +9 -0
  571. package/dist/_members/primitives/layouts/index.js +24 -0
  572. package/dist/_members/primitives/layouts/index.js.map +1 -0
  573. package/dist/_members/primitives/layouts/infinite-bento-pan/config.d.ts +18 -0
  574. package/dist/_members/primitives/layouts/infinite-bento-pan/index.d.ts +15 -0
  575. package/dist/_members/primitives/layouts/letterbox/config.d.ts +18 -0
  576. package/dist/_members/primitives/layouts/letterbox/index.d.ts +23 -0
  577. package/dist/_members/primitives/layouts/photo-grid/config.d.ts +21 -0
  578. package/dist/_members/primitives/layouts/photo-grid/index.d.ts +25 -0
  579. package/dist/_members/primitives/layouts/picture-in-picture/config.d.ts +21 -0
  580. package/dist/_members/primitives/layouts/picture-in-picture/index.d.ts +32 -0
  581. package/dist/_members/primitives/layouts/split-screen/config.d.ts +15 -0
  582. package/dist/_members/primitives/layouts/split-screen/index.d.ts +22 -0
  583. package/dist/_members/primitives/layouts/staggered-bento-grid/config.d.ts +66 -0
  584. package/dist/_members/primitives/layouts/staggered-bento-grid/index.d.ts +24 -0
  585. package/dist/_members/primitives/lib/easings.d.ts +47 -0
  586. package/dist/_members/primitives/lib/easings.js +26 -0
  587. package/dist/_members/primitives/lib/easings.js.map +1 -0
  588. package/dist/_members/primitives/lib/index.d.ts +8 -0
  589. package/dist/_members/primitives/lib/index.js +74 -0
  590. package/dist/_members/primitives/lib/index.js.map +1 -0
  591. package/dist/_members/primitives/lib/palette.d.ts +55 -0
  592. package/dist/_members/primitives/lib/palette.js +72 -0
  593. package/dist/_members/primitives/lib/palette.js.map +1 -0
  594. package/dist/_members/primitives/lib/preview.d.ts +36 -0
  595. package/dist/_members/primitives/lib/preview.js +8 -0
  596. package/dist/_members/primitives/lib/preview.js.map +1 -0
  597. package/dist/_members/primitives/lib/schema.d.ts +53 -0
  598. package/dist/_members/primitives/lib/schema.js +12 -0
  599. package/dist/_members/primitives/lib/schema.js.map +1 -0
  600. package/dist/_members/primitives/lib/seeded-random.d.ts +33 -0
  601. package/dist/_members/primitives/lib/seeded-random.js +14 -0
  602. package/dist/_members/primitives/lib/seeded-random.js.map +1 -0
  603. package/dist/_members/primitives/lib/text/contrast.d.ts +27 -0
  604. package/dist/_members/primitives/lib/text/contrast.js +12 -0
  605. package/dist/_members/primitives/lib/text/contrast.js.map +1 -0
  606. package/dist/_members/primitives/lib/text/fill.d.ts +8 -0
  607. package/dist/_members/primitives/lib/text/fill.js +8 -0
  608. package/dist/_members/primitives/lib/text/fill.js.map +1 -0
  609. package/dist/_members/primitives/lib/text/fitText.d.ts +62 -0
  610. package/dist/_members/primitives/lib/text/fitText.js +10 -0
  611. package/dist/_members/primitives/lib/text/fitText.js.map +1 -0
  612. package/dist/_members/primitives/lib/text/marker.d.ts +15 -0
  613. package/dist/_members/primitives/lib/text/marker.js +8 -0
  614. package/dist/_members/primitives/lib/text/marker.js.map +1 -0
  615. package/dist/_members/primitives/lib/text/motion.d.ts +57 -0
  616. package/dist/_members/primitives/lib/text/motion.js +16 -0
  617. package/dist/_members/primitives/lib/text/motion.js.map +1 -0
  618. package/dist/_members/primitives/lib/text/recolor.d.ts +12 -0
  619. package/dist/_members/primitives/lib/text/recolor.js +8 -0
  620. package/dist/_members/primitives/lib/text/recolor.js.map +1 -0
  621. package/dist/_members/primitives/lib/text/spec.d.ts +82 -0
  622. package/dist/_members/primitives/lib/text/spec.js +1 -0
  623. package/dist/_members/primitives/lib/text/spec.js.map +1 -0
  624. package/dist/_members/primitives/lib/text/stage.d.ts +23 -0
  625. package/dist/_members/primitives/lib/text/stage.js +8 -0
  626. package/dist/_members/primitives/lib/text/stage.js.map +1 -0
  627. package/dist/_members/primitives/lib/text/typeface.d.ts +16 -0
  628. package/dist/_members/primitives/lib/text/typeface.js +8 -0
  629. package/dist/_members/primitives/lib/text/typeface.js.map +1 -0
  630. package/dist/_members/primitives/lib/tokens.d.ts +109 -0
  631. package/dist/_members/primitives/lib/tokens.js +24 -0
  632. package/dist/_members/primitives/lib/tokens.js.map +1 -0
  633. package/dist/_members/primitives/lib/types.d.ts +200 -0
  634. package/dist/_members/primitives/lib/types.js +1 -0
  635. package/dist/_members/primitives/lib/types.js.map +1 -0
  636. package/dist/_members/primitives/params-required.json +153 -0
  637. package/dist/_members/primitives/scenes/changelog-bite/config.d.ts +36 -0
  638. package/dist/_members/primitives/scenes/changelog-bite/index.d.ts +28 -0
  639. package/dist/_members/primitives/scenes/hero-device-assemble/config.d.ts +24 -0
  640. package/dist/_members/primitives/scenes/hero-device-assemble/index.d.ts +16 -0
  641. package/dist/_members/primitives/scenes/index.d.ts +9 -0
  642. package/dist/_members/primitives/scenes/index.js +25 -0
  643. package/dist/_members/primitives/scenes/index.js.map +1 -0
  644. package/dist/_members/primitives/scenes/landing-code-showcase/config.d.ts +15 -0
  645. package/dist/_members/primitives/scenes/landing-code-showcase/index.d.ts +15 -0
  646. package/dist/_members/primitives/scenes/landing-code-showcase/timeline.d.ts +15 -0
  647. package/dist/_members/primitives/scenes/live-code-compilation/config.d.ts +15 -0
  648. package/dist/_members/primitives/scenes/live-code-compilation/index.d.ts +14 -0
  649. package/dist/_members/primitives/scenes/pricing-tier-focus/config.d.ts +21 -0
  650. package/dist/_members/primitives/scenes/pricing-tier-focus/index.d.ts +15 -0
  651. package/dist/_members/primitives/scenes/product-launch-trailer/config.d.ts +33 -0
  652. package/dist/_members/primitives/scenes/product-launch-trailer/index.d.ts +20 -0
  653. package/dist/_members/primitives/scenes/terminal-to-browser-deploy/config.d.ts +21 -0
  654. package/dist/_members/primitives/scenes/terminal-to-browser-deploy/index.d.ts +15 -0
  655. package/dist/_members/primitives/subject-foreground/SubjectForeground.d.ts +43 -0
  656. package/dist/_members/primitives/subject-foreground/index.d.ts +23 -0
  657. package/dist/_members/primitives/subject-foreground/index.js +30 -0
  658. package/dist/_members/primitives/subject-foreground/index.js.map +1 -0
  659. package/dist/_members/primitives/text/blur-reveal/config.d.ts +30 -0
  660. package/dist/_members/primitives/text/blur-reveal/index.d.ts +20 -0
  661. package/dist/_members/primitives/text/cinematic-title/config.d.ts +87 -0
  662. package/dist/_members/primitives/text/cinematic-title/index.d.ts +31 -0
  663. package/dist/_members/primitives/text/index.d.ts +23 -0
  664. package/dist/_members/primitives/text/index.js +57 -0
  665. package/dist/_members/primitives/text/index.js.map +1 -0
  666. package/dist/_members/primitives/text/inline-highlight/config.d.ts +36 -0
  667. package/dist/_members/primitives/text/inline-highlight/index.d.ts +24 -0
  668. package/dist/_members/primitives/text/karaoke/config.d.ts +108 -0
  669. package/dist/_members/primitives/text/karaoke/index.d.ts +32 -0
  670. package/dist/_members/primitives/text/kinetic-type/config.d.ts +60 -0
  671. package/dist/_members/primitives/text/kinetic-type/index.d.ts +29 -0
  672. package/dist/_members/primitives/text/lower-third/config.d.ts +84 -0
  673. package/dist/_members/primitives/text/lower-third/index.d.ts +30 -0
  674. package/dist/_members/primitives/text/marker-highlight/config.d.ts +39 -0
  675. package/dist/_members/primitives/text/marker-highlight/index.d.ts +24 -0
  676. package/dist/_members/primitives/text/masked-slide-reveal/config.d.ts +30 -0
  677. package/dist/_members/primitives/text/masked-slide-reveal/index.d.ts +19 -0
  678. package/dist/_members/primitives/text/matrix-decode/config.d.ts +33 -0
  679. package/dist/_members/primitives/text/matrix-decode/index.d.ts +21 -0
  680. package/dist/_members/primitives/text/quote-card/config.d.ts +21 -0
  681. package/dist/_members/primitives/text/quote-card/index.d.ts +23 -0
  682. package/dist/_members/primitives/text/rgb-glitch-text/config.d.ts +39 -0
  683. package/dist/_members/primitives/text/rgb-glitch-text/index.d.ts +27 -0
  684. package/dist/_members/primitives/text/shimmer-sweep/config.d.ts +30 -0
  685. package/dist/_members/primitives/text/shimmer-sweep/index.d.ts +21 -0
  686. package/dist/_members/primitives/text/slot-machine-roll/config.d.ts +30 -0
  687. package/dist/_members/primitives/text/slot-machine-roll/index.d.ts +19 -0
  688. package/dist/_members/primitives/text/staggered-fade-up/config.d.ts +39 -0
  689. package/dist/_members/primitives/text/staggered-fade-up/index.d.ts +26 -0
  690. package/dist/_members/primitives/text/stat-counter/config.d.ts +33 -0
  691. package/dist/_members/primitives/text/stat-counter/index.d.ts +31 -0
  692. package/dist/_members/primitives/text/strikethrough-replace/config.d.ts +33 -0
  693. package/dist/_members/primitives/text/strikethrough-replace/index.d.ts +21 -0
  694. package/dist/_members/primitives/text/text-effect/config.d.ts +24 -0
  695. package/dist/_members/primitives/text/text-effect/index.d.ts +29 -0
  696. package/dist/_members/primitives/text/text-fade-replace/config.d.ts +30 -0
  697. package/dist/_members/primitives/text/text-fade-replace/index.d.ts +19 -0
  698. package/dist/_members/primitives/text/token-stream/config.d.ts +21 -0
  699. package/dist/_members/primitives/text/token-stream/index.d.ts +25 -0
  700. package/dist/_members/primitives/text/tracking-in/config.d.ts +33 -0
  701. package/dist/_members/primitives/text/tracking-in/index.d.ts +21 -0
  702. package/dist/_members/primitives/text/typewriter/config.d.ts +36 -0
  703. package/dist/_members/primitives/text/typewriter/index.d.ts +26 -0
  704. package/dist/_members/primitives/transitions/chromatic-aberration-wipe/config.d.ts +15 -0
  705. package/dist/_members/primitives/transitions/chromatic-aberration-wipe/index.d.ts +19 -0
  706. package/dist/_members/primitives/transitions/code-diff-wipe/config.d.ts +36 -0
  707. package/dist/_members/primitives/transitions/code-diff-wipe/index.d.ts +21 -0
  708. package/dist/_members/primitives/transitions/directional-wipe/config.d.ts +12 -0
  709. package/dist/_members/primitives/transitions/directional-wipe/index.d.ts +17 -0
  710. package/dist/_members/primitives/transitions/frosted-glass-wipe/config.d.ts +12 -0
  711. package/dist/_members/primitives/transitions/frosted-glass-wipe/index.d.ts +17 -0
  712. package/dist/_members/primitives/transitions/glitch-cut/config.d.ts +15 -0
  713. package/dist/_members/primitives/transitions/glitch-cut/index.d.ts +11 -0
  714. package/dist/_members/primitives/transitions/grid-pixelate-wipe/config.d.ts +21 -0
  715. package/dist/_members/primitives/transitions/grid-pixelate-wipe/index.d.ts +24 -0
  716. package/dist/_members/primitives/transitions/index.d.ts +17 -0
  717. package/dist/_members/primitives/transitions/index.js +67 -0
  718. package/dist/_members/primitives/transitions/index.js.map +1 -0
  719. package/dist/_members/primitives/transitions/ink-wipe/config.d.ts +15 -0
  720. package/dist/_members/primitives/transitions/ink-wipe/index.d.ts +13 -0
  721. package/dist/_members/primitives/transitions/kinetic-type-mask/config.d.ts +15 -0
  722. package/dist/_members/primitives/transitions/kinetic-type-mask/index.d.ts +20 -0
  723. package/dist/_members/primitives/transitions/light-leak/config.d.ts +15 -0
  724. package/dist/_members/primitives/transitions/light-leak/index.d.ts +11 -0
  725. package/dist/_members/primitives/transitions/luma-matte/config.d.ts +12 -0
  726. package/dist/_members/primitives/transitions/luma-matte/index.d.ts +11 -0
  727. package/dist/_members/primitives/transitions/morph/config.d.ts +12 -0
  728. package/dist/_members/primitives/transitions/morph/index.d.ts +11 -0
  729. package/dist/_members/primitives/transitions/spatial-push/config.d.ts +12 -0
  730. package/dist/_members/primitives/transitions/spatial-push/index.d.ts +17 -0
  731. package/dist/_members/primitives/transitions/swipe-transition-wipe/config.d.ts +18 -0
  732. package/dist/_members/primitives/transitions/swipe-transition-wipe/index.d.ts +22 -0
  733. package/dist/_members/primitives/transitions/zoom-through/config.d.ts +39 -0
  734. package/dist/_members/primitives/transitions/zoom-through/index.d.ts +12 -0
  735. package/dist/_members/primitives/transitions/zoom-through-transition/config.d.ts +24 -0
  736. package/dist/_members/primitives/transitions/zoom-through-transition/index.d.ts +20 -0
  737. package/dist/_members/primitives/ui-blocks/ai-generate-overlay/config.d.ts +48 -0
  738. package/dist/_members/primitives/ui-blocks/ai-generate-overlay/index.d.ts +25 -0
  739. package/dist/_members/primitives/ui-blocks/ai-generation-canvas/config.d.ts +21 -0
  740. package/dist/_members/primitives/ui-blocks/ai-generation-canvas/index.d.ts +16 -0
  741. package/dist/_members/primitives/ui-blocks/badge-pop/config.d.ts +27 -0
  742. package/dist/_members/primitives/ui-blocks/badge-pop/index.d.ts +21 -0
  743. package/dist/_members/primitives/ui-blocks/before-after-slider/config.d.ts +21 -0
  744. package/dist/_members/primitives/ui-blocks/before-after-slider/index.d.ts +20 -0
  745. package/dist/_members/primitives/ui-blocks/benchmark-bars/config.d.ts +86 -0
  746. package/dist/_members/primitives/ui-blocks/benchmark-bars/index.d.ts +25 -0
  747. package/dist/_members/primitives/ui-blocks/bounding-box-selector/config.d.ts +27 -0
  748. package/dist/_members/primitives/ui-blocks/bounding-box-selector/index.d.ts +20 -0
  749. package/dist/_members/primitives/ui-blocks/browser-flow/config.d.ts +15 -0
  750. package/dist/_members/primitives/ui-blocks/browser-flow/index.d.ts +15 -0
  751. package/dist/_members/primitives/ui-blocks/brush-stroke-simulator/config.d.ts +36 -0
  752. package/dist/_members/primitives/ui-blocks/brush-stroke-simulator/index.d.ts +32 -0
  753. package/dist/_members/primitives/ui-blocks/chat-exchange/config.d.ts +27 -0
  754. package/dist/_members/primitives/ui-blocks/chat-exchange/index.d.ts +20 -0
  755. package/dist/_members/primitives/ui-blocks/code-accordion/config.d.ts +42 -0
  756. package/dist/_members/primitives/ui-blocks/code-accordion/index.d.ts +23 -0
  757. package/dist/_members/primitives/ui-blocks/context-meter/config.d.ts +24 -0
  758. package/dist/_members/primitives/ui-blocks/context-meter/index.d.ts +20 -0
  759. package/dist/_members/primitives/ui-blocks/cursor-flow/config.d.ts +84 -0
  760. package/dist/_members/primitives/ui-blocks/cursor-flow/index.d.ts +29 -0
  761. package/dist/_members/primitives/ui-blocks/dashboard-populate/config.d.ts +18 -0
  762. package/dist/_members/primitives/ui-blocks/dashboard-populate/index.d.ts +15 -0
  763. package/dist/_members/primitives/ui-blocks/data-flow-pipes/config.d.ts +120 -0
  764. package/dist/_members/primitives/ui-blocks/data-flow-pipes/index.d.ts +34 -0
  765. package/dist/_members/primitives/ui-blocks/device-mockup-zoom/config.d.ts +24 -0
  766. package/dist/_members/primitives/ui-blocks/device-mockup-zoom/index.d.ts +19 -0
  767. package/dist/_members/primitives/ui-blocks/drag-and-drop-flow/config.d.ts +24 -0
  768. package/dist/_members/primitives/ui-blocks/drag-and-drop-flow/index.d.ts +17 -0
  769. package/dist/_members/primitives/ui-blocks/eval-scorecard/config.d.ts +48 -0
  770. package/dist/_members/primitives/ui-blocks/eval-scorecard/index.d.ts +23 -0
  771. package/dist/_members/primitives/ui-blocks/glass-code-block/config.d.ts +39 -0
  772. package/dist/_members/primitives/ui-blocks/glass-code-block/index.d.ts +22 -0
  773. package/dist/_members/primitives/ui-blocks/image-expand-to-fullscreen/config.d.ts +141 -0
  774. package/dist/_members/primitives/ui-blocks/image-expand-to-fullscreen/index.d.ts +32 -0
  775. package/dist/_members/primitives/ui-blocks/index.d.ts +33 -0
  776. package/dist/_members/primitives/ui-blocks/index.js +76 -0
  777. package/dist/_members/primitives/ui-blocks/index.js.map +1 -0
  778. package/dist/_members/primitives/ui-blocks/metric-gauge/config.d.ts +46 -0
  779. package/dist/_members/primitives/ui-blocks/metric-gauge/index.d.ts +23 -0
  780. package/dist/_members/primitives/ui-blocks/morphing-modal/config.d.ts +141 -0
  781. package/dist/_members/primitives/ui-blocks/morphing-modal/index.d.ts +35 -0
  782. package/dist/_members/primitives/ui-blocks/pipeline-journey/config.d.ts +18 -0
  783. package/dist/_members/primitives/ui-blocks/pipeline-journey/index.d.ts +15 -0
  784. package/dist/_members/primitives/ui-blocks/progress-steps/config.d.ts +51 -0
  785. package/dist/_members/primitives/ui-blocks/progress-steps/index.d.ts +22 -0
  786. package/dist/_members/primitives/ui-blocks/reasoning-trace/config.d.ts +21 -0
  787. package/dist/_members/primitives/ui-blocks/reasoning-trace/index.d.ts +18 -0
  788. package/dist/_members/primitives/ui-blocks/simulated-cursor/config.d.ts +69 -0
  789. package/dist/_members/primitives/ui-blocks/simulated-cursor/index.d.ts +23 -0
  790. package/dist/_members/primitives/ui-blocks/terminal-simulator/config.d.ts +63 -0
  791. package/dist/_members/primitives/ui-blocks/terminal-simulator/index.d.ts +39 -0
  792. package/dist/_members/primitives/ui-blocks/toast-notification/config.d.ts +33 -0
  793. package/dist/_members/primitives/ui-blocks/toast-notification/index.d.ts +21 -0
  794. package/dist/_members/primitives/ui-blocks/tool-call-stack/config.d.ts +54 -0
  795. package/dist/_members/primitives/ui-blocks/tool-call-stack/index.d.ts +20 -0
  796. package/dist/_members/primitives/ui-blocks/tool-menu-slide-in/config.d.ts +33 -0
  797. package/dist/_members/primitives/ui-blocks/tool-menu-slide-in/index.d.ts +20 -0
  798. package/dist/_members/primitives/ui-blocks/visual-docs-snippet/config.d.ts +90 -0
  799. package/dist/_members/primitives/ui-blocks/visual-docs-snippet/index.d.ts +27 -0
  800. package/dist/_members/primitives/ui-blocks/voice-waveform/config.d.ts +24 -0
  801. package/dist/_members/primitives/ui-blocks/voice-waveform/index.d.ts +20 -0
  802. package/dist/_members/primitives/version-map.json +105 -0
  803. package/dist/_members/primitives/workspace.d.ts +51 -0
  804. package/dist/_members/primitives/workspace.js +60 -0
  805. package/dist/_members/primitives/workspace.js.map +1 -0
  806. package/dist/_members/render-harness/cardRender.d.ts +64 -0
  807. package/dist/_members/render-harness/cardRender.d.ts.map +1 -0
  808. package/dist/_members/render-harness/contractRender.d.ts +43 -0
  809. package/dist/_members/render-harness/contractRender.d.ts.map +1 -0
  810. package/dist/_members/render-harness/extractSegments.d.ts +53 -0
  811. package/dist/_members/render-harness/extractSegments.d.ts.map +1 -0
  812. package/dist/_members/render-harness/index.d.ts +30 -0
  813. package/dist/_members/render-harness/index.d.ts.map +1 -0
  814. package/dist/_members/render-harness/localRender.d.ts +167 -0
  815. package/dist/_members/render-harness/localRender.d.ts.map +1 -0
  816. package/dist/_members/render-harness/materializeSources.d.ts +29 -0
  817. package/dist/_members/render-harness/materializeSources.d.ts.map +1 -0
  818. package/dist/_members/render-harness/mediaServer.d.ts +22 -0
  819. package/dist/_members/render-harness/mediaServer.d.ts.map +1 -0
  820. package/dist/_members/render-harness/renderInputAssets.d.ts +63 -0
  821. package/dist/_members/render-harness/renderInputAssets.d.ts.map +1 -0
  822. package/dist/_members/render-harness/resolveAssets.d.ts +33 -0
  823. package/dist/_members/render-harness/resolveAssets.d.ts.map +1 -0
  824. package/dist/_members/render-harness/sandboxGlobalSpecs.d.ts +23 -0
  825. package/dist/_members/render-harness/sandboxGlobalSpecs.d.ts.map +1 -0
  826. package/dist/account-model/testing.d.ts +1 -0
  827. package/dist/account-model/testing.js +145 -0
  828. package/dist/account-model/types.d.ts +1 -0
  829. package/dist/account-model/types.js +0 -0
  830. package/dist/account-model/validators.d.ts +1 -0
  831. package/dist/account-model/validators.js +26 -0
  832. package/dist/account-model.d.ts +1 -0
  833. package/dist/account-model.js +26 -0
  834. package/dist/animate.d.ts +1 -0
  835. package/dist/animate.js +79412 -0
  836. package/dist/authoring/build-tools.d.ts +1 -0
  837. package/dist/authoring/build-tools.js +29 -0
  838. package/dist/authoring/capabilities.d.ts +1 -0
  839. package/dist/authoring/capabilities.js +11 -0
  840. package/dist/authoring/composer.d.ts +1 -0
  841. package/dist/authoring/composer.js +53 -0
  842. package/dist/authoring/context.d.ts +1 -0
  843. package/dist/authoring/context.js +14 -0
  844. package/dist/authoring/models.d.ts +1 -0
  845. package/dist/authoring/models.js +14 -0
  846. package/dist/authoring/pipelineTrace.d.ts +1 -0
  847. package/dist/authoring/pipelineTrace.js +7 -0
  848. package/dist/authoring/prompts.d.ts +1 -0
  849. package/dist/authoring/prompts.js +29 -0
  850. package/dist/authoring/providers.d.ts +1 -0
  851. package/dist/authoring/providers.js +99 -0
  852. package/dist/authoring/resource-routing.d.ts +1 -0
  853. package/dist/authoring/resource-routing.js +206 -0
  854. package/dist/authoring/resources.d.ts +1 -0
  855. package/dist/authoring/resources.js +35 -0
  856. package/dist/authoring/tools.d.ts +1 -0
  857. package/dist/authoring/tools.js +29 -0
  858. package/dist/authoring/transpileComponent.d.ts +1 -0
  859. package/dist/authoring/transpileComponent.js +2248 -0
  860. package/dist/authoring/transpileHelper.d.ts +1 -0
  861. package/dist/authoring/transpileHelper.js +9 -0
  862. package/dist/authoring/types.d.ts +1 -0
  863. package/dist/authoring/types.js +0 -0
  864. package/dist/authoring.d.ts +1 -0
  865. package/dist/authoring.js +1295 -0
  866. package/dist/brand-derivation/constants.d.ts +1 -0
  867. package/dist/brand-derivation/constants.js +11 -0
  868. package/dist/brand-derivation.d.ts +1 -0
  869. package/dist/brand-derivation.js +23 -0
  870. package/dist/chunk-2ESYSVXG.js +48 -0
  871. package/dist/chunk-37NJ27UU.js +501 -0
  872. package/dist/chunk-52AHXNKM.js +435 -0
  873. package/dist/chunk-5I7VDCAC.js +15647 -0
  874. package/dist/chunk-6CMVBTTP.js +1933 -0
  875. package/dist/chunk-6EQXLEP6.js +194 -0
  876. package/dist/chunk-6QJ3V3VS.js +1444 -0
  877. package/dist/chunk-7DHP4ESU.js +138 -0
  878. package/dist/chunk-7GISRVON.js +14176 -0
  879. package/dist/chunk-7PA7FGLD.js +609 -0
  880. package/dist/chunk-ATAF24QG.js +735 -0
  881. package/dist/chunk-AWT3P5ZN.js +1609 -0
  882. package/dist/chunk-B4VMU2IJ.js +211 -0
  883. package/dist/chunk-BDMTUEEZ.js +19 -0
  884. package/dist/chunk-BRKJKB33.js +683 -0
  885. package/dist/chunk-CX2IIQ4R.js +111 -0
  886. package/dist/chunk-D2EG7J7X.js +31 -0
  887. package/dist/chunk-DENF4TPI.js +249 -0
  888. package/dist/chunk-DIBOJJMU.js +16838 -0
  889. package/dist/chunk-DLF4WVSE.js +9 -0
  890. package/dist/chunk-DSNG6WLU.js +82 -0
  891. package/dist/chunk-EA6MYCYW.js +135 -0
  892. package/dist/chunk-EAUSEGB7.js +420 -0
  893. package/dist/chunk-ELLSET2N.js +195 -0
  894. package/dist/chunk-EMGFZ3PR.js +14 -0
  895. package/dist/chunk-FUWJOVVK.js +3633 -0
  896. package/dist/chunk-G3PBH53P.js +85 -0
  897. package/dist/chunk-G75E7YA4.js +11883 -0
  898. package/dist/chunk-GBRNYH7W.js +72 -0
  899. package/dist/chunk-GH27OS5S.js +104 -0
  900. package/dist/chunk-GULDS3VE.js +41 -0
  901. package/dist/chunk-H5LMJKZU.js +0 -0
  902. package/dist/chunk-HI4UTTPS.js +954 -0
  903. package/dist/chunk-JCZQT7K3.js +3266 -0
  904. package/dist/chunk-JD77Y2WM.js +3423 -0
  905. package/dist/chunk-JF4JJAFP.js +10 -0
  906. package/dist/chunk-JMURQODM.js +438 -0
  907. package/dist/chunk-JOURGVOR.js +27 -0
  908. package/dist/chunk-JRQVPFLF.js +459 -0
  909. package/dist/chunk-KF5ETMKB.js +544 -0
  910. package/dist/chunk-KYRDKK2D.js +47 -0
  911. package/dist/chunk-LD5ZOUFT.js +55 -0
  912. package/dist/chunk-M3I5LMAB.js +426 -0
  913. package/dist/chunk-MC5DLSEV.js +202 -0
  914. package/dist/chunk-MCBUX5XV.js +70 -0
  915. package/dist/chunk-MFHXCHRI.js +33 -0
  916. package/dist/chunk-MMEJ3Y7E.js +327 -0
  917. package/dist/chunk-MVEE6HEC.js +8512 -0
  918. package/dist/chunk-N67PDTKQ.js +1419 -0
  919. package/dist/chunk-NDKERSXY.js +1296 -0
  920. package/dist/chunk-NV4I6GJV.js +1091 -0
  921. package/dist/chunk-OIRUO5P7.js +397 -0
  922. package/dist/chunk-P43IE4WB.js +181 -0
  923. package/dist/chunk-QGAWDLYX.js +92 -0
  924. package/dist/chunk-QH3YI3ND.js +100 -0
  925. package/dist/chunk-QLAQHR3L.js +254 -0
  926. package/dist/chunk-RHVLQNYF.js +20 -0
  927. package/dist/chunk-S3P5BFFL.js +2265 -0
  928. package/dist/chunk-SIGGQRY2.js +8483 -0
  929. package/dist/chunk-TULRCY6U.js +729 -0
  930. package/dist/chunk-TWQOKKAF.js +859 -0
  931. package/dist/chunk-U3JPILZS.js +15 -0
  932. package/dist/chunk-U4V4FZGE.js +20 -0
  933. package/dist/chunk-UEI3NLNK.js +127 -0
  934. package/dist/chunk-V43Y7IE4.js +3621 -0
  935. package/dist/chunk-VIVQHIGZ.js +4319 -0
  936. package/dist/chunk-W35ZMOXB.js +23 -0
  937. package/dist/chunk-WB2VFDQZ.js +58 -0
  938. package/dist/chunk-WREYUH2E.js +104 -0
  939. package/dist/chunk-WZTTZHNR.js +3339 -0
  940. package/dist/chunk-XELS2BGA.js +13 -0
  941. package/dist/chunk-XLIPPLG3.js +18 -0
  942. package/dist/chunk-YA3OR2KK.js +249 -0
  943. package/dist/chunk-ZE76SSRT.js +358 -0
  944. package/dist/chunk-ZFEXATWN.js +46 -0
  945. package/dist/chunk-ZSZABOE5.js +425 -0
  946. package/dist/compose/renderer.d.ts +1 -0
  947. package/dist/compose/renderer.js +173 -0
  948. package/dist/compose.d.ts +1 -0
  949. package/dist/compose.js +76 -0
  950. package/dist/composition/audio.d.ts +1 -0
  951. package/dist/composition/audio.js +63 -0
  952. package/dist/composition/autozoom.d.ts +1 -0
  953. package/dist/composition/autozoom.js +76 -0
  954. package/dist/composition/brand-kit.d.ts +1 -0
  955. package/dist/composition/brand-kit.js +34 -0
  956. package/dist/composition/brief.d.ts +1 -0
  957. package/dist/composition/brief.js +112 -0
  958. package/dist/composition/depth.d.ts +1 -0
  959. package/dist/composition/depth.js +12 -0
  960. package/dist/composition/fixtures.d.ts +1 -0
  961. package/dist/composition/fixtures.js +154 -0
  962. package/dist/composition/fonts.d.ts +1 -0
  963. package/dist/composition/fonts.js +74 -0
  964. package/dist/composition/graphics-plan.d.ts +1 -0
  965. package/dist/composition/graphics-plan.js +400 -0
  966. package/dist/composition/invariants.d.ts +1 -0
  967. package/dist/composition/invariants.js +49 -0
  968. package/dist/composition/ops.d.ts +1 -0
  969. package/dist/composition/ops.js +53 -0
  970. package/dist/composition/primitive-catalog.d.ts +1 -0
  971. package/dist/composition/primitive-catalog.js +60 -0
  972. package/dist/composition/projection.d.ts +1 -0
  973. package/dist/composition/projection.js +119 -0
  974. package/dist/composition/reframe/coverage.d.ts +1 -0
  975. package/dist/composition/reframe/coverage.js +20 -0
  976. package/dist/composition/reframe/kenBurns.d.ts +1 -0
  977. package/dist/composition/reframe/kenBurns.js +53 -0
  978. package/dist/composition/reframe/shotScale.d.ts +1 -0
  979. package/dist/composition/reframe/shotScale.js +25 -0
  980. package/dist/composition/reframe/trajectory.d.ts +1 -0
  981. package/dist/composition/reframe/trajectory.js +17 -0
  982. package/dist/composition/reframe.d.ts +1 -0
  983. package/dist/composition/reframe.js +39 -0
  984. package/dist/composition/timeline.d.ts +1 -0
  985. package/dist/composition/timeline.js +70 -0
  986. package/dist/composition/types.d.ts +1 -0
  987. package/dist/composition/types.js +0 -0
  988. package/dist/composition/validators/graphic-kinds.d.ts +1 -0
  989. package/dist/composition/validators/graphic-kinds.js +9 -0
  990. package/dist/composition/validators.d.ts +1 -0
  991. package/dist/composition/validators.js +180 -0
  992. package/dist/composition-ops.d.ts +1 -0
  993. package/dist/composition-ops.js +882 -0
  994. package/dist/composition.d.ts +1 -0
  995. package/dist/composition.js +433 -0
  996. package/dist/context-CEAKQ5T7.js +14 -0
  997. package/dist/core/render.d.ts +1 -0
  998. package/dist/core/render.js +105 -0
  999. package/dist/core/select.d.ts +1 -0
  1000. package/dist/core/select.js +42 -0
  1001. package/dist/core/types.d.ts +1 -0
  1002. package/dist/core/types.js +0 -0
  1003. package/dist/core.d.ts +1 -0
  1004. package/dist/core.js +38 -0
  1005. package/dist/dist-LAJ2363K.js +545 -0
  1006. package/dist/errors.d.ts +1 -0
  1007. package/dist/errors.js +17 -0
  1008. package/dist/foundation/codes.d.ts +1 -0
  1009. package/dist/foundation/codes.js +7 -0
  1010. package/dist/foundation/primitives.d.ts +1 -0
  1011. package/dist/foundation/primitives.js +13 -0
  1012. package/dist/foundation.d.ts +1 -0
  1013. package/dist/foundation.js +17 -0
  1014. package/dist/hls-HD4C5G6W.js +33000 -0
  1015. package/dist/magic-string.es-SDTMJBWP.js +1308 -0
  1016. package/dist/mcp/adapter.d.ts +1 -0
  1017. package/dist/mcp/adapter.js +670 -0
  1018. package/dist/mcp/core.d.ts +1 -0
  1019. package/dist/mcp/core.js +41 -0
  1020. package/dist/mcp/curation.d.ts +1 -0
  1021. package/dist/mcp/curation.js +23 -0
  1022. package/dist/mcp/executor.d.ts +1 -0
  1023. package/dist/mcp/executor.js +13 -0
  1024. package/dist/mcp/server.d.ts +1 -0
  1025. package/dist/mcp/server.js +27 -0
  1026. package/dist/mcp.d.ts +1 -0
  1027. package/dist/mcp.js +138 -0
  1028. package/dist/media-model/media-kind.d.ts +1 -0
  1029. package/dist/media-model/media-kind.js +108 -0
  1030. package/dist/media-model/testing.d.ts +1 -0
  1031. package/dist/media-model/testing.js +16029 -0
  1032. package/dist/media-model/transcriptSearch.d.ts +1 -0
  1033. package/dist/media-model/transcriptSearch.js +32 -0
  1034. package/dist/media-model.d.ts +1 -0
  1035. package/dist/media-model.js +154 -0
  1036. package/dist/nle-export/server.d.ts +1 -0
  1037. package/dist/nle-export/server.js +25658 -0
  1038. package/dist/nle-export/xml.d.ts +1 -0
  1039. package/dist/nle-export/xml.js +23102 -0
  1040. package/dist/nle-export.d.ts +1 -0
  1041. package/dist/nle-export.js +313 -0
  1042. package/dist/perception.d.ts +1 -0
  1043. package/dist/perception.js +145 -0
  1044. package/dist/plane/conformance.d.ts +1 -0
  1045. package/dist/plane/conformance.js +13 -0
  1046. package/dist/plane/contract.d.ts +1 -0
  1047. package/dist/plane/contract.js +31 -0
  1048. package/dist/plane.d.ts +1 -0
  1049. package/dist/plane.js +13 -0
  1050. package/dist/primitives/backgrounds.d.ts +1 -0
  1051. package/dist/primitives/backgrounds.js +32 -0
  1052. package/dist/primitives/captions.d.ts +1 -0
  1053. package/dist/primitives/captions.js +629 -0
  1054. package/dist/primitives/effects.d.ts +1 -0
  1055. package/dist/primitives/effects.js +30 -0
  1056. package/dist/primitives/hero-text.d.ts +1 -0
  1057. package/dist/primitives/hero-text.js +14 -0
  1058. package/dist/primitives/layouts.d.ts +1 -0
  1059. package/dist/primitives/layouts.js +24 -0
  1060. package/dist/primitives/lib/easings.d.ts +1 -0
  1061. package/dist/primitives/lib/easings.js +25 -0
  1062. package/dist/primitives/lib/index.d.ts +1 -0
  1063. package/dist/primitives/lib/index.js +78 -0
  1064. package/dist/primitives/lib/palette.d.ts +1 -0
  1065. package/dist/primitives/lib/palette.js +71 -0
  1066. package/dist/primitives/lib/preview.d.ts +1 -0
  1067. package/dist/primitives/lib/preview.js +8 -0
  1068. package/dist/primitives/lib/schema.d.ts +1 -0
  1069. package/dist/primitives/lib/schema.js +12 -0
  1070. package/dist/primitives/lib/seeded-random.d.ts +1 -0
  1071. package/dist/primitives/lib/seeded-random.js +13 -0
  1072. package/dist/primitives/lib/text/contrast.d.ts +1 -0
  1073. package/dist/primitives/lib/text/contrast.js +11 -0
  1074. package/dist/primitives/lib/text/fill.d.ts +1 -0
  1075. package/dist/primitives/lib/text/fill.js +7 -0
  1076. package/dist/primitives/lib/text/fitText.d.ts +1 -0
  1077. package/dist/primitives/lib/text/fitText.js +10 -0
  1078. package/dist/primitives/lib/text/marker.d.ts +1 -0
  1079. package/dist/primitives/lib/text/marker.js +7 -0
  1080. package/dist/primitives/lib/text/motion.d.ts +1 -0
  1081. package/dist/primitives/lib/text/motion.js +15 -0
  1082. package/dist/primitives/lib/text/recolor.d.ts +1 -0
  1083. package/dist/primitives/lib/text/recolor.js +7 -0
  1084. package/dist/primitives/lib/text/spec.d.ts +1 -0
  1085. package/dist/primitives/lib/text/spec.js +0 -0
  1086. package/dist/primitives/lib/text/stage.d.ts +1 -0
  1087. package/dist/primitives/lib/text/stage.js +7 -0
  1088. package/dist/primitives/lib/text/typeface.d.ts +1 -0
  1089. package/dist/primitives/lib/text/typeface.js +7 -0
  1090. package/dist/primitives/lib/tokens.d.ts +1 -0
  1091. package/dist/primitives/lib/tokens.js +24 -0
  1092. package/dist/primitives/lib/types.d.ts +1 -0
  1093. package/dist/primitives/lib/types.js +0 -0
  1094. package/dist/primitives/lib.d.ts +1 -0
  1095. package/dist/primitives/lib.js +78 -0
  1096. package/dist/primitives/params-required.json +153 -0
  1097. package/dist/primitives/scenes.d.ts +1 -0
  1098. package/dist/primitives/scenes.js +25 -0
  1099. package/dist/primitives/subject-foreground.d.ts +1 -0
  1100. package/dist/primitives/subject-foreground.js +28 -0
  1101. package/dist/primitives/text.d.ts +1 -0
  1102. package/dist/primitives/text.js +57 -0
  1103. package/dist/primitives/transitions.d.ts +1 -0
  1104. package/dist/primitives/transitions.js +66 -0
  1105. package/dist/primitives/ui-blocks.d.ts +1 -0
  1106. package/dist/primitives/ui-blocks.js +76 -0
  1107. package/dist/primitives/version-map.json +105 -0
  1108. package/dist/primitives/workspace.d.ts +1 -0
  1109. package/dist/primitives/workspace.js +25 -0
  1110. package/dist/primitives.d.ts +1 -0
  1111. package/dist/primitives.js +65 -0
  1112. package/dist/render-harness/sandboxGlobalSpecs.d.ts +1 -0
  1113. package/dist/render-harness/sandboxGlobalSpecs.js +13 -0
  1114. package/dist/render-harness.d.ts +1 -0
  1115. package/dist/render-harness.js +1019 -0
  1116. package/dist/token-RGFIT24D.js +69 -0
  1117. package/dist/token-util-GPLSGYVO.js +5 -0
  1118. package/dist/vision_bundle-5Y376MAR.js +4084 -0
  1119. package/package.json +493 -0
@@ -0,0 +1,103 @@
1
+ /**
2
+ * @cueframe/perception — `activeSpeaker` signal provider (per-angle AV active-
3
+ * speaker FACT).
4
+ *
5
+ * A DECISION-FREE measurement (perception is a leaf — it produces a FACT, never a
6
+ * choice): per-angle audio-visual active-speaker detection (TalkNet-style ASD,
7
+ * arxiv:2107.06592) → a per-window speaking probability for THAT angle's dominant
8
+ * tracked face, calibrated to an ABSOLUTE [0,1] scalar so the Selector core can
9
+ * compare "who is talking" across angles (selector-abstraction spec §1.2, the
10
+ * `activeSpeaker` signal; §9.1 P3, switch on who's-talking).
11
+ *
12
+ * Perception NEVER imports the Selector core (the rot-guard direction): this module
13
+ * emits a plain `{ value, rawScore, confidence, evidence }` envelope that STRUCTURALLY
14
+ * matches `@cueframe/core`'s `Signal`, but the type lives here (a leaf owns its own
15
+ * fact shape; the core projects it). Adding/upgrading the model = a version stamp
16
+ * here; the core is untouched.
17
+ *
18
+ * This module is the PURE FACT CONTRACT (perception is a leaf — NO node I/O here,
19
+ * so it stays importable by every framework leaf):
20
+ * - `activeSpeakerSignal(series, sourceInSec, sourceOutSec)` — PURE: windows the
21
+ * per-frame ASD probabilities (over the angle's OWN source timeline) and maps the
22
+ * windowed speaking probability to the absolute [0,1] value + reasons.
23
+ *
24
+ * The MEASUREMENT (the TalkNet/Light-ASD model that PRODUCES an `ActiveSpeakerSeries`)
25
+ * lives OUTSIDE the leaf — the real perception build is the Modal skill
26
+ * (services/modal/video_router/skills/detect_active_speaker.py). It is PER-ANGLE:
27
+ * one angle's audio + that angle's tracked dominant face → that angle's speaking
28
+ * probability over time. This REPLACES the within-source Light-ASD (broken on 2+
29
+ * faces) — each angle's track is conditioned on its own audio, never the mixed
30
+ * podcast track (spec §10 — "Cannot be Deepgram-word-gated per-angle"). Both the
31
+ * Modal skill and any local harness feed this one calibration.
32
+ *
33
+ * LANDMINE (spec §scope-1): vocal activity ≠ SPEECH. Laughing, chewing, coughing,
34
+ * a hot reaction mic all raise audio energy and can fool a naive VAD — but a proper
35
+ * AV-ASD model (TalkNet) keys on lip-motion↔audio SYNC, so a chewing/laughing
36
+ * reaction shot (mouth moves, but not in speech-sync, or audio is non-speech)
37
+ * scores LOW. The calibration here trusts the AV model's probability; it does NOT
38
+ * re-derive "is talking" from audio energy alone (that would cut to the chewer).
39
+ * `audioEnergy` (the hot-mic VAD) is a SEPARATE, weaker signal — never conflate the
40
+ * two. The resolver test asserts a high-audio-energy / low-activeSpeaker fixture
41
+ * does NOT trigger a cut.
42
+ *
43
+ * Pure + deterministic.
44
+ */
45
+ /** Bump when the ASD-probability→value calibration changes (the 3-stamp lesson — a
46
+ * stale cached activeSpeaker is served if a consumer doesn't bump alongside). The
47
+ * Modal model version is a DISTINCT stamp carried on the series (`modelVersion`). */
48
+ export const ACTIVE_SPEAKER_VERSION = 'active-speaker-v1-2026.06.21';
49
+ const clamp01 = (x) => (x < 0 ? 0 : x > 1 ? 1 : x);
50
+ /**
51
+ * Window the per-frame ASD probabilities over `[sourceInSec, sourceOutSec)` (the
52
+ * angle's OWN source span — the resolver has already mapped the output grid through
53
+ * the angle's declared offset) and map them to the absolute [0,1] activeSpeaker
54
+ * value (PURE).
55
+ *
56
+ * Returns `null` — NOT 0 — when the window has no measurable signal:
57
+ * - the angle has no ASD series at all (no detected face → no track to score), OR
58
+ * - every frame in the window is `null` (the dominant face was absent the whole
59
+ * window).
60
+ * `null` is "not measured" (absence); a weight over an all-null activeSpeaker is
61
+ * fail-loud upstream (`selector_signal_absent`), never silently 0
62
+ * (`feedback_never_add_fallbacks`). A measured-but-quiet angle returns a real low
63
+ * value (e.g. 0.05) — that IS a measurement and DOES suppress a cut.
64
+ *
65
+ * Calibration (absolute, NOT softmax-across-angles): the AV model's per-frame
66
+ * probability is already an absolute speaking likelihood, so the value is the
67
+ * face-present mean over the window. The TalkNet/Light-ASD model keys on lip↔audio
68
+ * SYNC, so a laughing/chewing reaction (mouth moving, non-speech audio) already
69
+ * scores low at the model — this calibration trusts that and does NOT re-inflate
70
+ * from audio energy (the landmine). Confidence scales with face COVERAGE over the
71
+ * window (a face present 2/20 frames is a weak vote).
72
+ */
73
+ export function activeSpeakerSignal(series, sourceInSec, sourceOutSec) {
74
+ if (!series || series.probs.length === 0 || series.fps <= 0)
75
+ return null;
76
+ const f0 = Math.max(0, Math.floor((sourceInSec - series.windowStartSec) * series.fps));
77
+ const f1 = Math.min(series.probs.length, Math.ceil((sourceOutSec - series.windowStartSec) * series.fps));
78
+ if (f1 <= f0)
79
+ return null;
80
+ let sum = 0;
81
+ let present = 0;
82
+ for (let f = f0; f < f1; f++) {
83
+ const p = series.probs[f];
84
+ if (p === null || p === undefined)
85
+ continue; // face absent this frame — NOT 0
86
+ sum += clamp01(p);
87
+ present++;
88
+ }
89
+ const totalFrames = f1 - f0;
90
+ // No face in the window at all → absence, not silence. `null` so a weight over an
91
+ // all-absent angle fails loud rather than reading as "definitely not speaking".
92
+ if (present === 0)
93
+ return null;
94
+ const rawScore = sum / present; // face-present mean (absence does NOT dilute it)
95
+ const value = clamp01(rawScore);
96
+ // Confidence = face coverage over the window. A face present every frame is a
97
+ // strong vote; a face present a handful of frames is a weak one (the model saw
98
+ // little of it). Floor at 0.3 so a sparse-but-real measurement still counts.
99
+ const coverage = present / totalFrames;
100
+ const confidence = clamp01(0.3 + 0.7 * coverage);
101
+ const evidence = `speaking ${rawScore.toFixed(2)}, ${present}/${totalFrames} frames faced`;
102
+ return { value, rawScore, confidence, evidence };
103
+ }
@@ -0,0 +1,78 @@
1
+ /**
2
+ * @cueframe/perception — `audioQuality` signal provider (per-source audio fact).
3
+ *
4
+ * A DECISION-FREE measurement (perception is a leaf — it produces a FACT, never a
5
+ * choice): per-source loudness + clarity over the source's audio track, calibrated
6
+ * to an ABSOLUTE [0,1] scalar so the Selector core can compare the clearest mic
7
+ * across angles (selector-abstraction spec §1.2, the audioQuality signal; §9.1 P2,
8
+ * the best-audio bed = instance #3).
9
+ *
10
+ * Perception NEVER imports the Selector core (the rot-guard direction): this module
11
+ * emits a plain `{ value, rawScore, confidence, evidence }` envelope that STRUCTURALLY
12
+ * matches `@cueframe/core`'s `Signal`, but the type lives here (a leaf owns its own
13
+ * fact shape; the core projects it). Adding/upgrading the analysis = a version stamp
14
+ * here; the core is untouched.
15
+ *
16
+ * This module is the PURE FACT CONTRACT (perception is a leaf — NO node I/O here,
17
+ * so it stays importable by every framework leaf):
18
+ * - `audioQualitySignal(metrics)` — PURE: maps the raw per-source acoustic metrics
19
+ * (integrated loudness LUFS, true-peak, a clarity proxy) to the absolute [0,1]
20
+ * value + reasons. This is the contract; the production Modal skill and the local
21
+ * ffmpeg harness BOTH feed it the same `AudioQualityMetrics`.
22
+ *
23
+ * The MEASUREMENT (the ffmpeg/Modal I/O that PRODUCES an `AudioQualityMetrics`)
24
+ * lives OUTSIDE the leaf — the local deploy-free analyzer is in the switch
25
+ * resolver's processing helper (the server-side selector);
26
+ * the Modal per-angle path (Phase 4) produces the SAME `AudioQualityMetrics`. Both
27
+ * feed this one calibration. Keeping the I/O out of perception keeps the leaf pure
28
+ * (no node-only deps) and the rot-guard direction clean.
29
+ *
30
+ * Pure + deterministic.
31
+ */
32
+ /** Bump when the loudness→value calibration changes (the 3-stamp lesson — a stale
33
+ * cached audioQuality is served if a consumer doesn't bump alongside). */
34
+ export declare const AUDIO_QUALITY_VERSION = "audio-quality-v1-2026.06.21";
35
+ /** The raw per-source acoustic metrics — what BOTH the local ffmpeg harness and
36
+ * the future Modal skill measure. Source-independent absolutes (LUFS/dBTP), never
37
+ * normalized across angles (the cross-source comparison is the Selector's job). */
38
+ export interface AudioQualityMetrics {
39
+ /** Integrated loudness, LUFS (EBU R128). Typical speech ≈ -23..-16; silence → -70. */
40
+ integratedLufs: number;
41
+ /** True-peak / sample-peak, dBTP. Clipping (≥ -1 dBTP) is a quality DEFECT. */
42
+ truePeakDbtp: number;
43
+ /** Loudness RANGE, LU (LRA) — a low LRA on a speech mic ≈ steady level (good);
44
+ * a high LRA can mean a distant mic drifting in/out (worse). Optional. */
45
+ loudnessRangeLu?: number;
46
+ /** A clarity proxy ∈ [0,1] when available (e.g. voiced-frame ratio / SNR proxy).
47
+ * Optional — the local harness leaves it undefined and the value leans on
48
+ * loudness; the Modal skill (VAD-backed) populates it. */
49
+ clarity?: number;
50
+ }
51
+ /** Matches `@cueframe/core`'s `Signal` shape STRUCTURALLY (perception owns its
52
+ * fact; the core projects `value`/`confidence`). */
53
+ export interface AudioQualitySignal {
54
+ /** ABSOLUTE, calibrated ∈ [0,1] — "how good is this mic right now," source-
55
+ * independent. The clearest, best-leveled mic scores highest. */
56
+ value: number;
57
+ /** Pre-calibration raw (the integrated LUFS) for legibility + recalibration. */
58
+ rawScore: number;
59
+ confidence: number;
60
+ /** Reasons-only ("‑18 LUFS, no clip"); excluded from any hash. */
61
+ evidence: string;
62
+ }
63
+ /**
64
+ * Map raw acoustic metrics → the absolute [0,1] audioQuality value (PURE).
65
+ *
66
+ * Calibration (absolute, NOT softmax-across-angles):
67
+ * - LOUDNESS: a piecewise-linear preference centered on broadcast speech. -16 LUFS
68
+ * is ideal (1.0); it falls off toward silence (-50 LUFS → ~0) and toward
69
+ * too-hot (> -10 LUFS → penalized, an over-driven/distorted mic).
70
+ * - CLIPPING: a hard penalty as true-peak approaches/exceeds 0 dBTP (a clipped
71
+ * mic is unusable however loud).
72
+ * - CLARITY: when provided, multiplies the loudness score (a loud-but-noisy mic
73
+ * loses to a clean one); absent → loudness alone (the local harness path).
74
+ *
75
+ * The result is the clearest-mic ranking signal: over a span the Selector picks the
76
+ * argmax of this across angles, stabilized (best-audio bed).
77
+ */
78
+ export declare function audioQualitySignal(m: AudioQualityMetrics): AudioQualitySignal;
@@ -0,0 +1,76 @@
1
+ /**
2
+ * @cueframe/perception — `audioQuality` signal provider (per-source audio fact).
3
+ *
4
+ * A DECISION-FREE measurement (perception is a leaf — it produces a FACT, never a
5
+ * choice): per-source loudness + clarity over the source's audio track, calibrated
6
+ * to an ABSOLUTE [0,1] scalar so the Selector core can compare the clearest mic
7
+ * across angles (selector-abstraction spec §1.2, the audioQuality signal; §9.1 P2,
8
+ * the best-audio bed = instance #3).
9
+ *
10
+ * Perception NEVER imports the Selector core (the rot-guard direction): this module
11
+ * emits a plain `{ value, rawScore, confidence, evidence }` envelope that STRUCTURALLY
12
+ * matches `@cueframe/core`'s `Signal`, but the type lives here (a leaf owns its own
13
+ * fact shape; the core projects it). Adding/upgrading the analysis = a version stamp
14
+ * here; the core is untouched.
15
+ *
16
+ * This module is the PURE FACT CONTRACT (perception is a leaf — NO node I/O here,
17
+ * so it stays importable by every framework leaf):
18
+ * - `audioQualitySignal(metrics)` — PURE: maps the raw per-source acoustic metrics
19
+ * (integrated loudness LUFS, true-peak, a clarity proxy) to the absolute [0,1]
20
+ * value + reasons. This is the contract; the production Modal skill and the local
21
+ * ffmpeg harness BOTH feed it the same `AudioQualityMetrics`.
22
+ *
23
+ * The MEASUREMENT (the ffmpeg/Modal I/O that PRODUCES an `AudioQualityMetrics`)
24
+ * lives OUTSIDE the leaf — the local deploy-free analyzer is in the switch
25
+ * resolver's processing helper (services/convex/api/selector/audioAnalysis.ts);
26
+ * the Modal per-angle path (Phase 4) produces the SAME `AudioQualityMetrics`. Both
27
+ * feed this one calibration. Keeping the I/O out of perception keeps the leaf pure
28
+ * (no node-only deps) and the rot-guard direction clean.
29
+ *
30
+ * Pure + deterministic.
31
+ */
32
+ /** Bump when the loudness→value calibration changes (the 3-stamp lesson — a stale
33
+ * cached audioQuality is served if a consumer doesn't bump alongside). */
34
+ export const AUDIO_QUALITY_VERSION = 'audio-quality-v1-2026.06.21';
35
+ const clamp01 = (x) => (x < 0 ? 0 : x > 1 ? 1 : x);
36
+ /**
37
+ * Map raw acoustic metrics → the absolute [0,1] audioQuality value (PURE).
38
+ *
39
+ * Calibration (absolute, NOT softmax-across-angles):
40
+ * - LOUDNESS: a piecewise-linear preference centered on broadcast speech. -16 LUFS
41
+ * is ideal (1.0); it falls off toward silence (-50 LUFS → ~0) and toward
42
+ * too-hot (> -10 LUFS → penalized, an over-driven/distorted mic).
43
+ * - CLIPPING: a hard penalty as true-peak approaches/exceeds 0 dBTP (a clipped
44
+ * mic is unusable however loud).
45
+ * - CLARITY: when provided, multiplies the loudness score (a loud-but-noisy mic
46
+ * loses to a clean one); absent → loudness alone (the local harness path).
47
+ *
48
+ * The result is the clearest-mic ranking signal: over a span the Selector picks the
49
+ * argmax of this across angles, stabilized (best-audio bed).
50
+ */
51
+ export function audioQualitySignal(m) {
52
+ // Loudness preference: peak at -16 LUFS, linear ramps on both sides.
53
+ const IDEAL = -16;
54
+ const FLOOR = -50; // ≤ this → effectively silent
55
+ const HOT = -6; // ≥ this → over-driven
56
+ let loud;
57
+ if (m.integratedLufs <= FLOOR)
58
+ loud = 0;
59
+ else if (m.integratedLufs <= IDEAL)
60
+ loud = (m.integratedLufs - FLOOR) / (IDEAL - FLOOR);
61
+ else if (m.integratedLufs >= HOT)
62
+ loud = 0.35; // hot but present — usable, penalized
63
+ else
64
+ loud = 1 - (0.65 * (m.integratedLufs - IDEAL)) / (HOT - IDEAL); // 1.0 → 0.35
65
+ loud = clamp01(loud);
66
+ // Clipping penalty: linear from 1.0 (≤ -3 dBTP) to 0.2 (≥ 0 dBTP).
67
+ const clipPenalty = m.truePeakDbtp <= -3 ? 1 : m.truePeakDbtp >= 0 ? 0.2 : 1 - (0.8 * (m.truePeakDbtp + 3)) / 3;
68
+ const clarityMul = m.clarity === undefined ? 1 : 0.4 + 0.6 * clamp01(m.clarity);
69
+ const value = clamp01(loud * clipPenalty * clarityMul);
70
+ // Confidence is lower when we lack a clarity measurement (loudness alone).
71
+ const confidence = m.clarity === undefined ? 0.75 : 0.95;
72
+ const evidence = `${m.integratedLufs.toFixed(1)} LUFS, ${m.truePeakDbtp.toFixed(1)} dBTP` +
73
+ (m.loudnessRangeLu !== undefined ? `, LRA ${m.loudnessRangeLu.toFixed(1)}` : '') +
74
+ (m.clarity !== undefined ? `, clarity ${m.clarity.toFixed(2)}` : '');
75
+ return { value, rawScore: m.integratedLufs, confidence, evidence };
76
+ }
@@ -0,0 +1,95 @@
1
+ /**
2
+ * @cueframe/perception — `energyBeat` signal provider (per-source motion/dynamics
3
+ * energy FACT).
4
+ *
5
+ * A DECISION-FREE measurement (perception is a leaf — it produces a FACT, never a
6
+ * choice): per-source visual MOTION / dynamics energy over a window, calibrated to
7
+ * an ABSOLUTE [0,1] scalar so the Selector core can compare "which angle is the
8
+ * most DYNAMIC right now" across angles (selector-abstraction spec §1.2, the
9
+ * `energyBeat` signal; §9.1 P6, the fancam/CrowdCut switch signal — "cut to the
10
+ * most dynamic angle" on chorus/beat).
11
+ *
12
+ * Perception NEVER imports the Selector core (the rot-guard direction): this module
13
+ * emits a plain `{ value, rawScore, confidence, evidence }` envelope that STRUCTURALLY
14
+ * matches `@cueframe/core`'s `Signal`, but the type lives here (a leaf owns its own
15
+ * fact shape; the core projects it). Adding/upgrading the model = a version stamp
16
+ * here; the core is untouched.
17
+ *
18
+ * LOCALLY COMPUTABLE — NO MODAL (spec §9.1 P6 scope-1, the CRITICAL constraint): the
19
+ * raw measurement is CHEAP frame statistics — the per-frame MEAN-ABS INTER-FRAME
20
+ * LUMA DELTA (a normalized "how much did the picture change frame-to-frame" motion
21
+ * magnitude). That is a single decode + a mean over |luma[t] − luma[t−1]|, with NO
22
+ * GPU model — so the no-deploy CrowdCut validation can derive it host-side (the
23
+ * local node helper `the server-side selector`, exactly like
24
+ * `audioAnalysis.ts` for audioQuality). The pure CALIBRATION here is identical
25
+ * whether the deltas come from the local ffmpeg-frame harness or a future Modal
26
+ * skill — this is the interface, not a fork.
27
+ *
28
+ * This module is the PURE FACT CONTRACT (perception is a leaf — NO node I/O here,
29
+ * so it stays importable by every framework leaf):
30
+ * - `energyBeatSignal(series, sourceInSec, sourceOutSec)` — PURE: windows the
31
+ * per-frame inter-frame deltas (over the angle's OWN source timeline) and maps
32
+ * the windowed mean motion magnitude to the absolute [0,1] value + reasons.
33
+ *
34
+ * Pure + deterministic.
35
+ */
36
+ /** Bump when the motion-delta→value calibration changes (the 3-stamp lesson — a
37
+ * stale cached energyBeat is served if a consumer doesn't bump alongside). */
38
+ export declare const ENERGY_BEAT_VERSION = "energy-beat-v1-2026.06.21";
39
+ /**
40
+ * The raw per-source motion measurement — what BOTH the local frame-stats harness
41
+ * (`frameStats.ts`) and a future Modal skill produce for ONE source. A per-frame
42
+ * normalized inter-frame luma delta over the source's OWN timeline.
43
+ *
44
+ * Source-independent absolutes (each delta is a normalized [0,1] motion magnitude),
45
+ * never normalized across angles (the cross-source comparison is the Selector's
46
+ * job — `switchMargin`/weights, never the signal).
47
+ */
48
+ export interface EnergyBeatSeries {
49
+ /** The measurement version (e.g. the frame-stats harness / Modal skill version).
50
+ * DISTINCT from `ENERGY_BEAT_VERSION` (the calibration stamp). */
51
+ measurementVersion: string;
52
+ /** Frames-per-second of `deltas` (the sampling rate the deltas were computed at). */
53
+ fps: number;
54
+ /** Source-second at which `deltas[0]` starts (the angle's window start). */
55
+ windowStartSec: number;
56
+ /** Per-frame normalized inter-frame luma delta ∈ [0,1] (mean over the frame of
57
+ * |luma[t] − luma[t−1]|, luma in [0,1]). `deltas[0]` is the delta between the
58
+ * window's first two frames. A frame the harness could NOT decode is `null` —
59
+ * NOT 0 (an undecodable frame is absence, never "no motion"; it must not dilute
60
+ * the mean toward "still"). */
61
+ deltas: Array<number | null>;
62
+ }
63
+ /** Matches `@cueframe/core`'s `Signal` shape STRUCTURALLY (perception owns its
64
+ * fact; the core projects `value`/`confidence`). `null` (not 0) when the source
65
+ * has NO decodable frames over the window — absence, never "definitely still". */
66
+ export interface EnergyBeatSignal {
67
+ /** ABSOLUTE, calibrated ∈ [0,1] — "how dynamic is this angle right now,"
68
+ * source-independent. The most dynamic angle scores highest. */
69
+ value: number;
70
+ /** Pre-calibration raw (the mean windowed inter-frame delta) for legibility. */
71
+ rawScore: number;
72
+ confidence: number;
73
+ /** Reasons-only ("motion 0.06, 38/40 frames decoded"); excluded from any hash. */
74
+ evidence: string;
75
+ }
76
+ /**
77
+ * Window the per-frame inter-frame deltas over `[sourceInSec, sourceOutSec)` (the
78
+ * angle's OWN source span — the resolver has already mapped the output grid through
79
+ * the angle's declared offset) and map the windowed mean motion magnitude to the
80
+ * absolute [0,1] energyBeat value (PURE).
81
+ *
82
+ * Returns `null` — NOT 0 — when the window has no measurable signal:
83
+ * - the angle has no series at all (no frames decoded), OR
84
+ * - every frame in the window is `null` (undecodable the whole window).
85
+ * `null` is "not measured" (absence); a weight over an all-null energyBeat is
86
+ * fail-loud upstream (`selector_signal_absent`), never silently 0
87
+ * (`feedback_never_add_fallbacks`). A measured-but-static angle returns a real low
88
+ * value (e.g. 0.02) — that IS a measurement and DOES suppress a cut to it.
89
+ *
90
+ * Calibration (absolute, NOT softmax-across-angles): the windowed mean delta is
91
+ * mapped through a piecewise-linear ramp from STILL_DELTA (→ 0) to DYNAMIC_DELTA
92
+ * (→ 1). Confidence scales with the fraction of decodable frames over the window (a
93
+ * window where most frames failed to decode is a weak vote).
94
+ */
95
+ export declare function energyBeatSignal(series: EnergyBeatSeries | undefined, sourceInSec: number, sourceOutSec: number): EnergyBeatSignal | null;
@@ -0,0 +1,99 @@
1
+ /**
2
+ * @cueframe/perception — `energyBeat` signal provider (per-source motion/dynamics
3
+ * energy FACT).
4
+ *
5
+ * A DECISION-FREE measurement (perception is a leaf — it produces a FACT, never a
6
+ * choice): per-source visual MOTION / dynamics energy over a window, calibrated to
7
+ * an ABSOLUTE [0,1] scalar so the Selector core can compare "which angle is the
8
+ * most DYNAMIC right now" across angles (selector-abstraction spec §1.2, the
9
+ * `energyBeat` signal; §9.1 P6, the fancam/CrowdCut switch signal — "cut to the
10
+ * most dynamic angle" on chorus/beat).
11
+ *
12
+ * Perception NEVER imports the Selector core (the rot-guard direction): this module
13
+ * emits a plain `{ value, rawScore, confidence, evidence }` envelope that STRUCTURALLY
14
+ * matches `@cueframe/core`'s `Signal`, but the type lives here (a leaf owns its own
15
+ * fact shape; the core projects it). Adding/upgrading the model = a version stamp
16
+ * here; the core is untouched.
17
+ *
18
+ * LOCALLY COMPUTABLE — NO MODAL (spec §9.1 P6 scope-1, the CRITICAL constraint): the
19
+ * raw measurement is CHEAP frame statistics — the per-frame MEAN-ABS INTER-FRAME
20
+ * LUMA DELTA (a normalized "how much did the picture change frame-to-frame" motion
21
+ * magnitude). That is a single decode + a mean over |luma[t] − luma[t−1]|, with NO
22
+ * GPU model — so the no-deploy CrowdCut validation can derive it host-side (the
23
+ * local node helper `services/convex/api/selector/frameStats.ts`, exactly like
24
+ * `audioAnalysis.ts` for audioQuality). The pure CALIBRATION here is identical
25
+ * whether the deltas come from the local ffmpeg-frame harness or a future Modal
26
+ * skill — this is the interface, not a fork.
27
+ *
28
+ * This module is the PURE FACT CONTRACT (perception is a leaf — NO node I/O here,
29
+ * so it stays importable by every framework leaf):
30
+ * - `energyBeatSignal(series, sourceInSec, sourceOutSec)` — PURE: windows the
31
+ * per-frame inter-frame deltas (over the angle's OWN source timeline) and maps
32
+ * the windowed mean motion magnitude to the absolute [0,1] value + reasons.
33
+ *
34
+ * Pure + deterministic.
35
+ */
36
+ /** Bump when the motion-delta→value calibration changes (the 3-stamp lesson — a
37
+ * stale cached energyBeat is served if a consumer doesn't bump alongside). */
38
+ export const ENERGY_BEAT_VERSION = 'energy-beat-v1-2026.06.21';
39
+ // ── Calibration constants (EXPLICIT + versioned — spec §9.1 P6 scope-1) ───────
40
+ // Inter-frame luma delta is in [0,1] units (luma normalized to [0,1], delta is an
41
+ // absolute difference, so a full black↔white flip is 1.0). Real footage motion sits
42
+ // well below that: a static talking head ≈ 0.005–0.02, lively hand/body motion ≈
43
+ // 0.03–0.08, a fast pan / dance move / strobe ≈ 0.10+. We map this onto [0,1] with a
44
+ // floor (below which the picture is effectively still) and a saturation point
45
+ // (above which it is "maximally dynamic"). These are the energyBeat calibration
46
+ // curve — they are part of ENERGY_BEAT_VERSION (bump it if you retune them).
47
+ const STILL_DELTA = 0.004; // ≤ this normalized delta ⇒ effectively static ⇒ 0.0
48
+ const DYNAMIC_DELTA = 0.09; // ≥ this normalized delta ⇒ maximally dynamic ⇒ 1.0
49
+ const clamp01 = (x) => (x < 0 ? 0 : x > 1 ? 1 : x);
50
+ /**
51
+ * Window the per-frame inter-frame deltas over `[sourceInSec, sourceOutSec)` (the
52
+ * angle's OWN source span — the resolver has already mapped the output grid through
53
+ * the angle's declared offset) and map the windowed mean motion magnitude to the
54
+ * absolute [0,1] energyBeat value (PURE).
55
+ *
56
+ * Returns `null` — NOT 0 — when the window has no measurable signal:
57
+ * - the angle has no series at all (no frames decoded), OR
58
+ * - every frame in the window is `null` (undecodable the whole window).
59
+ * `null` is "not measured" (absence); a weight over an all-null energyBeat is
60
+ * fail-loud upstream (`selector_signal_absent`), never silently 0
61
+ * (`feedback_never_add_fallbacks`). A measured-but-static angle returns a real low
62
+ * value (e.g. 0.02) — that IS a measurement and DOES suppress a cut to it.
63
+ *
64
+ * Calibration (absolute, NOT softmax-across-angles): the windowed mean delta is
65
+ * mapped through a piecewise-linear ramp from STILL_DELTA (→ 0) to DYNAMIC_DELTA
66
+ * (→ 1). Confidence scales with the fraction of decodable frames over the window (a
67
+ * window where most frames failed to decode is a weak vote).
68
+ */
69
+ export function energyBeatSignal(series, sourceInSec, sourceOutSec) {
70
+ if (!series || series.deltas.length === 0 || series.fps <= 0)
71
+ return null;
72
+ const f0 = Math.max(0, Math.floor((sourceInSec - series.windowStartSec) * series.fps));
73
+ const f1 = Math.min(series.deltas.length, Math.ceil((sourceOutSec - series.windowStartSec) * series.fps));
74
+ if (f1 <= f0)
75
+ return null;
76
+ let sum = 0;
77
+ let present = 0;
78
+ for (let f = f0; f < f1; f++) {
79
+ const d = series.deltas[f];
80
+ if (d === null || d === undefined)
81
+ continue; // frame undecodable — NOT 0
82
+ sum += clamp01(d);
83
+ present++;
84
+ }
85
+ const totalFrames = f1 - f0;
86
+ // No decodable frame in the window at all → absence, not stillness. `null` so a
87
+ // weight over an all-undecodable angle fails loud rather than reading as "static".
88
+ if (present === 0)
89
+ return null;
90
+ const rawScore = sum / present; // mean over DECODED frames (absence does NOT dilute it)
91
+ // Piecewise-linear ramp: STILL_DELTA → 0, DYNAMIC_DELTA → 1.
92
+ const value = clamp01((rawScore - STILL_DELTA) / (DYNAMIC_DELTA - STILL_DELTA));
93
+ // Confidence = decoded-frame coverage over the window. Floor at 0.3 so a sparse-
94
+ // but-real measurement still counts.
95
+ const coverage = present / totalFrames;
96
+ const confidence = clamp01(0.3 + 0.7 * coverage);
97
+ const evidence = `motion ${rawScore.toFixed(4)}, ${present}/${totalFrames} frames decoded`;
98
+ return { value, rawScore, confidence, evidence };
99
+ }
@@ -0,0 +1,80 @@
1
+ /**
2
+ * @cueframe/perception — cross-source identity MATCHING (the `lockPersonId` fact).
3
+ *
4
+ * A DECISION-FREE measurement (perception is a leaf — it produces a FACT, never a
5
+ * choice): given a LOCKED person's reference ArcFace embedding and a candidate
6
+ * angle's per-person median ArcFace embeddings, answer "is the locked person present
7
+ * in this angle, and how confidently" — a cosine match over the stored vectors
8
+ * (selector-abstraction spec §4 cross-source identity; §9.1 P6, `lockPersonId` =
9
+ * lock-to-member across angles).
10
+ *
11
+ * Perception NEVER imports the Selector core (the rot-guard direction): this module
12
+ * is the pure embedding→similarity MATH. The ROUTING decision it feeds — "restrict
13
+ * the candidate set to angles where the locked person is present" — is the
14
+ * RESOLVER's job (the server-side selector), which turns this
15
+ * presence fact into a per-candidate eligibility the candidate-agnostic core reads
16
+ * as an opaque scalar. The core never learns about embeddings (the §9.1 P6
17
+ * ROT-GUARD: cross-source identity is a resolver concern; the core reads only id /
18
+ * Signal.value / policy).
19
+ *
20
+ * THE EXTRACTION IS DEPLOY-DEFERRED, THE MATCHING IS LOCAL: the per-person median
21
+ * ArcFace embedding is PRODUCED by the Modal `detect_subjects` skill (it already
22
+ * computes per-id ArcFace embeddings for the appearance-merge — they were
23
+ * computed-then-discarded; P6 persists the per-person MEDIAN into the SubjectTrack,
24
+ * `+DETECTOR_VERSION`). That extraction needs a `modal deploy` (deploy-deferred,
25
+ * never from a worktree — feedback_never_deploy_from_worktree). This MATCHING (the
26
+ * cosine over the stored vectors) is PURE TS and runs with no deploy — the resolver
27
+ * consumes the persisted embeddings and matches here.
28
+ *
29
+ * Pure + deterministic.
30
+ */
31
+ /** Bump when the matching math / threshold semantics change. The embeddings
32
+ * themselves carry the Modal `DETECTOR_VERSION` (a DISTINCT stamp) — a stale
33
+ * detector version on an embedding is fail-loud in the resolver
34
+ * (`selector_identity_detector_version_mismatch`). */
35
+ export declare const IDENTITY_MATCH_VERSION = "identity-match-v1-2026.06.21";
36
+ export declare const IDENTITY_MATCH_COSINE = 0.4;
37
+ /** A per-person median ArcFace embedding persisted on a SubjectTrack — produced by
38
+ * Modal `detect_subjects` (P6). L2-NORMALIZED (so cosine == dot product). Carries
39
+ * the `detectorVersion` so a stale-version embedding is fail-loud in the resolver. */
40
+ export interface PersonEmbedding {
41
+ /** The track-local consolidated person id (`face-0`..`face-N`). */
42
+ faceId: string;
43
+ /** The per-person MEDIAN ArcFace embedding, L2-normalized. */
44
+ embedding: number[];
45
+ /** The Modal `DETECTOR_VERSION` that produced this embedding (cache-freshness +
46
+ * the fail-loud version guard). */
47
+ detectorVersion: string;
48
+ }
49
+ /** The result of matching a locked reference embedding against ONE angle's people:
50
+ * is the locked person present in this angle, with what cosine confidence + which
51
+ * of the angle's faces it matched. */
52
+ export interface IdentityMatchResult {
53
+ /** True iff some person in this angle matches the reference at/above the cosine
54
+ * threshold (the BEST match wins). */
55
+ present: boolean;
56
+ /** The best cosine similarity over the angle's people ∈ [-1,1]. */
57
+ bestCosine: number;
58
+ /** The angle-local faceId of the best match (or null if the angle has no people). */
59
+ matchedFaceId: string | null;
60
+ }
61
+ /** Cosine similarity of two embeddings. ArcFace vectors are L2-normalized, so this
62
+ * is the dot product, but we normalize defensively (a non-normalized input — e.g. a
63
+ * hand-built test vector — still yields a true cosine). Returns 0 for a zero vector
64
+ * or a length mismatch (degenerate — never a false high match). */
65
+ export declare function cosineSimilarity(a: number[], b: number[]): number;
66
+ /**
67
+ * Match a LOCKED person's reference embedding against ONE angle's per-person median
68
+ * embeddings (PURE). The locked person is "present" in this angle iff the BEST cosine
69
+ * over the angle's people is at/above `cosineThreshold`.
70
+ *
71
+ * Returns `{ present: false, bestCosine: -1, matchedFaceId: null }` when the angle
72
+ * has NO people (a faceless wide) — absence of the locked person, NOT an error. The
73
+ * resolver turns this into "this angle is not eligible while locked" (it has no
74
+ * decodable identity to lock to). A version mismatch between the reference and a
75
+ * candidate embedding is NOT silently tolerated — the resolver checks
76
+ * `detectorVersion` BEFORE calling this and fails loud
77
+ * (`selector_identity_detector_version_mismatch`); this pure math assumes the
78
+ * versions already agree.
79
+ */
80
+ export declare function matchPerson(reference: number[], anglePeople: PersonEmbedding[], cosineThreshold?: number): IdentityMatchResult;
@@ -0,0 +1,91 @@
1
+ /**
2
+ * @cueframe/perception — cross-source identity MATCHING (the `lockPersonId` fact).
3
+ *
4
+ * A DECISION-FREE measurement (perception is a leaf — it produces a FACT, never a
5
+ * choice): given a LOCKED person's reference ArcFace embedding and a candidate
6
+ * angle's per-person median ArcFace embeddings, answer "is the locked person present
7
+ * in this angle, and how confidently" — a cosine match over the stored vectors
8
+ * (selector-abstraction spec §4 cross-source identity; §9.1 P6, `lockPersonId` =
9
+ * lock-to-member across angles).
10
+ *
11
+ * Perception NEVER imports the Selector core (the rot-guard direction): this module
12
+ * is the pure embedding→similarity MATH. The ROUTING decision it feeds — "restrict
13
+ * the candidate set to angles where the locked person is present" — is the
14
+ * RESOLVER's job (services/convex/api/selector/resolver.ts), which turns this
15
+ * presence fact into a per-candidate eligibility the candidate-agnostic core reads
16
+ * as an opaque scalar. The core never learns about embeddings (the §9.1 P6
17
+ * ROT-GUARD: cross-source identity is a resolver concern; the core reads only id /
18
+ * Signal.value / policy).
19
+ *
20
+ * THE EXTRACTION IS DEPLOY-DEFERRED, THE MATCHING IS LOCAL: the per-person median
21
+ * ArcFace embedding is PRODUCED by the Modal `detect_subjects` skill (it already
22
+ * computes per-id ArcFace embeddings for the appearance-merge — they were
23
+ * computed-then-discarded; P6 persists the per-person MEDIAN into the SubjectTrack,
24
+ * `+DETECTOR_VERSION`). That extraction needs a `modal deploy` (deploy-deferred,
25
+ * never from a worktree — feedback_never_deploy_from_worktree). This MATCHING (the
26
+ * cosine over the stored vectors) is PURE TS and runs with no deploy — the resolver
27
+ * consumes the persisted embeddings and matches here.
28
+ *
29
+ * Pure + deterministic.
30
+ */
31
+ /** Bump when the matching math / threshold semantics change. The embeddings
32
+ * themselves carry the Modal `DETECTOR_VERSION` (a DISTINCT stamp) — a stale
33
+ * detector version on an embedding is fail-loud in the resolver
34
+ * (`selector_identity_detector_version_mismatch`). */
35
+ export const IDENTITY_MATCH_VERSION = 'identity-match-v1-2026.06.21';
36
+ // ── Calibration: the cosine threshold above which two ArcFace embeddings are the
37
+ // SAME person. ArcFace embeddings are L2-NORMALIZED, so cosine == dot product and
38
+ // sits in [-1,1]; the SAME identity across angles/poses typically scores ≳ 0.4,
39
+ // different people ≲ 0.2. We use the SAME default as the detector's intra-source
40
+ // appearance-merge (scrfd_track.py APPEARANCE_MERGE_THRESHOLD) so cross-angle
41
+ // matching is consistent with within-source re-linking. Part of
42
+ // IDENTITY_MATCH_VERSION (bump if retuned).
43
+ export const IDENTITY_MATCH_COSINE = 0.4;
44
+ /** Cosine similarity of two embeddings. ArcFace vectors are L2-normalized, so this
45
+ * is the dot product, but we normalize defensively (a non-normalized input — e.g. a
46
+ * hand-built test vector — still yields a true cosine). Returns 0 for a zero vector
47
+ * or a length mismatch (degenerate — never a false high match). */
48
+ export function cosineSimilarity(a, b) {
49
+ if (a.length === 0 || a.length !== b.length)
50
+ return 0;
51
+ let dot = 0;
52
+ let na = 0;
53
+ let nb = 0;
54
+ for (let i = 0; i < a.length; i++) {
55
+ dot += a[i] * b[i];
56
+ na += a[i] * a[i];
57
+ nb += b[i] * b[i];
58
+ }
59
+ const denom = Math.sqrt(na) * Math.sqrt(nb);
60
+ if (denom <= 0)
61
+ return 0;
62
+ return dot / denom;
63
+ }
64
+ /**
65
+ * Match a LOCKED person's reference embedding against ONE angle's per-person median
66
+ * embeddings (PURE). The locked person is "present" in this angle iff the BEST cosine
67
+ * over the angle's people is at/above `cosineThreshold`.
68
+ *
69
+ * Returns `{ present: false, bestCosine: -1, matchedFaceId: null }` when the angle
70
+ * has NO people (a faceless wide) — absence of the locked person, NOT an error. The
71
+ * resolver turns this into "this angle is not eligible while locked" (it has no
72
+ * decodable identity to lock to). A version mismatch between the reference and a
73
+ * candidate embedding is NOT silently tolerated — the resolver checks
74
+ * `detectorVersion` BEFORE calling this and fails loud
75
+ * (`selector_identity_detector_version_mismatch`); this pure math assumes the
76
+ * versions already agree.
77
+ */
78
+ export function matchPerson(reference, anglePeople, cosineThreshold = IDENTITY_MATCH_COSINE) {
79
+ if (anglePeople.length === 0)
80
+ return { present: false, bestCosine: -1, matchedFaceId: null };
81
+ let bestCosine = -1;
82
+ let matchedFaceId = null;
83
+ for (const p of anglePeople) {
84
+ const c = cosineSimilarity(reference, p.embedding);
85
+ if (c > bestCosine) {
86
+ bestCosine = c;
87
+ matchedFaceId = p.faceId;
88
+ }
89
+ }
90
+ return { present: bestCosine >= cosineThreshold, bestCosine, matchedFaceId };
91
+ }