@adonis-agora/agent 0.60.1 → 0.62.0

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 (707) hide show
  1. package/CHANGELOG.md +96 -0
  2. package/README.md +12 -7
  3. package/dist/configure.d.ts +7 -5
  4. package/dist/configure.d.ts.map +1 -1
  5. package/dist/configure.js +9 -5
  6. package/dist/configure.js.map +1 -1
  7. package/dist/providers/a2a_provider.d.ts +14 -0
  8. package/dist/providers/a2a_provider.d.ts.map +1 -0
  9. package/dist/providers/a2a_provider.js +136 -0
  10. package/dist/providers/a2a_provider.js.map +1 -0
  11. package/dist/providers/agent_provider.d.ts.map +1 -1
  12. package/dist/providers/agent_provider.js +195 -11
  13. package/dist/providers/agent_provider.js.map +1 -1
  14. package/dist/providers/mcp_provider.d.ts +3 -0
  15. package/dist/providers/mcp_provider.d.ts.map +1 -1
  16. package/dist/providers/mcp_provider.js +147 -62
  17. package/dist/providers/mcp_provider.js.map +1 -1
  18. package/dist/src/a2a/auth.d.ts +67 -0
  19. package/dist/src/a2a/auth.d.ts.map +1 -0
  20. package/dist/src/a2a/auth.js +47 -0
  21. package/dist/src/a2a/auth.js.map +1 -0
  22. package/dist/src/a2a/define_config.d.ts +74 -0
  23. package/dist/src/a2a/define_config.d.ts.map +1 -0
  24. package/dist/src/a2a/define_config.js +5 -0
  25. package/dist/src/a2a/define_config.js.map +1 -0
  26. package/dist/src/a2a/gate.d.ts +23 -0
  27. package/dist/src/a2a/gate.d.ts.map +1 -0
  28. package/dist/src/a2a/gate.js +56 -0
  29. package/dist/src/a2a/gate.js.map +1 -0
  30. package/dist/src/a2a/handler.d.ts +65 -0
  31. package/dist/src/a2a/handler.d.ts.map +1 -0
  32. package/dist/src/a2a/handler.js +322 -0
  33. package/dist/src/a2a/handler.js.map +1 -0
  34. package/dist/src/a2a/index.d.ts +15 -0
  35. package/dist/src/a2a/index.d.ts.map +1 -0
  36. package/dist/src/a2a/index.js +9 -0
  37. package/dist/src/a2a/index.js.map +1 -0
  38. package/dist/src/a2a/permission-tool.d.ts +17 -0
  39. package/dist/src/a2a/permission-tool.d.ts.map +1 -0
  40. package/dist/src/a2a/permission-tool.js +70 -0
  41. package/dist/src/a2a/permission-tool.js.map +1 -0
  42. package/dist/src/a2a/protocol.d.ts +100 -0
  43. package/dist/src/a2a/protocol.d.ts.map +1 -0
  44. package/dist/src/a2a/protocol.js +106 -0
  45. package/dist/src/a2a/protocol.js.map +1 -0
  46. package/dist/src/a2a/runtime.d.ts +6 -0
  47. package/dist/src/a2a/runtime.d.ts.map +1 -0
  48. package/dist/src/a2a/runtime.js +13 -0
  49. package/dist/src/a2a/runtime.js.map +1 -0
  50. package/dist/src/a2a/server_middleware.d.ts +13 -0
  51. package/dist/src/a2a/server_middleware.d.ts.map +1 -0
  52. package/dist/src/a2a/server_middleware.js +18 -0
  53. package/dist/src/a2a/server_middleware.js.map +1 -0
  54. package/dist/src/a2a/store.d.ts +79 -0
  55. package/dist/src/a2a/store.d.ts.map +1 -0
  56. package/dist/src/a2a/store.js +151 -0
  57. package/dist/src/a2a/store.js.map +1 -0
  58. package/dist/src/a2a/turn.d.ts +80 -0
  59. package/dist/src/a2a/turn.d.ts.map +1 -0
  60. package/dist/src/a2a/turn.js +211 -0
  61. package/dist/src/a2a/turn.js.map +1 -0
  62. package/dist/src/action-proposal-approval.d.ts +26 -0
  63. package/dist/src/action-proposal-approval.d.ts.map +1 -0
  64. package/dist/src/action-proposal-approval.js +28 -0
  65. package/dist/src/action-proposal-approval.js.map +1 -0
  66. package/dist/src/action-proposal-discovery.d.ts +9 -0
  67. package/dist/src/action-proposal-discovery.d.ts.map +1 -0
  68. package/dist/src/action-proposal-discovery.js +20 -0
  69. package/dist/src/action-proposal-discovery.js.map +1 -0
  70. package/dist/src/action-proposal-executor.d.ts +40 -0
  71. package/dist/src/action-proposal-executor.d.ts.map +1 -0
  72. package/dist/src/action-proposal-executor.js +80 -0
  73. package/dist/src/action-proposal-executor.js.map +1 -0
  74. package/dist/src/action-proposal-outcome.d.ts +12 -0
  75. package/dist/src/action-proposal-outcome.d.ts.map +1 -0
  76. package/dist/src/action-proposal-outcome.js +86 -0
  77. package/dist/src/action-proposal-outcome.js.map +1 -0
  78. package/dist/src/action-proposal-preparation.d.ts +20 -0
  79. package/dist/src/action-proposal-preparation.d.ts.map +1 -0
  80. package/dist/src/action-proposal-preparation.js +27 -0
  81. package/dist/src/action-proposal-preparation.js.map +1 -0
  82. package/dist/src/action-proposal-receipt.d.ts +12 -0
  83. package/dist/src/action-proposal-receipt.d.ts.map +1 -0
  84. package/dist/src/action-proposal-receipt.js +4 -0
  85. package/dist/src/action-proposal-receipt.js.map +1 -0
  86. package/dist/src/action-proposal-runtime.d.ts +9 -0
  87. package/dist/src/action-proposal-runtime.d.ts.map +1 -0
  88. package/dist/src/action-proposal-runtime.js +34 -0
  89. package/dist/src/action-proposal-runtime.js.map +1 -0
  90. package/dist/src/action-proposal-service.d.ts +47 -0
  91. package/dist/src/action-proposal-service.d.ts.map +1 -0
  92. package/dist/src/action-proposal-service.js +136 -0
  93. package/dist/src/action-proposal-service.js.map +1 -0
  94. package/dist/src/action-proposal-text.d.ts +72 -0
  95. package/dist/src/action-proposal-text.d.ts.map +1 -0
  96. package/dist/src/action-proposal-text.js +119 -0
  97. package/dist/src/action-proposal-text.js.map +1 -0
  98. package/dist/src/action-proposal-transitions.d.ts +20 -0
  99. package/dist/src/action-proposal-transitions.d.ts.map +1 -0
  100. package/dist/src/action-proposal-transitions.js +311 -0
  101. package/dist/src/action-proposal-transitions.js.map +1 -0
  102. package/dist/src/action-proposal-worker.d.ts +32 -0
  103. package/dist/src/action-proposal-worker.d.ts.map +1 -0
  104. package/dist/src/action-proposal-worker.js +140 -0
  105. package/dist/src/action-proposal-worker.js.map +1 -0
  106. package/dist/src/ag-ui/adapter.d.ts.map +1 -1
  107. package/dist/src/ag-ui/adapter.js +106 -1
  108. package/dist/src/ag-ui/adapter.js.map +1 -1
  109. package/dist/src/ag-ui/core/encoder.d.ts +105 -0
  110. package/dist/src/ag-ui/core/encoder.d.ts.map +1 -0
  111. package/dist/src/ag-ui/core/encoder.js +523 -0
  112. package/dist/src/ag-ui/core/encoder.js.map +1 -0
  113. package/dist/src/ag-ui/core/index.d.ts +12 -0
  114. package/dist/src/ag-ui/core/index.d.ts.map +1 -0
  115. package/dist/src/ag-ui/core/index.js +12 -0
  116. package/dist/src/ag-ui/core/index.js.map +1 -0
  117. package/dist/src/ag-ui/core/input.d.ts +74 -0
  118. package/dist/src/ag-ui/core/input.d.ts.map +1 -0
  119. package/dist/src/ag-ui/core/input.js +228 -0
  120. package/dist/src/ag-ui/core/input.js.map +1 -0
  121. package/dist/src/ag-ui/core/interrupt-id.d.ts +31 -0
  122. package/dist/src/ag-ui/core/interrupt-id.d.ts.map +1 -0
  123. package/dist/src/ag-ui/core/interrupt-id.js +48 -0
  124. package/dist/src/ag-ui/core/interrupt-id.js.map +1 -0
  125. package/dist/src/ag-ui/core/proposal-decision.d.ts +9 -0
  126. package/dist/src/ag-ui/core/proposal-decision.d.ts.map +1 -0
  127. package/dist/src/ag-ui/core/proposal-decision.js +20 -0
  128. package/dist/src/ag-ui/core/proposal-decision.js.map +1 -0
  129. package/dist/src/ag-ui/core/stream.d.ts +27 -0
  130. package/dist/src/ag-ui/core/stream.d.ts.map +1 -0
  131. package/dist/src/ag-ui/core/stream.js +68 -0
  132. package/dist/src/ag-ui/core/stream.js.map +1 -0
  133. package/dist/src/ag-ui/core/types.d.ts +249 -0
  134. package/dist/src/ag-ui/core/types.d.ts.map +1 -0
  135. package/dist/src/ag-ui/core/types.js +35 -0
  136. package/dist/src/ag-ui/core/types.js.map +1 -0
  137. package/dist/src/ag-ui/encoder.d.ts +3 -4
  138. package/dist/src/ag-ui/encoder.d.ts.map +1 -1
  139. package/dist/src/ag-ui/encoder.js +10 -11
  140. package/dist/src/ag-ui/encoder.js.map +1 -1
  141. package/dist/src/ag-ui/frames.d.ts +4 -5
  142. package/dist/src/ag-ui/frames.d.ts.map +1 -1
  143. package/dist/src/ag-ui/frames.js +9 -4
  144. package/dist/src/ag-ui/frames.js.map +1 -1
  145. package/dist/src/ag-ui/index.d.ts +3 -5
  146. package/dist/src/ag-ui/index.d.ts.map +1 -1
  147. package/dist/src/ag-ui/index.js +3 -5
  148. package/dist/src/ag-ui/index.js.map +1 -1
  149. package/dist/src/ag-ui/stream.d.ts +3 -4
  150. package/dist/src/ag-ui/stream.d.ts.map +1 -1
  151. package/dist/src/ag-ui/stream.js +4 -5
  152. package/dist/src/ag-ui/stream.js.map +1 -1
  153. package/dist/src/agent-deps-factory.d.ts +8 -0
  154. package/dist/src/agent-deps-factory.d.ts.map +1 -1
  155. package/dist/src/agent-deps-factory.js +12 -0
  156. package/dist/src/agent-deps-factory.js.map +1 -1
  157. package/dist/src/agent-deps.d.ts +7 -0
  158. package/dist/src/agent-deps.d.ts.map +1 -1
  159. package/dist/src/agent-deps.js.map +1 -1
  160. package/dist/src/agent-loop.d.ts +8 -3
  161. package/dist/src/agent-loop.d.ts.map +1 -1
  162. package/dist/src/agent-loop.js +398 -63
  163. package/dist/src/agent-loop.js.map +1 -1
  164. package/dist/src/agent-service.d.ts +52 -2
  165. package/dist/src/agent-service.d.ts.map +1 -1
  166. package/dist/src/agent-service.js +62 -2
  167. package/dist/src/agent-service.js.map +1 -1
  168. package/dist/src/ai-sdk/ai-sdk-model.js +4 -1
  169. package/dist/src/ai-sdk/ai-sdk-model.js.map +1 -1
  170. package/dist/src/ai-tool-ref.d.ts +6 -1
  171. package/dist/src/ai-tool-ref.d.ts.map +1 -1
  172. package/dist/src/ai-tool-ref.js +32 -16
  173. package/dist/src/ai-tool-ref.js.map +1 -1
  174. package/dist/src/chat-queue-service.d.ts.map +1 -1
  175. package/dist/src/chat-queue-service.js +4 -0
  176. package/dist/src/chat-queue-service.js.map +1 -1
  177. package/dist/src/client/chat-client.d.ts +12 -0
  178. package/dist/src/client/chat-client.d.ts.map +1 -1
  179. package/dist/src/client/chat-client.js +69 -1
  180. package/dist/src/client/chat-client.js.map +1 -1
  181. package/dist/src/client/sse.d.ts +15 -0
  182. package/dist/src/client/sse.d.ts.map +1 -1
  183. package/dist/src/client/sse.js +45 -0
  184. package/dist/src/client/sse.js.map +1 -1
  185. package/dist/src/define_config.d.ts +70 -12
  186. package/dist/src/define_config.d.ts.map +1 -1
  187. package/dist/src/define_config.js.map +1 -1
  188. package/dist/src/engine.d.ts +77 -0
  189. package/dist/src/engine.d.ts.map +1 -0
  190. package/dist/src/engine.js +27 -0
  191. package/dist/src/engine.js.map +1 -0
  192. package/dist/src/genui/builtins.d.ts +73 -3
  193. package/dist/src/genui/builtins.d.ts.map +1 -1
  194. package/dist/src/genui/builtins.js +298 -3
  195. package/dist/src/genui/builtins.js.map +1 -1
  196. package/dist/src/genui/capabilities.d.ts +24 -0
  197. package/dist/src/genui/capabilities.d.ts.map +1 -0
  198. package/dist/src/genui/capabilities.js +81 -0
  199. package/dist/src/genui/capabilities.js.map +1 -0
  200. package/dist/src/genui/catalog.d.ts +77 -0
  201. package/dist/src/genui/catalog.d.ts.map +1 -0
  202. package/dist/src/genui/catalog.js +88 -0
  203. package/dist/src/genui/catalog.js.map +1 -0
  204. package/dist/src/genui/factory.d.ts +8 -8
  205. package/dist/src/genui/factory.d.ts.map +1 -1
  206. package/dist/src/genui/factory.js +3 -1
  207. package/dist/src/genui/factory.js.map +1 -1
  208. package/dist/src/genui/index.d.ts +4 -12
  209. package/dist/src/genui/index.d.ts.map +1 -1
  210. package/dist/src/genui/index.js +6 -18
  211. package/dist/src/genui/index.js.map +1 -1
  212. package/dist/src/genui/public.d.ts +9 -0
  213. package/dist/src/genui/public.d.ts.map +1 -0
  214. package/dist/src/genui/public.js +9 -0
  215. package/dist/src/genui/public.js.map +1 -0
  216. package/dist/src/genui/registry.d.ts +65 -0
  217. package/dist/src/genui/registry.d.ts.map +1 -0
  218. package/dist/src/genui/registry.js +151 -0
  219. package/dist/src/genui/registry.js.map +1 -0
  220. package/dist/src/genui/schema.d.ts +71 -0
  221. package/dist/src/genui/schema.d.ts.map +1 -0
  222. package/dist/src/genui/schema.js +304 -0
  223. package/dist/src/genui/schema.js.map +1 -0
  224. package/dist/src/genui/text.d.ts +35 -0
  225. package/dist/src/genui/text.d.ts.map +1 -0
  226. package/dist/src/genui/text.js +156 -0
  227. package/dist/src/genui/text.js.map +1 -0
  228. package/dist/src/genui/tools.d.ts +91 -0
  229. package/dist/src/genui/tools.d.ts.map +1 -0
  230. package/dist/src/genui/tools.js +292 -0
  231. package/dist/src/genui/tools.js.map +1 -0
  232. package/dist/src/genui/tree.d.ts +56 -0
  233. package/dist/src/genui/tree.d.ts.map +1 -0
  234. package/dist/src/genui/tree.js +188 -0
  235. package/dist/src/genui/tree.js.map +1 -0
  236. package/dist/src/index.d.ts +21 -3
  237. package/dist/src/index.d.ts.map +1 -1
  238. package/dist/src/index.js +19 -2
  239. package/dist/src/index.js.map +1 -1
  240. package/dist/src/mcp/auth.d.ts +17 -1
  241. package/dist/src/mcp/auth.d.ts.map +1 -1
  242. package/dist/src/mcp/auth.js +14 -3
  243. package/dist/src/mcp/auth.js.map +1 -1
  244. package/dist/src/mcp/define_config.d.ts +81 -2
  245. package/dist/src/mcp/define_config.d.ts.map +1 -1
  246. package/dist/src/mcp/define_config.js.map +1 -1
  247. package/dist/src/mcp/index.d.ts +1 -1
  248. package/dist/src/mcp/index.d.ts.map +1 -1
  249. package/dist/src/mcp/index.js.map +1 -1
  250. package/dist/src/mcp/oauth-resource.d.ts +9 -0
  251. package/dist/src/mcp/oauth-resource.d.ts.map +1 -0
  252. package/dist/src/mcp/oauth-resource.js +16 -0
  253. package/dist/src/mcp/oauth-resource.js.map +1 -0
  254. package/dist/src/mcp/server.d.ts +5 -0
  255. package/dist/src/mcp/server.d.ts.map +1 -1
  256. package/dist/src/mcp/server.js +48 -16
  257. package/dist/src/mcp/server.js.map +1 -1
  258. package/dist/src/negotiated-tool-ui.d.ts +10 -0
  259. package/dist/src/negotiated-tool-ui.d.ts.map +1 -0
  260. package/dist/src/negotiated-tool-ui.js +57 -0
  261. package/dist/src/negotiated-tool-ui.js.map +1 -0
  262. package/dist/src/opencode/client.d.ts +202 -0
  263. package/dist/src/opencode/client.d.ts.map +1 -0
  264. package/dist/src/opencode/client.js +2 -0
  265. package/dist/src/opencode/client.js.map +1 -0
  266. package/dist/src/opencode/durable/index.d.ts +33 -0
  267. package/dist/src/opencode/durable/index.d.ts.map +1 -0
  268. package/dist/src/opencode/durable/index.js +38 -0
  269. package/dist/src/opencode/durable/index.js.map +1 -0
  270. package/dist/src/opencode/durable/runner.d.ts +36 -0
  271. package/dist/src/opencode/durable/runner.d.ts.map +1 -0
  272. package/dist/src/opencode/durable/runner.js +88 -0
  273. package/dist/src/opencode/durable/runner.js.map +1 -0
  274. package/dist/src/opencode/durable/workflow.d.ts +40 -0
  275. package/dist/src/opencode/durable/workflow.d.ts.map +1 -0
  276. package/dist/src/opencode/durable/workflow.js +106 -0
  277. package/dist/src/opencode/durable/workflow.js.map +1 -0
  278. package/dist/src/opencode/engine.d.ts +48 -0
  279. package/dist/src/opencode/engine.d.ts.map +1 -0
  280. package/dist/src/opencode/engine.js +98 -0
  281. package/dist/src/opencode/engine.js.map +1 -0
  282. package/dist/src/opencode/event-hub.d.ts +23 -0
  283. package/dist/src/opencode/event-hub.d.ts.map +1 -0
  284. package/dist/src/opencode/event-hub.js +99 -0
  285. package/dist/src/opencode/event-hub.js.map +1 -0
  286. package/dist/src/opencode/forms.d.ts +19 -0
  287. package/dist/src/opencode/forms.d.ts.map +1 -0
  288. package/dist/src/opencode/forms.js +82 -0
  289. package/dist/src/opencode/forms.js.map +1 -0
  290. package/dist/src/opencode/host.d.ts +179 -0
  291. package/dist/src/opencode/host.d.ts.map +1 -0
  292. package/dist/src/opencode/host.js +34 -0
  293. package/dist/src/opencode/host.js.map +1 -0
  294. package/dist/src/opencode/index.d.ts +15 -0
  295. package/dist/src/opencode/index.d.ts.map +1 -0
  296. package/dist/src/opencode/index.js +9 -0
  297. package/dist/src/opencode/index.js.map +1 -0
  298. package/dist/src/opencode/log.d.ts +9 -0
  299. package/dist/src/opencode/log.d.ts.map +1 -0
  300. package/dist/src/opencode/log.js +15 -0
  301. package/dist/src/opencode/log.js.map +1 -0
  302. package/dist/src/opencode/mcp.d.ts +60 -0
  303. package/dist/src/opencode/mcp.d.ts.map +1 -0
  304. package/dist/src/opencode/mcp.js +258 -0
  305. package/dist/src/opencode/mcp.js.map +1 -0
  306. package/dist/src/opencode/runner.d.ts +40 -0
  307. package/dist/src/opencode/runner.d.ts.map +1 -0
  308. package/dist/src/opencode/runner.js +125 -0
  309. package/dist/src/opencode/runner.js.map +1 -0
  310. package/dist/src/opencode/turn.d.ts +167 -0
  311. package/dist/src/opencode/turn.d.ts.map +1 -0
  312. package/dist/src/opencode/turn.js +761 -0
  313. package/dist/src/opencode/turn.js.map +1 -0
  314. package/dist/src/opencode/turns.d.ts +245 -0
  315. package/dist/src/opencode/turns.d.ts.map +1 -0
  316. package/dist/src/opencode/turns.js +867 -0
  317. package/dist/src/opencode/turns.js.map +1 -0
  318. package/dist/src/personas.d.ts.map +1 -1
  319. package/dist/src/personas.js +4 -1
  320. package/dist/src/personas.js.map +1 -1
  321. package/dist/src/react/ag-ui.d.ts +4 -2
  322. package/dist/src/react/ag-ui.d.ts.map +1 -1
  323. package/dist/src/react/ag-ui.js +2 -2
  324. package/dist/src/react/ag-ui.js.map +1 -1
  325. package/dist/src/react/client.d.ts +1 -1
  326. package/dist/src/react/client.d.ts.map +1 -1
  327. package/dist/src/react/client.js +1 -1
  328. package/dist/src/react/client.js.map +1 -1
  329. package/dist/src/react/core/ag-ui-backend.d.ts +85 -0
  330. package/dist/src/react/core/ag-ui-backend.d.ts.map +1 -0
  331. package/dist/src/react/core/ag-ui-backend.js +409 -0
  332. package/dist/src/react/core/ag-ui-backend.js.map +1 -0
  333. package/dist/src/react/core/agent-chat-transport.d.ts +187 -0
  334. package/dist/src/react/core/agent-chat-transport.d.ts.map +1 -0
  335. package/dist/src/react/core/agent-chat-transport.js +796 -0
  336. package/dist/src/react/core/agent-chat-transport.js.map +1 -0
  337. package/dist/src/react/core/approvals/countdown.d.ts +22 -0
  338. package/dist/src/react/core/approvals/countdown.d.ts.map +1 -0
  339. package/dist/src/react/core/approvals/countdown.js +39 -0
  340. package/dist/src/react/core/approvals/countdown.js.map +1 -0
  341. package/dist/src/react/core/approvals/proposals.d.ts +15 -0
  342. package/dist/src/react/core/approvals/proposals.d.ts.map +1 -0
  343. package/dist/src/react/core/approvals/proposals.js +82 -0
  344. package/dist/src/react/core/approvals/proposals.js.map +1 -0
  345. package/dist/src/react/core/approvals/use-action-proposals.d.ts +10 -0
  346. package/dist/src/react/core/approvals/use-action-proposals.d.ts.map +1 -0
  347. package/dist/src/react/core/approvals/use-action-proposals.js +86 -0
  348. package/dist/src/react/core/approvals/use-action-proposals.js.map +1 -0
  349. package/dist/src/react/core/attachments/files.d.ts +39 -0
  350. package/dist/src/react/core/attachments/files.d.ts.map +1 -0
  351. package/dist/src/react/core/attachments/files.js +89 -0
  352. package/dist/src/react/core/attachments/files.js.map +1 -0
  353. package/dist/src/react/core/attachments/use-attachments.d.ts +106 -0
  354. package/dist/src/react/core/attachments/use-attachments.d.ts.map +1 -0
  355. package/dist/src/react/core/attachments/use-attachments.js +217 -0
  356. package/dist/src/react/core/attachments/use-attachments.js.map +1 -0
  357. package/dist/src/react/core/backend.d.ts +234 -0
  358. package/dist/src/react/core/backend.d.ts.map +1 -0
  359. package/dist/src/react/core/backend.js +21 -0
  360. package/dist/src/react/core/backend.js.map +1 -0
  361. package/dist/src/react/core/background-runs.d.ts +32 -0
  362. package/dist/src/react/core/background-runs.d.ts.map +1 -0
  363. package/dist/src/react/core/background-runs.js +47 -0
  364. package/dist/src/react/core/background-runs.js.map +1 -0
  365. package/dist/src/react/core/catalog/use-agents.d.ts +31 -0
  366. package/dist/src/react/core/catalog/use-agents.d.ts.map +1 -0
  367. package/dist/src/react/core/catalog/use-agents.js +28 -0
  368. package/dist/src/react/core/catalog/use-agents.js.map +1 -0
  369. package/dist/src/react/core/catalog/use-models.d.ts +41 -0
  370. package/dist/src/react/core/catalog/use-models.d.ts.map +1 -0
  371. package/dist/src/react/core/catalog/use-models.js +35 -0
  372. package/dist/src/react/core/catalog/use-models.js.map +1 -0
  373. package/dist/src/react/core/catalog/use-resource.d.ts +12 -0
  374. package/dist/src/react/core/catalog/use-resource.d.ts.map +1 -0
  375. package/dist/src/react/core/catalog/use-resource.js +41 -0
  376. package/dist/src/react/core/catalog/use-resource.js.map +1 -0
  377. package/dist/src/react/core/client-wire.d.ts +14 -0
  378. package/dist/src/react/core/client-wire.d.ts.map +1 -0
  379. package/dist/src/react/core/client-wire.js +2 -0
  380. package/dist/src/react/core/client-wire.js.map +1 -0
  381. package/dist/src/react/core/client.d.ts +222 -0
  382. package/dist/src/react/core/client.d.ts.map +1 -0
  383. package/dist/src/react/core/client.js +435 -0
  384. package/dist/src/react/core/client.js.map +1 -0
  385. package/dist/src/react/core/components/ambient-ui.d.ts +22 -0
  386. package/dist/src/react/core/components/ambient-ui.d.ts.map +1 -0
  387. package/dist/src/react/core/components/ambient-ui.js +30 -0
  388. package/dist/src/react/core/components/ambient-ui.js.map +1 -0
  389. package/dist/src/react/core/components/chat-input.d.ts +44 -0
  390. package/dist/src/react/core/components/chat-input.d.ts.map +1 -0
  391. package/dist/src/react/core/components/chat-input.js +69 -0
  392. package/dist/src/react/core/components/chat-input.js.map +1 -0
  393. package/dist/src/react/core/components/index.d.ts +7 -0
  394. package/dist/src/react/core/components/index.d.ts.map +1 -0
  395. package/dist/src/react/core/components/index.js +7 -0
  396. package/dist/src/react/core/components/index.js.map +1 -0
  397. package/dist/src/react/core/components/message-item.d.ts +101 -0
  398. package/dist/src/react/core/components/message-item.d.ts.map +1 -0
  399. package/dist/src/react/core/components/message-item.js +118 -0
  400. package/dist/src/react/core/components/message-item.js.map +1 -0
  401. package/dist/src/react/core/components/message-list.d.ts +85 -0
  402. package/dist/src/react/core/components/message-list.d.ts.map +1 -0
  403. package/dist/src/react/core/components/message-list.js +45 -0
  404. package/dist/src/react/core/components/message-list.js.map +1 -0
  405. package/dist/src/react/core/components/speech-languages.d.ts +22 -0
  406. package/dist/src/react/core/components/speech-languages.d.ts.map +1 -0
  407. package/dist/src/react/core/components/speech-languages.js +38 -0
  408. package/dist/src/react/core/components/speech-languages.js.map +1 -0
  409. package/dist/src/react/core/components/use-speech-recognition.d.ts +19 -0
  410. package/dist/src/react/core/components/use-speech-recognition.d.ts.map +1 -0
  411. package/dist/src/react/core/components/use-speech-recognition.js +92 -0
  412. package/dist/src/react/core/components/use-speech-recognition.js.map +1 -0
  413. package/dist/src/react/core/composer/index.d.ts +4 -0
  414. package/dist/src/react/core/composer/index.d.ts.map +1 -0
  415. package/dist/src/react/core/composer/index.js +4 -0
  416. package/dist/src/react/core/composer/index.js.map +1 -0
  417. package/dist/src/react/core/composer/model.d.ts +83 -0
  418. package/dist/src/react/core/composer/model.d.ts.map +1 -0
  419. package/dist/src/react/core/composer/model.js +53 -0
  420. package/dist/src/react/core/composer/model.js.map +1 -0
  421. package/dist/src/react/core/composer/skills-source.d.ts +29 -0
  422. package/dist/src/react/core/composer/skills-source.d.ts.map +1 -0
  423. package/dist/src/react/core/composer/skills-source.js +61 -0
  424. package/dist/src/react/core/composer/skills-source.js.map +1 -0
  425. package/dist/src/react/core/composer/use-composer-autocomplete.d.ts +78 -0
  426. package/dist/src/react/core/composer/use-composer-autocomplete.d.ts.map +1 -0
  427. package/dist/src/react/core/composer/use-composer-autocomplete.js +244 -0
  428. package/dist/src/react/core/composer/use-composer-autocomplete.js.map +1 -0
  429. package/dist/src/react/core/config/use-agent-config.d.ts +21 -0
  430. package/dist/src/react/core/config/use-agent-config.d.ts.map +1 -0
  431. package/dist/src/react/core/config/use-agent-config.js +57 -0
  432. package/dist/src/react/core/config/use-agent-config.js.map +1 -0
  433. package/dist/src/react/core/elicitation/answers.d.ts +22 -0
  434. package/dist/src/react/core/elicitation/answers.d.ts.map +1 -0
  435. package/dist/src/react/core/elicitation/answers.js +65 -0
  436. package/dist/src/react/core/elicitation/answers.js.map +1 -0
  437. package/dist/src/react/core/feedback/use-message-feedback.d.ts +32 -0
  438. package/dist/src/react/core/feedback/use-message-feedback.d.ts.map +1 -0
  439. package/dist/src/react/core/feedback/use-message-feedback.js +106 -0
  440. package/dist/src/react/core/feedback/use-message-feedback.js.map +1 -0
  441. package/dist/src/react/core/genui/generative-ui.d.ts +76 -0
  442. package/dist/src/react/core/genui/generative-ui.d.ts.map +1 -0
  443. package/dist/src/react/core/genui/generative-ui.js +210 -0
  444. package/dist/src/react/core/genui/generative-ui.js.map +1 -0
  445. package/dist/src/react/core/genui/index.d.ts +5 -0
  446. package/dist/src/react/core/genui/index.d.ts.map +1 -0
  447. package/dist/src/react/core/genui/index.js +5 -0
  448. package/dist/src/react/core/genui/index.js.map +1 -0
  449. package/dist/src/react/core/genui/json-render.d.ts +54 -0
  450. package/dist/src/react/core/genui/json-render.d.ts.map +1 -0
  451. package/dist/src/react/core/genui/json-render.js +64 -0
  452. package/dist/src/react/core/genui/json-render.js.map +1 -0
  453. package/dist/src/react/core/genui/playwright.d.ts +12 -0
  454. package/dist/src/react/core/genui/playwright.d.ts.map +1 -0
  455. package/dist/src/react/core/genui/playwright.js +141 -0
  456. package/dist/src/react/core/genui/playwright.js.map +1 -0
  457. package/dist/src/react/core/genui/react-registry.d.ts +22 -0
  458. package/dist/src/react/core/genui/react-registry.d.ts.map +1 -0
  459. package/dist/src/react/core/genui/react-registry.js +72 -0
  460. package/dist/src/react/core/genui/react-registry.js.map +1 -0
  461. package/dist/src/react/core/genui/server.d.ts +32 -0
  462. package/dist/src/react/core/genui/server.d.ts.map +1 -0
  463. package/dist/src/react/core/genui/server.js +66 -0
  464. package/dist/src/react/core/genui/server.js.map +1 -0
  465. package/dist/src/react/core/genui/types.d.ts +98 -0
  466. package/dist/src/react/core/genui/types.d.ts.map +1 -0
  467. package/dist/src/react/core/genui/types.js +3 -0
  468. package/dist/src/react/core/genui/types.js.map +1 -0
  469. package/dist/src/react/core/genui/use-generative-ui.d.ts +42 -0
  470. package/dist/src/react/core/genui/use-generative-ui.d.ts.map +1 -0
  471. package/dist/src/react/core/genui/use-generative-ui.js +186 -0
  472. package/dist/src/react/core/genui/use-generative-ui.js.map +1 -0
  473. package/dist/src/react/core/http-error.d.ts +33 -0
  474. package/dist/src/react/core/http-error.d.ts.map +1 -0
  475. package/dist/src/react/core/http-error.js +47 -0
  476. package/dist/src/react/core/http-error.js.map +1 -0
  477. package/dist/src/react/core/index.d.ts +35 -0
  478. package/dist/src/react/core/index.d.ts.map +1 -0
  479. package/dist/src/react/core/index.js +34 -0
  480. package/dist/src/react/core/index.js.map +1 -0
  481. package/dist/src/react/core/markdown/agent-markdown.d.ts +39 -0
  482. package/dist/src/react/core/markdown/agent-markdown.d.ts.map +1 -0
  483. package/dist/src/react/core/markdown/agent-markdown.js +22 -0
  484. package/dist/src/react/core/markdown/agent-markdown.js.map +1 -0
  485. package/dist/src/react/core/markdown/index.d.ts +2 -0
  486. package/dist/src/react/core/markdown/index.d.ts.map +1 -0
  487. package/dist/src/react/core/markdown/index.js +2 -0
  488. package/dist/src/react/core/markdown/index.js.map +1 -0
  489. package/dist/src/react/core/media/index.d.ts +64 -0
  490. package/dist/src/react/core/media/index.d.ts.map +1 -0
  491. package/dist/src/react/core/media/index.js +135 -0
  492. package/dist/src/react/core/media/index.js.map +1 -0
  493. package/dist/src/react/core/media/tus.d.ts +13 -0
  494. package/dist/src/react/core/media/tus.d.ts.map +1 -0
  495. package/dist/src/react/core/media/tus.js +59 -0
  496. package/dist/src/react/core/media/tus.js.map +1 -0
  497. package/dist/src/react/core/presentation/phrasing.d.ts +25 -0
  498. package/dist/src/react/core/presentation/phrasing.d.ts.map +1 -0
  499. package/dist/src/react/core/presentation/phrasing.js +58 -0
  500. package/dist/src/react/core/presentation/phrasing.js.map +1 -0
  501. package/dist/src/react/core/presentation/result-view.d.ts +43 -0
  502. package/dist/src/react/core/presentation/result-view.d.ts.map +1 -0
  503. package/dist/src/react/core/presentation/result-view.js +90 -0
  504. package/dist/src/react/core/presentation/result-view.js.map +1 -0
  505. package/dist/src/react/core/presentation/tool-activity.d.ts +106 -0
  506. package/dist/src/react/core/presentation/tool-activity.d.ts.map +1 -0
  507. package/dist/src/react/core/presentation/tool-activity.js +165 -0
  508. package/dist/src/react/core/presentation/tool-activity.js.map +1 -0
  509. package/dist/src/react/core/presentation/use-tool-catalog.d.ts +39 -0
  510. package/dist/src/react/core/presentation/use-tool-catalog.d.ts.map +1 -0
  511. package/dist/src/react/core/presentation/use-tool-catalog.js +77 -0
  512. package/dist/src/react/core/presentation/use-tool-catalog.js.map +1 -0
  513. package/dist/src/react/core/provider.d.ts +68 -0
  514. package/dist/src/react/core/provider.d.ts.map +1 -0
  515. package/dist/src/react/core/provider.js +61 -0
  516. package/dist/src/react/core/provider.js.map +1 -0
  517. package/dist/src/react/core/queue/model.d.ts +73 -0
  518. package/dist/src/react/core/queue/model.d.ts.map +1 -0
  519. package/dist/src/react/core/queue/model.js +2 -0
  520. package/dist/src/react/core/queue/model.js.map +1 -0
  521. package/dist/src/react/core/quota/use-quota.d.ts +35 -0
  522. package/dist/src/react/core/quota/use-quota.d.ts.map +1 -0
  523. package/dist/src/react/core/quota/use-quota.js +47 -0
  524. package/dist/src/react/core/quota/use-quota.js.map +1 -0
  525. package/dist/src/react/core/reasoning/timing.d.ts +38 -0
  526. package/dist/src/react/core/reasoning/timing.d.ts.map +1 -0
  527. package/dist/src/react/core/reasoning/timing.js +73 -0
  528. package/dist/src/react/core/reasoning/timing.js.map +1 -0
  529. package/dist/src/react/core/run-errors.d.ts +37 -0
  530. package/dist/src/react/core/run-errors.d.ts.map +1 -0
  531. package/dist/src/react/core/run-errors.js +37 -0
  532. package/dist/src/react/core/run-errors.js.map +1 -0
  533. package/dist/src/react/core/stored-message-to-ui-message.d.ts +4 -0
  534. package/dist/src/react/core/stored-message-to-ui-message.d.ts.map +1 -0
  535. package/dist/src/react/core/stored-message-to-ui-message.js +216 -0
  536. package/dist/src/react/core/stored-message-to-ui-message.js.map +1 -0
  537. package/dist/src/react/core/stored-thread-to-ui-messages.d.ts +82 -0
  538. package/dist/src/react/core/stored-thread-to-ui-messages.d.ts.map +1 -0
  539. package/dist/src/react/core/stored-thread-to-ui-messages.js +116 -0
  540. package/dist/src/react/core/stored-thread-to-ui-messages.js.map +1 -0
  541. package/dist/src/react/core/threads/threads-events.d.ts +22 -0
  542. package/dist/src/react/core/threads/threads-events.d.ts.map +1 -0
  543. package/dist/src/react/core/threads/threads-events.js +21 -0
  544. package/dist/src/react/core/threads/threads-events.js.map +1 -0
  545. package/dist/src/react/core/threads/use-threads.d.ts +31 -0
  546. package/dist/src/react/core/threads/use-threads.d.ts.map +1 -0
  547. package/dist/src/react/core/threads/use-threads.js +81 -0
  548. package/dist/src/react/core/threads/use-threads.js.map +1 -0
  549. package/dist/src/react/core/transcript/index.d.ts +4 -0
  550. package/dist/src/react/core/transcript/index.d.ts.map +1 -0
  551. package/dist/src/react/core/transcript/index.js +4 -0
  552. package/dist/src/react/core/transcript/index.js.map +1 -0
  553. package/dist/src/react/core/transcript/model.d.ts +399 -0
  554. package/dist/src/react/core/transcript/model.d.ts.map +1 -0
  555. package/dist/src/react/core/transcript/model.js +725 -0
  556. package/dist/src/react/core/transcript/model.js.map +1 -0
  557. package/dist/src/react/core/transcript/use-chat-transcript.d.ts +254 -0
  558. package/dist/src/react/core/transcript/use-chat-transcript.d.ts.map +1 -0
  559. package/dist/src/react/core/transcript/use-chat-transcript.js +572 -0
  560. package/dist/src/react/core/transcript/use-chat-transcript.js.map +1 -0
  561. package/dist/src/react/core/transcript/use-stick-to-bottom.d.ts +33 -0
  562. package/dist/src/react/core/transcript/use-stick-to-bottom.d.ts.map +1 -0
  563. package/dist/src/react/core/transcript/use-stick-to-bottom.js +48 -0
  564. package/dist/src/react/core/transcript/use-stick-to-bottom.js.map +1 -0
  565. package/dist/src/react/core/use-agent-chat.d.ts +341 -0
  566. package/dist/src/react/core/use-agent-chat.d.ts.map +1 -0
  567. package/dist/src/react/core/use-agent-chat.js +1118 -0
  568. package/dist/src/react/core/use-agent-chat.js.map +1 -0
  569. package/dist/src/react/genui/index.d.ts +1 -7
  570. package/dist/src/react/genui/index.d.ts.map +1 -1
  571. package/dist/src/react/genui/index.js +1 -7
  572. package/dist/src/react/genui/index.js.map +1 -1
  573. package/dist/src/react/genui/json-render.d.ts +1 -5
  574. package/dist/src/react/genui/json-render.d.ts.map +1 -1
  575. package/dist/src/react/genui/json-render.js +1 -5
  576. package/dist/src/react/genui/json-render.js.map +1 -1
  577. package/dist/src/react/genui/server.d.ts +2 -0
  578. package/dist/src/react/genui/server.d.ts.map +1 -0
  579. package/dist/src/react/genui/server.js +2 -0
  580. package/dist/src/react/genui/server.js.map +1 -0
  581. package/dist/src/react/genui/server_playwright.d.ts +2 -0
  582. package/dist/src/react/genui/server_playwright.d.ts.map +1 -0
  583. package/dist/src/react/genui/server_playwright.js +2 -0
  584. package/dist/src/react/genui/server_playwright.js.map +1 -0
  585. package/dist/src/react/index.d.ts +5 -7
  586. package/dist/src/react/index.d.ts.map +1 -1
  587. package/dist/src/react/index.js +5 -7
  588. package/dist/src/react/index.js.map +1 -1
  589. package/dist/src/react/markdown.d.ts +1 -6
  590. package/dist/src/react/markdown.d.ts.map +1 -1
  591. package/dist/src/react/markdown.js +1 -6
  592. package/dist/src/react/markdown.js.map +1 -1
  593. package/dist/src/react/media.d.ts +1 -17
  594. package/dist/src/react/media.d.ts.map +1 -1
  595. package/dist/src/react/media.js +1 -17
  596. package/dist/src/react/media.js.map +1 -1
  597. package/dist/src/refusal.d.ts +3 -0
  598. package/dist/src/refusal.d.ts.map +1 -0
  599. package/dist/src/refusal.js +3 -0
  600. package/dist/src/refusal.js.map +1 -0
  601. package/dist/src/spi/action-proposal-outcome-store.d.ts +43 -0
  602. package/dist/src/spi/action-proposal-outcome-store.d.ts.map +1 -0
  603. package/dist/src/spi/action-proposal-outcome-store.js +2 -0
  604. package/dist/src/spi/action-proposal-outcome-store.js.map +1 -0
  605. package/dist/src/spi/action-proposal-store.d.ts +152 -0
  606. package/dist/src/spi/action-proposal-store.d.ts.map +1 -0
  607. package/dist/src/spi/action-proposal-store.js +2 -0
  608. package/dist/src/spi/action-proposal-store.js.map +1 -0
  609. package/dist/src/spi/action-proposal-worker-store.d.ts +17 -0
  610. package/dist/src/spi/action-proposal-worker-store.d.ts.map +1 -0
  611. package/dist/src/spi/action-proposal-worker-store.js +2 -0
  612. package/dist/src/spi/action-proposal-worker-store.js.map +1 -0
  613. package/dist/src/spi/agent-runner.d.ts +6 -0
  614. package/dist/src/spi/agent-runner.d.ts.map +1 -1
  615. package/dist/src/spi/agent-store.d.ts +5 -0
  616. package/dist/src/spi/agent-store.d.ts.map +1 -1
  617. package/dist/src/spi/agent-store.js.map +1 -1
  618. package/dist/src/spi/approval-policy.d.ts +3 -0
  619. package/dist/src/spi/approval-policy.d.ts.map +1 -1
  620. package/dist/src/spi/approval-policy.js +8 -1
  621. package/dist/src/spi/approval-policy.js.map +1 -1
  622. package/dist/src/spi/background-actor-resolver.d.ts +9 -0
  623. package/dist/src/spi/background-actor-resolver.d.ts.map +1 -0
  624. package/dist/src/spi/background-actor-resolver.js +2 -0
  625. package/dist/src/spi/background-actor-resolver.js.map +1 -0
  626. package/dist/src/spi/chat-queue.d.ts +7 -1
  627. package/dist/src/spi/chat-queue.d.ts.map +1 -1
  628. package/dist/src/spi/chat-queue.js.map +1 -1
  629. package/dist/src/spi/protocol-adapter.d.ts +3 -3
  630. package/dist/src/spi/roles-policy.d.ts +7 -0
  631. package/dist/src/spi/roles-policy.d.ts.map +1 -1
  632. package/dist/src/spi/token-stream-sink.d.ts +9 -0
  633. package/dist/src/spi/token-stream-sink.d.ts.map +1 -1
  634. package/dist/src/spi/token-stream-sink.js.map +1 -1
  635. package/dist/src/spi/tool.d.ts +40 -3
  636. package/dist/src/spi/tool.d.ts.map +1 -1
  637. package/dist/src/sse.d.ts.map +1 -1
  638. package/dist/src/sse.js +6 -0
  639. package/dist/src/sse.js.map +1 -1
  640. package/dist/src/stores/lucid-action-proposal-store.d.ts +55 -0
  641. package/dist/src/stores/lucid-action-proposal-store.d.ts.map +1 -0
  642. package/dist/src/stores/lucid-action-proposal-store.js +465 -0
  643. package/dist/src/stores/lucid-action-proposal-store.js.map +1 -0
  644. package/dist/src/stores/lucid-schema.d.ts +8 -6
  645. package/dist/src/stores/lucid-schema.d.ts.map +1 -1
  646. package/dist/src/stores/lucid-schema.js +61 -6
  647. package/dist/src/stores/lucid-schema.js.map +1 -1
  648. package/dist/src/stores/lucid.d.ts +4 -2
  649. package/dist/src/stores/lucid.d.ts.map +1 -1
  650. package/dist/src/stores/lucid.js +46 -14
  651. package/dist/src/stores/lucid.js.map +1 -1
  652. package/dist/src/stores/sqlite-transactions.d.ts +8 -0
  653. package/dist/src/stores/sqlite-transactions.d.ts.map +1 -0
  654. package/dist/src/stores/sqlite-transactions.js +24 -0
  655. package/dist/src/stores/sqlite-transactions.js.map +1 -0
  656. package/dist/src/stream-events.d.ts +4 -0
  657. package/dist/src/stream-events.d.ts.map +1 -1
  658. package/dist/src/testing/chat-queue-store-contract.d.ts.map +1 -1
  659. package/dist/src/testing/chat-queue-store-contract.js +4 -0
  660. package/dist/src/testing/chat-queue-store-contract.js.map +1 -1
  661. package/dist/src/testing/in-memory-action-proposal-store.d.ts +32 -0
  662. package/dist/src/testing/in-memory-action-proposal-store.d.ts.map +1 -0
  663. package/dist/src/testing/in-memory-action-proposal-store.js +159 -0
  664. package/dist/src/testing/in-memory-action-proposal-store.js.map +1 -0
  665. package/dist/src/testing/in-memory-store.d.ts +9 -1
  666. package/dist/src/testing/in-memory-store.d.ts.map +1 -1
  667. package/dist/src/testing/in-memory-store.js +80 -1
  668. package/dist/src/testing/in-memory-store.js.map +1 -1
  669. package/dist/src/testing/index.d.ts +1 -0
  670. package/dist/src/testing/index.d.ts.map +1 -1
  671. package/dist/src/testing/index.js +1 -0
  672. package/dist/src/testing/index.js.map +1 -1
  673. package/dist/src/tool-discovery.d.ts +1 -1
  674. package/dist/src/tool-discovery.d.ts.map +1 -1
  675. package/dist/src/tool-discovery.js +12 -1
  676. package/dist/src/tool-discovery.js.map +1 -1
  677. package/dist/src/tool-registry.d.ts +28 -1
  678. package/dist/src/tool-registry.d.ts.map +1 -1
  679. package/dist/src/tool-registry.js +85 -3
  680. package/dist/src/tool-registry.js.map +1 -1
  681. package/dist/src/tool-result-presentation.d.ts +12 -0
  682. package/dist/src/tool-result-presentation.d.ts.map +1 -0
  683. package/dist/src/tool-result-presentation.js +44 -0
  684. package/dist/src/tool-result-presentation.js.map +1 -0
  685. package/dist/src/tool-retry.d.ts +0 -11
  686. package/dist/src/tool-retry.d.ts.map +1 -1
  687. package/dist/src/tool-retry.js +5 -1
  688. package/dist/src/tool-retry.js.map +1 -1
  689. package/dist/src/tool-ui.d.ts +4 -1
  690. package/dist/src/tool-ui.d.ts.map +1 -1
  691. package/dist/src/tool-ui.js +32 -4
  692. package/dist/src/tool-ui.js.map +1 -1
  693. package/dist/src/types.d.ts +48 -2
  694. package/dist/src/types.d.ts.map +1 -1
  695. package/dist/src/ui-capabilities.d.ts +2 -0
  696. package/dist/src/ui-capabilities.d.ts.map +1 -0
  697. package/dist/src/ui-capabilities.js +4 -0
  698. package/dist/src/ui-capabilities.js.map +1 -0
  699. package/dist/stubs/database/migrations/add_action_proposal_discovery.stub +24 -0
  700. package/dist/stubs/database/migrations/add_action_proposal_runtime.stub +19 -0
  701. package/dist/stubs/database/migrations/create_agent_tables.stub +3 -3
  702. package/package.json +123 -22
  703. package/skills/agent-governance/SKILL.md +12 -4
  704. package/skills/agent-personas-agents/SKILL.md +2 -1
  705. package/skills/agent-setup/SKILL.md +36 -13
  706. package/skills/agent-testing/SKILL.md +22 -0
  707. package/skills/agent-tools/SKILL.md +54 -9
@@ -0,0 +1,409 @@
1
+ /** The ids of an AG-UI run this consumer invented, when the send did not name a thread. */
2
+ function newId() {
3
+ return globalThis.crypto.randomUUID();
4
+ }
5
+ function isRecord(value) {
6
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
7
+ }
8
+ async function defaultRefusal(response) {
9
+ try {
10
+ const body = (await response.json());
11
+ if (typeof body.message === 'string' && body.message.length > 0)
12
+ return new Error(body.message);
13
+ }
14
+ catch {
15
+ // not JSON: fall through to the status
16
+ }
17
+ return new Error(`The agent refused the request (${response.status}).`);
18
+ }
19
+ function defaultForwardedProps(body) {
20
+ const out = {};
21
+ for (const key of ['pageContext', 'agent', 'model', 'persona', 'uiCapabilities']) {
22
+ if (body[key] !== undefined && body[key] !== null)
23
+ out[key] = body[key];
24
+ }
25
+ return Object.keys(out).length > 0 ? out : undefined;
26
+ }
27
+ /** Start a turn against an AG-UI producer; the stream comes back in this library's framing. */
28
+ export async function agUiChatStream(request, options) {
29
+ const body = request.body;
30
+ const threadId = typeof body.threadId === 'string' ? body.threadId : newId();
31
+ const message = typeof body.message === 'string' ? body.message : '';
32
+ const forwarded = (options.forwardedProps ?? defaultForwardedProps)(body);
33
+ const input = {
34
+ threadId,
35
+ runId: newId(),
36
+ protocolVersion: '1.0',
37
+ messages: [{ id: newId(), role: 'user', content: options.content?.(body) ?? message }],
38
+ ...(forwarded !== undefined ? { forwardedProps: forwarded } : {}),
39
+ };
40
+ const doFetch = options.fetch ?? globalThis.fetch.bind(globalThis);
41
+ const response = await doFetch(options.url, {
42
+ method: 'POST',
43
+ credentials: 'same-origin',
44
+ headers: {
45
+ 'content-type': 'application/json',
46
+ accept: 'text/event-stream',
47
+ ...options.headers,
48
+ ...request.headers,
49
+ },
50
+ body: JSON.stringify(input),
51
+ ...(request.signal !== undefined ? { signal: request.signal } : {}),
52
+ });
53
+ if (!response.ok || response.body === null) {
54
+ throw await (options.refusal ?? defaultRefusal)(response);
55
+ }
56
+ const runId = response.headers.get('x-agent-run-id') ?? undefined;
57
+ return {
58
+ body: reframeAgUiStream(response.body, { threadId }),
59
+ threadId,
60
+ ...(runId !== undefined ? { runId } : {}),
61
+ };
62
+ }
63
+ /**
64
+ * Re-frame an AG-UI event stream (SSE, one event per `data:`) in this library's stream protocol:
65
+ * `event: meta`, numbered `data:` frames of {@link AgentStreamEvent}, then `event: done` or
66
+ * `event: error`. Exported for a backend that fetches the stream itself.
67
+ */
68
+ export function reframeAgUiStream(source, ids) {
69
+ const encoder = new TextEncoder();
70
+ const decoder = new TextDecoder();
71
+ const reframer = createReframer(ids.threadId);
72
+ const reader = source.getReader();
73
+ let buffer = '';
74
+ return new ReadableStream({
75
+ async pull(controller) {
76
+ for (;;) {
77
+ const { value, done } = await reader.read();
78
+ if (done) {
79
+ // A stream that stopped without a terminal event is a truncated run: end it plainly, and
80
+ // the transport reads the stored thread for the rest.
81
+ controller.close();
82
+ return;
83
+ }
84
+ buffer += decoder.decode(value, { stream: true }).replace(/\r\n?/g, '\n');
85
+ let out = '';
86
+ let separator = buffer.indexOf('\n\n');
87
+ while (separator !== -1) {
88
+ const block = buffer.slice(0, separator);
89
+ buffer = buffer.slice(separator + 2);
90
+ separator = buffer.indexOf('\n\n');
91
+ const data = block
92
+ .split('\n')
93
+ .filter((line) => line.startsWith('data:'))
94
+ .map((line) => line.slice(5).trimStart())
95
+ .join('\n');
96
+ if (data.length === 0)
97
+ continue;
98
+ let event;
99
+ try {
100
+ event = JSON.parse(data);
101
+ }
102
+ catch {
103
+ continue;
104
+ }
105
+ if (isRecord(event) && typeof event.type === 'string') {
106
+ out += reframer.push(event);
107
+ }
108
+ if (reframer.closed)
109
+ break;
110
+ }
111
+ if (out.length > 0)
112
+ controller.enqueue(encoder.encode(out));
113
+ if (reframer.closed) {
114
+ void reader.cancel().catch(() => undefined);
115
+ controller.close();
116
+ return;
117
+ }
118
+ if (out.length > 0)
119
+ return;
120
+ }
121
+ },
122
+ cancel(reason) {
123
+ return reader.cancel(reason).catch(() => undefined);
124
+ },
125
+ });
126
+ }
127
+ function createReframer(threadId) {
128
+ const activities = new Map();
129
+ let seq = 0;
130
+ let metaSent = false;
131
+ const tools = new Map();
132
+ const state = {
133
+ closed: false,
134
+ push(event) {
135
+ if (state.closed)
136
+ return '';
137
+ let out = '';
138
+ const frame = (streamEvent) => {
139
+ seq += 1;
140
+ out += `id: ${seq}\ndata: ${JSON.stringify(streamEvent)}\n\n`;
141
+ };
142
+ const meta = (runId, thread) => {
143
+ if (metaSent)
144
+ return;
145
+ metaSent = true;
146
+ out += `event: meta\ndata: ${JSON.stringify({
147
+ runId: typeof runId === 'string' ? runId : '',
148
+ threadId: typeof thread === 'string' ? thread : threadId,
149
+ })}\n\n`;
150
+ };
151
+ switch (event.type) {
152
+ case 'RUN_STARTED':
153
+ // `agora.run` (next) names the library's own run; wait a beat for it only if it follows
154
+ // at once — otherwise the protocol's own ids do.
155
+ pendingStart = { runId: event.runId, threadId: event.threadId };
156
+ return out;
157
+ case 'CUSTOM': {
158
+ const value = event.value;
159
+ if (event.name === 'agora.run' && isRecord(value)) {
160
+ meta(value.runId, pendingStart?.threadId ?? value.threadId);
161
+ pendingStart = undefined;
162
+ return out;
163
+ }
164
+ flushStart();
165
+ if (!isRecord(value))
166
+ return out;
167
+ if (event.name === 'agora.ui')
168
+ frame({ kind: 'ui', ...value });
169
+ else if (event.name === 'agora.title' && typeof value.title === 'string') {
170
+ frame({ kind: 'title', title: value.title });
171
+ }
172
+ else if (event.name === 'agora.queue')
173
+ frame({ kind: 'queue', ...value });
174
+ else if (event.name === 'agora.approval-requested') {
175
+ frame({ ...value, kind: 'approval-requested' });
176
+ }
177
+ else if (event.name === 'agora.approval-settled') {
178
+ frame({ ...value, kind: 'approval-settled' });
179
+ }
180
+ return out;
181
+ }
182
+ default:
183
+ flushStart();
184
+ }
185
+ switch (event.type) {
186
+ case 'TEXT_MESSAGE_CONTENT':
187
+ case 'TEXT_MESSAGE_CHUNK':
188
+ if (typeof event.delta === 'string' && event.delta.length > 0) {
189
+ frame({ kind: 'text', text: event.delta });
190
+ }
191
+ break;
192
+ case 'REASONING_MESSAGE_CONTENT':
193
+ case 'REASONING_MESSAGE_CHUNK':
194
+ if (typeof event.delta === 'string' && event.delta.length > 0) {
195
+ frame({ kind: 'reasoning', text: event.delta });
196
+ }
197
+ break;
198
+ case 'STEP_STARTED':
199
+ frame({ kind: 'step-start' });
200
+ break;
201
+ case 'STEP_FINISHED':
202
+ frame({ kind: 'step-finish' });
203
+ break;
204
+ case 'TOOL_CALL_START':
205
+ case 'TOOL_CALL_CHUNK': {
206
+ const id = String(event.toolCallId ?? '');
207
+ if (id === '')
208
+ break;
209
+ if (!tools.has(id)) {
210
+ const name = typeof event.toolCallName === 'string' ? event.toolCallName : '';
211
+ tools.set(id, { name, args: '' });
212
+ frame({ kind: 'tool-input-start', id, name, toolKind: 'read' });
213
+ }
214
+ if (event.type === 'TOOL_CALL_CHUNK' && typeof event.delta === 'string') {
215
+ tools.get(id).args += event.delta;
216
+ frame({ kind: 'tool-input-delta', id, delta: event.delta });
217
+ }
218
+ break;
219
+ }
220
+ case 'TOOL_CALL_ARGS': {
221
+ const call = tools.get(String(event.toolCallId));
222
+ if (call === undefined || typeof event.delta !== 'string')
223
+ break;
224
+ call.args += event.delta;
225
+ frame({ kind: 'tool-input-delta', id: String(event.toolCallId), delta: event.delta });
226
+ break;
227
+ }
228
+ case 'TOOL_CALL_END': {
229
+ const id = String(event.toolCallId);
230
+ const call = tools.get(id);
231
+ if (call === undefined)
232
+ break;
233
+ frame({
234
+ kind: 'tool-input-available',
235
+ id,
236
+ name: call.name,
237
+ input: parseJson(call.args, {}),
238
+ toolKind: 'read',
239
+ });
240
+ break;
241
+ }
242
+ case 'TOOL_CALL_RESULT': {
243
+ const id = String(event.toolCallId);
244
+ const content = contentText(event.content);
245
+ const outcome = isRecord(event.metadata) ? event.metadata['agora.outcome'] : undefined;
246
+ if (outcome === 'error')
247
+ frame({ kind: 'tool-output-error', id, error: content });
248
+ else if (outcome === 'denied')
249
+ frame({ kind: 'tool-output-denied', id, reason: content });
250
+ else
251
+ frame({ kind: 'tool-output', id, output: parseJson(content, content) });
252
+ break;
253
+ }
254
+ case 'ACTIVITY_SNAPSHOT':
255
+ case 'ACTIVITY_DELTA': {
256
+ const messageId = typeof event.messageId === 'string' ? event.messageId : '';
257
+ if (messageId === '')
258
+ break;
259
+ const known = activities.get(messageId);
260
+ const activityType = typeof event.activityType === 'string'
261
+ ? event.activityType
262
+ : (known?.activityType ?? '');
263
+ let content;
264
+ if (event.type === 'ACTIVITY_SNAPSHOT') {
265
+ // `replace: false` leaves an existing activity as it stands
266
+ if (known !== undefined && event.replace === false)
267
+ break;
268
+ content = isRecord(event.content) ? event.content : {};
269
+ }
270
+ else {
271
+ // a delta for an activity nothing created is skipped, never fatal
272
+ if (known === undefined || !Array.isArray(event.patch))
273
+ break;
274
+ content = applyPatch(known.content, event.patch);
275
+ if (content === undefined)
276
+ break;
277
+ }
278
+ activities.set(messageId, { activityType, content });
279
+ frame({
280
+ kind: 'ui',
281
+ id: `activity:${messageId}`,
282
+ component: 'AgUiActivity',
283
+ props: { activityType, content },
284
+ });
285
+ break;
286
+ }
287
+ case 'RUN_ERROR':
288
+ state.closed = true;
289
+ out += `event: error\ndata: ${JSON.stringify({
290
+ code: typeof event.code === 'string' ? event.code : 'run_failed',
291
+ message: typeof event.message === 'string' ? event.message : 'The run failed.',
292
+ })}\n\n`;
293
+ break;
294
+ case 'RUN_FINISHED': {
295
+ const outcome = isRecord(event.outcome) ? event.outcome : undefined;
296
+ if (outcome?.type === 'cancelled')
297
+ frame({ kind: 'cancelled' });
298
+ if (outcome?.type === 'interrupt' && Array.isArray(outcome.interrupts)) {
299
+ frame({
300
+ kind: 'ui',
301
+ id: `ag-ui:interrupt:${String(event.runId ?? '')}`,
302
+ component: 'AgUiInterrupt',
303
+ props: { interrupts: outcome.interrupts },
304
+ });
305
+ }
306
+ state.closed = true;
307
+ out += 'event: done\ndata: {}\n\n';
308
+ break;
309
+ }
310
+ default:
311
+ // Everything else (message and span brackets, state, activity, raw) carries nothing this
312
+ // framing does not already say.
313
+ break;
314
+ }
315
+ return out;
316
+ function flushStart() {
317
+ if (pendingStart !== undefined) {
318
+ meta(pendingStart.runId, pendingStart.threadId);
319
+ pendingStart = undefined;
320
+ }
321
+ }
322
+ },
323
+ };
324
+ let pendingStart;
325
+ return state;
326
+ }
327
+ function parseJson(text, fallback) {
328
+ if (text.trim().length === 0)
329
+ return fallback;
330
+ try {
331
+ return JSON.parse(text);
332
+ }
333
+ catch {
334
+ return fallback;
335
+ }
336
+ }
337
+ /** A result's content as text: a string, or its text parts in order (other parts carry no text). */
338
+ function contentText(content) {
339
+ if (typeof content === 'string')
340
+ return content;
341
+ if (!Array.isArray(content))
342
+ return '';
343
+ return content
344
+ .filter((part) => isRecord(part) && part.type === 'text' && typeof part.text === 'string')
345
+ .map((part) => part.text)
346
+ .join('');
347
+ }
348
+ /**
349
+ * RFC 6902 on a copy: `add`, `replace`, `remove` (and `test`, which fails the patch). `undefined`
350
+ * when the patch does not apply — the activity then keeps its last good content until a snapshot.
351
+ */
352
+ function applyPatch(target, patch) {
353
+ const doc = structuredClone(target);
354
+ for (const operation of patch) {
355
+ if (!isRecord(operation) || typeof operation.path !== 'string')
356
+ return undefined;
357
+ const tokens = operation.path
358
+ .split('/')
359
+ .slice(1)
360
+ .map((token) => token.replace(/~1/g, '/').replace(/~0/g, '~'));
361
+ const key = tokens.pop();
362
+ if (key === undefined)
363
+ return undefined;
364
+ let parent = doc;
365
+ for (const token of tokens) {
366
+ parent = Array.isArray(parent)
367
+ ? parent[Number(token)]
368
+ : isRecord(parent)
369
+ ? parent[token]
370
+ : undefined;
371
+ if (parent === undefined)
372
+ return undefined;
373
+ }
374
+ if (Array.isArray(parent)) {
375
+ const index = key === '-' ? parent.length : Number(key);
376
+ if (!Number.isInteger(index) || index < 0 || index > parent.length)
377
+ return undefined;
378
+ if (operation.op === 'add')
379
+ parent.splice(index, 0, operation.value);
380
+ else if (operation.op === 'replace' && index < parent.length)
381
+ parent[index] = operation.value;
382
+ else if (operation.op === 'remove' && index < parent.length)
383
+ parent.splice(index, 1);
384
+ else if (operation.op === 'test') {
385
+ if (JSON.stringify(parent[index]) !== JSON.stringify(operation.value))
386
+ return undefined;
387
+ }
388
+ else
389
+ return undefined;
390
+ }
391
+ else if (isRecord(parent)) {
392
+ if (operation.op === 'add' || (operation.op === 'replace' && key in parent)) {
393
+ parent[key] = operation.value;
394
+ }
395
+ else if (operation.op === 'remove' && key in parent)
396
+ delete parent[key];
397
+ else if (operation.op === 'test') {
398
+ if (JSON.stringify(parent[key]) !== JSON.stringify(operation.value))
399
+ return undefined;
400
+ }
401
+ else
402
+ return undefined;
403
+ }
404
+ else
405
+ return undefined;
406
+ }
407
+ return doc;
408
+ }
409
+ //# sourceMappingURL=ag-ui-backend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ag-ui-backend.js","sourceRoot":"","sources":["../../../../src/react/core/ag-ui-backend.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,187 @@
1
+ import type { ChatTransport, UIMessage, UIMessageChunk } from 'ai';
2
+ import type { AgentBackend } from './backend.js';
3
+ import type { AgentRunFailure } from './run-errors.js';
4
+ /** Identity surfaced by the backend's `meta` SSE frame / response headers. */
5
+ export interface AgentStreamMeta {
6
+ runId: string;
7
+ threadId: string;
8
+ }
9
+ /**
10
+ * How the transport retries a stream that dropped mid-run. It reconnects only to a server that
11
+ * numbers its frames (SSE `id:`) — without a cursor a reconnect would replay the run into the
12
+ * message it is already writing.
13
+ */
14
+ export interface ReconnectOptions {
15
+ /** Attempts before giving up with an error chunk. Default 6. */
16
+ maxAttempts?: number;
17
+ /** Delay before the first attempt, doubled each attempt. Default 500 ms. */
18
+ baseDelayMs?: number;
19
+ /** Cap on the delay between attempts. Default 8000 ms. */
20
+ maxDelayMs?: number;
21
+ }
22
+ /** Where a live stream stands. `reconnecting` → it dropped and the transport is retrying. */
23
+ export type StreamConnectionState = {
24
+ status: 'live';
25
+ } | {
26
+ status: 'reconnecting';
27
+ runId: string;
28
+ attempt: number;
29
+ after: number;
30
+ }
31
+ /** The run ended while the client was away (the resume answered 404): reload the thread. */
32
+ | {
33
+ status: 'gone';
34
+ runId: string;
35
+ }
36
+ /** Every attempt failed; the stream ended with an error chunk. */
37
+ | {
38
+ status: 'failed';
39
+ runId: string;
40
+ };
41
+ export interface AgentChatTransportOptions {
42
+ /**
43
+ * What the transport talks to. Default: an {@link AgentClient} built from `baseUrl`, `headers`,
44
+ * `getHeaders`, `credentials` and `fetch` below — which are ignored when a backend is given.
45
+ */
46
+ backend?: AgentBackend;
47
+ /** Retry a dropped stream from its last frame. Default on; `false` turns it off. */
48
+ reconnect?: ReconnectOptions | false;
49
+ /** Fires as a stream drops, reconnects, or gives up. */
50
+ onConnectionChange?: (state: StreamConnectionState) => void;
51
+ /** The server's origin, e.g. `https://api.example.com`. Defaults to `''` (same origin). */
52
+ baseUrl?: string;
53
+ /** The agent's route prefix (`AgentModule`'s `path`, global prefix included). Default `'agent'`. */
54
+ path?: string;
55
+ /** Static headers merged into every request (e.g. a tenant ref). */
56
+ headers?: Record<string, string>;
57
+ /**
58
+ * Resolved at request time — use for short-lived bearer tokens that
59
+ * must not be captured once at construction. Merged over `headers`.
60
+ */
61
+ getHeaders?: () => Record<string, string> | Promise<Record<string, string>>;
62
+ /** Forwarded to `fetch` so cookie-based auth/impersonation works. */
63
+ credentials?: RequestCredentials;
64
+ /** Named agent to run the turn (backend `agent` field). */
65
+ agent?: string;
66
+ /** One of the agent's personas to answer as (backend `persona` field). */
67
+ persona?: string;
68
+ /**
69
+ * Extra body fields evaluated per send — the hook injects `threadId`
70
+ * and `pageContext` through this. Returned object is spread into the
71
+ * request body after the SDK's own `body`.
72
+ */
73
+ getBody?: () => Record<string, unknown>;
74
+ /**
75
+ * The run id to resume on mount, if any. Returning `undefined` makes
76
+ * `reconnectToStream` resolve to `null` WITHOUT hitting the network —
77
+ * this is the generalized fix for "useChat fires a doomed GET on mount
78
+ * and surfaces its 404". Wire this to the thread's `activeRunId`.
79
+ */
80
+ getResumeRunId?: () => string | undefined;
81
+ /**
82
+ * Fires once `reconnectToStream` has attached to a run's stream, with that run's id. A resumed
83
+ * stream replays frames but opens with no `meta` frame, so this is the only place a caller learns
84
+ * which run it is now reading — what a Stop pressed after a reload has to cancel.
85
+ */
86
+ onResumeAttached?: (runId: string) => void;
87
+ /** Fires whenever a stream emits its `meta` frame. */
88
+ onMeta?: (meta: AgentStreamMeta) => void;
89
+ /**
90
+ * Fires synchronously at the very start of `sendMessages`/`reconnectToStream`, before any network
91
+ * call — i.e. strictly before that attempt's own `onMeta` (if any) can fire. Lets a caller reset
92
+ * "which run is THIS attempt settling" state without racing React's render/effect timing: a
93
+ * consumer that also read `onMeta` to learn the current run id would otherwise risk misattributing
94
+ * an early failure (no meta ever arrives) to a PRIOR attempt's id.
95
+ */
96
+ onAttemptStart?: () => void;
97
+ /**
98
+ * A resume found nothing streaming under the run id (the backend answered 404): the run already
99
+ * ended. The SDK is told there is nothing to resume, so the caller is the one that has to reload
100
+ * what the run wrote — `useAgentChat` re-reads the thread.
101
+ */
102
+ onResumeGone?: (runId: string) => void;
103
+ /**
104
+ * The run's stream ended with the backend's `event: error` frame — called with its `code` and
105
+ * `message` right before the stream is closed with an error chunk. The chunk can only carry the
106
+ * text; this is where the `code` reaches a caller, so it can word the failure itself.
107
+ */
108
+ onRunError?: (failure: AgentRunFailure) => void;
109
+ /** Injectable for tests / non-browser runtimes. Defaults to global fetch. */
110
+ fetch?: typeof fetch;
111
+ }
112
+ /**
113
+ * AI SDK v7 `ChatTransport` for the Adonis agent backend. POSTs
114
+ * `/agent/chat`, parses the backend's `meta` + `{delta}` + `done` SSE
115
+ * frames, and re-emits them as the v7 UI-message chunk stream
116
+ * (`start` → `text-start` → `text-delta`* → `text-end` → `finish`).
117
+ *
118
+ * The backend hydrates prior history from its store, so only the latest
119
+ * user message text is sent each turn — keeping payloads tiny and
120
+ * preventing the client from corrupting replayed history.
121
+ *
122
+ * Attachments (image/PDF for a vision-capable model) ride the per-send body:
123
+ * `sendMessage({ text }, { body: { attachments: MessageAttachment[] } })`. They
124
+ * flow to the backend as the turn's `attachments`, get persisted on the user
125
+ * message, and are rendered as native model content parts. Optimistic display of
126
+ * the user's own attachment thumbnails is the consumer's concern (it stages the
127
+ * upload), the same way history rendering reads `StoredMessage.attachments`.
128
+ *
129
+ * Frames beyond text/reasoning/tools become AI SDK data parts (seen by `useChat`'s `onData`):
130
+ * - `ui` → `data-ui` part, `id` = the component id (a repeat id updates it in place)
131
+ * - `approval-requested` → `data-approval-requested` part keyed by the call id, plus the SDK's
132
+ * native `tool-approval-request` (the part moves to `approval-requested`)
133
+ * - `approval-settled` → `data-approval-settled` part keyed by the call id (who decided, through
134
+ * what, remembered or not); the outcome still rides the call's own output
135
+ * - `title`, `cancelled`, `queue` → transient `data-title` / `data-cancelled` / `data-queue` (never
136
+ * stored on the message). A send the server queued (`202`) is reported
137
+ * as a transient `data-queue` too, carrying `queuedSend`
138
+ * - any other kind → `data-<kind>` part carrying the frame minus `kind`, keyed by its `id`
139
+ * when it has one — forwarded, never dropped
140
+ * `parentId` on a tool frame rides the part's `toolMetadata` next to `toolKind`.
141
+ */
142
+ export declare class AgentChatTransport implements ChatTransport<UIMessage> {
143
+ private readonly options;
144
+ private currentRunId;
145
+ private currentThreadId;
146
+ /**
147
+ * One attempt at a time. The AI SDK keeps a single in-flight response per chat and decides
148
+ * whether its streamed message REPLACES the list's last entry or is appended by comparing that
149
+ * response's message id against the last entry alone. Two attempts writing into one chat
150
+ * therefore append alternating copies of each other's message, and the list ends up holding
151
+ * several entries under each id — which React renders as duplicate keys.
152
+ */
153
+ private attemptLive;
154
+ private readonly backend;
155
+ constructor(options?: AgentChatTransportOptions);
156
+ /** Run id of the most recent stream — HITL approve/reject target this. */
157
+ get runId(): string | undefined;
158
+ /** Thread id of the most recent stream. */
159
+ get threadId(): string | undefined;
160
+ /**
161
+ * True from the moment a send or resume attempt starts until its chunk stream terminates. A
162
+ * caller that can refuse a turn BEFORE the SDK commits to one — `useAgentChat` wrapping
163
+ * `sendMessage` — reads this; the transport itself can only refuse a resume, which is the one
164
+ * attempt the SDK lets a transport decline.
165
+ */
166
+ get isAttemptLive(): boolean;
167
+ sendMessages(options: Parameters<ChatTransport<UIMessage>['sendMessages']>[0]): Promise<ReadableStream<UIMessageChunk>>;
168
+ reconnectToStream(options: Parameters<ChatTransport<UIMessage>['reconnectToStream']>[0]): Promise<ReadableStream<UIMessageChunk> | null>;
169
+ private captureHeaderMeta;
170
+ private reconnectPolicy;
171
+ private recordMeta;
172
+ /**
173
+ * Parse the backend's SSE byte stream and re-emit it as a valid v7 UI-message chunk stream.
174
+ * Recognized frames:
175
+ * - `event: meta` `data: {"runId","threadId"}` → records identity
176
+ * - `data: <AgentStreamEvent JSON>` → mapped to UI chunks (text / reasoning / tool /
177
+ * `data-*`; see {@link AgentChatTransport} docs)
178
+ * - `event: done` `data: {}` → terminates
179
+ * - `event: error` `data: {code,message}` → error chunk
180
+ *
181
+ * A run is ONE UI message with N steps. Each `step-start`/`step-finish` pair brackets a model
182
+ * call plus its tool execution; text and reasoning open lazily and close at the step boundary, so
183
+ * tool-call cards (input streaming → output) render live between the prose.
184
+ */
185
+ private toChunkStream;
186
+ }
187
+ //# sourceMappingURL=agent-chat-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-chat-transport.d.ts","sourceRoot":"","sources":["../../../../src/react/core/agent-chat-transport.ts"],"names":[],"mappings":"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"}