@cueframe/kernel 0.2.1 → 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-2PGLNTB7.js → chunk-A74FZCPY.js} +45 -5
  219. package/dist/{chunk-C5SEPOWD.js → chunk-AS5EXBNS.js} +1792 -707
  220. package/dist/{chunk-BKHGL4MB.js → chunk-B3GSTQLR.js} +341 -274
  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-NOEBAV2G.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-Y3QGYASW.js → chunk-SX523NDS.js} +14 -14
  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-KU376ELE.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-6XI57FZZ.js → chunk-YFSBFCXO.js} +1022 -46
  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 +27 -21
  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 +27 -21
  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 +7 -6
  319. package/dist/primitives/version-map.json +5 -2
  320. package/dist/primitives.js +27 -20
  321. package/dist/render-harness/cardAssetAdmission.js +2 -2
  322. package/dist/render-harness/renderInputAssets.js +2 -2
  323. package/dist/render-harness.js +876 -126
  324. package/package.json +51 -17
  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-4JRUGT2Y.js +0 -544
  329. package/dist/chunk-5OTQ7M43.js +0 -718
  330. package/dist/chunk-CGHTMZNC.js +0 -6
  331. package/dist/chunk-QBKDEO7J.js +0 -9521
  332. /package/dist/{chunk-H5LMJKZU.js → chunk-JVDUSOYG.js} +0 -0
@@ -0,0 +1,142 @@
1
+ import { evaluateSceneSeparationV2, selectSceneBakeScale, type SceneObjectV2, type SceneChannelV2, type SceneShotSpecV2, type SceneSurfaceBindingV2, type SealedSceneShotPlanV1, type ScenePreparedFontFaceV1 } from '../../composition/scene/index.js';
2
+ import type { SceneBuilderDescriptorRegistryV1, SceneBuilderDescriptorV1, SceneComponentCaptureIntentV1, SceneComponentCaptureDependencyV1, SceneCanonicalJson, SceneBuilderAllocationDescriptorV1, SceneExactRateV1 } from './types.js';
3
+ import { type SceneVerifiedVideoFactsV1 } from '../../composition/scene/index.js';
4
+ export type ScenePlanRefusalCode = 'scene_builder_descriptor_unavailable' | 'scene_builder_descriptor_invalid' | 'scene_component_facts_missing' | 'scene_component_capture_invalid' | 'scene_image_facts_missing' | 'scene_video_facts_missing' | 'scene_budget_exceeded' | 'scene_evaluated_value_invalid' | 'scene_plan_output_mismatch' | 'scene_reference_aspect_mismatch' | 'scene_brand_unresolved' | 'scene_material_role_unsupported' | 'scene_material_type_mismatch' | 'scene_font_unavailable';
5
+ export declare class ScenePlanRefusal extends Error {
6
+ readonly code: ScenePlanRefusalCode;
7
+ readonly path: string;
8
+ readonly detail: Readonly<Record<string, unknown>>;
9
+ constructor(code: ScenePlanRefusalCode, path: string, message: string, detail?: Readonly<Record<string, unknown>>);
10
+ }
11
+ export interface ScenePlanOutputV1 {
12
+ width: number;
13
+ height: number;
14
+ fps: SceneExactRateV1;
15
+ durationInFrames: number;
16
+ }
17
+ export interface SceneComponentPreparationFactsV1 {
18
+ durationInFrames: number;
19
+ runtimeIdentity: string;
20
+ dependencyIdentity: string;
21
+ seed: string;
22
+ params: SceneComponentCaptureIntentV1['params'];
23
+ assetBindings: SceneComponentCaptureIntentV1['assetBindings'];
24
+ brandFacts: SceneComponentCaptureIntentV1['brandFacts'];
25
+ fontFacts: SceneComponentCaptureIntentV1['fontFacts'];
26
+ mediaFacts: SceneComponentCaptureIntentV1['mediaFacts'];
27
+ requestedGlBackend: string;
28
+ rasterAffectingFlags: SceneComponentCaptureIntentV1['rasterAffectingFlags'];
29
+ }
30
+ export interface PreparedSceneSurfaceV1 {
31
+ path: string;
32
+ authoredObjectId: string;
33
+ slot: string;
34
+ binding: SceneSurfaceBindingV2;
35
+ descriptor: SceneBuilderDescriptorV1['surfaceSlots'][number];
36
+ captureIntent?: SceneComponentCaptureIntentV1;
37
+ bakeScale?: 2 | 3;
38
+ bakeScaleReason?: 'declared' | 'default-sufficient' | 'raised-by-resolution-check';
39
+ resolutionCheck?: ReturnType<typeof selectSceneBakeScale>;
40
+ }
41
+ export interface PreparedSceneObjectV1 {
42
+ authoredId: string;
43
+ parentId: string | null;
44
+ kind: SceneObjectV2['kind'];
45
+ builder: SceneBuilderDescriptorV1 | null;
46
+ parts: readonly {
47
+ id: string;
48
+ partId: string;
49
+ materialRole: string;
50
+ triangles: number;
51
+ mounted: boolean;
52
+ }[];
53
+ }
54
+ export interface PreparedSceneShotPreflightV1 {
55
+ version: 1;
56
+ scene: SceneShotSpecV2;
57
+ output: ScenePlanOutputV1;
58
+ cameraIdentity: {
59
+ position: readonly [number, number, number];
60
+ fov: number;
61
+ near: number;
62
+ far: number;
63
+ };
64
+ /** Serializable authored motion retained for frame evaluation; the final-frame hold is D-1. */
65
+ motion: {
66
+ channels: SceneChannelV2[];
67
+ contentDurationInFrames: number;
68
+ finalContentFrame: number;
69
+ cameraClipPlanes: readonly {
70
+ near: number;
71
+ far: number;
72
+ }[];
73
+ };
74
+ objects: PreparedSceneObjectV1[];
75
+ surfaces: PreparedSceneSurfaceV1[];
76
+ separation: ReturnType<typeof evaluateSceneSeparationV2>;
77
+ rigIdentity: SceneCanonicalJson;
78
+ rigAllocations: readonly SceneBuilderAllocationDescriptorV1[];
79
+ fonts: readonly ScenePreparedFontFaceV1[];
80
+ }
81
+ export interface SceneRigPreparationFactsV1 {
82
+ identity: SceneCanonicalJson;
83
+ allocations: readonly SceneBuilderAllocationDescriptorV1[];
84
+ }
85
+ export interface SceneShotWorldBoundsV1 {
86
+ minX: number;
87
+ maxX: number;
88
+ minY: number;
89
+ maxY: number;
90
+ minZ: number;
91
+ maxZ: number;
92
+ }
93
+ export interface PrepareSceneShotPreflightArgsV1 {
94
+ authoredScene: unknown;
95
+ output: ScenePlanOutputV1;
96
+ descriptors: SceneBuilderDescriptorRegistryV1;
97
+ resolveComponentFacts?: (binding: Extract<SceneSurfaceBindingV2, {
98
+ source: 'component';
99
+ }>, path: string) => SceneComponentPreparationFactsV1 | null;
100
+ resolveCameraClipPlanes: (scene: SceneShotSpecV2, frame: number, durationInFrames: number) => {
101
+ near: number;
102
+ far: number;
103
+ };
104
+ resolveRigFacts: (scene: SceneShotSpecV2, worldBounds: SceneShotWorldBoundsV1) => SceneRigPreparationFactsV1 | null;
105
+ fonts?: readonly ScenePreparedFontFaceV1[];
106
+ }
107
+ export declare function prepareSceneShotPreflightV1(args: PrepareSceneShotPreflightArgsV1): PreparedSceneShotPreflightV1;
108
+ export declare function assertScenePlanOutputV1(plan: Pick<PreparedSceneShotPreflightV1, 'output'>, requested: ScenePlanOutputV1): void;
109
+ export interface SceneVerifiedImageV1 {
110
+ handle: string;
111
+ mimeType: 'image/png' | 'image/jpeg' | 'image/webp';
112
+ byteLength: number;
113
+ width: number;
114
+ height: number;
115
+ decodedSha256: string;
116
+ }
117
+ export type { ScenePlanAllocationLedgerV1, SceneSealedSurfaceV1 as SealedSceneSurfaceV1, SealedSceneShotPlanV1 } from '../../composition/scene/index.js';
118
+ export interface SceneVerifiedImageLeaseV1 {
119
+ image: SceneVerifiedImageV1;
120
+ release(): Promise<void>;
121
+ }
122
+ export interface SceneVerifiedVideoLeaseV1 {
123
+ video: SceneVerifiedVideoFactsV1;
124
+ release(): Promise<void>;
125
+ }
126
+ export interface RealizeSceneShotPlanDepsV1 {
127
+ capture: SceneComponentCaptureDependencyV1;
128
+ resolveImage: (binding: Extract<SceneSurfaceBindingV2, {
129
+ source: 'image';
130
+ }>, path: string) => Promise<SceneVerifiedImageLeaseV1 | null>;
131
+ resolveVideo?: (binding: Extract<SceneSurfaceBindingV2, {
132
+ source: 'video';
133
+ }>, path: string, signal?: AbortSignal) => Promise<SceneVerifiedVideoLeaseV1 | null>;
134
+ sha256(value: string): Promise<string>;
135
+ signal?: AbortSignal;
136
+ }
137
+ export interface SealedSceneShotPlanLeaseV1 {
138
+ plan: SealedSceneShotPlanV1;
139
+ /** Idempotently releases image handles and session leases after the consuming render ends. */
140
+ cleanup(): Promise<void>;
141
+ }
142
+ export declare function realizeSceneShotPlanV1(preflight: PreparedSceneShotPreflightV1, deps: RealizeSceneShotPlanDepsV1): Promise<SealedSceneShotPlanLeaseV1>;
@@ -0,0 +1,57 @@
1
+ import { type SceneShotSpecV2, type SceneSourceResolver, type ScenePreparedFontFaceV1 } from '../../composition/scene/index.js';
2
+ import type { Composition } from '../../composition/validators/index.js';
3
+ import { type PrepareSceneShotPreflightArgsV1, type RealizeSceneShotPlanDepsV1, type SceneComponentPreparationFactsV1 } from './sceneShotPlan.js';
4
+ import type { CompositionOverlay, RenderInput } from './types.js';
5
+ export declare const SCENE_SHOT_PREPARATION_STAGE: "preparation";
6
+ export declare const SCENE_SHOT_PARAM: "scene";
7
+ export declare const SCENE_SHOT_IMAGE_MIME_TYPES: readonly ["image/png", "image/jpeg", "image/webp"];
8
+ export declare const SCENE_SHOT_VIDEO_MIME_TYPES: readonly ["video/mp4", "video/webm"];
9
+ export interface SceneShotPreparationLocator {
10
+ stage: typeof SCENE_SHOT_PREPARATION_STAGE;
11
+ clipId: string;
12
+ componentId?: string;
13
+ path: string;
14
+ }
15
+ export declare function readSceneShotManifest(manifest: unknown, context: {
16
+ clipId: string;
17
+ componentId?: string;
18
+ }): {
19
+ version: 2;
20
+ api: 'webgl';
21
+ assets: Record<string, unknown>;
22
+ } | null;
23
+ export declare function sceneSourceResolverForPinnedRows(rows: NonNullable<RenderInput['componentSources']>): SceneSourceResolver;
24
+ export declare function assertSceneClipShapes(composition: Composition, context: {
25
+ fps: number;
26
+ resolveSource: SceneSourceResolver;
27
+ }): void;
28
+ export interface ResolvedScenePreparationFactsV1 {
29
+ scene: SceneShotSpecV2;
30
+ componentFactsByPath: Readonly<Record<string, SceneComponentPreparationFactsV1>>;
31
+ fonts: readonly ScenePreparedFontFaceV1[];
32
+ }
33
+ /** Resolves only schema-declared brand sites and seals exact outer text faces from host bytes. */
34
+ export declare function resolvePinnedSceneFactsV1(authored: SceneShotSpecV2, context: {
35
+ input: RenderInput;
36
+ overlay: CompositionOverlay;
37
+ }, componentFactsByPath?: Readonly<Record<string, SceneComponentPreparationFactsV1>>): ResolvedScenePreparationFactsV1;
38
+ export interface SceneShotPreparationDependenciesV1 {
39
+ descriptors: PrepareSceneShotPreflightArgsV1['descriptors'];
40
+ resolveComponentFacts?(scene: SceneShotSpecV2, context: {
41
+ input: RenderInput;
42
+ overlay: CompositionOverlay;
43
+ }): Promise<Readonly<Record<string, SceneComponentPreparationFactsV1>>>;
44
+ componentFactsByPath?: Readonly<Record<string, SceneComponentPreparationFactsV1>>;
45
+ resolveRigFacts: PrepareSceneShotPreflightArgsV1['resolveRigFacts'];
46
+ resolveCameraClipPlanes: PrepareSceneShotPreflightArgsV1['resolveCameraClipPlanes'];
47
+ realization: RealizeSceneShotPlanDepsV1;
48
+ realizationForOverlay?(context: {
49
+ input: RenderInput;
50
+ overlay: CompositionOverlay;
51
+ }): RealizeSceneShotPlanDepsV1;
52
+ }
53
+ export interface PreparedRenderInputLeaseV1 {
54
+ input: RenderInput;
55
+ cleanup(): Promise<void>;
56
+ }
57
+ export declare function prepareSceneShotRenderInput(input: RenderInput, dependencies: SceneShotPreparationDependenciesV1): Promise<PreparedRenderInputLeaseV1>;
@@ -0,0 +1,21 @@
1
+ import { type SceneObjectV2, type SceneSlabV2 } from '../../composition/scene/index.js';
2
+ import type { SceneBuilderAllocationDescriptorV1, SceneBuilderDescriptorRegistryV1, SceneBuilderDescriptorV1 } from './types.js';
3
+ /** The production builder mounts the unlit content face this many reference pixels past +t/2. */
4
+ export declare const SCENE_SLAB_CONTENT_OFFSET_V1 = 0.6;
5
+ export declare function sceneSlabBuilderDescriptorV1(slab: SceneSlabV2, allocations: readonly SceneBuilderAllocationDescriptorV1[], measuredBodyTriangles: number): SceneBuilderDescriptorV1;
6
+ /** W4 supports the already-built slab. Every other preset remains an explicit W5 descriptor gap. */
7
+ export declare function createSceneSlabDescriptorRegistryV1(factsFor: (slab: SceneSlabV2) => {
8
+ allocations: readonly SceneBuilderAllocationDescriptorV1[];
9
+ measuredBodyTriangles: number;
10
+ }): SceneBuilderDescriptorRegistryV1;
11
+ /** Registry seam whose production supplier constructs and measures every supported preset. */
12
+ export declare function createSceneBuilderDescriptorRegistryV1(resolveDescriptor: (object: SceneObjectV2, context?: {
13
+ referenceSize: {
14
+ width: number;
15
+ height: number;
16
+ };
17
+ output: {
18
+ width: number;
19
+ height: number;
20
+ };
21
+ }) => SceneBuilderDescriptorV1 | null): SceneBuilderDescriptorRegistryV1;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Per-track projection: turning one `Track` of the wire composition into the render input's
3
+ * clips, overlays, audio tracks and effects.
4
+ *
5
+ * Split out of `compositionRender.ts`, which now holds only the whole-composition assembly that
6
+ * calls these — the format table, the merged caption-face guard, `compositionToRenderInput` and
7
+ * `assembleRenderInput`. The projectors are a closed set with their own shared vocabulary (the
8
+ * frame lattice, the visual identity, the src-url resolution, the overlay transition fields), and
9
+ * that vocabulary is private to them: nothing outside this file needs `timelineSpanFrames` or
10
+ * `overlayTransitionFields`, and every one of them wants all of it. This is a move, not a rewrite:
11
+ * the projections, the refusals and their paths are unchanged.
12
+ */
13
+ import type { Track, TimelineClip as WireClip } from "../../composition/validators/index.js";
14
+ import type { CompositionAudioTrack, CompositionClip, CompositionEffect, CompositionOverlay } from "./types.js";
15
+ import type { TrajectoryData } from "../../composition/reframe/trajectory.js";
16
+ export declare function playableSpans(trimStart: number, trimEnd: number, excluded: Array<{
17
+ start: number;
18
+ end: number;
19
+ }> | undefined): Array<{
20
+ start: number;
21
+ end: number;
22
+ }>;
23
+ export declare function projectMediaTrack(track: Track, trackIndex: number, trackCount: number, fps: number, srcUrls: Record<string, string>, trajectoryUrls?: Record<string, string>, coViewUrls?: Record<string, string>, trajectories?: Record<string, TrajectoryData>): {
24
+ clips: CompositionClip[];
25
+ audio: CompositionAudioTrack[];
26
+ effects: CompositionEffect[];
27
+ };
28
+ export declare function projectImageTrack(track: Track, trackIndex: number, trackCount: number, fps: number, srcUrls: Record<string, string>): {
29
+ clips: CompositionClip[];
30
+ effects: CompositionEffect[];
31
+ };
32
+ export declare function projectOverlayTrack(track: Track, trackIndex: number, trackCount: number, fps: number, alphaUrls?: Record<string, string>, isSceneClip?: (clip: WireClip) => boolean): CompositionOverlay[];
33
+ export declare function projectEffectTrack(track: Track, trackIndex: number, trackCount: number, fps: number): CompositionEffect[];
@@ -1,6 +1,8 @@
1
1
  import type { EffectTarget } from '../../composition/ops/index.js';
2
2
  import type { ResolvedBrandKit } from '../../composition/projection/index.js';
3
3
  import type { Reframe } from '../../composition/reframe/index.js';
4
+ import type { SceneBuilderDescriptorV1, SceneExactRateV1, SceneObjectV2, ScenePreparedJson, SealedSceneShotPlanV1 } from '../../composition/scene/index.js';
5
+ export type { SceneBuilderAllocationDescriptorV1, SceneBuilderDescriptorV1, SceneBuilderPartDescriptorV1, SceneBuilderSlotDescriptorV1, SceneExactRateV1, } from '../../composition/scene/index.js';
4
6
  import type { TrajectoryData } from '../../composition/reframe/trajectory.js';
5
7
  import type { CaptionWord as WireCaptionWord, CaptionStyle as WireCaptionStyle } from '../../composition/validators/index.js';
6
8
  export type OverlayTemplate = 'custom' | 'gif' | 'image' | 'lottie' | (string & {});
@@ -76,6 +78,39 @@ export interface CompositionClip extends ProjectedVisualIdentity {
76
78
  packedUrl?: string;
77
79
  coViewDebug?: boolean;
78
80
  }
81
+ /** One text face a scene shot uses, sealed at preparation: family, weight and style are exact. */
82
+ export interface SceneShotSealedFontFace {
83
+ family: string;
84
+ weight: number;
85
+ style: 'normal' | 'italic';
86
+ /** The sealed font asset of a custom (brand) face; vendored faces carry none. */
87
+ url?: string;
88
+ /** Scene paths of the text layers that use the face (`layers.N`). */
89
+ paths: string[];
90
+ }
91
+ /** The admitted image bound to one scene slot, by content facts only; the handle stays on `componentSources`. */
92
+ export interface SceneShotSlotBindingV1 {
93
+ mimeType: string;
94
+ width: number;
95
+ height: number;
96
+ /** Scene paths that reference the slot (`layers.N.screen`, `layers.N.image`). */
97
+ paths: string[];
98
+ }
99
+ /**
100
+ * The internal scene marker preparation sets on a projected component overlay whose pinned source
101
+ * declares `sceneShot: { version: 2 }`. It carries the resolved runtime scene (brand references
102
+ * already resolved), the sealed faces, the slot bindings, the source identity and the seed. Root
103
+ * consumes it only when it agrees with the pinned source manifest; the browser never re-resolves.
104
+ */
105
+ export interface SceneShotOverlayMarkerV1 {
106
+ version: 1;
107
+ authoredSceneVersion: 2;
108
+ componentId: string;
109
+ sourceVersionId: string;
110
+ sealSha256: string;
111
+ contentDurationInFrames: number;
112
+ plan: SealedSceneShotPlanV1;
113
+ }
79
114
  export interface CompositionOverlay extends ProjectedVisualIdentity {
80
115
  id: string;
81
116
  template: OverlayTemplate;
@@ -83,6 +118,13 @@ export interface CompositionOverlay extends ProjectedVisualIdentity {
83
118
  startFrame: number;
84
119
  durationInFrames: number;
85
120
  params: OverlayParams;
121
+ componentId?: string;
122
+ sourceVersionId?: string;
123
+ /** Host-owned deterministic seed, kept outside component params and prepared scene seals. */
124
+ renderSeed?: string;
125
+ componentAssets?: Record<string, unknown>;
126
+ /** Set by scene preparation for scene-shot sources; absent on every other overlay. */
127
+ sceneShot?: SceneShotOverlayMarkerV1;
86
128
  zPlane?: 'front' | 'behind-subject';
87
129
  /** Canonical packed clip that owns a behind-subject overlay. */
88
130
  hostClipId?: string;
@@ -150,6 +192,8 @@ export interface RenderInput {
150
192
  width: number;
151
193
  height: number;
152
194
  fps: number;
195
+ /** Authoritative exact rate transport; required for non-integer scene-shot outputs. */
196
+ fpsRational?: SceneExactRateV1;
153
197
  durationInFrames: number;
154
198
  platform?: string;
155
199
  outputWidth?: number;
@@ -157,4 +201,102 @@ export interface RenderInput {
157
201
  crf?: number;
158
202
  watermark?: boolean;
159
203
  brandKit?: ResolvedBrandKit;
204
+ componentSources?: Record<string, {
205
+ sourceVersionId: string;
206
+ source: {
207
+ version: 2;
208
+ componentId: string;
209
+ tsxSource: string;
210
+ manifest: unknown;
211
+ };
212
+ assets: Record<string, {
213
+ handle: string;
214
+ kind: 'image' | 'video' | 'audio' | 'data';
215
+ mimeType: string;
216
+ width?: number;
217
+ height?: number;
218
+ durationSec?: number;
219
+ frameRate?: number;
220
+ }>;
221
+ }>;
222
+ }
223
+ export type SceneCanonicalJson = ScenePreparedJson;
224
+ /** Facts known before a browser is admitted. Actual host facts are deliberately absent. */
225
+ export interface SceneComponentCaptureIntentV1 {
226
+ componentId: string;
227
+ sourceVersionId: string;
228
+ params: SceneCanonicalJson;
229
+ assetBindings: SceneCanonicalJson;
230
+ layoutWidth: number;
231
+ layoutHeight: number;
232
+ bakeScale: 2 | 3;
233
+ captureFrame: number;
234
+ durationInFrames: number;
235
+ fps: SceneExactRateV1;
236
+ seed: string;
237
+ brandFacts: SceneCanonicalJson;
238
+ fontFacts: SceneCanonicalJson;
239
+ mediaFacts: SceneCanonicalJson;
240
+ rasterWidth: number;
241
+ rasterHeight: number;
242
+ /** Expected actual page DPR for this capture; verified against the session observation. */
243
+ expectedDeviceScaleFactor: 2 | 3;
244
+ runtimeIdentity: string;
245
+ dependencyIdentity: string;
246
+ requestedGlBackend: string;
247
+ rasterAffectingFlags: SceneCanonicalJson;
248
+ }
249
+ /** Observations from the exact admitted browser session that performs the capture. */
250
+ export interface SceneCaptureSessionAttestationV1 {
251
+ /** Loaded receipts checked against the declarative intent before identity completion. */
252
+ loadedRuntimeIdentity: string;
253
+ loadedDependencyIdentity: string;
254
+ observedRasterAffectingFlags: SceneCanonicalJson;
255
+ browserProduct: string;
256
+ browserVersion: string;
257
+ browserExecutableSha256: string;
258
+ headless: boolean;
259
+ os: string;
260
+ arch: string;
261
+ deviceScaleFactor: number;
262
+ colorProfile: string;
263
+ actualGlBackend: string;
264
+ actualRenderer: string;
265
+ /** Null means the admitted session could not resolve an effective GPU identity. */
266
+ gpuIdentity: string | null;
267
+ }
268
+ export interface SceneVerifiedPngV1 {
269
+ handle: string;
270
+ mimeType: 'image/png';
271
+ byteLength: number;
272
+ width: number;
273
+ height: number;
274
+ decodedSha256: string;
275
+ }
276
+ export interface SceneComponentCaptureResultV1 {
277
+ attestation: SceneCaptureSessionAttestationV1;
278
+ png: SceneVerifiedPngV1;
279
+ cacheScope: 'session';
280
+ }
281
+ export interface SceneComponentCaptureSessionV1 {
282
+ capture(intent: SceneComponentCaptureIntentV1, signal?: AbortSignal): Promise<SceneComponentCaptureResultV1>;
283
+ close(): Promise<void>;
284
+ }
285
+ export interface SceneComponentCaptureDependencyV1 {
286
+ /** Resolve verified/pinned declarative execution facts before launch; contains no host observations. */
287
+ resolveExecutionFacts(source: Pick<SceneComponentCaptureIntentV1, 'componentId' | 'sourceVersionId'>, signal?: AbortSignal): Promise<Pick<SceneComponentCaptureIntentV1, 'runtimeIdentity' | 'dependencyIdentity' | 'requestedGlBackend' | 'rasterAffectingFlags'>>;
288
+ openSession(intent: SceneComponentCaptureIntentV1, signal?: AbortSignal): Promise<SceneComponentCaptureSessionV1>;
289
+ }
290
+ export interface SceneBuilderDescriptorRegistryV1 {
291
+ /** The resolver must return the same kind and facts derived from this fully parsed object state. */
292
+ resolve(object: SceneObjectV2, context?: {
293
+ referenceSize: {
294
+ width: number;
295
+ height: number;
296
+ };
297
+ output: {
298
+ width: number;
299
+ height: number;
300
+ };
301
+ }): SceneBuilderDescriptorV1 | null;
160
302
  }
@@ -457,6 +457,12 @@ export declare const ERROR_CODES: {
457
457
  readonly retryable: false;
458
458
  readonly httpStatus: 409;
459
459
  };
460
+ readonly component_scene_invalid: {
461
+ readonly stage: "validate";
462
+ readonly category: "authoring";
463
+ readonly retryable: false;
464
+ readonly httpStatus: 422;
465
+ };
460
466
  readonly motion_preset_unknown: {
461
467
  readonly stage: "validate";
462
468
  readonly category: "authoring";
@@ -35,6 +35,11 @@ export type AdapterProgressEvent = {
35
35
  };
36
36
  export type OnProgressCallback = (event: AdapterProgressEvent) => void;
37
37
  export interface CuratedToolSetOpts {
38
+ /** Preserve local wire errors (including concurrency receipts) in desktop clients. */
39
+ errorFormat?: (response: {
40
+ status: number;
41
+ text: string;
42
+ }) => string;
38
43
  allowedNames: readonly string[];
39
44
  /**
40
45
  * Execution-surface variants for a curated tool. The public MCP surface uses
@@ -0,0 +1,155 @@
1
+ /**
2
+ * AUTO-GENERATED — do not edit by hand.
3
+ *
4
+ * Sources: packages/composition/src/scene/generated/schema.json (the canonical SceneShotSpecV2
5
+ * JSON schema, itself generated from packages/composition/src/scene/schema.ts), the agent-facing
6
+ * description vendored with it at api/openapi.json#/components/schemas/SceneShotSpecV2, and
7
+ * SCENE_SHOT_EXAMPLES from packages/composition/src/scene/examples.ts.
8
+ * Generator: packages/mcp/scripts/generate-scene-contract.ts
9
+ * Re-run: `pnpm generate:api-consumers` from the repo root.
10
+ *
11
+ * `@cueframe/mcp` cannot depend on `@cueframe/composition`, so the scene contract is copied here
12
+ * rather than imported — by a generator, gated by `pnpm check:api-consumer-drift`, so the copy
13
+ * cannot drift silently. The schema below is the canonical document byte-for-byte, plus the
14
+ * `description` annotation the public contract carries for it; nothing is weakened or restated.
15
+ */
16
+ /** The canonical SceneShotSpecV2 JSON schema, served verbatim at `cueframe://scene-shot`. */
17
+ export declare const SCENE_SHOT_SCHEMA: Readonly<Record<string, unknown>>;
18
+ /** Agent-facing prose kept outside the canonical schema document. */
19
+ export declare const SCENE_SHOT_SCHEMA_DESCRIPTION = "A version-2 scene shot: a self-contained 3D world-object shot that scene.add / scene.update materializes into an ordinary component clip. The shot owns its layers, camera, lighting, backdrop and normalized local animation; the composition owns start, duration, ordering, cuts and transitions. Coordinates are REFERENCE PIXELS: origin at frame centre, +X right, +Y down, +Z toward the viewer. referenceSize must have the SAME aspect ratio as the composition format; mismatch fails instead of cropping. At equal aspect ratio the shot scales uniformly by outputWidth/referenceWidth. A segment's easing belongs to the keyframe it ARRIVES at; the first keyframe has no easing. Authoring limits: 32 layers, 4 devices, 16 distinct image slots, 256 keyframes per channel, 2048 keyframes per shot. Version 2 supports nested groups, procedural slab/page/phone/laptop objects, screen- and world-space text, admitted image/component/video surfaces, fixed photographic and generated studio environments, transparent/solid/linear/radial backdrops, constraints, focus, grain and vignette. Raw HTML, custom shader props, imported GLB models, arbitrary external HDR environments, skeletal animation and physics are refused with an exact field path.";
20
+ /** What each shot in the published example demonstrates, per clip. */
21
+ export declare const SCENE_SHOT_EXAMPLE_SHOTS: readonly [{
22
+ readonly clipId: "shot-world-objects";
23
+ readonly exampleId: "world-objects";
24
+ readonly title: "World objects";
25
+ readonly summary: "Nested satin card and fitted page.";
26
+ readonly slots: readonly ["page"];
27
+ }];
28
+ /**
29
+ * A complete `apply_composition` body: one slab-heavy nested world-object shot on a dedicated
30
+ * scene track, followed by a revision that changes its admitted page asset and duration. The
31
+ * `scene` payload is the canonical example verbatim.
32
+ */
33
+ export declare const SCENE_SHOT_WORLD_OBJECT_BODY: {
34
+ readonly ops: readonly [{
35
+ readonly type: "scene.add";
36
+ readonly clipId: "shot-world-objects";
37
+ readonly newTrack: true;
38
+ readonly startTime: 0;
39
+ readonly duration: 6;
40
+ readonly scene: {
41
+ readonly version: 2;
42
+ readonly referenceSize: {
43
+ readonly width: 1920;
44
+ readonly height: 1080;
45
+ };
46
+ readonly environment: {
47
+ readonly kind: "photographic-studio-v1";
48
+ };
49
+ readonly backdrop: {
50
+ readonly kind: "solid";
51
+ readonly color: "$brand:colors.background";
52
+ };
53
+ readonly layers: readonly [{
54
+ readonly kind: "group";
55
+ readonly id: "cards";
56
+ readonly transform: {
57
+ readonly position: readonly [0, 0, 0];
58
+ readonly rotation: readonly [0, 0, 0];
59
+ readonly scale: 1;
60
+ };
61
+ readonly opacity: 1;
62
+ readonly children: readonly [{
63
+ readonly kind: "slab";
64
+ readonly id: "hero";
65
+ readonly transform: {
66
+ readonly position: readonly [0, 0, 0];
67
+ readonly rotation: readonly [0, 0, 0];
68
+ readonly scale: 1;
69
+ };
70
+ readonly opacity: 1;
71
+ readonly width: 720;
72
+ readonly height: 900;
73
+ readonly thickness: 32;
74
+ readonly cornerRadius: 32;
75
+ readonly edgeRadius: 15;
76
+ readonly finish: "satin";
77
+ readonly surfaces: {
78
+ readonly front: {
79
+ readonly source: "component";
80
+ readonly component: {
81
+ readonly version: 1;
82
+ readonly componentId: "hero-card";
83
+ readonly sourceVersionId: "0000000000000000000000000000000000000000000000000000000000000000";
84
+ };
85
+ readonly captureFrame: 12;
86
+ readonly layout: {
87
+ readonly width: 720;
88
+ readonly height: 900;
89
+ };
90
+ };
91
+ };
92
+ }, {
93
+ readonly kind: "page";
94
+ readonly id: "page";
95
+ readonly transform: {
96
+ readonly position: readonly [760, 0, -20];
97
+ readonly rotation: readonly [0, 0, 0];
98
+ readonly scale: 1;
99
+ };
100
+ readonly opacity: 1;
101
+ readonly width: 640;
102
+ readonly height: 800;
103
+ readonly fit: "contain";
104
+ readonly transparency: "straight";
105
+ readonly depthWrite: true;
106
+ readonly backface: "hidden";
107
+ readonly surfaces: {
108
+ readonly content: {
109
+ readonly source: "image";
110
+ readonly assetSlot: "page";
111
+ };
112
+ };
113
+ }];
114
+ }];
115
+ readonly animation: readonly [{
116
+ readonly target: {
117
+ readonly kind: "layer";
118
+ readonly layerId: "cards";
119
+ };
120
+ readonly property: "rotationY";
121
+ readonly keyframes: readonly [{
122
+ readonly at: 0;
123
+ readonly value: 0;
124
+ }, {
125
+ readonly at: 1;
126
+ readonly value: 18.84955592153876;
127
+ readonly easing: {
128
+ readonly kind: "linear";
129
+ };
130
+ }];
131
+ }];
132
+ readonly post: {
133
+ readonly grain: 0;
134
+ readonly vignette: 0;
135
+ readonly focus: null;
136
+ };
137
+ readonly constraints: readonly [];
138
+ readonly camera: {
139
+ readonly position: readonly [0, 0, 1483.6378065054962];
140
+ readonly rotation: readonly [0, 0, 0];
141
+ readonly fov: 0.6981317007977318;
142
+ };
143
+ };
144
+ readonly assets: {
145
+ readonly page: "<landingPageScreenshotMediaId>";
146
+ };
147
+ }, {
148
+ readonly type: "scene.update";
149
+ readonly clipId: "shot-world-objects";
150
+ readonly duration: 7;
151
+ readonly assets: {
152
+ readonly page: "<updatedLandingPageScreenshotMediaId>";
153
+ };
154
+ }];
155
+ };
@@ -0,0 +1,38 @@
1
+ export declare const SCENE_SHOT_RESOURCE_URI = "cueframe://scene-shot";
2
+ export declare const SCENE_SHOT_RESOURCE_DESCRIPTION: string;
3
+ /** The V2 capability envelope, stated as the two lists an agent has to act on. */
4
+ export declare const SCENE_SHOT_LIMITS: {
5
+ readonly supported: readonly ["nested groups and procedural slab, page, phone and laptop world objects", "admitted PNG/JPEG/WebP images, captured components and frame-addressed video surfaces", "procedural phone and laptop devices, with a laptop open angle in [0,180] degrees", "typed text in screen space or world space, with per-run colours for two-colour type", "one camera and either generated studio lighting or the fixed photographic studio environment", "a transparent, solid, linear-gradient or radial-gradient backdrop", "world-space focus, grain and vignette", "JSON numeric animation channels over camera, layer transform/opacity, laptop openAngle, environment intensity and focus"];
6
+ readonly notSupportedInV2: readonly ["raw HTML in a shot — a page is an ADMITTED SCREENSHOT; live HTML is never rasterized or injected", "custom shader props — no shader source enters through the scene spec", "imported models (GLB and friends) — devices are procedural only", "arbitrary external HDR environments — use the admitted fixed photographic rig or generated studio", "skeletal animation and physics", "animating topology, asset bindings, text content, font properties, device kind or colours — those are static within a shot; author a revised spec instead", "source trim/slip of generated animation — a resized clip resamples the same normalized channels"];
7
+ readonly authoringLimits: {
8
+ readonly layers: 32;
9
+ readonly devices: 4;
10
+ readonly distinctImageSlots: 16;
11
+ readonly keyframesPerChannel: 256;
12
+ readonly keyframesPerShot: 2048;
13
+ readonly note: "Oversized resources are refused with a path and a corrective message; nothing is silently resized to fit a budget.";
14
+ };
15
+ };
16
+ /** The behaviours agents most often get wrong, each phrased as the rule that fails the request. */
17
+ export declare const SCENE_SHOT_RULES: {
18
+ readonly imageFormats: string;
19
+ readonly referenceAspect: string;
20
+ readonly screenVersusWorldText: string;
21
+ readonly lightingAndColour: string;
22
+ readonly timelineOwnership: string;
23
+ readonly animationEasing: string;
24
+ readonly focusIsPerPixelDepth: string;
25
+ readonly globalEffectScopeGap: string;
26
+ readonly catalogDiscovery: string;
27
+ readonly brandTokens: string;
28
+ readonly failures: string;
29
+ };
30
+ /**
31
+ * Every `$brand:` token the scene schema admits, grouped by family, read straight out of the
32
+ * SERVED schema's enums — i.e. out of the canonical `scene/schema.json` this resource carries.
33
+ * Never hand-listed: the composition contract's exported token constants are the source, and they
34
+ * reach here through schema.ts → schema.json → the generated copy in `./generated/sceneContract`.
35
+ */
36
+ export declare function sceneBrandTokens(schema: unknown): Record<string, string[]>;
37
+ /** The full discovery document served at `cueframe://scene-shot`. */
38
+ export declare function sceneShotContract(): Record<string, unknown>;