@cueframe/kernel 0.1.0 → 0.1.1

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 (355) hide show
  1. package/LICENSE +661 -0
  2. package/dist/_members/composition/ops/compositionOps.d.ts +1 -0
  3. package/dist/_members/composition/projection/behind-readiness.d.ts +127 -0
  4. package/dist/_members/composition/projection/index.d.ts +2 -0
  5. package/dist/_members/composition/projection/reframe-readiness.d.ts +156 -0
  6. package/dist/_members/composition/validators/composition.d.ts +42 -25
  7. package/dist/_members/composition/validators/render.d.ts +32 -0
  8. package/dist/_members/core/render/compositionRender.d.ts +17 -1
  9. package/dist/_members/core/render/types.d.ts +31 -0
  10. package/dist/authoring/build-tools.js +6 -6
  11. package/dist/authoring/context.js +4 -4
  12. package/dist/authoring/tools.js +5 -5
  13. package/dist/authoring.js +11 -9
  14. package/dist/{chunk-ZB3C3HM7.js → chunk-7FO3ZJ43.js} +3 -0
  15. package/dist/{chunk-ODL7GQJG.js → chunk-AP6ZIVAV.js} +2 -2
  16. package/dist/{chunk-IBYQG46O.js → chunk-AQBREB5O.js} +1 -1
  17. package/dist/{chunk-YIOY2XEO.js → chunk-DK2ODBNT.js} +15 -5
  18. package/dist/{chunk-JRQVPFLF.js → chunk-HY3RIEZW.js} +1 -1
  19. package/dist/{chunk-GEA7E2FL.js → chunk-JJ6XD7NG.js} +151 -1
  20. package/dist/{chunk-COYMZ76S.js → chunk-MBCXCJOE.js} +1 -1
  21. package/dist/{chunk-37NJ27UU.js → chunk-OCFDUCF4.js} +3 -0
  22. package/dist/{chunk-VOO5FQSS.js → chunk-PDYO3DOJ.js} +5 -5
  23. package/dist/{chunk-MXFAADCQ.js → chunk-PODIYN2K.js} +9 -2
  24. package/dist/{chunk-NFEGPWGS.js → chunk-TOJEXFXL.js} +1 -1
  25. package/dist/{chunk-LM4WDUQJ.js → chunk-UHGSZZDI.js} +1 -1
  26. package/dist/{chunk-XWKZB5U5.js → chunk-ZWMV6DD2.js} +24 -1
  27. package/dist/compose/renderer.js +3 -3
  28. package/dist/compose.js +6 -6
  29. package/dist/composition/graphics-plan.js +1 -1
  30. package/dist/composition/ops.js +3 -3
  31. package/dist/composition/primitive-catalog.js +1 -1
  32. package/dist/composition/projection.js +19 -3
  33. package/dist/composition/validators.js +6 -4
  34. package/dist/composition-ops.js +8 -6
  35. package/dist/composition.js +24 -6
  36. package/dist/{context-OKX3HHFS.js → context-YWUZDG5X.js} +4 -4
  37. package/dist/core/render.js +3 -3
  38. package/dist/core/select.js +2 -2
  39. package/dist/core.js +3 -3
  40. package/dist/errors.js +1 -1
  41. package/dist/mcp/adapter.js +1 -0
  42. package/dist/media-model/testing.js +1071 -718
  43. package/dist/nle-export/server.js +328 -130
  44. package/dist/nle-export.js +7 -6
  45. package/package.json +13 -14
  46. package/dist/_members/account-model/index.js +0 -4
  47. package/dist/_members/account-model/testing/conversationStoreContract.js +0 -168
  48. package/dist/_members/account-model/testing/index.js +0 -7
  49. package/dist/_members/account-model/testing/restorePointStoreContract.js +0 -69
  50. package/dist/_members/account-model/types/index.js +0 -1
  51. package/dist/_members/account-model/validators/contextFile.js +0 -18
  52. package/dist/_members/account-model/validators/conversation.js +0 -95
  53. package/dist/_members/account-model/validators/dashboardInsight.js +0 -16
  54. package/dist/_members/account-model/validators/index.js +0 -7
  55. package/dist/_members/account-model/validators/sessionToken.js +0 -49
  56. package/dist/_members/account-model/validators/uploadToken.js +0 -16
  57. package/dist/_members/account-model/validators/userSettings.js +0 -12
  58. package/dist/_members/account-model/validators/workingComposition.js +0 -20
  59. package/dist/_members/brand-derivation/constants.js +0 -20
  60. package/dist/_members/brand-derivation/contrastSafe.js +0 -114
  61. package/dist/_members/brand-derivation/index.js +0 -1
  62. package/dist/_members/cloud-import/chunk-XKO6ZSWI.js +0 -162
  63. package/dist/_members/cloud-import/chunk-XKO6ZSWI.js.map +0 -1
  64. package/dist/_members/cloud-import/index.js +0 -241
  65. package/dist/_members/cloud-import/index.js.map +0 -1
  66. package/dist/_members/cloud-import/multipartUpload.js +0 -7
  67. package/dist/_members/cloud-import/multipartUpload.js.map +0 -1
  68. package/dist/_members/composition/audio/audioMix.js +0 -61
  69. package/dist/_members/composition/audio/index.js +0 -5
  70. package/dist/_members/composition/audio/mixStaging.js +0 -195
  71. package/dist/_members/composition/audio/musicPack.generated.js +0 -136
  72. package/dist/_members/composition/audio/musicPack.js +0 -36
  73. package/dist/_members/composition/audio/pack.generated.js +0 -603
  74. package/dist/_members/composition/audio/pack.js +0 -48
  75. package/dist/_members/composition/audio/palette.js +0 -134
  76. package/dist/_members/composition/autozoom/index.js +0 -83
  77. package/dist/_members/composition/brand-kit.js +0 -45
  78. package/dist/_members/composition/brief/contract.js +0 -209
  79. package/dist/_members/composition/color-grade.js +0 -80
  80. package/dist/_members/composition/depth.js +0 -8
  81. package/dist/_members/composition/fixtures/index.js +0 -143
  82. package/dist/_members/composition/fixtures/vaayaErrored.d.ts +0 -25
  83. package/dist/_members/composition/fixtures/vaayaErrored.js +0 -203
  84. package/dist/_members/composition/fonts.js +0 -162
  85. package/dist/_members/composition/graphics-plan/compile.js +0 -221
  86. package/dist/_members/composition/graphics-plan/index.js +0 -10
  87. package/dist/_members/composition/graphics-plan/instantiateMotif.js +0 -44
  88. package/dist/_members/composition/graphics-plan/motion.js +0 -66
  89. package/dist/_members/composition/graphics-plan/schemas.js +0 -261
  90. package/dist/_members/composition/graphics-plan/solve.js +0 -145
  91. package/dist/_members/composition/index.js +0 -5
  92. package/dist/_members/composition/invariants/clipPlacement.js +0 -69
  93. package/dist/_members/composition/invariants/composition.js +0 -28
  94. package/dist/_members/composition/invariants/errors.js +0 -10
  95. package/dist/_members/composition/invariants/etag.js +0 -38
  96. package/dist/_members/composition/invariants/ids.js +0 -33
  97. package/dist/_members/composition/invariants/index.js +0 -9
  98. package/dist/_members/composition/invariants/keyframes.js +0 -45
  99. package/dist/_members/composition/invariants/markers.js +0 -29
  100. package/dist/_members/composition/invariants/time.js +0 -20
  101. package/dist/_members/composition/invariants/tracks.js +0 -304
  102. package/dist/_members/composition/ops/compositionOps.js +0 -1056
  103. package/dist/_members/composition/ops/headlessStore.js +0 -94
  104. package/dist/_members/composition/ops/index.js +0 -4
  105. package/dist/_members/composition/ops/selectors.js +0 -118
  106. package/dist/_members/composition/ops/timeline-word.js +0 -1
  107. package/dist/_members/composition/ops/transcript.js +0 -77
  108. package/dist/_members/composition/ops/types.js +0 -16
  109. package/dist/_members/composition/primitive-catalog/catalogQuery.js +0 -150
  110. package/dist/_members/composition/primitive-catalog/disabled.js +0 -32
  111. package/dist/_members/composition/primitive-catalog/generated/meta.js +0 -15161
  112. package/dist/_members/composition/primitive-catalog/index.js +0 -46
  113. package/dist/_members/composition/primitive-catalog/paramValidation.js +0 -231
  114. package/dist/_members/composition/primitive-catalog/projection.js +0 -164
  115. package/dist/_members/composition/primitive-catalog/types.js +0 -14
  116. package/dist/_members/composition/projection/behind-placement.js +0 -62
  117. package/dist/_members/composition/projection/brandKit.js +0 -482
  118. package/dist/_members/composition/projection/cardTokens.js +0 -209
  119. package/dist/_members/composition/projection/composition-floor.js +0 -582
  120. package/dist/_members/composition/projection/cropProjection.js +0 -257
  121. package/dist/_members/composition/projection/index.js +0 -7
  122. package/dist/_members/composition/projection/occlusion-budget.js +0 -104
  123. package/dist/_members/composition/projection/safe-zones.js +0 -99
  124. package/dist/_members/composition/reframe/aspectLoss.js +0 -115
  125. package/dist/_members/composition/reframe/coverage.js +0 -62
  126. package/dist/_members/composition/reframe/derive.js +0 -73
  127. package/dist/_members/composition/reframe/index.js +0 -109
  128. package/dist/_members/composition/reframe/kenBurns.js +0 -64
  129. package/dist/_members/composition/reframe/shotScale.js +0 -176
  130. package/dist/_members/composition/reframe/trajectory.js +0 -124
  131. package/dist/_members/composition/timeline/compound.js +0 -134
  132. package/dist/_members/composition/timeline/index.js +0 -9
  133. package/dist/_members/composition/timeline/intent.js +0 -228
  134. package/dist/_members/composition/timeline/keyframes.js +0 -121
  135. package/dist/_members/composition/timeline/link.js +0 -59
  136. package/dist/_members/composition/timeline/occupancy.js +0 -36
  137. package/dist/_members/composition/timeline/placement.js +0 -74
  138. package/dist/_members/composition/timeline/plan.js +0 -31
  139. package/dist/_members/composition/timeline/resolve.js +0 -170
  140. package/dist/_members/composition/timeline/trims.js +0 -278
  141. package/dist/_members/composition/types/index.js +0 -1
  142. package/dist/_members/composition/validators/brandKit.js +0 -295
  143. package/dist/_members/composition/validators/composePlan.js +0 -113
  144. package/dist/_members/composition/validators/composition.js +0 -703
  145. package/dist/_members/composition/validators/font.js +0 -34
  146. package/dist/_members/composition/validators/graphicKinds.js +0 -30
  147. package/dist/_members/composition/validators/index.js +0 -9
  148. package/dist/_members/composition/validators/project.js +0 -29
  149. package/dist/_members/composition/validators/registry.js +0 -41
  150. package/dist/_members/composition/validators/render.js +0 -139
  151. package/dist/_members/composition/validators/session.js +0 -37
  152. package/dist/_members/composition/validators/webhook.js +0 -72
  153. package/dist/_members/composition-ops/alphaLayers.js +0 -141
  154. package/dist/_members/composition-ops/index.js +0 -637
  155. package/dist/_members/composition-ops/materializeGrid.js +0 -99
  156. package/dist/_members/composition-ops/opRecorder.js +0 -196
  157. package/dist/_members/composition-ops/recordingStore.js +0 -14
  158. package/dist/_members/composition-ops/replaceRegion.js +0 -102
  159. package/dist/_members/composition-ops/testFixtures.js +0 -19
  160. package/dist/_members/core/index.js +0 -5
  161. package/dist/_members/core/render/bookends.js +0 -53
  162. package/dist/_members/core/render/captions.js +0 -127
  163. package/dist/_members/core/render/compositionRender.js +0 -1249
  164. package/dist/_members/core/render/deriveTrajectory.js +0 -889
  165. package/dist/_members/core/render/emphasis.js +0 -16
  166. package/dist/_members/core/render/eval/cropBox.js +0 -139
  167. package/dist/_members/core/render/eval/inclusion.js +0 -96
  168. package/dist/_members/core/render/eval/index.js +0 -146
  169. package/dist/_members/core/render/eval/metrics.js +0 -94
  170. package/dist/_members/core/render/exportSettings.js +0 -65
  171. package/dist/_members/core/render/index.js +0 -20
  172. package/dist/_members/core/render/mapFaceToPerson.js +0 -73
  173. package/dist/_members/core/render/types.js +0 -8
  174. package/dist/_members/core/render/vcam/cameraPath.js +0 -248
  175. package/dist/_members/core/render/vcam/constants.js +0 -115
  176. package/dist/_members/core/render/vcam/errorCodes.js +0 -39
  177. package/dist/_members/core/render/vcam/framing.js +0 -136
  178. package/dist/_members/core/render/vcam/requiredRegion.js +0 -137
  179. package/dist/_members/core/render/vcam/shots.js +0 -53
  180. package/dist/_members/core/render/vcam/subjectSet.js +0 -388
  181. package/dist/_members/core/select/errorCodes.js +0 -38
  182. package/dist/_members/core/select/index.js +0 -26
  183. package/dist/_members/core/select/model.js +0 -18
  184. package/dist/_members/core/select/select.js +0 -244
  185. package/dist/_members/core/select/stabilize.js +0 -242
  186. package/dist/_members/core/types.js +0 -7
  187. package/dist/_members/errors/index.js +0 -1
  188. package/dist/_members/errors/registry.js +0 -560
  189. package/dist/_members/foundation/codes/index.js +0 -31
  190. package/dist/_members/foundation/index.js +0 -2
  191. package/dist/_members/foundation/primitives/index.js +0 -5
  192. package/dist/_members/mcp/adapter.js +0 -771
  193. package/dist/_members/mcp/burnedNames.js +0 -73
  194. package/dist/_members/mcp/core.js +0 -390
  195. package/dist/_members/mcp/curation.js +0 -792
  196. package/dist/_members/mcp/executor.js +0 -142
  197. package/dist/_members/mcp/format.js +0 -9
  198. package/dist/_members/mcp/generated/catalogPreviews.js +0 -95
  199. package/dist/_members/mcp/generated/harness.js +0 -81
  200. package/dist/_members/mcp/generated/operations.js +0 -131
  201. package/dist/_members/mcp/index.js +0 -50
  202. package/dist/_members/mcp/internalLoopTools.js +0 -109
  203. package/dist/_members/mcp/prompts.js +0 -45
  204. package/dist/_members/mcp/resources.js +0 -166
  205. package/dist/_members/mcp/server.js +0 -340
  206. package/dist/_members/mcp/wait.js +0 -378
  207. package/dist/_members/mcp/x402Meta.js +0 -66
  208. package/dist/_members/media-model/api.js +0 -175
  209. package/dist/_members/media-model/index.js +0 -1
  210. package/dist/_members/media-model/media-kind.js +0 -116
  211. package/dist/_members/media-model/testing/index.js +0 -1
  212. package/dist/_members/media-model/testing/mediaStoreContract.js +0 -82
  213. package/dist/_members/media-model/transcriptSearch.js +0 -70
  214. package/dist/_members/media-model/transcriptSearchCases.json +0 -79
  215. package/dist/_members/nle-export/compact-timeline.js +0 -73
  216. package/dist/_members/nle-export/compact-timeline.js.map +0 -1
  217. package/dist/_members/nle-export/composition-to-input.js +0 -147
  218. package/dist/_members/nle-export/composition-to-input.js.map +0 -1
  219. package/dist/_members/nle-export/fcpxml.js +0 -159
  220. package/dist/_members/nle-export/fcpxml.js.map +0 -1
  221. package/dist/_members/nle-export/index.js +0 -12
  222. package/dist/_members/nle-export/index.js.map +0 -1
  223. package/dist/_members/nle-export/premiere.js +0 -161
  224. package/dist/_members/nle-export/premiere.js.map +0 -1
  225. package/dist/_members/nle-export/server/index.js +0 -2
  226. package/dist/_members/nle-export/server/index.js.map +0 -1
  227. package/dist/_members/nle-export/server/pack-zip.js +0 -38
  228. package/dist/_members/nle-export/server/pack-zip.js.map +0 -1
  229. package/dist/_members/nle-export/srt.js +0 -50
  230. package/dist/_members/nle-export/srt.js.map +0 -1
  231. package/dist/_members/nle-export/types.js +0 -9
  232. package/dist/_members/nle-export/types.js.map +0 -1
  233. package/dist/_members/nle-export/xml/index.js +0 -11
  234. package/dist/_members/nle-export/xml/index.js.map +0 -1
  235. package/dist/_members/nle-export/xml-utils.js +0 -48
  236. package/dist/_members/nle-export/xml-utils.js.map +0 -1
  237. package/dist/_members/perception/activeSpeaker.js +0 -103
  238. package/dist/_members/perception/audioQuality.js +0 -76
  239. package/dist/_members/perception/energyBeat.js +0 -99
  240. package/dist/_members/perception/identityMatch.js +0 -91
  241. package/dist/_members/perception/index.js +0 -48
  242. package/dist/_members/perception/visualQuality.js +0 -95
  243. package/dist/_members/plane/conformance.js +0 -90
  244. package/dist/_members/plane/contract.js +0 -49
  245. package/dist/_members/plane/index.js +0 -16
  246. package/dist/_members/primitives/backgrounds/index.js +0 -32
  247. package/dist/_members/primitives/backgrounds/index.js.map +0 -1
  248. package/dist/_members/primitives/captions/index.js +0 -398
  249. package/dist/_members/primitives/captions/index.js.map +0 -1
  250. package/dist/_members/primitives/chunk-2LVE4UIT.js +0 -139
  251. package/dist/_members/primitives/chunk-2LVE4UIT.js.map +0 -1
  252. package/dist/_members/primitives/chunk-3IQUH6KK.js +0 -20
  253. package/dist/_members/primitives/chunk-3IQUH6KK.js.map +0 -1
  254. package/dist/_members/primitives/chunk-3OMURV6Q.js +0 -112
  255. package/dist/_members/primitives/chunk-3OMURV6Q.js.map +0 -1
  256. package/dist/_members/primitives/chunk-4IS6TMEG.js +0 -21
  257. package/dist/_members/primitives/chunk-4IS6TMEG.js.map +0 -1
  258. package/dist/_members/primitives/chunk-5MWGAEGQ.js +0 -1644
  259. package/dist/_members/primitives/chunk-5MWGAEGQ.js.map +0 -1
  260. package/dist/_members/primitives/chunk-7RRPFPQK.js +0 -15
  261. package/dist/_members/primitives/chunk-7RRPFPQK.js.map +0 -1
  262. package/dist/_members/primitives/chunk-DH5TRZK2.js +0 -125
  263. package/dist/_members/primitives/chunk-DH5TRZK2.js.map +0 -1
  264. package/dist/_members/primitives/chunk-E3KNUSFG.js +0 -2337
  265. package/dist/_members/primitives/chunk-E3KNUSFG.js.map +0 -1
  266. package/dist/_members/primitives/chunk-G2B3G4HK.js +0 -47
  267. package/dist/_members/primitives/chunk-G2B3G4HK.js.map +0 -1
  268. package/dist/_members/primitives/chunk-HFPFGZXT.js +0 -1494
  269. package/dist/_members/primitives/chunk-HFPFGZXT.js.map +0 -1
  270. package/dist/_members/primitives/chunk-HIWVFZVH.js +0 -19
  271. package/dist/_members/primitives/chunk-HIWVFZVH.js.map +0 -1
  272. package/dist/_members/primitives/chunk-IDAL6G3Y.js +0 -134
  273. package/dist/_members/primitives/chunk-IDAL6G3Y.js.map +0 -1
  274. package/dist/_members/primitives/chunk-KNC6JP5F.js +0 -34
  275. package/dist/_members/primitives/chunk-KNC6JP5F.js.map +0 -1
  276. package/dist/_members/primitives/chunk-KYRDVZST.js +0 -459
  277. package/dist/_members/primitives/chunk-KYRDVZST.js.map +0 -1
  278. package/dist/_members/primitives/chunk-LWLHS2NS.js +0 -3410
  279. package/dist/_members/primitives/chunk-LWLHS2NS.js.map +0 -1
  280. package/dist/_members/primitives/chunk-QAQ3P7DR.js +0 -8855
  281. package/dist/_members/primitives/chunk-QAQ3P7DR.js.map +0 -1
  282. package/dist/_members/primitives/chunk-ROV2ODWC.js +0 -81
  283. package/dist/_members/primitives/chunk-ROV2ODWC.js.map +0 -1
  284. package/dist/_members/primitives/chunk-TCRC2FH3.js +0 -183
  285. package/dist/_members/primitives/chunk-TCRC2FH3.js.map +0 -1
  286. package/dist/_members/primitives/chunk-US4YEDAA.js +0 -96
  287. package/dist/_members/primitives/chunk-US4YEDAA.js.map +0 -1
  288. package/dist/_members/primitives/chunk-UVKRO5ER.js +0 -13
  289. package/dist/_members/primitives/chunk-UVKRO5ER.js.map +0 -1
  290. package/dist/_members/primitives/chunk-W4EIIF2I.js +0 -10
  291. package/dist/_members/primitives/chunk-W4EIIF2I.js.map +0 -1
  292. package/dist/_members/primitives/chunk-WPGKIPCO.js +0 -3563
  293. package/dist/_members/primitives/chunk-WPGKIPCO.js.map +0 -1
  294. package/dist/_members/primitives/chunk-WZFLEGMD.js +0 -1435
  295. package/dist/_members/primitives/chunk-WZFLEGMD.js.map +0 -1
  296. package/dist/_members/primitives/chunk-XHU3WBEI.js +0 -33
  297. package/dist/_members/primitives/chunk-XHU3WBEI.js.map +0 -1
  298. package/dist/_members/primitives/chunk-YN7WTZZ7.js +0 -46
  299. package/dist/_members/primitives/chunk-YN7WTZZ7.js.map +0 -1
  300. package/dist/_members/primitives/effects/index.js +0 -30
  301. package/dist/_members/primitives/effects/index.js.map +0 -1
  302. package/dist/_members/primitives/hero-text/index.js +0 -14
  303. package/dist/_members/primitives/hero-text/index.js.map +0 -1
  304. package/dist/_members/primitives/index.js +0 -64
  305. package/dist/_members/primitives/index.js.map +0 -1
  306. package/dist/_members/primitives/layouts/index.js +0 -24
  307. package/dist/_members/primitives/layouts/index.js.map +0 -1
  308. package/dist/_members/primitives/lib/easings.js +0 -26
  309. package/dist/_members/primitives/lib/easings.js.map +0 -1
  310. package/dist/_members/primitives/lib/index.js +0 -74
  311. package/dist/_members/primitives/lib/index.js.map +0 -1
  312. package/dist/_members/primitives/lib/palette.js +0 -72
  313. package/dist/_members/primitives/lib/palette.js.map +0 -1
  314. package/dist/_members/primitives/lib/preview.js +0 -8
  315. package/dist/_members/primitives/lib/preview.js.map +0 -1
  316. package/dist/_members/primitives/lib/schema.js +0 -12
  317. package/dist/_members/primitives/lib/schema.js.map +0 -1
  318. package/dist/_members/primitives/lib/seeded-random.js +0 -14
  319. package/dist/_members/primitives/lib/seeded-random.js.map +0 -1
  320. package/dist/_members/primitives/lib/text/contrast.js +0 -12
  321. package/dist/_members/primitives/lib/text/contrast.js.map +0 -1
  322. package/dist/_members/primitives/lib/text/fill.js +0 -8
  323. package/dist/_members/primitives/lib/text/fill.js.map +0 -1
  324. package/dist/_members/primitives/lib/text/fitText.js +0 -10
  325. package/dist/_members/primitives/lib/text/fitText.js.map +0 -1
  326. package/dist/_members/primitives/lib/text/marker.js +0 -8
  327. package/dist/_members/primitives/lib/text/marker.js.map +0 -1
  328. package/dist/_members/primitives/lib/text/motion.js +0 -16
  329. package/dist/_members/primitives/lib/text/motion.js.map +0 -1
  330. package/dist/_members/primitives/lib/text/recolor.js +0 -8
  331. package/dist/_members/primitives/lib/text/recolor.js.map +0 -1
  332. package/dist/_members/primitives/lib/text/spec.js +0 -1
  333. package/dist/_members/primitives/lib/text/spec.js.map +0 -1
  334. package/dist/_members/primitives/lib/text/stage.js +0 -8
  335. package/dist/_members/primitives/lib/text/stage.js.map +0 -1
  336. package/dist/_members/primitives/lib/text/typeface.js +0 -8
  337. package/dist/_members/primitives/lib/text/typeface.js.map +0 -1
  338. package/dist/_members/primitives/lib/tokens.js +0 -24
  339. package/dist/_members/primitives/lib/tokens.js.map +0 -1
  340. package/dist/_members/primitives/lib/types.js +0 -1
  341. package/dist/_members/primitives/lib/types.js.map +0 -1
  342. package/dist/_members/primitives/params-required.json +0 -153
  343. package/dist/_members/primitives/scenes/index.js +0 -25
  344. package/dist/_members/primitives/scenes/index.js.map +0 -1
  345. package/dist/_members/primitives/subject-foreground/index.js +0 -30
  346. package/dist/_members/primitives/subject-foreground/index.js.map +0 -1
  347. package/dist/_members/primitives/text/index.js +0 -57
  348. package/dist/_members/primitives/text/index.js.map +0 -1
  349. package/dist/_members/primitives/transitions/index.js +0 -67
  350. package/dist/_members/primitives/transitions/index.js.map +0 -1
  351. package/dist/_members/primitives/ui-blocks/index.js +0 -76
  352. package/dist/_members/primitives/ui-blocks/index.js.map +0 -1
  353. package/dist/_members/primitives/version-map.json +0 -105
  354. package/dist/_members/primitives/workspace.js +0 -60
  355. package/dist/_members/primitives/workspace.js.map +0 -1
@@ -0,0 +1,127 @@
1
+ /**
2
+ * CAN THIS OVERLAY ACTUALLY GO BEHIND THE SUBJECT — answered in the editor,
3
+ * before a render is paid for.
4
+ *
5
+ * The render already decides this, in the director's `resolveBehindPlacement`:
6
+ * a behind-subject overlay whose clip has no matte, no geometry sidecar, or too
7
+ * little subject presence is DEGRADED — `zPlane` flipped back to `front` and the
8
+ * authored `anchor` deleted — and the reason is recorded in a `degraded[]` array
9
+ * that both of its callers discard. So the user flips the toggle, pays for a
10
+ * render, and finds out from the output.
11
+ *
12
+ * This module answers the same question from data the editor already has on the
13
+ * media row, so the toggle can tell the truth at the moment it is flipped.
14
+ *
15
+ * ── IT IS ONLY WORTH ANYTHING IF IT AGREES WITH THE SERVER ──────────────────
16
+ * Every rule below mirrors a specific server rule, named at its call site. Two
17
+ * helpers are currently duplicated from the private `@cueframe/shared/
18
+ * variant-keys` (`hashMatteIntent`, `clipOverlapsBehindWindow`); they live here
19
+ * because this package is the shared one, and the private copies become
20
+ * re-exports of these when the fact-record work lands. Until then the agreement
21
+ * is held by `__tests__/behind-readiness.test.ts`, whose key fixture is a hash
22
+ * taken from PRODUCTION rather than invented.
23
+ *
24
+ * ── WHAT IT CANNOT ANSWER ───────────────────────────────────────────────────
25
+ * The server has a FOURTH degrade path — the occlusion budget — which needs the
26
+ * `.geometry.json` sidecar from R2, and the client has no presigned URL for it.
27
+ * So `subject-present` means "the preconditions hold", NOT "this is guaranteed
28
+ * to render behind", and UI copy must not promise more.
29
+ */
30
+ /** A matte intent: the clip's SOURCE window plus what is being cut out.
31
+ * Mirrors `MatteIntentLike` in the private variant-keys. */
32
+ export interface MatteIntentLike {
33
+ startSec: number;
34
+ endSec: number;
35
+ subjectClass: "person" | "product";
36
+ }
37
+ /** The fields this module reads off a `mediaItems.mattes[hash]` entry — the
38
+ * same two `resolveBehindPlacement` reads out of its `matteGeometry` map. */
39
+ export interface MatteEntryLike {
40
+ geometryR2Key?: string;
41
+ presenceFraction?: number;
42
+ }
43
+ /** The clip an overlay will be placed against, and the source window whose
44
+ * matte answers for it. */
45
+ export interface BehindTarget {
46
+ mediaId: string;
47
+ window: {
48
+ startSec: number;
49
+ endSec: number;
50
+ };
51
+ }
52
+ /**
53
+ * Why a behind-subject overlay will or will not survive the render. The three
54
+ * failing states correspond 1:1 to the server's degrade reasons: `no-clip` and
55
+ * `no-subject` both degrade as `"no-subject"` there, `no-matte` as
56
+ * `"no-geometry"`.
57
+ */
58
+ export type BehindReadiness = {
59
+ state: "no-clip";
60
+ } | {
61
+ state: "no-matte";
62
+ target: BehindTarget;
63
+ } | {
64
+ state: "no-subject";
65
+ target: BehindTarget;
66
+ presenceFraction: number;
67
+ } | {
68
+ state: "subject-present";
69
+ target: BehindTarget;
70
+ };
71
+ /**
72
+ * Content-address a matte intent, byte-identically to the server's
73
+ * `hashMatteIntent`. Milliseconds-rounded so float jitter cannot miss a cached
74
+ * matte; 12 hex chars. Async because `crypto.subtle` is — available in the
75
+ * webview and in Node alike.
76
+ *
77
+ * The bake VERSION is deliberately not hashed (it segments the R2 key instead),
78
+ * so this key is stable across model bumps.
79
+ */
80
+ export declare function matteIntentKey(intent: MatteIntentLike): Promise<string>;
81
+ /**
82
+ * The clip a behind-subject overlay anchors against: **the first media clip on
83
+ * a VIDEO track, in track→content order, whose timeline range overlaps the
84
+ * overlay**. This is `resolveBehindPlacement`'s rule, and it is deliberately
85
+ * NOT `computeMatteWindowsByMediaId`'s — that one also scans audio and image
86
+ * tracks, because it answers a different question (which mattes to bake).
87
+ * Mirroring the wrong one of the two would put the editor and the render into
88
+ * exactly the disagreement this module exists to remove.
89
+ *
90
+ * The returned `window` is the clip's SOURCE trim, defaulted the way
91
+ * `renders.ts` defaults it: `trim.start ?? 0`, `trim.end ?? start + duration`.
92
+ * That is the window the matte is keyed by.
93
+ *
94
+ * Returns null when the overlay is unknown, or floats over no video clip —
95
+ * which the server degrades as `"no-subject"`.
96
+ */
97
+ export declare function primaryClipForOverlay(composition: unknown, overlayId: string): BehindTarget | null;
98
+ export interface BehindReadinessInput {
99
+ /** The wire-shape composition currently open in the editor. */
100
+ composition: unknown;
101
+ /** The overlay being inspected. It need NOT already be behind-subject — the
102
+ * editor asks this to decide what to show BEFORE the toggle is flipped. */
103
+ overlayId: string;
104
+ /** `mediaItems.mattes`, per media id, exactly as it arrives from Convex. */
105
+ mattesByMediaId: Record<string, Record<string, MatteEntryLike> | undefined>;
106
+ }
107
+ /**
108
+ * Will this overlay actually render behind the subject? Mirrors the first three
109
+ * of `resolveBehindPlacement`'s four gates, in the same order:
110
+ *
111
+ * 1. no primary clip → server: degrade("no-subject")
112
+ * 2. no matte / no geometry sidecar → server: degrade("no-geometry")
113
+ * 3. presence below the floor → server: degrade("no-subject")
114
+ *
115
+ * The fourth (occlusion budget) is not knowable client-side — see the header.
116
+ */
117
+ export declare function behindReadinessForOverlay(input: BehindReadinessInput): Promise<BehindReadiness>;
118
+ /**
119
+ * The same verdict from an ALREADY-RESOLVED target — the half that actually
120
+ * costs something (a SHA-256) split from the half that is a pure walk.
121
+ *
122
+ * The editor calls this one. `primaryClipForOverlay` is sync, so a component
123
+ * can memoize the target on the composition and then depend only on the
124
+ * window's two numbers plus the media's matte record — instead of re-hashing on
125
+ * every keystroke that produces a new composition reference.
126
+ */
127
+ export declare function behindReadinessForTarget(target: BehindTarget | null, mattes: Record<string, MatteEntryLike> | undefined): Promise<BehindReadiness>;
@@ -3,5 +3,7 @@ export * from "./cardTokens.js";
3
3
  export * from "./composition-floor.js";
4
4
  export * from "./safe-zones.js";
5
5
  export * from "./behind-placement.js";
6
+ export * from "./behind-readiness.js";
7
+ export * from "./reframe-readiness.js";
6
8
  export * from "./occlusion-budget.js";
7
9
  export * from "./cropProjection.js";
@@ -0,0 +1,156 @@
1
+ /**
2
+ * WHICH CLIPS WANT A CROP, AND DO WE HAVE WHAT IT TAKES — answered in the
3
+ * editor, from data the media row already carries.
4
+ *
5
+ * The sibling of `behind-readiness.ts`, one rung down the fidelity ladder. That
6
+ * module asks whether a SILHOUETTE exists so an overlay can go behind a person;
7
+ * this one asks whether a BOX TRACK exists so a clip can follow one. Same shape,
8
+ * same discipline, ~40× apart in what the answer costs.
9
+ *
10
+ * ── WHY IT EXISTS ───────────────────────────────────────────────────────────
11
+ * A follow-the-speaker reframe is authored in the editor and only takes effect
12
+ * at render, because the crop trajectory is derived from a SUBJECT TRACK the
13
+ * editor never asked for. So the editor showed an uncropped source while the
14
+ * render produced a moving crop — the "editor shows something the render will
15
+ * not honour" defect, in its second location. Deriving the trajectory locally
16
+ * fixes that, and the derive needs to find the right track first. That lookup
17
+ * is what this module is.
18
+ *
19
+ * ── IT IS ONLY WORTH ANYTHING IF IT AGREES WITH THE SERVER ──────────────────
20
+ * `reframeTargets` mirrors `collectTrajectoryDeriveJobs` (private
21
+ * `renders.ts`) — the walk the SHIP render uses to decide which clips derive a
22
+ * trajectory and at which window. `sourceWindowKey` mirrors `hashSourceWindow`
23
+ * (private `@cueframe/shared/variant-keys`) byte for byte; the golden fixtures
24
+ * in `__tests__/reframe-readiness.test.ts` are hashes taken from PRODUCTION
25
+ * rather than invented, for the same reason `behind-readiness`'s are.
26
+ *
27
+ * ── WHAT IT DELIBERATELY DOES NOT CHECK ─────────────────────────────────────
28
+ * The DETECTOR VERSION. The server skips a track whose `detectorVersion` is not
29
+ * the current `DETECTOR_VERSION`, and the app cannot ask that without a third,
30
+ * unguarded mirror of a string whose TS↔Python sync is already CI-guarded on
31
+ * both existing copies. So the editor derives off whatever track sits at the
32
+ * window. A version bump means the render re-detects and the framing shifts
33
+ * slightly — same subject, same authored intent, and far closer to the truth
34
+ * than showing an uncropped source. A decision, not an omission.
35
+ */
36
+ /** A source window. Subject tracks key on this — the window, plus the producer
37
+ * when it is not the default face detector. Mirrors `SourceWindowLike`. */
38
+ export interface SourceWindowLike {
39
+ startSec: number;
40
+ endSec: number;
41
+ /**
42
+ * Which producer detected the track: 'face' (YuNet/SCRFD, the default) or
43
+ * 'person' (YOLO11x + BoT-SORT). Folded into the hash ONLY when it is not
44
+ * 'face', so existing face-track keys never churn and a person track for the
45
+ * same window gets a DISTINCT key instead of overwriting the face one.
46
+ */
47
+ detector?: "face" | "person";
48
+ }
49
+ /** The fields this module reads off a `mediaItems.subjectTracks[hash]` entry. */
50
+ export interface SubjectTrackEntryLike {
51
+ /** R2 object key — the STABLE identity every server-side reader matches on. */
52
+ trackR2Key?: string;
53
+ /**
54
+ * Presigned URL for that key, added ALONGSIDE it by `resolveR2Urls`. The row
55
+ * carries only a SUMMARY of the track (the face roster, a count); the
56
+ * per-frame boxes `deriveTrajectory` needs are the R2 object, so this is the
57
+ * one field that makes a client-side derive possible at all.
58
+ */
59
+ trackUrl?: string;
60
+ detectorVersion?: string;
61
+ window?: {
62
+ startSec: number;
63
+ endSec: number;
64
+ };
65
+ /** The inline face roster — who is in this window, for a per-person picker. */
66
+ faces?: Array<{
67
+ faceId: string;
68
+ bbox: {
69
+ x: number;
70
+ y: number;
71
+ width: number;
72
+ height: number;
73
+ };
74
+ speakingShare?: number;
75
+ }>;
76
+ }
77
+ /**
78
+ * Content-address a source window, byte-identically to the server's
79
+ * `hashSourceWindow`. Milliseconds-rounded so float jitter cannot miss a cached
80
+ * track; 12 hex chars. Async because `crypto.subtle` is — available in the
81
+ * webview and in Node alike.
82
+ *
83
+ * The detector is omitted from the canonical form when it is 'face', which is
84
+ * NOT a shortcut: it is what keeps every already-cached face-track key valid.
85
+ */
86
+ export declare function sourceWindowKey(window: SourceWindowLike): Promise<string>;
87
+ /** A clip that has authored a reframe, and the window whose track answers for
88
+ * it. `segments` travels along because `deriveTrajectory` takes it verbatim. */
89
+ export interface ReframeTarget {
90
+ clipId: string;
91
+ mediaId: string;
92
+ window: {
93
+ startSec: number;
94
+ endSec: number;
95
+ };
96
+ /** The authored `source.reframe.segments`, untouched — the derive owns their
97
+ * shape, and re-typing it here would be a fourth place to keep in sync. */
98
+ segments: unknown[];
99
+ }
100
+ /**
101
+ * Does this reframe track a real subject? A geometric one (a screen-recording
102
+ * point-zoom, an honest center crop) needs nothing detected and must NEVER be
103
+ * handed a detection bill — nor be told it is waiting for one.
104
+ */
105
+ export declare function reframeNeedsDetection(segments: unknown[]): boolean;
106
+ /**
107
+ * Every clip in the composition that has authored a reframe, with the source
108
+ * window its track is keyed by.
109
+ *
110
+ * MIRRORS `collectTrajectoryDeriveJobs`, including the two rules that are easy
111
+ * to get subtly wrong:
112
+ * · only VIDEO and IMAGE tracks (an audio clip is `kind:"media"` too, and a
113
+ * viewport crop is meaningless for sound)
114
+ * · the window is the SOURCE TRIM, defaulted exactly as `renders.ts` defaults
115
+ * it — `trim.start ?? 0`, `trim.end ?? start + clip.duration`
116
+ *
117
+ * Walked defensively with no zod, the `collectBehindWindows` convention, so it
118
+ * is safe in every bundle.
119
+ */
120
+ export declare function reframeTargets(composition: unknown): ReframeTarget[];
121
+ /**
122
+ * What the editor can say about one reframed clip.
123
+ *
124
+ * `geometric` is a distinct state and not a convenience: a point-zoom on a
125
+ * screen recording is fully derivable with no detection, so calling it
126
+ * "waiting for a track" would be a lie that also implies a charge.
127
+ */
128
+ export type ReframeReadiness =
129
+ /** No detection needed — derives off a faceless stub, today, for free. */
130
+ {
131
+ state: "geometric";
132
+ }
133
+ /** The track exists and can be fetched. */
134
+ | {
135
+ state: "track-ready";
136
+ entry: SubjectTrackEntryLike;
137
+ trackUrl: string;
138
+ }
139
+ /** A track is registered but carries no presigned URL, so the client cannot
140
+ * derive. The RENDER still can — it reads the key directly. */
141
+ | {
142
+ state: "track-unfetchable";
143
+ entry: SubjectTrackEntryLike;
144
+ }
145
+ /** Nothing detected at this window yet. This is the state that buys one. */
146
+ | {
147
+ state: "no-track";
148
+ };
149
+ /**
150
+ * Can the editor derive this clip's crop trajectory right now?
151
+ *
152
+ * `subjectTracks` is `mediaItems.subjectTracks` for the target's media, exactly
153
+ * as it arrives from Convex — undefined for an item with no cloud perception,
154
+ * which is the honest shape for a local-only import.
155
+ */
156
+ export declare function reframeReadinessForTarget(target: ReframeTarget, subjectTracks: Record<string, SubjectTrackEntryLike> | undefined): Promise<ReframeReadiness>;
@@ -3303,9 +3303,12 @@ export type CaptionStyle = z.infer<typeof CaptionStyle>;
3303
3303
  /** One caption SEGMENT (a phrase / sentence) — the content unit the agent
3304
3304
  * authors AND a hard caption-page boundary at render: the renderer paginates
3305
3305
  * within a segment and never pools words across two, so sentence-bounded
3306
- * segments (see `splitIntoSentences`) cut captions at sentence ends. Captions
3307
- * are FRONT-ONLY; depth ("behind subject") lives on overlays
3308
- * (`OverlayClipSource.zPlane`), never on captions. */
3306
+ * segments (see `splitIntoSentences`) cut captions at sentence ends.
3307
+ *
3308
+ * Depth is NOT per-segment: it is one choice for the whole caption layer
3309
+ * (`CompositionCaptions.zPlane`), because it decides whether the source needs
3310
+ * a matte at all. (This comment said captions were FRONT-ONLY until
3311
+ * 2026-08-28 — see `CaptionDepth` for why that rule existed and why it went.) */
3309
3312
  export declare const CaptionSegment: z.ZodObject<{
3310
3313
  words: z.ZodArray<z.ZodObject<{
3311
3314
  text: z.ZodString;
@@ -3344,28 +3347,6 @@ export declare const CaptionSegment: z.ZodObject<{
3344
3347
  }[];
3345
3348
  }>;
3346
3349
  export type CaptionSegment = z.infer<typeof CaptionSegment>;
3347
- /**
3348
- * PROVENANCE IS REQUIRED. `segments` is a materialized projection, and until
3349
- * 2026-08-14 it carried no record of where it came from — which is the whole
3350
- * bug. `useCaptionMaterialization` said so itself: "once segments exist there is
3351
- * no reliable way to distinguish 'materialized from this doc' from
3352
- * 'API-authored', and guessing risks destroying" the authored ones. So nothing
3353
- * dared re-derive, and captions silently outlived the edits that invalidated
3354
- * them — a real project carried words timed 1940–4400ms inside a 2.4s
3355
- * composition, with the render reading those stale times.
3356
- *
3357
- * `derived` — a projection of a clip's transcript. Anything that changes that
3358
- * clip (trim, cut, an excluded range, playback rate) MUST re-derive it, and may,
3359
- * because `from` says exactly what to recompute from.
3360
- *
3361
- * `authored` — a human or agent wrote these words. Never rewritten
3362
- * automatically; the segmentation is a deliberate choice.
3363
- *
3364
- * Segments stay MATERIALIZED rather than resolved at read time on purpose:
3365
- * `compositionToRenderInput(composition, srcUrls)` takes no transcripts, and a
3366
- * renderer that had to fetch them would stop being self-contained and
3367
- * deterministic — which the render cache key depends on.
3368
- */
3369
3350
  export declare const CompositionCaptions: z.ZodDiscriminatedUnion<"source", [z.ZodObject<{
3370
3351
  source: z.ZodLiteral<"derived">;
3371
3352
  /** The clip these words are a projection OF. Re-derive from this. */
@@ -3510,6 +3491,7 @@ export declare const CompositionCaptions: z.ZodDiscriminatedUnion<"source", [z.Z
3510
3491
  annotationColor?: string | undefined;
3511
3492
  maxWidthPercent?: number | undefined;
3512
3493
  }>>;
3494
+ zPlane: z.ZodOptional<z.ZodEnum<["front", "behind-subject"]>>;
3513
3495
  }, "strip", z.ZodTypeAny, {
3514
3496
  segments: {
3515
3497
  words: {
@@ -3524,6 +3506,7 @@ export declare const CompositionCaptions: z.ZodDiscriminatedUnion<"source", [z.Z
3524
3506
  from: {
3525
3507
  clipId: string;
3526
3508
  };
3509
+ zPlane?: "front" | "behind-subject" | undefined;
3527
3510
  style?: {
3528
3511
  position?: "top" | "center" | "bottom" | undefined;
3529
3512
  fontFamily?: string | undefined;
@@ -3571,6 +3554,7 @@ export declare const CompositionCaptions: z.ZodDiscriminatedUnion<"source", [z.Z
3571
3554
  from: {
3572
3555
  clipId: string;
3573
3556
  };
3557
+ zPlane?: "front" | "behind-subject" | undefined;
3574
3558
  style?: {
3575
3559
  position?: "top" | "center" | "bottom" | undefined;
3576
3560
  fontFamily?: string | undefined;
@@ -3740,6 +3724,7 @@ export declare const CompositionCaptions: z.ZodDiscriminatedUnion<"source", [z.Z
3740
3724
  annotationColor?: string | undefined;
3741
3725
  maxWidthPercent?: number | undefined;
3742
3726
  }>>;
3727
+ zPlane: z.ZodOptional<z.ZodEnum<["front", "behind-subject"]>>;
3743
3728
  }, "strip", z.ZodTypeAny, {
3744
3729
  segments: {
3745
3730
  words: {
@@ -3751,6 +3736,7 @@ export declare const CompositionCaptions: z.ZodDiscriminatedUnion<"source", [z.Z
3751
3736
  }[];
3752
3737
  }[];
3753
3738
  source: "authored";
3739
+ zPlane?: "front" | "behind-subject" | undefined;
3754
3740
  style?: {
3755
3741
  position?: "top" | "center" | "bottom" | undefined;
3756
3742
  fontFamily?: string | undefined;
@@ -3795,6 +3781,7 @@ export declare const CompositionCaptions: z.ZodDiscriminatedUnion<"source", [z.Z
3795
3781
  }[];
3796
3782
  }[];
3797
3783
  source: "authored";
3784
+ zPlane?: "front" | "behind-subject" | undefined;
3798
3785
  style?: {
3799
3786
  position?: "top" | "center" | "bottom" | undefined;
3800
3787
  fontFamily?: string | undefined;
@@ -3829,6 +3816,12 @@ export declare const CompositionCaptions: z.ZodDiscriminatedUnion<"source", [z.Z
3829
3816
  maxWidthPercent?: number | undefined;
3830
3817
  } | undefined;
3831
3818
  }>]>;
3819
+ /** Do these captions render UNDER the speaker's silhouette? The one predicate
3820
+ * every gate asks, so the trigger, the renderer and the editor cannot drift
3821
+ * the way the overlay gates did before `isBehindSubjectDepthSource`. */
3822
+ export declare function captionsAreBehindSubject(captions: {
3823
+ zPlane?: unknown;
3824
+ } | null | undefined): boolean;
3832
3825
  export type CompositionCaptions = z.infer<typeof CompositionCaptions>;
3833
3826
  /** All caption words across the layer's segments, in order — the flattened view
3834
3827
  * consumers that don't care about behind use. */
@@ -4337,6 +4330,7 @@ export declare const Composition: z.ZodObject<{
4337
4330
  annotationColor?: string | undefined;
4338
4331
  maxWidthPercent?: number | undefined;
4339
4332
  }>>;
4333
+ zPlane: z.ZodOptional<z.ZodEnum<["front", "behind-subject"]>>;
4340
4334
  }, "strip", z.ZodTypeAny, {
4341
4335
  segments: {
4342
4336
  words: {
@@ -4351,6 +4345,7 @@ export declare const Composition: z.ZodObject<{
4351
4345
  from: {
4352
4346
  clipId: string;
4353
4347
  };
4348
+ zPlane?: "front" | "behind-subject" | undefined;
4354
4349
  style?: {
4355
4350
  position?: "top" | "center" | "bottom" | undefined;
4356
4351
  fontFamily?: string | undefined;
@@ -4398,6 +4393,7 @@ export declare const Composition: z.ZodObject<{
4398
4393
  from: {
4399
4394
  clipId: string;
4400
4395
  };
4396
+ zPlane?: "front" | "behind-subject" | undefined;
4401
4397
  style?: {
4402
4398
  position?: "top" | "center" | "bottom" | undefined;
4403
4399
  fontFamily?: string | undefined;
@@ -4567,6 +4563,7 @@ export declare const Composition: z.ZodObject<{
4567
4563
  annotationColor?: string | undefined;
4568
4564
  maxWidthPercent?: number | undefined;
4569
4565
  }>>;
4566
+ zPlane: z.ZodOptional<z.ZodEnum<["front", "behind-subject"]>>;
4570
4567
  }, "strip", z.ZodTypeAny, {
4571
4568
  segments: {
4572
4569
  words: {
@@ -4578,6 +4575,7 @@ export declare const Composition: z.ZodObject<{
4578
4575
  }[];
4579
4576
  }[];
4580
4577
  source: "authored";
4578
+ zPlane?: "front" | "behind-subject" | undefined;
4581
4579
  style?: {
4582
4580
  position?: "top" | "center" | "bottom" | undefined;
4583
4581
  fontFamily?: string | undefined;
@@ -4622,6 +4620,7 @@ export declare const Composition: z.ZodObject<{
4622
4620
  }[];
4623
4621
  }[];
4624
4622
  source: "authored";
4623
+ zPlane?: "front" | "behind-subject" | undefined;
4625
4624
  style?: {
4626
4625
  position?: "top" | "center" | "bottom" | undefined;
4627
4626
  fontFamily?: string | undefined;
@@ -4884,6 +4883,7 @@ export declare const Composition: z.ZodObject<{
4884
4883
  from: {
4885
4884
  clipId: string;
4886
4885
  };
4886
+ zPlane?: "front" | "behind-subject" | undefined;
4887
4887
  style?: {
4888
4888
  position?: "top" | "center" | "bottom" | undefined;
4889
4889
  fontFamily?: string | undefined;
@@ -4928,6 +4928,7 @@ export declare const Composition: z.ZodObject<{
4928
4928
  }[];
4929
4929
  }[];
4930
4930
  source: "authored";
4931
+ zPlane?: "front" | "behind-subject" | undefined;
4931
4932
  style?: {
4932
4933
  position?: "top" | "center" | "bottom" | undefined;
4933
4934
  fontFamily?: string | undefined;
@@ -5019,6 +5020,7 @@ export declare const Composition: z.ZodObject<{
5019
5020
  from: {
5020
5021
  clipId: string;
5021
5022
  };
5023
+ zPlane?: "front" | "behind-subject" | undefined;
5022
5024
  style?: {
5023
5025
  position?: "top" | "center" | "bottom" | undefined;
5024
5026
  fontFamily?: string | undefined;
@@ -5063,6 +5065,7 @@ export declare const Composition: z.ZodObject<{
5063
5065
  }[];
5064
5066
  }[];
5065
5067
  source: "authored";
5068
+ zPlane?: "front" | "behind-subject" | undefined;
5066
5069
  style?: {
5067
5070
  position?: "top" | "center" | "bottom" | undefined;
5068
5071
  fontFamily?: string | undefined;
@@ -5660,6 +5663,7 @@ export declare const CompositionVersion: z.ZodObject<{
5660
5663
  annotationColor?: string | undefined;
5661
5664
  maxWidthPercent?: number | undefined;
5662
5665
  }>>;
5666
+ zPlane: z.ZodOptional<z.ZodEnum<["front", "behind-subject"]>>;
5663
5667
  }, "strip", z.ZodTypeAny, {
5664
5668
  segments: {
5665
5669
  words: {
@@ -5674,6 +5678,7 @@ export declare const CompositionVersion: z.ZodObject<{
5674
5678
  from: {
5675
5679
  clipId: string;
5676
5680
  };
5681
+ zPlane?: "front" | "behind-subject" | undefined;
5677
5682
  style?: {
5678
5683
  position?: "top" | "center" | "bottom" | undefined;
5679
5684
  fontFamily?: string | undefined;
@@ -5721,6 +5726,7 @@ export declare const CompositionVersion: z.ZodObject<{
5721
5726
  from: {
5722
5727
  clipId: string;
5723
5728
  };
5729
+ zPlane?: "front" | "behind-subject" | undefined;
5724
5730
  style?: {
5725
5731
  position?: "top" | "center" | "bottom" | undefined;
5726
5732
  fontFamily?: string | undefined;
@@ -5890,6 +5896,7 @@ export declare const CompositionVersion: z.ZodObject<{
5890
5896
  annotationColor?: string | undefined;
5891
5897
  maxWidthPercent?: number | undefined;
5892
5898
  }>>;
5899
+ zPlane: z.ZodOptional<z.ZodEnum<["front", "behind-subject"]>>;
5893
5900
  }, "strip", z.ZodTypeAny, {
5894
5901
  segments: {
5895
5902
  words: {
@@ -5901,6 +5908,7 @@ export declare const CompositionVersion: z.ZodObject<{
5901
5908
  }[];
5902
5909
  }[];
5903
5910
  source: "authored";
5911
+ zPlane?: "front" | "behind-subject" | undefined;
5904
5912
  style?: {
5905
5913
  position?: "top" | "center" | "bottom" | undefined;
5906
5914
  fontFamily?: string | undefined;
@@ -5945,6 +5953,7 @@ export declare const CompositionVersion: z.ZodObject<{
5945
5953
  }[];
5946
5954
  }[];
5947
5955
  source: "authored";
5956
+ zPlane?: "front" | "behind-subject" | undefined;
5948
5957
  style?: {
5949
5958
  position?: "top" | "center" | "bottom" | undefined;
5950
5959
  fontFamily?: string | undefined;
@@ -6207,6 +6216,7 @@ export declare const CompositionVersion: z.ZodObject<{
6207
6216
  from: {
6208
6217
  clipId: string;
6209
6218
  };
6219
+ zPlane?: "front" | "behind-subject" | undefined;
6210
6220
  style?: {
6211
6221
  position?: "top" | "center" | "bottom" | undefined;
6212
6222
  fontFamily?: string | undefined;
@@ -6251,6 +6261,7 @@ export declare const CompositionVersion: z.ZodObject<{
6251
6261
  }[];
6252
6262
  }[];
6253
6263
  source: "authored";
6264
+ zPlane?: "front" | "behind-subject" | undefined;
6254
6265
  style?: {
6255
6266
  position?: "top" | "center" | "bottom" | undefined;
6256
6267
  fontFamily?: string | undefined;
@@ -6342,6 +6353,7 @@ export declare const CompositionVersion: z.ZodObject<{
6342
6353
  from: {
6343
6354
  clipId: string;
6344
6355
  };
6356
+ zPlane?: "front" | "behind-subject" | undefined;
6345
6357
  style?: {
6346
6358
  position?: "top" | "center" | "bottom" | undefined;
6347
6359
  fontFamily?: string | undefined;
@@ -6386,6 +6398,7 @@ export declare const CompositionVersion: z.ZodObject<{
6386
6398
  }[];
6387
6399
  }[];
6388
6400
  source: "authored";
6401
+ zPlane?: "front" | "behind-subject" | undefined;
6389
6402
  style?: {
6390
6403
  position?: "top" | "center" | "bottom" | undefined;
6391
6404
  fontFamily?: string | undefined;
@@ -6625,6 +6638,7 @@ export declare const CompositionVersion: z.ZodObject<{
6625
6638
  from: {
6626
6639
  clipId: string;
6627
6640
  };
6641
+ zPlane?: "front" | "behind-subject" | undefined;
6628
6642
  style?: {
6629
6643
  position?: "top" | "center" | "bottom" | undefined;
6630
6644
  fontFamily?: string | undefined;
@@ -6669,6 +6683,7 @@ export declare const CompositionVersion: z.ZodObject<{
6669
6683
  }[];
6670
6684
  }[];
6671
6685
  source: "authored";
6686
+ zPlane?: "front" | "behind-subject" | undefined;
6672
6687
  style?: {
6673
6688
  position?: "top" | "center" | "bottom" | undefined;
6674
6689
  fontFamily?: string | undefined;
@@ -6771,6 +6786,7 @@ export declare const CompositionVersion: z.ZodObject<{
6771
6786
  from: {
6772
6787
  clipId: string;
6773
6788
  };
6789
+ zPlane?: "front" | "behind-subject" | undefined;
6774
6790
  style?: {
6775
6791
  position?: "top" | "center" | "bottom" | undefined;
6776
6792
  fontFamily?: string | undefined;
@@ -6815,6 +6831,7 @@ export declare const CompositionVersion: z.ZodObject<{
6815
6831
  }[];
6816
6832
  }[];
6817
6833
  source: "authored";
6834
+ zPlane?: "front" | "behind-subject" | undefined;
6818
6835
  style?: {
6819
6836
  position?: "top" | "center" | "bottom" | undefined;
6820
6837
  fontFamily?: string | undefined;