@cueframe/kernel 0.2.2 → 0.2.3

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 (332) 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/composition/fonts/bundledFaces.d.ts +150 -0
  118. package/dist/_members/composition/fonts/captionFaces.d.ts +268 -0
  119. package/dist/_members/composition/fonts.d.ts +11 -4
  120. package/dist/_members/composition/graphics-plan/schemas.d.ts +4 -4
  121. package/dist/_members/composition/ops/types.d.ts +1 -1
  122. package/dist/_members/composition/primitive-catalog/types.d.ts +1 -0
  123. package/dist/_members/composition/projection/behind-readiness.d.ts +3 -0
  124. package/dist/_members/composition/projection/brandKit.d.ts +6 -0
  125. package/dist/_members/composition/projection/composition-floor.d.ts +2 -1
  126. package/dist/_members/composition/scene/animation.d.ts +25 -0
  127. package/dist/_members/composition/scene/budget.d.ts +29 -0
  128. package/dist/_members/composition/scene/budgetPolicy.d.mts +13 -0
  129. package/dist/_members/composition/scene/clipRules.d.ts +119 -0
  130. package/dist/_members/composition/scene/constraints.d.ts +61 -0
  131. package/dist/_members/composition/scene/device.d.ts +21 -0
  132. package/dist/_members/composition/scene/examples.d.ts +11 -0
  133. package/dist/_members/composition/scene/index.d.ts +11 -0
  134. package/dist/_members/composition/scene/photographicRig.d.ts +242 -0
  135. package/dist/_members/composition/scene/preparedRender.d.ts +239 -0
  136. package/dist/_members/composition/scene/resolution.d.ts +178 -0
  137. package/dist/_members/composition/scene/schema.d.ts +351 -0
  138. package/dist/_members/composition/scene/videoSchedule.d.ts +43 -0
  139. package/dist/_members/composition/validators/brandKit.d.ts +1 -0
  140. package/dist/_members/composition/validators/render.d.ts +2 -0
  141. package/dist/_members/composition-ops/index.d.ts +45 -0
  142. package/dist/_members/composition-ops/opRecorder.d.ts +1 -1
  143. package/dist/_members/core/render/compositionRender.d.ts +41 -9
  144. package/dist/_members/core/render/index.d.ts +9 -2
  145. package/dist/_members/core/render/sceneCaptureIdentity.d.ts +14 -0
  146. package/dist/_members/core/render/sceneShotPlan.d.ts +142 -0
  147. package/dist/_members/core/render/sceneShotPreparation.d.ts +57 -0
  148. package/dist/_members/core/render/slabDescriptor.d.ts +21 -0
  149. package/dist/_members/core/render/trackProjection.d.ts +33 -0
  150. package/dist/_members/core/render/types.d.ts +142 -0
  151. package/dist/_members/errors/registry.d.ts +6 -0
  152. package/dist/_members/mcp/adapter.d.ts +5 -0
  153. package/dist/_members/mcp/generated/sceneContract.d.ts +155 -0
  154. package/dist/_members/mcp/sceneShot.d.ts +38 -0
  155. package/dist/_members/mcp/sceneShotExample.d.ts +22 -0
  156. package/dist/_members/media-model/api.d.ts +1 -0
  157. package/dist/_members/media-model/media-kind.d.ts +1 -1
  158. package/dist/_members/media-model/testing/mediaStoreContract.d.ts +1 -1
  159. package/dist/_members/primitives/effects/index.d.ts +1 -0
  160. package/dist/_members/primitives/effects/stage-camera/config.d.ts +50 -0
  161. package/dist/_members/primitives/effects/stage-camera/index.d.ts +31 -0
  162. package/dist/_members/primitives/layouts/flex-layout/config.d.ts +73 -0
  163. package/dist/_members/primitives/layouts/flex-layout/index.d.ts +4 -0
  164. package/dist/_members/primitives/layouts/index.d.ts +1 -0
  165. package/dist/_members/primitives/layouts/picture-in-picture/config.d.ts +1 -1
  166. package/dist/_members/primitives/lib/frameScale.d.ts +4 -0
  167. package/dist/_members/primitives/lib/index.d.ts +1 -0
  168. package/dist/_members/primitives/lib/palette.d.ts +30 -30
  169. package/dist/_members/primitives/lib/text/contrast.d.ts +2 -1
  170. package/dist/_members/primitives/lib/text/spec.d.ts +0 -8
  171. package/dist/_members/primitives/lib/types.d.ts +2 -0
  172. package/dist/_members/primitives/scenes/device-showcase/config.d.ts +41 -0
  173. package/dist/_members/primitives/scenes/device-showcase/index.d.ts +36 -0
  174. package/dist/_members/primitives/scenes/hero-device-assemble/config.d.ts +1 -0
  175. package/dist/_members/primitives/scenes/hero-device-assemble/index.d.ts +2 -1
  176. package/dist/_members/primitives/scenes/index.d.ts +1 -0
  177. package/dist/_members/primitives/ui-blocks/badge-pop/config.d.ts +1 -1
  178. package/dist/_members/primitives/ui-blocks/device-mockup-zoom/config.d.ts +1 -0
  179. package/dist/_members/primitives/ui-blocks/device-mockup-zoom/index.d.ts +2 -1
  180. package/dist/_members/primitives/ui-blocks/terminal-simulator/config.d.ts +1 -1
  181. package/dist/_members/primitives/ui-blocks/toast-notification/config.d.ts +1 -1
  182. package/dist/_members/render-harness/cardAssetAdmission.d.ts.map +1 -1
  183. package/dist/_members/render-harness/cardRender.d.ts.map +1 -1
  184. package/dist/_members/render-harness/css-tree-subpaths.d.ts +11 -0
  185. package/dist/_members/render-harness/extractSegments.d.ts +1 -0
  186. package/dist/_members/render-harness/extractSegments.d.ts.map +1 -1
  187. package/dist/_members/render-harness/imageHeader.d.ts +14 -0
  188. package/dist/_members/render-harness/imageHeader.d.ts.map +1 -0
  189. package/dist/_members/render-harness/index.d.ts +6 -0
  190. package/dist/_members/render-harness/index.d.ts.map +1 -1
  191. package/dist/_members/render-harness/materializeSources.d.ts +46 -2
  192. package/dist/_members/render-harness/materializeSources.d.ts.map +1 -1
  193. package/dist/_members/render-harness/nodeScenePreparation.d.ts +97 -0
  194. package/dist/_members/render-harness/nodeScenePreparation.d.ts.map +1 -0
  195. package/dist/_members/render-harness/remotion-runtime.d.ts +16 -2
  196. package/dist/_members/render-harness/renderInputAssets.d.ts +1 -1
  197. package/dist/_members/render-harness/renderInputAssets.d.ts.map +1 -1
  198. package/dist/_members/render-harness/resolveAssets.d.ts +2 -2
  199. package/dist/_members/render-harness/resolveAssets.d.ts.map +1 -1
  200. package/dist/_members/render-harness/sceneShotAssets.d.ts +17 -0
  201. package/dist/_members/render-harness/sceneShotAssets.d.ts.map +1 -0
  202. package/dist/animate/preparation-facts.d.ts +1 -0
  203. package/dist/animate/preparation-facts.js +22 -0
  204. package/dist/animate.js +336 -1005
  205. package/dist/authoring/build-tools.js +7 -6
  206. package/dist/authoring/context.js +5 -4
  207. package/dist/authoring/prompts.js +1 -1
  208. package/dist/authoring/scene.d.ts +1 -0
  209. package/dist/authoring/scene.js +50 -0
  210. package/dist/authoring/tools.js +6 -5
  211. package/dist/authoring.js +49 -29
  212. package/dist/chunk-2L7PYYJK.js +23 -0
  213. package/dist/{chunk-ZN6P3KOJ.js → chunk-32TH76H3.js} +2 -2
  214. package/dist/chunk-5DJ3IEJR.js +4424 -0
  215. package/dist/chunk-6BVVCRRD.js +26488 -0
  216. package/dist/{chunk-DQKSCHFC.js → chunk-6EWRIAZA.js} +187 -66
  217. package/dist/{chunk-YQ7FFW3G.js → chunk-6VWICHOZ.js} +26 -5
  218. package/dist/{chunk-RETQFTGY.js → chunk-A74FZCPY.js} +42 -5
  219. package/dist/{chunk-C5SEPOWD.js → chunk-AS5EXBNS.js} +1792 -707
  220. package/dist/{chunk-U5LBYS3N.js → chunk-B3GSTQLR.js} +339 -272
  221. package/dist/chunk-BVA3537Z.js +63 -0
  222. package/dist/{chunk-DHKQ47Q6.js → chunk-DAARYRNT.js} +6 -1
  223. package/dist/chunk-DQLYWNLC.js +2063 -0
  224. package/dist/chunk-E6WHXIDF.js +3619 -0
  225. package/dist/{chunk-HXKTZPRH.js → chunk-E7GIZEPS.js} +1 -1
  226. package/dist/{chunk-M2TLRXEO.js → chunk-EXY4JJPH.js} +1 -1
  227. package/dist/{chunk-GEGRJKKO.js → chunk-F2DJL7P7.js} +1 -1
  228. package/dist/{chunk-AWT3P5ZN.js → chunk-FVDFPJHT.js} +1 -1
  229. package/dist/{chunk-EMGFZ3PR.js → chunk-FWSJLHSV.js} +5 -1
  230. package/dist/{chunk-TMIBBD5E.js → chunk-I5QWBM3M.js} +280 -113
  231. package/dist/{chunk-IBMJ33EL.js → chunk-I5RX2QZT.js} +1 -1
  232. package/dist/{chunk-4FOOBSEE.js → chunk-J3DIUG24.js} +1 -0
  233. package/dist/{chunk-AD5HWBCE.js → chunk-JX53CVJV.js} +14 -5
  234. package/dist/{chunk-LNBVTDFR.js → chunk-L2AHS3AW.js} +1 -1
  235. package/dist/{chunk-BDMTUEEZ.js → chunk-LT4PWSR2.js} +2 -2
  236. package/dist/chunk-MH3UPKWR.js +3415 -0
  237. package/dist/{chunk-RFXR7ATW.js → chunk-NUKDEOK6.js} +13 -1
  238. package/dist/{chunk-IJ7PVJTK.js → chunk-ODUWCQI3.js} +3 -2
  239. package/dist/chunk-QAGGJHAF.js +16 -0
  240. package/dist/chunk-QS36DMFG.js +332 -0
  241. package/dist/{chunk-G5BFI32U.js → chunk-RAXHCRVV.js} +1 -1
  242. package/dist/{chunk-BIBYZJL3.js → chunk-RL5SO653.js} +3 -3
  243. package/dist/{chunk-ZSZABOE5.js → chunk-S5H6GH6M.js} +1 -1
  244. package/dist/{chunk-EEXCDFY5.js → chunk-SD25VQDE.js} +1 -1
  245. package/dist/{chunk-7REW2MW3.js → chunk-SX523NDS.js} +10 -10
  246. package/dist/chunk-TARKDVP6.js +430 -0
  247. package/dist/{chunk-IHFREGFA.js → chunk-TCHPRGC5.js} +18 -2
  248. package/dist/{chunk-ZCAQHNPI.js → chunk-UKGNHZS4.js} +1 -1
  249. package/dist/{chunk-WQSGVRFU.js → chunk-UY77TMKD.js} +31 -44
  250. package/dist/chunk-VKATKWWR.js +1462 -0
  251. package/dist/{chunk-CX2IIQ4R.js → chunk-W2245F6G.js} +29 -29
  252. package/dist/{chunk-XHUYWVYK.js → chunk-WBNFSG6T.js} +1 -1
  253. package/dist/chunk-WIHXXF3X.js +221 -0
  254. package/dist/{chunk-XVBOSPZI.js → chunk-X74EEFXV.js} +6 -6
  255. package/dist/{chunk-7KEUL3FI.js → chunk-XF2QMKRG.js} +9 -1
  256. package/dist/{chunk-HFC3MKXA.js → chunk-Y4HPN4BC.js} +1 -0
  257. package/dist/{chunk-D43J23QX.js → chunk-YFSBFCXO.js} +1018 -42
  258. package/dist/{chunk-6ID2J64H.js → chunk-YHC3RXS7.js} +162 -25
  259. package/dist/{chunk-KKEY5MIW.js → chunk-ZS3A3QUM.js} +16 -16
  260. package/dist/{chunk-LQUWKBST.js → chunk-ZVG446DJ.js} +139 -10
  261. package/dist/component-runtime/browserOptions.js +14 -3
  262. package/dist/component-runtime/contracts.js +35 -3
  263. package/dist/component-runtime/identity/browser.js +1 -1
  264. package/dist/component-runtime/identity.js +2 -2
  265. package/dist/component-runtime/importPolicy.js +2 -2
  266. package/dist/component-runtime/mediaResolution.d.ts +1 -0
  267. package/dist/component-runtime/mediaResolution.js +11 -0
  268. package/dist/component-runtime/render.js +38 -5
  269. package/dist/component-runtime.js +118 -14
  270. package/dist/compose.js +26 -20
  271. package/dist/composition/fonts.js +64 -67
  272. package/dist/composition/graphics-plan.js +3 -2
  273. package/dist/composition/ops.js +4 -3
  274. package/dist/composition/primitive-catalog.js +1 -1
  275. package/dist/composition/projection.js +10 -3
  276. package/dist/composition/scene/budget-policy.d.ts +1 -0
  277. package/dist/composition/scene/budget-policy.js +17 -0
  278. package/dist/composition/scene/schema.json +2757 -0
  279. package/dist/composition/scene.d.ts +1 -0
  280. package/dist/composition/scene.js +275 -0
  281. package/dist/composition/validators.js +3 -2
  282. package/dist/composition-ops.js +103 -13
  283. package/dist/composition.js +12 -5
  284. package/dist/{context-4GSDBFT3.js → context-IUPQ54V4.js} +5 -4
  285. package/dist/core/render.js +54 -3
  286. package/dist/core/select.js +2 -2
  287. package/dist/core.js +6 -3
  288. package/dist/director/ai-sdk.js +3 -3
  289. package/dist/director/domain.js +2 -2
  290. package/dist/director.js +3 -3
  291. package/dist/errors.js +1 -1
  292. package/dist/mcp/adapter.js +4 -4
  293. package/dist/mcp/core.js +1 -1
  294. package/dist/mcp/curation.js +1 -1
  295. package/dist/mcp/server.js +4 -4
  296. package/dist/mcp.js +4 -4
  297. package/dist/media-model/media-kind.js +2 -0
  298. package/dist/media-model/testing.js +16 -11
  299. package/dist/media-model.js +1 -1
  300. package/dist/nle-export.js +26 -20
  301. package/dist/primitives/backgrounds.js +2 -2
  302. package/dist/primitives/captions.js +21 -11
  303. package/dist/primitives/effects.js +14 -4
  304. package/dist/primitives/graphics.json +3 -0
  305. package/dist/primitives/hero-text.js +4 -3
  306. package/dist/primitives/layouts.js +9 -2
  307. package/dist/primitives/lib/frameScale.d.ts +1 -0
  308. package/dist/primitives/lib/frameScale.js +11 -0
  309. package/dist/primitives/lib/index.js +18 -10
  310. package/dist/primitives/lib/palette.js +1 -1
  311. package/dist/primitives/lib/text/contrast.js +2 -1
  312. package/dist/primitives/lib/text/typeface.js +1 -1
  313. package/dist/primitives/lib.js +18 -10
  314. package/dist/primitives/params-required.json +3 -0
  315. package/dist/primitives/scenes.js +12 -3
  316. package/dist/primitives/text.js +5 -5
  317. package/dist/primitives/transitions.js +2 -2
  318. package/dist/primitives/ui-blocks.js +6 -5
  319. package/dist/primitives/version-map.json +5 -2
  320. package/dist/primitives.js +20 -13
  321. package/dist/render-harness/cardAssetAdmission.js +2 -2
  322. package/dist/render-harness/renderInputAssets.js +2 -2
  323. package/dist/render-harness.js +874 -124
  324. package/package.json +49 -15
  325. package/dist/_members/animate/three/drei.d.ts +0 -6
  326. package/dist/_members/component-runtime/fixtures/webgpuTiledRefraction.d.ts +0 -9
  327. package/dist/_members/component-runtime/fixtures/webgpuTiledRefraction.d.ts.map +0 -1
  328. package/dist/chunk-5OTQ7M43.js +0 -718
  329. package/dist/chunk-CGHTMZNC.js +0 -6
  330. package/dist/chunk-KVMVYRXX.js +0 -9527
  331. package/dist/chunk-WYQX4QIK.js +0 -544
  332. /package/dist/{chunk-H5LMJKZU.js → chunk-JVDUSOYG.js} +0 -0
@@ -0,0 +1,37 @@
1
+ import { type Workspace } from '../primitives/workspace.js';
2
+ export declare const LOCAL_ROOT_FILENAME = "Root.local.tsx";
3
+ export declare const LOCAL_ENTRY_FILENAME = "entry.local.tsx";
4
+ export declare const LOCAL_COMPOSITION_ID = "CueFrameLocalStill";
5
+ type LiveTransport = {
6
+ frame: number;
7
+ playing: boolean;
8
+ } & Record<string, unknown>;
9
+ /** Frame-presentation state used by the generated live iframe. Kept pure so
10
+ * seek transitions can be exercised without a browser or source-string assertions. */
11
+ export declare function createLivePresentationRouter(callbacks: {
12
+ mediaTileScene: () => string | null;
13
+ requestFrame: (callback: () => void) => void;
14
+ acknowledge: (transport: LiveTransport, presentedFrame: number) => void;
15
+ }): {
16
+ request(transport: LiveTransport): void;
17
+ committed(frame: number): void;
18
+ tilePresented(frame: number, scene: string): void;
19
+ dispose(): void;
20
+ };
21
+ export declare function generateLocalRoot(ws: Workspace, opts: {
22
+ id: string;
23
+ width: number;
24
+ height: number;
25
+ fps: number;
26
+ durationInFrames: number;
27
+ revision?: string;
28
+ liveInputProps?: Record<string, unknown>;
29
+ fontFaces?: ReadonlyArray<{
30
+ family: string;
31
+ weight: number;
32
+ style?: string;
33
+ url: string;
34
+ }>;
35
+ }): string;
36
+ export {};
37
+ //# sourceMappingURL=localRoot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localRoot.d.ts","sourceRoot":"","sources":["../src/localRoot.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,SAAS,EACf,MAAM,gCAAgC,CAAC;AAOxC,eAAO,MAAM,mBAAmB,mBAAmB,CAAC;AAEpD,eAAO,MAAM,oBAAoB,oBAAoB,CAAC;AAEtD,eAAO,MAAM,oBAAoB,uBAAuB,CAAC;AAEzD,KAAK,aAAa,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEnF;sFACsF;AACtF,wBAAgB,4BAA4B,CAAC,SAAS,EAAE;IACtD,cAAc,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;IACpC,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IAC7C,WAAW,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC;CACzE;uBAiCsB,aAAa;qBACf,MAAM;yBACF,MAAM,SAAS,MAAM;;EAO7C;AAOD,wBAAgB,iBAAiB,CAC/B,EAAE,EAAE,SAAS,EACb,IAAI,EAAE;IACJ,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IACjF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5D,SAAS,CAAC,EAAE,aAAa,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC5F,GACA,MAAM,CAqaR"}
@@ -0,0 +1,25 @@
1
+ import type { ComponentMediaDemandV1, ComponentMediaTierV1 } from './contracts.js';
2
+ export declare const COMPONENT_MEDIA_TIERS: readonly [256, 512, 1024, 2048];
3
+ export declare const COMPONENT_MEDIA_HEADROOM = 1.25;
4
+ export interface ComponentMediaSourceDimensions {
5
+ width: number;
6
+ height: number;
7
+ }
8
+ export interface ComponentMediaOutputDimensions {
9
+ width: number;
10
+ height: number;
11
+ }
12
+ export type ComponentMediaRepresentationPlan = {
13
+ kind: 'original' | 'proxy';
14
+ width: number;
15
+ height: number;
16
+ tier: ComponentMediaTierV1 | null;
17
+ requiredWidth: number;
18
+ requiredHeight: number;
19
+ };
20
+ export declare function planComponentMediaRepresentation(input: {
21
+ source: ComponentMediaSourceDimensions;
22
+ output: ComponentMediaOutputDimensions;
23
+ demand: ComponentMediaDemandV1;
24
+ }): ComponentMediaRepresentationPlan;
25
+ //# sourceMappingURL=mediaResolution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mediaResolution.d.ts","sourceRoot":"","sources":["../src/mediaResolution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAEnF,eAAO,MAAM,qBAAqB,iCAA4E,CAAC;AAC/G,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C,MAAM,WAAW,8BAA8B;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,8BAA8B;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,gCAAgC,GAAG;IAC7C,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAgBF,wBAAgB,gCAAgC,CAAC,KAAK,EAAE;IACtD,MAAM,EAAE,8BAA8B,CAAC;IACvC,MAAM,EAAE,8BAA8B,CAAC;IACvC,MAAM,EAAE,sBAAsB,CAAC;CAChC,GAAG,gCAAgC,CA6CnC"}
@@ -1,17 +1,12 @@
1
1
  import { type Workspace } from '../primitives/workspace.js';
2
- import { type ComponentGraphicsActualV2, type ComponentGraphicsRequirementV2 } from './contracts.js';
3
- export declare const LOCAL_ROOT_FILENAME = "Root.local.tsx";
4
- export declare const LOCAL_ENTRY_FILENAME = "entry.local.tsx";
5
- export declare const LOCAL_COMPOSITION_ID = "CueFrameLocalStill";
6
- export declare const GRAPHICS_ATTESTATION_PREFIX = "__cueframe_graphics_v2__:";
7
- export declare function parseGraphicsAttestationLog(text: string): ComponentGraphicsActualV2 | null;
8
- export declare function generateLocalRoot(ws: Workspace, opts: {
9
- id: string;
10
- width: number;
11
- height: number;
12
- fps: number;
13
- durationInFrames: number;
14
- }): string;
2
+ import { type ComponentGraphicsActualV2, type ComponentGraphicsRequirementV2, type ComponentHostAttestationV2, type ComponentCapturePageRasterAttestationV1, type ComponentStillPngContainerFactsV1 as ComponentStillPngFactsV1, type ComponentStillSessionAttestationV1 as ComponentStillSessionAttestationFactsV1, type ComponentStillSessionHostAttestationV1 as ComponentStillSessionHostAttestationFactsV1 } from './contracts.js';
3
+ import type { FfmpegOverrideFn } from '@remotion/renderer';
4
+ export { generateLocalRoot, LOCAL_COMPOSITION_ID, LOCAL_ENTRY_FILENAME, LOCAL_ROOT_FILENAME, } from './localRoot.js';
5
+ export { GRAPHICS_ATTESTATION_PREFIX, parseGraphicsAttestationLog } from './renderDiagnostics.js';
6
+ export declare function shouldIsolateWebGpuStillBrowser(platform: NodeJS.Platform, graphicsApi: ComponentGraphicsRequirementV2['api']): boolean;
7
+ export declare const COMPONENT_BROWSER_FIREWALL_TIMEOUT_MS = 10000;
8
+ export declare const COMPONENT_BROWSER_CLEANUP_TIMEOUT_MS = 5000;
9
+ export declare const COMPONENT_BROWSER_FIREWALL_ATTEMPTS = 2;
15
10
  export declare function buildLocalWebpackOverride(renderEntryRoot: string, authoredComponentRoot: string): (config: any) => any;
16
11
  export interface RenderComponentStillOpts {
17
12
  ws: Workspace;
@@ -25,22 +20,138 @@ export interface RenderComponentStillOpts {
25
20
  height?: number;
26
21
  fps?: number;
27
22
  durationInFrames?: number;
23
+ /** Remotion output scale. The composition keeps its authored layout dimensions. */
24
+ scale?: number;
28
25
  renderEntryRoot?: string;
29
26
  allowedAssetOrigins?: ReadonlySet<string>;
27
+ /** Trusted host font faces served from the verified render-entry public tree. */
28
+ fontFaces?: ReadonlyArray<{
29
+ family: string;
30
+ weight: number;
31
+ style?: string;
32
+ url: string;
33
+ }>;
34
+ }
35
+ export interface ComponentStillFrameOpts {
36
+ frame?: number;
37
+ params?: Record<string, unknown>;
38
+ assets?: Record<string, unknown>;
39
+ seed?: string;
40
+ /** Refuse a request queued against a different compiled source revision. */
41
+ expectedRevision?: string;
42
+ outputPath?: string;
43
+ }
44
+ export interface ComponentStillSession {
45
+ readonly revision: string;
46
+ readonly liveUrl: string;
47
+ /** Same-session host facts, present only when capture attestation was requested. */
48
+ readonly hostAttestation: ComponentStillSessionHostAttestationFactsV1 | null;
49
+ renderFrame(opts?: ComponentStillFrameOpts): Promise<{
50
+ pngPath: string;
51
+ revision: string;
52
+ actualGraphics: ComponentGraphicsActualV2;
53
+ capturePageRaster: ComponentCapturePageRasterAttestationV1 | null;
54
+ outputOwnedBySession: boolean;
55
+ }>;
56
+ renderVerifiedFrame(opts?: ComponentStillFrameOpts): Promise<{
57
+ png: ComponentStillPngFactsV1;
58
+ revision: string;
59
+ actualGraphics: ComponentGraphicsActualV2;
60
+ attestation: ComponentStillSessionAttestationFactsV1;
61
+ }>;
62
+ close(): Promise<void>;
63
+ /** Immediately closes the owned browser, then waits for active work to settle. */
64
+ cancel(): Promise<void>;
65
+ }
66
+ export interface CreateComponentStillSessionOpts extends Omit<RenderComponentStillOpts, 'frame'> {
67
+ /** Stable identity supplied by an immutable source owner. Defaults to the
68
+ * authored entrypoint digest captured before compilation. */
69
+ revision?: string;
70
+ /** Collect identity facts from this exact browser before it captures a frame. */
71
+ captureAttestation?: boolean;
72
+ /** Optional host diagnostic sink for browser console output during startup/render. */
73
+ onBrowserLog?: (entry: unknown) => void;
74
+ /** Reports bounded startup phases without exposing component source or props. */
75
+ onStartupPhase?: (phase: 'prepare' | 'prepared' | 'open-browser' | 'browser-open' | 'firewall' | 'select-composition' | 'composition-ready' | 'start-proxy' | 'ready') => void;
30
76
  }
31
77
  export declare function importFromRenderEntry<T>(renderEntryRoot: string, spec: string): Promise<T>;
78
+ /** What the shared verifier hands back: the browser this process will actually run. */
79
+ export type StagedBrowserIdentity = {
80
+ path: string;
81
+ sha256: string;
82
+ version: string;
83
+ product: string;
84
+ chromeMode: 'headless-shell' | 'chrome-for-testing';
85
+ manifestPath: string;
86
+ };
87
+ /**
88
+ * How long this lane gives the staged executable to answer `--version`.
89
+ *
90
+ * The composition lane derives its probe budget from the render deadline it was given
91
+ * (`resolveBrowserVersionProbeBudgetMs`); a preview session has no deadline of its own, so it takes
92
+ * that derivation's own ceiling. A probe that outlives it has not been slow, it has hung.
93
+ */
94
+ export declare const LOCAL_BROWSER_VERSION_PROBE_MS = 30000;
95
+ export declare function verifyLocalStagedBrowser(renderEntryRoot: string): Promise<StagedBrowserIdentity>;
96
+ /**
97
+ * Install the sizer on `browser` and answer a `size(width, height)` that refuses by name.
98
+ *
99
+ * Installed ONCE per browser and before the request firewall, because the sizer's measuring page
100
+ * must exist before anything installs `Target.setAutoAttach` over the same browser — a page created
101
+ * and closed after that is auto-attached while it is already going away, and the firewall's first
102
+ * command to it fails. The returned `size` may then be called per composition.
103
+ *
104
+ * A refusal raised asynchronously by a later page — the sizer verifies every page target against
105
+ * the window it verified — is surfaced on the NEXT `size` call and, for the lanes that call `size`
106
+ * once, by the browser teardown the sizer performs, which ends the render in flight.
107
+ */
108
+ export declare function installLocalLaneWindowSizer(renderEntryRoot: string, browser: unknown): Promise<(width: number, height: number) => Promise<void>>;
109
+ /** Install and size once, for a lane that knows its frame size before it opens a page. */
110
+ export declare function sizeLocalLaneWindows(renderEntryRoot: string, browser: unknown, width: number, height: number): Promise<void>;
111
+ /** The five typed fields a staged-browser refusal puts on the wire, or null for anything else. */
112
+ export type StagedBrowserWireLocator = {
113
+ code: string;
114
+ path: string | null;
115
+ expected: string | null;
116
+ observed: string | null;
117
+ repair: string | null;
118
+ };
119
+ /**
120
+ * The wire locator for a caught error, DELEGATED to the shared verifier module rather than
121
+ * reimplemented here.
122
+ *
123
+ * A second copy of "is this a staged-browser refusal, and what are its fields" is how the two lanes
124
+ * came to disagree about the same broken bundle, so there is not one. `null` before the module has
125
+ * ever loaded is correct and not a fallback: no staged-browser refusal can exist before the module
126
+ * that throws it has been loaded, and by the time a refusal is being reported it has been.
127
+ */
128
+ export declare function stagedBrowserLocator(error: unknown): StagedBrowserWireLocator | null;
32
129
  export declare function resolveRenderEntryRoot(override?: string): string;
130
+ export declare const COMPONENT_STILL_RUNTIME_IDENTITY = "@cueframe/component-runtime/still-session-v1";
131
+ /** Raster-affecting Remotion launch arguments pinned before a browser is opened. */
132
+ export declare function componentStillRasterAffectingFlags(graphics: ComponentGraphicsRequirementV2): {
133
+ browserArguments: string[];
134
+ };
135
+ export declare function componentStillDependencyIdentity(renderEntryRoot: string): Promise<string>;
136
+ export declare function createComponentStillSession(opts: CreateComponentStillSessionOpts): Promise<ComponentStillSession>;
33
137
  export declare function renderComponentStill(opts: RenderComponentStillOpts): Promise<{
34
138
  pngPath: string;
35
139
  actualGraphics: ComponentGraphicsActualV2;
36
140
  }>;
37
141
  export type AlphaCodec = 'prores' | 'vp9';
142
+ /** Bounded VP9 row parallelism through Remotion's supported encoder hook.
143
+ * Keep alpha, frame timing and container arguments supplied by Remotion.
144
+ * The renderer bundle digest seals this fixed profile into bake cache identity.
145
+ */
146
+ export declare const vp9AlphaFfmpegOverride: FfmpegOverrideFn;
38
147
  export declare function alphaRenderConfig(codec: AlphaCodec): {
39
148
  codec: AlphaCodec;
40
149
  pixelFormat: 'yuva444p10le' | 'yuva420p';
41
150
  imageFormat: 'png';
42
151
  muted: true;
43
152
  proResProfile?: '4444';
153
+ crf?: number;
154
+ ffmpegOverride?: FfmpegOverrideFn;
44
155
  };
45
156
  export declare function alphaExt(codec: AlphaCodec): 'mov' | 'webm';
46
157
  export interface RenderComponentAlphaOpts {
@@ -60,9 +171,36 @@ export interface RenderComponentAlphaOpts {
60
171
  frameRange?: [number, number];
61
172
  renderEntryRoot?: string;
62
173
  allowedAssetOrigins?: ReadonlySet<string>;
174
+ concurrency?: number;
175
+ onProgress?: (progress: {
176
+ renderedFrames: number;
177
+ encodedFrames: number;
178
+ totalFrames: number;
179
+ }) => void;
180
+ onTiming?: (timing: ComponentRenderTiming) => void;
181
+ }
182
+ export interface ComponentRenderTiming {
183
+ stage: 'bundle' | 'browser' | 'composition' | 'first-frame' | 'frames' | 'encoding' | 'render';
184
+ durationMs: number;
185
+ slowestFrames?: Array<{
186
+ frame: number;
187
+ time: number;
188
+ }>;
189
+ /** Native Remotion process-level counters. Concurrent capture durations
190
+ * overlap; these averages are not additional pipeline wall time. */
191
+ rendererPerformance?: string[];
63
192
  }
193
+ /**
194
+ * `host` is what browser admission attested about the machine that drew the frames — the WebGL
195
+ * feature status, the renderer string, the measured `MAX_TEXTURE_SIZE` and the backend — or null
196
+ * when this render probed no host. It is carried out of here so the bake can record it on the
197
+ * receipt (`ComponentRenderReceiptV2.host`), which is the only place the measurement survives the
198
+ * render: it is taken once, before the first frame, and cannot be recovered from the artifact.
199
+ * It is not part of any identity; see `ComponentHostAttestationV2`.
200
+ */
64
201
  export declare function renderComponentAlpha(opts: RenderComponentAlphaOpts): Promise<{
65
202
  videoPath: string;
66
203
  actualGraphics: ComponentGraphicsActualV2;
204
+ host: ComponentHostAttestationV2 | null;
67
205
  }>;
68
206
  //# sourceMappingURL=render.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { ComponentRuntimeError, type ComponentCapturePageRasterAttestationV1 as CapturePageRasterAttestation, type ComponentGraphicsActualV2, type ComponentGraphicsRequirementV2, type ComponentRuntimeErrorCode as RuntimeErrorCode } from './contracts.js';
2
+ export declare const GRAPHICS_ATTESTATION_PREFIX = "__cueframe_graphics_v2__:";
3
+ export declare const CAPTURE_PAGE_RASTER_ATTESTATION_PREFIX = "__cueframe_capture_raster_v1__:";
4
+ export declare const BROWSER_RUNTIME_ERROR_PREFIX = "__cueframe_component_error_v2__:";
5
+ export declare function componentRuntimeError(error: unknown, fallbackCode: RuntimeErrorCode, retryable?: boolean): ComponentRuntimeError;
6
+ export declare function parseGraphicsAttestationLog(text: string): ComponentGraphicsActualV2 | null;
7
+ export declare function parseCapturePageRasterAttestationLog(text: string): CapturePageRasterAttestation | null;
8
+ export declare function graphicsCollector(required: ComponentGraphicsRequirementV2): {
9
+ onBrowserLog(log: {
10
+ text: string;
11
+ }): void;
12
+ receipt(): ComponentGraphicsActualV2;
13
+ };
14
+ //# sourceMappingURL=renderDiagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderDiagnostics.d.ts","sourceRoot":"","sources":["../src/renderDiagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmE,qBAAqB,EAA6B,KAAK,uCAAuC,IAAI,4BAA4B,EAAE,KAAK,yBAAyB,EAAE,KAAK,8BAA8B,EAAE,KAAK,yBAAyB,IAAI,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE1V,eAAO,MAAM,2BAA2B,8BAA8B,CAAC;AACvE,eAAO,MAAM,sCAAsC,oCAAoC,CAAC;AACxF,eAAO,MAAM,4BAA4B,qCAAqC,CAAC;AAE/E,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,YAAY,EAAE,gBAAgB,EAC9B,SAAS,UAAQ,GAChB,qBAAqB,CAiBvB;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,yBAAyB,GAAG,IAAI,CAa1F;AAED,wBAAgB,oCAAoC,CAAC,IAAI,EAAE,MAAM,GAAG,4BAA4B,GAAG,IAAI,CAStG;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,8BAA8B;sBAGpD;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;eAiB9B,yBAAyB;EAUvC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Scene-shot capability admission. A source that declares `manifest.sceneShot`
3
+ * opts its `params.scene` into the typed contract from `@cueframe/composition/scene`.
4
+ * Everything here runs before a workspace is written, a bundle is built, or a
5
+ * browser is opened, and every refusal names the stage, the clip and component,
6
+ * the exact field path, and the corrective action.
7
+ */
8
+ import { type SceneShotSpecV2 } from '../composition/scene/index.js';
9
+ import { type ComponentManifestV2, type SceneShotCapabilityV2 } from './contracts.js';
10
+ /** Authored scene contract versions accepted by admission. */
11
+ export declare const SUPPORTED_SCENE_SHOT_VERSIONS: readonly number[];
12
+ /** The authored prop that carries the shot for a scene-shot source. */
13
+ export declare const SCENE_SHOT_PARAM: "scene";
14
+ export declare const SCENE_ADMISSION_STAGE: "admission";
15
+ export interface SceneAdmissionContext {
16
+ componentId?: string;
17
+ clipId?: string;
18
+ }
19
+ /** `['layers', 0, 'width']` → `scene.layers.0.width`; the root issue is `scene`. */
20
+ export declare function sceneShotIssuePath(path: ReadonlyArray<PropertyKey>): string;
21
+ /**
22
+ * Inspects the raw (pre-parse) manifest so an unsupported version or a
23
+ * mismatched graphics api is refused with a typed error rather than a bare
24
+ * schema failure. Returns the capability when declared and supported and null
25
+ * for an ordinary source, and leaves other manifest defects to the strict parse.
26
+ *
27
+ * A `sceneShot` key that is present but unreadable — `{}`, `{ version: '2' }`,
28
+ * `null` — is a declaration this runtime cannot honour, never "not a scene": it
29
+ * is refused here so a malformed declaration can never slip past scene
30
+ * validation and be captured as an ordinary component.
31
+ */
32
+ export declare function assertSceneShotCapabilitySupported(manifest: unknown, context?: SceneAdmissionContext): SceneShotCapabilityV2 | null;
33
+ /**
34
+ * Validates `params.scene` for a source that declared `sceneShot`. Ordinary
35
+ * sources keep their semantics: the param is not inspected. The error carries
36
+ * the exact zod path under `scene`.
37
+ *
38
+ * "Declared a scene shot" is decided by `assertSceneShotCapabilitySupported`,
39
+ * not by the truthiness of `manifest.sceneShot`, so the two halves of admission
40
+ * cannot disagree: a present-but-unreadable declaration (`{}`, `null`,
41
+ * `{ version: '2' }`, or one on a non-WebGL source) is refused here with the
42
+ * same typed error the capability check raises, instead of one half calling it
43
+ * a scene and the other calling it an ordinary component. The call is pure and
44
+ * idempotent, so lanes that already ran the capability check pay nothing.
45
+ */
46
+ export declare function assertSceneShotParamsAdmitted(manifest: Pick<ComponentManifestV2, 'graphics' | 'sceneShot'>, params: Record<string, unknown>, context?: SceneAdmissionContext): SceneShotSpecV2 | null;
47
+ //# sourceMappingURL=sceneAdmission.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sceneAdmission.d.ts","sourceRoot":"","sources":["../src/sceneAdmission.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,EAAwB,KAAK,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAEzF,OAAO,EAEL,KAAK,mBAAmB,EACxB,KAAK,qBAAqB,EAC3B,MAAM,gBAAgB,CAAC;AAExB,8DAA8D;AAC9D,eAAO,MAAM,6BAA6B,EAAE,SAAS,MAAM,EAAuB,CAAC;AAEnF,uEAAuE;AACvE,eAAO,MAAM,gBAAgB,EAAG,OAAgB,CAAC;AAEjD,eAAO,MAAM,qBAAqB,EAAG,WAAoB,CAAC;AAE1D,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAgBD,oFAAoF;AACpF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,MAAM,CAE3E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,OAAO,EACjB,OAAO,GAAE,qBAA0B,GAClC,qBAAqB,GAAG,IAAI,CA+B9B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,IAAI,CAAC,mBAAmB,EAAE,UAAU,GAAG,WAAW,CAAC,EAC7D,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,GAAE,qBAA0B,GAClC,eAAe,GAAG,IAAI,CAgBxB"}
@@ -7,4 +7,12 @@ export interface MaterializedComponentSource {
7
7
  componentDir: string;
8
8
  }
9
9
  export declare function materializeComponentSource(workspaceRoot: string, input: ComponentSource): MaterializedComponentSource;
10
+ /**
11
+ * The immutable source a workspace component was materialized from, or null for
12
+ * a plain workspace component (one authored on disk without a pinned manifest).
13
+ * The render path reads it so every lane that renders a materialized source,
14
+ * including hosts that only hand the workspace over, admits `params.scene`
15
+ * against the manifest the bundle is built from.
16
+ */
17
+ export declare function readMaterializedComponentSource(ws: Workspace, id: string): ComponentSource | null;
10
18
  //# sourceMappingURL=sourceWorkspace.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sourceWorkspace.d.ts","sourceRoot":"","sources":["../src/sourceWorkspace.ts"],"names":[],"mappings":"AAEA,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,EAAqB,KAAK,iBAAiB,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAI9F,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,eAAe,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,eAAe,GACrB,2BAA2B,CAqB7B"}
1
+ {"version":3,"file":"sourceWorkspace.d.ts","sourceRoot":"","sources":["../src/sourceWorkspace.ts"],"names":[],"mappings":"AAEA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC7F,OAAO,EAAqB,KAAK,iBAAiB,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAO9F,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,eAAe,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,0BAA0B,CACxC,aAAa,EAAE,MAAM,EACrB,KAAK,EAAE,eAAe,GACrB,2BAA2B,CAwB7B;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAAC,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAIjG"}
@@ -0,0 +1,191 @@
1
+ /** Chrome's own account of the GPU and backend it selected, over CDP alone: one round trip,
2
+ * no page. This is everything `SystemInfo.getInfo` carries that either lane reads. */
3
+ export interface GpuAttestation {
4
+ /** `gpu.auxAttributes.glRenderer`, or '' when the browser did not report one. */
5
+ renderer: string;
6
+ /** `gpu.featureStatus`, keyed by Chrome's feature names (`webgl`, `gpu_compositing`, ...). */
7
+ featureStatus: Record<string, string>;
8
+ /** Canonical exposed GPU/device/driver facts, or null when Chrome exposes none. */
9
+ gpuIdentity: string | null;
10
+ }
11
+ /**
12
+ * Chrome's attestation plus what a page in this browser can actually allocate.
13
+ *
14
+ * A separate type from `GpuAttestation`, and read by a separate function, because measuring the
15
+ * limit costs a page: `MAX_TEXTURE_SIZE` exists only inside a GL context, so it cannot be had
16
+ * without opening one. A lane that does not need WebGL must not pay for it, and — more to the
17
+ * point — must not be able to hold a half-measured attestation that a `null` limit would make
18
+ * indistinguishable from a host with no WebGL2 at all.
19
+ */
20
+ export interface WebGlAttestation extends GpuAttestation {
21
+ /**
22
+ * The host's WebGL2 `MAX_TEXTURE_SIZE`, or null when a page in this browser could not create a
23
+ * WebGL2 context at all. Null is a refusal for a scene shot, never a "carry on": the scene
24
+ * renderer is a WebGL2 renderer, so a browser whose pages have no WebGL2 context cannot draw
25
+ * one whatever `featureStatus.webgl` says.
26
+ */
27
+ maxTextureSize: number | null;
28
+ /**
29
+ * The half-float colour extension a page in this browser reports, or null when it reports
30
+ * neither of `HALF_FLOAT_COLOR_TARGET_EXTENSIONS` — and null too when there was no WebGL2
31
+ * context to ask, which `maxTextureSize: null` says on its own.
32
+ *
33
+ * Measured on the same context as the limit above, in the same page, because that is the
34
+ * context whose capabilities the render's own will share.
35
+ */
36
+ halfFloatColorTarget: string | null;
37
+ }
38
+ /**
39
+ * The two extensions that make a half-float colour attachment renderable, either of which is
40
+ * enough. This is the pair three itself tests before choosing `HalfFloatType` for its own
41
+ * intermediates, and the pair the renderer-side gate asks for by name
42
+ * (`@cueframe/animate`'s `scene/focusResources.ts`, `HALF_FLOAT_TARGET_EXTENSIONS`): asking the
43
+ * question the way the renderer asks it is what keeps the answer true of the target it will
44
+ * actually allocate.
45
+ *
46
+ * The list is stated twice, here and there, because the two packages cannot import from each
47
+ * other — this one is bundled for the plain-Node script lane and must stay cheap, and animate
48
+ * does not depend on it. Neither copy may change alone; the renderer-side refusal
49
+ * (`scene_render_target_unsupported`) is the second gate for exactly the case where they have.
50
+ */
51
+ export declare const HALF_FLOAT_COLOR_TARGET_EXTENSIONS: readonly ["EXT_color_buffer_half_float", "EXT_color_buffer_float"];
52
+ /** What one page in the staged browser can allocate: the measurements admission is decided on. */
53
+ export interface WebGlPageLimits {
54
+ maxTextureSize: number;
55
+ /** The first of `HALF_FLOAT_COLOR_TARGET_EXTENSIONS` the context grants, or null for neither. */
56
+ halfFloatColorTarget: string | null;
57
+ }
58
+ /** The part of a Remotion page this probe uses: it evaluates exactly one function, below. */
59
+ export interface ProbePage {
60
+ evaluate(pageFunction: () => WebGlPageLimits | null): Promise<WebGlPageLimits | null>;
61
+ close(): Promise<void>;
62
+ }
63
+ export interface WebGlPolicy {
64
+ /** The GL backend this lane launched the browser with; named in the refusal. */
65
+ backend?: string | null;
66
+ /** True under `CUEFRAME_RENDER_ACCELERATION=hardware`, which forbids software WebGL. */
67
+ hardware?: boolean;
68
+ }
69
+ /**
70
+ * Opening the one page the limits are measured in, in the shape Remotion's browser handle offers
71
+ * it. Typed on its own because it is the capability only the WebGL half of this probe needs, and
72
+ * the capability sets are what the two halves are split along.
73
+ */
74
+ export type ProbePageOpener = (options: {
75
+ context: () => null;
76
+ logLevel: 'error';
77
+ indent: false;
78
+ pageIndex: number;
79
+ onBrowserLog: null;
80
+ onLog: () => void;
81
+ }) => Promise<ProbePage>;
82
+ /**
83
+ * The part of a Remotion browser handle this probe uses: the CDP connection Chrome answers
84
+ * `SystemInfo.getInfo` on, and — for the WebGL half alone — one page for the limits it does not
85
+ * report there.
86
+ *
87
+ * The page opener is optional *here* and required by `WebGlProbeBrowser` below, which is what
88
+ * `readWebGlAttestation` narrows to before it opens anything. The split is the capability set each
89
+ * reader actually uses. `readGpuAttestation` makes one CDP round trip and opens nothing, and so
90
+ * does the hardware-compositor path of admission that calls it, so the connection alone is
91
+ * everything that path can be asked to prove. Stating the opener as required on the shared handle
92
+ * type would charge every caller of the shared entry point — `assertComponentBrowserHardware`,
93
+ * which a canvas2d component goes through too — for a capability that path never uses, and the
94
+ * handles callers hold do not all declare it: `render.ts` passes Remotion's browser, whose
95
+ * declaration in the render-harness project is the connection and `close` and no more.
96
+ */
97
+ export interface CdpBrowserConnection {
98
+ connection: {
99
+ send(method: string, params?: unknown): Promise<unknown>;
100
+ };
101
+ newPage?: ProbePageOpener;
102
+ }
103
+ /** A handle carrying both halves: what the WebGL measurement needs, and nothing wider. */
104
+ export interface WebGlProbeBrowser extends CdpBrowserConnection {
105
+ newPage: ProbePageOpener;
106
+ }
107
+ /**
108
+ * Runs inside the probe page. `null` means this browser has no WebGL2 context to measure.
109
+ *
110
+ * The extension names are written out rather than read from
111
+ * `HALF_FLOAT_COLOR_TARGET_EXTENSIONS`, and they have to be: this function is serialized and
112
+ * evaluated in the browser, where nothing in this module exists, so a closure over the constant
113
+ * would arrive as a reference error and the probe would refuse every host. `webglProbe.test.ts`
114
+ * reads this function's own source and checks it asks for exactly the names the refusal names.
115
+ */
116
+ export declare function readWebGlLimitsInPage(): WebGlPageLimits | null;
117
+ /**
118
+ * Chrome's GPU attestation over CDP: the renderer string and the feature status, one round trip.
119
+ *
120
+ * Remotion's transport wraps protocol results in `{value, size}`.
121
+ */
122
+ export declare function readGpuAttestation(browser: CdpBrowserConnection): Promise<GpuAttestation>;
123
+ /**
124
+ * The attestation above, plus what one page in this browser can allocate: `MAX_TEXTURE_SIZE` and
125
+ * half-float colour targets.
126
+ *
127
+ * Two round trips, because Chrome's `SystemInfo.getInfo` carries neither: its `gpu.auxAttributes`
128
+ * reports `glRenderer`, `glVersion`, `maxMsaaSamples` and the rest, and no size limit and no
129
+ * extension registry at all (`apps/studio/scripts/probe-gpu-limits.mjs` prints the key list). Both
130
+ * exist only inside a GL context, so this opens one `about:blank` page — it navigates nowhere and
131
+ * issues no request — asks it once for both, and closes it again. One page, because they are
132
+ * properties of one context: an answer taken from a different context would not be about the
133
+ * context the render draws through.
134
+ *
135
+ * Only a lane that needs WebGL calls this. A canvas2d or hardware-compositor check reads
136
+ * `readGpuAttestation` alone and opens no page.
137
+ */
138
+ export declare function readWebGlAttestation(browser: CdpBrowserConnection): Promise<WebGlAttestation>;
139
+ /**
140
+ * The WebGL admission decision: null when the browser can capture a WebGL scene
141
+ * under this policy, otherwise the refusal message. Naming the missing feature
142
+ * and the selected backend is the point — a lane must never quietly capture a
143
+ * black frame or substitute another api.
144
+ *
145
+ * Four ways to fail, all closed:
146
+ * - the browser does not attest `webgl`, or attests it off;
147
+ * - it runs WebGL in software under an acceleration policy that forbids that;
148
+ * - a page in it has no WebGL2 context, or reports a `MAX_TEXTURE_SIZE` below the shadow map
149
+ * the scene renderer may allocate (`STUDIO_SHADOW_MAP_BUDGET`). The renderer does not clamp:
150
+ * a map spread over fewer texels than it was tuned for is a different picture, and a request
151
+ * over the host's limit is a GL error mid-render rather than a refusal before one. So the
152
+ * refusal happens here, at admission, with both numbers named;
153
+ * - a page in it grants neither half-float colour extension. Every scene shot's world — in
154
+ * focus or not — is rasterized into a half-float colour target and composited out of it, so
155
+ * this is a capability of the shot rather than of an optional effect, and eight-bit linear is
156
+ * not a near-enough substitute (stored as `round(L * 255)` it collapses sRGB codes 16-24 onto
157
+ * one or two levels, which is where a dark product-UI gradient lives). The renderer refuses
158
+ * too, typed `scene_render_target_unsupported`, and that gate stays: it is what catches a host
159
+ * whose page-level answer and whose render-time answer disagree. But it fires in the browser
160
+ * at the first drawn frame, after a capture has been staged and paid for, so the decision
161
+ * belongs here as well — before capture, naming the extensions.
162
+ */
163
+ export declare function webGlRefusal(attestation: WebGlAttestation, policy?: WebGlPolicy): string | null;
164
+ /**
165
+ * What a host that passed `webGlRefusal` attested about itself, in the shape a receipt records.
166
+ *
167
+ * This exists so a lane can state the host it was admitted on instead of leaving the measurement
168
+ * inside a decision nobody can cite afterwards: `maxTextureSize` in particular is measured once,
169
+ * before the first frame, and is otherwise unrecoverable from the artifact.
170
+ *
171
+ * It is NOT part of any render identity or cache key, on either lane, and the reason is the same
172
+ * one that keeps the limit off `ComponentRendererConfigV2` (contracts.ts): every host that clears
173
+ * `STUDIO_SHADOW_MAP_BUDGET` draws the identical frame, so a host reporting 16384 and one
174
+ * reporting 8192 would key differently while producing the same bytes — splitting the identity,
175
+ * and evicting correct artifacts, on a difference the render cannot see. What the limit governs is
176
+ * admission, and below it there is no render to key.
177
+ *
178
+ * Only call it on an admitted host: `maxTextureSize` and `halfFloatColorTarget` are `null`
179
+ * exactly when `webGlRefusal` refused, so a null in either would mean a receipt was being written
180
+ * for a shot that never should have been captured. The callers narrow them (component-runtime
181
+ * parses this through `ComponentHostAttestationV2`, which rejects both) rather than papering over
182
+ * it.
183
+ */
184
+ export declare function admittedHost(attestation: WebGlAttestation, policy?: WebGlPolicy): {
185
+ webgl: string;
186
+ renderer: string;
187
+ maxTextureSize: number | null;
188
+ halfFloatColorTarget: string | null;
189
+ glBackend: string;
190
+ };
191
+ //# sourceMappingURL=webglProbe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webglProbe.d.ts","sourceRoot":"","sources":["../src/webglProbe.ts"],"names":[],"mappings":"AAqBA;sFACsF;AACtF,MAAM,WAAW,cAAc;IAC7B,iFAAiF;IACjF,QAAQ,EAAE,MAAM,CAAC;IACjB,8FAA8F;IAC9F,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,mFAAmF;IACnF,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD;;;;;OAKG;IACH,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B;;;;;;;OAOG;IACH,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,kCAAkC,oEAAqE,CAAC;AAErH,kGAAkG;AAClG,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,iGAAiG;IACjG,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED,6FAA6F;AAC7F,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,eAAe,GAAG,IAAI,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IACtF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,wFAAwF;IACxF,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE;IACtC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,KAAK,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,IAAI,CAAC;IACnB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;AAEzB;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE;QAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;KAAE,CAAC;IACzE,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAED,0FAA0F;AAC1F,MAAM,WAAW,iBAAkB,SAAQ,oBAAoB;IAC7D,OAAO,EAAE,eAAe,CAAC;CAC1B;AA2BD;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,IAAI,eAAe,GAAG,IAAI,CAS9D;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,CAkC/F;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAoDnG;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,gBAAgB,EAAE,MAAM,GAAE,WAAgB,GAAG,MAAM,GAAG,IAAI,CAoBnG;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,gBAAgB,EAAE,MAAM,GAAE,WAAgB,GAAG;IACrF,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,SAAS,EAAE,MAAM,CAAC;CACnB,CAQA"}