agents 0.27.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 (193) hide show
  1. package/dist/abortable-C1SpfVoi.js +21 -0
  2. package/dist/abortable-C1SpfVoi.js.map +1 -0
  3. package/dist/{agent-routing-Bhdbvf7s.d.ts → agent-routing-QDcchcQP.d.ts} +10 -15
  4. package/dist/agent-routing.d.ts +1 -1
  5. package/dist/agent-tool-types.d.ts +1 -1
  6. package/dist/{agent-tools-bJZwBMfq.d.ts → agent-tools-DHL2XI7u.d.ts} +2 -2
  7. package/dist/agent-tools.d.ts +1 -1
  8. package/dist/ai-ahruGw7e.d.ts +239 -0
  9. package/dist/{ai-sdk-OoGkFy3s.js → ai-sdk-Bdsf6mSA.js} +2 -2
  10. package/dist/{ai-sdk-OoGkFy3s.js.map → ai-sdk-Bdsf6mSA.js.map} +1 -1
  11. package/dist/browser/ai.d.ts +8 -227
  12. package/dist/browser/ai.js +259 -1
  13. package/dist/browser/ai.js.map +1 -0
  14. package/dist/browser/index.d.ts +56 -46
  15. package/dist/browser/index.js +4 -361
  16. package/dist/browser/{ai-sdk.d.ts → tools/ai-sdk.d.ts} +7 -7
  17. package/dist/browser/{ai-sdk.js → tools/ai-sdk.js} +5 -4
  18. package/dist/browser/tools/ai-sdk.js.map +1 -0
  19. package/dist/browser/tools/pi.d.ts +111 -0
  20. package/dist/browser/tools/pi.js +119 -0
  21. package/dist/browser/tools/pi.js.map +1 -0
  22. package/dist/browser/{tanstack-ai.d.ts → tools/tanstack-ai.d.ts} +39 -37
  23. package/dist/browser/{tanstack-ai.js → tools/tanstack-ai.js} +73 -59
  24. package/dist/browser/tools/tanstack-ai.js.map +1 -0
  25. package/dist/browser-CEdNlsaD.js +481 -0
  26. package/dist/browser-CEdNlsaD.js.map +1 -0
  27. package/dist/{browser-tmkcAAI3.d.ts → browser-D30VlpcA.d.ts} +63 -37
  28. package/dist/{browser-tool-CBqs6hqa.js → browser-tool-4iomavs_.js} +145 -49
  29. package/dist/browser-tool-4iomavs_.js.map +1 -0
  30. package/dist/{browser-tool-Bn-nzJQI.d.ts → browser-tool-vtrPOV8e.d.ts} +24 -5
  31. package/dist/{capability-B4WbF81e.js → capability-DBAKc6UZ.js} +1 -3
  32. package/dist/capability-DBAKc6UZ.js.map +1 -0
  33. package/dist/{capability-runner-O5VbQzqg.d.ts → capability-runner-BiVUtjqC.d.ts} +1 -7
  34. package/dist/chat/index.d.ts +4 -4
  35. package/dist/chat/index.js +1 -1
  36. package/dist/chat-sdk/index.d.ts +1 -1
  37. package/dist/chat-sdk/index.js +1 -1
  38. package/dist/{client-DS3Dz9l0.d.ts → client-BGIQKJhX.d.ts} +2 -2
  39. package/dist/{client-1tEQ1Oqz.js → client-BnYbNT3z.js} +3 -4
  40. package/dist/client-BnYbNT3z.js.map +1 -0
  41. package/dist/client.d.ts +1 -1
  42. package/dist/{connector-58XDGvc3.js → connector-CtZylXdk.js} +3 -603
  43. package/dist/connector-CtZylXdk.js.map +1 -0
  44. package/dist/{connector-Cl-VqPmA.d.ts → connector-DEXzVoaY.d.ts} +9 -374
  45. package/dist/{conversations-DH0ut_8n.d.ts → conversations-FjHDRZyD.d.ts} +4 -4
  46. package/dist/{current-agent-C07C5o5Y.d.ts → current-agent-CKgT5d1O.d.ts} +3 -5
  47. package/dist/current-agent-DhoDkSnH.js.map +1 -1
  48. package/dist/{durable-object-lifecycle-DRqp475_.d.ts → durable-object-lifecycle-DOI_bzCH.d.ts} +2 -2
  49. package/dist/experimental/channels/index.d.ts +2 -2
  50. package/dist/experimental/channels/index.js +2 -2
  51. package/dist/experimental/channels/web/index.d.ts +2 -2
  52. package/dist/experimental/channels/web/index.js +1 -1
  53. package/dist/{gateway-BDC07gYO.d.ts → gateway-BFO6vRDn.d.ts} +2 -2
  54. package/dist/harness/ai-sdk/index.d.ts +2 -2
  55. package/dist/harness/ai-sdk/index.js +1 -1
  56. package/dist/harness/container/index.d.ts +2 -2
  57. package/dist/harness/container/index.js +3 -3
  58. package/dist/harness/opencode/index.d.ts +1 -1
  59. package/dist/harness/opencode/index.js +2 -2
  60. package/dist/harness/pi/index.d.ts +2 -2
  61. package/dist/harness/pi/index.js +3 -3
  62. package/dist/harness/store/index.d.ts +1 -1
  63. package/dist/harness/store/index.js +1 -1
  64. package/dist/harness/think/index.d.ts +2 -2
  65. package/dist/harness/think/index.js +363 -171
  66. package/dist/harness/think/index.js.map +1 -1
  67. package/dist/{index-D0A5tbWu.d.ts → index-BEL3ZV-s.d.ts} +2 -6
  68. package/dist/{index-Ib_4dwOo.d.ts → index-CBt8oRJt.d.ts} +3 -5
  69. package/dist/index.d.ts +4 -4
  70. package/dist/index.js +2 -2
  71. package/dist/input-schema-BQykTEp_.js +20 -0
  72. package/dist/input-schema-BQykTEp_.js.map +1 -0
  73. package/dist/{input-schema-DNrpTu49.js → input-schema-D2QAtHZH.js} +3 -3
  74. package/dist/input-schema-D2QAtHZH.js.map +1 -0
  75. package/dist/internal_context.d.ts +1 -1
  76. package/dist/lifecycle/index.d.ts +3 -3
  77. package/dist/lifecycle/index.js +2 -2
  78. package/dist/{lifecycle-CFu6OV03.js → lifecycle-DGorpAmA.js} +2 -4
  79. package/dist/lifecycle-DGorpAmA.js.map +1 -0
  80. package/dist/mcp/client/index.d.ts +1 -1
  81. package/dist/mcp/client/index.js +1 -1
  82. package/dist/mcp/index.d.ts +1 -1
  83. package/dist/mcp/index.js +2 -2
  84. package/dist/models/ai-sdk/index.js +1 -1
  85. package/dist/models/opencode/index.js +1 -1
  86. package/dist/models/pi-ai/index.js +1 -1
  87. package/dist/{options-pwTNq9z6.d.ts → options-CiIsJHXR.d.ts} +2 -6
  88. package/dist/queue/index.d.ts +1 -1
  89. package/dist/queue/index.js +1 -1
  90. package/dist/{queue-BB-zfIYF.js → queue-CcIjVYTE.js} +2 -2
  91. package/dist/{queue-BB-zfIYF.js.map → queue-CcIjVYTE.js.map} +1 -1
  92. package/dist/react.d.ts +2 -2
  93. package/dist/routing/index.d.ts +2 -2
  94. package/dist/routing/index.js +1 -1
  95. package/dist/{scheduler-CrFCnv_J.d.ts → scheduler-BCLESHSC.d.ts} +2 -12
  96. package/dist/{scheduler-DZ3xQfeK.js → scheduler-FIHv2-kJ.js} +2 -4
  97. package/dist/scheduler-FIHv2-kJ.js.map +1 -0
  98. package/dist/schedules/index.d.ts +1 -1
  99. package/dist/schedules/index.js +1 -1
  100. package/dist/serializable.d.ts +1 -1
  101. package/dist/session-store-Do4xkDcf.js +606 -0
  102. package/dist/session-store-Do4xkDcf.js.map +1 -0
  103. package/dist/session-store-DoPY12xM.d.ts +383 -0
  104. package/dist/sessions/index.d.ts +1 -1
  105. package/dist/sessions/index.js +1 -1
  106. package/dist/{sessions-B9pNuxdT.js → sessions-_vN5BEZX.js} +2 -2
  107. package/dist/{sessions-B9pNuxdT.js.map → sessions-_vN5BEZX.js.map} +1 -1
  108. package/dist/{src-DgCbZtIR.js → src-CQxJFv4l.js} +8 -8
  109. package/dist/src-CQxJFv4l.js.map +1 -0
  110. package/dist/state/index.d.ts +1 -1
  111. package/dist/state/index.js +1 -3
  112. package/dist/state/index.js.map +1 -1
  113. package/dist/{store-DLeqKuj3.d.ts → store-BKM4Xm9M.d.ts} +23 -1
  114. package/dist/{store-vgcPYo8K.js → store-CslVzfN7.js} +28 -2
  115. package/dist/store-CslVzfN7.js.map +1 -0
  116. package/dist/streams/index.d.ts +1 -1
  117. package/dist/streams/index.js +1 -1
  118. package/dist/{streams-CITClVer.js → streams-lsHMJhRW.js} +2 -2
  119. package/dist/{streams-CITClVer.js.map → streams-lsHMJhRW.js.map} +1 -1
  120. package/dist/{streams-fbG61qM8.d.ts → streams-vrCtbUIn.d.ts} +2 -2
  121. package/dist/sub-routing.d.ts +1 -1
  122. package/dist/tasks/index.d.ts +1 -1
  123. package/dist/tasks/index.js +1 -1
  124. package/dist/{tasks-CkTZNaV1.js → tasks-BN_5AWqI.js} +2 -2
  125. package/dist/{tasks-CkTZNaV1.js.map → tasks-BN_5AWqI.js.map} +1 -1
  126. package/dist/{tasks-PtlB4Uyn.d.ts → tasks-E89KdwkS.d.ts} +2 -2
  127. package/dist/{tool-BPJEbwaX.d.ts → tool-CTp72Jb_.d.ts} +4 -4
  128. package/dist/tool-CxKsvxjm.js +1126 -0
  129. package/dist/tool-CxKsvxjm.js.map +1 -0
  130. package/dist/tool-DoVberpN.d.ts +301 -0
  131. package/dist/{tool-3PA8xjB_.js → tool-cQRkwSZZ.js} +6 -17
  132. package/dist/tool-cQRkwSZZ.js.map +1 -0
  133. package/dist/tool-helpers-O5BDVEAY.js +58 -0
  134. package/dist/tool-helpers-O5BDVEAY.js.map +1 -0
  135. package/dist/voice/index.d.ts +2 -2
  136. package/dist/web/fetch/index.d.ts +89 -0
  137. package/dist/web/fetch/index.js +20 -0
  138. package/dist/web/fetch/index.js.map +1 -0
  139. package/dist/web/fetch/tools/ai-sdk.d.ts +80 -0
  140. package/dist/web/fetch/tools/ai-sdk.js +47 -0
  141. package/dist/web/fetch/tools/ai-sdk.js.map +1 -0
  142. package/dist/web/fetch/tools/pi.d.ts +84 -0
  143. package/dist/web/fetch/tools/pi.js +88 -0
  144. package/dist/web/fetch/tools/pi.js.map +1 -0
  145. package/dist/web/fetch/tools/tanstack-ai.d.ts +78 -0
  146. package/dist/web/fetch/tools/tanstack-ai.js +45 -0
  147. package/dist/web/fetch/tools/tanstack-ai.js.map +1 -0
  148. package/dist/{websearch → web/search}/index.d.ts +1 -1
  149. package/dist/{websearch → web/search}/index.js +1 -1
  150. package/dist/{websearch → web/search}/tools/ai-sdk.d.ts +2 -2
  151. package/dist/{websearch → web/search}/tools/ai-sdk.js +3 -3
  152. package/dist/web/search/tools/ai-sdk.js.map +1 -0
  153. package/dist/{websearch → web/search}/tools/pi.d.ts +3 -3
  154. package/dist/{websearch → web/search}/tools/pi.js +2 -2
  155. package/dist/web/search/tools/pi.js.map +1 -0
  156. package/dist/{websearch → web/search}/tools/tanstack-ai.d.ts +2 -2
  157. package/dist/{websearch → web/search}/tools/tanstack-ai.js +3 -3
  158. package/dist/web/search/tools/tanstack-ai.js.map +1 -0
  159. package/dist/websockets/index.d.ts +2 -2
  160. package/dist/websockets/index.js +1 -1
  161. package/dist/{websockets-CmENGb-Z.js → websockets-C3zy8YR0.js} +3 -5
  162. package/dist/websockets-C3zy8YR0.js.map +1 -0
  163. package/dist/workflow-types.d.ts +1 -1
  164. package/dist/workflows.d.ts +1 -1
  165. package/dist/workflows.js +1 -1
  166. package/docs/browse-the-web.md +26 -1
  167. package/docs/fetch-the-web.md +276 -0
  168. package/docs/harnesses/pi.md +25 -0
  169. package/docs/index.md +99 -76
  170. package/docs/lifecycle.md +2 -3
  171. package/docs/queue.md +2 -3
  172. package/docs/scheduling.md +2 -6
  173. package/docs/search-the-web.md +2 -0
  174. package/package.json +44 -19
  175. package/dist/ai-fm7xx1BK.js +0 -312
  176. package/dist/ai-fm7xx1BK.js.map +0 -1
  177. package/dist/browser/ai-sdk.js.map +0 -1
  178. package/dist/browser/index.js.map +0 -1
  179. package/dist/browser/tanstack-ai.js.map +0 -1
  180. package/dist/browser-tool-CBqs6hqa.js.map +0 -1
  181. package/dist/capability-B4WbF81e.js.map +0 -1
  182. package/dist/client-1tEQ1Oqz.js.map +0 -1
  183. package/dist/connector-58XDGvc3.js.map +0 -1
  184. package/dist/input-schema-DNrpTu49.js.map +0 -1
  185. package/dist/lifecycle-CFu6OV03.js.map +0 -1
  186. package/dist/scheduler-DZ3xQfeK.js.map +0 -1
  187. package/dist/src-DgCbZtIR.js.map +0 -1
  188. package/dist/store-vgcPYo8K.js.map +0 -1
  189. package/dist/tool-3PA8xjB_.js.map +0 -1
  190. package/dist/websearch/tools/ai-sdk.js.map +0 -1
  191. package/dist/websearch/tools/pi.js.map +0 -1
  192. package/dist/websearch/tools/tanstack-ai.js.map +0 -1
  193. package/dist/websockets-CmENGb-Z.js.map +0 -1
@@ -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-O5VbQzqg.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-DRqp475_.js";
17
- import { n as CurrentAgentContext } from "./current-agent-C07C5o5Y.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 {
@@ -41,10 +41,10 @@ import {
41
41
  i as Schedule,
42
42
  o as ScheduleOptions,
43
43
  t as Scheduler
44
- } from "./scheduler-CrFCnv_J.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-PtlB4Uyn.js";
47
- import { t as State } from "./index-D0A5tbWu.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;
@@ -4521,8 +4520,6 @@ declare class Agent<
4521
4520
  > extends DurableObject<Env> {
4522
4521
  /**
4523
4522
  * Runtime lifecycle and reusable durable capabilities for this Agent.
4524
- *
4525
- * @experimental The API surface may change before stabilizing.
4526
4523
  */
4527
4524
  readonly lifecycle: Lifecycle<Env, Props>;
4528
4525
  /**
@@ -4664,10 +4661,8 @@ declare class Agent<
4664
4661
  private _ParentClass;
4665
4662
  /**
4666
4663
  * Durable scheduling capability installed into this Agent's Lifecycle.
4667
- *
4668
- * @experimental The API surface may change before stabilizing. Agent's
4669
- * schedule()/scheduleEvery()/getScheduleById()/listSchedules()/
4670
- * cancelSchedule() methods are the stable surface.
4664
+ * Agent's schedule()/scheduleEvery()/getScheduleById()/listSchedules()/
4665
+ * cancelSchedule() methods delegate to it.
4671
4666
  */
4672
4667
  readonly scheduler: Scheduler;
4673
4668
  /**
@@ -7040,4 +7035,4 @@ export {
7040
7035
  AgentToolEventState as z,
7041
7036
  MCPClientOAuthResult as zt
7042
7037
  };
7043
- //# sourceMappingURL=agent-routing-Bhdbvf7s.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-Bhdbvf7s.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-Bhdbvf7s.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-Bhdbvf7s.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-bJZwBMfq.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-Bhdbvf7s.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
@@ -1,7 +1,7 @@
1
1
  import { i as _classPrivateFieldInitSpec, n as _classPrivateFieldSet2, r as _assertClassBrand, t as _classPrivateFieldGet2 } from "./classPrivateFieldGet2-DZBYAB34.js";
2
2
  import { t as _classPrivateMethodInitSpec } from "./classPrivateMethodInitSpec-qMjJ6sHQ.js";
3
- import { a as parseModelOptions, i as mergeModelOptions, n as PROVIDER_OPTIONS_KEY, o as resolveOptions, r as gatewayLayerOf } from "./settings-C45hDliX.js";
4
3
  import { S as isRetryableStatus, _ as isGatewayErrorEnvelope, a as normalizeChatCompletion, b as classifyStatus, f as createTransport$1, g as headersToObject, h as errorFromResponse$1, i as normalizeChatCompletionsStream, m as errorFromGatewayEnvelope$1, n as imageMediaTypeOf, o as prepareChatCompletionsRequest, p as definedHeaders, r as sseDataStream, t as buildImageInput, u as requireGatewayProvider, v as unwrapEnvelope$1, x as isAbortError, y as CloudflareAIError$1 } from "./images-Ce9SCu3X.js";
4
+ import { a as parseModelOptions, i as mergeModelOptions, n as PROVIDER_OPTIONS_KEY, o as resolveOptions, r as gatewayLayerOf } from "./settings-C45hDliX.js";
5
5
  import { APICallError, TooManyEmbeddingValuesForCallError } from "@ai-sdk/provider";
6
6
  //#region src/models/ai-sdk/errors.ts
7
7
  /** The provider packages worth naming when someone passes a vendor id. */
@@ -2441,4 +2441,4 @@ function createAI(settings) {
2441
2441
  //#endregion
2442
2442
  export { GatewayLanguageModel as n, CloudflareAIError as r, createAI as t };
2443
2443
 
2444
- //# sourceMappingURL=ai-sdk-OoGkFy3s.js.map
2444
+ //# sourceMappingURL=ai-sdk-Bdsf6mSA.js.map