agents 0.26.0 → 0.28.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 (301) hide show
  1. package/README.md +8 -9
  2. package/dist/abortable-C1SpfVoi.js +21 -0
  3. package/dist/abortable-C1SpfVoi.js.map +1 -0
  4. package/dist/{agent-routing-0DR0Tk2v.d.ts → agent-routing-QDcchcQP.d.ts} +16 -16
  5. package/dist/agent-routing.d.ts +1 -1
  6. package/dist/agent-tool-types.d.ts +1 -1
  7. package/dist/{agent-tools-YrATZJu2.d.ts → agent-tools-DHL2XI7u.d.ts} +2 -2
  8. package/dist/agent-tools.d.ts +1 -1
  9. package/dist/ai-ahruGw7e.d.ts +239 -0
  10. package/dist/ai-sdk-Bdsf6mSA.js +2444 -0
  11. package/dist/ai-sdk-Bdsf6mSA.js.map +1 -0
  12. package/dist/apply-chunks-1FheRb9W.js +99 -0
  13. package/dist/apply-chunks-1FheRb9W.js.map +1 -0
  14. package/dist/broadcast-state-CEyI4uAK.js +69 -0
  15. package/dist/broadcast-state-CEyI4uAK.js.map +1 -0
  16. package/dist/browser/ai.d.ts +8 -227
  17. package/dist/browser/ai.js +259 -1
  18. package/dist/browser/ai.js.map +1 -0
  19. package/dist/browser/index.d.ts +56 -46
  20. package/dist/browser/index.js +4 -361
  21. package/dist/browser/{ai-sdk.d.ts → tools/ai-sdk.d.ts} +7 -7
  22. package/dist/browser/{ai-sdk.js → tools/ai-sdk.js} +6 -5
  23. package/dist/browser/tools/ai-sdk.js.map +1 -0
  24. package/dist/browser/tools/pi.d.ts +111 -0
  25. package/dist/browser/tools/pi.js +119 -0
  26. package/dist/browser/tools/pi.js.map +1 -0
  27. package/dist/browser/{tanstack-ai.d.ts → tools/tanstack-ai.d.ts} +39 -37
  28. package/dist/browser/{tanstack-ai.js → tools/tanstack-ai.js} +73 -59
  29. package/dist/browser/tools/tanstack-ai.js.map +1 -0
  30. package/dist/browser-CEdNlsaD.js +481 -0
  31. package/dist/browser-CEdNlsaD.js.map +1 -0
  32. package/dist/{browser-DE3d-RLk.d.ts → browser-D30VlpcA.d.ts} +63 -37
  33. package/dist/{browser-tool-CQ10e6Kj.js → browser-tool-4iomavs_.js} +198 -62
  34. package/dist/browser-tool-4iomavs_.js.map +1 -0
  35. package/dist/{browser-tool-DuNdlwZ9.d.ts → browser-tool-vtrPOV8e.d.ts} +25 -6
  36. package/dist/{capability-B4WbF81e.js → capability-DBAKc6UZ.js} +1 -3
  37. package/dist/capability-DBAKc6UZ.js.map +1 -0
  38. package/dist/{capability-runner-DBAnGr6L.d.ts → capability-runner-BiVUtjqC.d.ts} +9 -7
  39. package/dist/channel-Bak_6zDP.d.ts +333 -0
  40. package/dist/chat/index.d.ts +11 -9
  41. package/dist/chat/index.js +5 -194
  42. package/dist/chat/index.js.map +1 -1
  43. package/dist/chat/react.d.ts +2 -4
  44. package/dist/chat/react.js +3 -1
  45. package/dist/chat/react.js.map +1 -1
  46. package/dist/chat-sdk/index.d.ts +1 -1
  47. package/dist/chat-sdk/index.js +1 -1
  48. package/dist/cli.js +144 -0
  49. package/dist/{client-je3koD9Z.d.ts → client-BGIQKJhX.d.ts} +2 -2
  50. package/dist/{client-fyQrLGkD.js → client-BnYbNT3z.js} +29 -5
  51. package/dist/client-BnYbNT3z.js.map +1 -0
  52. package/dist/client-tools-aIBO0Fk7.d.ts +53 -0
  53. package/dist/client.d.ts +1 -1
  54. package/dist/{connector-58XDGvc3.js → connector-CtZylXdk.js} +3 -603
  55. package/dist/connector-CtZylXdk.js.map +1 -0
  56. package/dist/{connector-Cl-VqPmA.d.ts → connector-DEXzVoaY.d.ts} +9 -374
  57. package/dist/conversations-FjHDRZyD.d.ts +192 -0
  58. package/dist/{current-agent-vAk_5JMt.d.ts → current-agent-CKgT5d1O.d.ts} +3 -5
  59. package/dist/current-agent-DhoDkSnH.js.map +1 -1
  60. package/dist/daemon-core-Buubj-y1.js +481 -0
  61. package/dist/daemon-core-Buubj-y1.js.map +1 -0
  62. package/dist/daemon-core-CbohVPAu.d.ts +132 -0
  63. package/dist/{do-oauth-client-provider-Tmf1vgKz.d.ts → do-oauth-client-provider-DfsUcpc3.d.ts} +7 -1
  64. package/dist/{durable-object-lifecycle-HhgOMWq9.d.ts → durable-object-lifecycle-DOI_bzCH.d.ts} +2 -2
  65. package/dist/{channels/email.d.ts → experimental/channels/email/index.d.ts} +25 -12
  66. package/dist/{channels/email.js → experimental/channels/email/index.js} +13 -35
  67. package/dist/experimental/channels/email/index.js.map +1 -0
  68. package/dist/experimental/channels/index.d.ts +270 -0
  69. package/dist/experimental/channels/index.js +1186 -0
  70. package/dist/experimental/channels/index.js.map +1 -0
  71. package/dist/{channels/slack.d.ts → experimental/channels/slack/index.d.ts} +19 -9
  72. package/dist/experimental/channels/slack/index.js +267 -0
  73. package/dist/experimental/channels/slack/index.js.map +1 -0
  74. package/dist/{channels/telegram.d.ts → experimental/channels/telegram/index.d.ts} +19 -9
  75. package/dist/experimental/channels/telegram/index.js +198 -0
  76. package/dist/experimental/channels/telegram/index.js.map +1 -0
  77. package/dist/experimental/channels/web/ai-sdk.d.ts +55 -0
  78. package/dist/experimental/channels/web/ai-sdk.js +266 -0
  79. package/dist/experimental/channels/web/ai-sdk.js.map +1 -0
  80. package/dist/experimental/channels/web/client.d.ts +97 -0
  81. package/dist/experimental/channels/web/client.js +349 -0
  82. package/dist/experimental/channels/web/client.js.map +1 -0
  83. package/dist/experimental/channels/web/index.d.ts +189 -0
  84. package/dist/experimental/channels/web/index.js +332 -0
  85. package/dist/experimental/channels/web/index.js.map +1 -0
  86. package/dist/gateway-BFO6vRDn.d.ts +100 -0
  87. package/dist/handle-zAzh0UW2.d.ts +460 -0
  88. package/dist/harness/ai-sdk/index.d.ts +175 -0
  89. package/dist/harness/ai-sdk/index.js +605 -0
  90. package/dist/harness/ai-sdk/index.js.map +1 -0
  91. package/dist/harness/container/daemon/index.d.ts +76 -0
  92. package/dist/harness/container/daemon/index.js +3 -0
  93. package/dist/harness/container/index.d.ts +740 -0
  94. package/dist/harness/container/index.js +2152 -0
  95. package/dist/harness/container/index.js.map +1 -0
  96. package/dist/harness/container/runtime/index.d.ts +144 -0
  97. package/dist/harness/container/runtime/index.js +1082 -0
  98. package/dist/harness/container/runtime/index.js.map +1 -0
  99. package/dist/harness/opencode/index.d.ts +369 -0
  100. package/dist/harness/opencode/index.js +1072 -0
  101. package/dist/harness/opencode/index.js.map +1 -0
  102. package/dist/harness/pi/index.d.ts +3 -2
  103. package/dist/harness/pi/index.js +3 -3
  104. package/dist/harness/store/index.d.ts +24 -0
  105. package/dist/harness/store/index.js +2 -0
  106. package/dist/harness/think/index.d.ts +821 -0
  107. package/dist/harness/think/index.js +2721 -0
  108. package/dist/harness/think/index.js.map +1 -0
  109. package/dist/harness-B6B9S3rb.d.ts +203 -0
  110. package/dist/{images-iiTDSyRu.js → images-Ce9SCu3X.js} +2 -248
  111. package/dist/images-Ce9SCu3X.js.map +1 -0
  112. package/dist/{index-BreL0YrQ.d.ts → index-BEL3ZV-s.d.ts} +2 -6
  113. package/dist/index-CBt8oRJt.d.ts +198 -0
  114. package/dist/index.d.ts +5 -5
  115. package/dist/index.js +2 -2
  116. package/dist/ingress-EFbrS547.js +9 -0
  117. package/dist/ingress-EFbrS547.js.map +1 -0
  118. package/dist/input-schema-BQykTEp_.js +20 -0
  119. package/dist/input-schema-BQykTEp_.js.map +1 -0
  120. package/dist/input-schema-D2QAtHZH.js +23 -0
  121. package/dist/input-schema-D2QAtHZH.js.map +1 -0
  122. package/dist/internal-kmw70xwR.js +46 -0
  123. package/dist/internal-kmw70xwR.js.map +1 -0
  124. package/dist/internal_context.d.ts +1 -1
  125. package/dist/lifecycle/index.d.ts +3 -3
  126. package/dist/lifecycle/index.js +2 -2
  127. package/dist/{lifecycle-CFu6OV03.js → lifecycle-DGorpAmA.js} +2 -4
  128. package/dist/lifecycle-DGorpAmA.js.map +1 -0
  129. package/dist/mcp/client/do-oauth-client-provider.d.ts +1 -1
  130. package/dist/mcp/client/do-oauth-client-provider.js +9 -0
  131. package/dist/mcp/client/do-oauth-client-provider.js.map +1 -1
  132. package/dist/mcp/client/index.d.ts +1 -1
  133. package/dist/mcp/client/index.js +1 -1
  134. package/dist/mcp/client/x402.d.ts +35 -4
  135. package/dist/mcp/client/x402.js +24 -3
  136. package/dist/mcp/client/x402.js.map +1 -1
  137. package/dist/mcp/index.d.ts +1 -1
  138. package/dist/mcp/index.js +2 -2
  139. package/dist/models/ai-sdk/index.d.ts +16 -14
  140. package/dist/models/ai-sdk/index.js +1 -2442
  141. package/dist/models/opencode/index.d.ts +65 -0
  142. package/dist/models/opencode/index.js +285 -0
  143. package/dist/models/opencode/index.js.map +1 -0
  144. package/dist/models/pi-ai/index.d.ts +9 -7
  145. package/dist/models/pi-ai/index.js +2 -1
  146. package/dist/models/pi-ai/index.js.map +1 -1
  147. package/dist/options-CiIsJHXR.d.ts +130 -0
  148. package/dist/protocol-BEgrJYC5.d.ts +331 -0
  149. package/dist/protocol-CukuI73M.d.ts +386 -0
  150. package/dist/protocol-cOklVBBD.js +227 -0
  151. package/dist/protocol-cOklVBBD.js.map +1 -0
  152. package/dist/{protocol-kHsr-f0X.js → protocol-eXeJxhgu.js} +2 -67
  153. package/dist/protocol-eXeJxhgu.js.map +1 -0
  154. package/dist/protocol-y2sSY584.js +148 -0
  155. package/dist/protocol-y2sSY584.js.map +1 -0
  156. package/dist/queue/index.d.ts +1 -1
  157. package/dist/queue/index.js +1 -1
  158. package/dist/{queue-BB-zfIYF.js → queue-CcIjVYTE.js} +2 -2
  159. package/dist/{queue-BB-zfIYF.js.map → queue-CcIjVYTE.js.map} +1 -1
  160. package/dist/react.d.ts +2 -2
  161. package/dist/routing/index.d.ts +2 -2
  162. package/dist/routing/index.js +1 -1
  163. package/dist/{scheduler-RdACNXDP.d.ts → scheduler-BCLESHSC.d.ts} +2 -12
  164. package/dist/{scheduler-DZ3xQfeK.js → scheduler-FIHv2-kJ.js} +2 -4
  165. package/dist/scheduler-FIHv2-kJ.js.map +1 -0
  166. package/dist/schedules/index.d.ts +1 -1
  167. package/dist/schedules/index.js +1 -1
  168. package/dist/serializable.d.ts +1 -1
  169. package/dist/session-store-Do4xkDcf.js +606 -0
  170. package/dist/session-store-Do4xkDcf.js.map +1 -0
  171. package/dist/session-store-DoPY12xM.d.ts +383 -0
  172. package/dist/sessions/index.d.ts +11 -434
  173. package/dist/sessions/index.js +1 -2271
  174. package/dist/sessions-_vN5BEZX.js +2272 -0
  175. package/dist/sessions-_vN5BEZX.js.map +1 -0
  176. package/dist/settings-C45hDliX.js +253 -0
  177. package/dist/settings-C45hDliX.js.map +1 -0
  178. package/dist/{transport-PfFnt-Ld.d.ts → settings-NgGwF7Qt.d.ts} +14 -208
  179. package/dist/{src-BZeu-SCD.js → src-CQxJFv4l.js} +8 -8
  180. package/dist/src-CQxJFv4l.js.map +1 -0
  181. package/dist/stall-watchdog-BpRF2uwG.js +195 -0
  182. package/dist/stall-watchdog-BpRF2uwG.js.map +1 -0
  183. package/dist/state/index.d.ts +1 -1
  184. package/dist/state/index.js +1 -3
  185. package/dist/state/index.js.map +1 -1
  186. package/dist/store-BKM4Xm9M.d.ts +332 -0
  187. package/dist/store-CslVzfN7.js +458 -0
  188. package/dist/store-CslVzfN7.js.map +1 -0
  189. package/dist/streams/index.d.ts +1 -1
  190. package/dist/streams/index.js +1 -1
  191. package/dist/{streams-DW-UCOUc.js → streams-lsHMJhRW.js} +17 -4
  192. package/dist/streams-lsHMJhRW.js.map +1 -0
  193. package/dist/{streams-Cmkj9QfW.d.ts → streams-vrCtbUIn.d.ts} +2 -2
  194. package/dist/sub-routing.d.ts +1 -1
  195. package/dist/tasks/index.d.ts +1 -1
  196. package/dist/tasks/index.js +1 -1
  197. package/dist/{tasks-68DESxf0.js → tasks-BN_5AWqI.js} +3 -2
  198. package/dist/tasks-BN_5AWqI.js.map +1 -0
  199. package/dist/{tasks-9YxYtByh.d.ts → tasks-E89KdwkS.d.ts} +2 -2
  200. package/dist/tool-CTp72Jb_.d.ts +278 -0
  201. package/dist/tool-CxKsvxjm.js +1126 -0
  202. package/dist/tool-CxKsvxjm.js.map +1 -0
  203. package/dist/tool-DoVberpN.d.ts +301 -0
  204. package/dist/tool-cQRkwSZZ.js +410 -0
  205. package/dist/tool-cQRkwSZZ.js.map +1 -0
  206. package/dist/tool-helpers-O5BDVEAY.js +58 -0
  207. package/dist/tool-helpers-O5BDVEAY.js.map +1 -0
  208. package/dist/transport-k2mFrtL8.d.ts +200 -0
  209. package/dist/turns-DCV3ycDl.js +317 -0
  210. package/dist/turns-DCV3ycDl.js.map +1 -0
  211. package/dist/voice/client.js +1 -1
  212. package/dist/voice/index.d.ts +2 -2
  213. package/dist/voice/index.js +1 -1
  214. package/dist/web/fetch/index.d.ts +89 -0
  215. package/dist/web/fetch/index.js +20 -0
  216. package/dist/web/fetch/index.js.map +1 -0
  217. package/dist/web/fetch/tools/ai-sdk.d.ts +80 -0
  218. package/dist/web/fetch/tools/ai-sdk.js +47 -0
  219. package/dist/web/fetch/tools/ai-sdk.js.map +1 -0
  220. package/dist/web/fetch/tools/pi.d.ts +84 -0
  221. package/dist/web/fetch/tools/pi.js +88 -0
  222. package/dist/web/fetch/tools/pi.js.map +1 -0
  223. package/dist/web/fetch/tools/tanstack-ai.d.ts +78 -0
  224. package/dist/web/fetch/tools/tanstack-ai.js +45 -0
  225. package/dist/web/fetch/tools/tanstack-ai.js.map +1 -0
  226. package/dist/web/search/index.d.ts +58 -0
  227. package/dist/web/search/index.js +2 -0
  228. package/dist/web/search/tools/ai-sdk.d.ts +77 -0
  229. package/dist/web/search/tools/ai-sdk.js +46 -0
  230. package/dist/web/search/tools/ai-sdk.js.map +1 -0
  231. package/dist/web/search/tools/pi.d.ts +82 -0
  232. package/dist/web/search/tools/pi.js +89 -0
  233. package/dist/web/search/tools/pi.js.map +1 -0
  234. package/dist/web/search/tools/tanstack-ai.d.ts +71 -0
  235. package/dist/web/search/tools/tanstack-ai.js +46 -0
  236. package/dist/web/search/tools/tanstack-ai.js.map +1 -0
  237. package/dist/websockets/index.d.ts +12 -296
  238. package/dist/websockets/index.js +1 -1
  239. package/dist/{websockets-Ci-LZFHH.js → websockets-C3zy8YR0.js} +20 -8
  240. package/dist/websockets-C3zy8YR0.js.map +1 -0
  241. package/dist/{wire-types-CrjKvDyi.d.ts → wire-types-Cv0iwjk5.d.ts} +3 -51
  242. package/dist/workflow-types.d.ts +1 -1
  243. package/dist/workflows.d.ts +1 -1
  244. package/dist/workflows.js +1 -1
  245. package/docs/browse-the-web.md +29 -1
  246. package/docs/fetch-the-web.md +276 -0
  247. package/docs/harnesses/pi.md +25 -0
  248. package/docs/harnesses/think.md +215 -0
  249. package/docs/index.md +99 -75
  250. package/docs/lifecycle.md +42 -3
  251. package/docs/queue.md +2 -3
  252. package/docs/scheduling.md +2 -6
  253. package/docs/search-the-web.md +135 -0
  254. package/package.json +148 -44
  255. package/dist/ai-fm7xx1BK.js +0 -312
  256. package/dist/ai-fm7xx1BK.js.map +0 -1
  257. package/dist/browser/ai-sdk.js.map +0 -1
  258. package/dist/browser/index.js.map +0 -1
  259. package/dist/browser/tanstack-ai.js.map +0 -1
  260. package/dist/browser-tool-CQ10e6Kj.js.map +0 -1
  261. package/dist/capability-B4WbF81e.js.map +0 -1
  262. package/dist/channel-Bnm4S7T2.d.ts +0 -491
  263. package/dist/channels/ai-sdk.d.ts +0 -46
  264. package/dist/channels/ai-sdk.js +0 -120
  265. package/dist/channels/ai-sdk.js.map +0 -1
  266. package/dist/channels/email.js.map +0 -1
  267. package/dist/channels/index.d.ts +0 -233
  268. package/dist/channels/index.js +0 -608
  269. package/dist/channels/index.js.map +0 -1
  270. package/dist/channels/slack.js +0 -614
  271. package/dist/channels/slack.js.map +0 -1
  272. package/dist/channels/tanstack-ai.d.ts +0 -39
  273. package/dist/channels/tanstack-ai.js +0 -17
  274. package/dist/channels/tanstack-ai.js.map +0 -1
  275. package/dist/channels/telegram.js +0 -427
  276. package/dist/channels/telegram.js.map +0 -1
  277. package/dist/channels/voice.d.ts +0 -45
  278. package/dist/channels/voice.js +0 -122
  279. package/dist/channels/voice.js.map +0 -1
  280. package/dist/client-fyQrLGkD.js.map +0 -1
  281. package/dist/connector-58XDGvc3.js.map +0 -1
  282. package/dist/images-iiTDSyRu.js.map +0 -1
  283. package/dist/index-BB0kqhIz.d.ts +0 -101
  284. package/dist/ingress-BfetZbMO.js +0 -83
  285. package/dist/ingress-BfetZbMO.js.map +0 -1
  286. package/dist/internal-CYlgHl1l.js +0 -59
  287. package/dist/internal-CYlgHl1l.js.map +0 -1
  288. package/dist/lifecycle-CFu6OV03.js.map +0 -1
  289. package/dist/models/ai-sdk/index.js.map +0 -1
  290. package/dist/protocol-kHsr-f0X.js.map +0 -1
  291. package/dist/scheduler-DZ3xQfeK.js.map +0 -1
  292. package/dist/sessions/index.js.map +0 -1
  293. package/dist/src-BZeu-SCD.js.map +0 -1
  294. package/dist/streams-DW-UCOUc.js.map +0 -1
  295. package/dist/surface-bZZJqBka.js +0 -17
  296. package/dist/surface-bZZJqBka.js.map +0 -1
  297. package/dist/tasks-68DESxf0.js.map +0 -1
  298. package/dist/tool-schema-CBjGPrsQ.js +0 -31
  299. package/dist/tool-schema-CBjGPrsQ.js.map +0 -1
  300. package/dist/websockets-Ci-LZFHH.js.map +0 -1
  301. package/docs/channels.md +0 -323
package/README.md CHANGED
@@ -121,24 +121,23 @@ AI Chat agents · Agent tools · Tool calling · MCP servers & clients
121
121
  Platform Observability · Cross-domain auth · Resumable streams
122
122
  ```
123
123
 
124
- ### Voice and messaging channels
124
+ ### Voice and Channels
125
125
 
126
- Voice and provider-neutral messaging use separate entry points so applications
127
- only load the integrations they import:
126
+ Voice and Channels use separate entry points so applications only load the
127
+ integrations they import:
128
128
 
129
129
  ```typescript
130
130
  import { withVoice } from "agents/voice";
131
131
  import { VoiceClient } from "agents/voice/client";
132
132
  import { useVoiceAgent } from "agents/voice/react";
133
133
 
134
- import { ChannelHost } from "agents/channels";
135
- import { email } from "agents/channels/email";
136
- import { slack } from "agents/channels/slack";
137
- import { telegram } from "agents/channels/telegram";
134
+ import { ChannelGateway, Channels } from "agents/experimental/channels";
135
+ import { email } from "agents/experimental/channels/email";
136
+ import { slack } from "agents/experimental/channels/slack";
137
+ import { telegram } from "agents/experimental/channels/telegram";
138
138
  ```
139
139
 
140
- See the [Voice](../../docs/agents/voice.md) and
141
- [Channels](../../docs/agents/channels.md) references.
140
+ See the [Voice](../../docs/agents/voice.md) reference.
142
141
 
143
142
  ### State Management
144
143
 
@@ -0,0 +1,21 @@
1
+ //#region src/web/abortable.ts
2
+ /**
3
+ * Shared by the `web_search` and `web_fetch` tools. Internal — not an entry
4
+ * point.
5
+ */
6
+ /** Settle with `promise`, or reject with the signal's reason once it aborts. */
7
+ function abortable(promise, signal) {
8
+ if (!signal) return promise;
9
+ signal.throwIfAborted();
10
+ return new Promise((resolve, reject) => {
11
+ const onAbort = () => reject(signal.reason);
12
+ signal.addEventListener("abort", onAbort, { once: true });
13
+ promise.then(resolve, reject).finally(() => {
14
+ signal.removeEventListener("abort", onAbort);
15
+ });
16
+ });
17
+ }
18
+ //#endregion
19
+ export { abortable as t };
20
+
21
+ //# sourceMappingURL=abortable-C1SpfVoi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"abortable-C1SpfVoi.js","names":[],"sources":["../src/web/abortable.ts"],"sourcesContent":["/**\n * Shared by the `web_search` and `web_fetch` tools. Internal — not an entry\n * point.\n */\n\n/** Settle with `promise`, or reject with the signal's reason once it aborts. */\nexport function abortable<T>(\n promise: Promise<T>,\n signal?: AbortSignal\n): Promise<T> {\n if (!signal) return promise;\n signal.throwIfAborted();\n return new Promise<T>((resolve, reject) => {\n const onAbort = () => reject(signal.reason);\n signal.addEventListener(\"abort\", onAbort, { once: true });\n promise.then(resolve, reject).finally(() => {\n signal.removeEventListener(\"abort\", onAbort);\n });\n });\n}\n"],"mappings":";;;;;;AAMA,SAAgB,UACd,SACA,QACY;CACZ,IAAI,CAAC,QAAQ,OAAO;CACpB,OAAO,eAAe;CACtB,OAAO,IAAI,SAAY,SAAS,WAAW;EACzC,MAAM,gBAAgB,OAAO,OAAO,MAAM;EAC1C,OAAO,iBAAiB,SAAS,SAAS,EAAE,MAAM,KAAK,CAAC;EACxD,QAAQ,KAAK,SAAS,MAAM,CAAC,CAAC,cAAc;GAC1C,OAAO,oBAAoB,SAAS,OAAO;EAC7C,CAAC;CACH,CAAC;AACH"}
@@ -8,13 +8,13 @@ import {
8
8
  u as LifecycleRouteAddress,
9
9
  v as LifecycleJobOutcome,
10
10
  x as Connection
11
- } from "./capability-runner-DBAnGr6L.js";
11
+ } from "./capability-runner-BiVUtjqC.js";
12
12
  import { t as RetryOptions } from "./retries-CV6AkXmQ.js";
13
13
  import {
14
14
  r as LifecycleRouteEnvelope,
15
15
  t as Lifecycle
16
- } from "./durable-object-lifecycle-HhgOMWq9.js";
17
- import { n as CurrentAgentContext } from "./current-agent-vAk_5JMt.js";
16
+ } from "./durable-object-lifecycle-DOI_bzCH.js";
17
+ import { n as CurrentAgentContext } from "./current-agent-CKgT5d1O.js";
18
18
  import { t as AgentEmail } from "./internal_context-BlxFEWfn.js";
19
19
  import { r as EmailResolver, s as SendEmailOptions } from "./email-7TatiTnl.js";
20
20
  import {
@@ -22,7 +22,7 @@ import {
22
22
  r as ObservabilityEvent,
23
23
  s as MCPObservabilityEvent
24
24
  } from "./index-YSKgfgg9.js";
25
- import { t as AgentMcpOAuthProvider } from "./do-oauth-client-provider-Tmf1vgKz.js";
25
+ import { t as AgentMcpOAuthProvider } from "./do-oauth-client-provider-DfsUcpc3.js";
26
26
  import {
27
27
  a as McpAuthContext,
28
28
  c as CORSOptions,
@@ -41,10 +41,10 @@ import {
41
41
  i as Schedule,
42
42
  o as ScheduleOptions,
43
43
  t as Scheduler
44
- } from "./scheduler-RdACNXDP.js";
44
+ } from "./scheduler-BCLESHSC.js";
45
45
  import { i as QueueItem } from "./types-BA4anrjI.js";
46
- import { l as TaskHandlers, r as Tasks } from "./tasks-9YxYtByh.js";
47
- import { t as State } from "./index-BreL0YrQ.js";
46
+ import { l as TaskHandlers, r as Tasks } from "./tasks-E89KdwkS.js";
47
+ import { t as State } from "./index-BEL3ZV-s.js";
48
48
  import { t as CallableMetadata } from "./callable-decorator-DP__HhBA.js";
49
49
  import { AsyncLocalStorage } from "node:async_hooks";
50
50
  import {
@@ -2763,8 +2763,7 @@ type MCPServerFilter = {
2763
2763
  };
2764
2764
  /**
2765
2765
  * A Durable Object capability that persists and aggregates MCP client
2766
- * connections. Installing it directly on a Lifecycle (outside `agent.mcp`)
2767
- * is experimental: that capability surface may change before stabilizing.
2766
+ * connections. Install it on any Lifecycle, or use `agent.mcp` on an Agent.
2768
2767
  */
2769
2768
  declare class MCPClientManager extends LifecycleCapability {
2770
2769
  private readonly _name;
@@ -3087,6 +3086,11 @@ declare class MCPClientManager extends LifecycleCapability {
3087
3086
  * Remove an MCP server - closes connection if active and removes from storage.
3088
3087
  */
3089
3088
  removeServer(serverId: string): Promise<void>;
3089
+ /**
3090
+ * Rebuild a server's auth provider from its stored row, as restore does,
3091
+ * for a server with no live connection.
3092
+ */
3093
+ private authProviderFromStorage;
3090
3094
  /**
3091
3095
  * List all MCP servers from storage
3092
3096
  */
@@ -4516,8 +4520,6 @@ declare class Agent<
4516
4520
  > extends DurableObject<Env> {
4517
4521
  /**
4518
4522
  * Runtime lifecycle and reusable durable capabilities for this Agent.
4519
- *
4520
- * @experimental The API surface may change before stabilizing.
4521
4523
  */
4522
4524
  readonly lifecycle: Lifecycle<Env, Props>;
4523
4525
  /**
@@ -4659,10 +4661,8 @@ declare class Agent<
4659
4661
  private _ParentClass;
4660
4662
  /**
4661
4663
  * Durable scheduling capability installed into this Agent's Lifecycle.
4662
- *
4663
- * @experimental The API surface may change before stabilizing. Agent's
4664
- * schedule()/scheduleEvery()/getScheduleById()/listSchedules()/
4665
- * cancelSchedule() methods are the stable surface.
4664
+ * Agent's schedule()/scheduleEvery()/getScheduleById()/listSchedules()/
4665
+ * cancelSchedule() methods delegate to it.
4666
4666
  */
4667
4667
  readonly scheduler: Scheduler;
4668
4668
  /**
@@ -7035,4 +7035,4 @@ export {
7035
7035
  AgentToolEventState as z,
7036
7036
  MCPClientOAuthResult as zt
7037
7037
  };
7038
- //# sourceMappingURL=agent-routing-0DR0Tk2v.d.ts.map
7038
+ //# sourceMappingURL=agent-routing-QDcchcQP.d.ts.map
@@ -4,7 +4,7 @@ import {
4
4
  n as AgentOptions,
5
5
  r as RoutingRetryOptions,
6
6
  t as AgentGetOptions
7
- } from "./agent-routing-0DR0Tk2v.js";
7
+ } from "./agent-routing-QDcchcQP.js";
8
8
  export {
9
9
  AgentGetOptions,
10
10
  AgentOptions,
@@ -27,7 +27,7 @@ import {
27
27
  rt as RunAgentToolResult,
28
28
  tt as DetachedRunAgentToolResult,
29
29
  z as AgentToolEventState
30
- } from "./agent-routing-0DR0Tk2v.js";
30
+ } from "./agent-routing-QDcchcQP.js";
31
31
  export {
32
32
  AGENT_TOOL_MILESTONE_PART,
33
33
  AGENT_TOOL_PROGRESS_PART,
@@ -4,7 +4,7 @@ import {
4
4
  W as AgentToolProgress,
5
5
  Z as AgentToolStoredChunk,
6
6
  z as AgentToolEventState
7
- } from "./agent-routing-0DR0Tk2v.js";
7
+ } from "./agent-routing-QDcchcQP.js";
8
8
 
9
9
  //#region src/chat/agent-tools.d.ts
10
10
  type AgentToolProgressEmitResult = "emitted" | "coalesced" | "inactive";
@@ -144,4 +144,4 @@ export {
144
144
  interceptAgentToolBroadcast as s,
145
145
  AgentToolBroadcastHooks as t
146
146
  };
147
- //# sourceMappingURL=agent-tools-YrATZJu2.d.ts.map
147
+ //# sourceMappingURL=agent-tools-DHL2XI7u.d.ts.map
@@ -20,7 +20,7 @@ import {
20
20
  rt as RunAgentToolResult,
21
21
  tt as DetachedRunAgentToolResult,
22
22
  z as AgentToolEventState
23
- } from "./agent-routing-0DR0Tk2v.js";
23
+ } from "./agent-routing-QDcchcQP.js";
24
24
  import { FlexibleSchema, InferSchema, Tool } from "ai";
25
25
 
26
26
  //#region src/agent-tools.d.ts
@@ -0,0 +1,239 @@
1
+ import {
2
+ d as BrowserBinding,
3
+ n as BrowserSessionStore
4
+ } from "./session-store-DoPY12xM.js";
5
+ import {
6
+ l as QuickActionBinding,
7
+ r as BrowserConnectorSessionOptions,
8
+ t as BrowserConnector,
9
+ u as QuickActionCommonOptions
10
+ } from "./connector-DEXzVoaY.js";
11
+ import { ToolSet } from "ai";
12
+ import { CodemodeRuntimeHandle } from "@cloudflare/codemode";
13
+
14
+ //#region src/browser/ai.d.ts
15
+ interface CreateBrowserToolsOptions {
16
+ /**
17
+ * Durable Object state. The codemode runtime that backs the browser tool
18
+ * lives in a facet of this DO, and browser session ids are stored in its
19
+ * storage — so the tool must be created from inside a Durable Object
20
+ * (e.g. an Agent).
21
+ *
22
+ * Optional: when omitted, it is resolved from the current Agent via
23
+ * `getCurrentAgent()`, so inside an Agent method you can just pass `browser`
24
+ * and `loader`. Pass it explicitly outside an Agent context.
25
+ *
26
+ * The worker must export the `CodemodeRuntime` class (the
27
+ * `@cloudflare/codemode/vite` plugin does this automatically, or add
28
+ * `export { CodemodeRuntime } from "@cloudflare/codemode"` to your entry).
29
+ */
30
+ ctx?: DurableObjectState;
31
+ /**
32
+ * WorkerLoader binding for sandboxed code execution.
33
+ *
34
+ * Requires `"worker_loaders": [{ "binding": "LOADER" }]` in wrangler.jsonc.
35
+ */
36
+ loader: WorkerLoader;
37
+ /**
38
+ * Browser Rendering binding (Fetcher).
39
+ *
40
+ * This is the primary way to connect — works both locally in
41
+ * `wrangler dev` and when deployed to Cloudflare Workers.
42
+ *
43
+ * Requires `"browser": { "binding": "BROWSER" }` in wrangler.jsonc.
44
+ */
45
+ browser?: BrowserBinding;
46
+ /**
47
+ * Optional CDP base URL override (e.g. `http://localhost:9222`).
48
+ *
49
+ * Use when connecting to a manually managed Chrome instance or
50
+ * a remote CDP endpoint behind a tunnel.
51
+ */
52
+ cdpUrl?: string;
53
+ /**
54
+ * Headers to send with CDP URL discovery requests.
55
+ * Useful when the CDP endpoint requires authentication
56
+ * (e.g. Cloudflare Access headers).
57
+ */
58
+ cdpHeaders?: Record<string, string>;
59
+ /**
60
+ * Browser session lifecycle (binding-backed only). Defaults to one fresh
61
+ * session per codemode execution (`one-shot`).
62
+ */
63
+ session?: BrowserConnectorSessionOptions;
64
+ /**
65
+ * Durable store for Browser Run session ids. Defaults to a
66
+ * {@link DurableBrowserSessionStore} over `ctx.storage`.
67
+ */
68
+ store?: BrowserSessionStore;
69
+ /**
70
+ * Sandbox execution timeout in milliseconds. Defaults to 30000 (30s).
71
+ * Also used as the per-CDP-command timeout.
72
+ */
73
+ timeout?: number;
74
+ /**
75
+ * Codemode runtime name — the durable identity of the tool's executions
76
+ * and snippets. Defaults to `"browser"`.
77
+ */
78
+ name?: string;
79
+ /**
80
+ * Also expose stateless {@link createQuickActionTools | Quick Action} tools
81
+ * (`browser_markdown`, `browser_extract`, …) alongside the durable
82
+ * `browser_execute` tool.
83
+ *
84
+ * Enabled by default whenever a Browser Run `browser` binding is available
85
+ * (they share it), except when `session.browser` selects Kitesurf because
86
+ * the binding RPC cannot select that engine. Pass `true` or an object to
87
+ * explicitly add Chromium Quick Actions alongside Kitesurf, or `false` to
88
+ * disable them. The Quick Action binding defaults to `browser`; override it via
89
+ * `quickActions.browser`. When only `cdpUrl` is set (no binding), the
90
+ * defaults are skipped silently — pass `quickActions: { browser }` to force
91
+ * them.
92
+ */
93
+ quickActions?:
94
+ | boolean
95
+ | {
96
+ browser?: QuickActionBinding;
97
+ actions?: QuickActionToolName[];
98
+ maxChars?: number;
99
+ options?: QuickActionCommonOptions;
100
+ };
101
+ }
102
+ /**
103
+ * The browser tool's moving parts, for hosts that need more than the tools:
104
+ *
105
+ * - `runtime` — the codemode runtime handle (approve/reject paused runs,
106
+ * `expirePaused`, audit via `executions()`, snippets).
107
+ * - `connector` — host-side session helpers: `sessionInfo()`,
108
+ * `closeSession()`, and `sweep()` for a recurring cleanup task.
109
+ * - `tools` — what `createBrowserTools` returns.
110
+ */
111
+ interface BrowserRuntime {
112
+ runtime: CodemodeRuntimeHandle;
113
+ connector: BrowserConnector;
114
+ tools: ToolSet;
115
+ }
116
+ /**
117
+ * Create the browser codemode runtime: the `browser_execute` tool plus the
118
+ * runtime handle and connector for host-side wiring (approvals, session info,
119
+ * sweeps).
120
+ *
121
+ * @example
122
+ * ```ts
123
+ * export class MyAgent extends Agent<Env> {
124
+ * get browser() {
125
+ * return createBrowserRuntime({
126
+ * ctx: this.ctx,
127
+ * browser: this.env.BROWSER,
128
+ * loader: this.env.LOADER,
129
+ * session: { mode: "dynamic" }
130
+ * });
131
+ * }
132
+ *
133
+ * @callable()
134
+ * async closeBrowserSession() {
135
+ * await this.browser.connector.closeSession();
136
+ * }
137
+ * }
138
+ * ```
139
+ */
140
+ declare function createBrowserRuntime(
141
+ options: CreateBrowserToolsOptions
142
+ ): BrowserRuntime;
143
+ /**
144
+ * Create AI SDK tools for browser automation via CDP code mode.
145
+ *
146
+ * Returns a `ToolSet` with a single durable `browser_execute` tool backed by
147
+ * a codemode runtime: the model writes TypeScript against the `cdp` connector
148
+ * (`cdp.send`, `cdp.attachToTarget`, `cdp.spec`, …), executions are recorded
149
+ * for abort-and-replay, and browser sessions survive pauses.
150
+ *
151
+ * @example
152
+ * ```ts
153
+ * import { createBrowserTools } from "agents/browser/ai";
154
+ * import { generateText } from "ai";
155
+ *
156
+ * // inside a Durable Object / Agent:
157
+ * const browserTools = createBrowserTools({
158
+ * ctx: this.ctx,
159
+ * browser: this.env.BROWSER,
160
+ * loader: this.env.LOADER,
161
+ * });
162
+ *
163
+ * const result = await generateText({
164
+ * model,
165
+ * tools: { ...browserTools, ...otherTools },
166
+ * messages,
167
+ * });
168
+ * ```
169
+ */
170
+ declare function createBrowserTools(
171
+ options: CreateBrowserToolsOptions
172
+ ): ToolSet;
173
+ /** A Quick Action exposed as an AI SDK tool. */
174
+ type QuickActionToolName =
175
+ | "markdown"
176
+ | "extract"
177
+ | "links"
178
+ | "scrape"
179
+ | "content";
180
+ interface CreateQuickActionToolsOptions {
181
+ /**
182
+ * Browser Run binding with Quick Actions support (`env.BROWSER`). Requires a
183
+ * Worker `compatibility_date` of `2026-03-24`+ and `remote: true` for local
184
+ * `wrangler dev`.
185
+ */
186
+ browser: QuickActionBinding;
187
+ /**
188
+ * Which tools to expose. Defaults to the text-returning, model-friendly set
189
+ * (`markdown`, `extract`, `links`, `scrape`). `content` (raw HTML) is opt-in
190
+ * since it is large and rarely what a model wants.
191
+ */
192
+ actions?: QuickActionToolName[];
193
+ /**
194
+ * Bound every result to roughly this many characters before returning it to
195
+ * the model, to protect the context window, preserving each result's shape:
196
+ * text (markdown/content) is truncated to a string, oversized arrays
197
+ * (links/scrape) are trimmed but stay arrays, and only an opaque oversized
198
+ * object degrades to a truncated-preview summary. Set to `0` to disable.
199
+ * Defaults to 50000.
200
+ */
201
+ maxChars?: number;
202
+ /**
203
+ * Common Browser Run options merged into every request — e.g. `cookies`,
204
+ * `authenticate`, or `setExtraHTTPHeaders` for authenticated pages, and
205
+ * `gotoOptions` / `viewport` for JavaScript-heavy pages. The model only ever
206
+ * supplies the page (`url`/`html`) and action-specific fields; these
207
+ * host-supplied options are never exposed to it.
208
+ */
209
+ options?: QuickActionCommonOptions;
210
+ }
211
+ /**
212
+ * Create AI SDK tools for Browser Run [Quick Actions](https://developers.cloudflare.com/browser-run/quick-actions/):
213
+ * stateless one-shot browsing (read a page as Markdown, extract structured
214
+ * data with AI, list links, scrape elements). Unlike `createBrowserTools`,
215
+ * these need only the `browser` binding — no Durable Object, loader, or
216
+ * sandbox — so they work from any Worker.
217
+ *
218
+ * @example
219
+ * ```ts
220
+ * import { createQuickActionTools } from "agents/browser/ai";
221
+ *
222
+ * const tools = createQuickActionTools({ browser: this.env.BROWSER });
223
+ * const result = await generateText({ model, tools, messages });
224
+ * ```
225
+ */
226
+ declare function createQuickActionTools(
227
+ options: CreateQuickActionToolsOptions
228
+ ): ToolSet;
229
+ //#endregion
230
+ export {
231
+ createBrowserRuntime as a,
232
+ QuickActionToolName as i,
233
+ CreateBrowserToolsOptions as n,
234
+ createBrowserTools as o,
235
+ CreateQuickActionToolsOptions as r,
236
+ createQuickActionTools as s,
237
+ BrowserRuntime as t
238
+ };
239
+ //# sourceMappingURL=ai-ahruGw7e.d.ts.map