@cueframe/kernel 0.1.0 → 0.1.2

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 (815) hide show
  1. package/LICENSE +661 -0
  2. package/dist/_members/account-model/testing/conversationStoreContract.d.ts +0 -59
  3. package/dist/_members/account-model/testing/index.d.ts +0 -5
  4. package/dist/_members/account-model/testing/restorePointStoreContract.d.ts +0 -24
  5. package/dist/_members/account-model/validators/contextFile.d.ts +0 -6
  6. package/dist/_members/account-model/validators/conversation.d.ts +0 -96
  7. package/dist/_members/account-model/validators/dashboardInsight.d.ts +0 -6
  8. package/dist/_members/account-model/validators/sessionToken.d.ts +0 -29
  9. package/dist/_members/account-model/validators/uploadToken.d.ts +0 -4
  10. package/dist/_members/account-model/validators/userSettings.d.ts +0 -4
  11. package/dist/_members/account-model/validators/workingComposition.d.ts +0 -7
  12. package/dist/_members/animate/animations/Create.d.ts +0 -19
  13. package/dist/_members/animate/animations/FadeIn.d.ts +0 -17
  14. package/dist/_members/animate/animations/GrowArrow.d.ts +0 -19
  15. package/dist/_members/animate/animations/GrowFromCenter.d.ts +0 -12
  16. package/dist/_members/animate/animations/Indicate.d.ts +0 -17
  17. package/dist/_members/animate/animations/MoveAlongPath.d.ts +0 -18
  18. package/dist/_members/animate/animations/Transform.d.ts +0 -28
  19. package/dist/_members/animate/animations/Wiggle.d.ts +0 -18
  20. package/dist/_members/animate/animations/Write.d.ts +0 -20
  21. package/dist/_members/animate/composition/AnimationGroup.d.ts +0 -21
  22. package/dist/_members/animate/composition/LaggedStart.d.ts +0 -22
  23. package/dist/_members/animate/composition/Succession.d.ts +0 -17
  24. package/dist/_members/animate/easing/rush.d.ts +0 -14
  25. package/dist/_members/animate/easing/smooth.d.ts +0 -7
  26. package/dist/_members/animate/easing/smootherstep.d.ts +0 -6
  27. package/dist/_members/animate/index.d.ts +0 -2
  28. package/dist/_members/animate/mobjects/Arrow.d.ts +0 -25
  29. package/dist/_members/animate/mobjects/BrandBox.d.ts +0 -25
  30. package/dist/_members/animate/mobjects/DiGraph.d.ts +0 -18
  31. package/dist/_members/animate/mobjects/Graph.d.ts +0 -38
  32. package/dist/_members/animate/three/ThreeCanvas.d.ts +0 -23
  33. package/dist/_members/animate/three/drei.d.ts +0 -7
  34. package/dist/_members/authoring/agent/buildTools.d.ts +0 -37
  35. package/dist/_members/authoring/agent/contextManagement.d.ts +0 -65
  36. package/dist/_members/authoring/agent/errors.d.ts +0 -9
  37. package/dist/_members/authoring/agent/memoryTool.d.ts +0 -2
  38. package/dist/_members/authoring/agent/promptCache.d.ts +0 -31
  39. package/dist/_members/authoring/agent.d.ts +0 -34
  40. package/dist/_members/authoring/capabilities.d.ts +0 -145
  41. package/dist/_members/authoring/composer/scopes.d.ts +0 -19
  42. package/dist/_members/authoring/context/brand.d.ts +0 -4
  43. package/dist/_members/authoring/context/brandTokens.d.ts +0 -4
  44. package/dist/_members/authoring/context/index.d.ts +0 -1
  45. package/dist/_members/authoring/context/timeline.d.ts +0 -15
  46. package/dist/_members/authoring/context/transcript.d.ts +0 -11
  47. package/dist/_members/authoring/context/types.d.ts +0 -4
  48. package/dist/_members/authoring/decomposer.d.ts +0 -12
  49. package/dist/_members/authoring/evaluate.d.ts +0 -26
  50. package/dist/_members/authoring/evaluator.d.ts +0 -16
  51. package/dist/_members/authoring/models/modelFactory.d.ts +0 -77
  52. package/dist/_members/authoring/motion/applyMotionPreset.d.ts +0 -12
  53. package/dist/_members/authoring/motion/materializeMotionPresetOps.d.ts +0 -7
  54. package/dist/_members/authoring/motion/shell.d.ts +0 -20
  55. package/dist/_members/authoring/pipelineTrace.d.ts +0 -19
  56. package/dist/_members/authoring/prompts/decomposerPrompt.d.ts +0 -4
  57. package/dist/_members/authoring/prompts/designReviewerPrompt.d.ts +0 -16
  58. package/dist/_members/authoring/prompts/evaluatorPrompt.d.ts +0 -4
  59. package/dist/_members/authoring/prompts/graphics.d.ts +0 -5
  60. package/dist/_members/authoring/prompts/plannerPrompt.d.ts +0 -30
  61. package/dist/_members/authoring/providers/resourceApi.d.ts +1 -20
  62. package/dist/_members/authoring/resource-routing.d.ts +0 -121
  63. package/dist/_members/authoring/resources.d.ts +0 -34
  64. package/dist/_members/authoring/scope.d.ts +0 -24
  65. package/dist/_members/authoring/tools/brandTokens.d.ts +0 -22
  66. package/dist/_members/authoring/tools/composeRoleTools.d.ts +0 -79
  67. package/dist/_members/authoring/tools/index.d.ts +0 -1
  68. package/dist/_members/authoring/tools/toolSets.d.ts +0 -50
  69. package/dist/_members/authoring/transpileComponent.d.ts +0 -34
  70. package/dist/_members/authoring/transpileHelper.d.ts +0 -18
  71. package/dist/_members/authoring/types.d.ts +0 -149
  72. package/dist/_members/brand-derivation/constants.d.ts +0 -17
  73. package/dist/_members/brand-derivation/contrastSafe.d.ts +0 -23
  74. package/dist/_members/cloud-import/CloudImportService.d.ts +0 -15
  75. package/dist/_members/cloud-import/ImportProvider.d.ts +0 -45
  76. package/dist/_members/cloud-import/MediaItemPreprocessor.d.ts +0 -9
  77. package/dist/_members/cloud-import/cloudConfig.d.ts +0 -15
  78. package/dist/_members/compose/CompositionRenderer.d.ts +0 -6
  79. package/dist/_members/compose/primitiveRegistry.d.ts +0 -64
  80. package/dist/_members/compose/sceneToRenderInput.d.ts +0 -26
  81. package/dist/_members/compose/schema.d.ts +0 -15
  82. package/dist/_members/compose/tokenResolver.d.ts +0 -11
  83. package/dist/_members/composition/audio/audioMix.d.ts +0 -34
  84. package/dist/_members/composition/audio/mixStaging.d.ts +0 -81
  85. package/dist/_members/composition/audio/musicPack.d.ts +0 -35
  86. package/dist/_members/composition/audio/musicPack.generated.d.ts +0 -6
  87. package/dist/_members/composition/audio/pack.d.ts +0 -43
  88. package/dist/_members/composition/audio/pack.generated.d.ts +0 -6
  89. package/dist/_members/composition/audio/palette.d.ts +0 -36
  90. package/dist/_members/composition/autozoom/index.d.ts +0 -32
  91. package/dist/_members/composition/brand-kit.d.ts +0 -8
  92. package/dist/_members/composition/brief/contract.d.ts +0 -90
  93. package/dist/_members/composition/color-grade.d.ts +0 -11
  94. package/dist/_members/composition/depth.d.ts +0 -19
  95. package/dist/_members/composition/fixtures/agentErrored.d.ts +0 -23
  96. package/dist/_members/composition/fonts.d.ts +0 -62
  97. package/dist/_members/composition/graphics-plan/compile.d.ts +0 -29
  98. package/dist/_members/composition/graphics-plan/index.d.ts +0 -5
  99. package/dist/_members/composition/graphics-plan/instantiateMotif.d.ts +0 -17
  100. package/dist/_members/composition/graphics-plan/motion.d.ts +0 -17
  101. package/dist/_members/composition/graphics-plan/schemas.d.ts +0 -171
  102. package/dist/_members/composition/graphics-plan/solve.d.ts +0 -19
  103. package/dist/_members/composition/invariants/clipPlacement.d.ts +0 -59
  104. package/dist/_members/composition/invariants/composition.d.ts +0 -5
  105. package/dist/_members/composition/invariants/etag.d.ts +0 -7
  106. package/dist/_members/composition/invariants/ids.d.ts +0 -6
  107. package/dist/_members/composition/invariants/keyframes.d.ts +0 -19
  108. package/dist/_members/composition/invariants/markers.d.ts +0 -6
  109. package/dist/_members/composition/invariants/time.d.ts +0 -8
  110. package/dist/_members/composition/invariants/tracks.d.ts +0 -48
  111. package/dist/_members/composition/ops/compositionOps.d.ts +5 -71
  112. package/dist/_members/composition/ops/compositionOps.shared.d.ts +30 -0
  113. package/dist/_members/composition/ops/headlessStore.d.ts +0 -24
  114. package/dist/_members/composition/ops/selectors.d.ts +0 -66
  115. package/dist/_members/composition/ops/timeline-word.d.ts +0 -5
  116. package/dist/_members/composition/ops/transcript.d.ts +0 -27
  117. package/dist/_members/composition/ops/types.d.ts +0 -51
  118. package/dist/_members/composition/primitive-catalog/catalogQuery.d.ts +0 -32
  119. package/dist/_members/composition/primitive-catalog/disabled.d.ts +0 -1
  120. package/dist/_members/composition/primitive-catalog/index.d.ts +0 -11
  121. package/dist/_members/composition/primitive-catalog/paramValidation.d.ts +0 -50
  122. package/dist/_members/composition/primitive-catalog/projection.d.ts +0 -39
  123. package/dist/_members/composition/primitive-catalog/types.d.ts +0 -78
  124. package/dist/_members/composition/projection/behind-placement.d.ts +0 -40
  125. package/dist/_members/composition/projection/behind-readiness.d.ts +52 -0
  126. package/dist/_members/composition/projection/brandKit.d.ts +0 -142
  127. package/dist/_members/composition/projection/cardTokens.d.ts +0 -65
  128. package/dist/_members/composition/projection/composition-floor.d.ts +0 -179
  129. package/dist/_members/composition/projection/cropProjection.d.ts +0 -75
  130. package/dist/_members/composition/projection/index.d.ts +2 -0
  131. package/dist/_members/composition/projection/occlusion-budget.d.ts +0 -37
  132. package/dist/_members/composition/projection/reframe-readiness.d.ts +49 -0
  133. package/dist/_members/composition/projection/safe-zones.d.ts +0 -29
  134. package/dist/_members/composition/reframe/aspectLoss.d.ts +12 -35
  135. package/dist/_members/composition/reframe/coverage.d.ts +0 -40
  136. package/dist/_members/composition/reframe/derive.d.ts +0 -21
  137. package/dist/_members/composition/reframe/index.d.ts +0 -60
  138. package/dist/_members/composition/reframe/kenBurns.d.ts +0 -37
  139. package/dist/_members/composition/reframe/shotScale.d.ts +0 -75
  140. package/dist/_members/composition/reframe/trajectory.d.ts +0 -65
  141. package/dist/_members/composition/timeline/compound.d.ts +0 -31
  142. package/dist/_members/composition/timeline/intent.d.ts +0 -29
  143. package/dist/_members/composition/timeline/keyframes.d.ts +0 -43
  144. package/dist/_members/composition/timeline/link.d.ts +0 -27
  145. package/dist/_members/composition/timeline/occupancy.d.ts +1 -42
  146. package/dist/_members/composition/timeline/placement.d.ts +5 -52
  147. package/dist/_members/composition/timeline/plan.d.ts +5 -53
  148. package/dist/_members/composition/timeline/resolve.d.ts +0 -36
  149. package/dist/_members/composition/timeline/trims.d.ts +0 -49
  150. package/dist/_members/composition/validators/brandKit.d.ts +0 -29
  151. package/dist/_members/composition/validators/composePlan.d.ts +0 -39
  152. package/dist/_members/composition/validators/composition.d.ts +63 -529
  153. package/dist/_members/composition/validators/graphicKinds.d.ts +0 -28
  154. package/dist/_members/composition/validators/render.d.ts +55 -23
  155. package/dist/_members/composition-ops/alphaLayers.d.ts +0 -56
  156. package/dist/_members/composition-ops/index.d.ts +27 -148
  157. package/dist/_members/composition-ops/materializeGrid.d.ts +0 -28
  158. package/dist/_members/composition-ops/opRecorder.d.ts +0 -34
  159. package/dist/_members/composition-ops/recordingStore.d.ts +0 -16
  160. package/dist/_members/composition-ops/replaceRegion.d.ts +0 -48
  161. package/dist/_members/composition-ops/testFixtures.d.ts +0 -14
  162. package/dist/_members/convex-api/api.d.ts +0 -3
  163. package/dist/_members/convex-api/dataModel.d.ts +0 -2
  164. package/dist/_members/core/index.d.ts +1 -1
  165. package/dist/_members/core/render/bookends.d.ts +0 -44
  166. package/dist/_members/core/render/captions.d.ts +0 -42
  167. package/dist/_members/core/render/compositionRender.d.ts +2 -165
  168. package/dist/_members/core/render/deriveTrajectory.d.ts +0 -140
  169. package/dist/_members/core/render/emphasis.d.ts +0 -6
  170. package/dist/_members/core/render/eval/cropBox.d.ts +0 -69
  171. package/dist/_members/core/render/eval/inclusion.d.ts +0 -39
  172. package/dist/_members/core/render/eval/index.d.ts +0 -58
  173. package/dist/_members/core/render/eval/metrics.d.ts +0 -36
  174. package/dist/_members/core/render/exportSettings.d.ts +4 -12
  175. package/dist/_members/core/render/index.d.ts +1 -1
  176. package/dist/_members/core/render/mapFaceToPerson.d.ts +0 -27
  177. package/dist/_members/core/render/types.d.ts +4 -156
  178. package/dist/_members/core/render/variantKeys.d.ts +1 -0
  179. package/dist/_members/core/render/vcam/cameraPath.d.ts +0 -44
  180. package/dist/_members/core/render/vcam/constants.d.ts +0 -93
  181. package/dist/_members/core/render/vcam/errorCodes.d.ts +0 -28
  182. package/dist/_members/core/render/vcam/framing.d.ts +0 -76
  183. package/dist/_members/core/render/vcam/requiredRegion.d.ts +0 -71
  184. package/dist/_members/core/render/vcam/shots.d.ts +0 -40
  185. package/dist/_members/core/render/vcam/subjectSet.d.ts +0 -85
  186. package/dist/_members/core/select/errorCodes.d.ts +0 -25
  187. package/dist/_members/core/select/index.d.ts +0 -20
  188. package/dist/_members/core/select/model.d.ts +0 -79
  189. package/dist/_members/core/select/select.d.ts +0 -49
  190. package/dist/_members/core/select/stabilize.d.ts +0 -102
  191. package/dist/_members/core/types.d.ts +0 -1
  192. package/dist/_members/director/ai-sdk/chunks.d.ts +14 -0
  193. package/dist/_members/director/ai-sdk/context.d.ts +6 -0
  194. package/dist/_members/director/ai-sdk/generationTool.d.ts +8 -0
  195. package/dist/_members/director/ai-sdk/index.d.ts +4 -0
  196. package/dist/_members/director/ai-sdk/messages.d.ts +292 -0
  197. package/dist/_members/director/domain/chat.d.ts +357 -0
  198. package/dist/_members/director/domain/generation.d.ts +1 -0
  199. package/dist/_members/director/domain/index.d.ts +3 -0
  200. package/dist/_members/director/domain/ports.d.ts +32 -0
  201. package/dist/_members/director/index.d.ts +2 -0
  202. package/dist/_members/director/testing/contract.d.ts +52 -0
  203. package/dist/_members/director/testing/index.d.ts +1 -0
  204. package/dist/_members/errors/registry.d.ts +0 -32
  205. package/dist/_members/foundation/codes/index.d.ts +0 -21
  206. package/dist/_members/mcp/adapter.d.ts +1 -84
  207. package/dist/_members/mcp/burnedNames.d.ts +0 -16
  208. package/dist/_members/mcp/core.d.ts +1 -81
  209. package/dist/_members/mcp/curation.d.ts +0 -112
  210. package/dist/_members/mcp/executor.d.ts +0 -49
  211. package/dist/_members/mcp/format.d.ts +0 -6
  212. package/dist/_members/mcp/generated/catalogPreviews.d.ts +0 -1
  213. package/dist/_members/mcp/generated/operations.d.ts +0 -23
  214. package/dist/_members/mcp/internalLoopTools.d.ts +0 -23
  215. package/dist/_members/mcp/prompts.d.ts +0 -16
  216. package/dist/_members/mcp/resources.d.ts +0 -13
  217. package/dist/_members/mcp/server.d.ts +0 -61
  218. package/dist/_members/mcp/wait.d.ts +0 -22
  219. package/dist/_members/mcp/x402Meta.d.ts +0 -44
  220. package/dist/_members/media-model/generation.d.ts +314 -0
  221. package/dist/_members/media-model/index.d.ts +1 -0
  222. package/dist/_members/media-model/media-kind.d.ts +0 -27
  223. package/dist/_members/media-model/transcriptSearch.d.ts +0 -42
  224. package/dist/_members/nle-export/fcpxml.d.ts +0 -13
  225. package/dist/_members/nle-export/index.d.ts +0 -6
  226. package/dist/_members/nle-export/types.d.ts +0 -26
  227. package/dist/_members/nle-export/xml/index.d.ts +0 -8
  228. package/dist/_members/nle-export/xml-utils.d.ts +0 -12
  229. package/dist/_members/perception/activeSpeaker.d.ts +0 -94
  230. package/dist/_members/perception/audioQuality.d.ts +0 -64
  231. package/dist/_members/perception/energyBeat.d.ts +0 -81
  232. package/dist/_members/perception/identityMatch.d.ts +0 -66
  233. package/dist/_members/perception/index.d.ts +0 -52
  234. package/dist/_members/perception/visualQuality.d.ts +0 -73
  235. package/dist/_members/plane/conformance.d.ts +0 -59
  236. package/dist/_members/plane/contract.d.ts +0 -29
  237. package/dist/_members/plane/index.d.ts +0 -15
  238. package/dist/_members/primitives/backgrounds/animated-bar-chart/index.d.ts +0 -13
  239. package/dist/_members/primitives/backgrounds/animated-line-chart/index.d.ts +0 -14
  240. package/dist/_members/primitives/backgrounds/dither-gradient-bg/index.d.ts +0 -14
  241. package/dist/_members/primitives/backgrounds/dynamic-grid/index.d.ts +0 -8
  242. package/dist/_members/primitives/backgrounds/ecosystem-constellation/index.d.ts +0 -8
  243. package/dist/_members/primitives/backgrounds/infinite-marquee/index.d.ts +0 -8
  244. package/dist/_members/primitives/backgrounds/mesh-gradient-bg/index.d.ts +0 -8
  245. package/dist/_members/primitives/backgrounds/perspective-marquee/index.d.ts +0 -8
  246. package/dist/_members/primitives/backgrounds/silk-flow-bg/index.d.ts +0 -17
  247. package/dist/_members/primitives/backgrounds/vector-field/index.d.ts +0 -14
  248. package/dist/_members/primitives/backgrounds/volumetric-rays/index.d.ts +0 -18
  249. package/dist/_members/primitives/captions/Captions.d.ts +0 -24
  250. package/dist/_members/primitives/captions/index.d.ts +0 -15
  251. package/dist/_members/primitives/captions/paginate.d.ts +0 -21
  252. package/dist/_members/primitives/captions/placement.d.ts +0 -30
  253. package/dist/_members/primitives/effects/blur/index.d.ts +0 -16
  254. package/dist/_members/primitives/effects/color-grade/index.d.ts +0 -20
  255. package/dist/_members/primitives/effects/grain/index.d.ts +0 -12
  256. package/dist/_members/primitives/effects/parallax/index.d.ts +0 -13
  257. package/dist/_members/primitives/effects/particles/index.d.ts +0 -16
  258. package/dist/_members/primitives/effects/pulsing-indicator/index.d.ts +0 -10
  259. package/dist/_members/primitives/effects/spotlight-card/index.d.ts +0 -8
  260. package/dist/_members/primitives/effects/spring-pop-in/index.d.ts +0 -10
  261. package/dist/_members/primitives/effects/success-confetti/index.d.ts +0 -8
  262. package/dist/_members/primitives/effects/vignette/index.d.ts +0 -12
  263. package/dist/_members/primitives/hero-text/HeroText.d.ts +0 -17
  264. package/dist/_members/primitives/hero-text/config.d.ts +0 -10
  265. package/dist/_members/primitives/hero-text/index.d.ts +0 -14
  266. package/dist/_members/primitives/index.d.ts +0 -8
  267. package/dist/_members/primitives/layouts/chat-to-preview-layout/index.d.ts +0 -8
  268. package/dist/_members/primitives/layouts/infinite-bento-pan/index.d.ts +0 -8
  269. package/dist/_members/primitives/layouts/letterbox/index.d.ts +0 -15
  270. package/dist/_members/primitives/layouts/photo-grid/index.d.ts +0 -17
  271. package/dist/_members/primitives/layouts/picture-in-picture/index.d.ts +0 -21
  272. package/dist/_members/primitives/layouts/split-screen/index.d.ts +0 -15
  273. package/dist/_members/primitives/layouts/staggered-bento-grid/index.d.ts +0 -8
  274. package/dist/_members/primitives/lib/easings.d.ts +0 -27
  275. package/dist/_members/primitives/lib/palette.d.ts +0 -22
  276. package/dist/_members/primitives/lib/preview.d.ts +0 -22
  277. package/dist/_members/primitives/lib/schema.d.ts +0 -36
  278. package/dist/_members/primitives/lib/seeded-random.d.ts +0 -23
  279. package/dist/_members/primitives/lib/text/contrast.d.ts +0 -17
  280. package/dist/_members/primitives/lib/text/fill.d.ts +0 -5
  281. package/dist/_members/primitives/lib/text/fitText.d.ts +0 -37
  282. package/dist/_members/primitives/lib/text/marker.d.ts +0 -10
  283. package/dist/_members/primitives/lib/text/motion.d.ts +0 -46
  284. package/dist/_members/primitives/lib/text/recolor.d.ts +0 -11
  285. package/dist/_members/primitives/lib/text/spec.d.ts +0 -39
  286. package/dist/_members/primitives/lib/text/stage.d.ts +0 -17
  287. package/dist/_members/primitives/lib/text/typeface.d.ts +0 -11
  288. package/dist/_members/primitives/lib/tokens.d.ts +0 -87
  289. package/dist/_members/primitives/lib/types.d.ts +0 -141
  290. package/dist/_members/primitives/scenes/changelog-bite/index.d.ts +0 -12
  291. package/dist/_members/primitives/scenes/hero-device-assemble/index.d.ts +0 -8
  292. package/dist/_members/primitives/scenes/landing-code-showcase/index.d.ts +0 -8
  293. package/dist/_members/primitives/scenes/live-code-compilation/index.d.ts +0 -8
  294. package/dist/_members/primitives/scenes/pricing-tier-focus/index.d.ts +0 -8
  295. package/dist/_members/primitives/scenes/product-launch-trailer/index.d.ts +0 -8
  296. package/dist/_members/primitives/scenes/terminal-to-browser-deploy/index.d.ts +0 -8
  297. package/dist/_members/primitives/subject-foreground/SubjectForeground.d.ts +0 -38
  298. package/dist/_members/primitives/subject-foreground/index.d.ts +0 -21
  299. package/dist/_members/primitives/text/blur-reveal/index.d.ts +0 -9
  300. package/dist/_members/primitives/text/cinematic-title/index.d.ts +0 -14
  301. package/dist/_members/primitives/text/inline-highlight/index.d.ts +0 -11
  302. package/dist/_members/primitives/text/karaoke/index.d.ts +0 -13
  303. package/dist/_members/primitives/text/kinetic-type/index.d.ts +0 -15
  304. package/dist/_members/primitives/text/lower-third/index.d.ts +0 -14
  305. package/dist/_members/primitives/text/marker-highlight/index.d.ts +0 -10
  306. package/dist/_members/primitives/text/masked-slide-reveal/index.d.ts +0 -8
  307. package/dist/_members/primitives/text/matrix-decode/index.d.ts +0 -9
  308. package/dist/_members/primitives/text/quote-card/index.d.ts +0 -9
  309. package/dist/_members/primitives/text/rgb-glitch-text/index.d.ts +0 -13
  310. package/dist/_members/primitives/text/shimmer-sweep/index.d.ts +0 -10
  311. package/dist/_members/primitives/text/slot-machine-roll/index.d.ts +0 -8
  312. package/dist/_members/primitives/text/staggered-fade-up/index.d.ts +0 -12
  313. package/dist/_members/primitives/text/stat-counter/index.d.ts +0 -13
  314. package/dist/_members/primitives/text/strikethrough-replace/index.d.ts +0 -9
  315. package/dist/_members/primitives/text/text-effect/index.d.ts +0 -17
  316. package/dist/_members/primitives/text/text-fade-replace/index.d.ts +0 -8
  317. package/dist/_members/primitives/text/token-stream/index.d.ts +0 -11
  318. package/dist/_members/primitives/text/tracking-in/index.d.ts +0 -8
  319. package/dist/_members/primitives/text/typewriter/index.d.ts +0 -12
  320. package/dist/_members/primitives/transitions/chromatic-aberration-wipe/index.d.ts +0 -11
  321. package/dist/_members/primitives/transitions/code-diff-wipe/index.d.ts +0 -8
  322. package/dist/_members/primitives/transitions/directional-wipe/index.d.ts +0 -10
  323. package/dist/_members/primitives/transitions/frosted-glass-wipe/index.d.ts +0 -10
  324. package/dist/_members/primitives/transitions/glitch-cut/index.d.ts +0 -3
  325. package/dist/_members/primitives/transitions/grid-pixelate-wipe/index.d.ts +0 -14
  326. package/dist/_members/primitives/transitions/ink-wipe/index.d.ts +0 -3
  327. package/dist/_members/primitives/transitions/kinetic-type-mask/index.d.ts +0 -12
  328. package/dist/_members/primitives/transitions/light-leak/index.d.ts +0 -3
  329. package/dist/_members/primitives/transitions/luma-matte/index.d.ts +0 -2
  330. package/dist/_members/primitives/transitions/morph/index.d.ts +0 -2
  331. package/dist/_members/primitives/transitions/spatial-push/index.d.ts +0 -10
  332. package/dist/_members/primitives/transitions/swipe-transition-wipe/index.d.ts +0 -13
  333. package/dist/_members/primitives/transitions/zoom-through/index.d.ts +0 -2
  334. package/dist/_members/primitives/transitions/zoom-through-transition/index.d.ts +0 -9
  335. package/dist/_members/primitives/ui-blocks/ai-generate-overlay/index.d.ts +0 -8
  336. package/dist/_members/primitives/ui-blocks/ai-generation-canvas/index.d.ts +0 -8
  337. package/dist/_members/primitives/ui-blocks/badge-pop/index.d.ts +0 -11
  338. package/dist/_members/primitives/ui-blocks/before-after-slider/index.d.ts +0 -11
  339. package/dist/_members/primitives/ui-blocks/benchmark-bars/index.d.ts +0 -11
  340. package/dist/_members/primitives/ui-blocks/bounding-box-selector/index.d.ts +0 -8
  341. package/dist/_members/primitives/ui-blocks/browser-flow/index.d.ts +0 -8
  342. package/dist/_members/primitives/ui-blocks/brush-stroke-simulator/index.d.ts +0 -18
  343. package/dist/_members/primitives/ui-blocks/chat-exchange/index.d.ts +0 -10
  344. package/dist/_members/primitives/ui-blocks/code-accordion/index.d.ts +0 -8
  345. package/dist/_members/primitives/ui-blocks/context-meter/index.d.ts +0 -11
  346. package/dist/_members/primitives/ui-blocks/cursor-flow/index.d.ts +0 -11
  347. package/dist/_members/primitives/ui-blocks/dashboard-populate/index.d.ts +0 -8
  348. package/dist/_members/primitives/ui-blocks/data-flow-pipes/index.d.ts +0 -9
  349. package/dist/_members/primitives/ui-blocks/device-mockup-zoom/index.d.ts +0 -8
  350. package/dist/_members/primitives/ui-blocks/drag-and-drop-flow/index.d.ts +0 -8
  351. package/dist/_members/primitives/ui-blocks/eval-scorecard/index.d.ts +0 -11
  352. package/dist/_members/primitives/ui-blocks/glass-code-block/index.d.ts +0 -8
  353. package/dist/_members/primitives/ui-blocks/image-expand-to-fullscreen/index.d.ts +0 -8
  354. package/dist/_members/primitives/ui-blocks/metric-gauge/index.d.ts +0 -12
  355. package/dist/_members/primitives/ui-blocks/morphing-modal/index.d.ts +0 -8
  356. package/dist/_members/primitives/ui-blocks/pipeline-journey/index.d.ts +0 -8
  357. package/dist/_members/primitives/ui-blocks/progress-steps/index.d.ts +0 -8
  358. package/dist/_members/primitives/ui-blocks/reasoning-trace/index.d.ts +0 -10
  359. package/dist/_members/primitives/ui-blocks/simulated-cursor/index.d.ts +0 -8
  360. package/dist/_members/primitives/ui-blocks/terminal-simulator/index.d.ts +0 -19
  361. package/dist/_members/primitives/ui-blocks/toast-notification/index.d.ts +0 -8
  362. package/dist/_members/primitives/ui-blocks/tool-call-stack/index.d.ts +0 -8
  363. package/dist/_members/primitives/ui-blocks/tool-menu-slide-in/index.d.ts +0 -8
  364. package/dist/_members/primitives/ui-blocks/visual-docs-snippet/index.d.ts +0 -8
  365. package/dist/_members/primitives/ui-blocks/voice-waveform/index.d.ts +0 -11
  366. package/dist/_members/primitives/workspace.d.ts +0 -29
  367. package/dist/_members/render-harness/browserOptions.d.ts +11 -0
  368. package/dist/_members/render-harness/browserOptions.d.ts.map +1 -0
  369. package/dist/_members/render-harness/cardRender.d.ts +0 -40
  370. package/dist/_members/render-harness/cardRender.d.ts.map +1 -1
  371. package/dist/_members/render-harness/contractRender.d.ts +0 -16
  372. package/dist/_members/render-harness/contractRender.d.ts.map +1 -1
  373. package/dist/_members/render-harness/extractSegments.d.ts +0 -37
  374. package/dist/_members/render-harness/extractSegments.d.ts.map +1 -1
  375. package/dist/_members/render-harness/index.d.ts +0 -12
  376. package/dist/_members/render-harness/index.d.ts.map +1 -1
  377. package/dist/_members/render-harness/localRender.d.ts +1 -110
  378. package/dist/_members/render-harness/localRender.d.ts.map +1 -1
  379. package/dist/_members/render-harness/materializeSources.d.ts +0 -22
  380. package/dist/_members/render-harness/materializeSources.d.ts.map +1 -1
  381. package/dist/_members/render-harness/mediaServer.d.ts +0 -16
  382. package/dist/_members/render-harness/mediaServer.d.ts.map +1 -1
  383. package/dist/_members/render-harness/renderInputAssets.d.ts +0 -45
  384. package/dist/_members/render-harness/renderInputAssets.d.ts.map +1 -1
  385. package/dist/_members/render-harness/resolveAssets.d.ts +0 -24
  386. package/dist/_members/render-harness/resolveAssets.d.ts.map +1 -1
  387. package/dist/_members/render-harness/sandboxGlobalSpecs.d.ts +0 -14
  388. package/dist/_members/render-harness/sandboxGlobalSpecs.d.ts.map +1 -1
  389. package/dist/account-model/validators.js +1 -1
  390. package/dist/account-model.js +1 -1
  391. package/dist/animate.js +0 -15
  392. package/dist/authoring/build-tools.js +8 -8
  393. package/dist/authoring/composer.js +0 -20
  394. package/dist/authoring/context.js +6 -6
  395. package/dist/authoring/pipelineTrace.js +1 -1
  396. package/dist/authoring/prompts.js +1 -1
  397. package/dist/authoring/resource-routing.js +1 -1
  398. package/dist/authoring/resources.js +1 -1
  399. package/dist/authoring/tools.js +7 -7
  400. package/dist/authoring.js +16 -80
  401. package/dist/{chunk-TWQOKKAF.js → chunk-23HFEKV7.js} +0 -6
  402. package/dist/{chunk-EA6MYCYW.js → chunk-2B5VJZHL.js} +14 -25
  403. package/dist/chunk-73DQTUWY.js +131 -0
  404. package/dist/{chunk-HI4UTTPS.js → chunk-AO744WIK.js} +1 -43
  405. package/dist/chunk-BADZHXLR.js +0 -0
  406. package/dist/{chunk-GA23TRNR.js → chunk-BKHGL4MB.js} +5 -13
  407. package/dist/{chunk-VOO5FQSS.js → chunk-BZZTVOGG.js} +6 -55
  408. package/dist/{chunk-ODL7GQJG.js → chunk-CAJQ7H5A.js} +17 -17
  409. package/dist/{chunk-ZB3C3HM7.js → chunk-DCVJWGIA.js} +4 -9
  410. package/dist/{chunk-IBYQG46O.js → chunk-DWLNPNC4.js} +1 -4
  411. package/dist/{chunk-SW336CJP.js → chunk-DYZE7JZA.js} +3 -26
  412. package/dist/{chunk-HCCBDJLW.js → chunk-EP2Y6M2J.js} +0 -4
  413. package/dist/{chunk-ZE76SSRT.js → chunk-FMODQD5P.js} +0 -6
  414. package/dist/chunk-FTVZF4GO.js +0 -0
  415. package/dist/{chunk-PMY24FUD.js → chunk-G5BFI32U.js} +1 -1
  416. package/dist/{chunk-LD5ZOUFT.js → chunk-GF52TW4I.js} +0 -4
  417. package/dist/{chunk-ABL557OT.js → chunk-GMD33ZD7.js} +1 -8
  418. package/dist/{chunk-XWKZB5U5.js → chunk-ICSZF37W.js} +21 -150
  419. package/dist/chunk-IEXAKOEX.js +113 -0
  420. package/dist/{chunk-UY4SWJVE.js → chunk-K2IUBCND.js} +0 -12
  421. package/dist/chunk-LJ5W4ZBU.js +146 -0
  422. package/dist/chunk-LLUW26BS.js +255 -0
  423. package/dist/{chunk-GEA7E2FL.js → chunk-PIURX6IZ.js} +220 -2
  424. package/dist/{chunk-MMEJ3Y7E.js → chunk-QETYXKQQ.js} +1 -10
  425. package/dist/{chunk-YX2GSJK7.js → chunk-RP4SXXLJ.js} +1 -1
  426. package/dist/{chunk-P727GZVO.js → chunk-SAMQUUO5.js} +3 -5
  427. package/dist/{chunk-RF7U3SCL.js → chunk-TD347SSX.js} +3 -11
  428. package/dist/{chunk-NFEGPWGS.js → chunk-TFGKUWHY.js} +1 -88
  429. package/dist/{chunk-LM4WDUQJ.js → chunk-TPA6PYN2.js} +1 -11
  430. package/dist/{chunk-OLFOPQCA.js → chunk-UQSOS726.js} +4 -18
  431. package/dist/{chunk-GBRNYH7W.js → chunk-V24L35GM.js} +0 -11
  432. package/dist/{chunk-COYMZ76S.js → chunk-VFMW3JUY.js} +1 -1
  433. package/dist/{chunk-YIOY2XEO.js → chunk-VHF66LCQ.js} +22 -94
  434. package/dist/{chunk-JMURQODM.js → chunk-VZ7TYX6Z.js} +0 -1
  435. package/dist/{chunk-SIGGQRY2.js → chunk-W3SIWT7J.js} +5030 -4412
  436. package/dist/{chunk-W35ZMOXB.js → chunk-WPZKOVYF.js} +0 -5
  437. package/dist/chunk-WZH57M53.js +494 -0
  438. package/dist/{chunk-AYVJXDLB.js → chunk-XHGZ2E77.js} +0 -2
  439. package/dist/{chunk-JRQVPFLF.js → chunk-XQ72DZKJ.js} +1 -1
  440. package/dist/{chunk-7DHP4ESU.js → chunk-YLDMAZZE.js} +0 -10
  441. package/dist/{chunk-FYZVH3MC.js → chunk-YQ7FFW3G.js} +0 -11
  442. package/dist/chunk-ZPLJ24OV.js +93 -0
  443. package/dist/cloud-import/multipart.js +1 -1
  444. package/dist/cloud-import.js +9 -16
  445. package/dist/compose/renderer.js +18 -18
  446. package/dist/compose.js +21 -21
  447. package/dist/composition/audio.js +1 -1
  448. package/dist/composition/brand-kit.js +0 -5
  449. package/dist/composition/graphics-plan.js +4 -4
  450. package/dist/composition/ops.js +5 -5
  451. package/dist/composition/primitive-catalog.js +1 -1
  452. package/dist/composition/projection.js +28 -4
  453. package/dist/composition/reframe/kenBurns.js +0 -4
  454. package/dist/composition/reframe.js +4 -2
  455. package/dist/composition/timeline.js +1 -1
  456. package/dist/composition/validators/graphic-kinds.js +1 -1
  457. package/dist/composition/validators.js +8 -6
  458. package/dist/composition-ops.js +18 -135
  459. package/dist/composition.js +35 -9
  460. package/dist/context-JLLU3MYD.js +14 -0
  461. package/dist/core/render.js +9 -7
  462. package/dist/core/select.js +2 -6
  463. package/dist/core.js +5 -7
  464. package/dist/director/ai-sdk.d.ts +1 -0
  465. package/dist/director/ai-sdk.js +33 -0
  466. package/dist/director/domain.d.ts +1 -0
  467. package/dist/director/domain.js +62 -0
  468. package/dist/director/testing.d.ts +1 -0
  469. package/dist/director/testing.js +22 -0
  470. package/dist/director.d.ts +1 -0
  471. package/dist/director.js +86 -0
  472. package/dist/errors.js +1 -1
  473. package/dist/foundation.js +1 -0
  474. package/dist/mcp/adapter.js +5 -64
  475. package/dist/mcp/core.js +1 -1
  476. package/dist/mcp/curation.js +1 -1
  477. package/dist/mcp/server.js +4 -4
  478. package/dist/mcp.js +4 -4
  479. package/dist/media-model/generation.d.ts +1 -0
  480. package/dist/media-model/generation.js +40 -0
  481. package/dist/media-model/testing.js +1071 -718
  482. package/dist/media-model.js +38 -6
  483. package/dist/nle-export/server.js +328 -130
  484. package/dist/nle-export.js +22 -21
  485. package/dist/plane/contract.js +0 -3
  486. package/dist/primitives/backgrounds.js +2 -2
  487. package/dist/primitives/captions.js +0 -5
  488. package/dist/primitives/effects.js +2 -2
  489. package/dist/primitives/hero-text.js +2 -2
  490. package/dist/primitives/layouts.js +2 -2
  491. package/dist/primitives/lib/index.js +17 -17
  492. package/dist/primitives/lib/text/fitText.js +1 -1
  493. package/dist/primitives/lib/tokens.js +1 -1
  494. package/dist/primitives/lib.js +17 -17
  495. package/dist/primitives/scenes.js +2 -2
  496. package/dist/primitives/text.js +2 -2
  497. package/dist/primitives/ui-blocks.js +4 -4
  498. package/dist/primitives.js +21 -21
  499. package/dist/render-harness/sandboxGlobalSpecs.js +1 -1
  500. package/dist/render-harness.js +24 -41
  501. package/package.json +39 -24
  502. package/dist/_members/account-model/index.js +0 -4
  503. package/dist/_members/account-model/testing/conversationStoreContract.js +0 -168
  504. package/dist/_members/account-model/testing/index.js +0 -7
  505. package/dist/_members/account-model/testing/restorePointStoreContract.js +0 -69
  506. package/dist/_members/account-model/types/index.js +0 -1
  507. package/dist/_members/account-model/validators/contextFile.js +0 -18
  508. package/dist/_members/account-model/validators/conversation.js +0 -95
  509. package/dist/_members/account-model/validators/dashboardInsight.js +0 -16
  510. package/dist/_members/account-model/validators/index.js +0 -7
  511. package/dist/_members/account-model/validators/sessionToken.js +0 -49
  512. package/dist/_members/account-model/validators/uploadToken.js +0 -16
  513. package/dist/_members/account-model/validators/userSettings.js +0 -12
  514. package/dist/_members/account-model/validators/workingComposition.js +0 -20
  515. package/dist/_members/brand-derivation/constants.js +0 -20
  516. package/dist/_members/brand-derivation/contrastSafe.js +0 -114
  517. package/dist/_members/brand-derivation/index.js +0 -1
  518. package/dist/_members/cloud-import/chunk-XKO6ZSWI.js +0 -162
  519. package/dist/_members/cloud-import/chunk-XKO6ZSWI.js.map +0 -1
  520. package/dist/_members/cloud-import/index.js +0 -241
  521. package/dist/_members/cloud-import/index.js.map +0 -1
  522. package/dist/_members/cloud-import/multipartUpload.js +0 -7
  523. package/dist/_members/cloud-import/multipartUpload.js.map +0 -1
  524. package/dist/_members/composition/audio/audioMix.js +0 -61
  525. package/dist/_members/composition/audio/index.js +0 -5
  526. package/dist/_members/composition/audio/mixStaging.js +0 -195
  527. package/dist/_members/composition/audio/musicPack.generated.js +0 -136
  528. package/dist/_members/composition/audio/musicPack.js +0 -36
  529. package/dist/_members/composition/audio/pack.generated.js +0 -603
  530. package/dist/_members/composition/audio/pack.js +0 -48
  531. package/dist/_members/composition/audio/palette.js +0 -134
  532. package/dist/_members/composition/autozoom/index.js +0 -83
  533. package/dist/_members/composition/brand-kit.js +0 -45
  534. package/dist/_members/composition/brief/contract.js +0 -209
  535. package/dist/_members/composition/color-grade.js +0 -80
  536. package/dist/_members/composition/depth.js +0 -8
  537. package/dist/_members/composition/fixtures/index.js +0 -143
  538. package/dist/_members/composition/fixtures/vaayaErrored.d.ts +0 -25
  539. package/dist/_members/composition/fixtures/vaayaErrored.js +0 -203
  540. package/dist/_members/composition/fonts.js +0 -162
  541. package/dist/_members/composition/graphics-plan/compile.js +0 -221
  542. package/dist/_members/composition/graphics-plan/index.js +0 -10
  543. package/dist/_members/composition/graphics-plan/instantiateMotif.js +0 -44
  544. package/dist/_members/composition/graphics-plan/motion.js +0 -66
  545. package/dist/_members/composition/graphics-plan/schemas.js +0 -261
  546. package/dist/_members/composition/graphics-plan/solve.js +0 -145
  547. package/dist/_members/composition/index.js +0 -5
  548. package/dist/_members/composition/invariants/clipPlacement.js +0 -69
  549. package/dist/_members/composition/invariants/composition.js +0 -28
  550. package/dist/_members/composition/invariants/errors.js +0 -10
  551. package/dist/_members/composition/invariants/etag.js +0 -38
  552. package/dist/_members/composition/invariants/ids.js +0 -33
  553. package/dist/_members/composition/invariants/index.js +0 -9
  554. package/dist/_members/composition/invariants/keyframes.js +0 -45
  555. package/dist/_members/composition/invariants/markers.js +0 -29
  556. package/dist/_members/composition/invariants/time.js +0 -20
  557. package/dist/_members/composition/invariants/tracks.js +0 -304
  558. package/dist/_members/composition/ops/compositionOps.js +0 -1056
  559. package/dist/_members/composition/ops/headlessStore.js +0 -94
  560. package/dist/_members/composition/ops/index.js +0 -4
  561. package/dist/_members/composition/ops/selectors.js +0 -118
  562. package/dist/_members/composition/ops/timeline-word.js +0 -1
  563. package/dist/_members/composition/ops/transcript.js +0 -77
  564. package/dist/_members/composition/ops/types.js +0 -16
  565. package/dist/_members/composition/primitive-catalog/catalogQuery.js +0 -150
  566. package/dist/_members/composition/primitive-catalog/disabled.js +0 -32
  567. package/dist/_members/composition/primitive-catalog/generated/meta.js +0 -15161
  568. package/dist/_members/composition/primitive-catalog/index.js +0 -46
  569. package/dist/_members/composition/primitive-catalog/paramValidation.js +0 -231
  570. package/dist/_members/composition/primitive-catalog/projection.js +0 -164
  571. package/dist/_members/composition/primitive-catalog/types.js +0 -14
  572. package/dist/_members/composition/projection/behind-placement.js +0 -62
  573. package/dist/_members/composition/projection/brandKit.js +0 -482
  574. package/dist/_members/composition/projection/cardTokens.js +0 -209
  575. package/dist/_members/composition/projection/composition-floor.js +0 -582
  576. package/dist/_members/composition/projection/cropProjection.js +0 -257
  577. package/dist/_members/composition/projection/index.js +0 -7
  578. package/dist/_members/composition/projection/occlusion-budget.js +0 -104
  579. package/dist/_members/composition/projection/safe-zones.js +0 -99
  580. package/dist/_members/composition/reframe/aspectLoss.js +0 -115
  581. package/dist/_members/composition/reframe/coverage.js +0 -62
  582. package/dist/_members/composition/reframe/derive.js +0 -73
  583. package/dist/_members/composition/reframe/index.js +0 -109
  584. package/dist/_members/composition/reframe/kenBurns.js +0 -64
  585. package/dist/_members/composition/reframe/shotScale.js +0 -176
  586. package/dist/_members/composition/reframe/trajectory.js +0 -124
  587. package/dist/_members/composition/timeline/compound.js +0 -134
  588. package/dist/_members/composition/timeline/index.js +0 -9
  589. package/dist/_members/composition/timeline/intent.js +0 -228
  590. package/dist/_members/composition/timeline/keyframes.js +0 -121
  591. package/dist/_members/composition/timeline/link.js +0 -59
  592. package/dist/_members/composition/timeline/occupancy.js +0 -36
  593. package/dist/_members/composition/timeline/placement.js +0 -74
  594. package/dist/_members/composition/timeline/plan.js +0 -31
  595. package/dist/_members/composition/timeline/resolve.js +0 -170
  596. package/dist/_members/composition/timeline/trims.js +0 -278
  597. package/dist/_members/composition/types/index.js +0 -1
  598. package/dist/_members/composition/validators/brandKit.js +0 -295
  599. package/dist/_members/composition/validators/composePlan.js +0 -113
  600. package/dist/_members/composition/validators/composition.js +0 -703
  601. package/dist/_members/composition/validators/font.js +0 -34
  602. package/dist/_members/composition/validators/graphicKinds.js +0 -30
  603. package/dist/_members/composition/validators/index.js +0 -9
  604. package/dist/_members/composition/validators/project.js +0 -29
  605. package/dist/_members/composition/validators/registry.js +0 -41
  606. package/dist/_members/composition/validators/render.js +0 -139
  607. package/dist/_members/composition/validators/session.js +0 -37
  608. package/dist/_members/composition/validators/webhook.js +0 -72
  609. package/dist/_members/composition-ops/alphaLayers.js +0 -141
  610. package/dist/_members/composition-ops/index.js +0 -637
  611. package/dist/_members/composition-ops/materializeGrid.js +0 -99
  612. package/dist/_members/composition-ops/opRecorder.js +0 -196
  613. package/dist/_members/composition-ops/recordingStore.js +0 -14
  614. package/dist/_members/composition-ops/replaceRegion.js +0 -102
  615. package/dist/_members/composition-ops/testFixtures.js +0 -19
  616. package/dist/_members/core/index.js +0 -5
  617. package/dist/_members/core/render/bookends.js +0 -53
  618. package/dist/_members/core/render/captions.js +0 -127
  619. package/dist/_members/core/render/compositionRender.js +0 -1249
  620. package/dist/_members/core/render/deriveTrajectory.js +0 -889
  621. package/dist/_members/core/render/emphasis.js +0 -16
  622. package/dist/_members/core/render/eval/cropBox.js +0 -139
  623. package/dist/_members/core/render/eval/inclusion.js +0 -96
  624. package/dist/_members/core/render/eval/index.js +0 -146
  625. package/dist/_members/core/render/eval/metrics.js +0 -94
  626. package/dist/_members/core/render/exportSettings.js +0 -65
  627. package/dist/_members/core/render/index.js +0 -20
  628. package/dist/_members/core/render/mapFaceToPerson.js +0 -73
  629. package/dist/_members/core/render/types.js +0 -8
  630. package/dist/_members/core/render/vcam/cameraPath.js +0 -248
  631. package/dist/_members/core/render/vcam/constants.js +0 -115
  632. package/dist/_members/core/render/vcam/errorCodes.js +0 -39
  633. package/dist/_members/core/render/vcam/framing.js +0 -136
  634. package/dist/_members/core/render/vcam/requiredRegion.js +0 -137
  635. package/dist/_members/core/render/vcam/shots.js +0 -53
  636. package/dist/_members/core/render/vcam/subjectSet.js +0 -388
  637. package/dist/_members/core/select/errorCodes.js +0 -38
  638. package/dist/_members/core/select/index.js +0 -26
  639. package/dist/_members/core/select/model.js +0 -18
  640. package/dist/_members/core/select/select.js +0 -244
  641. package/dist/_members/core/select/stabilize.js +0 -242
  642. package/dist/_members/core/types.js +0 -7
  643. package/dist/_members/errors/index.js +0 -1
  644. package/dist/_members/errors/registry.js +0 -560
  645. package/dist/_members/foundation/codes/index.js +0 -31
  646. package/dist/_members/foundation/index.js +0 -2
  647. package/dist/_members/foundation/primitives/index.js +0 -5
  648. package/dist/_members/mcp/adapter.js +0 -771
  649. package/dist/_members/mcp/burnedNames.js +0 -73
  650. package/dist/_members/mcp/core.js +0 -390
  651. package/dist/_members/mcp/curation.js +0 -792
  652. package/dist/_members/mcp/executor.js +0 -142
  653. package/dist/_members/mcp/format.js +0 -9
  654. package/dist/_members/mcp/generated/catalogPreviews.js +0 -95
  655. package/dist/_members/mcp/generated/harness.js +0 -81
  656. package/dist/_members/mcp/generated/operations.js +0 -131
  657. package/dist/_members/mcp/index.js +0 -50
  658. package/dist/_members/mcp/internalLoopTools.js +0 -109
  659. package/dist/_members/mcp/prompts.js +0 -45
  660. package/dist/_members/mcp/resources.js +0 -166
  661. package/dist/_members/mcp/server.js +0 -340
  662. package/dist/_members/mcp/wait.js +0 -378
  663. package/dist/_members/mcp/x402Meta.js +0 -66
  664. package/dist/_members/media-model/api.js +0 -175
  665. package/dist/_members/media-model/index.js +0 -1
  666. package/dist/_members/media-model/media-kind.js +0 -116
  667. package/dist/_members/media-model/testing/index.js +0 -1
  668. package/dist/_members/media-model/testing/mediaStoreContract.js +0 -82
  669. package/dist/_members/media-model/transcriptSearch.js +0 -70
  670. package/dist/_members/media-model/transcriptSearchCases.json +0 -79
  671. package/dist/_members/nle-export/compact-timeline.js +0 -73
  672. package/dist/_members/nle-export/compact-timeline.js.map +0 -1
  673. package/dist/_members/nle-export/composition-to-input.js +0 -147
  674. package/dist/_members/nle-export/composition-to-input.js.map +0 -1
  675. package/dist/_members/nle-export/fcpxml.js +0 -159
  676. package/dist/_members/nle-export/fcpxml.js.map +0 -1
  677. package/dist/_members/nle-export/index.js +0 -12
  678. package/dist/_members/nle-export/index.js.map +0 -1
  679. package/dist/_members/nle-export/premiere.js +0 -161
  680. package/dist/_members/nle-export/premiere.js.map +0 -1
  681. package/dist/_members/nle-export/server/index.js +0 -2
  682. package/dist/_members/nle-export/server/index.js.map +0 -1
  683. package/dist/_members/nle-export/server/pack-zip.js +0 -38
  684. package/dist/_members/nle-export/server/pack-zip.js.map +0 -1
  685. package/dist/_members/nle-export/srt.js +0 -50
  686. package/dist/_members/nle-export/srt.js.map +0 -1
  687. package/dist/_members/nle-export/types.js +0 -9
  688. package/dist/_members/nle-export/types.js.map +0 -1
  689. package/dist/_members/nle-export/xml/index.js +0 -11
  690. package/dist/_members/nle-export/xml/index.js.map +0 -1
  691. package/dist/_members/nle-export/xml-utils.js +0 -48
  692. package/dist/_members/nle-export/xml-utils.js.map +0 -1
  693. package/dist/_members/perception/activeSpeaker.js +0 -103
  694. package/dist/_members/perception/audioQuality.js +0 -76
  695. package/dist/_members/perception/energyBeat.js +0 -99
  696. package/dist/_members/perception/identityMatch.js +0 -91
  697. package/dist/_members/perception/index.js +0 -48
  698. package/dist/_members/perception/visualQuality.js +0 -95
  699. package/dist/_members/plane/conformance.js +0 -90
  700. package/dist/_members/plane/contract.js +0 -49
  701. package/dist/_members/plane/index.js +0 -16
  702. package/dist/_members/primitives/backgrounds/index.js +0 -32
  703. package/dist/_members/primitives/backgrounds/index.js.map +0 -1
  704. package/dist/_members/primitives/captions/index.js +0 -398
  705. package/dist/_members/primitives/captions/index.js.map +0 -1
  706. package/dist/_members/primitives/chunk-2LVE4UIT.js +0 -139
  707. package/dist/_members/primitives/chunk-2LVE4UIT.js.map +0 -1
  708. package/dist/_members/primitives/chunk-3IQUH6KK.js +0 -20
  709. package/dist/_members/primitives/chunk-3IQUH6KK.js.map +0 -1
  710. package/dist/_members/primitives/chunk-3OMURV6Q.js +0 -112
  711. package/dist/_members/primitives/chunk-3OMURV6Q.js.map +0 -1
  712. package/dist/_members/primitives/chunk-4IS6TMEG.js +0 -21
  713. package/dist/_members/primitives/chunk-4IS6TMEG.js.map +0 -1
  714. package/dist/_members/primitives/chunk-5MWGAEGQ.js +0 -1644
  715. package/dist/_members/primitives/chunk-5MWGAEGQ.js.map +0 -1
  716. package/dist/_members/primitives/chunk-7RRPFPQK.js +0 -15
  717. package/dist/_members/primitives/chunk-7RRPFPQK.js.map +0 -1
  718. package/dist/_members/primitives/chunk-DH5TRZK2.js +0 -125
  719. package/dist/_members/primitives/chunk-DH5TRZK2.js.map +0 -1
  720. package/dist/_members/primitives/chunk-E3KNUSFG.js +0 -2337
  721. package/dist/_members/primitives/chunk-E3KNUSFG.js.map +0 -1
  722. package/dist/_members/primitives/chunk-G2B3G4HK.js +0 -47
  723. package/dist/_members/primitives/chunk-G2B3G4HK.js.map +0 -1
  724. package/dist/_members/primitives/chunk-HFPFGZXT.js +0 -1494
  725. package/dist/_members/primitives/chunk-HFPFGZXT.js.map +0 -1
  726. package/dist/_members/primitives/chunk-HIWVFZVH.js +0 -19
  727. package/dist/_members/primitives/chunk-HIWVFZVH.js.map +0 -1
  728. package/dist/_members/primitives/chunk-IDAL6G3Y.js +0 -134
  729. package/dist/_members/primitives/chunk-IDAL6G3Y.js.map +0 -1
  730. package/dist/_members/primitives/chunk-KNC6JP5F.js +0 -34
  731. package/dist/_members/primitives/chunk-KNC6JP5F.js.map +0 -1
  732. package/dist/_members/primitives/chunk-KYRDVZST.js +0 -459
  733. package/dist/_members/primitives/chunk-KYRDVZST.js.map +0 -1
  734. package/dist/_members/primitives/chunk-LWLHS2NS.js +0 -3410
  735. package/dist/_members/primitives/chunk-LWLHS2NS.js.map +0 -1
  736. package/dist/_members/primitives/chunk-QAQ3P7DR.js +0 -8855
  737. package/dist/_members/primitives/chunk-QAQ3P7DR.js.map +0 -1
  738. package/dist/_members/primitives/chunk-ROV2ODWC.js +0 -81
  739. package/dist/_members/primitives/chunk-ROV2ODWC.js.map +0 -1
  740. package/dist/_members/primitives/chunk-TCRC2FH3.js +0 -183
  741. package/dist/_members/primitives/chunk-TCRC2FH3.js.map +0 -1
  742. package/dist/_members/primitives/chunk-US4YEDAA.js +0 -96
  743. package/dist/_members/primitives/chunk-US4YEDAA.js.map +0 -1
  744. package/dist/_members/primitives/chunk-UVKRO5ER.js +0 -13
  745. package/dist/_members/primitives/chunk-UVKRO5ER.js.map +0 -1
  746. package/dist/_members/primitives/chunk-W4EIIF2I.js +0 -10
  747. package/dist/_members/primitives/chunk-W4EIIF2I.js.map +0 -1
  748. package/dist/_members/primitives/chunk-WPGKIPCO.js +0 -3563
  749. package/dist/_members/primitives/chunk-WPGKIPCO.js.map +0 -1
  750. package/dist/_members/primitives/chunk-WZFLEGMD.js +0 -1435
  751. package/dist/_members/primitives/chunk-WZFLEGMD.js.map +0 -1
  752. package/dist/_members/primitives/chunk-XHU3WBEI.js +0 -33
  753. package/dist/_members/primitives/chunk-XHU3WBEI.js.map +0 -1
  754. package/dist/_members/primitives/chunk-YN7WTZZ7.js +0 -46
  755. package/dist/_members/primitives/chunk-YN7WTZZ7.js.map +0 -1
  756. package/dist/_members/primitives/effects/index.js +0 -30
  757. package/dist/_members/primitives/effects/index.js.map +0 -1
  758. package/dist/_members/primitives/hero-text/index.js +0 -14
  759. package/dist/_members/primitives/hero-text/index.js.map +0 -1
  760. package/dist/_members/primitives/index.js +0 -64
  761. package/dist/_members/primitives/index.js.map +0 -1
  762. package/dist/_members/primitives/layouts/index.js +0 -24
  763. package/dist/_members/primitives/layouts/index.js.map +0 -1
  764. package/dist/_members/primitives/lib/easings.js +0 -26
  765. package/dist/_members/primitives/lib/easings.js.map +0 -1
  766. package/dist/_members/primitives/lib/index.js +0 -74
  767. package/dist/_members/primitives/lib/index.js.map +0 -1
  768. package/dist/_members/primitives/lib/palette.js +0 -72
  769. package/dist/_members/primitives/lib/palette.js.map +0 -1
  770. package/dist/_members/primitives/lib/preview.js +0 -8
  771. package/dist/_members/primitives/lib/preview.js.map +0 -1
  772. package/dist/_members/primitives/lib/schema.js +0 -12
  773. package/dist/_members/primitives/lib/schema.js.map +0 -1
  774. package/dist/_members/primitives/lib/seeded-random.js +0 -14
  775. package/dist/_members/primitives/lib/seeded-random.js.map +0 -1
  776. package/dist/_members/primitives/lib/text/contrast.js +0 -12
  777. package/dist/_members/primitives/lib/text/contrast.js.map +0 -1
  778. package/dist/_members/primitives/lib/text/fill.js +0 -8
  779. package/dist/_members/primitives/lib/text/fill.js.map +0 -1
  780. package/dist/_members/primitives/lib/text/fitText.js +0 -10
  781. package/dist/_members/primitives/lib/text/fitText.js.map +0 -1
  782. package/dist/_members/primitives/lib/text/marker.js +0 -8
  783. package/dist/_members/primitives/lib/text/marker.js.map +0 -1
  784. package/dist/_members/primitives/lib/text/motion.js +0 -16
  785. package/dist/_members/primitives/lib/text/motion.js.map +0 -1
  786. package/dist/_members/primitives/lib/text/recolor.js +0 -8
  787. package/dist/_members/primitives/lib/text/recolor.js.map +0 -1
  788. package/dist/_members/primitives/lib/text/spec.js +0 -1
  789. package/dist/_members/primitives/lib/text/spec.js.map +0 -1
  790. package/dist/_members/primitives/lib/text/stage.js +0 -8
  791. package/dist/_members/primitives/lib/text/stage.js.map +0 -1
  792. package/dist/_members/primitives/lib/text/typeface.js +0 -8
  793. package/dist/_members/primitives/lib/text/typeface.js.map +0 -1
  794. package/dist/_members/primitives/lib/tokens.js +0 -24
  795. package/dist/_members/primitives/lib/tokens.js.map +0 -1
  796. package/dist/_members/primitives/lib/types.js +0 -1
  797. package/dist/_members/primitives/lib/types.js.map +0 -1
  798. package/dist/_members/primitives/params-required.json +0 -153
  799. package/dist/_members/primitives/scenes/index.js +0 -25
  800. package/dist/_members/primitives/scenes/index.js.map +0 -1
  801. package/dist/_members/primitives/subject-foreground/index.js +0 -30
  802. package/dist/_members/primitives/subject-foreground/index.js.map +0 -1
  803. package/dist/_members/primitives/text/index.js +0 -57
  804. package/dist/_members/primitives/text/index.js.map +0 -1
  805. package/dist/_members/primitives/transitions/index.js +0 -67
  806. package/dist/_members/primitives/transitions/index.js.map +0 -1
  807. package/dist/_members/primitives/ui-blocks/index.js +0 -76
  808. package/dist/_members/primitives/ui-blocks/index.js.map +0 -1
  809. package/dist/_members/primitives/version-map.json +0 -105
  810. package/dist/_members/primitives/workspace.js +0 -60
  811. package/dist/_members/primitives/workspace.js.map +0 -1
  812. package/dist/chunk-37NJ27UU.js +0 -501
  813. package/dist/chunk-6EQXLEP6.js +0 -194
  814. package/dist/chunk-MXFAADCQ.js +0 -735
  815. package/dist/context-OKX3HHFS.js +0 -14
@@ -1,114 +0,0 @@
1
- import { APCAcontrast, sRGBtoY } from "apca-w3";
2
- import { converter } from "culori";
3
- // DERIVATION_VERSION / FLOORS / NEUTRAL_RAMP live in the side-effect-free
4
- // `./constants` module (no apca-w3/culori) so render-side consumers can import
5
- // the poles without dragging the contrast math into their bundle. Re-exported
6
- // here so the package root stays the single source of truth.
7
- export { DERIVATION_VERSION, FLOORS, NEUTRAL_RAMP } from "./constants";
8
- import { FLOORS, NEUTRAL_RAMP } from "./constants";
9
- // Leaf-package color parsing via culori — this package must NOT import composition-model.
10
- const toRgb = converter("rgb");
11
- function hexToRgb(hex) {
12
- const c = toRgb(hex);
13
- if (!c)
14
- return [0, 0, 0]; // unparseable → black; the clamp still guarantees a floor
15
- return [Math.round(c.r * 255), Math.round(c.g * 255), Math.round(c.b * 255)];
16
- }
17
- /** Linear-RGB mix of two hex colors: ratio 0 → `a`, ratio 1 → `b`. Parses `#RGB` / `#RRGGBB`;
18
- * returns `#rrggbb` lowercase. Mirrors composition-model's `colorMix` (we can't import it — leaf
19
- * package boundary). On an unparseable input the clamp downstream still guarantees a floor. */
20
- function colorMix(a, b, ratio) {
21
- const [ar, ag, ab] = hexToRgb(a);
22
- const [br, bg, bb] = hexToRgb(b);
23
- const t = Math.max(0, Math.min(1, ratio));
24
- const inv = 1 - t;
25
- const r = Math.round(ar * inv + br * t);
26
- const g = Math.round(ag * inv + bg * t);
27
- const bl = Math.round(ab * inv + bb * t);
28
- return "#" + [r, g, bl].map((v) => v.toString(16).padStart(2, "0")).join("");
29
- }
30
- /** Lc magnitude between two hex colors (APCA is signed by polarity; the floor wants the magnitude).
31
- * APCAcontrast is typed `number | string` (a string sentinel for out-of-range luminance, which
32
- * sRGBtoY's 0..1 output never produces); coerce to a number at this single boundary. */
33
- function lc(fg, bg) {
34
- return Math.abs(Number(APCAcontrast(sRGBtoY(hexToRgb(fg)), sRGBtoY(hexToRgb(bg)))));
35
- }
36
- /** sRGB relative luminance Y∈[0,1] of a hex color, via apca-w3's `sRGBtoY`.
37
- * Exported so composition-side legibility (which compares text against a
38
- * SAMPLED backdrop luminance, not a second hex) can put text + backdrop on the
39
- * same Y scale without re-deriving the transfer curve. */
40
- export function relativeLuminance(hex) {
41
- return sRGBtoY(hexToRgb(hex));
42
- }
43
- /** APCA Lc magnitude between two relative-luminance values (text fg over bg).
44
- * This is the primitive the composition FLOOR's worst-tile legibility check
45
- * consumes: it samples per-tile backdrop luminance from the rendered frame and
46
- * asks "does the caption text clear the floor over the WORST tile?". Polarity-
47
- * signed APCA is reduced to a magnitude (the floor wants legibility, not which
48
- * way the polarity runs). Keep the APCA math in THIS package — the floor must
49
- * not re-implement it (single source of truth, no proxy). */
50
- export function apcaLcFromLuminance(fgY, bgY) {
51
- return Math.abs(Number(APCAcontrast(fgY, bgY)));
52
- }
53
- /** APCA Lc magnitude between two hex colors (fg over bg). Hex-input sibling of
54
- * `apcaLcFromLuminance`; the brand cascade and tests use it directly. */
55
- export function apcaLc(fg, bg) {
56
- return lc(fg, bg);
57
- }
58
- /** Return `fg` if it clears `floor` over `bg`; else the most legible of {fg, ramp poles} over `bg`
59
- * (never lower contrast than the input — forward-only by construction). Exported so the brand
60
- * cascade (composition-model) can re-clamp its own derived de-emphasis tokens (e.g. the muted
61
- * text mix) back up to a floor without re-implementing the APCA math at the package boundary. */
62
- export function clampToFloor(fg, bg, floor) {
63
- if (lc(fg, bg) >= floor)
64
- return fg;
65
- const candidates = [fg, NEUTRAL_RAMP.onDark, NEUTRAL_RAMP.onLight];
66
- return candidates.reduce((best, c) => (lc(c, bg) > lc(best, bg) ? c : best));
67
- }
68
- /** Caption legibility is UNCONDITIONAL. If the brand background can host caption text at the body
69
- * floor, keep it as the scrim. Otherwise fall to a neutral plate (near-black scrim + white fg),
70
- * where the pole-over-pole APCA (~106) clears the floor for ANY brand. */
71
- function deriveCaption(seedText, background) {
72
- const onBrand = clampToFloor(seedText, background, FLOORS.body);
73
- if (lc(onBrand, background) >= FLOORS.body) {
74
- return { captionScrim: background, captionFg: onBrand };
75
- }
76
- return { captionScrim: NEUTRAL_RAMP.onLight, captionFg: NEUTRAL_RAMP.onDark }; // near-black plate, white fg
77
- }
78
- /** Derive a contrast-safe palette from a brand seed.
79
- * Captions are an UNCONDITIONAL floor: a plate-backed neutral fallback guarantees
80
- * `Lc(captionFg, captionScrim) >= FLOORS.body` for any brand background.
81
- * `text` / `textMuted` directly on a hostile brand background are best-achievable / forward-only
82
- * (the monotone clamp never lowers a brand's own contrast); a tuned solid-background plate for
83
- * body text on hostile backgrounds is Phase 1. */
84
- export function deriveContrastSafe(seed) {
85
- const background = seed.background;
86
- const text = clampToFloor(seed.text, background, FLOORS.body);
87
- const accent = seed.accent;
88
- const { captionScrim, captionFg } = deriveCaption(seed.text, background);
89
- // Tier-2 fills: nudge the background toward text for raised surfaces / hairline rhythm.
90
- const surface = colorMix(background, text, 0.06); // bg nudged toward text (raised panel)
91
- const card = colorMix(background, text, 0.1); // one tonal step above surface
92
- const gridLine = colorMix(background, text, 0.08); // hairline rhythm guide
93
- const accentMuted = colorMix(accent, background, 0.35); // accent faded for secondary states
94
- // textOnAccent is BEST-ACHIEVABLE, not floor-guaranteed: a saturated accent caps APCA below the
95
- // body floor (e.g. white over #ff4438 ≈ 65.66), so the clamp returns the most legible pole it can
96
- // reach, not necessarily one clearing FLOORS.body. The design NEVER puts body text on raw accent —
97
- // body legibility lives on accentMuted / surface / background, where the floor IS guaranteed.
98
- const textOnAccent = clampToFloor(text, accent, FLOORS.body);
99
- const textOnSurface = clampToFloor(text, surface, FLOORS.body);
100
- return {
101
- background,
102
- text,
103
- textMuted: clampToFloor(seed.text, background, FLOORS.nonBody),
104
- accent,
105
- captionScrim,
106
- captionFg,
107
- surface,
108
- card,
109
- gridLine,
110
- accentMuted,
111
- textOnAccent,
112
- textOnSurface,
113
- };
114
- }
@@ -1 +0,0 @@
1
- export * from "./contrastSafe";
@@ -1,162 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
-
5
- // ../data-models/media-model/src/media-kind.ts
6
- var IMAGE_CONTENT_TYPES = ["image/png", "image/jpeg", "image/webp"];
7
- var ALLOWED_CONTENT_TYPES = [
8
- "video/mp4",
9
- "video/quicktime",
10
- "video/x-matroska",
11
- "video/webm",
12
- "audio/mpeg",
13
- "audio/wav",
14
- "audio/x-wav",
15
- "audio/mp4",
16
- "audio/aac",
17
- "image/png",
18
- "image/jpeg",
19
- "image/webp",
20
- "image/gif",
21
- "image/svg+xml",
22
- "application/json",
23
- "font/ttf",
24
- "font/otf",
25
- "font/woff",
26
- "font/woff2"
27
- ];
28
- function mediaKind(contentType) {
29
- const ct = (contentType || "").toLowerCase();
30
- if (ct.startsWith("video/")) return "video";
31
- if (ct.startsWith("audio/")) return "audio";
32
- if (IMAGE_CONTENT_TYPES.includes(ct)) return "image";
33
- return "opaque";
34
- }
35
- var EXT = {
36
- "video/mp4": "mp4",
37
- "audio/mp4": "mp4",
38
- "video/quicktime": "mov",
39
- "video/x-matroska": "mkv",
40
- "video/webm": "webm",
41
- "video/x-msvideo": "avi",
42
- "audio/mpeg": "mp3",
43
- "audio/wav": "wav",
44
- "audio/x-wav": "wav",
45
- "audio/aac": "aac",
46
- "audio/ogg": "ogg",
47
- "audio/flac": "flac",
48
- "image/png": "png",
49
- "image/jpeg": "jpg",
50
- "image/webp": "webp",
51
- "font/ttf": "ttf",
52
- "font/otf": "otf",
53
- "font/woff": "woff",
54
- "font/woff2": "woff2",
55
- "application/json": "json",
56
- "image/svg+xml": "svg",
57
- "image/gif": "gif"
58
- };
59
- var CONTENT_TYPE_ALIASES = {
60
- "audio/mp3": "audio/mpeg",
61
- "audio/x-mp3": "audio/mpeg",
62
- "audio/x-mpeg": "audio/mpeg",
63
- "audio/mpeg3": "audio/mpeg",
64
- "audio/x-mpeg-3": "audio/mpeg",
65
- "audio/x-m4a": "audio/mp4",
66
- "audio/m4a": "audio/mp4",
67
- "audio/wave": "audio/wav",
68
- "audio/vnd.wave": "audio/wav",
69
- "audio/x-aac": "audio/aac",
70
- "image/jpg": "image/jpeg",
71
- "video/x-quicktime": "video/quicktime",
72
- "video/mov": "video/quicktime",
73
- "video/x-m4v": "video/mp4",
74
- "video/mkv": "video/x-matroska"
75
- };
76
- var TYPE_BY_EXTENSION = Object.entries(EXT).reduce(
77
- (acc, [contentType, ext]) => {
78
- if (!(ext in acc)) acc[ext] = contentType;
79
- return acc;
80
- },
81
- {}
82
- );
83
- TYPE_BY_EXTENSION["jpeg"] = "image/jpeg";
84
- TYPE_BY_EXTENSION["m4a"] = "audio/mp4";
85
- var POOL_EXTENSIONS = Object.entries(TYPE_BY_EXTENSION).filter(([, contentType]) => mediaKind(contentType) !== "opaque").map(([ext]) => ext);
86
- function contentTypeForUpload(filename, claimed) {
87
- const ct = (claimed ?? "").trim().toLowerCase();
88
- const allowed = ALLOWED_CONTENT_TYPES;
89
- if (ct && allowed.includes(ct)) return ct;
90
- if (ct && CONTENT_TYPE_ALIASES[ct]) return CONTENT_TYPE_ALIASES[ct];
91
- const ext = filename.toLowerCase().split(".").pop() ?? "";
92
- const byExt = TYPE_BY_EXTENSION[ext];
93
- if (byExt) return byExt;
94
- return ct;
95
- }
96
-
97
- // src/multipartUpload.ts
98
- var CHUNK_SIZE = 10 * 1024 * 1024;
99
- async function reasonFrom(res) {
100
- try {
101
- const text = await res.text();
102
- if (!text) return `HTTP ${res.status}`;
103
- try {
104
- const parsed = JSON.parse(text);
105
- if (typeof parsed.error === "string" && parsed.error) return `${parsed.error} (HTTP ${res.status})`;
106
- } catch {
107
- }
108
- return `${text.slice(0, 200)} (HTTP ${res.status})`;
109
- } catch {
110
- return `HTTP ${res.status}`;
111
- }
112
- }
113
- async function multipartUpload(opts) {
114
- const { file, signingUrl, token, metadata, onProgress } = opts;
115
- const baseUrl = signingUrl.replace(/\/$/, "");
116
- const headers = { "uppy-auth-token": token, "Content-Type": "application/json" };
117
- const createRes = await fetch(`${baseUrl}/s3/multipart`, {
118
- method: "POST",
119
- headers,
120
- body: JSON.stringify({
121
- filename: file.name,
122
- // NOT `file.type || "video/mp4"`. That fallback relabelled every untyped
123
- // file as video, so an MP3 with no MIME uploaded as `video/mp4` and was
124
- // routed down the video transcode path by `mediaKind()` — a wrong
125
- // pipeline instead of an honest refusal. See `contentTypeForUpload`.
126
- type: contentTypeForUpload(file.name, file.type),
127
- metadata: { uploadToken: token, ...metadata }
128
- })
129
- });
130
- if (!createRes.ok) throw new Error(`Upload init failed for ${file.name}: ${await reasonFrom(createRes)}`);
131
- const { uploadId } = await createRes.json();
132
- const totalParts = Math.ceil(file.size / CHUNK_SIZE);
133
- const parts = [];
134
- for (let i = 0; i < totalParts; i++) {
135
- const start = i * CHUNK_SIZE;
136
- const end = Math.min(start + CHUNK_SIZE, file.size);
137
- const chunk = file.slice(start, end);
138
- const partNumber = i + 1;
139
- const urlRes = await fetch(`${baseUrl}/s3/multipart/${uploadId}/${partNumber}`, {
140
- headers: { "uppy-auth-token": token }
141
- });
142
- if (!urlRes.ok) throw new Error(`Presign failed for ${file.name} part ${partNumber}: ${await reasonFrom(urlRes)}`);
143
- const { url } = await urlRes.json();
144
- const putRes = await fetch(url, { method: "PUT", body: chunk });
145
- if (!putRes.ok) throw new Error(`Part ${partNumber} of ${file.name} failed: ${await reasonFrom(putRes)}`);
146
- parts.push({ PartNumber: partNumber, ETag: putRes.headers.get("ETag") ?? "" });
147
- onProgress?.(end / file.size);
148
- }
149
- const completeRes = await fetch(`${baseUrl}/s3/multipart/${uploadId}/complete`, {
150
- method: "POST",
151
- headers,
152
- body: JSON.stringify({ parts })
153
- });
154
- if (!completeRes.ok) throw new Error(`Complete failed for ${file.name}: ${await reasonFrom(completeRes)}`);
155
- return await completeRes.json();
156
- }
157
-
158
- export {
159
- __publicField,
160
- multipartUpload
161
- };
162
- //# sourceMappingURL=chunk-XKO6ZSWI.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../data-models/media-model/src/media-kind.ts","../src/multipartUpload.ts"],"sourcesContent":["/** `opaque` is `asset` renamed (spec §5): \"asset\" was the word that made two\n * different concepts — storage furniture and a media classification — look\n * like one. `opaque` states the contract: no pipeline, not placeable. */\nexport type MediaKind = \"video\" | \"audio\" | \"image\" | \"opaque\";\n\nexport const IMAGE_CONTENT_TYPES = [\"image/png\", \"image/jpeg\", \"image/webp\"] as const;\n\n/** Closed allowlist — the complete set of accepted content-types (the acceptance\n * gate). mediaKind() routes each: video/audio/still-image do real work;\n * fonts/json/svg/gif route to the opaque path. Unknown bytes (not here)\n * are rejected at the edge. */\nexport const ALLOWED_CONTENT_TYPES = [\n \"video/mp4\", \"video/quicktime\", \"video/x-matroska\", \"video/webm\",\n \"audio/mpeg\", \"audio/wav\", \"audio/x-wav\", \"audio/mp4\", \"audio/aac\",\n \"image/png\", \"image/jpeg\", \"image/webp\",\n \"image/gif\", \"image/svg+xml\", \"application/json\",\n \"font/ttf\", \"font/otf\", \"font/woff\", \"font/woff2\",\n] as const;\n\nexport type AllowedContentType = (typeof ALLOWED_CONTENT_TYPES)[number];\n\nexport function mediaKind(contentType: string): MediaKind {\n const ct = (contentType || \"\").toLowerCase();\n if (ct.startsWith(\"video/\")) return \"video\";\n if (ct.startsWith(\"audio/\")) return \"audio\";\n if ((IMAGE_CONTENT_TYPES as readonly string[]).includes(ct)) return \"image\";\n return \"opaque\";\n}\n\nconst EXT: Record<string, string> = {\n \"video/mp4\": \"mp4\", \"audio/mp4\": \"mp4\", \"video/quicktime\": \"mov\",\n \"video/x-matroska\": \"mkv\", \"video/webm\": \"webm\", \"video/x-msvideo\": \"avi\",\n \"audio/mpeg\": \"mp3\", \"audio/wav\": \"wav\", \"audio/x-wav\": \"wav\", \"audio/aac\": \"aac\",\n \"audio/ogg\": \"ogg\", \"audio/flac\": \"flac\",\n \"image/png\": \"png\", \"image/jpeg\": \"jpg\", \"image/webp\": \"webp\",\n \"font/ttf\": \"ttf\", \"font/otf\": \"otf\", \"font/woff\": \"woff\", \"font/woff2\": \"woff2\",\n \"application/json\": \"json\", \"image/svg+xml\": \"svg\", \"image/gif\": \"gif\",\n};\nexport function extensionForContentType(contentType: string): string {\n return EXT[(contentType || \"\").toLowerCase()] ?? \"bin\";\n}\n\n/**\n * MIME ALIASES THE PLATFORM EMITS FOR TYPES WE ALREADY ACCEPT.\n *\n * `ALLOWED_CONTENT_TYPES` is a CLOSED gate keyed on an exact string, and the\n * same bytes get different strings depending on who describes them: WebKit says\n * `audio/mp3` where the registry says `audio/mpeg`, Apple says `audio/x-m4a`\n * where the registry says `audio/mp4`. Rejecting those is not the gate doing\n * its job — it is the gate mistaking a spelling for a format, and the user gets\n * \"Unsupported file type\" for a plain MP3.\n *\n * Only aliases of types ALREADY on the allowlist belong here. This must not\n * become a way to smuggle in a format the pipeline cannot decode.\n */\nconst CONTENT_TYPE_ALIASES: Record<string, string> = {\n \"audio/mp3\": \"audio/mpeg\",\n \"audio/x-mp3\": \"audio/mpeg\",\n \"audio/x-mpeg\": \"audio/mpeg\",\n \"audio/mpeg3\": \"audio/mpeg\",\n \"audio/x-mpeg-3\": \"audio/mpeg\",\n \"audio/x-m4a\": \"audio/mp4\",\n \"audio/m4a\": \"audio/mp4\",\n \"audio/wave\": \"audio/wav\",\n \"audio/vnd.wave\": \"audio/wav\",\n \"audio/x-aac\": \"audio/aac\",\n \"image/jpg\": \"image/jpeg\",\n \"video/x-quicktime\": \"video/quicktime\",\n \"video/mov\": \"video/quicktime\",\n \"video/x-m4v\": \"video/mp4\",\n \"video/mkv\": \"video/x-matroska\",\n};\n\n/** Extension → canonical content-type, derived from the EXT map so the two\n * cannot drift. Built once. */\nconst TYPE_BY_EXTENSION: Record<string, string> = Object.entries(EXT).reduce<Record<string, string>>(\n (acc, [contentType, ext]) => {\n // First writer wins, so `audio/mp4` does not steal `mp4` from `video/mp4`.\n if (!(ext in acc)) acc[ext] = contentType;\n return acc;\n },\n {},\n);\n// Spellings EXT cannot carry (it is contentType→ext, one ext per type): the\n// long form of jpg, and m4a — whose canonical type audio/mp4 lost the \"mp4\"\n// slot to video above.\nTYPE_BY_EXTENSION[\"jpeg\"] = \"image/jpeg\";\nTYPE_BY_EXTENSION[\"m4a\"] = \"audio/mp4\";\n\n/** What a file IS, from nothing but its name — the ONE derivation the import\n * door, the project-file parse gate, and migration 020's SQL all mirror. */\nexport function mediaKindForFilename(filename: string): MediaKind {\n return mediaKind(contentTypeForUpload(filename, null));\n}\n\n/** Every extension whose derived kind can occupy time. The import door's\n * accept-list IS this list — derived, so the door and the authority cannot\n * disagree (the disagreement was a thrown import for `.jpeg`/`.m4a`). */\nexport const POOL_EXTENSIONS: readonly string[] = Object.entries(TYPE_BY_EXTENSION)\n .filter(([, contentType]) => mediaKind(contentType) !== \"opaque\")\n .map(([ext]) => ext);\n\n/**\n * The content-type to UPLOAD a file as, given what the platform claimed and\n * what the file is called.\n *\n * WHY THIS EXISTS. The upload client used to send `file.type || \"video/mp4\"`.\n * Both halves are wrong: the alias case rejects real MP3s (see above), and the\n * fallback silently relabels ANY untyped file as video — so an MP3 dragged in\n * without a MIME is accepted and then routed down the VIDEO transcode path by\n * `mediaKind()`, which is a wrong pipeline rather than an honest refusal.\n *\n * Order: an already-allowed type wins, then a known alias, then the extension.\n * If none of those resolve, the ORIGINAL string is returned unchanged — never a\n * guess. The closed gate then refuses it and names the type the user actually\n * has, which is the error message they need.\n */\nexport function contentTypeForUpload(filename: string, claimed?: string | null): string {\n const ct = (claimed ?? \"\").trim().toLowerCase();\n const allowed = ALLOWED_CONTENT_TYPES as readonly string[];\n\n if (ct && allowed.includes(ct)) return ct;\n if (ct && CONTENT_TYPE_ALIASES[ct]) return CONTENT_TYPE_ALIASES[ct];\n\n const ext = filename.toLowerCase().split(\".\").pop() ?? \"\";\n const byExt = TYPE_BY_EXTENSION[ext];\n if (byExt) return byExt;\n\n return ct;\n}\n","/**\n * S3 multipart upload via the upload-signing CF Worker.\n * Shared by FileUpload component and adapter.ts.\n *\n * EVERY FAILURE HERE CARRIES THE SERVER'S REASON. These throws used to be\n * `Upload init failed: ${status}` — status only. The worker answers a rejected\n * create with `{\"error\":\"Unsupported file type: audio/mp3\"}`, i.e. it says\n * exactly what is wrong and which type it saw, and the client discarded it. A\n * user then sees \"failed\" with no cause, and neither the app log nor any\n * server-side log has the string either (this module has no logger and the\n * worker returns 400 rather than throwing). On 2026-08-18 that cost a long\n * diagnosis of a single stuck MP3. `reasonFrom` puts the body back.\n */\n// SUBPATH, NOT THE BARREL. `@cueframe/media-model`'s root re-exports `./api`,\n// which pulls zod and the Convex validators — none of which this BROWSER bundle\n// needs. The `./media-kind` entry is the pure classifier, zero imports; take it\n// alone. (Until 2026-08-25 this classifier lived in `@cueframe/shared`, whose\n// barrel dragged `@sentry/node-core` in and broke the build on `\"subscribe\" is\n// not exported by \"__vite-browser-external\"` — a sharper version of the same\n// rule. It moved so no public package reaches into the private `shared`.)\nimport { contentTypeForUpload } from \"@cueframe/media-model/media-kind\";\n\nconst CHUNK_SIZE = 10 * 1024 * 1024; // 10MB parts\n\n/**\n * The server's own words, when it has any. The worker replies with\n * `{error: string}`; anything else (an HTML error page, an empty body) falls\n * back to the status, which is still better than nothing.\n */\nasync function reasonFrom(res: Response): Promise<string> {\n try {\n const text = await res.text();\n if (!text) return `HTTP ${res.status}`;\n try {\n const parsed = JSON.parse(text) as { error?: unknown };\n if (typeof parsed.error === \"string\" && parsed.error) return `${parsed.error} (HTTP ${res.status})`;\n } catch {\n // Not JSON — fall through to the raw text.\n }\n return `${text.slice(0, 200)} (HTTP ${res.status})`;\n } catch {\n return `HTTP ${res.status}`;\n }\n}\n\nexport interface MultipartUploadOptions {\n file: File;\n signingUrl: string;\n token: string;\n metadata?: Record<string, string>;\n onProgress?: (fraction: number) => void;\n}\n\nexport interface MultipartUploadResult {\n location: string;\n mediaItemId: string;\n}\n\nexport async function multipartUpload(opts: MultipartUploadOptions): Promise<MultipartUploadResult> {\n const { file, signingUrl, token, metadata, onProgress } = opts;\n const baseUrl = signingUrl.replace(/\\/$/, \"\");\n const headers = { \"uppy-auth-token\": token, \"Content-Type\": \"application/json\" };\n\n // 1. Create multipart upload\n const createRes = await fetch(`${baseUrl}/s3/multipart`, {\n method: \"POST\",\n headers,\n body: JSON.stringify({\n filename: file.name,\n // NOT `file.type || \"video/mp4\"`. That fallback relabelled every untyped\n // file as video, so an MP3 with no MIME uploaded as `video/mp4` and was\n // routed down the video transcode path by `mediaKind()` — a wrong\n // pipeline instead of an honest refusal. See `contentTypeForUpload`.\n type: contentTypeForUpload(file.name, file.type),\n metadata: { uploadToken: token, ...metadata },\n }),\n });\n if (!createRes.ok) throw new Error(`Upload init failed for ${file.name}: ${await reasonFrom(createRes)}`);\n const { uploadId } = (await createRes.json()) as { uploadId: string; key: string };\n\n // 2. Upload parts sequentially\n const totalParts = Math.ceil(file.size / CHUNK_SIZE);\n const parts: Array<{ PartNumber: number; ETag: string }> = [];\n\n for (let i = 0; i < totalParts; i++) {\n const start = i * CHUNK_SIZE;\n const end = Math.min(start + CHUNK_SIZE, file.size);\n const chunk = file.slice(start, end);\n const partNumber = i + 1;\n\n // Get presigned URL\n const urlRes = await fetch(`${baseUrl}/s3/multipart/${uploadId}/${partNumber}`, {\n headers: { \"uppy-auth-token\": token },\n });\n if (!urlRes.ok) throw new Error(`Presign failed for ${file.name} part ${partNumber}: ${await reasonFrom(urlRes)}`);\n const { url } = (await urlRes.json()) as { url: string };\n\n // PUT to presigned URL\n const putRes = await fetch(url, { method: \"PUT\", body: chunk });\n if (!putRes.ok) throw new Error(`Part ${partNumber} of ${file.name} failed: ${await reasonFrom(putRes)}`);\n parts.push({ PartNumber: partNumber, ETag: putRes.headers.get(\"ETag\") ?? \"\" });\n\n onProgress?.(end / file.size);\n }\n\n // 3. Complete multipart upload\n const completeRes = await fetch(`${baseUrl}/s3/multipart/${uploadId}/complete`, {\n method: \"POST\",\n headers,\n body: JSON.stringify({ parts }),\n });\n if (!completeRes.ok) throw new Error(`Complete failed for ${file.name}: ${await reasonFrom(completeRes)}`);\n\n return (await completeRes.json()) as MultipartUploadResult;\n}\n"],"mappings":"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","names":[]}
@@ -1,241 +0,0 @@
1
- import {
2
- __publicField,
3
- multipartUpload
4
- } from "./chunk-XKO6ZSWI.js";
5
-
6
- // src/ImportProvider.tsx
7
- import { createContext, useContext, useState, useEffect, useCallback, useRef } from "react";
8
- import { UppyContextProvider } from "@uppy/react";
9
-
10
- // src/CloudImportService.ts
11
- import Uppy from "@uppy/core";
12
- import AwsS3 from "@uppy/aws-s3";
13
-
14
- // src/MediaItemPreprocessor.ts
15
- import { BasePlugin } from "@uppy/core";
16
- var _MediaItemPreprocessor = class _MediaItemPreprocessor extends BasePlugin {
17
- constructor(uppy, opts) {
18
- super(uppy, opts ?? {});
19
- __publicField(this, "createFn", null);
20
- __publicField(this, "preprocessBound");
21
- this.id = _MediaItemPreprocessor.pluginId;
22
- this.type = "preprocessor";
23
- this.preprocessBound = this.preprocess.bind(this);
24
- }
25
- /** Inject the creation function (called from ImportProvider). */
26
- setCreateFn(fn) {
27
- this.createFn = fn;
28
- }
29
- install() {
30
- this.uppy.addPreProcessor(this.preprocessBound);
31
- }
32
- uninstall() {
33
- this.uppy.removePreProcessor(this.preprocessBound);
34
- }
35
- async preprocess(fileIDs) {
36
- if (!this.createFn) return;
37
- for (const fileID of fileIDs) {
38
- const file = this.uppy.getFile(fileID);
39
- if (!file) continue;
40
- if (file.meta.convexMediaItemId) continue;
41
- this.uppy.emit("preprocess-progress", file, {
42
- mode: "indeterminate",
43
- message: "Preparing upload\u2026"
44
- });
45
- try {
46
- const mediaItemId = await this.createFn({
47
- name: file.name ?? "unknown",
48
- size: file.size ?? 0,
49
- mimeType: file.type ?? "video/mp4"
50
- });
51
- this.uppy.setFileMeta(fileID, { convexMediaItemId: mediaItemId });
52
- } catch (err) {
53
- this.uppy.log(`[MediaItemPreprocessor] Failed for ${fileID}: ${err}`, "error");
54
- }
55
- this.uppy.emit("preprocess-complete", file);
56
- }
57
- }
58
- };
59
- __publicField(_MediaItemPreprocessor, "pluginId", "MediaItemPreprocessor");
60
- var MediaItemPreprocessor = _MediaItemPreprocessor;
61
-
62
- // src/CloudImportService.ts
63
- var CloudImportService = class {
64
- constructor() {
65
- __publicField(this, "uppy", null);
66
- __publicField(this, "config", null);
67
- }
68
- /** Lazy-init: create Uppy + plugins on first use. */
69
- init(config) {
70
- if (this.uppy) return this.uppy;
71
- this.config = config;
72
- const signingUrl = this.config.uploadSigningUrl.replace(/\/$/, "");
73
- this.uppy = new Uppy({
74
- id: "cloud-import",
75
- restrictions: {
76
- allowedFileTypes: ["video/*", "audio/*"]
77
- }
78
- }).use(AwsS3, {
79
- // Upload-signing Worker implements the S3 multipart endpoints at /s3/multipart/*
80
- endpoint: signingUrl,
81
- shouldUseMultipart: true,
82
- // Cap concurrent multipart part uploads. Unbounded concurrency
83
- // saturates the browser network stack and the signing Worker on
84
- // large files; 3 keeps throughput high without melting either.
85
- limit: 3,
86
- // Exponential-ish backoff for failed part/signing requests. Uppy
87
- // retries the same operation on each delay — keeps transient
88
- // network blips from failing an entire upload.
89
- retryDelays: [1e3, 3e3, 5e3, 1e4]
90
- }).use(MediaItemPreprocessor);
91
- return this.uppy;
92
- }
93
- /** Get the Uppy instance (must call init() first). */
94
- getUppy() {
95
- if (!this.uppy) throw new Error("CloudImportService not initialized \u2014 call init() first");
96
- return this.uppy;
97
- }
98
- /** Get the MediaItemPreprocessor plugin. */
99
- getPreprocessor() {
100
- return this.getUppy().getPlugin(MediaItemPreprocessor.pluginId);
101
- }
102
- /** Update upload metadata (uploadToken, userId, projectId). */
103
- setMeta(meta) {
104
- this.uppy?.setMeta(meta);
105
- if (meta.uploadToken) {
106
- const plugin = this.uppy?.getPlugin("AwsS3Multipart");
107
- if (plugin) {
108
- plugin.setOptions({ headers: { "uppy-auth-token": meta.uploadToken } });
109
- }
110
- }
111
- }
112
- };
113
- var cloudImportService = new CloudImportService();
114
-
115
- // src/ImportProvider.tsx
116
- import { jsx, jsxs } from "react/jsx-runtime";
117
- var ImportContext = createContext(null);
118
- function ImportProvider({
119
- children,
120
- available,
121
- dialogSlot,
122
- uploadSigningUrl,
123
- getUploadMeta,
124
- createMediaItem,
125
- onUploadComplete,
126
- onError
127
- }) {
128
- const [isOpen, setIsOpen] = useState(false);
129
- const onCompleteRef = useRef(onUploadComplete);
130
- const onErrorRef = useRef(onError);
131
- onCompleteRef.current = onUploadComplete;
132
- onErrorRef.current = onError;
133
- const [uppy] = useState(() => cloudImportService.init({ uploadSigningUrl }));
134
- useEffect(() => {
135
- const handleComplete = (result) => {
136
- const successful = result?.successful ?? [];
137
- if (successful.length > 0 && onCompleteRef.current) {
138
- onCompleteRef.current(
139
- successful.map((file) => ({
140
- uploadURL: file.response?.uploadURL ?? "",
141
- fileName: file.name ?? "unknown",
142
- fileSize: file.size ?? 0
143
- }))
144
- );
145
- }
146
- };
147
- const handleError = (error) => {
148
- onErrorRef.current?.(error instanceof Error ? error : new Error(String(error)));
149
- };
150
- uppy.on("complete", handleComplete);
151
- uppy.on("error", handleError);
152
- return () => {
153
- uppy.off("complete", handleComplete);
154
- uppy.off("error", handleError);
155
- };
156
- }, [uppy]);
157
- useEffect(() => {
158
- try {
159
- const preprocessor = cloudImportService.getPreprocessor();
160
- preprocessor.setCreateFn(createMediaItem ?? null);
161
- } catch {
162
- }
163
- }, [createMediaItem]);
164
- const openModal = useCallback(async () => {
165
- if (getUploadMeta) {
166
- try {
167
- const meta = await getUploadMeta();
168
- cloudImportService.setMeta(meta);
169
- } catch (err) {
170
- console.error("[Import] Failed to get upload metadata:", err);
171
- return;
172
- }
173
- }
174
- setIsOpen(true);
175
- }, [getUploadMeta]);
176
- const closeModal = useCallback(() => {
177
- setIsOpen(false);
178
- }, []);
179
- return /* @__PURE__ */ jsx(ImportContext, { value: { openModal, closeModal, isOpen, uppy, available }, children: /* @__PURE__ */ jsxs(UppyContextProvider, { uppy, children: [
180
- children,
181
- dialogSlot
182
- ] }) });
183
- }
184
- function useImport() {
185
- const ctx = useContext(ImportContext);
186
- if (!ctx) throw new Error("useImport must be used within <ImportProvider>");
187
- return ctx;
188
- }
189
- function useImportIfAvailable() {
190
- const ctx = useContext(ImportContext);
191
- return ctx?.available ? ctx : null;
192
- }
193
-
194
- // src/cloudConfig.ts
195
- var ENVIRONMENTS = {
196
- dev: {
197
- convexUrl: "https://api-dev.cueframe.ai",
198
- uploadSigningUrl: "http://localhost:8787"
199
- },
200
- staging: {
201
- convexUrl: "https://api-dev.cueframe.ai",
202
- uploadSigningUrl: "https://upload-signing.cueframelabs.workers.dev"
203
- },
204
- production: {
205
- convexUrl: "https://api.cueframe.ai",
206
- uploadSigningUrl: "https://upload.cueframe.ai"
207
- }
208
- };
209
- function detectEnvironment(convexUrl) {
210
- if (!convexUrl) return "dev";
211
- if (/\b(api-dev|data-dev)\.cueframe\.ai/.test(convexUrl)) return "staging";
212
- if (/\b(api|data)\.cueframe\.ai/.test(convexUrl)) return "production";
213
- if (/\boceanic-dogfish-357\.convex\.(cloud|site)/.test(convexUrl)) return "staging";
214
- if (/\bpolished-hawk-150\.convex\.(cloud|site)/.test(convexUrl)) return "production";
215
- return "dev";
216
- }
217
- function getEndpoints(convexUrl) {
218
- const env = detectEnvironment(convexUrl);
219
- return ENVIRONMENTS[env];
220
- }
221
-
222
- // src/index.ts
223
- import {
224
- useDropzone,
225
- useUppyState,
226
- useUppyEvent
227
- } from "@uppy/react";
228
- export {
229
- ENVIRONMENTS,
230
- ImportProvider,
231
- cloudImportService,
232
- detectEnvironment,
233
- getEndpoints,
234
- multipartUpload,
235
- useDropzone,
236
- useImport,
237
- useImportIfAvailable,
238
- useUppyEvent,
239
- useUppyState
240
- };
241
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/ImportProvider.tsx","../src/CloudImportService.ts","../src/MediaItemPreprocessor.ts","../src/cloudConfig.ts","../src/index.ts"],"sourcesContent":["/**\n * ImportProvider — single mount at app root.\n *\n * Initializes the CloudImportService, wires auth callbacks, and provides\n * the useImport() hook to child components. Wraps children in Uppy's\n * UppyContextProvider so headless hooks (useDropzone, useUppyState, etc.)\n * work anywhere in the tree.\n *\n * The import dialog UI is injected via `dialogSlot` to avoid circular\n * dependency between @cueframe/cloud-import and @cueframe/pro.\n */\nimport { createContext, useContext, useState, useEffect, useCallback, useRef, type ReactNode } from 'react';\nimport { UppyContextProvider } from '@uppy/react';\nimport type Uppy from '@uppy/core';\nimport { cloudImportService } from './CloudImportService';\nimport type { CloudUploadResult } from './CloudImportService';\n\ninterface ImportContextValue {\n openModal: () => void;\n closeModal: () => void;\n isOpen: boolean;\n uppy: Uppy;\n /**\n * Can this lane actually take an upload right now?\n *\n * A cloud import needs an identity: `getUploadMeta` mints an org-scoped\n * upload token, so with none the modal opens onto a request that can only\n * fail. This is DATA because the provider is now a fixture of the tree — it\n * mounts for the life of the desktop process, signed in or not, so its\n * PRESENCE stopped being the answer to this question (it was, back when the\n * whole cloud stack mounted only inside a confirmed auth handshake).\n */\n available: boolean;\n}\n\nconst ImportContext = createContext<ImportContextValue | null>(null);\n\nexport interface ImportProviderProps {\n children: ReactNode;\n /** Whether this lane can take an upload — see `ImportContextValue.available`.\n * Required, with no default: the one thing a caller must not forget is the\n * fact that decides whether a control is offered at all. */\n available: boolean;\n /** React element to render the import dialog (e.g. <ImportDialog />) */\n dialogSlot?: ReactNode;\n uploadSigningUrl: string;\n /** Called before opening the modal — returns upload metadata (token, userId, etc). */\n getUploadMeta?: () => Promise<Record<string, string>>;\n /** Pre-create a mediaItem — called by the preprocessor plugin before upload starts. */\n createMediaItem?: (file: { name: string; size: number; mimeType: string }) => Promise<string>;\n onUploadComplete?: (results: CloudUploadResult[]) => void;\n onError?: (error: Error) => void;\n}\n\nexport function ImportProvider({\n children,\n available,\n dialogSlot,\n uploadSigningUrl,\n getUploadMeta,\n createMediaItem,\n onUploadComplete,\n onError,\n}: ImportProviderProps) {\n const [isOpen, setIsOpen] = useState(false);\n\n // Stable refs for callbacks — avoids re-subscribing Uppy events\n const onCompleteRef = useRef(onUploadComplete);\n const onErrorRef = useRef(onError);\n onCompleteRef.current = onUploadComplete;\n onErrorRef.current = onError;\n\n // Initialize service once\n const [uppy] = useState(() => cloudImportService.init({ uploadSigningUrl }));\n\n useEffect(() => {\n const handleComplete = (result: { successful?: any[] }) => {\n const successful = result?.successful ?? [];\n if (successful.length > 0 && onCompleteRef.current) {\n onCompleteRef.current(\n successful.map((file: any) => ({\n uploadURL: file.response?.uploadURL ?? '',\n fileName: file.name ?? 'unknown',\n fileSize: file.size ?? 0,\n })),\n );\n }\n };\n\n const handleError = (error: unknown) => {\n onErrorRef.current?.(error instanceof Error ? error : new Error(String(error)));\n };\n\n uppy.on('complete', handleComplete);\n uppy.on('error', handleError);\n\n return () => {\n uppy.off('complete', handleComplete);\n uppy.off('error', handleError);\n };\n }, [uppy]);\n\n // Sync createMediaItem into the preprocessor plugin\n useEffect(() => {\n try {\n const preprocessor = cloudImportService.getPreprocessor();\n preprocessor.setCreateFn(createMediaItem ?? null);\n } catch {\n // Service not initialized yet — will be set on next render\n }\n }, [createMediaItem]);\n\n const openModal = useCallback(async () => {\n if (getUploadMeta) {\n try {\n const meta = await getUploadMeta();\n cloudImportService.setMeta(meta);\n } catch (err) {\n console.error('[Import] Failed to get upload metadata:', err);\n return;\n }\n }\n setIsOpen(true);\n }, [getUploadMeta]);\n\n const closeModal = useCallback(() => {\n setIsOpen(false);\n }, []);\n\n return (\n <ImportContext value={{ openModal, closeModal, isOpen, uppy, available }}>\n <UppyContextProvider uppy={uppy}>\n {children}\n {dialogSlot}\n </UppyContextProvider>\n </ImportContext>\n );\n}\n\n/** Hook to access the import modal and Uppy instance. Must be used inside <ImportProvider>. */\nexport function useImport(): ImportContextValue {\n const ctx = useContext(ImportContext);\n if (!ctx) throw new Error('useImport must be used within <ImportProvider>');\n return ctx;\n}\n\n/**\n * The context WHEN THE LANE CAN BE USED, and `null` otherwise — for surfaces\n * that offer the cloud modal only where it works and fall back where it does\n * not (the pro ImportButton, which drops to the local file picker).\n *\n * It used to answer presence alone, and presence used to be the same fact:\n * the provider mounted only inside a confirmed auth handshake. It mounts for\n * the life of the desktop process now (Task 11 — a provider that appears and\n * disappears re-parents the app), so presence would offer a cloud modal to a\n * signed-out user whose upload-token request can only fail: a control that\n * looks alive and silently does nothing.\n *\n * Still ONE fact, read from the tree rather than mirrored: the alternative —\n * a caller re-deriving `isDesktop && cloudEnabled && signedIn` — is the drift\n * class that crashed the desktop (\"useImport must be used within\n * <ImportProvider>\") whenever the two copies disagreed.\n */\nexport function useImportIfAvailable(): ImportContextValue | null {\n const ctx = useContext(ImportContext);\n return ctx?.available ? ctx : null;\n}\n","/**\n * Singleton Uppy service for imports (local + cloud).\n *\n * Uses @uppy/aws-s3 for multipart uploads directly to R2 via the\n * upload-signing CF Worker. Replaces the old TUS-based upload path.\n *\n * Owns the Uppy instance lifecycle (headless — no Dashboard plugin).\n * React integration is handled by ImportProvider (single mount at app root).\n * MediaItem pre-creation is handled by MediaItemPreprocessor (Uppy plugin).\n */\nimport Uppy from '@uppy/core';\nimport AwsS3 from '@uppy/aws-s3';\nimport { MediaItemPreprocessor } from './MediaItemPreprocessor';\ninterface CloudImportConfig {\n uploadSigningUrl: string;\n}\n\nexport interface CloudUploadResult {\n uploadURL: string;\n fileName: string;\n fileSize: number;\n}\n\nclass CloudImportService {\n private uppy: Uppy | null = null;\n private config: CloudImportConfig | null = null;\n\n /** Lazy-init: create Uppy + plugins on first use. */\n init(config: CloudImportConfig): Uppy {\n if (this.uppy) return this.uppy;\n\n this.config = config;\n\n const signingUrl = this.config.uploadSigningUrl.replace(/\\/$/, '');\n\n // @ts-expect-error — Uppy v5 Body generic makes restrictions type collapse to never\n this.uppy = new Uppy({\n id: 'cloud-import',\n restrictions: {\n allowedFileTypes: ['video/*', 'audio/*'],\n },\n })\n .use(AwsS3, {\n // Upload-signing Worker implements the S3 multipart endpoints at /s3/multipart/*\n endpoint: signingUrl,\n shouldUseMultipart: true,\n // Cap concurrent multipart part uploads. Unbounded concurrency\n // saturates the browser network stack and the signing Worker on\n // large files; 3 keeps throughput high without melting either.\n limit: 3,\n // Exponential-ish backoff for failed part/signing requests. Uppy\n // retries the same operation on each delay — keeps transient\n // network blips from failing an entire upload.\n retryDelays: [1000, 3000, 5000, 10000],\n })\n .use(MediaItemPreprocessor as any);\n\n return this.uppy;\n }\n\n /** Get the Uppy instance (must call init() first). */\n getUppy(): Uppy {\n if (!this.uppy) throw new Error('CloudImportService not initialized — call init() first');\n return this.uppy;\n }\n\n /** Get the MediaItemPreprocessor plugin. */\n getPreprocessor(): MediaItemPreprocessor {\n return this.getUppy().getPlugin(MediaItemPreprocessor.pluginId) as unknown as MediaItemPreprocessor;\n }\n\n /** Update upload metadata (uploadToken, userId, projectId). */\n setMeta(meta: Record<string, string>): void {\n this.uppy?.setMeta(meta);\n\n // Update AwsS3 plugin headers with the auth token.\n // headers must be a static Record — functions are not supported in @uppy/aws-s3 v5.\n if (meta.uploadToken) {\n const plugin = this.uppy?.getPlugin('AwsS3Multipart');\n if (plugin) {\n plugin.setOptions({ headers: { 'uppy-auth-token': meta.uploadToken } });\n }\n }\n }\n}\n\n/** Module-level singleton. */\nexport const cloudImportService = new CloudImportService();\n","/**\n * Uppy preprocessor plugin that pre-creates a mediaItem in the backend\n * before the upload starts. This guarantees convexMediaItemId is in the\n * upload metadata before the first byte goes out — no race condition.\n *\n * The actual creation function is injected via setCreateFn() so the plugin\n * stays decoupled from Convex/auth concerns.\n */\nimport { BasePlugin } from '@uppy/core';\nimport type { Uppy, Meta } from '@uppy/core';\n\ntype CreateMediaItemFn = (file: {\n name: string;\n size: number;\n mimeType: string;\n}) => Promise<string>;\n\nexport class MediaItemPreprocessor extends BasePlugin<Record<string, never>, Meta, Record<string, never>> {\n static pluginId = 'MediaItemPreprocessor';\n\n private createFn: CreateMediaItemFn | null = null;\n private preprocessBound: (fileIDs: string[], uploadID: string) => Promise<void>;\n\n constructor(uppy: Uppy, opts?: Record<string, never>) {\n super(uppy, opts ?? {});\n this.id = MediaItemPreprocessor.pluginId;\n this.type = 'preprocessor';\n this.preprocessBound = this.preprocess.bind(this);\n }\n\n /** Inject the creation function (called from ImportProvider). */\n setCreateFn(fn: CreateMediaItemFn | null): void {\n this.createFn = fn;\n }\n\n install(): void {\n this.uppy.addPreProcessor(this.preprocessBound);\n }\n\n uninstall(): void {\n this.uppy.removePreProcessor(this.preprocessBound);\n }\n\n private async preprocess(fileIDs: string[]): Promise<void> {\n if (!this.createFn) return;\n\n for (const fileID of fileIDs) {\n const file = this.uppy.getFile(fileID);\n if (!file) continue;\n\n // Skip if already has a mediaItemId (e.g. retry)\n if ((file.meta as Record<string, unknown>).convexMediaItemId) continue;\n\n this.uppy.emit('preprocess-progress', file, {\n mode: 'indeterminate' as const,\n message: 'Preparing upload…',\n });\n\n try {\n const mediaItemId = await this.createFn({\n name: file.name ?? 'unknown',\n size: file.size ?? 0,\n mimeType: file.type ?? 'video/mp4',\n });\n this.uppy.setFileMeta(fileID, { convexMediaItemId: mediaItemId });\n } catch (err) {\n this.uppy.log(`[MediaItemPreprocessor] Failed for ${fileID}: ${err}`, 'error');\n }\n\n this.uppy.emit('preprocess-complete', file);\n }\n }\n}\n","/**\n * Single source of truth for cloud endpoint resolution.\n *\n * One input (convexUrl) → deterministic output (all cloud endpoints).\n * No fallback chains, no env var reading, no defaults.\n */\n\nexport type CloudEnvironment = 'dev' | 'staging' | 'production';\n\nexport interface CloudEndpoints {\n convexUrl: string;\n uploadSigningUrl: string;\n}\n\nexport const ENVIRONMENTS: Record<CloudEnvironment, CloudEndpoints> = {\n dev: {\n convexUrl: 'https://api-dev.cueframe.ai',\n uploadSigningUrl: 'http://localhost:8787',\n },\n staging: {\n convexUrl: 'https://api-dev.cueframe.ai',\n uploadSigningUrl: 'https://upload-signing.cueframelabs.workers.dev',\n },\n production: {\n convexUrl: 'https://api.cueframe.ai',\n uploadSigningUrl: 'https://upload.cueframe.ai',\n },\n};\n\n/** Detect environment from a Convex deployment URL.\n *\n * Convex exposes two domains per deployment: queries (`data*`) and HTTP\n * actions (`api*`). Callers pass either form depending on which client\n * they own, so detection has to recognize both:\n * prod → api.cueframe.ai | data.cueframe.ai\n * staging → api-dev.cueframe.ai | data-dev.cueframe.ai\n */\nexport function detectEnvironment(convexUrl?: string): CloudEnvironment {\n if (!convexUrl) return 'dev';\n // staging first — its hostnames are substrings of prod's, so checking\n // prod first would mis-classify (e.g. data-dev.cueframe.ai contains\n // data.cueframe.ai).\n if (/\\b(api-dev|data-dev)\\.cueframe\\.ai/.test(convexUrl)) return 'staging';\n if (/\\b(api|data)\\.cueframe\\.ai/.test(convexUrl)) return 'production';\n // RAW deployment hostnames — env files frequently carry the\n // *.convex.cloud/site form instead of the custom domains, and falling\n // through to 'dev' silently pointed real deployments at the localhost\n // signing worker (found by the desktop-lane staging test: enhance uploads\n // died on http://localhost:8787 while Convex itself was on staging).\n if (/\\boceanic-dogfish-357\\.convex\\.(cloud|site)/.test(convexUrl)) return 'staging';\n if (/\\bpolished-hawk-150\\.convex\\.(cloud|site)/.test(convexUrl)) return 'production';\n return 'dev';\n}\n\n/** Resolve all cloud endpoints from a Convex URL. */\nexport function getEndpoints(convexUrl: string): CloudEndpoints {\n const env = detectEnvironment(convexUrl);\n return ENVIRONMENTS[env];\n}\n\n// NO `getEnvironmentEndpoints` AND NO `ENV_STORAGE_KEY`.\n//\n// They served a desktop Settings control that let a user pick dev / staging /\n// production at runtime. Nothing downstream could honour it: the Convex socket\n// is built from `VITE_CONVEX_URL` and its bearer is minted by that same\n// deployment (`desktopAuthClient`), so a switched environment would present a\n// credential the deployment never issued. The one entry that read the key fed\n// the result to a shell composed with `authGate={false}`, which dropped it\n// before it reached anything at all.\n//\n// The environment is a BUILD fact, and `getEndpoints(convexUrl)` above is the\n// one way to ask what it implies. `CloudEnhancementSettings` displays it.\n","export { ImportProvider, useImport, useImportIfAvailable } from './ImportProvider';\nexport type { ImportProviderProps } from './ImportProvider';\n\nexport { cloudImportService } from './CloudImportService';\nexport type { CloudUploadResult } from './CloudImportService';\n\nexport { ENVIRONMENTS, detectEnvironment, getEndpoints } from './cloudConfig';\nexport type { CloudEnvironment, CloudEndpoints } from './cloudConfig';\n\nexport { multipartUpload } from './multipartUpload';\nexport type { MultipartUploadOptions, MultipartUploadResult } from './multipartUpload';\n\n// Re-export Uppy React hooks for use in custom UI components\nexport {\n useDropzone,\n useUppyState,\n useUppyEvent,\n} from '@uppy/react';\n"],"mappings":"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","names":[]}
@@ -1,7 +0,0 @@
1
- import {
2
- multipartUpload
3
- } from "./chunk-XKO6ZSWI.js";
4
- export {
5
- multipartUpload
6
- };
7
- //# sourceMappingURL=multipartUpload.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}