alchemy 2.0.0-beta.45 → 2.0.0-beta.47

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 (158) hide show
  1. package/bin/exec.js +18 -10
  2. package/bin/exec.js.map +1 -1
  3. package/lib/AlchemyContext.d.ts +0 -1
  4. package/lib/AlchemyContext.d.ts.map +1 -1
  5. package/lib/AlchemyContext.js.map +1 -1
  6. package/lib/Apply.js +2 -2
  7. package/lib/Apply.js.map +1 -1
  8. package/lib/Cli/commands/_shared.d.ts +7 -1
  9. package/lib/Cli/commands/_shared.d.ts.map +1 -1
  10. package/lib/Cli/commands/_shared.js +1 -0
  11. package/lib/Cli/commands/_shared.js.map +1 -1
  12. package/lib/Cli/commands/cloudflare.d.ts.map +1 -1
  13. package/lib/Cli/commands/cloudflare.js +5 -1
  14. package/lib/Cli/commands/cloudflare.js.map +1 -1
  15. package/lib/Cli/commands/login.d.ts +1 -1
  16. package/lib/Cli/commands/login.d.ts.map +1 -1
  17. package/lib/Cli/commands/login.js +45 -42
  18. package/lib/Cli/commands/login.js.map +1 -1
  19. package/lib/Cli/commands/logs.js +1 -1
  20. package/lib/Cli/commands/logs.js.map +1 -1
  21. package/lib/Cli/commands/state.js +1 -1
  22. package/lib/Cli/commands/state.js.map +1 -1
  23. package/lib/Cli/commands/tail.js +1 -1
  24. package/lib/Cli/commands/tail.js.map +1 -1
  25. package/lib/Cloudflare/AiGateway/AiGateway.d.ts +112 -1
  26. package/lib/Cloudflare/AiGateway/AiGateway.d.ts.map +1 -1
  27. package/lib/Cloudflare/AiGateway/AiGateway.js +112 -1
  28. package/lib/Cloudflare/AiGateway/AiGateway.js.map +1 -1
  29. package/lib/Cloudflare/AiGateway/AiGatewayBinding.d.ts +43 -10
  30. package/lib/Cloudflare/AiGateway/AiGatewayBinding.d.ts.map +1 -1
  31. package/lib/Cloudflare/AiGateway/AiGatewayBinding.js +38 -10
  32. package/lib/Cloudflare/AiGateway/AiGatewayBinding.js.map +1 -1
  33. package/lib/Cloudflare/AiGateway/LanguageModel.d.ts +35 -0
  34. package/lib/Cloudflare/AiGateway/LanguageModel.d.ts.map +1 -0
  35. package/lib/Cloudflare/AiGateway/LanguageModel.js +576 -0
  36. package/lib/Cloudflare/AiGateway/LanguageModel.js.map +1 -0
  37. package/lib/Cloudflare/AiGateway/index.d.ts +1 -0
  38. package/lib/Cloudflare/AiGateway/index.d.ts.map +1 -1
  39. package/lib/Cloudflare/AiGateway/index.js +1 -0
  40. package/lib/Cloudflare/AiGateway/index.js.map +1 -1
  41. package/lib/Cloudflare/Providers.d.ts.map +1 -1
  42. package/lib/Cloudflare/Providers.js +5 -1
  43. package/lib/Cloudflare/Providers.js.map +1 -1
  44. package/lib/Cloudflare/Queue/QueueConsumer.d.ts.map +1 -1
  45. package/lib/Cloudflare/Queue/QueueConsumer.js +1 -2
  46. package/lib/Cloudflare/Queue/QueueConsumer.js.map +1 -1
  47. package/lib/Cloudflare/StateStore/Api.d.ts +1 -1
  48. package/lib/Cloudflare/StateStore/Api.js +1 -1
  49. package/lib/Cloudflare/StateStore/State.d.ts +11 -65
  50. package/lib/Cloudflare/StateStore/State.d.ts.map +1 -1
  51. package/lib/Cloudflare/StateStore/State.js +313 -368
  52. package/lib/Cloudflare/StateStore/State.js.map +1 -1
  53. package/lib/Cloudflare/StateStore/Store.d.ts.map +1 -1
  54. package/lib/Cloudflare/StateStore/Store.js +16 -29
  55. package/lib/Cloudflare/StateStore/Store.js.map +1 -1
  56. package/lib/Cloudflare/Vectorize/VectorizeIndex.d.ts +114 -0
  57. package/lib/Cloudflare/Vectorize/VectorizeIndex.d.ts.map +1 -0
  58. package/lib/Cloudflare/Vectorize/VectorizeIndex.js +157 -0
  59. package/lib/Cloudflare/Vectorize/VectorizeIndex.js.map +1 -0
  60. package/lib/Cloudflare/Vectorize/VectorizeIndexBinding.d.ts +38 -0
  61. package/lib/Cloudflare/Vectorize/VectorizeIndexBinding.d.ts.map +1 -0
  62. package/lib/Cloudflare/Vectorize/VectorizeIndexBinding.js +44 -0
  63. package/lib/Cloudflare/Vectorize/VectorizeIndexBinding.js.map +1 -0
  64. package/lib/Cloudflare/Vectorize/VectorizeMetadataIndex.d.ts +72 -0
  65. package/lib/Cloudflare/Vectorize/VectorizeMetadataIndex.d.ts.map +1 -0
  66. package/lib/Cloudflare/Vectorize/VectorizeMetadataIndex.js +131 -0
  67. package/lib/Cloudflare/Vectorize/VectorizeMetadataIndex.js.map +1 -0
  68. package/lib/Cloudflare/Vectorize/index.d.ts +4 -0
  69. package/lib/Cloudflare/Vectorize/index.d.ts.map +1 -0
  70. package/lib/Cloudflare/Vectorize/index.js +4 -0
  71. package/lib/Cloudflare/Vectorize/index.js.map +1 -0
  72. package/lib/Cloudflare/Workers/DurableObjectBridge.d.ts.map +1 -1
  73. package/lib/Cloudflare/Workers/DurableObjectBridge.js +10 -1
  74. package/lib/Cloudflare/Workers/DurableObjectBridge.js.map +1 -1
  75. package/lib/Cloudflare/Workers/LocalWorkerProvider.d.ts.map +1 -1
  76. package/lib/Cloudflare/Workers/LocalWorkerProvider.js +13 -1
  77. package/lib/Cloudflare/Workers/LocalWorkerProvider.js.map +1 -1
  78. package/lib/Cloudflare/Workers/Rpc.d.ts.map +1 -1
  79. package/lib/Cloudflare/Workers/Rpc.js +20 -2
  80. package/lib/Cloudflare/Workers/Rpc.js.map +1 -1
  81. package/lib/Cloudflare/Workers/WorkerAsyncBindings.d.ts.map +1 -1
  82. package/lib/Cloudflare/Workers/WorkerAsyncBindings.js +8 -0
  83. package/lib/Cloudflare/Workers/WorkerAsyncBindings.js.map +1 -1
  84. package/lib/Cloudflare/Workers/WorkerBinding.d.ts +2 -1
  85. package/lib/Cloudflare/Workers/WorkerBinding.d.ts.map +1 -1
  86. package/lib/Cloudflare/Workers/WorkerBinding.js.map +1 -1
  87. package/lib/Cloudflare/Workers/WorkerBridge.d.ts.map +1 -1
  88. package/lib/Cloudflare/Workers/WorkerBridge.js +20 -2
  89. package/lib/Cloudflare/Workers/WorkerBridge.js.map +1 -1
  90. package/lib/Cloudflare/index.d.ts +1 -0
  91. package/lib/Cloudflare/index.d.ts.map +1 -1
  92. package/lib/Cloudflare/index.js +1 -0
  93. package/lib/Cloudflare/index.js.map +1 -1
  94. package/lib/Output.js +2 -2
  95. package/lib/Output.js.map +1 -1
  96. package/lib/Plan.d.ts +2 -2
  97. package/lib/Plan.d.ts.map +1 -1
  98. package/lib/Plan.js +3 -3
  99. package/lib/Plan.js.map +1 -1
  100. package/lib/Stack.d.ts.map +1 -1
  101. package/lib/Stack.js +6 -0
  102. package/lib/Stack.js.map +1 -1
  103. package/lib/State/HttpStateStore.d.ts +4 -0
  104. package/lib/State/HttpStateStore.d.ts.map +1 -1
  105. package/lib/State/HttpStateStore.js +13 -0
  106. package/lib/State/HttpStateStore.js.map +1 -1
  107. package/lib/State/InMemoryState.d.ts +2 -1
  108. package/lib/State/InMemoryState.d.ts.map +1 -1
  109. package/lib/State/InMemoryState.js +3 -3
  110. package/lib/State/InMemoryState.js.map +1 -1
  111. package/lib/State/LocalState.d.ts.map +1 -1
  112. package/lib/State/LocalState.js +5 -1
  113. package/lib/State/LocalState.js.map +1 -1
  114. package/lib/State/State.d.ts +2 -2
  115. package/lib/State/State.d.ts.map +1 -1
  116. package/lib/State/State.js.map +1 -1
  117. package/lib/Util/poll.d.ts +30 -0
  118. package/lib/Util/poll.d.ts.map +1 -0
  119. package/lib/Util/poll.js +26 -0
  120. package/lib/Util/poll.js.map +1 -0
  121. package/lib/tsconfig.test.tsbuildinfo +1 -1
  122. package/package.json +7 -7
  123. package/src/AlchemyContext.ts +0 -1
  124. package/src/Apply.ts +2 -2
  125. package/src/Cli/commands/_shared.ts +7 -1
  126. package/src/Cli/commands/cloudflare.ts +5 -3
  127. package/src/Cli/commands/login.ts +69 -60
  128. package/src/Cli/commands/logs.ts +1 -1
  129. package/src/Cli/commands/state.ts +1 -1
  130. package/src/Cli/commands/tail.ts +1 -1
  131. package/src/Cloudflare/AiGateway/AiGateway.ts +112 -1
  132. package/src/Cloudflare/AiGateway/AiGatewayBinding.ts +52 -10
  133. package/src/Cloudflare/AiGateway/LanguageModel.ts +907 -0
  134. package/src/Cloudflare/AiGateway/index.ts +1 -0
  135. package/src/Cloudflare/Providers.ts +7 -0
  136. package/src/Cloudflare/Queue/QueueConsumer.ts +0 -2
  137. package/src/Cloudflare/StateStore/Api.ts +1 -1
  138. package/src/Cloudflare/StateStore/State.ts +452 -508
  139. package/src/Cloudflare/StateStore/Store.ts +22 -35
  140. package/src/Cloudflare/Vectorize/VectorizeIndex.ts +261 -0
  141. package/src/Cloudflare/Vectorize/VectorizeIndexBinding.ts +103 -0
  142. package/src/Cloudflare/Vectorize/VectorizeMetadataIndex.ts +208 -0
  143. package/src/Cloudflare/Vectorize/index.ts +3 -0
  144. package/src/Cloudflare/Workers/DurableObjectBridge.ts +10 -1
  145. package/src/Cloudflare/Workers/LocalWorkerProvider.ts +13 -1
  146. package/src/Cloudflare/Workers/Rpc.ts +38 -9
  147. package/src/Cloudflare/Workers/WorkerAsyncBindings.ts +7 -0
  148. package/src/Cloudflare/Workers/WorkerBinding.ts +2 -0
  149. package/src/Cloudflare/Workers/WorkerBridge.ts +20 -2
  150. package/src/Cloudflare/index.ts +1 -0
  151. package/src/Output.ts +2 -2
  152. package/src/Plan.ts +4 -4
  153. package/src/Stack.ts +6 -0
  154. package/src/State/HttpStateStore.ts +28 -0
  155. package/src/State/InMemoryState.ts +87 -85
  156. package/src/State/LocalState.ts +15 -1
  157. package/src/State/State.ts +5 -4
  158. package/src/Util/poll.ts +47 -0
@@ -0,0 +1,576 @@
1
+ import * as Effect from "effect/Effect";
2
+ import * as Layer from "effect/Layer";
3
+ import * as Stream from "effect/Stream";
4
+ import { AiError, LanguageModel as AiLanguageModel, IdGenerator, Prompt, Response, Tool, } from "effect/unstable/ai";
5
+ import * as Sse from "effect/unstable/encoding/Sse";
6
+ /**
7
+ * Provide a {@link AiLanguageModel.LanguageModel} layer backed by the supplied
8
+ * AI Gateway client and Workers AI model.
9
+ */
10
+ export const makeLanguageModelLayer = (options) => Layer.effect(AiLanguageModel.LanguageModel, makeLanguageModel(options));
11
+ /**
12
+ * Build a {@link AiLanguageModel.Service} that proxies generateText/streamText
13
+ * through the supplied AI Gateway client to a Workers AI model.
14
+ */
15
+ export const makeLanguageModel = ({ client, model, parameters, }) => Effect.gen(function* () {
16
+ const ai = yield* client.raw;
17
+ const gatewayId = yield* client.id;
18
+ const callRaw = (body, method) => Effect.tryPromise({
19
+ try: () => ai.run(model, body, {
20
+ gateway: { id: gatewayId },
21
+ returnRawResponse: true,
22
+ }),
23
+ catch: (cause) => toAiError(cause, method),
24
+ });
25
+ return yield* AiLanguageModel.make({
26
+ generateText: (options) => Effect.gen(function* () {
27
+ const body = toRequestBody({ options, parameters, stream: false });
28
+ const resp = yield* callRaw(body, "generateText");
29
+ const json = yield* Effect.tryPromise({
30
+ try: () => resp.json(),
31
+ catch: (cause) => toAiError(cause, "generateText"),
32
+ });
33
+ return yield* parseGenerateText(json);
34
+ }),
35
+ streamText: (options) => Stream.unwrap(Effect.gen(function* () {
36
+ const idGen = yield* IdGenerator.IdGenerator;
37
+ const body = toRequestBody({ options, parameters, stream: true });
38
+ const resp = yield* callRaw(body, "streamText");
39
+ return parseStreamText(resp, idGen);
40
+ })),
41
+ });
42
+ });
43
+ // ---------------------------------------------------------------------------
44
+ // Prompt → Workers AI messages (pure, no .push mutation)
45
+ // ---------------------------------------------------------------------------
46
+ const uint8ArrayToBase64 = (bytes) => {
47
+ let binary = "";
48
+ const chunkSize = 8192;
49
+ for (let i = 0; i < bytes.length; i += chunkSize) {
50
+ const chunk = bytes.subarray(i, Math.min(i + chunkSize, bytes.length));
51
+ binary += String.fromCharCode(...chunk);
52
+ }
53
+ return btoa(binary);
54
+ };
55
+ const fileToImageUrl = (data, mediaType) => {
56
+ if (data instanceof URL)
57
+ return data.toString();
58
+ if (data instanceof Uint8Array) {
59
+ return `data:${mediaType};base64,${uint8ArrayToBase64(data)}`;
60
+ }
61
+ if (data.startsWith("data:") || data.startsWith("http"))
62
+ return data;
63
+ return `data:${mediaType};base64,${data}`;
64
+ };
65
+ const convertPromptToMessages = (prompt) => prompt.content.flatMap((m) => {
66
+ switch (m.role) {
67
+ case "system":
68
+ return [{ role: "system", content: m.content }];
69
+ case "user":
70
+ return [toUserMessage(m.content)];
71
+ case "assistant":
72
+ return [toAssistantMessage(m.content)];
73
+ case "tool":
74
+ return m.content.flatMap(toToolMessage);
75
+ }
76
+ });
77
+ const toUserMessage = (parts) => {
78
+ const text = parts
79
+ .flatMap((p) => (p.type === "text" ? [p.text] : []))
80
+ .join("\n");
81
+ const images = parts.flatMap((p) => p.type === "file"
82
+ ? [
83
+ {
84
+ type: "image_url",
85
+ image_url: { url: fileToImageUrl(p.data, p.mediaType) },
86
+ },
87
+ ]
88
+ : []);
89
+ if (images.length === 0)
90
+ return { role: "user", content: text };
91
+ return {
92
+ role: "user",
93
+ content: [
94
+ ...(text.length > 0 ? [{ type: "text", text }] : []),
95
+ ...images,
96
+ ],
97
+ };
98
+ };
99
+ const toAssistantMessage = (parts) => {
100
+ const text = parts
101
+ .flatMap((p) => (p.type === "text" ? [p.text] : []))
102
+ .join("");
103
+ const reasoning = parts
104
+ .flatMap((p) => (p.type === "reasoning" ? [p.text] : []))
105
+ .join("");
106
+ const toolCalls = parts.flatMap((p) => p.type === "tool-call"
107
+ ? [
108
+ {
109
+ id: p.id,
110
+ type: "function",
111
+ function: {
112
+ name: p.name,
113
+ arguments: typeof p.params === "string"
114
+ ? p.params
115
+ : JSON.stringify(p.params ?? {}),
116
+ },
117
+ },
118
+ ]
119
+ : []);
120
+ return {
121
+ role: "assistant",
122
+ content: text,
123
+ ...(reasoning ? { reasoning } : {}),
124
+ ...(toolCalls.length > 0 ? { tool_calls: toolCalls } : {}),
125
+ };
126
+ };
127
+ const toToolMessage = (part) => part.type === "tool-result"
128
+ ? [
129
+ {
130
+ role: "tool",
131
+ name: part.name,
132
+ tool_call_id: part.id,
133
+ content: typeof part.result === "string"
134
+ ? part.result
135
+ : JSON.stringify(part.result),
136
+ },
137
+ ]
138
+ : [];
139
+ // ---------------------------------------------------------------------------
140
+ // Tools / tool_choice
141
+ // ---------------------------------------------------------------------------
142
+ const prepareTools = (tools, toolChoice) => {
143
+ if (tools.length === 0)
144
+ return {};
145
+ const mapped = tools.map((tool) => ({
146
+ type: "function",
147
+ function: {
148
+ name: tool.name,
149
+ description: Tool.getDescription(tool),
150
+ parameters: Tool.getJsonSchema(tool),
151
+ },
152
+ }));
153
+ if (toolChoice === "auto" || toolChoice == null) {
154
+ return { tools: mapped, tool_choice: "auto" };
155
+ }
156
+ if (toolChoice === "none")
157
+ return { tools: mapped, tool_choice: "none" };
158
+ if (toolChoice === "required") {
159
+ return { tools: mapped, tool_choice: "required" };
160
+ }
161
+ if (typeof toolChoice === "object" && "tool" in toolChoice) {
162
+ return {
163
+ tools: mapped.filter((t) => t.function.name === toolChoice.tool),
164
+ tool_choice: "required",
165
+ };
166
+ }
167
+ if (typeof toolChoice === "object" && "oneOf" in toolChoice) {
168
+ const allowed = new Set(toolChoice.oneOf);
169
+ return {
170
+ tools: mapped.filter((t) => allowed.has(t.function.name)),
171
+ tool_choice: toolChoice.mode === "required" ? "required" : "auto",
172
+ };
173
+ }
174
+ return { tools: mapped, tool_choice: "auto" };
175
+ };
176
+ // ---------------------------------------------------------------------------
177
+ // Request body
178
+ // ---------------------------------------------------------------------------
179
+ const toRequestBody = ({ options, parameters, stream, }) => {
180
+ const messages = convertPromptToMessages(options.prompt);
181
+ const { tools, tool_choice } = prepareTools(options.tools, options.toolChoice);
182
+ return {
183
+ messages,
184
+ ...(tools !== undefined ? { tools } : {}),
185
+ ...(tool_choice !== undefined ? { tool_choice } : {}),
186
+ // `stream_options.include_usage` is the OpenAI-compatible opt-in for
187
+ // usage tokens to appear in the final streamed chunk. Without it most
188
+ // Workers AI models omit `usage` from the stream entirely, leaving the
189
+ // `finish` part with zeroed counts.
190
+ ...(stream
191
+ ? { stream: true, stream_options: { include_usage: true } }
192
+ : {}),
193
+ ...(parameters?.maxTokens !== undefined
194
+ ? { max_tokens: parameters.maxTokens }
195
+ : {}),
196
+ ...(parameters?.temperature !== undefined
197
+ ? { temperature: parameters.temperature }
198
+ : {}),
199
+ ...(parameters?.topP !== undefined ? { top_p: parameters.topP } : {}),
200
+ ...(parameters?.topK !== undefined ? { top_k: parameters.topK } : {}),
201
+ ...(parameters?.seed !== undefined ? { random_seed: parameters.seed } : {}),
202
+ ...(parameters?.frequencyPenalty !== undefined
203
+ ? { frequency_penalty: parameters.frequencyPenalty }
204
+ : {}),
205
+ ...(parameters?.presencePenalty !== undefined
206
+ ? { presence_penalty: parameters.presencePenalty }
207
+ : {}),
208
+ };
209
+ };
210
+ // ---------------------------------------------------------------------------
211
+ // Finish reason / usage mapping
212
+ // ---------------------------------------------------------------------------
213
+ const mapFinishReason = (raw) => {
214
+ switch (raw) {
215
+ case "stop":
216
+ return "stop";
217
+ case "length":
218
+ case "model_length":
219
+ return "length";
220
+ case "tool_calls":
221
+ return "tool-calls";
222
+ case "content_filter":
223
+ case "content-filter":
224
+ return "content-filter";
225
+ case "error":
226
+ return "error";
227
+ case undefined:
228
+ case null:
229
+ return "unknown";
230
+ default:
231
+ return "other";
232
+ }
233
+ };
234
+ const mapUsage = (raw) => {
235
+ const usage = raw?.usage ?? {};
236
+ const promptTokens = usage.prompt_tokens ?? 0;
237
+ const completionTokens = usage.completion_tokens ?? 0;
238
+ const cached = usage.prompt_tokens_details?.cached_tokens;
239
+ // Construct an actual `Response.Usage` instance — `Schema.Class<Usage>`
240
+ // encodes by going through the class constructor / `isInstance` check, so a
241
+ // plain struct that "matches" the encoded shape isn't enough.
242
+ return new Response.Usage({
243
+ inputTokens: {
244
+ uncached: cached !== undefined
245
+ ? Math.max(0, promptTokens - cached)
246
+ : promptTokens,
247
+ total: promptTokens,
248
+ cacheRead: cached ?? 0,
249
+ cacheWrite: 0,
250
+ },
251
+ outputTokens: {
252
+ total: completionTokens,
253
+ text: 0,
254
+ reasoning: 0,
255
+ },
256
+ });
257
+ };
258
+ const decodeResponse = (raw) => {
259
+ const choice = raw.choices?.[0];
260
+ const message = choice?.message;
261
+ const openAiText = message?.content;
262
+ const text = typeof openAiText === "string" && openAiText.length > 0
263
+ ? openAiText
264
+ : nativeTextOf(raw.response);
265
+ const reasoning = message?.reasoning_content ?? message?.reasoning;
266
+ const rawToolCalls = message?.tool_calls ??
267
+ (Array.isArray(raw.tool_calls)
268
+ ? raw.tool_calls
269
+ : []);
270
+ return {
271
+ text,
272
+ reasoning: reasoning && reasoning.length > 0 ? reasoning : undefined,
273
+ toolCalls: rawToolCalls.flatMap(decodeToolCall),
274
+ finishReason: choice?.finish_reason ?? raw.finish_reason,
275
+ };
276
+ };
277
+ const nativeTextOf = (raw) => {
278
+ if (raw == null)
279
+ return undefined;
280
+ if (typeof raw === "object")
281
+ return JSON.stringify(raw);
282
+ const text = String(raw);
283
+ return text.length > 0 ? text : undefined;
284
+ };
285
+ const decodeToolCall = (tc) => {
286
+ const fn = tc.function;
287
+ const rawId = tc.id ?? "";
288
+ if (fn?.name) {
289
+ return [{ rawId, name: fn.name, arguments: fn.arguments ?? "" }];
290
+ }
291
+ const flatName = tc.name;
292
+ if (flatName) {
293
+ return [{ rawId, name: flatName, arguments: tc.arguments ?? "" }];
294
+ }
295
+ return [];
296
+ };
297
+ const tryParseJsonArgs = (raw) => {
298
+ if (typeof raw !== "string")
299
+ return raw;
300
+ try {
301
+ return JSON.parse(raw);
302
+ }
303
+ catch {
304
+ // Leave as raw string; the framework's tool-result decoder will fail loudly.
305
+ return raw;
306
+ }
307
+ };
308
+ const parseGenerateText = Effect.fnUntraced(function* (raw) {
309
+ const idGen = yield* IdGenerator.IdGenerator;
310
+ const decoded = decodeResponse(raw);
311
+ const toolCallParts = yield* Effect.forEach(decoded.toolCalls, (tc) => Effect.gen(function* () {
312
+ const id = tc.rawId || (yield* idGen.generateId());
313
+ return {
314
+ type: "tool-call",
315
+ id,
316
+ name: tc.name,
317
+ params: tryParseJsonArgs(tc.arguments),
318
+ };
319
+ }));
320
+ const finish = mapFinishReason(decoded.finishReason ??
321
+ (decoded.toolCalls.length > 0 ? "tool_calls" : "stop"));
322
+ return [
323
+ ...(decoded.reasoning !== undefined
324
+ ? [{ type: "reasoning", text: decoded.reasoning }]
325
+ : []),
326
+ ...(decoded.text !== undefined && decoded.text.length > 0
327
+ ? [{ type: "text", text: decoded.text }]
328
+ : []),
329
+ ...toolCallParts,
330
+ {
331
+ type: "finish",
332
+ reason: finish,
333
+ usage: mapUsage(raw),
334
+ response: undefined,
335
+ },
336
+ ];
337
+ });
338
+ const initialStreamState = () => ({
339
+ textId: undefined,
340
+ reasoningId: undefined,
341
+ toolCalls: new Map(),
342
+ lastToolIndex: undefined,
343
+ closedToolIndices: new Set(),
344
+ usage: undefined,
345
+ finishReason: undefined,
346
+ receivedAnyData: false,
347
+ receivedDone: false,
348
+ });
349
+ const tryParseJson = (data) => {
350
+ try {
351
+ const v = JSON.parse(data);
352
+ return v && typeof v === "object"
353
+ ? v
354
+ : undefined;
355
+ }
356
+ catch {
357
+ return undefined;
358
+ }
359
+ };
360
+ const isNullFinalizationToolCall = (tc) => {
361
+ const fn = tc.function;
362
+ const name = fn?.name ?? tc.name ?? null;
363
+ const args = fn?.arguments ?? tc.arguments ?? null;
364
+ const id = tc.id ?? null;
365
+ return !id && !name && (!args || args === "");
366
+ };
367
+ const closeReasoning = (state, parts) => {
368
+ if (state.reasoningId === undefined)
369
+ return state;
370
+ parts.push({ type: "reasoning-end", id: state.reasoningId });
371
+ return { ...state, reasoningId: undefined };
372
+ };
373
+ const closeToolCall = (state, index, parts) => {
374
+ if (state.closedToolIndices.has(index))
375
+ return state;
376
+ const tc = state.toolCalls.get(index);
377
+ if (!tc)
378
+ return state;
379
+ parts.push({ type: "tool-params-end", id: tc.id });
380
+ const closed = new Set(state.closedToolIndices);
381
+ closed.add(index);
382
+ return { ...state, closedToolIndices: closed };
383
+ };
384
+ const emitTextDelta = (state, delta, parts, idGen) => Effect.gen(function* () {
385
+ let s = closeReasoning(state, parts);
386
+ if (s.textId === undefined) {
387
+ const id = yield* idGen.generateId();
388
+ parts.push({ type: "text-start", id });
389
+ s = { ...s, textId: id };
390
+ }
391
+ parts.push({ type: "text-delta", id: s.textId, delta });
392
+ return s;
393
+ });
394
+ const emitReasoningDelta = (state, delta, parts, idGen) => Effect.gen(function* () {
395
+ let s = state;
396
+ if (s.reasoningId === undefined) {
397
+ const id = yield* idGen.generateId();
398
+ parts.push({ type: "reasoning-start", id });
399
+ s = { ...s, reasoningId: id };
400
+ }
401
+ parts.push({ type: "reasoning-delta", id: s.reasoningId, delta });
402
+ return s;
403
+ });
404
+ const handleToolDeltas = (state, deltas, parts, idGen) => Effect.gen(function* () {
405
+ let s = state;
406
+ for (const d of deltas) {
407
+ if (isNullFinalizationToolCall(d)) {
408
+ if (s.lastToolIndex !== undefined) {
409
+ s = closeToolCall(s, s.lastToolIndex, parts);
410
+ }
411
+ continue;
412
+ }
413
+ const idx = d.index ?? 0;
414
+ const fn = d.function;
415
+ const name = fn?.name ?? d.name ?? "";
416
+ const args = fn?.arguments ?? d.arguments ?? "";
417
+ const rawId = d.id ?? "";
418
+ const existing = s.toolCalls.get(idx);
419
+ if (existing === undefined) {
420
+ if (s.lastToolIndex !== undefined && s.lastToolIndex !== idx) {
421
+ s = closeToolCall(s, s.lastToolIndex, parts);
422
+ }
423
+ const id = rawId || (yield* idGen.generateId());
424
+ const entry = { id, name };
425
+ const next = new Map(s.toolCalls);
426
+ next.set(idx, entry);
427
+ s = { ...s, toolCalls: next, lastToolIndex: idx };
428
+ parts.push({ type: "tool-params-start", id, name });
429
+ if (args.length > 0) {
430
+ parts.push({ type: "tool-params-delta", id, delta: args });
431
+ }
432
+ }
433
+ else {
434
+ s = { ...s, lastToolIndex: idx };
435
+ if (args.length > 0) {
436
+ parts.push({
437
+ type: "tool-params-delta",
438
+ id: existing.id,
439
+ delta: args,
440
+ });
441
+ }
442
+ }
443
+ }
444
+ return s;
445
+ });
446
+ const hasNonZeroUsage = (raw) => {
447
+ if (raw == null || typeof raw !== "object")
448
+ return false;
449
+ const u = raw;
450
+ const prompt = u.prompt_tokens ?? 0;
451
+ const completion = u.completion_tokens ?? 0;
452
+ const total = u.total_tokens ?? 0;
453
+ return prompt > 0 || completion > 0 || total > 0;
454
+ };
455
+ const updateChunkMeta = (state, chunk) => {
456
+ let s = state;
457
+ // Workers AI's native stream emits the real usage chunk, then a
458
+ // "zero-valued terminator" chunk where every count is 0 (it also re-emits
459
+ // `usage` with all zeros). Treat the zero chunk as a no-op so we keep the
460
+ // meaningful counts.
461
+ if (chunk.usage !== undefined && hasNonZeroUsage(chunk.usage)) {
462
+ s = { ...s, usage: chunk };
463
+ }
464
+ const choices = chunk.choices;
465
+ const finish = choices?.[0]?.finish_reason ?? chunk.finish_reason;
466
+ if (finish != null)
467
+ s = { ...s, finishReason: finish };
468
+ return s;
469
+ };
470
+ const handleNativeText = (state, chunk, parts, idGen) => {
471
+ const native = chunk.response;
472
+ if (native == null || native === "")
473
+ return Effect.succeed(state);
474
+ const text = typeof native === "object" ? JSON.stringify(native) : String(native);
475
+ if (text.length === 0)
476
+ return Effect.succeed(state);
477
+ return emitTextDelta(state, text, parts, idGen);
478
+ };
479
+ const handleNativeToolCalls = (state, chunk, parts, idGen) => {
480
+ if (!Array.isArray(chunk.tool_calls))
481
+ return Effect.succeed(state);
482
+ return Effect.gen(function* () {
483
+ const s = closeReasoning(state, parts);
484
+ return yield* handleToolDeltas(s, chunk.tool_calls, parts, idGen);
485
+ });
486
+ };
487
+ const handleOpenAiDelta = (state, chunk, parts, idGen) => {
488
+ const delta = chunk.choices?.[0]?.delta;
489
+ if (!delta)
490
+ return Effect.succeed(state);
491
+ return Effect.gen(function* () {
492
+ let s = state;
493
+ const reasoning = (delta.reasoning_content ?? delta.reasoning);
494
+ if (reasoning && reasoning.length > 0) {
495
+ s = yield* emitReasoningDelta(s, reasoning, parts, idGen);
496
+ }
497
+ const text = delta.content;
498
+ if (text && text.length > 0) {
499
+ s = yield* emitTextDelta(s, text, parts, idGen);
500
+ }
501
+ const toolDeltas = delta.tool_calls;
502
+ if (Array.isArray(toolDeltas)) {
503
+ s = closeReasoning(s, parts);
504
+ s = yield* handleToolDeltas(s, toolDeltas, parts, idGen);
505
+ }
506
+ return s;
507
+ });
508
+ };
509
+ const handleStreamChunk = (state, data, idGen) => Effect.gen(function* () {
510
+ if (data === "")
511
+ return [state, []];
512
+ if (data === "[DONE]") {
513
+ return [{ ...state, receivedDone: true }, []];
514
+ }
515
+ const chunk = tryParseJson(data);
516
+ if (chunk === undefined)
517
+ return [state, []];
518
+ const parts = [];
519
+ let s = { ...state, receivedAnyData: true };
520
+ s = updateChunkMeta(s, chunk);
521
+ s = yield* handleNativeText(s, chunk, parts, idGen);
522
+ s = yield* handleNativeToolCalls(s, chunk, parts, idGen);
523
+ s = yield* handleOpenAiDelta(s, chunk, parts, idGen);
524
+ return [s, parts];
525
+ });
526
+ const finalizeStream = (state) => {
527
+ const parts = [];
528
+ let s = state;
529
+ for (const [idx] of s.toolCalls)
530
+ s = closeToolCall(s, idx, parts);
531
+ s = closeReasoning(s, parts);
532
+ if (s.textId !== undefined)
533
+ parts.push({ type: "text-end", id: s.textId });
534
+ // Three cases for the final reason:
535
+ // 1. The model emitted an explicit `finish_reason` → map it.
536
+ // 2. The stream ended cleanly (`[DONE]` seen) but no reason → "stop".
537
+ // Workers AI's native shape never includes `finish_reason`,
538
+ // so without this rule every native-mode stream would report
539
+ // `unknown` despite completing successfully.
540
+ // 3. The stream ended abnormally (no `[DONE]`, no reason) → "error".
541
+ const reason = s.finishReason !== undefined
542
+ ? mapFinishReason(s.finishReason)
543
+ : s.receivedDone
544
+ ? "stop"
545
+ : s.receivedAnyData
546
+ ? "error"
547
+ : "unknown";
548
+ parts.push({
549
+ type: "finish",
550
+ reason,
551
+ usage: mapUsage(s.usage),
552
+ response: undefined,
553
+ });
554
+ return parts;
555
+ };
556
+ const parseStreamText = (resp, idGen) => {
557
+ const body = resp.body;
558
+ if (body === null) {
559
+ return Stream.fromIterable(finalizeStream(initialStreamState()));
560
+ }
561
+ return Stream.fromReadableStream({
562
+ evaluate: () => body,
563
+ onError: (cause) => toAiError(cause, "streamText"),
564
+ }).pipe(Stream.decodeText(), Stream.pipeThroughChannel(Sse.decode()), Stream.catchTag("Retry", (retry) => Stream.die(retry)), Stream.mapAccumEffect(initialStreamState, (state, event) => handleStreamChunk(state, event.data, idGen), { onHalt: (state) => finalizeStream(state) }));
565
+ };
566
+ // ---------------------------------------------------------------------------
567
+ // Error mapping
568
+ // ---------------------------------------------------------------------------
569
+ const toAiError = (cause, method) => AiError.AiError.make({
570
+ module: "Cloudflare.AiGateway.LanguageModel",
571
+ method,
572
+ reason: new AiError.UnknownError({
573
+ description: cause instanceof Error ? cause.message : "AI Gateway request failed",
574
+ }),
575
+ });
576
+ //# sourceMappingURL=LanguageModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LanguageModel.js","sourceRoot":"","sources":["../../../src/Cloudflare/AiGateway/LanguageModel.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  export * from "./AiGateway.ts";
2
2
  export * from "./AiGatewayBinding.ts";
3
+ export * from "./LanguageModel.ts";
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/AiGateway/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Cloudflare/AiGateway/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export * from "./AiGateway.js";
2
2
  export * from "./AiGatewayBinding.js";
3
+ export * from "./LanguageModel.js";
3
4
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Cloudflare/AiGateway/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Cloudflare/AiGateway/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Providers.d.ts","sourceRoot":"","sources":["../../src/Cloudflare/Providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAIpD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAKtC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAmB,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAkB,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAOtC,OAAO,KAAK,qBAAqB,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAC;AAgBnD,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;;AAEtE,qBAAa,SAAU,SAAQ,cAE9B;CAAG;AAEJ,MAAM,MAAM,oBAAoB,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,SAAS,gUAqHnB,CAAC"}
1
+ {"version":3,"file":"Providers.d.ts","sourceRoot":"","sources":["../../src/Cloudflare/Providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAIpD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAKtC,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,OAAO,EAAE,OAAO,EAAmB,MAAM,eAAe,CAAC;AACzD,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAkB,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAOtC,OAAO,KAAK,qBAAqB,MAAM,4BAA4B,CAAC;AACpE,OAAO,KAAK,UAAU,MAAM,sBAAsB,CAAC;AAiBnD,OAAO,EAAE,WAAW,EAAE,MAAM,yCAAyC,CAAC;;AAEtE,qBAAa,SAAU,SAAQ,cAE9B;CAAG;AAEJ,MAAM,MAAM,oBAAoB,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC;AAEhF;;GAEG;AACH,eAAO,MAAM,SAAS,gUA2HnB,CAAC"}