@tangle-network/agent-app 0.45.53 → 0.45.55

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 (480) hide show
  1. package/README.md +1 -1
  2. package/dist/alerting/index.d.ts +5 -175
  3. package/dist/alerting/slack.d.ts +176 -0
  4. package/dist/app-auth/index.d.ts +14 -17
  5. package/dist/assets/index.d.ts +2 -504
  6. package/dist/assets/schema.d.ts +264 -0
  7. package/dist/assets/types.d.ts +237 -0
  8. package/dist/assistant/AssistantDock.d.ts +56 -0
  9. package/dist/assistant/AssistantHistory.d.ts +41 -0
  10. package/dist/assistant/AssistantPanel.d.ts +84 -0
  11. package/dist/assistant/ProposalCard.d.ts +41 -0
  12. package/dist/assistant/ResizeHandle.d.ts +19 -0
  13. package/dist/assistant/client-context.d.ts +20 -0
  14. package/dist/assistant/client.d.ts +117 -0
  15. package/dist/assistant/index.d.ts +19 -848
  16. package/dist/assistant/launcher.d.ts +23 -0
  17. package/dist/assistant/persistence.d.ts +26 -0
  18. package/dist/assistant/presentation.d.ts +99 -0
  19. package/dist/assistant/provider-label.d.ts +7 -0
  20. package/dist/assistant/reducer.d.ts +130 -0
  21. package/dist/assistant/sse.d.ts +24 -0
  22. package/dist/assistant/time-ago.d.ts +6 -0
  23. package/dist/assistant/transcript.d.ts +97 -0
  24. package/dist/assistant/types.d.ts +291 -0
  25. package/dist/assistant/use-stick-to-bottom.d.ts +28 -0
  26. package/dist/assistant/useAssistantChat.d.ts +63 -0
  27. package/dist/assistant/useAssistantModels.d.ts +22 -0
  28. package/dist/assistant/useAssistantThreads.d.ts +47 -0
  29. package/dist/assistant/usePanelPrefs.d.ts +55 -0
  30. package/dist/billing/index.d.ts +19 -21
  31. package/dist/brand/index.d.ts +16 -10
  32. package/dist/brand-extraction/extract.d.ts +34 -0
  33. package/dist/brand-extraction/index.d.ts +12 -214
  34. package/dist/brand-extraction/map.d.ts +58 -0
  35. package/dist/brand-extraction/types.d.ts +119 -0
  36. package/dist/catalog/index.d.ts +11 -101
  37. package/dist/chat-react/composer-mode-controls.d.ts +14 -0
  38. package/dist/chat-react/entry-composer.d.ts +92 -0
  39. package/dist/chat-react/index.d.ts +22 -118
  40. package/dist/chat-react/types.d.ts +11 -0
  41. package/dist/chat-routes/attachment-store.d.ts +84 -0
  42. package/dist/chat-routes/attachment-upload.d.ts +84 -0
  43. package/dist/chat-routes/attachment-validation.d.ts +95 -0
  44. package/dist/chat-routes/binary-sniff.d.ts +45 -0
  45. package/dist/chat-routes/completed-sandbox-turn.d.ts +25 -0
  46. package/dist/chat-routes/detached-turn.d.ts +197 -0
  47. package/dist/chat-routes/dispatch-parts.d.ts +101 -0
  48. package/dist/chat-routes/draft-persistence.d.ts +189 -0
  49. package/dist/chat-routes/durable-projection.d.ts +18 -0
  50. package/dist/chat-routes/file-index.d.ts +115 -0
  51. package/dist/chat-routes/index.d.ts +25 -1840
  52. package/dist/chat-routes/model-failover-stream.d.ts +206 -0
  53. package/dist/chat-routes/promote-file-part.d.ts +84 -0
  54. package/dist/chat-routes/resolve-attachments.d.ts +72 -0
  55. package/dist/chat-routes/sandbox-producer.d.ts +146 -0
  56. package/dist/chat-routes/sandbox-turn-usage.d.ts +4 -0
  57. package/dist/{stale-turn-lock-DucQzvXu.d.ts → chat-routes/stale-turn-lock.d.ts} +7 -9
  58. package/dist/chat-routes/turn-routes.d.ts +540 -0
  59. package/dist/chat-routes/upload.d.ts +84 -0
  60. package/dist/{wire-DOZ-O6hD.d.ts → chat-routes/wire.d.ts} +41 -44
  61. package/dist/chat-store/core.d.ts +19 -0
  62. package/dist/chat-store/index.d.ts +22 -322
  63. package/dist/{parts-BqIHMdyu.d.ts → chat-store/parts.d.ts} +49 -47
  64. package/dist/chat-store/schema.d.ts +157 -0
  65. package/dist/chat-store/store.d.ts +177 -0
  66. package/dist/config/index.d.ts +13 -18
  67. package/dist/crypto/index.d.ts +10 -12
  68. package/dist/crypto/web-token.d.ts +22 -0
  69. package/dist/design-canvas/apply.d.ts +70 -0
  70. package/dist/design-canvas/drizzle-store.d.ts +29 -0
  71. package/dist/design-canvas/drizzle.d.ts +7 -575
  72. package/dist/{export-presets-mgVulRaV.d.ts → design-canvas/export-presets.d.ts} +18 -22
  73. package/dist/design-canvas/index.d.ts +22 -268
  74. package/dist/design-canvas/mcp-entry.d.ts +15 -0
  75. package/dist/design-canvas/mcp-handler.d.ts +34 -0
  76. package/dist/design-canvas/mcp-tools.d.ts +30 -0
  77. package/dist/{model-DnfO_PdJ.d.ts → design-canvas/model.d.ts} +33 -35
  78. package/dist/{operations-ByJ6yXOW.d.ts → design-canvas/operations.d.ts} +21 -25
  79. package/dist/design-canvas/schema.d.ts +558 -0
  80. package/dist/{store-CqfDtnPQ.d.ts → design-canvas/store.d.ts} +8 -12
  81. package/dist/design-canvas/templates.d.ts +72 -0
  82. package/dist/design-canvas/validate.d.ts +32 -0
  83. package/dist/design-canvas-react/components/BleedTrimOverlay.d.ts +22 -0
  84. package/dist/design-canvas-react/components/BrandKnot.d.ts +11 -0
  85. package/dist/design-canvas-react/components/CanvasEmptyState.d.ts +32 -0
  86. package/dist/design-canvas-react/components/CanvasInsertPanel.d.ts +53 -0
  87. package/dist/{lazy-DrkVyDpe.d.ts → design-canvas-react/components/DesignCanvas.d.ts} +27 -20
  88. package/dist/design-canvas-react/components/DesignCanvasEditor.d.ts +23 -0
  89. package/dist/design-canvas-react/components/ElementNode.d.ts +51 -0
  90. package/dist/design-canvas-react/components/ExportControl.d.ts +21 -0
  91. package/dist/design-canvas-react/components/GridLayer.d.ts +47 -0
  92. package/dist/design-canvas-react/components/InlineTextEditor.d.ts +25 -0
  93. package/dist/design-canvas-react/components/LayersPanel.d.ts +20 -0
  94. package/dist/design-canvas-react/components/PagesStrip.d.ts +34 -0
  95. package/dist/design-canvas-react/components/Rulers.d.ts +31 -0
  96. package/dist/design-canvas-react/components/SelectionLayer.d.ts +51 -0
  97. package/dist/design-canvas-react/components/SnapGuidesOverlay.d.ts +25 -0
  98. package/dist/design-canvas-react/components/Toolbar.d.ts +64 -0
  99. package/dist/design-canvas-react/components/Workspace.d.ts +92 -0
  100. package/dist/design-canvas-react/components/ZoomControls.d.ts +14 -0
  101. package/dist/design-canvas-react/components/glyphs.d.ts +46 -0
  102. package/dist/design-canvas-react/components/icon-button.d.ts +22 -0
  103. package/dist/design-canvas-react/components/index.d.ts +27 -0
  104. package/dist/design-canvas-react/components/layer-tree.d.ts +34 -0
  105. package/dist/design-canvas-react/components/ruler-math.d.ts +78 -0
  106. package/dist/design-canvas-react/components/transform-math.d.ts +168 -0
  107. package/dist/{command-stack-TNPWJCzW.d.ts → design-canvas-react/contracts.d.ts} +16 -63
  108. package/dist/design-canvas-react/engine/command-stack.d.ts +43 -0
  109. package/dist/design-canvas-react/engine/commands.d.ts +154 -0
  110. package/dist/design-canvas-react/engine/selection.d.ts +48 -0
  111. package/dist/design-canvas-react/engine/snap.d.ts +24 -0
  112. package/dist/design-canvas-react/engine/zoom-pan.d.ts +18 -0
  113. package/dist/design-canvas-react/engine.d.ts +21 -399
  114. package/dist/design-canvas-react/export-math.d.ts +104 -0
  115. package/dist/design-canvas-react/export.d.ts +89 -0
  116. package/dist/design-canvas-react/index.d.ts +16 -586
  117. package/dist/design-canvas-react/insert-builders.d.ts +61 -0
  118. package/dist/design-canvas-react/lazy.d.ts +21 -6
  119. package/dist/documents/docx.d.ts +50 -0
  120. package/dist/documents/extract.d.ts +87 -0
  121. package/dist/documents/index.d.ts +26 -232
  122. package/dist/documents/media-type.d.ts +33 -0
  123. package/dist/documents/pdf-inspector.d.ts +5 -9
  124. package/dist/{types-DrBidf3O.d.ts → documents/types.d.ts} +13 -15
  125. package/dist/documents/zip.d.ts +56 -0
  126. package/dist/eval/calibration.d.ts +106 -0
  127. package/dist/eval/index.d.ts +8 -116
  128. package/dist/eval-campaign/index.d.ts +11 -12
  129. package/dist/{trust-gate-Dcm5xSva.d.ts → eval-campaign/trust-gate.d.ts} +5 -9
  130. package/dist/forms/blank.d.ts +48 -0
  131. package/dist/forms/fill.d.ts +105 -0
  132. package/dist/forms/index.d.ts +58 -332
  133. package/dist/forms/registry.d.ts +115 -0
  134. package/dist/forms/verify.d.ts +58 -0
  135. package/dist/harness/index.d.ts +21 -19
  136. package/dist/intakes/api.d.ts +5 -11
  137. package/dist/{completion-CvcNUz07.d.ts → intakes/completion.d.ts} +7 -11
  138. package/dist/intakes/context-sufficiency.d.ts +113 -0
  139. package/dist/intakes/drizzle/schema.d.ts +338 -0
  140. package/dist/intakes/drizzle/store.d.ts +75 -0
  141. package/dist/intakes/drizzle.d.ts +12 -391
  142. package/dist/intakes/index.d.ts +23 -113
  143. package/dist/{model-C8U0HZxL.d.ts → intakes/model.d.ts} +15 -17
  144. package/dist/intakes-react/components/BrandMark.d.ts +10 -0
  145. package/dist/intakes-react/components/IntakeInterview.d.ts +15 -0
  146. package/dist/intakes-react/components/index.d.ts +1 -0
  147. package/dist/intakes-react/contracts.d.ts +42 -0
  148. package/dist/intakes-react/index.d.ts +12 -47
  149. package/dist/intakes-react/lazy.d.ts +9 -8
  150. package/dist/integrations/index.d.ts +10 -12
  151. package/dist/{contract-OxG_jVMx.d.ts → interactions/contract.d.ts} +40 -42
  152. package/dist/interactions/index.d.ts +16 -256
  153. package/dist/interactions/route.d.ts +151 -0
  154. package/dist/interactions/sidecar.d.ts +100 -0
  155. package/dist/knowledge/index.d.ts +7 -11
  156. package/dist/knowledge-loop/index.d.ts +13 -20
  157. package/dist/legibility/checks/empty-state.d.ts +59 -0
  158. package/dist/legibility/checks/reachability.d.ts +103 -0
  159. package/dist/legibility/checks/silent-failure.d.ts +57 -0
  160. package/dist/legibility/checks/success.d.ts +38 -0
  161. package/dist/legibility/checks/vocabulary.d.ts +65 -0
  162. package/dist/legibility/cli-args.d.ts +30 -0
  163. package/dist/legibility/cli.d.ts +25 -0
  164. package/dist/legibility/index.d.ts +10 -530
  165. package/dist/legibility/report.d.ts +22 -0
  166. package/dist/legibility/scan.d.ts +29 -0
  167. package/dist/legibility/source.d.ts +132 -0
  168. package/dist/legibility/suppress.d.ts +36 -0
  169. package/dist/legibility/types.d.ts +168 -0
  170. package/dist/legibility/walk-sources.d.ts +21 -0
  171. package/dist/{agent-activity-C8ZG0F0M.d.ts → missions/agent-activity.d.ts} +3 -5
  172. package/dist/missions/engine.d.ts +251 -0
  173. package/dist/missions/events.d.ts +195 -0
  174. package/dist/missions/index.d.ts +12 -765
  175. package/dist/missions/plan-parse.d.ts +50 -0
  176. package/dist/missions/service.d.ts +265 -0
  177. package/dist/{failover-D-3UXXTb.d.ts → model-resolution/failover.d.ts} +10 -12
  178. package/dist/model-resolution/index.d.ts +15 -18
  179. package/dist/object-store/index.d.ts +15 -17
  180. package/dist/openui/action.d.ts +54 -0
  181. package/dist/openui/authoring.d.ts +25 -0
  182. package/dist/openui/index.d.ts +24 -206
  183. package/dist/openui/route.d.ts +124 -0
  184. package/dist/openui/segments.d.ts +71 -0
  185. package/dist/openui/values.d.ts +82 -0
  186. package/dist/openui-react/index.d.ts +9 -13
  187. package/dist/peer-floors/check.d.ts +9 -190
  188. package/dist/peer-floors/cli.d.ts +2 -3
  189. package/dist/peer-floors/dependency-source.d.ts +178 -0
  190. package/dist/plans/index.d.ts +13 -14
  191. package/dist/{billing-BuNlaKlE.d.ts → platform/billing.d.ts} +28 -32
  192. package/dist/platform/guards.d.ts +79 -0
  193. package/dist/platform/hub.d.ts +107 -0
  194. package/dist/platform/index.d.ts +7 -112
  195. package/dist/{sso-Cm00S61u.d.ts → platform/sso.d.ts} +15 -97
  196. package/dist/preflight/cli.d.ts +3 -6
  197. package/dist/preflight/index.d.ts +16 -18
  198. package/dist/preset-cloudflare/headers.d.ts +12 -0
  199. package/dist/preset-cloudflare/index.d.ts +22 -74
  200. package/dist/preset-cloudflare/workflow-instance.d.ts +35 -0
  201. package/dist/profile/budget.d.ts +72 -0
  202. package/dist/profile/fingerprint.d.ts +65 -0
  203. package/dist/profile/index.d.ts +27 -19
  204. package/dist/prompt/index.d.ts +3 -5
  205. package/dist/record/drizzle/schema.d.ts +488 -0
  206. package/dist/record/drizzle/store.d.ts +224 -0
  207. package/dist/record/drizzle.d.ts +10 -679
  208. package/dist/record/fold.d.ts +99 -0
  209. package/dist/record/index.d.ts +13 -13
  210. package/dist/{fold-DACU7gtf.d.ts → record/model.d.ts} +22 -124
  211. package/dist/record/ulid.d.ts +12 -0
  212. package/dist/redact/index.d.ts +14 -16
  213. package/dist/run/index.d.ts +11 -16
  214. package/dist/runtime/agent.d.ts +23 -0
  215. package/dist/runtime/certified-delivery.d.ts +57 -0
  216. package/dist/runtime/index.d.ts +17 -367
  217. package/dist/runtime/loop.d.ts +58 -0
  218. package/dist/runtime/model-catalog.d.ts +103 -0
  219. package/dist/{model-CdCDfBA9.d.ts → runtime/model.d.ts} +25 -27
  220. package/dist/runtime/openai-stream.d.ts +126 -0
  221. package/dist/runtime/surface-profile.d.ts +115 -0
  222. package/dist/sandbox/binary-read.d.ts +63 -0
  223. package/dist/sandbox/diagnostics.d.ts +69 -0
  224. package/dist/sandbox/index.d.ts +103 -1085
  225. package/dist/sandbox/model.d.ts +179 -0
  226. package/dist/sandbox/outcome.d.ts +10 -0
  227. package/dist/sandbox/prewarm-claim-d1.d.ts +80 -0
  228. package/dist/sandbox/prewarm.d.ts +193 -0
  229. package/dist/sandbox/recovery.d.ts +216 -0
  230. package/dist/sandbox/terminal-connection.d.ts +145 -0
  231. package/dist/sandbox/workspace-sandbox-manager.d.ts +44 -0
  232. package/dist/sequences/apply.d.ts +54 -0
  233. package/dist/sequences/captions.d.ts +91 -0
  234. package/dist/sequences/drizzle-store.d.ts +36 -0
  235. package/dist/sequences/drizzle.d.ts +7 -1252
  236. package/dist/sequences/exports.d.ts +138 -0
  237. package/dist/sequences/index.d.ts +19 -340
  238. package/dist/sequences/mcp-entry.d.ts +15 -0
  239. package/dist/sequences/mcp-handler.d.ts +39 -0
  240. package/dist/sequences/mcp-tools.d.ts +47 -0
  241. package/dist/{store-B7LLlk9p.d.ts → sequences/model.d.ts} +26 -110
  242. package/dist/sequences/operations.d.ts +126 -0
  243. package/dist/sequences/schema.d.ts +1231 -0
  244. package/dist/sequences/store.d.ts +81 -0
  245. package/dist/sequences/validate.d.ts +98 -0
  246. package/dist/sequences-react/components/BrandMark.d.ts +10 -0
  247. package/dist/sequences-react/components/PreviewCanvas.d.ts +26 -0
  248. package/dist/sequences-react/components/SnapIndicatorLine.d.ts +11 -0
  249. package/dist/sequences-react/components/TimelineClipChip.d.ts +80 -0
  250. package/dist/sequences-react/components/TimelineEditor.d.ts +44 -0
  251. package/dist/sequences-react/components/TimelineEmptyState.d.ts +21 -0
  252. package/dist/sequences-react/components/TimelineGhostLanes.d.ts +14 -0
  253. package/dist/sequences-react/components/TimelinePlayhead.d.ts +11 -0
  254. package/dist/sequences-react/components/TimelineRuler.d.ts +16 -0
  255. package/dist/sequences-react/components/TimelineSmallScreenGate.d.ts +12 -0
  256. package/dist/sequences-react/components/TimelineTrackRow.d.ts +51 -0
  257. package/dist/sequences-react/components/ZoomControl.d.ts +15 -0
  258. package/dist/sequences-react/components/composite-command.d.ts +8 -0
  259. package/dist/sequences-react/components/glyphs.d.ts +26 -0
  260. package/dist/sequences-react/components/index.d.ts +31 -0
  261. package/dist/sequences-react/components/interaction-math.d.ts +103 -0
  262. package/dist/sequences-react/contracts.d.ts +187 -0
  263. package/dist/sequences-react/engine/command-stack.d.ts +18 -0
  264. package/dist/sequences-react/engine/commands.d.ts +146 -0
  265. package/dist/sequences-react/engine/playback.d.ts +18 -0
  266. package/dist/sequences-react/engine/snap.d.ts +29 -0
  267. package/dist/sequences-react/engine/zoom.d.ts +29 -0
  268. package/dist/sequences-react/index.d.ts +20 -880
  269. package/dist/sequences-react/lazy.d.ts +8 -0
  270. package/dist/sequences-react/media/frame-provider.d.ts +70 -0
  271. package/dist/sequences-react/media/transcription.d.ts +33 -0
  272. package/dist/sequences-react/media/waveform.d.ts +34 -0
  273. package/dist/session-shell/index.d.ts +31 -204
  274. package/dist/session-shell/nav-guard.d.ts +170 -0
  275. package/dist/session-shell/path.d.ts +19 -0
  276. package/dist/signoff/cli.d.ts +4 -7
  277. package/dist/signoff/config.d.ts +12 -0
  278. package/dist/signoff/exec.d.ts +44 -0
  279. package/dist/signoff/index.d.ts +56 -14
  280. package/dist/signoff/invoked-as-script.d.ts +25 -0
  281. package/dist/signoff/node-version.d.ts +50 -0
  282. package/dist/signoff/proof-attach.d.ts +88 -0
  283. package/dist/signoff/proof-cli.d.ts +1 -0
  284. package/dist/signoff/proof-fixture.d.ts +13 -0
  285. package/dist/signoff/proof-from-report.d.ts +22 -0
  286. package/dist/signoff/proof-git.d.ts +57 -0
  287. package/dist/signoff/proof-record.d.ts +202 -0
  288. package/dist/signoff/proof-verify.d.ts +103 -0
  289. package/dist/signoff/proof.d.ts +35 -310
  290. package/dist/signoff/report.d.ts +7 -0
  291. package/dist/{run-D80hoLKh.d.ts → signoff/run.d.ts} +3 -6
  292. package/dist/signoff/schedule.d.ts +55 -0
  293. package/dist/signoff/seeds.d.ts +50 -0
  294. package/dist/signoff/store.d.ts +22 -0
  295. package/dist/{types-Bd6uW9vQ.d.ts → signoff/types.d.ts} +15 -17
  296. package/dist/signoff/workflow-pin.d.ts +56 -0
  297. package/dist/signoff/workspace.d.ts +40 -0
  298. package/dist/skills/index.d.ts +28 -32
  299. package/dist/skills-placement/index.d.ts +7 -11
  300. package/dist/spend/budget.d.ts +123 -0
  301. package/dist/spend/ceiling.d.ts +51 -0
  302. package/dist/spend/cli-args.d.ts +20 -0
  303. package/dist/spend/cli.d.ts +1 -0
  304. package/dist/spend/fixtures/incident-parked-time.d.ts +55 -0
  305. package/dist/spend/index.d.ts +38 -1144
  306. package/dist/spend/liveness.d.ts +131 -0
  307. package/dist/spend/ownership.d.ts +87 -0
  308. package/dist/spend/reconcile.d.ts +109 -0
  309. package/dist/spend/reference.d.ts +42 -0
  310. package/dist/spend/report.d.ts +12 -0
  311. package/dist/spend/store.d.ts +123 -0
  312. package/dist/spend/types.d.ts +466 -0
  313. package/dist/store/index.d.ts +10 -12
  314. package/dist/stories/app-shell/fixtures.d.ts +43 -0
  315. package/dist/stories/app-shell/shell.d.ts +81 -0
  316. package/dist/stories/assistant/fixtures.d.ts +73 -0
  317. package/dist/stories/chat/fixtures.d.ts +70 -0
  318. package/dist/stories/chat/markdown.d.ts +11 -0
  319. package/dist/stories/chat/run-drill-in.d.ts +19 -0
  320. package/dist/stories/chat-controls/fixtures.d.ts +116 -0
  321. package/dist/stories/design-canvas/fixtures.d.ts +57 -0
  322. package/dist/stories/fixtures/canvas.d.ts +10 -0
  323. package/dist/stories/fixtures/catalog.d.ts +7 -0
  324. package/dist/stories/fixtures/chat.d.ts +39 -0
  325. package/dist/stories/fixtures/index.d.ts +4 -0
  326. package/dist/stories/fixtures/sequences.d.ts +17 -0
  327. package/dist/stories/panels/fixtures.d.ts +63 -0
  328. package/dist/stories/sequences/fixtures.d.ts +30 -0
  329. package/dist/stories/studio/fixtures.d.ts +22 -0
  330. package/dist/stream/index.d.ts +10 -56
  331. package/dist/{stream-normalizer-DKRxyVlZ.d.ts → stream/stream-normalizer.d.ts} +23 -26
  332. package/dist/{turn-buffer-COMQUwO2.d.ts → stream/turn-buffer.d.ts} +21 -23
  333. package/dist/stream/turn-identity.d.ts +49 -0
  334. package/dist/studio/generation.d.ts +179 -0
  335. package/dist/studio/index.d.ts +12 -181
  336. package/dist/studio-react/avatar-composer.d.ts +8 -0
  337. package/dist/studio-react/composer-hero.d.ts +12 -0
  338. package/dist/studio-react/composer-shell.d.ts +18 -0
  339. package/dist/studio-react/generation-card.d.ts +9 -0
  340. package/dist/studio-react/generation-detail-modal.d.ts +11 -0
  341. package/dist/studio-react/generation-detail.d.ts +6 -0
  342. package/dist/studio-react/generation-grid.d.ts +15 -0
  343. package/dist/studio-react/image-composer.d.ts +8 -0
  344. package/dist/studio-react/index.d.ts +32 -245
  345. package/dist/studio-react/library-drawer.d.ts +12 -0
  346. package/dist/studio-react/library-panel.d.ts +15 -0
  347. package/dist/studio-react/publish-package-composer.d.ts +18 -0
  348. package/dist/studio-react/result-canvas.d.ts +6 -0
  349. package/dist/studio-react/speech-composer.d.ts +4 -0
  350. package/dist/studio-react/studio-header.d.ts +5 -0
  351. package/dist/studio-react/studio-sheet.d.ts +12 -0
  352. package/dist/studio-react/studio-workspace.d.ts +23 -0
  353. package/dist/studio-react/transcription-composer.d.ts +12 -0
  354. package/dist/studio-react/type-config.d.ts +11 -0
  355. package/dist/studio-react/use-studio-generations.d.ts +20 -0
  356. package/dist/studio-react/video-composer.d.ts +10 -0
  357. package/dist/tangle/index.d.ts +7 -9
  358. package/dist/teams/drizzle/access.d.ts +82 -0
  359. package/dist/{invitations-schema-_fI7HkJP.d.ts → teams/drizzle/invitations-schema.d.ts} +39 -27
  360. package/dist/teams/drizzle/personal-organization.d.ts +41 -0
  361. package/dist/{access-490O6aOU.d.ts → teams/drizzle/schema.d.ts} +57 -122
  362. package/dist/teams/drizzle.d.ts +12 -44
  363. package/dist/teams/index.d.ts +20 -44
  364. package/dist/teams/invitations-api.d.ts +17 -21
  365. package/dist/{invitations-DoYMvXea.d.ts → teams/invitations.d.ts} +14 -18
  366. package/dist/teams/invite.d.ts +42 -0
  367. package/dist/teams/members-api.d.ts +12 -16
  368. package/dist/teams/resend.d.ts +3 -13
  369. package/dist/{roles-B4nU3jDi.d.ts → teams/roles.d.ts} +18 -20
  370. package/dist/teams-react/components/BrandMark.d.ts +10 -0
  371. package/dist/teams-react/components/InvitationsPanel.d.ts +13 -0
  372. package/dist/teams-react/components/InviteAcceptPage.d.ts +10 -0
  373. package/dist/teams-react/components/MembersPanel.d.ts +14 -0
  374. package/dist/teams-react/components/RoleSelect.d.ts +17 -0
  375. package/dist/teams-react/components/index.d.ts +3 -0
  376. package/dist/teams-react/contracts.d.ts +134 -0
  377. package/dist/teams-react/index.d.ts +12 -143
  378. package/dist/teams-react/lazy.d.ts +11 -11
  379. package/dist/test-setup.d.ts +1 -0
  380. package/dist/theme/index.d.ts +6 -104
  381. package/dist/theme/tailwind-preset.d.ts +1 -2
  382. package/dist/theme/theme.d.ts +106 -0
  383. package/dist/theme-contract/cli.d.ts +21 -0
  384. package/dist/theme-contract/index.d.ts +4 -6
  385. package/dist/{auth-BYtiazA4.d.ts → tools/auth.d.ts} +8 -11
  386. package/dist/tools/capability.d.ts +54 -0
  387. package/dist/tools/dispatch.d.ts +37 -0
  388. package/dist/tools/errors.d.ts +8 -0
  389. package/dist/tools/gating.d.ts +62 -0
  390. package/dist/tools/http.d.ts +27 -0
  391. package/dist/tools/index.d.ts +12 -217
  392. package/dist/{mcp-rpc-DYwPlYbZ.d.ts → tools/mcp-rpc.d.ts} +7 -9
  393. package/dist/{mcp-xxoZZfor.d.ts → tools/mcp.d.ts} +14 -16
  394. package/dist/tools/openai.d.ts +28 -0
  395. package/dist/tools/registry.d.ts +39 -0
  396. package/dist/tools/runtime.d.ts +22 -0
  397. package/dist/{types-B25Mib1r.d.ts → tools/types.d.ts} +15 -83
  398. package/dist/{flow-types-CJxEmaRy.d.ts → trace/flow-types.d.ts} +2 -4
  399. package/dist/trace/index.d.ts +11 -148
  400. package/dist/trace/mission-flow.d.ts +82 -0
  401. package/dist/trace/mission-trace.d.ts +52 -0
  402. package/dist/turn-health/classify.d.ts +207 -0
  403. package/dist/turn-health/index.d.ts +29 -637
  404. package/dist/turn-health/lifecycle.d.ts +75 -0
  405. package/dist/turn-health/sink.d.ts +122 -0
  406. package/dist/turn-health/sweep.d.ts +245 -0
  407. package/dist/turn-stream/adapters.d.ts +257 -0
  408. package/dist/turn-stream/core.d.ts +293 -0
  409. package/dist/turn-stream/do.d.ts +144 -0
  410. package/dist/turn-stream/index.d.ts +62 -738
  411. package/dist/turn-stream/memory.d.ts +41 -0
  412. package/dist/vault/ConfirmDialog.d.ts +22 -0
  413. package/dist/vault/VaultPane.d.ts +15 -0
  414. package/dist/{VaultPane-BDP6SB_K.d.ts → vault/contracts.d.ts} +15 -22
  415. package/dist/vault/index.d.ts +15 -22
  416. package/dist/vault/lazy.d.ts +9 -7
  417. package/dist/vault/server.d.ts +8 -10
  418. package/dist/web/free-route-limit.d.ts +187 -0
  419. package/dist/web/index.d.ts +15 -207
  420. package/dist/{rate-limit-BOVmJRXZ.d.ts → web/rate-limit.d.ts} +3 -5
  421. package/dist/web-react/agent-session-controls.d.ts +105 -0
  422. package/dist/web-react/async/async-view.d.ts +69 -0
  423. package/dist/web-react/async/index.d.ts +13 -305
  424. package/dist/web-react/async/state.d.ts +107 -0
  425. package/dist/web-react/async/use-async-resource.d.ts +41 -0
  426. package/dist/web-react/async/use-confirmed-mutation.d.ts +90 -0
  427. package/dist/web-react/brand-mark.d.ts +11 -0
  428. package/dist/web-react/chat-attachments.d.ts +21 -0
  429. package/dist/web-react/chat-composer.d.ts +174 -0
  430. package/dist/web-react/chat-interactions.d.ts +1 -0
  431. package/dist/web-react/chat-mentions.d.ts +48 -0
  432. package/dist/web-react/chat-stream.d.ts +106 -0
  433. package/dist/web-react/class-names.d.ts +10 -0
  434. package/dist/web-react/controls.d.ts +265 -0
  435. package/dist/web-react/durable-chat-cards.d.ts +40 -0
  436. package/dist/web-react/durable-interaction-submit.d.ts +22 -0
  437. package/dist/web-react/durable-plan-card.d.ts +13 -0
  438. package/dist/web-react/durable-plan-flow.d.ts +77 -0
  439. package/dist/web-react/harness-glyphs.d.ts +28 -0
  440. package/dist/web-react/index.d.ts +80 -2347
  441. package/dist/web-react/inert.d.ts +39 -0
  442. package/dist/web-react/insight-card.d.ts +203 -0
  443. package/dist/web-react/interaction-card-support.d.ts +115 -0
  444. package/dist/web-react/interaction-plan-card.d.ts +39 -0
  445. package/dist/web-react/interaction-question-card.d.ts +100 -0
  446. package/dist/web-react/message-attachments.d.ts +56 -0
  447. package/dist/web-react/mission-activity.d.ts +96 -0
  448. package/dist/web-react/motion.d.ts +43 -0
  449. package/dist/web-react/provenance-model.d.ts +195 -0
  450. package/dist/web-react/provenance.d.ts +82 -0
  451. package/dist/web-react/provider-logo.d.ts +14 -0
  452. package/dist/web-react/record-grid-model.d.ts +257 -0
  453. package/dist/web-react/record-grid.d.ts +108 -0
  454. package/dist/web-react/sandbox-terminal.d.ts +90 -0
  455. package/dist/web-react/seat-paywall.d.ts +47 -0
  456. package/dist/web-react/session-history.d.ts +196 -0
  457. package/dist/web-react/smooth-text.d.ts +29 -0
  458. package/dist/web-react/sparkline.d.ts +150 -0
  459. package/dist/web-react/terminal.d.ts +1 -92
  460. package/dist/web-react/use-chat-interactions.d.ts +78 -0
  461. package/dist/web-react/use-composer-attachments.d.ts +111 -0
  462. package/dist/web-react/use-file-mentions.d.ts +94 -0
  463. package/dist/web-react/work-product.d.ts +105 -0
  464. package/dist/work-product/claim-support.d.ts +288 -0
  465. package/dist/work-product/index.d.ts +16 -849
  466. package/dist/work-product/provenance.d.ts +61 -0
  467. package/dist/{queue-VTBA5ONX.d.ts → work-product/queue.d.ts} +10 -12
  468. package/dist/work-product/quote.d.ts +139 -0
  469. package/dist/work-product/route.d.ts +88 -0
  470. package/dist/work-product/service.d.ts +123 -0
  471. package/dist/work-product/tools.d.ts +144 -0
  472. package/dist/{types-CCeYywdS.d.ts → work-product/types.d.ts} +29 -31
  473. package/dist/work-product-react/index.d.ts +19 -8
  474. package/dist/workspace-react/index.d.ts +8 -11
  475. package/package.json +5 -4
  476. package/dist/agent-session-controls-CmlXwp_H.d.ts +0 -384
  477. package/dist/apply-6wlMOLf8.d.ts +0 -280
  478. package/dist/attachment-validation-BfJDBU1g.d.ts +0 -261
  479. package/dist/budget-BOucfcb_.d.ts +0 -142
  480. package/dist/values-C7RidJuI.d.ts +0 -156
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Pure pointer-gesture math for the timeline editor. Every drag/trim/scrub
3
+ * gesture quantizes through these functions so the interactive behavior is
4
+ * unit-testable without a DOM. All inputs/outputs are integer frames except
5
+ * pixel deltas and zoom (px per frame), which are the only float-valued edge.
6
+ */
7
+ import type { SnapPoint, SnapResult } from '../contracts';
8
+ /** Quantize a horizontal pointer delta to whole frames at the current zoom. */
9
+ export declare function framesFromPixelDelta(deltaX: number, zoom: number): number;
10
+ export interface MoveDragInput {
11
+ originStartFrame: number;
12
+ durationFrames: number;
13
+ deltaFrames: number;
14
+ sequenceDurationFrames: number;
15
+ }
16
+ /** New start frame for a move drag, clamped so the clip stays fully inside
17
+ * the sequence. */
18
+ export declare function moveDragStartFrame(input: MoveDragInput): number;
19
+ export interface TrimStartDragInput {
20
+ originStartFrame: number;
21
+ originDurationFrames: number;
22
+ originSourceInFrame: number;
23
+ deltaFrames: number;
24
+ }
25
+ export interface TrimStartDragResult {
26
+ startFrame: number;
27
+ durationFrames: number;
28
+ sourceInFrame: number;
29
+ }
30
+ /**
31
+ * Head trim: the clip END is invariant; start slides between two hard walls —
32
+ * it cannot reveal media before source frame 0 (sourceInFrame >= 0) and cannot
33
+ * pass within MIN_SEQUENCE_CLIP_FRAMES of the end. sourceInFrame shifts by
34
+ * exactly the start delta so the visible content stays anchored.
35
+ */
36
+ export declare function trimStartDrag(input: TrimStartDragInput): TrimStartDragResult;
37
+ export interface TrimEndDragInput {
38
+ originStartFrame: number;
39
+ originDurationFrames: number;
40
+ sourceInFrame: number;
41
+ deltaFrames: number;
42
+ sequenceDurationFrames: number;
43
+ /** Natural source length in frames when known; bounds how far the tail can
44
+ * extend. Omit for stills and media of unknown length. */
45
+ sourceDurationFrames?: number;
46
+ }
47
+ /** Tail trim: start is invariant; duration is bounded below by the minimum
48
+ * clip length and above by both the sequence end and the remaining source
49
+ * material past the in-point. */
50
+ export declare function trimEndDrag(input: TrimEndDragInput): {
51
+ durationFrames: number;
52
+ };
53
+ /**
54
+ * Smallest ruler step whose major ticks sit at least `minSpacingPx` apart at
55
+ * the current zoom; past the table it grows in whole minutes so labels never
56
+ * collide at extreme zoom-out.
57
+ */
58
+ export declare function selectTickStepSeconds(input: {
59
+ zoom: number;
60
+ fps: number;
61
+ minSpacingPx?: number;
62
+ }): number;
63
+ export interface LetterboxRect {
64
+ x: number;
65
+ y: number;
66
+ width: number;
67
+ height: number;
68
+ }
69
+ /** Contain-fit a media aspect inside a container, centered with letterbox or
70
+ * pillarbox bars. */
71
+ export declare function letterboxRect(input: {
72
+ containerWidth: number;
73
+ containerHeight: number;
74
+ mediaWidth: number;
75
+ mediaHeight: number;
76
+ }): LetterboxRect;
77
+ /** Caption type scales with the rendered frame, floored so captions stay
78
+ * legible on small previews. */
79
+ export declare function captionFontPx(canvasCssHeight: number): number;
80
+ /** Pixel geometry for a clip chip; width floors at 2px so 1-frame clips stay
81
+ * grabbable. */
82
+ export declare function clipChipGeometry(input: {
83
+ startFrame: number;
84
+ durationFrames: number;
85
+ zoom: number;
86
+ }): {
87
+ left: number;
88
+ width: number;
89
+ };
90
+ /**
91
+ * A move drag snaps whichever clip edge lands closest to a snap point: the
92
+ * start edge directly, or the end edge re-expressed as a start. An unsnapped
93
+ * candidate passes through unchanged.
94
+ */
95
+ export declare function chooseMoveSnap(input: {
96
+ candidateStartFrame: number;
97
+ durationFrames: number;
98
+ startSnap: SnapResult;
99
+ endSnap: SnapResult;
100
+ }): {
101
+ startFrame: number;
102
+ point: SnapPoint | null;
103
+ };
@@ -0,0 +1,187 @@
1
+ /**
2
+ * Seams between the timeline editor's engine, media pipeline, and components.
3
+ * Everything here is interface-only so the three layers build independently
4
+ * and products can substitute any layer (e.g. a different frame provider)
5
+ * without forking the editor.
6
+ *
7
+ * Persistence model: the command stack executes optimistically against local
8
+ * timeline state and emits the equivalent `SequenceOperation[]` through
9
+ * `TimelineEditorProps.onApplyOperations`. A rejected promise rolls the
10
+ * command back — the server stays the source of truth, the editor stays
11
+ * responsive.
12
+ */
13
+ import type { SequenceApplyResult } from '../sequences/apply';
14
+ import type { SequenceClip, SequenceTimeline } from '../sequences/model';
15
+ import type { SequenceOperation } from '../sequences/operations';
16
+ /** One undoable edit. `execute`/`undo` mutate ONLY local editor state; the
17
+ * emitted operations are the durable form sent to the product. */
18
+ export interface TimelineCommand {
19
+ label: string;
20
+ execute(state: EditorTimelineState): EditorTimelineState;
21
+ undo(state: EditorTimelineState): EditorTimelineState;
22
+ /** Durable operations equivalent to `execute` (sent on commit). */
23
+ operations(): SequenceOperation[];
24
+ /** Durable operations equivalent to `undo` (sent when the user undoes a
25
+ * committed command). */
26
+ inverseOperations(): SequenceOperation[];
27
+ }
28
+ /** Local editor state — the timeline plus volatile view state the server
29
+ * never sees. */
30
+ export interface EditorTimelineState {
31
+ timeline: SequenceTimeline;
32
+ playheadFrame: number;
33
+ selectedClipIds: string[];
34
+ zoom: number;
35
+ scrollLeft: number;
36
+ }
37
+ /** Manage and track command execution with undo, redo, state subscription, and timeline reset capabilities */
38
+ export interface CommandStack {
39
+ execute(command: TimelineCommand): void;
40
+ undo(): void;
41
+ redo(): void;
42
+ canUndo(): boolean;
43
+ canRedo(): boolean;
44
+ /** Subscribe to state changes; returns an unsubscribe. */
45
+ subscribe(listener: () => void): () => void;
46
+ getState(): EditorTimelineState;
47
+ /** Replace timeline state from a server refresh WITHOUT clearing history. */
48
+ reset(timeline: SequenceTimeline): void;
49
+ }
50
+ /** Exponential zoom mapping so the slider feels linear across a 10x+ range.
51
+ * zoom = pixels per frame. */
52
+ export interface ZoomMath {
53
+ sliderToZoom(slider: number): number;
54
+ zoomToSlider(zoom: number): number;
55
+ minZoom: number;
56
+ maxZoom: number;
57
+ }
58
+ /** Define a point in a timeline where snapping occurs based on frame and kind */
59
+ export interface SnapPoint {
60
+ frame: number;
61
+ kind: 'clip-start' | 'clip-end' | 'playhead' | 'sequence-end';
62
+ }
63
+ /** Describe the result of snapping a point to a frame including success status and snapped point details */
64
+ export interface SnapResult {
65
+ frame: number;
66
+ snapped: boolean;
67
+ point: SnapPoint | null;
68
+ }
69
+ /** rAF-driven playback clock. `performance.now()` deltas drive the playhead;
70
+ * emits one callback per animation frame while playing. */
71
+ export interface PlaybackClock {
72
+ play(): void;
73
+ pause(): void;
74
+ seek(frame: number): void;
75
+ isPlaying(): boolean;
76
+ getFrame(): number;
77
+ subscribe(listener: (frame: number) => void): () => void;
78
+ dispose(): void;
79
+ }
80
+ /** Supplies decoded frames for preview rendering. The baseline implementation
81
+ * seeks an off-DOM HTMLVideoElement (works everywhere); a WebCodecs
82
+ * implementation can replace it behind the same seam. */
83
+ export interface VideoFrameProvider {
84
+ /** Draw the frame at `sourceSeconds` into `ctx` at the given rect. Resolves
85
+ * when the frame is painted; rejects when the media cannot be decoded. */
86
+ drawFrame(mediaUrl: string, sourceSeconds: number, ctx: CanvasRenderingContext2D, rect: {
87
+ x: number;
88
+ y: number;
89
+ width: number;
90
+ height: number;
91
+ }): Promise<void>;
92
+ /** Pre-warm a media URL so the first `drawFrame` doesn't stall. */
93
+ prefetch(mediaUrl: string): void;
94
+ dispose(): void;
95
+ }
96
+ /** min/max sample peaks per pixel bucket for waveform rendering. */
97
+ export interface WaveformData {
98
+ peaks: Float32Array;
99
+ /** Samples represented per peak pair. */
100
+ samplesPerBucket: number;
101
+ durationSeconds: number;
102
+ }
103
+ /** Represent a segment of transcription with text and start and end times in seconds */
104
+ export interface TranscriptionSegment {
105
+ text: string;
106
+ startSeconds: number;
107
+ endSeconds: number;
108
+ }
109
+ /** Whisper-in-a-worker contract. Implementations dynamically import the model
110
+ * runtime; `available` is false when the optional peer is not installed. */
111
+ export interface TranscriptionProvider {
112
+ available: boolean;
113
+ transcribe(mediaUrl: string, opts?: {
114
+ language?: string;
115
+ onProgress?: (fraction: number) => void;
116
+ }): Promise<TranscriptionSegment[]>;
117
+ }
118
+ /** Overridable copy for the editor's product-facing labels. Every field is
119
+ * optional; the editor ships clear defaults (see `DEFAULT_TIMELINE_LABELS`).
120
+ * Accessible names (the `*AriaLabel` fields) stay descriptive for screen
121
+ * readers; the short visible labels carry the on-screen verb. Products rename
122
+ * per their own vocabulary without forking the component. */
123
+ export interface TimelineEditorLabels {
124
+ /** Visible verb on the split-at-playhead tool. */
125
+ splitClip?: string;
126
+ splitClipAriaLabel?: string;
127
+ /** Visible verb on the add-caption-at-playhead tool. */
128
+ addCaption?: string;
129
+ addCaptionAriaLabel?: string;
130
+ /** Visible verb on the export action (rendered only when `onCreateExport`). */
131
+ createExport?: string;
132
+ /** Empty-state heading + the three doors. */
133
+ emptyTitle?: string;
134
+ emptyBody?: string;
135
+ emptyTemplateDoor?: string;
136
+ emptyClipDoor?: string;
137
+ emptyAgentDoor?: string;
138
+ /** Phone gate shown instead of the gesture-heavy editor below `sm`. */
139
+ smallScreenTitle?: string;
140
+ smallScreenBody?: string;
141
+ /** Ghost-lane names shown at rest so time reads as a timeline before any
142
+ * track exists. */
143
+ ghostVideoLane?: string;
144
+ ghostCaptionLane?: string;
145
+ }
146
+ /** Define properties and callbacks for editing and applying operations on a sequence timeline */
147
+ export interface TimelineEditorProps {
148
+ timeline: SequenceTimeline;
149
+ canWrite: boolean;
150
+ /** Persist operations the user produced. Reject to roll the edit back.
151
+ * Resolve with the per-operation `SequenceApplyResult[]` (what
152
+ * `applySequenceOperations` returns, index-aligned with `operations`) so
153
+ * the editor can reconcile its optimistic `local-…` clip ids to the
154
+ * server-minted ids — without it, undoing a committed place/split/caption
155
+ * after a timeline refresh emits operations the server cannot resolve.
156
+ * Resolving void skips reconciliation. */
157
+ onApplyOperations(operations: SequenceOperation[]): Promise<SequenceApplyResult[] | void>;
158
+ /** Selection + playhead surface to the host (e.g. to attach agent context). */
159
+ onSelectionChange?(clips: SequenceClip[]): void;
160
+ onPlayheadChange?(frame: number): void;
161
+ /** Host-rendered side panel (agent chat) and shelf (draggable assets). */
162
+ renderSidePanel?(ctx: {
163
+ selectedClips: SequenceClip[];
164
+ playheadFrame: number;
165
+ }): React.ReactNode;
166
+ renderAssetShelf?(): React.ReactNode;
167
+ /** Frame provider override; omitted → the baseline HTMLVideoElement provider. */
168
+ frameProvider?: VideoFrameProvider;
169
+ /** Overridable product-facing copy; defaults are clear on their own. */
170
+ labels?: TimelineEditorLabels;
171
+ /** Empty-state doors. Supplying a handler renders that door; omitting it
172
+ * hides it. With none supplied the empty state shows guidance only. */
173
+ onStartFromTemplate?(): void;
174
+ onAddClip?(): void;
175
+ onAskAgent?(): void;
176
+ /** Render the export action (a toolbar "Export…" button). Omitted → no export
177
+ * affordance. The handler owns the dialog/flow; this surface only invokes it. */
178
+ onCreateExport?(): void;
179
+ /** Off by default. When true AND the consuming product supplies a branded
180
+ * export pipeline, the export door/button is marked as Tangle-branded. This
181
+ * surface has no render pipeline of its own to brand, so the flag is a
182
+ * forward-compatible hint to `onCreateExport`, never a baked watermark. */
183
+ brandedExport?: boolean;
184
+ className?: string;
185
+ }
186
+ /** Provide default labels and accessibility text for timeline editor UI elements */
187
+ export declare const DEFAULT_TIMELINE_LABELS: Required<TimelineEditorLabels>;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Undo/redo command stack over immutable `EditorTimelineState`.
3
+ *
4
+ * Invariant that makes `reset()` safe: history entries hold COMMANDS — each a
5
+ * pair of state transforms plus the durable operations captured at
6
+ * construction — never state snapshots. Rebasing the timeline from a server
7
+ * refresh therefore cannot stale the history: a later undo re-applies the
8
+ * command's inverse transform to whatever timeline is current. If a rebase
9
+ * removed a clip a historical command targets, that command's transform throws
10
+ * (fail loud) rather than silently editing the wrong clip — the host decides
11
+ * whether to drop history at that point.
12
+ */
13
+ import type { SequenceTimeline } from '../../sequences/model';
14
+ import type { CommandStack } from '../contracts';
15
+ /** Oldest entries are dropped past this bound; redo is cleared on execute. */
16
+ export declare const COMMAND_HISTORY_LIMIT = 200;
17
+ /** Create a command stack managing undo and redo operations for a given timeline */
18
+ export declare function createCommandStack(initial: SequenceTimeline): CommandStack;
@@ -0,0 +1,146 @@
1
+ /**
2
+ * Concrete `TimelineCommand` factories. Every factory captures the inverse
3
+ * from PRE-state at construction — undo is a value computed once, never a
4
+ * re-derivation from whatever state exists later. Local execute/undo update
5
+ * `EditorTimelineState` immutably; `operations()`/`inverseOperations()` return
6
+ * the durable `SequenceOperation[]` equivalent, built per call from captured
7
+ * primitives so callers can never alias command internals.
8
+ *
9
+ * Id boundary: `place_clip`, `add_caption`, and `split_clip` mint clip ids
10
+ * server-side, so factories that create local clips take a caller-minted id.
11
+ * Every factory also takes an optional `resolveClipId` — a LIVE local→server
12
+ * alias lookup the host feeds from `onApplyOperations` results. Resolution
13
+ * runs at execute/undo/emission time (never at construction), so a command
14
+ * captured against an optimistic `local-…` id keeps working after a server
15
+ * refresh replaced it with the minted id. Residual boundary: clips a durable
16
+ * undo recreates (e.g. the `place_clip` inverse of a delete) mint FRESH
17
+ * server ids that only the next refresh reconciles.
18
+ *
19
+ * Transforms re-resolve their target clip at execute/undo time and throw when
20
+ * it no longer exists (e.g. removed by a `reset()` rebase) — editing a wrong
21
+ * or absent clip silently would corrupt the durable op stream.
22
+ */
23
+ import { type SequenceTimeline } from '../../sequences/model';
24
+ import type { TimelineCommand } from '../contracts';
25
+ /** Live local→server clip-id lookup (see module header). Must return its
26
+ * argument when no alias exists. */
27
+ export type ClipIdResolver = (clipId: string) => string;
28
+ /** Define input parameters to move a clip within a timeline including optional track and resolver */
29
+ export interface MoveClipInput {
30
+ timeline: SequenceTimeline;
31
+ clipId: string;
32
+ startFrame: number;
33
+ /** Omitted → stays on its current track. */
34
+ trackId?: string;
35
+ resolveClipId?: ClipIdResolver;
36
+ }
37
+ /** Drag-move. The target start clamps through the model's `clampClipStart`
38
+ * so drags past either edge land at the boundary instead of throwing
39
+ * mid-gesture; the emitted operation carries the clamped value. */
40
+ export declare function moveClipCommand(input: MoveClipInput): TimelineCommand;
41
+ /** Define input parameters for trimming a clip within a sequence timeline */
42
+ export interface TrimClipInput {
43
+ timeline: SequenceTimeline;
44
+ clipId: string;
45
+ startFrame: number;
46
+ durationFrames: number;
47
+ /** New source in-point when trimming the head; omitted → unchanged. */
48
+ sourceInFrame?: number;
49
+ resolveClipId?: ClipIdResolver;
50
+ }
51
+ /** Trim is strict where move is forgiving: the caller (a trim handle) already
52
+ * knows both edges, so out-of-bounds input is a bug, not a gesture. */
53
+ export declare function trimClipCommand(input: TrimClipInput): TimelineCommand;
54
+ /** Define input parameters required to place a clip within a sequence timeline */
55
+ export interface PlaceClipInput {
56
+ timeline: SequenceTimeline;
57
+ /** Caller-minted optimistic id for the local clip (see module header). */
58
+ clipId: string;
59
+ trackId: string;
60
+ label: string;
61
+ startFrame: number;
62
+ durationFrames: number;
63
+ /** Omitted → 0 (start of the source). */
64
+ sourceInFrame?: number;
65
+ media?: {
66
+ url: string;
67
+ kind: 'video' | 'image' | 'audio';
68
+ };
69
+ generationId?: string;
70
+ assetId?: string;
71
+ metadata?: Record<string, unknown>;
72
+ resolveClipId?: ClipIdResolver;
73
+ }
74
+ /** Resolve and validate clip placement parameters to create a timeline command */
75
+ export declare function placeClipCommand(input: PlaceClipInput): TimelineCommand;
76
+ /** Define input parameters required to delete a clip from a sequence timeline */
77
+ export interface DeleteClipInput {
78
+ timeline: SequenceTimeline;
79
+ clipId: string;
80
+ resolveClipId?: ClipIdResolver;
81
+ }
82
+ /** Snapshots the full clip at construction so undo restores it exactly. The
83
+ * durable inverse rebuilds within the closed operation union: caption clips
84
+ * (caption track + text) invert through `add_caption` — `place_clip` cannot
85
+ * carry text/language — everything else through `place_clip` with media,
86
+ * product references, source window, and disabled state intact. Boundary:
87
+ * the caption path cannot carry `disabled` or `metadata`, so a deleted
88
+ * disabled caption resurrects ENABLED server-side and caption metadata is
89
+ * lost — local undo stays exact (same class of loss as the `set_clip_text`
90
+ * language-clear boundary). */
91
+ export declare function deleteClipCommand(input: DeleteClipInput): TimelineCommand;
92
+ /** Define input parameters for splitting a clip at a specific frame within a timeline */
93
+ export interface SplitClipInput {
94
+ timeline: SequenceTimeline;
95
+ clipId: string;
96
+ /** Sequence-frame to cut at; must fall strictly inside the clip. */
97
+ atFrame: number;
98
+ /** Caller-minted id for the second (tail) clip. */
99
+ newClipId: string;
100
+ resolveClipId?: ClipIdResolver;
101
+ }
102
+ /** Source mapping is 1:1 frames (no rate ramps in the model), so the tail's
103
+ * source in-point is the head's in-point advanced by the head duration. */
104
+ export declare function splitClipCommand(input: SplitClipInput): TimelineCommand;
105
+ /** Define input parameters for adding a caption clip to a sequence timeline */
106
+ export interface AddCaptionInput {
107
+ timeline: SequenceTimeline;
108
+ /** Caller-minted optimistic id for the local caption clip. */
109
+ clipId: string;
110
+ /** Editor commands are concrete: the caller resolves placement (e.g. via
111
+ * `chooseCaptionPlacement`) and the target track before constructing. */
112
+ trackId: string;
113
+ text: string;
114
+ language?: string;
115
+ startFrame: number;
116
+ durationFrames: number;
117
+ resolveClipId?: ClipIdResolver;
118
+ }
119
+ /** Resolve a command to add a caption to a specified caption track within a timeline */
120
+ export declare function addCaptionCommand(input: AddCaptionInput): TimelineCommand;
121
+ /** Define input parameters for setting text and optional language on a specific clip in a timeline */
122
+ export interface SetClipTextInput {
123
+ timeline: SequenceTimeline;
124
+ clipId: string;
125
+ text: string;
126
+ /** Omitted → language unchanged. */
127
+ language?: string;
128
+ resolveClipId?: ClipIdResolver;
129
+ }
130
+ /** Requires the clip to already carry text: `set_clip_text` has no "create"
131
+ * semantics in the union, and an inverse for a text-less clip would have to
132
+ * invent an empty string. Boundary: when the clip had NO language and this
133
+ * command sets one, local undo restores `undefined` exactly but the durable
134
+ * inverse cannot clear language (the op has no clear form) — flagged to the
135
+ * apply layer. */
136
+ export declare function setClipTextCommand(input: SetClipTextInput): TimelineCommand;
137
+ /** Define input parameters to toggle the disabled state of a clip within a timeline */
138
+ export interface ToggleClipDisabledInput {
139
+ timeline: SequenceTimeline;
140
+ clipId: string;
141
+ resolveClipId?: ClipIdResolver;
142
+ }
143
+ /** The target value is captured at construction (not flipped at execute time)
144
+ * so redo after a rebase applies the same durable op the stack already
145
+ * emitted. */
146
+ export declare function toggleClipDisabledCommand(input: ToggleClipDisabledInput): TimelineCommand;
@@ -0,0 +1,18 @@
1
+ /**
2
+ * rAF playback clock. The playhead is derived from a (start time, start
3
+ * frame) anchor and `performance.now()` deltas — never from per-tick
4
+ * increments — so dropped animation frames cannot accumulate drift.
5
+ *
6
+ * Browser-only at PLAY time, import-safe everywhere: `requestAnimationFrame`
7
+ * and `performance` are resolved off `globalThis` when playback starts, never
8
+ * at module load or construction, so server bundles that import the editor
9
+ * engine do not crash.
10
+ */
11
+ import type { PlaybackClock } from '../contracts';
12
+ /** Define configuration settings for playback clock including frames per second and total duration frames */
13
+ export interface PlaybackClockConfig {
14
+ fps: number;
15
+ durationFrames: number;
16
+ }
17
+ /** Create a playback clock that manages frame timing and playback state based on configuration */
18
+ export declare function createPlaybackClock(config: PlaybackClockConfig): PlaybackClock;
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Drag snapping. Snap points come from the timeline's structure (clip edges,
3
+ * playhead, sequence end); the snap THRESHOLD is measured in screen pixels at
4
+ * the current zoom — what feels "close" is a screen distance, not a frame
5
+ * count — and converts to frames as thresholdPx / zoom.
6
+ */
7
+ import type { SequenceTimeline } from '../../sequences/model';
8
+ import type { SnapPoint, SnapResult } from '../contracts';
9
+ /** Snap point with its owning clip when it came from one, so a drag can
10
+ * exclude the dragged clip's own edges. Structurally a `SnapPoint`. */
11
+ export interface TimelineSnapPoint extends SnapPoint {
12
+ clipId?: string;
13
+ }
14
+ /** Disabled clips still occupy timeline space visually, so their edges remain
15
+ * snap targets. */
16
+ export declare function collectSnapPoints(timeline: SequenceTimeline, playheadFrame: number): TimelineSnapPoint[];
17
+ /** Define options to configure snapping behavior including zoom, threshold, and exclusion criteria */
18
+ export interface ApplySnapOptions {
19
+ /** Pixels per frame — converts the pixel threshold into frames. */
20
+ zoom: number;
21
+ /** Screen-distance threshold; 10px matches the editor's hit-slop. */
22
+ thresholdPx?: number;
23
+ /** Return true to remove a point from consideration (e.g. the dragged
24
+ * clip's own edges via `TimelineSnapPoint.clipId`). */
25
+ exclude?: (point: SnapPoint) => boolean;
26
+ }
27
+ /** Nearest candidate wins; ties keep the first candidate in `points` order
28
+ * (sorted by frame from `collectSnapPoints`, so the lower frame). */
29
+ export declare function applySnap(frame: number, points: SnapPoint[], opts: ApplySnapOptions): SnapResult;
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Zoom + viewport coordinate math. Zoom is PIXELS PER FRAME; the slider is a
3
+ * normalized [0, 1] control mapped exponentially (zoom = min·(max/min)^slider)
4
+ * so each slider step multiplies the scale by a constant factor — linear
5
+ * slider feel across a 10x+ range.
6
+ */
7
+ import type { ZoomMath } from '../contracts';
8
+ /** Define configuration settings for minimum and maximum zoom levels */
9
+ export interface ZoomMathConfig {
10
+ minZoom: number;
11
+ maxZoom: number;
12
+ }
13
+ /** Create a ZoomMath object that validates config and calculates zoom ratio within bounds */
14
+ export declare function createZoomMath(config: ZoomMathConfig): ZoomMath;
15
+ /** Horizontal viewport: zoom in pixels per frame, scrollLeft in pixels. */
16
+ export interface ViewportTransform {
17
+ zoom: number;
18
+ scrollLeft: number;
19
+ }
20
+ /** Frame → viewport-relative pixel x. Output is fractional; round through
21
+ * `snapPixel` before drawing. */
22
+ export declare function frameToPixel(frame: number, view: ViewportTransform): number;
23
+ /** Viewport-relative pixel x → integer frame. Frames are integer positions,
24
+ * so the result rounds to the nearest frame and floors at 0 (a pointer left
25
+ * of frame 0 resolves to 0). */
26
+ export declare function pixelToFrame(pixel: number, view: ViewportTransform): number;
27
+ /** Snap a CSS-pixel value to the device pixel grid so 1px timeline rules
28
+ * render crisp on fractional-DPR displays. */
29
+ export declare function snapPixel(value: number, devicePixelRatio: number): number;