@cueframe/kernel 0.1.1 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (506) 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/index.d.ts +1 -1
  51. package/dist/_members/authoring/models/modelFactory.d.ts +0 -77
  52. package/dist/_members/authoring/motion/applyMotionPreset.d.ts +0 -12
  53. package/dist/_members/authoring/motion/materializeMotionPresetOps.d.ts +0 -7
  54. package/dist/_members/authoring/motion/shell.d.ts +0 -20
  55. package/dist/_members/authoring/pipelineTrace.d.ts +0 -19
  56. package/dist/_members/authoring/prompts/decomposerPrompt.d.ts +0 -4
  57. package/dist/_members/authoring/prompts/designReviewerPrompt.d.ts +0 -16
  58. package/dist/_members/authoring/prompts/evaluatorPrompt.d.ts +0 -4
  59. package/dist/_members/authoring/prompts/graphics.d.ts +0 -5
  60. package/dist/_members/authoring/prompts/index.d.ts +0 -1
  61. package/dist/_members/authoring/prompts/plannerPrompt.d.ts +0 -30
  62. package/dist/_members/authoring/providers/resourceApi.d.ts +1 -20
  63. package/dist/_members/authoring/resource-routing.d.ts +0 -121
  64. package/dist/_members/authoring/resources.d.ts +0 -34
  65. package/dist/_members/authoring/scope.d.ts +0 -24
  66. package/dist/_members/authoring/tools/brandTokens.d.ts +0 -22
  67. package/dist/_members/authoring/tools/composeRoleTools.d.ts +0 -79
  68. package/dist/_members/authoring/tools/index.d.ts +0 -1
  69. package/dist/_members/authoring/tools/toolSets.d.ts +0 -50
  70. package/dist/_members/authoring/transpileComponent.d.ts +0 -34
  71. package/dist/_members/authoring/transpileHelper.d.ts +0 -18
  72. package/dist/_members/authoring/types.d.ts +0 -149
  73. package/dist/_members/brand-derivation/constants.d.ts +0 -17
  74. package/dist/_members/brand-derivation/contrastSafe.d.ts +0 -23
  75. package/dist/_members/cloud-import/CloudImportService.d.ts +0 -15
  76. package/dist/_members/cloud-import/ImportProvider.d.ts +0 -45
  77. package/dist/_members/cloud-import/MediaItemPreprocessor.d.ts +0 -9
  78. package/dist/_members/cloud-import/cloudConfig.d.ts +0 -15
  79. package/dist/_members/compose/CompositionRenderer.d.ts +0 -6
  80. package/dist/_members/compose/primitiveRegistry.d.ts +0 -64
  81. package/dist/_members/compose/sceneToRenderInput.d.ts +0 -26
  82. package/dist/_members/compose/schema.d.ts +0 -15
  83. package/dist/_members/compose/tokenResolver.d.ts +0 -11
  84. package/dist/_members/composition/audio/audioMix.d.ts +0 -34
  85. package/dist/_members/composition/audio/mixStaging.d.ts +0 -81
  86. package/dist/_members/composition/audio/musicPack.d.ts +0 -35
  87. package/dist/_members/composition/audio/musicPack.generated.d.ts +0 -6
  88. package/dist/_members/composition/audio/pack.d.ts +0 -43
  89. package/dist/_members/composition/audio/pack.generated.d.ts +0 -6
  90. package/dist/_members/composition/audio/palette.d.ts +0 -36
  91. package/dist/_members/composition/autozoom/index.d.ts +0 -32
  92. package/dist/_members/composition/brand-kit.d.ts +0 -8
  93. package/dist/_members/composition/brief/contract.d.ts +0 -90
  94. package/dist/_members/composition/color-grade.d.ts +0 -11
  95. package/dist/_members/composition/depth.d.ts +0 -19
  96. package/dist/_members/composition/fixtures/agentErrored.d.ts +0 -23
  97. package/dist/_members/composition/fonts.d.ts +0 -62
  98. package/dist/_members/composition/graphics-plan/compile.d.ts +0 -29
  99. package/dist/_members/composition/graphics-plan/index.d.ts +0 -5
  100. package/dist/_members/composition/graphics-plan/instantiateMotif.d.ts +0 -17
  101. package/dist/_members/composition/graphics-plan/motion.d.ts +0 -17
  102. package/dist/_members/composition/graphics-plan/schemas.d.ts +0 -171
  103. package/dist/_members/composition/graphics-plan/solve.d.ts +0 -19
  104. package/dist/_members/composition/invariants/clipPlacement.d.ts +0 -59
  105. package/dist/_members/composition/invariants/composition.d.ts +0 -5
  106. package/dist/_members/composition/invariants/etag.d.ts +0 -7
  107. package/dist/_members/composition/invariants/ids.d.ts +0 -6
  108. package/dist/_members/composition/invariants/keyframes.d.ts +0 -19
  109. package/dist/_members/composition/invariants/markers.d.ts +0 -6
  110. package/dist/_members/composition/invariants/time.d.ts +0 -8
  111. package/dist/_members/composition/invariants/tracks.d.ts +0 -48
  112. package/dist/_members/composition/ops/compositionOps.d.ts +4 -71
  113. package/dist/_members/composition/ops/compositionOps.shared.d.ts +30 -0
  114. package/dist/_members/composition/ops/headlessStore.d.ts +0 -24
  115. package/dist/_members/composition/ops/selectors.d.ts +0 -66
  116. package/dist/_members/composition/ops/timeline-word.d.ts +0 -5
  117. package/dist/_members/composition/ops/transcript.d.ts +0 -27
  118. package/dist/_members/composition/ops/types.d.ts +0 -51
  119. package/dist/_members/composition/primitive-catalog/catalogQuery.d.ts +0 -32
  120. package/dist/_members/composition/primitive-catalog/disabled.d.ts +0 -1
  121. package/dist/_members/composition/primitive-catalog/index.d.ts +0 -11
  122. package/dist/_members/composition/primitive-catalog/paramValidation.d.ts +0 -50
  123. package/dist/_members/composition/primitive-catalog/projection.d.ts +0 -39
  124. package/dist/_members/composition/primitive-catalog/types.d.ts +0 -78
  125. package/dist/_members/composition/projection/behind-placement.d.ts +0 -40
  126. package/dist/_members/composition/projection/behind-readiness.d.ts +14 -89
  127. package/dist/_members/composition/projection/brandKit.d.ts +0 -142
  128. package/dist/_members/composition/projection/cardTokens.d.ts +0 -65
  129. package/dist/_members/composition/projection/composition-floor.d.ts +0 -179
  130. package/dist/_members/composition/projection/cropProjection.d.ts +0 -75
  131. package/dist/_members/composition/projection/occlusion-budget.d.ts +0 -37
  132. package/dist/_members/composition/projection/reframe-readiness.d.ts +4 -111
  133. package/dist/_members/composition/projection/safe-zones.d.ts +0 -29
  134. package/dist/_members/composition/reframe/aspectLoss.d.ts +12 -35
  135. package/dist/_members/composition/reframe/coverage.d.ts +0 -40
  136. package/dist/_members/composition/reframe/derive.d.ts +0 -21
  137. package/dist/_members/composition/reframe/index.d.ts +0 -60
  138. package/dist/_members/composition/reframe/kenBurns.d.ts +0 -37
  139. package/dist/_members/composition/reframe/shotScale.d.ts +0 -75
  140. package/dist/_members/composition/reframe/trajectory.d.ts +0 -65
  141. package/dist/_members/composition/timeline/compound.d.ts +0 -31
  142. package/dist/_members/composition/timeline/intent.d.ts +0 -29
  143. package/dist/_members/composition/timeline/keyframes.d.ts +0 -43
  144. package/dist/_members/composition/timeline/link.d.ts +0 -27
  145. package/dist/_members/composition/timeline/occupancy.d.ts +1 -42
  146. package/dist/_members/composition/timeline/placement.d.ts +5 -52
  147. package/dist/_members/composition/timeline/plan.d.ts +5 -53
  148. package/dist/_members/composition/timeline/resolve.d.ts +0 -36
  149. package/dist/_members/composition/timeline/trims.d.ts +0 -49
  150. package/dist/_members/composition/validators/brandKit.d.ts +0 -29
  151. package/dist/_members/composition/validators/composePlan.d.ts +0 -39
  152. package/dist/_members/composition/validators/composition.d.ts +30 -513
  153. package/dist/_members/composition/validators/graphicKinds.d.ts +0 -28
  154. package/dist/_members/composition/validators/render.d.ts +23 -23
  155. package/dist/_members/composition-ops/alphaLayers.d.ts +0 -56
  156. package/dist/_members/composition-ops/index.d.ts +27 -148
  157. package/dist/_members/composition-ops/materializeGrid.d.ts +0 -28
  158. package/dist/_members/composition-ops/opRecorder.d.ts +0 -34
  159. package/dist/_members/composition-ops/recordingStore.d.ts +0 -16
  160. package/dist/_members/composition-ops/replaceRegion.d.ts +0 -48
  161. package/dist/_members/composition-ops/testFixtures.d.ts +0 -14
  162. package/dist/_members/convex-api/api.generated.d.ts +1444 -0
  163. package/dist/_members/convex-api/dataModel.d.ts +1 -1
  164. package/dist/_members/core/index.d.ts +1 -1
  165. package/dist/_members/core/render/bookends.d.ts +0 -44
  166. package/dist/_members/core/render/captions.d.ts +0 -42
  167. package/dist/_members/core/render/compositionRender.d.ts +1 -180
  168. package/dist/_members/core/render/deriveTrajectory.d.ts +0 -140
  169. package/dist/_members/core/render/emphasis.d.ts +0 -6
  170. package/dist/_members/core/render/eval/cropBox.d.ts +0 -69
  171. package/dist/_members/core/render/eval/inclusion.d.ts +0 -39
  172. package/dist/_members/core/render/eval/index.d.ts +0 -58
  173. package/dist/_members/core/render/eval/metrics.d.ts +0 -36
  174. package/dist/_members/core/render/exportSettings.d.ts +4 -12
  175. package/dist/_members/core/render/index.d.ts +1 -1
  176. package/dist/_members/core/render/mapFaceToPerson.d.ts +0 -27
  177. package/dist/_members/core/render/types.d.ts +1 -184
  178. package/dist/_members/core/render/variantKeys.d.ts +1 -0
  179. package/dist/_members/core/render/vcam/cameraPath.d.ts +0 -44
  180. package/dist/_members/core/render/vcam/constants.d.ts +0 -93
  181. package/dist/_members/core/render/vcam/errorCodes.d.ts +0 -28
  182. package/dist/_members/core/render/vcam/framing.d.ts +0 -76
  183. package/dist/_members/core/render/vcam/requiredRegion.d.ts +0 -71
  184. package/dist/_members/core/render/vcam/shots.d.ts +0 -40
  185. package/dist/_members/core/render/vcam/subjectSet.d.ts +0 -85
  186. package/dist/_members/core/select/errorCodes.d.ts +0 -25
  187. package/dist/_members/core/select/index.d.ts +0 -20
  188. package/dist/_members/core/select/model.d.ts +0 -79
  189. package/dist/_members/core/select/select.d.ts +0 -49
  190. package/dist/_members/core/select/stabilize.d.ts +0 -102
  191. package/dist/_members/core/types.d.ts +0 -1
  192. package/dist/_members/director/ai-sdk/chunks.d.ts +14 -0
  193. package/dist/_members/director/ai-sdk/context.d.ts +6 -0
  194. package/dist/_members/director/ai-sdk/generationTool.d.ts +8 -0
  195. package/dist/_members/director/ai-sdk/index.d.ts +4 -0
  196. package/dist/_members/director/ai-sdk/messages.d.ts +292 -0
  197. package/dist/_members/director/domain/chat.d.ts +357 -0
  198. package/dist/_members/director/domain/generation.d.ts +1 -0
  199. package/dist/_members/director/domain/index.d.ts +3 -0
  200. package/dist/_members/director/domain/ports.d.ts +32 -0
  201. package/dist/_members/director/index.d.ts +2 -0
  202. package/dist/_members/director/testing/contract.d.ts +52 -0
  203. package/dist/_members/director/testing/index.d.ts +1 -0
  204. package/dist/_members/errors/registry.d.ts +103 -33
  205. package/dist/_members/foundation/codes/index.d.ts +0 -21
  206. package/dist/_members/mcp/adapter.d.ts +1 -84
  207. package/dist/_members/mcp/burnedNames.d.ts +0 -16
  208. package/dist/_members/mcp/core.d.ts +2 -82
  209. package/dist/_members/mcp/curation.d.ts +0 -112
  210. package/dist/_members/mcp/executor.d.ts +0 -49
  211. package/dist/_members/mcp/format.d.ts +0 -6
  212. package/dist/_members/mcp/generated/catalogPreviews.d.ts +0 -1
  213. package/dist/_members/mcp/generated/harness.d.ts +1 -1
  214. package/dist/_members/mcp/generated/operations.d.ts +1 -12
  215. package/dist/_members/mcp/internalLoopTools.d.ts +0 -23
  216. package/dist/_members/mcp/prompts.d.ts +0 -16
  217. package/dist/_members/mcp/resources.d.ts +0 -13
  218. package/dist/_members/mcp/server.d.ts +0 -61
  219. package/dist/_members/mcp/wait.d.ts +1 -23
  220. package/dist/_members/mcp/x402Meta.d.ts +0 -44
  221. package/dist/_members/media-model/generation.d.ts +314 -0
  222. package/dist/_members/media-model/index.d.ts +1 -0
  223. package/dist/_members/media-model/media-kind.d.ts +0 -27
  224. package/dist/_members/media-model/transcriptSearch.d.ts +0 -42
  225. package/dist/_members/nle-export/fcpxml.d.ts +0 -13
  226. package/dist/_members/nle-export/index.d.ts +0 -6
  227. package/dist/_members/nle-export/types.d.ts +0 -26
  228. package/dist/_members/nle-export/xml/index.d.ts +0 -8
  229. package/dist/_members/nle-export/xml-utils.d.ts +0 -12
  230. package/dist/_members/perception/activeSpeaker.d.ts +0 -94
  231. package/dist/_members/perception/audioQuality.d.ts +0 -64
  232. package/dist/_members/perception/energyBeat.d.ts +0 -81
  233. package/dist/_members/perception/identityMatch.d.ts +0 -66
  234. package/dist/_members/perception/index.d.ts +0 -52
  235. package/dist/_members/perception/visualQuality.d.ts +0 -73
  236. package/dist/_members/plane/conformance.d.ts +0 -59
  237. package/dist/_members/plane/contract.d.ts +0 -29
  238. package/dist/_members/plane/index.d.ts +0 -15
  239. package/dist/_members/primitives/backgrounds/animated-bar-chart/index.d.ts +0 -13
  240. package/dist/_members/primitives/backgrounds/animated-line-chart/index.d.ts +0 -14
  241. package/dist/_members/primitives/backgrounds/dither-gradient-bg/index.d.ts +0 -14
  242. package/dist/_members/primitives/backgrounds/dynamic-grid/index.d.ts +0 -8
  243. package/dist/_members/primitives/backgrounds/ecosystem-constellation/index.d.ts +0 -8
  244. package/dist/_members/primitives/backgrounds/infinite-marquee/index.d.ts +0 -8
  245. package/dist/_members/primitives/backgrounds/mesh-gradient-bg/index.d.ts +0 -8
  246. package/dist/_members/primitives/backgrounds/perspective-marquee/index.d.ts +0 -8
  247. package/dist/_members/primitives/backgrounds/silk-flow-bg/index.d.ts +0 -17
  248. package/dist/_members/primitives/backgrounds/vector-field/index.d.ts +0 -14
  249. package/dist/_members/primitives/backgrounds/volumetric-rays/index.d.ts +0 -18
  250. package/dist/_members/primitives/captions/Captions.d.ts +0 -24
  251. package/dist/_members/primitives/captions/index.d.ts +0 -15
  252. package/dist/_members/primitives/captions/paginate.d.ts +0 -21
  253. package/dist/_members/primitives/captions/placement.d.ts +0 -30
  254. package/dist/_members/primitives/effects/blur/index.d.ts +0 -16
  255. package/dist/_members/primitives/effects/color-grade/index.d.ts +0 -20
  256. package/dist/_members/primitives/effects/grain/index.d.ts +0 -12
  257. package/dist/_members/primitives/effects/parallax/index.d.ts +0 -13
  258. package/dist/_members/primitives/effects/particles/index.d.ts +0 -16
  259. package/dist/_members/primitives/effects/pulsing-indicator/index.d.ts +0 -10
  260. package/dist/_members/primitives/effects/spotlight-card/index.d.ts +0 -8
  261. package/dist/_members/primitives/effects/spring-pop-in/index.d.ts +0 -10
  262. package/dist/_members/primitives/effects/success-confetti/index.d.ts +0 -8
  263. package/dist/_members/primitives/effects/vignette/index.d.ts +0 -12
  264. package/dist/_members/primitives/hero-text/HeroText.d.ts +0 -17
  265. package/dist/_members/primitives/hero-text/config.d.ts +0 -10
  266. package/dist/_members/primitives/hero-text/index.d.ts +0 -14
  267. package/dist/_members/primitives/index.d.ts +0 -8
  268. package/dist/_members/primitives/layouts/chat-to-preview-layout/index.d.ts +0 -8
  269. package/dist/_members/primitives/layouts/infinite-bento-pan/index.d.ts +0 -8
  270. package/dist/_members/primitives/layouts/letterbox/index.d.ts +0 -15
  271. package/dist/_members/primitives/layouts/photo-grid/index.d.ts +0 -17
  272. package/dist/_members/primitives/layouts/picture-in-picture/index.d.ts +0 -21
  273. package/dist/_members/primitives/layouts/split-screen/index.d.ts +0 -15
  274. package/dist/_members/primitives/layouts/staggered-bento-grid/index.d.ts +0 -8
  275. package/dist/_members/primitives/lib/easings.d.ts +0 -27
  276. package/dist/_members/primitives/lib/palette.d.ts +0 -22
  277. package/dist/_members/primitives/lib/preview.d.ts +0 -22
  278. package/dist/_members/primitives/lib/schema.d.ts +0 -36
  279. package/dist/_members/primitives/lib/seeded-random.d.ts +0 -23
  280. package/dist/_members/primitives/lib/text/contrast.d.ts +0 -17
  281. package/dist/_members/primitives/lib/text/fill.d.ts +0 -5
  282. package/dist/_members/primitives/lib/text/fitText.d.ts +0 -37
  283. package/dist/_members/primitives/lib/text/marker.d.ts +0 -10
  284. package/dist/_members/primitives/lib/text/motion.d.ts +0 -46
  285. package/dist/_members/primitives/lib/text/recolor.d.ts +0 -11
  286. package/dist/_members/primitives/lib/text/spec.d.ts +0 -39
  287. package/dist/_members/primitives/lib/text/stage.d.ts +0 -17
  288. package/dist/_members/primitives/lib/text/typeface.d.ts +0 -11
  289. package/dist/_members/primitives/lib/tokens.d.ts +0 -87
  290. package/dist/_members/primitives/lib/types.d.ts +0 -141
  291. package/dist/_members/primitives/scenes/changelog-bite/index.d.ts +0 -12
  292. package/dist/_members/primitives/scenes/hero-device-assemble/index.d.ts +0 -8
  293. package/dist/_members/primitives/scenes/landing-code-showcase/index.d.ts +0 -8
  294. package/dist/_members/primitives/scenes/live-code-compilation/index.d.ts +0 -8
  295. package/dist/_members/primitives/scenes/pricing-tier-focus/index.d.ts +0 -8
  296. package/dist/_members/primitives/scenes/product-launch-trailer/index.d.ts +0 -8
  297. package/dist/_members/primitives/scenes/terminal-to-browser-deploy/index.d.ts +0 -8
  298. package/dist/_members/primitives/subject-foreground/SubjectForeground.d.ts +0 -38
  299. package/dist/_members/primitives/subject-foreground/index.d.ts +0 -21
  300. package/dist/_members/primitives/text/blur-reveal/index.d.ts +0 -9
  301. package/dist/_members/primitives/text/cinematic-title/index.d.ts +0 -14
  302. package/dist/_members/primitives/text/inline-highlight/index.d.ts +0 -11
  303. package/dist/_members/primitives/text/karaoke/index.d.ts +0 -13
  304. package/dist/_members/primitives/text/kinetic-type/index.d.ts +0 -15
  305. package/dist/_members/primitives/text/lower-third/index.d.ts +0 -14
  306. package/dist/_members/primitives/text/marker-highlight/index.d.ts +0 -10
  307. package/dist/_members/primitives/text/masked-slide-reveal/index.d.ts +0 -8
  308. package/dist/_members/primitives/text/matrix-decode/index.d.ts +0 -9
  309. package/dist/_members/primitives/text/quote-card/index.d.ts +0 -9
  310. package/dist/_members/primitives/text/rgb-glitch-text/index.d.ts +0 -13
  311. package/dist/_members/primitives/text/shimmer-sweep/index.d.ts +0 -10
  312. package/dist/_members/primitives/text/slot-machine-roll/index.d.ts +0 -8
  313. package/dist/_members/primitives/text/staggered-fade-up/index.d.ts +0 -12
  314. package/dist/_members/primitives/text/stat-counter/index.d.ts +0 -13
  315. package/dist/_members/primitives/text/strikethrough-replace/index.d.ts +0 -9
  316. package/dist/_members/primitives/text/text-effect/index.d.ts +0 -17
  317. package/dist/_members/primitives/text/text-fade-replace/index.d.ts +0 -8
  318. package/dist/_members/primitives/text/token-stream/index.d.ts +0 -11
  319. package/dist/_members/primitives/text/tracking-in/index.d.ts +0 -8
  320. package/dist/_members/primitives/text/typewriter/index.d.ts +0 -12
  321. package/dist/_members/primitives/transitions/chromatic-aberration-wipe/index.d.ts +0 -11
  322. package/dist/_members/primitives/transitions/code-diff-wipe/index.d.ts +0 -8
  323. package/dist/_members/primitives/transitions/directional-wipe/index.d.ts +0 -10
  324. package/dist/_members/primitives/transitions/frosted-glass-wipe/index.d.ts +0 -10
  325. package/dist/_members/primitives/transitions/glitch-cut/index.d.ts +0 -3
  326. package/dist/_members/primitives/transitions/grid-pixelate-wipe/index.d.ts +0 -14
  327. package/dist/_members/primitives/transitions/ink-wipe/index.d.ts +0 -3
  328. package/dist/_members/primitives/transitions/kinetic-type-mask/index.d.ts +0 -12
  329. package/dist/_members/primitives/transitions/light-leak/index.d.ts +0 -3
  330. package/dist/_members/primitives/transitions/luma-matte/index.d.ts +0 -2
  331. package/dist/_members/primitives/transitions/morph/index.d.ts +0 -2
  332. package/dist/_members/primitives/transitions/spatial-push/index.d.ts +0 -10
  333. package/dist/_members/primitives/transitions/swipe-transition-wipe/index.d.ts +0 -13
  334. package/dist/_members/primitives/transitions/zoom-through/index.d.ts +0 -2
  335. package/dist/_members/primitives/transitions/zoom-through-transition/index.d.ts +0 -9
  336. package/dist/_members/primitives/ui-blocks/ai-generate-overlay/index.d.ts +0 -8
  337. package/dist/_members/primitives/ui-blocks/ai-generation-canvas/index.d.ts +0 -8
  338. package/dist/_members/primitives/ui-blocks/badge-pop/index.d.ts +0 -11
  339. package/dist/_members/primitives/ui-blocks/before-after-slider/index.d.ts +0 -11
  340. package/dist/_members/primitives/ui-blocks/benchmark-bars/index.d.ts +0 -11
  341. package/dist/_members/primitives/ui-blocks/bounding-box-selector/index.d.ts +0 -8
  342. package/dist/_members/primitives/ui-blocks/browser-flow/index.d.ts +0 -8
  343. package/dist/_members/primitives/ui-blocks/brush-stroke-simulator/index.d.ts +0 -18
  344. package/dist/_members/primitives/ui-blocks/chat-exchange/index.d.ts +0 -10
  345. package/dist/_members/primitives/ui-blocks/code-accordion/index.d.ts +0 -8
  346. package/dist/_members/primitives/ui-blocks/context-meter/index.d.ts +0 -11
  347. package/dist/_members/primitives/ui-blocks/cursor-flow/index.d.ts +0 -11
  348. package/dist/_members/primitives/ui-blocks/dashboard-populate/index.d.ts +0 -8
  349. package/dist/_members/primitives/ui-blocks/data-flow-pipes/index.d.ts +0 -9
  350. package/dist/_members/primitives/ui-blocks/device-mockup-zoom/index.d.ts +0 -8
  351. package/dist/_members/primitives/ui-blocks/drag-and-drop-flow/index.d.ts +0 -8
  352. package/dist/_members/primitives/ui-blocks/eval-scorecard/index.d.ts +0 -11
  353. package/dist/_members/primitives/ui-blocks/glass-code-block/index.d.ts +0 -8
  354. package/dist/_members/primitives/ui-blocks/image-expand-to-fullscreen/index.d.ts +0 -8
  355. package/dist/_members/primitives/ui-blocks/metric-gauge/index.d.ts +0 -12
  356. package/dist/_members/primitives/ui-blocks/morphing-modal/index.d.ts +0 -8
  357. package/dist/_members/primitives/ui-blocks/pipeline-journey/index.d.ts +0 -8
  358. package/dist/_members/primitives/ui-blocks/progress-steps/index.d.ts +0 -8
  359. package/dist/_members/primitives/ui-blocks/reasoning-trace/index.d.ts +0 -10
  360. package/dist/_members/primitives/ui-blocks/simulated-cursor/index.d.ts +0 -8
  361. package/dist/_members/primitives/ui-blocks/terminal-simulator/index.d.ts +0 -19
  362. package/dist/_members/primitives/ui-blocks/toast-notification/index.d.ts +0 -8
  363. package/dist/_members/primitives/ui-blocks/tool-call-stack/index.d.ts +0 -8
  364. package/dist/_members/primitives/ui-blocks/tool-menu-slide-in/index.d.ts +0 -8
  365. package/dist/_members/primitives/ui-blocks/visual-docs-snippet/index.d.ts +0 -8
  366. package/dist/_members/primitives/ui-blocks/voice-waveform/index.d.ts +0 -11
  367. package/dist/_members/primitives/workspace.d.ts +0 -29
  368. package/dist/_members/render-harness/browserOptions.d.ts +11 -0
  369. package/dist/_members/render-harness/browserOptions.d.ts.map +1 -0
  370. package/dist/_members/render-harness/cardRender.d.ts +0 -40
  371. package/dist/_members/render-harness/cardRender.d.ts.map +1 -1
  372. package/dist/_members/render-harness/contractRender.d.ts +0 -16
  373. package/dist/_members/render-harness/contractRender.d.ts.map +1 -1
  374. package/dist/_members/render-harness/extractSegments.d.ts +0 -37
  375. package/dist/_members/render-harness/extractSegments.d.ts.map +1 -1
  376. package/dist/_members/render-harness/index.d.ts +0 -12
  377. package/dist/_members/render-harness/index.d.ts.map +1 -1
  378. package/dist/_members/render-harness/localRender.d.ts +1 -110
  379. package/dist/_members/render-harness/localRender.d.ts.map +1 -1
  380. package/dist/_members/render-harness/materializeSources.d.ts +0 -22
  381. package/dist/_members/render-harness/materializeSources.d.ts.map +1 -1
  382. package/dist/_members/render-harness/mediaServer.d.ts +0 -16
  383. package/dist/_members/render-harness/mediaServer.d.ts.map +1 -1
  384. package/dist/_members/render-harness/remotion-runtime.d.ts +53 -0
  385. package/dist/_members/render-harness/renderInputAssets.d.ts +0 -45
  386. package/dist/_members/render-harness/renderInputAssets.d.ts.map +1 -1
  387. package/dist/_members/render-harness/resolveAssets.d.ts +0 -24
  388. package/dist/_members/render-harness/resolveAssets.d.ts.map +1 -1
  389. package/dist/_members/render-harness/sandboxGlobalSpecs.d.ts +0 -14
  390. package/dist/_members/render-harness/sandboxGlobalSpecs.d.ts.map +1 -1
  391. package/dist/account-model/validators.js +1 -1
  392. package/dist/account-model.js +1 -1
  393. package/dist/animate.js +0 -15
  394. package/dist/authoring/build-tools.js +8 -8
  395. package/dist/authoring/composer.js +0 -20
  396. package/dist/authoring/context.js +6 -6
  397. package/dist/authoring/pipelineTrace.js +1 -1
  398. package/dist/authoring/prompts.js +1 -5
  399. package/dist/authoring/resource-routing.js +1 -1
  400. package/dist/authoring/resources.js +1 -1
  401. package/dist/authoring/tools.js +7 -7
  402. package/dist/authoring.js +14 -84
  403. package/dist/{chunk-TWQOKKAF.js → chunk-23HFEKV7.js} +0 -6
  404. package/dist/{chunk-EA6MYCYW.js → chunk-2B5VJZHL.js} +14 -25
  405. package/dist/chunk-73DQTUWY.js +131 -0
  406. package/dist/chunk-AW57IWNW.js +272 -0
  407. package/dist/chunk-BADZHXLR.js +0 -0
  408. package/dist/{chunk-GA23TRNR.js → chunk-BKHGL4MB.js} +5 -13
  409. package/dist/{chunk-PDYO3DOJ.js → chunk-BZZTVOGG.js} +6 -55
  410. package/dist/{chunk-7FO3ZJ43.js → chunk-DCVJWGIA.js} +1 -9
  411. package/dist/{chunk-HI4UTTPS.js → chunk-DJW3UGBH.js} +41 -72
  412. package/dist/{chunk-SIGGQRY2.js → chunk-DL7WYISQ.js} +5291 -4419
  413. package/dist/{chunk-AQBREB5O.js → chunk-DWLNPNC4.js} +1 -4
  414. package/dist/{chunk-SW336CJP.js → chunk-DYZE7JZA.js} +3 -26
  415. package/dist/{chunk-HCCBDJLW.js → chunk-EP2Y6M2J.js} +0 -4
  416. package/dist/{chunk-ZE76SSRT.js → chunk-FMODQD5P.js} +0 -6
  417. package/dist/chunk-FTVZF4GO.js +0 -0
  418. package/dist/{chunk-PMY24FUD.js → chunk-G5BFI32U.js} +1 -1
  419. package/dist/{chunk-LD5ZOUFT.js → chunk-GF52TW4I.js} +0 -4
  420. package/dist/{chunk-JJ6XD7NG.js → chunk-GIA2SVVB.js} +70 -2
  421. package/dist/{chunk-ABL557OT.js → chunk-GMD33ZD7.js} +1 -8
  422. package/dist/{chunk-AP6ZIVAV.js → chunk-HBVAZXYO.js} +17 -17
  423. package/dist/{chunk-UY4SWJVE.js → chunk-HFC3MKXA.js} +0 -63
  424. package/dist/{chunk-ZWMV6DD2.js → chunk-ICSZF37W.js} +10 -162
  425. package/dist/chunk-IEXAKOEX.js +113 -0
  426. package/dist/{chunk-RF7U3SCL.js → chunk-KFECIHED.js} +29 -26
  427. package/dist/{chunk-DK2ODBNT.js → chunk-NQSMEUJ6.js} +16 -98
  428. package/dist/{chunk-YX2GSJK7.js → chunk-RP4SXXLJ.js} +1 -1
  429. package/dist/{chunk-P727GZVO.js → chunk-SAMQUUO5.js} +3 -5
  430. package/dist/{chunk-MMEJ3Y7E.js → chunk-SDCEJAO2.js} +97 -23
  431. package/dist/{chunk-TOJEXFXL.js → chunk-TFGKUWHY.js} +1 -88
  432. package/dist/chunk-TMB5AY6Q.js +146 -0
  433. package/dist/chunk-TO4BFNLJ.js +93 -0
  434. package/dist/{chunk-UHGSZZDI.js → chunk-TPA6PYN2.js} +1 -11
  435. package/dist/{chunk-MBCXCJOE.js → chunk-TXSFYUZH.js} +1 -1
  436. package/dist/{chunk-OLFOPQCA.js → chunk-UQSOS726.js} +4 -18
  437. package/dist/{chunk-GBRNYH7W.js → chunk-V24L35GM.js} +0 -11
  438. package/dist/{chunk-JMURQODM.js → chunk-VZ7TYX6Z.js} +0 -1
  439. package/dist/{chunk-W35ZMOXB.js → chunk-WPZKOVYF.js} +0 -5
  440. package/dist/chunk-WZH57M53.js +494 -0
  441. package/dist/{chunk-AYVJXDLB.js → chunk-XHGZ2E77.js} +0 -2
  442. package/dist/{chunk-7DHP4ESU.js → chunk-YLDMAZZE.js} +0 -10
  443. package/dist/{chunk-FYZVH3MC.js → chunk-YQ7FFW3G.js} +0 -11
  444. package/dist/{chunk-HY3RIEZW.js → chunk-ZPRBGW4Y.js} +1 -1
  445. package/dist/cloud-import/multipart.js +1 -1
  446. package/dist/cloud-import.js +9 -16
  447. package/dist/compose/renderer.js +18 -18
  448. package/dist/compose.js +21 -21
  449. package/dist/composition/audio.js +1 -1
  450. package/dist/composition/brand-kit.js +0 -5
  451. package/dist/composition/graphics-plan.js +4 -4
  452. package/dist/composition/ops.js +5 -5
  453. package/dist/composition/primitive-catalog.js +1 -1
  454. package/dist/composition/projection.js +11 -3
  455. package/dist/composition/reframe/kenBurns.js +0 -4
  456. package/dist/composition/reframe.js +4 -2
  457. package/dist/composition/timeline.js +1 -1
  458. package/dist/composition/validators/graphic-kinds.js +1 -1
  459. package/dist/composition/validators.js +4 -4
  460. package/dist/composition-ops.js +16 -135
  461. package/dist/composition.js +15 -7
  462. package/dist/context-JLLU3MYD.js +14 -0
  463. package/dist/core/render.js +9 -7
  464. package/dist/core/select.js +2 -6
  465. package/dist/core.js +5 -7
  466. package/dist/director/ai-sdk.d.ts +1 -0
  467. package/dist/director/ai-sdk.js +33 -0
  468. package/dist/director/domain.d.ts +1 -0
  469. package/dist/director/domain.js +62 -0
  470. package/dist/director/testing.d.ts +1 -0
  471. package/dist/director/testing.js +22 -0
  472. package/dist/director.d.ts +1 -0
  473. package/dist/director.js +86 -0
  474. package/dist/errors.js +1 -1
  475. package/dist/foundation.js +1 -0
  476. package/dist/mcp/adapter.js +45 -75
  477. package/dist/mcp/core.js +1 -1
  478. package/dist/mcp/curation.js +1 -1
  479. package/dist/mcp/server.js +4 -4
  480. package/dist/mcp.js +4 -4
  481. package/dist/media-model/generation.d.ts +1 -0
  482. package/dist/media-model/generation.js +40 -0
  483. package/dist/media-model/testing.js +6 -6
  484. package/dist/media-model.js +38 -6
  485. package/dist/nle-export.js +21 -21
  486. package/dist/plane/contract.js +0 -3
  487. package/dist/primitives/backgrounds.js +2 -2
  488. package/dist/primitives/captions.js +0 -5
  489. package/dist/primitives/effects.js +2 -2
  490. package/dist/primitives/hero-text.js +2 -2
  491. package/dist/primitives/layouts.js +2 -2
  492. package/dist/primitives/lib/index.js +17 -17
  493. package/dist/primitives/lib/text/fitText.js +1 -1
  494. package/dist/primitives/lib/tokens.js +1 -1
  495. package/dist/primitives/lib.js +17 -17
  496. package/dist/primitives/scenes.js +2 -2
  497. package/dist/primitives/text.js +2 -2
  498. package/dist/primitives/ui-blocks.js +4 -4
  499. package/dist/primitives.js +21 -21
  500. package/dist/render-harness/sandboxGlobalSpecs.js +1 -1
  501. package/dist/render-harness.js +24 -41
  502. package/package.json +38 -21
  503. package/dist/chunk-6EQXLEP6.js +0 -194
  504. package/dist/chunk-OCFDUCF4.js +0 -504
  505. package/dist/chunk-PODIYN2K.js +0 -742
  506. package/dist/context-YWUZDG5X.js +0 -14
@@ -1,50 +1,11 @@
1
- /**
2
- * Reframe eval — the INCLUSION metric (Phase 3 gate) + the shot-aware teleport
3
- * and old-vs-new smoothness baselines.
4
- *
5
- * The Phase-2 gate (jitter ≤ center-crop) is the WRONG bar for a MOVING subject:
6
- * a static center crop has jitter 0, but the subject walks out of frame. The
7
- * camera that TRACKS the subject HAS motion (jitter > 0) and is CORRECT. So the
8
- * Phase-3 gate is INCLUSION: the per-frame RequiredRegion (the padded subject/
9
- * group box the crop must contain) must stay ⊆ the crop window. Our reframe must
10
- * reach inclusionRate ≈ 1.0 on a moving subject (the camera tracks), and a
11
- * static center-crop's inclusionRate must be materially LOWER (the subject walks
12
- * out). See the virtual-camera spec, "Virtual-camera stability" + the Phase-3
13
- * gate note.
14
- *
15
- * Pure, deterministic, no I/O. Replays the SAME `selectSubjectSet` +
16
- * `regionsFromBoxes` the shipping all-faces derive uses, so the regions are
17
- * EXACTLY the boxes the camera was obliged to contain.
18
- */
19
1
  import type { SubjectTrack } from '../deriveTrajectory.js';
20
2
  import type { CropBox } from './cropBox.js';
21
3
  import { type RequiredRegion } from '../vcam/requiredRegion.js';
22
- /** True iff the padded RequiredRegion is fully inside the crop box (the crop
23
- * window contains the region — the subject stays in frame). */
24
4
  export declare function regionInCrop(region: RequiredRegion, crop: CropBox): boolean;
25
- /**
26
- * The per-frame RequiredRegions an `all-faces` camera was obliged to contain,
27
- * over the WHOLE track window (one all-faces segment). Recomputes the shipping
28
- * selection so the regions match the derive exactly. Null where no framed member
29
- * is present (occlusion / gap) — those frames are EXCLUDED from inclusionRate
30
- * (there's no subject to keep in frame).
31
- */
32
5
  export declare function requiredRegionsForTrack(track: SubjectTrack): Array<RequiredRegion | null>;
33
- /** The all-faces `inclusionRate` for a crop-box series vs the per-frame
34
- * RequiredRegions: the fraction of REGION-BEARING frames whose region is fully
35
- * inside the crop. `1.0` ⇒ the subject never walks out of frame. Frames with no
36
- * region (no subject present) are not counted. */
37
6
  export declare function inclusionRate(regions: Array<RequiredRegion | null>, crops: CropBox[]): {
38
7
  rate: number;
39
8
  framesWithRegion: number;
40
9
  contained: number;
41
10
  };
42
- /**
43
- * The largest per-frame center step measured WITHIN trajectory segments (one per
44
- * sub-shot), in output-crop-normalized units. Steps ACROSS a segment boundary
45
- * (a detector shot cut) are EXCLUDED — a camera snap at a real cut is intended
46
- * (the only reset), so it is not a "teleport". An intra-shot maxStep above the
47
- * bar is the chase/teleport the gate guards against. `segLens` are the per-
48
- * segment frame counts (so the walk knows where the cut-snaps are).
49
- */
50
11
  export declare function intraShotMaxStep(crops: CropBox[], segLens: number[]): number;
@@ -1,93 +1,35 @@
1
- /**
2
- * Reframe eval harness — the public surface for the metrics + the fixture-driven
3
- * report. Pure TS, no Modal, no R2: every metric replays a cached `SubjectTrack`
4
- * fixture through the REAL `deriveTrajectory` and measures the composed crop box.
5
- * See the virtual-camera spec's "Eval / metrics / test harness (built FIRST)".
6
- *
7
- * Phase 0 shipped jitter + center-crop. Phase 3 adds the INCLUSION gate (the
8
- * camera tracks a moving subject ⇒ region ⊆ crop) + the shot-aware teleport
9
- * metric + the "smoother than the old EMA path" characterization, because pure
10
- * jitter-beats-center-crop is the WRONG bar once the camera legitimately moves to
11
- * track (a static center-crop has jitter 0 but loses a walking subject).
12
- */
13
1
  import type { SubjectTrack, ReframeSegment } from '../deriveTrajectory.js';
14
2
  import { type JitterBreakdown } from './metrics.js';
15
3
  export type { CropBox } from './cropBox.js';
16
4
  export { cropBoxSeries, centerCropBoxSeries, rawCentroidBoxSeries, cropBoxSeriesFromCenters, cropWindowSize, cropBoxForFrame, } from './cropBox.js';
17
5
  export { jitter, iou, mIoU, type JitterBreakdown } from './metrics.js';
18
6
  export { requiredRegionsForTrack, inclusionRate, intraShotMaxStep, regionInCrop, } from './inclusion.js';
19
- /** One fixture's reframe-eval report — the numbers a CI gate / RED baseline reads. */
20
7
  export interface ReframeEvalReport {
21
- /** Composed-crop-box jitter of the algorithm under test. */
22
8
  jitter: JitterBreakdown;
23
- /** Composed-crop-box jitter of the static center crop (same per-shot zoom). */
24
9
  centerCropJitter: JitterBreakdown;
25
- /** Composed-crop-box jitter of the raw subject-centroid path (research bar). */
26
10
  rawCentroidJitter: JitterBreakdown;
27
- /** True iff the algorithm beats the static center crop on smoothness (the bar). */
28
11
  beatsCenterCrop: boolean;
29
- /** Frames in the composed series (one per output frame across all segments). */
30
12
  frames: number;
31
13
  }
32
- /**
33
- * Run the base eval over a fixture track + authored reframe segments. Derives the
34
- * trajectory through the SHIPPING `deriveTrajectory`, composes the crop boxes,
35
- * and reports jitter vs the center-crop + raw-centroid baselines.
36
- */
37
14
  export declare function evalReframe(track: SubjectTrack, segments: ReframeSegment[], aspect: string, bakeVersion: string): ReframeEvalReport;
38
- /** The Phase-3 tracking report — the gate for a MOVING subject (inclusion, not
39
- * jitter-beats-center-crop). All over a single full-window `all-faces` segment. */
40
15
  export interface ReframeTrackingReport {
41
- /** Inclusion rate of OUR camera path (region ⊆ crop) — ≈1.0 ⇒ subject tracked. */
42
16
  inclusionRate: number;
43
- /** Inclusion rate of a STATIC center crop (same per-shot zoom) — lower ⇒ subject
44
- * walks out of a static crop, which our tracking camera fixes. */
45
17
  centerCropInclusionRate: number;
46
- /** Frames that had a RequiredRegion (a subject to keep in frame). */
47
18
  framesWithRegion: number;
48
- /** Composed-crop jitter of OUR camera path. */
49
19
  jitter: JitterBreakdown;
50
- /** Composed-crop jitter of the SAME per-frame tracking centroid through the OLD
51
- * `emaSmooth` (the characterization baseline — ours must be ≤ this). */
52
20
  emaPathJitter: JitterBreakdown;
53
- /** Composed-crop jitter of the RAW (unsmoothed) per-frame tracking centroid. */
54
21
  rawPathJitter: JitterBreakdown;
55
- /** Largest per-frame center step WITHIN a shot (cut-snaps excluded) — teleport
56
- * guard. Motion exists (tracking), but no intra-shot jump. */
57
22
  intraShotMaxStep: number;
58
23
  frames: number;
59
24
  }
60
- /**
61
- * The Phase-3 tracking eval for an `all-faces` segment over the whole window.
62
- * Recomputes the per-frame RequiredRegions (the SAME `selectSubjectSet` the
63
- * derive uses) and measures whether the camera keeps the subject in frame
64
- * (inclusion), how it compares to the old EMA path (smoothness), and that it
65
- * never teleports within a shot. The fixed crop window per frame is the
66
- * segment's authored zoom + aspect (all-faces has no eased per-frame zoom).
67
- */
68
25
  export declare function evalTracking(track: SubjectTrack, aspect: string, bakeVersion: string): ReframeTrackingReport;
69
- /** One mode's OLD-vs-NEW report for a `face` / `active-speaker` segment. */
70
26
  export interface SingleSubjectEvalReport {
71
- /** NEW (core geometric-deadzone) composed-crop jitter. */
72
27
  jitter: JitterBreakdown;
73
- /** OLD (emaSmooth 0.35 over the bare centroid) composed-crop jitter. */
74
28
  emaJitter: JitterBreakdown;
75
- /** NEW inclusion vs the chosen subject's per-frame padded BOX region. */
76
29
  inclusionRate: number;
77
- /** OLD inclusion vs the SAME region (so the two paths are judged on one bar). */
78
30
  emaInclusionRate: number;
79
- /** NEW intra-shot max center step (cut-snaps excluded) — the teleport guard. */
80
31
  intraShotMaxStep: number;
81
- /** OLD intra-shot max center step. */
82
32
  emaIntraShotMaxStep: number;
83
- /** Frames the chosen subject was resolved (had a box) — the inclusion denominator. */
84
33
  framesWithRegion: number;
85
34
  }
86
- /**
87
- * Characterize the P4 `face` / `active-speaker` migration on a real fixture: the
88
- * NEW core geometric-deadzone path (run via the SHIPPING `deriveTrajectory`) vs
89
- * the OLD `emaSmooth` path (reconstructed here over the SAME per-frame chosen-
90
- * subject centroid the old code used), measured against ONE inclusion region (the
91
- * chosen subject's per-frame padded BOX). All over a single full-window segment.
92
- */
93
35
  export declare function evalSingleSubject(track: SubjectTrack, mode: 'face' | 'active-speaker', aspect: string, bakeVersion: string, faceId?: string): SingleSubjectEvalReport;
@@ -1,48 +1,12 @@
1
- /**
2
- * Reframe eval metrics — pure, label-free, deterministic.
3
- *
4
- * Tier 1 (HARD CI BLOCKERS, no human labels): `jitter` + the center-crop
5
- * comparison. These are what gate the build per the virtual-camera spec —
6
- * "jitter-beats-center-crop is the only ship-blocker".
7
- *
8
- * Tier 2 (REPORTED, not blocking): `mIoU` — scaffolded + reported, NOT a gate,
9
- * because per-frame human ground-truth boxes don't exist yet (RESOLVED #3).
10
- *
11
- * `jitter` = mean over frames of the absolute frame-to-frame difference of the
12
- * composed crop box (center x/y AND size), in output-crop-normalized units. The
13
- * per-component delta is normalized by the box's own size, so the metric is
14
- * zoom-invariant: a half-window pan reads the same number at any zoom (the spec's
15
- * "held feel is zoom-invariant" requirement). Lower is smoother. A static crop
16
- * has zero pan jitter; the only motion it carries is the per-shot `zoom_scale`
17
- * steps, which both paths share — so `jitter(ours) ≤ jitter(centerCrop)` isolates
18
- * "where the camera points" as the sole variable.
19
- */
20
1
  import type { CropBox } from './cropBox.js';
21
- /** Per-channel jitter breakdown (so a regression points at center vs zoom). */
22
2
  export interface JitterBreakdown {
23
- /** Mean |Δ| of the window center, normalized by window size (output-crop units). */
24
3
  center: number;
25
- /** Mean |Δ| of the window size (zoom channel), normalized by mean window size. */
26
4
  zoom: number;
27
- /** Combined center + zoom mean absolute step — the headline jitter scalar. */
28
5
  total: number;
29
- /** The single largest per-frame center step (output-crop units) — teleport guard. */
30
6
  maxCenterStep: number;
31
7
  }
32
- /**
33
- * Jitter of a composed crop-box series. Empty / single-frame series → all zeros
34
- * (no motion to measure). The center delta is divided by the per-frame window
35
- * size so it is expressed in fractions of the crop window (output-crop space);
36
- * the zoom delta is divided by the mean window size for the same normalization.
37
- */
38
8
  export declare function jitter(boxes: CropBox[]): JitterBreakdown;
39
- /** Intersection-over-union of two source-normalized crop boxes. */
40
9
  export declare function iou(a: CropBox, b: CropBox): number;
41
- /**
42
- * mIoU + IoU@0.5 vs a per-frame ground-truth crop-box series (Tier 2, REPORTED
43
- * only). Scaffolded now so the harness emits a number the moment labels exist;
44
- * NOT a CI gate (no hand-labeled fixtures yet — RESOLVED #3). Lengths must match.
45
- */
46
10
  export declare function mIoU(ours: CropBox[], groundTruth: CropBox[]): {
47
11
  mIoU: number;
48
12
  iouAt50: number;
@@ -1,7 +1,3 @@
1
- /**
2
- * Export settings types and constants shared between desktop and cloud render paths.
3
- * Extracted from apps/studio/src/store/exportStore.ts — pure functions, no store deps.
4
- */
5
1
  import type { CaptionStyle } from './types.js';
6
2
  export type ExportQuality = 'maximum' | 'social' | 'web' | 'potato' | 'source';
7
3
  export type ExportFormat = 'source' | '16:9' | '9:16' | '4:5' | '1:1';
@@ -28,13 +24,9 @@ export declare const RESOLUTION_PRESETS: Record<Exclude<ExportResolution, 'sourc
28
24
  label: string;
29
25
  height: number;
30
26
  }>;
31
- /** Convert a BPP value to an approximate CRF (H.264). */
32
27
  export declare function bppToCrf(bpp: number): number;
33
- /** Compute output dimensions and CRF from source dims + quality preset. */
34
- export declare function computeExportDimensions(sourceWidth: number, sourceHeight: number, format: ExportFormat, quality: ExportQuality): {
35
- width: number;
36
- height: number;
37
- crf: number | undefined;
38
- };
39
- /** Ensure a dimension is even (required by most codecs). */
28
+ export declare function qualityToCrf(quality: ExportQuality): number | undefined;
29
+ export declare function resolutionToOutputSize(width: number, height: number, resolution: ExportResolution): {
30
+ outputWidth: number;
31
+ } | undefined;
40
32
  export declare function ensureEven(n: number): number;
@@ -7,7 +7,7 @@ export { extractCaptionWordsFromDoc, sliceTranscriptWords, splitIntoSentences }
7
7
  export { compositionToRenderInput, referencedMediaIds, componentRefsByClipId, assembleRenderInput, validateComposition, compositionFormatDimensions, playableSpans, } from './compositionRender.js';
8
8
  export { bookendFrames, resolveBookendTimeline, CARD_BOOKEND_DEFAULT_MS, VIDEO_BOOKEND_DEFAULT_MS, } from './bookends.js';
9
9
  export type { BookendTimeline } from './bookends.js';
10
- export { DEFAULT_FPS, DEFAULT_WIDTH, DEFAULT_HEIGHT, DEFAULT_RENDER_SETTINGS, FORMAT_PRESETS, RESOLUTION_PRESETS, bppToCrf, computeExportDimensions, ensureEven, } from './exportSettings.js';
10
+ export { DEFAULT_FPS, DEFAULT_WIDTH, DEFAULT_HEIGHT, DEFAULT_RENDER_SETTINGS, FORMAT_PRESETS, RESOLUTION_PRESETS, bppToCrf, ensureEven, qualityToCrf, resolutionToOutputSize, } from './exportSettings.js';
11
11
  export type { ExportFormat, ExportQuality, ExportResolution, FormatPreset, RenderSettings, } from './exportSettings.js';
12
12
  export { faceArea, resolveSubjectFaces, selectedFaceCenter, isJump, emaSmooth, clip01, captionBandReserve, aspectWhRatio, nearestKpValue, activeWindowsFor, perSubjectSeries, calibrateShotScale, deriveSegment, deriveTrajectory, buildEasedZooms, buildPannedCenters, easeOutCubic, JUMP_THRESHOLD, MIN_SUBJECT_RESOLUTION, } from './deriveTrajectory.js';
13
13
  export type { Subject, Center, TrajectorySubject, TrajectorySegment, TrajectoryData, Face, FaceBox, SubjectTrack, ReframeSegment, } from './deriveTrajectory.js';
@@ -1,39 +1,12 @@
1
- /**
2
- * Face→person identity mapping for the perception ESCALATION path.
3
- *
4
- * The plan authors subjects against the FACE roster (`face-N`, YuNet/SCRFD).
5
- * When the face tracker carries that identity in too few frames
6
- * (`subject_not_tracked` — e.g. the subject looks away for most of a long
7
- * segment), the compose escalates to the PERSON detector (YOLO11x + BoT-SORT),
8
- * whose track names identities `person-N`. This maps the authored face id onto
9
- * the person id whose body boxes CONTAIN that face, scored over exactly the
10
- * frames where the face DID resolve — the face evidence is sparse but real, and
11
- * a face box sits inside its own person's box in every such frame.
12
- *
13
- * Pure math, no I/O. Tracks may have different frame counts (defensive):
14
- * frames align by relative position in the shared detection window.
15
- */
16
1
  type Box = [number, number, number, number];
17
2
  interface TrackLike {
18
3
  perFrameTracked: Array<Record<string, Box>>;
19
4
  }
20
5
  export interface FaceToPersonMapping {
21
6
  personId: string;
22
- /** Frames where the face resolved AND the winning person contained it. */
23
7
  matchedFrames: number;
24
- /** Frames where the face resolved at all (the scoring denominator). */
25
8
  faceFrames: number;
26
- /** Winner's total containment score / runner-up's (Infinity when unopposed). */
27
9
  margin: number;
28
10
  }
29
- /**
30
- * Map one authored face id to the person-track id that carries it, or null when
31
- * the evidence is missing/ambiguous (caller fails loud — never a guess).
32
- *
33
- * Decision rule: sum per-frame containment per person id over the frames where
34
- * the face resolves; the winner needs (a) support in ≥30% of those frames at
35
- * ≥60% containment, and (b) a 1.5× margin over the runner-up (two people
36
- * side-by-side must not coin-flip).
37
- */
38
11
  export declare function mapFaceIdToPersonId(faceTrack: TrackLike, personTrack: TrackLike, faceId: string): FaceToPersonMapping | null;
39
12
  export {};
@@ -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[];