ai 6.0.1 → 6.0.3
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.
- package/CHANGELOG.md +99 -469
- package/dist/index.d.mts +31 -9
- package/dist/index.d.ts +31 -9
- package/dist/index.js +580 -393
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +514 -329
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.js +25 -8
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/index.mjs +25 -8
- package/dist/internal/index.mjs.map +1 -1
- package/package.json +3 -3
package/dist/index.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __export = (target, all) => {
|
|
3
|
-
for (var
|
|
4
|
-
__defProp(target,
|
|
3
|
+
for (var name16 in all)
|
|
4
|
+
__defProp(target, name16, { get: all[name16], enumerable: true });
|
|
5
5
|
};
|
|
6
6
|
|
|
7
7
|
// src/index.ts
|
|
@@ -26,7 +26,7 @@ import {
|
|
|
26
26
|
|
|
27
27
|
// src/error/index.ts
|
|
28
28
|
import {
|
|
29
|
-
AISDKError as
|
|
29
|
+
AISDKError as AISDKError17,
|
|
30
30
|
APICallError,
|
|
31
31
|
EmptyResponseBodyError,
|
|
32
32
|
InvalidPromptError,
|
|
@@ -88,23 +88,20 @@ var InvalidStreamPartError = class extends AISDKError2 {
|
|
|
88
88
|
};
|
|
89
89
|
_a2 = symbol2;
|
|
90
90
|
|
|
91
|
-
// src/error/invalid-tool-
|
|
92
|
-
import { AISDKError as AISDKError3
|
|
93
|
-
var name3 = "
|
|
91
|
+
// src/error/invalid-tool-approval-error.ts
|
|
92
|
+
import { AISDKError as AISDKError3 } from "@ai-sdk/provider";
|
|
93
|
+
var name3 = "AI_InvalidToolApprovalError";
|
|
94
94
|
var marker3 = `vercel.ai.error.${name3}`;
|
|
95
95
|
var symbol3 = Symbol.for(marker3);
|
|
96
96
|
var _a3;
|
|
97
|
-
var
|
|
98
|
-
constructor({
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
}) {
|
|
104
|
-
super({ name: name3, message, cause });
|
|
97
|
+
var InvalidToolApprovalError = class extends AISDKError3 {
|
|
98
|
+
constructor({ approvalId }) {
|
|
99
|
+
super({
|
|
100
|
+
name: name3,
|
|
101
|
+
message: `Tool approval response references unknown approvalId: "${approvalId}". No matching tool-approval-request found in message history.`
|
|
102
|
+
});
|
|
105
103
|
this[_a3] = true;
|
|
106
|
-
this.
|
|
107
|
-
this.toolName = toolName;
|
|
104
|
+
this.approvalId = approvalId;
|
|
108
105
|
}
|
|
109
106
|
static isInstance(error) {
|
|
110
107
|
return AISDKError3.hasMarker(error, marker3);
|
|
@@ -112,21 +109,23 @@ var InvalidToolInputError = class extends AISDKError3 {
|
|
|
112
109
|
};
|
|
113
110
|
_a3 = symbol3;
|
|
114
111
|
|
|
115
|
-
// src/error/
|
|
116
|
-
import { AISDKError as AISDKError4 } from "@ai-sdk/provider";
|
|
117
|
-
var name4 = "
|
|
112
|
+
// src/error/invalid-tool-input-error.ts
|
|
113
|
+
import { AISDKError as AISDKError4, getErrorMessage } from "@ai-sdk/provider";
|
|
114
|
+
var name4 = "AI_InvalidToolInputError";
|
|
118
115
|
var marker4 = `vercel.ai.error.${name4}`;
|
|
119
116
|
var symbol4 = Symbol.for(marker4);
|
|
120
117
|
var _a4;
|
|
121
|
-
var
|
|
118
|
+
var InvalidToolInputError = class extends AISDKError4 {
|
|
122
119
|
constructor({
|
|
123
|
-
|
|
120
|
+
toolInput,
|
|
121
|
+
toolName,
|
|
124
122
|
cause,
|
|
125
|
-
|
|
123
|
+
message = `Invalid input for tool ${toolName}: ${getErrorMessage(cause)}`
|
|
126
124
|
}) {
|
|
127
125
|
super({ name: name4, message, cause });
|
|
128
126
|
this[_a4] = true;
|
|
129
|
-
this.
|
|
127
|
+
this.toolInput = toolInput;
|
|
128
|
+
this.toolName = toolName;
|
|
130
129
|
}
|
|
131
130
|
static isInstance(error) {
|
|
132
131
|
return AISDKError4.hasMarker(error, marker4);
|
|
@@ -134,13 +133,60 @@ var NoImageGeneratedError = class extends AISDKError4 {
|
|
|
134
133
|
};
|
|
135
134
|
_a4 = symbol4;
|
|
136
135
|
|
|
137
|
-
// src/error/
|
|
136
|
+
// src/error/tool-call-not-found-for-approval-error.ts
|
|
138
137
|
import { AISDKError as AISDKError5 } from "@ai-sdk/provider";
|
|
139
|
-
var name5 = "
|
|
138
|
+
var name5 = "AI_ToolCallNotFoundForApprovalError";
|
|
140
139
|
var marker5 = `vercel.ai.error.${name5}`;
|
|
141
140
|
var symbol5 = Symbol.for(marker5);
|
|
142
141
|
var _a5;
|
|
143
|
-
var
|
|
142
|
+
var ToolCallNotFoundForApprovalError = class extends AISDKError5 {
|
|
143
|
+
constructor({
|
|
144
|
+
toolCallId,
|
|
145
|
+
approvalId
|
|
146
|
+
}) {
|
|
147
|
+
super({
|
|
148
|
+
name: name5,
|
|
149
|
+
message: `Tool call "${toolCallId}" not found for approval request "${approvalId}".`
|
|
150
|
+
});
|
|
151
|
+
this[_a5] = true;
|
|
152
|
+
this.toolCallId = toolCallId;
|
|
153
|
+
this.approvalId = approvalId;
|
|
154
|
+
}
|
|
155
|
+
static isInstance(error) {
|
|
156
|
+
return AISDKError5.hasMarker(error, marker5);
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
_a5 = symbol5;
|
|
160
|
+
|
|
161
|
+
// src/error/no-image-generated-error.ts
|
|
162
|
+
import { AISDKError as AISDKError6 } from "@ai-sdk/provider";
|
|
163
|
+
var name6 = "AI_NoImageGeneratedError";
|
|
164
|
+
var marker6 = `vercel.ai.error.${name6}`;
|
|
165
|
+
var symbol6 = Symbol.for(marker6);
|
|
166
|
+
var _a6;
|
|
167
|
+
var NoImageGeneratedError = class extends AISDKError6 {
|
|
168
|
+
constructor({
|
|
169
|
+
message = "No image generated.",
|
|
170
|
+
cause,
|
|
171
|
+
responses
|
|
172
|
+
}) {
|
|
173
|
+
super({ name: name6, message, cause });
|
|
174
|
+
this[_a6] = true;
|
|
175
|
+
this.responses = responses;
|
|
176
|
+
}
|
|
177
|
+
static isInstance(error) {
|
|
178
|
+
return AISDKError6.hasMarker(error, marker6);
|
|
179
|
+
}
|
|
180
|
+
};
|
|
181
|
+
_a6 = symbol6;
|
|
182
|
+
|
|
183
|
+
// src/error/no-object-generated-error.ts
|
|
184
|
+
import { AISDKError as AISDKError7 } from "@ai-sdk/provider";
|
|
185
|
+
var name7 = "AI_NoObjectGeneratedError";
|
|
186
|
+
var marker7 = `vercel.ai.error.${name7}`;
|
|
187
|
+
var symbol7 = Symbol.for(marker7);
|
|
188
|
+
var _a7;
|
|
189
|
+
var NoObjectGeneratedError = class extends AISDKError7 {
|
|
144
190
|
constructor({
|
|
145
191
|
message = "No object generated.",
|
|
146
192
|
cause,
|
|
@@ -149,43 +195,43 @@ var NoObjectGeneratedError = class extends AISDKError5 {
|
|
|
149
195
|
usage,
|
|
150
196
|
finishReason
|
|
151
197
|
}) {
|
|
152
|
-
super({ name:
|
|
153
|
-
this[
|
|
198
|
+
super({ name: name7, message, cause });
|
|
199
|
+
this[_a7] = true;
|
|
154
200
|
this.text = text2;
|
|
155
201
|
this.response = response;
|
|
156
202
|
this.usage = usage;
|
|
157
203
|
this.finishReason = finishReason;
|
|
158
204
|
}
|
|
159
205
|
static isInstance(error) {
|
|
160
|
-
return
|
|
206
|
+
return AISDKError7.hasMarker(error, marker7);
|
|
161
207
|
}
|
|
162
208
|
};
|
|
163
|
-
|
|
209
|
+
_a7 = symbol7;
|
|
164
210
|
|
|
165
211
|
// src/error/no-output-generated-error.ts
|
|
166
|
-
import { AISDKError as
|
|
167
|
-
var
|
|
168
|
-
var
|
|
169
|
-
var
|
|
170
|
-
var
|
|
171
|
-
var NoOutputGeneratedError = class extends
|
|
212
|
+
import { AISDKError as AISDKError8 } from "@ai-sdk/provider";
|
|
213
|
+
var name8 = "AI_NoOutputGeneratedError";
|
|
214
|
+
var marker8 = `vercel.ai.error.${name8}`;
|
|
215
|
+
var symbol8 = Symbol.for(marker8);
|
|
216
|
+
var _a8;
|
|
217
|
+
var NoOutputGeneratedError = class extends AISDKError8 {
|
|
172
218
|
// used in isInstance
|
|
173
219
|
constructor({
|
|
174
220
|
message = "No output generated.",
|
|
175
221
|
cause
|
|
176
222
|
} = {}) {
|
|
177
|
-
super({ name:
|
|
178
|
-
this[
|
|
223
|
+
super({ name: name8, message, cause });
|
|
224
|
+
this[_a8] = true;
|
|
179
225
|
}
|
|
180
226
|
static isInstance(error) {
|
|
181
|
-
return
|
|
227
|
+
return AISDKError8.hasMarker(error, marker8);
|
|
182
228
|
}
|
|
183
229
|
};
|
|
184
|
-
|
|
230
|
+
_a8 = symbol8;
|
|
185
231
|
|
|
186
232
|
// src/error/no-speech-generated-error.ts
|
|
187
|
-
import { AISDKError as
|
|
188
|
-
var NoSpeechGeneratedError = class extends
|
|
233
|
+
import { AISDKError as AISDKError9 } from "@ai-sdk/provider";
|
|
234
|
+
var NoSpeechGeneratedError = class extends AISDKError9 {
|
|
189
235
|
constructor(options) {
|
|
190
236
|
super({
|
|
191
237
|
name: "AI_NoSpeechGeneratedError",
|
|
@@ -196,53 +242,53 @@ var NoSpeechGeneratedError = class extends AISDKError7 {
|
|
|
196
242
|
};
|
|
197
243
|
|
|
198
244
|
// src/error/no-such-tool-error.ts
|
|
199
|
-
import { AISDKError as
|
|
200
|
-
var
|
|
201
|
-
var
|
|
202
|
-
var
|
|
203
|
-
var
|
|
204
|
-
var NoSuchToolError = class extends
|
|
245
|
+
import { AISDKError as AISDKError10 } from "@ai-sdk/provider";
|
|
246
|
+
var name9 = "AI_NoSuchToolError";
|
|
247
|
+
var marker9 = `vercel.ai.error.${name9}`;
|
|
248
|
+
var symbol9 = Symbol.for(marker9);
|
|
249
|
+
var _a9;
|
|
250
|
+
var NoSuchToolError = class extends AISDKError10 {
|
|
205
251
|
constructor({
|
|
206
252
|
toolName,
|
|
207
253
|
availableTools = void 0,
|
|
208
254
|
message = `Model tried to call unavailable tool '${toolName}'. ${availableTools === void 0 ? "No tools are available." : `Available tools: ${availableTools.join(", ")}.`}`
|
|
209
255
|
}) {
|
|
210
|
-
super({ name:
|
|
211
|
-
this[
|
|
256
|
+
super({ name: name9, message });
|
|
257
|
+
this[_a9] = true;
|
|
212
258
|
this.toolName = toolName;
|
|
213
259
|
this.availableTools = availableTools;
|
|
214
260
|
}
|
|
215
261
|
static isInstance(error) {
|
|
216
|
-
return
|
|
262
|
+
return AISDKError10.hasMarker(error, marker9);
|
|
217
263
|
}
|
|
218
264
|
};
|
|
219
|
-
|
|
265
|
+
_a9 = symbol9;
|
|
220
266
|
|
|
221
267
|
// src/error/tool-call-repair-error.ts
|
|
222
|
-
import { AISDKError as
|
|
223
|
-
var
|
|
224
|
-
var
|
|
225
|
-
var
|
|
226
|
-
var
|
|
227
|
-
var ToolCallRepairError = class extends
|
|
268
|
+
import { AISDKError as AISDKError11, getErrorMessage as getErrorMessage2 } from "@ai-sdk/provider";
|
|
269
|
+
var name10 = "AI_ToolCallRepairError";
|
|
270
|
+
var marker10 = `vercel.ai.error.${name10}`;
|
|
271
|
+
var symbol10 = Symbol.for(marker10);
|
|
272
|
+
var _a10;
|
|
273
|
+
var ToolCallRepairError = class extends AISDKError11 {
|
|
228
274
|
constructor({
|
|
229
275
|
cause,
|
|
230
276
|
originalError,
|
|
231
277
|
message = `Error repairing tool call: ${getErrorMessage2(cause)}`
|
|
232
278
|
}) {
|
|
233
|
-
super({ name:
|
|
234
|
-
this[
|
|
279
|
+
super({ name: name10, message, cause });
|
|
280
|
+
this[_a10] = true;
|
|
235
281
|
this.originalError = originalError;
|
|
236
282
|
}
|
|
237
283
|
static isInstance(error) {
|
|
238
|
-
return
|
|
284
|
+
return AISDKError11.hasMarker(error, marker10);
|
|
239
285
|
}
|
|
240
286
|
};
|
|
241
|
-
|
|
287
|
+
_a10 = symbol10;
|
|
242
288
|
|
|
243
289
|
// src/error/unsupported-model-version-error.ts
|
|
244
|
-
import { AISDKError as
|
|
245
|
-
var UnsupportedModelVersionError = class extends
|
|
290
|
+
import { AISDKError as AISDKError12 } from "@ai-sdk/provider";
|
|
291
|
+
var UnsupportedModelVersionError = class extends AISDKError12 {
|
|
246
292
|
constructor(options) {
|
|
247
293
|
super({
|
|
248
294
|
name: "AI_UnsupportedModelVersionError",
|
|
@@ -255,95 +301,95 @@ var UnsupportedModelVersionError = class extends AISDKError10 {
|
|
|
255
301
|
};
|
|
256
302
|
|
|
257
303
|
// src/prompt/invalid-data-content-error.ts
|
|
258
|
-
import { AISDKError as
|
|
259
|
-
var
|
|
260
|
-
var
|
|
261
|
-
var
|
|
262
|
-
var
|
|
263
|
-
var InvalidDataContentError = class extends
|
|
304
|
+
import { AISDKError as AISDKError13 } from "@ai-sdk/provider";
|
|
305
|
+
var name11 = "AI_InvalidDataContentError";
|
|
306
|
+
var marker11 = `vercel.ai.error.${name11}`;
|
|
307
|
+
var symbol11 = Symbol.for(marker11);
|
|
308
|
+
var _a11;
|
|
309
|
+
var InvalidDataContentError = class extends AISDKError13 {
|
|
264
310
|
constructor({
|
|
265
311
|
content,
|
|
266
312
|
cause,
|
|
267
313
|
message = `Invalid data content. Expected a base64 string, Uint8Array, ArrayBuffer, or Buffer, but got ${typeof content}.`
|
|
268
314
|
}) {
|
|
269
|
-
super({ name:
|
|
270
|
-
this[
|
|
315
|
+
super({ name: name11, message, cause });
|
|
316
|
+
this[_a11] = true;
|
|
271
317
|
this.content = content;
|
|
272
318
|
}
|
|
273
319
|
static isInstance(error) {
|
|
274
|
-
return
|
|
320
|
+
return AISDKError13.hasMarker(error, marker11);
|
|
275
321
|
}
|
|
276
322
|
};
|
|
277
|
-
|
|
323
|
+
_a11 = symbol11;
|
|
278
324
|
|
|
279
325
|
// src/prompt/invalid-message-role-error.ts
|
|
280
|
-
import { AISDKError as
|
|
281
|
-
var
|
|
282
|
-
var
|
|
283
|
-
var
|
|
284
|
-
var
|
|
285
|
-
var InvalidMessageRoleError = class extends
|
|
326
|
+
import { AISDKError as AISDKError14 } from "@ai-sdk/provider";
|
|
327
|
+
var name12 = "AI_InvalidMessageRoleError";
|
|
328
|
+
var marker12 = `vercel.ai.error.${name12}`;
|
|
329
|
+
var symbol12 = Symbol.for(marker12);
|
|
330
|
+
var _a12;
|
|
331
|
+
var InvalidMessageRoleError = class extends AISDKError14 {
|
|
286
332
|
constructor({
|
|
287
333
|
role,
|
|
288
334
|
message = `Invalid message role: '${role}'. Must be one of: "system", "user", "assistant", "tool".`
|
|
289
335
|
}) {
|
|
290
|
-
super({ name:
|
|
291
|
-
this[
|
|
336
|
+
super({ name: name12, message });
|
|
337
|
+
this[_a12] = true;
|
|
292
338
|
this.role = role;
|
|
293
339
|
}
|
|
294
340
|
static isInstance(error) {
|
|
295
|
-
return
|
|
341
|
+
return AISDKError14.hasMarker(error, marker12);
|
|
296
342
|
}
|
|
297
343
|
};
|
|
298
|
-
|
|
344
|
+
_a12 = symbol12;
|
|
299
345
|
|
|
300
346
|
// src/prompt/message-conversion-error.ts
|
|
301
|
-
import { AISDKError as
|
|
302
|
-
var
|
|
303
|
-
var
|
|
304
|
-
var
|
|
305
|
-
var
|
|
306
|
-
var MessageConversionError = class extends
|
|
347
|
+
import { AISDKError as AISDKError15 } from "@ai-sdk/provider";
|
|
348
|
+
var name13 = "AI_MessageConversionError";
|
|
349
|
+
var marker13 = `vercel.ai.error.${name13}`;
|
|
350
|
+
var symbol13 = Symbol.for(marker13);
|
|
351
|
+
var _a13;
|
|
352
|
+
var MessageConversionError = class extends AISDKError15 {
|
|
307
353
|
constructor({
|
|
308
354
|
originalMessage,
|
|
309
355
|
message
|
|
310
356
|
}) {
|
|
311
|
-
super({ name:
|
|
312
|
-
this[
|
|
357
|
+
super({ name: name13, message });
|
|
358
|
+
this[_a13] = true;
|
|
313
359
|
this.originalMessage = originalMessage;
|
|
314
360
|
}
|
|
315
361
|
static isInstance(error) {
|
|
316
|
-
return
|
|
362
|
+
return AISDKError15.hasMarker(error, marker13);
|
|
317
363
|
}
|
|
318
364
|
};
|
|
319
|
-
|
|
365
|
+
_a13 = symbol13;
|
|
320
366
|
|
|
321
367
|
// src/error/index.ts
|
|
322
368
|
import { DownloadError } from "@ai-sdk/provider-utils";
|
|
323
369
|
|
|
324
370
|
// src/util/retry-error.ts
|
|
325
|
-
import { AISDKError as
|
|
326
|
-
var
|
|
327
|
-
var
|
|
328
|
-
var
|
|
329
|
-
var
|
|
330
|
-
var RetryError = class extends
|
|
371
|
+
import { AISDKError as AISDKError16 } from "@ai-sdk/provider";
|
|
372
|
+
var name14 = "AI_RetryError";
|
|
373
|
+
var marker14 = `vercel.ai.error.${name14}`;
|
|
374
|
+
var symbol14 = Symbol.for(marker14);
|
|
375
|
+
var _a14;
|
|
376
|
+
var RetryError = class extends AISDKError16 {
|
|
331
377
|
constructor({
|
|
332
378
|
message,
|
|
333
379
|
reason,
|
|
334
380
|
errors
|
|
335
381
|
}) {
|
|
336
|
-
super({ name:
|
|
337
|
-
this[
|
|
382
|
+
super({ name: name14, message });
|
|
383
|
+
this[_a14] = true;
|
|
338
384
|
this.reason = reason;
|
|
339
385
|
this.errors = errors;
|
|
340
386
|
this.lastError = errors[errors.length - 1];
|
|
341
387
|
}
|
|
342
388
|
static isInstance(error) {
|
|
343
|
-
return
|
|
389
|
+
return AISDKError16.hasMarker(error, marker14);
|
|
344
390
|
}
|
|
345
391
|
};
|
|
346
|
-
|
|
392
|
+
_a14 = symbol14;
|
|
347
393
|
|
|
348
394
|
// src/logger/log-warnings.ts
|
|
349
395
|
function formatWarning({
|
|
@@ -606,7 +652,7 @@ function resolveEmbeddingModel(model) {
|
|
|
606
652
|
return getGlobalProvider().embeddingModel(model);
|
|
607
653
|
}
|
|
608
654
|
function resolveTranscriptionModel(model) {
|
|
609
|
-
var
|
|
655
|
+
var _a16, _b;
|
|
610
656
|
if (typeof model !== "string") {
|
|
611
657
|
if (model.specificationVersion !== "v3" && model.specificationVersion !== "v2") {
|
|
612
658
|
const unsupportedModel = model;
|
|
@@ -618,10 +664,10 @@ function resolveTranscriptionModel(model) {
|
|
|
618
664
|
}
|
|
619
665
|
return asTranscriptionModelV3(model);
|
|
620
666
|
}
|
|
621
|
-
return (_b = (
|
|
667
|
+
return (_b = (_a16 = getGlobalProvider()).transcriptionModel) == null ? void 0 : _b.call(_a16, model);
|
|
622
668
|
}
|
|
623
669
|
function resolveSpeechModel(model) {
|
|
624
|
-
var
|
|
670
|
+
var _a16, _b;
|
|
625
671
|
if (typeof model !== "string") {
|
|
626
672
|
if (model.specificationVersion !== "v3" && model.specificationVersion !== "v2") {
|
|
627
673
|
const unsupportedModel = model;
|
|
@@ -633,7 +679,7 @@ function resolveSpeechModel(model) {
|
|
|
633
679
|
}
|
|
634
680
|
return asSpeechModelV3(model);
|
|
635
681
|
}
|
|
636
|
-
return (_b = (
|
|
682
|
+
return (_b = (_a16 = getGlobalProvider()).speechModel) == null ? void 0 : _b.call(_a16, model);
|
|
637
683
|
}
|
|
638
684
|
function resolveImageModel(model) {
|
|
639
685
|
if (typeof model !== "string") {
|
|
@@ -650,8 +696,8 @@ function resolveImageModel(model) {
|
|
|
650
696
|
return getGlobalProvider().imageModel(model);
|
|
651
697
|
}
|
|
652
698
|
function getGlobalProvider() {
|
|
653
|
-
var
|
|
654
|
-
return (
|
|
699
|
+
var _a16;
|
|
700
|
+
return (_a16 = globalThis.AI_SDK_DEFAULT_PROVIDER) != null ? _a16 : gateway;
|
|
655
701
|
}
|
|
656
702
|
|
|
657
703
|
// src/prompt/convert-to-language-model-prompt.ts
|
|
@@ -852,11 +898,11 @@ import {
|
|
|
852
898
|
} from "@ai-sdk/provider-utils";
|
|
853
899
|
|
|
854
900
|
// src/version.ts
|
|
855
|
-
var VERSION = true ? "6.0.
|
|
901
|
+
var VERSION = true ? "6.0.3" : "0.0.0-test";
|
|
856
902
|
|
|
857
903
|
// src/util/download/download.ts
|
|
858
904
|
var download = async ({ url }) => {
|
|
859
|
-
var
|
|
905
|
+
var _a16;
|
|
860
906
|
const urlText = url.toString();
|
|
861
907
|
try {
|
|
862
908
|
const response = await fetch(urlText, {
|
|
@@ -875,7 +921,7 @@ var download = async ({ url }) => {
|
|
|
875
921
|
}
|
|
876
922
|
return {
|
|
877
923
|
data: new Uint8Array(await response.arrayBuffer()),
|
|
878
|
-
mediaType: (
|
|
924
|
+
mediaType: (_a16 = response.headers.get("content-type")) != null ? _a16 : void 0
|
|
879
925
|
};
|
|
880
926
|
} catch (error) {
|
|
881
927
|
if (DownloadError2.isInstance(error)) {
|
|
@@ -893,7 +939,7 @@ var createDefaultDownloadFunction = (download2 = download) => (requestedDownload
|
|
|
893
939
|
);
|
|
894
940
|
|
|
895
941
|
// src/prompt/data-content.ts
|
|
896
|
-
import { AISDKError as
|
|
942
|
+
import { AISDKError as AISDKError18 } from "@ai-sdk/provider";
|
|
897
943
|
import {
|
|
898
944
|
convertBase64ToUint8Array as convertBase64ToUint8Array2,
|
|
899
945
|
convertUint8ArrayToBase64
|
|
@@ -924,8 +970,8 @@ var dataContentSchema = z.union([
|
|
|
924
970
|
z.custom(
|
|
925
971
|
// Buffer might not be available in some environments such as CloudFlare:
|
|
926
972
|
(value) => {
|
|
927
|
-
var
|
|
928
|
-
return (_b = (
|
|
973
|
+
var _a16, _b;
|
|
974
|
+
return (_b = (_a16 = globalThis.Buffer) == null ? void 0 : _a16.isBuffer(value)) != null ? _b : false;
|
|
929
975
|
},
|
|
930
976
|
{ message: "Must be a Buffer" }
|
|
931
977
|
)
|
|
@@ -948,7 +994,7 @@ function convertToLanguageModelV3DataContent(content) {
|
|
|
948
994
|
content.toString()
|
|
949
995
|
);
|
|
950
996
|
if (dataUrlMediaType == null || base64Content == null) {
|
|
951
|
-
throw new
|
|
997
|
+
throw new AISDKError18({
|
|
952
998
|
name: "InvalidDataContentError",
|
|
953
999
|
message: `Invalid data URL format in content ${content.toString()}`
|
|
954
1000
|
});
|
|
@@ -1126,13 +1172,30 @@ function convertToLanguageModelMessage({
|
|
|
1126
1172
|
case "tool": {
|
|
1127
1173
|
return {
|
|
1128
1174
|
role: "tool",
|
|
1129
|
-
content: message.content.filter(
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1175
|
+
content: message.content.filter(
|
|
1176
|
+
// Only include tool-approval-response for provider-executed tools
|
|
1177
|
+
(part) => part.type !== "tool-approval-response" || part.providerExecuted
|
|
1178
|
+
).map((part) => {
|
|
1179
|
+
switch (part.type) {
|
|
1180
|
+
case "tool-result": {
|
|
1181
|
+
return {
|
|
1182
|
+
type: "tool-result",
|
|
1183
|
+
toolCallId: part.toolCallId,
|
|
1184
|
+
toolName: part.toolName,
|
|
1185
|
+
output: mapToolResultOutput(part.output),
|
|
1186
|
+
providerOptions: part.providerOptions
|
|
1187
|
+
};
|
|
1188
|
+
}
|
|
1189
|
+
case "tool-approval-response": {
|
|
1190
|
+
return {
|
|
1191
|
+
type: "tool-approval-response",
|
|
1192
|
+
approvalId: part.approvalId,
|
|
1193
|
+
approved: part.approved,
|
|
1194
|
+
reason: part.reason
|
|
1195
|
+
};
|
|
1196
|
+
}
|
|
1197
|
+
}
|
|
1198
|
+
}),
|
|
1136
1199
|
providerOptions: message.providerOptions
|
|
1137
1200
|
};
|
|
1138
1201
|
}
|
|
@@ -1148,8 +1211,8 @@ async function downloadAssets(messages, download2, supportedUrls) {
|
|
|
1148
1211
|
).flat().filter(
|
|
1149
1212
|
(part) => part.type === "image" || part.type === "file"
|
|
1150
1213
|
).map((part) => {
|
|
1151
|
-
var
|
|
1152
|
-
const mediaType = (
|
|
1214
|
+
var _a16;
|
|
1215
|
+
const mediaType = (_a16 = part.mediaType) != null ? _a16 : part.type === "image" ? "image/*" : void 0;
|
|
1153
1216
|
let data = part.type === "image" ? part.image : part.data;
|
|
1154
1217
|
if (typeof data === "string") {
|
|
1155
1218
|
try {
|
|
@@ -1179,7 +1242,7 @@ async function downloadAssets(messages, download2, supportedUrls) {
|
|
|
1179
1242
|
);
|
|
1180
1243
|
}
|
|
1181
1244
|
function convertPartToLanguageModelPart(part, downloadedAssets) {
|
|
1182
|
-
var
|
|
1245
|
+
var _a16;
|
|
1183
1246
|
if (part.type === "text") {
|
|
1184
1247
|
return {
|
|
1185
1248
|
type: "text",
|
|
@@ -1212,7 +1275,7 @@ function convertPartToLanguageModelPart(part, downloadedAssets) {
|
|
|
1212
1275
|
switch (type) {
|
|
1213
1276
|
case "image": {
|
|
1214
1277
|
if (data instanceof Uint8Array || typeof data === "string") {
|
|
1215
|
-
mediaType = (
|
|
1278
|
+
mediaType = (_a16 = detectMediaType({ data, signatures: imageMediaTypeSignatures })) != null ? _a16 : mediaType;
|
|
1216
1279
|
}
|
|
1217
1280
|
return {
|
|
1218
1281
|
type: "file",
|
|
@@ -1400,10 +1463,10 @@ async function prepareToolsAndToolChoice({
|
|
|
1400
1463
|
};
|
|
1401
1464
|
}
|
|
1402
1465
|
const filteredTools = activeTools != null ? Object.entries(tools).filter(
|
|
1403
|
-
([
|
|
1466
|
+
([name16]) => activeTools.includes(name16)
|
|
1404
1467
|
) : Object.entries(tools);
|
|
1405
1468
|
const languageModelTools = [];
|
|
1406
|
-
for (const [
|
|
1469
|
+
for (const [name16, tool2] of filteredTools) {
|
|
1407
1470
|
const toolType = tool2.type;
|
|
1408
1471
|
switch (toolType) {
|
|
1409
1472
|
case void 0:
|
|
@@ -1411,7 +1474,7 @@ async function prepareToolsAndToolChoice({
|
|
|
1411
1474
|
case "function":
|
|
1412
1475
|
languageModelTools.push({
|
|
1413
1476
|
type: "function",
|
|
1414
|
-
name:
|
|
1477
|
+
name: name16,
|
|
1415
1478
|
description: tool2.description,
|
|
1416
1479
|
inputSchema: await asSchema(tool2.inputSchema).jsonSchema,
|
|
1417
1480
|
...tool2.inputExamples != null ? { inputExamples: tool2.inputExamples } : {},
|
|
@@ -1422,7 +1485,7 @@ async function prepareToolsAndToolChoice({
|
|
|
1422
1485
|
case "provider":
|
|
1423
1486
|
languageModelTools.push({
|
|
1424
1487
|
type: "provider",
|
|
1425
|
-
name:
|
|
1488
|
+
name: name16,
|
|
1426
1489
|
id: tool2.id,
|
|
1427
1490
|
args: tool2.args
|
|
1428
1491
|
});
|
|
@@ -1712,14 +1775,14 @@ async function standardizePrompt(prompt) {
|
|
|
1712
1775
|
|
|
1713
1776
|
// src/prompt/wrap-gateway-error.ts
|
|
1714
1777
|
import { GatewayAuthenticationError } from "@ai-sdk/gateway";
|
|
1715
|
-
import { AISDKError as
|
|
1778
|
+
import { AISDKError as AISDKError19 } from "@ai-sdk/provider";
|
|
1716
1779
|
function wrapGatewayError(error) {
|
|
1717
1780
|
if (!GatewayAuthenticationError.isInstance(error))
|
|
1718
1781
|
return error;
|
|
1719
1782
|
const isProductionEnv = (process == null ? void 0 : process.env.NODE_ENV) === "production";
|
|
1720
1783
|
const moreInfoURL = "https://ai-sdk.dev/unauthenticated-ai-gateway";
|
|
1721
1784
|
if (isProductionEnv) {
|
|
1722
|
-
return new
|
|
1785
|
+
return new AISDKError19({
|
|
1723
1786
|
name: "GatewayError",
|
|
1724
1787
|
message: `Unauthenticated. Configure AI_GATEWAY_API_KEY or use a provider module. Learn more: ${moreInfoURL}`
|
|
1725
1788
|
});
|
|
@@ -1760,7 +1823,7 @@ function getBaseTelemetryAttributes({
|
|
|
1760
1823
|
telemetry,
|
|
1761
1824
|
headers
|
|
1762
1825
|
}) {
|
|
1763
|
-
var
|
|
1826
|
+
var _a16;
|
|
1764
1827
|
return {
|
|
1765
1828
|
"ai.model.provider": model.provider,
|
|
1766
1829
|
"ai.model.id": model.modelId,
|
|
@@ -1770,7 +1833,7 @@ function getBaseTelemetryAttributes({
|
|
|
1770
1833
|
return attributes;
|
|
1771
1834
|
}, {}),
|
|
1772
1835
|
// add metadata as attributes:
|
|
1773
|
-
...Object.entries((
|
|
1836
|
+
...Object.entries((_a16 = telemetry == null ? void 0 : telemetry.metadata) != null ? _a16 : {}).reduce(
|
|
1774
1837
|
(attributes, [key, value]) => {
|
|
1775
1838
|
attributes[`ai.telemetry.metadata.${key}`] = value;
|
|
1776
1839
|
return attributes;
|
|
@@ -1795,7 +1858,7 @@ var noopTracer = {
|
|
|
1795
1858
|
startSpan() {
|
|
1796
1859
|
return noopSpan;
|
|
1797
1860
|
},
|
|
1798
|
-
startActiveSpan(
|
|
1861
|
+
startActiveSpan(name16, arg1, arg2, arg3) {
|
|
1799
1862
|
if (typeof arg1 === "function") {
|
|
1800
1863
|
return arg1(noopSpan);
|
|
1801
1864
|
}
|
|
@@ -1865,14 +1928,14 @@ function getTracer({
|
|
|
1865
1928
|
// src/telemetry/record-span.ts
|
|
1866
1929
|
import { SpanStatusCode } from "@opentelemetry/api";
|
|
1867
1930
|
async function recordSpan({
|
|
1868
|
-
name:
|
|
1931
|
+
name: name16,
|
|
1869
1932
|
tracer,
|
|
1870
1933
|
attributes,
|
|
1871
1934
|
fn,
|
|
1872
1935
|
endWhenDone = true
|
|
1873
1936
|
}) {
|
|
1874
1937
|
return tracer.startActiveSpan(
|
|
1875
|
-
|
|
1938
|
+
name16,
|
|
1876
1939
|
{ attributes: await attributes },
|
|
1877
1940
|
async (span) => {
|
|
1878
1941
|
try {
|
|
@@ -2002,12 +2065,12 @@ function createNullLanguageModelUsage() {
|
|
|
2002
2065
|
};
|
|
2003
2066
|
}
|
|
2004
2067
|
function addLanguageModelUsage(usage1, usage2) {
|
|
2005
|
-
var
|
|
2068
|
+
var _a16, _b, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
2006
2069
|
return {
|
|
2007
2070
|
inputTokens: addTokenCounts(usage1.inputTokens, usage2.inputTokens),
|
|
2008
2071
|
inputTokenDetails: {
|
|
2009
2072
|
noCacheTokens: addTokenCounts(
|
|
2010
|
-
(
|
|
2073
|
+
(_a16 = usage1.inputTokenDetails) == null ? void 0 : _a16.noCacheTokens,
|
|
2011
2074
|
(_b = usage2.inputTokenDetails) == null ? void 0 : _b.noCacheTokens
|
|
2012
2075
|
),
|
|
2013
2076
|
cacheReadTokens: addTokenCounts(
|
|
@@ -2260,13 +2323,25 @@ function collectToolApprovals({
|
|
|
2260
2323
|
);
|
|
2261
2324
|
for (const approvalResponse of approvalResponses) {
|
|
2262
2325
|
const approvalRequest = toolApprovalRequestsByApprovalId[approvalResponse.approvalId];
|
|
2326
|
+
if (approvalRequest == null) {
|
|
2327
|
+
throw new InvalidToolApprovalError({
|
|
2328
|
+
approvalId: approvalResponse.approvalId
|
|
2329
|
+
});
|
|
2330
|
+
}
|
|
2263
2331
|
if (toolResults[approvalRequest.toolCallId] != null) {
|
|
2264
2332
|
continue;
|
|
2265
2333
|
}
|
|
2334
|
+
const toolCall = toolCallsByToolCallId[approvalRequest.toolCallId];
|
|
2335
|
+
if (toolCall == null) {
|
|
2336
|
+
throw new ToolCallNotFoundForApprovalError({
|
|
2337
|
+
toolCallId: approvalRequest.toolCallId,
|
|
2338
|
+
approvalId: approvalRequest.approvalId
|
|
2339
|
+
});
|
|
2340
|
+
}
|
|
2266
2341
|
const approval = {
|
|
2267
2342
|
approvalRequest,
|
|
2268
2343
|
approvalResponse,
|
|
2269
|
-
toolCall
|
|
2344
|
+
toolCall
|
|
2270
2345
|
};
|
|
2271
2346
|
if (approvalResponse.approved) {
|
|
2272
2347
|
approvedToolApprovals.push(approval);
|
|
@@ -2810,7 +2885,7 @@ var text = () => ({
|
|
|
2810
2885
|
});
|
|
2811
2886
|
var object = ({
|
|
2812
2887
|
schema: inputSchema,
|
|
2813
|
-
name:
|
|
2888
|
+
name: name16,
|
|
2814
2889
|
description
|
|
2815
2890
|
}) => {
|
|
2816
2891
|
const schema = asSchema2(inputSchema);
|
|
@@ -2818,7 +2893,7 @@ var object = ({
|
|
|
2818
2893
|
responseFormat: resolve(schema.jsonSchema).then((jsonSchema2) => ({
|
|
2819
2894
|
type: "json",
|
|
2820
2895
|
schema: jsonSchema2,
|
|
2821
|
-
...
|
|
2896
|
+
...name16 != null && { name: name16 },
|
|
2822
2897
|
...description != null && { description }
|
|
2823
2898
|
})),
|
|
2824
2899
|
async parseCompleteOutput({ text: text2 }, context) {
|
|
@@ -2869,7 +2944,7 @@ var object = ({
|
|
|
2869
2944
|
};
|
|
2870
2945
|
var array = ({
|
|
2871
2946
|
element: inputElementSchema,
|
|
2872
|
-
name:
|
|
2947
|
+
name: name16,
|
|
2873
2948
|
description
|
|
2874
2949
|
}) => {
|
|
2875
2950
|
const elementSchema = asSchema2(inputElementSchema);
|
|
@@ -2888,7 +2963,7 @@ var array = ({
|
|
|
2888
2963
|
required: ["elements"],
|
|
2889
2964
|
additionalProperties: false
|
|
2890
2965
|
},
|
|
2891
|
-
...
|
|
2966
|
+
...name16 != null && { name: name16 },
|
|
2892
2967
|
...description != null && { description }
|
|
2893
2968
|
};
|
|
2894
2969
|
}),
|
|
@@ -2968,7 +3043,7 @@ var array = ({
|
|
|
2968
3043
|
};
|
|
2969
3044
|
var choice = ({
|
|
2970
3045
|
options: choiceOptions,
|
|
2971
|
-
name:
|
|
3046
|
+
name: name16,
|
|
2972
3047
|
description
|
|
2973
3048
|
}) => {
|
|
2974
3049
|
return {
|
|
@@ -2984,7 +3059,7 @@ var choice = ({
|
|
|
2984
3059
|
required: ["result"],
|
|
2985
3060
|
additionalProperties: false
|
|
2986
3061
|
},
|
|
2987
|
-
...
|
|
3062
|
+
...name16 != null && { name: name16 },
|
|
2988
3063
|
...description != null && { description }
|
|
2989
3064
|
}),
|
|
2990
3065
|
async parseCompleteOutput({ text: text2 }, context) {
|
|
@@ -3042,13 +3117,13 @@ var choice = ({
|
|
|
3042
3117
|
};
|
|
3043
3118
|
};
|
|
3044
3119
|
var json = ({
|
|
3045
|
-
name:
|
|
3120
|
+
name: name16,
|
|
3046
3121
|
description
|
|
3047
3122
|
} = {}) => {
|
|
3048
3123
|
return {
|
|
3049
3124
|
responseFormat: Promise.resolve({
|
|
3050
3125
|
type: "json",
|
|
3051
|
-
...
|
|
3126
|
+
...name16 != null && { name: name16 },
|
|
3052
3127
|
...description != null && { description }
|
|
3053
3128
|
}),
|
|
3054
3129
|
async parseCompleteOutput({ text: text2 }, context) {
|
|
@@ -3094,7 +3169,7 @@ async function parseToolCall({
|
|
|
3094
3169
|
system,
|
|
3095
3170
|
messages
|
|
3096
3171
|
}) {
|
|
3097
|
-
var
|
|
3172
|
+
var _a16;
|
|
3098
3173
|
try {
|
|
3099
3174
|
if (tools == null) {
|
|
3100
3175
|
if (toolCall.providerExecuted && toolCall.dynamic) {
|
|
@@ -3143,7 +3218,7 @@ async function parseToolCall({
|
|
|
3143
3218
|
dynamic: true,
|
|
3144
3219
|
invalid: true,
|
|
3145
3220
|
error,
|
|
3146
|
-
title: (
|
|
3221
|
+
title: (_a16 = tools == null ? void 0 : tools[toolCall.toolName]) == null ? void 0 : _a16.title,
|
|
3147
3222
|
providerExecuted: toolCall.providerExecuted,
|
|
3148
3223
|
providerMetadata: toolCall.providerMetadata
|
|
3149
3224
|
};
|
|
@@ -3282,8 +3357,8 @@ function stepCountIs(stepCount) {
|
|
|
3282
3357
|
}
|
|
3283
3358
|
function hasToolCall(toolName) {
|
|
3284
3359
|
return ({ steps }) => {
|
|
3285
|
-
var
|
|
3286
|
-
return (_c = (_b = (
|
|
3360
|
+
var _a16, _b, _c;
|
|
3361
|
+
return (_c = (_b = (_a16 = steps[steps.length - 1]) == null ? void 0 : _a16.toolCalls) == null ? void 0 : _b.some(
|
|
3287
3362
|
(toolCall) => toolCall.toolName === toolName
|
|
3288
3363
|
)) != null ? _c : false;
|
|
3289
3364
|
};
|
|
@@ -3303,7 +3378,13 @@ async function toResponseMessages({
|
|
|
3303
3378
|
const responseMessages = [];
|
|
3304
3379
|
const content = [];
|
|
3305
3380
|
for (const part of inputContent) {
|
|
3306
|
-
if (part.type === "source"
|
|
3381
|
+
if (part.type === "source") {
|
|
3382
|
+
continue;
|
|
3383
|
+
}
|
|
3384
|
+
if ((part.type === "tool-result" || part.type === "tool-error") && !part.providerExecuted) {
|
|
3385
|
+
continue;
|
|
3386
|
+
}
|
|
3387
|
+
if (part.type === "text" && part.text.length === 0) {
|
|
3307
3388
|
continue;
|
|
3308
3389
|
}
|
|
3309
3390
|
switch (part.type) {
|
|
@@ -3497,13 +3578,16 @@ async function generateText({
|
|
|
3497
3578
|
}),
|
|
3498
3579
|
tracer,
|
|
3499
3580
|
fn: async (span) => {
|
|
3500
|
-
var
|
|
3581
|
+
var _a16, _b, _c, _d, _e, _f, _g, _h;
|
|
3501
3582
|
const initialMessages = initialPrompt.messages;
|
|
3502
3583
|
const responseMessages = [];
|
|
3503
3584
|
const { approvedToolApprovals, deniedToolApprovals } = collectToolApprovals({ messages: initialMessages });
|
|
3504
|
-
|
|
3585
|
+
const localApprovedToolApprovals = approvedToolApprovals.filter(
|
|
3586
|
+
(toolApproval) => !toolApproval.toolCall.providerExecuted
|
|
3587
|
+
);
|
|
3588
|
+
if (deniedToolApprovals.length > 0 || localApprovedToolApprovals.length > 0) {
|
|
3505
3589
|
const toolOutputs = await executeTools({
|
|
3506
|
-
toolCalls:
|
|
3590
|
+
toolCalls: localApprovedToolApprovals.map(
|
|
3507
3591
|
(toolApproval) => toolApproval.toolCall
|
|
3508
3592
|
),
|
|
3509
3593
|
tools,
|
|
@@ -3536,7 +3620,15 @@ async function generateText({
|
|
|
3536
3620
|
toolName: toolApproval.toolCall.toolName,
|
|
3537
3621
|
output: {
|
|
3538
3622
|
type: "execution-denied",
|
|
3539
|
-
reason: toolApproval.approvalResponse.reason
|
|
3623
|
+
reason: toolApproval.approvalResponse.reason,
|
|
3624
|
+
// For provider-executed tools, include approvalId so provider can correlate
|
|
3625
|
+
...toolApproval.toolCall.providerExecuted && {
|
|
3626
|
+
providerOptions: {
|
|
3627
|
+
openai: {
|
|
3628
|
+
approvalId: toolApproval.approvalResponse.approvalId
|
|
3629
|
+
}
|
|
3630
|
+
}
|
|
3631
|
+
}
|
|
3540
3632
|
}
|
|
3541
3633
|
});
|
|
3542
3634
|
}
|
|
@@ -3545,6 +3637,24 @@ async function generateText({
|
|
|
3545
3637
|
content: toolContent
|
|
3546
3638
|
});
|
|
3547
3639
|
}
|
|
3640
|
+
const providerExecutedToolApprovals = [
|
|
3641
|
+
...approvedToolApprovals,
|
|
3642
|
+
...deniedToolApprovals
|
|
3643
|
+
].filter((toolApproval) => toolApproval.toolCall.providerExecuted);
|
|
3644
|
+
if (providerExecutedToolApprovals.length > 0) {
|
|
3645
|
+
responseMessages.push({
|
|
3646
|
+
role: "tool",
|
|
3647
|
+
content: providerExecutedToolApprovals.map(
|
|
3648
|
+
(toolApproval) => ({
|
|
3649
|
+
type: "tool-approval-response",
|
|
3650
|
+
approvalId: toolApproval.approvalResponse.approvalId,
|
|
3651
|
+
approved: toolApproval.approvalResponse.approved,
|
|
3652
|
+
reason: toolApproval.approvalResponse.reason,
|
|
3653
|
+
providerExecuted: true
|
|
3654
|
+
})
|
|
3655
|
+
)
|
|
3656
|
+
});
|
|
3657
|
+
}
|
|
3548
3658
|
const callSettings2 = prepareCallSettings(settings);
|
|
3549
3659
|
let currentModelResponse;
|
|
3550
3660
|
let clientToolCalls = [];
|
|
@@ -3561,7 +3671,7 @@ async function generateText({
|
|
|
3561
3671
|
experimental_context
|
|
3562
3672
|
}));
|
|
3563
3673
|
const stepModel = resolveLanguageModel(
|
|
3564
|
-
(
|
|
3674
|
+
(_a16 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a16 : model
|
|
3565
3675
|
);
|
|
3566
3676
|
const promptMessages = await convertToLanguageModelPrompt({
|
|
3567
3677
|
prompt: {
|
|
@@ -3579,7 +3689,7 @@ async function generateText({
|
|
|
3579
3689
|
});
|
|
3580
3690
|
currentModelResponse = await retry(
|
|
3581
3691
|
() => {
|
|
3582
|
-
var
|
|
3692
|
+
var _a17;
|
|
3583
3693
|
return recordSpan({
|
|
3584
3694
|
name: "ai.generateText.doGenerate",
|
|
3585
3695
|
attributes: selectTelemetryAttributes({
|
|
@@ -3611,14 +3721,14 @@ async function generateText({
|
|
|
3611
3721
|
"gen_ai.request.max_tokens": settings.maxOutputTokens,
|
|
3612
3722
|
"gen_ai.request.presence_penalty": settings.presencePenalty,
|
|
3613
3723
|
"gen_ai.request.stop_sequences": settings.stopSequences,
|
|
3614
|
-
"gen_ai.request.temperature": (
|
|
3724
|
+
"gen_ai.request.temperature": (_a17 = settings.temperature) != null ? _a17 : void 0,
|
|
3615
3725
|
"gen_ai.request.top_k": settings.topK,
|
|
3616
3726
|
"gen_ai.request.top_p": settings.topP
|
|
3617
3727
|
}
|
|
3618
3728
|
}),
|
|
3619
3729
|
tracer,
|
|
3620
3730
|
fn: async (span2) => {
|
|
3621
|
-
var
|
|
3731
|
+
var _a18, _b2, _c2, _d2, _e2, _f2, _g2, _h2;
|
|
3622
3732
|
const stepProviderOptions = mergeObjects(
|
|
3623
3733
|
providerOptions,
|
|
3624
3734
|
prepareStepResult == null ? void 0 : prepareStepResult.providerOptions
|
|
@@ -3634,7 +3744,7 @@ async function generateText({
|
|
|
3634
3744
|
headers: headersWithUserAgent
|
|
3635
3745
|
});
|
|
3636
3746
|
const responseData = {
|
|
3637
|
-
id: (_b2 = (
|
|
3747
|
+
id: (_b2 = (_a18 = result.response) == null ? void 0 : _a18.id) != null ? _b2 : generateId2(),
|
|
3638
3748
|
timestamp: (_d2 = (_c2 = result.response) == null ? void 0 : _c2.timestamp) != null ? _d2 : currentDate(),
|
|
3639
3749
|
modelId: (_f2 = (_e2 = result.response) == null ? void 0 : _e2.modelId) != null ? _f2 : stepModel.modelId,
|
|
3640
3750
|
headers: (_g2 = result.response) == null ? void 0 : _g2.headers,
|
|
@@ -4100,6 +4210,20 @@ function asContent({
|
|
|
4100
4210
|
break;
|
|
4101
4211
|
}
|
|
4102
4212
|
case "tool-approval-request": {
|
|
4213
|
+
const toolCall = toolCalls.find(
|
|
4214
|
+
(toolCall2) => toolCall2.toolCallId === part.toolCallId
|
|
4215
|
+
);
|
|
4216
|
+
if (toolCall == null) {
|
|
4217
|
+
throw new ToolCallNotFoundForApprovalError({
|
|
4218
|
+
toolCallId: part.toolCallId,
|
|
4219
|
+
approvalId: part.approvalId
|
|
4220
|
+
});
|
|
4221
|
+
}
|
|
4222
|
+
contentParts.push({
|
|
4223
|
+
type: "tool-approval-request",
|
|
4224
|
+
approvalId: part.approvalId,
|
|
4225
|
+
toolCall
|
|
4226
|
+
});
|
|
4103
4227
|
break;
|
|
4104
4228
|
}
|
|
4105
4229
|
}
|
|
@@ -4492,7 +4616,7 @@ function processUIMessageStream({
|
|
|
4492
4616
|
new TransformStream({
|
|
4493
4617
|
async transform(chunk, controller) {
|
|
4494
4618
|
await runUpdateMessageJob(async ({ state, write }) => {
|
|
4495
|
-
var
|
|
4619
|
+
var _a16, _b, _c, _d;
|
|
4496
4620
|
function getToolInvocation(toolCallId) {
|
|
4497
4621
|
const toolInvocations = state.message.parts.filter(isToolUIPart);
|
|
4498
4622
|
const toolInvocation = toolInvocations.find(
|
|
@@ -4506,7 +4630,7 @@ function processUIMessageStream({
|
|
|
4506
4630
|
return toolInvocation;
|
|
4507
4631
|
}
|
|
4508
4632
|
function updateToolPart(options) {
|
|
4509
|
-
var
|
|
4633
|
+
var _a17;
|
|
4510
4634
|
const part = state.message.parts.find(
|
|
4511
4635
|
(part2) => isStaticToolUIPart(part2) && part2.toolCallId === options.toolCallId
|
|
4512
4636
|
);
|
|
@@ -4522,7 +4646,7 @@ function processUIMessageStream({
|
|
|
4522
4646
|
if (options.title !== void 0) {
|
|
4523
4647
|
anyPart.title = options.title;
|
|
4524
4648
|
}
|
|
4525
|
-
anyPart.providerExecuted = (
|
|
4649
|
+
anyPart.providerExecuted = (_a17 = anyOptions.providerExecuted) != null ? _a17 : part.providerExecuted;
|
|
4526
4650
|
if (anyOptions.providerMetadata != null && part.state === "input-available") {
|
|
4527
4651
|
part.callProviderMetadata = anyOptions.providerMetadata;
|
|
4528
4652
|
}
|
|
@@ -4543,7 +4667,7 @@ function processUIMessageStream({
|
|
|
4543
4667
|
}
|
|
4544
4668
|
}
|
|
4545
4669
|
function updateDynamicToolPart(options) {
|
|
4546
|
-
var
|
|
4670
|
+
var _a17, _b2;
|
|
4547
4671
|
const part = state.message.parts.find(
|
|
4548
4672
|
(part2) => part2.type === "dynamic-tool" && part2.toolCallId === options.toolCallId
|
|
4549
4673
|
);
|
|
@@ -4555,7 +4679,7 @@ function processUIMessageStream({
|
|
|
4555
4679
|
anyPart.input = anyOptions.input;
|
|
4556
4680
|
anyPart.output = anyOptions.output;
|
|
4557
4681
|
anyPart.errorText = anyOptions.errorText;
|
|
4558
|
-
anyPart.rawInput = (
|
|
4682
|
+
anyPart.rawInput = (_a17 = anyOptions.rawInput) != null ? _a17 : anyPart.rawInput;
|
|
4559
4683
|
anyPart.preliminary = anyOptions.preliminary;
|
|
4560
4684
|
if (options.title !== void 0) {
|
|
4561
4685
|
anyPart.title = options.title;
|
|
@@ -4608,7 +4732,7 @@ function processUIMessageStream({
|
|
|
4608
4732
|
case "text-delta": {
|
|
4609
4733
|
const textPart = state.activeTextParts[chunk.id];
|
|
4610
4734
|
textPart.text += chunk.delta;
|
|
4611
|
-
textPart.providerMetadata = (
|
|
4735
|
+
textPart.providerMetadata = (_a16 = chunk.providerMetadata) != null ? _a16 : textPart.providerMetadata;
|
|
4612
4736
|
write();
|
|
4613
4737
|
break;
|
|
4614
4738
|
}
|
|
@@ -5047,11 +5171,11 @@ function createAsyncIterableStream(source) {
|
|
|
5047
5171
|
const reader = this.getReader();
|
|
5048
5172
|
let finished = false;
|
|
5049
5173
|
async function cleanup(cancelStream) {
|
|
5050
|
-
var
|
|
5174
|
+
var _a16;
|
|
5051
5175
|
finished = true;
|
|
5052
5176
|
try {
|
|
5053
5177
|
if (cancelStream) {
|
|
5054
|
-
await ((
|
|
5178
|
+
await ((_a16 = reader.cancel) == null ? void 0 : _a16.call(reader));
|
|
5055
5179
|
}
|
|
5056
5180
|
} finally {
|
|
5057
5181
|
try {
|
|
@@ -5217,8 +5341,8 @@ function createStitchableStream() {
|
|
|
5217
5341
|
|
|
5218
5342
|
// src/util/now.ts
|
|
5219
5343
|
function now() {
|
|
5220
|
-
var
|
|
5221
|
-
return (_b = (
|
|
5344
|
+
var _a16, _b;
|
|
5345
|
+
return (_b = (_a16 = globalThis == null ? void 0 : globalThis.performance) == null ? void 0 : _a16.now()) != null ? _b : Date.now();
|
|
5222
5346
|
}
|
|
5223
5347
|
|
|
5224
5348
|
// src/generate-text/run-tools-transformation.ts
|
|
@@ -5245,6 +5369,7 @@ function runToolsTransformation({
|
|
|
5245
5369
|
});
|
|
5246
5370
|
const outstandingToolResults = /* @__PURE__ */ new Set();
|
|
5247
5371
|
const toolInputs = /* @__PURE__ */ new Map();
|
|
5372
|
+
const toolCallsByToolCallId = /* @__PURE__ */ new Map();
|
|
5248
5373
|
let canClose = false;
|
|
5249
5374
|
let finishChunk = void 0;
|
|
5250
5375
|
function attemptClose() {
|
|
@@ -5296,6 +5421,25 @@ function runToolsTransformation({
|
|
|
5296
5421
|
};
|
|
5297
5422
|
break;
|
|
5298
5423
|
}
|
|
5424
|
+
case "tool-approval-request": {
|
|
5425
|
+
const toolCall = toolCallsByToolCallId.get(chunk.toolCallId);
|
|
5426
|
+
if (toolCall == null) {
|
|
5427
|
+
toolResultsStreamController.enqueue({
|
|
5428
|
+
type: "error",
|
|
5429
|
+
error: new ToolCallNotFoundForApprovalError({
|
|
5430
|
+
toolCallId: chunk.toolCallId,
|
|
5431
|
+
approvalId: chunk.approvalId
|
|
5432
|
+
})
|
|
5433
|
+
});
|
|
5434
|
+
break;
|
|
5435
|
+
}
|
|
5436
|
+
controller.enqueue({
|
|
5437
|
+
type: "tool-approval-request",
|
|
5438
|
+
approvalId: chunk.approvalId,
|
|
5439
|
+
toolCall
|
|
5440
|
+
});
|
|
5441
|
+
break;
|
|
5442
|
+
}
|
|
5299
5443
|
case "tool-call": {
|
|
5300
5444
|
try {
|
|
5301
5445
|
const toolCall = await parseToolCall({
|
|
@@ -5305,6 +5449,7 @@ function runToolsTransformation({
|
|
|
5305
5449
|
system,
|
|
5306
5450
|
messages
|
|
5307
5451
|
});
|
|
5452
|
+
toolCallsByToolCallId.set(toolCall.toolCallId, toolCall);
|
|
5308
5453
|
controller.enqueue(toolCall);
|
|
5309
5454
|
if (toolCall.invalid) {
|
|
5310
5455
|
toolResultsStreamController.enqueue({
|
|
@@ -5395,9 +5540,6 @@ function runToolsTransformation({
|
|
|
5395
5540
|
}
|
|
5396
5541
|
break;
|
|
5397
5542
|
}
|
|
5398
|
-
case "tool-approval-request": {
|
|
5399
|
-
break;
|
|
5400
|
-
}
|
|
5401
5543
|
default: {
|
|
5402
5544
|
const _exhaustiveCheck = chunkType;
|
|
5403
5545
|
throw new Error(`Unhandled chunk type: ${_exhaustiveCheck}`);
|
|
@@ -5533,7 +5675,7 @@ function createOutputTransformStream(output) {
|
|
|
5533
5675
|
}
|
|
5534
5676
|
return new TransformStream({
|
|
5535
5677
|
async transform(chunk, controller) {
|
|
5536
|
-
var
|
|
5678
|
+
var _a16;
|
|
5537
5679
|
if (chunk.type === "finish-step" && textChunk.length > 0) {
|
|
5538
5680
|
publishTextChunk({ controller });
|
|
5539
5681
|
}
|
|
@@ -5560,7 +5702,7 @@ function createOutputTransformStream(output) {
|
|
|
5560
5702
|
}
|
|
5561
5703
|
text2 += chunk.text;
|
|
5562
5704
|
textChunk += chunk.text;
|
|
5563
|
-
textProviderMetadata = (
|
|
5705
|
+
textProviderMetadata = (_a16 = chunk.providerMetadata) != null ? _a16 : textProviderMetadata;
|
|
5564
5706
|
const result = await output.parsePartialOutput({ text: text2 });
|
|
5565
5707
|
if (result !== void 0) {
|
|
5566
5708
|
const currentJson = JSON.stringify(result.partial);
|
|
@@ -5626,7 +5768,7 @@ var DefaultStreamTextResult = class {
|
|
|
5626
5768
|
let activeReasoningContent = {};
|
|
5627
5769
|
const eventProcessor = new TransformStream({
|
|
5628
5770
|
async transform(chunk, controller) {
|
|
5629
|
-
var
|
|
5771
|
+
var _a16, _b, _c, _d;
|
|
5630
5772
|
controller.enqueue(chunk);
|
|
5631
5773
|
const { part } = chunk;
|
|
5632
5774
|
if (part.type === "text-delta" || part.type === "reasoning-delta" || part.type === "source" || part.type === "tool-call" || part.type === "tool-result" || part.type === "tool-input-start" || part.type === "tool-input-delta" || part.type === "raw") {
|
|
@@ -5656,7 +5798,7 @@ var DefaultStreamTextResult = class {
|
|
|
5656
5798
|
return;
|
|
5657
5799
|
}
|
|
5658
5800
|
activeText.text += part.text;
|
|
5659
|
-
activeText.providerMetadata = (
|
|
5801
|
+
activeText.providerMetadata = (_a16 = part.providerMetadata) != null ? _a16 : activeText.providerMetadata;
|
|
5660
5802
|
}
|
|
5661
5803
|
if (part.type === "text-end") {
|
|
5662
5804
|
const activeText = activeTextContent[part.id];
|
|
@@ -5821,8 +5963,8 @@ var DefaultStreamTextResult = class {
|
|
|
5821
5963
|
"ai.response.text": { output: () => finalStep.text },
|
|
5822
5964
|
"ai.response.toolCalls": {
|
|
5823
5965
|
output: () => {
|
|
5824
|
-
var
|
|
5825
|
-
return ((
|
|
5966
|
+
var _a16;
|
|
5967
|
+
return ((_a16 = finalStep.toolCalls) == null ? void 0 : _a16.length) ? JSON.stringify(finalStep.toolCalls) : void 0;
|
|
5826
5968
|
}
|
|
5827
5969
|
},
|
|
5828
5970
|
"ai.response.providerMetadata": JSON.stringify(
|
|
@@ -5930,6 +6072,19 @@ var DefaultStreamTextResult = class {
|
|
|
5930
6072
|
const initialResponseMessages = [];
|
|
5931
6073
|
const { approvedToolApprovals, deniedToolApprovals } = collectToolApprovals({ messages: initialMessages });
|
|
5932
6074
|
if (deniedToolApprovals.length > 0 || approvedToolApprovals.length > 0) {
|
|
6075
|
+
const providerExecutedToolApprovals = [
|
|
6076
|
+
...approvedToolApprovals,
|
|
6077
|
+
...deniedToolApprovals
|
|
6078
|
+
].filter((toolApproval) => toolApproval.toolCall.providerExecuted);
|
|
6079
|
+
const localApprovedToolApprovals = approvedToolApprovals.filter(
|
|
6080
|
+
(toolApproval) => !toolApproval.toolCall.providerExecuted
|
|
6081
|
+
);
|
|
6082
|
+
const localDeniedToolApprovals = deniedToolApprovals.filter(
|
|
6083
|
+
(toolApproval) => !toolApproval.toolCall.providerExecuted
|
|
6084
|
+
);
|
|
6085
|
+
const deniedProviderExecutedToolApprovals = deniedToolApprovals.filter(
|
|
6086
|
+
(toolApproval) => toolApproval.toolCall.providerExecuted
|
|
6087
|
+
);
|
|
5933
6088
|
let toolExecutionStepStreamController;
|
|
5934
6089
|
const toolExecutionStepStream = new ReadableStream({
|
|
5935
6090
|
start(controller) {
|
|
@@ -5938,7 +6093,10 @@ var DefaultStreamTextResult = class {
|
|
|
5938
6093
|
});
|
|
5939
6094
|
self.addStream(toolExecutionStepStream);
|
|
5940
6095
|
try {
|
|
5941
|
-
for (const toolApproval of
|
|
6096
|
+
for (const toolApproval of [
|
|
6097
|
+
...localDeniedToolApprovals,
|
|
6098
|
+
...deniedProviderExecutedToolApprovals
|
|
6099
|
+
]) {
|
|
5942
6100
|
toolExecutionStepStreamController == null ? void 0 : toolExecutionStepStreamController.enqueue({
|
|
5943
6101
|
type: "tool-output-denied",
|
|
5944
6102
|
toolCallId: toolApproval.toolCall.toolCallId,
|
|
@@ -5947,7 +6105,7 @@ var DefaultStreamTextResult = class {
|
|
|
5947
6105
|
}
|
|
5948
6106
|
const toolOutputs = [];
|
|
5949
6107
|
await Promise.all(
|
|
5950
|
-
|
|
6108
|
+
localApprovedToolApprovals.map(async (toolApproval) => {
|
|
5951
6109
|
const result = await executeToolCall({
|
|
5952
6110
|
toolCall: toolApproval.toolCall,
|
|
5953
6111
|
tools,
|
|
@@ -5966,36 +6124,52 @@ var DefaultStreamTextResult = class {
|
|
|
5966
6124
|
}
|
|
5967
6125
|
})
|
|
5968
6126
|
);
|
|
5969
|
-
|
|
5970
|
-
|
|
5971
|
-
|
|
5972
|
-
|
|
5973
|
-
|
|
5974
|
-
|
|
5975
|
-
|
|
5976
|
-
|
|
5977
|
-
|
|
5978
|
-
|
|
5979
|
-
|
|
5980
|
-
|
|
5981
|
-
})
|
|
6127
|
+
if (providerExecutedToolApprovals.length > 0) {
|
|
6128
|
+
initialResponseMessages.push({
|
|
6129
|
+
role: "tool",
|
|
6130
|
+
content: providerExecutedToolApprovals.map(
|
|
6131
|
+
(toolApproval) => ({
|
|
6132
|
+
type: "tool-approval-response",
|
|
6133
|
+
approvalId: toolApproval.approvalResponse.approvalId,
|
|
6134
|
+
approved: toolApproval.approvalResponse.approved,
|
|
6135
|
+
reason: toolApproval.approvalResponse.reason,
|
|
6136
|
+
providerExecuted: true
|
|
6137
|
+
})
|
|
6138
|
+
)
|
|
5982
6139
|
});
|
|
5983
6140
|
}
|
|
5984
|
-
|
|
5985
|
-
|
|
5986
|
-
|
|
5987
|
-
|
|
5988
|
-
|
|
5989
|
-
|
|
5990
|
-
|
|
5991
|
-
|
|
5992
|
-
|
|
6141
|
+
if (toolOutputs.length > 0 || localDeniedToolApprovals.length > 0) {
|
|
6142
|
+
const localToolContent = [];
|
|
6143
|
+
for (const output2 of toolOutputs) {
|
|
6144
|
+
localToolContent.push({
|
|
6145
|
+
type: "tool-result",
|
|
6146
|
+
toolCallId: output2.toolCallId,
|
|
6147
|
+
toolName: output2.toolName,
|
|
6148
|
+
output: await createToolModelOutput({
|
|
6149
|
+
toolCallId: output2.toolCallId,
|
|
6150
|
+
input: output2.input,
|
|
6151
|
+
tool: tools == null ? void 0 : tools[output2.toolName],
|
|
6152
|
+
output: output2.type === "tool-result" ? output2.output : output2.error,
|
|
6153
|
+
errorMode: output2.type === "tool-error" ? "json" : "none"
|
|
6154
|
+
})
|
|
6155
|
+
});
|
|
6156
|
+
}
|
|
6157
|
+
for (const toolApproval of localDeniedToolApprovals) {
|
|
6158
|
+
localToolContent.push({
|
|
6159
|
+
type: "tool-result",
|
|
6160
|
+
toolCallId: toolApproval.toolCall.toolCallId,
|
|
6161
|
+
toolName: toolApproval.toolCall.toolName,
|
|
6162
|
+
output: {
|
|
6163
|
+
type: "execution-denied",
|
|
6164
|
+
reason: toolApproval.approvalResponse.reason
|
|
6165
|
+
}
|
|
6166
|
+
});
|
|
6167
|
+
}
|
|
6168
|
+
initialResponseMessages.push({
|
|
6169
|
+
role: "tool",
|
|
6170
|
+
content: localToolContent
|
|
5993
6171
|
});
|
|
5994
6172
|
}
|
|
5995
|
-
initialResponseMessages.push({
|
|
5996
|
-
role: "tool",
|
|
5997
|
-
content
|
|
5998
|
-
});
|
|
5999
6173
|
} finally {
|
|
6000
6174
|
toolExecutionStepStreamController == null ? void 0 : toolExecutionStepStreamController.close();
|
|
6001
6175
|
}
|
|
@@ -6006,7 +6180,7 @@ var DefaultStreamTextResult = class {
|
|
|
6006
6180
|
responseMessages,
|
|
6007
6181
|
usage
|
|
6008
6182
|
}) {
|
|
6009
|
-
var
|
|
6183
|
+
var _a16, _b, _c, _d, _e, _f;
|
|
6010
6184
|
const includeRawChunks2 = self.includeRawChunks;
|
|
6011
6185
|
stepFinish = new DelayedPromise();
|
|
6012
6186
|
const stepInputMessages = [...initialMessages, ...responseMessages];
|
|
@@ -6018,7 +6192,7 @@ var DefaultStreamTextResult = class {
|
|
|
6018
6192
|
experimental_context
|
|
6019
6193
|
}));
|
|
6020
6194
|
const stepModel = resolveLanguageModel(
|
|
6021
|
-
(
|
|
6195
|
+
(_a16 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a16 : model
|
|
6022
6196
|
);
|
|
6023
6197
|
const promptMessages = await convertToLanguageModelPrompt({
|
|
6024
6198
|
prompt: {
|
|
@@ -6131,7 +6305,7 @@ var DefaultStreamTextResult = class {
|
|
|
6131
6305
|
streamWithToolResults.pipeThrough(
|
|
6132
6306
|
new TransformStream({
|
|
6133
6307
|
async transform(chunk, controller) {
|
|
6134
|
-
var
|
|
6308
|
+
var _a17, _b2, _c2, _d2, _e2;
|
|
6135
6309
|
if (chunk.type === "stream-start") {
|
|
6136
6310
|
warnings = chunk.warnings;
|
|
6137
6311
|
return;
|
|
@@ -6204,7 +6378,7 @@ var DefaultStreamTextResult = class {
|
|
|
6204
6378
|
}
|
|
6205
6379
|
case "response-metadata": {
|
|
6206
6380
|
stepResponse = {
|
|
6207
|
-
id: (
|
|
6381
|
+
id: (_a17 = chunk.id) != null ? _a17 : stepResponse.id,
|
|
6208
6382
|
timestamp: (_b2 = chunk.timestamp) != null ? _b2 : stepResponse.timestamp,
|
|
6209
6383
|
modelId: (_c2 = chunk.modelId) != null ? _c2 : stepResponse.modelId
|
|
6210
6384
|
};
|
|
@@ -6534,14 +6708,14 @@ var DefaultStreamTextResult = class {
|
|
|
6534
6708
|
);
|
|
6535
6709
|
}
|
|
6536
6710
|
async consumeStream(options) {
|
|
6537
|
-
var
|
|
6711
|
+
var _a16;
|
|
6538
6712
|
try {
|
|
6539
6713
|
await consumeStream({
|
|
6540
6714
|
stream: this.fullStream,
|
|
6541
6715
|
onError: options == null ? void 0 : options.onError
|
|
6542
6716
|
});
|
|
6543
6717
|
} catch (error) {
|
|
6544
|
-
(
|
|
6718
|
+
(_a16 = options == null ? void 0 : options.onError) == null ? void 0 : _a16.call(options, error);
|
|
6545
6719
|
}
|
|
6546
6720
|
}
|
|
6547
6721
|
get experimental_partialOutputStream() {
|
|
@@ -6562,8 +6736,8 @@ var DefaultStreamTextResult = class {
|
|
|
6562
6736
|
}
|
|
6563
6737
|
get output() {
|
|
6564
6738
|
return this.finalStep.then((step) => {
|
|
6565
|
-
var
|
|
6566
|
-
const output = (
|
|
6739
|
+
var _a16;
|
|
6740
|
+
const output = (_a16 = this.outputSpecification) != null ? _a16 : text();
|
|
6567
6741
|
return output.parseCompleteOutput(
|
|
6568
6742
|
{ text: step.text },
|
|
6569
6743
|
{
|
|
@@ -6590,8 +6764,8 @@ var DefaultStreamTextResult = class {
|
|
|
6590
6764
|
responseMessageId: generateMessageId
|
|
6591
6765
|
}) : void 0;
|
|
6592
6766
|
const isDynamic = (part) => {
|
|
6593
|
-
var
|
|
6594
|
-
const tool2 = (
|
|
6767
|
+
var _a16;
|
|
6768
|
+
const tool2 = (_a16 = this.tools) == null ? void 0 : _a16[part.toolName];
|
|
6595
6769
|
if (tool2 == null) {
|
|
6596
6770
|
return part.dynamic;
|
|
6597
6771
|
}
|
|
@@ -6929,10 +7103,10 @@ var ToolLoopAgent = class {
|
|
|
6929
7103
|
return this.settings.tools;
|
|
6930
7104
|
}
|
|
6931
7105
|
async prepareCall(options) {
|
|
6932
|
-
var
|
|
7106
|
+
var _a16, _b, _c, _d;
|
|
6933
7107
|
const baseCallArgs = {
|
|
6934
7108
|
...this.settings,
|
|
6935
|
-
stopWhen: (
|
|
7109
|
+
stopWhen: (_a16 = this.settings.stopWhen) != null ? _a16 : stepCountIs(20),
|
|
6936
7110
|
...options
|
|
6937
7111
|
};
|
|
6938
7112
|
const preparedCallArgs = (_d = await ((_c = (_b = this.settings).prepareCall) == null ? void 0 : _c.call(_b, baseCallArgs))) != null ? _d : baseCallArgs;
|
|
@@ -7067,7 +7241,7 @@ function readUIMessageStream({
|
|
|
7067
7241
|
onError,
|
|
7068
7242
|
terminateOnError = false
|
|
7069
7243
|
}) {
|
|
7070
|
-
var
|
|
7244
|
+
var _a16;
|
|
7071
7245
|
let controller;
|
|
7072
7246
|
let hasErrored = false;
|
|
7073
7247
|
const outputStream = new ReadableStream({
|
|
@@ -7076,7 +7250,7 @@ function readUIMessageStream({
|
|
|
7076
7250
|
}
|
|
7077
7251
|
});
|
|
7078
7252
|
const state = createStreamingUIMessageState({
|
|
7079
|
-
messageId: (
|
|
7253
|
+
messageId: (_a16 = message == null ? void 0 : message.id) != null ? _a16 : "",
|
|
7080
7254
|
lastMessage: message
|
|
7081
7255
|
});
|
|
7082
7256
|
const handleError = (error) => {
|
|
@@ -7145,7 +7319,7 @@ async function convertToModelMessages(messages, options) {
|
|
|
7145
7319
|
modelMessages.push({
|
|
7146
7320
|
role: "user",
|
|
7147
7321
|
content: message.parts.map((part) => {
|
|
7148
|
-
var
|
|
7322
|
+
var _a16;
|
|
7149
7323
|
if (isTextUIPart(part)) {
|
|
7150
7324
|
return {
|
|
7151
7325
|
type: "text",
|
|
@@ -7163,7 +7337,7 @@ async function convertToModelMessages(messages, options) {
|
|
|
7163
7337
|
};
|
|
7164
7338
|
}
|
|
7165
7339
|
if (isDataUIPart(part)) {
|
|
7166
|
-
return (
|
|
7340
|
+
return (_a16 = options == null ? void 0 : options.convertDataPart) == null ? void 0 : _a16.call(
|
|
7167
7341
|
options,
|
|
7168
7342
|
part
|
|
7169
7343
|
);
|
|
@@ -7176,7 +7350,7 @@ async function convertToModelMessages(messages, options) {
|
|
|
7176
7350
|
if (message.parts != null) {
|
|
7177
7351
|
let block = [];
|
|
7178
7352
|
async function processBlock() {
|
|
7179
|
-
var
|
|
7353
|
+
var _a16, _b, _c, _d, _e, _f;
|
|
7180
7354
|
if (block.length === 0) {
|
|
7181
7355
|
return;
|
|
7182
7356
|
}
|
|
@@ -7208,7 +7382,7 @@ async function convertToModelMessages(messages, options) {
|
|
|
7208
7382
|
type: "tool-call",
|
|
7209
7383
|
toolCallId: part.toolCallId,
|
|
7210
7384
|
toolName,
|
|
7211
|
-
input: part.state === "output-error" ? (
|
|
7385
|
+
input: part.state === "output-error" ? (_a16 = part.input) != null ? _a16 : "rawInput" in part ? part.rawInput : void 0 : part.input,
|
|
7212
7386
|
providerExecuted: part.providerExecuted,
|
|
7213
7387
|
...part.callProviderMetadata != null ? { providerOptions: part.callProviderMetadata } : {}
|
|
7214
7388
|
});
|
|
@@ -7219,7 +7393,7 @@ async function convertToModelMessages(messages, options) {
|
|
|
7219
7393
|
toolCallId: part.toolCallId
|
|
7220
7394
|
});
|
|
7221
7395
|
}
|
|
7222
|
-
if (part.providerExecuted === true && (part.state === "output-available" || part.state === "output-error")) {
|
|
7396
|
+
if (part.providerExecuted === true && part.state !== "approval-responded" && (part.state === "output-available" || part.state === "output-error")) {
|
|
7223
7397
|
content.push({
|
|
7224
7398
|
type: "tool-result",
|
|
7225
7399
|
toolCallId: part.toolCallId,
|
|
@@ -7253,7 +7427,10 @@ async function convertToModelMessages(messages, options) {
|
|
|
7253
7427
|
content
|
|
7254
7428
|
});
|
|
7255
7429
|
const toolParts = block.filter(
|
|
7256
|
-
(part) =>
|
|
7430
|
+
(part) => {
|
|
7431
|
+
var _a17;
|
|
7432
|
+
return isToolUIPart(part) && (part.providerExecuted !== true || ((_a17 = part.approval) == null ? void 0 : _a17.approved) != null);
|
|
7433
|
+
}
|
|
7257
7434
|
);
|
|
7258
7435
|
if (toolParts.length > 0) {
|
|
7259
7436
|
{
|
|
@@ -7264,9 +7441,13 @@ async function convertToModelMessages(messages, options) {
|
|
|
7264
7441
|
type: "tool-approval-response",
|
|
7265
7442
|
approvalId: toolPart.approval.id,
|
|
7266
7443
|
approved: toolPart.approval.approved,
|
|
7267
|
-
reason: toolPart.approval.reason
|
|
7444
|
+
reason: toolPart.approval.reason,
|
|
7445
|
+
providerExecuted: toolPart.providerExecuted
|
|
7268
7446
|
});
|
|
7269
7447
|
}
|
|
7448
|
+
if (toolPart.providerExecuted === true) {
|
|
7449
|
+
continue;
|
|
7450
|
+
}
|
|
7270
7451
|
switch (toolPart.state) {
|
|
7271
7452
|
case "output-denied": {
|
|
7272
7453
|
content2.push({
|
|
@@ -7301,10 +7482,12 @@ async function convertToModelMessages(messages, options) {
|
|
|
7301
7482
|
}
|
|
7302
7483
|
}
|
|
7303
7484
|
}
|
|
7304
|
-
|
|
7305
|
-
|
|
7306
|
-
|
|
7307
|
-
|
|
7485
|
+
if (content2.length > 0) {
|
|
7486
|
+
modelMessages.push({
|
|
7487
|
+
role: "tool",
|
|
7488
|
+
content: content2
|
|
7489
|
+
});
|
|
7490
|
+
}
|
|
7308
7491
|
}
|
|
7309
7492
|
}
|
|
7310
7493
|
block = [];
|
|
@@ -7669,7 +7852,7 @@ async function safeValidateUIMessages({
|
|
|
7669
7852
|
})
|
|
7670
7853
|
};
|
|
7671
7854
|
}
|
|
7672
|
-
if (toolPart.state === "input-available" || toolPart.state === "output-available" || toolPart.state === "output-error") {
|
|
7855
|
+
if (toolPart.state === "input-available" || toolPart.state === "output-available" || toolPart.state === "output-error" && toolPart.input !== void 0) {
|
|
7673
7856
|
await validateTypes2({
|
|
7674
7857
|
value: toolPart.input,
|
|
7675
7858
|
schema: tool2.inputSchema
|
|
@@ -7832,7 +8015,7 @@ async function embed({
|
|
|
7832
8015
|
}),
|
|
7833
8016
|
tracer,
|
|
7834
8017
|
fn: async (doEmbedSpan) => {
|
|
7835
|
-
var
|
|
8018
|
+
var _a16;
|
|
7836
8019
|
const modelResponse = await model.doEmbed({
|
|
7837
8020
|
values: [value],
|
|
7838
8021
|
abortSignal,
|
|
@@ -7840,7 +8023,7 @@ async function embed({
|
|
|
7840
8023
|
providerOptions
|
|
7841
8024
|
});
|
|
7842
8025
|
const embedding2 = modelResponse.embeddings[0];
|
|
7843
|
-
const usage2 = (
|
|
8026
|
+
const usage2 = (_a16 = modelResponse.usage) != null ? _a16 : { tokens: NaN };
|
|
7844
8027
|
doEmbedSpan.setAttributes(
|
|
7845
8028
|
await selectTelemetryAttributes({
|
|
7846
8029
|
telemetry,
|
|
@@ -7954,7 +8137,7 @@ async function embedMany({
|
|
|
7954
8137
|
}),
|
|
7955
8138
|
tracer,
|
|
7956
8139
|
fn: async (span) => {
|
|
7957
|
-
var
|
|
8140
|
+
var _a16;
|
|
7958
8141
|
const [maxEmbeddingsPerCall, supportsParallelCalls] = await Promise.all([
|
|
7959
8142
|
model.maxEmbeddingsPerCall,
|
|
7960
8143
|
model.supportsParallelCalls
|
|
@@ -7979,7 +8162,7 @@ async function embedMany({
|
|
|
7979
8162
|
}),
|
|
7980
8163
|
tracer,
|
|
7981
8164
|
fn: async (doEmbedSpan) => {
|
|
7982
|
-
var
|
|
8165
|
+
var _a17;
|
|
7983
8166
|
const modelResponse = await model.doEmbed({
|
|
7984
8167
|
values,
|
|
7985
8168
|
abortSignal,
|
|
@@ -7987,7 +8170,7 @@ async function embedMany({
|
|
|
7987
8170
|
providerOptions
|
|
7988
8171
|
});
|
|
7989
8172
|
const embeddings3 = modelResponse.embeddings;
|
|
7990
|
-
const usage2 = (
|
|
8173
|
+
const usage2 = (_a17 = modelResponse.usage) != null ? _a17 : { tokens: NaN };
|
|
7991
8174
|
doEmbedSpan.setAttributes(
|
|
7992
8175
|
await selectTelemetryAttributes({
|
|
7993
8176
|
telemetry,
|
|
@@ -8068,7 +8251,7 @@ async function embedMany({
|
|
|
8068
8251
|
}),
|
|
8069
8252
|
tracer,
|
|
8070
8253
|
fn: async (doEmbedSpan) => {
|
|
8071
|
-
var
|
|
8254
|
+
var _a17;
|
|
8072
8255
|
const modelResponse = await model.doEmbed({
|
|
8073
8256
|
values: chunk,
|
|
8074
8257
|
abortSignal,
|
|
@@ -8076,7 +8259,7 @@ async function embedMany({
|
|
|
8076
8259
|
providerOptions
|
|
8077
8260
|
});
|
|
8078
8261
|
const embeddings2 = modelResponse.embeddings;
|
|
8079
|
-
const usage = (
|
|
8262
|
+
const usage = (_a17 = modelResponse.usage) != null ? _a17 : { tokens: NaN };
|
|
8080
8263
|
doEmbedSpan.setAttributes(
|
|
8081
8264
|
await selectTelemetryAttributes({
|
|
8082
8265
|
telemetry,
|
|
@@ -8115,7 +8298,7 @@ async function embedMany({
|
|
|
8115
8298
|
result.providerMetadata
|
|
8116
8299
|
)) {
|
|
8117
8300
|
providerMetadata[providerName] = {
|
|
8118
|
-
...(
|
|
8301
|
+
...(_a16 = providerMetadata[providerName]) != null ? _a16 : {},
|
|
8119
8302
|
...metadata
|
|
8120
8303
|
};
|
|
8121
8304
|
}
|
|
@@ -8179,7 +8362,7 @@ async function generateImage({
|
|
|
8179
8362
|
abortSignal,
|
|
8180
8363
|
headers
|
|
8181
8364
|
}) {
|
|
8182
|
-
var
|
|
8365
|
+
var _a16, _b;
|
|
8183
8366
|
const model = resolveImageModel(modelArg);
|
|
8184
8367
|
const headersWithUserAgent = withUserAgentSuffix5(
|
|
8185
8368
|
headers != null ? headers : {},
|
|
@@ -8189,7 +8372,7 @@ async function generateImage({
|
|
|
8189
8372
|
maxRetries: maxRetriesArg,
|
|
8190
8373
|
abortSignal
|
|
8191
8374
|
});
|
|
8192
|
-
const maxImagesPerCallWithDefault = (
|
|
8375
|
+
const maxImagesPerCallWithDefault = (_a16 = maxImagesPerCall != null ? maxImagesPerCall : await invokeModelMaxImagesPerCall(model)) != null ? _a16 : 1;
|
|
8193
8376
|
const callCount = Math.ceil(n / maxImagesPerCallWithDefault);
|
|
8194
8377
|
const callImageCounts = Array.from({ length: callCount }, (_, i) => {
|
|
8195
8378
|
if (i < callCount - 1) {
|
|
@@ -8230,13 +8413,13 @@ async function generateImage({
|
|
|
8230
8413
|
images.push(
|
|
8231
8414
|
...result.images.map(
|
|
8232
8415
|
(image) => {
|
|
8233
|
-
var
|
|
8416
|
+
var _a17;
|
|
8234
8417
|
return new DefaultGeneratedFile({
|
|
8235
8418
|
data: image,
|
|
8236
|
-
mediaType: (
|
|
8419
|
+
mediaType: (_a17 = detectMediaType({
|
|
8237
8420
|
data: image,
|
|
8238
8421
|
signatures: imageMediaTypeSignatures
|
|
8239
|
-
})) != null ?
|
|
8422
|
+
})) != null ? _a17 : "image/png"
|
|
8240
8423
|
});
|
|
8241
8424
|
}
|
|
8242
8425
|
)
|
|
@@ -8444,7 +8627,7 @@ var arrayOutputStrategy = (schema) => {
|
|
|
8444
8627
|
isFirstDelta,
|
|
8445
8628
|
isFinalDelta
|
|
8446
8629
|
}) {
|
|
8447
|
-
var
|
|
8630
|
+
var _a16;
|
|
8448
8631
|
if (!isJSONObject(value) || !isJSONArray(value.elements)) {
|
|
8449
8632
|
return {
|
|
8450
8633
|
success: false,
|
|
@@ -8467,7 +8650,7 @@ var arrayOutputStrategy = (schema) => {
|
|
|
8467
8650
|
}
|
|
8468
8651
|
resultArray.push(result.value);
|
|
8469
8652
|
}
|
|
8470
|
-
const publishedElementCount = (
|
|
8653
|
+
const publishedElementCount = (_a16 = latestObject == null ? void 0 : latestObject.length) != null ? _a16 : 0;
|
|
8471
8654
|
let textDelta = "";
|
|
8472
8655
|
if (isFirstDelta) {
|
|
8473
8656
|
textDelta += "[";
|
|
@@ -8887,7 +9070,7 @@ async function generateObject(options) {
|
|
|
8887
9070
|
}),
|
|
8888
9071
|
tracer,
|
|
8889
9072
|
fn: async (span) => {
|
|
8890
|
-
var
|
|
9073
|
+
var _a16;
|
|
8891
9074
|
let result;
|
|
8892
9075
|
let finishReason;
|
|
8893
9076
|
let usage;
|
|
@@ -8933,7 +9116,7 @@ async function generateObject(options) {
|
|
|
8933
9116
|
}),
|
|
8934
9117
|
tracer,
|
|
8935
9118
|
fn: async (span2) => {
|
|
8936
|
-
var
|
|
9119
|
+
var _a17, _b, _c, _d, _e, _f, _g, _h;
|
|
8937
9120
|
const result2 = await model.doGenerate({
|
|
8938
9121
|
responseFormat: {
|
|
8939
9122
|
type: "json",
|
|
@@ -8948,7 +9131,7 @@ async function generateObject(options) {
|
|
|
8948
9131
|
headers: headersWithUserAgent
|
|
8949
9132
|
});
|
|
8950
9133
|
const responseData = {
|
|
8951
|
-
id: (_b = (
|
|
9134
|
+
id: (_b = (_a17 = result2.response) == null ? void 0 : _a17.id) != null ? _b : generateId2(),
|
|
8952
9135
|
timestamp: (_d = (_c = result2.response) == null ? void 0 : _c.timestamp) != null ? _d : currentDate(),
|
|
8953
9136
|
modelId: (_f = (_e = result2.response) == null ? void 0 : _e.modelId) != null ? _f : model.modelId,
|
|
8954
9137
|
headers: (_g = result2.response) == null ? void 0 : _g.headers,
|
|
@@ -9004,7 +9187,7 @@ async function generateObject(options) {
|
|
|
9004
9187
|
usage = asLanguageModelUsage(generateResult.usage);
|
|
9005
9188
|
warnings = generateResult.warnings;
|
|
9006
9189
|
resultProviderMetadata = generateResult.providerMetadata;
|
|
9007
|
-
request = (
|
|
9190
|
+
request = (_a16 = generateResult.request) != null ? _a16 : {};
|
|
9008
9191
|
response = generateResult.responseData;
|
|
9009
9192
|
reasoning = generateResult.reasoning;
|
|
9010
9193
|
logWarnings({
|
|
@@ -9067,9 +9250,9 @@ var DefaultGenerateObjectResult = class {
|
|
|
9067
9250
|
this.reasoning = options.reasoning;
|
|
9068
9251
|
}
|
|
9069
9252
|
toJsonResponse(init) {
|
|
9070
|
-
var
|
|
9253
|
+
var _a16;
|
|
9071
9254
|
return new Response(JSON.stringify(this.object), {
|
|
9072
|
-
status: (
|
|
9255
|
+
status: (_a16 = init == null ? void 0 : init.status) != null ? _a16 : 200,
|
|
9073
9256
|
headers: prepareHeaders(init == null ? void 0 : init.headers, {
|
|
9074
9257
|
"content-type": "application/json; charset=utf-8"
|
|
9075
9258
|
})
|
|
@@ -9198,8 +9381,8 @@ function simulateReadableStream({
|
|
|
9198
9381
|
chunkDelayInMs = 0,
|
|
9199
9382
|
_internal
|
|
9200
9383
|
}) {
|
|
9201
|
-
var
|
|
9202
|
-
const delay2 = (
|
|
9384
|
+
var _a16;
|
|
9385
|
+
const delay2 = (_a16 = _internal == null ? void 0 : _internal.delay) != null ? _a16 : delayFunction;
|
|
9203
9386
|
let index = 0;
|
|
9204
9387
|
return new ReadableStream({
|
|
9205
9388
|
async pull(controller) {
|
|
@@ -9457,7 +9640,7 @@ var DefaultStreamObjectResult = class {
|
|
|
9457
9640
|
const transformedStream = stream.pipeThrough(new TransformStream(transformer)).pipeThrough(
|
|
9458
9641
|
new TransformStream({
|
|
9459
9642
|
async transform(chunk, controller) {
|
|
9460
|
-
var
|
|
9643
|
+
var _a16, _b, _c;
|
|
9461
9644
|
if (typeof chunk === "object" && chunk.type === "stream-start") {
|
|
9462
9645
|
warnings = chunk.warnings;
|
|
9463
9646
|
return;
|
|
@@ -9507,7 +9690,7 @@ var DefaultStreamObjectResult = class {
|
|
|
9507
9690
|
switch (chunk.type) {
|
|
9508
9691
|
case "response-metadata": {
|
|
9509
9692
|
fullResponse = {
|
|
9510
|
-
id: (
|
|
9693
|
+
id: (_a16 = chunk.id) != null ? _a16 : fullResponse.id,
|
|
9511
9694
|
timestamp: (_b = chunk.timestamp) != null ? _b : fullResponse.timestamp,
|
|
9512
9695
|
modelId: (_c = chunk.modelId) != null ? _c : fullResponse.modelId
|
|
9513
9696
|
};
|
|
@@ -9779,7 +9962,7 @@ async function generateSpeech({
|
|
|
9779
9962
|
abortSignal,
|
|
9780
9963
|
headers
|
|
9781
9964
|
}) {
|
|
9782
|
-
var
|
|
9965
|
+
var _a16;
|
|
9783
9966
|
const resolvedModel = resolveSpeechModel(model);
|
|
9784
9967
|
if (!resolvedModel) {
|
|
9785
9968
|
throw new Error("Model could not be resolved");
|
|
@@ -9816,10 +9999,10 @@ async function generateSpeech({
|
|
|
9816
9999
|
return new DefaultSpeechResult({
|
|
9817
10000
|
audio: new DefaultGeneratedAudioFile({
|
|
9818
10001
|
data: result.audio,
|
|
9819
|
-
mediaType: (
|
|
10002
|
+
mediaType: (_a16 = detectMediaType({
|
|
9820
10003
|
data: result.audio,
|
|
9821
10004
|
signatures: audioMediaTypeSignatures
|
|
9822
|
-
})) != null ?
|
|
10005
|
+
})) != null ? _a16 : "audio/mp3"
|
|
9823
10006
|
}),
|
|
9824
10007
|
warnings: result.warnings,
|
|
9825
10008
|
responses: [result.response],
|
|
@@ -9828,11 +10011,11 @@ async function generateSpeech({
|
|
|
9828
10011
|
}
|
|
9829
10012
|
var DefaultSpeechResult = class {
|
|
9830
10013
|
constructor(options) {
|
|
9831
|
-
var
|
|
10014
|
+
var _a16;
|
|
9832
10015
|
this.audio = options.audio;
|
|
9833
10016
|
this.warnings = options.warnings;
|
|
9834
10017
|
this.responses = options.responses;
|
|
9835
|
-
this.providerMetadata = (
|
|
10018
|
+
this.providerMetadata = (_a16 = options.providerMetadata) != null ? _a16 : {};
|
|
9836
10019
|
}
|
|
9837
10020
|
};
|
|
9838
10021
|
|
|
@@ -10264,13 +10447,13 @@ function addToolInputExamplesMiddleware({
|
|
|
10264
10447
|
return {
|
|
10265
10448
|
specificationVersion: "v3",
|
|
10266
10449
|
transformParams: async ({ params }) => {
|
|
10267
|
-
var
|
|
10268
|
-
if (!((
|
|
10450
|
+
var _a16;
|
|
10451
|
+
if (!((_a16 = params.tools) == null ? void 0 : _a16.length)) {
|
|
10269
10452
|
return params;
|
|
10270
10453
|
}
|
|
10271
10454
|
const transformedTools = params.tools.map((tool2) => {
|
|
10272
|
-
var
|
|
10273
|
-
if (tool2.type !== "function" || !((
|
|
10455
|
+
var _a17;
|
|
10456
|
+
if (tool2.type !== "function" || !((_a17 = tool2.inputExamples) == null ? void 0 : _a17.length)) {
|
|
10274
10457
|
return tool2;
|
|
10275
10458
|
}
|
|
10276
10459
|
const formattedExamples = tool2.inputExamples.map((example, index) => format(example, index)).join("\n");
|
|
@@ -10317,7 +10500,7 @@ var doWrap = ({
|
|
|
10317
10500
|
modelId,
|
|
10318
10501
|
providerId
|
|
10319
10502
|
}) => {
|
|
10320
|
-
var
|
|
10503
|
+
var _a16, _b, _c;
|
|
10321
10504
|
async function doTransform({
|
|
10322
10505
|
params,
|
|
10323
10506
|
type
|
|
@@ -10326,7 +10509,7 @@ var doWrap = ({
|
|
|
10326
10509
|
}
|
|
10327
10510
|
return {
|
|
10328
10511
|
specificationVersion: "v3",
|
|
10329
|
-
provider: (
|
|
10512
|
+
provider: (_a16 = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _a16 : model.provider,
|
|
10330
10513
|
modelId: (_b = modelId != null ? modelId : overrideModelId == null ? void 0 : overrideModelId({ model })) != null ? _b : model.modelId,
|
|
10331
10514
|
supportedUrls: (_c = overrideSupportedUrls == null ? void 0 : overrideSupportedUrls({ model })) != null ? _c : model.supportedUrls,
|
|
10332
10515
|
async doGenerate(params) {
|
|
@@ -10373,7 +10556,7 @@ var doWrap2 = ({
|
|
|
10373
10556
|
modelId,
|
|
10374
10557
|
providerId
|
|
10375
10558
|
}) => {
|
|
10376
|
-
var
|
|
10559
|
+
var _a16, _b, _c, _d;
|
|
10377
10560
|
async function doTransform({
|
|
10378
10561
|
params
|
|
10379
10562
|
}) {
|
|
@@ -10381,7 +10564,7 @@ var doWrap2 = ({
|
|
|
10381
10564
|
}
|
|
10382
10565
|
return {
|
|
10383
10566
|
specificationVersion: "v3",
|
|
10384
|
-
provider: (
|
|
10567
|
+
provider: (_a16 = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _a16 : model.provider,
|
|
10385
10568
|
modelId: (_b = modelId != null ? modelId : overrideModelId == null ? void 0 : overrideModelId({ model })) != null ? _b : model.modelId,
|
|
10386
10569
|
maxEmbeddingsPerCall: (_c = overrideMaxEmbeddingsPerCall == null ? void 0 : overrideMaxEmbeddingsPerCall({ model })) != null ? _c : model.maxEmbeddingsPerCall,
|
|
10387
10570
|
supportsParallelCalls: (_d = overrideSupportsParallelCalls == null ? void 0 : overrideSupportsParallelCalls({ model })) != null ? _d : model.supportsParallelCalls,
|
|
@@ -10510,11 +10693,11 @@ function customProvider({
|
|
|
10510
10693
|
var experimental_customProvider = customProvider;
|
|
10511
10694
|
|
|
10512
10695
|
// src/registry/no-such-provider-error.ts
|
|
10513
|
-
import { AISDKError as
|
|
10514
|
-
var
|
|
10515
|
-
var
|
|
10516
|
-
var
|
|
10517
|
-
var
|
|
10696
|
+
import { AISDKError as AISDKError20, NoSuchModelError as NoSuchModelError3 } from "@ai-sdk/provider";
|
|
10697
|
+
var name15 = "AI_NoSuchProviderError";
|
|
10698
|
+
var marker15 = `vercel.ai.error.${name15}`;
|
|
10699
|
+
var symbol15 = Symbol.for(marker15);
|
|
10700
|
+
var _a15;
|
|
10518
10701
|
var NoSuchProviderError = class extends NoSuchModelError3 {
|
|
10519
10702
|
constructor({
|
|
10520
10703
|
modelId,
|
|
@@ -10523,16 +10706,16 @@ var NoSuchProviderError = class extends NoSuchModelError3 {
|
|
|
10523
10706
|
availableProviders,
|
|
10524
10707
|
message = `No such provider: ${providerId} (available providers: ${availableProviders.join()})`
|
|
10525
10708
|
}) {
|
|
10526
|
-
super({ errorName:
|
|
10527
|
-
this[
|
|
10709
|
+
super({ errorName: name15, modelId, modelType, message });
|
|
10710
|
+
this[_a15] = true;
|
|
10528
10711
|
this.providerId = providerId;
|
|
10529
10712
|
this.availableProviders = availableProviders;
|
|
10530
10713
|
}
|
|
10531
10714
|
static isInstance(error) {
|
|
10532
|
-
return
|
|
10715
|
+
return AISDKError20.hasMarker(error, marker15);
|
|
10533
10716
|
}
|
|
10534
10717
|
};
|
|
10535
|
-
|
|
10718
|
+
_a15 = symbol15;
|
|
10536
10719
|
|
|
10537
10720
|
// src/registry/provider-registry.ts
|
|
10538
10721
|
import {
|
|
@@ -10591,10 +10774,10 @@ var DefaultProviderRegistry = class {
|
|
|
10591
10774
|
return [id.slice(0, index), id.slice(index + this.separator.length)];
|
|
10592
10775
|
}
|
|
10593
10776
|
languageModel(id) {
|
|
10594
|
-
var
|
|
10777
|
+
var _a16, _b;
|
|
10595
10778
|
const [providerId, modelId] = this.splitId(id, "languageModel");
|
|
10596
|
-
let model = (_b = (
|
|
10597
|
-
|
|
10779
|
+
let model = (_b = (_a16 = this.getProvider(providerId, "languageModel")).languageModel) == null ? void 0 : _b.call(
|
|
10780
|
+
_a16,
|
|
10598
10781
|
modelId
|
|
10599
10782
|
);
|
|
10600
10783
|
if (model == null) {
|
|
@@ -10609,10 +10792,10 @@ var DefaultProviderRegistry = class {
|
|
|
10609
10792
|
return model;
|
|
10610
10793
|
}
|
|
10611
10794
|
embeddingModel(id) {
|
|
10612
|
-
var
|
|
10795
|
+
var _a16;
|
|
10613
10796
|
const [providerId, modelId] = this.splitId(id, "embeddingModel");
|
|
10614
10797
|
const provider = this.getProvider(providerId, "embeddingModel");
|
|
10615
|
-
const model = (
|
|
10798
|
+
const model = (_a16 = provider.embeddingModel) == null ? void 0 : _a16.call(provider, modelId);
|
|
10616
10799
|
if (model == null) {
|
|
10617
10800
|
throw new NoSuchModelError4({
|
|
10618
10801
|
modelId: id,
|
|
@@ -10622,20 +10805,20 @@ var DefaultProviderRegistry = class {
|
|
|
10622
10805
|
return model;
|
|
10623
10806
|
}
|
|
10624
10807
|
imageModel(id) {
|
|
10625
|
-
var
|
|
10808
|
+
var _a16;
|
|
10626
10809
|
const [providerId, modelId] = this.splitId(id, "imageModel");
|
|
10627
10810
|
const provider = this.getProvider(providerId, "imageModel");
|
|
10628
|
-
const model = (
|
|
10811
|
+
const model = (_a16 = provider.imageModel) == null ? void 0 : _a16.call(provider, modelId);
|
|
10629
10812
|
if (model == null) {
|
|
10630
10813
|
throw new NoSuchModelError4({ modelId: id, modelType: "imageModel" });
|
|
10631
10814
|
}
|
|
10632
10815
|
return model;
|
|
10633
10816
|
}
|
|
10634
10817
|
transcriptionModel(id) {
|
|
10635
|
-
var
|
|
10818
|
+
var _a16;
|
|
10636
10819
|
const [providerId, modelId] = this.splitId(id, "transcriptionModel");
|
|
10637
10820
|
const provider = this.getProvider(providerId, "transcriptionModel");
|
|
10638
|
-
const model = (
|
|
10821
|
+
const model = (_a16 = provider.transcriptionModel) == null ? void 0 : _a16.call(provider, modelId);
|
|
10639
10822
|
if (model == null) {
|
|
10640
10823
|
throw new NoSuchModelError4({
|
|
10641
10824
|
modelId: id,
|
|
@@ -10645,20 +10828,20 @@ var DefaultProviderRegistry = class {
|
|
|
10645
10828
|
return model;
|
|
10646
10829
|
}
|
|
10647
10830
|
speechModel(id) {
|
|
10648
|
-
var
|
|
10831
|
+
var _a16;
|
|
10649
10832
|
const [providerId, modelId] = this.splitId(id, "speechModel");
|
|
10650
10833
|
const provider = this.getProvider(providerId, "speechModel");
|
|
10651
|
-
const model = (
|
|
10834
|
+
const model = (_a16 = provider.speechModel) == null ? void 0 : _a16.call(provider, modelId);
|
|
10652
10835
|
if (model == null) {
|
|
10653
10836
|
throw new NoSuchModelError4({ modelId: id, modelType: "speechModel" });
|
|
10654
10837
|
}
|
|
10655
10838
|
return model;
|
|
10656
10839
|
}
|
|
10657
10840
|
rerankingModel(id) {
|
|
10658
|
-
var
|
|
10841
|
+
var _a16;
|
|
10659
10842
|
const [providerId, modelId] = this.splitId(id, "rerankingModel");
|
|
10660
10843
|
const provider = this.getProvider(providerId, "rerankingModel");
|
|
10661
|
-
const model = (
|
|
10844
|
+
const model = (_a16 = provider.rerankingModel) == null ? void 0 : _a16.call(provider, modelId);
|
|
10662
10845
|
if (model == null) {
|
|
10663
10846
|
throw new NoSuchModelError4({ modelId: id, modelType: "rerankingModel" });
|
|
10664
10847
|
}
|
|
@@ -10715,7 +10898,7 @@ async function rerank({
|
|
|
10715
10898
|
}),
|
|
10716
10899
|
tracer,
|
|
10717
10900
|
fn: async () => {
|
|
10718
|
-
var
|
|
10901
|
+
var _a16, _b;
|
|
10719
10902
|
const { ranking, response, providerMetadata, warnings } = await retry(
|
|
10720
10903
|
() => recordSpan({
|
|
10721
10904
|
name: "ai.rerank.doRerank",
|
|
@@ -10779,7 +10962,7 @@ async function rerank({
|
|
|
10779
10962
|
providerMetadata,
|
|
10780
10963
|
response: {
|
|
10781
10964
|
id: response == null ? void 0 : response.id,
|
|
10782
|
-
timestamp: (
|
|
10965
|
+
timestamp: (_a16 = response == null ? void 0 : response.timestamp) != null ? _a16 : /* @__PURE__ */ new Date(),
|
|
10783
10966
|
modelId: (_b = response == null ? void 0 : response.modelId) != null ? _b : model.modelId,
|
|
10784
10967
|
headers: response == null ? void 0 : response.headers,
|
|
10785
10968
|
body: response == null ? void 0 : response.body
|
|
@@ -10804,8 +10987,8 @@ var DefaultRerankResult = class {
|
|
|
10804
10987
|
import { withUserAgentSuffix as withUserAgentSuffix8 } from "@ai-sdk/provider-utils";
|
|
10805
10988
|
|
|
10806
10989
|
// src/error/no-transcript-generated-error.ts
|
|
10807
|
-
import { AISDKError as
|
|
10808
|
-
var NoTranscriptGeneratedError = class extends
|
|
10990
|
+
import { AISDKError as AISDKError21 } from "@ai-sdk/provider";
|
|
10991
|
+
var NoTranscriptGeneratedError = class extends AISDKError21 {
|
|
10809
10992
|
constructor(options) {
|
|
10810
10993
|
super({
|
|
10811
10994
|
name: "AI_NoTranscriptGeneratedError",
|
|
@@ -10839,16 +11022,16 @@ async function transcribe({
|
|
|
10839
11022
|
const audioData = audio instanceof URL ? (await download({ url: audio })).data : convertDataContentToUint8Array(audio);
|
|
10840
11023
|
const result = await retry(
|
|
10841
11024
|
() => {
|
|
10842
|
-
var
|
|
11025
|
+
var _a16;
|
|
10843
11026
|
return resolvedModel.doGenerate({
|
|
10844
11027
|
audio: audioData,
|
|
10845
11028
|
abortSignal,
|
|
10846
11029
|
headers: headersWithUserAgent,
|
|
10847
11030
|
providerOptions,
|
|
10848
|
-
mediaType: (
|
|
11031
|
+
mediaType: (_a16 = detectMediaType({
|
|
10849
11032
|
data: audioData,
|
|
10850
11033
|
signatures: audioMediaTypeSignatures
|
|
10851
|
-
})) != null ?
|
|
11034
|
+
})) != null ? _a16 : "audio/wav"
|
|
10852
11035
|
});
|
|
10853
11036
|
}
|
|
10854
11037
|
);
|
|
@@ -10872,14 +11055,14 @@ async function transcribe({
|
|
|
10872
11055
|
}
|
|
10873
11056
|
var DefaultTranscriptionResult = class {
|
|
10874
11057
|
constructor(options) {
|
|
10875
|
-
var
|
|
11058
|
+
var _a16;
|
|
10876
11059
|
this.text = options.text;
|
|
10877
11060
|
this.segments = options.segments;
|
|
10878
11061
|
this.language = options.language;
|
|
10879
11062
|
this.durationInSeconds = options.durationInSeconds;
|
|
10880
11063
|
this.warnings = options.warnings;
|
|
10881
11064
|
this.responses = options.responses;
|
|
10882
|
-
this.providerMetadata = (
|
|
11065
|
+
this.providerMetadata = (_a16 = options.providerMetadata) != null ? _a16 : {};
|
|
10883
11066
|
}
|
|
10884
11067
|
};
|
|
10885
11068
|
|
|
@@ -10922,7 +11105,7 @@ async function callCompletionApi({
|
|
|
10922
11105
|
onError,
|
|
10923
11106
|
fetch: fetch2 = getOriginalFetch()
|
|
10924
11107
|
}) {
|
|
10925
|
-
var
|
|
11108
|
+
var _a16;
|
|
10926
11109
|
try {
|
|
10927
11110
|
setLoading(true);
|
|
10928
11111
|
setError(void 0);
|
|
@@ -10950,7 +11133,7 @@ async function callCompletionApi({
|
|
|
10950
11133
|
});
|
|
10951
11134
|
if (!response.ok) {
|
|
10952
11135
|
throw new Error(
|
|
10953
|
-
(
|
|
11136
|
+
(_a16 = await response.text()) != null ? _a16 : "Failed to fetch the chat response."
|
|
10954
11137
|
);
|
|
10955
11138
|
}
|
|
10956
11139
|
if (!response.body) {
|
|
@@ -11036,12 +11219,12 @@ async function convertFileListToFileUIParts(files) {
|
|
|
11036
11219
|
}
|
|
11037
11220
|
return Promise.all(
|
|
11038
11221
|
Array.from(files).map(async (file) => {
|
|
11039
|
-
const { name:
|
|
11222
|
+
const { name: name16, type } = file;
|
|
11040
11223
|
const dataUrl = await new Promise((resolve3, reject) => {
|
|
11041
11224
|
const reader = new FileReader();
|
|
11042
11225
|
reader.onload = (readerEvent) => {
|
|
11043
|
-
var
|
|
11044
|
-
resolve3((
|
|
11226
|
+
var _a16;
|
|
11227
|
+
resolve3((_a16 = readerEvent.target) == null ? void 0 : _a16.result);
|
|
11045
11228
|
};
|
|
11046
11229
|
reader.onerror = (error) => reject(error);
|
|
11047
11230
|
reader.readAsDataURL(file);
|
|
@@ -11049,7 +11232,7 @@ async function convertFileListToFileUIParts(files) {
|
|
|
11049
11232
|
return {
|
|
11050
11233
|
type: "file",
|
|
11051
11234
|
mediaType: type,
|
|
11052
|
-
filename:
|
|
11235
|
+
filename: name16,
|
|
11053
11236
|
url: dataUrl
|
|
11054
11237
|
};
|
|
11055
11238
|
})
|
|
@@ -11088,7 +11271,7 @@ var HttpChatTransport = class {
|
|
|
11088
11271
|
abortSignal,
|
|
11089
11272
|
...options
|
|
11090
11273
|
}) {
|
|
11091
|
-
var
|
|
11274
|
+
var _a16, _b, _c, _d, _e;
|
|
11092
11275
|
const resolvedBody = await resolve2(this.body);
|
|
11093
11276
|
const resolvedHeaders = await resolve2(this.headers);
|
|
11094
11277
|
const resolvedCredentials = await resolve2(this.credentials);
|
|
@@ -11096,7 +11279,7 @@ var HttpChatTransport = class {
|
|
|
11096
11279
|
...normalizeHeaders(resolvedHeaders),
|
|
11097
11280
|
...normalizeHeaders(options.headers)
|
|
11098
11281
|
};
|
|
11099
|
-
const preparedRequest = await ((
|
|
11282
|
+
const preparedRequest = await ((_a16 = this.prepareSendMessagesRequest) == null ? void 0 : _a16.call(this, {
|
|
11100
11283
|
api: this.api,
|
|
11101
11284
|
id: options.chatId,
|
|
11102
11285
|
messages: options.messages,
|
|
@@ -11144,7 +11327,7 @@ var HttpChatTransport = class {
|
|
|
11144
11327
|
return this.processResponseStream(response.body);
|
|
11145
11328
|
}
|
|
11146
11329
|
async reconnectToStream(options) {
|
|
11147
|
-
var
|
|
11330
|
+
var _a16, _b, _c, _d, _e;
|
|
11148
11331
|
const resolvedBody = await resolve2(this.body);
|
|
11149
11332
|
const resolvedHeaders = await resolve2(this.headers);
|
|
11150
11333
|
const resolvedCredentials = await resolve2(this.credentials);
|
|
@@ -11152,7 +11335,7 @@ var HttpChatTransport = class {
|
|
|
11152
11335
|
...normalizeHeaders(resolvedHeaders),
|
|
11153
11336
|
...normalizeHeaders(options.headers)
|
|
11154
11337
|
};
|
|
11155
|
-
const preparedRequest = await ((
|
|
11338
|
+
const preparedRequest = await ((_a16 = this.prepareReconnectToStreamRequest) == null ? void 0 : _a16.call(this, {
|
|
11156
11339
|
api: this.api,
|
|
11157
11340
|
id: options.chatId,
|
|
11158
11341
|
body: { ...resolvedBody, ...options.body },
|
|
@@ -11234,11 +11417,11 @@ var AbstractChat = class {
|
|
|
11234
11417
|
* If a messageId is provided, the message will be replaced.
|
|
11235
11418
|
*/
|
|
11236
11419
|
this.sendMessage = async (message, options) => {
|
|
11237
|
-
var
|
|
11420
|
+
var _a16, _b, _c, _d;
|
|
11238
11421
|
if (message == null) {
|
|
11239
11422
|
await this.makeRequest({
|
|
11240
11423
|
trigger: "submit-message",
|
|
11241
|
-
messageId: (
|
|
11424
|
+
messageId: (_a16 = this.lastMessage) == null ? void 0 : _a16.id,
|
|
11242
11425
|
...options
|
|
11243
11426
|
});
|
|
11244
11427
|
return;
|
|
@@ -11331,7 +11514,7 @@ var AbstractChat = class {
|
|
|
11331
11514
|
approved,
|
|
11332
11515
|
reason
|
|
11333
11516
|
}) => this.jobExecutor.run(async () => {
|
|
11334
|
-
var
|
|
11517
|
+
var _a16, _b;
|
|
11335
11518
|
const messages = this.state.messages;
|
|
11336
11519
|
const lastMessage = messages[messages.length - 1];
|
|
11337
11520
|
const updatePart = (part) => isToolUIPart(part) && part.state === "approval-requested" && part.approval.id === id ? {
|
|
@@ -11346,7 +11529,7 @@ var AbstractChat = class {
|
|
|
11346
11529
|
if (this.activeResponse) {
|
|
11347
11530
|
this.activeResponse.state.message.parts = this.activeResponse.state.message.parts.map(updatePart);
|
|
11348
11531
|
}
|
|
11349
|
-
if (this.status !== "streaming" && this.status !== "submitted" && ((
|
|
11532
|
+
if (this.status !== "streaming" && this.status !== "submitted" && ((_a16 = this.sendAutomaticallyWhen) == null ? void 0 : _a16.call(this, { messages: this.state.messages }))) {
|
|
11350
11533
|
this.makeRequest({
|
|
11351
11534
|
trigger: "submit-message",
|
|
11352
11535
|
messageId: (_b = this.lastMessage) == null ? void 0 : _b.id
|
|
@@ -11360,7 +11543,7 @@ var AbstractChat = class {
|
|
|
11360
11543
|
output,
|
|
11361
11544
|
errorText
|
|
11362
11545
|
}) => this.jobExecutor.run(async () => {
|
|
11363
|
-
var
|
|
11546
|
+
var _a16, _b;
|
|
11364
11547
|
const messages = this.state.messages;
|
|
11365
11548
|
const lastMessage = messages[messages.length - 1];
|
|
11366
11549
|
const updatePart = (part) => isToolUIPart(part) && part.toolCallId === toolCallId ? { ...part, state, output, errorText } : part;
|
|
@@ -11371,7 +11554,7 @@ var AbstractChat = class {
|
|
|
11371
11554
|
if (this.activeResponse) {
|
|
11372
11555
|
this.activeResponse.state.message.parts = this.activeResponse.state.message.parts.map(updatePart);
|
|
11373
11556
|
}
|
|
11374
|
-
if (this.status !== "streaming" && this.status !== "submitted" && ((
|
|
11557
|
+
if (this.status !== "streaming" && this.status !== "submitted" && ((_a16 = this.sendAutomaticallyWhen) == null ? void 0 : _a16.call(this, { messages: this.state.messages }))) {
|
|
11375
11558
|
this.makeRequest({
|
|
11376
11559
|
trigger: "submit-message",
|
|
11377
11560
|
messageId: (_b = this.lastMessage) == null ? void 0 : _b.id
|
|
@@ -11384,10 +11567,10 @@ var AbstractChat = class {
|
|
|
11384
11567
|
* Abort the current request immediately, keep the generated tokens if any.
|
|
11385
11568
|
*/
|
|
11386
11569
|
this.stop = async () => {
|
|
11387
|
-
var
|
|
11570
|
+
var _a16;
|
|
11388
11571
|
if (this.status !== "streaming" && this.status !== "submitted")
|
|
11389
11572
|
return;
|
|
11390
|
-
if ((
|
|
11573
|
+
if ((_a16 = this.activeResponse) == null ? void 0 : _a16.abortController) {
|
|
11391
11574
|
this.activeResponse.abortController.abort();
|
|
11392
11575
|
}
|
|
11393
11576
|
};
|
|
@@ -11442,7 +11625,7 @@ var AbstractChat = class {
|
|
|
11442
11625
|
body,
|
|
11443
11626
|
messageId
|
|
11444
11627
|
}) {
|
|
11445
|
-
var
|
|
11628
|
+
var _a16, _b, _c, _d;
|
|
11446
11629
|
this.setStatus({ status: "submitted", error: void 0 });
|
|
11447
11630
|
const lastMessage = this.lastMessage;
|
|
11448
11631
|
let isAbort = false;
|
|
@@ -11491,9 +11674,9 @@ var AbstractChat = class {
|
|
|
11491
11674
|
() => job({
|
|
11492
11675
|
state: activeResponse.state,
|
|
11493
11676
|
write: () => {
|
|
11494
|
-
var
|
|
11677
|
+
var _a17;
|
|
11495
11678
|
this.setStatus({ status: "streaming" });
|
|
11496
|
-
const replaceLastMessage = activeResponse.state.message.id === ((
|
|
11679
|
+
const replaceLastMessage = activeResponse.state.message.id === ((_a17 = this.lastMessage) == null ? void 0 : _a17.id);
|
|
11497
11680
|
if (replaceLastMessage) {
|
|
11498
11681
|
this.state.replaceMessage(
|
|
11499
11682
|
this.state.messages.length - 1,
|
|
@@ -11545,7 +11728,7 @@ var AbstractChat = class {
|
|
|
11545
11728
|
isAbort,
|
|
11546
11729
|
isDisconnect,
|
|
11547
11730
|
isError,
|
|
11548
|
-
finishReason: (
|
|
11731
|
+
finishReason: (_a16 = this.activeResponse) == null ? void 0 : _a16.state.finishReason
|
|
11549
11732
|
});
|
|
11550
11733
|
} catch (err) {
|
|
11551
11734
|
console.error(err);
|
|
@@ -11643,7 +11826,7 @@ var TextStreamChatTransport = class extends HttpChatTransport {
|
|
|
11643
11826
|
}
|
|
11644
11827
|
};
|
|
11645
11828
|
export {
|
|
11646
|
-
|
|
11829
|
+
AISDKError17 as AISDKError,
|
|
11647
11830
|
APICallError,
|
|
11648
11831
|
AbstractChat,
|
|
11649
11832
|
DefaultChatTransport,
|
|
@@ -11657,6 +11840,7 @@ export {
|
|
|
11657
11840
|
InvalidPromptError,
|
|
11658
11841
|
InvalidResponseDataError,
|
|
11659
11842
|
InvalidStreamPartError,
|
|
11843
|
+
InvalidToolApprovalError,
|
|
11660
11844
|
InvalidToolInputError,
|
|
11661
11845
|
JSONParseError,
|
|
11662
11846
|
JsonToSseTransformStream,
|
|
@@ -11676,6 +11860,7 @@ export {
|
|
|
11676
11860
|
SerialJobExecutor,
|
|
11677
11861
|
TextStreamChatTransport,
|
|
11678
11862
|
TooManyEmbeddingValuesForCallError,
|
|
11863
|
+
ToolCallNotFoundForApprovalError,
|
|
11679
11864
|
ToolCallRepairError,
|
|
11680
11865
|
ToolLoopAgent,
|
|
11681
11866
|
TypeValidationError,
|