@tangle-network/agent-app 0.45.54 → 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 +4 -3
  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,208 +1,26 @@
1
- import { O as OpenUIFormValues, b as OpenUINode, a as OpenUIFieldIssue, d as OpenUIFormSpec, e as OpenUIFieldKind } from '../values-C7RidJuI.js';
2
- export { f as OpenUIArtifact, g as OpenUIArtifactError, h as OpenUIArtifactResult, i as OpenUIFieldIssueCode, j as OpenUIFieldSpec, k as OpenUIFormValidation, l as OpenUISegment, c as OpenUIValue, m as hasOpenUISegment, n as isOpenUIFieldKind, o as isSafeOpenUIFieldId, p as parseOpenUIArtifact, q as parseOpenUISegments, v as validateOpenUIFormValues } from '../values-C7RidJuI.js';
3
-
4
1
  /**
5
- * What travels when a user presses a button on a page the agent authored.
6
- *
7
- * The submission is a plain REST body, not a chat turn. That is the entire
8
- * point of this module: pressing "Recalculate" on an agent-authored form must
9
- * cost the same as pressing a button on a hand-built screen — one product route
10
- * call, no model tokens, no sandbox wake-up. The wire shape here is therefore
11
- * deliberately small and self-contained: an action id, the form it belongs to,
12
- * that form's current values, and enough addressing for the product to find the
13
- * page. Nothing in it references a session, a turn, or a run.
14
- */
15
-
16
- /** What the browser POSTs when an action fires. */
17
- interface OpenUIActionSubmission {
18
- /** The action's stable id, as authored on the page. */
19
- actionId: string;
20
- /** The form whose values are attached, when the action sits in one. */
21
- formId?: string;
22
- /** Current values of that form, keyed by field id. Empty for a bare action. */
23
- values: OpenUIFormValues;
24
- /** The node the action was rendered on, when the page carries several. */
25
- nodeId?: string;
26
- /** Vault path of the persisted `render_ui` artifact this page came from. */
27
- artifactPath?: string;
28
- }
29
- /** Parsed submission, or the reason the body was refused. */
30
- type OpenUIActionBodyValidation = {
31
- ok: true;
32
- submission: OpenUIActionSubmission;
33
- } | {
34
- ok: false;
35
- code: OpenUIActionBodyErrorCode;
36
- error: string;
37
- };
38
- /** Why a submission body was refused before any handler ran. */
39
- type OpenUIActionBodyErrorCode = 'OPENUI_ACTION_ID_MISSING' | 'OPENUI_ACTION_ID_INVALID' | 'OPENUI_FORM_ID_INVALID' | 'OPENUI_NODE_ID_INVALID' | 'OPENUI_ARTIFACT_PATH_INVALID' | 'OPENUI_VALUES_INVALID' | 'OPENUI_FIELD_ID_INVALID' | 'OPENUI_FIELD_VALUE_INVALID';
40
- /** Ids the host accepts on the wire: identifier-safe, same rule as field ids. */
41
- declare function isSafeOpenUIActionId(id: string): boolean;
42
- /**
43
- * Validate a raw JSON body into a submission. Every rejection names a code so
44
- * the browser can tell "the page sent something malformed" from "the product
45
- * refused the action".
46
- */
47
- declare function validateOpenUIActionBody(body: Record<string, unknown>): OpenUIActionBodyValidation;
48
- /**
49
- * One plain line recording what the user did, for the product to carry into the
50
- * NEXT turn's context.
51
- *
52
- * The action itself spends no model tokens; without a record of it the agent
53
- * would later reason about a page the user has already changed. Appending this
54
- * to the thread (as a note, a system line, or a stored part) is how the agent
55
- * catches up on the next turn the user actually pays for.
56
- */
57
- declare function describeOpenUIAction(submission: OpenUIActionSubmission): string;
58
-
59
- /**
60
- * The host half of an interactive OpenUI page: one POST endpoint that turns a
61
- * button press into a product function call.
62
- *
63
- * THE SEAM THAT KEEPS IT FREE. This factory has no agent connection, no session
64
- * id, no sandbox, and no turn — look at {@link OpenUIActionRouteOptions}: the
65
- * only things a product supplies are an authorizer and a map of plain handlers.
66
- * There is no seam here through which a model call could be made, which is what
67
- * makes "manipulating agent-authored UI costs nothing" a structural property
68
- * rather than a promise. Compare `./interactions`, whose answer route exists
69
- * precisely to unblock a running turn: that one resolves a sidecar connection,
70
- * and this one cannot.
71
- *
72
- * A handler returns data, a replacement page, or a typed failure. If it wants
73
- * the agent to know what happened, the product records
74
- * {@link describeOpenUIAction} into the thread — read on the NEXT turn the user
75
- * chooses to spend, never as a side effect of the click.
76
- *
77
- * Handlers return web-standard `Response`s (Workers, Node 18+, Deno).
78
- */
79
-
80
- /** Logging surface the route uses; `console` by default. */
81
- type OpenUIActionLogger = Pick<Console, 'warn' | 'error'>;
82
- /** The product's verdict on who is calling. `response` short-circuits with a
83
- * product-authored Response (401/403/404/429…). */
84
- type OpenUIActionResolution<TContext> = {
85
- ok: true;
86
- context: TContext;
87
- } | {
88
- ok: false;
89
- response: Response;
90
- };
91
- /** What a handler is given: the caller's request, the parsed submission, and
92
- * whatever the product's authorizer resolved. */
93
- interface OpenUIActionHandlerArgs<TContext> {
94
- request: Request;
95
- submission: OpenUIActionSubmission;
96
- context: TContext;
97
- }
98
- /** What a handler returns. A replacement `schema` re-renders the page in place;
99
- * `values` writes corrected/derived values back into the form. */
100
- type OpenUIActionResult<TNode extends OpenUINode = OpenUINode> = {
101
- ok: true;
102
- /** Short confirmation for the card, in the user's language. */
103
- message?: string;
104
- /** Values to write back into the form (server-corrected or derived). */
105
- values?: OpenUIFormValues;
106
- /** A page to render in place of the current one. */
107
- schema?: TNode | TNode[];
108
- /** Anything else the client should read (totals, ids, links). */
109
- data?: Record<string, unknown>;
110
- } | {
111
- ok: false;
112
- /** Machine-readable reason, surfaced to the client verbatim. */
113
- code: string;
114
- /** One sentence the user can act on. */
115
- message: string;
116
- /** HTTP status; defaults to 400. */
117
- status?: number;
118
- /** Field-level rejections, so the card can mark the offending inputs. */
119
- issues?: OpenUIFieldIssue[];
120
- };
121
- /** One product action, keyed in {@link OpenUIActionRouteOptions.actions} by the
122
- * `action.id` the agent authored on the page. */
123
- type OpenUIActionHandler<TContext, TNode extends OpenUINode = OpenUINode> = (args: OpenUIActionHandlerArgs<TContext>) => OpenUIActionResult<TNode> | Promise<OpenUIActionResult<TNode>>;
124
- /** How the route is wired. Note what is absent: nothing here can reach a model. */
125
- interface OpenUIActionRouteOptions<TContext, TNode extends OpenUINode = OpenUINode> {
126
- /**
127
- * Authenticate and authorize the caller, and resolve whatever the handlers
128
- * need (db handle, workspace, user). The only product-supplied gate.
129
- */
130
- resolve: (args: {
131
- request: Request;
132
- submission: OpenUIActionSubmission;
133
- }) => OpenUIActionResolution<TContext> | Promise<OpenUIActionResolution<TContext>>;
134
- /** Handlers by action id. An id with no handler is a 404, never a no-op. */
135
- actions: Record<string, OpenUIActionHandler<TContext, TNode>>;
136
- /**
137
- * Form specs by form id. When the submission names a form listed here, its
138
- * values are checked against the spec before the handler runs, and rejections
139
- * come back as field issues. Omit a form to leave checking to its handler.
140
- */
141
- forms?: Record<string, OpenUIFormSpec>;
142
- /**
143
- * Called after a successful handler with the line the agent should read on
144
- * its next turn. Persist it against the thread; do NOT start a turn from it.
145
- */
146
- recordForAgent?: (args: {
147
- request: Request;
148
- submission: OpenUIActionSubmission;
149
- context: TContext;
150
- note: string;
151
- }) => void | Promise<void>;
152
- logger?: OpenUIActionLogger;
153
- }
154
- /** The endpoint a product mounts. */
155
- interface OpenUIActionRoute {
156
- /** POST `{ actionId, formId?, values?, nodeId?, artifactPath? }`. */
157
- handle: (request: Request) => Promise<Response>;
158
- }
159
- /**
160
- * Build the action endpoint for agent-authored pages.
161
- *
162
- * ```ts
163
- * const route = createOpenUIActionRoute({
164
- * resolve: async ({ request }) => {
165
- * const session = await auth(request)
166
- * if (!session) return { ok: false, response: new Response('Unauthorized', { status: 401 }) }
167
- * return { ok: true, context: { db, workspaceId: session.workspaceId } }
168
- * },
169
- * forms: { deduction_form: DEDUCTION_FORM },
170
- * actions: {
171
- * recalculate: async ({ submission, context }) => {
172
- * const totals = recompute(context.db, submission.values)
173
- * return { ok: true, data: totals, schema: totalsPage(totals) }
174
- * },
175
- * },
176
- * })
177
- * export const action = ({ request }: ActionFunctionArgs) => route.handle(request)
178
- * ```
179
- */
180
- declare function createOpenUIActionRoute<TContext, TNode extends OpenUINode = OpenUINode>(options: OpenUIActionRouteOptions<TContext, TNode>): OpenUIActionRoute;
181
-
182
- /**
183
- * What the model is told about writing an interactive page.
184
- *
185
- * An agent will not emit a node vocabulary nobody described to it, so the
186
- * vocabulary and the prompt text that teaches it have to ship together. This
187
- * module is that text plus the machine-readable field/action shape it
188
- * describes, so five products do not each write their own (subtly different)
189
- * version into a system prompt.
190
- *
191
- * OPT-IN, DELIBERATELY. The input nodes render only where the host's renderer
192
- * knows them and the host passes an action handler. Advertise this guide only
193
- * once both are true for your product — otherwise the agent writes forms the
194
- * page will drop.
195
- */
196
-
197
- /** The input kinds this guide teaches, in the order it lists them. */
198
- declare const OPENUI_INPUT_KINDS: readonly OpenUIFieldKind[];
199
- /**
200
- * The interactive vocabulary, written for a model.
201
- *
202
- * Appended to `render_ui`'s description by
203
- * `buildAppToolOpenAITools(taxonomy, { interactiveUi: true })`, and usable
204
- * directly in a system prompt for the inline ```` ```openui ```` path.
2
+ * `@tangle-network/agent-app/openui` the host contract for agent-authored UI.
3
+ *
4
+ * The agent emits a page (inline ```` ```openui ```` fence, or the `render_ui`
5
+ * tool). This module is everything the HOST needs around that page and nothing
6
+ * the renderer owns:
7
+ *
8
+ * - `segments.ts` split an assistant message into prose and pages, once,
9
+ * instead of once per product.
10
+ * - `values.ts` — what a field holds, and whether a submission matches the
11
+ * form the agent authored.
12
+ * - `action.ts` — the REST body a button press sends, and the one line the
13
+ * agent should read about it on its next turn.
14
+ * - `route.ts` — the endpoint that turns that press into a product function
15
+ * call, with no path to a model turn.
16
+ * - `authoring.ts` — the vocabulary text that makes the agent emit forms.
17
+ *
18
+ * Framework-free and browser-safe: no React, no Node builtins, no runtime. The
19
+ * client-side half is `@tangle-network/agent-app/openui-react`; the node union
20
+ * and renderer live in `@tangle-network/ui`'s `./openui` entry.
205
21
  */
206
- declare const OPENUI_INTERACTIVE_AUTHORING_GUIDE: string;
207
-
208
- export { OPENUI_INPUT_KINDS, OPENUI_INTERACTIVE_AUTHORING_GUIDE, type OpenUIActionBodyErrorCode, type OpenUIActionBodyValidation, type OpenUIActionHandler, type OpenUIActionHandlerArgs, type OpenUIActionLogger, type OpenUIActionResolution, type OpenUIActionResult, type OpenUIActionRoute, type OpenUIActionRouteOptions, type OpenUIActionSubmission, OpenUIFieldIssue, OpenUIFieldKind, OpenUIFormSpec, OpenUIFormValues, OpenUINode, createOpenUIActionRoute, describeOpenUIAction, isSafeOpenUIActionId, validateOpenUIActionBody };
22
+ export { parseOpenUISegments, hasOpenUISegment, parseOpenUIArtifact, type OpenUINode, type OpenUISegment, type OpenUIArtifact, type OpenUIArtifactError, type OpenUIArtifactResult, } from './segments';
23
+ export { isSafeOpenUIFieldId, isOpenUIFieldKind, validateOpenUIFormValues, type OpenUIValue, type OpenUIFormValues, type OpenUIFieldKind, type OpenUIFieldSpec, type OpenUIFormSpec, type OpenUIFieldIssue, type OpenUIFieldIssueCode, type OpenUIFormValidation, } from './values';
24
+ export { isSafeOpenUIActionId, validateOpenUIActionBody, describeOpenUIAction, type OpenUIActionSubmission, type OpenUIActionBodyValidation, type OpenUIActionBodyErrorCode, } from './action';
25
+ export { createOpenUIActionRoute, type OpenUIActionRoute, type OpenUIActionRouteOptions, type OpenUIActionHandler, type OpenUIActionHandlerArgs, type OpenUIActionResult, type OpenUIActionResolution, type OpenUIActionLogger, } from './route';
26
+ export { OPENUI_INTERACTIVE_AUTHORING_GUIDE, OPENUI_INPUT_KINDS } from './authoring';
@@ -0,0 +1,124 @@
1
+ /**
2
+ * The host half of an interactive OpenUI page: one POST endpoint that turns a
3
+ * button press into a product function call.
4
+ *
5
+ * THE SEAM THAT KEEPS IT FREE. This factory has no agent connection, no session
6
+ * id, no sandbox, and no turn — look at {@link OpenUIActionRouteOptions}: the
7
+ * only things a product supplies are an authorizer and a map of plain handlers.
8
+ * There is no seam here through which a model call could be made, which is what
9
+ * makes "manipulating agent-authored UI costs nothing" a structural property
10
+ * rather than a promise. Compare `./interactions`, whose answer route exists
11
+ * precisely to unblock a running turn: that one resolves a sidecar connection,
12
+ * and this one cannot.
13
+ *
14
+ * A handler returns data, a replacement page, or a typed failure. If it wants
15
+ * the agent to know what happened, the product records
16
+ * {@link describeOpenUIAction} into the thread — read on the NEXT turn the user
17
+ * chooses to spend, never as a side effect of the click.
18
+ *
19
+ * Handlers return web-standard `Response`s (Workers, Node 18+, Deno).
20
+ */
21
+ import { type OpenUIActionSubmission } from './action';
22
+ import type { OpenUINode } from './segments';
23
+ import { type OpenUIFieldIssue, type OpenUIFormSpec, type OpenUIFormValues } from './values';
24
+ /** Logging surface the route uses; `console` by default. */
25
+ export type OpenUIActionLogger = Pick<Console, 'warn' | 'error'>;
26
+ /** The product's verdict on who is calling. `response` short-circuits with a
27
+ * product-authored Response (401/403/404/429…). */
28
+ export type OpenUIActionResolution<TContext> = {
29
+ ok: true;
30
+ context: TContext;
31
+ } | {
32
+ ok: false;
33
+ response: Response;
34
+ };
35
+ /** What a handler is given: the caller's request, the parsed submission, and
36
+ * whatever the product's authorizer resolved. */
37
+ export interface OpenUIActionHandlerArgs<TContext> {
38
+ request: Request;
39
+ submission: OpenUIActionSubmission;
40
+ context: TContext;
41
+ }
42
+ /** What a handler returns. A replacement `schema` re-renders the page in place;
43
+ * `values` writes corrected/derived values back into the form. */
44
+ export type OpenUIActionResult<TNode extends OpenUINode = OpenUINode> = {
45
+ ok: true;
46
+ /** Short confirmation for the card, in the user's language. */
47
+ message?: string;
48
+ /** Values to write back into the form (server-corrected or derived). */
49
+ values?: OpenUIFormValues;
50
+ /** A page to render in place of the current one. */
51
+ schema?: TNode | TNode[];
52
+ /** Anything else the client should read (totals, ids, links). */
53
+ data?: Record<string, unknown>;
54
+ } | {
55
+ ok: false;
56
+ /** Machine-readable reason, surfaced to the client verbatim. */
57
+ code: string;
58
+ /** One sentence the user can act on. */
59
+ message: string;
60
+ /** HTTP status; defaults to 400. */
61
+ status?: number;
62
+ /** Field-level rejections, so the card can mark the offending inputs. */
63
+ issues?: OpenUIFieldIssue[];
64
+ };
65
+ /** One product action, keyed in {@link OpenUIActionRouteOptions.actions} by the
66
+ * `action.id` the agent authored on the page. */
67
+ export type OpenUIActionHandler<TContext, TNode extends OpenUINode = OpenUINode> = (args: OpenUIActionHandlerArgs<TContext>) => OpenUIActionResult<TNode> | Promise<OpenUIActionResult<TNode>>;
68
+ /** How the route is wired. Note what is absent: nothing here can reach a model. */
69
+ export interface OpenUIActionRouteOptions<TContext, TNode extends OpenUINode = OpenUINode> {
70
+ /**
71
+ * Authenticate and authorize the caller, and resolve whatever the handlers
72
+ * need (db handle, workspace, user). The only product-supplied gate.
73
+ */
74
+ resolve: (args: {
75
+ request: Request;
76
+ submission: OpenUIActionSubmission;
77
+ }) => OpenUIActionResolution<TContext> | Promise<OpenUIActionResolution<TContext>>;
78
+ /** Handlers by action id. An id with no handler is a 404, never a no-op. */
79
+ actions: Record<string, OpenUIActionHandler<TContext, TNode>>;
80
+ /**
81
+ * Form specs by form id. When the submission names a form listed here, its
82
+ * values are checked against the spec before the handler runs, and rejections
83
+ * come back as field issues. Omit a form to leave checking to its handler.
84
+ */
85
+ forms?: Record<string, OpenUIFormSpec>;
86
+ /**
87
+ * Called after a successful handler with the line the agent should read on
88
+ * its next turn. Persist it against the thread; do NOT start a turn from it.
89
+ */
90
+ recordForAgent?: (args: {
91
+ request: Request;
92
+ submission: OpenUIActionSubmission;
93
+ context: TContext;
94
+ note: string;
95
+ }) => void | Promise<void>;
96
+ logger?: OpenUIActionLogger;
97
+ }
98
+ /** The endpoint a product mounts. */
99
+ export interface OpenUIActionRoute {
100
+ /** POST `{ actionId, formId?, values?, nodeId?, artifactPath? }`. */
101
+ handle: (request: Request) => Promise<Response>;
102
+ }
103
+ /**
104
+ * Build the action endpoint for agent-authored pages.
105
+ *
106
+ * ```ts
107
+ * const route = createOpenUIActionRoute({
108
+ * resolve: async ({ request }) => {
109
+ * const session = await auth(request)
110
+ * if (!session) return { ok: false, response: new Response('Unauthorized', { status: 401 }) }
111
+ * return { ok: true, context: { db, workspaceId: session.workspaceId } }
112
+ * },
113
+ * forms: { deduction_form: DEDUCTION_FORM },
114
+ * actions: {
115
+ * recalculate: async ({ submission, context }) => {
116
+ * const totals = recompute(context.db, submission.values)
117
+ * return { ok: true, data: totals, schema: totalsPage(totals) }
118
+ * },
119
+ * },
120
+ * })
121
+ * export const action = ({ request }: ActionFunctionArgs) => route.handle(request)
122
+ * ```
123
+ */
124
+ export declare function createOpenUIActionRoute<TContext, TNode extends OpenUINode = OpenUINode>(options: OpenUIActionRouteOptions<TContext, TNode>): OpenUIActionRoute;
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Splitting an assistant message into prose and agent-authored UI.
3
+ *
4
+ * An agent emits a page by fencing it as ```` ```openui ```` in its reply (the
5
+ * inline path) or by calling `render_ui` (the persisted-artifact path). Every
6
+ * product that renders the inline path had forked the same scanner into its own
7
+ * chat-message body; this is that scanner, once, with no React and no renderer
8
+ * import — the node union stays owned by `@tangle-network/ui`'s `./openui`.
9
+ */
10
+ /**
11
+ * The narrowest thing a host can assert about a parsed node: it names a type.
12
+ * A renderer's node union satisfies this, so
13
+ * `parseOpenUISegments<OpenUIComponentNode>(text)` hands typed nodes straight
14
+ * to the renderer with no cast at the call site.
15
+ */
16
+ export interface OpenUINode {
17
+ type: string;
18
+ id?: string;
19
+ }
20
+ /** One piece of an assistant message: prose, or a page to render. */
21
+ export type OpenUISegment<TNode extends OpenUINode = OpenUINode> = {
22
+ type: 'markdown';
23
+ text: string;
24
+ } | {
25
+ type: 'openui';
26
+ nodes: TNode[];
27
+ };
28
+ /**
29
+ * Split message content into markdown and OpenUI segments, in source order.
30
+ *
31
+ * A fence whose body is not JSON, or whose JSON carries no node at all, is
32
+ * returned as a fenced `json` markdown segment rather than an empty page: the
33
+ * content is still streaming, or the agent wrote something malformed, and both
34
+ * cases are better shown than swallowed into a blank card.
35
+ *
36
+ * The type argument is the caller's assertion about the node union it will
37
+ * render; this function checks only that each node names a `type`, and the
38
+ * renderer rejects types it does not know.
39
+ */
40
+ export declare function parseOpenUISegments<TNode extends OpenUINode = OpenUINode>(content: string): Array<OpenUISegment<TNode>>;
41
+ /** Whether a message carries any agent-authored page at all. */
42
+ export declare function hasOpenUISegment(content: string): boolean;
43
+ /** A page read back out of the vault, and its title when one was stored. */
44
+ export interface OpenUIArtifact<TNode extends OpenUINode = OpenUINode> {
45
+ title?: string;
46
+ nodes: TNode[];
47
+ }
48
+ /** Why a stored page could not be read. */
49
+ export interface OpenUIArtifactError {
50
+ code: 'artifact_not_json' | 'artifact_no_nodes';
51
+ message: string;
52
+ }
53
+ /** Reading a stored page either produces nodes or says why it did not. */
54
+ export type OpenUIArtifactResult<TNode extends OpenUINode = OpenUINode> = {
55
+ succeeded: true;
56
+ value: OpenUIArtifact<TNode>;
57
+ } | {
58
+ succeeded: false;
59
+ error: OpenUIArtifactError;
60
+ };
61
+ /**
62
+ * Read a `render_ui` artifact back out of the vault.
63
+ *
64
+ * Two shapes are in the wild and a product cannot tell them apart from the
65
+ * path: the bare node tree that `preset-cloudflare`'s handler writes
66
+ * (`JSON.stringify(args.schema)`), and the `{ title, schema }` envelope some
67
+ * products write themselves. Reading only one of them renders an empty panel
68
+ * for the other, with nothing on screen to say why — so this reads both and
69
+ * fails loud when it is neither.
70
+ */
71
+ export declare function parseOpenUIArtifact<TNode extends OpenUINode = OpenUINode>(content: string): OpenUIArtifactResult<TNode>;
@@ -0,0 +1,82 @@
1
+ /**
2
+ * The value half of an interactive OpenUI page: what a field holds, and whether
3
+ * a submitted set of field values matches the form the agent authored.
4
+ *
5
+ * The NODE vocabulary (which fields exist, how they render) has one owner —
6
+ * `@tangle-network/ui`'s `./openui` entry. This module does not restate it. It
7
+ * declares the narrowest STRUCTURAL port a host needs to check a submission:
8
+ * the field's id, its kind, and the constraints that make a value legal. A
9
+ * renderer's richer node type satisfies this port by assignment, so the two
10
+ * packages stay in step without either importing the other.
11
+ */
12
+ /** A value one OpenUI field can hold. `string[]` is a multi-select. */
13
+ export type OpenUIValue = string | number | boolean | string[];
14
+ /** Submitted field values, keyed by field id. */
15
+ export type OpenUIFormValues = Record<string, OpenUIValue>;
16
+ /**
17
+ * Field ids the host will accept: identifier-safe, and never a key that would
18
+ * reach `Object.prototype`. A submission arrives from a browser and is used to
19
+ * index an object, so this is a boundary check, not a style rule.
20
+ */
21
+ export declare function isSafeOpenUIFieldId(id: string): boolean;
22
+ /** The input kinds a form field can be. */
23
+ export type OpenUIFieldKind = 'text' | 'number' | 'currency' | 'select' | 'checkbox' | 'slider';
24
+ /** Whether a string names an input kind this contract knows. */
25
+ export declare function isOpenUIFieldKind(kind: string): kind is OpenUIFieldKind;
26
+ /**
27
+ * One field, reduced to what a value check needs. A renderer node carrying
28
+ * labels, placeholders, and layout is assignable to this — the extra
29
+ * presentation properties are simply not read here.
30
+ */
31
+ export interface OpenUIFieldSpec {
32
+ id: string;
33
+ kind: OpenUIFieldKind;
34
+ required?: boolean;
35
+ /** `number` / `currency` / `slider` bounds, inclusive. */
36
+ min?: number;
37
+ max?: number;
38
+ /** Increment `number` / `currency` / `slider` values must land on, measured from `min ?? 0`. */
39
+ step?: number;
40
+ /** Longest accepted `text` value. */
41
+ maxLength?: number;
42
+ /** Accepted `select` values. */
43
+ options?: ReadonlyArray<{
44
+ value: string;
45
+ }>;
46
+ /** A `select` that accepts more than one option; its value is a `string[]`. */
47
+ multiple?: boolean;
48
+ }
49
+ /** A form the host can check a submission against. */
50
+ export interface OpenUIFormSpec {
51
+ id: string;
52
+ fields: readonly OpenUIFieldSpec[];
53
+ }
54
+ /** Why one field's value was rejected. */
55
+ export type OpenUIFieldIssueCode = 'required' | 'type' | 'range' | 'step' | 'option' | 'length' | 'unknown_field' | 'duplicate_field' | 'unsafe_field_id';
56
+ /** One rejected field, named so a card can mark exactly that input. */
57
+ export interface OpenUIFieldIssue {
58
+ fieldId: string;
59
+ code: OpenUIFieldIssueCode;
60
+ message: string;
61
+ }
62
+ /** The outcome of checking a submission against a form. */
63
+ export type OpenUIFormValidation = {
64
+ ok: true;
65
+ values: OpenUIFormValues;
66
+ } | {
67
+ ok: false;
68
+ issues: OpenUIFieldIssue[];
69
+ };
70
+ /**
71
+ * Check submitted values against the form the agent authored.
72
+ *
73
+ * Fails loud on both sides of the shape: a value the form never declared is an
74
+ * error (`unknown_field`), not a silently ignored extra, because a host that
75
+ * drops it would act on a form different from the one the user filled in. A
76
+ * `required` field with no value is an error even when the caller simply never
77
+ * sent the key.
78
+ *
79
+ * On success the returned `values` contain only declared fields, in the form's
80
+ * own field order — the object a handler should act on.
81
+ */
82
+ export declare function validateOpenUIFormValues(spec: OpenUIFormSpec, values: OpenUIFormValues): OpenUIFormValidation;
@@ -1,5 +1,3 @@
1
- import { O as OpenUIFormValues, a as OpenUIFieldIssue, b as OpenUINode, c as OpenUIValue } from '../values-C7RidJuI.js';
2
-
3
1
  /**
4
2
  * `@tangle-network/agent-app/openui-react` — the missing `onAction`.
5
3
  *
@@ -14,9 +12,9 @@ import { O as OpenUIFormValues, a as OpenUIFieldIssue, b as OpenUINode, c as Ope
14
12
  * costs exactly one product request, the same as a hand-built screen. Tests
15
13
  * enforce that by walking this module's imports.
16
14
  */
17
-
15
+ import type { OpenUIFieldIssue, OpenUIFormValues, OpenUINode, OpenUIValue } from '../openui/index';
18
16
  /** A successful action reply, as the route sends it. */
19
- interface OpenUIActionResponse<TNode extends OpenUINode = OpenUINode> {
17
+ export interface OpenUIActionResponse<TNode extends OpenUINode = OpenUINode> {
20
18
  ok: true;
21
19
  actionId: string;
22
20
  message?: string;
@@ -25,14 +23,14 @@ interface OpenUIActionResponse<TNode extends OpenUINode = OpenUINode> {
25
23
  data?: Record<string, unknown>;
26
24
  }
27
25
  /** A refused action, as the route sends it. */
28
- interface OpenUIActionFailure {
26
+ export interface OpenUIActionFailure {
29
27
  code: string;
30
28
  error: string;
31
29
  actionId?: string;
32
30
  issues?: OpenUIFieldIssue[];
33
31
  }
34
32
  /** The boundary outcome: the reply, or the reason there is none. */
35
- type OpenUIActionOutcome<TNode extends OpenUINode = OpenUINode> = {
33
+ export type OpenUIActionOutcome<TNode extends OpenUINode = OpenUINode> = {
36
34
  succeeded: true;
37
35
  value: OpenUIActionResponse<TNode>;
38
36
  } | {
@@ -42,13 +40,13 @@ type OpenUIActionOutcome<TNode extends OpenUINode = OpenUINode> = {
42
40
  /** Where on the page an action fired, and what the form held at that moment.
43
41
  * A renderer that owns form state passes `values`; otherwise the hook's own
44
42
  * `values` are sent. */
45
- interface OpenUIActionContext {
43
+ export interface OpenUIActionContext {
46
44
  formId?: string;
47
45
  nodeId?: string;
48
46
  values?: OpenUIFormValues;
49
47
  }
50
48
  /** How the hook talks to the product route. */
51
- interface UseOpenUIActionsOptions<TNode extends OpenUINode = OpenUINode> {
49
+ export interface UseOpenUIActionsOptions<TNode extends OpenUINode = OpenUINode> {
52
50
  /** The product's action endpoint — a plain REST route, never a chat route. */
53
51
  endpoint: string;
54
52
  /** Extra routing fields merged into every POST body (workspaceId, threadId).
@@ -67,7 +65,7 @@ interface UseOpenUIActionsOptions<TNode extends OpenUINode = OpenUINode> {
67
65
  }
68
66
  /** What the hook returns. `onAction` is the renderer prop; the rest is state a
69
67
  * card renders around it. */
70
- interface OpenUIActionsController<TNode extends OpenUINode = OpenUINode> {
68
+ export interface OpenUIActionsController<TNode extends OpenUINode = OpenUINode> {
71
69
  /** Current field values. */
72
70
  values: OpenUIFormValues;
73
71
  /** Set one field. */
@@ -111,9 +109,7 @@ interface OpenUIActionsController<TNode extends OpenUINode = OpenUINode> {
111
109
  * flight is refused with `OPENUI_ACTION_BUSY` rather than racing two writes
112
110
  * against the same form.
113
111
  */
114
- declare function useOpenUIActions<TNode extends OpenUINode = OpenUINode>(options: UseOpenUIActionsOptions<TNode>): OpenUIActionsController<TNode>;
112
+ export declare function useOpenUIActions<TNode extends OpenUINode = OpenUINode>(options: UseOpenUIActionsOptions<TNode>): OpenUIActionsController<TNode>;
115
113
  /** The body keys the hook owns; a product's extra `body` fields cannot shadow
116
114
  * them. Exported so a route's own tests can assert the same list. */
117
- declare const OPENUI_RESERVED_BODY_KEYS: readonly string[];
118
-
119
- export { OPENUI_RESERVED_BODY_KEYS, type OpenUIActionContext, type OpenUIActionFailure, type OpenUIActionOutcome, type OpenUIActionResponse, type OpenUIActionsController, type UseOpenUIActionsOptions, useOpenUIActions };
115
+ export declare const OPENUI_RESERVED_BODY_KEYS: readonly string[];