@cueframe/kernel 0.1.3 → 0.2.0

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 (357) hide show
  1. package/dist/_members/account-model/validators/contextFile.d.ts +3 -21
  2. package/dist/_members/account-model/validators/conversation.d.ts +12 -42
  3. package/dist/_members/account-model/validators/dashboardInsight.d.ts +3 -17
  4. package/dist/_members/account-model/validators/sessionToken.d.ts +10 -36
  5. package/dist/_members/account-model/validators/uploadToken.d.ts +11 -21
  6. package/dist/_members/account-model/validators/userSettings.d.ts +3 -13
  7. package/dist/_members/account-model/validators/workingComposition.d.ts +3 -19
  8. package/dist/_members/authoring/agent/errors.d.ts +8 -0
  9. package/dist/_members/authoring/capabilities.d.ts +0 -9
  10. package/dist/_members/authoring/index.d.ts +1 -1
  11. package/dist/_members/authoring/models/defaultModels.d.ts +12 -0
  12. package/dist/_members/authoring/models/modelFactory.d.ts +1 -0
  13. package/dist/_members/authoring/motion/materializeMotionPresetOps.d.ts +5 -7
  14. package/dist/_members/authoring/types.d.ts +1 -2
  15. package/dist/_members/cloud-import/CloudImportService.d.ts +3 -4
  16. package/dist/_members/cloud-import/ImportProvider.d.ts +3 -7
  17. package/dist/_members/cloud-import/cloudConfig.d.ts +0 -6
  18. package/dist/_members/cloud-import/index.d.ts +2 -4
  19. package/dist/_members/component-runtime/assetServer.d.ts +18 -0
  20. package/dist/_members/component-runtime/assetServer.d.ts.map +1 -0
  21. package/dist/_members/component-runtime/bake.d.ts +12 -0
  22. package/dist/_members/component-runtime/bake.d.ts.map +1 -0
  23. package/dist/_members/component-runtime/browserFirewall.d.ts +21 -0
  24. package/dist/_members/component-runtime/browserFirewall.d.ts.map +1 -0
  25. package/dist/_members/component-runtime/browserIdentity.d.ts +14 -0
  26. package/dist/_members/component-runtime/browserIdentity.d.ts.map +1 -0
  27. package/dist/_members/component-runtime/browserOptions.d.ts +8 -0
  28. package/dist/_members/component-runtime/browserOptions.d.ts.map +1 -0
  29. package/dist/_members/component-runtime/canonicalIdentity.d.ts +14 -0
  30. package/dist/_members/component-runtime/canonicalIdentity.d.ts.map +1 -0
  31. package/dist/_members/component-runtime/contracts.d.ts +443 -0
  32. package/dist/_members/component-runtime/contracts.d.ts.map +1 -0
  33. package/dist/_members/component-runtime/determinism.d.ts +18 -0
  34. package/dist/_members/component-runtime/determinism.d.ts.map +1 -0
  35. package/dist/_members/component-runtime/fixtures/webgpuTiledRefraction.d.ts +9 -0
  36. package/dist/_members/component-runtime/fixtures/webgpuTiledRefraction.d.ts.map +1 -0
  37. package/dist/_members/component-runtime/identity.d.ts +16 -0
  38. package/dist/_members/component-runtime/identity.d.ts.map +1 -0
  39. package/dist/_members/component-runtime/importPolicy.d.ts +3 -0
  40. package/dist/_members/component-runtime/importPolicy.d.ts.map +1 -0
  41. package/dist/_members/component-runtime/index.d.ts +11 -0
  42. package/dist/_members/component-runtime/index.d.ts.map +1 -0
  43. package/dist/_members/component-runtime/outputVerifier.d.ts +29 -0
  44. package/dist/_members/component-runtime/outputVerifier.d.ts.map +1 -0
  45. package/dist/_members/{render-harness/localRender.d.ts → component-runtime/render.d.ts} +25 -15
  46. package/dist/_members/component-runtime/render.d.ts.map +1 -0
  47. package/dist/_members/component-runtime/sourceWorkspace.d.ts +10 -0
  48. package/dist/_members/component-runtime/sourceWorkspace.d.ts.map +1 -0
  49. package/dist/_members/compose/index.d.ts +0 -5
  50. package/dist/_members/composition/graphics-plan/schemas.d.ts +299 -1309
  51. package/dist/_members/composition/primitive-catalog/index.d.ts +2 -2
  52. package/dist/_members/composition/primitive-catalog/projection.d.ts +2 -15
  53. package/dist/_members/composition/projection/behind-readiness.d.ts +4 -2
  54. package/dist/_members/composition/reframe/index.d.ts +56 -528
  55. package/dist/_members/composition/validators/brandKit.d.ts +251 -1252
  56. package/dist/_members/composition/validators/composePlan.d.ts +106 -818
  57. package/dist/_members/composition/validators/composition.d.ts +1328 -5886
  58. package/dist/_members/composition/validators/font.d.ts +35 -91
  59. package/dist/_members/composition/validators/index.d.ts +1 -0
  60. package/dist/_members/composition/validators/opaqueId.d.ts +13 -0
  61. package/dist/_members/composition/validators/project.d.ts +17 -52
  62. package/dist/_members/composition/validators/registry.d.ts +53 -135
  63. package/dist/_members/composition/validators/render.d.ts +811 -7443
  64. package/dist/_members/composition/validators/session.d.ts +41 -99
  65. package/dist/_members/composition/validators/webhook.d.ts +25 -60
  66. package/dist/_members/composition-ops/alphaLayers.d.ts +3 -2
  67. package/dist/_members/composition-ops/index.d.ts +412 -4348
  68. package/dist/_members/core/render/compositionAudioAndDepth.d.ts +6 -0
  69. package/dist/_members/core/render/compositionRender.d.ts +3 -4
  70. package/dist/_members/core/render/compositionValidation.d.ts +4 -0
  71. package/dist/_members/core/render/index.d.ts +2 -2
  72. package/dist/_members/core/render/types.d.ts +16 -8
  73. package/dist/_members/director/ai-sdk/messages.d.ts +67 -217
  74. package/dist/_members/director/domain/chat.d.ts +70 -293
  75. package/dist/_members/director/testing/contract.d.ts +10 -10
  76. package/dist/_members/errors/registry.d.ts +201 -3
  77. package/dist/_members/foundation/primitives/index.d.ts +1 -1
  78. package/dist/_members/mcp/adapter.d.ts +22 -0
  79. package/dist/_members/mcp/burnedNames.d.ts +0 -1
  80. package/dist/_members/mcp/core.d.ts +6 -3
  81. package/dist/_members/mcp/curation.d.ts +3 -34
  82. package/dist/_members/mcp/curationTypes.d.ts +34 -0
  83. package/dist/_members/mcp/generated/harness.d.ts +1 -1
  84. package/dist/_members/mcp/generated/operations.d.ts +12 -2
  85. package/dist/_members/mcp/main.d.ts +1 -0
  86. package/dist/_members/mcp/mediaContextFormat.d.ts +4 -0
  87. package/dist/_members/mcp/prompts.d.ts +1 -1
  88. package/dist/_members/mcp/query.d.ts +4 -0
  89. package/dist/_members/mcp/resources.d.ts +1 -1
  90. package/dist/_members/mcp/server.d.ts +1 -2
  91. package/dist/_members/mcp/wireSchema.d.ts +13 -0
  92. package/dist/_members/media-model/api.d.ts +123 -727
  93. package/dist/_members/media-model/generation.d.ts +141 -228
  94. package/dist/_members/media-model/index.d.ts +1 -0
  95. package/dist/_members/media-model/opaqueId.d.ts +10 -0
  96. package/dist/_members/plane/contract.d.ts +16 -19
  97. package/dist/_members/primitives/backgrounds/animated-bar-chart/config.d.ts +3 -27
  98. package/dist/_members/primitives/backgrounds/animated-line-chart/config.d.ts +2 -26
  99. package/dist/_members/primitives/backgrounds/dither-gradient-bg/config.d.ts +1 -17
  100. package/dist/_members/primitives/backgrounds/dynamic-grid/config.d.ts +6 -14
  101. package/dist/_members/primitives/backgrounds/ecosystem-constellation/config.d.ts +1 -11
  102. package/dist/_members/primitives/backgrounds/infinite-marquee/config.d.ts +1 -21
  103. package/dist/_members/primitives/backgrounds/mesh-gradient-bg/config.d.ts +2 -12
  104. package/dist/_members/primitives/backgrounds/perspective-marquee/config.d.ts +2 -26
  105. package/dist/_members/primitives/backgrounds/silk-flow-bg/config.d.ts +2 -22
  106. package/dist/_members/primitives/backgrounds/vector-field/config.d.ts +1 -17
  107. package/dist/_members/primitives/backgrounds/volumetric-rays/config.d.ts +1 -19
  108. package/dist/_members/primitives/effects/blur/config.d.ts +5 -14
  109. package/dist/_members/primitives/effects/color-grade/config.d.ts +10 -18
  110. package/dist/_members/primitives/effects/grain/config.d.ts +9 -12
  111. package/dist/_members/primitives/effects/parallax/config.d.ts +8 -12
  112. package/dist/_members/primitives/effects/particles/config.d.ts +9 -20
  113. package/dist/_members/primitives/effects/pulsing-indicator/config.d.ts +1 -13
  114. package/dist/_members/primitives/effects/spotlight-card/config.d.ts +1 -25
  115. package/dist/_members/primitives/effects/spring-pop-in/config.d.ts +1 -15
  116. package/dist/_members/primitives/effects/success-confetti/config.d.ts +2 -26
  117. package/dist/_members/primitives/effects/vignette/config.d.ts +5 -12
  118. package/dist/_members/primitives/hero-text/config.d.ts +9 -24
  119. package/dist/_members/primitives/layouts/chat-to-preview-layout/config.d.ts +1 -11
  120. package/dist/_members/primitives/layouts/infinite-bento-pan/config.d.ts +1 -9
  121. package/dist/_members/primitives/layouts/letterbox/config.d.ts +1 -9
  122. package/dist/_members/primitives/layouts/photo-grid/config.d.ts +2 -12
  123. package/dist/_members/primitives/layouts/picture-in-picture/config.d.ts +7 -12
  124. package/dist/_members/primitives/layouts/split-screen/config.d.ts +1 -7
  125. package/dist/_members/primitives/layouts/staggered-bento-grid/config.d.ts +3 -51
  126. package/dist/_members/primitives/lib/schema.d.ts +1 -1
  127. package/dist/_members/primitives/scenes/changelog-bite/config.d.ts +7 -24
  128. package/dist/_members/primitives/scenes/hero-device-assemble/config.d.ts +5 -14
  129. package/dist/_members/primitives/scenes/landing-code-showcase/config.d.ts +1 -7
  130. package/dist/_members/primitives/scenes/live-code-compilation/config.d.ts +1 -7
  131. package/dist/_members/primitives/scenes/pricing-tier-focus/config.d.ts +2 -12
  132. package/dist/_members/primitives/scenes/product-launch-trailer/config.d.ts +1 -19
  133. package/dist/_members/primitives/scenes/terminal-to-browser-deploy/config.d.ts +1 -11
  134. package/dist/_members/primitives/text/blur-reveal/config.d.ts +1 -17
  135. package/dist/_members/primitives/text/cinematic-title/config.d.ts +13 -73
  136. package/dist/_members/primitives/text/inline-highlight/config.d.ts +1 -21
  137. package/dist/_members/primitives/text/karaoke/config.d.ts +10 -93
  138. package/dist/_members/primitives/text/kinetic-type/config.d.ts +14 -49
  139. package/dist/_members/primitives/text/lower-third/config.d.ts +8 -70
  140. package/dist/_members/primitives/text/marker-highlight/config.d.ts +1 -23
  141. package/dist/_members/primitives/text/masked-slide-reveal/config.d.ts +1 -17
  142. package/dist/_members/primitives/text/matrix-decode/config.d.ts +1 -19
  143. package/dist/_members/primitives/text/quote-card/config.d.ts +1 -11
  144. package/dist/_members/primitives/text/rgb-glitch-text/config.d.ts +1 -23
  145. package/dist/_members/primitives/text/shimmer-sweep/config.d.ts +1 -17
  146. package/dist/_members/primitives/text/slot-machine-roll/config.d.ts +1 -17
  147. package/dist/_members/primitives/text/staggered-fade-up/config.d.ts +2 -24
  148. package/dist/_members/primitives/text/stat-counter/config.d.ts +6 -20
  149. package/dist/_members/primitives/text/strikethrough-replace/config.d.ts +1 -19
  150. package/dist/_members/primitives/text/text-effect/config.d.ts +10 -15
  151. package/dist/_members/primitives/text/text-fade-replace/config.d.ts +1 -17
  152. package/dist/_members/primitives/text/token-stream/config.d.ts +1 -11
  153. package/dist/_members/primitives/text/tracking-in/config.d.ts +1 -19
  154. package/dist/_members/primitives/text/typewriter/config.d.ts +1 -21
  155. package/dist/_members/primitives/transitions/chromatic-aberration-wipe/config.d.ts +5 -8
  156. package/dist/_members/primitives/transitions/code-diff-wipe/config.d.ts +1 -21
  157. package/dist/_members/primitives/transitions/directional-wipe/config.d.ts +7 -6
  158. package/dist/_members/primitives/transitions/frosted-glass-wipe/config.d.ts +1 -5
  159. package/dist/_members/primitives/transitions/glitch-cut/config.d.ts +1 -7
  160. package/dist/_members/primitives/transitions/grid-pixelate-wipe/config.d.ts +6 -12
  161. package/dist/_members/primitives/transitions/ink-wipe/config.d.ts +7 -8
  162. package/dist/_members/primitives/transitions/kinetic-type-mask/config.d.ts +1 -7
  163. package/dist/_members/primitives/transitions/light-leak/config.d.ts +1 -7
  164. package/dist/_members/primitives/transitions/luma-matte/config.d.ts +6 -6
  165. package/dist/_members/primitives/transitions/morph/config.d.ts +5 -6
  166. package/dist/_members/primitives/transitions/spatial-push/config.d.ts +7 -6
  167. package/dist/_members/primitives/transitions/swipe-transition-wipe/config.d.ts +5 -10
  168. package/dist/_members/primitives/transitions/zoom-through/config.d.ts +2 -30
  169. package/dist/_members/primitives/transitions/zoom-through-transition/config.d.ts +1 -13
  170. package/dist/_members/primitives/ui-blocks/ai-generate-overlay/config.d.ts +1 -29
  171. package/dist/_members/primitives/ui-blocks/ai-generation-canvas/config.d.ts +1 -11
  172. package/dist/_members/primitives/ui-blocks/badge-pop/config.d.ts +8 -16
  173. package/dist/_members/primitives/ui-blocks/before-after-slider/config.d.ts +1 -11
  174. package/dist/_members/primitives/ui-blocks/benchmark-bars/config.d.ts +3 -73
  175. package/dist/_members/primitives/ui-blocks/bounding-box-selector/config.d.ts +1 -15
  176. package/dist/_members/primitives/ui-blocks/browser-flow/config.d.ts +1 -7
  177. package/dist/_members/primitives/ui-blocks/brush-stroke-simulator/config.d.ts +1 -21
  178. package/dist/_members/primitives/ui-blocks/chat-exchange/config.d.ts +1 -15
  179. package/dist/_members/primitives/ui-blocks/code-accordion/config.d.ts +2 -26
  180. package/dist/_members/primitives/ui-blocks/context-meter/config.d.ts +1 -13
  181. package/dist/_members/primitives/ui-blocks/cursor-flow/config.d.ts +2 -66
  182. package/dist/_members/primitives/ui-blocks/dashboard-populate/config.d.ts +1 -9
  183. package/dist/_members/primitives/ui-blocks/data-flow-pipes/config.d.ts +3 -97
  184. package/dist/_members/primitives/ui-blocks/device-mockup-zoom/config.d.ts +5 -14
  185. package/dist/_members/primitives/ui-blocks/drag-and-drop-flow/config.d.ts +1 -13
  186. package/dist/_members/primitives/ui-blocks/eval-scorecard/config.d.ts +2 -36
  187. package/dist/_members/primitives/ui-blocks/glass-code-block/config.d.ts +1 -23
  188. package/dist/_members/primitives/ui-blocks/image-expand-to-fullscreen/config.d.ts +3 -113
  189. package/dist/_members/primitives/ui-blocks/metric-gauge/config.d.ts +2 -34
  190. package/dist/_members/primitives/ui-blocks/morphing-modal/config.d.ts +3 -113
  191. package/dist/_members/primitives/ui-blocks/pipeline-journey/config.d.ts +1 -9
  192. package/dist/_members/primitives/ui-blocks/progress-steps/config.d.ts +6 -37
  193. package/dist/_members/primitives/ui-blocks/reasoning-trace/config.d.ts +2 -12
  194. package/dist/_members/primitives/ui-blocks/simulated-cursor/config.d.ts +2 -54
  195. package/dist/_members/primitives/ui-blocks/terminal-simulator/config.d.ts +9 -48
  196. package/dist/_members/primitives/ui-blocks/toast-notification/config.d.ts +7 -20
  197. package/dist/_members/primitives/ui-blocks/tool-call-stack/config.d.ts +2 -42
  198. package/dist/_members/primitives/ui-blocks/tool-menu-slide-in/config.d.ts +1 -19
  199. package/dist/_members/primitives/ui-blocks/visual-docs-snippet/config.d.ts +3 -71
  200. package/dist/_members/primitives/ui-blocks/voice-waveform/config.d.ts +5 -14
  201. package/dist/_members/primitives/workspace.d.ts +1 -5
  202. package/dist/_members/render-harness/cardAssetAdmission.d.ts +3 -0
  203. package/dist/_members/render-harness/cardAssetAdmission.d.ts.map +1 -0
  204. package/dist/_members/render-harness/cardRender.d.ts.map +1 -1
  205. package/dist/_members/render-harness/index.d.ts +1 -5
  206. package/dist/_members/render-harness/index.d.ts.map +1 -1
  207. package/dist/_members/render-harness/materializeSources.d.ts.map +1 -1
  208. package/dist/_members/render-harness/remotion-runtime.d.ts +20 -0
  209. package/dist/_members/render-harness/renderInputAssets.d.ts +2 -1
  210. package/dist/_members/render-harness/renderInputAssets.d.ts.map +1 -1
  211. package/dist/_members/render-harness/resolveAssets.d.ts.map +1 -1
  212. package/dist/authoring/build-tools.js +8 -8
  213. package/dist/authoring/context.js +5 -5
  214. package/dist/authoring/models.js +3 -1
  215. package/dist/authoring/resource-routing.js +1 -1
  216. package/dist/authoring/resources.js +1 -1
  217. package/dist/authoring/tools.js +7 -7
  218. package/dist/authoring.js +28 -27
  219. package/dist/{chunk-AW57IWNW.js → chunk-4FOOBSEE.js} +53 -3
  220. package/dist/{chunk-KFECIHED.js → chunk-4JRUGT2Y.js} +41 -106
  221. package/dist/{chunk-FMODQD5P.js → chunk-4ZE564YF.js} +16 -9
  222. package/dist/chunk-5OTQ7M43.js +718 -0
  223. package/dist/{chunk-GMD33ZD7.js → chunk-6ID2J64H.js} +1 -1
  224. package/dist/{chunk-NQSMEUJ6.js → chunk-6XI57FZZ.js} +362 -212
  225. package/dist/chunk-7KEUL3FI.js +500 -0
  226. package/dist/{chunk-GIA2SVVB.js → chunk-AD5HWBCE.js} +9 -4
  227. package/dist/{chunk-DCVJWGIA.js → chunk-C5SEPOWD.js} +165 -173
  228. package/dist/chunk-CGHTMZNC.js +6 -0
  229. package/dist/chunk-DHKQ47Q6.js +57 -0
  230. package/dist/{chunk-RP4SXXLJ.js → chunk-DQKSCHFC.js} +1 -1
  231. package/dist/{chunk-TO4BFNLJ.js → chunk-EEXCDFY5.js} +1 -1
  232. package/dist/{chunk-ZT7MHRQU.js → chunk-GCQ7Z7S7.js} +15 -5
  233. package/dist/{chunk-TPA6PYN2.js → chunk-GEGRJKKO.js} +25 -10
  234. package/dist/chunk-HHFDHJ3I.js +392 -0
  235. package/dist/{chunk-ICSZF37W.js → chunk-IBMJ33EL.js} +3 -3
  236. package/dist/{chunk-TFGKUWHY.js → chunk-IHFREGFA.js} +24 -22
  237. package/dist/chunk-IJ7PVJTK.js +114 -0
  238. package/dist/{chunk-UQSOS726.js → chunk-KKEY5MIW.js} +8 -8
  239. package/dist/{chunk-ZPRBGW4Y.js → chunk-LNBVTDFR.js} +1 -1
  240. package/dist/chunk-LQUWKBST.js +195 -0
  241. package/dist/chunk-M2TLRXEO.js +41 -0
  242. package/dist/{chunk-SDCEJAO2.js → chunk-NOEBAV2G.js} +58 -2
  243. package/dist/{chunk-DL7WYISQ.js → chunk-QBKDEO7J.js} +1601 -1435
  244. package/dist/chunk-RFXR7ATW.js +244 -0
  245. package/dist/chunk-SIAXP3ZO.js +131 -0
  246. package/dist/{chunk-MCBUX5XV.js → chunk-SLN5UKLT.js} +2 -2
  247. package/dist/{chunk-GH27OS5S.js → chunk-VCBLGZQQ.js} +19 -4
  248. package/dist/{chunk-TMB5AY6Q.js → chunk-XHUYWVYK.js} +1 -1
  249. package/dist/{chunk-BZZTVOGG.js → chunk-XVBOSPZI.js} +15 -17
  250. package/dist/{chunk-HBVAZXYO.js → chunk-Y3QGYASW.js} +14 -14
  251. package/dist/{chunk-DWLNPNC4.js → chunk-ZCAQHNPI.js} +1 -1
  252. package/dist/{chunk-DJW3UGBH.js → chunk-ZN6P3KOJ.js} +90 -39
  253. package/dist/chunk-ZZRBKGDA.js +109 -0
  254. package/dist/cloud-import.js +20 -116
  255. package/dist/component-runtime/browserOptions.d.ts +1 -0
  256. package/dist/component-runtime/browserOptions.js +7 -0
  257. package/dist/component-runtime/contracts.d.ts +1 -0
  258. package/dist/component-runtime/contracts.js +49 -0
  259. package/dist/component-runtime/identity/browser.d.ts +1 -0
  260. package/dist/component-runtime/identity/browser.js +35 -0
  261. package/dist/component-runtime/identity.d.ts +1 -0
  262. package/dist/component-runtime/identity.js +21 -0
  263. package/dist/component-runtime/importPolicy.d.ts +1 -0
  264. package/dist/component-runtime/importPolicy.js +10 -0
  265. package/dist/component-runtime/render.d.ts +1 -0
  266. package/dist/component-runtime/render.js +34 -0
  267. package/dist/component-runtime.d.ts +1 -0
  268. package/dist/component-runtime.js +132 -0
  269. package/dist/compose.js +16 -30
  270. package/dist/composition/graphics-plan.js +1 -1
  271. package/dist/composition/ops.js +4 -4
  272. package/dist/composition/primitive-catalog.js +1 -3
  273. package/dist/composition/projection.js +2 -2
  274. package/dist/composition/timeline.js +2 -2
  275. package/dist/composition/validators.js +4 -2
  276. package/dist/composition-ops.js +23 -17
  277. package/dist/composition.js +17 -15
  278. package/dist/{context-JLLU3MYD.js → context-4GSDBFT3.js} +5 -5
  279. package/dist/core/render.js +8 -8
  280. package/dist/core/select.js +2 -2
  281. package/dist/core.js +6 -6
  282. package/dist/director/ai-sdk.js +3 -3
  283. package/dist/director/domain.js +2 -2
  284. package/dist/director.js +3 -3
  285. package/dist/errors.js +1 -1
  286. package/dist/mcp/adapter.js +33 -33
  287. package/dist/mcp/core.js +1 -1
  288. package/dist/mcp/curation.js +5 -1
  289. package/dist/mcp/executor.js +1 -1
  290. package/dist/mcp/server.js +4 -6
  291. package/dist/mcp/wire-schema.d.ts +1 -0
  292. package/dist/mcp/wire-schema.js +37 -0
  293. package/dist/mcp.js +6 -29
  294. package/dist/media-model/media-kind.js +98 -9
  295. package/dist/media-model.js +83 -77
  296. package/dist/nle-export.js +15 -24
  297. package/dist/plane/conformance.js +1 -1
  298. package/dist/plane/contract.js +7 -0
  299. package/dist/plane.js +1 -1
  300. package/dist/primitives/effects.js +1 -1
  301. package/dist/primitives/hero-text.js +2 -2
  302. package/dist/primitives/layouts.js +1 -1
  303. package/dist/primitives/lib/index.js +18 -18
  304. package/dist/primitives/lib/schema.js +1 -1
  305. package/dist/primitives/lib.js +18 -18
  306. package/dist/primitives/scenes.js +2 -2
  307. package/dist/primitives/text.js +2 -2
  308. package/dist/primitives.js +10 -10
  309. package/dist/render-harness/cardAssetAdmission.d.ts +1 -0
  310. package/dist/render-harness/cardAssetAdmission.js +8 -0
  311. package/dist/render-harness/renderInputAssets.d.ts +1 -0
  312. package/dist/render-harness/renderInputAssets.js +17 -0
  313. package/dist/render-harness.js +44 -572
  314. package/package.json +69 -61
  315. package/dist/_members/authoring/prompts/designReviewerPrompt.d.ts +0 -2
  316. package/dist/_members/authoring/transpileComponent.d.ts +0 -6
  317. package/dist/_members/authoring/transpileHelper.d.ts +0 -8
  318. package/dist/_members/cloud-import/MediaItemPreprocessor.d.ts +0 -18
  319. package/dist/_members/cloud-import/multipartUpload.d.ts +0 -12
  320. package/dist/_members/compose/CompositionRenderer.d.ts +0 -6
  321. package/dist/_members/compose/sceneToRenderInput.d.ts +0 -25
  322. package/dist/_members/compose/schema.d.ts +0 -30
  323. package/dist/_members/compose/tokenResolver.d.ts +0 -17
  324. package/dist/_members/convex-api/api.d.ts +0 -5
  325. package/dist/_members/convex-api/api.generated.d.ts +0 -1444
  326. package/dist/_members/convex-api/dataModel.d.ts +0 -6
  327. package/dist/_members/render-harness/browserOptions.d.ts +0 -11
  328. package/dist/_members/render-harness/browserOptions.d.ts.map +0 -1
  329. package/dist/_members/render-harness/contractRender.d.ts +0 -27
  330. package/dist/_members/render-harness/contractRender.d.ts.map +0 -1
  331. package/dist/_members/render-harness/localRender.d.ts.map +0 -1
  332. package/dist/_members/render-harness/sandboxGlobalSpecs.d.ts +0 -9
  333. package/dist/_members/render-harness/sandboxGlobalSpecs.d.ts.map +0 -1
  334. package/dist/authoring/transpileComponent.d.ts +0 -1
  335. package/dist/authoring/transpileComponent.js +0 -31
  336. package/dist/authoring/transpileHelper.d.ts +0 -1
  337. package/dist/authoring/transpileHelper.js +0 -9
  338. package/dist/chunk-6IU2UQI5.js +0 -107
  339. package/dist/chunk-EP2Y6M2J.js +0 -64
  340. package/dist/chunk-MHOQTPOB.js +0 -124
  341. package/dist/chunk-RHVLQNYF.js +0 -20
  342. package/dist/chunk-TXSFYUZH.js +0 -85
  343. package/dist/chunk-V24L35GM.js +0 -61
  344. package/dist/chunk-WZH57M53.js +0 -494
  345. package/dist/cloud-import/multipart.d.ts +0 -1
  346. package/dist/cloud-import/multipart.js +0 -8
  347. package/dist/compose/renderer.d.ts +0 -1
  348. package/dist/compose/renderer.js +0 -170
  349. package/dist/convex-api/dataModel.d.ts +0 -1
  350. package/dist/convex-api/dataModel.js +0 -0
  351. package/dist/convex-api.d.ts +0 -1
  352. package/dist/convex-api.js +0 -8
  353. package/dist/render-harness/sandboxGlobalSpecs.d.ts +0 -1
  354. package/dist/render-harness/sandboxGlobalSpecs.js +0 -13
  355. package/dist/{chunk-SAMQUUO5.js → chunk-BIBYZJL3.js} +3 -3
  356. package/dist/{chunk-23HFEKV7.js → chunk-QISFYLBB.js} +4 -4
  357. package/dist/{chunk-DYZE7JZA.js → chunk-TMIBBD5E.js} +3 -3
@@ -0,0 +1,6 @@
1
+ // ../execution/component-runtime/src/browserOptions.ts
2
+ var COMPONENT_CHROMIUM_OPTIONS = Object.freeze({ gl: "swangle" });
3
+
4
+ export {
5
+ COMPONENT_CHROMIUM_OPTIONS
6
+ };
@@ -0,0 +1,57 @@
1
+ // ../execution/component-runtime/src/canonicalIdentity.ts
2
+ function normalizedString(value) {
3
+ return value.replace(/\r\n?/g, "\n").normalize("NFC");
4
+ }
5
+ function canonicalValue(value, seen) {
6
+ if (value === null || typeof value === "boolean") return value;
7
+ if (typeof value === "string") return normalizedString(value);
8
+ if (typeof value === "number") {
9
+ if (!Number.isFinite(value)) throw new TypeError("Canonical JSON does not support non-finite numbers.");
10
+ return Object.is(value, -0) ? 0 : value;
11
+ }
12
+ if (typeof value !== "object") {
13
+ throw new TypeError(`Canonical JSON does not support ${typeof value} values.`);
14
+ }
15
+ if (seen.has(value)) throw new TypeError("Canonical JSON does not support cyclic values.");
16
+ seen.add(value);
17
+ try {
18
+ if (Array.isArray(value)) return value.map((item) => canonicalValue(item, seen));
19
+ const prototype = Object.getPrototypeOf(value);
20
+ if (prototype !== Object.prototype && prototype !== null) {
21
+ throw new TypeError("Canonical JSON only supports plain objects.");
22
+ }
23
+ const record = value;
24
+ const result = {};
25
+ for (const key of Object.keys(record).sort()) {
26
+ const item = record[key];
27
+ if (item === void 0) throw new TypeError("Canonical JSON does not support undefined values.");
28
+ result[normalizedString(key)] = canonicalValue(item, seen);
29
+ }
30
+ return result;
31
+ } finally {
32
+ seen.delete(value);
33
+ }
34
+ }
35
+ function canonicalJson(value) {
36
+ return JSON.stringify(canonicalValue(value, /* @__PURE__ */ new Set()));
37
+ }
38
+ function sourceVersionIdentity(source) {
39
+ return canonicalJson(source);
40
+ }
41
+ function componentBundleIdentity(input) {
42
+ return canonicalJson({ domain: "cueframe.component.bundle.v2", ...input });
43
+ }
44
+ function componentRenderIdentity(request) {
45
+ return canonicalJson({ domain: "cueframe.component.render.v2", request });
46
+ }
47
+ function componentArtifactIdentity(input) {
48
+ return canonicalJson({ domain: "cueframe.component.artifact.v2", ...input });
49
+ }
50
+
51
+ export {
52
+ canonicalJson,
53
+ sourceVersionIdentity,
54
+ componentBundleIdentity,
55
+ componentRenderIdentity,
56
+ componentArtifactIdentity
57
+ };
@@ -1187,7 +1187,7 @@ var config3 = {
1187
1187
  // ../execution/primitives/src/layouts/photo-grid/config.ts
1188
1188
  import { z as z4 } from "zod";
1189
1189
  var paramsSchema4 = z4.object({
1190
- images: z4.array(z4.string().url()).min(1).describe("Array of image URLs to display."),
1190
+ images: z4.array(z4.string().url().meta({ cueframeAsset: true })).min(1).describe("Array of image URLs to display."),
1191
1191
  columns: z4.number().int().min(1).max(6).default(2).describe("Grid columns."),
1192
1192
  gap: z4.number().min(0).max(40).default(8).describe("Gap between cells in pixels."),
1193
1193
  stagger: z4.number().min(0).max(2).default(0.15).describe("Seconds between each cell's reveal. 0.1\u20130.25 reads natural.")
@@ -9,7 +9,7 @@ import {
9
9
  import {
10
10
  decodeError,
11
11
  scrubSensitive
12
- } from "./chunk-AW57IWNW.js";
12
+ } from "./chunk-4FOOBSEE.js";
13
13
 
14
14
  // ../director/src/domain/chat.ts
15
15
  import { z } from "zod";
@@ -1,3 +1,12 @@
1
+ // ../authoring/src/models/defaultModels.ts
2
+ var DEFAULT_MODEL_IDS = {
3
+ anthropic: "claude-opus-5",
4
+ openai: "gpt-4.1",
5
+ ollama: "llama3.1",
6
+ /** Cheaper model used for fast-mode / low-effort turns. */
7
+ fast: "claude-haiku-4-5"
8
+ };
9
+
1
10
  // ../authoring/src/models/modelFactory.ts
2
11
  import { createAnthropic } from "@ai-sdk/anthropic";
3
12
  import { createOpenAI } from "@ai-sdk/openai";
@@ -56,19 +65,19 @@ function buildModel(settings, langfuse) {
56
65
  apiKey: settings.apiKey,
57
66
  ...settings.baseUrl ? { baseURL: settings.baseUrl } : {}
58
67
  });
59
- const id = settings.modelId || "claude-sonnet-4-6";
68
+ const id = settings.modelId || DEFAULT_MODEL_IDS.anthropic;
60
69
  return { model: anthropic(id), providerName: "anthropic", modelId: id };
61
70
  }
62
71
  case "openai": {
63
72
  if (!settings.apiKey) throw new Error("OpenAI API key not configured.");
64
73
  const openai = createOpenAI({ apiKey: settings.apiKey });
65
- const id = settings.modelId || "gpt-4o";
74
+ const id = settings.modelId || DEFAULT_MODEL_IDS.openai;
66
75
  return { model: openai(id), providerName: "openai", modelId: id };
67
76
  }
68
77
  case "ollama": {
69
78
  const baseUrl = settings.baseUrl || "http://localhost:11434/v1";
70
79
  const openai = createOpenAI({ apiKey: "ollama", baseURL: baseUrl });
71
- const id = settings.modelId || "llama3.1";
80
+ const id = settings.modelId || DEFAULT_MODEL_IDS.ollama;
72
81
  return { model: openai(id), providerName: "ollama", modelId: id };
73
82
  }
74
83
  case "gateway": {
@@ -79,7 +88,7 @@ function buildModel(settings, langfuse) {
79
88
  baseURL: settings.gatewayUrl + "/anthropic/v1",
80
89
  fetch: settings.requestTimeoutMs ? withRequestTimeout(baseFetch, settings.requestTimeoutMs) : langfuse ? baseFetch : void 0
81
90
  });
82
- const id = settings.modelId || "claude-sonnet-4-6";
91
+ const id = settings.modelId || DEFAULT_MODEL_IDS.anthropic;
83
92
  return { model: anthropic(id), providerName: "gateway", modelId: id };
84
93
  }
85
94
  default:
@@ -90,13 +99,14 @@ function buildFastModel(settings, langfuse) {
90
99
  return buildModel(
91
100
  {
92
101
  ...settings,
93
- modelId: settings.fastModelId ?? "claude-haiku-4-5-20251001"
102
+ modelId: settings.fastModelId ?? DEFAULT_MODEL_IDS.fast
94
103
  },
95
104
  langfuse
96
105
  );
97
106
  }
98
107
 
99
108
  export {
109
+ DEFAULT_MODEL_IDS,
100
110
  withRequestTimeout,
101
111
  makeLangfuseFetch,
102
112
  buildModel,
@@ -2,7 +2,7 @@ import {
2
2
  COMPOSE_PLANNER_TOOLS,
3
3
  COMPOSE_ROLE_TOOLS,
4
4
  dispatchComposeRoleTool
5
- } from "./chunk-BZZTVOGG.js";
5
+ } from "./chunk-XVBOSPZI.js";
6
6
 
7
7
  // ../authoring/src/agent/buildTools.ts
8
8
  import { tool } from "ai";
@@ -135,6 +135,22 @@ var buildPlannerTools = (p) => {
135
135
 
136
136
  // ../authoring/src/agent/errors.ts
137
137
  import { APICallError, TypeValidationError } from "ai";
138
+ var BODY_EXCERPT = 200;
139
+ function providerMessage(responseBody) {
140
+ if (!responseBody) return void 0;
141
+ try {
142
+ const body = JSON.parse(responseBody);
143
+ const msg = body?.error?.message ?? body?.message;
144
+ return msg == null ? void 0 : String(msg);
145
+ } catch {
146
+ return void 0;
147
+ }
148
+ }
149
+ function bodyExcerpt(responseBody) {
150
+ const trimmed = responseBody?.trim();
151
+ if (!trimmed) return void 0;
152
+ return trimmed.replace(/\s+/g, " ").slice(0, BODY_EXCERPT);
153
+ }
138
154
  function extractProviderError(err) {
139
155
  if (APICallError.isInstance(err)) {
140
156
  const status = err.statusCode;
@@ -144,17 +160,16 @@ function extractProviderError(err) {
144
160
  if (status === 429) {
145
161
  return "API rate limit or quota exceeded. Try again later.";
146
162
  }
163
+ const detail = providerMessage(err.responseBody);
147
164
  if (status === 413 || status === 400) {
148
- if (err.responseBody) {
149
- try {
150
- const body = JSON.parse(err.responseBody);
151
- const msg = body?.error?.message ?? body?.message;
152
- if (msg) return String(msg).slice(0, 200);
153
- } catch {
154
- }
155
- }
165
+ if (detail) return detail.slice(0, 200);
156
166
  }
157
- return err.message.slice(0, 300);
167
+ const where = status === void 0 ? "" : ` (HTTP ${status})`;
168
+ const evidence = detail ?? bodyExcerpt(err.responseBody);
169
+ return (evidence ? `${err.message}${where}: ${evidence}` : `${err.message}${where}`).slice(
170
+ 0,
171
+ 300
172
+ );
158
173
  }
159
174
  if (TypeValidationError.isInstance(err)) {
160
175
  return "Invalid response from AI provider. The provider may be misconfigured or unavailable.";
@@ -0,0 +1,392 @@
1
+ import {
2
+ renderComponentAlpha
3
+ } from "./chunk-5OTQ7M43.js";
4
+ import {
5
+ findWorkspace
6
+ } from "./chunk-WB2VFDQZ.js";
7
+ import {
8
+ componentArtifactId,
9
+ componentBundleId,
10
+ componentRenderKey,
11
+ sha256Hex,
12
+ sourceVersionId
13
+ } from "./chunk-M2TLRXEO.js";
14
+ import {
15
+ assertComponentImportsAllowed
16
+ } from "./chunk-SIAXP3ZO.js";
17
+ import {
18
+ ComponentBakeJobV2,
19
+ ComponentBakeRequestV2,
20
+ ComponentRenderReceiptV2,
21
+ ComponentRenderRequestV2,
22
+ ComponentRuntimeError,
23
+ ComponentSourceV2,
24
+ assertGraphicsReceiptMatches
25
+ } from "./chunk-LQUWKBST.js";
26
+
27
+ // ../execution/component-runtime/src/sourceWorkspace.ts
28
+ import { mkdirSync, writeFileSync } from "fs";
29
+ import { join } from "path";
30
+ function materializeComponentSource(workspaceRoot, input) {
31
+ const source = ComponentSourceV2.parse(input);
32
+ assertComponentImportsAllowed(source.tsxSource);
33
+ mkdirSync(workspaceRoot, { recursive: true });
34
+ writeFileSync(join(workspaceRoot, "cueframe.json"), '{"componentsDir":"cueframe/components"}\n', {
35
+ flag: "wx"
36
+ });
37
+ const dir = join(workspaceRoot, "cueframe", "components", source.componentId);
38
+ mkdirSync(dir, { recursive: true });
39
+ writeFileSync(join(dir, "index.tsx"), source.tsxSource, { flag: "wx" });
40
+ writeFileSync(join(dir, "component-source-v2.json"), `${JSON.stringify(source)}
41
+ `, { flag: "wx" });
42
+ const workspace = findWorkspace(workspaceRoot);
43
+ if (!workspace) throw new Error("Materialized component workspace could not be opened.");
44
+ return {
45
+ workspace,
46
+ source,
47
+ sourceVersionId: sourceVersionId(source),
48
+ componentDir: dir
49
+ };
50
+ }
51
+
52
+ // ../execution/component-runtime/src/assetServer.ts
53
+ import { createHash, randomBytes } from "crypto";
54
+ import { createReadStream, realpathSync, statSync } from "fs";
55
+ import { createServer } from "http";
56
+ var sha256File = async (path) => await new Promise((resolve, reject) => {
57
+ const hash = createHash("sha256");
58
+ const stream = createReadStream(path);
59
+ stream.on("data", (chunk) => hash.update(chunk));
60
+ stream.once("error", reject);
61
+ stream.once("end", () => resolve(hash.digest("hex")));
62
+ });
63
+ function sendStatus(response, status) {
64
+ response.statusCode = status;
65
+ response.setHeader("Cache-Control", "no-store");
66
+ response.end();
67
+ }
68
+ function parseSingleRange(value, size) {
69
+ if (!value) return null;
70
+ const match = /^bytes=(\d*)-(\d*)$/.exec(value);
71
+ if (!match || match[1] === "" && match[2] === "") return "invalid";
72
+ let start;
73
+ let end;
74
+ if (match[1] === "") {
75
+ const suffix = Number(match[2]);
76
+ if (!Number.isSafeInteger(suffix) || suffix <= 0) return "invalid";
77
+ start = Math.max(0, size - suffix);
78
+ end = size - 1;
79
+ } else {
80
+ start = Number(match[1]);
81
+ end = match[2] === "" ? size - 1 : Number(match[2]);
82
+ }
83
+ if (!Number.isSafeInteger(start) || !Number.isSafeInteger(end) || start < 0 || start > end || start >= size) {
84
+ return "invalid";
85
+ }
86
+ return [start, Math.min(end, size - 1)];
87
+ }
88
+ async function startComponentAssetServer(args) {
89
+ const assetNames = Object.keys(args.assets).sort();
90
+ if (assetNames.length !== Object.keys(args.files).length || assetNames.some((name) => !Object.hasOwn(args.files, name))) {
91
+ throw new ComponentRuntimeError("component_asset_unavailable", "Component asset inputs and localized files must have identical keys.");
92
+ }
93
+ const sealed = await Promise.all(assetNames.map(async (name) => {
94
+ const path = realpathSync(args.files[name].path);
95
+ const stat = statSync(path);
96
+ if (!stat.isFile() || stat.size <= 0) {
97
+ throw new ComponentRuntimeError("component_asset_unavailable", `Component asset ${JSON.stringify(name)} is not a readable file.`);
98
+ }
99
+ return [name, { path, size: stat.size, binding: { ...args.assets[name], contentSha256: await sha256File(path) } }];
100
+ }));
101
+ const byName = new Map(sealed);
102
+ const token = randomBytes(32).toString("hex");
103
+ let expectedHost = null;
104
+ const server = createServer((request, response) => {
105
+ if (expectedHost === null || request.headers.host !== expectedHost) return sendStatus(response, 421);
106
+ response.setHeader("Access-Control-Allow-Origin", "*");
107
+ response.setHeader("Accept-Ranges", "bytes");
108
+ response.setHeader("X-Content-Type-Options", "nosniff");
109
+ if (request.method !== "GET" && request.method !== "HEAD") return sendStatus(response, 405);
110
+ const parsed = new URL(request.url ?? "/", "http://127.0.0.1");
111
+ const prefix = `/v2/${token}/`;
112
+ if (!parsed.pathname.startsWith(prefix) || parsed.search || parsed.hash) return sendStatus(response, 404);
113
+ let name;
114
+ try {
115
+ name = decodeURIComponent(parsed.pathname.slice(prefix.length));
116
+ } catch {
117
+ return sendStatus(response, 404);
118
+ }
119
+ if (!name || name.includes("/") || name.includes("\\")) return sendStatus(response, 404);
120
+ const row = byName.get(name);
121
+ if (!row) return sendStatus(response, 404);
122
+ const range = parseSingleRange(request.headers.range, row.size);
123
+ if (range === "invalid") {
124
+ response.setHeader("Content-Range", `bytes */${row.size}`);
125
+ return sendStatus(response, 416);
126
+ }
127
+ const [start, end] = range ?? [0, row.size - 1];
128
+ response.statusCode = range ? 206 : 200;
129
+ response.setHeader("Content-Type", row.binding.mimeType);
130
+ response.setHeader("Content-Length", String(end - start + 1));
131
+ if (range) response.setHeader("Content-Range", `bytes ${start}-${end}/${row.size}`);
132
+ if (request.method === "HEAD") return response.end();
133
+ const stream = createReadStream(row.path, { start, end });
134
+ stream.once("error", () => response.destroy());
135
+ stream.pipe(response);
136
+ });
137
+ await new Promise((resolve, reject) => {
138
+ server.once("error", reject);
139
+ server.listen(0, "127.0.0.1", () => resolve());
140
+ });
141
+ const address = server.address();
142
+ if (!address || typeof address === "string") {
143
+ server.close();
144
+ throw new ComponentRuntimeError("component_asset_unavailable", "Component asset server failed to bind a loopback port.");
145
+ }
146
+ expectedHost = `127.0.0.1:${address.port}`;
147
+ const origin = `http://127.0.0.1:${address.port}`;
148
+ const bindings = Object.fromEntries(sealed.map(([name, row]) => [name, row.binding]));
149
+ const runtimeAssets = Object.fromEntries(sealed.map(([name, row]) => [name, {
150
+ ...row.binding,
151
+ handle: `${origin}/v2/${token}/${encodeURIComponent(name)}`
152
+ }]));
153
+ return {
154
+ origin,
155
+ bindings,
156
+ runtimeAssets,
157
+ close: async () => await new Promise((resolve, reject) => {
158
+ server.closeAllConnections?.();
159
+ server.close((error) => error ? reject(error) : resolve());
160
+ })
161
+ };
162
+ }
163
+
164
+ // ../execution/component-runtime/src/outputVerifier.ts
165
+ import { execFileSync } from "child_process";
166
+ import { dirname, join as join2 } from "path";
167
+ import { existsSync, statSync as statSync2 } from "fs";
168
+ var OPAQUE_ALPHA_FRACTION = 0.98;
169
+ function parseAlphaOpaqueFractions(ffmpegOutput) {
170
+ const fractions = [];
171
+ for (const match of ffmpegOutput.matchAll(/lavfi\.signalstats\.YAVG=([\d.]+)/g)) {
172
+ const value = Number(match[1]);
173
+ if (Number.isFinite(value)) fractions.push(Math.min(1, Math.max(0, value / 255)));
174
+ }
175
+ return fractions;
176
+ }
177
+ function bakeOpacityContradictsPolicy(alphaPolicy, opaqueFractions) {
178
+ return alphaPolicy === "requires-transparency" && opaqueFractions.length > 0 && opaqueFractions.every((fraction) => fraction >= OPAQUE_ALPHA_FRACTION);
179
+ }
180
+ function rational(value) {
181
+ if (!value) return Number.NaN;
182
+ const [numerator, denominator = "1"] = value.split("/");
183
+ return Number(numerator) / Number(denominator);
184
+ }
185
+ function assertComponentOutputProbe(probe, expected) {
186
+ const stream = probe.streams?.[0];
187
+ const expectedCodec = expected.codec === "vp9" ? "vp9" : "prores";
188
+ const frames = Number(stream?.nb_read_frames);
189
+ const fps = rational(stream?.avg_frame_rate);
190
+ const duration = Number(probe.format?.duration);
191
+ const expectedDuration = expected.durationInFrames / expected.fps;
192
+ const hasAlpha = expected.codec === "vp9" ? stream?.tags?.alpha_mode === "1" : Boolean(stream?.pix_fmt?.startsWith("yuva"));
193
+ if (stream?.codec_name !== expectedCodec || stream.width !== expected.width || stream.height !== expected.height || frames !== expected.durationInFrames || !Number.isFinite(fps) || Math.abs(fps - expected.fps) > 1e-3 || !Number.isFinite(duration) || Math.abs(duration - expectedDuration) > Math.max(0.05, 1 / expected.fps) || !hasAlpha) {
194
+ throw new ComponentRuntimeError(
195
+ "component_output_invalid",
196
+ "Rendered component artifact failed codec, alpha, dimensions, frame-count, FPS, or duration verification."
197
+ );
198
+ }
199
+ }
200
+ function verifyComponentOutput(options) {
201
+ const size = statSync2(options.path).size;
202
+ if (size <= 0 || size > (options.maxBytes ?? 1073741824)) {
203
+ throw new ComponentRuntimeError("component_output_invalid", "Rendered component artifact has an invalid size.");
204
+ }
205
+ const bundledProbe = join2(dirname(process.execPath), process.platform === "win32" ? "ffprobe.exe" : "ffprobe");
206
+ const ffprobeExecutable = options.ffprobeExecutable ?? process.env.COMPONENT_FFPROBE_EXECUTABLE ?? (existsSync(bundledProbe) ? bundledProbe : "ffprobe");
207
+ let probe;
208
+ try {
209
+ probe = JSON.parse(execFileSync(ffprobeExecutable, [
210
+ "-v",
211
+ "error",
212
+ "-count_frames",
213
+ "-select_streams",
214
+ "v:0",
215
+ "-show_entries",
216
+ "stream=codec_name,width,height,avg_frame_rate,nb_read_frames,pix_fmt:stream_tags=alpha_mode:format=duration",
217
+ "-of",
218
+ "json",
219
+ options.path
220
+ ], { encoding: "utf8", timeout: 3e4, maxBuffer: 2e6 }));
221
+ } catch (error) {
222
+ throw new ComponentRuntimeError("component_output_invalid", "Rendered component artifact could not be probed.", { cause: error });
223
+ }
224
+ assertComponentOutputProbe(probe, options.expected);
225
+ if (options.expected.source.manifest.alphaPolicy === "requires-transparency") {
226
+ const bundledFfmpeg = join2(dirname(process.execPath), process.platform === "win32" ? "ffmpeg.exe" : "ffmpeg");
227
+ const ffmpegExecutable = options.ffmpegExecutable ?? process.env.COMPONENT_FFMPEG_EXECUTABLE ?? (existsSync(bundledFfmpeg) ? bundledFfmpeg : "ffmpeg");
228
+ const durationSec = Math.max(0.05, options.expected.durationInFrames / options.expected.fps);
229
+ let fractions;
230
+ try {
231
+ const output = execFileSync(ffmpegExecutable, [
232
+ "-hide_banner",
233
+ "-loglevel",
234
+ "error",
235
+ ...options.expected.codec === "vp9" ? ["-c:v", "libvpx-vp9"] : [],
236
+ "-i",
237
+ options.path,
238
+ "-vf",
239
+ `format=yuva420p,alphaextract,fps=5/${durationSec},signalstats,metadata=print:file=-`,
240
+ "-an",
241
+ "-f",
242
+ "null",
243
+ "-"
244
+ ], { encoding: "utf8", timeout: 3e4, maxBuffer: 2e6 });
245
+ fractions = parseAlphaOpaqueFractions(output);
246
+ } catch (error) {
247
+ throw new ComponentRuntimeError("component_output_invalid", "Rendered component alpha policy could not be verified.", { cause: error });
248
+ }
249
+ if (fractions.length === 0) {
250
+ throw new ComponentRuntimeError("component_output_invalid", "Rendered component alpha policy produced no samples.");
251
+ }
252
+ if (bakeOpacityContradictsPolicy(options.expected.source.manifest.alphaPolicy, fractions)) {
253
+ throw new ComponentRuntimeError("component_output_invalid", "Rendered component is opaque but its manifest requires transparency.");
254
+ }
255
+ }
256
+ }
257
+
258
+ // ../execution/component-runtime/src/bake.ts
259
+ import { constants, copyFileSync, mkdirSync as mkdirSync2, readFileSync, statSync as statSync3 } from "fs";
260
+ import { dirname as dirname2 } from "path";
261
+ function assertAssetBindingsMatch(request) {
262
+ const declared = request.source.manifest.assets;
263
+ for (const [name, declaration] of Object.entries(declared)) {
264
+ const binding = request.assets[name];
265
+ if (!binding) {
266
+ if (declaration.required) {
267
+ throw new ComponentRuntimeError(
268
+ "component_asset_unavailable",
269
+ `Required component asset ${JSON.stringify(name)} is missing.`
270
+ );
271
+ }
272
+ continue;
273
+ }
274
+ if (binding.kind !== declaration.kind) {
275
+ throw new ComponentRuntimeError(
276
+ "component_asset_integrity_failed",
277
+ `Component asset ${JSON.stringify(name)} has kind ${binding.kind}; expected ${declaration.kind}.`
278
+ );
279
+ }
280
+ if (declaration.mimeTypes && !declaration.mimeTypes.includes(binding.mimeType)) {
281
+ throw new ComponentRuntimeError(
282
+ "component_asset_integrity_failed",
283
+ `Component asset ${JSON.stringify(name)} has an undeclared MIME type.`
284
+ );
285
+ }
286
+ }
287
+ for (const name of Object.keys(request.assets)) {
288
+ if (!Object.hasOwn(declared, name)) {
289
+ throw new ComponentRuntimeError(
290
+ "component_asset_undeclared",
291
+ `Component asset ${JSON.stringify(name)} was not declared by the source manifest.`
292
+ );
293
+ }
294
+ }
295
+ }
296
+ async function bakeComponentAlphaV2(options) {
297
+ const job = ComponentBakeJobV2.parse(options.job);
298
+ const assetServer = await startComponentAssetServer({ assets: job.assets, files: job.assetFiles });
299
+ try {
300
+ const { assetFiles: _assetFiles, ...unsealedRequest } = job;
301
+ const request = ComponentBakeRequestV2.parse({
302
+ ...unsealedRequest,
303
+ assets: assetServer.bindings
304
+ });
305
+ assertAssetBindingsMatch(request);
306
+ const materialized = materializeComponentSource(options.workspaceRoot, request.source);
307
+ const bundleId = componentBundleId({
308
+ sourceVersionId: materialized.sourceVersionId,
309
+ runtimeDigest: request.runtimeDigest,
310
+ dependencyLockDigest: request.dependencyLockDigest
311
+ });
312
+ const renderRequest = ComponentRenderRequestV2.parse({
313
+ version: 2,
314
+ bundleId,
315
+ params: request.params,
316
+ assets: request.assets,
317
+ width: request.width,
318
+ height: request.height,
319
+ fps: request.fps,
320
+ durationInFrames: request.durationInFrames,
321
+ alpha: true,
322
+ graphics: request.source.manifest.graphics,
323
+ seed: request.seed
324
+ });
325
+ const renderKey = componentRenderKey(renderRequest);
326
+ const rendered = await renderComponentAlpha({
327
+ ws: materialized.workspace,
328
+ id: request.source.componentId,
329
+ params: request.params,
330
+ assets: assetServer.runtimeAssets,
331
+ allowedAssetOrigins: /* @__PURE__ */ new Set([assetServer.origin]),
332
+ seed: request.seed,
333
+ graphics: request.source.manifest.graphics,
334
+ codec: request.codec,
335
+ width: request.width,
336
+ height: request.height,
337
+ fps: request.fps,
338
+ durationInFrames: request.durationInFrames,
339
+ renderEntryRoot: options.renderEntryRoot
340
+ });
341
+ verifyComponentOutput({
342
+ path: rendered.videoPath,
343
+ expected: request,
344
+ ffprobeExecutable: options.ffprobeExecutable,
345
+ ffmpegExecutable: options.ffmpegExecutable
346
+ });
347
+ mkdirSync2(dirname2(options.outputPath), { recursive: true });
348
+ copyFileSync(rendered.videoPath, options.outputPath, constants.COPYFILE_EXCL);
349
+ const output = readFileSync(options.outputPath);
350
+ const outputSha256 = sha256Hex(output);
351
+ const receiptWithoutArtifact = {
352
+ version: 2,
353
+ renderKey,
354
+ bundleId,
355
+ sourceVersionId: materialized.sourceVersionId,
356
+ runtimeDigest: request.runtimeDigest,
357
+ outputSha256,
358
+ outputBytes: statSync3(options.outputPath).size,
359
+ codec: request.codec,
360
+ width: request.width,
361
+ height: request.height,
362
+ fps: request.fps,
363
+ durationInFrames: request.durationInFrames,
364
+ alpha: true,
365
+ requestedGraphics: request.source.manifest.graphics,
366
+ actualGraphics: rendered.actualGraphics
367
+ };
368
+ const receipt = ComponentRenderReceiptV2.parse({
369
+ ...receiptWithoutArtifact,
370
+ artifactId: componentArtifactId({ outputSha256, receipt: receiptWithoutArtifact })
371
+ });
372
+ assertGraphicsReceiptMatches(renderRequest, receipt);
373
+ return receipt;
374
+ } finally {
375
+ await assetServer.close();
376
+ }
377
+ }
378
+ function sourceIdentityForBake(request) {
379
+ return sourceVersionId(ComponentBakeRequestV2.parse(request).source);
380
+ }
381
+
382
+ export {
383
+ materializeComponentSource,
384
+ startComponentAssetServer,
385
+ parseAlphaOpaqueFractions,
386
+ bakeOpacityContradictsPolicy,
387
+ assertComponentOutputProbe,
388
+ verifyComponentOutput,
389
+ assertAssetBindingsMatch,
390
+ bakeComponentAlphaV2,
391
+ sourceIdentityForBake
392
+ };
@@ -1,9 +1,9 @@
1
+ import {
2
+ Composition
3
+ } from "./chunk-7KEUL3FI.js";
1
4
  import {
2
5
  expandToLinkGroup
3
6
  } from "./chunk-KYRDKK2D.js";
4
- import {
5
- Composition
6
- } from "./chunk-WZH57M53.js";
7
7
 
8
8
  // ../composition/src/ops/compositionOps.shared.ts
9
9
  function findOrCreateTrackByKind(composition, kind) {