@cueframe/kernel 0.2.2 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (335) hide show
  1. package/dist/_members/animate/index.d.ts +8 -2
  2. package/dist/_members/animate/layout/FlexLayout.d.ts +69 -0
  3. package/dist/_members/animate/layout/fit.d.ts +44 -0
  4. package/dist/_members/animate/layout/index.d.ts +3 -0
  5. package/dist/_members/animate/layout/solveFlex.d.ts +70 -0
  6. package/dist/_members/animate/media/MediaTileScene.d.ts +65 -0
  7. package/dist/_members/animate/media/recipes.d.ts +61 -0
  8. package/dist/_members/animate/scene/FocusPass.d.ts +76 -0
  9. package/dist/_members/animate/scene/UnlitPlane.d.ts +45 -0
  10. package/dist/_members/animate/scene/__oracle__/cssProjection.d.ts +24 -0
  11. package/dist/_members/animate/scene/assets.d.ts +21 -0
  12. package/dist/_members/animate/scene/backdrop.d.ts +7 -0
  13. package/dist/_members/animate/scene/coordinates.d.ts +58 -0
  14. package/dist/_members/animate/scene/deviceOpacity.d.ts +18 -0
  15. package/dist/_members/animate/scene/errors.d.ts +14 -0
  16. package/dist/_members/animate/scene/finishing.d.ts +69 -0
  17. package/dist/_members/animate/scene/finishingMath.d.ts +60 -0
  18. package/dist/_members/animate/scene/finishingPass.d.ts +35 -0
  19. package/dist/_members/animate/scene/focusBlur.d.ts +56 -0
  20. package/dist/_members/animate/scene/focusResources.d.ts +190 -0
  21. package/dist/_members/animate/scene/focusShaders.d.ts +68 -0
  22. package/dist/_members/animate/scene/fontReadiness.d.ts +27 -0
  23. package/dist/_members/animate/scene/grainNoise.d.ts +118 -0
  24. package/dist/_members/animate/scene/index.d.ts +19 -0
  25. package/dist/_members/animate/scene/internal.d.ts +29 -0
  26. package/dist/_members/animate/scene/planeFit.d.ts +46 -0
  27. package/dist/_members/animate/scene/preparedWorldText.d.ts +25 -0
  28. package/dist/_members/animate/scene/rasterCache.d.ts +30 -0
  29. package/dist/_members/animate/scene/rasterReadiness.d.ts +33 -0
  30. package/dist/_members/animate/scene/readiness.d.ts +69 -0
  31. package/dist/_members/animate/scene/redraw.d.ts +10 -0
  32. package/dist/_members/animate/scene/render.d.ts +9 -0
  33. package/dist/_members/animate/scene/scaling.d.ts +13 -0
  34. package/dist/_members/animate/scene/text.d.ts +40 -0
  35. package/dist/_members/animate/scene/textLayout.d.ts +78 -0
  36. package/dist/_members/animate/scene/textureImageSize.d.ts +4 -0
  37. package/dist/_members/animate/scene/useSceneImageTexture.d.ts +21 -0
  38. package/dist/_members/animate/scene/useWorldTextTexture.d.ts +21 -0
  39. package/dist/_members/animate/scene/v2/MeasuredPlaneGeometry.d.ts +7 -0
  40. package/dist/_members/animate/scene/v2/PhotographicStudioRig.d.ts +11 -0
  41. package/dist/_members/animate/scene/v2/PreparedSceneShotV1.d.ts +12 -0
  42. package/dist/_members/animate/scene/v2/SceneShotV2.d.ts +59 -0
  43. package/dist/_members/animate/scene/v2/builders.d.ts +170 -0
  44. package/dist/_members/animate/scene/v2/finishes.d.ts +152 -0
  45. package/dist/_members/animate/scene/v2/lighting.d.ts +119 -0
  46. package/dist/_members/animate/scene/v2/observePmremTargets.d.ts +4 -0
  47. package/dist/_members/animate/scene/v2/preparationFacts.d.ts +32 -0
  48. package/dist/_members/animate/scene/v2/preparedSurface.d.ts +17 -0
  49. package/dist/_members/animate/scene/v2/projectedResolution.d.ts +2 -0
  50. package/dist/_members/animate/scene/v2/renderTargetObserver.d.ts +5 -0
  51. package/dist/_members/animate/scene/v2/runtimeAllocations.d.ts +55 -0
  52. package/dist/_members/animate/scene/v2/shadow.d.ts +23 -0
  53. package/dist/_members/animate/scene/v2/slabGeometry.d.ts +134 -0
  54. package/dist/_members/animate/scene/v2/slots.d.ts +73 -0
  55. package/dist/_members/animate/scene/v2/videoBinding.d.ts +39 -0
  56. package/dist/_members/animate/scene/worldBounds.d.ts +19 -0
  57. package/dist/_members/animate/scene/worldTextRaster.d.ts +87 -0
  58. package/dist/_members/animate/scene/worldTextTexture.d.ts +32 -0
  59. package/dist/_members/animate/stage/PerspectiveStage.d.ts +73 -0
  60. package/dist/_members/animate/stage/camera.d.ts +143 -0
  61. package/dist/_members/animate/stage/dof.d.ts +9 -0
  62. package/dist/_members/animate/stage/index.d.ts +6 -0
  63. package/dist/_members/animate/stage/presets.d.ts +17 -0
  64. package/dist/_members/animate/three/DeviceMesh.d.ts +256 -0
  65. package/dist/_members/animate/three/SceneCameraRig.d.ts +12 -0
  66. package/dist/_members/animate/three/StageCameraRig.d.ts +7 -0
  67. package/dist/_members/animate/three/StudioRig.d.ts +228 -0
  68. package/dist/_members/animate/three/ThreeCanvas.d.ts +22 -0
  69. package/dist/_members/animate/three/defaultScreen.d.ts +23 -0
  70. package/dist/_members/animate/three/index.d.ts +7 -1
  71. package/dist/_members/animate/three/textureLifecycle.d.ts +29 -0
  72. package/dist/_members/animate/three/toneMapping.d.ts +113 -0
  73. package/dist/_members/animate/three/useImageTexture.d.ts +17 -0
  74. package/dist/_members/authoring/index.d.ts +2 -0
  75. package/dist/_members/authoring/scene/index.d.ts +6 -0
  76. package/dist/_members/authoring/scene/materialize.d.ts +47 -0
  77. package/dist/_members/authoring/scene/validate.d.ts +80 -0
  78. package/dist/_members/authoring/scene/wrapper.d.ts +41 -0
  79. package/dist/_members/component-runtime/allowedImports.d.ts +3 -0
  80. package/dist/_members/component-runtime/allowedImports.d.ts.map +1 -0
  81. package/dist/_members/component-runtime/bake.d.ts +8 -0
  82. package/dist/_members/component-runtime/bake.d.ts.map +1 -1
  83. package/dist/_members/component-runtime/browserFirewall.d.ts +7 -1
  84. package/dist/_members/component-runtime/browserFirewall.d.ts.map +1 -1
  85. package/dist/_members/component-runtime/browserOptions.d.ts +59 -3
  86. package/dist/_members/component-runtime/browserOptions.d.ts.map +1 -1
  87. package/dist/_members/component-runtime/canonicalIdentity.d.ts +14 -0
  88. package/dist/_members/component-runtime/canonicalIdentity.d.ts.map +1 -1
  89. package/dist/_members/component-runtime/contracts.d.ts +341 -1
  90. package/dist/_members/component-runtime/contracts.d.ts.map +1 -1
  91. package/dist/_members/component-runtime/fixtures/imageTileDriftWall.d.ts +5 -0
  92. package/dist/_members/component-runtime/fixtures/imageTileDriftWall.d.ts.map +1 -0
  93. package/dist/_members/component-runtime/fixtures/mediaTileMixed.d.ts +5 -0
  94. package/dist/_members/component-runtime/fixtures/mediaTileMixed.d.ts.map +1 -0
  95. package/dist/_members/component-runtime/fixtures/mediaTileVideo.d.ts +8 -0
  96. package/dist/_members/component-runtime/fixtures/mediaTileVideo.d.ts.map +1 -0
  97. package/dist/_members/component-runtime/importPolicy.d.ts +3 -2
  98. package/dist/_members/component-runtime/importPolicy.d.ts.map +1 -1
  99. package/dist/_members/component-runtime/index.d.ts +3 -0
  100. package/dist/_members/component-runtime/index.d.ts.map +1 -1
  101. package/dist/_members/component-runtime/livePreviewProxy.d.ts +7 -0
  102. package/dist/_members/component-runtime/livePreviewProxy.d.ts.map +1 -0
  103. package/dist/_members/component-runtime/localRoot.d.ts +37 -0
  104. package/dist/_members/component-runtime/localRoot.d.ts.map +1 -0
  105. package/dist/_members/component-runtime/mediaResolution.d.ts +25 -0
  106. package/dist/_members/component-runtime/mediaResolution.d.ts.map +1 -0
  107. package/dist/_members/component-runtime/render.d.ts +151 -13
  108. package/dist/_members/component-runtime/render.d.ts.map +1 -1
  109. package/dist/_members/component-runtime/renderDiagnostics.d.ts +14 -0
  110. package/dist/_members/component-runtime/renderDiagnostics.d.ts.map +1 -0
  111. package/dist/_members/component-runtime/sceneAdmission.d.ts +47 -0
  112. package/dist/_members/component-runtime/sceneAdmission.d.ts.map +1 -0
  113. package/dist/_members/component-runtime/sourceWorkspace.d.ts +8 -0
  114. package/dist/_members/component-runtime/sourceWorkspace.d.ts.map +1 -1
  115. package/dist/_members/component-runtime/webglProbe.d.ts +191 -0
  116. package/dist/_members/component-runtime/webglProbe.d.ts.map +1 -0
  117. package/dist/_members/compose/primitiveRegistry.d.ts +2 -6
  118. package/dist/_members/composition/fonts/bundledFaces.d.ts +150 -0
  119. package/dist/_members/composition/fonts/captionFaces.d.ts +268 -0
  120. package/dist/_members/composition/fonts.d.ts +11 -4
  121. package/dist/_members/composition/graphics-plan/schemas.d.ts +4 -4
  122. package/dist/_members/composition/ops/types.d.ts +1 -1
  123. package/dist/_members/composition/primitive-catalog/index.d.ts +4 -0
  124. package/dist/_members/composition/primitive-catalog/types.d.ts +1 -0
  125. package/dist/_members/composition/projection/behind-readiness.d.ts +3 -0
  126. package/dist/_members/composition/projection/brandKit.d.ts +6 -0
  127. package/dist/_members/composition/projection/composition-floor.d.ts +2 -1
  128. package/dist/_members/composition/scene/animation.d.ts +25 -0
  129. package/dist/_members/composition/scene/budget.d.ts +29 -0
  130. package/dist/_members/composition/scene/budgetPolicy.d.mts +13 -0
  131. package/dist/_members/composition/scene/clipRules.d.ts +119 -0
  132. package/dist/_members/composition/scene/constraints.d.ts +61 -0
  133. package/dist/_members/composition/scene/device.d.ts +21 -0
  134. package/dist/_members/composition/scene/examples.d.ts +11 -0
  135. package/dist/_members/composition/scene/index.d.ts +11 -0
  136. package/dist/_members/composition/scene/photographicRig.d.ts +242 -0
  137. package/dist/_members/composition/scene/preparedRender.d.ts +239 -0
  138. package/dist/_members/composition/scene/resolution.d.ts +178 -0
  139. package/dist/_members/composition/scene/schema.d.ts +351 -0
  140. package/dist/_members/composition/scene/videoSchedule.d.ts +43 -0
  141. package/dist/_members/composition/validators/brandKit.d.ts +1 -0
  142. package/dist/_members/composition/validators/render.d.ts +2 -0
  143. package/dist/_members/composition-ops/index.d.ts +45 -0
  144. package/dist/_members/composition-ops/opRecorder.d.ts +1 -1
  145. package/dist/_members/core/render/compositionRender.d.ts +41 -9
  146. package/dist/_members/core/render/index.d.ts +9 -2
  147. package/dist/_members/core/render/sceneCaptureIdentity.d.ts +14 -0
  148. package/dist/_members/core/render/sceneShotPlan.d.ts +142 -0
  149. package/dist/_members/core/render/sceneShotPreparation.d.ts +57 -0
  150. package/dist/_members/core/render/slabDescriptor.d.ts +21 -0
  151. package/dist/_members/core/render/trackProjection.d.ts +33 -0
  152. package/dist/_members/core/render/types.d.ts +142 -0
  153. package/dist/_members/errors/registry.d.ts +6 -0
  154. package/dist/_members/mcp/adapter.d.ts +5 -0
  155. package/dist/_members/mcp/generated/harness.d.ts +1 -1
  156. package/dist/_members/mcp/generated/sceneContract.d.ts +155 -0
  157. package/dist/_members/mcp/sceneShot.d.ts +38 -0
  158. package/dist/_members/mcp/sceneShotExample.d.ts +22 -0
  159. package/dist/_members/media-model/api.d.ts +1 -0
  160. package/dist/_members/media-model/media-kind.d.ts +1 -1
  161. package/dist/_members/media-model/testing/mediaStoreContract.d.ts +1 -1
  162. package/dist/_members/primitives/effects/index.d.ts +1 -0
  163. package/dist/_members/primitives/effects/stage-camera/config.d.ts +50 -0
  164. package/dist/_members/primitives/effects/stage-camera/index.d.ts +31 -0
  165. package/dist/_members/primitives/layouts/flex-layout/config.d.ts +73 -0
  166. package/dist/_members/primitives/layouts/flex-layout/index.d.ts +4 -0
  167. package/dist/_members/primitives/layouts/index.d.ts +1 -0
  168. package/dist/_members/primitives/layouts/picture-in-picture/config.d.ts +1 -1
  169. package/dist/_members/primitives/lib/frameScale.d.ts +4 -0
  170. package/dist/_members/primitives/lib/index.d.ts +1 -0
  171. package/dist/_members/primitives/lib/palette.d.ts +30 -30
  172. package/dist/_members/primitives/lib/text/contrast.d.ts +2 -1
  173. package/dist/_members/primitives/lib/text/spec.d.ts +0 -8
  174. package/dist/_members/primitives/lib/types.d.ts +2 -0
  175. package/dist/_members/primitives/scenes/device-showcase/config.d.ts +41 -0
  176. package/dist/_members/primitives/scenes/device-showcase/index.d.ts +36 -0
  177. package/dist/_members/primitives/scenes/hero-device-assemble/config.d.ts +1 -0
  178. package/dist/_members/primitives/scenes/hero-device-assemble/index.d.ts +2 -1
  179. package/dist/_members/primitives/scenes/index.d.ts +1 -0
  180. package/dist/_members/primitives/ui-blocks/badge-pop/config.d.ts +1 -1
  181. package/dist/_members/primitives/ui-blocks/device-mockup-zoom/config.d.ts +1 -0
  182. package/dist/_members/primitives/ui-blocks/device-mockup-zoom/index.d.ts +2 -1
  183. package/dist/_members/primitives/ui-blocks/terminal-simulator/config.d.ts +1 -1
  184. package/dist/_members/primitives/ui-blocks/toast-notification/config.d.ts +1 -1
  185. package/dist/_members/render-harness/cardAssetAdmission.d.ts.map +1 -1
  186. package/dist/_members/render-harness/cardRender.d.ts.map +1 -1
  187. package/dist/_members/render-harness/css-tree-subpaths.d.ts +11 -0
  188. package/dist/_members/render-harness/extractSegments.d.ts +1 -0
  189. package/dist/_members/render-harness/extractSegments.d.ts.map +1 -1
  190. package/dist/_members/render-harness/imageHeader.d.ts +14 -0
  191. package/dist/_members/render-harness/imageHeader.d.ts.map +1 -0
  192. package/dist/_members/render-harness/index.d.ts +6 -0
  193. package/dist/_members/render-harness/index.d.ts.map +1 -1
  194. package/dist/_members/render-harness/materializeSources.d.ts +46 -2
  195. package/dist/_members/render-harness/materializeSources.d.ts.map +1 -1
  196. package/dist/_members/render-harness/nodeScenePreparation.d.ts +97 -0
  197. package/dist/_members/render-harness/nodeScenePreparation.d.ts.map +1 -0
  198. package/dist/_members/render-harness/remotion-runtime.d.ts +16 -2
  199. package/dist/_members/render-harness/renderInputAssets.d.ts +1 -1
  200. package/dist/_members/render-harness/renderInputAssets.d.ts.map +1 -1
  201. package/dist/_members/render-harness/resolveAssets.d.ts +2 -2
  202. package/dist/_members/render-harness/resolveAssets.d.ts.map +1 -1
  203. package/dist/_members/render-harness/sceneShotAssets.d.ts +17 -0
  204. package/dist/_members/render-harness/sceneShotAssets.d.ts.map +1 -0
  205. package/dist/animate/preparation-facts.d.ts +1 -0
  206. package/dist/animate/preparation-facts.js +22 -0
  207. package/dist/animate.js +336 -1005
  208. package/dist/authoring/build-tools.js +7 -6
  209. package/dist/authoring/context.js +5 -4
  210. package/dist/authoring/prompts.js +1 -1
  211. package/dist/authoring/scene.d.ts +1 -0
  212. package/dist/authoring/scene.js +50 -0
  213. package/dist/authoring/tools.js +6 -5
  214. package/dist/authoring.js +49 -29
  215. package/dist/chunk-2L7PYYJK.js +23 -0
  216. package/dist/chunk-5DJ3IEJR.js +4424 -0
  217. package/dist/chunk-6BVVCRRD.js +26488 -0
  218. package/dist/{chunk-DQKSCHFC.js → chunk-6EWRIAZA.js} +187 -66
  219. package/dist/{chunk-YQ7FFW3G.js → chunk-6VWICHOZ.js} +26 -5
  220. package/dist/{chunk-C5SEPOWD.js → chunk-7AZLFN26.js} +1798 -702
  221. package/dist/{chunk-6ID2J64H.js → chunk-7W6ZIKWV.js} +162 -25
  222. package/dist/{chunk-RETQFTGY.js → chunk-A74FZCPY.js} +42 -5
  223. package/dist/chunk-BVA3537Z.js +63 -0
  224. package/dist/{chunk-DHKQ47Q6.js → chunk-DAARYRNT.js} +6 -1
  225. package/dist/chunk-DQLYWNLC.js +2063 -0
  226. package/dist/{chunk-HXKTZPRH.js → chunk-E7GIZEPS.js} +1 -1
  227. package/dist/chunk-EBIBLL7E.js +3619 -0
  228. package/dist/{chunk-M2TLRXEO.js → chunk-EXY4JJPH.js} +1 -1
  229. package/dist/{chunk-AWT3P5ZN.js → chunk-FVDFPJHT.js} +1 -1
  230. package/dist/{chunk-EMGFZ3PR.js → chunk-FWSJLHSV.js} +5 -1
  231. package/dist/{chunk-TMIBBD5E.js → chunk-I5QWBM3M.js} +280 -113
  232. package/dist/{chunk-IBMJ33EL.js → chunk-I5RX2QZT.js} +1 -1
  233. package/dist/{chunk-4FOOBSEE.js → chunk-J3DIUG24.js} +1 -0
  234. package/dist/{chunk-AD5HWBCE.js → chunk-JX53CVJV.js} +14 -5
  235. package/dist/{chunk-LNBVTDFR.js → chunk-L2AHS3AW.js} +1 -1
  236. package/dist/{chunk-BDMTUEEZ.js → chunk-LT4PWSR2.js} +2 -2
  237. package/dist/chunk-MH3UPKWR.js +3415 -0
  238. package/dist/{chunk-RFXR7ATW.js → chunk-MN6D3U5N.js} +13 -1
  239. package/dist/{chunk-IJ7PVJTK.js → chunk-ODUWCQI3.js} +3 -2
  240. package/dist/chunk-QAGGJHAF.js +16 -0
  241. package/dist/chunk-QS36DMFG.js +332 -0
  242. package/dist/{chunk-G5BFI32U.js → chunk-RAXHCRVV.js} +1 -1
  243. package/dist/{chunk-BIBYZJL3.js → chunk-RL5SO653.js} +3 -3
  244. package/dist/{chunk-ZSZABOE5.js → chunk-S5H6GH6M.js} +1 -1
  245. package/dist/{chunk-EEXCDFY5.js → chunk-SD25VQDE.js} +1 -1
  246. package/dist/chunk-TARKDVP6.js +430 -0
  247. package/dist/{chunk-XVBOSPZI.js → chunk-TBNTAQJA.js} +6 -6
  248. package/dist/{chunk-IHFREGFA.js → chunk-TCHPRGC5.js} +18 -2
  249. package/dist/{chunk-ZCAQHNPI.js → chunk-UKGNHZS4.js} +1 -1
  250. package/dist/{chunk-ZN6P3KOJ.js → chunk-UN6NY2E6.js} +3 -3
  251. package/dist/{chunk-WQSGVRFU.js → chunk-UY77TMKD.js} +31 -44
  252. package/dist/chunk-VKATKWWR.js +1462 -0
  253. package/dist/{chunk-U5LBYS3N.js → chunk-VLJOIUHL.js} +341 -274
  254. package/dist/{chunk-CX2IIQ4R.js → chunk-W2245F6G.js} +29 -29
  255. package/dist/{chunk-GEGRJKKO.js → chunk-W6B7BMLO.js} +1 -1
  256. package/dist/{chunk-XHUYWVYK.js → chunk-WBNFSG6T.js} +1 -1
  257. package/dist/chunk-WIHXXF3X.js +221 -0
  258. package/dist/{chunk-7KEUL3FI.js → chunk-XF2QMKRG.js} +9 -1
  259. package/dist/{chunk-HFC3MKXA.js → chunk-Y4HPN4BC.js} +1 -0
  260. package/dist/{chunk-D43J23QX.js → chunk-YFSBFCXO.js} +1018 -42
  261. package/dist/{chunk-KKEY5MIW.js → chunk-ZS3A3QUM.js} +16 -16
  262. package/dist/{chunk-LQUWKBST.js → chunk-ZVG446DJ.js} +139 -10
  263. package/dist/component-runtime/browserOptions.js +14 -3
  264. package/dist/component-runtime/contracts.js +35 -3
  265. package/dist/component-runtime/identity/browser.js +1 -1
  266. package/dist/component-runtime/identity.js +2 -2
  267. package/dist/component-runtime/importPolicy.js +2 -2
  268. package/dist/component-runtime/mediaResolution.d.ts +1 -0
  269. package/dist/component-runtime/mediaResolution.js +11 -0
  270. package/dist/component-runtime/render.js +38 -5
  271. package/dist/component-runtime.js +118 -14
  272. package/dist/compose.js +192 -33
  273. package/dist/composition/fonts.js +64 -67
  274. package/dist/composition/graphics-plan.js +3 -2
  275. package/dist/composition/ops.js +4 -3
  276. package/dist/composition/primitive-catalog.js +3 -1
  277. package/dist/composition/projection.js +10 -3
  278. package/dist/composition/scene/budget-policy.d.ts +1 -0
  279. package/dist/composition/scene/budget-policy.js +17 -0
  280. package/dist/composition/scene/schema.json +2757 -0
  281. package/dist/composition/scene.d.ts +1 -0
  282. package/dist/composition/scene.js +275 -0
  283. package/dist/composition/validators.js +3 -2
  284. package/dist/composition-ops.js +103 -13
  285. package/dist/composition.js +12 -5
  286. package/dist/{context-4GSDBFT3.js → context-IUPQ54V4.js} +5 -4
  287. package/dist/core/render.js +54 -3
  288. package/dist/core/select.js +2 -2
  289. package/dist/core.js +6 -3
  290. package/dist/director/ai-sdk.js +3 -3
  291. package/dist/director/domain.js +2 -2
  292. package/dist/director.js +3 -3
  293. package/dist/errors.js +1 -1
  294. package/dist/mcp/adapter.js +4 -4
  295. package/dist/mcp/core.js +1 -1
  296. package/dist/mcp/curation.js +1 -1
  297. package/dist/mcp/server.js +4 -4
  298. package/dist/mcp.js +4 -4
  299. package/dist/media-model/media-kind.js +2 -0
  300. package/dist/media-model/testing.js +16 -11
  301. package/dist/media-model.js +1 -1
  302. package/dist/nle-export.js +1 -27
  303. package/dist/primitives/backgrounds.js +2 -2
  304. package/dist/primitives/captions.js +21 -11
  305. package/dist/primitives/effects.js +14 -4
  306. package/dist/primitives/graphics.json +3 -0
  307. package/dist/primitives/hero-text.js +4 -3
  308. package/dist/primitives/layouts.js +9 -2
  309. package/dist/primitives/lib/frameScale.d.ts +1 -0
  310. package/dist/primitives/lib/frameScale.js +11 -0
  311. package/dist/primitives/lib/index.js +18 -10
  312. package/dist/primitives/lib/palette.js +1 -1
  313. package/dist/primitives/lib/text/contrast.js +2 -1
  314. package/dist/primitives/lib/text/typeface.js +1 -1
  315. package/dist/primitives/lib.js +18 -10
  316. package/dist/primitives/params-required.json +3 -0
  317. package/dist/primitives/scenes.js +12 -3
  318. package/dist/primitives/text.js +5 -5
  319. package/dist/primitives/transitions.js +2 -2
  320. package/dist/primitives/ui-blocks.js +7 -6
  321. package/dist/primitives/version-map.json +5 -2
  322. package/dist/primitives.js +23 -16
  323. package/dist/render-harness/cardAssetAdmission.js +2 -2
  324. package/dist/render-harness/renderInputAssets.js +2 -2
  325. package/dist/render-harness.js +874 -124
  326. package/package.json +48 -14
  327. package/dist/_members/animate/three/drei.d.ts +0 -6
  328. package/dist/_members/component-runtime/fixtures/webgpuTiledRefraction.d.ts +0 -9
  329. package/dist/_members/component-runtime/fixtures/webgpuTiledRefraction.d.ts.map +0 -1
  330. package/dist/chunk-5OTQ7M43.js +0 -718
  331. package/dist/chunk-7REW2MW3.js +0 -202
  332. package/dist/chunk-CGHTMZNC.js +0 -6
  333. package/dist/chunk-KVMVYRXX.js +0 -9527
  334. package/dist/chunk-WYQX4QIK.js +0 -544
  335. /package/dist/{chunk-H5LMJKZU.js → chunk-JVDUSOYG.js} +0 -0
@@ -0,0 +1,351 @@
1
+ /**
2
+ * Canonical authored SceneShotSpecV2 contract.
3
+ *
4
+ * This module contains persisted authoring data only. Renderer-prepared values such as baked
5
+ * image metadata, resolved colours, shadow bounds, builder facts and allocation ledgers belong
6
+ * to later preparation/runtime contracts.
7
+ */
8
+ import { z } from 'zod';
9
+ export declare const SCENE_SHOT_SPEC_VERSION: 2;
10
+ export declare const SCENE_MAX_LAYERS = 32;
11
+ export declare const SCENE_MAX_GROUP_DEPTH = 4;
12
+ export declare const SCENE_MAX_KEYFRAMES_PER_CHANNEL = 256;
13
+ export declare const SCENE_MAX_KEYFRAMES_PER_SHOT = 2048;
14
+ export declare const SCENE_MAX_SURFACES = 32;
15
+ export declare const SCENE_FOV_MIN: number;
16
+ export declare const SCENE_FOV_MAX: number;
17
+ export declare const SCENE_LAYER_ID_PATTERN: RegExp;
18
+ export declare const SCENE_ASSET_SLOT_PATTERN: RegExp;
19
+ export declare const SCENE_BRAND_COLOR_TOKENS: readonly ["background", "surface", "text", "textMuted", "accent", "accentStrong", "accentSoft", "success", "warning", "danger"];
20
+ export type SceneBrandColorToken = (typeof SCENE_BRAND_COLOR_TOKENS)[number];
21
+ export declare const SCENE_BRAND_FONT_TOKENS: readonly ["heading", "body", "caption"];
22
+ export type SceneBrandFontToken = (typeof SCENE_BRAND_FONT_TOKENS)[number];
23
+ export type SceneBrandColorRefValue = `$brand:colors.${SceneBrandColorToken}`;
24
+ export type SceneBrandFontRefValue = `$brand:fonts.${SceneBrandFontToken}`;
25
+ export type SceneColor = string;
26
+ export type SceneFontFamily = string;
27
+ export type SceneVec3 = [number, number, number];
28
+ export type JsonValue = null | boolean | number | string | JsonValue[] | {
29
+ [key: string]: JsonValue;
30
+ };
31
+ export declare const SceneHexColor: z.ZodString;
32
+ export declare const SceneBrandColorRef: z.ZodEnum<{
33
+ "$brand:colors.accent": "$brand:colors.accent";
34
+ "$brand:colors.surface": "$brand:colors.surface";
35
+ "$brand:colors.success": "$brand:colors.success";
36
+ "$brand:colors.text": "$brand:colors.text";
37
+ "$brand:colors.background": "$brand:colors.background";
38
+ "$brand:colors.textMuted": "$brand:colors.textMuted";
39
+ "$brand:colors.warning": "$brand:colors.warning";
40
+ "$brand:colors.accentStrong": "$brand:colors.accentStrong";
41
+ "$brand:colors.accentSoft": "$brand:colors.accentSoft";
42
+ "$brand:colors.danger": "$brand:colors.danger";
43
+ }>;
44
+ export declare const SceneColor: z.ZodUnion<readonly [z.ZodString, z.ZodEnum<{
45
+ "$brand:colors.accent": "$brand:colors.accent";
46
+ "$brand:colors.surface": "$brand:colors.surface";
47
+ "$brand:colors.success": "$brand:colors.success";
48
+ "$brand:colors.text": "$brand:colors.text";
49
+ "$brand:colors.background": "$brand:colors.background";
50
+ "$brand:colors.textMuted": "$brand:colors.textMuted";
51
+ "$brand:colors.warning": "$brand:colors.warning";
52
+ "$brand:colors.accentStrong": "$brand:colors.accentStrong";
53
+ "$brand:colors.accentSoft": "$brand:colors.accentSoft";
54
+ "$brand:colors.danger": "$brand:colors.danger";
55
+ }>]>;
56
+ export declare const SceneBrandFontRef: z.ZodEnum<{
57
+ "$brand:fonts.caption": "$brand:fonts.caption";
58
+ "$brand:fonts.body": "$brand:fonts.body";
59
+ "$brand:fonts.heading": "$brand:fonts.heading";
60
+ }>;
61
+ export declare const SCENE_FONT_FAMILY_PATTERN: RegExp;
62
+ export declare const SceneAdmittedFontFamily: z.ZodString;
63
+ export declare const SceneFontFamily: z.ZodUnion<readonly [z.ZodString, z.ZodEnum<{
64
+ "$brand:fonts.caption": "$brand:fonts.caption";
65
+ "$brand:fonts.body": "$brand:fonts.body";
66
+ "$brand:fonts.heading": "$brand:fonts.heading";
67
+ }>]>;
68
+ export declare const SceneLayerId: z.ZodString;
69
+ export declare const SceneAssetSlot: z.ZodString;
70
+ export interface SceneReferenceSizeV2 {
71
+ width: number;
72
+ height: number;
73
+ }
74
+ export declare const SceneReferenceSizeV2: z.ZodType<SceneReferenceSizeV2>;
75
+ export interface SceneCameraV2 {
76
+ position: SceneVec3;
77
+ rotation: SceneVec3;
78
+ fov: number;
79
+ }
80
+ /** Authored camera fields. Omitted members are materialized from the shot reference height. */
81
+ export interface SceneCameraInputV2 {
82
+ position?: SceneVec3;
83
+ rotation?: SceneVec3;
84
+ fov?: number;
85
+ }
86
+ export declare const SceneCameraInputV2: z.ZodType<SceneCameraInputV2>;
87
+ /** Fully materialized camera shape consumed by evaluation and preparation. */
88
+ export declare const SceneCameraV2: z.ZodType<SceneCameraV2>;
89
+ export interface SceneTransformV2 {
90
+ position: SceneVec3;
91
+ rotation: SceneVec3;
92
+ scale: number;
93
+ }
94
+ export declare const SceneTransformV2: z.ZodType<SceneTransformV2>;
95
+ export interface SceneGradientStopV2 {
96
+ at: number;
97
+ color: SceneColor;
98
+ }
99
+ export type SceneBackdropV2 = {
100
+ kind: 'transparent';
101
+ } | {
102
+ kind: 'solid';
103
+ color: SceneColor;
104
+ } | {
105
+ kind: 'linear';
106
+ angle: number;
107
+ stops: SceneGradientStopV2[];
108
+ } | {
109
+ kind: 'radial';
110
+ at: [number, number];
111
+ stops: SceneGradientStopV2[];
112
+ };
113
+ export declare const SceneBackdropV2: z.ZodType<SceneBackdropV2>;
114
+ export interface SceneImageSurfaceV2 {
115
+ source: 'image';
116
+ assetSlot: string;
117
+ }
118
+ export interface SceneColorSurfaceV2 {
119
+ source: 'color';
120
+ color: SceneColor;
121
+ }
122
+ export interface SceneComponentSurfaceV2 {
123
+ source: 'component';
124
+ component: {
125
+ version: 1;
126
+ componentId: string;
127
+ sourceVersionId: string;
128
+ };
129
+ captureFrame: number;
130
+ layout: {
131
+ width: number;
132
+ height: number;
133
+ };
134
+ /** Omission lets preparation choose effective scale 2 or auto-raise to 3. */
135
+ bakeScale?: 2 | 3;
136
+ params?: Record<string, JsonValue>;
137
+ }
138
+ export interface SceneVideoSurfaceV2 {
139
+ source: 'video';
140
+ mediaId: string;
141
+ startFrame: number;
142
+ endFrame?: number;
143
+ }
144
+ export type SceneSurfaceBindingV2 = SceneImageSurfaceV2 | SceneColorSurfaceV2 | SceneComponentSurfaceV2 | SceneVideoSurfaceV2;
145
+ export declare const SceneSurfaceBindingV2: z.ZodType<SceneSurfaceBindingV2>;
146
+ export interface SceneMaterialOverrideV2 {
147
+ role: string;
148
+ type: 'physical' | 'unlit';
149
+ color?: SceneColor;
150
+ roughness?: number;
151
+ metalness?: number;
152
+ clearcoat?: number;
153
+ clearcoatRoughness?: number;
154
+ anisotropy?: number;
155
+ anisotropyRotation?: number;
156
+ ior?: number;
157
+ reflectivity?: number;
158
+ }
159
+ export declare const SceneMaterialOverrideV2: z.ZodType<SceneMaterialOverrideV2>;
160
+ export interface SceneTextRunV2 {
161
+ text: string;
162
+ color?: SceneColor;
163
+ emphasis?: boolean;
164
+ }
165
+ export interface SceneTextLineV2 {
166
+ runs: SceneTextRunV2[];
167
+ }
168
+ interface SceneObjectBaseV2 {
169
+ id: string;
170
+ transform: SceneTransformV2;
171
+ opacity: number;
172
+ }
173
+ interface SceneMaterialObjectV2 extends SceneObjectBaseV2 {
174
+ materials?: SceneMaterialOverrideV2[];
175
+ surfaces?: Record<string, SceneSurfaceBindingV2>;
176
+ }
177
+ interface SceneTextBodyV2 {
178
+ id: string;
179
+ opacity: number;
180
+ lines: SceneTextLineV2[];
181
+ fontFamily: SceneFontFamily;
182
+ fontWeight: number;
183
+ fontStyle: 'normal' | 'italic';
184
+ fontSize: number;
185
+ lineHeight: number;
186
+ letterSpacing: number;
187
+ align: 'left' | 'center' | 'right';
188
+ maxWidth?: number;
189
+ color: SceneColor;
190
+ }
191
+ export interface SceneGroupV2 extends SceneObjectBaseV2 {
192
+ kind: 'group';
193
+ children: SceneObjectV2[];
194
+ }
195
+ export interface SceneLaptopV2 extends SceneMaterialObjectV2 {
196
+ kind: 'laptop';
197
+ width: number;
198
+ openAngle: number;
199
+ }
200
+ export interface ScenePhoneV2 extends SceneMaterialObjectV2 {
201
+ kind: 'phone';
202
+ width: number;
203
+ }
204
+ export interface SceneSlabV2 extends SceneMaterialObjectV2 {
205
+ kind: 'slab';
206
+ width: number;
207
+ height: number;
208
+ thickness: number;
209
+ cornerRadius: number;
210
+ edgeRadius: number;
211
+ finish: 'satin' | 'brushed';
212
+ }
213
+ export interface ScenePageV2 extends SceneObjectBaseV2 {
214
+ kind: 'page';
215
+ width: number;
216
+ height: number;
217
+ fit: 'contain' | 'cover';
218
+ transparency: 'straight' | 'premultiplied' | 'opaque';
219
+ depthWrite: boolean;
220
+ backface: 'hidden' | 'visible';
221
+ materials?: SceneMaterialOverrideV2[];
222
+ surfaces: Record<string, SceneSurfaceBindingV2>;
223
+ }
224
+ export interface SceneWorldTextV2 extends SceneTextBodyV2 {
225
+ kind: 'text';
226
+ space: 'world';
227
+ transform: SceneTransformV2;
228
+ }
229
+ export interface SceneScreenTextV2 extends SceneTextBodyV2 {
230
+ kind: 'text';
231
+ space: 'screen';
232
+ x: number;
233
+ y: number;
234
+ rotation: number;
235
+ scale: number;
236
+ }
237
+ export type SceneObjectV2 = SceneGroupV2 | SceneLaptopV2 | ScenePhoneV2 | SceneSlabV2 | ScenePageV2 | SceneWorldTextV2 | SceneScreenTextV2;
238
+ export declare const SceneObjectV2: z.ZodType<SceneObjectV2>;
239
+ export type SceneEasingV2 = {
240
+ kind: 'linear';
241
+ } | {
242
+ kind: 'hold';
243
+ } | {
244
+ kind: 'bezier';
245
+ x1: number;
246
+ y1: number;
247
+ x2: number;
248
+ y2: number;
249
+ };
250
+ export interface SceneKeyframeV2 {
251
+ at: number;
252
+ value: number;
253
+ easing?: SceneEasingV2;
254
+ }
255
+ export type SceneChannelTargetV2 = {
256
+ kind: 'camera';
257
+ } | {
258
+ kind: 'layer';
259
+ layerId: string;
260
+ } | {
261
+ kind: 'environment';
262
+ } | {
263
+ kind: 'focus';
264
+ };
265
+ export interface SceneChannelV2 {
266
+ target: SceneChannelTargetV2;
267
+ property: string;
268
+ keyframes: SceneKeyframeV2[];
269
+ }
270
+ export declare const SceneEasingV2: z.ZodType<SceneEasingV2>;
271
+ export declare const SceneKeyframeV2: z.ZodType<SceneKeyframeV2>;
272
+ export declare const SceneChannelTargetV2: z.ZodType<SceneChannelTargetV2>;
273
+ export declare const SceneChannelV2: z.ZodType<SceneChannelV2>;
274
+ export declare const SCENE_CAMERA_PROPERTIES: readonly ["positionX", "positionY", "positionZ", "rotationX", "rotationY", "rotationZ", "fov"];
275
+ export declare const SCENE_WORLD_OBJECT_PROPERTIES: readonly ["positionX", "positionY", "positionZ", "rotationX", "rotationY", "rotationZ", "scale", "opacity"];
276
+ export declare const SCENE_LAPTOP_PROPERTIES: readonly ["positionX", "positionY", "positionZ", "rotationX", "rotationY", "rotationZ", "scale", "opacity", "openAngle"];
277
+ export declare const SCENE_SCREEN_TEXT_PROPERTIES: readonly ["x", "y", "rotation", "scale", "opacity"];
278
+ export declare const SCENE_ENVIRONMENT_PROPERTIES: readonly ["intensity"];
279
+ export declare const SCENE_FOCUS_PROPERTIES: readonly ["distance", "range", "maxBlur"];
280
+ export declare const SCENE_CHANNEL_PROPERTIES: readonly ("x" | "y" | "opacity" | "scale" | "rotation" | "intensity" | "fov" | "range" | "maxBlur" | "openAngle" | "distance" | "positionX" | "positionY" | "positionZ" | "rotationX" | "rotationY" | "rotationZ")[];
281
+ export interface SceneFocusV2 {
282
+ distance: number;
283
+ range: number;
284
+ maxBlur: number;
285
+ }
286
+ export interface ScenePostV2 {
287
+ grain: number;
288
+ vignette: number;
289
+ focus: SceneFocusV2 | null;
290
+ }
291
+ export declare const SceneFocusV2: z.ZodType<SceneFocusV2>;
292
+ export declare const ScenePostV2: z.ZodType<ScenePostV2>;
293
+ export interface SceneGeneratedStudioRigV2 {
294
+ kind?: 'studio';
295
+ lightingProfile: 'studio' | 'studio-edge';
296
+ preset: 'soft' | 'key' | 'rim';
297
+ intensity: number;
298
+ floorY: number;
299
+ shadowOpacity: number;
300
+ }
301
+ export interface ScenePhotographicStudioRigV1 {
302
+ kind: 'photographic-studio-v1';
303
+ }
304
+ export type SceneRigV2 = SceneGeneratedStudioRigV2 | ScenePhotographicStudioRigV1;
305
+ export declare const SceneRigV2: z.ZodType<SceneRigV2>;
306
+ export interface SceneConstraintV2 {
307
+ kind: 'minSeparation';
308
+ objects: string[];
309
+ gap: number;
310
+ }
311
+ export declare const SceneConstraintV2: z.ZodType<SceneConstraintV2>;
312
+ export interface SceneShotSpecV2 {
313
+ version: 2;
314
+ referenceSize: SceneReferenceSizeV2;
315
+ camera: SceneCameraV2;
316
+ environment: SceneRigV2;
317
+ backdrop: SceneBackdropV2;
318
+ layers: SceneObjectV2[];
319
+ animation: SceneChannelV2[];
320
+ post: ScenePostV2;
321
+ constraints: SceneConstraintV2[];
322
+ }
323
+ export declare const SCENE_PRESET_SLOTS: Readonly<{
324
+ readonly laptop: readonly ["screen"];
325
+ readonly phone: readonly ["screen"];
326
+ readonly slab: readonly ["front"];
327
+ readonly page: readonly ["content"];
328
+ }>;
329
+ export declare const SCENE_PRESET_MATERIAL_ROLES: Readonly<{
330
+ readonly laptop: readonly ["base", "lid", "keyboard", "trackpad", "bezel", "screen", "glass"];
331
+ readonly phone: readonly ["shell", "screen", "glass"];
332
+ readonly slab: readonly ["body", "face"];
333
+ readonly page: readonly ["base"];
334
+ }>;
335
+ export type SceneRefusalCode = 'scene_spec_version_unsupported' | 'scene_lighting_profile_unsupported' | 'scene_rig_unsupported' | 'scene_photographic_rig_field_unsupported' | 'scene_object_light_field_unsupported';
336
+ /**
337
+ * The one public admission schema. Its first stage provides named, exact-path refusals and its
338
+ * second stage parses/materializes the schema that is also published as JSON Schema.
339
+ */
340
+ export declare const SceneShotSpecV2: z.ZodType<SceneShotSpecV2>;
341
+ /** Parse untrusted authored data through the same public schema all consumers embed. */
342
+ export declare function parseSceneShotSpecV2(value: unknown): SceneShotSpecV2;
343
+ /** Distinct outer image asset slots in first-use order, recursively through groups. */
344
+ export declare function sceneShotImageSlots(spec: Pick<SceneShotSpecV2, 'layers'>): string[];
345
+ /** Distinct video media ids in first-use order, recursively through groups. */
346
+ export declare function sceneShotVideoSlots(spec: Pick<SceneShotSpecV2, 'layers'>): string[];
347
+ export declare function sceneShotSurfaceCount(spec: Pick<SceneShotSpecV2, 'layers'>): number;
348
+ /** Agent-facing schema generated from the same Zod contract used by runtime parsing. */
349
+ export declare const sceneShotJsonSchema: z.core.ZodStandardJSONSchemaPayload<z.ZodType<SceneShotSpecV2, unknown, z.core.$ZodTypeInternals<SceneShotSpecV2, unknown>>>;
350
+ export declare function sceneShotJsonSchemaText(): string;
351
+ export {};
@@ -0,0 +1,43 @@
1
+ export interface SceneVideoRateV1 {
2
+ num: number;
3
+ den: number;
4
+ }
5
+ export interface SceneVerifiedPresentationIndexV1 {
6
+ /** Integer presentation timestamps in decode/display order. */
7
+ pts: readonly number[];
8
+ timeBase: SceneVideoRateV1;
9
+ }
10
+ export interface SceneSealedVideoScheduleV1 {
11
+ sourceRate: SceneVideoRateV1;
12
+ shotRate: SceneVideoRateV1;
13
+ contentDuration: number;
14
+ startFrame: number;
15
+ endFrame: number;
16
+ sourceFrameCount: number;
17
+ addressing: 'midpoint';
18
+ }
19
+ export type SceneVideoAdmissionCode = 'video_presentation_index_missing' | 'video_variable_frame_rate' | 'video_trim_not_integer' | 'video_trim_out_of_range' | 'video_rate_invalid';
20
+ export declare class SceneVideoAdmissionRefusal extends Error {
21
+ readonly code: SceneVideoAdmissionCode;
22
+ readonly corrective = "Render or transcode this asset to CFR with the existing media tools, then prepare the scene again.";
23
+ constructor(code: SceneVideoAdmissionCode, message: string);
24
+ }
25
+ export declare function canonicalSceneVideoRateV1(value: SceneVideoRateV1, field?: string): SceneVideoRateV1;
26
+ export declare function verifySceneVideoPresentationIndexV1(index: SceneVerifiedPresentationIndexV1): {
27
+ sourceRate: SceneVideoRateV1;
28
+ sourceFrameCount: number;
29
+ };
30
+ export declare function prepareSceneVideoScheduleV1(input: {
31
+ presentationIndex: SceneVerifiedPresentationIndexV1;
32
+ shotRate: SceneVideoRateV1;
33
+ contentDuration: number;
34
+ startFrame: number;
35
+ endFrame?: number;
36
+ }): SceneSealedVideoScheduleV1;
37
+ export declare function sceneVideoSourceIndexV1(frame: number, schedule: SceneSealedVideoScheduleV1): number;
38
+ /** The installed decoder receives frame 2s+1 at playbackRate Fo/(2Fs), selecting (s+1/2)/Fs. */
39
+ export declare function sceneVideoMidpointAddressV1(frame: number, schedule: SceneSealedVideoScheduleV1): {
40
+ sourceIndex: number;
41
+ mediaFrame: number;
42
+ playbackRate: number;
43
+ };
@@ -256,6 +256,7 @@ export declare const BrandKit: z.ZodObject<{
256
256
  entranceStaggerMs: z.ZodOptional<z.ZodNumber>;
257
257
  exitMs: z.ZodOptional<z.ZodNumber>;
258
258
  fontFamily: z.ZodOptional<z.ZodString>;
259
+ fontWeight: z.ZodOptional<z.ZodNumber>;
259
260
  emphasisFontFamily: z.ZodOptional<z.ZodString>;
260
261
  emphasisScale: z.ZodOptional<z.ZodNumber>;
261
262
  emphasisFontWeight: z.ZodOptional<z.ZodNumber>;
@@ -568,6 +568,7 @@ export declare const RenderSnapshot: z.ZodObject<{
568
568
  entranceStaggerMs: z.ZodOptional<z.ZodNumber>;
569
569
  exitMs: z.ZodOptional<z.ZodNumber>;
570
570
  fontFamily: z.ZodOptional<z.ZodString>;
571
+ fontWeight: z.ZodOptional<z.ZodNumber>;
571
572
  emphasisFontFamily: z.ZodOptional<z.ZodString>;
572
573
  emphasisScale: z.ZodOptional<z.ZodNumber>;
573
574
  emphasisFontWeight: z.ZodOptional<z.ZodNumber>;
@@ -1399,6 +1400,7 @@ export declare const RenderJob: z.ZodObject<{
1399
1400
  entranceStaggerMs: z.ZodOptional<z.ZodNumber>;
1400
1401
  exitMs: z.ZodOptional<z.ZodNumber>;
1401
1402
  fontFamily: z.ZodOptional<z.ZodString>;
1403
+ fontWeight: z.ZodOptional<z.ZodNumber>;
1402
1404
  emphasisFontFamily: z.ZodOptional<z.ZodString>;
1403
1405
  emphasisScale: z.ZodOptional<z.ZodNumber>;
1404
1406
  emphasisFontWeight: z.ZodOptional<z.ZodNumber>;
@@ -2,6 +2,7 @@ import { z } from 'zod';
2
2
  import { Composition } from '../composition/validators/index.js';
3
3
  import type { TimelineClip as TimelineClipT, Track as TrackT } from '../composition/validators/index.js';
4
4
  import { type HeadlessStore } from '../composition/ops/index.js';
5
+ import { SceneShotSpecV2 } from '../composition/scene/index.js';
5
6
  export type ClipKind = TrackT['kind'];
6
7
  export type MediaFamily = Extract<ClipKind, 'video' | 'audio' | 'image'>;
7
8
  export declare function mediaFamily(mimeType: string): MediaFamily;
@@ -786,6 +787,31 @@ export declare const CompositionOp: z.ZodDiscriminatedUnion<[z.ZodObject<{
786
787
  exitMs: z.ZodOptional<z.ZodNumber>;
787
788
  staggerMs: z.ZodOptional<z.ZodNumber>;
788
789
  }, z.core.$strict>>;
790
+ }, z.core.$strict>, z.ZodObject<{
791
+ type: z.ZodLiteral<"scene.add">;
792
+ clipId: z.ZodString;
793
+ trackId: z.ZodOptional<z.ZodString>;
794
+ newTrack: z.ZodOptional<z.ZodBoolean>;
795
+ newTrackId: z.ZodOptional<z.ZodString>;
796
+ startTime: z.ZodNumber;
797
+ duration: z.ZodNumber;
798
+ transitionIn: z.ZodOptional<z.ZodObject<{
799
+ type: z.ZodString;
800
+ duration: z.ZodNumber;
801
+ }, z.core.$strip>>;
802
+ scene: z.ZodType<SceneShotSpecV2, unknown, z.core.$ZodTypeInternals<SceneShotSpecV2, unknown>>;
803
+ assets: z.ZodRecord<z.ZodString, z.ZodString>;
804
+ }, z.core.$strict>, z.ZodObject<{
805
+ type: z.ZodLiteral<"scene.update">;
806
+ clipId: z.ZodString;
807
+ startTime: z.ZodOptional<z.ZodNumber>;
808
+ duration: z.ZodOptional<z.ZodNumber>;
809
+ transitionIn: z.ZodOptional<z.ZodObject<{
810
+ type: z.ZodString;
811
+ duration: z.ZodNumber;
812
+ }, z.core.$strip>>;
813
+ scene: z.ZodOptional<z.ZodType<SceneShotSpecV2, unknown, z.core.$ZodTypeInternals<SceneShotSpecV2, unknown>>>;
814
+ assets: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
789
815
  }, z.core.$strict>, z.ZodObject<{
790
816
  type: z.ZodLiteral<"materializeGrid">;
791
817
  clipId: z.ZodString;
@@ -873,6 +899,25 @@ export declare const CompositionOp: z.ZodDiscriminatedUnion<[z.ZodObject<{
873
899
  rangeIdx: z.ZodNumber;
874
900
  }, z.core.$strict>], "type">;
875
901
  export type CompositionOp = z.infer<typeof CompositionOp>;
902
+ /**
903
+ * What the caption ops need of a store: the composition they are judged against, and the two
904
+ * writes they make.
905
+ *
906
+ * `applyOpToStore` and the op recorder both go through `applyCaptionOpToStore` below, so the op a
907
+ * journal records is by construction the op a replay applies. The recorder used to call the
908
+ * store's setter directly, which meant Studio's composition store and the in-app agent could
909
+ * write a caption style this gate refuses AND journal an op `applyOp` would then refuse on
910
+ * replay — a recording that cannot be replayed is worse than an ungated write.
911
+ */
912
+ export type CaptionOpTarget = {
913
+ getState(): {
914
+ composition: Composition;
915
+ };
916
+ } & Pick<HeadlessStore, 'setCaptionStyle' | 'setCaptions'>;
917
+ export type CaptionOp = Extract<CompositionOp, {
918
+ type: 'setCaptionStyle' | 'setCaptions';
919
+ }>;
920
+ export declare function applyCaptionOpToStore(store: CaptionOpTarget, op: CaptionOp): void;
876
921
  export declare function applyOp(composition: Composition, op: CompositionOp): Composition;
877
922
  export declare function applyOpToStore(store: HeadlessStore, op: CompositionOp): void;
878
923
  export declare function invertOp(before: Composition, op: CompositionOp): CompositionOp;
@@ -1,5 +1,5 @@
1
1
  import type { Composition, TimelineClip, Marker, Track, Format, ReframeSegment, CaptionSegment, CaptionStyle, PerClipEffect } from '../composition/validators/index.js';
2
- import type { CompositionOp } from './index.js';
2
+ import { type CompositionOp } from './index.js';
3
3
  export interface RecordableOps {
4
4
  addClip(clip: TimelineClip, options?: {
5
5
  newTrack?: boolean;
@@ -1,26 +1,58 @@
1
- import type { Composition, Format } from "../../composition/validators/index.js";
1
+ import type { Composition, Format, TimelineClip as WireClip } from "../../composition/validators/index.js";
2
2
  import type { RenderInput } from "./types.js";
3
3
  import type { TrajectoryData } from "../../composition/reframe/trajectory.js";
4
+ import { type PreparedRenderInputLeaseV1, type SceneShotPreparationDependenciesV1 } from "./sceneShotPreparation.js";
4
5
  export { validateComposition } from "./compositionValidation.js";
5
6
  export { assertBehindSubjectCaptionCoverage } from "./compositionAudioAndDepth.js";
7
+ /** Re-exported from `trackProjection`, where the frame-lattice helpers it belongs with now live. */
8
+ export { playableSpans } from "./trackProjection.js";
6
9
  export declare function compositionFormatDimensions(format: Format): {
7
10
  width: number;
8
11
  height: number;
9
12
  fps: number;
10
13
  };
11
- export declare function playableSpans(trimStart: number, trimEnd: number, excluded: Array<{
12
- start: number;
13
- end: number;
14
- }> | undefined): Array<{
15
- start: number;
16
- end: number;
17
- }>;
18
14
  export declare function referencedMediaIds(composition: Composition): string[];
19
- export declare function compositionToRenderInput(composition: Composition, srcUrls: Record<string, string>, trajectoryUrls?: Record<string, string>, coViewUrls?: Record<string, string>, alphaUrls?: Record<string, string>, subCompositions?: Record<string, Composition>, trajectories?: Record<string, TrajectoryData>): RenderInput;
15
+ export declare function compositionToRenderInput(composition: Composition, srcUrls: Record<string, string>, trajectoryUrls?: Record<string, string>, coViewUrls?: Record<string, string>, alphaUrls?: Record<string, string>, subCompositions?: Record<string, Composition>, trajectories?: Record<string, TrajectoryData>, options?: {
16
+ /**
17
+ * Which clips the caller's pinned source manifests declare as scene shots. Only a caller that
18
+ * holds `componentSources` can answer this, so a projection without them treats no clip as a
19
+ * scene shot — which is also what happens downstream: no pinned rows means no scene marker and
20
+ * no scene lane.
21
+ */
22
+ isSceneClip?: (clip: WireClip) => boolean;
23
+ }): RenderInput;
24
+ /**
25
+ * Projection plus the host's resolved bindings. When the host pins `componentSources`, every
26
+ * component overlay whose pinned source declares the scene-shot capability is prepared here:
27
+ * the composition-level scene rules run first over the whole `Composition`, then brand references
28
+ * are resolved from the render input's own brand snapshot, faces sealed, slots bound, and the
29
+ * typed scene marker set (see `sceneShotPreparation.ts`).
30
+ *
31
+ * Exactly two kinds of caller reach this function: Studio's export lane
32
+ * (`apps/studio/src/export/buildRenderInput.ts`, both builders) and any cloud host that projects a
33
+ * `Composition`. For them this is where the composition-level scene rules run, so a scene clip
34
+ * that acquired outer effects, an off-lattice time, a transition kind v1 refuses, a stale binding
35
+ * or a generic neighbour on its dedicated track is refused before projection, at the composition
36
+ * path the author edits.
37
+ *
38
+ * The other lanes do not come through here, and none of them is a hole. Studio's local evidence
39
+ * capture (`apps/studio/src/render/localEvidenceCapture.ts`) and its interactive preview
40
+ * (`apps/studio/src/render/sceneShotPreviewSeal.ts`) each hold a projection they built with
41
+ * `buildPreviewInput` and seal it by calling `prepareSceneShotOverlays` on it directly; they reach
42
+ * the composition-level rules through Studio's own host adapter, which runs the same shared
43
+ * `assertSceneClipShapes` over the whole composition before it pins any source
44
+ * (`apps/studio/src/render/projectComponentSources.ts`). The render harness has no composition to
45
+ * check at all: it is handed a finished `RenderInput` JSON, so it re-checks only what a render
46
+ * input alone can express (the seal, and the marker agreement on the page).
47
+ */
20
48
  export declare function assembleRenderInput(composition: Composition, resolved: {
21
49
  srcUrls: Record<string, string>;
22
50
  trajectoryUrls?: Record<string, string>;
23
51
  coViewUrls?: Record<string, string>;
24
52
  alphaUrls?: Record<string, string>;
53
+ trajectories?: Record<string, TrajectoryData>;
25
54
  fontAssets?: NonNullable<RenderInput["brandKit"]>["fontAssets"];
55
+ componentSources?: RenderInput["componentSources"];
26
56
  }): RenderInput;
57
+ /** Projects a composition and realizes every V2 scene marker before returning renderable input. */
58
+ export declare function assemblePreparedRenderInput(composition: Composition, resolved: Parameters<typeof assembleRenderInput>[1], dependencies: SceneShotPreparationDependenciesV1): Promise<PreparedRenderInputLeaseV1>;
@@ -1,10 +1,17 @@
1
- export type { RenderInput, ProjectedVisualIdentity, CompositionClip, CompositionOverlay, CompositionAudioTrack, CompositionEffect, CaptionWord, CaptionStyle, OverlayTemplate, OverlayParams } from './types.js';
1
+ export type { RenderInput, ProjectedVisualIdentity, CompositionClip, CompositionOverlay, CompositionAudioTrack, CompositionEffect, CaptionWord, CaptionStyle, OverlayTemplate, OverlayParams, SceneShotOverlayMarkerV1, SceneShotSealedFontFace, SceneShotSlotBindingV1 } from './types.js';
2
+ export { SCENE_SHOT_IMAGE_MIME_TYPES, SCENE_SHOT_PARAM, SCENE_SHOT_PREPARATION_STAGE, assertSceneClipShapes, prepareSceneShotRenderInput, readSceneShotManifest, resolvePinnedSceneFactsV1, sceneSourceResolverForPinnedRows, } from './sceneShotPreparation.js';
3
+ export type { PreparedRenderInputLeaseV1, ResolvedScenePreparationFactsV1, SceneShotPreparationDependenciesV1, SceneShotPreparationLocator, } from './sceneShotPreparation.js';
2
4
  export type { ResolvedBrandKit } from '../../composition/projection/index.js';
5
+ export { SCENE_CAPTURE_IDENTITY_FIELDS, SceneCaptureIdentityRefusal, canonicalSceneComponentCaptureIdentityV1, canonicalSceneJsonV1, completeSceneComponentCaptureIdentityV1, parseSceneComponentCaptureIdentityV1, parseSceneComponentCaptureIntentV1, } from './sceneCaptureIdentity.js';
6
+ export type { SceneComponentCaptureIdentityV1 } from './sceneCaptureIdentity.js';
7
+ export type { SceneBuilderAllocationDescriptorV1, SceneBuilderDescriptorRegistryV1, SceneBuilderDescriptorV1, SceneBuilderPartDescriptorV1, SceneBuilderSlotDescriptorV1, SceneCanonicalJson, SceneCaptureSessionAttestationV1, SceneComponentCaptureDependencyV1, SceneComponentCaptureIntentV1, SceneComponentCaptureResultV1, SceneComponentCaptureSessionV1, SceneExactRateV1, SceneVerifiedPngV1, } from './types.js';
8
+ export * from './sceneShotPlan.js';
9
+ export * from './slabDescriptor.js';
3
10
  export type { EmphasisWord } from './emphasis.js';
4
11
  export type { DocNode, TranscriptUtterance } from './captions.js';
5
12
  export { buildEmphasisSet, isEmphasized } from './emphasis.js';
6
13
  export { extractCaptionWordsFromDoc, sliceTranscriptWords, splitIntoSentences } from './captions.js';
7
- export { compositionToRenderInput, referencedMediaIds, assembleRenderInput, validateComposition, compositionFormatDimensions, playableSpans, assertBehindSubjectCaptionCoverage, } from './compositionRender.js';
14
+ export { compositionToRenderInput, referencedMediaIds, assembleRenderInput, assemblePreparedRenderInput, validateComposition, compositionFormatDimensions, playableSpans, assertBehindSubjectCaptionCoverage, } from './compositionRender.js';
8
15
  export { bookendFrames, resolveBookendTimeline, CARD_BOOKEND_DEFAULT_MS, VIDEO_BOOKEND_DEFAULT_MS, } from './bookends.js';
9
16
  export type { BookendTimeline } from './bookends.js';
10
17
  export { DEFAULT_FPS, DEFAULT_WIDTH, DEFAULT_HEIGHT, DEFAULT_RENDER_SETTINGS, FORMAT_PRESETS, RESOLUTION_PRESETS, bppToCrf, ensureEven, qualityToCrf, resolutionToOutputSize, } from './exportSettings.js';
@@ -0,0 +1,14 @@
1
+ import type { SceneCaptureSessionAttestationV1, SceneComponentCaptureIntentV1 } from './types.js';
2
+ /** Backward-compatible core name for the composition-owned portable field order. */
3
+ export declare const SCENE_CAPTURE_IDENTITY_FIELDS: readonly ["componentId", "sourceVersionId", "params", "assetBindings", "layoutWidth", "layoutHeight", "bakeScale", "captureFrame", "durationInFrames", "fps", "seed", "brandFacts", "fontFacts", "mediaFacts", "rasterWidth", "rasterHeight", "runtimeIdentity", "dependencyIdentity", "browserProduct", "browserVersion", "browserExecutableSha256", "headless", "rasterAffectingFlags", "os", "arch", "deviceScaleFactor", "colorProfile", "requestedGlBackend", "actualGlBackend", "actualRenderer", "gpuIdentity"];
4
+ export type SceneCaptureIdentityField = typeof SCENE_CAPTURE_IDENTITY_FIELDS[number];
5
+ export type SceneComponentCaptureIdentityV1 = Omit<SceneComponentCaptureIntentV1, 'expectedDeviceScaleFactor'> & Omit<SceneCaptureSessionAttestationV1, 'loadedRuntimeIdentity' | 'loadedDependencyIdentity' | 'observedRasterAffectingFlags'>;
6
+ export declare class SceneCaptureIdentityRefusal extends Error {
7
+ readonly path: string;
8
+ constructor(path: string, message: string);
9
+ }
10
+ export declare function canonicalSceneJsonV1(value: unknown, path?: string): string;
11
+ export declare function parseSceneComponentCaptureIntentV1(value: unknown): SceneComponentCaptureIntentV1;
12
+ export declare function parseSceneComponentCaptureIdentityV1(value: unknown): SceneComponentCaptureIdentityV1;
13
+ export declare function completeSceneComponentCaptureIdentityV1(intent: SceneComponentCaptureIntentV1, attestation: SceneCaptureSessionAttestationV1): SceneComponentCaptureIdentityV1;
14
+ export declare function canonicalSceneComponentCaptureIdentityV1(value: unknown): string;