@cueframe/kernel 0.1.1 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (506) hide show
  1. package/dist/_members/account-model/testing/conversationStoreContract.d.ts +0 -59
  2. package/dist/_members/account-model/testing/index.d.ts +0 -5
  3. package/dist/_members/account-model/testing/restorePointStoreContract.d.ts +0 -24
  4. package/dist/_members/account-model/validators/contextFile.d.ts +0 -6
  5. package/dist/_members/account-model/validators/conversation.d.ts +0 -96
  6. package/dist/_members/account-model/validators/dashboardInsight.d.ts +0 -6
  7. package/dist/_members/account-model/validators/sessionToken.d.ts +0 -29
  8. package/dist/_members/account-model/validators/uploadToken.d.ts +0 -4
  9. package/dist/_members/account-model/validators/userSettings.d.ts +0 -4
  10. package/dist/_members/account-model/validators/workingComposition.d.ts +0 -7
  11. package/dist/_members/animate/animations/Create.d.ts +0 -19
  12. package/dist/_members/animate/animations/FadeIn.d.ts +0 -17
  13. package/dist/_members/animate/animations/GrowArrow.d.ts +0 -19
  14. package/dist/_members/animate/animations/GrowFromCenter.d.ts +0 -12
  15. package/dist/_members/animate/animations/Indicate.d.ts +0 -17
  16. package/dist/_members/animate/animations/MoveAlongPath.d.ts +0 -18
  17. package/dist/_members/animate/animations/Transform.d.ts +0 -28
  18. package/dist/_members/animate/animations/Wiggle.d.ts +0 -18
  19. package/dist/_members/animate/animations/Write.d.ts +0 -20
  20. package/dist/_members/animate/composition/AnimationGroup.d.ts +0 -21
  21. package/dist/_members/animate/composition/LaggedStart.d.ts +0 -22
  22. package/dist/_members/animate/composition/Succession.d.ts +0 -17
  23. package/dist/_members/animate/easing/rush.d.ts +0 -14
  24. package/dist/_members/animate/easing/smooth.d.ts +0 -7
  25. package/dist/_members/animate/easing/smootherstep.d.ts +0 -6
  26. package/dist/_members/animate/index.d.ts +0 -2
  27. package/dist/_members/animate/mobjects/Arrow.d.ts +0 -25
  28. package/dist/_members/animate/mobjects/BrandBox.d.ts +0 -25
  29. package/dist/_members/animate/mobjects/DiGraph.d.ts +0 -18
  30. package/dist/_members/animate/mobjects/Graph.d.ts +0 -38
  31. package/dist/_members/animate/three/ThreeCanvas.d.ts +0 -23
  32. package/dist/_members/animate/three/drei.d.ts +0 -7
  33. package/dist/_members/authoring/agent/buildTools.d.ts +0 -37
  34. package/dist/_members/authoring/agent/contextManagement.d.ts +0 -65
  35. package/dist/_members/authoring/agent/errors.d.ts +0 -9
  36. package/dist/_members/authoring/agent/memoryTool.d.ts +0 -2
  37. package/dist/_members/authoring/agent/promptCache.d.ts +0 -31
  38. package/dist/_members/authoring/agent.d.ts +0 -34
  39. package/dist/_members/authoring/capabilities.d.ts +0 -145
  40. package/dist/_members/authoring/composer/scopes.d.ts +0 -19
  41. package/dist/_members/authoring/context/brand.d.ts +0 -4
  42. package/dist/_members/authoring/context/brandTokens.d.ts +0 -4
  43. package/dist/_members/authoring/context/index.d.ts +0 -1
  44. package/dist/_members/authoring/context/timeline.d.ts +0 -15
  45. package/dist/_members/authoring/context/transcript.d.ts +0 -11
  46. package/dist/_members/authoring/context/types.d.ts +0 -4
  47. package/dist/_members/authoring/decomposer.d.ts +0 -12
  48. package/dist/_members/authoring/evaluate.d.ts +0 -26
  49. package/dist/_members/authoring/evaluator.d.ts +0 -16
  50. package/dist/_members/authoring/index.d.ts +1 -1
  51. package/dist/_members/authoring/models/modelFactory.d.ts +0 -77
  52. package/dist/_members/authoring/motion/applyMotionPreset.d.ts +0 -12
  53. package/dist/_members/authoring/motion/materializeMotionPresetOps.d.ts +0 -7
  54. package/dist/_members/authoring/motion/shell.d.ts +0 -20
  55. package/dist/_members/authoring/pipelineTrace.d.ts +0 -19
  56. package/dist/_members/authoring/prompts/decomposerPrompt.d.ts +0 -4
  57. package/dist/_members/authoring/prompts/designReviewerPrompt.d.ts +0 -16
  58. package/dist/_members/authoring/prompts/evaluatorPrompt.d.ts +0 -4
  59. package/dist/_members/authoring/prompts/graphics.d.ts +0 -5
  60. package/dist/_members/authoring/prompts/index.d.ts +0 -1
  61. package/dist/_members/authoring/prompts/plannerPrompt.d.ts +0 -30
  62. package/dist/_members/authoring/providers/resourceApi.d.ts +1 -20
  63. package/dist/_members/authoring/resource-routing.d.ts +0 -121
  64. package/dist/_members/authoring/resources.d.ts +0 -34
  65. package/dist/_members/authoring/scope.d.ts +0 -24
  66. package/dist/_members/authoring/tools/brandTokens.d.ts +0 -22
  67. package/dist/_members/authoring/tools/composeRoleTools.d.ts +0 -79
  68. package/dist/_members/authoring/tools/index.d.ts +0 -1
  69. package/dist/_members/authoring/tools/toolSets.d.ts +0 -50
  70. package/dist/_members/authoring/transpileComponent.d.ts +0 -34
  71. package/dist/_members/authoring/transpileHelper.d.ts +0 -18
  72. package/dist/_members/authoring/types.d.ts +0 -149
  73. package/dist/_members/brand-derivation/constants.d.ts +0 -17
  74. package/dist/_members/brand-derivation/contrastSafe.d.ts +0 -23
  75. package/dist/_members/cloud-import/CloudImportService.d.ts +0 -15
  76. package/dist/_members/cloud-import/ImportProvider.d.ts +0 -45
  77. package/dist/_members/cloud-import/MediaItemPreprocessor.d.ts +0 -9
  78. package/dist/_members/cloud-import/cloudConfig.d.ts +0 -15
  79. package/dist/_members/compose/CompositionRenderer.d.ts +0 -6
  80. package/dist/_members/compose/primitiveRegistry.d.ts +0 -64
  81. package/dist/_members/compose/sceneToRenderInput.d.ts +0 -26
  82. package/dist/_members/compose/schema.d.ts +0 -15
  83. package/dist/_members/compose/tokenResolver.d.ts +0 -11
  84. package/dist/_members/composition/audio/audioMix.d.ts +0 -34
  85. package/dist/_members/composition/audio/mixStaging.d.ts +0 -81
  86. package/dist/_members/composition/audio/musicPack.d.ts +0 -35
  87. package/dist/_members/composition/audio/musicPack.generated.d.ts +0 -6
  88. package/dist/_members/composition/audio/pack.d.ts +0 -43
  89. package/dist/_members/composition/audio/pack.generated.d.ts +0 -6
  90. package/dist/_members/composition/audio/palette.d.ts +0 -36
  91. package/dist/_members/composition/autozoom/index.d.ts +0 -32
  92. package/dist/_members/composition/brand-kit.d.ts +0 -8
  93. package/dist/_members/composition/brief/contract.d.ts +0 -90
  94. package/dist/_members/composition/color-grade.d.ts +0 -11
  95. package/dist/_members/composition/depth.d.ts +0 -19
  96. package/dist/_members/composition/fixtures/agentErrored.d.ts +0 -23
  97. package/dist/_members/composition/fonts.d.ts +0 -62
  98. package/dist/_members/composition/graphics-plan/compile.d.ts +0 -29
  99. package/dist/_members/composition/graphics-plan/index.d.ts +0 -5
  100. package/dist/_members/composition/graphics-plan/instantiateMotif.d.ts +0 -17
  101. package/dist/_members/composition/graphics-plan/motion.d.ts +0 -17
  102. package/dist/_members/composition/graphics-plan/schemas.d.ts +0 -171
  103. package/dist/_members/composition/graphics-plan/solve.d.ts +0 -19
  104. package/dist/_members/composition/invariants/clipPlacement.d.ts +0 -59
  105. package/dist/_members/composition/invariants/composition.d.ts +0 -5
  106. package/dist/_members/composition/invariants/etag.d.ts +0 -7
  107. package/dist/_members/composition/invariants/ids.d.ts +0 -6
  108. package/dist/_members/composition/invariants/keyframes.d.ts +0 -19
  109. package/dist/_members/composition/invariants/markers.d.ts +0 -6
  110. package/dist/_members/composition/invariants/time.d.ts +0 -8
  111. package/dist/_members/composition/invariants/tracks.d.ts +0 -48
  112. package/dist/_members/composition/ops/compositionOps.d.ts +4 -71
  113. package/dist/_members/composition/ops/compositionOps.shared.d.ts +30 -0
  114. package/dist/_members/composition/ops/headlessStore.d.ts +0 -24
  115. package/dist/_members/composition/ops/selectors.d.ts +0 -66
  116. package/dist/_members/composition/ops/timeline-word.d.ts +0 -5
  117. package/dist/_members/composition/ops/transcript.d.ts +0 -27
  118. package/dist/_members/composition/ops/types.d.ts +0 -51
  119. package/dist/_members/composition/primitive-catalog/catalogQuery.d.ts +0 -32
  120. package/dist/_members/composition/primitive-catalog/disabled.d.ts +0 -1
  121. package/dist/_members/composition/primitive-catalog/index.d.ts +0 -11
  122. package/dist/_members/composition/primitive-catalog/paramValidation.d.ts +0 -50
  123. package/dist/_members/composition/primitive-catalog/projection.d.ts +0 -39
  124. package/dist/_members/composition/primitive-catalog/types.d.ts +0 -78
  125. package/dist/_members/composition/projection/behind-placement.d.ts +0 -40
  126. package/dist/_members/composition/projection/behind-readiness.d.ts +14 -89
  127. package/dist/_members/composition/projection/brandKit.d.ts +0 -142
  128. package/dist/_members/composition/projection/cardTokens.d.ts +0 -65
  129. package/dist/_members/composition/projection/composition-floor.d.ts +0 -179
  130. package/dist/_members/composition/projection/cropProjection.d.ts +0 -75
  131. package/dist/_members/composition/projection/occlusion-budget.d.ts +0 -37
  132. package/dist/_members/composition/projection/reframe-readiness.d.ts +4 -111
  133. package/dist/_members/composition/projection/safe-zones.d.ts +0 -29
  134. package/dist/_members/composition/reframe/aspectLoss.d.ts +12 -35
  135. package/dist/_members/composition/reframe/coverage.d.ts +0 -40
  136. package/dist/_members/composition/reframe/derive.d.ts +0 -21
  137. package/dist/_members/composition/reframe/index.d.ts +0 -60
  138. package/dist/_members/composition/reframe/kenBurns.d.ts +0 -37
  139. package/dist/_members/composition/reframe/shotScale.d.ts +0 -75
  140. package/dist/_members/composition/reframe/trajectory.d.ts +0 -65
  141. package/dist/_members/composition/timeline/compound.d.ts +0 -31
  142. package/dist/_members/composition/timeline/intent.d.ts +0 -29
  143. package/dist/_members/composition/timeline/keyframes.d.ts +0 -43
  144. package/dist/_members/composition/timeline/link.d.ts +0 -27
  145. package/dist/_members/composition/timeline/occupancy.d.ts +1 -42
  146. package/dist/_members/composition/timeline/placement.d.ts +5 -52
  147. package/dist/_members/composition/timeline/plan.d.ts +5 -53
  148. package/dist/_members/composition/timeline/resolve.d.ts +0 -36
  149. package/dist/_members/composition/timeline/trims.d.ts +0 -49
  150. package/dist/_members/composition/validators/brandKit.d.ts +0 -29
  151. package/dist/_members/composition/validators/composePlan.d.ts +0 -39
  152. package/dist/_members/composition/validators/composition.d.ts +30 -513
  153. package/dist/_members/composition/validators/graphicKinds.d.ts +0 -28
  154. package/dist/_members/composition/validators/render.d.ts +23 -23
  155. package/dist/_members/composition-ops/alphaLayers.d.ts +0 -56
  156. package/dist/_members/composition-ops/index.d.ts +27 -148
  157. package/dist/_members/composition-ops/materializeGrid.d.ts +0 -28
  158. package/dist/_members/composition-ops/opRecorder.d.ts +0 -34
  159. package/dist/_members/composition-ops/recordingStore.d.ts +0 -16
  160. package/dist/_members/composition-ops/replaceRegion.d.ts +0 -48
  161. package/dist/_members/composition-ops/testFixtures.d.ts +0 -14
  162. package/dist/_members/convex-api/api.generated.d.ts +1444 -0
  163. package/dist/_members/convex-api/dataModel.d.ts +1 -1
  164. package/dist/_members/core/index.d.ts +1 -1
  165. package/dist/_members/core/render/bookends.d.ts +0 -44
  166. package/dist/_members/core/render/captions.d.ts +0 -42
  167. package/dist/_members/core/render/compositionRender.d.ts +1 -180
  168. package/dist/_members/core/render/deriveTrajectory.d.ts +0 -140
  169. package/dist/_members/core/render/emphasis.d.ts +0 -6
  170. package/dist/_members/core/render/eval/cropBox.d.ts +0 -69
  171. package/dist/_members/core/render/eval/inclusion.d.ts +0 -39
  172. package/dist/_members/core/render/eval/index.d.ts +0 -58
  173. package/dist/_members/core/render/eval/metrics.d.ts +0 -36
  174. package/dist/_members/core/render/exportSettings.d.ts +4 -12
  175. package/dist/_members/core/render/index.d.ts +1 -1
  176. package/dist/_members/core/render/mapFaceToPerson.d.ts +0 -27
  177. package/dist/_members/core/render/types.d.ts +1 -184
  178. package/dist/_members/core/render/variantKeys.d.ts +1 -0
  179. package/dist/_members/core/render/vcam/cameraPath.d.ts +0 -44
  180. package/dist/_members/core/render/vcam/constants.d.ts +0 -93
  181. package/dist/_members/core/render/vcam/errorCodes.d.ts +0 -28
  182. package/dist/_members/core/render/vcam/framing.d.ts +0 -76
  183. package/dist/_members/core/render/vcam/requiredRegion.d.ts +0 -71
  184. package/dist/_members/core/render/vcam/shots.d.ts +0 -40
  185. package/dist/_members/core/render/vcam/subjectSet.d.ts +0 -85
  186. package/dist/_members/core/select/errorCodes.d.ts +0 -25
  187. package/dist/_members/core/select/index.d.ts +0 -20
  188. package/dist/_members/core/select/model.d.ts +0 -79
  189. package/dist/_members/core/select/select.d.ts +0 -49
  190. package/dist/_members/core/select/stabilize.d.ts +0 -102
  191. package/dist/_members/core/types.d.ts +0 -1
  192. package/dist/_members/director/ai-sdk/chunks.d.ts +14 -0
  193. package/dist/_members/director/ai-sdk/context.d.ts +6 -0
  194. package/dist/_members/director/ai-sdk/generationTool.d.ts +8 -0
  195. package/dist/_members/director/ai-sdk/index.d.ts +4 -0
  196. package/dist/_members/director/ai-sdk/messages.d.ts +292 -0
  197. package/dist/_members/director/domain/chat.d.ts +357 -0
  198. package/dist/_members/director/domain/generation.d.ts +1 -0
  199. package/dist/_members/director/domain/index.d.ts +3 -0
  200. package/dist/_members/director/domain/ports.d.ts +32 -0
  201. package/dist/_members/director/index.d.ts +2 -0
  202. package/dist/_members/director/testing/contract.d.ts +52 -0
  203. package/dist/_members/director/testing/index.d.ts +1 -0
  204. package/dist/_members/errors/registry.d.ts +103 -33
  205. package/dist/_members/foundation/codes/index.d.ts +0 -21
  206. package/dist/_members/mcp/adapter.d.ts +1 -84
  207. package/dist/_members/mcp/burnedNames.d.ts +0 -16
  208. package/dist/_members/mcp/core.d.ts +2 -82
  209. package/dist/_members/mcp/curation.d.ts +0 -112
  210. package/dist/_members/mcp/executor.d.ts +0 -49
  211. package/dist/_members/mcp/format.d.ts +0 -6
  212. package/dist/_members/mcp/generated/catalogPreviews.d.ts +0 -1
  213. package/dist/_members/mcp/generated/harness.d.ts +1 -1
  214. package/dist/_members/mcp/generated/operations.d.ts +1 -12
  215. package/dist/_members/mcp/internalLoopTools.d.ts +0 -23
  216. package/dist/_members/mcp/prompts.d.ts +0 -16
  217. package/dist/_members/mcp/resources.d.ts +0 -13
  218. package/dist/_members/mcp/server.d.ts +0 -61
  219. package/dist/_members/mcp/wait.d.ts +1 -23
  220. package/dist/_members/mcp/x402Meta.d.ts +0 -44
  221. package/dist/_members/media-model/generation.d.ts +314 -0
  222. package/dist/_members/media-model/index.d.ts +1 -0
  223. package/dist/_members/media-model/media-kind.d.ts +0 -27
  224. package/dist/_members/media-model/transcriptSearch.d.ts +0 -42
  225. package/dist/_members/nle-export/fcpxml.d.ts +0 -13
  226. package/dist/_members/nle-export/index.d.ts +0 -6
  227. package/dist/_members/nle-export/types.d.ts +0 -26
  228. package/dist/_members/nle-export/xml/index.d.ts +0 -8
  229. package/dist/_members/nle-export/xml-utils.d.ts +0 -12
  230. package/dist/_members/perception/activeSpeaker.d.ts +0 -94
  231. package/dist/_members/perception/audioQuality.d.ts +0 -64
  232. package/dist/_members/perception/energyBeat.d.ts +0 -81
  233. package/dist/_members/perception/identityMatch.d.ts +0 -66
  234. package/dist/_members/perception/index.d.ts +0 -52
  235. package/dist/_members/perception/visualQuality.d.ts +0 -73
  236. package/dist/_members/plane/conformance.d.ts +0 -59
  237. package/dist/_members/plane/contract.d.ts +0 -29
  238. package/dist/_members/plane/index.d.ts +0 -15
  239. package/dist/_members/primitives/backgrounds/animated-bar-chart/index.d.ts +0 -13
  240. package/dist/_members/primitives/backgrounds/animated-line-chart/index.d.ts +0 -14
  241. package/dist/_members/primitives/backgrounds/dither-gradient-bg/index.d.ts +0 -14
  242. package/dist/_members/primitives/backgrounds/dynamic-grid/index.d.ts +0 -8
  243. package/dist/_members/primitives/backgrounds/ecosystem-constellation/index.d.ts +0 -8
  244. package/dist/_members/primitives/backgrounds/infinite-marquee/index.d.ts +0 -8
  245. package/dist/_members/primitives/backgrounds/mesh-gradient-bg/index.d.ts +0 -8
  246. package/dist/_members/primitives/backgrounds/perspective-marquee/index.d.ts +0 -8
  247. package/dist/_members/primitives/backgrounds/silk-flow-bg/index.d.ts +0 -17
  248. package/dist/_members/primitives/backgrounds/vector-field/index.d.ts +0 -14
  249. package/dist/_members/primitives/backgrounds/volumetric-rays/index.d.ts +0 -18
  250. package/dist/_members/primitives/captions/Captions.d.ts +0 -24
  251. package/dist/_members/primitives/captions/index.d.ts +0 -15
  252. package/dist/_members/primitives/captions/paginate.d.ts +0 -21
  253. package/dist/_members/primitives/captions/placement.d.ts +0 -30
  254. package/dist/_members/primitives/effects/blur/index.d.ts +0 -16
  255. package/dist/_members/primitives/effects/color-grade/index.d.ts +0 -20
  256. package/dist/_members/primitives/effects/grain/index.d.ts +0 -12
  257. package/dist/_members/primitives/effects/parallax/index.d.ts +0 -13
  258. package/dist/_members/primitives/effects/particles/index.d.ts +0 -16
  259. package/dist/_members/primitives/effects/pulsing-indicator/index.d.ts +0 -10
  260. package/dist/_members/primitives/effects/spotlight-card/index.d.ts +0 -8
  261. package/dist/_members/primitives/effects/spring-pop-in/index.d.ts +0 -10
  262. package/dist/_members/primitives/effects/success-confetti/index.d.ts +0 -8
  263. package/dist/_members/primitives/effects/vignette/index.d.ts +0 -12
  264. package/dist/_members/primitives/hero-text/HeroText.d.ts +0 -17
  265. package/dist/_members/primitives/hero-text/config.d.ts +0 -10
  266. package/dist/_members/primitives/hero-text/index.d.ts +0 -14
  267. package/dist/_members/primitives/index.d.ts +0 -8
  268. package/dist/_members/primitives/layouts/chat-to-preview-layout/index.d.ts +0 -8
  269. package/dist/_members/primitives/layouts/infinite-bento-pan/index.d.ts +0 -8
  270. package/dist/_members/primitives/layouts/letterbox/index.d.ts +0 -15
  271. package/dist/_members/primitives/layouts/photo-grid/index.d.ts +0 -17
  272. package/dist/_members/primitives/layouts/picture-in-picture/index.d.ts +0 -21
  273. package/dist/_members/primitives/layouts/split-screen/index.d.ts +0 -15
  274. package/dist/_members/primitives/layouts/staggered-bento-grid/index.d.ts +0 -8
  275. package/dist/_members/primitives/lib/easings.d.ts +0 -27
  276. package/dist/_members/primitives/lib/palette.d.ts +0 -22
  277. package/dist/_members/primitives/lib/preview.d.ts +0 -22
  278. package/dist/_members/primitives/lib/schema.d.ts +0 -36
  279. package/dist/_members/primitives/lib/seeded-random.d.ts +0 -23
  280. package/dist/_members/primitives/lib/text/contrast.d.ts +0 -17
  281. package/dist/_members/primitives/lib/text/fill.d.ts +0 -5
  282. package/dist/_members/primitives/lib/text/fitText.d.ts +0 -37
  283. package/dist/_members/primitives/lib/text/marker.d.ts +0 -10
  284. package/dist/_members/primitives/lib/text/motion.d.ts +0 -46
  285. package/dist/_members/primitives/lib/text/recolor.d.ts +0 -11
  286. package/dist/_members/primitives/lib/text/spec.d.ts +0 -39
  287. package/dist/_members/primitives/lib/text/stage.d.ts +0 -17
  288. package/dist/_members/primitives/lib/text/typeface.d.ts +0 -11
  289. package/dist/_members/primitives/lib/tokens.d.ts +0 -87
  290. package/dist/_members/primitives/lib/types.d.ts +0 -141
  291. package/dist/_members/primitives/scenes/changelog-bite/index.d.ts +0 -12
  292. package/dist/_members/primitives/scenes/hero-device-assemble/index.d.ts +0 -8
  293. package/dist/_members/primitives/scenes/landing-code-showcase/index.d.ts +0 -8
  294. package/dist/_members/primitives/scenes/live-code-compilation/index.d.ts +0 -8
  295. package/dist/_members/primitives/scenes/pricing-tier-focus/index.d.ts +0 -8
  296. package/dist/_members/primitives/scenes/product-launch-trailer/index.d.ts +0 -8
  297. package/dist/_members/primitives/scenes/terminal-to-browser-deploy/index.d.ts +0 -8
  298. package/dist/_members/primitives/subject-foreground/SubjectForeground.d.ts +0 -38
  299. package/dist/_members/primitives/subject-foreground/index.d.ts +0 -21
  300. package/dist/_members/primitives/text/blur-reveal/index.d.ts +0 -9
  301. package/dist/_members/primitives/text/cinematic-title/index.d.ts +0 -14
  302. package/dist/_members/primitives/text/inline-highlight/index.d.ts +0 -11
  303. package/dist/_members/primitives/text/karaoke/index.d.ts +0 -13
  304. package/dist/_members/primitives/text/kinetic-type/index.d.ts +0 -15
  305. package/dist/_members/primitives/text/lower-third/index.d.ts +0 -14
  306. package/dist/_members/primitives/text/marker-highlight/index.d.ts +0 -10
  307. package/dist/_members/primitives/text/masked-slide-reveal/index.d.ts +0 -8
  308. package/dist/_members/primitives/text/matrix-decode/index.d.ts +0 -9
  309. package/dist/_members/primitives/text/quote-card/index.d.ts +0 -9
  310. package/dist/_members/primitives/text/rgb-glitch-text/index.d.ts +0 -13
  311. package/dist/_members/primitives/text/shimmer-sweep/index.d.ts +0 -10
  312. package/dist/_members/primitives/text/slot-machine-roll/index.d.ts +0 -8
  313. package/dist/_members/primitives/text/staggered-fade-up/index.d.ts +0 -12
  314. package/dist/_members/primitives/text/stat-counter/index.d.ts +0 -13
  315. package/dist/_members/primitives/text/strikethrough-replace/index.d.ts +0 -9
  316. package/dist/_members/primitives/text/text-effect/index.d.ts +0 -17
  317. package/dist/_members/primitives/text/text-fade-replace/index.d.ts +0 -8
  318. package/dist/_members/primitives/text/token-stream/index.d.ts +0 -11
  319. package/dist/_members/primitives/text/tracking-in/index.d.ts +0 -8
  320. package/dist/_members/primitives/text/typewriter/index.d.ts +0 -12
  321. package/dist/_members/primitives/transitions/chromatic-aberration-wipe/index.d.ts +0 -11
  322. package/dist/_members/primitives/transitions/code-diff-wipe/index.d.ts +0 -8
  323. package/dist/_members/primitives/transitions/directional-wipe/index.d.ts +0 -10
  324. package/dist/_members/primitives/transitions/frosted-glass-wipe/index.d.ts +0 -10
  325. package/dist/_members/primitives/transitions/glitch-cut/index.d.ts +0 -3
  326. package/dist/_members/primitives/transitions/grid-pixelate-wipe/index.d.ts +0 -14
  327. package/dist/_members/primitives/transitions/ink-wipe/index.d.ts +0 -3
  328. package/dist/_members/primitives/transitions/kinetic-type-mask/index.d.ts +0 -12
  329. package/dist/_members/primitives/transitions/light-leak/index.d.ts +0 -3
  330. package/dist/_members/primitives/transitions/luma-matte/index.d.ts +0 -2
  331. package/dist/_members/primitives/transitions/morph/index.d.ts +0 -2
  332. package/dist/_members/primitives/transitions/spatial-push/index.d.ts +0 -10
  333. package/dist/_members/primitives/transitions/swipe-transition-wipe/index.d.ts +0 -13
  334. package/dist/_members/primitives/transitions/zoom-through/index.d.ts +0 -2
  335. package/dist/_members/primitives/transitions/zoom-through-transition/index.d.ts +0 -9
  336. package/dist/_members/primitives/ui-blocks/ai-generate-overlay/index.d.ts +0 -8
  337. package/dist/_members/primitives/ui-blocks/ai-generation-canvas/index.d.ts +0 -8
  338. package/dist/_members/primitives/ui-blocks/badge-pop/index.d.ts +0 -11
  339. package/dist/_members/primitives/ui-blocks/before-after-slider/index.d.ts +0 -11
  340. package/dist/_members/primitives/ui-blocks/benchmark-bars/index.d.ts +0 -11
  341. package/dist/_members/primitives/ui-blocks/bounding-box-selector/index.d.ts +0 -8
  342. package/dist/_members/primitives/ui-blocks/browser-flow/index.d.ts +0 -8
  343. package/dist/_members/primitives/ui-blocks/brush-stroke-simulator/index.d.ts +0 -18
  344. package/dist/_members/primitives/ui-blocks/chat-exchange/index.d.ts +0 -10
  345. package/dist/_members/primitives/ui-blocks/code-accordion/index.d.ts +0 -8
  346. package/dist/_members/primitives/ui-blocks/context-meter/index.d.ts +0 -11
  347. package/dist/_members/primitives/ui-blocks/cursor-flow/index.d.ts +0 -11
  348. package/dist/_members/primitives/ui-blocks/dashboard-populate/index.d.ts +0 -8
  349. package/dist/_members/primitives/ui-blocks/data-flow-pipes/index.d.ts +0 -9
  350. package/dist/_members/primitives/ui-blocks/device-mockup-zoom/index.d.ts +0 -8
  351. package/dist/_members/primitives/ui-blocks/drag-and-drop-flow/index.d.ts +0 -8
  352. package/dist/_members/primitives/ui-blocks/eval-scorecard/index.d.ts +0 -11
  353. package/dist/_members/primitives/ui-blocks/glass-code-block/index.d.ts +0 -8
  354. package/dist/_members/primitives/ui-blocks/image-expand-to-fullscreen/index.d.ts +0 -8
  355. package/dist/_members/primitives/ui-blocks/metric-gauge/index.d.ts +0 -12
  356. package/dist/_members/primitives/ui-blocks/morphing-modal/index.d.ts +0 -8
  357. package/dist/_members/primitives/ui-blocks/pipeline-journey/index.d.ts +0 -8
  358. package/dist/_members/primitives/ui-blocks/progress-steps/index.d.ts +0 -8
  359. package/dist/_members/primitives/ui-blocks/reasoning-trace/index.d.ts +0 -10
  360. package/dist/_members/primitives/ui-blocks/simulated-cursor/index.d.ts +0 -8
  361. package/dist/_members/primitives/ui-blocks/terminal-simulator/index.d.ts +0 -19
  362. package/dist/_members/primitives/ui-blocks/toast-notification/index.d.ts +0 -8
  363. package/dist/_members/primitives/ui-blocks/tool-call-stack/index.d.ts +0 -8
  364. package/dist/_members/primitives/ui-blocks/tool-menu-slide-in/index.d.ts +0 -8
  365. package/dist/_members/primitives/ui-blocks/visual-docs-snippet/index.d.ts +0 -8
  366. package/dist/_members/primitives/ui-blocks/voice-waveform/index.d.ts +0 -11
  367. package/dist/_members/primitives/workspace.d.ts +0 -29
  368. package/dist/_members/render-harness/browserOptions.d.ts +11 -0
  369. package/dist/_members/render-harness/browserOptions.d.ts.map +1 -0
  370. package/dist/_members/render-harness/cardRender.d.ts +0 -40
  371. package/dist/_members/render-harness/cardRender.d.ts.map +1 -1
  372. package/dist/_members/render-harness/contractRender.d.ts +0 -16
  373. package/dist/_members/render-harness/contractRender.d.ts.map +1 -1
  374. package/dist/_members/render-harness/extractSegments.d.ts +0 -37
  375. package/dist/_members/render-harness/extractSegments.d.ts.map +1 -1
  376. package/dist/_members/render-harness/index.d.ts +0 -12
  377. package/dist/_members/render-harness/index.d.ts.map +1 -1
  378. package/dist/_members/render-harness/localRender.d.ts +1 -110
  379. package/dist/_members/render-harness/localRender.d.ts.map +1 -1
  380. package/dist/_members/render-harness/materializeSources.d.ts +0 -22
  381. package/dist/_members/render-harness/materializeSources.d.ts.map +1 -1
  382. package/dist/_members/render-harness/mediaServer.d.ts +0 -16
  383. package/dist/_members/render-harness/mediaServer.d.ts.map +1 -1
  384. package/dist/_members/render-harness/remotion-runtime.d.ts +53 -0
  385. package/dist/_members/render-harness/renderInputAssets.d.ts +0 -45
  386. package/dist/_members/render-harness/renderInputAssets.d.ts.map +1 -1
  387. package/dist/_members/render-harness/resolveAssets.d.ts +0 -24
  388. package/dist/_members/render-harness/resolveAssets.d.ts.map +1 -1
  389. package/dist/_members/render-harness/sandboxGlobalSpecs.d.ts +0 -14
  390. package/dist/_members/render-harness/sandboxGlobalSpecs.d.ts.map +1 -1
  391. package/dist/account-model/validators.js +1 -1
  392. package/dist/account-model.js +1 -1
  393. package/dist/animate.js +0 -15
  394. package/dist/authoring/build-tools.js +8 -8
  395. package/dist/authoring/composer.js +0 -20
  396. package/dist/authoring/context.js +6 -6
  397. package/dist/authoring/pipelineTrace.js +1 -1
  398. package/dist/authoring/prompts.js +1 -5
  399. package/dist/authoring/resource-routing.js +1 -1
  400. package/dist/authoring/resources.js +1 -1
  401. package/dist/authoring/tools.js +7 -7
  402. package/dist/authoring.js +14 -84
  403. package/dist/{chunk-TWQOKKAF.js → chunk-23HFEKV7.js} +0 -6
  404. package/dist/{chunk-EA6MYCYW.js → chunk-2B5VJZHL.js} +14 -25
  405. package/dist/chunk-73DQTUWY.js +131 -0
  406. package/dist/chunk-AW57IWNW.js +272 -0
  407. package/dist/chunk-BADZHXLR.js +0 -0
  408. package/dist/{chunk-GA23TRNR.js → chunk-BKHGL4MB.js} +5 -13
  409. package/dist/{chunk-PDYO3DOJ.js → chunk-BZZTVOGG.js} +6 -55
  410. package/dist/{chunk-7FO3ZJ43.js → chunk-DCVJWGIA.js} +1 -9
  411. package/dist/{chunk-HI4UTTPS.js → chunk-DJW3UGBH.js} +41 -72
  412. package/dist/{chunk-SIGGQRY2.js → chunk-DL7WYISQ.js} +5291 -4419
  413. package/dist/{chunk-AQBREB5O.js → chunk-DWLNPNC4.js} +1 -4
  414. package/dist/{chunk-SW336CJP.js → chunk-DYZE7JZA.js} +3 -26
  415. package/dist/{chunk-HCCBDJLW.js → chunk-EP2Y6M2J.js} +0 -4
  416. package/dist/{chunk-ZE76SSRT.js → chunk-FMODQD5P.js} +0 -6
  417. package/dist/chunk-FTVZF4GO.js +0 -0
  418. package/dist/{chunk-PMY24FUD.js → chunk-G5BFI32U.js} +1 -1
  419. package/dist/{chunk-LD5ZOUFT.js → chunk-GF52TW4I.js} +0 -4
  420. package/dist/{chunk-JJ6XD7NG.js → chunk-GIA2SVVB.js} +70 -2
  421. package/dist/{chunk-ABL557OT.js → chunk-GMD33ZD7.js} +1 -8
  422. package/dist/{chunk-AP6ZIVAV.js → chunk-HBVAZXYO.js} +17 -17
  423. package/dist/{chunk-UY4SWJVE.js → chunk-HFC3MKXA.js} +0 -63
  424. package/dist/{chunk-ZWMV6DD2.js → chunk-ICSZF37W.js} +10 -162
  425. package/dist/chunk-IEXAKOEX.js +113 -0
  426. package/dist/{chunk-RF7U3SCL.js → chunk-KFECIHED.js} +29 -26
  427. package/dist/{chunk-DK2ODBNT.js → chunk-NQSMEUJ6.js} +16 -98
  428. package/dist/{chunk-YX2GSJK7.js → chunk-RP4SXXLJ.js} +1 -1
  429. package/dist/{chunk-P727GZVO.js → chunk-SAMQUUO5.js} +3 -5
  430. package/dist/{chunk-MMEJ3Y7E.js → chunk-SDCEJAO2.js} +97 -23
  431. package/dist/{chunk-TOJEXFXL.js → chunk-TFGKUWHY.js} +1 -88
  432. package/dist/chunk-TMB5AY6Q.js +146 -0
  433. package/dist/chunk-TO4BFNLJ.js +93 -0
  434. package/dist/{chunk-UHGSZZDI.js → chunk-TPA6PYN2.js} +1 -11
  435. package/dist/{chunk-MBCXCJOE.js → chunk-TXSFYUZH.js} +1 -1
  436. package/dist/{chunk-OLFOPQCA.js → chunk-UQSOS726.js} +4 -18
  437. package/dist/{chunk-GBRNYH7W.js → chunk-V24L35GM.js} +0 -11
  438. package/dist/{chunk-JMURQODM.js → chunk-VZ7TYX6Z.js} +0 -1
  439. package/dist/{chunk-W35ZMOXB.js → chunk-WPZKOVYF.js} +0 -5
  440. package/dist/chunk-WZH57M53.js +494 -0
  441. package/dist/{chunk-AYVJXDLB.js → chunk-XHGZ2E77.js} +0 -2
  442. package/dist/{chunk-7DHP4ESU.js → chunk-YLDMAZZE.js} +0 -10
  443. package/dist/{chunk-FYZVH3MC.js → chunk-YQ7FFW3G.js} +0 -11
  444. package/dist/{chunk-HY3RIEZW.js → chunk-ZPRBGW4Y.js} +1 -1
  445. package/dist/cloud-import/multipart.js +1 -1
  446. package/dist/cloud-import.js +9 -16
  447. package/dist/compose/renderer.js +18 -18
  448. package/dist/compose.js +21 -21
  449. package/dist/composition/audio.js +1 -1
  450. package/dist/composition/brand-kit.js +0 -5
  451. package/dist/composition/graphics-plan.js +4 -4
  452. package/dist/composition/ops.js +5 -5
  453. package/dist/composition/primitive-catalog.js +1 -1
  454. package/dist/composition/projection.js +11 -3
  455. package/dist/composition/reframe/kenBurns.js +0 -4
  456. package/dist/composition/reframe.js +4 -2
  457. package/dist/composition/timeline.js +1 -1
  458. package/dist/composition/validators/graphic-kinds.js +1 -1
  459. package/dist/composition/validators.js +4 -4
  460. package/dist/composition-ops.js +16 -135
  461. package/dist/composition.js +15 -7
  462. package/dist/context-JLLU3MYD.js +14 -0
  463. package/dist/core/render.js +9 -7
  464. package/dist/core/select.js +2 -6
  465. package/dist/core.js +5 -7
  466. package/dist/director/ai-sdk.d.ts +1 -0
  467. package/dist/director/ai-sdk.js +33 -0
  468. package/dist/director/domain.d.ts +1 -0
  469. package/dist/director/domain.js +62 -0
  470. package/dist/director/testing.d.ts +1 -0
  471. package/dist/director/testing.js +22 -0
  472. package/dist/director.d.ts +1 -0
  473. package/dist/director.js +86 -0
  474. package/dist/errors.js +1 -1
  475. package/dist/foundation.js +1 -0
  476. package/dist/mcp/adapter.js +45 -75
  477. package/dist/mcp/core.js +1 -1
  478. package/dist/mcp/curation.js +1 -1
  479. package/dist/mcp/server.js +4 -4
  480. package/dist/mcp.js +4 -4
  481. package/dist/media-model/generation.d.ts +1 -0
  482. package/dist/media-model/generation.js +40 -0
  483. package/dist/media-model/testing.js +6 -6
  484. package/dist/media-model.js +38 -6
  485. package/dist/nle-export.js +21 -21
  486. package/dist/plane/contract.js +0 -3
  487. package/dist/primitives/backgrounds.js +2 -2
  488. package/dist/primitives/captions.js +0 -5
  489. package/dist/primitives/effects.js +2 -2
  490. package/dist/primitives/hero-text.js +2 -2
  491. package/dist/primitives/layouts.js +2 -2
  492. package/dist/primitives/lib/index.js +17 -17
  493. package/dist/primitives/lib/text/fitText.js +1 -1
  494. package/dist/primitives/lib/tokens.js +1 -1
  495. package/dist/primitives/lib.js +17 -17
  496. package/dist/primitives/scenes.js +2 -2
  497. package/dist/primitives/text.js +2 -2
  498. package/dist/primitives/ui-blocks.js +4 -4
  499. package/dist/primitives.js +21 -21
  500. package/dist/render-harness/sandboxGlobalSpecs.js +1 -1
  501. package/dist/render-harness.js +24 -41
  502. package/package.json +38 -21
  503. package/dist/chunk-6EQXLEP6.js +0 -194
  504. package/dist/chunk-OCFDUCF4.js +0 -504
  505. package/dist/chunk-PODIYN2K.js +0 -742
  506. package/dist/context-YWUZDG5X.js +0 -14
@@ -3,15 +3,13 @@ import {
3
3
  } from "./chunk-KYRDKK2D.js";
4
4
  import {
5
5
  Composition
6
- } from "./chunk-PODIYN2K.js";
6
+ } from "./chunk-WZH57M53.js";
7
7
 
8
- // ../composition/src/ops/compositionOps.ts
8
+ // ../composition/src/ops/compositionOps.shared.ts
9
9
  function findOrCreateTrackByKind(composition, kind) {
10
10
  const existing = composition.tracks.find((t) => t.kind === kind);
11
11
  if (existing) return existing;
12
12
  const track = {
13
- // UUID suffix avoids id collisions when a track of `kind` is created,
14
- // deleted, then re-created at the same `tracks.length` index.
15
13
  id: `track-${kind}-${crypto.randomUUID().slice(0, 8)}`,
16
14
  kind,
17
15
  contents: []
@@ -71,8 +69,11 @@ function cutTimedRange(start, end, cutStart, cutEnd) {
71
69
  }
72
70
  function shiftTimedRange(start, end, from, amount) {
73
71
  if (start < from) return null;
74
- const s = Math.max(0, start + amount);
75
- return { start: s, end: end !== void 0 ? Math.max(s, end + amount) : void 0 };
72
+ const shiftedStart = Math.max(0, start + amount);
73
+ return {
74
+ start: shiftedStart,
75
+ end: end !== void 0 ? Math.max(shiftedStart, end + amount) : void 0
76
+ };
76
77
  }
77
78
  function selectionPatch(composition, entities) {
78
79
  const clipIds = entities.filter((e) => e.kind === "clip").map((e) => e.clipId);
@@ -91,16 +92,17 @@ function selectionPatch(composition, entities) {
91
92
  }
92
93
  function pruneSelectionInDraft(draft, removedClipIds) {
93
94
  const kept = draft.selection.filter(
94
- (e) => !("clipId" in e) || !removedClipIds.has(e.clipId)
95
+ (entity) => !("clipId" in entity) || !removedClipIds.has(entity.clipId)
95
96
  );
96
97
  const patch = selectionPatch(draft.composition, kept);
97
98
  draft.selection = patch.selection;
98
99
  draft.selectedClipId = patch.selectedClipId;
99
100
  draft.selectedOverlayId = patch.selectedOverlayId;
100
101
  }
102
+
103
+ // ../composition/src/ops/compositionOps.ts
101
104
  function createCompositionOps(get, set) {
102
105
  return {
103
- // ── Clip operations ──
104
106
  addClip: (clip, options) => {
105
107
  set((draft) => {
106
108
  if (options?.newTrack) {
@@ -116,18 +118,6 @@ function createCompositionOps(get, set) {
116
118
  }
117
119
  });
118
120
  },
119
- /**
120
- * Family-routed clip add — the single primitive behind the consolidated
121
- * `clip.add` op (@cueframe/composition-ops). Routes a clip onto a track of
122
- * the resolved FAMILY: either an existing track pinned by `trackId`, or a
123
- * track of `kind` (created if absent, optionally with a pinned `newTrackId`
124
- * for byte-faithful op-replay). Replaces the three family-specific adders
125
- * (addClip/addOverlay/addAudioClip) at the OP layer — those stay for the
126
- * editor's direct calls.
127
- *
128
- * Fails LOUD if `trackId` names a missing track, or a track of a DIFFERENT
129
- * family (a clip must land on its own family — never silently mis-route).
130
- */
131
121
  addClipToTrack: (clip, target) => {
132
122
  set((draft) => {
133
123
  if ("trackId" in target) {
@@ -181,7 +171,6 @@ function createCompositionOps(get, set) {
181
171
  }
182
172
  });
183
173
  },
184
- /** Remove every clip whose `source.mediaId === mediaId`. */
185
174
  removeClipsByMediaId: (mediaId) => {
186
175
  set((draft) => {
187
176
  const removed = /* @__PURE__ */ new Set();
@@ -217,7 +206,6 @@ function createCompositionOps(get, set) {
217
206
  );
218
207
  }
219
208
  },
220
- /** Replace the whole selection. The multi-select entry point. */
221
209
  setSelection: (entities) => {
222
210
  const composition = get().composition;
223
211
  const live = entities.filter(
@@ -225,7 +213,6 @@ function createCompositionOps(get, set) {
225
213
  );
226
214
  set(selectionPatch(composition, expandToLinkGroup(composition, live)));
227
215
  },
228
- /** Every clip on the timeline, in track then start order. */
229
216
  selectAllClips: () => {
230
217
  const composition = get().composition;
231
218
  const entities = [];
@@ -290,18 +277,6 @@ function createCompositionOps(get, set) {
290
277
  });
291
278
  return { rippled: rateChange ? rateChange.delta !== 0 : false };
292
279
  },
293
- // ── Overlay operations (TimelineClips on kind:'overlay' tracks) ──
294
- // GUARD AT THE WRITE. An overlay source without a `primitiveId` is not a clip — it is a
295
- // hole that renders as `unknown overlay primitive 'undefined'`, and the RENDERER was the
296
- // first thing to notice it (2026-07-13: every capture_frames of a live compose died on
297
- // this, the author went blind, and it landed zero graphics on a 90s customer pitch).
298
- //
299
- // `primitiveId: z.string().min(1)` is ALREADY required by the composition validator — but
300
- // the in-loop capture path renders the in-memory store and never validates it, so the
301
- // schema never ran. Refuse at the write instead, where the caller is still on the stack and
302
- // the message can name it. (Same reasoning as compositionRender's `custom`-with-no-
303
- // sourceCode guard, which patched one instance of this at the render boundary; this closes
304
- // the class.)
305
280
  addOverlay: (clip) => {
306
281
  if (clip.source.kind === "overlay" && !clip.source.primitiveId) {
307
282
  throw new Error(
@@ -358,10 +333,6 @@ function createCompositionOps(get, set) {
358
333
  });
359
334
  set(selectionPatch(composition, kept));
360
335
  },
361
- /**
362
- * (see addOverlay's guard) Replace all overlays — clears existing overlay tracks, creates
363
- * one with provided clips.
364
- */
365
336
  loadOverlays: (clips) => {
366
337
  set((draft) => {
367
338
  draft.composition.tracks = draft.composition.tracks.filter((t) => t.kind !== "overlay");
@@ -375,7 +346,6 @@ function createCompositionOps(get, set) {
375
346
  draft.selectedOverlayId = null;
376
347
  });
377
348
  },
378
- // ── Audio operations (TimelineClips on kind:'audio' tracks) ──
379
349
  addAudioClip: (clip) => {
380
350
  set((draft) => {
381
351
  const track = findOrCreateTrackByKind(draft.composition, "audio");
@@ -408,7 +378,6 @@ function createCompositionOps(get, set) {
408
378
  }
409
379
  });
410
380
  },
411
- // ── Marker operations ──
412
381
  addMarker: (marker) => {
413
382
  set((draft) => {
414
383
  if (!draft.composition.markers) draft.composition.markers = [];
@@ -428,7 +397,6 @@ function createCompositionOps(get, set) {
428
397
  if (m) Object.assign(m, updates);
429
398
  });
430
399
  },
431
- // ── cutAndRipple (replaces v1 deletedRanges) ──
432
400
  cutAndRipple: (start, end) => {
433
401
  if (!Number.isFinite(start) || !Number.isFinite(end) || start >= end) return;
434
402
  const span = end - start;
@@ -491,18 +459,6 @@ function createCompositionOps(get, set) {
491
459
  }
492
460
  });
493
461
  },
494
- // ── addExcludedRange ──
495
- //
496
- // Marks a range of source media on a media-source clip as excluded.
497
- // Atomically: clamps to the clip's `trim` window, merges/coalesces with
498
- // existing `excludedRanges` (touching ranges merge), shrinks
499
- // `clip.duration` by the net delta added to Σ excluded, and ripples
500
- // downstream same-track items left by that delta.
501
- //
502
- // Wire-shape invariant: (trim.end − trim.start) − Σexcludedrange = duration.
503
- // The `trimEnd` fallback below restores trim.end from
504
- // `duration + Σexcluded` when `trim` is absent — the same invariant
505
- // rearranged.
506
462
  addExcludedRange: (clipId, sourceStart, sourceEnd, reason) => {
507
463
  if (!Number.isFinite(sourceStart) || !Number.isFinite(sourceEnd)) return;
508
464
  if (!(sourceEnd > sourceStart)) return;
@@ -584,12 +540,6 @@ function createCompositionOps(get, set) {
584
540
  }
585
541
  });
586
542
  },
587
- // ── removeExcludedRange ──
588
- //
589
- // Inverse of addExcludedRange. Removes the excluded range at the given
590
- // index, restores the clip's duration by the same amount, and ripples
591
- // downstream same-track items right. When the resulting list is empty,
592
- // drops the field entirely so the wire stays canonical.
593
543
  removeExcludedRange: (clipId, rangeIdx) => {
594
544
  set((draft) => {
595
545
  const found = findClipById(draft.composition, clipId);
@@ -615,18 +565,6 @@ function createCompositionOps(get, set) {
615
565
  }
616
566
  });
617
567
  },
618
- // ── setCropIntents ──
619
- //
620
- // Author the camera channel (`reframe`) on a media clip. Each segment
621
- // carries the canonical reframe params (focus, zoom, bias, ease) the
622
- // derive math honors directly — no closed-enum framing names, no
623
- // hardcoded scale constants.
624
- //
625
- // `null`/empty clears `reframe`; the clip then renders from the raw source.
626
- //
627
- // Used by the agent's `set_crop_intents` tool (name kept; the arg shape is
628
- // reframe) and the desktop editor's framing timeline. Replaces the deleted
629
- // subject-centric cropIntents (2026-06-14 cutover).
630
568
  setCropIntents: (clipId, segments) => {
631
569
  set((draft) => {
632
570
  const found = findClipById(draft.composition, clipId);
@@ -640,23 +578,6 @@ function createCompositionOps(get, set) {
640
578
  }
641
579
  });
642
580
  },
643
- // ── setEffects ──
644
- //
645
- // Author a clip's EFFECT channel (`TimelineClip.effects`) — the registered
646
- // effect primitives (+ params) the renderer stacks onto that clip. WHOLESALE:
647
- // the array REPLACES whatever was there, and `[]` CLEARS the channel (the
648
- // same set/clear shape setCropIntents has). `effects` has been in the
649
- // validator — and accepted by `clip.add` — all along, but until the
650
- // `setEffects` op there was no way to change it on an EXISTING clip except a
651
- // whole-clip `clip.update` patch, which the op vocabulary explicitly steers
652
- // callers away from (a partial `source` in that patch clobbers the source).
653
- //
654
- // Named EXACTLY like the wire op it records (`setEffects`) — the factory and
655
- // the op vocabulary are one vocabulary, so there is no method→op rename table
656
- // for the conformance guard to carry.
657
- //
658
- // Cross-track by id, like `updateClip` — the clip's family is irrelevant to
659
- // its effect stack. Same merge shape as `updateClip(id, { effects })`.
660
581
  setEffects: (clipId, effects) => {
661
582
  set((draft) => {
662
583
  const found = findClipById(draft.composition, clipId);
@@ -668,17 +589,6 @@ function createCompositionOps(get, set) {
668
589
  }
669
590
  });
670
591
  },
671
- // ── setCaptionStyle ──
672
- //
673
- // Apply the agent's caption STYLE overrides (font, size, color, position,
674
- // emphasis treatment, …) onto the top-level `composition.captions.style` —
675
- // the exact field the renderer consumes (compositionRender.ts) and the
676
- // Captions primitive reads. Merge (not replace) so each `set_captions` call
677
- // overrides only the fields it names and leaves the rest (and the
678
- // transcript-sliced `words`) intact. Undefined fields are dropped so an
679
- // omitted field never clobbers an existing one. If captions don't exist yet
680
- // (style set before the transcript slice lands), create the container with
681
- // empty words — the compose/insert path fills the words.
682
592
  setCaptionStyle: (style) => {
683
593
  set((draft) => {
684
594
  const clean = Object.fromEntries(
@@ -693,18 +603,6 @@ function createCompositionOps(get, set) {
693
603
  }
694
604
  });
695
605
  },
696
- // ── setCaptionDepth ──
697
- //
698
- // Put the caption layer UNDER the speaker's silhouette, or back in front.
699
- // One choice for the whole layer, not per segment, because it decides
700
- // whether the SOURCE needs a matte — the $0.12/source-minute rung, and a
701
- // caption layer usually spans the whole video. See `CaptionDepth` in the
702
- // schema for why the 2026-06-11 front-only rule was reversed.
703
- //
704
- // Unlike `setCaptionStyle`, this does NOT create a caption container out of
705
- // nothing. Depth on a layer with no words is a request to matte footage
706
- // nobody is reading over — expensive and invisible — so a caller who has
707
- // not authored captions yet gets a no-op rather than a bill.
708
606
  setCaptionDepth: (zPlane) => {
709
607
  set((draft) => {
710
608
  const existing = draft.composition.captions;
@@ -716,15 +614,6 @@ function createCompositionOps(get, set) {
716
614
  }
717
615
  });
718
616
  },
719
- // ── setCaptions ──
720
- //
721
- // Replace the caption SEGMENTS wholesale — the words layer. Until this op,
722
- // caption words were populated ONLY by the compose/from-suggestion
723
- // transcript-slice lanes, so a client agent holding its own word timings
724
- // (e.g. a generated VO take) had no way to author the engine caption layer
725
- // (memoir v4, 2026-07-21). Segments REPLACE (not merge — word timing is one
726
- // coherent document); `style`, when given, merges with setCaptionStyle
727
- // semantics, and an omitted style keeps the existing one.
728
617
  setCaptions: (segments, style, derivedFrom) => {
729
618
  set((draft) => {
730
619
  const existing = draft.composition.captions;
@@ -736,7 +625,6 @@ function createCompositionOps(get, set) {
736
625
  draft.composition.captions = derivedFrom ? { source: "derived", from: derivedFrom, segments, ...styleField } : { source: "authored", segments, ...styleField };
737
626
  });
738
627
  },
739
- // ── ripple ──
740
628
  ripple: (time, amount) => {
741
629
  set((draft) => {
742
630
  for (const track of draft.composition.tracks) {
@@ -770,15 +658,6 @@ function createCompositionOps(get, set) {
770
658
  }
771
659
  });
772
660
  },
773
- // ── Canvas / format ──
774
- //
775
- // Patches `composition.format` — `aspectRatio` is required (the field
776
- // has no default), `fps`, `resolution`, and `platform` fall back to the
777
- // existing values on the wire. Clip start/duration values are not retimed:
778
- // a 30→60 fps switch keeps the same wall-clock seconds. Layout-sensitive
779
- // overlays may need re-rendering by the caller after a switch. `platform`
780
- // is output-determining (safe-zone placement) — carry it forward so an
781
- // aspect-only change never silently erases it.
782
661
  setFormat: (next) => {
783
662
  set((draft) => {
784
663
  const prev = draft.composition.format;
@@ -790,18 +669,6 @@ function createCompositionOps(get, set) {
790
669
  };
791
670
  });
792
671
  },
793
- // ── Track operations ──
794
- //
795
- // Capability parity: the cloud agent must be able to do everything the
796
- // editor can (these were previously editor-only, in
797
- // apps/studio/src/store/compositionStore/compositionOps.ts). They are pure
798
- // `set` mutations over `composition.tracks` + the selection fields already
799
- // on `CompositionOpsState`, so they live in core unchanged. The agent's
800
- // tool layer can now surface them; the editor keeps calling the same names.
801
- /**
802
- * Append a new track of `kind` to `composition.tracks`. If `id` is omitted
803
- * a UUID-suffixed id is generated (matches `findOrCreateTrackByKind`).
804
- */
805
672
  addTrack: (kind, name, id) => {
806
673
  set((draft) => {
807
674
  const track = {
@@ -813,7 +680,6 @@ function createCompositionOps(get, set) {
813
680
  draft.composition.tracks.push(track);
814
681
  });
815
682
  },
816
- /** Remove a track and any clip selection that references its contents. */
817
683
  removeTrack: (trackId) => {
818
684
  set((draft) => {
819
685
  const idx = draft.composition.tracks.findIndex((t) => t.id === trackId);
@@ -829,7 +695,6 @@ function createCompositionOps(get, set) {
829
695
  draft.composition.tracks.splice(idx, 1);
830
696
  });
831
697
  },
832
- /** Patch a track's `name` / `enabled`. */
833
698
  updateTrack: (trackId, updates) => {
834
699
  set((draft) => {
835
700
  const track = draft.composition.tracks.find((t) => t.id === trackId);
@@ -841,7 +706,6 @@ function createCompositionOps(get, set) {
841
706
  }
842
707
  });
843
708
  },
844
- /** Move a track from `fromIndex` to `toIndex` within `composition.tracks`. */
845
709
  reorderTracks: (fromIndex, toIndex) => {
846
710
  set((draft) => {
847
711
  const len = draft.composition.tracks.length;
@@ -852,14 +716,6 @@ function createCompositionOps(get, set) {
852
716
  draft.composition.tracks.splice(clamped, 0, moved);
853
717
  });
854
718
  },
855
- /**
856
- * Move a clip to a different track, optionally updating its startTime.
857
- *
858
- * The op trusts callers to validate kind-compatibility and overlap; the
859
- * Fabric drag handler is responsible for snapping back when invalid. No-op
860
- * if the clip isn't found, the target track doesn't exist, or target ===
861
- * source. Selection stays put (the clip id is unchanged).
862
- */
863
719
  moveClipToTrack: (clipId, targetTrackId, newStartTime) => {
864
720
  set((draft) => {
865
721
  let sourceTrack;
@@ -883,11 +739,6 @@ function createCompositionOps(get, set) {
883
739
  target.contents.sort((a, b) => a.startTime - b.startTime);
884
740
  });
885
741
  },
886
- /**
887
- * Duplicate a clip. The copy receives a new id and is appended to the same
888
- * track immediately after the original's `[startTime + duration]` (nudged
889
- * forward to avoid overlap with whatever follows).
890
- */
891
742
  duplicateClip: (id) => {
892
743
  let newId;
893
744
  set((draft) => {
@@ -1063,9 +914,6 @@ function mergeTimelineTranscripts(clips, transcripts) {
1063
914
  timelineStart: clip.startTime + (segment.startTime - trimStart) / rate,
1064
915
  timelineEnd: clip.startTime + (clampedEnd - trimStart) / rate,
1065
916
  clipId: clip.id,
1066
- // The v1 TimelineWord field is named `poolItemId`; v2 calls it
1067
- // `mediaId`. Same semantic — retain v1 name on the wire so the
1068
- // agent context (which reads `word.poolItemId`) keeps working.
1069
917
  poolItemId: mediaId,
1070
918
  sourceStart: segment.startTime,
1071
919
  sourceEnd: clampedEnd,
@@ -0,0 +1,113 @@
1
+ import {
2
+ EntityId,
3
+ ISODateTime,
4
+ NonEmptyString
5
+ } from "./chunk-XELS2BGA.js";
6
+
7
+ // ../data-models/account-model/src/validators/userSettings.ts
8
+ import { z } from "zod";
9
+ var UserSettings = z.object({
10
+ id: EntityId("userSettings"),
11
+ userId: NonEmptyString,
12
+ enableUnderstanding: z.boolean().optional(),
13
+ activeBrandKitId: EntityId("brandKits").optional()
14
+ });
15
+
16
+ // ../data-models/account-model/src/validators/conversation.ts
17
+ import { z as z2 } from "zod";
18
+ var ConversationProject = z2.object({
19
+ id: NonEmptyString,
20
+ home: z2.enum(["local", "cloud"])
21
+ });
22
+ var Conversation = z2.object({
23
+ id: EntityId("conversations"),
24
+ clientId: NonEmptyString,
25
+ userId: NonEmptyString,
26
+ title: NonEmptyString,
27
+ project: ConversationProject.optional(),
28
+ createdAt: ISODateTime,
29
+ updatedAt: ISODateTime,
30
+ messages: z2.string()
31
+ });
32
+
33
+ // ../data-models/account-model/src/validators/uploadToken.ts
34
+ import { z as z3 } from "zod";
35
+ var UploadTokenScope = z3.enum(["tus", "companion"]);
36
+ var UploadToken = z3.object({
37
+ id: EntityId("uploadTokens"),
38
+ token: NonEmptyString,
39
+ userId: NonEmptyString,
40
+ projectId: EntityId("projects").optional(),
41
+ orgId: NonEmptyString.optional(),
42
+ scope: UploadTokenScope.optional(),
43
+ expiresAt: ISODateTime
44
+ });
45
+
46
+ // ../data-models/account-model/src/validators/contextFile.ts
47
+ import { z as z4 } from "zod";
48
+ var ContextFile = z4.object({
49
+ id: EntityId("contextFiles"),
50
+ orgId: NonEmptyString,
51
+ userId: NonEmptyString,
52
+ filename: NonEmptyString,
53
+ content: z4.string(),
54
+ generatedFrom: z4.array(NonEmptyString),
55
+ version: z4.number().int().nonnegative(),
56
+ updatedAt: ISODateTime
57
+ });
58
+
59
+ // ../data-models/account-model/src/validators/dashboardInsight.ts
60
+ import { z as z5 } from "zod";
61
+ var DashboardInsight = z5.object({
62
+ id: EntityId("dashboardInsights"),
63
+ orgId: NonEmptyString,
64
+ sourceHash: NonEmptyString,
65
+ heroInsight: NonEmptyString,
66
+ contentSuggestions: z5.array(NonEmptyString),
67
+ generatedAt: ISODateTime
68
+ });
69
+
70
+ // ../data-models/account-model/src/validators/sessionToken.ts
71
+ import { z as z6 } from "zod";
72
+ var SessionTokenScope = z6.enum(["session-read"]);
73
+ var SessionToken = z6.object({
74
+ id: EntityId("sessionTokens"),
75
+ token: NonEmptyString,
76
+ sessionId: NonEmptyString,
77
+ projectId: EntityId("projects"),
78
+ orgId: NonEmptyString,
79
+ scope: SessionTokenScope,
80
+ expiresAt: ISODateTime,
81
+ sandboxId: NonEmptyString.optional(),
82
+ readyAt: z6.number().optional(),
83
+ scheduledCloseId: NonEmptyString.optional(),
84
+ scratchCompositionId: EntityId("compositions").optional(),
85
+ managed: z6.boolean().optional(),
86
+ leaseJobId: NonEmptyString.optional(),
87
+ leaseExpiresAt: z6.number().optional()
88
+ });
89
+
90
+ // ../data-models/account-model/src/validators/workingComposition.ts
91
+ import { z as z7 } from "zod";
92
+ var WorkingComposition = z7.object({
93
+ id: EntityId("workingCompositions"),
94
+ sessionId: NonEmptyString,
95
+ projectId: EntityId("projects"),
96
+ orgId: NonEmptyString,
97
+ composition: z7.unknown(),
98
+ version: z7.number(),
99
+ updatedAt: z7.number()
100
+ });
101
+
102
+ export {
103
+ UserSettings,
104
+ ConversationProject,
105
+ Conversation,
106
+ UploadTokenScope,
107
+ UploadToken,
108
+ ContextFile,
109
+ DashboardInsight,
110
+ SessionTokenScope,
111
+ SessionToken,
112
+ WorkingComposition
113
+ };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  waitForJob
3
- } from "./chunk-MMEJ3Y7E.js";
3
+ } from "./chunk-SDCEJAO2.js";
4
4
  import {
5
5
  GENERATED_OPERATIONS,
6
6
  apiErrorFrom,
@@ -17,10 +17,10 @@ import {
17
17
  sniffImageMediaType,
18
18
  text,
19
19
  withMedia
20
- } from "./chunk-SIGGQRY2.js";
20
+ } from "./chunk-DL7WYISQ.js";
21
21
  import {
22
22
  CURATED_TOOLS
23
- } from "./chunk-HI4UTTPS.js";
23
+ } from "./chunk-DJW3UGBH.js";
24
24
 
25
25
  // ../mcp/src/prompts.ts
26
26
  var skillListCache = null;
@@ -91,17 +91,17 @@ CLIPPING (find the best short-form moments in a long video): \`suggest_briefs\`
91
91
 
92
92
  Every expensive step has a cheap, inspectable check \u2014 prefer reading a value over rendering and eyeballing:
93
93
  - Framing & timing are data: \`get_media_context\` BEFORE you compose.
94
- - Evidence beats guessing: \`preview_frame\` (whole-composition stills), \`preview_component\` (ONE graphic as a MOTION clip \u2014 the same bake production composites), \`preview_clip\` (a fromSec\u2192toSec window as a watchable MP4, max 60s, capture-priced \u2014 judge a cut or transition at full fidelity WITHOUT paying for a full render). These are STATELESS: nothing to open, warm, or close; concurrent previews do not contend. \`preview_frame\` defaults to the PERSISTED composition and echoes \`previewed.{source, compositionId, etag}\` \u2014 what you saw is what create_render encodes.
94
+ - Evidence beats guessing: \`preview_frame\` (whole-composition stills), \`preview_component\` (ONE authored graphic: \`executionMode:"live"\` returns a PNG image; \`executionMode:"baked"\` returns a transparent VP9 motion clip \u2014 exactly the lane production composites), \`preview_clip\` (a fromSec\u2192toSec window as a watchable MP4, max 60s, capture-priced \u2014 judge a cut or transition at full fidelity WITHOUT paying for a full render). These are STATELESS: nothing to open, warm, or close; concurrent previews do not contend. \`preview_frame\` defaults to the PERSISTED composition and echoes \`previewed.{source, compositionId, etag}\` \u2014 what you saw is what create_render encodes.
95
95
  - Quality is a number: \`score_composition\` returns scores + critique + a checkpointId; the compose result carries the winner's composite. **score vs consult**: score answers "how good IS this" (grounded numbers); \`consult\` answers "what SHOULD I change" (advice + an adoptable fix via \`select_candidate\`).
96
96
 
97
97
  ## Async model
98
98
 
99
99
  Every long job is either polled or pushed \u2014 never guessed:
100
- - \`wait_job\` kinds: \`render\`, \`compose\`, \`suggestions\`, \`verify\` (score jobs), \`preview\` (component clips), \`brand_kit_extract\`, \`consult\`. It blocks up to its window and returns a CONTINUATION when still running \u2014 re-call it.
100
+ - \`wait_job\` kinds: \`media\` (imports/generation), \`render\`, \`compose\`, \`suggestions\`, \`verify\` (score jobs), \`preview_frame\` (composition stills), \`preview\` (component image-or-motion previews), \`brand_kit_extract\`, \`consult\`. It blocks up to its window and returns a CONTINUATION when still running \u2014 re-call it.
101
101
  - Webhooks (\`create_webhook\`): ONE terminal event per kind with status INSIDE the payload \u2014 \`render.completed\`, \`compose.completed\`, \`media.completed\`, \`suggest.completed\` \u2014 plus \`checkpoint.ready\` (a held compose paused for review). Read \`cueframe://webhook-events\` for the full contract before building a receiver.
102
102
  - Presigned URLs (stills, clips, render outputs) expire \u2014 render outputs last ~7 days (refresh via the render's refresh-url op); preview stills/clips ~1 hour. Re-read for a fresh link instead of caching one.
103
103
 
104
- CUSTOM GRAPHICS \u2014 author or FORK: \`create_component\` (tsxSource) from scratch, or \`get_component_source\` on a built-in primitive (e.g. \`cinematic-title\`) to fork its editable module. Iterate author\u2192preview\u2192fix with \`preview_component\` (202 + jobId; \`wait_job(kind:"preview")\` returns the clip URL \u2014 a compile failure lands on the job's FAILED terminal carrying the sanitized compiler error) \u2192 fix via \`update_component\` \u2192 preview again. Place it via \`apply_composition\` as an \`alpha-layer\` clip \u2014 the shared renderer never runs your code (it bakes to transparent video first).
104
+ CUSTOM GRAPHICS \u2014 author or FORK: \`create_component\` (tsxSource) from scratch, or \`get_component_source\` on a built-in primitive (e.g. \`cinematic-title\`) to fork its editable module. Iterate author\u2192preview\u2192fix with \`preview_component\` (202 + jobId; \`wait_job(kind:"preview")\` returns a PNG image for \`executionMode:"live"\` or a VP9 motion URL for \`executionMode:"baked"\`; a compile failure lands on the job's FAILED terminal carrying the sanitized compiler error) \u2192 fix via \`update_component\` \u2192 preview again. Place baked components via \`apply_composition\` as an \`alpha-layer\` clip \u2014 the shared renderer never runs authored source code (it composites the transparent baked video).
105
105
 
106
106
  Cleanup: \`delete_project\` / \`delete_media\` / \`delete_webhook\` / \`delete_composition\`. \`list_projects\` re-orients you in an existing workspace; \`list_media\` (filter by \`source\`/\`tag\`) lists the library.
107
107
 
@@ -436,12 +436,16 @@ function registerCuratedTools(server, ex, opts) {
436
436
  for (const friendly of Object.keys(spec.pathArgs ?? {})) {
437
437
  inputSchema[friendly] = z.string().describe(`${friendly} (path).`);
438
438
  }
439
+ for (const [queryArg, description] of Object.entries(spec.queryArgs ?? {})) {
440
+ inputSchema[queryArg] = z.string().optional().describe(description);
441
+ }
439
442
  const bodySchema = bodySchemaFor(op);
440
443
  if (bodySchema) inputSchema.body = bodySchema;
441
444
  const annotations = { ...op.annotations, ...spec.annotations };
442
445
  server.registerTool(spec.name, { title: spec.title ?? titleCase(spec.name), description: spec.description, inputSchema, annotations }, async (args, extra) => timed(opts?.onEvent, spec.name, async (report) => {
443
446
  const a = args;
444
447
  try {
448
+ const query = Object.keys(spec.queryArgs ?? {}).filter((name) => a[name] !== void 0 && a[name] !== null && a[name] !== "").map((name) => `${encodeURIComponent(name)}=${encodeURIComponent(String(a[name]))}`).join("&");
445
449
  return await dispatchOp(ex, op, (p) => a[reverse[p]], a.body, extra, spec.name, async (res) => {
446
450
  if (spec.okText) return text(spec.okText(a));
447
451
  const json = res.text ? safeParse(res.text) : void 0;
@@ -454,17 +458,17 @@ function registerCuratedTools(server, ex, opts) {
454
458
  if (data.length) return withMedia(payload, data.map((d) => ({ data: d, kind })));
455
459
  }
456
460
  return text(payload);
457
- });
461
+ }, query || void 0);
458
462
  } catch (err) {
459
463
  return errText(`${spec.name} failed: ${fmtErr(err)}`);
460
464
  }
461
465
  }));
462
466
  }
463
467
  registerWaitJob(server, ex, opts?.waitCapMs, opts?.onEvent);
464
- registerPreviewCard(server, ex, opts?.onEvent);
468
+ registerPreviewCard(server, ex, opts?.waitCapMs, opts?.onEvent);
465
469
  }
466
- function registerPreviewCard(server, ex, onEvent) {
467
- const op = opById("previewFrame");
470
+ function registerPreviewCard(server, ex, waitCapMs, onEvent) {
471
+ const op = opById("previewFrameJob");
468
472
  server.registerTool(
469
473
  "preview_card",
470
474
  {
@@ -476,9 +480,6 @@ function registerPreviewCard(server, ex, onEvent) {
476
480
  tokens: z.record(z.string()).optional().describe("Token substitutions the html references (e.g. brand colours, fonts). Same shape as the clip source `tokens`."),
477
481
  aspectRatio: z.enum(["16:9", "9:16", "1:1", "4:5"]).optional().describe("Frame to size the card into. Default 9:16 \u2014 a card that fits 16:9 often overflows vertical.")
478
482
  },
479
- // Renders inline and persists nothing — the read-only stance curation.ts
480
- // already takes for preview_frame. Stated in full: an omitted hint is not
481
- // neutral (destructiveHint/openWorldHint default TRUE in the schema).
482
483
  annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false }
483
484
  },
484
485
  async (args, extra) => timed(onEvent, "preview_card", async (report) => {
@@ -511,12 +512,19 @@ function registerPreviewCard(server, ex, onEvent) {
511
512
  "preview_card",
512
513
  async (res) => {
513
514
  const json = res.text ? safeParse(res.text) : void 0;
514
- const urls = (Array.isArray(json?.stills) ? json.stills : []).map(
515
- (st) => st?.url
516
- );
515
+ const jobId = json?.jobId;
516
+ if (typeof jobId !== "string" || !jobId) {
517
+ return errText("preview_card enqueue returned no jobId");
518
+ }
519
+ const waitMs = Math.min(waitCapMs ?? 3e4, 3e4);
520
+ const done = await waitForJob(ex, "preview_frame", jobId, void 0, Date.now() + waitMs);
521
+ if (!done.ok) return errText(done.text);
522
+ if (done.stillRunning) return text(`${done.text}
523
+ jobId: ${jobId}`);
524
+ const urls = done.mediaUrls ?? [];
517
525
  const data = await fetchPreviews(urls, 2);
518
526
  report({ preview: { urls: urls.filter(Boolean).length, fetched: data.length } });
519
- const payload = res.text || `previewed card (${a.aspectRatio ?? "9:16"})`;
527
+ const payload = done.text || `previewed card (${a.aspectRatio ?? "9:16"})`;
520
528
  return data.length ? withMedia(payload, data.map((d) => ({ data: d, kind: "image" }))) : text(payload);
521
529
  }
522
530
  );
@@ -531,13 +539,11 @@ function registerWaitJob(server, ex, waitCapMs, onEvent) {
531
539
  "wait_job",
532
540
  {
533
541
  title: "Wait for Job",
534
- // Polls status; changes nothing. Idempotent by construction — the whole
535
- // continuation contract is "call again with the same arguments".
536
542
  annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
537
- description: "Wait for a long-running job and return the resolved result \u2014 a BOUNDED long-poll. Polls the job status (render / compose / consult / clip-suggestions / verify) and blocks up to the transport window (30s on the hosted transport); if the job is still running at the window it returns a `Still running` continuation \u2014 call wait_job again with the same arguments to keep waiting (the job keeps executing server-side; nothing is lost between calls). Call this right after compose / create_render / consult / suggest_briefs / score_composition / preview_component. For event-driven fan-out, create_webhook delivers the terminal instead.",
543
+ description: "Wait for a long-running job and return the resolved result \u2014 a BOUNDED long-poll. Polls job status (media import/generation / render / compose / consult / clip-suggestions / verify / preview-frame) and blocks up to the transport window (30s on the hosted transport); if still running, it returns a continuation \u2014 call wait_job again with the same arguments (the job keeps executing server-side). Call this after import_media / generate_media / finalize_upload / import_resource / compose / create_render / consult / suggest_briefs / score_composition / preview_frame / preview_component. For event-driven fan-out, create_webhook delivers the terminal instead.",
538
544
  inputSchema: {
539
- kind: z.enum(["render", "suggestions", "compose", "verify", "preview", "brand_kit_extract", "consult"]).describe("What to wait on: a render job, a compose job, a consult advisory, AI clip-suggestion analysis, or a generic async job (verify / preview / brand-kit extract \u2014 the kind is named in the enqueue receipt)."),
540
- id: z.string().describe('kind="render": renderId. kind="compose": composeJobId. kind="consult": the consultJobId from the consult receipt (surfaces the advisory envelope \u2014 assessment, proposals, principles). kind="suggestions": mediaItemId. kind="verify"/"preview"/"brand_kit_extract": the jobId from the enqueue receipt.'),
545
+ kind: z.enum(["media", "render", "suggestions", "compose", "verify", "preview_frame", "preview", "brand_kit_extract", "consult"]).describe("What to wait on: media ingest/generation, render, compose, consult, clip-suggestion analysis, or a generic async job (verify / preview_frame / preview / brand-kit extract \u2014 use the enqueue receipt kind)."),
546
+ id: z.string().describe('kind="media": mediaItemId returned by import/generate/finalize/import_resource. kind="render": renderId. kind="compose": composeJobId. kind="consult": consultJobId. kind="suggestions": mediaItemId. Generic kinds use the jobId from the enqueue receipt.'),
541
547
  projectId: z.string().optional().describe('Required when kind="render", "compose", or "consult".'),
542
548
  timeoutMs: z.number().int().min(1e3).max(30 * 60 * 1e3).optional().describe("Maximum wait in ms (default 30 min for render/compose, 5 min for suggestions).")
543
549
  }
@@ -547,7 +553,7 @@ function registerWaitJob(server, ex, waitCapMs, onEvent) {
547
553
  if ((kind === "render" || kind === "compose" || kind === "consult") && !args.projectId) {
548
554
  return errText(`wait_job(kind="${kind}") requires a projectId.`);
549
555
  }
550
- const defaultCap = kind === "suggestions" ? 5 * 60 * 1e3 : 30 * 60 * 1e3;
556
+ const defaultCap = kind === "suggestions" || kind === "media" ? 5 * 60 * 1e3 : 30 * 60 * 1e3;
551
557
  const requested = args.timeoutMs ?? defaultCap;
552
558
  const deadline = Date.now() + (waitCapMs ? Math.min(requested, waitCapMs) : requested);
553
559
  const res = await waitForJob(ex, kind, args.id, args.projectId, deadline);
@@ -583,9 +589,6 @@ function registerBurnedTombstones(server, onEvent) {
583
589
  {
584
590
  title: `${titleCase(b.name)} (retired)`,
585
591
  description: `RETIRED (2026-07 verb cutover) \u2014 use ${b.replacement}. ${b.reason}`,
586
- // A tombstone only ever throws. Announcing it as read-only and
587
- // closed-world keeps a stale agent from being made to confirm a
588
- // "destructive" call that does nothing (schema defaults both to true).
589
592
  annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false }
590
593
  },
591
594
  async () => timed(onEvent, b.name, async () => errText(burnedNameError(b)))