@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,257 @@
1
+ /**
2
+ * Worker-side adapters over {@link TurnStreamDO}: the concrete implementations
3
+ * of the chat vertical's `turnStore` and `turnLock` seams, the WebSocket
4
+ * upgrade forwarder, the best-effort broadcast helpers, and an in-process
5
+ * memory harness for tests and keyless local dev.
6
+ *
7
+ * Everything takes the namespace STRUCTURALLY ({@link TurnStreamNamespaceLike}
8
+ * — Cloudflare's `DurableObjectNamespace` satisfies it), so nothing here
9
+ * imports Cloudflare types and the same adapters run against the memory
10
+ * harness in vitest.
11
+ *
12
+ * Live fanout is deliberately NOT a side effect of the turn-event store: the
13
+ * store is keyed by turnId/scopeId while viewer sockets live on the
14
+ * `${workspaceId}:${threadId}` channel, and only the product's per-turn
15
+ * context knows both. Products wire the workspace signal helpers into
16
+ * `createChatTurnRoutes`' `onEvent`.
17
+ *
18
+ * Which adapters are still the right answer (see `./core`'s header for the
19
+ * production measurement behind this split):
20
+ *
21
+ * | adapter | status |
22
+ * | ------------------------------------ | --------------------------------- |
23
+ * | {@link createDurableTurnLock} | KEPT — no SDK equivalent |
24
+ * | {@link reconcileStaleDurableTurnLock}| KEPT — no SDK equivalent |
25
+ * | {@link createDurableObjectTurnEventStore} | KEPT — the DETACHED lane |
26
+ * | {@link broadcastWorkspaceActivity} | KEPT — workspace signal |
27
+ * | {@link broadcastThreadCreated} | KEPT — workspace signal |
28
+ * | {@link createTurnStreamUpgradeHandler} | KEPT for the workspace channel |
29
+ * | {@link broadcastTurnStreamEvent} | `@deprecated` for sandbox turns |
30
+ */
31
+ import { type ReconcileStaleTurnLockOptions } from '../chat-routes/stale-turn-lock';
32
+ import type { TurnEventStore } from '../stream/turn-buffer';
33
+ import { type DurableTurnLock, type TurnLockAcquireResult, type TurnLockReleaseInput, type TurnLockScope } from './core';
34
+ /** Resolve a stub interface for handling fetch requests with optional initialization parameters */
35
+ export interface TurnStreamStubLike {
36
+ fetch(input: Request | string, init?: RequestInit): Promise<Response>;
37
+ }
38
+ /** The surface of `DurableObjectNamespace` the adapters use. */
39
+ export interface TurnStreamNamespaceLike {
40
+ idFromName(name: string): unknown;
41
+ get(id: unknown): TurnStreamStubLike;
42
+ }
43
+ /**
44
+ * A {@link TurnEventStore} backed by {@link TurnStreamDO} storage — the
45
+ * production implementation of `createChatTurnRoutes`' `turnStore` seam for
46
+ * apps that don't run D1 for turn events (or want replay co-located with the
47
+ * live channel). Each buffered turn lives on its own `turn:<turnId>` DO
48
+ * instance; `listRunning` reconnect discovery rides a per-scope index
49
+ * instance. Drops in wherever `createD1TurnEventStore(env.DB)` would.
50
+ *
51
+ * KEPT and load-bearing for AUTONOMOUS work. A detached run
52
+ * (`dispatchPrompt({ detach: true })`, `driveTurn`) executes on the sandbox
53
+ * run/stream lane, which publishes nothing to the session event bus — a
54
+ * `SessionGatewayClient` attached to that session sees zero turn events
55
+ * (measured: 0 of 71 / 0 of 527 / 0 of 408 across three session-id
56
+ * strategies). So a browser that must tail a mission step, a queue job, or
57
+ * an inbound-email review has no SDK path; it needs these durable rows plus
58
+ * `runDetachedTurn` (`/chat-routes`). Nothing here is deprecated.
59
+ */
60
+ export declare function createDurableObjectTurnEventStore(namespace: TurnStreamNamespaceLike): TurnEventStore;
61
+ /** Define input parameters required to acquire a durable turn lock in a workspace thread context */
62
+ export interface AcquireDurableTurnLockInput {
63
+ workspaceId: string;
64
+ threadId: string;
65
+ scope: TurnLockScope;
66
+ executionId: string;
67
+ turnId?: string;
68
+ /** Supply to reclaim/retry with a stable id; default mints a UUID. */
69
+ lockId?: string;
70
+ }
71
+ /** Acquire a durable turn lock in the specified namespace with given input parameters */
72
+ export declare function acquireDurableTurnLock(namespace: TurnStreamNamespaceLike, input: AcquireDurableTurnLockInput): Promise<TurnLockAcquireResult>;
73
+ /** Release a durable turn lock and indicate if the release was successful or deferred */
74
+ export declare function releaseDurableTurnLock(namespace: TurnStreamNamespaceLike, input: TurnLockReleaseInput): Promise<{
75
+ released: boolean;
76
+ deferred?: boolean;
77
+ }>;
78
+ /** Define input parameters to release an interrupted durable turn lock in a workspace or thread */
79
+ export interface ReleaseInterruptedDurableTurnLockInput {
80
+ workspaceId: string;
81
+ threadId: string;
82
+ /** Try only this scope; omit to try workspace then thread (a stop button
83
+ * doesn't know which lane the wedged turn ran on). */
84
+ scope?: TurnLockScope;
85
+ interruptedAt: number;
86
+ turnId?: string;
87
+ }
88
+ /** Fenced out-of-band release — the DO refuses a successor lock (started
89
+ * after `interruptedAt`) and a turnId mismatch. Returns whether any scope
90
+ * released. */
91
+ export declare function releaseInterruptedDurableTurnLock(namespace: TurnStreamNamespaceLike, input: ReleaseInterruptedDurableTurnLockInput): Promise<boolean>;
92
+ /** Define options to reconcile stale durable turn locks with context, namespace, workspace, and active lock details */
93
+ export interface ReconcileStaleDurableTurnLockOptions extends Pick<ReconcileStaleTurnLockOptions, 'probeSandbox' | 'probeSession' | 'graceMs' | 'terminalGraceMs' | 'context' | 'log' | 'now'> {
94
+ namespace: TurnStreamNamespaceLike;
95
+ workspaceId: string;
96
+ threadId: string;
97
+ /** The lock the acquire attempt was refused on. */
98
+ active: DurableTurnLock;
99
+ }
100
+ /**
101
+ * `/chat-routes`' `reconcileStaleTurnLock` policy wired to the DO: the
102
+ * product supplies the probes (which box, what its session says), the policy
103
+ * decides, and a release lands as a FENCED interrupted release —
104
+ * `interruptedAt` is the policy's `fence.observedAt`, so a successor lock
105
+ * acquired while the probes were in flight survives by construction.
106
+ */
107
+ export declare function reconcileStaleDurableTurnLock(options: ReconcileStaleDurableTurnLockOptions): Promise<{
108
+ released: boolean;
109
+ diagnostics: Record<string, unknown>;
110
+ }>;
111
+ /** The subset of `ChatTurnProduceArgs` the lock adapter reads — structural,
112
+ * so this module needs no import from `/chat-routes/turn-routes` (which
113
+ * would drag the `agent-runtime` peer into every `/turn-stream` consumer). */
114
+ export interface TurnLockSeamArgs<TContext> {
115
+ identity: {
116
+ tenantId: string;
117
+ sessionId: string;
118
+ };
119
+ executionId: string;
120
+ context: TContext;
121
+ body: {
122
+ turnId?: string;
123
+ };
124
+ }
125
+ /** Verdict shape of the vertical's `turnLock.acquire`. */
126
+ export type TurnLockSeamResult = {
127
+ acquired: true;
128
+ handle?: unknown;
129
+ } | {
130
+ acquired: false;
131
+ response: Response;
132
+ };
133
+ /** Define options for creating a durable turn lock with customizable scope and identification methods */
134
+ export interface CreateDurableTurnLockOptions<TContext> {
135
+ namespace: TurnStreamNamespaceLike;
136
+ /** Which lane serializes this turn: `'workspace'` (shared sandbox — one
137
+ * turn per workspace) or `'thread'` (router lane — one turn per thread). */
138
+ scopeOf(args: TurnLockSeamArgs<TContext>): TurnLockScope;
139
+ /** Override the execution id the lock records (e.g. a follow-up reclaiming
140
+ * the execution it already dispatched). Default: the turn's own. */
141
+ lockExecutionIdOf?(args: TurnLockSeamArgs<TContext>): string | undefined;
142
+ /** Client turn id recorded on the lock (fences interrupted releases to the
143
+ * right turn). Default: the request body's `turnId`. */
144
+ clientTurnIdOf?(args: TurnLockSeamArgs<TContext>): string | undefined;
145
+ /**
146
+ * Attempt stale-lock recovery after a refused acquire. Return whether the
147
+ * held lock was released (the adapter then retries the acquire once).
148
+ * Products wire {@link reconcileStaleDurableTurnLock} with their sandbox +
149
+ * session probes here. Omit → a refused acquire is final.
150
+ */
151
+ reconcile?(args: TurnLockSeamArgs<TContext>, active: DurableTurnLock): Promise<{
152
+ released: boolean;
153
+ diagnostics?: Record<string, unknown>;
154
+ }>;
155
+ /** Build the refusal `Response`. Default: a 409 with the shared body shape
156
+ * (`code`, `message`, lock identity + age, reconcile diagnostics). */
157
+ onRefused?(active: DurableTurnLock, diagnostics: Record<string, unknown> | undefined): Response;
158
+ }
159
+ /**
160
+ * The vertical's `turnLock` seam on the shared DO: dual-scope single-flight
161
+ * acquire (with one reconcile-then-retry pass when the product supplies a
162
+ * stale-lock reconciler) and cooperative release on settle. The returned
163
+ * object satisfies `createChatTurnRoutes`' `ChatTurnLock<TContext>`
164
+ * structurally.
165
+ */
166
+ export declare function createDurableTurnLock<TContext>(options: CreateDurableTurnLockOptions<TContext>): {
167
+ acquire(args: TurnLockSeamArgs<TContext>): Promise<TurnLockSeamResult>;
168
+ release(handle: unknown): Promise<void>;
169
+ };
170
+ /**
171
+ * DEPRECATED for sandbox-backed interactive turns (drive on the session-message
172
+ * lane + `SessionGatewayClient` instead) — fan a turn event out to the
173
+ * per-thread channel. `executionId` groups events
174
+ * into a per-turn segment with a monotonic seq, so a reconnecting client
175
+ * replays only the active turn and resumes from a cursor. Callers MUST await
176
+ * (the DO assigns seq on arrival — emission order matters); failures are
177
+ * swallowed (fanout is best-effort and never breaks chat delivery).
178
+ *
179
+ * @deprecated For a SANDBOX-backed interactive turn this re-broadcasts events
180
+ * the sandbox platform already fans out, at the cost of a worker hop. Drive
181
+ * the turn on the session-MESSAGE lane instead —
182
+ * `box.createSession({ sessionId, backend })` then
183
+ * `box.session(id).sendMessage({ parts: [{ type: 'text', text }] })` — and let
184
+ * the tab attach with `box.mintScopedToken({ scope: 'session', sessionId,
185
+ * runtimeSessionId })` + `SessionGatewayClient`
186
+ * (`@tangle-network/sandbox/session-gateway`). Measured on production
187
+ * (4 arms, SDK 0.12.0): turns driven with `box.streamPrompt()` delivered
188
+ * 0 of 71 / 0 of 527 / 0 of 408 turn events to a gateway client, because
189
+ * `POST /agents/run/stream` publishes nothing to the session event bus;
190
+ * the message lane delivered 297 of 297.
191
+ *
192
+ * Two things this deprecation does NOT cover, both still supported:
193
+ * DETACHED runs (no gateway fanout at all — keep `runDetachedTurn` over the
194
+ * durable turn-event rows) and the per-workspace signals
195
+ * ({@link broadcastWorkspaceActivity} / {@link broadcastThreadCreated}).
196
+ * A SANDBOX-FREE copilot that wants a second viewer should use `/stream`'s
197
+ * `replayTurnEvents` (`GET /chat/stream/:turnId`), which follows a running
198
+ * turn from a cursor without a second broadcast fabric.
199
+ *
200
+ * Kept for back-compat; removal is a major-version change.
201
+ */
202
+ export declare function broadcastTurnStreamEvent(namespace: TurnStreamNamespaceLike, input: {
203
+ workspaceId: string;
204
+ threadId: string;
205
+ executionId: string;
206
+ event: {
207
+ type: string;
208
+ data?: Record<string, unknown>;
209
+ };
210
+ }): Promise<void>;
211
+ /** Coarse per-workspace marker that a thread's turn started / ended — drives
212
+ * a sidebar "agent responding" indicator subscribed once per workspace. */
213
+ export declare function broadcastWorkspaceActivity(namespace: TurnStreamNamespaceLike, workspaceId: string, threadId: string, phase: 'start' | 'end'): Promise<void>;
214
+ /** Per-workspace marker that a new thread was created, so an already-open
215
+ * history list prepends it without a reload. */
216
+ export declare function broadcastThreadCreated(namespace: TurnStreamNamespaceLike, workspaceId: string, thread: {
217
+ threadId: string;
218
+ title: string;
219
+ }): Promise<void>;
220
+ /** Represent success or failure of a TURN stream upgrade authorization with optional response data */
221
+ export type TurnStreamUpgradeAuthorization = {
222
+ ok: true;
223
+ } | {
224
+ ok: false;
225
+ response: Response;
226
+ };
227
+ /** Define options for creating a TURN stream upgrade handler including namespace, path, and authorization logic */
228
+ export interface CreateTurnStreamUpgradeHandlerOptions {
229
+ namespace: TurnStreamNamespaceLike;
230
+ /** The worker route serving the stream. Default `/api/session-stream`. */
231
+ path?: string;
232
+ /** Viewer access check (session cookie → workspace membership). */
233
+ authorize(request: Request, target: {
234
+ workspaceId: string;
235
+ threadId: string | null;
236
+ }): Promise<TurnStreamUpgradeAuthorization>;
237
+ }
238
+ /**
239
+ * The worker-entry WebSocket forwarder. Call BEFORE the app router (a router
240
+ * loader cannot return a 101); returns `null` for requests that are not a
241
+ * WebSocket upgrade on the configured path.
242
+ *
243
+ * GET {path}?workspaceId=... → workspace channel (sidebar)
244
+ * GET {path}?workspaceId=...&threadId=… → thread channel (turn resume)
245
+ *
246
+ * After the 101, the client sends `{type:'sync', afterSeq}` and receives the
247
+ * replay-then-live stream (see {@link TurnStreamDO.webSocketMessage}).
248
+ *
249
+ * NOT deprecated — the workspace variant (no `threadId`) is the canonical
250
+ * transport for the per-workspace signals, which the session gateway cannot
251
+ * carry (it is per-session and read-only). The THREAD variant is the
252
+ * deprecated half: for a sandbox-backed interactive turn the tab should
253
+ * attach to the session gateway directly instead of to this socket. See
254
+ * {@link broadcastTurnStreamEvent} for the measurement and the replacement
255
+ * wiring.
256
+ */
257
+ export declare function createTurnStreamUpgradeHandler(options: CreateTurnStreamUpgradeHandlerOptions): (request: Request) => Promise<Response | null>;
@@ -0,0 +1,293 @@
1
+ /**
2
+ * `/turn-stream` core — the pure, substrate-free half of the shared durable
3
+ * turn replay/broadcast/lock channel (issue #221).
4
+ *
5
+ * Extracted from the reference consumer's hand-rolled Durable Object
6
+ * (gtm-agent `SessionStreamDO` + `session-broadcast.ts`): the per-turn
7
+ * segment store that backs reconnect replay over a live socket, the
8
+ * single-flight chat-turn lock record and its release fences, and the wire
9
+ * contract (channel keys, endpoint paths, request/response bodies) shared by
10
+ * the DO transport shell (`./do`) and the worker-side adapters
11
+ * (`./adapters`). Everything here is plain data + functions — no
12
+ * `cloudflare:workers`, no storage, no sockets — so the semantics are
13
+ * unit-testable in Node and the DO stays a thin shell.
14
+ *
15
+ * ── The two-lane rule (measured, not assumed) ────────────────────────────
16
+ *
17
+ * A 4-arm A/B on production (sandbox.tangle.tools, SDK 0.12.0, one box, one
18
+ * gateway client per arm) established which sandbox lane a browser can see:
19
+ *
20
+ * | turn driver | raw turn events | seen at gateway |
21
+ * | ------------------------------------ | --------------- | --------------- |
22
+ * | `box.streamPrompt()` (run/stream) | 71 / 527 / 408 | 0 / 0 / 0 |
23
+ * | `box.session(id).sendMessage()` | 297 | 297 |
24
+ *
25
+ * `POST /agents/run/stream` publishes nothing to the sidecar session event
26
+ * bus, so a `SessionGatewayClient` attached to that session receives zero
27
+ * turn events — three different session-id strategies all got 0, the id was
28
+ * not the variable. `POST /agents/sessions/{id}/messages` publishes to the
29
+ * bus and the gateway delivered every frame, byte-matching the sidecar tail.
30
+ *
31
+ * Consequences for this module, and they cut both ways:
32
+ *
33
+ * 1. INTERACTIVE sandbox turns should be driven on the message lane and
34
+ * tailed by the browser through `box.mintScopedToken({ scope: 'session' })`
35
+ * + `SessionGatewayClient`. Re-broadcasting those same events through the
36
+ * per-turn SEGMENT buffer below duplicates the SDK and adds a worker hop.
37
+ * That half is `@deprecated` (see the tags on {@link createSegmentStore},
38
+ * {@link appendSegmentEvent}, {@link replayActiveSegment} and
39
+ * `broadcastTurnStreamEvent` in `./adapters`).
40
+ * 2. DETACHED/autonomous turns are INVISIBLE to the gateway:
41
+ * `dispatchPrompt({ detach: true })` and `driveTurn` both go through
42
+ * `streamPrompt` internally, i.e. the run/stream lane, which does not fan
43
+ * out. A browser that must tail an unattended run still needs a buffer —
44
+ * `runDetachedTurn` (`/chat-routes`) over the durable turn-event rows
45
+ * below. That half is NOT deprecated and has no SDK replacement today.
46
+ * 3. The LOCK and the per-workspace SIGNALS have no gateway equivalent at
47
+ * all (the gateway is per-session and read-only). They stay canonical.
48
+ *
49
+ * Server-side resume of a run/stream turn is also already solved by the SDK
50
+ * and needs nothing here: `box.streamPrompt('', { executionId, lastEventId })`
51
+ * replays strictly after the cursor without re-dispatching — measured across
52
+ * a SIGKILL mid-run and a fresh process resuming from the cursor alone:
53
+ * 0 lost, 0 duplicated, 0 out-of-order, ids 1..517 contiguous.
54
+ */
55
+ /** One event on a turn-stream channel. `seq` is monotonic within a turn
56
+ * segment and assigned by {@link appendSegmentEvent} on arrival at the DO. */
57
+ export interface TurnStreamEvent {
58
+ type: string;
59
+ data?: unknown;
60
+ timestamp: number;
61
+ seq?: number;
62
+ }
63
+ /** Terminal run markers: they close a turn segment and auto-release the
64
+ * channel's chat-turn lock for the segment's execution.
65
+ *
66
+ * KEPT (not deprecated with the segment buffer): the lock auto-release
67
+ * reads it. A product that stops broadcasting turn events to the thread
68
+ * channel loses only that auto-release — the cooperative release on settle
69
+ * (`createDurableTurnLock().release`) and `reconcileStaleDurableTurnLock`
70
+ * both still fire, which is what actually frees a wedged lane. */
71
+ export declare function isTerminalRunEvent(type: string): boolean;
72
+ /** Define the scope level for acquiring a turn lock within thread or workspace contexts */
73
+ export type TurnLockScope = 'thread' | 'workspace';
74
+ /** Generate a unique string key combining workspace and thread identifiers.
75
+ *
76
+ * KEPT: thread-scope LOCKS are keyed on it (see {@link turnLockChannelKey}).
77
+ * Only its second use — addressing a live-viewer socket for interactive
78
+ * sandbox-turn rebroadcast — is superseded by the session gateway. */
79
+ export declare function threadChannelKey(workspaceId: string, threadId: string): string;
80
+ /** Generate a unique channel key based on the given workspace identifier.
81
+ *
82
+ * KEPT and canonical: the per-workspace signal channel (`thread.created`,
83
+ * `thread.activity`) plus workspace-scope locks. The session gateway is
84
+ * per-SESSION and read-only, so it cannot carry either. */
85
+ export declare function workspaceChannelKey(workspaceId: string): string;
86
+ /** The channel a lock lives on: workspace-scope locks serialize every thread
87
+ * in the workspace (one shared sandbox), thread-scope locks serialize one
88
+ * thread (router lane). Same keying as the reference consumer, so a product
89
+ * swapping its fork for this package contends on identical instances. */
90
+ export declare function turnLockChannelKey(workspaceId: string, threadId: string, scope: TurnLockScope): string;
91
+ /** Generate a storage channel key string for a given turn identifier.
92
+ *
93
+ * KEPT and canonical: the DETACHED lane's durable turn-event rows live on
94
+ * this instance. A detached run never reaches the session gateway, so this
95
+ * is the only way a browser tails one. */
96
+ export declare function turnStorageChannelKey(turnId: string): string;
97
+ /** Generate a unique channel key string based on the provided scope identifier.
98
+ *
99
+ * KEPT and canonical: backs `TurnEventStore.listRunning`, which is how a
100
+ * reloaded client rediscovers an in-flight DETACHED turn. */
101
+ export declare function scopeIndexChannelKey(scopeId: string): string;
102
+ /** DEPRECATED (interactive turn-rebroadcast buffer) — represent a segment of a turn containing events, sequence limit, and terminal status.
103
+ *
104
+ * @deprecated Part of the interactive turn-rebroadcast buffer — see the
105
+ * two-lane rule in this file's header. Removal is a major-version change. */
106
+ export interface TurnSegment {
107
+ events: TurnStreamEvent[];
108
+ maxSeq: number;
109
+ terminal: boolean;
110
+ }
111
+ /** DEPRECATED (interactive turn-rebroadcast buffer) — define a store managing segments and tracking the active execution identifier.
112
+ *
113
+ * @deprecated Part of the interactive turn-rebroadcast buffer — see the
114
+ * two-lane rule in this file's header. Removal is a major-version change. */
115
+ export interface SegmentStore {
116
+ segments: Map<string, TurnSegment>;
117
+ activeExecutionId: string | null;
118
+ }
119
+ /** DEPRECATED (interactive turn-rebroadcast buffer) — per-turn replay window. Generous enough for normal turns; a turn that
120
+ * exceeds it loses its earliest deltas from replay (a late resumer
121
+ * self-heals via the final `result` event + loader revalidation).
122
+ *
123
+ * @deprecated Sizes the interactive turn-rebroadcast buffer only. The
124
+ * DETACHED lane's durable rows (`turnEvent:` storage) are uncapped and are
125
+ * not affected. */
126
+ export declare const MAX_SEGMENT_EVENTS = 2000;
127
+ /** Recent `thread.created` markers kept for late-connecting sidebars.
128
+ *
129
+ * KEPT: a workspace-level signal, not a turn rebroadcast. */
130
+ export declare const MAX_RECENT_CREATED = 50;
131
+ /** A responding marker older than this is treated as stale, so a dropped
132
+ * `end` broadcast can't leave a permanently-stuck "responding" dot. */
133
+ export declare const ACTIVITY_TTL_MS: number;
134
+ /** DEPRECATED (interactive sandbox-turn rebroadcast; the SDK's session gateway replaces it) — create a SegmentStore with initialized segments and no active execution ID.
135
+ *
136
+ * @deprecated Backs the interactive sandbox-turn rebroadcast, which the
137
+ * sandbox SDK already does better (measured: run/stream → 0 frames at the
138
+ * gateway, message lane → 297/297; see the two-lane rule in this file's
139
+ * header). Sandbox turns: drive on `box.session(id).sendMessage()` and let
140
+ * the browser attach with `box.mintScopedToken({ scope: 'session' })` +
141
+ * `SessionGatewayClient`. Sandbox-FREE turns: `/stream`'s
142
+ * `replayTurnEvents` (`GET /chat/stream/:turnId`) already follows a running
143
+ * turn from a cursor. Detached turns keep the durable turn-event rows —
144
+ * they are a different, non-deprecated lane. Removal is a major-version
145
+ * change; nothing is deleted here. */
146
+ export declare function createSegmentStore(): SegmentStore;
147
+ /**
148
+ * DEPRECATED (interactive turn-rebroadcast buffer) — append a per-turn event to
149
+ * its execution's segment, assigning a monotonic
150
+ * `seq`. A `session.run.started` (or the first-seen event for an execution)
151
+ * opens a fresh segment, makes it active, and drops prior turns' buffers so a
152
+ * resumer only ever replays the current turn. A terminal run event marks the
153
+ * segment terminal. Returns the seq-stamped event to broadcast.
154
+ *
155
+ * @deprecated The interactive rebroadcast half — {@link createSegmentStore}
156
+ * names the replacement per lane; this file's header holds the measurement.
157
+ */
158
+ export declare function appendSegmentEvent(store: SegmentStore, executionId: string, incoming: TurnStreamEvent, maxEvents?: number): TurnStreamEvent;
159
+ /**
160
+ * DEPRECATED (interactive turn-rebroadcast buffer; the SDK replays losslessly on
161
+ * both lanes) — events of the active, non-terminal turn with `seq > afterSeq`,
162
+ * i.e. what a
163
+ * (re)connecting client replays before going live. A terminal (finished) turn
164
+ * replays nothing: the client falls back to the loader's persisted row.
165
+ *
166
+ * @deprecated The interactive rebroadcast half — {@link createSegmentStore}
167
+ * names the replacement per lane. The SDK's own reconnect replay is
168
+ * `SessionGatewayClient` + `lastEventId` (browser) or
169
+ * `box.streamPrompt('', { executionId, lastEventId })` (worker); both were
170
+ * measured lossless.
171
+ */
172
+ export declare function replayActiveSegment(store: SegmentStore, afterSeq: number): TurnStreamEvent[];
173
+ /**
174
+ * Remove responding entries (threadId → startedAt) older than `ttlMs`, so a
175
+ * dropped `end` broadcast can't leave a permanently-stuck dot. Mutates
176
+ * `active` and returns the removed thread ids.
177
+ */
178
+ export declare function pruneStaleThreads(active: Map<string, number>, now: number, ttlMs: number): string[];
179
+ /** Default lifetime of an unreleased lock. Long enough that a legitimately
180
+ * slow sandbox turn never loses its guard mid-run; the way OUT of a wedge is
181
+ * never the TTL but `reconcileStaleTurnLock` (in `/chat-routes`), which
182
+ * probes the execution's actual state.
183
+ *
184
+ * Everything from here down is the LOCK, and it is fully KEPT. The sandbox
185
+ * SDK ships no single-flight primitive — the session gateway is a read-only
186
+ * fanout — so moving a product to the message lane changes nothing about
187
+ * who is allowed to start a turn. */
188
+ export declare const TURN_LOCK_TTL_MS: number;
189
+ /** The stored single-flight lock. Field-compatible with the reference
190
+ * consumer's `ChatTurnLock` so adoption is a swap, not a migration. */
191
+ export interface DurableTurnLock {
192
+ workspaceId: string;
193
+ threadId: string;
194
+ scope: TurnLockScope;
195
+ executionId: string;
196
+ lockId: string;
197
+ startedAt: number;
198
+ expiresAt: number;
199
+ turnId?: string;
200
+ /** The turn released this lock, but a product-owned post-turn task (e.g.
201
+ * file persistence reading the box) is still running, so the release is
202
+ * parked on the lock until the task settles. Written only through the DO's
203
+ * defer seam — the base package never sets it on its own. */
204
+ releasePending?: boolean;
205
+ }
206
+ /** Define input parameters required to acquire a turn-based lock in a workspace thread */
207
+ export interface TurnLockAcquireInput {
208
+ workspaceId: string;
209
+ threadId: string;
210
+ scope: TurnLockScope;
211
+ executionId: string;
212
+ lockId: string;
213
+ turnId?: string;
214
+ }
215
+ /** Resolve the result of attempting to acquire a turn lock indicating success or active lock status */
216
+ export type TurnLockAcquireResult = {
217
+ acquired: true;
218
+ lock: DurableTurnLock;
219
+ } | {
220
+ acquired: false;
221
+ active: DurableTurnLock;
222
+ };
223
+ /** Define input parameters required to release a turn lock in a specific workspace thread */
224
+ export interface TurnLockReleaseInput {
225
+ workspaceId: string;
226
+ threadId: string;
227
+ scope: TurnLockScope;
228
+ executionId: string;
229
+ lockId: string;
230
+ }
231
+ /** Fenced out-of-band release (stop button, stale-lock reconciliation). The
232
+ * fences make it refuse a SUCCESSOR lock: `interruptedAt` must not precede
233
+ * the lock's own start, and when either side names a turn, both must name
234
+ * the same one. */
235
+ export interface TurnLockInterruptedReleaseInput {
236
+ workspaceId: string;
237
+ threadId: string;
238
+ /** Try only this scope; omit to try workspace then thread. */
239
+ scope?: TurnLockScope;
240
+ interruptedAt: number;
241
+ turnId?: string;
242
+ }
243
+ /** `stored` is what the DO read from storage; expired locks are dead. */
244
+ export declare function activeTurnLock(stored: DurableTurnLock | undefined, now: number): DurableTurnLock | null;
245
+ /** Create a durable turn lock object with timing and scope based on input parameters */
246
+ export declare function createTurnLock(input: TurnLockAcquireInput, now: number, ttlMs?: number): DurableTurnLock;
247
+ /** A cooperative release must present the lock's own identity — both the
248
+ * execution and the lockId minted at acquire — so a retry of a PREVIOUS turn
249
+ * can never release the current one. `lockId` is optional only for the DO's
250
+ * internal terminal-event auto-release, which knows the execution but not
251
+ * the caller-held lockId. */
252
+ export declare function turnLockMatchesRelease(active: DurableTurnLock, input: {
253
+ executionId: string;
254
+ lockId?: string;
255
+ }): boolean;
256
+ /**
257
+ * The interrupted/stale release fence. `interruptedAt` is the instant the
258
+ * releasing evidence was observed (the stop click, the stale-lock probe) —
259
+ * a lock STARTED after that instant is a successor the evidence says nothing
260
+ * about, so it survives. When the lock recorded a client turnId, the release
261
+ * must name the same turn; a lock without one refuses a turn-specific
262
+ * release (it cannot prove it is that turn).
263
+ */
264
+ export declare function interruptedReleaseApplies(active: DurableTurnLock, input: {
265
+ threadId: string;
266
+ interruptedAt: number;
267
+ turnId?: string;
268
+ }): boolean;
269
+ /** Provide constant paths for managing chat turn streams and locks */
270
+ export declare const TURN_STREAM_PATHS: {
271
+ readonly broadcast: "/broadcast";
272
+ readonly lockAcquire: "/chat-turn-lock/acquire";
273
+ readonly lockRelease: "/chat-turn-lock/release";
274
+ readonly lockReleaseInterrupted: "/chat-turn-lock/release-interrupted";
275
+ readonly turnEventsAppend: "/turn-events/append";
276
+ readonly turnEventsRead: "/turn-events/read";
277
+ readonly turnStatusSet: "/turn-status/set";
278
+ readonly turnStatusGet: "/turn-status/get";
279
+ readonly scopeStatusSet: "/turn-scope/set";
280
+ readonly scopeRunningList: "/turn-scope/running";
281
+ };
282
+ /** Storage keys inside a DO instance. Exported for subclass coexistence —
283
+ * a product extending the DO must not collide with these. */
284
+ export declare const TURN_STREAM_STORAGE_KEYS: {
285
+ readonly lock: "chatTurnLock";
286
+ readonly activeThreads: "activeThreads";
287
+ readonly turnStatus: "turnStatus";
288
+ readonly turnScope: "turnScopeIndex";
289
+ readonly turnEventPrefix: "turnEvent:";
290
+ };
291
+ /** Zero-padded seq so DO storage `list({ prefix })` returns rows in replay
292
+ * order without a sort. 10 digits holds any realistic turn. */
293
+ export declare function turnEventStorageKey(seq: number): string;