@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
@@ -1,28 +1,3 @@
1
- /**
2
- * deriveTrajectory — PURE TypeScript STAGE-B crop-trajectory math (the cheap
3
- * "apply a crop intent" half), derived over a cached source-level `subjectTrack`.
4
- *
5
- * This is the SINGLE crop derivation for EVERY render surface — the agent's
6
- * in-loop capture, the verifier eval, AND the customer ship render — by
7
- * construction: each surface calls THIS function over the SAME cached track +
8
- * the SAME authored reframe, so the trajectory is identical bytes with no
9
- * pre-baked variant cache to drift. Render-time-resolution (2026-06-14): the
10
- * trajectory is DERIVED INLINE at render, never looked up as a baked variant,
11
- * which deleted the trajectory variant cache + its `variant_not_baked` bug class.
12
- *
13
- * Lives in @cueframe/execution/core (`@cueframe/core/render`) — it depends only
14
- * on TYPES from @cueframe/perception (`SubjectTrack`/`Face`/`FaceBox`) and
15
- * @cueframe/composition (`ReframeSegment` + the eased-ramp helpers), both legal
16
- * execution-framework dependencies (execution MAY depend on perception +
17
- * composition). The Modal `reframe_bake` re-detection path is retired — there is
18
- * one derivation, so there is no TS↔Python drift to guard against.
19
- *
20
- * Output shape is the canonical `TrajectoryData` from
21
- * @cueframe/composition/reframe/trajectory — the SSOT that both this producer and
22
- * the renderer (CropFromTrajectory.tsx) import; neither declares a local mirror.
23
- *
24
- * See brain/Projects/CueFrame/specs/2026-06-14-render-time-resolution-design.md.
25
- */
26
1
  import type { Face, FaceBox, SubjectTrack } from '../../perception/index.js';
27
2
  export type { Face, FaceBox, SubjectTrack } from '../../perception/index.js';
28
3
  import type { ReframeSegment } from '../../composition/reframe/index.js';
@@ -31,15 +6,7 @@ export { buildEasedZooms, buildPannedCenters, easeOutCubic } from '../../composi
31
6
  import type { TrajectorySubject, TrajectoryData } from '../../composition/reframe/trajectory.js';
32
7
  export type { TrajectorySubject, TrajectorySegment, TrajectoryData } from '../../composition/reframe/trajectory.js';
33
8
  import { type ShotFit } from './vcam/framing.js';
34
- /**
35
- * Normalized area of a face detection — used to rank faces largest-first
36
- * (largest ≈ closest to camera = `face-0` by convention). Mirrors
37
- * reframe_bake.py `_face_area` (width/height path; negatives clamp to 0).
38
- */
39
9
  export declare function faceArea(face: Face): number;
40
- /** The crop subject pick the agent authors on a segment (mirror of the wire
41
- * `cropIntents[].subject`). `active-speaker` is resolved upstream (per
42
- * keyframe) into a concrete `face` before this is consulted. */
43
10
  export type Subject = {
44
11
  kind: 'face';
45
12
  faceId: string;
@@ -54,131 +21,24 @@ export type Subject = {
54
21
  x: number;
55
22
  y: number;
56
23
  };
57
- /**
58
- * Filter the detector's face list by the segment's subject pick:
59
- * - `all-faces` → all faces (cropper fits the union bbox).
60
- * - `frame-center` → [] (cropper centers on the source geometric center).
61
- * - `face` faceId=`face-N` → the face with that STABLE tracker id this frame.
62
- * The roster the agent authors against carries the tracker's stable ids, so
63
- * `face-2` means "that tracked person," NOT "the 3rd-largest face this frame."
64
- * Absent this frame → [] (caller emits no center; EMA forward-fills) rather
65
- * than silently snapping to a DIFFERENT person — the old area-rank +
66
- * out-of-range→largest behavior is exactly what made the crop ping-pong
67
- * between speakers (brain Issue crop-subject-resolved-by-area-rank).
68
- * - The EMPTY-string faceId is a sentinel (the active-speaker degrade, see
69
- * deriveSegment) meaning "no specific subject this frame → largest face."
70
- * Throws on an unknown kind.
71
- *
72
- * NB: the retired Python `reframe_bake._resolve_subject_faces` did area-rank;
73
- * that path is dead (TS is the only live derivation), so there is no drift.
74
- */
75
24
  export declare function resolveSubjectFaces(faces: Face[], subject: Subject): Face[];
76
- /** A normalized crop center `[cx, cy]` in [0,1] vs source dims. */
77
25
  export type Center = [number, number];
78
- /**
79
- * The target crop center from face dets + subject pick. Mirrors
80
- * reframe_bake.py `_selected_face_center`: `frame-center` (and no usable
81
- * selection) → null (caller centers on source); otherwise the area-weighted
82
- * centroid of the selected faces (degenerates to a single face's center).
83
- */
84
26
  export declare function selectedFaceCenter(faces: Face[], subject: Subject): Center | null;
85
- /** Normalized distance beyond which adjacent centers are treated as a shot
86
- * change (hard cut / new angle) and smoothing snaps instead of blending —
87
- * mirror of reframe_bake.py `JUMP_THRESHOLD`. */
88
27
  export declare const JUMP_THRESHOLD = 0.15;
89
- /** Minimum fraction of a segment's frames in which an authored `face` subject
90
- * must actually be tracked. Below this, deriveTrajectory FAILS LOUD instead of
91
- * silently centering the crop — the authored identity isn't really in the clip
92
- * (tracker ID fragmentation). A genuine subject is present for the large
93
- * majority of frames it's framed over; 40% is a generous floor. */
94
28
  export declare const MIN_SUBJECT_RESOLUTION = 0.4;
95
29
  export declare function isJump(a: Center, b: Center): boolean;
96
- /**
97
- * Shot-aware EMA on per-frame centers. Forward-fill nulls with the last-known
98
- * position, then a forward + backward EMA pass, where BOTH passes snap (no
99
- * blend) ONLY across a detector-reported shot cut (`cutFrames`).
100
- *
101
- * Phase 1 (vcam): the `isJump`/`JUMP_THRESHOLD` inference is GONE as a cut
102
- * signal. A center jump is NEVER inferred to be a cut — that inference was the
103
- * false-cut snap (a ByteTrack detection-lag jiggle read as a new shot →
104
- * teleport). Cuts come ONLY from `shotBoundaries`. `isJump`/`JUMP_THRESHOLD`
105
- * remain exported (legacy consumers) but no longer drive smoothing here.
106
- *
107
- * Phase 3 (vcam): the `all-faces` CAMERA-CENTER smoothing is now the deadzone-
108
- * inclusion + Hamming-window stage in `cameraPath` (the camera TRACKS a moving
109
- * group). `emaSmooth` stays for the SEPARABLE non-center use — the per-subject
110
- * `face_box_series` the floor reads (`perSubjectSeries`) — and for the
111
- * UNCHANGED face/active-speaker/frame-center center path (byte-identical to the
112
- * pre-Phase-3 behavior, the mode-isolation invariant). It is NOT used for the
113
- * all-faces centers any more.
114
- */
115
30
  export declare function emaSmooth(centers: (Center | null)[], alpha?: number, cutFrames?: ReadonlySet<number>): Center[];
116
- /** Clamp to [0,1] — mirror of reframe_bake.py `_clip01`. */
117
31
  export declare function clip01(v: number): number;
118
- /** Bottom-band fraction the render keeps clear for captions per aspect.
119
- * CAPTION_BAND_RESERVE is the SSOT in @cueframe/composition (imported above). */
120
32
  export declare function captionBandReserve(aspect: string): number;
121
- /** Output aspect as width/height (e.g. '9:16' → 0.5625). FAILS LOUD on a
122
- * malformed aspect — a silent 9/16 default frames every non-vertical render
123
- * vertically (no-fallbacks rule). Callers pass `composition.format.aspectRatio`,
124
- * which the Composition validator constrains to a known enum, so a throw here
125
- * is a genuine drift/bug, never a user-reachable path. */
126
33
  export declare function aspectWhRatio(aspect: string): number;
127
- /**
128
- * The crop window size (source-normalized) for a given `zoom_scale` + output
129
- * aspect — the bake half of the renderer's `computeCropTransform`: the largest
130
- * output-aspect rect that fits the source, scaled by the zoom (clamped to
131
- * [0.4,1.0] like `bakedZoom`). Shared so the cameraPath deadzone (output-crop
132
- * units) can convert to the source-normalized geometry the regions live in.
133
- */
134
34
  export declare function cropWindowSizeFor(srcW: number, srcH: number, zoomScale: number, aspect: string): {
135
35
  w: number;
136
36
  h: number;
137
37
  };
138
- /** Return the value at the largest key ≤ `key` (fallback to the smallest key
139
- * when none precedes; null when empty) — mirror of `_nearest_kp_value`.
140
- * per-keyframe-speaker is a Map<frameOffset, faceId>. */
141
38
  export declare function nearestKpValue(d: Map<number, string>, key: number): string | null;
142
- /** Contiguous [startFrame, endFrame) ranges where `faceId` is the active
143
- * speaker; adjacent same-speaker spans merge — mirror of `_active_windows_for`.
144
- * Each keyframe pick holds until the next keyframe (last → frameCount). */
145
39
  export declare function activeWindowsFor(faceId: string, perKeyframeSpeaker: Map<number, string>, frameCount: number): Array<[number, number]>;
146
- /**
147
- * Build smoothed per-subject normalized face-box series + active windows from
148
- * the tracker's per-frame `{faceId: [x1,y1,x2,y2]}` (pixel) output. Mirror of
149
- * reframe_bake.py `_per_subject_series`: stable subject order = first
150
- * appearance; centers + sizes EMA-smoothed (alpha 0.35) with the same shot-aware
151
- * reset as the crop centers; frames with no tracked face stay null.
152
- */
153
40
  export declare function perSubjectSeries(perFrameTracked: Array<Record<string, FaceBox>>, srcW: number, srcH: number, perKeyframeSpeaker: Map<number, string>, frameCount: number, cutFrames?: ReadonlySet<number>): TrajectorySubject[];
154
- /** §22.1 target face-height fraction of the OUTPUT per editorial shot scale
155
- * (mirror of reframe_bake.py `_SHOT_SCALE_TARGET`). */
156
- /**
157
- * §22.1 (Phase 4): calibrate ZOOM to the DETECTED face for an editorial shot
158
- * scale. zoom = median(face_h_px)/fit_h / target, clamped [ZOOM_MIN, ZOOM_MAX].
159
- * shotScale seeds ZOOM ONLY — verticalBias (headroom) is the agent's AUTHORED
160
- * value, passed through verbatim; it is NEVER overridden here (the floor-vision
161
- * fix). When the authored fields are omitted: zoom defaults to 1.0 (frame as-is)
162
- * and headroom to 0 (dead-center, never auto-applied). Falls back to the authored
163
- * zoom/bias when shotScale is unset or no face was detected.
164
- *
165
- * The target table + the clamp live in @cueframe/composition/reframe/shotScale —
166
- * the SAME module the plan-time punch-in guard reads, so a shotScale the guard
167
- * admitted and the zoom this bakes can never disagree. Do NOT re-declare them here.
168
- *
169
- * NOTE this honors whatever shotScale reaches it. Whether the punch-in was EARNED
170
- * (is there room around the face? pixels to magnify?) is decided at the plan, by
171
- * `punchInWarrant` in that same module. A shotScale arriving here that the warrant
172
- * would refuse is a bug in the guard, not something to re-check.
173
- */
174
41
  export declare function calibrateShotScale(shotScale: string | undefined | null, subjects: TrajectorySubject[], srcW: number, srcH: number, aspect: string, fallbackZoom: number | undefined, fallbackVbias: number | undefined, authoredSubject?: Subject): [number, number];
175
- /**
176
- * Derive ONE segment's per-frame crop centers + per-subject series from a
177
- * segment-local slice of the cached track. Mirror of the STAGE B half of
178
- * reframe_bake.py `_bake_segment` (steps 4–7): per-frame subject filter
179
- * (active-speaker uses the nearest keyframe pick; otherwise largest/face-N) →
180
- * shot-aware EMA (alpha 0.35) → holes land at [0.5,0.5] → per-subject series.
181
- */
182
42
  export declare function deriveSegment(perFrameTracked: Array<Record<string, FaceBox>>, srcW: number, srcH: number, perKeyframeSpeaker: Map<number, string>, subject: Subject, cutFrames?: ReadonlySet<number>, fps?: number, aspect?: string, zoomScale?: number): {
183
43
  centers: Center[];
184
44
  subjects: TrajectorySubject[];
@@ -3,11 +3,5 @@ export interface EmphasisWord {
3
3
  sourceStart: number;
4
4
  sourceEnd: number;
5
5
  }
6
- /**
7
- * Build a Set keyed by "poolItemId:sourceStart" for O(1) emphasis lookups.
8
- * sourceStart is rounded to 3 decimal places to handle floating-point drift
9
- * between transcript sources and stored emphasis data.
10
- */
11
6
  export declare function buildEmphasisSet(emphasisWords: EmphasisWord[]): Set<string>;
12
- /** Check if a word (by poolItemId + sourceStart) is in the emphasis set. */
13
7
  export declare function isEmphasized(set: Set<string>, poolItemId: string, sourceStart: number): boolean;
@@ -1,87 +1,18 @@
1
- /**
2
- * Reframe eval — the COMPOSED crop box per output frame.
3
- *
4
- * The eval target is the crop box the camera ACTUALLY lands on, in
5
- * output-crop-normalized space — NOT the raw `centers`/`zoom_scale` of the
6
- * trajectory JSON. Per the virtual-camera spec ("the composed (post-floor) crop
7
- * is the eval target … zoom is two-layer"), the jitter / center-crop metrics
8
- * sample the box `computeCropTransform` produces, so they measure what ships.
9
- *
10
- * Phase 0 samples the BASE camera path (the trajectory) — the floor yield is a
11
- * separate, caption-driven layer with its own golden (Phase 4). The geometry
12
- * below is the bake half of `computeCropTransform`
13
- * (packages/execution/render-entry/src/CropFromTrajectory.tsx): crop-window size from
14
- * `zoom_scale`, center from the per-frame `centers`, coverage-clamped so the
15
- * window never runs past the source edge. We replicate it here (rather than
16
- * import the renderer — execution must not depend on the Remotion bundle) and a
17
- * test pins this replica against the renderer's published clamp behavior.
18
- *
19
- * Coordinate system: the crop box is expressed in SOURCE-NORMALIZED units —
20
- * `cx,cy` ∈ [0,1] (window center vs source dims) and `w,h` ∈ [0,1] (window size
21
- * as a fraction of the source). Frame-to-frame motion of THIS box is the camera
22
- * motion; normalizing the per-component delta by the box's own size converts it
23
- * to output-crop-normalized units (a half-window pan is the same number at any
24
- * zoom — the zoom-invariant "held feel" the spec requires).
25
- */
26
1
  import type { TrajectoryData, TrajectorySegment } from '../../../composition/reframe/trajectory.js';
27
- /** The composed crop window for one output frame, source-normalized. */
28
2
  export interface CropBox {
29
- /** Window center x ∈ [0,1] vs source width (after the coverage clamp). */
30
3
  cx: number;
31
- /** Window center y ∈ [0,1] vs source height (after the coverage clamp). */
32
4
  cy: number;
33
- /** Window width as a fraction of the source width ∈ (0,1]. */
34
5
  w: number;
35
- /** Window height as a fraction of the source height ∈ (0,1]. */
36
6
  h: number;
37
7
  }
38
- /**
39
- * Crop-window dimensions (source-normalized) for a given `zoom_scale` + output
40
- * aspect — the bake half of `computeCropTransform`. The largest output-aspect
41
- * rect that fits the source, scaled by the clamped zoom. No `faceScale` (the
42
- * floor's caption-band yield) is applied here — Phase 0 samples the base path.
43
- */
44
8
  export declare function cropWindowSize(srcW: number, srcH: number, zoomScale: number, aspect: string): {
45
9
  w: number;
46
10
  h: number;
47
11
  };
48
- /** The composed crop box for one frame of one segment. */
49
12
  export declare function cropBoxForFrame(seg: TrajectorySegment, frameInSeg: number, srcW: number, srcH: number, aspect: string): CropBox;
50
- /**
51
- * Flatten a `TrajectoryData` to the per-output-frame composed crop-box series
52
- * over all its segments, in order. This is the series the jitter metric walks.
53
- */
54
13
  export declare function cropBoxSeries(traj: TrajectoryData): CropBox[];
55
- /**
56
- * The STATIC center-crop baseline a content-aware reframe MUST beat on
57
- * smoothness: the same per-segment `zoom_scale` (so the only variable is WHERE
58
- * the camera points), but the center pinned to source-center every frame
59
- * (coverage-clamped, which for a centered window is a no-op). A static crop has
60
- * zero pan jitter by construction — its only frame-to-frame motion is the
61
- * per-shot `zoom_scale` steps the algorithm itself authors. The reframe is
62
- * "adding jitter for nothing" if it cannot beat THIS.
63
- */
64
14
  export declare function centerCropBoxSeries(traj: TrajectoryData): CropBox[];
65
- /**
66
- * The RAW subject-centroid path baseline (the research bar): the per-frame
67
- * `centers` the algorithm computed, BEFORE any smoothing/deadzone, composed into
68
- * a crop box at the same per-segment zoom. A reframe must be SMOOTHER than the
69
- * path it is smoothing. Phase 0 cannot reconstruct the pre-EMA centroid from the
70
- * shipped trajectory (it only carries the smoothed `centers`), so this is a
71
- * scaffold that returns the shipped centers; Phase 3 wires the true raw path via
72
- * `eval/inclusion` + `eval/index` (keeping `emaSmooth` importable, per the
73
- * spec's characterization gate).
74
- */
75
15
  export declare function rawCentroidBoxSeries(traj: TrajectoryData): CropBox[];
76
- /**
77
- * Compose an arbitrary per-frame `centers` series (e.g. the raw tracking
78
- * centroid, or the same centroid through the OLD `emaSmooth`) into a crop-box
79
- * series at a fixed per-frame crop window — the Phase-3 "smoother than EMA"
80
- * characterization baseline. `cropFor(frame)` gives the source-normalized window
81
- * for that output frame (the same the shipping path uses), so the ONLY variable
82
- * between ours and the baseline is the smoother. Centers are coverage-clamped
83
- * exactly as the renderer clamps them.
84
- */
85
16
  export declare function cropBoxSeriesFromCenters(centers: Array<[number, number]>, cropFor: (frame: number) => {
86
17
  w: number;
87
18
  h: number;
@@ -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 {};