@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
@@ -1,5 +1,4 @@
1
- import { ReasoningEffort } from '@tangle-network/agent-interface';
2
-
1
+ import type { ReasoningEffort } from '@tangle-network/agent-interface';
3
2
  /**
4
3
  * Wire contract between the chat client (composer + `streamChatTurn`) and the
5
4
  * assembled server vertical (`createChatTurnRoutes`). Runtime-import-free on
@@ -10,7 +9,7 @@ import { ReasoningEffort } from '@tangle-network/agent-interface';
10
9
  * it to the URL required by the sandbox SDK. It is derived here, not imported,
11
10
  * so the client bundle never touches the SDK.
12
11
  */
13
- interface ChatTurnTextPartInput {
12
+ export interface ChatTurnTextPartInput {
14
13
  type: 'text';
15
14
  text: string;
16
15
  }
@@ -18,7 +17,7 @@ interface ChatTurnTextPartInput {
18
17
  * on send. `url` carries an inline `data:` URI for small files; `path` is a
19
18
  * sandbox workspace reference for large ones (the >1 MiB gateway body cap
20
19
  * makes the two-step upload mandatory). */
21
- interface ChatTurnFilePartInput {
20
+ export interface ChatTurnFilePartInput {
22
21
  type: 'image' | 'file';
23
22
  filename?: string;
24
23
  mediaType?: string;
@@ -26,21 +25,21 @@ interface ChatTurnFilePartInput {
26
25
  path?: string;
27
26
  }
28
27
  /** Resolve input as either a text part or a file part of a chat turn */
29
- type ChatTurnPartInput = ChatTurnTextPartInput | ChatTurnFilePartInput;
28
+ export type ChatTurnPartInput = ChatTurnTextPartInput | ChatTurnFilePartInput;
30
29
  /** A chat turn's automatic sentinel plus the canonical agent reasoning levels. */
31
- type ChatReasoningEffort = 'auto' | ReasoningEffort;
30
+ export type ChatReasoningEffort = 'auto' | ReasoningEffort;
32
31
  /** Represent a text event produced by a source with a fixed type and associated text content */
33
- interface ProducerTextEvent {
32
+ export interface ProducerTextEvent {
34
33
  type: 'text';
35
34
  text: string;
36
35
  }
37
36
  /** Define an event representing reasoning output with a fixed type and associated text */
38
- interface ProducerReasoningEvent {
37
+ export interface ProducerReasoningEvent {
39
38
  type: 'reasoning';
40
39
  text: string;
41
40
  }
42
41
  /** Represent an event triggered by a producer tool call with its identifier, name, and arguments */
43
- interface ProducerToolCallEvent {
42
+ export interface ProducerToolCallEvent {
44
43
  type: 'tool_call';
45
44
  call: {
46
45
  toolCallId: string;
@@ -49,7 +48,7 @@ interface ProducerToolCallEvent {
49
48
  };
50
49
  }
51
50
  /** Describe the structure of an event representing the result of a producer tool call */
52
- interface ProducerToolResultEvent {
51
+ export interface ProducerToolResultEvent {
53
52
  type: 'tool_result';
54
53
  toolCallId: string;
55
54
  toolName: string;
@@ -60,7 +59,7 @@ interface ProducerToolResultEvent {
60
59
  };
61
60
  }
62
61
  /** Describe usage event with prompt and completion token counts for a producer */
63
- interface ProducerUsageEvent {
62
+ export interface ProducerUsageEvent {
64
63
  type: 'usage';
65
64
  usage: {
66
65
  promptTokens: number;
@@ -68,7 +67,7 @@ interface ProducerUsageEvent {
68
67
  };
69
68
  }
70
69
  /** Define the structure for a producer notice event with type, id, kind, and text fields */
71
- interface ProducerNoticeEvent {
70
+ export interface ProducerNoticeEvent {
72
71
  type: 'notice';
73
72
  id: string;
74
73
  /** Kept inline with `/interactions`' `NoticeKind` so this file stays import-free. */
@@ -76,7 +75,7 @@ interface ProducerNoticeEvent {
76
75
  text: string;
77
76
  }
78
77
  /** Represent an error event emitted by a producer containing message, code, and optional details */
79
- interface ProducerErrorEvent {
78
+ export interface ProducerErrorEvent {
80
79
  type: 'error';
81
80
  data: {
82
81
  message: string;
@@ -85,16 +84,16 @@ interface ProducerErrorEvent {
85
84
  };
86
85
  }
87
86
  /** Stable raw lifecycle/interaction/plan/route events forwarded unchanged. */
88
- type ProducerPassthroughEventType = 'turn' | 'metadata' | 'interaction' | 'interaction.cancel' | 'plan.submitted' | 'done' | 'warning' | 'session.run.started' | 'session.run.completed' | 'session.run.failed' | 'turn_status';
87
+ export type ProducerPassthroughEventType = 'turn' | 'metadata' | 'interaction' | 'interaction.cancel' | 'plan.submitted' | 'done' | 'warning' | 'session.run.started' | 'session.run.completed' | 'session.run.failed' | 'turn_status';
89
88
  /** Define an event carrying passthrough data with flexible properties for producer communication */
90
- interface ProducerPassthroughEvent {
89
+ export interface ProducerPassthroughEvent {
91
90
  type: ProducerPassthroughEventType;
92
91
  data?: Record<string, unknown>;
93
92
  /** Route markers and raw passthroughs may carry `turnId`, `status`, `seq`, etc. */
94
93
  [key: string]: unknown;
95
94
  }
96
95
  /** Represent events emitted by a producer during its operation for processing and handling */
97
- type ProducerWireEvent = ProducerTextEvent | ProducerReasoningEvent | ProducerToolCallEvent | ProducerToolResultEvent | ProducerUsageEvent | ProducerNoticeEvent | ProducerErrorEvent | ProducerPassthroughEvent;
96
+ export type ProducerWireEvent = ProducerTextEvent | ProducerReasoningEvent | ProducerToolCallEvent | ProducerToolResultEvent | ProducerUsageEvent | ProducerNoticeEvent | ProducerErrorEvent | ProducerPassthroughEvent;
98
97
  /** The image/file split an attachment is rendered and persisted under — the
99
98
  * same discriminant as {@link ChatMentionKind}, but a distinct name because an
100
99
  * attachment carries content the product uploaded (`ChatAttachmentInput`)
@@ -102,14 +101,14 @@ type ProducerWireEvent = ProducerTextEvent | ProducerReasoningEvent | ProducerTo
102
101
  * import-free layer) so `ChatAttachmentInput` can reference it and the client
103
102
  * composer imports it without pulling the persisted-part vocabulary;
104
103
  * `/chat-store`'s parts module re-exports it alongside the attachment helpers. */
105
- type ChatAttachmentKind = 'image' | 'file';
104
+ export type ChatAttachmentKind = 'image' | 'file';
106
105
  /** `POST` turn-body entry describing a file already uploaded to the product's
107
106
  * store (vault/object-store) — distinct from an inline {@link
108
107
  * ChatTurnFilePartInput} (which carries bytes) and from a {@link FileMention}
109
108
  * (a sandbox path the box already holds). The route resolves this field with
110
109
  * {@link resolveChatAttachments}: every path is re-validated and every size is
111
110
  * re-derived from the stored body, so nothing here is trusted as sent. */
112
- interface ChatAttachmentInput {
111
+ export interface ChatAttachmentInput {
113
112
  path: string;
114
113
  name: string;
115
114
  size: number;
@@ -119,7 +118,7 @@ interface ChatAttachmentInput {
119
118
  /** POST body for the turn route. `content` may be empty when `parts` carry the
120
119
  * message (an image-only send). Product routing fields (workspaceId etc.) ride
121
120
  * alongside and are read by the product's `authorize` seam. */
122
- interface ChatTurnRequestPayload {
121
+ export interface ChatTurnRequestPayload {
123
122
  threadId: string;
124
123
  content?: string;
125
124
  /** Non-text parts from the upload route, echoed back verbatim. */
@@ -148,32 +147,32 @@ interface ChatTurnRequestPayload {
148
147
  /** `fetch` init for the turn route — the one place the client wire shape is
149
148
  * serialized, so composer glue and products never drift from the server's
150
149
  * parser. */
151
- declare function chatTurnRequestInit(payload: ChatTurnRequestPayload): RequestInit;
150
+ export declare function chatTurnRequestInit(payload: ChatTurnRequestPayload): RequestInit;
152
151
  /** Define the maximum byte size allowed for inline parts in data processing */
153
- declare const INLINE_PARTS_MAX_BYTES = 950000;
152
+ export declare const INLINE_PARTS_MAX_BYTES = 950000;
154
153
  /** Hard cap on the whole `/prompt` request body as it crosses the sandbox
155
154
  * proxy — smaller in practice than a raw-file write cap because a dispatch
156
155
  * carries several inline parts plus the flattened history in one request. */
157
- declare const DISPATCH_REQUEST_MAX_BYTES: number;
156
+ export declare const DISPATCH_REQUEST_MAX_BYTES: number;
158
157
  /** Bytes reserved off the top of {@link DISPATCH_REQUEST_MAX_BYTES} for the
159
158
  * JSON structure around the parts array (keys, delimiters, per-part
160
159
  * `type`/`filename`/`mediaType` fields) that {@link base64WireLen} does not
161
160
  * account for — keeps the inline budget off the exact proxy cap where one
162
161
  * stray byte trips the 413. */
163
- declare const DISPATCH_STRUCTURAL_RESERVE_BYTES: number;
162
+ export declare const DISPATCH_STRUCTURAL_RESERVE_BYTES: number;
164
163
  /** Sidecar's hard cap on the `parts` array of one prompt request — a dispatch
165
164
  * must never assemble more parts than this or the whole turn 400s. */
166
- declare const DISPATCH_MAX_PARTS = 64;
165
+ export declare const DISPATCH_MAX_PARTS = 64;
167
166
  /** Product-side cap on media parts per dispatch (current turn + carried
168
167
  * history), well under {@link DISPATCH_MAX_PARTS}. History trimming that keeps
169
168
  * a transcript's native media under this is a PRODUCT concern (the pointer
170
169
  * block keeps trimmed media reachable); `buildDispatchParts` enforces only the
171
170
  * total {@link DISPATCH_MAX_PARTS} cap. */
172
- declare const DISPATCH_MAX_MEDIA_PARTS = 24;
171
+ export declare const DISPATCH_MAX_MEDIA_PARTS = 24;
173
172
  /** Size a base64-encoded string occupies on the wire given the raw
174
173
  * (pre-encoding) byte length: base64 packs 3 raw bytes into 4 output
175
174
  * characters, rounded up to the next multiple of 4. */
176
- declare function base64WireLen(byteLen: number): number;
175
+ export declare function base64WireLen(byteLen: number): number;
177
176
  /**
178
177
  * Render a raw byte count as a human-readable size (`512B`, `3KB`, `12MB
179
178
  * 500KB`). Ported EXACTLY from gtm-agent's `attachment-limits.ts` — byte-
@@ -185,42 +184,42 @@ declare function base64WireLen(byteLen: number): number;
185
184
  * formatting for a client-side pre-check can also import it with no engine
186
185
  * pulled in.
187
186
  */
188
- declare function formatBytes(bytes: number): string;
187
+ export declare function formatBytes(bytes: number): string;
189
188
  /** Represent errors for invalid chat turn inputs with status and code properties */
190
- declare class ChatTurnInputError extends Error {
189
+ export declare class ChatTurnInputError extends Error {
191
190
  readonly status: number;
192
191
  readonly code: string;
193
192
  constructor(message: string, status?: number, code?: string);
194
193
  }
195
194
  /** Calculate the total byte size of an array of chat turn parts */
196
- declare function promptPartsByteSize(parts: ChatTurnPartInput[]): number;
195
+ export declare function promptPartsByteSize(parts: ChatTurnPartInput[]): number;
197
196
  /** Throws `ChatTurnInputError` (413) when the parts' inline payload would blow
198
197
  * the gateway cap. Path-ref parts are tiny by construction and always pass. */
199
- declare function assertPromptPartsWithinCap(parts: ChatTurnPartInput[], maxBytes?: number): void;
198
+ export declare function assertPromptPartsWithinCap(parts: ChatTurnPartInput[], maxBytes?: number): void;
200
199
  /** A file mention resolved from the composer's `@`-picker: the
201
200
  * workspace-relative path plus enough metadata to build a prompt part and
202
201
  * pointer text. `path` is the canonical identity — the mention pill's
203
202
  * `MentionItem.id` for the file kind (`/web-react`'s `useFileMentions`). */
204
- interface FileMention {
203
+ export interface FileMention {
205
204
  path: string;
206
205
  name: string;
207
206
  size?: number;
208
207
  }
209
208
  /** The `image/*` mime for a mention path by extension, or `undefined` for
210
209
  * anything not in the known image set (dispatched as `type: 'file'`). */
211
- declare function mediaTypeForMentionPath(path: string): string | undefined;
210
+ export declare function mediaTypeForMentionPath(path: string): string | undefined;
212
211
  /** The image/file split a mention is rendered and persisted under — the
213
212
  * composer pill's icon, the dispatched part's `type`, and
214
213
  * `ChatMentionPart.mentionKind` are all this one value. */
215
- type ChatMentionKind = 'image' | 'file';
214
+ export type ChatMentionKind = 'image' | 'file';
216
215
  /** `image` when the path's extension is in the known image set (the same table
217
216
  * {@link mediaTypeForMentionPath} reads), `file` otherwise. Exported so a
218
217
  * client that needs only the discriminant — a pill icon, a persisted part's
219
218
  * `mentionKind` — never re-declares the extension table; two frozen copies of
220
219
  * one mime table is how one gains a format and the other doesn't. */
221
- declare function mentionKindForPath(path: string): ChatMentionKind;
220
+ export declare function mentionKindForPath(path: string): ChatMentionKind;
222
221
  /** Define options to resolve mention paths when converting file mentions to parts */
223
- interface FileMentionsToPartsOptions {
222
+ export interface FileMentionsToPartsOptions {
224
223
  /** Resolve a mention's workspace-relative path to the absolute path the
225
224
  * dispatched part should carry (e.g. a host prefixing the in-box vault
226
225
  * root). Default: identity — the path travels unchanged. */
@@ -230,18 +229,18 @@ interface FileMentionsToPartsOptions {
230
229
  * `image` vs `file` by extension, and always a `path`, never a `url` (the
231
230
  * url/path XOR invariant: a mention is a sandbox path reference, never
232
231
  * inline bytes). */
233
- declare function fileMentionsToParts(mentions: readonly FileMention[], opts?: FileMentionsToPartsOptions): ChatTurnFilePartInput[];
232
+ export declare function fileMentionsToParts(mentions: readonly FileMention[], opts?: FileMentionsToPartsOptions): ChatTurnFilePartInput[];
234
233
  /** The agent-facing pointer block appended to the dispatched prompt — never
235
234
  * persisted in message `content`. Empty array → `''` so callers can append
236
235
  * unconditionally. This is the sole producer of that text: the current
237
236
  * turn's dispatch and any history projection built from the same mention
238
237
  * list both route through here, so the two can't drift apart. */
239
- declare function buildMentionPromptBlock(mentions: readonly Pick<FileMention, 'name' | 'path'>[]): string;
238
+ export declare function buildMentionPromptBlock(mentions: readonly Pick<FileMention, 'name' | 'path'>[]): string;
240
239
  /** Hard cap on mentions per turn. Bounds the prompt pointer block, the
241
240
  * persisted parts, and whatever media budget a dispatch draws from them. */
242
- declare const MENTION_MAX_COUNT = 16;
241
+ export declare const MENTION_MAX_COUNT = 16;
243
242
  /** Represent the result of a sandbox mention path check indicating success or failure with an error message */
244
- type SandboxMentionPathCheck = {
243
+ export type SandboxMentionPathCheck = {
245
244
  succeeded: true;
246
245
  } | {
247
246
  succeeded: false;
@@ -257,7 +256,7 @@ type SandboxMentionPathCheck = {
257
256
  * and an ASCII-only charset would silently drop real files from a feature
258
257
  * whose whole job is naming them.
259
258
  */
260
- declare function validateSandboxMentionPath(path: unknown): SandboxMentionPathCheck;
259
+ export declare function validateSandboxMentionPath(path: unknown): SandboxMentionPathCheck;
261
260
  /**
262
261
  * Validates the untyped `mentions` array off the wire, mirroring
263
262
  * {@link parseChatTurnParts}: the typed list, or `ChatTurnInputError` (400)
@@ -268,9 +267,7 @@ declare function validateSandboxMentionPath(path: unknown): SandboxMentionPathCh
268
267
  * than rejected: mentioning the same file twice is plausible user input, not
269
268
  * an attack.
270
269
  */
271
- declare function parseFileMentions(raw: unknown): FileMention[];
270
+ export declare function parseFileMentions(raw: unknown): FileMention[];
272
271
  /** Validates the untyped `parts` array off the wire. Returns the typed parts
273
272
  * or throws `ChatTurnInputError` (400) naming the offending entry. */
274
- declare function parseChatTurnParts(raw: unknown): ChatTurnFilePartInput[];
275
-
276
- export { formatBytes as A, mediaTypeForMentionPath as B, type ChatMentionKind as C, DISPATCH_MAX_MEDIA_PARTS as D, mentionKindForPath as E, type FileMention as F, parseChatTurnParts as G, parseFileMentions as H, INLINE_PARTS_MAX_BYTES as I, promptPartsByteSize as J, validateSandboxMentionPath as K, MENTION_MAX_COUNT as M, type ProducerErrorEvent as P, type SandboxMentionPathCheck as S, type ChatAttachmentKind as a, type ChatAttachmentInput as b, type ChatTurnRequestPayload as c, type ChatTurnPartInput as d, type ChatTurnFilePartInput as e, type ChatReasoningEffort as f, ChatTurnInputError as g, type ChatTurnTextPartInput as h, DISPATCH_MAX_PARTS as i, DISPATCH_REQUEST_MAX_BYTES as j, DISPATCH_STRUCTURAL_RESERVE_BYTES as k, type FileMentionsToPartsOptions as l, type ProducerNoticeEvent as m, type ProducerPassthroughEvent as n, type ProducerPassthroughEventType as o, type ProducerReasoningEvent as p, type ProducerTextEvent as q, type ProducerToolCallEvent as r, type ProducerToolResultEvent as s, type ProducerUsageEvent as t, type ProducerWireEvent as u, assertPromptPartsWithinCap as v, base64WireLen as w, buildMentionPromptBlock as x, chatTurnRequestInit as y, fileMentionsToParts as z };
273
+ export declare function parseChatTurnParts(raw: unknown): ChatTurnFilePartInput[];
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Pure (drizzle-free) pieces of the chat store: thread-title derivation, the
3
+ * bulk-delete bound, and the typed input error. Split from `./schema`/`./store`
4
+ * so the root barrel can re-export them without dragging the optional
5
+ * drizzle-orm peer into every root-entry consumer.
6
+ */
7
+ /** Bounds a single bulk-delete request's write set; product surfaces cap
8
+ * thread lists at far fewer, so a larger batch is a malformed or hostile
9
+ * request. (Lifted from legal's api.threads.bulk-delete route.) */
10
+ export declare const BULK_DELETE_MAX_THREADS = 200;
11
+ /** Invalid caller input (missing/oversized ids, empty title). Products map it
12
+ * to a 400; anything else out of the store is a real failure. */
13
+ export declare class ChatStoreInputError extends Error {
14
+ constructor(message: string);
15
+ }
16
+ /** Thread titles come from the first message — keep the list scannable by
17
+ * storing only its first non-empty line, capped at 80 chars, never the whole
18
+ * multi-page prompt. (Lifted verbatim from legal's chat.new route.) */
19
+ export declare function threadTitleFromMessage(message: string): string;
@@ -1,326 +1,26 @@
1
- import { C as ChatMessagePart } from '../parts-BqIHMdyu.js';
2
- export { a as ChatAttachmentPart, b as ChatFilePart, c as ChatImagePart, d as ChatInteractionPart, e as ChatMentionPart, f as ChatNoticePart, g as ChatPartTime, h as ChatPlanPart, i as ChatReasoningPart, j as ChatStepFinishPart, k as ChatStepStartPart, l as ChatSubtaskPart, m as ChatTextPart, n as ChatToolPart, o as ChatToolState, p as ChatToolStatus, q as ChatUsageTokens, r as ChatWorkProductPart, D as DEFAULT_ATTACHMENT_PROMPT_HEADER, S as StorableHarnessPartKind, s as attachmentInputToPart, t as attachmentKindForMime, u as attachmentPartsFromMessageParts, v as buildAttachmentPromptBlock, w as historyContentWithAttachments, x as isChatAttachmentPart, y as isChatInteractionPart, z as isChatMentionPart, A as isChatPlanPart, B as isChatStepFinishPart, E as isChatTextPart, F as isChatToolPart, G as isChatWorkProductPart, H as mentionInputToPart, I as mentionPartsFromMessageParts, J as toChatMessageParts } from '../parts-BqIHMdyu.js';
3
- import * as drizzle_orm from 'drizzle-orm';
4
- import { SQL } from 'drizzle-orm';
5
- import * as drizzle_orm_sqlite_core from 'drizzle-orm/sqlite-core';
6
- import { AnySQLiteColumn, SQLiteTableExtraConfigValue, SQLiteColumnBuilderBase, AnySQLiteTable, BaseSQLiteDatabase } from 'drizzle-orm/sqlite-core';
7
- import { SqliteBatchDatabase } from '../store/index.js';
8
- export { a as ChatAttachmentKind, C as ChatMentionKind } from '../wire-DOZ-O6hD.js';
9
- export { a as attachmentPartKey } from '../stream-normalizer-DKRxyVlZ.js';
10
- import '@tangle-network/agent-interface';
11
- import '../contract-OxG_jVMx.js';
12
- import '../types-CCeYywdS.js';
13
- import '../plans/index.js';
14
-
15
1
  /**
16
- * Pure (drizzle-free) pieces of the chat store: thread-title derivation, the
17
- * bulk-delete bound, and the typed input error. Split from `./schema`/`./store`
18
- * so the root barrel can re-export them without dragging the optional
19
- * drizzle-orm peer into every root-entry consumer.
20
- */
21
- /** Bounds a single bulk-delete request's write set; product surfaces cap
22
- * thread lists at far fewer, so a larger batch is a malformed or hostile
23
- * request. (Lifted from legal's api.threads.bulk-delete route.) */
24
- declare const BULK_DELETE_MAX_THREADS = 200;
25
- /** Invalid caller input (missing/oversized ids, empty title). Products map it
26
- * to a 400; anything else out of the store is a real failure. */
27
- declare class ChatStoreInputError extends Error {
28
- constructor(message: string);
29
- }
30
- /** Thread titles come from the first message — keep the list scannable by
31
- * storing only its first non-empty line, capped at 80 chars, never the whole
32
- * multi-page prompt. (Lifted verbatim from legal's chat.new route.) */
33
- declare function threadTitleFromMessage(message: string): string;
34
-
35
- /** A product table referenced by FK — only the `id` column is touched. */
36
- type ChatParentTable = AnySQLiteTable & {
37
- id: AnySQLiteColumn;
38
- };
39
- /** Define options to customize chat thread and message table creation including workspace and naming prefixes */
40
- interface CreateChatTablesOptions<TThreadExtras extends Record<string, SQLiteColumnBuilderBase> = {}, TMessageExtras extends Record<string, SQLiteColumnBuilderBase> = {}> {
41
- /** The product's workspace table — threads reference `workspaceTable.id`
42
- * with cascade. Omitted: `workspace_id` stays a plain indexed text column
43
- * (products whose tenant table lives in another database). */
44
- workspaceTable?: ChatParentTable;
45
- /** Prefixes table AND index names (`'chat_'` → `chat_thread`,
46
- * `idx_chat_thread_workspace`) for products that namespace chat tables in a
47
- * shared database. Default: unprefixed `thread`/`message` (legal/gtm row
48
- * compatibility). */
49
- tablePrefix?: string;
50
- /** Product columns merged into the thread table (the `/missions` extras
51
- * pattern) — e.g. a `status` lifecycle enum or gtm's scope columns. */
52
- threadExtraColumns?: TThreadExtras;
53
- /** Product columns merged into the message table — e.g. legal's
54
- * `vault_files`. */
55
- messageExtraColumns?: TMessageExtras;
56
- /**
57
- * Product indexes appended to the thread table's own, given the built
58
- * columns (extras included) so a product can index what it added.
59
- *
60
- * Names are used VERBATIM — `tablePrefix` is not applied — because these
61
- * have to byte-match indexes the product's migrations already created.
62
- *
63
- * Without this a product with one extra index cannot adopt the factory at
64
- * all: it keeps a hand-rolled duplicate of the same physical table, and the
65
- * two drift on the next factory change.
66
- */
67
- threadExtraIndexes?: ChatExtraIndexes;
68
- /** Product indexes appended to the message table's own. Same rules as
69
- * `threadExtraIndexes`. */
70
- messageExtraIndexes?: ChatExtraIndexes;
71
- }
72
- /**
73
- * Builds product indexes from a table's columns.
2
+ * `/chat-store` shared chat thread/message persistence (issue #188 Phase 1).
74
3
  *
75
- * The column map is passed untyped because its shape depends on the product's
76
- * own extras; the RETURN is drizzle's own extra-config type, so the spread
77
- * below stays inside the union `sqliteTable` expects and the built table keeps
78
- * its inferred column types. Returning `unknown[]` here would force a cast on
79
- * the config array, which widens every column to the cross-dialect union and
80
- * breaks `db.select()` at every call site.
81
- */
82
- type ChatExtraIndexes = (columns: Record<string, AnySQLiteColumn>) => SQLiteTableExtraConfigValue[];
83
- /** Build chat-related SQLite tables with customizable thread and message columns */
84
- declare function createChatTables<TThreadExtras extends Record<string, SQLiteColumnBuilderBase> = {}, TMessageExtras extends Record<string, SQLiteColumnBuilderBase> = {}>(options?: CreateChatTablesOptions<TThreadExtras, TMessageExtras>): {
85
- threads: drizzle_orm_sqlite_core.SQLiteTableWithColumns<{
86
- name: `${string}thread`;
87
- schema: undefined;
88
- columns: {
89
- id: drizzle_orm.HasDefault<drizzle_orm.IsPrimaryKey<drizzle_orm.NotNull<drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"id", [string, ...string[]], number | undefined>>>>;
90
- workspaceId: drizzle_orm.NotNull<drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"workspace_id", [string, ...string[]], number | undefined>>;
91
- title: drizzle_orm.NotNull<drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"title", [string, ...string[]], number | undefined>>;
92
- category: drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"category", [string, ...string[]], number | undefined>;
93
- isPinned: drizzle_orm.HasDefault<drizzle_orm.NotNull<drizzle_orm_sqlite_core.SQLiteBooleanBuilderInitial<"is_pinned">>>;
94
- createdAt: drizzle_orm.HasDefault<drizzle_orm.NotNull<drizzle_orm_sqlite_core.SQLiteTimestampBuilderInitial<"created_at">>>;
95
- updatedAt: drizzle_orm.HasDefault<drizzle_orm.NotNull<drizzle_orm_sqlite_core.SQLiteTimestampBuilderInitial<"updated_at">>>;
96
- } & TThreadExtras extends infer T extends Record<string, drizzle_orm.ColumnBuilderBase<drizzle_orm.ColumnBuilderBaseConfig<drizzle_orm.ColumnDataType, string>, object>> ? { [Key in keyof T]: drizzle_orm.BuildColumn<TTableName, {
97
- _: Omit<T[Key]["_"], "name"> & {
98
- name: T[Key]["_"]["name"] extends "" ? drizzle_orm.Assume<Key, string> : T[Key]["_"]["name"];
99
- };
100
- }, TDialect>; } : never;
101
- dialect: "sqlite";
102
- }>;
103
- messages: drizzle_orm_sqlite_core.SQLiteTableWithColumns<{
104
- name: `${string}message`;
105
- schema: undefined;
106
- columns: {
107
- id: drizzle_orm.HasDefault<drizzle_orm.IsPrimaryKey<drizzle_orm.NotNull<drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"id", [string, ...string[]], number | undefined>>>>;
108
- threadId: drizzle_orm.NotNull<drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"thread_id", [string, ...string[]], number | undefined>>;
109
- role: drizzle_orm.NotNull<drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"role", ["user", "assistant", "system", "tool"], number | undefined>>;
110
- content: drizzle_orm.NotNull<drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"content", [string, ...string[]], number | undefined>>;
111
- parts: drizzle_orm.HasDefault<drizzle_orm.$Type<drizzle_orm_sqlite_core.SQLiteTextJsonBuilderInitial<"parts">, ChatMessagePart[]>>;
112
- toolName: drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"tool_name", [string, ...string[]], number | undefined>;
113
- model: drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"model", [string, ...string[]], number | undefined>;
114
- requestedModel: drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"requested_model", [string, ...string[]], number | undefined>;
115
- servedModel: drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"served_model", [string, ...string[]], number | undefined>;
116
- servedProvider: drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"served_provider", [string, ...string[]], number | undefined>;
117
- servedSource: drizzle_orm_sqlite_core.SQLiteTextBuilderInitial<"served_model_source", [string, ...string[]], number | undefined>;
118
- inputTokens: drizzle_orm_sqlite_core.SQLiteIntegerBuilderInitial<"input_tokens">;
119
- outputTokens: drizzle_orm_sqlite_core.SQLiteIntegerBuilderInitial<"output_tokens">;
120
- reasoningTokens: drizzle_orm_sqlite_core.SQLiteIntegerBuilderInitial<"reasoning_tokens">;
121
- cacheReadTokens: drizzle_orm_sqlite_core.SQLiteIntegerBuilderInitial<"cache_read_tokens">;
122
- cacheWriteTokens: drizzle_orm_sqlite_core.SQLiteIntegerBuilderInitial<"cache_write_tokens">;
123
- costUsd: drizzle_orm_sqlite_core.SQLiteRealBuilderInitial<"cost_usd">;
124
- createdAt: drizzle_orm.HasDefault<drizzle_orm.NotNull<drizzle_orm_sqlite_core.SQLiteTimestampBuilderInitial<"created_at">>>;
125
- } & TMessageExtras extends infer T_1 extends Record<string, drizzle_orm.ColumnBuilderBase<drizzle_orm.ColumnBuilderBaseConfig<drizzle_orm.ColumnDataType, string>, object>> ? { [Key_1 in keyof T_1]: drizzle_orm.BuildColumn<TTableName, {
126
- _: Omit<T_1[Key_1]["_"], "name"> & {
127
- name: T_1[Key_1]["_"]["name"] extends "" ? drizzle_orm.Assume<Key_1, string> : T_1[Key_1]["_"]["name"];
128
- };
129
- }, TDialect>; } : never;
130
- dialect: "sqlite";
131
- }>;
132
- };
133
- /**
134
- * The base (no-extras) table pair, pinned via an instantiation expression:
135
- * `ReturnType<typeof createChatTables>` on the bare generic substitutes the
136
- * extras params with their CONSTRAINT (`Record<string,
137
- * SQLiteColumnBuilderBase>`), stamping an index signature into the column map
138
- * that widens every concrete column to `unknown`/`notNull: false` — concrete
139
- * factory results then fail `extends ChatTables`. (`teams`' `createTeamTables`
140
- * is non-generic, so its plain `ReturnType` never hits this.)
141
- */
142
- type ChatTables = ReturnType<typeof createChatTables<{}, {}>>;
143
- /** Resolve the selected fields of a chat thread row from the chat threads table */
144
- type ChatThreadRow = ChatTables['threads']['$inferSelect'];
145
- /** Resolve the selected structure of a chat message row from the messages table */
146
- type ChatMessageRow = ChatTables['messages']['$inferSelect'];
147
- /** Resolve the type for inserting a new chat thread row into the threads table */
148
- type NewChatThreadRow = ChatTables['threads']['$inferInsert'];
149
- /** Resolve the type for inserting a new chat message row into the messages table */
150
- type NewChatMessageRow = ChatTables['messages']['$inferInsert'];
151
-
152
- /**
153
- * Typed CRUD over the tables from `createChatTables`. Works against any
154
- * SQLite drizzle driver (D1, libsql, better-sqlite3) — builders are awaited,
155
- * never `.run()`/`.all()`, so sync and async drivers behave identically.
156
- *
157
- * Access control is an injected seam, never an import: single-thread routes
158
- * check workspace access themselves (they know the thread), while
159
- * `bulkDeleteThreads` REQUIRES an `assertAccess` callback because one request
160
- * can span workspaces — it is called once per distinct workspace and any
161
- * throw rejects the whole request before a single delete runs (fail-closed;
162
- * legal's bulk-delete semantics).
4
+ * Unifies the three divergent product implementations (legal's `thread`/
5
+ * `message`, gtm's fix-absorbed copy of the same, tax's `tax_sessions`/
6
+ * `chat_messages`) into one drizzle table factory + typed CRUD store, so
7
+ * products stop hand-rolling incompatible chat schemas:
8
+ * - `createChatTables` (./schema) the table factory; per-divergence
9
+ * rationale lives in its docblock.
10
+ * - `createChatStore` (./store) — list/get/create/rename/pin/delete/bulk-
11
+ * delete threads + list/append messages, with access control as an injected
12
+ * callback seam.
13
+ * - `ChatMessagePart` (./parts) the canonical stored `parts` vocabulary both
14
+ * transport lanes (harness `message.part.updated`, router openai-compat)
15
+ * serialize into; source citations in its docblock.
16
+ * - pure helpers (./core) — `threadTitleFromMessage`, `ChatStoreInputError`,
17
+ * `BULK_DELETE_MAX_THREADS` (also re-exported from the root barrel).
163
18
  *
164
- * Deletes run messages-first in ONE `db.batch` round trip when the driver has
165
- * one (D1, libsql), so a partial failure never leaves orphaned rows behind a
166
- * deleted thread; drivers without `batch` (better-sqlite3) fall back to
167
- * sequential awaits in the same order.
19
+ * Imports `drizzle-orm` at module top that is WHY this lives behind its own
20
+ * subpath: the root barrel re-exports only `./core` + `./parts`, so a
21
+ * consumer that never touches the DB never pulls the optional peer.
168
22
  */
169
-
170
- /** Any SQLite drizzle database — `any` erases the driver-specific run-result
171
- * and schema generics so better-sqlite3, D1, and libsql handles all fit.
172
- * `batch` is structural: present on D1/libsql drizzle instances. */
173
- type ChatDatabase = BaseSQLiteDatabase<'sync' | 'async', any, any> & SqliteBatchDatabase;
174
- /** Product-injected access check. Throw to deny; the store never interprets
175
- * users or roles itself. */
176
- type WorkspaceAccessCheck = (workspaceId: string) => void | Promise<void>;
177
- /** Define input parameters for listing threads within a workspace with pagination options */
178
- interface ListThreadsInput {
179
- workspaceId: string;
180
- /** Clamped to 1..200; default 50 (legal's list route semantics). */
181
- limit?: number;
182
- /** Clamped to >= 0; default 0. */
183
- offset?: number;
184
- }
185
- /** Represent a paginated collection of chat threads with total count and pagination details */
186
- interface ListThreadsResult<TThread = ChatThreadRow> {
187
- threads: TThread[];
188
- total: number;
189
- limit: number;
190
- offset: number;
191
- }
192
- /** Define input parameters required to create a new thread in a workspace */
193
- interface CreateThreadInput {
194
- workspaceId: string;
195
- /** Title source when `title` is absent: first non-empty line, 80-char cap
196
- * (`threadTitleFromMessage`). */
197
- firstMessage?: string;
198
- /** Explicit title; still normalized through `threadTitleFromMessage` so a
199
- * multi-page paste never becomes a sidebar entry. */
200
- title?: string;
201
- category?: string | null;
202
- isPinned?: boolean;
203
- /** Opaque product-column values written verbatim in the SAME insert (the
204
- * `/missions` extras pattern). Never read, validated, or defaulted here. */
205
- extras?: Record<string, unknown>;
206
- }
207
- /** Define input parameters for appending a message to a chat thread with optional metadata */
208
- interface AppendMessageInput {
209
- /** Caller-assigned primary key. Omitted, the column default assigns a random
210
- * hex id (today's behavior). Incremental assistant persistence passes a
211
- * DETERMINISTIC id derived from the turn's own identity, so a re-entered
212
- * turn (crashed worker, durable-driver retry) finds and updates the row a
213
- * previous attempt started instead of inserting a second one. */
214
- id?: string;
215
- threadId: string;
216
- role: 'user' | 'assistant' | 'system' | 'tool';
217
- content: string;
218
- parts?: ChatMessagePart[];
219
- toolName?: string | null;
220
- model?: string | null;
221
- requestedModel?: string | null;
222
- servedModel?: string | null;
223
- servedProvider?: string | null;
224
- servedSource?: string | null;
225
- inputTokens?: number | null;
226
- outputTokens?: number | null;
227
- reasoningTokens?: number | null;
228
- cacheReadTokens?: number | null;
229
- cacheWriteTokens?: number | null;
230
- costUsd?: number | null;
231
- /** Opaque product-column values written verbatim in the SAME insert. */
232
- extras?: Record<string, unknown>;
233
- }
234
- /** Fields an existing message row may be patched with. Every field is
235
- * optional and only DEFINED fields are written, so a partial patch never
236
- * clears a column it does not mention. `threadId` and `role` are absent on
237
- * purpose: a message never moves thread or changes speaker.
238
- *
239
- * Exists for incremental assistant persistence — the streaming turn writes
240
- * the row once and then patches it as content accumulates, so the durable
241
- * transcript is at most one cadence interval behind the live stream. */
242
- interface UpdateMessageInput {
243
- content?: string;
244
- parts?: ChatMessagePart[];
245
- toolName?: string | null;
246
- model?: string | null;
247
- requestedModel?: string | null;
248
- servedModel?: string | null;
249
- servedProvider?: string | null;
250
- servedSource?: string | null;
251
- inputTokens?: number | null;
252
- outputTokens?: number | null;
253
- reasoningTokens?: number | null;
254
- cacheReadTokens?: number | null;
255
- cacheWriteTokens?: number | null;
256
- costUsd?: number | null;
257
- /** Opaque product-column values written verbatim in the SAME update. */
258
- extras?: Record<string, unknown>;
259
- }
260
- /** Define options to configure message listing with optional limit and offset parameters */
261
- interface ListMessagesOptions {
262
- limit?: number;
263
- offset?: number;
264
- }
265
- /** Define input for bulk deleting threads with access checks per workspace */
266
- interface BulkDeleteThreadsInput {
267
- ids: string[];
268
- /** Optional single-workspace fence for products whose route already resolved
269
- * one active workspace. Omitted preserves the multi-workspace legal route. */
270
- workspaceId?: string;
271
- /** Called once per distinct workspace the ids touch, before ANY delete. */
272
- assertAccess: WorkspaceAccessCheck;
273
- }
274
- /** Delete threads selected by their last activity time within one workspace.
275
- *
276
- * Products can add a lifecycle predicate such as `status = 'active'` through
277
- * `where`; the store still owns workspace scope, access ordering, and message
278
- * cleanup for every consumer. */
279
- interface BulkDeleteThreadsByUpdatedAtInput {
280
- workspaceId: string;
281
- /** Exclusive upper bound: rows older than this instant. */
282
- updatedBefore?: Date;
283
- /** Inclusive lower bound: rows updated at or after this instant. */
284
- updatedAfter?: Date;
285
- where?: SQL;
286
- /** Called before any delete for the requested workspace. */
287
- assertAccess: WorkspaceAccessCheck;
288
- }
289
- /** Manage chat threads and messages with operations for listing, creating, updating, and deleting data */
290
- interface ChatStore<TThread = ChatThreadRow, TMessage = ChatMessageRow> {
291
- listThreads(input: ListThreadsInput): Promise<ListThreadsResult<TThread>>;
292
- getThread(threadId: string): Promise<TThread | null>;
293
- createThread(input: CreateThreadInput): Promise<TThread>;
294
- renameThread(threadId: string, title: string): Promise<TThread | null>;
295
- pinThread(threadId: string, isPinned: boolean): Promise<TThread | null>;
296
- /** Messages + thread in one batch. Resolves false when the thread does not
297
- * exist. `assertAccess` (optional) receives the thread's workspaceId before
298
- * the delete — single-thread callers usually check access themselves. */
299
- deleteThread(threadId: string, options?: {
300
- assertAccess?: WorkspaceAccessCheck;
301
- }): Promise<boolean>;
302
- bulkDeleteThreads(input: BulkDeleteThreadsInput): Promise<{
303
- deleted: number;
304
- }>;
305
- bulkDeleteThreadsByUpdatedAt(input: BulkDeleteThreadsByUpdatedAtInput): Promise<{
306
- deleted: number;
307
- }>;
308
- /** Ordered oldest-first: `created_at`, then rowid (insertion order within a
309
- * same-second burst — a user+assistant pair lands in one epoch second). */
310
- listMessages(threadId: string, options?: ListMessagesOptions): Promise<TMessage[]>;
311
- /** Inserts the message and bumps the thread's `updatedAt` in one batch so
312
- * workspace recency sorts stay truthful. */
313
- appendMessage(input: AppendMessageInput): Promise<TMessage>;
314
- /** Patches an existing message and bumps its thread's `updatedAt` in the
315
- * same batch. Resolves `null` when the id does not exist. Only defined
316
- * patch fields are written. */
317
- updateMessage(id: string, patch: UpdateMessageInput): Promise<TMessage | null>;
318
- /** Removes one message. Resolves false when the id does not exist. Used by
319
- * incremental persistence to retract a draft row for a turn that ended
320
- * producing nothing, so an empty assistant row is never left behind. */
321
- deleteMessage(id: string): Promise<boolean>;
322
- }
323
- /** Create a chat store managing threads and messages based on the provided database and tables */
324
- declare function createChatStore<TTables extends ChatTables>(db: ChatDatabase, tables: TTables): ChatStore<TTables['threads']['$inferSelect'], TTables['messages']['$inferSelect']>;
325
-
326
- export { type AppendMessageInput, BULK_DELETE_MAX_THREADS, type BulkDeleteThreadsByUpdatedAtInput, type BulkDeleteThreadsInput, type ChatDatabase, type ChatExtraIndexes, ChatMessagePart, type ChatMessageRow, type ChatParentTable, type ChatStore, ChatStoreInputError, type ChatTables, type ChatThreadRow, type CreateChatTablesOptions, type CreateThreadInput, type ListMessagesOptions, type ListThreadsInput, type ListThreadsResult, type NewChatMessageRow, type NewChatThreadRow, type UpdateMessageInput, type WorkspaceAccessCheck, createChatStore, createChatTables, threadTitleFromMessage };
23
+ export * from './core';
24
+ export * from './parts';
25
+ export * from './schema';
26
+ export * from './store';