ai 6.0.201 → 6.0.202
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 +14 -0
- package/dist/index.d.mts +58 -13
- package/dist/index.d.ts +58 -13
- package/dist/index.js +836 -575
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +674 -408
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.js +1 -1
- package/dist/internal/index.mjs +1 -1
- package/docs/03-ai-sdk-core/16-mcp-tools.mdx +32 -0
- package/docs/04-ai-sdk-ui/03-chatbot-message-persistence.mdx +20 -2
- package/docs/07-reference/01-ai-sdk-core/23-create-mcp-client.mdx +1 -1
- package/docs/07-reference/05-ai-sdk-errors/ai-invalid-tool-approval-signature-error.mdx +31 -0
- package/package.json +6 -6
- package/src/error/index.ts +1 -0
- package/src/error/invalid-tool-approval-signature-error.ts +35 -0
- package/src/generate-text/generate-text.ts +48 -6
- package/src/generate-text/run-tools-transformation.ts +14 -1
- package/src/generate-text/stream-text.ts +41 -6
- package/src/generate-text/to-response-messages.ts +1 -0
- package/src/generate-text/tool-approval-request-output.ts +5 -0
- package/src/generate-text/tool-approval-signature.ts +125 -0
- package/src/generate-text/validate-tool-approvals.ts +124 -0
- package/src/ui/convert-to-model-messages.ts +3 -0
- package/src/ui/process-ui-message-stream.ts +6 -1
- package/src/ui/ui-messages.ts +10 -0
- package/src/ui/validate-ui-messages.ts +10 -0
- package/src/ui-message-stream/ui-message-chunks.ts +2 -0
package/dist/index.js
CHANGED
|
@@ -4,8 +4,8 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
4
4
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
5
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
6
|
var __export = (target, all) => {
|
|
7
|
-
for (var
|
|
8
|
-
__defProp(target,
|
|
7
|
+
for (var name22 in all)
|
|
8
|
+
__defProp(target, name22, { get: all[name22], enumerable: true });
|
|
9
9
|
};
|
|
10
10
|
var __copyProps = (to, from, except, desc) => {
|
|
11
11
|
if (from && typeof from === "object" || typeof from === "function") {
|
|
@@ -20,36 +20,37 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
20
20
|
// src/index.ts
|
|
21
21
|
var src_exports = {};
|
|
22
22
|
__export(src_exports, {
|
|
23
|
-
AISDKError: () =>
|
|
24
|
-
APICallError: () =>
|
|
23
|
+
AISDKError: () => import_provider22.AISDKError,
|
|
24
|
+
APICallError: () => import_provider22.APICallError,
|
|
25
25
|
AbstractChat: () => AbstractChat,
|
|
26
26
|
DefaultChatTransport: () => DefaultChatTransport,
|
|
27
27
|
DefaultGeneratedFile: () => DefaultGeneratedFile,
|
|
28
28
|
DirectChatTransport: () => DirectChatTransport,
|
|
29
29
|
DownloadError: () => import_provider_utils.DownloadError,
|
|
30
|
-
EmptyResponseBodyError: () =>
|
|
30
|
+
EmptyResponseBodyError: () => import_provider22.EmptyResponseBodyError,
|
|
31
31
|
Experimental_Agent: () => ToolLoopAgent,
|
|
32
32
|
HttpChatTransport: () => HttpChatTransport,
|
|
33
33
|
InvalidArgumentError: () => InvalidArgumentError,
|
|
34
34
|
InvalidDataContentError: () => InvalidDataContentError,
|
|
35
35
|
InvalidMessageRoleError: () => InvalidMessageRoleError,
|
|
36
|
-
InvalidPromptError: () =>
|
|
37
|
-
InvalidResponseDataError: () =>
|
|
36
|
+
InvalidPromptError: () => import_provider22.InvalidPromptError,
|
|
37
|
+
InvalidResponseDataError: () => import_provider22.InvalidResponseDataError,
|
|
38
38
|
InvalidStreamPartError: () => InvalidStreamPartError,
|
|
39
39
|
InvalidToolApprovalError: () => InvalidToolApprovalError,
|
|
40
|
+
InvalidToolApprovalSignatureError: () => InvalidToolApprovalSignatureError,
|
|
40
41
|
InvalidToolInputError: () => InvalidToolInputError,
|
|
41
|
-
JSONParseError: () =>
|
|
42
|
+
JSONParseError: () => import_provider22.JSONParseError,
|
|
42
43
|
JsonToSseTransformStream: () => JsonToSseTransformStream,
|
|
43
|
-
LoadAPIKeyError: () =>
|
|
44
|
-
LoadSettingError: () =>
|
|
44
|
+
LoadAPIKeyError: () => import_provider22.LoadAPIKeyError,
|
|
45
|
+
LoadSettingError: () => import_provider22.LoadSettingError,
|
|
45
46
|
MessageConversionError: () => MessageConversionError,
|
|
46
47
|
MissingToolResultsError: () => MissingToolResultsError,
|
|
47
|
-
NoContentGeneratedError: () =>
|
|
48
|
+
NoContentGeneratedError: () => import_provider22.NoContentGeneratedError,
|
|
48
49
|
NoImageGeneratedError: () => NoImageGeneratedError,
|
|
49
50
|
NoObjectGeneratedError: () => NoObjectGeneratedError,
|
|
50
51
|
NoOutputGeneratedError: () => NoOutputGeneratedError,
|
|
51
52
|
NoSpeechGeneratedError: () => NoSpeechGeneratedError,
|
|
52
|
-
NoSuchModelError: () =>
|
|
53
|
+
NoSuchModelError: () => import_provider22.NoSuchModelError,
|
|
53
54
|
NoSuchProviderError: () => NoSuchProviderError,
|
|
54
55
|
NoSuchToolError: () => NoSuchToolError,
|
|
55
56
|
NoTranscriptGeneratedError: () => NoTranscriptGeneratedError,
|
|
@@ -58,17 +59,17 @@ __export(src_exports, {
|
|
|
58
59
|
RetryError: () => RetryError,
|
|
59
60
|
SerialJobExecutor: () => SerialJobExecutor,
|
|
60
61
|
TextStreamChatTransport: () => TextStreamChatTransport,
|
|
61
|
-
TooManyEmbeddingValuesForCallError: () =>
|
|
62
|
+
TooManyEmbeddingValuesForCallError: () => import_provider22.TooManyEmbeddingValuesForCallError,
|
|
62
63
|
ToolCallNotFoundForApprovalError: () => ToolCallNotFoundForApprovalError,
|
|
63
64
|
ToolCallRepairError: () => ToolCallRepairError,
|
|
64
65
|
ToolLoopAgent: () => ToolLoopAgent,
|
|
65
|
-
TypeValidationError: () =>
|
|
66
|
+
TypeValidationError: () => import_provider22.TypeValidationError,
|
|
66
67
|
UIMessageStreamError: () => UIMessageStreamError,
|
|
67
68
|
UI_MESSAGE_STREAM_HEADERS: () => UI_MESSAGE_STREAM_HEADERS,
|
|
68
|
-
UnsupportedFunctionalityError: () =>
|
|
69
|
+
UnsupportedFunctionalityError: () => import_provider22.UnsupportedFunctionalityError,
|
|
69
70
|
UnsupportedModelVersionError: () => UnsupportedModelVersionError,
|
|
70
71
|
addToolInputExamplesMiddleware: () => addToolInputExamplesMiddleware,
|
|
71
|
-
asSchema: () =>
|
|
72
|
+
asSchema: () => import_provider_utils41.asSchema,
|
|
72
73
|
assistantModelMessageSchema: () => assistantModelMessageSchema,
|
|
73
74
|
bindTelemetryIntegration: () => bindTelemetryIntegration,
|
|
74
75
|
callCompletionApi: () => callCompletionApi,
|
|
@@ -80,7 +81,7 @@ __export(src_exports, {
|
|
|
80
81
|
createAgentUIStreamResponse: () => createAgentUIStreamResponse,
|
|
81
82
|
createDownload: () => createDownload,
|
|
82
83
|
createGateway: () => import_gateway4.createGateway,
|
|
83
|
-
createIdGenerator: () =>
|
|
84
|
+
createIdGenerator: () => import_provider_utils41.createIdGenerator,
|
|
84
85
|
createProviderRegistry: () => createProviderRegistry,
|
|
85
86
|
createTextStreamResponse: () => createTextStreamResponse,
|
|
86
87
|
createUIMessageStream: () => createUIMessageStream,
|
|
@@ -88,7 +89,7 @@ __export(src_exports, {
|
|
|
88
89
|
customProvider: () => customProvider,
|
|
89
90
|
defaultEmbeddingSettingsMiddleware: () => defaultEmbeddingSettingsMiddleware,
|
|
90
91
|
defaultSettingsMiddleware: () => defaultSettingsMiddleware,
|
|
91
|
-
dynamicTool: () =>
|
|
92
|
+
dynamicTool: () => import_provider_utils41.dynamicTool,
|
|
92
93
|
embed: () => embed,
|
|
93
94
|
embedMany: () => embedMany,
|
|
94
95
|
experimental_createProviderRegistry: () => experimental_createProviderRegistry,
|
|
@@ -100,7 +101,7 @@ __export(src_exports, {
|
|
|
100
101
|
extractJsonMiddleware: () => extractJsonMiddleware,
|
|
101
102
|
extractReasoningMiddleware: () => extractReasoningMiddleware,
|
|
102
103
|
gateway: () => import_gateway4.gateway,
|
|
103
|
-
generateId: () =>
|
|
104
|
+
generateId: () => import_provider_utils41.generateId,
|
|
104
105
|
generateImage: () => generateImage,
|
|
105
106
|
generateObject: () => generateObject,
|
|
106
107
|
generateText: () => generateText,
|
|
@@ -118,11 +119,11 @@ __export(src_exports, {
|
|
|
118
119
|
isTextUIPart: () => isTextUIPart,
|
|
119
120
|
isToolOrDynamicToolUIPart: () => isToolOrDynamicToolUIPart,
|
|
120
121
|
isToolUIPart: () => isToolUIPart,
|
|
121
|
-
jsonSchema: () =>
|
|
122
|
+
jsonSchema: () => import_provider_utils41.jsonSchema,
|
|
122
123
|
lastAssistantMessageIsCompleteWithApprovalResponses: () => lastAssistantMessageIsCompleteWithApprovalResponses,
|
|
123
124
|
lastAssistantMessageIsCompleteWithToolCalls: () => lastAssistantMessageIsCompleteWithToolCalls,
|
|
124
125
|
modelMessageSchema: () => modelMessageSchema,
|
|
125
|
-
parseJsonEventStream: () =>
|
|
126
|
+
parseJsonEventStream: () => import_provider_utils41.parseJsonEventStream,
|
|
126
127
|
parsePartialJson: () => parsePartialJson,
|
|
127
128
|
pipeAgentUIStreamToResponse: () => pipeAgentUIStreamToResponse,
|
|
128
129
|
pipeTextStreamToResponse: () => pipeTextStreamToResponse,
|
|
@@ -139,7 +140,7 @@ __export(src_exports, {
|
|
|
139
140
|
streamObject: () => streamObject,
|
|
140
141
|
streamText: () => streamText,
|
|
141
142
|
systemModelMessageSchema: () => systemModelMessageSchema,
|
|
142
|
-
tool: () =>
|
|
143
|
+
tool: () => import_provider_utils41.tool,
|
|
143
144
|
toolModelMessageSchema: () => toolModelMessageSchema,
|
|
144
145
|
uiMessageChunkSchema: () => uiMessageChunkSchema,
|
|
145
146
|
userModelMessageSchema: () => userModelMessageSchema,
|
|
@@ -148,20 +149,20 @@ __export(src_exports, {
|
|
|
148
149
|
wrapImageModel: () => wrapImageModel,
|
|
149
150
|
wrapLanguageModel: () => wrapLanguageModel,
|
|
150
151
|
wrapProvider: () => wrapProvider,
|
|
151
|
-
zodSchema: () =>
|
|
152
|
+
zodSchema: () => import_provider_utils41.zodSchema
|
|
152
153
|
});
|
|
153
154
|
module.exports = __toCommonJS(src_exports);
|
|
154
155
|
var import_gateway4 = require("@ai-sdk/gateway");
|
|
155
|
-
var
|
|
156
|
+
var import_provider_utils41 = require("@ai-sdk/provider-utils");
|
|
156
157
|
|
|
157
158
|
// src/agent/tool-loop-agent.ts
|
|
158
|
-
var
|
|
159
|
+
var import_provider_utils21 = require("@ai-sdk/provider-utils");
|
|
159
160
|
|
|
160
161
|
// src/generate-text/generate-text.ts
|
|
161
|
-
var
|
|
162
|
+
var import_provider_utils16 = require("@ai-sdk/provider-utils");
|
|
162
163
|
|
|
163
164
|
// src/error/index.ts
|
|
164
|
-
var
|
|
165
|
+
var import_provider22 = require("@ai-sdk/provider");
|
|
165
166
|
|
|
166
167
|
// src/error/invalid-argument-error.ts
|
|
167
168
|
var import_provider = require("@ai-sdk/provider");
|
|
@@ -231,23 +232,25 @@ var InvalidToolApprovalError = class extends import_provider3.AISDKError {
|
|
|
231
232
|
};
|
|
232
233
|
_a3 = symbol3;
|
|
233
234
|
|
|
234
|
-
// src/error/invalid-tool-
|
|
235
|
+
// src/error/invalid-tool-approval-signature-error.ts
|
|
235
236
|
var import_provider4 = require("@ai-sdk/provider");
|
|
236
|
-
var name4 = "
|
|
237
|
+
var name4 = "AI_InvalidToolApprovalSignatureError";
|
|
237
238
|
var marker4 = `vercel.ai.error.${name4}`;
|
|
238
239
|
var symbol4 = Symbol.for(marker4);
|
|
239
240
|
var _a4;
|
|
240
|
-
var
|
|
241
|
+
var InvalidToolApprovalSignatureError = class extends import_provider4.AISDKError {
|
|
241
242
|
constructor({
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
message = `Invalid input for tool ${toolName}: ${(0, import_provider4.getErrorMessage)(cause)}`
|
|
243
|
+
approvalId,
|
|
244
|
+
toolCallId,
|
|
245
|
+
reason
|
|
246
246
|
}) {
|
|
247
|
-
super({
|
|
247
|
+
super({
|
|
248
|
+
name: name4,
|
|
249
|
+
message: `Tool approval signature verification failed for approval "${approvalId}" (tool call "${toolCallId}"): ${reason}`
|
|
250
|
+
});
|
|
248
251
|
this[_a4] = true;
|
|
249
|
-
this.
|
|
250
|
-
this.
|
|
252
|
+
this.approvalId = approvalId;
|
|
253
|
+
this.toolCallId = toolCallId;
|
|
251
254
|
}
|
|
252
255
|
static isInstance(error) {
|
|
253
256
|
return import_provider4.AISDKError.hasMarker(error, marker4);
|
|
@@ -255,24 +258,23 @@ var InvalidToolInputError = class extends import_provider4.AISDKError {
|
|
|
255
258
|
};
|
|
256
259
|
_a4 = symbol4;
|
|
257
260
|
|
|
258
|
-
// src/error/tool-
|
|
261
|
+
// src/error/invalid-tool-input-error.ts
|
|
259
262
|
var import_provider5 = require("@ai-sdk/provider");
|
|
260
|
-
var name5 = "
|
|
263
|
+
var name5 = "AI_InvalidToolInputError";
|
|
261
264
|
var marker5 = `vercel.ai.error.${name5}`;
|
|
262
265
|
var symbol5 = Symbol.for(marker5);
|
|
263
266
|
var _a5;
|
|
264
|
-
var
|
|
267
|
+
var InvalidToolInputError = class extends import_provider5.AISDKError {
|
|
265
268
|
constructor({
|
|
266
|
-
|
|
267
|
-
|
|
269
|
+
toolInput,
|
|
270
|
+
toolName,
|
|
271
|
+
cause,
|
|
272
|
+
message = `Invalid input for tool ${toolName}: ${(0, import_provider5.getErrorMessage)(cause)}`
|
|
268
273
|
}) {
|
|
269
|
-
super({
|
|
270
|
-
name: name5,
|
|
271
|
-
message: `Tool call "${toolCallId}" not found for approval request "${approvalId}".`
|
|
272
|
-
});
|
|
274
|
+
super({ name: name5, message, cause });
|
|
273
275
|
this[_a5] = true;
|
|
274
|
-
this.
|
|
275
|
-
this.
|
|
276
|
+
this.toolInput = toolInput;
|
|
277
|
+
this.toolName = toolName;
|
|
276
278
|
}
|
|
277
279
|
static isInstance(error) {
|
|
278
280
|
return import_provider5.AISDKError.hasMarker(error, marker5);
|
|
@@ -280,22 +282,24 @@ var ToolCallNotFoundForApprovalError = class extends import_provider5.AISDKError
|
|
|
280
282
|
};
|
|
281
283
|
_a5 = symbol5;
|
|
282
284
|
|
|
283
|
-
// src/error/
|
|
285
|
+
// src/error/tool-call-not-found-for-approval-error.ts
|
|
284
286
|
var import_provider6 = require("@ai-sdk/provider");
|
|
285
|
-
var name6 = "
|
|
287
|
+
var name6 = "AI_ToolCallNotFoundForApprovalError";
|
|
286
288
|
var marker6 = `vercel.ai.error.${name6}`;
|
|
287
289
|
var symbol6 = Symbol.for(marker6);
|
|
288
290
|
var _a6;
|
|
289
|
-
var
|
|
290
|
-
constructor({
|
|
291
|
+
var ToolCallNotFoundForApprovalError = class extends import_provider6.AISDKError {
|
|
292
|
+
constructor({
|
|
293
|
+
toolCallId,
|
|
294
|
+
approvalId
|
|
295
|
+
}) {
|
|
291
296
|
super({
|
|
292
297
|
name: name6,
|
|
293
|
-
message: `Tool
|
|
294
|
-
", "
|
|
295
|
-
)}.`
|
|
298
|
+
message: `Tool call "${toolCallId}" not found for approval request "${approvalId}".`
|
|
296
299
|
});
|
|
297
300
|
this[_a6] = true;
|
|
298
|
-
this.
|
|
301
|
+
this.toolCallId = toolCallId;
|
|
302
|
+
this.approvalId = approvalId;
|
|
299
303
|
}
|
|
300
304
|
static isInstance(error) {
|
|
301
305
|
return import_provider6.AISDKError.hasMarker(error, marker6);
|
|
@@ -303,21 +307,22 @@ var MissingToolResultsError = class extends import_provider6.AISDKError {
|
|
|
303
307
|
};
|
|
304
308
|
_a6 = symbol6;
|
|
305
309
|
|
|
306
|
-
// src/error/
|
|
310
|
+
// src/error/missing-tool-result-error.ts
|
|
307
311
|
var import_provider7 = require("@ai-sdk/provider");
|
|
308
|
-
var name7 = "
|
|
312
|
+
var name7 = "AI_MissingToolResultsError";
|
|
309
313
|
var marker7 = `vercel.ai.error.${name7}`;
|
|
310
314
|
var symbol7 = Symbol.for(marker7);
|
|
311
315
|
var _a7;
|
|
312
|
-
var
|
|
313
|
-
constructor({
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
316
|
+
var MissingToolResultsError = class extends import_provider7.AISDKError {
|
|
317
|
+
constructor({ toolCallIds }) {
|
|
318
|
+
super({
|
|
319
|
+
name: name7,
|
|
320
|
+
message: `Tool result${toolCallIds.length > 1 ? "s are" : " is"} missing for tool call${toolCallIds.length > 1 ? "s" : ""} ${toolCallIds.join(
|
|
321
|
+
", "
|
|
322
|
+
)}.`
|
|
323
|
+
});
|
|
319
324
|
this[_a7] = true;
|
|
320
|
-
this.
|
|
325
|
+
this.toolCallIds = toolCallIds;
|
|
321
326
|
}
|
|
322
327
|
static isInstance(error) {
|
|
323
328
|
return import_provider7.AISDKError.hasMarker(error, marker7);
|
|
@@ -325,27 +330,21 @@ var NoImageGeneratedError = class extends import_provider7.AISDKError {
|
|
|
325
330
|
};
|
|
326
331
|
_a7 = symbol7;
|
|
327
332
|
|
|
328
|
-
// src/error/no-
|
|
333
|
+
// src/error/no-image-generated-error.ts
|
|
329
334
|
var import_provider8 = require("@ai-sdk/provider");
|
|
330
|
-
var name8 = "
|
|
335
|
+
var name8 = "AI_NoImageGeneratedError";
|
|
331
336
|
var marker8 = `vercel.ai.error.${name8}`;
|
|
332
337
|
var symbol8 = Symbol.for(marker8);
|
|
333
338
|
var _a8;
|
|
334
|
-
var
|
|
339
|
+
var NoImageGeneratedError = class extends import_provider8.AISDKError {
|
|
335
340
|
constructor({
|
|
336
|
-
message = "No
|
|
341
|
+
message = "No image generated.",
|
|
337
342
|
cause,
|
|
338
|
-
|
|
339
|
-
response,
|
|
340
|
-
usage,
|
|
341
|
-
finishReason
|
|
343
|
+
responses
|
|
342
344
|
}) {
|
|
343
345
|
super({ name: name8, message, cause });
|
|
344
346
|
this[_a8] = true;
|
|
345
|
-
this.
|
|
346
|
-
this.response = response;
|
|
347
|
-
this.usage = usage;
|
|
348
|
-
this.finishReason = finishReason;
|
|
347
|
+
this.responses = responses;
|
|
349
348
|
}
|
|
350
349
|
static isInstance(error) {
|
|
351
350
|
return import_provider8.AISDKError.hasMarker(error, marker8);
|
|
@@ -353,20 +352,27 @@ var NoObjectGeneratedError = class extends import_provider8.AISDKError {
|
|
|
353
352
|
};
|
|
354
353
|
_a8 = symbol8;
|
|
355
354
|
|
|
356
|
-
// src/error/no-
|
|
355
|
+
// src/error/no-object-generated-error.ts
|
|
357
356
|
var import_provider9 = require("@ai-sdk/provider");
|
|
358
|
-
var name9 = "
|
|
357
|
+
var name9 = "AI_NoObjectGeneratedError";
|
|
359
358
|
var marker9 = `vercel.ai.error.${name9}`;
|
|
360
359
|
var symbol9 = Symbol.for(marker9);
|
|
361
360
|
var _a9;
|
|
362
|
-
var
|
|
363
|
-
// used in isInstance
|
|
361
|
+
var NoObjectGeneratedError = class extends import_provider9.AISDKError {
|
|
364
362
|
constructor({
|
|
365
|
-
message = "No
|
|
366
|
-
cause
|
|
367
|
-
|
|
363
|
+
message = "No object generated.",
|
|
364
|
+
cause,
|
|
365
|
+
text: text2,
|
|
366
|
+
response,
|
|
367
|
+
usage,
|
|
368
|
+
finishReason
|
|
369
|
+
}) {
|
|
368
370
|
super({ name: name9, message, cause });
|
|
369
371
|
this[_a9] = true;
|
|
372
|
+
this.text = text2;
|
|
373
|
+
this.response = response;
|
|
374
|
+
this.usage = usage;
|
|
375
|
+
this.finishReason = finishReason;
|
|
370
376
|
}
|
|
371
377
|
static isInstance(error) {
|
|
372
378
|
return import_provider9.AISDKError.hasMarker(error, marker9);
|
|
@@ -374,20 +380,20 @@ var NoOutputGeneratedError = class extends import_provider9.AISDKError {
|
|
|
374
380
|
};
|
|
375
381
|
_a9 = symbol9;
|
|
376
382
|
|
|
377
|
-
// src/error/no-
|
|
383
|
+
// src/error/no-output-generated-error.ts
|
|
378
384
|
var import_provider10 = require("@ai-sdk/provider");
|
|
379
|
-
var name10 = "
|
|
385
|
+
var name10 = "AI_NoOutputGeneratedError";
|
|
380
386
|
var marker10 = `vercel.ai.error.${name10}`;
|
|
381
387
|
var symbol10 = Symbol.for(marker10);
|
|
382
388
|
var _a10;
|
|
383
|
-
var
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
+
var NoOutputGeneratedError = class extends import_provider10.AISDKError {
|
|
390
|
+
// used in isInstance
|
|
391
|
+
constructor({
|
|
392
|
+
message = "No output generated.",
|
|
393
|
+
cause
|
|
394
|
+
} = {}) {
|
|
395
|
+
super({ name: name10, message, cause });
|
|
389
396
|
this[_a10] = true;
|
|
390
|
-
this.responses = options.responses;
|
|
391
397
|
}
|
|
392
398
|
static isInstance(error) {
|
|
393
399
|
return import_provider10.AISDKError.hasMarker(error, marker10);
|
|
@@ -395,17 +401,17 @@ var NoSpeechGeneratedError = class extends import_provider10.AISDKError {
|
|
|
395
401
|
};
|
|
396
402
|
_a10 = symbol10;
|
|
397
403
|
|
|
398
|
-
// src/error/no-
|
|
404
|
+
// src/error/no-speech-generated-error.ts
|
|
399
405
|
var import_provider11 = require("@ai-sdk/provider");
|
|
400
|
-
var name11 = "
|
|
406
|
+
var name11 = "AI_NoSpeechGeneratedError";
|
|
401
407
|
var marker11 = `vercel.ai.error.${name11}`;
|
|
402
408
|
var symbol11 = Symbol.for(marker11);
|
|
403
409
|
var _a11;
|
|
404
|
-
var
|
|
410
|
+
var NoSpeechGeneratedError = class extends import_provider11.AISDKError {
|
|
405
411
|
constructor(options) {
|
|
406
412
|
super({
|
|
407
413
|
name: name11,
|
|
408
|
-
message: "No
|
|
414
|
+
message: "No speech audio generated."
|
|
409
415
|
});
|
|
410
416
|
this[_a11] = true;
|
|
411
417
|
this.responses = options.responses;
|
|
@@ -416,30 +422,51 @@ var NoTranscriptGeneratedError = class extends import_provider11.AISDKError {
|
|
|
416
422
|
};
|
|
417
423
|
_a11 = symbol11;
|
|
418
424
|
|
|
419
|
-
// src/error/no-
|
|
425
|
+
// src/error/no-transcript-generated-error.ts
|
|
420
426
|
var import_provider12 = require("@ai-sdk/provider");
|
|
421
|
-
var name12 = "
|
|
427
|
+
var name12 = "AI_NoTranscriptGeneratedError";
|
|
422
428
|
var marker12 = `vercel.ai.error.${name12}`;
|
|
423
429
|
var symbol12 = Symbol.for(marker12);
|
|
424
430
|
var _a12;
|
|
425
|
-
var
|
|
431
|
+
var NoTranscriptGeneratedError = class extends import_provider12.AISDKError {
|
|
432
|
+
constructor(options) {
|
|
433
|
+
super({
|
|
434
|
+
name: name12,
|
|
435
|
+
message: "No transcript generated."
|
|
436
|
+
});
|
|
437
|
+
this[_a12] = true;
|
|
438
|
+
this.responses = options.responses;
|
|
439
|
+
}
|
|
440
|
+
static isInstance(error) {
|
|
441
|
+
return import_provider12.AISDKError.hasMarker(error, marker12);
|
|
442
|
+
}
|
|
443
|
+
};
|
|
444
|
+
_a12 = symbol12;
|
|
445
|
+
|
|
446
|
+
// src/error/no-video-generated-error.ts
|
|
447
|
+
var import_provider13 = require("@ai-sdk/provider");
|
|
448
|
+
var name13 = "AI_NoVideoGeneratedError";
|
|
449
|
+
var marker13 = `vercel.ai.error.${name13}`;
|
|
450
|
+
var symbol13 = Symbol.for(marker13);
|
|
451
|
+
var _a13;
|
|
452
|
+
var NoVideoGeneratedError = class extends import_provider13.AISDKError {
|
|
426
453
|
constructor({
|
|
427
454
|
message = "No video generated.",
|
|
428
455
|
cause,
|
|
429
456
|
responses
|
|
430
457
|
}) {
|
|
431
|
-
super({ name:
|
|
432
|
-
this[
|
|
458
|
+
super({ name: name13, message, cause });
|
|
459
|
+
this[_a13] = true;
|
|
433
460
|
this.responses = responses;
|
|
434
461
|
}
|
|
435
462
|
static isInstance(error) {
|
|
436
|
-
return
|
|
463
|
+
return import_provider13.AISDKError.hasMarker(error, marker13);
|
|
437
464
|
}
|
|
438
465
|
/**
|
|
439
466
|
* @deprecated use `isInstance` instead
|
|
440
467
|
*/
|
|
441
468
|
static isNoVideoGeneratedError(error) {
|
|
442
|
-
return error instanceof Error && error.name ===
|
|
469
|
+
return error instanceof Error && error.name === name13 && typeof error.responses !== "undefined" ? true : false;
|
|
443
470
|
}
|
|
444
471
|
/**
|
|
445
472
|
* @deprecated Do not use this method. It will be removed in the next major version.
|
|
@@ -454,56 +481,56 @@ var NoVideoGeneratedError = class extends import_provider12.AISDKError {
|
|
|
454
481
|
};
|
|
455
482
|
}
|
|
456
483
|
};
|
|
457
|
-
|
|
484
|
+
_a13 = symbol13;
|
|
458
485
|
|
|
459
486
|
// src/error/no-such-tool-error.ts
|
|
460
|
-
var
|
|
461
|
-
var
|
|
462
|
-
var
|
|
463
|
-
var
|
|
464
|
-
var
|
|
465
|
-
var NoSuchToolError = class extends
|
|
487
|
+
var import_provider14 = require("@ai-sdk/provider");
|
|
488
|
+
var name14 = "AI_NoSuchToolError";
|
|
489
|
+
var marker14 = `vercel.ai.error.${name14}`;
|
|
490
|
+
var symbol14 = Symbol.for(marker14);
|
|
491
|
+
var _a14;
|
|
492
|
+
var NoSuchToolError = class extends import_provider14.AISDKError {
|
|
466
493
|
constructor({
|
|
467
494
|
toolName,
|
|
468
495
|
availableTools = void 0,
|
|
469
496
|
message = `Model tried to call unavailable tool '${toolName}'. ${availableTools === void 0 ? "No tools are available." : `Available tools: ${availableTools.join(", ")}.`}`
|
|
470
497
|
}) {
|
|
471
|
-
super({ name:
|
|
472
|
-
this[
|
|
498
|
+
super({ name: name14, message });
|
|
499
|
+
this[_a14] = true;
|
|
473
500
|
this.toolName = toolName;
|
|
474
501
|
this.availableTools = availableTools;
|
|
475
502
|
}
|
|
476
503
|
static isInstance(error) {
|
|
477
|
-
return
|
|
504
|
+
return import_provider14.AISDKError.hasMarker(error, marker14);
|
|
478
505
|
}
|
|
479
506
|
};
|
|
480
|
-
|
|
507
|
+
_a14 = symbol14;
|
|
481
508
|
|
|
482
509
|
// src/error/tool-call-repair-error.ts
|
|
483
|
-
var
|
|
484
|
-
var
|
|
485
|
-
var
|
|
486
|
-
var
|
|
487
|
-
var
|
|
488
|
-
var ToolCallRepairError = class extends
|
|
510
|
+
var import_provider15 = require("@ai-sdk/provider");
|
|
511
|
+
var name15 = "AI_ToolCallRepairError";
|
|
512
|
+
var marker15 = `vercel.ai.error.${name15}`;
|
|
513
|
+
var symbol15 = Symbol.for(marker15);
|
|
514
|
+
var _a15;
|
|
515
|
+
var ToolCallRepairError = class extends import_provider15.AISDKError {
|
|
489
516
|
constructor({
|
|
490
517
|
cause,
|
|
491
518
|
originalError,
|
|
492
|
-
message = `Error repairing tool call: ${(0,
|
|
519
|
+
message = `Error repairing tool call: ${(0, import_provider15.getErrorMessage)(cause)}`
|
|
493
520
|
}) {
|
|
494
|
-
super({ name:
|
|
495
|
-
this[
|
|
521
|
+
super({ name: name15, message, cause });
|
|
522
|
+
this[_a15] = true;
|
|
496
523
|
this.originalError = originalError;
|
|
497
524
|
}
|
|
498
525
|
static isInstance(error) {
|
|
499
|
-
return
|
|
526
|
+
return import_provider15.AISDKError.hasMarker(error, marker15);
|
|
500
527
|
}
|
|
501
528
|
};
|
|
502
|
-
|
|
529
|
+
_a15 = symbol15;
|
|
503
530
|
|
|
504
531
|
// src/error/unsupported-model-version-error.ts
|
|
505
|
-
var
|
|
506
|
-
var UnsupportedModelVersionError = class extends
|
|
532
|
+
var import_provider16 = require("@ai-sdk/provider");
|
|
533
|
+
var UnsupportedModelVersionError = class extends import_provider16.AISDKError {
|
|
507
534
|
constructor(options) {
|
|
508
535
|
super({
|
|
509
536
|
name: "AI_UnsupportedModelVersionError",
|
|
@@ -516,118 +543,118 @@ var UnsupportedModelVersionError = class extends import_provider15.AISDKError {
|
|
|
516
543
|
};
|
|
517
544
|
|
|
518
545
|
// src/error/ui-message-stream-error.ts
|
|
519
|
-
var
|
|
520
|
-
var
|
|
521
|
-
var
|
|
522
|
-
var
|
|
523
|
-
var
|
|
524
|
-
var UIMessageStreamError = class extends
|
|
546
|
+
var import_provider17 = require("@ai-sdk/provider");
|
|
547
|
+
var name16 = "AI_UIMessageStreamError";
|
|
548
|
+
var marker16 = `vercel.ai.error.${name16}`;
|
|
549
|
+
var symbol16 = Symbol.for(marker16);
|
|
550
|
+
var _a16;
|
|
551
|
+
var UIMessageStreamError = class extends import_provider17.AISDKError {
|
|
525
552
|
constructor({
|
|
526
553
|
chunkType,
|
|
527
554
|
chunkId,
|
|
528
555
|
message
|
|
529
556
|
}) {
|
|
530
|
-
super({ name:
|
|
531
|
-
this[
|
|
557
|
+
super({ name: name16, message });
|
|
558
|
+
this[_a16] = true;
|
|
532
559
|
this.chunkType = chunkType;
|
|
533
560
|
this.chunkId = chunkId;
|
|
534
561
|
}
|
|
535
562
|
static isInstance(error) {
|
|
536
|
-
return
|
|
563
|
+
return import_provider17.AISDKError.hasMarker(error, marker16);
|
|
537
564
|
}
|
|
538
565
|
};
|
|
539
|
-
|
|
566
|
+
_a16 = symbol16;
|
|
540
567
|
|
|
541
568
|
// src/prompt/invalid-data-content-error.ts
|
|
542
|
-
var
|
|
543
|
-
var
|
|
544
|
-
var
|
|
545
|
-
var
|
|
546
|
-
var
|
|
547
|
-
var InvalidDataContentError = class extends
|
|
569
|
+
var import_provider18 = require("@ai-sdk/provider");
|
|
570
|
+
var name17 = "AI_InvalidDataContentError";
|
|
571
|
+
var marker17 = `vercel.ai.error.${name17}`;
|
|
572
|
+
var symbol17 = Symbol.for(marker17);
|
|
573
|
+
var _a17;
|
|
574
|
+
var InvalidDataContentError = class extends import_provider18.AISDKError {
|
|
548
575
|
constructor({
|
|
549
576
|
content,
|
|
550
577
|
cause,
|
|
551
578
|
message = `Invalid data content. Expected a base64 string, Uint8Array, ArrayBuffer, or Buffer, but got ${typeof content}.`
|
|
552
579
|
}) {
|
|
553
|
-
super({ name:
|
|
554
|
-
this[
|
|
580
|
+
super({ name: name17, message, cause });
|
|
581
|
+
this[_a17] = true;
|
|
555
582
|
this.content = content;
|
|
556
583
|
}
|
|
557
584
|
static isInstance(error) {
|
|
558
|
-
return
|
|
585
|
+
return import_provider18.AISDKError.hasMarker(error, marker17);
|
|
559
586
|
}
|
|
560
587
|
};
|
|
561
|
-
|
|
588
|
+
_a17 = symbol17;
|
|
562
589
|
|
|
563
590
|
// src/prompt/invalid-message-role-error.ts
|
|
564
|
-
var
|
|
565
|
-
var
|
|
566
|
-
var
|
|
567
|
-
var
|
|
568
|
-
var
|
|
569
|
-
var InvalidMessageRoleError = class extends
|
|
591
|
+
var import_provider19 = require("@ai-sdk/provider");
|
|
592
|
+
var name18 = "AI_InvalidMessageRoleError";
|
|
593
|
+
var marker18 = `vercel.ai.error.${name18}`;
|
|
594
|
+
var symbol18 = Symbol.for(marker18);
|
|
595
|
+
var _a18;
|
|
596
|
+
var InvalidMessageRoleError = class extends import_provider19.AISDKError {
|
|
570
597
|
constructor({
|
|
571
598
|
role,
|
|
572
599
|
message = `Invalid message role: '${role}'. Must be one of: "system", "user", "assistant", "tool".`
|
|
573
600
|
}) {
|
|
574
|
-
super({ name:
|
|
575
|
-
this[
|
|
601
|
+
super({ name: name18, message });
|
|
602
|
+
this[_a18] = true;
|
|
576
603
|
this.role = role;
|
|
577
604
|
}
|
|
578
605
|
static isInstance(error) {
|
|
579
|
-
return
|
|
606
|
+
return import_provider19.AISDKError.hasMarker(error, marker18);
|
|
580
607
|
}
|
|
581
608
|
};
|
|
582
|
-
|
|
609
|
+
_a18 = symbol18;
|
|
583
610
|
|
|
584
611
|
// src/prompt/message-conversion-error.ts
|
|
585
|
-
var
|
|
586
|
-
var
|
|
587
|
-
var
|
|
588
|
-
var
|
|
589
|
-
var
|
|
590
|
-
var MessageConversionError = class extends
|
|
612
|
+
var import_provider20 = require("@ai-sdk/provider");
|
|
613
|
+
var name19 = "AI_MessageConversionError";
|
|
614
|
+
var marker19 = `vercel.ai.error.${name19}`;
|
|
615
|
+
var symbol19 = Symbol.for(marker19);
|
|
616
|
+
var _a19;
|
|
617
|
+
var MessageConversionError = class extends import_provider20.AISDKError {
|
|
591
618
|
constructor({
|
|
592
619
|
originalMessage,
|
|
593
620
|
message
|
|
594
621
|
}) {
|
|
595
|
-
super({ name:
|
|
596
|
-
this[
|
|
622
|
+
super({ name: name19, message });
|
|
623
|
+
this[_a19] = true;
|
|
597
624
|
this.originalMessage = originalMessage;
|
|
598
625
|
}
|
|
599
626
|
static isInstance(error) {
|
|
600
|
-
return
|
|
627
|
+
return import_provider20.AISDKError.hasMarker(error, marker19);
|
|
601
628
|
}
|
|
602
629
|
};
|
|
603
|
-
|
|
630
|
+
_a19 = symbol19;
|
|
604
631
|
|
|
605
632
|
// src/error/index.ts
|
|
606
633
|
var import_provider_utils = require("@ai-sdk/provider-utils");
|
|
607
634
|
|
|
608
635
|
// src/util/retry-error.ts
|
|
609
|
-
var
|
|
610
|
-
var
|
|
611
|
-
var
|
|
612
|
-
var
|
|
613
|
-
var
|
|
614
|
-
var RetryError = class extends
|
|
636
|
+
var import_provider21 = require("@ai-sdk/provider");
|
|
637
|
+
var name20 = "AI_RetryError";
|
|
638
|
+
var marker20 = `vercel.ai.error.${name20}`;
|
|
639
|
+
var symbol20 = Symbol.for(marker20);
|
|
640
|
+
var _a20;
|
|
641
|
+
var RetryError = class extends import_provider21.AISDKError {
|
|
615
642
|
constructor({
|
|
616
643
|
message,
|
|
617
644
|
reason,
|
|
618
645
|
errors
|
|
619
646
|
}) {
|
|
620
|
-
super({ name:
|
|
621
|
-
this[
|
|
647
|
+
super({ name: name20, message });
|
|
648
|
+
this[_a20] = true;
|
|
622
649
|
this.reason = reason;
|
|
623
650
|
this.errors = errors;
|
|
624
651
|
this.lastError = errors[errors.length - 1];
|
|
625
652
|
}
|
|
626
653
|
static isInstance(error) {
|
|
627
|
-
return
|
|
654
|
+
return import_provider21.AISDKError.hasMarker(error, marker20);
|
|
628
655
|
}
|
|
629
656
|
};
|
|
630
|
-
|
|
657
|
+
_a20 = symbol20;
|
|
631
658
|
|
|
632
659
|
// src/util/as-array.ts
|
|
633
660
|
function asArray(value) {
|
|
@@ -907,7 +934,7 @@ function resolveEmbeddingModel(model) {
|
|
|
907
934
|
return getGlobalProvider().embeddingModel(model);
|
|
908
935
|
}
|
|
909
936
|
function resolveTranscriptionModel(model) {
|
|
910
|
-
var
|
|
937
|
+
var _a22, _b;
|
|
911
938
|
if (typeof model !== "string") {
|
|
912
939
|
if (model.specificationVersion !== "v3" && model.specificationVersion !== "v2") {
|
|
913
940
|
const unsupportedModel = model;
|
|
@@ -919,10 +946,10 @@ function resolveTranscriptionModel(model) {
|
|
|
919
946
|
}
|
|
920
947
|
return asTranscriptionModelV3(model);
|
|
921
948
|
}
|
|
922
|
-
return (_b = (
|
|
949
|
+
return (_b = (_a22 = getGlobalProvider()).transcriptionModel) == null ? void 0 : _b.call(_a22, model);
|
|
923
950
|
}
|
|
924
951
|
function resolveSpeechModel(model) {
|
|
925
|
-
var
|
|
952
|
+
var _a22, _b;
|
|
926
953
|
if (typeof model !== "string") {
|
|
927
954
|
if (model.specificationVersion !== "v3" && model.specificationVersion !== "v2") {
|
|
928
955
|
const unsupportedModel = model;
|
|
@@ -934,7 +961,7 @@ function resolveSpeechModel(model) {
|
|
|
934
961
|
}
|
|
935
962
|
return asSpeechModelV3(model);
|
|
936
963
|
}
|
|
937
|
-
return (_b = (
|
|
964
|
+
return (_b = (_a22 = getGlobalProvider()).speechModel) == null ? void 0 : _b.call(_a22, model);
|
|
938
965
|
}
|
|
939
966
|
function resolveImageModel(model) {
|
|
940
967
|
if (typeof model !== "string") {
|
|
@@ -993,8 +1020,8 @@ function resolveRerankingModel(model) {
|
|
|
993
1020
|
return model;
|
|
994
1021
|
}
|
|
995
1022
|
function getGlobalProvider() {
|
|
996
|
-
var
|
|
997
|
-
return (
|
|
1023
|
+
var _a22;
|
|
1024
|
+
return (_a22 = globalThis.AI_SDK_DEFAULT_PROVIDER) != null ? _a22 : import_gateway.gateway;
|
|
998
1025
|
}
|
|
999
1026
|
|
|
1000
1027
|
// src/prompt/call-settings.ts
|
|
@@ -1254,7 +1281,7 @@ function detectMediaType({
|
|
|
1254
1281
|
var import_provider_utils3 = require("@ai-sdk/provider-utils");
|
|
1255
1282
|
|
|
1256
1283
|
// src/version.ts
|
|
1257
|
-
var VERSION = true ? "6.0.
|
|
1284
|
+
var VERSION = true ? "6.0.202" : "0.0.0-test";
|
|
1258
1285
|
|
|
1259
1286
|
// src/util/download/download.ts
|
|
1260
1287
|
var download = async ({
|
|
@@ -1262,7 +1289,7 @@ var download = async ({
|
|
|
1262
1289
|
maxBytes,
|
|
1263
1290
|
abortSignal
|
|
1264
1291
|
}) => {
|
|
1265
|
-
var
|
|
1292
|
+
var _a22;
|
|
1266
1293
|
const urlText = url.toString();
|
|
1267
1294
|
(0, import_provider_utils3.validateDownloadUrl)(urlText);
|
|
1268
1295
|
try {
|
|
@@ -1291,7 +1318,7 @@ var download = async ({
|
|
|
1291
1318
|
});
|
|
1292
1319
|
return {
|
|
1293
1320
|
data,
|
|
1294
|
-
mediaType: (
|
|
1321
|
+
mediaType: (_a22 = response.headers.get("content-type")) != null ? _a22 : void 0
|
|
1295
1322
|
};
|
|
1296
1323
|
} catch (error) {
|
|
1297
1324
|
if (import_provider_utils3.DownloadError.isInstance(error)) {
|
|
@@ -1309,7 +1336,7 @@ var createDefaultDownloadFunction = (download2 = download) => (requestedDownload
|
|
|
1309
1336
|
);
|
|
1310
1337
|
|
|
1311
1338
|
// src/prompt/data-content.ts
|
|
1312
|
-
var
|
|
1339
|
+
var import_provider23 = require("@ai-sdk/provider");
|
|
1313
1340
|
var import_provider_utils4 = require("@ai-sdk/provider-utils");
|
|
1314
1341
|
var import_v4 = require("zod/v4");
|
|
1315
1342
|
|
|
@@ -1337,8 +1364,8 @@ var dataContentSchema = import_v4.z.union([
|
|
|
1337
1364
|
import_v4.z.custom(
|
|
1338
1365
|
// Buffer might not be available in some environments such as CloudFlare:
|
|
1339
1366
|
(value) => {
|
|
1340
|
-
var
|
|
1341
|
-
return (_b = (
|
|
1367
|
+
var _a22, _b;
|
|
1368
|
+
return (_b = (_a22 = globalThis.Buffer) == null ? void 0 : _a22.isBuffer(value)) != null ? _b : false;
|
|
1342
1369
|
},
|
|
1343
1370
|
{ message: "Must be a Buffer" }
|
|
1344
1371
|
)
|
|
@@ -1361,7 +1388,7 @@ function convertToLanguageModelV3DataContent(content) {
|
|
|
1361
1388
|
content.toString()
|
|
1362
1389
|
);
|
|
1363
1390
|
if (dataUrlMediaType == null || base64Content == null) {
|
|
1364
|
-
throw new
|
|
1391
|
+
throw new import_provider23.AISDKError({
|
|
1365
1392
|
name: "InvalidDataContentError",
|
|
1366
1393
|
message: `Invalid data URL format in content ${content.toString()}`
|
|
1367
1394
|
});
|
|
@@ -1644,7 +1671,7 @@ function convertToLanguageModelMessage({
|
|
|
1644
1671
|
}
|
|
1645
1672
|
}
|
|
1646
1673
|
async function downloadAssets(messages, download2, supportedUrls) {
|
|
1647
|
-
var
|
|
1674
|
+
var _a22;
|
|
1648
1675
|
const downloadableFiles = [];
|
|
1649
1676
|
for (const message of messages) {
|
|
1650
1677
|
if (message.role === "user" && Array.isArray(message.content)) {
|
|
@@ -1652,7 +1679,7 @@ async function downloadAssets(messages, download2, supportedUrls) {
|
|
|
1652
1679
|
if (part.type === "image" || part.type === "file") {
|
|
1653
1680
|
downloadableFiles.push({
|
|
1654
1681
|
data: part.type === "image" ? part.image : part.data,
|
|
1655
|
-
mediaType: (
|
|
1682
|
+
mediaType: (_a22 = part.mediaType) != null ? _a22 : part.type === "image" ? "image/*" : void 0
|
|
1656
1683
|
});
|
|
1657
1684
|
}
|
|
1658
1685
|
}
|
|
@@ -1704,7 +1731,7 @@ async function downloadAssets(messages, download2, supportedUrls) {
|
|
|
1704
1731
|
);
|
|
1705
1732
|
}
|
|
1706
1733
|
function convertPartToLanguageModelPart(part, downloadedAssets) {
|
|
1707
|
-
var
|
|
1734
|
+
var _a22;
|
|
1708
1735
|
if (part.type === "text") {
|
|
1709
1736
|
return {
|
|
1710
1737
|
type: "text",
|
|
@@ -1737,7 +1764,7 @@ function convertPartToLanguageModelPart(part, downloadedAssets) {
|
|
|
1737
1764
|
switch (type) {
|
|
1738
1765
|
case "image": {
|
|
1739
1766
|
if (data instanceof Uint8Array || typeof data === "string") {
|
|
1740
|
-
mediaType = (
|
|
1767
|
+
mediaType = (_a22 = detectMediaType({ data, signatures: imageMediaTypeSignatures })) != null ? _a22 : mediaType;
|
|
1741
1768
|
}
|
|
1742
1769
|
return {
|
|
1743
1770
|
type: "file",
|
|
@@ -1772,14 +1799,14 @@ function mapToolResultOutput({
|
|
|
1772
1799
|
return {
|
|
1773
1800
|
type: "content",
|
|
1774
1801
|
value: output.value.map((item) => {
|
|
1775
|
-
var
|
|
1802
|
+
var _a22, _b;
|
|
1776
1803
|
if (item.type === "image-url") {
|
|
1777
1804
|
const downloadedFile = downloadedAssets[new URL(item.url).toString()];
|
|
1778
1805
|
if (downloadedFile) {
|
|
1779
1806
|
return {
|
|
1780
1807
|
type: "image-data",
|
|
1781
1808
|
data: convertDataContentToBase64String(downloadedFile.data),
|
|
1782
|
-
mediaType: (
|
|
1809
|
+
mediaType: (_a22 = downloadedFile.mediaType) != null ? _a22 : "image/*",
|
|
1783
1810
|
providerOptions: item.providerOptions
|
|
1784
1811
|
};
|
|
1785
1812
|
}
|
|
@@ -1817,7 +1844,7 @@ function mapToolResultOutput({
|
|
|
1817
1844
|
}
|
|
1818
1845
|
|
|
1819
1846
|
// src/prompt/create-tool-model-output.ts
|
|
1820
|
-
var
|
|
1847
|
+
var import_provider24 = require("@ai-sdk/provider");
|
|
1821
1848
|
async function createToolModelOutput({
|
|
1822
1849
|
toolCallId,
|
|
1823
1850
|
input,
|
|
@@ -1826,7 +1853,7 @@ async function createToolModelOutput({
|
|
|
1826
1853
|
errorMode
|
|
1827
1854
|
}) {
|
|
1828
1855
|
if (errorMode === "text") {
|
|
1829
|
-
return { type: "error-text", value: (0,
|
|
1856
|
+
return { type: "error-text", value: (0, import_provider24.getErrorMessage)(output) };
|
|
1830
1857
|
} else if (errorMode === "json") {
|
|
1831
1858
|
return { type: "error-json", value: toJSONValue(output) };
|
|
1832
1859
|
}
|
|
@@ -1953,10 +1980,10 @@ async function prepareToolsAndToolChoice({
|
|
|
1953
1980
|
};
|
|
1954
1981
|
}
|
|
1955
1982
|
const filteredTools = activeTools != null ? Object.entries(tools).filter(
|
|
1956
|
-
([
|
|
1983
|
+
([name22]) => activeTools.includes(name22)
|
|
1957
1984
|
) : Object.entries(tools);
|
|
1958
1985
|
const languageModelTools = [];
|
|
1959
|
-
for (const [
|
|
1986
|
+
for (const [name22, tool2] of filteredTools) {
|
|
1960
1987
|
const toolType = tool2.type;
|
|
1961
1988
|
switch (toolType) {
|
|
1962
1989
|
case void 0:
|
|
@@ -1964,7 +1991,7 @@ async function prepareToolsAndToolChoice({
|
|
|
1964
1991
|
case "function":
|
|
1965
1992
|
languageModelTools.push({
|
|
1966
1993
|
type: "function",
|
|
1967
|
-
name:
|
|
1994
|
+
name: name22,
|
|
1968
1995
|
description: tool2.description,
|
|
1969
1996
|
inputSchema: await (0, import_provider_utils6.asSchema)(tool2.inputSchema).jsonSchema,
|
|
1970
1997
|
...tool2.inputExamples != null ? { inputExamples: tool2.inputExamples } : {},
|
|
@@ -1975,7 +2002,7 @@ async function prepareToolsAndToolChoice({
|
|
|
1975
2002
|
case "provider":
|
|
1976
2003
|
languageModelTools.push({
|
|
1977
2004
|
type: "provider",
|
|
1978
|
-
name:
|
|
2005
|
+
name: name22,
|
|
1979
2006
|
id: tool2.id,
|
|
1980
2007
|
args: tool2.args
|
|
1981
2008
|
});
|
|
@@ -1993,7 +2020,7 @@ async function prepareToolsAndToolChoice({
|
|
|
1993
2020
|
}
|
|
1994
2021
|
|
|
1995
2022
|
// src/prompt/standardize-prompt.ts
|
|
1996
|
-
var
|
|
2023
|
+
var import_provider25 = require("@ai-sdk/provider");
|
|
1997
2024
|
var import_provider_utils7 = require("@ai-sdk/provider-utils");
|
|
1998
2025
|
var import_v46 = require("zod/v4");
|
|
1999
2026
|
|
|
@@ -2211,19 +2238,19 @@ async function standardizePrompt({
|
|
|
2211
2238
|
messages
|
|
2212
2239
|
}) {
|
|
2213
2240
|
if (prompt == null && messages == null) {
|
|
2214
|
-
throw new
|
|
2241
|
+
throw new import_provider25.InvalidPromptError({
|
|
2215
2242
|
prompt,
|
|
2216
2243
|
message: "prompt or messages must be defined"
|
|
2217
2244
|
});
|
|
2218
2245
|
}
|
|
2219
2246
|
if (prompt != null && messages != null) {
|
|
2220
|
-
throw new
|
|
2247
|
+
throw new import_provider25.InvalidPromptError({
|
|
2221
2248
|
prompt,
|
|
2222
2249
|
message: "prompt and messages cannot be defined at the same time"
|
|
2223
2250
|
});
|
|
2224
2251
|
}
|
|
2225
2252
|
if (typeof system !== "string" && !asArray(system).every((message) => message.role === "system")) {
|
|
2226
|
-
throw new
|
|
2253
|
+
throw new import_provider25.InvalidPromptError({
|
|
2227
2254
|
prompt,
|
|
2228
2255
|
message: "system must be a string, SystemModelMessage, or array of SystemModelMessage"
|
|
2229
2256
|
});
|
|
@@ -2233,20 +2260,20 @@ async function standardizePrompt({
|
|
|
2233
2260
|
} else if (prompt != null && Array.isArray(prompt)) {
|
|
2234
2261
|
messages = prompt;
|
|
2235
2262
|
} else if (messages == null) {
|
|
2236
|
-
throw new
|
|
2263
|
+
throw new import_provider25.InvalidPromptError({
|
|
2237
2264
|
prompt,
|
|
2238
2265
|
message: "prompt or messages must be defined"
|
|
2239
2266
|
});
|
|
2240
2267
|
}
|
|
2241
2268
|
if (messages.length === 0) {
|
|
2242
|
-
throw new
|
|
2269
|
+
throw new import_provider25.InvalidPromptError({
|
|
2243
2270
|
prompt,
|
|
2244
2271
|
message: "messages must not be empty"
|
|
2245
2272
|
});
|
|
2246
2273
|
}
|
|
2247
2274
|
if (messages.some((message) => message.role === "system")) {
|
|
2248
2275
|
if (allowSystemInMessages === false) {
|
|
2249
|
-
throw new
|
|
2276
|
+
throw new import_provider25.InvalidPromptError({
|
|
2250
2277
|
prompt,
|
|
2251
2278
|
message: "System messages are not allowed in the prompt or messages fields. Use the system option instead."
|
|
2252
2279
|
});
|
|
@@ -2262,7 +2289,7 @@ async function standardizePrompt({
|
|
|
2262
2289
|
schema: import_v46.z.array(modelMessageSchema)
|
|
2263
2290
|
});
|
|
2264
2291
|
if (!validationResult.success) {
|
|
2265
|
-
throw new
|
|
2292
|
+
throw new import_provider25.InvalidPromptError({
|
|
2266
2293
|
prompt,
|
|
2267
2294
|
message: "The messages do not match the ModelMessage[] schema.",
|
|
2268
2295
|
cause: validationResult.error
|
|
@@ -2273,14 +2300,14 @@ async function standardizePrompt({
|
|
|
2273
2300
|
|
|
2274
2301
|
// src/prompt/wrap-gateway-error.ts
|
|
2275
2302
|
var import_gateway2 = require("@ai-sdk/gateway");
|
|
2276
|
-
var
|
|
2303
|
+
var import_provider26 = require("@ai-sdk/provider");
|
|
2277
2304
|
function wrapGatewayError(error) {
|
|
2278
2305
|
if (!import_gateway2.GatewayAuthenticationError.isInstance(error))
|
|
2279
2306
|
return error;
|
|
2280
2307
|
const isProductionEnv = (process == null ? void 0 : process.env.NODE_ENV) === "production";
|
|
2281
2308
|
const moreInfoURL = "https://ai-sdk.dev/unauthenticated-ai-gateway";
|
|
2282
2309
|
if (isProductionEnv) {
|
|
2283
|
-
return new
|
|
2310
|
+
return new import_provider26.AISDKError({
|
|
2284
2311
|
name: "GatewayError",
|
|
2285
2312
|
message: `Unauthenticated. Configure AI_GATEWAY_API_KEY or use a provider module. Learn more: ${moreInfoURL}`
|
|
2286
2313
|
});
|
|
@@ -2321,7 +2348,7 @@ function getBaseTelemetryAttributes({
|
|
|
2321
2348
|
telemetry,
|
|
2322
2349
|
headers
|
|
2323
2350
|
}) {
|
|
2324
|
-
var
|
|
2351
|
+
var _a22;
|
|
2325
2352
|
return {
|
|
2326
2353
|
"ai.model.provider": model.provider,
|
|
2327
2354
|
"ai.model.id": model.modelId,
|
|
@@ -2340,7 +2367,7 @@ function getBaseTelemetryAttributes({
|
|
|
2340
2367
|
return attributes;
|
|
2341
2368
|
}, {}),
|
|
2342
2369
|
// add metadata as attributes:
|
|
2343
|
-
...Object.entries((
|
|
2370
|
+
...Object.entries((_a22 = telemetry == null ? void 0 : telemetry.metadata) != null ? _a22 : {}).reduce(
|
|
2344
2371
|
(attributes, [key, value]) => {
|
|
2345
2372
|
attributes[`ai.telemetry.metadata.${key}`] = value;
|
|
2346
2373
|
return attributes;
|
|
@@ -2365,7 +2392,7 @@ var noopTracer = {
|
|
|
2365
2392
|
startSpan() {
|
|
2366
2393
|
return noopSpan;
|
|
2367
2394
|
},
|
|
2368
|
-
startActiveSpan(
|
|
2395
|
+
startActiveSpan(name22, arg1, arg2, arg3) {
|
|
2369
2396
|
if (typeof arg1 === "function") {
|
|
2370
2397
|
return arg1(noopSpan);
|
|
2371
2398
|
}
|
|
@@ -2435,14 +2462,14 @@ function getTracer({
|
|
|
2435
2462
|
// src/telemetry/record-span.ts
|
|
2436
2463
|
var import_api2 = require("@opentelemetry/api");
|
|
2437
2464
|
async function recordSpan({
|
|
2438
|
-
name:
|
|
2465
|
+
name: name22,
|
|
2439
2466
|
tracer,
|
|
2440
2467
|
attributes,
|
|
2441
2468
|
fn,
|
|
2442
2469
|
endWhenDone = true
|
|
2443
2470
|
}) {
|
|
2444
2471
|
return tracer.startActiveSpan(
|
|
2445
|
-
|
|
2472
|
+
name22,
|
|
2446
2473
|
{ attributes: await attributes },
|
|
2447
2474
|
async (span) => {
|
|
2448
2475
|
const ctx = import_api2.context.active();
|
|
@@ -2540,15 +2567,15 @@ function registerTelemetryIntegration(integration) {
|
|
|
2540
2567
|
globalThis.AI_SDK_TELEMETRY_INTEGRATIONS.push(integration);
|
|
2541
2568
|
}
|
|
2542
2569
|
function getGlobalTelemetryIntegrations() {
|
|
2543
|
-
var
|
|
2544
|
-
return (
|
|
2570
|
+
var _a22;
|
|
2571
|
+
return (_a22 = globalThis.AI_SDK_TELEMETRY_INTEGRATIONS) != null ? _a22 : [];
|
|
2545
2572
|
}
|
|
2546
2573
|
|
|
2547
2574
|
// src/telemetry/get-global-telemetry-integration.ts
|
|
2548
2575
|
function bindTelemetryIntegration(integration) {
|
|
2549
|
-
var
|
|
2576
|
+
var _a22, _b, _c, _d, _e, _f;
|
|
2550
2577
|
return {
|
|
2551
|
-
onStart: (
|
|
2578
|
+
onStart: (_a22 = integration.onStart) == null ? void 0 : _a22.bind(integration),
|
|
2552
2579
|
onStepStart: (_b = integration.onStepStart) == null ? void 0 : _b.bind(integration),
|
|
2553
2580
|
onToolCallStart: (_c = integration.onToolCallStart) == null ? void 0 : _c.bind(integration),
|
|
2554
2581
|
onToolCallFinish: (_d = integration.onToolCallFinish) == null ? void 0 : _d.bind(integration),
|
|
@@ -2632,12 +2659,12 @@ function createNullLanguageModelUsage() {
|
|
|
2632
2659
|
};
|
|
2633
2660
|
}
|
|
2634
2661
|
function addLanguageModelUsage(usage1, usage2) {
|
|
2635
|
-
var
|
|
2662
|
+
var _a22, _b, _c, _d, _e, _f, _g, _h, _i, _j;
|
|
2636
2663
|
return {
|
|
2637
2664
|
inputTokens: addTokenCounts(usage1.inputTokens, usage2.inputTokens),
|
|
2638
2665
|
inputTokenDetails: {
|
|
2639
2666
|
noCacheTokens: addTokenCounts(
|
|
2640
|
-
(
|
|
2667
|
+
(_a22 = usage1.inputTokenDetails) == null ? void 0 : _a22.noCacheTokens,
|
|
2641
2668
|
(_b = usage2.inputTokenDetails) == null ? void 0 : _b.noCacheTokens
|
|
2642
2669
|
),
|
|
2643
2670
|
cacheReadTokens: addTokenCounts(
|
|
@@ -2719,14 +2746,14 @@ function mergeObjects(base, overrides) {
|
|
|
2719
2746
|
}
|
|
2720
2747
|
|
|
2721
2748
|
// src/util/retry-with-exponential-backoff.ts
|
|
2722
|
-
var
|
|
2749
|
+
var import_provider27 = require("@ai-sdk/provider");
|
|
2723
2750
|
var import_gateway3 = require("@ai-sdk/gateway");
|
|
2724
2751
|
var import_provider_utils8 = require("@ai-sdk/provider-utils");
|
|
2725
2752
|
function getRetryDelayInMs({
|
|
2726
2753
|
error,
|
|
2727
2754
|
exponentialBackoffDelay
|
|
2728
2755
|
}) {
|
|
2729
|
-
const headers =
|
|
2756
|
+
const headers = import_provider27.APICallError.isInstance(error) ? error.responseHeaders : import_provider27.APICallError.isInstance(error.cause) ? error.cause.responseHeaders : void 0;
|
|
2730
2757
|
if (!headers)
|
|
2731
2758
|
return exponentialBackoffDelay;
|
|
2732
2759
|
let ms;
|
|
@@ -2787,7 +2814,7 @@ async function _retryWithExponentialBackoff(f, {
|
|
|
2787
2814
|
errors: newErrors
|
|
2788
2815
|
});
|
|
2789
2816
|
}
|
|
2790
|
-
if (error instanceof Error && (
|
|
2817
|
+
if (error instanceof Error && (import_provider27.APICallError.isInstance(error) && error.isRetryable === true || import_gateway3.GatewayError.isInstance(error) && error.isRetryable === true) && tryNumber <= maxRetries) {
|
|
2791
2818
|
await (0, import_provider_utils8.delay)(
|
|
2792
2819
|
getRetryDelayInMs({
|
|
2793
2820
|
error,
|
|
@@ -2928,8 +2955,8 @@ var import_provider_utils9 = require("@ai-sdk/provider-utils");
|
|
|
2928
2955
|
|
|
2929
2956
|
// src/util/now.ts
|
|
2930
2957
|
function now() {
|
|
2931
|
-
var
|
|
2932
|
-
return (_b = (
|
|
2958
|
+
var _a22, _b;
|
|
2959
|
+
return (_b = (_a22 = globalThis == null ? void 0 : globalThis.performance) == null ? void 0 : _a22.now()) != null ? _b : Date.now();
|
|
2933
2960
|
}
|
|
2934
2961
|
|
|
2935
2962
|
// src/generate-text/execute-tool-call.ts
|
|
@@ -3139,6 +3166,170 @@ async function isApprovalNeeded({
|
|
|
3139
3166
|
});
|
|
3140
3167
|
}
|
|
3141
3168
|
|
|
3169
|
+
// src/generate-text/tool-approval-signature.ts
|
|
3170
|
+
var import_provider_utils11 = require("@ai-sdk/provider-utils");
|
|
3171
|
+
var encoder = new TextEncoder();
|
|
3172
|
+
function canonicalJSON(value) {
|
|
3173
|
+
if (value === null || value === void 0) {
|
|
3174
|
+
return JSON.stringify(value);
|
|
3175
|
+
}
|
|
3176
|
+
if (typeof value !== "object") {
|
|
3177
|
+
return JSON.stringify(value);
|
|
3178
|
+
}
|
|
3179
|
+
if (Array.isArray(value)) {
|
|
3180
|
+
return `[${value.map(canonicalJSON).join(",")}]`;
|
|
3181
|
+
}
|
|
3182
|
+
const keys = Object.keys(value).sort();
|
|
3183
|
+
const entries = keys.map(
|
|
3184
|
+
(k) => `${JSON.stringify(k)}:${canonicalJSON(value[k])}`
|
|
3185
|
+
);
|
|
3186
|
+
return `{${entries.join(",")}}`;
|
|
3187
|
+
}
|
|
3188
|
+
function toBase64url(bytes) {
|
|
3189
|
+
return (0, import_provider_utils11.convertUint8ArrayToBase64)(bytes).replace(/\+/g, "-").replace(/\//g, "_").replace(/=+$/g, "");
|
|
3190
|
+
}
|
|
3191
|
+
function fromBase64url(str) {
|
|
3192
|
+
return (0, import_provider_utils11.convertBase64ToUint8Array)(str);
|
|
3193
|
+
}
|
|
3194
|
+
async function importKey(secret) {
|
|
3195
|
+
const keyData = typeof secret === "string" ? encoder.encode(secret) : secret;
|
|
3196
|
+
return crypto.subtle.importKey(
|
|
3197
|
+
"raw",
|
|
3198
|
+
keyData,
|
|
3199
|
+
{ name: "HMAC", hash: "SHA-256" },
|
|
3200
|
+
false,
|
|
3201
|
+
["sign", "verify"]
|
|
3202
|
+
);
|
|
3203
|
+
}
|
|
3204
|
+
async function hashInput(input) {
|
|
3205
|
+
const canonical = canonicalJSON(input);
|
|
3206
|
+
const digest = await crypto.subtle.digest(
|
|
3207
|
+
"SHA-256",
|
|
3208
|
+
encoder.encode(canonical)
|
|
3209
|
+
);
|
|
3210
|
+
return toBase64url(new Uint8Array(digest));
|
|
3211
|
+
}
|
|
3212
|
+
function buildPayload(approvalId, toolCallId, toolName, inputDigest) {
|
|
3213
|
+
return encoder.encode(
|
|
3214
|
+
`${approvalId}
|
|
3215
|
+
${toolCallId}
|
|
3216
|
+
${toolName}
|
|
3217
|
+
${inputDigest}`
|
|
3218
|
+
);
|
|
3219
|
+
}
|
|
3220
|
+
async function signToolApproval({
|
|
3221
|
+
secret,
|
|
3222
|
+
approvalId,
|
|
3223
|
+
toolCallId,
|
|
3224
|
+
toolName,
|
|
3225
|
+
input
|
|
3226
|
+
}) {
|
|
3227
|
+
const key = await importKey(secret);
|
|
3228
|
+
const inputDigest = await hashInput(input);
|
|
3229
|
+
const payload = buildPayload(approvalId, toolCallId, toolName, inputDigest);
|
|
3230
|
+
const sig = await crypto.subtle.sign("HMAC", key, payload);
|
|
3231
|
+
return toBase64url(new Uint8Array(sig));
|
|
3232
|
+
}
|
|
3233
|
+
async function verifyToolApprovalSignature({
|
|
3234
|
+
secret,
|
|
3235
|
+
signature,
|
|
3236
|
+
approvalId,
|
|
3237
|
+
toolCallId,
|
|
3238
|
+
toolName,
|
|
3239
|
+
input
|
|
3240
|
+
}) {
|
|
3241
|
+
const key = await importKey(secret);
|
|
3242
|
+
const inputDigest = await hashInput(input);
|
|
3243
|
+
const payload = buildPayload(approvalId, toolCallId, toolName, inputDigest);
|
|
3244
|
+
const sigBytes = fromBase64url(signature);
|
|
3245
|
+
return crypto.subtle.verify("HMAC", key, sigBytes, payload);
|
|
3246
|
+
}
|
|
3247
|
+
async function maybeSignApproval({
|
|
3248
|
+
secret,
|
|
3249
|
+
approvalId,
|
|
3250
|
+
toolCallId,
|
|
3251
|
+
toolName,
|
|
3252
|
+
input
|
|
3253
|
+
}) {
|
|
3254
|
+
if (secret == null)
|
|
3255
|
+
return void 0;
|
|
3256
|
+
return signToolApproval({ secret, approvalId, toolCallId, toolName, input });
|
|
3257
|
+
}
|
|
3258
|
+
|
|
3259
|
+
// src/generate-text/validate-tool-approvals.ts
|
|
3260
|
+
var import_provider_utils12 = require("@ai-sdk/provider-utils");
|
|
3261
|
+
async function validateApprovedToolApprovals({
|
|
3262
|
+
approvedToolApprovals,
|
|
3263
|
+
tools,
|
|
3264
|
+
messages,
|
|
3265
|
+
experimental_context,
|
|
3266
|
+
toolApprovalSecret
|
|
3267
|
+
}) {
|
|
3268
|
+
var _a22;
|
|
3269
|
+
const approved = [];
|
|
3270
|
+
const denied = [];
|
|
3271
|
+
for (const approval of approvedToolApprovals) {
|
|
3272
|
+
const { toolCall, approvalRequest } = approval;
|
|
3273
|
+
const tool2 = tools == null ? void 0 : tools[toolCall.toolName];
|
|
3274
|
+
if (toolApprovalSecret != null) {
|
|
3275
|
+
if (approvalRequest.signature == null) {
|
|
3276
|
+
throw new InvalidToolApprovalSignatureError({
|
|
3277
|
+
approvalId: approvalRequest.approvalId,
|
|
3278
|
+
toolCallId: toolCall.toolCallId,
|
|
3279
|
+
reason: "missing signature"
|
|
3280
|
+
});
|
|
3281
|
+
}
|
|
3282
|
+
const valid = await verifyToolApprovalSignature({
|
|
3283
|
+
secret: toolApprovalSecret,
|
|
3284
|
+
signature: approvalRequest.signature,
|
|
3285
|
+
approvalId: approvalRequest.approvalId,
|
|
3286
|
+
toolCallId: toolCall.toolCallId,
|
|
3287
|
+
toolName: toolCall.toolName,
|
|
3288
|
+
input: toolCall.input
|
|
3289
|
+
});
|
|
3290
|
+
if (!valid) {
|
|
3291
|
+
throw new InvalidToolApprovalSignatureError({
|
|
3292
|
+
approvalId: approvalRequest.approvalId,
|
|
3293
|
+
toolCallId: toolCall.toolCallId,
|
|
3294
|
+
reason: "invalid signature"
|
|
3295
|
+
});
|
|
3296
|
+
}
|
|
3297
|
+
}
|
|
3298
|
+
if (tool2 != null && typeof tool2.execute === "function" && tool2.inputSchema != null) {
|
|
3299
|
+
const validation = await (0, import_provider_utils12.safeValidateTypes)({
|
|
3300
|
+
value: toolCall.input,
|
|
3301
|
+
schema: (0, import_provider_utils12.asSchema)(tool2.inputSchema)
|
|
3302
|
+
});
|
|
3303
|
+
if (!validation.success) {
|
|
3304
|
+
throw new InvalidToolInputError({
|
|
3305
|
+
toolName: toolCall.toolName,
|
|
3306
|
+
toolInput: JSON.stringify(toolCall.input),
|
|
3307
|
+
cause: validation.error
|
|
3308
|
+
});
|
|
3309
|
+
}
|
|
3310
|
+
}
|
|
3311
|
+
const approvalNeeded = tool2 != null && await isApprovalNeeded({
|
|
3312
|
+
tool: tool2,
|
|
3313
|
+
toolCall,
|
|
3314
|
+
messages,
|
|
3315
|
+
experimental_context
|
|
3316
|
+
});
|
|
3317
|
+
if (approvalNeeded) {
|
|
3318
|
+
approved.push(approval);
|
|
3319
|
+
} else {
|
|
3320
|
+
denied.push({
|
|
3321
|
+
...approval,
|
|
3322
|
+
approvalResponse: {
|
|
3323
|
+
...approval.approvalResponse,
|
|
3324
|
+
approved: false,
|
|
3325
|
+
reason: (_a22 = approval.approvalResponse.reason) != null ? _a22 : `Tool "${toolCall.toolName}" does not require approval`
|
|
3326
|
+
}
|
|
3327
|
+
});
|
|
3328
|
+
}
|
|
3329
|
+
}
|
|
3330
|
+
return { approvedToolApprovals: approved, deniedToolApprovals: denied };
|
|
3331
|
+
}
|
|
3332
|
+
|
|
3142
3333
|
// src/generate-text/output.ts
|
|
3143
3334
|
var output_exports = {};
|
|
3144
3335
|
__export(output_exports, {
|
|
@@ -3148,11 +3339,11 @@ __export(output_exports, {
|
|
|
3148
3339
|
object: () => object,
|
|
3149
3340
|
text: () => text
|
|
3150
3341
|
});
|
|
3151
|
-
var
|
|
3152
|
-
var
|
|
3342
|
+
var import_provider28 = require("@ai-sdk/provider");
|
|
3343
|
+
var import_provider_utils14 = require("@ai-sdk/provider-utils");
|
|
3153
3344
|
|
|
3154
3345
|
// src/util/parse-partial-json.ts
|
|
3155
|
-
var
|
|
3346
|
+
var import_provider_utils13 = require("@ai-sdk/provider-utils");
|
|
3156
3347
|
|
|
3157
3348
|
// src/util/fix-json.ts
|
|
3158
3349
|
function fixJson(input) {
|
|
@@ -3477,11 +3668,11 @@ async function parsePartialJson(jsonText) {
|
|
|
3477
3668
|
if (jsonText === void 0) {
|
|
3478
3669
|
return { value: void 0, state: "undefined-input" };
|
|
3479
3670
|
}
|
|
3480
|
-
let result = await (0,
|
|
3671
|
+
let result = await (0, import_provider_utils13.safeParseJSON)({ text: jsonText });
|
|
3481
3672
|
if (result.success) {
|
|
3482
3673
|
return { value: result.value, state: "successful-parse" };
|
|
3483
3674
|
}
|
|
3484
|
-
result = await (0,
|
|
3675
|
+
result = await (0, import_provider_utils13.safeParseJSON)({ text: fixJson(jsonText) });
|
|
3485
3676
|
if (result.success) {
|
|
3486
3677
|
return { value: result.value, state: "repaired-parse" };
|
|
3487
3678
|
}
|
|
@@ -3504,20 +3695,20 @@ var text = () => ({
|
|
|
3504
3695
|
});
|
|
3505
3696
|
var object = ({
|
|
3506
3697
|
schema: inputSchema,
|
|
3507
|
-
name:
|
|
3698
|
+
name: name22,
|
|
3508
3699
|
description
|
|
3509
3700
|
}) => {
|
|
3510
|
-
const schema = (0,
|
|
3701
|
+
const schema = (0, import_provider_utils14.asSchema)(inputSchema);
|
|
3511
3702
|
return {
|
|
3512
3703
|
name: "object",
|
|
3513
|
-
responseFormat: (0,
|
|
3704
|
+
responseFormat: (0, import_provider_utils14.resolve)(schema.jsonSchema).then((jsonSchema2) => ({
|
|
3514
3705
|
type: "json",
|
|
3515
3706
|
schema: jsonSchema2,
|
|
3516
|
-
...
|
|
3707
|
+
...name22 != null && { name: name22 },
|
|
3517
3708
|
...description != null && { description }
|
|
3518
3709
|
})),
|
|
3519
3710
|
async parseCompleteOutput({ text: text2 }, context2) {
|
|
3520
|
-
const parseResult = await (0,
|
|
3711
|
+
const parseResult = await (0, import_provider_utils14.safeParseJSON)({ text: text2 });
|
|
3521
3712
|
if (!parseResult.success) {
|
|
3522
3713
|
throw new NoObjectGeneratedError({
|
|
3523
3714
|
message: "No object generated: could not parse the response.",
|
|
@@ -3528,7 +3719,7 @@ var object = ({
|
|
|
3528
3719
|
finishReason: context2.finishReason
|
|
3529
3720
|
});
|
|
3530
3721
|
}
|
|
3531
|
-
const validationResult = await (0,
|
|
3722
|
+
const validationResult = await (0, import_provider_utils14.safeValidateTypes)({
|
|
3532
3723
|
value: parseResult.value,
|
|
3533
3724
|
schema
|
|
3534
3725
|
});
|
|
@@ -3567,14 +3758,14 @@ var object = ({
|
|
|
3567
3758
|
};
|
|
3568
3759
|
var array = ({
|
|
3569
3760
|
element: inputElementSchema,
|
|
3570
|
-
name:
|
|
3761
|
+
name: name22,
|
|
3571
3762
|
description
|
|
3572
3763
|
}) => {
|
|
3573
|
-
const elementSchema = (0,
|
|
3764
|
+
const elementSchema = (0, import_provider_utils14.asSchema)(inputElementSchema);
|
|
3574
3765
|
return {
|
|
3575
3766
|
name: "array",
|
|
3576
3767
|
// JSON schema that describes an array of elements:
|
|
3577
|
-
responseFormat: (0,
|
|
3768
|
+
responseFormat: (0, import_provider_utils14.resolve)(elementSchema.jsonSchema).then((jsonSchema2) => {
|
|
3578
3769
|
const { $schema, ...itemSchema } = jsonSchema2;
|
|
3579
3770
|
return {
|
|
3580
3771
|
type: "json",
|
|
@@ -3587,12 +3778,12 @@ var array = ({
|
|
|
3587
3778
|
required: ["elements"],
|
|
3588
3779
|
additionalProperties: false
|
|
3589
3780
|
},
|
|
3590
|
-
...
|
|
3781
|
+
...name22 != null && { name: name22 },
|
|
3591
3782
|
...description != null && { description }
|
|
3592
3783
|
};
|
|
3593
3784
|
}),
|
|
3594
3785
|
async parseCompleteOutput({ text: text2 }, context2) {
|
|
3595
|
-
const parseResult = await (0,
|
|
3786
|
+
const parseResult = await (0, import_provider_utils14.safeParseJSON)({ text: text2 });
|
|
3596
3787
|
if (!parseResult.success) {
|
|
3597
3788
|
throw new NoObjectGeneratedError({
|
|
3598
3789
|
message: "No object generated: could not parse the response.",
|
|
@@ -3607,7 +3798,7 @@ var array = ({
|
|
|
3607
3798
|
if (outerValue == null || typeof outerValue !== "object" || !("elements" in outerValue) || !Array.isArray(outerValue.elements)) {
|
|
3608
3799
|
throw new NoObjectGeneratedError({
|
|
3609
3800
|
message: "No object generated: response did not match schema.",
|
|
3610
|
-
cause: new
|
|
3801
|
+
cause: new import_provider28.TypeValidationError({
|
|
3611
3802
|
value: outerValue,
|
|
3612
3803
|
cause: "response must be an object with an elements array"
|
|
3613
3804
|
}),
|
|
@@ -3618,7 +3809,7 @@ var array = ({
|
|
|
3618
3809
|
});
|
|
3619
3810
|
}
|
|
3620
3811
|
for (const element of outerValue.elements) {
|
|
3621
|
-
const validationResult = await (0,
|
|
3812
|
+
const validationResult = await (0, import_provider_utils14.safeValidateTypes)({
|
|
3622
3813
|
value: element,
|
|
3623
3814
|
schema: elementSchema
|
|
3624
3815
|
});
|
|
@@ -3651,7 +3842,7 @@ var array = ({
|
|
|
3651
3842
|
const rawElements = result.state === "repaired-parse" && outerValue.elements.length > 0 ? outerValue.elements.slice(0, -1) : outerValue.elements;
|
|
3652
3843
|
const parsedElements = [];
|
|
3653
3844
|
for (const rawElement of rawElements) {
|
|
3654
|
-
const validationResult = await (0,
|
|
3845
|
+
const validationResult = await (0, import_provider_utils14.safeValidateTypes)({
|
|
3655
3846
|
value: rawElement,
|
|
3656
3847
|
schema: elementSchema
|
|
3657
3848
|
});
|
|
@@ -3679,7 +3870,7 @@ var array = ({
|
|
|
3679
3870
|
};
|
|
3680
3871
|
var choice = ({
|
|
3681
3872
|
options: choiceOptions,
|
|
3682
|
-
name:
|
|
3873
|
+
name: name22,
|
|
3683
3874
|
description
|
|
3684
3875
|
}) => {
|
|
3685
3876
|
return {
|
|
@@ -3696,11 +3887,11 @@ var choice = ({
|
|
|
3696
3887
|
required: ["result"],
|
|
3697
3888
|
additionalProperties: false
|
|
3698
3889
|
},
|
|
3699
|
-
...
|
|
3890
|
+
...name22 != null && { name: name22 },
|
|
3700
3891
|
...description != null && { description }
|
|
3701
3892
|
}),
|
|
3702
3893
|
async parseCompleteOutput({ text: text2 }, context2) {
|
|
3703
|
-
const parseResult = await (0,
|
|
3894
|
+
const parseResult = await (0, import_provider_utils14.safeParseJSON)({ text: text2 });
|
|
3704
3895
|
if (!parseResult.success) {
|
|
3705
3896
|
throw new NoObjectGeneratedError({
|
|
3706
3897
|
message: "No object generated: could not parse the response.",
|
|
@@ -3715,7 +3906,7 @@ var choice = ({
|
|
|
3715
3906
|
if (outerValue == null || typeof outerValue !== "object" || !("result" in outerValue) || typeof outerValue.result !== "string" || !choiceOptions.includes(outerValue.result)) {
|
|
3716
3907
|
throw new NoObjectGeneratedError({
|
|
3717
3908
|
message: "No object generated: response did not match schema.",
|
|
3718
|
-
cause: new
|
|
3909
|
+
cause: new import_provider28.TypeValidationError({
|
|
3719
3910
|
value: outerValue,
|
|
3720
3911
|
cause: "response must be an object that contains a choice value."
|
|
3721
3912
|
}),
|
|
@@ -3757,18 +3948,18 @@ var choice = ({
|
|
|
3757
3948
|
};
|
|
3758
3949
|
};
|
|
3759
3950
|
var json = ({
|
|
3760
|
-
name:
|
|
3951
|
+
name: name22,
|
|
3761
3952
|
description
|
|
3762
3953
|
} = {}) => {
|
|
3763
3954
|
return {
|
|
3764
3955
|
name: "json",
|
|
3765
3956
|
responseFormat: Promise.resolve({
|
|
3766
3957
|
type: "json",
|
|
3767
|
-
...
|
|
3958
|
+
...name22 != null && { name: name22 },
|
|
3768
3959
|
...description != null && { description }
|
|
3769
3960
|
}),
|
|
3770
3961
|
async parseCompleteOutput({ text: text2 }, context2) {
|
|
3771
|
-
const parseResult = await (0,
|
|
3962
|
+
const parseResult = await (0, import_provider_utils14.safeParseJSON)({ text: text2 });
|
|
3772
3963
|
if (!parseResult.success) {
|
|
3773
3964
|
throw new NoObjectGeneratedError({
|
|
3774
3965
|
message: "No object generated: could not parse the response.",
|
|
@@ -3801,7 +3992,7 @@ var json = ({
|
|
|
3801
3992
|
};
|
|
3802
3993
|
|
|
3803
3994
|
// src/generate-text/parse-tool-call.ts
|
|
3804
|
-
var
|
|
3995
|
+
var import_provider_utils15 = require("@ai-sdk/provider-utils");
|
|
3805
3996
|
async function parseToolCall({
|
|
3806
3997
|
toolCall,
|
|
3807
3998
|
tools,
|
|
@@ -3829,7 +4020,7 @@ async function parseToolCall({
|
|
|
3829
4020
|
tools,
|
|
3830
4021
|
inputSchema: async ({ toolName }) => {
|
|
3831
4022
|
const { inputSchema } = tools[toolName];
|
|
3832
|
-
return await (0,
|
|
4023
|
+
return await (0, import_provider_utils15.asSchema)(inputSchema).jsonSchema;
|
|
3833
4024
|
},
|
|
3834
4025
|
system,
|
|
3835
4026
|
messages,
|
|
@@ -3847,7 +4038,7 @@ async function parseToolCall({
|
|
|
3847
4038
|
return await doParseToolCall({ toolCall: repairedToolCall, tools });
|
|
3848
4039
|
}
|
|
3849
4040
|
} catch (error) {
|
|
3850
|
-
const parsedInput = await (0,
|
|
4041
|
+
const parsedInput = await (0, import_provider_utils15.safeParseJSON)({ text: toolCall.input });
|
|
3851
4042
|
const input = parsedInput.success ? parsedInput.value : toolCall.input;
|
|
3852
4043
|
const tool2 = tools == null ? void 0 : tools[toolCall.toolName];
|
|
3853
4044
|
return {
|
|
@@ -3866,7 +4057,7 @@ async function parseToolCall({
|
|
|
3866
4057
|
}
|
|
3867
4058
|
}
|
|
3868
4059
|
async function parseProviderExecutedDynamicToolCall(toolCall) {
|
|
3869
|
-
const parseResult = toolCall.input.trim() === "" ? { success: true, value: {} } : await (0,
|
|
4060
|
+
const parseResult = toolCall.input.trim() === "" ? { success: true, value: {} } : await (0, import_provider_utils15.safeParseJSON)({ text: toolCall.input });
|
|
3870
4061
|
if (parseResult.success === false) {
|
|
3871
4062
|
throw new InvalidToolInputError({
|
|
3872
4063
|
toolName: toolCall.toolName,
|
|
@@ -3899,8 +4090,8 @@ async function doParseToolCall({
|
|
|
3899
4090
|
availableTools: Object.keys(tools)
|
|
3900
4091
|
});
|
|
3901
4092
|
}
|
|
3902
|
-
const schema = (0,
|
|
3903
|
-
const parseResult = toolCall.input.trim() === "" ? await (0,
|
|
4093
|
+
const schema = (0, import_provider_utils15.asSchema)(tool2.inputSchema);
|
|
4094
|
+
const parseResult = toolCall.input.trim() === "" ? await (0, import_provider_utils15.safeValidateTypes)({ value: {}, schema }) : await (0, import_provider_utils15.safeParseJSON)({ text: toolCall.input, schema });
|
|
3904
4095
|
if (parseResult.success === false) {
|
|
3905
4096
|
throw new InvalidToolInputError({
|
|
3906
4097
|
toolName,
|
|
@@ -4013,8 +4204,8 @@ function isLoopFinished() {
|
|
|
4013
4204
|
}
|
|
4014
4205
|
function hasToolCall(toolName) {
|
|
4015
4206
|
return ({ steps }) => {
|
|
4016
|
-
var
|
|
4017
|
-
return (_c = (_b = (
|
|
4207
|
+
var _a22, _b, _c;
|
|
4208
|
+
return (_c = (_b = (_a22 = steps[steps.length - 1]) == null ? void 0 : _a22.toolCalls) == null ? void 0 : _b.some(
|
|
4018
4209
|
(toolCall) => toolCall.toolName === toolName
|
|
4019
4210
|
)) != null ? _c : false;
|
|
4020
4211
|
};
|
|
@@ -4114,7 +4305,8 @@ async function toResponseMessages({
|
|
|
4114
4305
|
content.push({
|
|
4115
4306
|
type: "tool-approval-request",
|
|
4116
4307
|
approvalId: part.approvalId,
|
|
4117
|
-
toolCallId: part.toolCall.toolCallId
|
|
4308
|
+
toolCallId: part.toolCall.toolCallId,
|
|
4309
|
+
...part.signature != null ? { signature: part.signature } : {}
|
|
4118
4310
|
});
|
|
4119
4311
|
break;
|
|
4120
4312
|
}
|
|
@@ -4183,7 +4375,7 @@ function mergeAbortSignals(...signals) {
|
|
|
4183
4375
|
}
|
|
4184
4376
|
|
|
4185
4377
|
// src/generate-text/generate-text.ts
|
|
4186
|
-
var originalGenerateId = (0,
|
|
4378
|
+
var originalGenerateId = (0, import_provider_utils16.createIdGenerator)({
|
|
4187
4379
|
prefix: "aitxt",
|
|
4188
4380
|
size: 24
|
|
4189
4381
|
});
|
|
@@ -4211,6 +4403,7 @@ async function generateText({
|
|
|
4211
4403
|
experimental_repairToolCall: repairToolCall,
|
|
4212
4404
|
experimental_download: download2,
|
|
4213
4405
|
experimental_context,
|
|
4406
|
+
experimental_toolApprovalSecret,
|
|
4214
4407
|
experimental_include: include,
|
|
4215
4408
|
_internal: { generateId: generateId2 = originalGenerateId } = {},
|
|
4216
4409
|
experimental_onStart: onStart,
|
|
@@ -4237,7 +4430,7 @@ async function generateText({
|
|
|
4237
4430
|
abortSignal: mergedAbortSignal
|
|
4238
4431
|
});
|
|
4239
4432
|
const callSettings = prepareCallSettings(settings);
|
|
4240
|
-
const headersWithUserAgent = (0,
|
|
4433
|
+
const headersWithUserAgent = (0, import_provider_utils16.withUserAgentSuffix)(
|
|
4241
4434
|
headers != null ? headers : {},
|
|
4242
4435
|
`ai/${VERSION}`
|
|
4243
4436
|
);
|
|
@@ -4312,13 +4505,29 @@ async function generateText({
|
|
|
4312
4505
|
}),
|
|
4313
4506
|
tracer,
|
|
4314
4507
|
fn: async (span) => {
|
|
4315
|
-
var
|
|
4508
|
+
var _a22, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t;
|
|
4316
4509
|
const initialMessages = initialPrompt.messages;
|
|
4317
4510
|
const responseMessages = [];
|
|
4318
|
-
const {
|
|
4319
|
-
|
|
4320
|
-
|
|
4321
|
-
);
|
|
4511
|
+
const {
|
|
4512
|
+
approvedToolApprovals,
|
|
4513
|
+
deniedToolApprovals: collectedDeniedToolApprovals
|
|
4514
|
+
} = collectToolApprovals({ messages: initialMessages });
|
|
4515
|
+
const {
|
|
4516
|
+
approvedToolApprovals: localApprovedToolApprovals,
|
|
4517
|
+
deniedToolApprovals: revalidationDeniedToolApprovals
|
|
4518
|
+
} = await validateApprovedToolApprovals({
|
|
4519
|
+
approvedToolApprovals: approvedToolApprovals.filter(
|
|
4520
|
+
(toolApproval) => !toolApproval.toolCall.providerExecuted
|
|
4521
|
+
),
|
|
4522
|
+
tools,
|
|
4523
|
+
messages: initialMessages,
|
|
4524
|
+
experimental_context,
|
|
4525
|
+
toolApprovalSecret: experimental_toolApprovalSecret
|
|
4526
|
+
});
|
|
4527
|
+
const deniedToolApprovals = [
|
|
4528
|
+
...collectedDeniedToolApprovals,
|
|
4529
|
+
...revalidationDeniedToolApprovals
|
|
4530
|
+
];
|
|
4322
4531
|
if (deniedToolApprovals.length > 0 || localApprovedToolApprovals.length > 0) {
|
|
4323
4532
|
const toolOutputs = await executeTools({
|
|
4324
4533
|
toolCalls: localApprovedToolApprovals.map(
|
|
@@ -4399,7 +4608,7 @@ async function generateText({
|
|
|
4399
4608
|
experimental_context
|
|
4400
4609
|
}));
|
|
4401
4610
|
const stepModel = resolveLanguageModel(
|
|
4402
|
-
(
|
|
4611
|
+
(_a22 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a22 : model
|
|
4403
4612
|
);
|
|
4404
4613
|
const stepModelInfo = {
|
|
4405
4614
|
provider: stepModel.provider,
|
|
@@ -4454,7 +4663,7 @@ async function generateText({
|
|
|
4454
4663
|
});
|
|
4455
4664
|
currentModelResponse = await retry(
|
|
4456
4665
|
() => {
|
|
4457
|
-
var
|
|
4666
|
+
var _a23;
|
|
4458
4667
|
return recordSpan({
|
|
4459
4668
|
name: "ai.generateText.doGenerate",
|
|
4460
4669
|
attributes: selectTelemetryAttributes({
|
|
@@ -4486,14 +4695,14 @@ async function generateText({
|
|
|
4486
4695
|
"gen_ai.request.max_tokens": settings.maxOutputTokens,
|
|
4487
4696
|
"gen_ai.request.presence_penalty": settings.presencePenalty,
|
|
4488
4697
|
"gen_ai.request.stop_sequences": settings.stopSequences,
|
|
4489
|
-
"gen_ai.request.temperature": (
|
|
4698
|
+
"gen_ai.request.temperature": (_a23 = settings.temperature) != null ? _a23 : void 0,
|
|
4490
4699
|
"gen_ai.request.top_k": settings.topK,
|
|
4491
4700
|
"gen_ai.request.top_p": settings.topP
|
|
4492
4701
|
}
|
|
4493
4702
|
}),
|
|
4494
4703
|
tracer,
|
|
4495
4704
|
fn: async (span2) => {
|
|
4496
|
-
var
|
|
4705
|
+
var _a24, _b2, _c2, _d2, _e2, _f2, _g2, _h2;
|
|
4497
4706
|
const result = await stepModel.doGenerate({
|
|
4498
4707
|
...callSettings2,
|
|
4499
4708
|
tools: stepTools,
|
|
@@ -4505,7 +4714,7 @@ async function generateText({
|
|
|
4505
4714
|
headers: headersWithUserAgent
|
|
4506
4715
|
});
|
|
4507
4716
|
const responseData = {
|
|
4508
|
-
id: (_b2 = (
|
|
4717
|
+
id: (_b2 = (_a24 = result.response) == null ? void 0 : _a24.id) != null ? _b2 : generateId2(),
|
|
4509
4718
|
timestamp: (_d2 = (_c2 = result.response) == null ? void 0 : _c2.timestamp) != null ? _d2 : /* @__PURE__ */ new Date(),
|
|
4510
4719
|
modelId: (_f2 = (_e2 = result.response) == null ? void 0 : _e2.modelId) != null ? _f2 : stepModel.modelId,
|
|
4511
4720
|
headers: (_g2 = result.response) == null ? void 0 : _g2.headers,
|
|
@@ -4598,10 +4807,19 @@ async function generateText({
|
|
|
4598
4807
|
messages: stepInputMessages,
|
|
4599
4808
|
experimental_context
|
|
4600
4809
|
})) {
|
|
4810
|
+
const approvalId = generateId2();
|
|
4811
|
+
const signature = await maybeSignApproval({
|
|
4812
|
+
secret: experimental_toolApprovalSecret,
|
|
4813
|
+
approvalId,
|
|
4814
|
+
toolCallId: toolCall.toolCallId,
|
|
4815
|
+
toolName: toolCall.toolName,
|
|
4816
|
+
input: toolCall.input
|
|
4817
|
+
});
|
|
4601
4818
|
toolApprovalRequests[toolCall.toolCallId] = {
|
|
4602
4819
|
type: "tool-approval-request",
|
|
4603
|
-
approvalId
|
|
4604
|
-
toolCall
|
|
4820
|
+
approvalId,
|
|
4821
|
+
toolCall,
|
|
4822
|
+
...signature != null ? { signature } : {}
|
|
4605
4823
|
};
|
|
4606
4824
|
}
|
|
4607
4825
|
}
|
|
@@ -4615,7 +4833,7 @@ async function generateText({
|
|
|
4615
4833
|
toolCallId: toolCall.toolCallId,
|
|
4616
4834
|
toolName: toolCall.toolName,
|
|
4617
4835
|
input: toolCall.input,
|
|
4618
|
-
error: (0,
|
|
4836
|
+
error: (0, import_provider_utils16.getErrorMessage)(toolCall.error),
|
|
4619
4837
|
dynamic: true
|
|
4620
4838
|
});
|
|
4621
4839
|
}
|
|
@@ -5075,8 +5293,8 @@ function asContent({
|
|
|
5075
5293
|
}
|
|
5076
5294
|
|
|
5077
5295
|
// src/generate-text/stream-text.ts
|
|
5078
|
-
var
|
|
5079
|
-
var
|
|
5296
|
+
var import_provider29 = require("@ai-sdk/provider");
|
|
5297
|
+
var import_provider_utils20 = require("@ai-sdk/provider-utils");
|
|
5080
5298
|
|
|
5081
5299
|
// src/util/prepare-headers.ts
|
|
5082
5300
|
function prepareHeaders(headers, defaultHeaders) {
|
|
@@ -5223,17 +5441,17 @@ function getResponseUIMessageId({
|
|
|
5223
5441
|
}
|
|
5224
5442
|
|
|
5225
5443
|
// src/ui/process-ui-message-stream.ts
|
|
5226
|
-
var
|
|
5444
|
+
var import_provider_utils18 = require("@ai-sdk/provider-utils");
|
|
5227
5445
|
|
|
5228
5446
|
// src/ui-message-stream/ui-message-chunks.ts
|
|
5229
5447
|
var import_v47 = require("zod/v4");
|
|
5230
|
-
var
|
|
5448
|
+
var import_provider_utils17 = require("@ai-sdk/provider-utils");
|
|
5231
5449
|
var toolMetadataSchema = import_v47.z.record(
|
|
5232
5450
|
import_v47.z.string(),
|
|
5233
5451
|
jsonValueSchema.optional()
|
|
5234
5452
|
);
|
|
5235
|
-
var uiMessageChunkSchema = (0,
|
|
5236
|
-
() => (0,
|
|
5453
|
+
var uiMessageChunkSchema = (0, import_provider_utils17.lazySchema)(
|
|
5454
|
+
() => (0, import_provider_utils17.zodSchema)(
|
|
5237
5455
|
import_v47.z.union([
|
|
5238
5456
|
import_v47.z.strictObject({
|
|
5239
5457
|
type: import_v47.z.literal("text-start"),
|
|
@@ -5296,7 +5514,8 @@ var uiMessageChunkSchema = (0, import_provider_utils15.lazySchema)(
|
|
|
5296
5514
|
import_v47.z.strictObject({
|
|
5297
5515
|
type: import_v47.z.literal("tool-approval-request"),
|
|
5298
5516
|
approvalId: import_v47.z.string(),
|
|
5299
|
-
toolCallId: import_v47.z.string()
|
|
5517
|
+
toolCallId: import_v47.z.string(),
|
|
5518
|
+
signature: import_v47.z.string().optional()
|
|
5300
5519
|
}),
|
|
5301
5520
|
import_v47.z.strictObject({
|
|
5302
5521
|
type: import_v47.z.literal("tool-output-available"),
|
|
@@ -5471,7 +5690,7 @@ function processUIMessageStream({
|
|
|
5471
5690
|
new TransformStream({
|
|
5472
5691
|
async transform(chunk, controller) {
|
|
5473
5692
|
await runUpdateMessageJob(async ({ state, write }) => {
|
|
5474
|
-
var
|
|
5693
|
+
var _a22, _b, _c, _d;
|
|
5475
5694
|
function getToolInvocation(toolCallId) {
|
|
5476
5695
|
const toolInvocations = state.message.parts.filter(isToolUIPart);
|
|
5477
5696
|
const toolInvocation = toolInvocations.find(
|
|
@@ -5487,7 +5706,7 @@ function processUIMessageStream({
|
|
|
5487
5706
|
return toolInvocation;
|
|
5488
5707
|
}
|
|
5489
5708
|
function updateToolPart(options) {
|
|
5490
|
-
var
|
|
5709
|
+
var _a23;
|
|
5491
5710
|
const part = state.message.parts.find(
|
|
5492
5711
|
(part2) => isStaticToolUIPart(part2) && part2.toolCallId === options.toolCallId
|
|
5493
5712
|
);
|
|
@@ -5506,7 +5725,7 @@ function processUIMessageStream({
|
|
|
5506
5725
|
if (options.toolMetadata !== void 0) {
|
|
5507
5726
|
anyPart.toolMetadata = options.toolMetadata;
|
|
5508
5727
|
}
|
|
5509
|
-
anyPart.providerExecuted = (
|
|
5728
|
+
anyPart.providerExecuted = (_a23 = anyOptions.providerExecuted) != null ? _a23 : part.providerExecuted;
|
|
5510
5729
|
const providerMetadata = anyOptions.providerMetadata;
|
|
5511
5730
|
if (providerMetadata != null) {
|
|
5512
5731
|
if (options.state === "output-available" || options.state === "output-error") {
|
|
@@ -5535,7 +5754,7 @@ function processUIMessageStream({
|
|
|
5535
5754
|
}
|
|
5536
5755
|
}
|
|
5537
5756
|
function updateDynamicToolPart(options) {
|
|
5538
|
-
var
|
|
5757
|
+
var _a23, _b2;
|
|
5539
5758
|
const part = state.message.parts.find(
|
|
5540
5759
|
(part2) => part2.type === "dynamic-tool" && part2.toolCallId === options.toolCallId
|
|
5541
5760
|
);
|
|
@@ -5547,7 +5766,7 @@ function processUIMessageStream({
|
|
|
5547
5766
|
anyPart.input = anyOptions.input;
|
|
5548
5767
|
anyPart.output = anyOptions.output;
|
|
5549
5768
|
anyPart.errorText = anyOptions.errorText;
|
|
5550
|
-
anyPart.rawInput = (
|
|
5769
|
+
anyPart.rawInput = (_a23 = anyOptions.rawInput) != null ? _a23 : anyPart.rawInput;
|
|
5551
5770
|
anyPart.preliminary = anyOptions.preliminary;
|
|
5552
5771
|
if (options.title !== void 0) {
|
|
5553
5772
|
anyPart.title = options.title;
|
|
@@ -5587,7 +5806,7 @@ function processUIMessageStream({
|
|
|
5587
5806
|
if (metadata != null) {
|
|
5588
5807
|
const mergedMetadata = state.message.metadata != null ? mergeObjects(state.message.metadata, metadata) : metadata;
|
|
5589
5808
|
if (messageMetadataSchema != null) {
|
|
5590
|
-
await (0,
|
|
5809
|
+
await (0, import_provider_utils18.validateTypes)({
|
|
5591
5810
|
value: mergedMetadata,
|
|
5592
5811
|
schema: messageMetadataSchema,
|
|
5593
5812
|
context: {
|
|
@@ -5622,7 +5841,7 @@ function processUIMessageStream({
|
|
|
5622
5841
|
});
|
|
5623
5842
|
}
|
|
5624
5843
|
textPart.text += chunk.delta;
|
|
5625
|
-
textPart.providerMetadata = (
|
|
5844
|
+
textPart.providerMetadata = (_a22 = chunk.providerMetadata) != null ? _a22 : textPart.providerMetadata;
|
|
5626
5845
|
write();
|
|
5627
5846
|
break;
|
|
5628
5847
|
}
|
|
@@ -5851,7 +6070,10 @@ function processUIMessageStream({
|
|
|
5851
6070
|
case "tool-approval-request": {
|
|
5852
6071
|
const toolInvocation = getToolInvocation(chunk.toolCallId);
|
|
5853
6072
|
toolInvocation.state = "approval-requested";
|
|
5854
|
-
toolInvocation.approval = {
|
|
6073
|
+
toolInvocation.approval = {
|
|
6074
|
+
id: chunk.approvalId,
|
|
6075
|
+
...chunk.signature != null ? { signature: chunk.signature } : {}
|
|
6076
|
+
};
|
|
5855
6077
|
write();
|
|
5856
6078
|
break;
|
|
5857
6079
|
}
|
|
@@ -5971,7 +6193,7 @@ function processUIMessageStream({
|
|
|
5971
6193
|
(p) => "id" in p && "data" in p && p.id === chunk.id && p.type === chunk.type
|
|
5972
6194
|
);
|
|
5973
6195
|
const actualPartIdx = partIdx >= 0 ? partIdx : state.message.parts.length;
|
|
5974
|
-
await (0,
|
|
6196
|
+
await (0, import_provider_utils18.validateTypes)({
|
|
5975
6197
|
value: chunk.data,
|
|
5976
6198
|
schema: dataPartSchemas[chunk.type],
|
|
5977
6199
|
context: {
|
|
@@ -6142,13 +6364,13 @@ function createAsyncIterableStream(source) {
|
|
|
6142
6364
|
const reader = this.getReader();
|
|
6143
6365
|
let finished = false;
|
|
6144
6366
|
async function cleanup(cancelStream) {
|
|
6145
|
-
var
|
|
6367
|
+
var _a22;
|
|
6146
6368
|
if (finished)
|
|
6147
6369
|
return;
|
|
6148
6370
|
finished = true;
|
|
6149
6371
|
try {
|
|
6150
6372
|
if (cancelStream) {
|
|
6151
|
-
await ((
|
|
6373
|
+
await ((_a22 = reader.cancel) == null ? void 0 : _a22.call(reader));
|
|
6152
6374
|
}
|
|
6153
6375
|
} finally {
|
|
6154
6376
|
try {
|
|
@@ -6313,7 +6535,7 @@ function createStitchableStream() {
|
|
|
6313
6535
|
}
|
|
6314
6536
|
|
|
6315
6537
|
// src/generate-text/run-tools-transformation.ts
|
|
6316
|
-
var
|
|
6538
|
+
var import_provider_utils19 = require("@ai-sdk/provider-utils");
|
|
6317
6539
|
function runToolsTransformation({
|
|
6318
6540
|
tools,
|
|
6319
6541
|
generatorStream,
|
|
@@ -6324,6 +6546,7 @@ function runToolsTransformation({
|
|
|
6324
6546
|
abortSignal,
|
|
6325
6547
|
repairToolCall,
|
|
6326
6548
|
experimental_context,
|
|
6549
|
+
toolApprovalSecret,
|
|
6327
6550
|
generateId: generateId2,
|
|
6328
6551
|
stepNumber,
|
|
6329
6552
|
model,
|
|
@@ -6427,7 +6650,7 @@ function runToolsTransformation({
|
|
|
6427
6650
|
toolCallId: toolCall.toolCallId,
|
|
6428
6651
|
toolName: toolCall.toolName,
|
|
6429
6652
|
input: toolCall.input,
|
|
6430
|
-
error: (0,
|
|
6653
|
+
error: (0, import_provider_utils19.getErrorMessage)(toolCall.error),
|
|
6431
6654
|
dynamic: true,
|
|
6432
6655
|
title: toolCall.title,
|
|
6433
6656
|
...toolCall.toolMetadata != null ? { toolMetadata: toolCall.toolMetadata } : {}
|
|
@@ -6453,10 +6676,19 @@ function runToolsTransformation({
|
|
|
6453
6676
|
messages,
|
|
6454
6677
|
experimental_context
|
|
6455
6678
|
})) {
|
|
6679
|
+
const approvalId = generateId2();
|
|
6680
|
+
const signature = await maybeSignApproval({
|
|
6681
|
+
secret: toolApprovalSecret,
|
|
6682
|
+
approvalId,
|
|
6683
|
+
toolCallId: toolCall.toolCallId,
|
|
6684
|
+
toolName: toolCall.toolName,
|
|
6685
|
+
input: toolCall.input
|
|
6686
|
+
});
|
|
6456
6687
|
toolResultsStreamController.enqueue({
|
|
6457
6688
|
type: "tool-approval-request",
|
|
6458
|
-
approvalId
|
|
6459
|
-
toolCall
|
|
6689
|
+
approvalId,
|
|
6690
|
+
toolCall,
|
|
6691
|
+
...signature != null ? { signature } : {}
|
|
6460
6692
|
});
|
|
6461
6693
|
break;
|
|
6462
6694
|
}
|
|
@@ -6565,7 +6797,7 @@ function runToolsTransformation({
|
|
|
6565
6797
|
}
|
|
6566
6798
|
|
|
6567
6799
|
// src/generate-text/stream-text.ts
|
|
6568
|
-
var originalGenerateId2 = (0,
|
|
6800
|
+
var originalGenerateId2 = (0, import_provider_utils20.createIdGenerator)({
|
|
6569
6801
|
prefix: "aitxt",
|
|
6570
6802
|
size: 24
|
|
6571
6803
|
});
|
|
@@ -6627,6 +6859,7 @@ function streamText({
|
|
|
6627
6859
|
experimental_onToolCallStart: onToolCallStart,
|
|
6628
6860
|
experimental_onToolCallFinish: onToolCallFinish,
|
|
6629
6861
|
experimental_context,
|
|
6862
|
+
experimental_toolApprovalSecret,
|
|
6630
6863
|
experimental_include: include,
|
|
6631
6864
|
_internal: { now: now2 = now, generateId: generateId2 = originalGenerateId2 } = {},
|
|
6632
6865
|
...settings
|
|
@@ -6681,6 +6914,7 @@ function streamText({
|
|
|
6681
6914
|
now: now2,
|
|
6682
6915
|
generateId: generateId2,
|
|
6683
6916
|
experimental_context,
|
|
6917
|
+
experimental_toolApprovalSecret,
|
|
6684
6918
|
download: download2,
|
|
6685
6919
|
include
|
|
6686
6920
|
});
|
|
@@ -6708,7 +6942,7 @@ function createOutputTransformStream(output) {
|
|
|
6708
6942
|
}
|
|
6709
6943
|
return new TransformStream({
|
|
6710
6944
|
async transform(chunk, controller) {
|
|
6711
|
-
var
|
|
6945
|
+
var _a22;
|
|
6712
6946
|
if (chunk.type === "finish-step" && textChunk.length > 0) {
|
|
6713
6947
|
publishTextChunk({ controller });
|
|
6714
6948
|
}
|
|
@@ -6735,7 +6969,7 @@ function createOutputTransformStream(output) {
|
|
|
6735
6969
|
}
|
|
6736
6970
|
text2 += chunk.text;
|
|
6737
6971
|
textChunk += chunk.text;
|
|
6738
|
-
textProviderMetadata = (
|
|
6972
|
+
textProviderMetadata = (_a22 = chunk.providerMetadata) != null ? _a22 : textProviderMetadata;
|
|
6739
6973
|
const result = await output.parsePartialOutput({ text: text2 });
|
|
6740
6974
|
if (result !== void 0) {
|
|
6741
6975
|
const currentValue = typeof result.partial === "string" ? result.partial : JSON.stringify(result.partial);
|
|
@@ -6788,13 +7022,14 @@ var DefaultStreamTextResult = class {
|
|
|
6788
7022
|
onToolCallStart,
|
|
6789
7023
|
onToolCallFinish,
|
|
6790
7024
|
experimental_context,
|
|
7025
|
+
experimental_toolApprovalSecret,
|
|
6791
7026
|
download: download2,
|
|
6792
7027
|
include
|
|
6793
7028
|
}) {
|
|
6794
|
-
this._totalUsage = new
|
|
6795
|
-
this._finishReason = new
|
|
6796
|
-
this._rawFinishReason = new
|
|
6797
|
-
this._steps = new
|
|
7029
|
+
this._totalUsage = new import_provider_utils20.DelayedPromise();
|
|
7030
|
+
this._finishReason = new import_provider_utils20.DelayedPromise();
|
|
7031
|
+
this._rawFinishReason = new import_provider_utils20.DelayedPromise();
|
|
7032
|
+
this._steps = new import_provider_utils20.DelayedPromise();
|
|
6798
7033
|
this.outputSpecification = output;
|
|
6799
7034
|
this.includeRawChunks = includeRawChunks;
|
|
6800
7035
|
this.tools = tools;
|
|
@@ -6816,7 +7051,7 @@ var DefaultStreamTextResult = class {
|
|
|
6816
7051
|
let activeReasoningContent = {};
|
|
6817
7052
|
const eventProcessor = new TransformStream({
|
|
6818
7053
|
async transform(chunk, controller) {
|
|
6819
|
-
var
|
|
7054
|
+
var _a22, _b, _c, _d;
|
|
6820
7055
|
controller.enqueue(chunk);
|
|
6821
7056
|
const { part } = chunk;
|
|
6822
7057
|
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") {
|
|
@@ -6850,7 +7085,7 @@ var DefaultStreamTextResult = class {
|
|
|
6850
7085
|
return;
|
|
6851
7086
|
}
|
|
6852
7087
|
activeText.text += part.text;
|
|
6853
|
-
activeText.providerMetadata = (
|
|
7088
|
+
activeText.providerMetadata = (_a22 = part.providerMetadata) != null ? _a22 : activeText.providerMetadata;
|
|
6854
7089
|
}
|
|
6855
7090
|
if (part.type === "text-end") {
|
|
6856
7091
|
const activeText = activeTextContent[part.id];
|
|
@@ -6976,7 +7211,7 @@ var DefaultStreamTextResult = class {
|
|
|
6976
7211
|
}
|
|
6977
7212
|
},
|
|
6978
7213
|
async flush(controller) {
|
|
6979
|
-
var
|
|
7214
|
+
var _a22, _b, _c, _d, _e, _f, _g;
|
|
6980
7215
|
try {
|
|
6981
7216
|
if (recordedSteps.length === 0 || recordedNoOutputError != null) {
|
|
6982
7217
|
const error = (abortSignal == null ? void 0 : abortSignal.aborted) ? abortSignal.reason : recordedNoOutputError != null ? recordedNoOutputError : new NoOutputGeneratedError({
|
|
@@ -7040,15 +7275,15 @@ var DefaultStreamTextResult = class {
|
|
|
7040
7275
|
},
|
|
7041
7276
|
"ai.response.toolCalls": {
|
|
7042
7277
|
output: () => {
|
|
7043
|
-
var
|
|
7044
|
-
return ((
|
|
7278
|
+
var _a23;
|
|
7279
|
+
return ((_a23 = finalStep.toolCalls) == null ? void 0 : _a23.length) ? JSON.stringify(finalStep.toolCalls) : void 0;
|
|
7045
7280
|
}
|
|
7046
7281
|
},
|
|
7047
7282
|
"ai.response.providerMetadata": JSON.stringify(
|
|
7048
7283
|
finalStep.providerMetadata
|
|
7049
7284
|
),
|
|
7050
7285
|
"ai.usage.inputTokens": totalUsage.inputTokens,
|
|
7051
|
-
"ai.usage.inputTokenDetails.noCacheTokens": (
|
|
7286
|
+
"ai.usage.inputTokenDetails.noCacheTokens": (_a22 = totalUsage.inputTokenDetails) == null ? void 0 : _a22.noCacheTokens,
|
|
7052
7287
|
"ai.usage.inputTokenDetails.cacheReadTokens": (_b = totalUsage.inputTokenDetails) == null ? void 0 : _b.cacheReadTokens,
|
|
7053
7288
|
"ai.usage.inputTokenDetails.cacheWriteTokens": (_c = totalUsage.inputTokenDetails) == null ? void 0 : _c.cacheWriteTokens,
|
|
7054
7289
|
"ai.usage.outputTokens": totalUsage.outputTokens,
|
|
@@ -7083,7 +7318,7 @@ var DefaultStreamTextResult = class {
|
|
|
7083
7318
|
// The `reason` is usually of type DOMException, but it can also be of any type,
|
|
7084
7319
|
// so we use getErrorMessage for serialization because it is already designed to accept values of the unknown type.
|
|
7085
7320
|
// See: https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal/reason
|
|
7086
|
-
...(abortSignal == null ? void 0 : abortSignal.reason) !== void 0 ? { reason: (0,
|
|
7321
|
+
...(abortSignal == null ? void 0 : abortSignal.reason) !== void 0 ? { reason: (0, import_provider29.getErrorMessage)(abortSignal.reason) } : {}
|
|
7087
7322
|
});
|
|
7088
7323
|
controller.close();
|
|
7089
7324
|
}
|
|
@@ -7099,7 +7334,7 @@ var DefaultStreamTextResult = class {
|
|
|
7099
7334
|
}
|
|
7100
7335
|
controller.enqueue(value);
|
|
7101
7336
|
} catch (error) {
|
|
7102
|
-
if ((0,
|
|
7337
|
+
if ((0, import_provider_utils20.isAbortError)(error) && (abortSignal == null ? void 0 : abortSignal.aborted)) {
|
|
7103
7338
|
abort();
|
|
7104
7339
|
} else {
|
|
7105
7340
|
controller.error(error);
|
|
@@ -7199,12 +7434,24 @@ var DefaultStreamTextResult = class {
|
|
|
7199
7434
|
const initialResponseMessages = [];
|
|
7200
7435
|
const { approvedToolApprovals, deniedToolApprovals } = collectToolApprovals({ messages: initialMessages });
|
|
7201
7436
|
if (deniedToolApprovals.length > 0 || approvedToolApprovals.length > 0) {
|
|
7202
|
-
const
|
|
7203
|
-
|
|
7204
|
-
|
|
7205
|
-
|
|
7206
|
-
|
|
7207
|
-
|
|
7437
|
+
const {
|
|
7438
|
+
approvedToolApprovals: localApprovedToolApprovals,
|
|
7439
|
+
deniedToolApprovals: revalidationDeniedToolApprovals
|
|
7440
|
+
} = await validateApprovedToolApprovals({
|
|
7441
|
+
approvedToolApprovals: approvedToolApprovals.filter(
|
|
7442
|
+
(toolApproval) => !toolApproval.toolCall.providerExecuted
|
|
7443
|
+
),
|
|
7444
|
+
tools,
|
|
7445
|
+
messages: initialMessages,
|
|
7446
|
+
experimental_context,
|
|
7447
|
+
toolApprovalSecret: experimental_toolApprovalSecret
|
|
7448
|
+
});
|
|
7449
|
+
const localDeniedToolApprovals = [
|
|
7450
|
+
...deniedToolApprovals.filter(
|
|
7451
|
+
(toolApproval) => !toolApproval.toolCall.providerExecuted
|
|
7452
|
+
),
|
|
7453
|
+
...revalidationDeniedToolApprovals
|
|
7454
|
+
];
|
|
7208
7455
|
const deniedProviderExecutedToolApprovals = deniedToolApprovals.filter(
|
|
7209
7456
|
(toolApproval) => toolApproval.toolCall.providerExecuted
|
|
7210
7457
|
);
|
|
@@ -7299,7 +7546,7 @@ var DefaultStreamTextResult = class {
|
|
|
7299
7546
|
responseMessages,
|
|
7300
7547
|
usage
|
|
7301
7548
|
}) {
|
|
7302
|
-
var
|
|
7549
|
+
var _a22, _b, _c, _d, _e, _f, _g, _h, _i;
|
|
7303
7550
|
const includeRawChunks2 = self.includeRawChunks;
|
|
7304
7551
|
const stepTimeoutId = stepTimeoutMs != null ? setTimeout(() => stepAbortController.abort(), stepTimeoutMs) : void 0;
|
|
7305
7552
|
let chunkTimeoutId = void 0;
|
|
@@ -7326,7 +7573,7 @@ var DefaultStreamTextResult = class {
|
|
|
7326
7573
|
}
|
|
7327
7574
|
}
|
|
7328
7575
|
try {
|
|
7329
|
-
stepFinish = new
|
|
7576
|
+
stepFinish = new import_provider_utils20.DelayedPromise();
|
|
7330
7577
|
const stepInputMessages = [...initialMessages, ...responseMessages];
|
|
7331
7578
|
const prepareStepResult = await (prepareStep == null ? void 0 : prepareStep({
|
|
7332
7579
|
model,
|
|
@@ -7336,7 +7583,7 @@ var DefaultStreamTextResult = class {
|
|
|
7336
7583
|
experimental_context
|
|
7337
7584
|
}));
|
|
7338
7585
|
const stepModel = resolveLanguageModel(
|
|
7339
|
-
(
|
|
7586
|
+
(_a22 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a22 : model
|
|
7340
7587
|
);
|
|
7341
7588
|
const stepModelInfo = {
|
|
7342
7589
|
provider: stepModel.provider,
|
|
@@ -7459,6 +7706,7 @@ var DefaultStreamTextResult = class {
|
|
|
7459
7706
|
repairToolCall,
|
|
7460
7707
|
abortSignal,
|
|
7461
7708
|
experimental_context,
|
|
7709
|
+
toolApprovalSecret: experimental_toolApprovalSecret,
|
|
7462
7710
|
generateId: generateId2,
|
|
7463
7711
|
stepNumber: recordedSteps.length,
|
|
7464
7712
|
model: stepModelInfo,
|
|
@@ -7493,7 +7741,7 @@ var DefaultStreamTextResult = class {
|
|
|
7493
7741
|
streamWithToolResults.pipeThrough(
|
|
7494
7742
|
new TransformStream({
|
|
7495
7743
|
async transform(chunk, controller) {
|
|
7496
|
-
var
|
|
7744
|
+
var _a23, _b2, _c2, _d2, _e2;
|
|
7497
7745
|
resetChunkTimeout();
|
|
7498
7746
|
if (chunk.type === "stream-start") {
|
|
7499
7747
|
warnings = chunk.warnings;
|
|
@@ -7570,7 +7818,7 @@ var DefaultStreamTextResult = class {
|
|
|
7570
7818
|
}
|
|
7571
7819
|
case "response-metadata": {
|
|
7572
7820
|
stepResponse = {
|
|
7573
|
-
id: (
|
|
7821
|
+
id: (_a23 = chunk.id) != null ? _a23 : stepResponse.id,
|
|
7574
7822
|
timestamp: (_b2 = chunk.timestamp) != null ? _b2 : stepResponse.timestamp,
|
|
7575
7823
|
modelId: (_c2 = chunk.modelId) != null ? _c2 : stepResponse.modelId
|
|
7576
7824
|
};
|
|
@@ -7658,7 +7906,7 @@ var DefaultStreamTextResult = class {
|
|
|
7658
7906
|
},
|
|
7659
7907
|
// invoke onFinish callback and resolve toolResults promise when the stream is about to close:
|
|
7660
7908
|
async flush(controller) {
|
|
7661
|
-
var
|
|
7909
|
+
var _a23, _b2, _c2, _d2, _e2, _f2, _g2;
|
|
7662
7910
|
if (!hasReceivedTerminalChunk && !hasReceivedOutputChunk) {
|
|
7663
7911
|
controller.enqueue({
|
|
7664
7912
|
type: "error",
|
|
@@ -7686,7 +7934,7 @@ var DefaultStreamTextResult = class {
|
|
|
7686
7934
|
"ai.response.model": stepResponse.modelId,
|
|
7687
7935
|
"ai.response.timestamp": stepResponse.timestamp.toISOString(),
|
|
7688
7936
|
"ai.usage.inputTokens": stepUsage.inputTokens,
|
|
7689
|
-
"ai.usage.inputTokenDetails.noCacheTokens": (
|
|
7937
|
+
"ai.usage.inputTokenDetails.noCacheTokens": (_a23 = stepUsage.inputTokenDetails) == null ? void 0 : _a23.noCacheTokens,
|
|
7690
7938
|
"ai.usage.inputTokenDetails.cacheReadTokens": (_b2 = stepUsage.inputTokenDetails) == null ? void 0 : _b2.cacheReadTokens,
|
|
7691
7939
|
"ai.usage.inputTokenDetails.cacheWriteTokens": (_c2 = stepUsage.inputTokenDetails) == null ? void 0 : _c2.cacheWriteTokens,
|
|
7692
7940
|
"ai.usage.outputTokens": stepUsage.outputTokens,
|
|
@@ -7960,19 +8208,19 @@ var DefaultStreamTextResult = class {
|
|
|
7960
8208
|
this._steps.reject(error);
|
|
7961
8209
|
}
|
|
7962
8210
|
async consumeStream(options) {
|
|
7963
|
-
var
|
|
8211
|
+
var _a22;
|
|
7964
8212
|
try {
|
|
7965
8213
|
await consumeStream({
|
|
7966
8214
|
stream: this.fullStream,
|
|
7967
8215
|
onError: (error) => {
|
|
7968
|
-
var
|
|
8216
|
+
var _a23;
|
|
7969
8217
|
this.rejectResultPromises(error);
|
|
7970
|
-
(
|
|
8218
|
+
(_a23 = options == null ? void 0 : options.onError) == null ? void 0 : _a23.call(options, error);
|
|
7971
8219
|
}
|
|
7972
8220
|
});
|
|
7973
8221
|
} catch (error) {
|
|
7974
8222
|
this.rejectResultPromises(error);
|
|
7975
|
-
(
|
|
8223
|
+
(_a22 = options == null ? void 0 : options.onError) == null ? void 0 : _a22.call(options, error);
|
|
7976
8224
|
}
|
|
7977
8225
|
}
|
|
7978
8226
|
get experimental_partialOutputStream() {
|
|
@@ -7992,10 +8240,10 @@ var DefaultStreamTextResult = class {
|
|
|
7992
8240
|
);
|
|
7993
8241
|
}
|
|
7994
8242
|
get elementStream() {
|
|
7995
|
-
var
|
|
7996
|
-
const transform = (
|
|
8243
|
+
var _a22, _b, _c;
|
|
8244
|
+
const transform = (_a22 = this.outputSpecification) == null ? void 0 : _a22.createElementStreamTransform();
|
|
7997
8245
|
if (transform == null) {
|
|
7998
|
-
throw new
|
|
8246
|
+
throw new import_provider29.UnsupportedFunctionalityError({
|
|
7999
8247
|
functionality: `element streams in ${(_c = (_b = this.outputSpecification) == null ? void 0 : _b.name) != null ? _c : "text"} mode`
|
|
8000
8248
|
});
|
|
8001
8249
|
}
|
|
@@ -8003,8 +8251,8 @@ var DefaultStreamTextResult = class {
|
|
|
8003
8251
|
}
|
|
8004
8252
|
get output() {
|
|
8005
8253
|
return this.finalStep.then((step) => {
|
|
8006
|
-
var
|
|
8007
|
-
const output = (
|
|
8254
|
+
var _a22;
|
|
8255
|
+
const output = (_a22 = this.outputSpecification) != null ? _a22 : text();
|
|
8008
8256
|
return output.parseCompleteOutput(
|
|
8009
8257
|
{ text: step.text },
|
|
8010
8258
|
{
|
|
@@ -8024,15 +8272,15 @@ var DefaultStreamTextResult = class {
|
|
|
8024
8272
|
sendSources = false,
|
|
8025
8273
|
sendStart = true,
|
|
8026
8274
|
sendFinish = true,
|
|
8027
|
-
onError =
|
|
8275
|
+
onError = import_provider29.getErrorMessage
|
|
8028
8276
|
} = {}) {
|
|
8029
8277
|
const responseMessageId = generateMessageId != null ? getResponseUIMessageId({
|
|
8030
8278
|
originalMessages,
|
|
8031
8279
|
responseMessageId: generateMessageId
|
|
8032
8280
|
}) : void 0;
|
|
8033
8281
|
const isDynamic = (part) => {
|
|
8034
|
-
var
|
|
8035
|
-
const tool2 = (
|
|
8282
|
+
var _a22;
|
|
8283
|
+
const tool2 = (_a22 = this.tools) == null ? void 0 : _a22[part.toolName];
|
|
8036
8284
|
if (tool2 == null) {
|
|
8037
8285
|
return part.dynamic;
|
|
8038
8286
|
}
|
|
@@ -8178,7 +8426,8 @@ var DefaultStreamTextResult = class {
|
|
|
8178
8426
|
controller.enqueue({
|
|
8179
8427
|
type: "tool-approval-request",
|
|
8180
8428
|
approvalId: part.approvalId,
|
|
8181
|
-
toolCallId: part.toolCall.toolCallId
|
|
8429
|
+
toolCallId: part.toolCall.toolCallId,
|
|
8430
|
+
...part.signature != null ? { signature: part.signature } : {}
|
|
8182
8431
|
});
|
|
8183
8432
|
break;
|
|
8184
8433
|
}
|
|
@@ -8374,9 +8623,9 @@ var ToolLoopAgent = class {
|
|
|
8374
8623
|
return this.settings.tools;
|
|
8375
8624
|
}
|
|
8376
8625
|
async prepareCall(options) {
|
|
8377
|
-
var
|
|
8626
|
+
var _a22, _b, _c, _d;
|
|
8378
8627
|
if (this.settings.callOptionsSchema != null && options.options !== void 0) {
|
|
8379
|
-
const validatedOptions = await (0,
|
|
8628
|
+
const validatedOptions = await (0, import_provider_utils21.validateTypes)({
|
|
8380
8629
|
value: options.options,
|
|
8381
8630
|
schema: this.settings.callOptionsSchema,
|
|
8382
8631
|
context: { field: "options" }
|
|
@@ -8386,7 +8635,7 @@ var ToolLoopAgent = class {
|
|
|
8386
8635
|
const { onStepFinish: _settingsOnStepFinish, ...settingsWithoutCallback } = this.settings;
|
|
8387
8636
|
const baseCallArgs = {
|
|
8388
8637
|
...settingsWithoutCallback,
|
|
8389
|
-
stopWhen: (
|
|
8638
|
+
stopWhen: (_a22 = this.settings.stopWhen) != null ? _a22 : stepCountIs(20),
|
|
8390
8639
|
...options
|
|
8391
8640
|
};
|
|
8392
8641
|
const preparedCallArgs = (_d = await ((_c = (_b = this.settings).prepareCall) == null ? void 0 : _c.call(
|
|
@@ -8458,14 +8707,14 @@ var ToolLoopAgent = class {
|
|
|
8458
8707
|
};
|
|
8459
8708
|
|
|
8460
8709
|
// src/ui-message-stream/create-ui-message-stream.ts
|
|
8461
|
-
var
|
|
8710
|
+
var import_provider_utils22 = require("@ai-sdk/provider-utils");
|
|
8462
8711
|
function createUIMessageStream({
|
|
8463
8712
|
execute,
|
|
8464
|
-
onError =
|
|
8713
|
+
onError = import_provider_utils22.getErrorMessage,
|
|
8465
8714
|
originalMessages,
|
|
8466
8715
|
onStepFinish,
|
|
8467
8716
|
onFinish,
|
|
8468
|
-
generateId: generateId2 =
|
|
8717
|
+
generateId: generateId2 = import_provider_utils22.generateId
|
|
8469
8718
|
}) {
|
|
8470
8719
|
let controller;
|
|
8471
8720
|
const ongoingStreamPromises = [];
|
|
@@ -8552,7 +8801,7 @@ function readUIMessageStream({
|
|
|
8552
8801
|
onError,
|
|
8553
8802
|
terminateOnError = false
|
|
8554
8803
|
}) {
|
|
8555
|
-
var
|
|
8804
|
+
var _a22;
|
|
8556
8805
|
let controller;
|
|
8557
8806
|
let hasErrored = false;
|
|
8558
8807
|
const outputStream = new ReadableStream({
|
|
@@ -8561,7 +8810,7 @@ function readUIMessageStream({
|
|
|
8561
8810
|
}
|
|
8562
8811
|
});
|
|
8563
8812
|
const state = createStreamingUIMessageState({
|
|
8564
|
-
messageId: (
|
|
8813
|
+
messageId: (_a22 = message == null ? void 0 : message.id) != null ? _a22 : "",
|
|
8565
8814
|
lastMessage: message
|
|
8566
8815
|
});
|
|
8567
8816
|
const handleError = (error) => {
|
|
@@ -8594,7 +8843,7 @@ function readUIMessageStream({
|
|
|
8594
8843
|
}
|
|
8595
8844
|
|
|
8596
8845
|
// src/ui/convert-to-model-messages.ts
|
|
8597
|
-
var
|
|
8846
|
+
var import_provider_utils23 = require("@ai-sdk/provider-utils");
|
|
8598
8847
|
async function convertToModelMessages(messages, options) {
|
|
8599
8848
|
const modelMessages = [];
|
|
8600
8849
|
if (options == null ? void 0 : options.ignoreIncompleteToolCalls) {
|
|
@@ -8628,7 +8877,7 @@ async function convertToModelMessages(messages, options) {
|
|
|
8628
8877
|
modelMessages.push({
|
|
8629
8878
|
role: "user",
|
|
8630
8879
|
content: message.parts.map((part) => {
|
|
8631
|
-
var
|
|
8880
|
+
var _a22;
|
|
8632
8881
|
if (isTextUIPart(part)) {
|
|
8633
8882
|
return {
|
|
8634
8883
|
type: "text",
|
|
@@ -8646,12 +8895,12 @@ async function convertToModelMessages(messages, options) {
|
|
|
8646
8895
|
};
|
|
8647
8896
|
}
|
|
8648
8897
|
if (isDataUIPart(part)) {
|
|
8649
|
-
return (
|
|
8898
|
+
return (_a22 = options == null ? void 0 : options.convertDataPart) == null ? void 0 : _a22.call(
|
|
8650
8899
|
options,
|
|
8651
8900
|
part
|
|
8652
8901
|
);
|
|
8653
8902
|
}
|
|
8654
|
-
}).filter(
|
|
8903
|
+
}).filter(import_provider_utils23.isNonNullable)
|
|
8655
8904
|
});
|
|
8656
8905
|
break;
|
|
8657
8906
|
}
|
|
@@ -8659,7 +8908,7 @@ async function convertToModelMessages(messages, options) {
|
|
|
8659
8908
|
if (message.parts != null) {
|
|
8660
8909
|
let block = [];
|
|
8661
8910
|
async function processBlock() {
|
|
8662
|
-
var
|
|
8911
|
+
var _a22, _b, _c, _d, _e, _f, _g, _h;
|
|
8663
8912
|
if (block.length === 0) {
|
|
8664
8913
|
return;
|
|
8665
8914
|
}
|
|
@@ -8692,7 +8941,7 @@ async function convertToModelMessages(messages, options) {
|
|
|
8692
8941
|
type: "tool-call",
|
|
8693
8942
|
toolCallId: part.toolCallId,
|
|
8694
8943
|
toolName,
|
|
8695
|
-
input: part.state === "output-error" ? (
|
|
8944
|
+
input: part.state === "output-error" ? (_a22 = part.input) != null ? _a22 : "rawInput" in part ? part.rawInput : void 0 : part.input,
|
|
8696
8945
|
providerExecuted: part.providerExecuted,
|
|
8697
8946
|
...part.callProviderMetadata != null ? { providerOptions: part.callProviderMetadata } : {}
|
|
8698
8947
|
});
|
|
@@ -8700,7 +8949,8 @@ async function convertToModelMessages(messages, options) {
|
|
|
8700
8949
|
content.push({
|
|
8701
8950
|
type: "tool-approval-request",
|
|
8702
8951
|
approvalId: part.approval.id,
|
|
8703
|
-
toolCallId: part.toolCallId
|
|
8952
|
+
toolCallId: part.toolCallId,
|
|
8953
|
+
...part.approval.signature != null ? { signature: part.approval.signature } : {}
|
|
8704
8954
|
});
|
|
8705
8955
|
}
|
|
8706
8956
|
if (part.providerExecuted === true && part.state !== "approval-responded" && (part.state === "output-available" || part.state === "output-error")) {
|
|
@@ -8739,8 +8989,8 @@ async function convertToModelMessages(messages, options) {
|
|
|
8739
8989
|
});
|
|
8740
8990
|
const toolParts = block.filter(
|
|
8741
8991
|
(part) => {
|
|
8742
|
-
var
|
|
8743
|
-
return isToolUIPart(part) && (part.providerExecuted !== true || ((
|
|
8992
|
+
var _a23;
|
|
8993
|
+
return isToolUIPart(part) && (part.providerExecuted !== true || ((_a23 = part.approval) == null ? void 0 : _a23.approved) != null);
|
|
8744
8994
|
}
|
|
8745
8995
|
);
|
|
8746
8996
|
if (toolParts.length > 0) {
|
|
@@ -8828,15 +9078,15 @@ async function convertToModelMessages(messages, options) {
|
|
|
8828
9078
|
}
|
|
8829
9079
|
|
|
8830
9080
|
// src/ui/validate-ui-messages.ts
|
|
8831
|
-
var
|
|
8832
|
-
var
|
|
9081
|
+
var import_provider30 = require("@ai-sdk/provider");
|
|
9082
|
+
var import_provider_utils24 = require("@ai-sdk/provider-utils");
|
|
8833
9083
|
var import_v48 = require("zod/v4");
|
|
8834
9084
|
var toolMetadataSchema2 = import_v48.z.record(
|
|
8835
9085
|
import_v48.z.string(),
|
|
8836
9086
|
jsonValueSchema.optional()
|
|
8837
9087
|
);
|
|
8838
|
-
var uiMessagesSchema = (0,
|
|
8839
|
-
() => (0,
|
|
9088
|
+
var uiMessagesSchema = (0, import_provider_utils24.lazySchema)(
|
|
9089
|
+
() => (0, import_provider_utils24.zodSchema)(
|
|
8840
9090
|
import_v48.z.array(
|
|
8841
9091
|
import_v48.z.object({
|
|
8842
9092
|
id: import_v48.z.string(),
|
|
@@ -8926,7 +9176,8 @@ var uiMessagesSchema = (0, import_provider_utils22.lazySchema)(
|
|
|
8926
9176
|
approval: import_v48.z.object({
|
|
8927
9177
|
id: import_v48.z.string(),
|
|
8928
9178
|
approved: import_v48.z.never().optional(),
|
|
8929
|
-
reason: import_v48.z.never().optional()
|
|
9179
|
+
reason: import_v48.z.never().optional(),
|
|
9180
|
+
signature: import_v48.z.string().optional()
|
|
8930
9181
|
})
|
|
8931
9182
|
}),
|
|
8932
9183
|
import_v48.z.object({
|
|
@@ -8943,7 +9194,8 @@ var uiMessagesSchema = (0, import_provider_utils22.lazySchema)(
|
|
|
8943
9194
|
approval: import_v48.z.object({
|
|
8944
9195
|
id: import_v48.z.string(),
|
|
8945
9196
|
approved: import_v48.z.boolean(),
|
|
8946
|
-
reason: import_v48.z.string().optional()
|
|
9197
|
+
reason: import_v48.z.string().optional(),
|
|
9198
|
+
signature: import_v48.z.string().optional()
|
|
8947
9199
|
})
|
|
8948
9200
|
}),
|
|
8949
9201
|
import_v48.z.object({
|
|
@@ -8962,7 +9214,8 @@ var uiMessagesSchema = (0, import_provider_utils22.lazySchema)(
|
|
|
8962
9214
|
approval: import_v48.z.object({
|
|
8963
9215
|
id: import_v48.z.string(),
|
|
8964
9216
|
approved: import_v48.z.literal(true),
|
|
8965
|
-
reason: import_v48.z.string().optional()
|
|
9217
|
+
reason: import_v48.z.string().optional(),
|
|
9218
|
+
signature: import_v48.z.string().optional()
|
|
8966
9219
|
}).optional()
|
|
8967
9220
|
}),
|
|
8968
9221
|
import_v48.z.object({
|
|
@@ -8981,7 +9234,8 @@ var uiMessagesSchema = (0, import_provider_utils22.lazySchema)(
|
|
|
8981
9234
|
approval: import_v48.z.object({
|
|
8982
9235
|
id: import_v48.z.string(),
|
|
8983
9236
|
approved: import_v48.z.literal(true),
|
|
8984
|
-
reason: import_v48.z.string().optional()
|
|
9237
|
+
reason: import_v48.z.string().optional(),
|
|
9238
|
+
signature: import_v48.z.string().optional()
|
|
8985
9239
|
}).optional()
|
|
8986
9240
|
}),
|
|
8987
9241
|
import_v48.z.object({
|
|
@@ -8998,7 +9252,8 @@ var uiMessagesSchema = (0, import_provider_utils22.lazySchema)(
|
|
|
8998
9252
|
approval: import_v48.z.object({
|
|
8999
9253
|
id: import_v48.z.string(),
|
|
9000
9254
|
approved: import_v48.z.literal(false),
|
|
9001
|
-
reason: import_v48.z.string().optional()
|
|
9255
|
+
reason: import_v48.z.string().optional(),
|
|
9256
|
+
signature: import_v48.z.string().optional()
|
|
9002
9257
|
})
|
|
9003
9258
|
}),
|
|
9004
9259
|
import_v48.z.object({
|
|
@@ -9038,7 +9293,8 @@ var uiMessagesSchema = (0, import_provider_utils22.lazySchema)(
|
|
|
9038
9293
|
approval: import_v48.z.object({
|
|
9039
9294
|
id: import_v48.z.string(),
|
|
9040
9295
|
approved: import_v48.z.never().optional(),
|
|
9041
|
-
reason: import_v48.z.never().optional()
|
|
9296
|
+
reason: import_v48.z.never().optional(),
|
|
9297
|
+
signature: import_v48.z.string().optional()
|
|
9042
9298
|
})
|
|
9043
9299
|
}),
|
|
9044
9300
|
import_v48.z.object({
|
|
@@ -9054,7 +9310,8 @@ var uiMessagesSchema = (0, import_provider_utils22.lazySchema)(
|
|
|
9054
9310
|
approval: import_v48.z.object({
|
|
9055
9311
|
id: import_v48.z.string(),
|
|
9056
9312
|
approved: import_v48.z.boolean(),
|
|
9057
|
-
reason: import_v48.z.string().optional()
|
|
9313
|
+
reason: import_v48.z.string().optional(),
|
|
9314
|
+
signature: import_v48.z.string().optional()
|
|
9058
9315
|
})
|
|
9059
9316
|
}),
|
|
9060
9317
|
import_v48.z.object({
|
|
@@ -9072,7 +9329,8 @@ var uiMessagesSchema = (0, import_provider_utils22.lazySchema)(
|
|
|
9072
9329
|
approval: import_v48.z.object({
|
|
9073
9330
|
id: import_v48.z.string(),
|
|
9074
9331
|
approved: import_v48.z.literal(true),
|
|
9075
|
-
reason: import_v48.z.string().optional()
|
|
9332
|
+
reason: import_v48.z.string().optional(),
|
|
9333
|
+
signature: import_v48.z.string().optional()
|
|
9076
9334
|
}).optional()
|
|
9077
9335
|
}),
|
|
9078
9336
|
import_v48.z.object({
|
|
@@ -9090,7 +9348,8 @@ var uiMessagesSchema = (0, import_provider_utils22.lazySchema)(
|
|
|
9090
9348
|
approval: import_v48.z.object({
|
|
9091
9349
|
id: import_v48.z.string(),
|
|
9092
9350
|
approved: import_v48.z.literal(true),
|
|
9093
|
-
reason: import_v48.z.string().optional()
|
|
9351
|
+
reason: import_v48.z.string().optional(),
|
|
9352
|
+
signature: import_v48.z.string().optional()
|
|
9094
9353
|
}).optional()
|
|
9095
9354
|
}),
|
|
9096
9355
|
import_v48.z.object({
|
|
@@ -9106,7 +9365,8 @@ var uiMessagesSchema = (0, import_provider_utils22.lazySchema)(
|
|
|
9106
9365
|
approval: import_v48.z.object({
|
|
9107
9366
|
id: import_v48.z.string(),
|
|
9108
9367
|
approved: import_v48.z.literal(false),
|
|
9109
|
-
reason: import_v48.z.string().optional()
|
|
9368
|
+
reason: import_v48.z.string().optional(),
|
|
9369
|
+
signature: import_v48.z.string().optional()
|
|
9110
9370
|
})
|
|
9111
9371
|
})
|
|
9112
9372
|
])
|
|
@@ -9132,13 +9392,13 @@ async function safeValidateUIMessages({
|
|
|
9132
9392
|
})
|
|
9133
9393
|
};
|
|
9134
9394
|
}
|
|
9135
|
-
const validatedMessages = await (0,
|
|
9395
|
+
const validatedMessages = await (0, import_provider_utils24.validateTypes)({
|
|
9136
9396
|
value: messages,
|
|
9137
9397
|
schema: uiMessagesSchema
|
|
9138
9398
|
});
|
|
9139
9399
|
if (metadataSchema) {
|
|
9140
9400
|
for (const [msgIdx, message] of validatedMessages.entries()) {
|
|
9141
|
-
await (0,
|
|
9401
|
+
await (0, import_provider_utils24.validateTypes)({
|
|
9142
9402
|
value: message.metadata,
|
|
9143
9403
|
schema: metadataSchema,
|
|
9144
9404
|
context: {
|
|
@@ -9158,7 +9418,7 @@ async function safeValidateUIMessages({
|
|
|
9158
9418
|
if (!dataSchema) {
|
|
9159
9419
|
return {
|
|
9160
9420
|
success: false,
|
|
9161
|
-
error: new
|
|
9421
|
+
error: new import_provider30.TypeValidationError({
|
|
9162
9422
|
value: dataPart.data,
|
|
9163
9423
|
cause: `No data schema found for data part ${dataName}`,
|
|
9164
9424
|
context: {
|
|
@@ -9169,7 +9429,7 @@ async function safeValidateUIMessages({
|
|
|
9169
9429
|
})
|
|
9170
9430
|
};
|
|
9171
9431
|
}
|
|
9172
|
-
await (0,
|
|
9432
|
+
await (0, import_provider_utils24.validateTypes)({
|
|
9173
9433
|
value: dataPart.data,
|
|
9174
9434
|
schema: dataSchema,
|
|
9175
9435
|
context: {
|
|
@@ -9189,7 +9449,7 @@ async function safeValidateUIMessages({
|
|
|
9189
9449
|
if (!tool2) {
|
|
9190
9450
|
return {
|
|
9191
9451
|
success: false,
|
|
9192
|
-
error: new
|
|
9452
|
+
error: new import_provider30.TypeValidationError({
|
|
9193
9453
|
value: toolPart.input,
|
|
9194
9454
|
cause: `No tool schema found for tool part ${toolName}`,
|
|
9195
9455
|
context: {
|
|
@@ -9201,7 +9461,7 @@ async function safeValidateUIMessages({
|
|
|
9201
9461
|
};
|
|
9202
9462
|
}
|
|
9203
9463
|
if (toolPart.state === "input-available" || toolPart.state === "output-available") {
|
|
9204
|
-
await (0,
|
|
9464
|
+
await (0, import_provider_utils24.validateTypes)({
|
|
9205
9465
|
value: toolPart.input,
|
|
9206
9466
|
schema: tool2.inputSchema,
|
|
9207
9467
|
context: {
|
|
@@ -9212,7 +9472,7 @@ async function safeValidateUIMessages({
|
|
|
9212
9472
|
});
|
|
9213
9473
|
}
|
|
9214
9474
|
if (toolPart.state === "output-available" && tool2.outputSchema) {
|
|
9215
|
-
await (0,
|
|
9475
|
+
await (0, import_provider_utils24.validateTypes)({
|
|
9216
9476
|
value: toolPart.output,
|
|
9217
9477
|
schema: tool2.outputSchema,
|
|
9218
9478
|
context: {
|
|
@@ -9266,7 +9526,7 @@ async function createAgentUIStream({
|
|
|
9266
9526
|
onStepFinish,
|
|
9267
9527
|
...uiMessageStreamOptions
|
|
9268
9528
|
}) {
|
|
9269
|
-
var
|
|
9529
|
+
var _a22;
|
|
9270
9530
|
const validatedMessages = await validateUIMessages({
|
|
9271
9531
|
messages: uiMessages,
|
|
9272
9532
|
tools: agent.tools
|
|
@@ -9285,7 +9545,7 @@ async function createAgentUIStream({
|
|
|
9285
9545
|
return result.toUIMessageStream({
|
|
9286
9546
|
...uiMessageStreamOptions,
|
|
9287
9547
|
// TODO reading `originalMessages` is here for bc, always use `validatedMessages` in v7
|
|
9288
|
-
originalMessages: (
|
|
9548
|
+
originalMessages: (_a22 = uiMessageStreamOptions.originalMessages) != null ? _a22 : validatedMessages
|
|
9289
9549
|
});
|
|
9290
9550
|
}
|
|
9291
9551
|
|
|
@@ -9326,7 +9586,7 @@ async function pipeAgentUIStreamToResponse({
|
|
|
9326
9586
|
}
|
|
9327
9587
|
|
|
9328
9588
|
// src/embed/embed.ts
|
|
9329
|
-
var
|
|
9589
|
+
var import_provider_utils25 = require("@ai-sdk/provider-utils");
|
|
9330
9590
|
async function embed({
|
|
9331
9591
|
model: modelArg,
|
|
9332
9592
|
value,
|
|
@@ -9341,7 +9601,7 @@ async function embed({
|
|
|
9341
9601
|
maxRetries: maxRetriesArg,
|
|
9342
9602
|
abortSignal
|
|
9343
9603
|
});
|
|
9344
|
-
const headersWithUserAgent = (0,
|
|
9604
|
+
const headersWithUserAgent = (0, import_provider_utils25.withUserAgentSuffix)(
|
|
9345
9605
|
headers != null ? headers : {},
|
|
9346
9606
|
`ai/${VERSION}`
|
|
9347
9607
|
);
|
|
@@ -9383,7 +9643,7 @@ async function embed({
|
|
|
9383
9643
|
}),
|
|
9384
9644
|
tracer,
|
|
9385
9645
|
fn: async (doEmbedSpan) => {
|
|
9386
|
-
var
|
|
9646
|
+
var _a22, _b;
|
|
9387
9647
|
const modelResponse = await model.doEmbed({
|
|
9388
9648
|
values: [value],
|
|
9389
9649
|
abortSignal,
|
|
@@ -9391,7 +9651,7 @@ async function embed({
|
|
|
9391
9651
|
providerOptions
|
|
9392
9652
|
});
|
|
9393
9653
|
const embedding2 = modelResponse.embeddings[0];
|
|
9394
|
-
const usage2 = (
|
|
9654
|
+
const usage2 = (_a22 = modelResponse.usage) != null ? _a22 : { tokens: NaN };
|
|
9395
9655
|
doEmbedSpan.setAttributes(
|
|
9396
9656
|
await selectTelemetryAttributes({
|
|
9397
9657
|
telemetry,
|
|
@@ -9449,7 +9709,7 @@ var DefaultEmbedResult = class {
|
|
|
9449
9709
|
};
|
|
9450
9710
|
|
|
9451
9711
|
// src/embed/embed-many.ts
|
|
9452
|
-
var
|
|
9712
|
+
var import_provider_utils26 = require("@ai-sdk/provider-utils");
|
|
9453
9713
|
|
|
9454
9714
|
// src/util/split-array.ts
|
|
9455
9715
|
function splitArray(array2, chunkSize) {
|
|
@@ -9479,7 +9739,7 @@ async function embedMany({
|
|
|
9479
9739
|
maxRetries: maxRetriesArg,
|
|
9480
9740
|
abortSignal
|
|
9481
9741
|
});
|
|
9482
|
-
const headersWithUserAgent = (0,
|
|
9742
|
+
const headersWithUserAgent = (0, import_provider_utils26.withUserAgentSuffix)(
|
|
9483
9743
|
headers != null ? headers : {},
|
|
9484
9744
|
`ai/${VERSION}`
|
|
9485
9745
|
);
|
|
@@ -9505,7 +9765,7 @@ async function embedMany({
|
|
|
9505
9765
|
}),
|
|
9506
9766
|
tracer,
|
|
9507
9767
|
fn: async (span) => {
|
|
9508
|
-
var
|
|
9768
|
+
var _a22;
|
|
9509
9769
|
const [maxEmbeddingsPerCall, supportsParallelCalls] = await Promise.all([
|
|
9510
9770
|
model.maxEmbeddingsPerCall,
|
|
9511
9771
|
model.supportsParallelCalls
|
|
@@ -9530,7 +9790,7 @@ async function embedMany({
|
|
|
9530
9790
|
}),
|
|
9531
9791
|
tracer,
|
|
9532
9792
|
fn: async (doEmbedSpan) => {
|
|
9533
|
-
var
|
|
9793
|
+
var _a23, _b;
|
|
9534
9794
|
const modelResponse = await model.doEmbed({
|
|
9535
9795
|
values,
|
|
9536
9796
|
abortSignal,
|
|
@@ -9538,7 +9798,7 @@ async function embedMany({
|
|
|
9538
9798
|
providerOptions
|
|
9539
9799
|
});
|
|
9540
9800
|
const embeddings3 = modelResponse.embeddings;
|
|
9541
|
-
const usage2 = (
|
|
9801
|
+
const usage2 = (_a23 = modelResponse.usage) != null ? _a23 : { tokens: NaN };
|
|
9542
9802
|
doEmbedSpan.setAttributes(
|
|
9543
9803
|
await selectTelemetryAttributes({
|
|
9544
9804
|
telemetry,
|
|
@@ -9619,7 +9879,7 @@ async function embedMany({
|
|
|
9619
9879
|
}),
|
|
9620
9880
|
tracer,
|
|
9621
9881
|
fn: async (doEmbedSpan) => {
|
|
9622
|
-
var
|
|
9882
|
+
var _a23, _b;
|
|
9623
9883
|
const modelResponse = await model.doEmbed({
|
|
9624
9884
|
values: chunk,
|
|
9625
9885
|
abortSignal,
|
|
@@ -9627,7 +9887,7 @@ async function embedMany({
|
|
|
9627
9887
|
providerOptions
|
|
9628
9888
|
});
|
|
9629
9889
|
const embeddings2 = modelResponse.embeddings;
|
|
9630
|
-
const usage = (
|
|
9890
|
+
const usage = (_a23 = modelResponse.usage) != null ? _a23 : { tokens: NaN };
|
|
9631
9891
|
doEmbedSpan.setAttributes(
|
|
9632
9892
|
await selectTelemetryAttributes({
|
|
9633
9893
|
telemetry,
|
|
@@ -9666,7 +9926,7 @@ async function embedMany({
|
|
|
9666
9926
|
result.providerMetadata
|
|
9667
9927
|
)) {
|
|
9668
9928
|
providerMetadata[providerName] = {
|
|
9669
|
-
...(
|
|
9929
|
+
...(_a22 = providerMetadata[providerName]) != null ? _a22 : {},
|
|
9670
9930
|
...metadata
|
|
9671
9931
|
};
|
|
9672
9932
|
}
|
|
@@ -9713,7 +9973,7 @@ var DefaultEmbedManyResult = class {
|
|
|
9713
9973
|
};
|
|
9714
9974
|
|
|
9715
9975
|
// src/generate-image/generate-image.ts
|
|
9716
|
-
var
|
|
9976
|
+
var import_provider_utils27 = require("@ai-sdk/provider-utils");
|
|
9717
9977
|
async function generateImage({
|
|
9718
9978
|
model: modelArg,
|
|
9719
9979
|
prompt: promptArg,
|
|
@@ -9727,9 +9987,9 @@ async function generateImage({
|
|
|
9727
9987
|
abortSignal,
|
|
9728
9988
|
headers
|
|
9729
9989
|
}) {
|
|
9730
|
-
var
|
|
9990
|
+
var _a22, _b;
|
|
9731
9991
|
const model = resolveImageModel(modelArg);
|
|
9732
|
-
const headersWithUserAgent = (0,
|
|
9992
|
+
const headersWithUserAgent = (0, import_provider_utils27.withUserAgentSuffix)(
|
|
9733
9993
|
headers != null ? headers : {},
|
|
9734
9994
|
`ai/${VERSION}`
|
|
9735
9995
|
);
|
|
@@ -9737,7 +9997,7 @@ async function generateImage({
|
|
|
9737
9997
|
maxRetries: maxRetriesArg,
|
|
9738
9998
|
abortSignal
|
|
9739
9999
|
});
|
|
9740
|
-
const maxImagesPerCallWithDefault = (
|
|
10000
|
+
const maxImagesPerCallWithDefault = (_a22 = maxImagesPerCall != null ? maxImagesPerCall : await invokeModelMaxImagesPerCall(model)) != null ? _a22 : 1;
|
|
9741
10001
|
const callCount = Math.ceil(n / maxImagesPerCallWithDefault);
|
|
9742
10002
|
const callImageCounts = Array.from({ length: callCount }, (_, i) => {
|
|
9743
10003
|
if (i < callCount - 1) {
|
|
@@ -9778,13 +10038,13 @@ async function generateImage({
|
|
|
9778
10038
|
images.push(
|
|
9779
10039
|
...result.images.map(
|
|
9780
10040
|
(image) => {
|
|
9781
|
-
var
|
|
10041
|
+
var _a23;
|
|
9782
10042
|
return new DefaultGeneratedFile({
|
|
9783
10043
|
data: image,
|
|
9784
|
-
mediaType: (
|
|
10044
|
+
mediaType: (_a23 = detectMediaType({
|
|
9785
10045
|
data: image,
|
|
9786
10046
|
signatures: imageMediaTypeSignatures
|
|
9787
|
-
})) != null ?
|
|
10047
|
+
})) != null ? _a23 : "image/png"
|
|
9788
10048
|
});
|
|
9789
10049
|
}
|
|
9790
10050
|
)
|
|
@@ -9872,7 +10132,7 @@ function toImageModelV3File(dataContent) {
|
|
|
9872
10132
|
if (typeof dataContent === "string" && dataContent.startsWith("data:")) {
|
|
9873
10133
|
const { mediaType: dataUrlMediaType, base64Content } = splitDataUrl(dataContent);
|
|
9874
10134
|
if (base64Content != null) {
|
|
9875
|
-
const uint8Data2 = (0,
|
|
10135
|
+
const uint8Data2 = (0, import_provider_utils27.convertBase64ToUint8Array)(base64Content);
|
|
9876
10136
|
return {
|
|
9877
10137
|
type: "file",
|
|
9878
10138
|
data: uint8Data2,
|
|
@@ -9898,11 +10158,11 @@ function toImageModelV3File(dataContent) {
|
|
|
9898
10158
|
var experimental_generateImage = generateImage;
|
|
9899
10159
|
|
|
9900
10160
|
// src/generate-object/generate-object.ts
|
|
9901
|
-
var
|
|
10161
|
+
var import_provider_utils30 = require("@ai-sdk/provider-utils");
|
|
9902
10162
|
|
|
9903
10163
|
// src/generate-object/output-strategy.ts
|
|
9904
|
-
var
|
|
9905
|
-
var
|
|
10164
|
+
var import_provider31 = require("@ai-sdk/provider");
|
|
10165
|
+
var import_provider_utils28 = require("@ai-sdk/provider-utils");
|
|
9906
10166
|
var noSchemaOutputStrategy = {
|
|
9907
10167
|
type: "no-schema",
|
|
9908
10168
|
jsonSchema: async () => void 0,
|
|
@@ -9922,7 +10182,7 @@ var noSchemaOutputStrategy = {
|
|
|
9922
10182
|
} : { success: true, value };
|
|
9923
10183
|
},
|
|
9924
10184
|
createElementStream() {
|
|
9925
|
-
throw new
|
|
10185
|
+
throw new import_provider31.UnsupportedFunctionalityError({
|
|
9926
10186
|
functionality: "element streams in no-schema mode"
|
|
9927
10187
|
});
|
|
9928
10188
|
}
|
|
@@ -9941,10 +10201,10 @@ var objectOutputStrategy = (schema) => ({
|
|
|
9941
10201
|
};
|
|
9942
10202
|
},
|
|
9943
10203
|
async validateFinalResult(value) {
|
|
9944
|
-
return (0,
|
|
10204
|
+
return (0, import_provider_utils28.safeValidateTypes)({ value, schema });
|
|
9945
10205
|
},
|
|
9946
10206
|
createElementStream() {
|
|
9947
|
-
throw new
|
|
10207
|
+
throw new import_provider31.UnsupportedFunctionalityError({
|
|
9948
10208
|
functionality: "element streams in object mode"
|
|
9949
10209
|
});
|
|
9950
10210
|
}
|
|
@@ -9973,11 +10233,11 @@ var arrayOutputStrategy = (schema) => {
|
|
|
9973
10233
|
isFirstDelta,
|
|
9974
10234
|
isFinalDelta
|
|
9975
10235
|
}) {
|
|
9976
|
-
var
|
|
9977
|
-
if (!(0,
|
|
10236
|
+
var _a22;
|
|
10237
|
+
if (!(0, import_provider31.isJSONObject)(value) || !(0, import_provider31.isJSONArray)(value.elements)) {
|
|
9978
10238
|
return {
|
|
9979
10239
|
success: false,
|
|
9980
|
-
error: new
|
|
10240
|
+
error: new import_provider31.TypeValidationError({
|
|
9981
10241
|
value,
|
|
9982
10242
|
cause: "value must be an object that contains an array of elements"
|
|
9983
10243
|
})
|
|
@@ -9987,7 +10247,7 @@ var arrayOutputStrategy = (schema) => {
|
|
|
9987
10247
|
const resultArray = [];
|
|
9988
10248
|
for (let i = 0; i < inputArray.length; i++) {
|
|
9989
10249
|
const element = inputArray[i];
|
|
9990
|
-
const result = await (0,
|
|
10250
|
+
const result = await (0, import_provider_utils28.safeValidateTypes)({ value: element, schema });
|
|
9991
10251
|
if (i === inputArray.length - 1 && !isFinalDelta) {
|
|
9992
10252
|
continue;
|
|
9993
10253
|
}
|
|
@@ -9996,7 +10256,7 @@ var arrayOutputStrategy = (schema) => {
|
|
|
9996
10256
|
}
|
|
9997
10257
|
resultArray.push(result.value);
|
|
9998
10258
|
}
|
|
9999
|
-
const publishedElementCount = (
|
|
10259
|
+
const publishedElementCount = (_a22 = latestObject == null ? void 0 : latestObject.length) != null ? _a22 : 0;
|
|
10000
10260
|
let textDelta = "";
|
|
10001
10261
|
if (isFirstDelta) {
|
|
10002
10262
|
textDelta += "[";
|
|
@@ -10017,10 +10277,10 @@ var arrayOutputStrategy = (schema) => {
|
|
|
10017
10277
|
};
|
|
10018
10278
|
},
|
|
10019
10279
|
async validateFinalResult(value) {
|
|
10020
|
-
if (!(0,
|
|
10280
|
+
if (!(0, import_provider31.isJSONObject)(value) || !(0, import_provider31.isJSONArray)(value.elements)) {
|
|
10021
10281
|
return {
|
|
10022
10282
|
success: false,
|
|
10023
|
-
error: new
|
|
10283
|
+
error: new import_provider31.TypeValidationError({
|
|
10024
10284
|
value,
|
|
10025
10285
|
cause: "value must be an object that contains an array of elements"
|
|
10026
10286
|
})
|
|
@@ -10029,7 +10289,7 @@ var arrayOutputStrategy = (schema) => {
|
|
|
10029
10289
|
const inputArray = value.elements;
|
|
10030
10290
|
const resultArray = [];
|
|
10031
10291
|
for (const element of inputArray) {
|
|
10032
|
-
const result = await (0,
|
|
10292
|
+
const result = await (0, import_provider_utils28.safeValidateTypes)({ value: element, schema });
|
|
10033
10293
|
if (!result.success) {
|
|
10034
10294
|
return result;
|
|
10035
10295
|
}
|
|
@@ -10085,10 +10345,10 @@ var enumOutputStrategy = (enumValues) => {
|
|
|
10085
10345
|
additionalProperties: false
|
|
10086
10346
|
}),
|
|
10087
10347
|
async validateFinalResult(value) {
|
|
10088
|
-
if (!(0,
|
|
10348
|
+
if (!(0, import_provider31.isJSONObject)(value) || typeof value.result !== "string") {
|
|
10089
10349
|
return {
|
|
10090
10350
|
success: false,
|
|
10091
|
-
error: new
|
|
10351
|
+
error: new import_provider31.TypeValidationError({
|
|
10092
10352
|
value,
|
|
10093
10353
|
cause: 'value must be an object that contains a string in the "result" property.'
|
|
10094
10354
|
})
|
|
@@ -10097,17 +10357,17 @@ var enumOutputStrategy = (enumValues) => {
|
|
|
10097
10357
|
const result = value.result;
|
|
10098
10358
|
return enumValues.includes(result) ? { success: true, value: result } : {
|
|
10099
10359
|
success: false,
|
|
10100
|
-
error: new
|
|
10360
|
+
error: new import_provider31.TypeValidationError({
|
|
10101
10361
|
value,
|
|
10102
10362
|
cause: "value must be a string in the enum"
|
|
10103
10363
|
})
|
|
10104
10364
|
};
|
|
10105
10365
|
},
|
|
10106
10366
|
async validatePartialResult({ value, textDelta }) {
|
|
10107
|
-
if (!(0,
|
|
10367
|
+
if (!(0, import_provider31.isJSONObject)(value) || typeof value.result !== "string") {
|
|
10108
10368
|
return {
|
|
10109
10369
|
success: false,
|
|
10110
|
-
error: new
|
|
10370
|
+
error: new import_provider31.TypeValidationError({
|
|
10111
10371
|
value,
|
|
10112
10372
|
cause: 'value must be an object that contains a string in the "result" property.'
|
|
10113
10373
|
})
|
|
@@ -10120,7 +10380,7 @@ var enumOutputStrategy = (enumValues) => {
|
|
|
10120
10380
|
if (value.result.length === 0 || possibleEnumValues.length === 0) {
|
|
10121
10381
|
return {
|
|
10122
10382
|
success: false,
|
|
10123
|
-
error: new
|
|
10383
|
+
error: new import_provider31.TypeValidationError({
|
|
10124
10384
|
value,
|
|
10125
10385
|
cause: "value must be a string in the enum"
|
|
10126
10386
|
})
|
|
@@ -10135,7 +10395,7 @@ var enumOutputStrategy = (enumValues) => {
|
|
|
10135
10395
|
};
|
|
10136
10396
|
},
|
|
10137
10397
|
createElementStream() {
|
|
10138
|
-
throw new
|
|
10398
|
+
throw new import_provider31.UnsupportedFunctionalityError({
|
|
10139
10399
|
functionality: "element streams in enum mode"
|
|
10140
10400
|
});
|
|
10141
10401
|
}
|
|
@@ -10148,9 +10408,9 @@ function getOutputStrategy({
|
|
|
10148
10408
|
}) {
|
|
10149
10409
|
switch (output) {
|
|
10150
10410
|
case "object":
|
|
10151
|
-
return objectOutputStrategy((0,
|
|
10411
|
+
return objectOutputStrategy((0, import_provider_utils28.asSchema)(schema));
|
|
10152
10412
|
case "array":
|
|
10153
|
-
return arrayOutputStrategy((0,
|
|
10413
|
+
return arrayOutputStrategy((0, import_provider_utils28.asSchema)(schema));
|
|
10154
10414
|
case "enum":
|
|
10155
10415
|
return enumOutputStrategy(enumValues);
|
|
10156
10416
|
case "no-schema":
|
|
@@ -10163,10 +10423,10 @@ function getOutputStrategy({
|
|
|
10163
10423
|
}
|
|
10164
10424
|
|
|
10165
10425
|
// src/generate-object/parse-and-validate-object-result.ts
|
|
10166
|
-
var
|
|
10167
|
-
var
|
|
10426
|
+
var import_provider32 = require("@ai-sdk/provider");
|
|
10427
|
+
var import_provider_utils29 = require("@ai-sdk/provider-utils");
|
|
10168
10428
|
async function parseAndValidateObjectResult(result, outputStrategy, context2) {
|
|
10169
|
-
const parseResult = await (0,
|
|
10429
|
+
const parseResult = await (0, import_provider_utils29.safeParseJSON)({ text: result });
|
|
10170
10430
|
if (!parseResult.success) {
|
|
10171
10431
|
throw new NoObjectGeneratedError({
|
|
10172
10432
|
message: "No object generated: could not parse the response.",
|
|
@@ -10201,7 +10461,7 @@ async function parseAndValidateObjectResultWithRepair(result, outputStrategy, re
|
|
|
10201
10461
|
try {
|
|
10202
10462
|
return await parseAndValidateObjectResult(result, outputStrategy, context2);
|
|
10203
10463
|
} catch (error) {
|
|
10204
|
-
if (repairText != null && NoObjectGeneratedError.isInstance(error) && (
|
|
10464
|
+
if (repairText != null && NoObjectGeneratedError.isInstance(error) && (import_provider32.JSONParseError.isInstance(error.cause) || import_provider32.TypeValidationError.isInstance(error.cause))) {
|
|
10205
10465
|
const repairedText = await repairText({
|
|
10206
10466
|
text: result,
|
|
10207
10467
|
error: error.cause
|
|
@@ -10338,7 +10598,7 @@ function validateObjectGenerationInput({
|
|
|
10338
10598
|
}
|
|
10339
10599
|
|
|
10340
10600
|
// src/generate-object/generate-object.ts
|
|
10341
|
-
var originalGenerateId3 = (0,
|
|
10601
|
+
var originalGenerateId3 = (0, import_provider_utils30.createIdGenerator)({ prefix: "aiobj", size: 24 });
|
|
10342
10602
|
async function generateObject(options) {
|
|
10343
10603
|
const {
|
|
10344
10604
|
model: modelArg,
|
|
@@ -10384,7 +10644,7 @@ async function generateObject(options) {
|
|
|
10384
10644
|
enumValues
|
|
10385
10645
|
});
|
|
10386
10646
|
const callSettings = prepareCallSettings(settings);
|
|
10387
|
-
const headersWithUserAgent = (0,
|
|
10647
|
+
const headersWithUserAgent = (0, import_provider_utils30.withUserAgentSuffix)(
|
|
10388
10648
|
headers != null ? headers : {},
|
|
10389
10649
|
`ai/${VERSION}`
|
|
10390
10650
|
);
|
|
@@ -10419,7 +10679,7 @@ async function generateObject(options) {
|
|
|
10419
10679
|
}),
|
|
10420
10680
|
tracer,
|
|
10421
10681
|
fn: async (span) => {
|
|
10422
|
-
var
|
|
10682
|
+
var _a22;
|
|
10423
10683
|
let result;
|
|
10424
10684
|
let finishReason;
|
|
10425
10685
|
let usage;
|
|
@@ -10466,7 +10726,7 @@ async function generateObject(options) {
|
|
|
10466
10726
|
}),
|
|
10467
10727
|
tracer,
|
|
10468
10728
|
fn: async (span2) => {
|
|
10469
|
-
var
|
|
10729
|
+
var _a23, _b, _c, _d, _e, _f, _g, _h;
|
|
10470
10730
|
const result2 = await model.doGenerate({
|
|
10471
10731
|
responseFormat: {
|
|
10472
10732
|
type: "json",
|
|
@@ -10481,7 +10741,7 @@ async function generateObject(options) {
|
|
|
10481
10741
|
headers: headersWithUserAgent
|
|
10482
10742
|
});
|
|
10483
10743
|
const responseData = {
|
|
10484
|
-
id: (_b = (
|
|
10744
|
+
id: (_b = (_a23 = result2.response) == null ? void 0 : _a23.id) != null ? _b : generateId2(),
|
|
10485
10745
|
timestamp: (_d = (_c = result2.response) == null ? void 0 : _c.timestamp) != null ? _d : currentDate(),
|
|
10486
10746
|
modelId: (_f = (_e = result2.response) == null ? void 0 : _e.modelId) != null ? _f : model.modelId,
|
|
10487
10747
|
headers: (_g = result2.response) == null ? void 0 : _g.headers,
|
|
@@ -10537,7 +10797,7 @@ async function generateObject(options) {
|
|
|
10537
10797
|
usage = asLanguageModelUsage(generateResult.usage);
|
|
10538
10798
|
warnings = generateResult.warnings;
|
|
10539
10799
|
resultProviderMetadata = generateResult.providerMetadata;
|
|
10540
|
-
request = (
|
|
10800
|
+
request = (_a22 = generateResult.request) != null ? _a22 : {};
|
|
10541
10801
|
response = generateResult.responseData;
|
|
10542
10802
|
reasoning = generateResult.reasoning;
|
|
10543
10803
|
logWarnings({
|
|
@@ -10600,9 +10860,9 @@ var DefaultGenerateObjectResult = class {
|
|
|
10600
10860
|
this.reasoning = options.reasoning;
|
|
10601
10861
|
}
|
|
10602
10862
|
toJsonResponse(init) {
|
|
10603
|
-
var
|
|
10863
|
+
var _a22;
|
|
10604
10864
|
return new Response(JSON.stringify(this.object), {
|
|
10605
|
-
status: (
|
|
10865
|
+
status: (_a22 = init == null ? void 0 : init.status) != null ? _a22 : 200,
|
|
10606
10866
|
headers: prepareHeaders(init == null ? void 0 : init.headers, {
|
|
10607
10867
|
"content-type": "application/json; charset=utf-8"
|
|
10608
10868
|
})
|
|
@@ -10611,7 +10871,7 @@ var DefaultGenerateObjectResult = class {
|
|
|
10611
10871
|
};
|
|
10612
10872
|
|
|
10613
10873
|
// src/generate-object/stream-object.ts
|
|
10614
|
-
var
|
|
10874
|
+
var import_provider_utils32 = require("@ai-sdk/provider-utils");
|
|
10615
10875
|
|
|
10616
10876
|
// src/util/cosine-similarity.ts
|
|
10617
10877
|
function cosineSimilarity(vector1, vector2) {
|
|
@@ -10726,15 +10986,15 @@ var SerialJobExecutor = class {
|
|
|
10726
10986
|
};
|
|
10727
10987
|
|
|
10728
10988
|
// src/util/simulate-readable-stream.ts
|
|
10729
|
-
var
|
|
10989
|
+
var import_provider_utils31 = require("@ai-sdk/provider-utils");
|
|
10730
10990
|
function simulateReadableStream({
|
|
10731
10991
|
chunks,
|
|
10732
10992
|
initialDelayInMs = 0,
|
|
10733
10993
|
chunkDelayInMs = 0,
|
|
10734
10994
|
_internal
|
|
10735
10995
|
}) {
|
|
10736
|
-
var
|
|
10737
|
-
const delay2 = (
|
|
10996
|
+
var _a22;
|
|
10997
|
+
const delay2 = (_a22 = _internal == null ? void 0 : _internal.delay) != null ? _a22 : import_provider_utils31.delay;
|
|
10738
10998
|
let index = 0;
|
|
10739
10999
|
return new ReadableStream({
|
|
10740
11000
|
async pull(controller) {
|
|
@@ -10749,7 +11009,7 @@ function simulateReadableStream({
|
|
|
10749
11009
|
}
|
|
10750
11010
|
|
|
10751
11011
|
// src/generate-object/stream-object.ts
|
|
10752
|
-
var originalGenerateId4 = (0,
|
|
11012
|
+
var originalGenerateId4 = (0, import_provider_utils32.createIdGenerator)({ prefix: "aiobj", size: 24 });
|
|
10753
11013
|
function streamObject(options) {
|
|
10754
11014
|
const {
|
|
10755
11015
|
model,
|
|
@@ -10842,13 +11102,13 @@ var DefaultStreamObjectResult = class {
|
|
|
10842
11102
|
currentDate,
|
|
10843
11103
|
now: now2
|
|
10844
11104
|
}) {
|
|
10845
|
-
this._object = new
|
|
10846
|
-
this._usage = new
|
|
10847
|
-
this._providerMetadata = new
|
|
10848
|
-
this._warnings = new
|
|
10849
|
-
this._request = new
|
|
10850
|
-
this._response = new
|
|
10851
|
-
this._finishReason = new
|
|
11105
|
+
this._object = new import_provider_utils32.DelayedPromise();
|
|
11106
|
+
this._usage = new import_provider_utils32.DelayedPromise();
|
|
11107
|
+
this._providerMetadata = new import_provider_utils32.DelayedPromise();
|
|
11108
|
+
this._warnings = new import_provider_utils32.DelayedPromise();
|
|
11109
|
+
this._request = new import_provider_utils32.DelayedPromise();
|
|
11110
|
+
this._response = new import_provider_utils32.DelayedPromise();
|
|
11111
|
+
this._finishReason = new import_provider_utils32.DelayedPromise();
|
|
10852
11112
|
const model = resolveLanguageModel(modelArg);
|
|
10853
11113
|
const { maxRetries, retry } = prepareRetries({
|
|
10854
11114
|
maxRetries: maxRetriesArg,
|
|
@@ -10996,7 +11256,7 @@ var DefaultStreamObjectResult = class {
|
|
|
10996
11256
|
const transformedStream = stream.pipeThrough(new TransformStream(transformer)).pipeThrough(
|
|
10997
11257
|
new TransformStream({
|
|
10998
11258
|
async transform(chunk, controller) {
|
|
10999
|
-
var
|
|
11259
|
+
var _a22, _b, _c;
|
|
11000
11260
|
if (typeof chunk === "object" && chunk.type === "stream-start") {
|
|
11001
11261
|
warnings = chunk.warnings;
|
|
11002
11262
|
return;
|
|
@@ -11046,7 +11306,7 @@ var DefaultStreamObjectResult = class {
|
|
|
11046
11306
|
switch (chunk.type) {
|
|
11047
11307
|
case "response-metadata": {
|
|
11048
11308
|
fullResponse = {
|
|
11049
|
-
id: (
|
|
11309
|
+
id: (_a22 = chunk.id) != null ? _a22 : fullResponse.id,
|
|
11050
11310
|
timestamp: (_b = chunk.timestamp) != null ? _b : fullResponse.timestamp,
|
|
11051
11311
|
modelId: (_c = chunk.modelId) != null ? _c : fullResponse.modelId
|
|
11052
11312
|
};
|
|
@@ -11277,7 +11537,7 @@ var DefaultStreamObjectResult = class {
|
|
|
11277
11537
|
};
|
|
11278
11538
|
|
|
11279
11539
|
// src/generate-speech/generate-speech.ts
|
|
11280
|
-
var
|
|
11540
|
+
var import_provider_utils33 = require("@ai-sdk/provider-utils");
|
|
11281
11541
|
|
|
11282
11542
|
// src/generate-speech/generated-audio-file.ts
|
|
11283
11543
|
var DefaultGeneratedAudioFile = class extends DefaultGeneratedFile {
|
|
@@ -11318,12 +11578,12 @@ async function generateSpeech({
|
|
|
11318
11578
|
abortSignal,
|
|
11319
11579
|
headers
|
|
11320
11580
|
}) {
|
|
11321
|
-
var
|
|
11581
|
+
var _a22;
|
|
11322
11582
|
const resolvedModel = resolveSpeechModel(model);
|
|
11323
11583
|
if (!resolvedModel) {
|
|
11324
11584
|
throw new Error("Model could not be resolved");
|
|
11325
11585
|
}
|
|
11326
|
-
const headersWithUserAgent = (0,
|
|
11586
|
+
const headersWithUserAgent = (0, import_provider_utils33.withUserAgentSuffix)(
|
|
11327
11587
|
headers != null ? headers : {},
|
|
11328
11588
|
`ai/${VERSION}`
|
|
11329
11589
|
);
|
|
@@ -11355,10 +11615,10 @@ async function generateSpeech({
|
|
|
11355
11615
|
return new DefaultSpeechResult({
|
|
11356
11616
|
audio: new DefaultGeneratedAudioFile({
|
|
11357
11617
|
data: result.audio,
|
|
11358
|
-
mediaType: (
|
|
11618
|
+
mediaType: (_a22 = detectMediaType({
|
|
11359
11619
|
data: result.audio,
|
|
11360
11620
|
signatures: audioMediaTypeSignatures
|
|
11361
|
-
})) != null ?
|
|
11621
|
+
})) != null ? _a22 : "audio/mp3"
|
|
11362
11622
|
}),
|
|
11363
11623
|
warnings: result.warnings,
|
|
11364
11624
|
responses: [result.response],
|
|
@@ -11367,11 +11627,11 @@ async function generateSpeech({
|
|
|
11367
11627
|
}
|
|
11368
11628
|
var DefaultSpeechResult = class {
|
|
11369
11629
|
constructor(options) {
|
|
11370
|
-
var
|
|
11630
|
+
var _a22;
|
|
11371
11631
|
this.audio = options.audio;
|
|
11372
11632
|
this.warnings = options.warnings;
|
|
11373
11633
|
this.responses = options.responses;
|
|
11374
|
-
this.providerMetadata = (
|
|
11634
|
+
this.providerMetadata = (_a22 = options.providerMetadata) != null ? _a22 : {};
|
|
11375
11635
|
}
|
|
11376
11636
|
};
|
|
11377
11637
|
|
|
@@ -11455,8 +11715,8 @@ function pruneMessages({
|
|
|
11455
11715
|
}
|
|
11456
11716
|
|
|
11457
11717
|
// src/generate-text/smooth-stream.ts
|
|
11458
|
-
var
|
|
11459
|
-
var
|
|
11718
|
+
var import_provider_utils34 = require("@ai-sdk/provider-utils");
|
|
11719
|
+
var import_provider33 = require("@ai-sdk/provider");
|
|
11460
11720
|
var CHUNKING_REGEXPS = {
|
|
11461
11721
|
word: /\S+\s+/m,
|
|
11462
11722
|
line: /\n+/m
|
|
@@ -11464,7 +11724,7 @@ var CHUNKING_REGEXPS = {
|
|
|
11464
11724
|
function smoothStream({
|
|
11465
11725
|
delayInMs = 10,
|
|
11466
11726
|
chunking = "word",
|
|
11467
|
-
_internal: { delay: delay2 =
|
|
11727
|
+
_internal: { delay: delay2 = import_provider_utils34.delay } = {}
|
|
11468
11728
|
} = {}) {
|
|
11469
11729
|
let detectChunk;
|
|
11470
11730
|
if (chunking != null && typeof chunking === "object" && "segment" in chunking && typeof chunking.segment === "function") {
|
|
@@ -11495,7 +11755,7 @@ function smoothStream({
|
|
|
11495
11755
|
} else {
|
|
11496
11756
|
const chunkingRegex = typeof chunking === "string" ? CHUNKING_REGEXPS[chunking] : chunking instanceof RegExp ? chunking : void 0;
|
|
11497
11757
|
if (chunkingRegex == null) {
|
|
11498
|
-
throw new
|
|
11758
|
+
throw new import_provider33.InvalidArgumentError({
|
|
11499
11759
|
argument: "chunking",
|
|
11500
11760
|
message: `Chunking must be "word", "line", a RegExp, an Intl.Segmenter, or a ChunkDetector function. Received: ${chunking}`
|
|
11501
11761
|
});
|
|
@@ -11553,7 +11813,7 @@ function smoothStream({
|
|
|
11553
11813
|
}
|
|
11554
11814
|
|
|
11555
11815
|
// src/generate-video/generate-video.ts
|
|
11556
|
-
var
|
|
11816
|
+
var import_provider_utils35 = require("@ai-sdk/provider-utils");
|
|
11557
11817
|
var defaultDownload = createDownload();
|
|
11558
11818
|
async function experimental_generateVideo({
|
|
11559
11819
|
model: modelArg,
|
|
@@ -11571,9 +11831,9 @@ async function experimental_generateVideo({
|
|
|
11571
11831
|
headers,
|
|
11572
11832
|
download: downloadFn = defaultDownload
|
|
11573
11833
|
}) {
|
|
11574
|
-
var
|
|
11834
|
+
var _a22;
|
|
11575
11835
|
const model = resolveVideoModel(modelArg);
|
|
11576
|
-
const headersWithUserAgent = (0,
|
|
11836
|
+
const headersWithUserAgent = (0, import_provider_utils35.withUserAgentSuffix)(
|
|
11577
11837
|
headers != null ? headers : {},
|
|
11578
11838
|
`ai/${VERSION}`
|
|
11579
11839
|
);
|
|
@@ -11582,7 +11842,7 @@ async function experimental_generateVideo({
|
|
|
11582
11842
|
abortSignal
|
|
11583
11843
|
});
|
|
11584
11844
|
const { prompt, image } = normalizePrompt2(promptArg);
|
|
11585
|
-
const maxVideosPerCallWithDefault = (
|
|
11845
|
+
const maxVideosPerCallWithDefault = (_a22 = maxVideosPerCall != null ? maxVideosPerCall : await invokeModelMaxVideosPerCall(model)) != null ? _a22 : 1;
|
|
11586
11846
|
const callCount = Math.ceil(n / maxVideosPerCallWithDefault);
|
|
11587
11847
|
const callVideoCounts = Array.from({ length: callCount }, (_, index) => {
|
|
11588
11848
|
const remaining = n - index * maxVideosPerCallWithDefault;
|
|
@@ -11704,7 +11964,7 @@ async function experimental_generateVideo({
|
|
|
11704
11964
|
};
|
|
11705
11965
|
}
|
|
11706
11966
|
function normalizePrompt2(promptArg) {
|
|
11707
|
-
var
|
|
11967
|
+
var _a22, _b;
|
|
11708
11968
|
if (typeof promptArg === "string") {
|
|
11709
11969
|
return {
|
|
11710
11970
|
prompt: promptArg,
|
|
@@ -11725,14 +11985,14 @@ function normalizePrompt2(promptArg) {
|
|
|
11725
11985
|
image = {
|
|
11726
11986
|
type: "file",
|
|
11727
11987
|
mediaType: mediaType != null ? mediaType : "image/png",
|
|
11728
|
-
data: (0,
|
|
11988
|
+
data: (0, import_provider_utils35.convertBase64ToUint8Array)(base64Content != null ? base64Content : "")
|
|
11729
11989
|
};
|
|
11730
11990
|
} else {
|
|
11731
|
-
const bytes = (0,
|
|
11732
|
-
const mediaType = (
|
|
11991
|
+
const bytes = (0, import_provider_utils35.convertBase64ToUint8Array)(dataContent);
|
|
11992
|
+
const mediaType = (_a22 = detectMediaType({
|
|
11733
11993
|
data: bytes,
|
|
11734
11994
|
signatures: imageMediaTypeSignatures
|
|
11735
|
-
})) != null ?
|
|
11995
|
+
})) != null ? _a22 : "image/png";
|
|
11736
11996
|
image = {
|
|
11737
11997
|
type: "file",
|
|
11738
11998
|
mediaType,
|
|
@@ -11792,8 +12052,8 @@ function defaultTransform(text2) {
|
|
|
11792
12052
|
return text2.replace(/^```(?:json)?\s*\n?/, "").replace(/\n?```\s*$/, "").trim();
|
|
11793
12053
|
}
|
|
11794
12054
|
function extractJsonMiddleware(options) {
|
|
11795
|
-
var
|
|
11796
|
-
const transform = (
|
|
12055
|
+
var _a22;
|
|
12056
|
+
const transform = (_a22 = options == null ? void 0 : options.transform) != null ? _a22 : defaultTransform;
|
|
11797
12057
|
const hasCustomTransform = (options == null ? void 0 : options.transform) !== void 0;
|
|
11798
12058
|
return {
|
|
11799
12059
|
specificationVersion: "v3",
|
|
@@ -12167,13 +12427,13 @@ function addToolInputExamplesMiddleware({
|
|
|
12167
12427
|
return {
|
|
12168
12428
|
specificationVersion: "v3",
|
|
12169
12429
|
transformParams: async ({ params }) => {
|
|
12170
|
-
var
|
|
12171
|
-
if (!((
|
|
12430
|
+
var _a22;
|
|
12431
|
+
if (!((_a22 = params.tools) == null ? void 0 : _a22.length)) {
|
|
12172
12432
|
return params;
|
|
12173
12433
|
}
|
|
12174
12434
|
const transformedTools = params.tools.map((tool2) => {
|
|
12175
|
-
var
|
|
12176
|
-
if (tool2.type !== "function" || !((
|
|
12435
|
+
var _a23;
|
|
12436
|
+
if (tool2.type !== "function" || !((_a23 = tool2.inputExamples) == null ? void 0 : _a23.length)) {
|
|
12177
12437
|
return tool2;
|
|
12178
12438
|
}
|
|
12179
12439
|
const formattedExamples = tool2.inputExamples.map((example, index) => format(example, index)).join("\n");
|
|
@@ -12220,7 +12480,7 @@ var doWrap = ({
|
|
|
12220
12480
|
modelId,
|
|
12221
12481
|
providerId
|
|
12222
12482
|
}) => {
|
|
12223
|
-
var
|
|
12483
|
+
var _a22, _b, _c;
|
|
12224
12484
|
async function doTransform({
|
|
12225
12485
|
params,
|
|
12226
12486
|
type
|
|
@@ -12229,7 +12489,7 @@ var doWrap = ({
|
|
|
12229
12489
|
}
|
|
12230
12490
|
return {
|
|
12231
12491
|
specificationVersion: "v3",
|
|
12232
|
-
provider: (
|
|
12492
|
+
provider: (_a22 = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _a22 : model.provider,
|
|
12233
12493
|
modelId: (_b = modelId != null ? modelId : overrideModelId == null ? void 0 : overrideModelId({ model })) != null ? _b : model.modelId,
|
|
12234
12494
|
supportedUrls: (_c = overrideSupportedUrls == null ? void 0 : overrideSupportedUrls({ model })) != null ? _c : model.supportedUrls,
|
|
12235
12495
|
async doGenerate(params) {
|
|
@@ -12276,7 +12536,7 @@ var doWrap2 = ({
|
|
|
12276
12536
|
modelId,
|
|
12277
12537
|
providerId
|
|
12278
12538
|
}) => {
|
|
12279
|
-
var
|
|
12539
|
+
var _a22, _b, _c, _d;
|
|
12280
12540
|
async function doTransform({
|
|
12281
12541
|
params
|
|
12282
12542
|
}) {
|
|
@@ -12284,7 +12544,7 @@ var doWrap2 = ({
|
|
|
12284
12544
|
}
|
|
12285
12545
|
return {
|
|
12286
12546
|
specificationVersion: "v3",
|
|
12287
|
-
provider: (
|
|
12547
|
+
provider: (_a22 = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _a22 : model.provider,
|
|
12288
12548
|
modelId: (_b = modelId != null ? modelId : overrideModelId == null ? void 0 : overrideModelId({ model })) != null ? _b : model.modelId,
|
|
12289
12549
|
maxEmbeddingsPerCall: (_c = overrideMaxEmbeddingsPerCall == null ? void 0 : overrideMaxEmbeddingsPerCall({ model })) != null ? _c : model.maxEmbeddingsPerCall,
|
|
12290
12550
|
supportsParallelCalls: (_d = overrideSupportsParallelCalls == null ? void 0 : overrideSupportsParallelCalls({ model })) != null ? _d : model.supportsParallelCalls,
|
|
@@ -12323,11 +12583,11 @@ var doWrap3 = ({
|
|
|
12323
12583
|
modelId,
|
|
12324
12584
|
providerId
|
|
12325
12585
|
}) => {
|
|
12326
|
-
var
|
|
12586
|
+
var _a22, _b, _c;
|
|
12327
12587
|
async function doTransform({ params }) {
|
|
12328
12588
|
return transformParams ? await transformParams({ params, model }) : params;
|
|
12329
12589
|
}
|
|
12330
|
-
const maxImagesPerCallRaw = (
|
|
12590
|
+
const maxImagesPerCallRaw = (_a22 = overrideMaxImagesPerCall == null ? void 0 : overrideMaxImagesPerCall({ model })) != null ? _a22 : model.maxImagesPerCall;
|
|
12331
12591
|
const maxImagesPerCall = maxImagesPerCallRaw instanceof Function ? maxImagesPerCallRaw.bind(model) : maxImagesPerCallRaw;
|
|
12332
12592
|
return {
|
|
12333
12593
|
specificationVersion: "v3",
|
|
@@ -12392,7 +12652,7 @@ function wrapProvider({
|
|
|
12392
12652
|
}
|
|
12393
12653
|
|
|
12394
12654
|
// src/registry/custom-provider.ts
|
|
12395
|
-
var
|
|
12655
|
+
var import_provider34 = require("@ai-sdk/provider");
|
|
12396
12656
|
function customProvider({
|
|
12397
12657
|
languageModels,
|
|
12398
12658
|
embeddingModels,
|
|
@@ -12413,7 +12673,7 @@ function customProvider({
|
|
|
12413
12673
|
if (fallbackProvider) {
|
|
12414
12674
|
return fallbackProvider.languageModel(modelId);
|
|
12415
12675
|
}
|
|
12416
|
-
throw new
|
|
12676
|
+
throw new import_provider34.NoSuchModelError({ modelId, modelType: "languageModel" });
|
|
12417
12677
|
},
|
|
12418
12678
|
embeddingModel(modelId) {
|
|
12419
12679
|
if (embeddingModels != null && modelId in embeddingModels) {
|
|
@@ -12422,7 +12682,7 @@ function customProvider({
|
|
|
12422
12682
|
if (fallbackProvider) {
|
|
12423
12683
|
return fallbackProvider.embeddingModel(modelId);
|
|
12424
12684
|
}
|
|
12425
|
-
throw new
|
|
12685
|
+
throw new import_provider34.NoSuchModelError({ modelId, modelType: "embeddingModel" });
|
|
12426
12686
|
},
|
|
12427
12687
|
imageModel(modelId) {
|
|
12428
12688
|
if (imageModels != null && modelId in imageModels) {
|
|
@@ -12431,7 +12691,7 @@ function customProvider({
|
|
|
12431
12691
|
if (fallbackProvider == null ? void 0 : fallbackProvider.imageModel) {
|
|
12432
12692
|
return fallbackProvider.imageModel(modelId);
|
|
12433
12693
|
}
|
|
12434
|
-
throw new
|
|
12694
|
+
throw new import_provider34.NoSuchModelError({ modelId, modelType: "imageModel" });
|
|
12435
12695
|
},
|
|
12436
12696
|
transcriptionModel(modelId) {
|
|
12437
12697
|
if (transcriptionModels != null && modelId in transcriptionModels) {
|
|
@@ -12440,7 +12700,7 @@ function customProvider({
|
|
|
12440
12700
|
if (fallbackProvider == null ? void 0 : fallbackProvider.transcriptionModel) {
|
|
12441
12701
|
return fallbackProvider.transcriptionModel(modelId);
|
|
12442
12702
|
}
|
|
12443
|
-
throw new
|
|
12703
|
+
throw new import_provider34.NoSuchModelError({ modelId, modelType: "transcriptionModel" });
|
|
12444
12704
|
},
|
|
12445
12705
|
speechModel(modelId) {
|
|
12446
12706
|
if (speechModels != null && modelId in speechModels) {
|
|
@@ -12449,7 +12709,7 @@ function customProvider({
|
|
|
12449
12709
|
if (fallbackProvider == null ? void 0 : fallbackProvider.speechModel) {
|
|
12450
12710
|
return fallbackProvider.speechModel(modelId);
|
|
12451
12711
|
}
|
|
12452
|
-
throw new
|
|
12712
|
+
throw new import_provider34.NoSuchModelError({ modelId, modelType: "speechModel" });
|
|
12453
12713
|
},
|
|
12454
12714
|
rerankingModel(modelId) {
|
|
12455
12715
|
if (rerankingModels != null && modelId in rerankingModels) {
|
|
@@ -12458,7 +12718,7 @@ function customProvider({
|
|
|
12458
12718
|
if (fallbackProvider == null ? void 0 : fallbackProvider.rerankingModel) {
|
|
12459
12719
|
return fallbackProvider.rerankingModel(modelId);
|
|
12460
12720
|
}
|
|
12461
|
-
throw new
|
|
12721
|
+
throw new import_provider34.NoSuchModelError({ modelId, modelType: "rerankingModel" });
|
|
12462
12722
|
},
|
|
12463
12723
|
videoModel(modelId) {
|
|
12464
12724
|
if (videoModels != null && modelId in videoModels) {
|
|
@@ -12468,19 +12728,19 @@ function customProvider({
|
|
|
12468
12728
|
if (videoModel) {
|
|
12469
12729
|
return videoModel(modelId);
|
|
12470
12730
|
}
|
|
12471
|
-
throw new
|
|
12731
|
+
throw new import_provider34.NoSuchModelError({ modelId, modelType: "videoModel" });
|
|
12472
12732
|
}
|
|
12473
12733
|
};
|
|
12474
12734
|
}
|
|
12475
12735
|
var experimental_customProvider = customProvider;
|
|
12476
12736
|
|
|
12477
12737
|
// src/registry/no-such-provider-error.ts
|
|
12478
|
-
var
|
|
12479
|
-
var
|
|
12480
|
-
var
|
|
12481
|
-
var
|
|
12482
|
-
var
|
|
12483
|
-
var NoSuchProviderError = class extends
|
|
12738
|
+
var import_provider35 = require("@ai-sdk/provider");
|
|
12739
|
+
var name21 = "AI_NoSuchProviderError";
|
|
12740
|
+
var marker21 = `vercel.ai.error.${name21}`;
|
|
12741
|
+
var symbol21 = Symbol.for(marker21);
|
|
12742
|
+
var _a21;
|
|
12743
|
+
var NoSuchProviderError = class extends import_provider35.NoSuchModelError {
|
|
12484
12744
|
constructor({
|
|
12485
12745
|
modelId,
|
|
12486
12746
|
modelType,
|
|
@@ -12488,19 +12748,19 @@ var NoSuchProviderError = class extends import_provider34.NoSuchModelError {
|
|
|
12488
12748
|
availableProviders,
|
|
12489
12749
|
message = `No such provider: ${providerId} (available providers: ${availableProviders.join()})`
|
|
12490
12750
|
}) {
|
|
12491
|
-
super({ errorName:
|
|
12492
|
-
this[
|
|
12751
|
+
super({ errorName: name21, modelId, modelType, message });
|
|
12752
|
+
this[_a21] = true;
|
|
12493
12753
|
this.providerId = providerId;
|
|
12494
12754
|
this.availableProviders = availableProviders;
|
|
12495
12755
|
}
|
|
12496
12756
|
static isInstance(error) {
|
|
12497
|
-
return
|
|
12757
|
+
return import_provider35.AISDKError.hasMarker(error, marker21);
|
|
12498
12758
|
}
|
|
12499
12759
|
};
|
|
12500
|
-
|
|
12760
|
+
_a21 = symbol21;
|
|
12501
12761
|
|
|
12502
12762
|
// src/registry/provider-registry.ts
|
|
12503
|
-
var
|
|
12763
|
+
var import_provider36 = require("@ai-sdk/provider");
|
|
12504
12764
|
function createProviderRegistry(providers, {
|
|
12505
12765
|
separator = ":",
|
|
12506
12766
|
languageModelMiddleware,
|
|
@@ -12549,7 +12809,7 @@ var DefaultProviderRegistry = class {
|
|
|
12549
12809
|
splitId(id, modelType) {
|
|
12550
12810
|
const index = id.indexOf(this.separator);
|
|
12551
12811
|
if (index === -1) {
|
|
12552
|
-
throw new
|
|
12812
|
+
throw new import_provider36.NoSuchModelError({
|
|
12553
12813
|
modelId: id,
|
|
12554
12814
|
modelType,
|
|
12555
12815
|
message: `Invalid ${modelType} id for registry: ${id} (must be in the format "providerId${this.separator}modelId")`
|
|
@@ -12558,14 +12818,14 @@ var DefaultProviderRegistry = class {
|
|
|
12558
12818
|
return [id.slice(0, index), id.slice(index + this.separator.length)];
|
|
12559
12819
|
}
|
|
12560
12820
|
languageModel(id) {
|
|
12561
|
-
var
|
|
12821
|
+
var _a22, _b;
|
|
12562
12822
|
const [providerId, modelId] = this.splitId(id, "languageModel");
|
|
12563
|
-
let model = (_b = (
|
|
12564
|
-
|
|
12823
|
+
let model = (_b = (_a22 = this.getProvider(providerId, "languageModel")).languageModel) == null ? void 0 : _b.call(
|
|
12824
|
+
_a22,
|
|
12565
12825
|
modelId
|
|
12566
12826
|
);
|
|
12567
12827
|
if (model == null) {
|
|
12568
|
-
throw new
|
|
12828
|
+
throw new import_provider36.NoSuchModelError({ modelId: id, modelType: "languageModel" });
|
|
12569
12829
|
}
|
|
12570
12830
|
if (this.languageModelMiddleware != null) {
|
|
12571
12831
|
model = wrapLanguageModel({
|
|
@@ -12576,12 +12836,12 @@ var DefaultProviderRegistry = class {
|
|
|
12576
12836
|
return model;
|
|
12577
12837
|
}
|
|
12578
12838
|
embeddingModel(id) {
|
|
12579
|
-
var
|
|
12839
|
+
var _a22;
|
|
12580
12840
|
const [providerId, modelId] = this.splitId(id, "embeddingModel");
|
|
12581
12841
|
const provider = this.getProvider(providerId, "embeddingModel");
|
|
12582
|
-
const model = (
|
|
12842
|
+
const model = (_a22 = provider.embeddingModel) == null ? void 0 : _a22.call(provider, modelId);
|
|
12583
12843
|
if (model == null) {
|
|
12584
|
-
throw new
|
|
12844
|
+
throw new import_provider36.NoSuchModelError({
|
|
12585
12845
|
modelId: id,
|
|
12586
12846
|
modelType: "embeddingModel"
|
|
12587
12847
|
});
|
|
@@ -12589,12 +12849,12 @@ var DefaultProviderRegistry = class {
|
|
|
12589
12849
|
return model;
|
|
12590
12850
|
}
|
|
12591
12851
|
imageModel(id) {
|
|
12592
|
-
var
|
|
12852
|
+
var _a22;
|
|
12593
12853
|
const [providerId, modelId] = this.splitId(id, "imageModel");
|
|
12594
12854
|
const provider = this.getProvider(providerId, "imageModel");
|
|
12595
|
-
let model = (
|
|
12855
|
+
let model = (_a22 = provider.imageModel) == null ? void 0 : _a22.call(provider, modelId);
|
|
12596
12856
|
if (model == null) {
|
|
12597
|
-
throw new
|
|
12857
|
+
throw new import_provider36.NoSuchModelError({ modelId: id, modelType: "imageModel" });
|
|
12598
12858
|
}
|
|
12599
12859
|
if (this.imageModelMiddleware != null) {
|
|
12600
12860
|
model = wrapImageModel({
|
|
@@ -12605,12 +12865,12 @@ var DefaultProviderRegistry = class {
|
|
|
12605
12865
|
return model;
|
|
12606
12866
|
}
|
|
12607
12867
|
transcriptionModel(id) {
|
|
12608
|
-
var
|
|
12868
|
+
var _a22;
|
|
12609
12869
|
const [providerId, modelId] = this.splitId(id, "transcriptionModel");
|
|
12610
12870
|
const provider = this.getProvider(providerId, "transcriptionModel");
|
|
12611
|
-
const model = (
|
|
12871
|
+
const model = (_a22 = provider.transcriptionModel) == null ? void 0 : _a22.call(provider, modelId);
|
|
12612
12872
|
if (model == null) {
|
|
12613
|
-
throw new
|
|
12873
|
+
throw new import_provider36.NoSuchModelError({
|
|
12614
12874
|
modelId: id,
|
|
12615
12875
|
modelType: "transcriptionModel"
|
|
12616
12876
|
});
|
|
@@ -12618,22 +12878,22 @@ var DefaultProviderRegistry = class {
|
|
|
12618
12878
|
return model;
|
|
12619
12879
|
}
|
|
12620
12880
|
speechModel(id) {
|
|
12621
|
-
var
|
|
12881
|
+
var _a22;
|
|
12622
12882
|
const [providerId, modelId] = this.splitId(id, "speechModel");
|
|
12623
12883
|
const provider = this.getProvider(providerId, "speechModel");
|
|
12624
|
-
const model = (
|
|
12884
|
+
const model = (_a22 = provider.speechModel) == null ? void 0 : _a22.call(provider, modelId);
|
|
12625
12885
|
if (model == null) {
|
|
12626
|
-
throw new
|
|
12886
|
+
throw new import_provider36.NoSuchModelError({ modelId: id, modelType: "speechModel" });
|
|
12627
12887
|
}
|
|
12628
12888
|
return model;
|
|
12629
12889
|
}
|
|
12630
12890
|
rerankingModel(id) {
|
|
12631
|
-
var
|
|
12891
|
+
var _a22;
|
|
12632
12892
|
const [providerId, modelId] = this.splitId(id, "rerankingModel");
|
|
12633
12893
|
const provider = this.getProvider(providerId, "rerankingModel");
|
|
12634
|
-
const model = (
|
|
12894
|
+
const model = (_a22 = provider.rerankingModel) == null ? void 0 : _a22.call(provider, modelId);
|
|
12635
12895
|
if (model == null) {
|
|
12636
|
-
throw new
|
|
12896
|
+
throw new import_provider36.NoSuchModelError({ modelId: id, modelType: "rerankingModel" });
|
|
12637
12897
|
}
|
|
12638
12898
|
return model;
|
|
12639
12899
|
}
|
|
@@ -12689,7 +12949,7 @@ async function rerank({
|
|
|
12689
12949
|
}),
|
|
12690
12950
|
tracer,
|
|
12691
12951
|
fn: async () => {
|
|
12692
|
-
var
|
|
12952
|
+
var _a22, _b;
|
|
12693
12953
|
const { ranking, response, providerMetadata, warnings } = await retry(
|
|
12694
12954
|
() => recordSpan({
|
|
12695
12955
|
name: "ai.rerank.doRerank",
|
|
@@ -12753,7 +13013,7 @@ async function rerank({
|
|
|
12753
13013
|
providerMetadata,
|
|
12754
13014
|
response: {
|
|
12755
13015
|
id: response == null ? void 0 : response.id,
|
|
12756
|
-
timestamp: (
|
|
13016
|
+
timestamp: (_a22 = response == null ? void 0 : response.timestamp) != null ? _a22 : /* @__PURE__ */ new Date(),
|
|
12757
13017
|
modelId: (_b = response == null ? void 0 : response.modelId) != null ? _b : model.modelId,
|
|
12758
13018
|
headers: response == null ? void 0 : response.headers,
|
|
12759
13019
|
body: response == null ? void 0 : response.body
|
|
@@ -12775,7 +13035,7 @@ var DefaultRerankResult = class {
|
|
|
12775
13035
|
};
|
|
12776
13036
|
|
|
12777
13037
|
// src/transcribe/transcribe.ts
|
|
12778
|
-
var
|
|
13038
|
+
var import_provider_utils36 = require("@ai-sdk/provider-utils");
|
|
12779
13039
|
var defaultDownload2 = createDownload();
|
|
12780
13040
|
async function transcribe({
|
|
12781
13041
|
model,
|
|
@@ -12794,23 +13054,23 @@ async function transcribe({
|
|
|
12794
13054
|
maxRetries: maxRetriesArg,
|
|
12795
13055
|
abortSignal
|
|
12796
13056
|
});
|
|
12797
|
-
const headersWithUserAgent = (0,
|
|
13057
|
+
const headersWithUserAgent = (0, import_provider_utils36.withUserAgentSuffix)(
|
|
12798
13058
|
headers != null ? headers : {},
|
|
12799
13059
|
`ai/${VERSION}`
|
|
12800
13060
|
);
|
|
12801
13061
|
const audioData = audio instanceof URL ? (await downloadFn({ url: audio, abortSignal })).data : convertDataContentToUint8Array(audio);
|
|
12802
13062
|
const result = await retry(
|
|
12803
13063
|
() => {
|
|
12804
|
-
var
|
|
13064
|
+
var _a22;
|
|
12805
13065
|
return resolvedModel.doGenerate({
|
|
12806
13066
|
audio: audioData,
|
|
12807
13067
|
abortSignal,
|
|
12808
13068
|
headers: headersWithUserAgent,
|
|
12809
13069
|
providerOptions,
|
|
12810
|
-
mediaType: (
|
|
13070
|
+
mediaType: (_a22 = detectMediaType({
|
|
12811
13071
|
data: audioData,
|
|
12812
13072
|
signatures: audioMediaTypeSignatures
|
|
12813
|
-
})) != null ?
|
|
13073
|
+
})) != null ? _a22 : "audio/wav"
|
|
12814
13074
|
});
|
|
12815
13075
|
}
|
|
12816
13076
|
);
|
|
@@ -12834,19 +13094,19 @@ async function transcribe({
|
|
|
12834
13094
|
}
|
|
12835
13095
|
var DefaultTranscriptionResult = class {
|
|
12836
13096
|
constructor(options) {
|
|
12837
|
-
var
|
|
13097
|
+
var _a22;
|
|
12838
13098
|
this.text = options.text;
|
|
12839
13099
|
this.segments = options.segments;
|
|
12840
13100
|
this.language = options.language;
|
|
12841
13101
|
this.durationInSeconds = options.durationInSeconds;
|
|
12842
13102
|
this.warnings = options.warnings;
|
|
12843
13103
|
this.responses = options.responses;
|
|
12844
|
-
this.providerMetadata = (
|
|
13104
|
+
this.providerMetadata = (_a22 = options.providerMetadata) != null ? _a22 : {};
|
|
12845
13105
|
}
|
|
12846
13106
|
};
|
|
12847
13107
|
|
|
12848
13108
|
// src/ui/call-completion-api.ts
|
|
12849
|
-
var
|
|
13109
|
+
var import_provider_utils37 = require("@ai-sdk/provider-utils");
|
|
12850
13110
|
|
|
12851
13111
|
// src/ui/process-text-stream.ts
|
|
12852
13112
|
async function processTextStream({
|
|
@@ -12880,7 +13140,7 @@ async function callCompletionApi({
|
|
|
12880
13140
|
onError,
|
|
12881
13141
|
fetch: fetch2 = getOriginalFetch()
|
|
12882
13142
|
}) {
|
|
12883
|
-
var
|
|
13143
|
+
var _a22;
|
|
12884
13144
|
try {
|
|
12885
13145
|
setLoading(true);
|
|
12886
13146
|
setError(void 0);
|
|
@@ -12894,13 +13154,13 @@ async function callCompletionApi({
|
|
|
12894
13154
|
...body
|
|
12895
13155
|
}),
|
|
12896
13156
|
credentials,
|
|
12897
|
-
headers: (0,
|
|
13157
|
+
headers: (0, import_provider_utils37.withUserAgentSuffix)(
|
|
12898
13158
|
{
|
|
12899
13159
|
"Content-Type": "application/json",
|
|
12900
13160
|
...headers
|
|
12901
13161
|
},
|
|
12902
13162
|
`ai-sdk/${VERSION}`,
|
|
12903
|
-
(0,
|
|
13163
|
+
(0, import_provider_utils37.getRuntimeEnvironmentUserAgent)()
|
|
12904
13164
|
),
|
|
12905
13165
|
signal: abortController.signal
|
|
12906
13166
|
}).catch((err) => {
|
|
@@ -12908,7 +13168,7 @@ async function callCompletionApi({
|
|
|
12908
13168
|
});
|
|
12909
13169
|
if (!response.ok) {
|
|
12910
13170
|
throw new Error(
|
|
12911
|
-
(
|
|
13171
|
+
(_a22 = await response.text()) != null ? _a22 : "Failed to fetch the chat response."
|
|
12912
13172
|
);
|
|
12913
13173
|
}
|
|
12914
13174
|
if (!response.body) {
|
|
@@ -12928,7 +13188,7 @@ async function callCompletionApi({
|
|
|
12928
13188
|
}
|
|
12929
13189
|
case "data": {
|
|
12930
13190
|
await consumeStream({
|
|
12931
|
-
stream: (0,
|
|
13191
|
+
stream: (0, import_provider_utils37.parseJsonEventStream)({
|
|
12932
13192
|
stream: response.body,
|
|
12933
13193
|
schema: uiMessageChunkSchema
|
|
12934
13194
|
}).pipeThrough(
|
|
@@ -12980,7 +13240,7 @@ async function callCompletionApi({
|
|
|
12980
13240
|
}
|
|
12981
13241
|
|
|
12982
13242
|
// src/ui/chat.ts
|
|
12983
|
-
var
|
|
13243
|
+
var import_provider_utils40 = require("@ai-sdk/provider-utils");
|
|
12984
13244
|
|
|
12985
13245
|
// src/ui/convert-file-list-to-file-ui-parts.ts
|
|
12986
13246
|
async function convertFileListToFileUIParts(files) {
|
|
@@ -12992,12 +13252,12 @@ async function convertFileListToFileUIParts(files) {
|
|
|
12992
13252
|
}
|
|
12993
13253
|
return Promise.all(
|
|
12994
13254
|
Array.from(files).map(async (file) => {
|
|
12995
|
-
const { name:
|
|
13255
|
+
const { name: name22, type } = file;
|
|
12996
13256
|
const dataUrl = await new Promise((resolve3, reject) => {
|
|
12997
13257
|
const reader = new FileReader();
|
|
12998
13258
|
reader.onload = (readerEvent) => {
|
|
12999
|
-
var
|
|
13000
|
-
resolve3((
|
|
13259
|
+
var _a22;
|
|
13260
|
+
resolve3((_a22 = readerEvent.target) == null ? void 0 : _a22.result);
|
|
13001
13261
|
};
|
|
13002
13262
|
reader.onerror = (error) => reject(error);
|
|
13003
13263
|
reader.readAsDataURL(file);
|
|
@@ -13005,7 +13265,7 @@ async function convertFileListToFileUIParts(files) {
|
|
|
13005
13265
|
return {
|
|
13006
13266
|
type: "file",
|
|
13007
13267
|
mediaType: type,
|
|
13008
|
-
filename:
|
|
13268
|
+
filename: name22,
|
|
13009
13269
|
url: dataUrl
|
|
13010
13270
|
};
|
|
13011
13271
|
})
|
|
@@ -13013,10 +13273,10 @@ async function convertFileListToFileUIParts(files) {
|
|
|
13013
13273
|
}
|
|
13014
13274
|
|
|
13015
13275
|
// src/ui/default-chat-transport.ts
|
|
13016
|
-
var
|
|
13276
|
+
var import_provider_utils39 = require("@ai-sdk/provider-utils");
|
|
13017
13277
|
|
|
13018
13278
|
// src/ui/http-chat-transport.ts
|
|
13019
|
-
var
|
|
13279
|
+
var import_provider_utils38 = require("@ai-sdk/provider-utils");
|
|
13020
13280
|
var HttpChatTransport = class {
|
|
13021
13281
|
constructor({
|
|
13022
13282
|
api = "/api/chat",
|
|
@@ -13039,15 +13299,15 @@ var HttpChatTransport = class {
|
|
|
13039
13299
|
abortSignal,
|
|
13040
13300
|
...options
|
|
13041
13301
|
}) {
|
|
13042
|
-
var
|
|
13043
|
-
const resolvedBody = await (0,
|
|
13044
|
-
const resolvedHeaders = await (0,
|
|
13045
|
-
const resolvedCredentials = await (0,
|
|
13302
|
+
var _a22, _b, _c, _d, _e;
|
|
13303
|
+
const resolvedBody = await (0, import_provider_utils38.resolve)(this.body);
|
|
13304
|
+
const resolvedHeaders = await (0, import_provider_utils38.resolve)(this.headers);
|
|
13305
|
+
const resolvedCredentials = await (0, import_provider_utils38.resolve)(this.credentials);
|
|
13046
13306
|
const baseHeaders = {
|
|
13047
|
-
...(0,
|
|
13048
|
-
...(0,
|
|
13307
|
+
...(0, import_provider_utils38.normalizeHeaders)(resolvedHeaders),
|
|
13308
|
+
...(0, import_provider_utils38.normalizeHeaders)(options.headers)
|
|
13049
13309
|
};
|
|
13050
|
-
const preparedRequest = await ((
|
|
13310
|
+
const preparedRequest = await ((_a22 = this.prepareSendMessagesRequest) == null ? void 0 : _a22.call(this, {
|
|
13051
13311
|
api: this.api,
|
|
13052
13312
|
id: options.chatId,
|
|
13053
13313
|
messages: options.messages,
|
|
@@ -13059,7 +13319,7 @@ var HttpChatTransport = class {
|
|
|
13059
13319
|
messageId: options.messageId
|
|
13060
13320
|
}));
|
|
13061
13321
|
const api = (_b = preparedRequest == null ? void 0 : preparedRequest.api) != null ? _b : this.api;
|
|
13062
|
-
const headers = (preparedRequest == null ? void 0 : preparedRequest.headers) !== void 0 ? (0,
|
|
13322
|
+
const headers = (preparedRequest == null ? void 0 : preparedRequest.headers) !== void 0 ? (0, import_provider_utils38.normalizeHeaders)(preparedRequest.headers) : baseHeaders;
|
|
13063
13323
|
const body = (preparedRequest == null ? void 0 : preparedRequest.body) !== void 0 ? preparedRequest.body : {
|
|
13064
13324
|
...resolvedBody,
|
|
13065
13325
|
...options.body,
|
|
@@ -13091,15 +13351,15 @@ var HttpChatTransport = class {
|
|
|
13091
13351
|
return this.processResponseStream(response.body);
|
|
13092
13352
|
}
|
|
13093
13353
|
async reconnectToStream(options) {
|
|
13094
|
-
var
|
|
13095
|
-
const resolvedBody = await (0,
|
|
13096
|
-
const resolvedHeaders = await (0,
|
|
13097
|
-
const resolvedCredentials = await (0,
|
|
13354
|
+
var _a22, _b, _c, _d, _e;
|
|
13355
|
+
const resolvedBody = await (0, import_provider_utils38.resolve)(this.body);
|
|
13356
|
+
const resolvedHeaders = await (0, import_provider_utils38.resolve)(this.headers);
|
|
13357
|
+
const resolvedCredentials = await (0, import_provider_utils38.resolve)(this.credentials);
|
|
13098
13358
|
const baseHeaders = {
|
|
13099
|
-
...(0,
|
|
13100
|
-
...(0,
|
|
13359
|
+
...(0, import_provider_utils38.normalizeHeaders)(resolvedHeaders),
|
|
13360
|
+
...(0, import_provider_utils38.normalizeHeaders)(options.headers)
|
|
13101
13361
|
};
|
|
13102
|
-
const preparedRequest = await ((
|
|
13362
|
+
const preparedRequest = await ((_a22 = this.prepareReconnectToStreamRequest) == null ? void 0 : _a22.call(this, {
|
|
13103
13363
|
api: this.api,
|
|
13104
13364
|
id: options.chatId,
|
|
13105
13365
|
body: { ...resolvedBody, ...options.body },
|
|
@@ -13108,7 +13368,7 @@ var HttpChatTransport = class {
|
|
|
13108
13368
|
requestMetadata: options.metadata
|
|
13109
13369
|
}));
|
|
13110
13370
|
const api = (_b = preparedRequest == null ? void 0 : preparedRequest.api) != null ? _b : `${this.api}/${options.chatId}/stream`;
|
|
13111
|
-
const headers = (preparedRequest == null ? void 0 : preparedRequest.headers) !== void 0 ? (0,
|
|
13371
|
+
const headers = (preparedRequest == null ? void 0 : preparedRequest.headers) !== void 0 ? (0, import_provider_utils38.normalizeHeaders)(preparedRequest.headers) : baseHeaders;
|
|
13112
13372
|
const credentials = (_c = preparedRequest == null ? void 0 : preparedRequest.credentials) != null ? _c : resolvedCredentials;
|
|
13113
13373
|
const fetch2 = (_d = this.fetch) != null ? _d : globalThis.fetch;
|
|
13114
13374
|
const response = await fetch2(api, {
|
|
@@ -13137,7 +13397,7 @@ var DefaultChatTransport = class extends HttpChatTransport {
|
|
|
13137
13397
|
super(options);
|
|
13138
13398
|
}
|
|
13139
13399
|
processResponseStream(stream) {
|
|
13140
|
-
return (0,
|
|
13400
|
+
return (0, import_provider_utils39.parseJsonEventStream)({
|
|
13141
13401
|
stream,
|
|
13142
13402
|
schema: uiMessageChunkSchema
|
|
13143
13403
|
}).pipeThrough(
|
|
@@ -13156,7 +13416,7 @@ var DefaultChatTransport = class extends HttpChatTransport {
|
|
|
13156
13416
|
// src/ui/chat.ts
|
|
13157
13417
|
var AbstractChat = class {
|
|
13158
13418
|
constructor({
|
|
13159
|
-
generateId: generateId2 =
|
|
13419
|
+
generateId: generateId2 = import_provider_utils40.generateId,
|
|
13160
13420
|
id = generateId2(),
|
|
13161
13421
|
transport = new DefaultChatTransport(),
|
|
13162
13422
|
messageMetadataSchema,
|
|
@@ -13177,11 +13437,11 @@ var AbstractChat = class {
|
|
|
13177
13437
|
* If a messageId is provided, the message will be replaced.
|
|
13178
13438
|
*/
|
|
13179
13439
|
this.sendMessage = async (message, options) => {
|
|
13180
|
-
var
|
|
13440
|
+
var _a22, _b, _c, _d;
|
|
13181
13441
|
if (message == null) {
|
|
13182
13442
|
await this.makeRequest({
|
|
13183
13443
|
trigger: "submit-message",
|
|
13184
|
-
messageId: (
|
|
13444
|
+
messageId: (_a22 = this.lastMessage) == null ? void 0 : _a22.id,
|
|
13185
13445
|
...options
|
|
13186
13446
|
});
|
|
13187
13447
|
return;
|
|
@@ -13291,11 +13551,11 @@ var AbstractChat = class {
|
|
|
13291
13551
|
}
|
|
13292
13552
|
if (this.status !== "streaming" && this.status !== "submitted" && this.sendAutomaticallyWhen) {
|
|
13293
13553
|
this.shouldSendAutomatically().then((shouldSend) => {
|
|
13294
|
-
var
|
|
13554
|
+
var _a22;
|
|
13295
13555
|
if (shouldSend) {
|
|
13296
13556
|
this.makeRequest({
|
|
13297
13557
|
trigger: "submit-message",
|
|
13298
|
-
messageId: (
|
|
13558
|
+
messageId: (_a22 = this.lastMessage) == null ? void 0 : _a22.id,
|
|
13299
13559
|
...options
|
|
13300
13560
|
});
|
|
13301
13561
|
}
|
|
@@ -13321,11 +13581,11 @@ var AbstractChat = class {
|
|
|
13321
13581
|
}
|
|
13322
13582
|
if (this.status !== "streaming" && this.status !== "submitted" && this.sendAutomaticallyWhen) {
|
|
13323
13583
|
this.shouldSendAutomatically().then((shouldSend) => {
|
|
13324
|
-
var
|
|
13584
|
+
var _a22;
|
|
13325
13585
|
if (shouldSend) {
|
|
13326
13586
|
this.makeRequest({
|
|
13327
13587
|
trigger: "submit-message",
|
|
13328
|
-
messageId: (
|
|
13588
|
+
messageId: (_a22 = this.lastMessage) == null ? void 0 : _a22.id,
|
|
13329
13589
|
...options
|
|
13330
13590
|
});
|
|
13331
13591
|
}
|
|
@@ -13338,10 +13598,10 @@ var AbstractChat = class {
|
|
|
13338
13598
|
* Abort the current request immediately, keep the generated tokens if any.
|
|
13339
13599
|
*/
|
|
13340
13600
|
this.stop = async () => {
|
|
13341
|
-
var
|
|
13601
|
+
var _a22;
|
|
13342
13602
|
if (this.status !== "streaming" && this.status !== "submitted")
|
|
13343
13603
|
return;
|
|
13344
|
-
if ((
|
|
13604
|
+
if ((_a22 = this.activeResponse) == null ? void 0 : _a22.abortController) {
|
|
13345
13605
|
this.activeResponse.abortController.abort();
|
|
13346
13606
|
}
|
|
13347
13607
|
};
|
|
@@ -13407,7 +13667,7 @@ var AbstractChat = class {
|
|
|
13407
13667
|
body,
|
|
13408
13668
|
messageId
|
|
13409
13669
|
}) {
|
|
13410
|
-
var
|
|
13670
|
+
var _a22, _b, _c;
|
|
13411
13671
|
let resumeStream;
|
|
13412
13672
|
if (trigger === "resume-stream") {
|
|
13413
13673
|
try {
|
|
@@ -13467,9 +13727,9 @@ var AbstractChat = class {
|
|
|
13467
13727
|
() => job({
|
|
13468
13728
|
state: activeResponse.state,
|
|
13469
13729
|
write: () => {
|
|
13470
|
-
var
|
|
13730
|
+
var _a23;
|
|
13471
13731
|
this.setStatus({ status: "streaming" });
|
|
13472
|
-
const replaceLastMessage = activeResponse.state.message.id === ((
|
|
13732
|
+
const replaceLastMessage = activeResponse.state.message.id === ((_a23 = this.lastMessage) == null ? void 0 : _a23.id);
|
|
13473
13733
|
if (replaceLastMessage) {
|
|
13474
13734
|
this.state.replaceMessage(
|
|
13475
13735
|
this.state.messages.length - 1,
|
|
@@ -13521,7 +13781,7 @@ var AbstractChat = class {
|
|
|
13521
13781
|
isAbort,
|
|
13522
13782
|
isDisconnect,
|
|
13523
13783
|
isError,
|
|
13524
|
-
finishReason: (
|
|
13784
|
+
finishReason: (_a22 = this.activeResponse) == null ? void 0 : _a22.state.finishReason
|
|
13525
13785
|
});
|
|
13526
13786
|
} catch (err) {
|
|
13527
13787
|
console.error(err);
|
|
@@ -13677,6 +13937,7 @@ var TextStreamChatTransport = class extends HttpChatTransport {
|
|
|
13677
13937
|
InvalidResponseDataError,
|
|
13678
13938
|
InvalidStreamPartError,
|
|
13679
13939
|
InvalidToolApprovalError,
|
|
13940
|
+
InvalidToolApprovalSignatureError,
|
|
13680
13941
|
InvalidToolInputError,
|
|
13681
13942
|
JSONParseError,
|
|
13682
13943
|
JsonToSseTransformStream,
|