@cueframe/kernel 0.1.1 → 0.1.2

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 (501) hide show
  1. package/dist/_members/account-model/testing/conversationStoreContract.d.ts +0 -59
  2. package/dist/_members/account-model/testing/index.d.ts +0 -5
  3. package/dist/_members/account-model/testing/restorePointStoreContract.d.ts +0 -24
  4. package/dist/_members/account-model/validators/contextFile.d.ts +0 -6
  5. package/dist/_members/account-model/validators/conversation.d.ts +0 -96
  6. package/dist/_members/account-model/validators/dashboardInsight.d.ts +0 -6
  7. package/dist/_members/account-model/validators/sessionToken.d.ts +0 -29
  8. package/dist/_members/account-model/validators/uploadToken.d.ts +0 -4
  9. package/dist/_members/account-model/validators/userSettings.d.ts +0 -4
  10. package/dist/_members/account-model/validators/workingComposition.d.ts +0 -7
  11. package/dist/_members/animate/animations/Create.d.ts +0 -19
  12. package/dist/_members/animate/animations/FadeIn.d.ts +0 -17
  13. package/dist/_members/animate/animations/GrowArrow.d.ts +0 -19
  14. package/dist/_members/animate/animations/GrowFromCenter.d.ts +0 -12
  15. package/dist/_members/animate/animations/Indicate.d.ts +0 -17
  16. package/dist/_members/animate/animations/MoveAlongPath.d.ts +0 -18
  17. package/dist/_members/animate/animations/Transform.d.ts +0 -28
  18. package/dist/_members/animate/animations/Wiggle.d.ts +0 -18
  19. package/dist/_members/animate/animations/Write.d.ts +0 -20
  20. package/dist/_members/animate/composition/AnimationGroup.d.ts +0 -21
  21. package/dist/_members/animate/composition/LaggedStart.d.ts +0 -22
  22. package/dist/_members/animate/composition/Succession.d.ts +0 -17
  23. package/dist/_members/animate/easing/rush.d.ts +0 -14
  24. package/dist/_members/animate/easing/smooth.d.ts +0 -7
  25. package/dist/_members/animate/easing/smootherstep.d.ts +0 -6
  26. package/dist/_members/animate/index.d.ts +0 -2
  27. package/dist/_members/animate/mobjects/Arrow.d.ts +0 -25
  28. package/dist/_members/animate/mobjects/BrandBox.d.ts +0 -25
  29. package/dist/_members/animate/mobjects/DiGraph.d.ts +0 -18
  30. package/dist/_members/animate/mobjects/Graph.d.ts +0 -38
  31. package/dist/_members/animate/three/ThreeCanvas.d.ts +0 -23
  32. package/dist/_members/animate/three/drei.d.ts +0 -7
  33. package/dist/_members/authoring/agent/buildTools.d.ts +0 -37
  34. package/dist/_members/authoring/agent/contextManagement.d.ts +0 -65
  35. package/dist/_members/authoring/agent/errors.d.ts +0 -9
  36. package/dist/_members/authoring/agent/memoryTool.d.ts +0 -2
  37. package/dist/_members/authoring/agent/promptCache.d.ts +0 -31
  38. package/dist/_members/authoring/agent.d.ts +0 -34
  39. package/dist/_members/authoring/capabilities.d.ts +0 -145
  40. package/dist/_members/authoring/composer/scopes.d.ts +0 -19
  41. package/dist/_members/authoring/context/brand.d.ts +0 -4
  42. package/dist/_members/authoring/context/brandTokens.d.ts +0 -4
  43. package/dist/_members/authoring/context/index.d.ts +0 -1
  44. package/dist/_members/authoring/context/timeline.d.ts +0 -15
  45. package/dist/_members/authoring/context/transcript.d.ts +0 -11
  46. package/dist/_members/authoring/context/types.d.ts +0 -4
  47. package/dist/_members/authoring/decomposer.d.ts +0 -12
  48. package/dist/_members/authoring/evaluate.d.ts +0 -26
  49. package/dist/_members/authoring/evaluator.d.ts +0 -16
  50. package/dist/_members/authoring/models/modelFactory.d.ts +0 -77
  51. package/dist/_members/authoring/motion/applyMotionPreset.d.ts +0 -12
  52. package/dist/_members/authoring/motion/materializeMotionPresetOps.d.ts +0 -7
  53. package/dist/_members/authoring/motion/shell.d.ts +0 -20
  54. package/dist/_members/authoring/pipelineTrace.d.ts +0 -19
  55. package/dist/_members/authoring/prompts/decomposerPrompt.d.ts +0 -4
  56. package/dist/_members/authoring/prompts/designReviewerPrompt.d.ts +0 -16
  57. package/dist/_members/authoring/prompts/evaluatorPrompt.d.ts +0 -4
  58. package/dist/_members/authoring/prompts/graphics.d.ts +0 -5
  59. package/dist/_members/authoring/prompts/plannerPrompt.d.ts +0 -30
  60. package/dist/_members/authoring/providers/resourceApi.d.ts +1 -20
  61. package/dist/_members/authoring/resource-routing.d.ts +0 -121
  62. package/dist/_members/authoring/resources.d.ts +0 -34
  63. package/dist/_members/authoring/scope.d.ts +0 -24
  64. package/dist/_members/authoring/tools/brandTokens.d.ts +0 -22
  65. package/dist/_members/authoring/tools/composeRoleTools.d.ts +0 -79
  66. package/dist/_members/authoring/tools/index.d.ts +0 -1
  67. package/dist/_members/authoring/tools/toolSets.d.ts +0 -50
  68. package/dist/_members/authoring/transpileComponent.d.ts +0 -34
  69. package/dist/_members/authoring/transpileHelper.d.ts +0 -18
  70. package/dist/_members/authoring/types.d.ts +0 -149
  71. package/dist/_members/brand-derivation/constants.d.ts +0 -17
  72. package/dist/_members/brand-derivation/contrastSafe.d.ts +0 -23
  73. package/dist/_members/cloud-import/CloudImportService.d.ts +0 -15
  74. package/dist/_members/cloud-import/ImportProvider.d.ts +0 -45
  75. package/dist/_members/cloud-import/MediaItemPreprocessor.d.ts +0 -9
  76. package/dist/_members/cloud-import/cloudConfig.d.ts +0 -15
  77. package/dist/_members/compose/CompositionRenderer.d.ts +0 -6
  78. package/dist/_members/compose/primitiveRegistry.d.ts +0 -64
  79. package/dist/_members/compose/sceneToRenderInput.d.ts +0 -26
  80. package/dist/_members/compose/schema.d.ts +0 -15
  81. package/dist/_members/compose/tokenResolver.d.ts +0 -11
  82. package/dist/_members/composition/audio/audioMix.d.ts +0 -34
  83. package/dist/_members/composition/audio/mixStaging.d.ts +0 -81
  84. package/dist/_members/composition/audio/musicPack.d.ts +0 -35
  85. package/dist/_members/composition/audio/musicPack.generated.d.ts +0 -6
  86. package/dist/_members/composition/audio/pack.d.ts +0 -43
  87. package/dist/_members/composition/audio/pack.generated.d.ts +0 -6
  88. package/dist/_members/composition/audio/palette.d.ts +0 -36
  89. package/dist/_members/composition/autozoom/index.d.ts +0 -32
  90. package/dist/_members/composition/brand-kit.d.ts +0 -8
  91. package/dist/_members/composition/brief/contract.d.ts +0 -90
  92. package/dist/_members/composition/color-grade.d.ts +0 -11
  93. package/dist/_members/composition/depth.d.ts +0 -19
  94. package/dist/_members/composition/fixtures/agentErrored.d.ts +0 -23
  95. package/dist/_members/composition/fonts.d.ts +0 -62
  96. package/dist/_members/composition/graphics-plan/compile.d.ts +0 -29
  97. package/dist/_members/composition/graphics-plan/index.d.ts +0 -5
  98. package/dist/_members/composition/graphics-plan/instantiateMotif.d.ts +0 -17
  99. package/dist/_members/composition/graphics-plan/motion.d.ts +0 -17
  100. package/dist/_members/composition/graphics-plan/schemas.d.ts +0 -171
  101. package/dist/_members/composition/graphics-plan/solve.d.ts +0 -19
  102. package/dist/_members/composition/invariants/clipPlacement.d.ts +0 -59
  103. package/dist/_members/composition/invariants/composition.d.ts +0 -5
  104. package/dist/_members/composition/invariants/etag.d.ts +0 -7
  105. package/dist/_members/composition/invariants/ids.d.ts +0 -6
  106. package/dist/_members/composition/invariants/keyframes.d.ts +0 -19
  107. package/dist/_members/composition/invariants/markers.d.ts +0 -6
  108. package/dist/_members/composition/invariants/time.d.ts +0 -8
  109. package/dist/_members/composition/invariants/tracks.d.ts +0 -48
  110. package/dist/_members/composition/ops/compositionOps.d.ts +4 -71
  111. package/dist/_members/composition/ops/compositionOps.shared.d.ts +30 -0
  112. package/dist/_members/composition/ops/headlessStore.d.ts +0 -24
  113. package/dist/_members/composition/ops/selectors.d.ts +0 -66
  114. package/dist/_members/composition/ops/timeline-word.d.ts +0 -5
  115. package/dist/_members/composition/ops/transcript.d.ts +0 -27
  116. package/dist/_members/composition/ops/types.d.ts +0 -51
  117. package/dist/_members/composition/primitive-catalog/catalogQuery.d.ts +0 -32
  118. package/dist/_members/composition/primitive-catalog/disabled.d.ts +0 -1
  119. package/dist/_members/composition/primitive-catalog/index.d.ts +0 -11
  120. package/dist/_members/composition/primitive-catalog/paramValidation.d.ts +0 -50
  121. package/dist/_members/composition/primitive-catalog/projection.d.ts +0 -39
  122. package/dist/_members/composition/primitive-catalog/types.d.ts +0 -78
  123. package/dist/_members/composition/projection/behind-placement.d.ts +0 -40
  124. package/dist/_members/composition/projection/behind-readiness.d.ts +14 -89
  125. package/dist/_members/composition/projection/brandKit.d.ts +0 -142
  126. package/dist/_members/composition/projection/cardTokens.d.ts +0 -65
  127. package/dist/_members/composition/projection/composition-floor.d.ts +0 -179
  128. package/dist/_members/composition/projection/cropProjection.d.ts +0 -75
  129. package/dist/_members/composition/projection/occlusion-budget.d.ts +0 -37
  130. package/dist/_members/composition/projection/reframe-readiness.d.ts +4 -111
  131. package/dist/_members/composition/projection/safe-zones.d.ts +0 -29
  132. package/dist/_members/composition/reframe/aspectLoss.d.ts +12 -35
  133. package/dist/_members/composition/reframe/coverage.d.ts +0 -40
  134. package/dist/_members/composition/reframe/derive.d.ts +0 -21
  135. package/dist/_members/composition/reframe/index.d.ts +0 -60
  136. package/dist/_members/composition/reframe/kenBurns.d.ts +0 -37
  137. package/dist/_members/composition/reframe/shotScale.d.ts +0 -75
  138. package/dist/_members/composition/reframe/trajectory.d.ts +0 -65
  139. package/dist/_members/composition/timeline/compound.d.ts +0 -31
  140. package/dist/_members/composition/timeline/intent.d.ts +0 -29
  141. package/dist/_members/composition/timeline/keyframes.d.ts +0 -43
  142. package/dist/_members/composition/timeline/link.d.ts +0 -27
  143. package/dist/_members/composition/timeline/occupancy.d.ts +1 -42
  144. package/dist/_members/composition/timeline/placement.d.ts +5 -52
  145. package/dist/_members/composition/timeline/plan.d.ts +5 -53
  146. package/dist/_members/composition/timeline/resolve.d.ts +0 -36
  147. package/dist/_members/composition/timeline/trims.d.ts +0 -49
  148. package/dist/_members/composition/validators/brandKit.d.ts +0 -29
  149. package/dist/_members/composition/validators/composePlan.d.ts +0 -39
  150. package/dist/_members/composition/validators/composition.d.ts +30 -513
  151. package/dist/_members/composition/validators/graphicKinds.d.ts +0 -28
  152. package/dist/_members/composition/validators/render.d.ts +23 -23
  153. package/dist/_members/composition-ops/alphaLayers.d.ts +0 -56
  154. package/dist/_members/composition-ops/index.d.ts +27 -148
  155. package/dist/_members/composition-ops/materializeGrid.d.ts +0 -28
  156. package/dist/_members/composition-ops/opRecorder.d.ts +0 -34
  157. package/dist/_members/composition-ops/recordingStore.d.ts +0 -16
  158. package/dist/_members/composition-ops/replaceRegion.d.ts +0 -48
  159. package/dist/_members/composition-ops/testFixtures.d.ts +0 -14
  160. package/dist/_members/convex-api/api.d.ts +0 -3
  161. package/dist/_members/convex-api/dataModel.d.ts +0 -2
  162. package/dist/_members/core/index.d.ts +1 -1
  163. package/dist/_members/core/render/bookends.d.ts +0 -44
  164. package/dist/_members/core/render/captions.d.ts +0 -42
  165. package/dist/_members/core/render/compositionRender.d.ts +1 -180
  166. package/dist/_members/core/render/deriveTrajectory.d.ts +0 -140
  167. package/dist/_members/core/render/emphasis.d.ts +0 -6
  168. package/dist/_members/core/render/eval/cropBox.d.ts +0 -69
  169. package/dist/_members/core/render/eval/inclusion.d.ts +0 -39
  170. package/dist/_members/core/render/eval/index.d.ts +0 -58
  171. package/dist/_members/core/render/eval/metrics.d.ts +0 -36
  172. package/dist/_members/core/render/exportSettings.d.ts +4 -12
  173. package/dist/_members/core/render/index.d.ts +1 -1
  174. package/dist/_members/core/render/mapFaceToPerson.d.ts +0 -27
  175. package/dist/_members/core/render/types.d.ts +1 -184
  176. package/dist/_members/core/render/variantKeys.d.ts +1 -0
  177. package/dist/_members/core/render/vcam/cameraPath.d.ts +0 -44
  178. package/dist/_members/core/render/vcam/constants.d.ts +0 -93
  179. package/dist/_members/core/render/vcam/errorCodes.d.ts +0 -28
  180. package/dist/_members/core/render/vcam/framing.d.ts +0 -76
  181. package/dist/_members/core/render/vcam/requiredRegion.d.ts +0 -71
  182. package/dist/_members/core/render/vcam/shots.d.ts +0 -40
  183. package/dist/_members/core/render/vcam/subjectSet.d.ts +0 -85
  184. package/dist/_members/core/select/errorCodes.d.ts +0 -25
  185. package/dist/_members/core/select/index.d.ts +0 -20
  186. package/dist/_members/core/select/model.d.ts +0 -79
  187. package/dist/_members/core/select/select.d.ts +0 -49
  188. package/dist/_members/core/select/stabilize.d.ts +0 -102
  189. package/dist/_members/core/types.d.ts +0 -1
  190. package/dist/_members/director/ai-sdk/chunks.d.ts +14 -0
  191. package/dist/_members/director/ai-sdk/context.d.ts +6 -0
  192. package/dist/_members/director/ai-sdk/generationTool.d.ts +8 -0
  193. package/dist/_members/director/ai-sdk/index.d.ts +4 -0
  194. package/dist/_members/director/ai-sdk/messages.d.ts +292 -0
  195. package/dist/_members/director/domain/chat.d.ts +357 -0
  196. package/dist/_members/director/domain/generation.d.ts +1 -0
  197. package/dist/_members/director/domain/index.d.ts +3 -0
  198. package/dist/_members/director/domain/ports.d.ts +32 -0
  199. package/dist/_members/director/index.d.ts +2 -0
  200. package/dist/_members/director/testing/contract.d.ts +52 -0
  201. package/dist/_members/director/testing/index.d.ts +1 -0
  202. package/dist/_members/errors/registry.d.ts +0 -32
  203. package/dist/_members/foundation/codes/index.d.ts +0 -21
  204. package/dist/_members/mcp/adapter.d.ts +1 -84
  205. package/dist/_members/mcp/burnedNames.d.ts +0 -16
  206. package/dist/_members/mcp/core.d.ts +1 -81
  207. package/dist/_members/mcp/curation.d.ts +0 -112
  208. package/dist/_members/mcp/executor.d.ts +0 -49
  209. package/dist/_members/mcp/format.d.ts +0 -6
  210. package/dist/_members/mcp/generated/catalogPreviews.d.ts +0 -1
  211. package/dist/_members/mcp/generated/operations.d.ts +0 -23
  212. package/dist/_members/mcp/internalLoopTools.d.ts +0 -23
  213. package/dist/_members/mcp/prompts.d.ts +0 -16
  214. package/dist/_members/mcp/resources.d.ts +0 -13
  215. package/dist/_members/mcp/server.d.ts +0 -61
  216. package/dist/_members/mcp/wait.d.ts +0 -22
  217. package/dist/_members/mcp/x402Meta.d.ts +0 -44
  218. package/dist/_members/media-model/generation.d.ts +314 -0
  219. package/dist/_members/media-model/index.d.ts +1 -0
  220. package/dist/_members/media-model/media-kind.d.ts +0 -27
  221. package/dist/_members/media-model/transcriptSearch.d.ts +0 -42
  222. package/dist/_members/nle-export/fcpxml.d.ts +0 -13
  223. package/dist/_members/nle-export/index.d.ts +0 -6
  224. package/dist/_members/nle-export/types.d.ts +0 -26
  225. package/dist/_members/nle-export/xml/index.d.ts +0 -8
  226. package/dist/_members/nle-export/xml-utils.d.ts +0 -12
  227. package/dist/_members/perception/activeSpeaker.d.ts +0 -94
  228. package/dist/_members/perception/audioQuality.d.ts +0 -64
  229. package/dist/_members/perception/energyBeat.d.ts +0 -81
  230. package/dist/_members/perception/identityMatch.d.ts +0 -66
  231. package/dist/_members/perception/index.d.ts +0 -52
  232. package/dist/_members/perception/visualQuality.d.ts +0 -73
  233. package/dist/_members/plane/conformance.d.ts +0 -59
  234. package/dist/_members/plane/contract.d.ts +0 -29
  235. package/dist/_members/plane/index.d.ts +0 -15
  236. package/dist/_members/primitives/backgrounds/animated-bar-chart/index.d.ts +0 -13
  237. package/dist/_members/primitives/backgrounds/animated-line-chart/index.d.ts +0 -14
  238. package/dist/_members/primitives/backgrounds/dither-gradient-bg/index.d.ts +0 -14
  239. package/dist/_members/primitives/backgrounds/dynamic-grid/index.d.ts +0 -8
  240. package/dist/_members/primitives/backgrounds/ecosystem-constellation/index.d.ts +0 -8
  241. package/dist/_members/primitives/backgrounds/infinite-marquee/index.d.ts +0 -8
  242. package/dist/_members/primitives/backgrounds/mesh-gradient-bg/index.d.ts +0 -8
  243. package/dist/_members/primitives/backgrounds/perspective-marquee/index.d.ts +0 -8
  244. package/dist/_members/primitives/backgrounds/silk-flow-bg/index.d.ts +0 -17
  245. package/dist/_members/primitives/backgrounds/vector-field/index.d.ts +0 -14
  246. package/dist/_members/primitives/backgrounds/volumetric-rays/index.d.ts +0 -18
  247. package/dist/_members/primitives/captions/Captions.d.ts +0 -24
  248. package/dist/_members/primitives/captions/index.d.ts +0 -15
  249. package/dist/_members/primitives/captions/paginate.d.ts +0 -21
  250. package/dist/_members/primitives/captions/placement.d.ts +0 -30
  251. package/dist/_members/primitives/effects/blur/index.d.ts +0 -16
  252. package/dist/_members/primitives/effects/color-grade/index.d.ts +0 -20
  253. package/dist/_members/primitives/effects/grain/index.d.ts +0 -12
  254. package/dist/_members/primitives/effects/parallax/index.d.ts +0 -13
  255. package/dist/_members/primitives/effects/particles/index.d.ts +0 -16
  256. package/dist/_members/primitives/effects/pulsing-indicator/index.d.ts +0 -10
  257. package/dist/_members/primitives/effects/spotlight-card/index.d.ts +0 -8
  258. package/dist/_members/primitives/effects/spring-pop-in/index.d.ts +0 -10
  259. package/dist/_members/primitives/effects/success-confetti/index.d.ts +0 -8
  260. package/dist/_members/primitives/effects/vignette/index.d.ts +0 -12
  261. package/dist/_members/primitives/hero-text/HeroText.d.ts +0 -17
  262. package/dist/_members/primitives/hero-text/config.d.ts +0 -10
  263. package/dist/_members/primitives/hero-text/index.d.ts +0 -14
  264. package/dist/_members/primitives/index.d.ts +0 -8
  265. package/dist/_members/primitives/layouts/chat-to-preview-layout/index.d.ts +0 -8
  266. package/dist/_members/primitives/layouts/infinite-bento-pan/index.d.ts +0 -8
  267. package/dist/_members/primitives/layouts/letterbox/index.d.ts +0 -15
  268. package/dist/_members/primitives/layouts/photo-grid/index.d.ts +0 -17
  269. package/dist/_members/primitives/layouts/picture-in-picture/index.d.ts +0 -21
  270. package/dist/_members/primitives/layouts/split-screen/index.d.ts +0 -15
  271. package/dist/_members/primitives/layouts/staggered-bento-grid/index.d.ts +0 -8
  272. package/dist/_members/primitives/lib/easings.d.ts +0 -27
  273. package/dist/_members/primitives/lib/palette.d.ts +0 -22
  274. package/dist/_members/primitives/lib/preview.d.ts +0 -22
  275. package/dist/_members/primitives/lib/schema.d.ts +0 -36
  276. package/dist/_members/primitives/lib/seeded-random.d.ts +0 -23
  277. package/dist/_members/primitives/lib/text/contrast.d.ts +0 -17
  278. package/dist/_members/primitives/lib/text/fill.d.ts +0 -5
  279. package/dist/_members/primitives/lib/text/fitText.d.ts +0 -37
  280. package/dist/_members/primitives/lib/text/marker.d.ts +0 -10
  281. package/dist/_members/primitives/lib/text/motion.d.ts +0 -46
  282. package/dist/_members/primitives/lib/text/recolor.d.ts +0 -11
  283. package/dist/_members/primitives/lib/text/spec.d.ts +0 -39
  284. package/dist/_members/primitives/lib/text/stage.d.ts +0 -17
  285. package/dist/_members/primitives/lib/text/typeface.d.ts +0 -11
  286. package/dist/_members/primitives/lib/tokens.d.ts +0 -87
  287. package/dist/_members/primitives/lib/types.d.ts +0 -141
  288. package/dist/_members/primitives/scenes/changelog-bite/index.d.ts +0 -12
  289. package/dist/_members/primitives/scenes/hero-device-assemble/index.d.ts +0 -8
  290. package/dist/_members/primitives/scenes/landing-code-showcase/index.d.ts +0 -8
  291. package/dist/_members/primitives/scenes/live-code-compilation/index.d.ts +0 -8
  292. package/dist/_members/primitives/scenes/pricing-tier-focus/index.d.ts +0 -8
  293. package/dist/_members/primitives/scenes/product-launch-trailer/index.d.ts +0 -8
  294. package/dist/_members/primitives/scenes/terminal-to-browser-deploy/index.d.ts +0 -8
  295. package/dist/_members/primitives/subject-foreground/SubjectForeground.d.ts +0 -38
  296. package/dist/_members/primitives/subject-foreground/index.d.ts +0 -21
  297. package/dist/_members/primitives/text/blur-reveal/index.d.ts +0 -9
  298. package/dist/_members/primitives/text/cinematic-title/index.d.ts +0 -14
  299. package/dist/_members/primitives/text/inline-highlight/index.d.ts +0 -11
  300. package/dist/_members/primitives/text/karaoke/index.d.ts +0 -13
  301. package/dist/_members/primitives/text/kinetic-type/index.d.ts +0 -15
  302. package/dist/_members/primitives/text/lower-third/index.d.ts +0 -14
  303. package/dist/_members/primitives/text/marker-highlight/index.d.ts +0 -10
  304. package/dist/_members/primitives/text/masked-slide-reveal/index.d.ts +0 -8
  305. package/dist/_members/primitives/text/matrix-decode/index.d.ts +0 -9
  306. package/dist/_members/primitives/text/quote-card/index.d.ts +0 -9
  307. package/dist/_members/primitives/text/rgb-glitch-text/index.d.ts +0 -13
  308. package/dist/_members/primitives/text/shimmer-sweep/index.d.ts +0 -10
  309. package/dist/_members/primitives/text/slot-machine-roll/index.d.ts +0 -8
  310. package/dist/_members/primitives/text/staggered-fade-up/index.d.ts +0 -12
  311. package/dist/_members/primitives/text/stat-counter/index.d.ts +0 -13
  312. package/dist/_members/primitives/text/strikethrough-replace/index.d.ts +0 -9
  313. package/dist/_members/primitives/text/text-effect/index.d.ts +0 -17
  314. package/dist/_members/primitives/text/text-fade-replace/index.d.ts +0 -8
  315. package/dist/_members/primitives/text/token-stream/index.d.ts +0 -11
  316. package/dist/_members/primitives/text/tracking-in/index.d.ts +0 -8
  317. package/dist/_members/primitives/text/typewriter/index.d.ts +0 -12
  318. package/dist/_members/primitives/transitions/chromatic-aberration-wipe/index.d.ts +0 -11
  319. package/dist/_members/primitives/transitions/code-diff-wipe/index.d.ts +0 -8
  320. package/dist/_members/primitives/transitions/directional-wipe/index.d.ts +0 -10
  321. package/dist/_members/primitives/transitions/frosted-glass-wipe/index.d.ts +0 -10
  322. package/dist/_members/primitives/transitions/glitch-cut/index.d.ts +0 -3
  323. package/dist/_members/primitives/transitions/grid-pixelate-wipe/index.d.ts +0 -14
  324. package/dist/_members/primitives/transitions/ink-wipe/index.d.ts +0 -3
  325. package/dist/_members/primitives/transitions/kinetic-type-mask/index.d.ts +0 -12
  326. package/dist/_members/primitives/transitions/light-leak/index.d.ts +0 -3
  327. package/dist/_members/primitives/transitions/luma-matte/index.d.ts +0 -2
  328. package/dist/_members/primitives/transitions/morph/index.d.ts +0 -2
  329. package/dist/_members/primitives/transitions/spatial-push/index.d.ts +0 -10
  330. package/dist/_members/primitives/transitions/swipe-transition-wipe/index.d.ts +0 -13
  331. package/dist/_members/primitives/transitions/zoom-through/index.d.ts +0 -2
  332. package/dist/_members/primitives/transitions/zoom-through-transition/index.d.ts +0 -9
  333. package/dist/_members/primitives/ui-blocks/ai-generate-overlay/index.d.ts +0 -8
  334. package/dist/_members/primitives/ui-blocks/ai-generation-canvas/index.d.ts +0 -8
  335. package/dist/_members/primitives/ui-blocks/badge-pop/index.d.ts +0 -11
  336. package/dist/_members/primitives/ui-blocks/before-after-slider/index.d.ts +0 -11
  337. package/dist/_members/primitives/ui-blocks/benchmark-bars/index.d.ts +0 -11
  338. package/dist/_members/primitives/ui-blocks/bounding-box-selector/index.d.ts +0 -8
  339. package/dist/_members/primitives/ui-blocks/browser-flow/index.d.ts +0 -8
  340. package/dist/_members/primitives/ui-blocks/brush-stroke-simulator/index.d.ts +0 -18
  341. package/dist/_members/primitives/ui-blocks/chat-exchange/index.d.ts +0 -10
  342. package/dist/_members/primitives/ui-blocks/code-accordion/index.d.ts +0 -8
  343. package/dist/_members/primitives/ui-blocks/context-meter/index.d.ts +0 -11
  344. package/dist/_members/primitives/ui-blocks/cursor-flow/index.d.ts +0 -11
  345. package/dist/_members/primitives/ui-blocks/dashboard-populate/index.d.ts +0 -8
  346. package/dist/_members/primitives/ui-blocks/data-flow-pipes/index.d.ts +0 -9
  347. package/dist/_members/primitives/ui-blocks/device-mockup-zoom/index.d.ts +0 -8
  348. package/dist/_members/primitives/ui-blocks/drag-and-drop-flow/index.d.ts +0 -8
  349. package/dist/_members/primitives/ui-blocks/eval-scorecard/index.d.ts +0 -11
  350. package/dist/_members/primitives/ui-blocks/glass-code-block/index.d.ts +0 -8
  351. package/dist/_members/primitives/ui-blocks/image-expand-to-fullscreen/index.d.ts +0 -8
  352. package/dist/_members/primitives/ui-blocks/metric-gauge/index.d.ts +0 -12
  353. package/dist/_members/primitives/ui-blocks/morphing-modal/index.d.ts +0 -8
  354. package/dist/_members/primitives/ui-blocks/pipeline-journey/index.d.ts +0 -8
  355. package/dist/_members/primitives/ui-blocks/progress-steps/index.d.ts +0 -8
  356. package/dist/_members/primitives/ui-blocks/reasoning-trace/index.d.ts +0 -10
  357. package/dist/_members/primitives/ui-blocks/simulated-cursor/index.d.ts +0 -8
  358. package/dist/_members/primitives/ui-blocks/terminal-simulator/index.d.ts +0 -19
  359. package/dist/_members/primitives/ui-blocks/toast-notification/index.d.ts +0 -8
  360. package/dist/_members/primitives/ui-blocks/tool-call-stack/index.d.ts +0 -8
  361. package/dist/_members/primitives/ui-blocks/tool-menu-slide-in/index.d.ts +0 -8
  362. package/dist/_members/primitives/ui-blocks/visual-docs-snippet/index.d.ts +0 -8
  363. package/dist/_members/primitives/ui-blocks/voice-waveform/index.d.ts +0 -11
  364. package/dist/_members/primitives/workspace.d.ts +0 -29
  365. package/dist/_members/render-harness/browserOptions.d.ts +11 -0
  366. package/dist/_members/render-harness/browserOptions.d.ts.map +1 -0
  367. package/dist/_members/render-harness/cardRender.d.ts +0 -40
  368. package/dist/_members/render-harness/cardRender.d.ts.map +1 -1
  369. package/dist/_members/render-harness/contractRender.d.ts +0 -16
  370. package/dist/_members/render-harness/contractRender.d.ts.map +1 -1
  371. package/dist/_members/render-harness/extractSegments.d.ts +0 -37
  372. package/dist/_members/render-harness/extractSegments.d.ts.map +1 -1
  373. package/dist/_members/render-harness/index.d.ts +0 -12
  374. package/dist/_members/render-harness/index.d.ts.map +1 -1
  375. package/dist/_members/render-harness/localRender.d.ts +1 -110
  376. package/dist/_members/render-harness/localRender.d.ts.map +1 -1
  377. package/dist/_members/render-harness/materializeSources.d.ts +0 -22
  378. package/dist/_members/render-harness/materializeSources.d.ts.map +1 -1
  379. package/dist/_members/render-harness/mediaServer.d.ts +0 -16
  380. package/dist/_members/render-harness/mediaServer.d.ts.map +1 -1
  381. package/dist/_members/render-harness/renderInputAssets.d.ts +0 -45
  382. package/dist/_members/render-harness/renderInputAssets.d.ts.map +1 -1
  383. package/dist/_members/render-harness/resolveAssets.d.ts +0 -24
  384. package/dist/_members/render-harness/resolveAssets.d.ts.map +1 -1
  385. package/dist/_members/render-harness/sandboxGlobalSpecs.d.ts +0 -14
  386. package/dist/_members/render-harness/sandboxGlobalSpecs.d.ts.map +1 -1
  387. package/dist/account-model/validators.js +1 -1
  388. package/dist/account-model.js +1 -1
  389. package/dist/animate.js +0 -15
  390. package/dist/authoring/build-tools.js +8 -8
  391. package/dist/authoring/composer.js +0 -20
  392. package/dist/authoring/context.js +6 -6
  393. package/dist/authoring/pipelineTrace.js +1 -1
  394. package/dist/authoring/prompts.js +1 -1
  395. package/dist/authoring/resource-routing.js +1 -1
  396. package/dist/authoring/resources.js +1 -1
  397. package/dist/authoring/tools.js +7 -7
  398. package/dist/authoring.js +14 -80
  399. package/dist/{chunk-TWQOKKAF.js → chunk-23HFEKV7.js} +0 -6
  400. package/dist/{chunk-EA6MYCYW.js → chunk-2B5VJZHL.js} +14 -25
  401. package/dist/chunk-73DQTUWY.js +131 -0
  402. package/dist/{chunk-HI4UTTPS.js → chunk-AO744WIK.js} +1 -43
  403. package/dist/chunk-BADZHXLR.js +0 -0
  404. package/dist/{chunk-GA23TRNR.js → chunk-BKHGL4MB.js} +5 -13
  405. package/dist/{chunk-PDYO3DOJ.js → chunk-BZZTVOGG.js} +6 -55
  406. package/dist/{chunk-AP6ZIVAV.js → chunk-CAJQ7H5A.js} +17 -17
  407. package/dist/{chunk-7FO3ZJ43.js → chunk-DCVJWGIA.js} +1 -9
  408. package/dist/{chunk-AQBREB5O.js → chunk-DWLNPNC4.js} +1 -4
  409. package/dist/{chunk-SW336CJP.js → chunk-DYZE7JZA.js} +3 -26
  410. package/dist/{chunk-HCCBDJLW.js → chunk-EP2Y6M2J.js} +0 -4
  411. package/dist/{chunk-ZE76SSRT.js → chunk-FMODQD5P.js} +0 -6
  412. package/dist/chunk-FTVZF4GO.js +0 -0
  413. package/dist/{chunk-PMY24FUD.js → chunk-G5BFI32U.js} +1 -1
  414. package/dist/{chunk-LD5ZOUFT.js → chunk-GF52TW4I.js} +0 -4
  415. package/dist/{chunk-ABL557OT.js → chunk-GMD33ZD7.js} +1 -8
  416. package/dist/{chunk-ZWMV6DD2.js → chunk-ICSZF37W.js} +10 -162
  417. package/dist/chunk-IEXAKOEX.js +113 -0
  418. package/dist/{chunk-UY4SWJVE.js → chunk-K2IUBCND.js} +0 -12
  419. package/dist/chunk-LJ5W4ZBU.js +146 -0
  420. package/dist/chunk-LLUW26BS.js +255 -0
  421. package/dist/{chunk-JJ6XD7NG.js → chunk-PIURX6IZ.js} +70 -2
  422. package/dist/{chunk-MMEJ3Y7E.js → chunk-QETYXKQQ.js} +1 -10
  423. package/dist/{chunk-YX2GSJK7.js → chunk-RP4SXXLJ.js} +1 -1
  424. package/dist/{chunk-P727GZVO.js → chunk-SAMQUUO5.js} +3 -5
  425. package/dist/{chunk-RF7U3SCL.js → chunk-TD347SSX.js} +3 -11
  426. package/dist/{chunk-TOJEXFXL.js → chunk-TFGKUWHY.js} +1 -88
  427. package/dist/{chunk-UHGSZZDI.js → chunk-TPA6PYN2.js} +1 -11
  428. package/dist/{chunk-OLFOPQCA.js → chunk-UQSOS726.js} +4 -18
  429. package/dist/{chunk-GBRNYH7W.js → chunk-V24L35GM.js} +0 -11
  430. package/dist/{chunk-MBCXCJOE.js → chunk-VFMW3JUY.js} +1 -1
  431. package/dist/{chunk-DK2ODBNT.js → chunk-VHF66LCQ.js} +16 -98
  432. package/dist/{chunk-JMURQODM.js → chunk-VZ7TYX6Z.js} +0 -1
  433. package/dist/{chunk-SIGGQRY2.js → chunk-W3SIWT7J.js} +5030 -4412
  434. package/dist/{chunk-W35ZMOXB.js → chunk-WPZKOVYF.js} +0 -5
  435. package/dist/chunk-WZH57M53.js +494 -0
  436. package/dist/{chunk-AYVJXDLB.js → chunk-XHGZ2E77.js} +0 -2
  437. package/dist/{chunk-HY3RIEZW.js → chunk-XQ72DZKJ.js} +1 -1
  438. package/dist/{chunk-7DHP4ESU.js → chunk-YLDMAZZE.js} +0 -10
  439. package/dist/{chunk-FYZVH3MC.js → chunk-YQ7FFW3G.js} +0 -11
  440. package/dist/chunk-ZPLJ24OV.js +93 -0
  441. package/dist/cloud-import/multipart.js +1 -1
  442. package/dist/cloud-import.js +9 -16
  443. package/dist/compose/renderer.js +18 -18
  444. package/dist/compose.js +21 -21
  445. package/dist/composition/audio.js +1 -1
  446. package/dist/composition/brand-kit.js +0 -5
  447. package/dist/composition/graphics-plan.js +4 -4
  448. package/dist/composition/ops.js +5 -5
  449. package/dist/composition/primitive-catalog.js +1 -1
  450. package/dist/composition/projection.js +11 -3
  451. package/dist/composition/reframe/kenBurns.js +0 -4
  452. package/dist/composition/reframe.js +4 -2
  453. package/dist/composition/timeline.js +1 -1
  454. package/dist/composition/validators/graphic-kinds.js +1 -1
  455. package/dist/composition/validators.js +4 -4
  456. package/dist/composition-ops.js +16 -135
  457. package/dist/composition.js +15 -7
  458. package/dist/context-JLLU3MYD.js +14 -0
  459. package/dist/core/render.js +9 -7
  460. package/dist/core/select.js +2 -6
  461. package/dist/core.js +5 -7
  462. package/dist/director/ai-sdk.d.ts +1 -0
  463. package/dist/director/ai-sdk.js +33 -0
  464. package/dist/director/domain.d.ts +1 -0
  465. package/dist/director/domain.js +62 -0
  466. package/dist/director/testing.d.ts +1 -0
  467. package/dist/director/testing.js +22 -0
  468. package/dist/director.d.ts +1 -0
  469. package/dist/director.js +86 -0
  470. package/dist/errors.js +1 -1
  471. package/dist/foundation.js +1 -0
  472. package/dist/mcp/adapter.js +4 -64
  473. package/dist/mcp/core.js +1 -1
  474. package/dist/mcp/curation.js +1 -1
  475. package/dist/mcp/server.js +4 -4
  476. package/dist/mcp.js +4 -4
  477. package/dist/media-model/generation.d.ts +1 -0
  478. package/dist/media-model/generation.js +40 -0
  479. package/dist/media-model.js +38 -6
  480. package/dist/nle-export.js +21 -21
  481. package/dist/plane/contract.js +0 -3
  482. package/dist/primitives/backgrounds.js +2 -2
  483. package/dist/primitives/captions.js +0 -5
  484. package/dist/primitives/effects.js +2 -2
  485. package/dist/primitives/hero-text.js +2 -2
  486. package/dist/primitives/layouts.js +2 -2
  487. package/dist/primitives/lib/index.js +17 -17
  488. package/dist/primitives/lib/text/fitText.js +1 -1
  489. package/dist/primitives/lib/tokens.js +1 -1
  490. package/dist/primitives/lib.js +17 -17
  491. package/dist/primitives/scenes.js +2 -2
  492. package/dist/primitives/text.js +2 -2
  493. package/dist/primitives/ui-blocks.js +4 -4
  494. package/dist/primitives.js +21 -21
  495. package/dist/render-harness/sandboxGlobalSpecs.js +1 -1
  496. package/dist/render-harness.js +24 -41
  497. package/package.json +37 -21
  498. package/dist/chunk-6EQXLEP6.js +0 -194
  499. package/dist/chunk-OCFDUCF4.js +0 -504
  500. package/dist/chunk-PODIYN2K.js +0 -742
  501. package/dist/context-YWUZDG5X.js +0 -14
@@ -22,47 +22,21 @@ export interface OverlayParams {
22
22
  xPercent?: number;
23
23
  yPercent?: number;
24
24
  fontSize?: number;
25
- /** heroText (depth grammar §3.4): font size as % of composition height (default 14). */
26
25
  fontSizePct?: number;
27
- /** heroText: per-word reveal offsets in ms relative to the overlay's start. */
28
26
  revealAtMs?: number[];
29
- /** heroText: display weight override (default 800). */
30
27
  fontWeight?: number;
31
- /**
32
- * Behind-subject overlays only: `false` opts out of the atmospheric depth
33
- * treatment (brightness/saturation/blur — `BEHIND_ATMOSPHERE`) the behind
34
- * host applies by default. Ignored on front overlays.
35
- */
36
28
  atmosphere?: boolean;
37
- /** card overlay: the authored HTML/CSS fragment, rendered VERBATIM via
38
- * dangerouslySetInnerHTML inside the region box (OverlayContent case 'card'). */
39
29
  html?: string;
40
- /** card overlay: brand-token map (literal | `$brand:` ref per value),
41
- * resolved at render into `--cf-<key>` CSS custom properties on the wrapper box. */
42
30
  cssTokens?: Record<string, string>;
43
31
  }
44
32
  export interface CompositionClip {
45
33
  id: string;
46
34
  src: string;
47
- /** Proxy URL for preview playback (lighter H.264 transcode) */
48
35
  previewSrc?: string;
49
36
  sourceInFrames: number;
50
37
  sourceOutFrames: number;
51
38
  timelineStartFrames: number;
52
39
  durationInFrames: number;
53
- /** The clip's `trim.start` in output-fps frames. With `excludedRanges` the
54
- * clip plays multiple playable spans whose `sourceInFrames` are source-
55
- * absolute; the crop trajectory is clip-relative (frame 0 = trim.start), so
56
- * the renderer needs this to map output frames → trajectory frames across the
57
- * trimmed gaps. Absent ⇒ 0 (clip starts at its source origin).
58
- *
59
- * NOT guaranteed non-negative: it is a PURE OFFSET, not a validated
60
- * trim.start echo. When a sandbox harness physically trims the source file
61
- * (materializeSources' shallow-seek), sourceInFrames/sourceOutFrames/
62
- * trimStartFrames are all rebased by the same shift into segment-file
63
- * coordinates — only their differences are meaningful, and trimStartFrames
64
- * can legitimately go negative. Consumers must never validate or seek on
65
- * its absolute value. */
66
40
  trimStartFrames?: number;
67
41
  playbackRate?: number;
68
42
  volume?: number;
@@ -70,112 +44,28 @@ export interface CompositionClip {
70
44
  opacity?: number;
71
45
  scale?: number;
72
46
  rotation?: number;
73
- /**
74
- * TIME-VARYING channels, keyed by param path, times CLIP-RELATIVE in seconds.
75
- * When a param appears here it overrides its scalar sibling above for the
76
- * clip's duration; the scalar remains what a non-animating consumer reads.
77
- * Interpolation is `valueAt` from `@cueframe/composition/timeline` — one
78
- * implementation, because the editor, this renderer and the evaluator must
79
- * agree or the motion the judge grades is not the motion that ships.
80
- */
81
47
  animate?: Record<string, Array<{
82
48
  time: number;
83
49
  value: number;
84
50
  easing?: unknown;
85
51
  }>>;
86
- /**
87
- * Output-space placement rect (fractions of the output frame, 0..1).
88
- * Default (absent) = full frame {x:0,y:0,w:1,h:1}. A sub-frame region makes
89
- * the clip occupy only that rect of the output — the foundation for
90
- * picture-in-picture / split-screen / inset cards, where lower tracks show
91
- * through the uncovered area. The clip's source is fit into the region per
92
- * `fit`. Mirrors `Region` on the wire (composition.ts).
93
- *
94
- * NOTE: the per-frame crop pipeline (CropFromTrajectory) renders against the
95
- * FULL output frame; composing a sub-frame region with a non-identity crop
96
- * requires the crop to target the region's aspect. The renderer applies the
97
- * placement; full region×crop compose is wired incrementally.
98
- */
99
52
  region?: {
100
53
  x: number;
101
54
  y: number;
102
55
  w: number;
103
56
  h: number;
104
57
  };
105
- /** How the source fills `region`: 'cover' (fill+crop, default) or 'contain' (letterbox). */
106
58
  fit?: 'cover' | 'contain';
107
59
  mediaType?: 'video' | 'audio' | 'image';
108
- /**
109
- * Ken-Burns motion preset for still-image clips (mediaType === 'image').
110
- * A convenience the renderer's <StillCrop> lowers to a `reframe`
111
- * (kenBurnsToReframe) and runs through the unified per-frame crop renderer.
112
- * Default 'in' (gentle zoom-in). Ignored for video / audio clips.
113
- */
114
60
  kenBurns?: 'in' | 'out' | 'pan-l' | 'pan-r' | 'none';
115
- /**
116
- * Authored camera channel for a still (mediaType === 'image'). When present,
117
- * <StillCrop> derives the still trajectory from THIS (arbitrary per-frame
118
- * point-zoom + center) instead of lowering `kenBurns` — so an image can zoom
119
- * into a specific point (a UI element), not just the centered kenBurns
120
- * presets. `kenBurns` is the fallback when no reframe was authored.
121
- */
122
61
  reframe?: Reframe;
123
- /**
124
- * Loop the underlying media until the clip's duration runs out. Used by
125
- * gif enrichment clips (whose source mp4 may be shorter than the moment)
126
- * and audio ambient beds. Ignored on `mediaType === 'image'`.
127
- */
128
62
  loop?: boolean;
129
63
  transitionIn?: 'fade' | 'dissolve' | 'wipe' | 'none';
130
64
  transitionDurationFrames?: number;
131
- /** Original clip ID — set on sub-clips produced by splitting around deleted ranges. */
132
65
  parentId?: string;
133
- /**
134
- * Pre-resolved crop-trajectory JSON URL for render-time per-frame
135
- * cropping. When set, the renderer reads the trajectory's per-segment
136
- * per-frame normalized centers and applies a CSS transform on the
137
- * raw source video to produce the cropped output.
138
- *
139
- * 2026-05-28 substrate revision: replaces the prior baked-mp4
140
- * substitution + variantMaskUrl combo. Bake produces only this JSON
141
- * now; render-side does the pixel pushing. See
142
- * packages/execution/core/src/render/deriveTrajectory.ts for the producer
143
- * (TS-side, derived inline at render) and CropFromTrajectory.tsx for the
144
- * consumer.
145
- */
146
66
  cropTrajectoryUrl?: string;
147
- /**
148
- * The same per-frame crop trajectory, IN MEMORY rather than behind a URL.
149
- *
150
- * The editor derives a clip's trajectory client-side — `deriveTrajectory` is
151
- * pure, and the cached subject track it reads arrives presigned on the media
152
- * row — so there is no object to fetch and nothing to presign. Handing the
153
- * renderer a URL would mean minting a blob one per keystroke, into a
154
- * module-level per-URL cache that never evicts.
155
- *
156
- * `CropFromTrajectory` has taken an in-memory trajectory since the still path
157
- * needed one (`traj = trajectory ?? fetched`), so this is a channel to a prop
158
- * that already exists, not a second rendering path. The server render keeps
159
- * using `cropTrajectoryUrl`: its trajectory is written to R2 by an action, and
160
- * inlining it would put a per-frame series in the render snapshot.
161
- *
162
- * Exactly one of the two is set. When both are, this wins — it is the fresher
163
- * of the two by construction, since it was derived from the edit in hand.
164
- */
165
67
  cropTrajectory?: TrajectoryData;
166
- /**
167
- * Frame-packed CO-VIEW source for the captions-behind-speaker effect: ONE
168
- * opaque H.264 (BiRefNet-portrait) with the scene (top half) and the matte
169
- * (bottom half) stacked, baked frame-aligned per source window. When set,
170
- * the clip renders via PackedSubjectComposite — a SINGLE decode yields both
171
- * halves of the identical instant, so the matte cannot drift from the scene
172
- * at any composition fps (the frame-lock fix). Crop-independent: one co-view
173
- * per source window, reused across aspect/crop variants. Resolved at the
174
- * caller layer (Temporal activity) from mediaItems.mattes[matteHash] and
175
- * served same-origin so @remotion/media decodes it.
176
- */
177
68
  packedUrl?: string;
178
- /** Debug: tint the subject cut-out green to verify coverage. */
179
69
  coViewDebug?: boolean;
180
70
  }
181
71
  export interface CompositionOverlay {
@@ -185,51 +75,22 @@ export interface CompositionOverlay {
185
75
  startFrame: number;
186
76
  durationInFrames: number;
187
77
  params: OverlayParams;
188
- /** 'behind-subject' renders under the subject cut-out (matte occludes it). Default front. */
189
78
  zPlane?: 'front' | 'behind-subject';
190
- /** Scene-space anchor for world-locking behind overlays through the crop trajectory. */
191
79
  anchor?: {
192
80
  space: 'scene';
193
81
  x: number;
194
82
  y: number;
195
83
  };
196
- /** Camera-motion differential for behind overlays: 0 = locked to scene; small ± = depth parallax. Range [-0.3, 0.3]. */
197
84
  parallax?: number;
198
- /** Output-space placement rect (fractions of the output frame, 0..1). Default
199
- * (absent) = full frame. A sub-frame region makes the overlay primitive (card,
200
- * text, image/gif/lottie) occupy only that rect — the universal placement
201
- * layer (PiP / inset card / split-screen). Mirrors CompositionClip.region; the
202
- * renderer wraps the overlay in the same RegionBox, and size-from-output
203
- * primitives read the box dims via useEffectiveOutput. */
204
85
  region?: {
205
86
  x: number;
206
87
  y: number;
207
88
  w: number;
208
89
  h: number;
209
90
  };
210
- /** How the overlay fills `region`: 'cover' (fill+crop, default) or 'contain' (letterbox). */
211
91
  fit?: 'cover' | 'contain';
212
- /**
213
- * Entrance transition for the overlay — mirrors CompositionClip.transitionIn.
214
- * When set, the overlay host (OverlayLayer / BehindOverlayHost) wraps the
215
- * mounted content in a frame-pure entrance envelope (opacity fade; slide/scale
216
- * for the motion variants) over `transitionDurationFrames` from the overlay's
217
- * start. Absent = no envelope (byte-identical to prior behavior). Projected via
218
- * the same `mapTransitionType` mapping the video lane uses, so the realized
219
- * enum is fade/dissolve/wipe/none (dissolve+wipe degrade to an opacity fade for
220
- * a single positioned box). Was silently dropped before: only the video lane
221
- * projected `transitionIn`, so an authored overlay transition rendered as a
222
- * dead hard cut.
223
- */
224
92
  transitionIn?: 'fade' | 'dissolve' | 'wipe' | 'none';
225
93
  transitionDurationFrames?: number;
226
- /** Clip-level transform channel (wire `TimelineClip.position/opacity/scale/
227
- * rotation` — "the animation channel"; `region` stays the placement
228
- * primitive). `position` is the overlay's CENTER in output-space fractions
229
- * [0,1] of its containing box (the region box, or the full frame). These
230
- * were silently DROPPED by the projection until 2026-07-20 (spec §2.1.1) —
231
- * an agent could PUT a position, read it back, and watch the render ignore
232
- * it. Absent = the primitive's own layout (no wrapper transform). */
233
94
  position?: {
234
95
  x: number;
235
96
  y: number;
@@ -237,24 +98,15 @@ export interface CompositionOverlay {
237
98
  opacity?: number;
238
99
  scale?: number;
239
100
  rotation?: number;
101
+ animate?: CompositionClip['animate'];
240
102
  }
241
103
  export type CaptionWord = WireCaptionWord;
242
104
  export type CaptionStyle = WireCaptionStyle & Required<Pick<WireCaptionStyle, 'fontFamily' | 'fontSize' | 'fontWeight' | 'color' | 'highlightColor' | 'backgroundColor' | 'position' | 'textTransform'>>;
243
- /**
244
- * Frame-based effect instance the renderer consumes. Mirrors
245
- * `EffectInstance` from composition/types but with seconds normalized to
246
- * frames so the render path is fps-agnostic.
247
- */
248
105
  export interface CompositionEffect {
249
106
  id: string;
250
107
  primitiveId: string;
251
108
  params: Record<string, unknown>;
252
109
  target: EffectTarget;
253
- /**
254
- * For clip targets, frames RELATIVE to the clip's timeline start.
255
- * For global targets, ABSOLUTE timeline frames.
256
- * Undefined = render across the target's whole span.
257
- */
258
110
  startFrame?: number;
259
111
  durationInFrames?: number;
260
112
  }
@@ -269,14 +121,6 @@ export interface CompositionAudioTrack {
269
121
  fadeInFrames?: number;
270
122
  fadeOutFrames?: number;
271
123
  loop?: boolean;
272
- /**
273
- * Speech-aware duck envelope (music / vo tracks only; SFX is never ducked).
274
- * Frame ranges are SEQUENCE-RELATIVE (0 = the track's `startFrame`) to match
275
- * the fade domain `buildVolumeFunction` operates in. Resolved by the
276
- * `compositionToRenderInput` post-projection pass from the composition's own
277
- * caption words (or explicit `duck.windows`); absent ⇒ no ducking.
278
- * `duckVolume` is the linear gain held during speech (10^(duckDb/20)).
279
- */
280
124
  duckWindows?: Array<{
281
125
  startFrame: number;
282
126
  endFrame: number;
@@ -291,30 +135,12 @@ export interface RenderInput {
291
135
  audioTracks?: CompositionAudioTrack[];
292
136
  effects?: CompositionEffect[];
293
137
  captionSegments?: CaptionWord[][];
294
- /**
295
- * The caption layer renders UNDER the speaker's silhouette
296
- * (`composition.captions.zPlane === 'behind-subject'`). One choice for the
297
- * whole layer, because it decides whether the SOURCE needs a matte — the
298
- * $0.12/source-minute rung, not the $0.004 one, and a caption layer usually
299
- * spans the whole video.
300
- *
301
- * Requested, not guaranteed: the renderer degrades to the front mount when no
302
- * co-view is on the timeline (nothing to hide behind).
303
- */
304
138
  captionsBehind?: boolean;
305
139
  captionStyle?: Partial<CaptionStyle>;
306
140
  width: number;
307
141
  height: number;
308
142
  fps: number;
309
143
  durationInFrames: number;
310
- /**
311
- * Target platform frozen from the suggestion (`composition.format.platform`:
312
- * tiktok/ig/youtube/…). Output-determining: the composition floor's safe-zone
313
- * placement clears that surface's UI chrome from the caption band. Absent ⇒ the
314
- * floor falls to its conservative 'unknown' (broadcast) safe-zone profile. Read
315
- * straight from the wire `Format.platform`; the renderer threads it to every
316
- * CropFromTrajectory so buildFloorInput sees the real destination.
317
- */
318
144
  platform?: string;
319
145
  outputWidth?: number;
320
146
  outputHeight?: number;
@@ -322,14 +148,5 @@ export interface RenderInput {
322
148
  watermark?: boolean;
323
149
  scenes?: Scene[];
324
150
  sceneGlobal?: GlobalEffects;
325
- /**
326
- * Active brand kit for render-time token resolution. This is the
327
- * fully-materialized `ResolvedBrandKit` the render snapshot freezes
328
- * (the render intake → resolveBrandKit), NOT the sparse
329
- * 5-colour `@cueframe/core` BrandKit — it carries the Tier-2 colour core,
330
- * `caption.{fg,scrim}`, and `fonts.{heading,body,caption}`. Overlay params may
331
- * contain `"$brand:<path>"` refs that resolve against it. Optional — absent
332
- * brand kit makes a `$brand:` ref fall to its contrast-safe / fallback default.
333
- */
334
151
  brandKit?: ResolvedBrandKit;
335
152
  }
@@ -0,0 +1 @@
1
+ export declare const BAKE_VERSION = "subjtrack-persistent-deadzone-fitzoom-v8-2026.06.21";
@@ -1,51 +1,7 @@
1
- /**
2
- * vcam/cameraPath.ts — the SINGLE virtual-camera stability stage (Phase 3).
3
- *
4
- * Replaces both `emaSmooth` (for the centers) and the render-side
5
- * `smoothTrajectory` Gaussian with ONE pass per shot. Per the spec
6
- * (2026-06-21-virtual-camera-reframe-design.md, "Virtual-camera stability — one
7
- * stage, no LP"):
8
- *
9
- * 1. Deadzone INCLUSION gate (output-crop-normalized): the camera HOLDS while
10
- * the padded RequiredRegion stays inside a safe region of the current crop
11
- * window; it moves ONLY when the region would exit. This is the inclusion
12
- * INVARIANT — the crop always contains the RequiredRegion ⇒ the subject
13
- * never walks out of frame. This is what turns Phase 2's "static hold" into
14
- * "hold, then glide to re-contain" — a moving subject is TRACKED.
15
- * 2. One Hamming-window weighted mean over each shot run's gated centers
16
- * (acausal, single pass, no lag). Forward-fill at the start; the window
17
- * AUTO-SHRINKS near a shot boundary so it never blends across a cut.
18
- * 3. Null/occluded regions are forward-filled (the last in-shot region) before
19
- * the gate, minus the deleted jump heuristic — gaps longer than the window
20
- * hold; re-emergence outside the pad glides over the window.
21
- *
22
- * No second smoothing: render samples this base path verbatim. The only reset is
23
- * a detector `shotBoundary` — a center jump is NEVER inferred as a cut (the
24
- * deleted `isJump`/`JUMP_THRESHOLD` false-cut teleport).
25
- *
26
- * Coordinate systems: RequiredRegions + centers are SOURCE-NORMALIZED. The
27
- * deadzone is OUTPUT-CROP-NORMALIZED (a fraction of the crop window), so the
28
- * held feel is zoom-invariant — it is converted to source units here using the
29
- * crop-window size. Pure, deterministic, no I/O.
30
- */
31
1
  import type { RequiredRegion } from './requiredRegion.js';
32
2
  import type { Center } from './subjectSet.js';
33
- /** The crop window the camera commands, source-normalized (the largest output-
34
- * aspect rect that fits the source, scaled by the clamped zoom). */
35
3
  export interface CropWindow {
36
- /** Window width as a fraction of source width ∈ (0,1]. */
37
4
  w: number;
38
- /** Window height as a fraction of source height ∈ (0,1]. */
39
5
  h: number;
40
6
  }
41
- /**
42
- * The single stability stage: per-frame RequiredRegions → smoothed, inclusion-
43
- * satisfying per-frame crop centers (source-normalized). `cropFor(frame)` gives
44
- * the crop window for that frame (it can vary per frame when zoom is eased).
45
- *
46
- * `interiorCuts` are segment-local frame indices where a new shot begins (the
47
- * SAME set the derive already computes). Each shot is gated + smoothed
48
- * independently (deadzone, window clamp, forward-fill all reset at the cut).
49
- * Frames whose shot never resolved a region hold `centerHold` (source center).
50
- */
51
7
  export declare function cameraPath(regions: Array<RequiredRegion | null>, cropFor: (frame: number) => CropWindow, fps: number, interiorCuts: Iterable<number>, centerHold?: Center): Center[];
@@ -1,113 +1,20 @@
1
- /**
2
- * vcam/constants.ts — all virtual-camera selection params, in one place.
3
- *
4
- * Phase 2 (subject-of-interest selection). The deadzone / Hamming-window /
5
- * zoom-fit params land alongside their modules in Phase 3/5; only the
6
- * Phase-2 selection params live here today.
7
- *
8
- * Sizes are FRAME-HEIGHT fractions (a face box's height ÷ source height), the
9
- * same units the detector emits. Persistence is a fraction of the shot's frames.
10
- */
11
- /** Locked-set gate — drop a track iff
12
- * `(persistence < P_MIN AND size_med < SIZE_DOMINANT) OR (size_med < SIZE_MIN)`.
13
- * A transient small/brief face is dropped (can't re-weight anything); a
14
- * DOMINANT late entrant (low persistence, large size) is KEPT — the flat
15
- * `persistence < 0.5` gate would have silently dropped the intended subject. */
16
1
  export declare const P_MIN = 0.5;
17
- /** Minimum face-height fraction to survive the gate at all. */
18
2
  export declare const SIZE_MIN = 0.06;
19
- /** Face-height fraction at/above which a brief track is kept regardless of
20
- * persistence (a dominant late entrant). */
21
3
  export declare const SIZE_DOMINANT = 0.18;
22
- /** Max members framed for `all-faces` (top-K by dominance). */
23
4
  export declare const MAX_SUBJECTS = 3;
24
- /** Dominance weights — `0.4·size + 0.2·centrality + 0.2·persistence + 0.2·speaking`.
25
- * `speaking`/`centrality` feed dominance, NEVER the gate. */
26
5
  export declare const DOMINANCE_WEIGHTS: {
27
6
  readonly size: 0.4;
28
7
  readonly centrality: 0.2;
29
8
  readonly persistence: 0.2;
30
9
  readonly speaking: 0.2;
31
10
  };
32
- /** Per-frame set-MEMBERSHIP hysteresis (in seconds; converted to frames with
33
- * the source fps). The locked set is the candidate pool; whether a member is
34
- * IN the framed region this frame is decided with add/drop hysteresis so a
35
- * member flickering at the gate boundary doesn't toggle the framing. The
36
- * deadzone (Phase 3) stabilizes PAN; hysteresis stabilizes set MEMBERSHIP. */
37
11
  export declare const ENTER_SEC = 0.3;
38
12
  export declare const LEAVE_SEC = 0.5;
39
- /**
40
- * Headroom pad added around a RequiredRegion's subject/group extent (a fraction
41
- * of the SOURCE dimension), BEFORE the crop must contain it. This is the
42
- * "frame the head, not just the box" margin — the region the crop is obliged to
43
- * keep in view is the subject box grown by this much on every side. Source-
44
- * normalized (the region geometry is source-normalized; the deadzone below is
45
- * the output-crop-normalized hold band). ~6% of the source on each side gives a
46
- * comfortable margin around a face/group without over-zooming.
47
- */
48
13
  export declare const REGION_PAD = 0.06;
49
- /**
50
- * Deadzone inclusion gate (OUTPUT-CROP-NORMALIZED — a fraction of the crop
51
- * WINDOW, the same units as the render's old `DEADZONE`). The camera HOLDS while
52
- * the padded RequiredRegion stays inside the crop window shrunk by this margin
53
- * on each side (the "safe region"); it only moves when the region would exit
54
- * that safe region. Calibrated ≥ the render's old `DEADZONE=0.018` hold effect
55
- * on a static head, so the relocated deadzone is no looser than before. 0.10 of
56
- * the crop width is the spec's `REGION_PAD ≈ 0.10 of crop width` value — the
57
- * band inside which subject motion demands ZERO camera motion (the locked feel).
58
- */
59
14
  export declare const DEADZONE = 0.1;
60
- /**
61
- * Hamming smoothing window half-length, in SECONDS (converted to frames with the
62
- * source fps; `round(0.5·fps)` ≈ 15 frames at 30fps). The single acausal
63
- * Hamming-weighted mean over each shot run's deadzone-gated centers — replaces
64
- * the old forward+backward EMA AND the render Gaussian. Clamped to the shot run
65
- * (forward-fill at the start, window auto-shrinks near a shot boundary) so it
66
- * never blends across a cut. A shorter window = snappier tracking; longer =
67
- * more damped glide. 0.5s matches the spec.
68
- */
69
15
  export declare const SMOOTH_WINDOW_SEC = 0.5;
70
- /**
71
- * Outlier-reject median-filter radius on the RequiredRegion series, in SECONDS
72
- * (converted to frames with the source fps). A single-frame detector/ReID spike
73
- * — the box teleporting across the frame for one frame, then snapping back —
74
- * would yank the deadzone gate (the chase, re-skinned). A short median rejects
75
- * it while tracking a clean multi-frame walk exactly (an order statistic, not a
76
- * low-pass — lag-free on a monotone pan). ~0.12s (≈4 frames at 30fps, ≈7 at
77
- * 60fps) outvotes a short multi-frame ReID swap without smearing a real walk.
78
- */
79
16
  export declare const REGION_MEDIAN_SEC = 0.12;
80
- /**
81
- * Maximum per-frame camera-center move during the inclusion clamp, as a fraction
82
- * of the CROP WINDOW per second (converted to source-units-per-frame with the
83
- * crop size + fps). Sized GENEROUSLY: a real walking subject (≈3–5 crop-widths/s)
84
- * tracks unthrottled, so the inclusion invariant holds frame-to-frame and the
85
- * subject stays in frame (inclusionRate ≈ 1.0). The cap exists only to convert a
86
- * single-frame TELEPORT — a detector ReID swap or a far re-emergence after a gap
87
- * that would otherwise snap the camera a full frame-width in one frame — into a
88
- * bounded ≤`cap/fps` step (the spec's "re-emergence glides over the window"; the
89
- * parabolic re-acquire ease is the deferred L1 slot). At the cap the worst step
90
- * is bounded well below the raw-centroid chase, while continuous tracking is
91
- * unaffected. 8 crop-widths/sec ≈ 0.13 crop-widths/frame at 60fps.
92
- */
93
17
  export declare const REACQUIRE_GLIDE_PER_SEC = 8;
94
- /**
95
- * The bake's crop-window zoom clamp, mirrored here so `fitZoom` produces a zoom
96
- * inside the SAME envelope the renderer (`computeCropTransform` `bakedZoom`) and
97
- * `cropWindowSizeFor` enforce. ZOOM_MAX = 1.0 is the widest honest frame (the
98
- * largest source-fitting output-aspect rect — can't widen past the source);
99
- * ZOOM_MIN = 0.4 is the tightest crop the bake allows. A fitting group is framed
100
- * at the contained zoom clamped into [ZOOM_MIN, ZOOM_MAX]; an over-wide group
101
- * pads-and-holds at ZOOM_MAX and is flagged `overframed`.
102
- */
103
18
  export declare const ZOOM_MIN = 0.4;
104
19
  export declare const ZOOM_MAX = 1;
105
- /**
106
- * Min-shot-length floor for ZOOM recalibration, in SECONDS (converted to frames
107
- * with the source fps; round(0.4*fps) is ~12 frames at 30fps). A shot SHORTER
108
- * than this inherits the PREVIOUS shot's zoom rather than recalibrating, so a
109
- * sub-second montage (3-15-frame sub-shots, each independently zoom-fit) can't
110
- * STROBE the zoom channel (the named regression risk this design introduces).
111
- * Pan still resets at every cut - only the zoom is held; the floor is zoom-only.
112
- */
113
20
  export declare const MIN_ZOOM_SHOT_FRAMES = 0.4;
@@ -1,30 +1,2 @@
1
- /**
2
- * vcam/errorCodes.ts — the virtual-camera error vocabulary, as VALUES.
3
- *
4
- * Every code the vcam layer can throw (now or in a later phase) is listed here
5
- * as a literal value, and the registry-membership CI test
6
- * (`__tests__/vcamErrorRegistry.test.ts`) imports THIS list and asserts each one
7
- * exists in `@cueframe/errors`'s `ERROR_CODES`. Importing the codes as values
8
- * (not grepping string literals) means a template/variable code can't slip past
9
- * the gate — an unregistered code would make the CFERR decode fall back to
10
- * `internal_error` and 500 (the `clip_source_track_mismatch` landmine).
11
- *
12
- * Phase 1 registers all of these in `packages/errors/src/registry.ts` even
13
- * though some are thrown only in later phases (`subject_uncontainable`,
14
- * `trajectory_internal_gap`, `clip_trajectory_merge_conflict`) — registered now
15
- * so they can never 500 when the phase that throws them lands.
16
- *
17
- * `subject_not_tracked` is the EXISTING segment-level resolution gate (kept,
18
- * registered already); it's listed so the membership test covers the full vcam
19
- * throw surface in one place.
20
- *
21
- * NOT codes (documented emitted outcomes / legal inputs, never throws):
22
- * - `overframed` — an emitted boolean OUTCOME on an `all-faces` segment whose
23
- * group is wider than the aspect (the widest honest frame), NOT an error.
24
- * - a legacy track with no `shotBoundaries` → ONE shot (no
25
- * `shot_boundaries_missing` throw); an empty locked set → center-hold.
26
- */
27
- /** The error codes the vcam (virtual-camera) layer is allowed to throw. Each
28
- * MUST be a row in `@cueframe/errors` `ERROR_CODES` (asserted in CI). */
29
1
  export declare const VCAM_ERROR_CODES: readonly ["subject_not_tracked", "subject_detection_failed_on_generated", "subject_uncontainable", "trajectory_internal_gap", "clip_trajectory_merge_conflict"];
30
2
  export type VcamErrorCode = (typeof VCAM_ERROR_CODES)[number];
@@ -1,90 +1,14 @@
1
- /**
2
- * vcam/framing.ts — zoom-to-fit for ALL modes (Phase 5).
3
- *
4
- * Generalizes today's face-only `calibrateShotScale` (which sizes ZOOM to a
5
- * single detected face's median height for an editorial `shotScale`) into a
6
- * mode-agnostic `fitZoom` that sizes the crop to CONTAIN a locked subject set's
7
- * union extent — the automatic fit the spec mandates (brain spec
8
- * 2026-06-21-virtual-camera-reframe-design.md, "Framing & zoom-to-fit (ALL
9
- * modes)" + RESOLVED #2 "automatic-fit only for the ship").
10
- *
11
- * The headline consumer is `all-faces`: today every all-faces segment ships at
12
- * zoom 1.0 (the widest honest frame) because `calibrateShotScale` has no
13
- * `shotScale` target for it and returns the fallback. A group that FITS 9:16 is
14
- * then left with wasted margin instead of being framed tight. `fitZoom` sizes the
15
- * crop to the group's union so a fitting group is zoom-fit (zoom < 1.0), while an
16
- * over-wide group (members at opposite edges of a 16:9 frame) is the documented
17
- * `overframed` outcome: pad-and-hold at zoom 1.0, emit the flag, NEVER silently
18
- * clip a wing and NEVER auto-drop a member (the editorial drop/cut decision
19
- * belongs to the driving agent — RESOLVED #1).
20
- *
21
- * Hold scope is explicit (resolves the per-frame-vs-per-shot contradiction):
22
- * zoom re-fits PER SHOT (a punch-in at every detector cut), but WITHIN a shot the
23
- * fit is sized ONCE over the shot-wide union extent and HELD — no per-frame
24
- * breathing. A pre-pass here computes the shot-max union BEFORE the per-shot zoom
25
- * split slices the series.
26
- *
27
- * Sub-second montage cuts are a named zoom-strobe regression risk (3–15-frame
28
- * sub-shots each independently calibrated → strobe). Mitigation: a min-shot-
29
- * length floor — a shot shorter than `MIN_ZOOM_SHOT_FRAMES` INHERITS the previous
30
- * shot's zoom (pan still resets at the cut; pan is cameraPath's job). So a 1-frame
31
- * shot can't spike the zoom channel.
32
- *
33
- * Pure, deterministic, no I/O. Boxes are source-normalized `[x1,y1,x2,y2]` ∈
34
- * [0,1]; `pad` is a fraction of the source dimension (the SAME `REGION_PAD` the
35
- * RequiredRegion uses, so the crop is sized to contain exactly the padded region
36
- * the camera is obliged to keep in frame).
37
- */
38
1
  import type { NormBox } from './subjectSet.js';
39
- /** One shot's automatic-fit result. */
40
2
  export interface ShotFit {
41
- /** Source-normalized zoom_scale (the largest output-aspect rect that fits the
42
- * source × this contains the shot-wide padded union), clamped [ZOOM_MIN,
43
- * ZOOM_MAX]. */
44
3
  zoom: number;
45
- /** True iff the padded union is WIDER than the crop window at zoom 1.0 — the
46
- * group cannot be contained at the output aspect, so the camera pads-and-holds
47
- * at zoom 1.0 (the widest honest frame). An emitted authored outcome, surfaced
48
- * to the agent; NOT an error and NOT a silent clip. */
49
4
  overframed: boolean;
50
5
  }
51
- /**
52
- * The shot-wide padded union extent of a per-frame box series, over `[start,
53
- * end)`. The union of every present box in the shot, grown by `pad` on each side
54
- * (clamped to [0,1]). Returns null when no box is present anywhere in the shot
55
- * (the camera center-holds; there is nothing to fit). Source-normalized.
56
- */
57
6
  export declare function shotUnionExtent(boxes: Array<NormBox | null>, start: number, end: number, pad?: number): {
58
7
  w: number;
59
8
  h: number;
60
9
  } | null;
61
- /**
62
- * The automatic zoom-to-fit for ONE shot's union extent. Sizes the crop so the
63
- * largest output-aspect rect that fits the source, scaled by this zoom, CONTAINS
64
- * the padded union on BOTH axes. The crop window scales linearly with zoom
65
- * (`cropWindowSizeFor`: `cropW *= zoom`), so the smallest zoom that contains a
66
- * source-normalized union of size `(uw, uh)` is `max(uw/Wb, uh/Hb)` where
67
- * `(Wb, Hb)` is the zoom-1.0 window.
68
- *
69
- * Fits (≤ 1.0) → that zoom, clamped to the floor. Doesn't fit (> 1.0 needed, the
70
- * group is wider than the output aspect) → `overframed`, pad-and-hold at 1.0. A
71
- * null/empty extent → no subject to fit → zoom 1.0, not overframed (center-hold).
72
- */
73
10
  export declare function fitZoom(extent: {
74
11
  w: number;
75
12
  h: number;
76
13
  } | null, srcW: number, srcH: number, aspect: string): ShotFit;
77
- /**
78
- * Per-shot automatic zoom-to-fit over a segment's per-frame union-box series.
79
- * Computes the shot-wide union extent per shot, then `fitZoom`, applying the
80
- * min-shot-length floor: a shot shorter than `MIN_ZOOM_SHOT_FRAMES` INHERITS the
81
- * previous shot's fit (zoom + overframed) so a sub-second montage cut can't strobe
82
- * the zoom channel; pan still resets at the cut (cameraPath owns pan). The first
83
- * shot has no predecessor → it fits on its own extent regardless of length (a
84
- * single short clip must still frame its subject).
85
- *
86
- * Returns one `ShotFit` per shot, in shot order — the same shot order
87
- * `segmentShots(interiorCuts, segLen)` produces. The caller (deriveTrajectory)
88
- * applies the per-shot zoom to the matching sub-shot it already slices.
89
- */
90
14
  export declare function fitZoomPerShot(boxes: Array<NormBox | null>, interiorCuts: Iterable<number>, srcW: number, srcH: number, aspect: string, fps: number, segLen: number, pad?: number): ShotFit[];