agents 0.23.0 → 0.25.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 (187) hide show
  1. package/dist/{agent-routing-DE5zmCQ8.d.ts → agent-routing-0DR0Tk2v.d.ts} +270 -190
  2. package/dist/agent-routing.d.ts +1 -1
  3. package/dist/agent-routing.js.map +1 -1
  4. package/dist/agent-tool-types.d.ts +13 -7
  5. package/dist/agent-tool-types.js +23 -1
  6. package/dist/agent-tool-types.js.map +1 -1
  7. package/dist/{agent-tools-y7zLfw4Q.js → agent-tools-CdJC-8Dc.js} +72 -9
  8. package/dist/agent-tools-CdJC-8Dc.js.map +1 -0
  9. package/dist/{agent-tools-DtXMTDGM.d.ts → agent-tools-YrATZJu2.d.ts} +29 -15
  10. package/dist/agent-tools.d.ts +6 -4
  11. package/dist/agent-tools.js.map +1 -1
  12. package/dist/ai-fm7xx1BK.js +312 -0
  13. package/dist/ai-fm7xx1BK.js.map +1 -0
  14. package/dist/base64-redaction-C1Uu29t5.js +59 -0
  15. package/dist/base64-redaction-C1Uu29t5.js.map +1 -0
  16. package/dist/browser/ai-sdk.d.ts +90 -0
  17. package/dist/browser/ai-sdk.js +51 -0
  18. package/dist/browser/ai-sdk.js.map +1 -0
  19. package/dist/browser/ai.d.ts +4 -4
  20. package/dist/browser/ai.js +1 -347
  21. package/dist/browser/index.d.ts +81 -79
  22. package/dist/browser/index.js +361 -2
  23. package/dist/browser/index.js.map +1 -0
  24. package/dist/browser/tanstack-ai.d.ts +96 -1
  25. package/dist/browser/tanstack-ai.js +62 -2
  26. package/dist/browser/tanstack-ai.js.map +1 -1
  27. package/dist/browser-DE3d-RLk.d.ts +275 -0
  28. package/dist/browser-tool-CQ10e6Kj.js +480 -0
  29. package/dist/browser-tool-CQ10e6Kj.js.map +1 -0
  30. package/dist/browser-tool-DuNdlwZ9.d.ts +73 -0
  31. package/dist/{capability-BjSKYpzg.js → capability-B4WbF81e.js} +2 -1
  32. package/dist/capability-B4WbF81e.js.map +1 -0
  33. package/dist/{capability-runner-Be_-PLR1.d.ts → capability-runner-DBAnGr6L.d.ts} +45 -15
  34. package/dist/chat/index.d.ts +341 -232
  35. package/dist/chat/index.js +602 -72
  36. package/dist/chat/index.js.map +1 -1
  37. package/dist/chat/react.d.ts +42 -2
  38. package/dist/chat/react.js +191 -35
  39. package/dist/chat/react.js.map +1 -1
  40. package/dist/chat/transport.d.ts +1 -1
  41. package/dist/chat/transport.js +1 -1
  42. package/dist/chat-sdk/index.d.ts +17 -3
  43. package/dist/chat-sdk/index.js +28 -2
  44. package/dist/chat-sdk/index.js.map +1 -1
  45. package/dist/client-4OlMIJx-.js +591 -0
  46. package/dist/client-4OlMIJx-.js.map +1 -0
  47. package/dist/{client-jagG8a9_.js → client-fyQrLGkD.js} +2 -2
  48. package/dist/{client-jagG8a9_.js.map → client-fyQrLGkD.js.map} +1 -1
  49. package/dist/client-je3koD9Z.d.ts +446 -0
  50. package/dist/client.d.ts +29 -283
  51. package/dist/client.js +2 -274
  52. package/dist/{connector-CptFKzRh.js → connector-58XDGvc3.js} +251 -120
  53. package/dist/connector-58XDGvc3.js.map +1 -0
  54. package/dist/{connector-CkQD4MK3.d.ts → connector-Cl-VqPmA.d.ts} +244 -146
  55. package/dist/context/index.d.ts +29 -0
  56. package/dist/context/index.js +64 -17
  57. package/dist/context/index.js.map +1 -1
  58. package/dist/current-agent-DhoDkSnH.js.map +1 -1
  59. package/dist/current-agent-vAk_5JMt.d.ts +93 -0
  60. package/dist/{current-agent-Da_C9a3b.d.ts → durable-object-lifecycle-HhgOMWq9.d.ts} +26 -127
  61. package/dist/harnesses/pi/index.d.ts +348 -0
  62. package/dist/harnesses/pi/index.js +754 -0
  63. package/dist/harnesses/pi/index.js.map +1 -0
  64. package/dist/images-iiTDSyRu.js +1631 -0
  65. package/dist/images-iiTDSyRu.js.map +1 -0
  66. package/dist/index-BreL0YrQ.d.ts +78 -0
  67. package/dist/index-kbSUIer3.d.ts +343 -0
  68. package/dist/index.d.ts +43 -41
  69. package/dist/index.js +2 -2
  70. package/dist/internal_context.d.ts +1 -1
  71. package/dist/lifecycle/index.d.ts +19 -17
  72. package/dist/lifecycle/index.js +2 -2
  73. package/dist/{lifecycle-CMRGjZdw.js → lifecycle-CFu6OV03.js} +73 -29
  74. package/dist/lifecycle-CFu6OV03.js.map +1 -0
  75. package/dist/mcp/client/index.d.ts +20 -20
  76. package/dist/mcp/client/index.js +1 -1
  77. package/dist/mcp/client/x402.js +21 -19
  78. package/dist/mcp/client/x402.js.map +1 -1
  79. package/dist/mcp/index.d.ts +35 -35
  80. package/dist/mcp/index.js +2 -2
  81. package/dist/{message-builder-BymO4N_D.js → message-builder-DAl9AhHH.js} +89 -4
  82. package/dist/message-builder-DAl9AhHH.js.map +1 -0
  83. package/dist/models/ai-sdk/index.d.ts +353 -0
  84. package/dist/models/ai-sdk/index.js +2443 -0
  85. package/dist/models/ai-sdk/index.js.map +1 -0
  86. package/dist/models/pi-ai/index.d.ts +313 -0
  87. package/dist/models/pi-ai/index.js +1795 -0
  88. package/dist/models/pi-ai/index.js.map +1 -0
  89. package/dist/observability/ai/index.js +20 -4
  90. package/dist/observability/ai/index.js.map +1 -1
  91. package/dist/{protocol-B0nh6KNf.js → protocol-kHsr-f0X.js} +26 -12
  92. package/dist/{protocol-B0nh6KNf.js.map → protocol-kHsr-f0X.js.map} +1 -1
  93. package/dist/queue/index.d.ts +123 -0
  94. package/dist/queue/index.js +2 -0
  95. package/dist/queue-BB-zfIYF.js +406 -0
  96. package/dist/queue-BB-zfIYF.js.map +1 -0
  97. package/dist/react.d.ts +31 -13
  98. package/dist/react.js +190 -71
  99. package/dist/react.js.map +1 -1
  100. package/dist/{retries-D9Ds-1lz.d.ts → retries-CV6AkXmQ.d.ts} +23 -8
  101. package/dist/retries.d.ts +12 -8
  102. package/dist/retries.js +19 -1
  103. package/dist/retries.js.map +1 -1
  104. package/dist/routing/index.d.ts +2 -2
  105. package/dist/routing/index.js +1 -1
  106. package/dist/{scheduler-DD9NdYbF.js → scheduler-DZ3xQfeK.js} +4 -11
  107. package/dist/scheduler-DZ3xQfeK.js.map +1 -0
  108. package/dist/{scheduler-Dwh85ZGl.d.ts → scheduler-RdACNXDP.d.ts} +6 -6
  109. package/dist/schedules/index.d.ts +1 -1
  110. package/dist/schedules/index.js +1 -1
  111. package/dist/serializable.d.ts +1 -1
  112. package/dist/sessions/index.d.ts +70 -3
  113. package/dist/sessions/index.js +276 -67
  114. package/dist/sessions/index.js.map +1 -1
  115. package/dist/skills/index.d.ts +29 -314
  116. package/dist/socket-address.d.ts +16 -0
  117. package/dist/socket-address.js +19 -0
  118. package/dist/socket-address.js.map +1 -0
  119. package/dist/{src-DlSHshb2.js → src-BZeu-SCD.js} +541 -500
  120. package/dist/src-BZeu-SCD.js.map +1 -0
  121. package/dist/state/index.d.ts +6 -0
  122. package/dist/state/index.js +137 -0
  123. package/dist/state/index.js.map +1 -0
  124. package/dist/streams/index.d.ts +1 -1
  125. package/dist/streams/index.js +1 -1
  126. package/dist/{streams-D6tJ0NN9.d.ts → streams-Cmkj9QfW.d.ts} +4 -2
  127. package/dist/{streams-DZKgAj9b.js → streams-DW-UCOUc.js} +9 -2
  128. package/dist/streams-DW-UCOUc.js.map +1 -0
  129. package/dist/sub-routing.d.ts +12 -12
  130. package/dist/tasks/index.d.ts +1 -1
  131. package/dist/tasks/index.js +1 -1
  132. package/dist/{tasks-ylZgBjhj.js → tasks-68DESxf0.js} +3 -3
  133. package/dist/{tasks-ylZgBjhj.js.map → tasks-68DESxf0.js.map} +1 -1
  134. package/dist/{tasks-BRJ5zgya.d.ts → tasks-9YxYtByh.d.ts} +5 -5
  135. package/dist/transport-PfFnt-Ld.d.ts +525 -0
  136. package/dist/transport-protocol-BxyngQ_R.js +25 -0
  137. package/dist/transport-protocol-BxyngQ_R.js.map +1 -0
  138. package/dist/transport-protocol-ZTew5Wso.d.ts +27 -0
  139. package/dist/types-BA4anrjI.d.ts +70 -0
  140. package/dist/voice/index.d.ts +2 -2
  141. package/dist/websockets/index.d.ts +195 -69
  142. package/dist/websockets/index.js +3 -2
  143. package/dist/websockets-Ci-LZFHH.js +1030 -0
  144. package/dist/websockets-Ci-LZFHH.js.map +1 -0
  145. package/dist/wire-types-CnMt6_HR.js.map +1 -1
  146. package/dist/wire-types-CrjKvDyi.d.ts +300 -0
  147. package/dist/workflow-types.d.ts +25 -25
  148. package/dist/workflows.d.ts +21 -21
  149. package/dist/workflows.js +1 -1
  150. package/dist/{ws-chat-transport-UNRIS2xl.d.ts → ws-chat-transport-BbT1A5Lc.d.ts} +51 -2
  151. package/dist/{ws-chat-transport-rWwta645.js → ws-chat-transport-cqMKq3IY.js} +143 -16
  152. package/dist/ws-chat-transport-cqMKq3IY.js.map +1 -0
  153. package/docs/agent-class.md +2 -2
  154. package/docs/agent-tools.md +29 -4
  155. package/docs/browse-the-web.md +87 -5
  156. package/docs/chat-agents.md +124 -16
  157. package/docs/client-sdk.md +30 -0
  158. package/docs/context.md +27 -0
  159. package/docs/durable-execution.md +2 -0
  160. package/docs/harnesses/pi.md +91 -0
  161. package/docs/human-in-the-loop.md +4 -0
  162. package/docs/index.md +4 -1
  163. package/docs/lifecycle.md +114 -23
  164. package/docs/models-pi-ai.md +325 -0
  165. package/docs/models.md +504 -0
  166. package/docs/queue.md +135 -241
  167. package/docs/resumable-streaming.md +2 -0
  168. package/docs/retries.md +1 -1
  169. package/docs/routing.md +13 -13
  170. package/docs/sessions.md +36 -1
  171. package/docs/state.md +1 -0
  172. package/docs/sub-agents.md +12 -3
  173. package/package.json +51 -3
  174. package/dist/agent-tools-y7zLfw4Q.js.map +0 -1
  175. package/dist/browser/ai.js.map +0 -1
  176. package/dist/capability-BjSKYpzg.js.map +0 -1
  177. package/dist/client-tools-aIBO0Fk7.d.ts +0 -53
  178. package/dist/client.js.map +0 -1
  179. package/dist/connector-CptFKzRh.js.map +0 -1
  180. package/dist/lifecycle-CMRGjZdw.js.map +0 -1
  181. package/dist/message-builder-BymO4N_D.js.map +0 -1
  182. package/dist/scheduler-DD9NdYbF.js.map +0 -1
  183. package/dist/src-DlSHshb2.js.map +0 -1
  184. package/dist/streams-DZKgAj9b.js.map +0 -1
  185. package/dist/websockets-DUfRHPRq.js +0 -502
  186. package/dist/websockets-DUfRHPRq.js.map +0 -1
  187. package/dist/ws-chat-transport-rWwta645.js.map +0 -1
@@ -0,0 +1,313 @@
1
+ import {
2
+ a as CloudflareAIError,
3
+ c as GatewayOptions,
4
+ d as CloudflareEmbeddingModelId,
5
+ i as CloudflareAIAttempt,
6
+ l as ModelOptions,
7
+ n as GATEWAY_PROVIDER_NAMES,
8
+ o as CloudflareAIErrorCode,
9
+ r as GatewayProviderName,
10
+ s as AISettings,
11
+ v as WorkersAIModelId
12
+ } from "../../transport-PfFnt-Ld.js";
13
+ import {
14
+ Api,
15
+ AssistantImages,
16
+ AssistantMessage,
17
+ Context,
18
+ ImageModel,
19
+ ImagesContext,
20
+ ImagesOptions,
21
+ Model,
22
+ Provider,
23
+ SimpleStreamOptions,
24
+ StreamOptions
25
+ } from "@earendil-works/pi-ai";
26
+
27
+ //#region src/models/core/chat-completions/quirks.d.ts
28
+ /**
29
+ * Where a Cloudflare catalog model departs from strict OpenAI chat
30
+ * completions, and how. Every entry is backed by a live capture from the
31
+ * conformance probes (`research/40-*.json`, `41-*.json`); the default for an
32
+ * unknown id is strict OpenAI, so a new conformant model needs no code here.
33
+ *
34
+ * Framework-neutral: both the AI SDK and the pi-ai providers consult this.
35
+ */
36
+ /** A request feature that had to be changed or dropped for a model. */
37
+ interface CompatWarning {
38
+ feature: string;
39
+ message: string;
40
+ }
41
+ //#endregion
42
+ //#region src/models/pi-ai/models/image.d.ts
43
+ /**
44
+ * The `api` marker on image models from this provider.
45
+ *
46
+ * @experimental This surface is experimental and may change.
47
+ */
48
+ declare const CLOUDFLARE_AI_IMAGES_API = "cloudflare-ai-images";
49
+ /** @experimental This surface is experimental and may change. */
50
+ type CloudflareImagesModel = ImageModel<typeof CLOUDFLARE_AI_IMAGES_API>;
51
+ /**
52
+ * Per-model options for image models: gateway options plus the generation
53
+ * knobs Workers AI understands. Anything given here is the default for every
54
+ * call; `generateImages` options override it.
55
+ *
56
+ * @experimental This surface is experimental and may change.
57
+ */
58
+ interface PiImagesModelOptions extends ModelOptions {
59
+ name?: string;
60
+ width?: number;
61
+ height?: number;
62
+ /** Diffusion steps, for models that accept it. */
63
+ steps?: number;
64
+ /** Classifier-free guidance scale, for models that accept it. */
65
+ guidance?: number;
66
+ negativePrompt?: string;
67
+ seed?: number;
68
+ }
69
+ /** Per-call options for {@link generateImages}. */
70
+ interface PiImagesCallOptions extends ImagesOptions {
71
+ width?: number;
72
+ height?: number;
73
+ steps?: number;
74
+ guidance?: number;
75
+ negativePrompt?: string;
76
+ seed?: number;
77
+ }
78
+ /**
79
+ * pi-ai's `AssistantImages` has no warnings channel, so a knob this catalog
80
+ * drops is reported the way the language wires report theirs: as a diagnostic
81
+ * of type {@link COMPAT_DIAGNOSTIC}.
82
+ *
83
+ * @experimental This surface is experimental and may change.
84
+ */
85
+ interface CloudflareAssistantImages extends AssistantImages {
86
+ diagnostics?: {
87
+ type: string;
88
+ timestamp: number;
89
+ details: {
90
+ warnings: CompatWarning[];
91
+ };
92
+ }[];
93
+ }
94
+ //#endregion
95
+ //#region src/models/pi-ai/catalog.d.ts
96
+ /**
97
+ * The `api` marker Workers AI models from this provider carry. It is not a
98
+ * wire format: Workers AI runs on `env.AI.run`, and the compat layer maps that
99
+ * onto strict OpenAI chat completions.
100
+ *
101
+ * @experimental This surface is experimental and may change.
102
+ */
103
+ declare const CLOUDFLARE_AI_API = "cloudflare-ai";
104
+ /** @experimental This surface is experimental and may change. */
105
+ type CloudflareAIApi = typeof CLOUDFLARE_AI_API;
106
+ /**
107
+ * The pi-ai provider id. A `Models` registry resolves specifiers as
108
+ * `cloudflare/<id>`, e.g. `cloudflare/anthropic/claude-opus-4-8`.
109
+ *
110
+ * @experimental This surface is experimental and may change.
111
+ */
112
+ declare const CLOUDFLARE_PROVIDER_ID = "cloudflare";
113
+ /**
114
+ * A Workers AI model produced by this provider. `id` is the `@cf/` id exactly
115
+ * as given; `api` is {@link CLOUDFLARE_AI_API}.
116
+ *
117
+ * @experimental This surface is experimental and may change.
118
+ */
119
+ type CloudflareModel = Model<CloudflareAIApi>;
120
+ /** @experimental This surface is experimental and may change. */
121
+ type ModelCost = Model<Api>["cost"];
122
+ /**
123
+ * A model this provider routes: a Workers AI model or any pi-ai model the
124
+ * caller handed to `ai(model)`.
125
+ *
126
+ * @experimental This surface is experimental and may change.
127
+ */
128
+ type RoutedModel = Model<Api>;
129
+ /**
130
+ * Per-model options: the gateway options, client-side fallback, headers and
131
+ * session affinity, plus pi-ai model metadata overrides and the stream idle
132
+ * deadline. Metadata overrides only apply to the `@cf/` form — a model object
133
+ * brings its own metadata, and this module never second-guesses it.
134
+ *
135
+ * @experimental This surface is experimental and may change.
136
+ */
137
+ /**
138
+ * A fallback leg: a Workers AI id, a `<slug>/<id>` pi-ai's gateway registry
139
+ * knows, or a model object. A raw vendor id is refused when the chain is built.
140
+ */
141
+ type PiFallbackLeg = WorkersAIModelId | Model<Api> | (string & {});
142
+ interface PiModelOptions extends ModelOptions<PiFallbackLeg> {
143
+ /** Display name. Defaults to the catalog name, else the id. */
144
+ name?: string;
145
+ /** Context window in tokens. Defaults to the catalog value, else 128000. */
146
+ contextWindow?: number;
147
+ /** Maximum output tokens. Defaults to the catalog value, else 8192. */
148
+ maxTokens?: number;
149
+ /** Whether the model can reason. Defaults to the catalog value, else true. */
150
+ reasoning?: boolean;
151
+ /** Accepted input modalities. Defaults to the catalog value. */
152
+ input?: ("text" | "image")[];
153
+ /** Cost per million tokens, used by pi-ai's usage accounting. */
154
+ cost?: ModelCost;
155
+ /**
156
+ * Fail a stream that delivers no bytes for this long, in milliseconds. The
157
+ * timer only runs while a read is outstanding, so consumer backpressure
158
+ * never trips it. `0` disables the guard. Default 300000 (five minutes).
159
+ */
160
+ streamIdleTimeoutMs?: number;
161
+ }
162
+ //#endregion
163
+ //#region src/models/pi-ai/models/fallback.d.ts
164
+ /** A leg that was tried and failed before producing output. */
165
+ interface FallbackAttempt {
166
+ model: string;
167
+ errorMessage: string | undefined;
168
+ }
169
+ /** Diagnostic type under which abandoned legs are recorded. */
170
+ declare const FALLBACK_DIAGNOSTIC = "cloudflare-fallback";
171
+ //#endregion
172
+ //#region src/models/pi-ai/errors.d.ts
173
+ /** Diagnostic type under which a failed dispatch is recorded. */
174
+ declare const CLOUDFLARE_ERROR_DIAGNOSTIC = "cloudflare-error";
175
+ //#endregion
176
+ //#region src/models/pi-ai/wires/shared.d.ts
177
+ /** Diagnostic type under which gateway correlation ids are recorded. */
178
+ declare const CLOUDFLARE_DIAGNOSTIC = "cloudflare";
179
+ //#endregion
180
+ //#region src/models/pi-ai/index.d.ts
181
+ /**
182
+ * pi-agent-core's `streamFn` shape: what `Agent` calls to run a turn.
183
+ *
184
+ * @experimental This surface is experimental and may change.
185
+ */
186
+ type StreamFn = (
187
+ model: Model<string>,
188
+ context: Context,
189
+ options?: SimpleStreamOptions
190
+ ) => ReturnType<Provider["streamSimple"]>;
191
+ /**
192
+ * The provider `createAI` returns. Call it with a Workers AI id or with a
193
+ * pi-ai model to get a model this instance routes; use `stream`/`complete` to
194
+ * run it, `streamFn` with pi-agent-core's `Agent`, and `provider` with a pi-ai
195
+ * `Models` registry.
196
+ *
197
+ * @experimental This surface is experimental and may change.
198
+ */
199
+ interface AI {
200
+ /** A Workers AI model: Cloudflare's own catalog, on the run path. */
201
+ (modelId: WorkersAIModelId, options?: PiModelOptions): CloudflareModel;
202
+ /** Any pi-ai model, routed through AI Gateway with its metadata intact. */
203
+ <TApi extends Api>(model: Model<TApi>, options?: PiModelOptions): Model<TApi>;
204
+ /**
205
+ * A `<slug>/<id>` id from pi-ai's Cloudflare AI Gateway catalog, or either
206
+ * form when the caller only knows which at runtime.
207
+ */
208
+ (target: string | Model<Api>, options?: PiModelOptions): RoutedModel;
209
+ /** Same as calling the provider directly. */
210
+ model(modelId: WorkersAIModelId, options?: PiModelOptions): CloudflareModel;
211
+ model<TApi extends Api>(
212
+ model: Model<TApi>,
213
+ options?: PiModelOptions
214
+ ): Model<TApi>;
215
+ model(target: string | Model<Api>, options?: PiModelOptions): RoutedModel;
216
+ /**
217
+ * The pi-ai `Provider` (id `cloudflare`) for `Models.setProvider` and
218
+ * frameworks built on the registry. Its static model list is every Workers
219
+ * AI id plus every `<slug>/<id>` in pi-ai's Cloudflare AI Gateway catalog;
220
+ * any other model still streams when passed to `ai(model)`.
221
+ */
222
+ readonly provider: Provider;
223
+ /** Full-options streaming, like pi-ai's `stream`. */
224
+ stream(
225
+ model: Model<string>,
226
+ context: Context,
227
+ options?: StreamOptions
228
+ ): ReturnType<Provider["stream"]>;
229
+ /** Full-options completion, like pi-ai's `complete`. */
230
+ complete(
231
+ model: Model<string>,
232
+ context: Context,
233
+ options?: StreamOptions
234
+ ): Promise<AssistantMessage>;
235
+ /** Simple streaming, with `reasoning` as a level, like pi-ai's `streamSimple`. */
236
+ streamSimple(
237
+ model: Model<string>,
238
+ context: Context,
239
+ options?: SimpleStreamOptions
240
+ ): ReturnType<Provider["streamSimple"]>;
241
+ /** Simple completion, like pi-ai's `completeSimple`. */
242
+ completeSimple(
243
+ model: Model<string>,
244
+ context: Context,
245
+ options?: SimpleStreamOptions
246
+ ): Promise<AssistantMessage>;
247
+ /** `streamSimple`, bound, for pi-agent-core's `Agent({ streamFn })`. */
248
+ readonly streamFn: StreamFn;
249
+ /** A pi-ai image model over a Workers AI text-to-image id. */
250
+ images(
251
+ modelId: string,
252
+ options?: PiImagesModelOptions
253
+ ): CloudflareImagesModel;
254
+ /** Generates images with a model from {@link AI.images}, like pi-ai's `generateImages`. */
255
+ generateImages(
256
+ model: CloudflareImagesModel,
257
+ context: ImagesContext,
258
+ options?: PiImagesCallOptions
259
+ ): Promise<CloudflareAssistantImages>;
260
+ }
261
+ /**
262
+ * Creates a pi-ai provider over Cloudflare's AI.
263
+ *
264
+ * The Workers AI binding is the only way in — Workers AI models go through
265
+ * `env.AI.run`, vendor models through `env.AI.gateway(id).run`, and there is
266
+ * no HTTP transport and no API token. Gateway options may be given flat
267
+ * (`{ binding, id: "prod", cacheTtl: 60 }`) or nested under `gateway`;
268
+ * per-model options and per-call pi-ai options (`headers`, `metadata`,
269
+ * `sessionId`) override them in that order.
270
+ *
271
+ * ```ts
272
+ * const ai = createAI({ binding: env.AI, id: "prod" });
273
+ * ai("@cf/zai-org/glm-4.7-flash");
274
+ * ai(anthropicModel, { fallback: ["@cf/zai-org/glm-4.7-flash"] });
275
+ * new Agent({ streamFn: ai.streamFn, initialState: { model: ai(openaiModel) } });
276
+ * ```
277
+ *
278
+ * @experimental This surface is experimental and may change.
279
+ */
280
+ declare function createAI(settings: AISettings): AI;
281
+ //#endregion
282
+ export {
283
+ AI,
284
+ type AISettings,
285
+ CLOUDFLARE_AI_API,
286
+ CLOUDFLARE_AI_IMAGES_API,
287
+ CLOUDFLARE_DIAGNOSTIC,
288
+ CLOUDFLARE_ERROR_DIAGNOSTIC,
289
+ CLOUDFLARE_PROVIDER_ID,
290
+ type CloudflareAIApi,
291
+ type CloudflareAIAttempt,
292
+ CloudflareAIError,
293
+ type CloudflareAIErrorCode,
294
+ type CloudflareAssistantImages,
295
+ type CloudflareEmbeddingModelId,
296
+ type CloudflareImagesModel,
297
+ type CloudflareModel,
298
+ FALLBACK_DIAGNOSTIC,
299
+ type FallbackAttempt,
300
+ GATEWAY_PROVIDER_NAMES,
301
+ type GatewayOptions,
302
+ type GatewayProviderName,
303
+ type ModelCost,
304
+ type ModelOptions,
305
+ type PiImagesCallOptions,
306
+ type PiImagesModelOptions,
307
+ type PiModelOptions,
308
+ type RoutedModel,
309
+ StreamFn,
310
+ type WorkersAIModelId,
311
+ createAI
312
+ };
313
+ //# sourceMappingURL=index.d.ts.map