@cueframe/kernel 0.2.2 → 0.2.4

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 (335) hide show
  1. package/dist/_members/animate/index.d.ts +8 -2
  2. package/dist/_members/animate/layout/FlexLayout.d.ts +69 -0
  3. package/dist/_members/animate/layout/fit.d.ts +44 -0
  4. package/dist/_members/animate/layout/index.d.ts +3 -0
  5. package/dist/_members/animate/layout/solveFlex.d.ts +70 -0
  6. package/dist/_members/animate/media/MediaTileScene.d.ts +65 -0
  7. package/dist/_members/animate/media/recipes.d.ts +61 -0
  8. package/dist/_members/animate/scene/FocusPass.d.ts +76 -0
  9. package/dist/_members/animate/scene/UnlitPlane.d.ts +45 -0
  10. package/dist/_members/animate/scene/__oracle__/cssProjection.d.ts +24 -0
  11. package/dist/_members/animate/scene/assets.d.ts +21 -0
  12. package/dist/_members/animate/scene/backdrop.d.ts +7 -0
  13. package/dist/_members/animate/scene/coordinates.d.ts +58 -0
  14. package/dist/_members/animate/scene/deviceOpacity.d.ts +18 -0
  15. package/dist/_members/animate/scene/errors.d.ts +14 -0
  16. package/dist/_members/animate/scene/finishing.d.ts +69 -0
  17. package/dist/_members/animate/scene/finishingMath.d.ts +60 -0
  18. package/dist/_members/animate/scene/finishingPass.d.ts +35 -0
  19. package/dist/_members/animate/scene/focusBlur.d.ts +56 -0
  20. package/dist/_members/animate/scene/focusResources.d.ts +190 -0
  21. package/dist/_members/animate/scene/focusShaders.d.ts +68 -0
  22. package/dist/_members/animate/scene/fontReadiness.d.ts +27 -0
  23. package/dist/_members/animate/scene/grainNoise.d.ts +118 -0
  24. package/dist/_members/animate/scene/index.d.ts +19 -0
  25. package/dist/_members/animate/scene/internal.d.ts +29 -0
  26. package/dist/_members/animate/scene/planeFit.d.ts +46 -0
  27. package/dist/_members/animate/scene/preparedWorldText.d.ts +25 -0
  28. package/dist/_members/animate/scene/rasterCache.d.ts +30 -0
  29. package/dist/_members/animate/scene/rasterReadiness.d.ts +33 -0
  30. package/dist/_members/animate/scene/readiness.d.ts +69 -0
  31. package/dist/_members/animate/scene/redraw.d.ts +10 -0
  32. package/dist/_members/animate/scene/render.d.ts +9 -0
  33. package/dist/_members/animate/scene/scaling.d.ts +13 -0
  34. package/dist/_members/animate/scene/text.d.ts +40 -0
  35. package/dist/_members/animate/scene/textLayout.d.ts +78 -0
  36. package/dist/_members/animate/scene/textureImageSize.d.ts +4 -0
  37. package/dist/_members/animate/scene/useSceneImageTexture.d.ts +21 -0
  38. package/dist/_members/animate/scene/useWorldTextTexture.d.ts +21 -0
  39. package/dist/_members/animate/scene/v2/MeasuredPlaneGeometry.d.ts +7 -0
  40. package/dist/_members/animate/scene/v2/PhotographicStudioRig.d.ts +11 -0
  41. package/dist/_members/animate/scene/v2/PreparedSceneShotV1.d.ts +12 -0
  42. package/dist/_members/animate/scene/v2/SceneShotV2.d.ts +59 -0
  43. package/dist/_members/animate/scene/v2/builders.d.ts +170 -0
  44. package/dist/_members/animate/scene/v2/finishes.d.ts +152 -0
  45. package/dist/_members/animate/scene/v2/lighting.d.ts +119 -0
  46. package/dist/_members/animate/scene/v2/observePmremTargets.d.ts +4 -0
  47. package/dist/_members/animate/scene/v2/preparationFacts.d.ts +32 -0
  48. package/dist/_members/animate/scene/v2/preparedSurface.d.ts +17 -0
  49. package/dist/_members/animate/scene/v2/projectedResolution.d.ts +2 -0
  50. package/dist/_members/animate/scene/v2/renderTargetObserver.d.ts +5 -0
  51. package/dist/_members/animate/scene/v2/runtimeAllocations.d.ts +55 -0
  52. package/dist/_members/animate/scene/v2/shadow.d.ts +23 -0
  53. package/dist/_members/animate/scene/v2/slabGeometry.d.ts +134 -0
  54. package/dist/_members/animate/scene/v2/slots.d.ts +73 -0
  55. package/dist/_members/animate/scene/v2/videoBinding.d.ts +39 -0
  56. package/dist/_members/animate/scene/worldBounds.d.ts +19 -0
  57. package/dist/_members/animate/scene/worldTextRaster.d.ts +87 -0
  58. package/dist/_members/animate/scene/worldTextTexture.d.ts +32 -0
  59. package/dist/_members/animate/stage/PerspectiveStage.d.ts +73 -0
  60. package/dist/_members/animate/stage/camera.d.ts +143 -0
  61. package/dist/_members/animate/stage/dof.d.ts +9 -0
  62. package/dist/_members/animate/stage/index.d.ts +6 -0
  63. package/dist/_members/animate/stage/presets.d.ts +17 -0
  64. package/dist/_members/animate/three/DeviceMesh.d.ts +256 -0
  65. package/dist/_members/animate/three/SceneCameraRig.d.ts +12 -0
  66. package/dist/_members/animate/three/StageCameraRig.d.ts +7 -0
  67. package/dist/_members/animate/three/StudioRig.d.ts +228 -0
  68. package/dist/_members/animate/three/ThreeCanvas.d.ts +22 -0
  69. package/dist/_members/animate/three/defaultScreen.d.ts +23 -0
  70. package/dist/_members/animate/three/index.d.ts +7 -1
  71. package/dist/_members/animate/three/textureLifecycle.d.ts +29 -0
  72. package/dist/_members/animate/three/toneMapping.d.ts +113 -0
  73. package/dist/_members/animate/three/useImageTexture.d.ts +17 -0
  74. package/dist/_members/authoring/index.d.ts +2 -0
  75. package/dist/_members/authoring/scene/index.d.ts +6 -0
  76. package/dist/_members/authoring/scene/materialize.d.ts +47 -0
  77. package/dist/_members/authoring/scene/validate.d.ts +80 -0
  78. package/dist/_members/authoring/scene/wrapper.d.ts +41 -0
  79. package/dist/_members/component-runtime/allowedImports.d.ts +3 -0
  80. package/dist/_members/component-runtime/allowedImports.d.ts.map +1 -0
  81. package/dist/_members/component-runtime/bake.d.ts +8 -0
  82. package/dist/_members/component-runtime/bake.d.ts.map +1 -1
  83. package/dist/_members/component-runtime/browserFirewall.d.ts +7 -1
  84. package/dist/_members/component-runtime/browserFirewall.d.ts.map +1 -1
  85. package/dist/_members/component-runtime/browserOptions.d.ts +59 -3
  86. package/dist/_members/component-runtime/browserOptions.d.ts.map +1 -1
  87. package/dist/_members/component-runtime/canonicalIdentity.d.ts +14 -0
  88. package/dist/_members/component-runtime/canonicalIdentity.d.ts.map +1 -1
  89. package/dist/_members/component-runtime/contracts.d.ts +341 -1
  90. package/dist/_members/component-runtime/contracts.d.ts.map +1 -1
  91. package/dist/_members/component-runtime/fixtures/imageTileDriftWall.d.ts +5 -0
  92. package/dist/_members/component-runtime/fixtures/imageTileDriftWall.d.ts.map +1 -0
  93. package/dist/_members/component-runtime/fixtures/mediaTileMixed.d.ts +5 -0
  94. package/dist/_members/component-runtime/fixtures/mediaTileMixed.d.ts.map +1 -0
  95. package/dist/_members/component-runtime/fixtures/mediaTileVideo.d.ts +8 -0
  96. package/dist/_members/component-runtime/fixtures/mediaTileVideo.d.ts.map +1 -0
  97. package/dist/_members/component-runtime/importPolicy.d.ts +3 -2
  98. package/dist/_members/component-runtime/importPolicy.d.ts.map +1 -1
  99. package/dist/_members/component-runtime/index.d.ts +3 -0
  100. package/dist/_members/component-runtime/index.d.ts.map +1 -1
  101. package/dist/_members/component-runtime/livePreviewProxy.d.ts +7 -0
  102. package/dist/_members/component-runtime/livePreviewProxy.d.ts.map +1 -0
  103. package/dist/_members/component-runtime/localRoot.d.ts +37 -0
  104. package/dist/_members/component-runtime/localRoot.d.ts.map +1 -0
  105. package/dist/_members/component-runtime/mediaResolution.d.ts +25 -0
  106. package/dist/_members/component-runtime/mediaResolution.d.ts.map +1 -0
  107. package/dist/_members/component-runtime/render.d.ts +151 -13
  108. package/dist/_members/component-runtime/render.d.ts.map +1 -1
  109. package/dist/_members/component-runtime/renderDiagnostics.d.ts +14 -0
  110. package/dist/_members/component-runtime/renderDiagnostics.d.ts.map +1 -0
  111. package/dist/_members/component-runtime/sceneAdmission.d.ts +47 -0
  112. package/dist/_members/component-runtime/sceneAdmission.d.ts.map +1 -0
  113. package/dist/_members/component-runtime/sourceWorkspace.d.ts +8 -0
  114. package/dist/_members/component-runtime/sourceWorkspace.d.ts.map +1 -1
  115. package/dist/_members/component-runtime/webglProbe.d.ts +191 -0
  116. package/dist/_members/component-runtime/webglProbe.d.ts.map +1 -0
  117. package/dist/_members/compose/primitiveRegistry.d.ts +2 -6
  118. package/dist/_members/composition/fonts/bundledFaces.d.ts +150 -0
  119. package/dist/_members/composition/fonts/captionFaces.d.ts +268 -0
  120. package/dist/_members/composition/fonts.d.ts +11 -4
  121. package/dist/_members/composition/graphics-plan/schemas.d.ts +4 -4
  122. package/dist/_members/composition/ops/types.d.ts +1 -1
  123. package/dist/_members/composition/primitive-catalog/index.d.ts +4 -0
  124. package/dist/_members/composition/primitive-catalog/types.d.ts +1 -0
  125. package/dist/_members/composition/projection/behind-readiness.d.ts +3 -0
  126. package/dist/_members/composition/projection/brandKit.d.ts +6 -0
  127. package/dist/_members/composition/projection/composition-floor.d.ts +2 -1
  128. package/dist/_members/composition/scene/animation.d.ts +25 -0
  129. package/dist/_members/composition/scene/budget.d.ts +29 -0
  130. package/dist/_members/composition/scene/budgetPolicy.d.mts +13 -0
  131. package/dist/_members/composition/scene/clipRules.d.ts +119 -0
  132. package/dist/_members/composition/scene/constraints.d.ts +61 -0
  133. package/dist/_members/composition/scene/device.d.ts +21 -0
  134. package/dist/_members/composition/scene/examples.d.ts +11 -0
  135. package/dist/_members/composition/scene/index.d.ts +11 -0
  136. package/dist/_members/composition/scene/photographicRig.d.ts +242 -0
  137. package/dist/_members/composition/scene/preparedRender.d.ts +239 -0
  138. package/dist/_members/composition/scene/resolution.d.ts +178 -0
  139. package/dist/_members/composition/scene/schema.d.ts +351 -0
  140. package/dist/_members/composition/scene/videoSchedule.d.ts +43 -0
  141. package/dist/_members/composition/validators/brandKit.d.ts +1 -0
  142. package/dist/_members/composition/validators/render.d.ts +2 -0
  143. package/dist/_members/composition-ops/index.d.ts +45 -0
  144. package/dist/_members/composition-ops/opRecorder.d.ts +1 -1
  145. package/dist/_members/core/render/compositionRender.d.ts +41 -9
  146. package/dist/_members/core/render/index.d.ts +9 -2
  147. package/dist/_members/core/render/sceneCaptureIdentity.d.ts +14 -0
  148. package/dist/_members/core/render/sceneShotPlan.d.ts +142 -0
  149. package/dist/_members/core/render/sceneShotPreparation.d.ts +57 -0
  150. package/dist/_members/core/render/slabDescriptor.d.ts +21 -0
  151. package/dist/_members/core/render/trackProjection.d.ts +33 -0
  152. package/dist/_members/core/render/types.d.ts +142 -0
  153. package/dist/_members/errors/registry.d.ts +6 -0
  154. package/dist/_members/mcp/adapter.d.ts +5 -0
  155. package/dist/_members/mcp/generated/harness.d.ts +1 -1
  156. package/dist/_members/mcp/generated/sceneContract.d.ts +155 -0
  157. package/dist/_members/mcp/sceneShot.d.ts +38 -0
  158. package/dist/_members/mcp/sceneShotExample.d.ts +22 -0
  159. package/dist/_members/media-model/api.d.ts +1 -0
  160. package/dist/_members/media-model/media-kind.d.ts +1 -1
  161. package/dist/_members/media-model/testing/mediaStoreContract.d.ts +1 -1
  162. package/dist/_members/primitives/effects/index.d.ts +1 -0
  163. package/dist/_members/primitives/effects/stage-camera/config.d.ts +50 -0
  164. package/dist/_members/primitives/effects/stage-camera/index.d.ts +31 -0
  165. package/dist/_members/primitives/layouts/flex-layout/config.d.ts +73 -0
  166. package/dist/_members/primitives/layouts/flex-layout/index.d.ts +4 -0
  167. package/dist/_members/primitives/layouts/index.d.ts +1 -0
  168. package/dist/_members/primitives/layouts/picture-in-picture/config.d.ts +1 -1
  169. package/dist/_members/primitives/lib/frameScale.d.ts +4 -0
  170. package/dist/_members/primitives/lib/index.d.ts +1 -0
  171. package/dist/_members/primitives/lib/palette.d.ts +30 -30
  172. package/dist/_members/primitives/lib/text/contrast.d.ts +2 -1
  173. package/dist/_members/primitives/lib/text/spec.d.ts +0 -8
  174. package/dist/_members/primitives/lib/types.d.ts +2 -0
  175. package/dist/_members/primitives/scenes/device-showcase/config.d.ts +41 -0
  176. package/dist/_members/primitives/scenes/device-showcase/index.d.ts +36 -0
  177. package/dist/_members/primitives/scenes/hero-device-assemble/config.d.ts +1 -0
  178. package/dist/_members/primitives/scenes/hero-device-assemble/index.d.ts +2 -1
  179. package/dist/_members/primitives/scenes/index.d.ts +1 -0
  180. package/dist/_members/primitives/ui-blocks/badge-pop/config.d.ts +1 -1
  181. package/dist/_members/primitives/ui-blocks/device-mockup-zoom/config.d.ts +1 -0
  182. package/dist/_members/primitives/ui-blocks/device-mockup-zoom/index.d.ts +2 -1
  183. package/dist/_members/primitives/ui-blocks/terminal-simulator/config.d.ts +1 -1
  184. package/dist/_members/primitives/ui-blocks/toast-notification/config.d.ts +1 -1
  185. package/dist/_members/render-harness/cardAssetAdmission.d.ts.map +1 -1
  186. package/dist/_members/render-harness/cardRender.d.ts.map +1 -1
  187. package/dist/_members/render-harness/css-tree-subpaths.d.ts +11 -0
  188. package/dist/_members/render-harness/extractSegments.d.ts +1 -0
  189. package/dist/_members/render-harness/extractSegments.d.ts.map +1 -1
  190. package/dist/_members/render-harness/imageHeader.d.ts +14 -0
  191. package/dist/_members/render-harness/imageHeader.d.ts.map +1 -0
  192. package/dist/_members/render-harness/index.d.ts +6 -0
  193. package/dist/_members/render-harness/index.d.ts.map +1 -1
  194. package/dist/_members/render-harness/materializeSources.d.ts +46 -2
  195. package/dist/_members/render-harness/materializeSources.d.ts.map +1 -1
  196. package/dist/_members/render-harness/nodeScenePreparation.d.ts +97 -0
  197. package/dist/_members/render-harness/nodeScenePreparation.d.ts.map +1 -0
  198. package/dist/_members/render-harness/remotion-runtime.d.ts +16 -2
  199. package/dist/_members/render-harness/renderInputAssets.d.ts +1 -1
  200. package/dist/_members/render-harness/renderInputAssets.d.ts.map +1 -1
  201. package/dist/_members/render-harness/resolveAssets.d.ts +2 -2
  202. package/dist/_members/render-harness/resolveAssets.d.ts.map +1 -1
  203. package/dist/_members/render-harness/sceneShotAssets.d.ts +17 -0
  204. package/dist/_members/render-harness/sceneShotAssets.d.ts.map +1 -0
  205. package/dist/animate/preparation-facts.d.ts +1 -0
  206. package/dist/animate/preparation-facts.js +22 -0
  207. package/dist/animate.js +336 -1005
  208. package/dist/authoring/build-tools.js +7 -6
  209. package/dist/authoring/context.js +5 -4
  210. package/dist/authoring/prompts.js +1 -1
  211. package/dist/authoring/scene.d.ts +1 -0
  212. package/dist/authoring/scene.js +50 -0
  213. package/dist/authoring/tools.js +6 -5
  214. package/dist/authoring.js +49 -29
  215. package/dist/chunk-2L7PYYJK.js +23 -0
  216. package/dist/chunk-5DJ3IEJR.js +4424 -0
  217. package/dist/chunk-6BVVCRRD.js +26488 -0
  218. package/dist/{chunk-DQKSCHFC.js → chunk-6EWRIAZA.js} +187 -66
  219. package/dist/{chunk-YQ7FFW3G.js → chunk-6VWICHOZ.js} +26 -5
  220. package/dist/{chunk-C5SEPOWD.js → chunk-7AZLFN26.js} +1798 -702
  221. package/dist/{chunk-6ID2J64H.js → chunk-7W6ZIKWV.js} +162 -25
  222. package/dist/{chunk-RETQFTGY.js → chunk-A74FZCPY.js} +42 -5
  223. package/dist/chunk-BVA3537Z.js +63 -0
  224. package/dist/{chunk-DHKQ47Q6.js → chunk-DAARYRNT.js} +6 -1
  225. package/dist/chunk-DQLYWNLC.js +2063 -0
  226. package/dist/{chunk-HXKTZPRH.js → chunk-E7GIZEPS.js} +1 -1
  227. package/dist/chunk-EBIBLL7E.js +3619 -0
  228. package/dist/{chunk-M2TLRXEO.js → chunk-EXY4JJPH.js} +1 -1
  229. package/dist/{chunk-AWT3P5ZN.js → chunk-FVDFPJHT.js} +1 -1
  230. package/dist/{chunk-EMGFZ3PR.js → chunk-FWSJLHSV.js} +5 -1
  231. package/dist/{chunk-TMIBBD5E.js → chunk-I5QWBM3M.js} +280 -113
  232. package/dist/{chunk-IBMJ33EL.js → chunk-I5RX2QZT.js} +1 -1
  233. package/dist/{chunk-4FOOBSEE.js → chunk-J3DIUG24.js} +1 -0
  234. package/dist/{chunk-AD5HWBCE.js → chunk-JX53CVJV.js} +14 -5
  235. package/dist/{chunk-LNBVTDFR.js → chunk-L2AHS3AW.js} +1 -1
  236. package/dist/{chunk-BDMTUEEZ.js → chunk-LT4PWSR2.js} +2 -2
  237. package/dist/chunk-MH3UPKWR.js +3415 -0
  238. package/dist/{chunk-RFXR7ATW.js → chunk-MN6D3U5N.js} +13 -1
  239. package/dist/{chunk-IJ7PVJTK.js → chunk-ODUWCQI3.js} +3 -2
  240. package/dist/chunk-QAGGJHAF.js +16 -0
  241. package/dist/chunk-QS36DMFG.js +332 -0
  242. package/dist/{chunk-G5BFI32U.js → chunk-RAXHCRVV.js} +1 -1
  243. package/dist/{chunk-BIBYZJL3.js → chunk-RL5SO653.js} +3 -3
  244. package/dist/{chunk-ZSZABOE5.js → chunk-S5H6GH6M.js} +1 -1
  245. package/dist/{chunk-EEXCDFY5.js → chunk-SD25VQDE.js} +1 -1
  246. package/dist/chunk-TARKDVP6.js +430 -0
  247. package/dist/{chunk-XVBOSPZI.js → chunk-TBNTAQJA.js} +6 -6
  248. package/dist/{chunk-IHFREGFA.js → chunk-TCHPRGC5.js} +18 -2
  249. package/dist/{chunk-ZCAQHNPI.js → chunk-UKGNHZS4.js} +1 -1
  250. package/dist/{chunk-ZN6P3KOJ.js → chunk-UN6NY2E6.js} +3 -3
  251. package/dist/{chunk-WQSGVRFU.js → chunk-UY77TMKD.js} +31 -44
  252. package/dist/chunk-VKATKWWR.js +1462 -0
  253. package/dist/{chunk-U5LBYS3N.js → chunk-VLJOIUHL.js} +341 -274
  254. package/dist/{chunk-CX2IIQ4R.js → chunk-W2245F6G.js} +29 -29
  255. package/dist/{chunk-GEGRJKKO.js → chunk-W6B7BMLO.js} +1 -1
  256. package/dist/{chunk-XHUYWVYK.js → chunk-WBNFSG6T.js} +1 -1
  257. package/dist/chunk-WIHXXF3X.js +221 -0
  258. package/dist/{chunk-7KEUL3FI.js → chunk-XF2QMKRG.js} +9 -1
  259. package/dist/{chunk-HFC3MKXA.js → chunk-Y4HPN4BC.js} +1 -0
  260. package/dist/{chunk-D43J23QX.js → chunk-YFSBFCXO.js} +1018 -42
  261. package/dist/{chunk-KKEY5MIW.js → chunk-ZS3A3QUM.js} +16 -16
  262. package/dist/{chunk-LQUWKBST.js → chunk-ZVG446DJ.js} +139 -10
  263. package/dist/component-runtime/browserOptions.js +14 -3
  264. package/dist/component-runtime/contracts.js +35 -3
  265. package/dist/component-runtime/identity/browser.js +1 -1
  266. package/dist/component-runtime/identity.js +2 -2
  267. package/dist/component-runtime/importPolicy.js +2 -2
  268. package/dist/component-runtime/mediaResolution.d.ts +1 -0
  269. package/dist/component-runtime/mediaResolution.js +11 -0
  270. package/dist/component-runtime/render.js +38 -5
  271. package/dist/component-runtime.js +118 -14
  272. package/dist/compose.js +192 -33
  273. package/dist/composition/fonts.js +64 -67
  274. package/dist/composition/graphics-plan.js +3 -2
  275. package/dist/composition/ops.js +4 -3
  276. package/dist/composition/primitive-catalog.js +3 -1
  277. package/dist/composition/projection.js +10 -3
  278. package/dist/composition/scene/budget-policy.d.ts +1 -0
  279. package/dist/composition/scene/budget-policy.js +17 -0
  280. package/dist/composition/scene/schema.json +2757 -0
  281. package/dist/composition/scene.d.ts +1 -0
  282. package/dist/composition/scene.js +275 -0
  283. package/dist/composition/validators.js +3 -2
  284. package/dist/composition-ops.js +103 -13
  285. package/dist/composition.js +12 -5
  286. package/dist/{context-4GSDBFT3.js → context-IUPQ54V4.js} +5 -4
  287. package/dist/core/render.js +54 -3
  288. package/dist/core/select.js +2 -2
  289. package/dist/core.js +6 -3
  290. package/dist/director/ai-sdk.js +3 -3
  291. package/dist/director/domain.js +2 -2
  292. package/dist/director.js +3 -3
  293. package/dist/errors.js +1 -1
  294. package/dist/mcp/adapter.js +4 -4
  295. package/dist/mcp/core.js +1 -1
  296. package/dist/mcp/curation.js +1 -1
  297. package/dist/mcp/server.js +4 -4
  298. package/dist/mcp.js +4 -4
  299. package/dist/media-model/media-kind.js +2 -0
  300. package/dist/media-model/testing.js +16 -11
  301. package/dist/media-model.js +1 -1
  302. package/dist/nle-export.js +1 -27
  303. package/dist/primitives/backgrounds.js +2 -2
  304. package/dist/primitives/captions.js +21 -11
  305. package/dist/primitives/effects.js +14 -4
  306. package/dist/primitives/graphics.json +3 -0
  307. package/dist/primitives/hero-text.js +4 -3
  308. package/dist/primitives/layouts.js +9 -2
  309. package/dist/primitives/lib/frameScale.d.ts +1 -0
  310. package/dist/primitives/lib/frameScale.js +11 -0
  311. package/dist/primitives/lib/index.js +18 -10
  312. package/dist/primitives/lib/palette.js +1 -1
  313. package/dist/primitives/lib/text/contrast.js +2 -1
  314. package/dist/primitives/lib/text/typeface.js +1 -1
  315. package/dist/primitives/lib.js +18 -10
  316. package/dist/primitives/params-required.json +3 -0
  317. package/dist/primitives/scenes.js +12 -3
  318. package/dist/primitives/text.js +5 -5
  319. package/dist/primitives/transitions.js +2 -2
  320. package/dist/primitives/ui-blocks.js +7 -6
  321. package/dist/primitives/version-map.json +5 -2
  322. package/dist/primitives.js +23 -16
  323. package/dist/render-harness/cardAssetAdmission.js +2 -2
  324. package/dist/render-harness/renderInputAssets.js +2 -2
  325. package/dist/render-harness.js +874 -124
  326. package/package.json +48 -14
  327. package/dist/_members/animate/three/drei.d.ts +0 -6
  328. package/dist/_members/component-runtime/fixtures/webgpuTiledRefraction.d.ts +0 -9
  329. package/dist/_members/component-runtime/fixtures/webgpuTiledRefraction.d.ts.map +0 -1
  330. package/dist/chunk-5OTQ7M43.js +0 -718
  331. package/dist/chunk-7REW2MW3.js +0 -202
  332. package/dist/chunk-CGHTMZNC.js +0 -6
  333. package/dist/chunk-KVMVYRXX.js +0 -9527
  334. package/dist/chunk-WYQX4QIK.js +0 -544
  335. /package/dist/{chunk-H5LMJKZU.js → chunk-JVDUSOYG.js} +0 -0
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Tone mapping that belongs to the material instead of to the bound framebuffer.
3
+ *
4
+ * ## Why this exists
5
+ *
6
+ * Three applies `renderer.toneMapping` to a lit material only when the frame is going straight to
7
+ * the canvas. `WebGLPrograms.js` (165-176) and `WebGLRenderer.js` (2284-2292) both compute the
8
+ * program's tone mapping the same way:
9
+ *
10
+ * ```js
11
+ * let toneMapping = NoToneMapping;
12
+ * if ( material.toneMapped ) {
13
+ * if ( currentRenderTarget === null || currentRenderTarget.isXRRenderTarget === true ) {
14
+ * toneMapping = renderer.toneMapping;
15
+ * }
16
+ * }
17
+ * ```
18
+ *
19
+ * and `WebGLProgram.js` (767-769) turns a `NoToneMapping` decision into *nothing at all*: no
20
+ * `#define TONE_MAPPING`, no `tonemapping_pars_fragment`, no `toneMapping()` function. The
21
+ * `#include <tonemapping_fragment>` that every lit ShaderLib entry carries then expands to a
22
+ * `#if defined( TONE_MAPPING )` with nothing inside it, and the material writes scene-referred
23
+ * radiance to the target unchanged.
24
+ *
25
+ * That is the right default for an *intermediate* target — an environment map or a G-buffer must
26
+ * stay scene-referred — but a scene shot's world target is not an intermediate. It stands in for
27
+ * the canvas: the whole frame is rasterized into it, blurred in it and encoded out of it once. So
28
+ * the shot lost the ACES roll-off the moment every shot began drawing through the focus pass, and
29
+ * a lit body that used to roll off into white clipped there instead.
30
+ *
31
+ * The fix is to move the decision from the framebuffer to the material. A material that carries
32
+ * these props tone-maps in its own fragment shader, at exactly the place three would have done it
33
+ * (the `<tonemapping_fragment>` site, after `<opaque_fragment>` and before `<colorspace_fragment>`),
34
+ * with three's own chunk and three's own function — and it does so whatever target is bound, so a
35
+ * device body looks the same drawn to the canvas by `device-showcase` and drawn into the focus
36
+ * pass's half-float target by a scene shot.
37
+ *
38
+ * `isXRRenderTarget` is deliberately NOT set on the pass's target. It is the flag that tells the
39
+ * renderer a target holds a *display* surface, and it changes the output colour space of the whole
40
+ * draw as well as the tone mapping (`WebGLRenderer.js:2275`). Borrowing it to mean "tone-map this"
41
+ * would be a lie about what the target is, and it would take the encoding with it.
42
+ *
43
+ * ## Why `toneMapped: false` is part of the same statement
44
+ *
45
+ * With the injection in place, `toneMapped: true` would make the canvas case apply the curve
46
+ * twice — three's prefix would declare `toneMappingExposure`, `ACESFilmicToneMapping` and
47
+ * `toneMapping()` a second time, which does not even compile. Setting `toneMapped: false` is what
48
+ * takes three's own gate out of the picture: the renderer's answer is `NoToneMapping` for every
49
+ * target, including none, and this module's injection is the single application. It is not a
50
+ * claim that the material is unlit — the unlit materials in this renderer (screenshots, world
51
+ * text, the black screen stand-in) carry `toneMapped: false` *and no injection*, which is what
52
+ * keeps them exact.
53
+ *
54
+ * ## Exposure, and where the curve comes from
55
+ *
56
+ * Neither is restated here. The function is chosen from `renderer.toneMapping`, which three hands
57
+ * to `onBeforeCompile` as its second argument — react-three-fiber sets it to `ACESFilmicToneMapping`
58
+ * when `flat` is false, which is the default and what every canvas in this package uses, so the
59
+ * ACES filmic path is what gets defined without this module naming it as a default anywhere. And
60
+ * `toneMappingExposure` is declared by three's own pars chunk, which means the renderer's
61
+ * `p_uniforms.setValue( _gl, 'toneMappingExposure', _this.toneMappingExposure )`
62
+ * (`WebGLRenderer.js:2617`) finds it and uploads the renderer's own exposure — a uniform three
63
+ * sets on every material refresh, and a no-op on a program that has no such uniform.
64
+ */
65
+ /** The renderer surface the injection reads. Three passes the whole renderer; this is the slice. */
66
+ export interface ToneMappingRenderer {
67
+ toneMapping: number;
68
+ }
69
+ /** The shader object three passes to `onBeforeCompile`; only the fragment source is rewritten. */
70
+ export interface ToneMappingShader {
71
+ fragmentShader: string;
72
+ }
73
+ /**
74
+ * The GLSL a self-tone-mapping material prepends to its fragment shader for `toneMapping`: the
75
+ * define, three's own pars chunk, and the one-line `toneMapping()` three's prefix would have
76
+ * written. Empty when the renderer tone-maps with nothing, which is then an exact identity.
77
+ *
78
+ * It goes before the shader body rather than at the `<tonemapping_fragment>` site because the
79
+ * chunk declares a uniform and a handful of functions, and that site is inside `main()`. This is
80
+ * where three puts it too (its prefix precedes the body), and `<common>` guards its own
81
+ * `saturate` against the one this chunk defines.
82
+ */
83
+ export declare function toneMappingPreamble(toneMapping: number): string;
84
+ /**
85
+ * The `onBeforeCompile` a lit material carries. Three calls it once per program, with the renderer
86
+ * as the second argument, which is the only reason this needs no configuration of its own.
87
+ */
88
+ export declare function toneMapInTheMaterial(shader: ToneMappingShader, renderer: ToneMappingRenderer): void;
89
+ /**
90
+ * Spread into every lit material this package draws. The pair is one statement and neither half
91
+ * is meaningful alone: the injection applies the curve, and `toneMapped: false` stops three
92
+ * applying it a second time when the frame happens to be going to the canvas.
93
+ */
94
+ export declare const SELF_TONE_MAPPED: {
95
+ readonly toneMapped: false;
96
+ readonly onBeforeCompile: typeof toneMapInTheMaterial;
97
+ };
98
+ /**
99
+ * Spread into every unlit, colour-managed material this package draws: a screenshot on a device's
100
+ * screen, a page, a rasterized world-text run.
101
+ *
102
+ * It is `SELF_TONE_MAPPED` minus the injection, and that is the whole difference between them —
103
+ * both switch three's own gate off, and only one puts a curve back. The contract calls these
104
+ * surfaces exact: what the author supplied is what the frame shows, whatever the renderer's tone
105
+ * mapping is set to and whatever target is bound. Every unlit material in this package spreads
106
+ * this constant and none of them spells `toneMapped` by hand — `DeviceMesh`'s two screen
107
+ * materials, `scene/UnlitPlane.tsx` and `media/MediaTileScene.tsx` — and the tone-mapping test
108
+ * walks the package's sources to enforce exactly that, so the rule cannot drift back into a
109
+ * per-file literal.
110
+ */
111
+ export declare const UNLIT_COLOUR_MANAGED: {
112
+ readonly toneMapped: false;
113
+ };
@@ -0,0 +1,17 @@
1
+ import { Texture } from 'three';
2
+ /**
3
+ * Loads an image as a Three texture under `delayRender` so the frame waits for it.
4
+ *
5
+ * `src` may change between renders: each `src` gets its own `delayRender` handle, and a handle
6
+ * is always cleared before the next one is taken, so no handle outlives the load it belongs to.
7
+ * Passing `null` loads nothing and clears any handle still outstanding.
8
+ *
9
+ * A texture the hook has returned is disposed only by the commit that stops returning it — the
10
+ * layout effect after `src` changes or the source goes away — never when its replacement finishes
11
+ * loading, since the material keeps drawing the old one until React commits the new one. Unmount
12
+ * disposes whatever was last returned. The policy is `textureLifecycle.ts`, tested on its own.
13
+ *
14
+ * State here is load state, not animation state — every frame after the load is identical, so
15
+ * the hook stays a pure function of `src` from the renderer's point of view.
16
+ */
17
+ export declare function useImageTexture(src: string | null): Texture | null;
@@ -23,3 +23,5 @@ export { type PlanStep, formatPlanSteps, buildExecutionTask, buildPlannerUserMes
23
23
  export { PipelineTrace as RequestTrace } from './pipelineTrace.js';
24
24
  export { generateMotionShell, MOTION_PRESETS, resolveMotionPresetCard, MotionPresetError, materializeMotionPresetOpsCore, isMotionPresetOp, hasMotionPresetOp } from './motion/index.js';
25
25
  export type { MotionPresetName, MotionShellOptions, MotionPresetErrorCode, ApplyMotionPresetOp, MaterializedMotionShell, MaterializeMotionPresetDeps } from './motion/index.js';
26
+ export { SceneAuthoringError, collectSceneClipIssues, hasSceneOp, isSceneOp, isSceneShotClip, generateSceneShotWrapper, materializeSceneOpsCore, } from './scene/index.js';
27
+ export type { SceneAddOp, SceneUpdateOp, SceneAuthoringContext, SceneClipIssue, SceneSourceDeclaration, SceneSourceResolver, SceneShotWrapperManifest, MaterializeSceneOpsDeps, RegisteredSceneSource, SceneSourceRegistration, } from './scene/index.js';
@@ -0,0 +1,6 @@
1
+ export { SceneAuthoringError, SCENE_TRANSITION_KINDS, collectSceneClipIssues, hasSceneOp, isSceneOp, isSceneShotClip, isSceneShotSource, offFrameLattice, readSceneSourceRef, sceneClipShapeIssues, sceneTrackIdFor, validateSceneAdd, validateSceneUpdate, } from './validate.js';
2
+ export type { SceneAddOp, SceneAuthoringContext, SceneAuthoringErrorCode, SceneClipIssue, SceneOp, SceneShotClip, SceneSourceDeclaration, SceneSourceResolver, SceneUpdateOp, ValidatedSceneAdd, ValidatedSceneUpdate, } from './validate.js';
3
+ export { SCENE_IMAGE_MIME_TYPES, SCENE_SHOT_WRAPPER_SOURCE, SCENE_SHOT_WRAPPER_VERSION, generateSceneShotWrapper, sceneShotAlphaPolicy, sceneShotManifest, } from './wrapper.js';
4
+ export type { SceneShotWrapper, SceneShotWrapperManifest } from './wrapper.js';
5
+ export { SCENE_TRACK_NAME, materializeSceneOpsCore } from './materialize.js';
6
+ export type { MaterializeSceneOpsDeps, RegisteredSceneSource, SceneSourceRegistration } from './materialize.js';
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Turns `scene.add` / `scene.update` requests into ordinary clip operations, mirroring
3
+ * `materializeMotionPresetOpsCore`: the host supplies a source-registration sink over its
4
+ * component store, ops fold in order so an update may target a scene added earlier in the
5
+ * same batch, and the emitted ops carry `props.componentRef`, `props.scene` and the slot
6
+ * bindings on the clip.
7
+ *
8
+ * Staging versus publishing is the host's: the sink stages an immutable source and returns
9
+ * its identity; the host commits staged sources only after the whole batch validates and
10
+ * the composition compare-and-swap succeeds, and leaves failed staged records unreferenced.
11
+ */
12
+ import type { Composition } from '../../composition/validators/index.js';
13
+ import type { SceneShotSpecV2 } from '../../composition/scene/index.js';
14
+ import { type SceneAuthoringContext } from './validate.js';
15
+ import { type SceneShotWrapperManifest } from './wrapper.js';
16
+ export interface SceneSourceRegistration {
17
+ /** Index of the request op in the batch. */
18
+ opIndex: number;
19
+ clipId: string;
20
+ /** Present on an update: the component the clip already pins; register the new version under it. */
21
+ componentId?: string;
22
+ tsxSource: string;
23
+ manifest: SceneShotWrapperManifest;
24
+ scene: SceneShotSpecV2;
25
+ assets: Record<string, string>;
26
+ /** Frame rate of the composition at this op; `durationInFrames` was quantized with it. */
27
+ fps: number;
28
+ durationInFrames: number;
29
+ }
30
+ export interface RegisteredSceneSource {
31
+ componentId: string;
32
+ sourceVersionId: string;
33
+ }
34
+ export interface MaterializeSceneOpsDeps extends Omit<SceneAuthoringContext, 'fps'> {
35
+ /**
36
+ * Composition frame rate, or a reader over the folded composition so a `setFormat` earlier
37
+ * in the batch is honoured by the ops after it.
38
+ */
39
+ fps: number | ((composition: Composition) => number);
40
+ /** Stage an immutable wrapper source and return its pinned identity. */
41
+ sink: (registration: SceneSourceRegistration) => Promise<RegisteredSceneSource> | RegisteredSceneSource;
42
+ /** Fold one already-materialized op into an in-memory composition (batch-order semantics). */
43
+ apply: (composition: Composition, op: unknown) => Composition;
44
+ }
45
+ /** Name given to a minted dedicated track. */
46
+ export declare const SCENE_TRACK_NAME = "Scene shots";
47
+ export declare function materializeSceneOpsCore(composition: Composition, ops: readonly unknown[], deps: MaterializeSceneOpsDeps): Promise<unknown[]>;
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Scene-shot authoring validation for the `scene.add` / `scene.update` requests (spec
3
+ * §"Authoring, persistence, and discovery", §"Timeline and transitions"). No host imports: the
4
+ * caller supplies the frame rate, a source resolver over its component store, and optionally the
5
+ * media kinds it knows.
6
+ *
7
+ * The clip-shape rules themselves live in `@cueframe/composition/scene` (`clipRules.ts`), because
8
+ * they are properties of the persisted contract and the render path enforces the very same rules
9
+ * before it seals a render input. They are re-exported here unchanged, so this module's public
10
+ * surface is what it always was; this file adds only the request shapes on top of them.
11
+ */
12
+ import { type SceneClipIssueCode, type SceneClipRuleContext, type SceneShotClip, type SceneShotSpecV2, type SceneSourceDeclaration } from '../../composition/scene/index.js';
13
+ import type { Composition, Transition } from '../../composition/validators/index.js';
14
+ export { SCENE_TRANSITION_KINDS, collectSceneClipIssues, isSceneShotClip, isSceneShotSource, offFrameLattice, readSceneSourceRef, sceneClipShapeIssues, } from '../../composition/scene/index.js';
15
+ export type { SceneClipIssue, SceneShotClip, SceneSourceDeclaration, SceneSourceResolver, } from '../../composition/scene/index.js';
16
+ /** The authoring context is the clip rules' context; nothing extra is needed to validate a request. */
17
+ export type SceneAuthoringContext = SceneClipRuleContext;
18
+ export type SceneAuthoringErrorCode = SceneClipIssueCode;
19
+ /** One rejection: a path into the request (or clip) and an actionable message. */
20
+ export declare class SceneAuthoringError extends Error {
21
+ readonly code: SceneAuthoringErrorCode;
22
+ readonly path: string;
23
+ readonly clipId: string | undefined;
24
+ opIndex: number | undefined;
25
+ constructor(code: SceneAuthoringErrorCode, path: string, detail: string, options?: {
26
+ clipId?: string;
27
+ opIndex?: number;
28
+ op?: string;
29
+ });
30
+ }
31
+ export interface SceneAddOp {
32
+ type: 'scene.add';
33
+ clipId: string;
34
+ trackId?: string;
35
+ newTrack?: boolean;
36
+ newTrackId?: string;
37
+ startTime: number;
38
+ duration: number;
39
+ transitionIn?: Transition;
40
+ scene: SceneShotSpecV2;
41
+ assets: Record<string, string>;
42
+ }
43
+ export interface SceneUpdateOp {
44
+ type: 'scene.update';
45
+ clipId: string;
46
+ startTime?: number;
47
+ duration?: number;
48
+ transitionIn?: Transition;
49
+ scene?: SceneShotSpecV2;
50
+ assets?: Record<string, string>;
51
+ }
52
+ export type SceneOp = SceneAddOp | SceneUpdateOp;
53
+ export declare const isSceneOp: (op: unknown) => op is SceneOp;
54
+ export declare const hasSceneOp: (ops: readonly unknown[]) => boolean;
55
+ export interface ValidatedSceneAdd {
56
+ spec: SceneShotSpecV2;
57
+ slots: string[];
58
+ track: {
59
+ id: string;
60
+ create: boolean;
61
+ };
62
+ /** The clip as it will be persisted, minus the source pin the host supplies. */
63
+ clip: SceneShotClip;
64
+ }
65
+ /** The minted id for a requested dedicated track. */
66
+ export declare function sceneTrackIdFor(clipId: string): string;
67
+ export declare function validateSceneAdd(op: SceneAddOp, composition: Composition, ctx: SceneAuthoringContext): ValidatedSceneAdd;
68
+ export interface ValidatedSceneUpdate {
69
+ spec: SceneShotSpecV2;
70
+ slots: string[];
71
+ trackId: string;
72
+ componentId: string;
73
+ currentSourceVersionId: string;
74
+ currentDeclaration: SceneSourceDeclaration;
75
+ /** The merged clip as it will be persisted, still pinned to the current source. */
76
+ clip: SceneShotClip;
77
+ /** Which ordinary timing fields the request touched. */
78
+ timing: Pick<SceneUpdateOp, 'startTime' | 'duration' | 'transitionIn'>;
79
+ }
80
+ export declare function validateSceneUpdate(op: SceneUpdateOp, composition: Composition, ctx: SceneAuthoringContext): ValidatedSceneUpdate;
@@ -0,0 +1,41 @@
1
+ /**
2
+ * The immutable scene-shot wrapper: one small TSX module plus a manifest generated from the
3
+ * referenced image slots (spec §"Assets and production admission").
4
+ *
5
+ * The module text is constant. The scene stays in `props.scene`, so changing scene values
6
+ * never changes the source identity; only a change to the referenced slot set (or the alpha
7
+ * policy the backdrop implies) regenerates the manifest, and with it the source identity,
8
+ * atomically. Hosts register `{ tsxSource, manifest }` through their existing component store.
9
+ */
10
+ import { type SceneShotSpecV2 } from '../../composition/scene/index.js';
11
+ export declare const SCENE_SHOT_WRAPPER_VERSION: 2;
12
+ /** Scene image slots admit exactly these formats (verified MIME and decoded dimensions). */
13
+ export declare const SCENE_IMAGE_MIME_TYPES: readonly ["image/png", "image/jpeg", "image/webp"];
14
+ export declare const SCENE_VIDEO_MIME_TYPES: readonly ["video/mp4", "video/webm"];
15
+ /** Structurally a `ComponentManifestV2`; the host parses it with that contract before registering. */
16
+ export interface SceneShotWrapperManifest {
17
+ version: 2;
18
+ assets: Record<string, {
19
+ kind: 'image' | 'video';
20
+ required: true;
21
+ mimeTypes: string[];
22
+ }>;
23
+ graphics: {
24
+ api: 'webgl';
25
+ required: true;
26
+ accelerationPreference: 'hardware-preferred';
27
+ };
28
+ alphaPolicy: 'requires-transparency' | 'allows-opaque';
29
+ sceneShot: {
30
+ version: typeof SCENE_SHOT_WRAPPER_VERSION;
31
+ };
32
+ }
33
+ export interface SceneShotWrapper {
34
+ tsxSource: string;
35
+ manifest: SceneShotWrapperManifest;
36
+ }
37
+ export declare const SCENE_SHOT_WRAPPER_SOURCE: string;
38
+ export declare function sceneShotAlphaPolicy(spec: Pick<SceneShotSpecV2, 'backdrop'>): SceneShotWrapperManifest['alphaPolicy'];
39
+ /** The manifest for a slot set: one required image declaration per slot, ordered by name. */
40
+ export declare function sceneShotManifest(slots: readonly string[], alphaPolicy: SceneShotWrapperManifest['alphaPolicy'], videoSlots?: readonly string[]): SceneShotWrapperManifest;
41
+ export declare function generateSceneShotWrapper(spec: Pick<SceneShotSpecV2, 'layers' | 'backdrop'>): SceneShotWrapper;
@@ -0,0 +1,3 @@
1
+ /** Public component imports shared by admission and desktop dependency staging. */
2
+ export declare const COMPONENT_IMPORT_ALLOWLIST: readonly ["react", "react/jsx-runtime", "remotion", "@remotion/media", "@remotion/layout-utils", "@remotion/transitions", "@remotion/motion-blur", "@remotion/noise", "@remotion/paths", "@remotion/shapes", "@remotion/three", "three", "three/webgpu", "three/tsl", "@react-three/fiber", "@cueframe/animate", "gsap"];
3
+ //# sourceMappingURL=allowedImports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"allowedImports.d.ts","sourceRoot":"","sources":["../src/allowedImports.ts"],"names":[],"mappings":"AAAA,mFAAmF;AACnF,eAAO,MAAM,0BAA0B,0TAkB5B,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { type ComponentBakeRequestV2 as BakeRequest, type ComponentBakeJobV2 as BakeJob, type ComponentRenderReceiptV2 as RenderReceipt } from './contracts.js';
2
+ import { type ComponentRenderTiming } from './render.js';
2
3
  export declare function assertAssetBindingsMatch(request: Pick<BakeRequest, 'source' | 'assets'>): void;
3
4
  export declare function bakeComponentAlphaV2(options: {
4
5
  job: BakeJob;
@@ -7,6 +8,13 @@ export declare function bakeComponentAlphaV2(options: {
7
8
  renderEntryRoot?: string;
8
9
  ffprobeExecutable?: string;
9
10
  ffmpegExecutable?: string;
11
+ concurrency?: number;
12
+ onProgress?: (progress: {
13
+ renderedFrames: number;
14
+ encodedFrames: number;
15
+ totalFrames: number;
16
+ }) => void;
17
+ onTiming?: (timing: ComponentRenderTiming) => void;
10
18
  }): Promise<RenderReceipt>;
11
19
  export declare function sourceIdentityForBake(request: BakeRequest): string;
12
20
  //# sourceMappingURL=bake.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bake.d.ts","sourceRoot":"","sources":["../src/bake.ts"],"names":[],"mappings":"AAEA,OAAO,EAOL,KAAK,sBAAsB,IAAI,WAAW,EAC1C,KAAK,kBAAkB,IAAI,OAAO,EAClC,KAAK,wBAAwB,IAAI,aAAa,EAC/C,MAAM,gBAAgB,CAAC;AAaxB,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,QAAQ,CAAC,GAC9C,IAAI,CAkCN;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,GAAG,EAAE,OAAO,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,OAAO,CAAC,aAAa,CAAC,CAiFzB;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAElE"}
1
+ {"version":3,"file":"bake.d.ts","sourceRoot":"","sources":["../src/bake.ts"],"names":[],"mappings":"AAEA,OAAO,EAQL,KAAK,sBAAsB,IAAI,WAAW,EAC1C,KAAK,kBAAkB,IAAI,OAAO,EAClC,KAAK,wBAAwB,IAAI,aAAa,EAC/C,MAAM,gBAAgB,CAAC;AAUxB,OAAO,EAAwB,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAK/E,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,GAAG,QAAQ,CAAC,GAC9C,IAAI,CAkCN;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,GAAG,EAAE,OAAO,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACxG,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,IAAI,CAAC;CACpD,GAAG,OAAO,CAAC,aAAa,CAAC,CAoGzB;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAElE"}
@@ -14,8 +14,14 @@ type FirewallBrowser = {
14
14
  silent: boolean;
15
15
  }): Promise<void>;
16
16
  };
17
- export declare function installComponentRequestFirewall(browser: FirewallBrowser, allowedAssetOrigins: ReadonlySet<string>): Promise<{
17
+ export declare function installComponentRequestFirewall(browser: FirewallBrowser, allowedAssetOrigins: ReadonlySet<string>, onDiagnostic?: (entry: {
18
+ type: 'request-failed' | 'page-error';
19
+ url?: string;
20
+ message: string;
21
+ }) => void): Promise<{
18
22
  deniedRequests(): readonly string[];
23
+ fatalError(): unknown | null;
24
+ close(): Promise<void>;
19
25
  }>;
20
26
  export {};
21
27
  //# sourceMappingURL=browserFirewall.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"browserFirewall.d.ts","sourceRoot":"","sources":["../src/browserFirewall.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAMD,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,GAAG,IAAI,EAC7B,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAAC,GACvC,yBAAyB,CAoB3B;AAcD,eAAO,MAAM,uBAAuB,iUAAgB,CAAC;AAErD,KAAK,eAAe,GAAG;IACrB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;IAC1D,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1D,CAAC;AACF,KAAK,eAAe,GAAG;IACrB,UAAU,EAAE,eAAe,CAAC;IAC5B,KAAK,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD,CAAC;AAEF,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,eAAe,EACxB,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAAC,GACvC,OAAO,CAAC;IAAE,cAAc,IAAI,SAAS,MAAM,EAAE,CAAA;CAAE,CAAC,CAwClD"}
1
+ {"version":3,"file":"browserFirewall.d.ts","sourceRoot":"","sources":["../src/browserFirewall.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAMD,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,EACpB,cAAc,EAAE,MAAM,GAAG,IAAI,EAC7B,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAAC,GACvC,yBAAyB,CAoB3B;AAcD,eAAO,MAAM,uBAAuB,iUAAgB,CAAC;AAErD,KAAK,eAAe,GAAG;IACrB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,GAAG,KAAK,IAAI,GAAG,IAAI,CAAC;IAC1D,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC1D,CAAC;AACF,KAAK,eAAe,GAAG;IACrB,UAAU,EAAE,eAAe,CAAC;IAC5B,KAAK,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD,CAAC;AAEF,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,eAAe,EACxB,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAAC,EACxC,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE;IAAE,IAAI,EAAE,gBAAgB,GAAG,YAAY,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,GACvG,OAAO,CAAC;IACT,cAAc,IAAI,SAAS,MAAM,EAAE,CAAC;IACpC,UAAU,IAAI,OAAO,GAAG,IAAI,CAAC;IAC7B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB,CAAC,CA6DD"}
@@ -2,7 +2,63 @@
2
2
  * Backend admission is performed separately and fails closed when a requested
3
3
  * API is unavailable; this option is never interpreted as a fallback signal.
4
4
  */
5
- export declare const COMPONENT_CHROMIUM_OPTIONS: Readonly<{
6
- gl: "swangle";
7
- }>;
5
+ import { ComponentHostAttestationV2, type ComponentGraphicsRequirementV2, type ComponentRendererConfigV2, type SceneShotCapabilityV2 } from './contracts.js';
6
+ import { type CdpBrowserConnection } from './webglProbe.js';
7
+ /**
8
+ * The browser BINARY this lane opens, plus the backend policy for it.
9
+ *
10
+ * `browserExecutable` is REQUIRED, and is always `verifyStagedBrowser`'s verified path
11
+ * (`prepareLocalBundle` in ./render.ts). It used to be optional, and an absent one was handed to
12
+ * Remotion as `undefined` — which Remotion documents as "download a browser automatically". A
13
+ * preview drawn by a browser nobody staged and nobody verified is a preview of nothing the export
14
+ * lane will reproduce, so the optional arm is gone and the type says so.
15
+ *
16
+ * Callers that want only the backend — the identity in `resolvedComponentRenderer`, and the tests
17
+ * that pin the per-platform policy — ask `componentBrowserBackend` instead of passing a fake path.
18
+ */
19
+ export declare function componentBrowserOptions(graphics: ComponentGraphicsRequirementV2, browserExecutable: string, chromeMode: 'headless-shell' | 'chrome-for-testing'): {
20
+ chromiumOptions: {
21
+ gl: "angle" | "angle-egl" | "swangle" | "vulkan";
22
+ headless?: false;
23
+ enableMultiProcessOnLinux?: boolean;
24
+ };
25
+ browserExecutable: string;
26
+ chromeMode: "headless-shell" | "chrome-for-testing";
27
+ };
28
+ /** The chromeMode and GL backend a requirement resolves to on this host. No binary involved. */
29
+ export declare function componentBrowserBackend(graphics: ComponentGraphicsRequirementV2): {
30
+ chromiumOptions: {
31
+ gl: 'angle' | 'angle-egl' | 'swangle' | 'vulkan';
32
+ headless?: false;
33
+ enableMultiProcessOnLinux?: boolean;
34
+ };
35
+ };
36
+ export declare function webglBackend(platform: NodeJS.Platform, hardware: boolean): 'angle' | 'angle-egl' | 'swangle';
37
+ /**
38
+ * The renderer configuration a requirement resolves to on this host. Sealed into
39
+ * the render identity and receipt (contracts.ts ComponentRendererConfigV2).
40
+ */
41
+ export declare function resolvedComponentRenderer(graphics: ComponentGraphicsRequirementV2, sceneShot?: SceneShotCapabilityV2 | null): ComponentRendererConfigV2;
42
+ /** Validate the browser's selected renderer, not merely the presence of a GPU
43
+ * in the container. A hardware worker must never silently use SwiftShader, and
44
+ * a webgl (scene-shot) requirement must find WebGL available — and a host
45
+ * `MAX_TEXTURE_SIZE` that fits the shadow map the scene renderer may allocate —
46
+ * before any frame is captured: a missing renderer or an undersized host fails
47
+ * here with a typed refusal naming both numbers, never as a black frame, a
48
+ * substituted api or a quietly halved shadow map. The WebGL decision itself
49
+ * lives in webglProbe.ts so the composition lane, which reaches it through the
50
+ * tracked scene-shot bundle, applies the identical policy.
51
+ *
52
+ * Returns the admitted host for the receipt to record
53
+ * (`ComponentRenderReceiptV2.host`, outside the identity), or null when this
54
+ * render never probed one.
55
+ *
56
+ * Only the WebGL path measures `MAX_TEXTURE_SIZE`, and so only it opens a page.
57
+ * The hardware-compositor check reads Chrome's attestation over CDP and nothing
58
+ * else — a canvas2d component under `CUEFRAME_RENDER_ACCELERATION=hardware` has
59
+ * no shadow map to fit, and paying a page for a number it cannot use would be a
60
+ * round trip per render for nothing. That also means the two paths cannot
61
+ * disagree about what a null limit means: only the lane that asked for the
62
+ * measurement ever holds one. */
63
+ export declare function assertComponentBrowserHardware(browser: CdpBrowserConnection, graphics?: ComponentGraphicsRequirementV2): Promise<ComponentHostAttestationV2 | null>;
8
64
  //# sourceMappingURL=browserOptions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"browserOptions.d.ts","sourceRoot":"","sources":["../src/browserOptions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,0BAA0B;;EAA4C,CAAC"}
1
+ {"version":3,"file":"browserOptions.d.ts","sourceRoot":"","sources":["../src/browserOptions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EACL,0BAA0B,EAE1B,KAAK,8BAA8B,EACnC,KAAK,yBAAyB,EAC9B,KAAK,qBAAqB,EAC3B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAKL,KAAK,oBAAoB,EAC1B,MAAM,iBAAiB,CAAC;AAEzB;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,8BAA8B,EACxC,iBAAiB,EAAE,MAAM,EACzB,UAAU,EAAE,gBAAgB,GAAG,oBAAoB;qBAgBlC;QACf,EAAE,EAAE,OAAO,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;QACjD,QAAQ,CAAC,EAAE,KAAK,CAAC;QACjB,yBAAyB,CAAC,EAAE,OAAO,CAAC;KACrC;;;EAVF;AAED,gGAAgG;AAChG,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,8BAA8B,GACvC;IACD,eAAe,EAAE;QACf,EAAE,EAAE,OAAO,GAAG,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;QACjD,QAAQ,CAAC,EAAE,KAAK,CAAC;QACjB,yBAAyB,CAAC,EAAE,OAAO,CAAC;KACrC,CAAC;CACH,CAqCA;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,GAAG,WAAW,GAAG,SAAS,CAG5G;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,8BAA8B,EACxC,SAAS,CAAC,EAAE,qBAAqB,GAAG,IAAI,GACvC,yBAAyB,CAM3B;AAED;;;;;;;;;;;;;;;;;;;;iCAoBiC;AACjC,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,CAAC,EAAE,8BAA8B,GACxC,OAAO,CAAC,0BAA0B,GAAG,IAAI,CAAC,CA0B5C"}
@@ -7,6 +7,20 @@ export declare function componentBundleIdentity(input: {
7
7
  dependencyLockDigest: string;
8
8
  }): string;
9
9
  export declare function componentRenderIdentity(request: ComponentRenderRequestV2): string;
10
+ /**
11
+ * The artifact key.
12
+ *
13
+ * `receipt.host` is dropped here, structurally, rather than left out of the object a caller
14
+ * happens to build: it is an attestation about the machine, not about the picture. Admission
15
+ * refuses every host below `STUDIO_SHADOW_MAP_BUDGET` and every host above it draws the identical
16
+ * frame, so hashing the reported limit or the renderer string would give two byte-identical
17
+ * artifacts two identities and evict correct ones across a mixed fleet. Everything that does
18
+ * change the picture — the backend, the colour pipeline, the scene capability, the runtime digest
19
+ * — is elsewhere on the receipt and is hashed.
20
+ *
21
+ * Dropping it also leaves every receipt written before `host` existed hashing to the same value it
22
+ * did then, because the remaining fields are unchanged.
23
+ */
10
24
  export declare function componentArtifactIdentity(input: {
11
25
  outputSha256: string;
12
26
  receipt: Omit<ComponentRenderReceiptV2, 'artifactId'>;
@@ -1 +1 @@
1
- {"version":3,"file":"canonicalIdentity.d.ts","sourceRoot":"","sources":["../src/canonicalIdentity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,wBAAwB,EACxB,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AAqCxB,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEpD;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAEvE;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;CAC9B,GAAG,MAAM,CAET;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,MAAM,CAEjF;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,IAAI,CAAC,wBAAwB,EAAE,YAAY,CAAC,CAAC;CACvD,GAAG,MAAM,CAET"}
1
+ {"version":3,"file":"canonicalIdentity.d.ts","sourceRoot":"","sources":["../src/canonicalIdentity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,wBAAwB,EACxB,iBAAiB,EAClB,MAAM,gBAAgB,CAAC;AAqCxB,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEpD;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAEvE;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAC7C,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;CAC9B,GAAG,MAAM,CAET;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,wBAAwB,GAAG,MAAM,CAEjF;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC/C,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,IAAI,CAAC,wBAAwB,EAAE,YAAY,CAAC,CAAC;CACvD,GAAG,MAAM,CAOT"}