ai 6.0.289 → 6.0.291
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 +28 -0
- package/dist/index.d.mts +13 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.js +326 -250
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +263 -182
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.js +4 -2
- package/dist/internal/index.js.map +1 -1
- package/dist/internal/index.mjs +4 -2
- package/dist/internal/index.mjs.map +1 -1
- package/docs/03-ai-sdk-core/16-mcp-tools.mdx +57 -0
- package/docs/04-ai-sdk-ui/03-chatbot-tool-usage.mdx +7 -0
- package/package.json +4 -3
- package/src/embed/embed-many.ts +19 -3
- package/src/generate-speech/generated-audio-file.ts +0 -8
- package/src/generate-text/generated-file.ts +0 -4
- package/src/generate-text/parse-tool-call.ts +30 -23
- package/src/generate-text/stream-text.ts +9 -1
- package/src/generate-text/to-response-messages.ts +7 -0
- package/src/generate-text/tool-call.ts +26 -0
- package/src/generate-text/validate-tool-approvals.ts +20 -2
- package/src/middleware/extract-reasoning-middleware.ts +1 -1
- package/src/middleware/wrap-embedding-model.ts +12 -2
- package/src/model/get-embedding-model-provider-options-transformer.ts +17 -0
- package/src/prompt/content-part.ts +2 -0
- package/src/ui/chat.ts +108 -17
- package/src/ui/convert-to-model-messages.ts +8 -0
- package/src/ui/process-ui-message-stream.ts +6 -0
- package/src/ui/ui-messages.ts +10 -0
- package/src/ui/validate-ui-messages.ts +79 -114
- package/src/ui-message-stream/ui-message-chunks.ts +2 -0
- package/src/util/write-to-server-response.ts +0 -2
package/dist/index.js
CHANGED
|
@@ -70,7 +70,7 @@ __export(src_exports, {
|
|
|
70
70
|
UnsupportedFunctionalityError: () => import_provider23.UnsupportedFunctionalityError,
|
|
71
71
|
UnsupportedModelVersionError: () => UnsupportedModelVersionError,
|
|
72
72
|
addToolInputExamplesMiddleware: () => addToolInputExamplesMiddleware,
|
|
73
|
-
asSchema: () =>
|
|
73
|
+
asSchema: () => import_provider_utils44.asSchema,
|
|
74
74
|
assistantModelMessageSchema: () => assistantModelMessageSchema,
|
|
75
75
|
bindTelemetryIntegration: () => bindTelemetryIntegration,
|
|
76
76
|
callCompletionApi: () => callCompletionApi,
|
|
@@ -82,7 +82,7 @@ __export(src_exports, {
|
|
|
82
82
|
createAgentUIStreamResponse: () => createAgentUIStreamResponse,
|
|
83
83
|
createDownload: () => createDownload,
|
|
84
84
|
createGateway: () => import_gateway4.createGateway,
|
|
85
|
-
createIdGenerator: () =>
|
|
85
|
+
createIdGenerator: () => import_provider_utils44.createIdGenerator,
|
|
86
86
|
createProviderRegistry: () => createProviderRegistry,
|
|
87
87
|
createTextStreamResponse: () => createTextStreamResponse,
|
|
88
88
|
createUIMessageStream: () => createUIMessageStream,
|
|
@@ -90,7 +90,7 @@ __export(src_exports, {
|
|
|
90
90
|
customProvider: () => customProvider,
|
|
91
91
|
defaultEmbeddingSettingsMiddleware: () => defaultEmbeddingSettingsMiddleware,
|
|
92
92
|
defaultSettingsMiddleware: () => defaultSettingsMiddleware,
|
|
93
|
-
dynamicTool: () =>
|
|
93
|
+
dynamicTool: () => import_provider_utils44.dynamicTool,
|
|
94
94
|
embed: () => embed,
|
|
95
95
|
embedMany: () => embedMany,
|
|
96
96
|
experimental_createProviderRegistry: () => experimental_createProviderRegistry,
|
|
@@ -102,7 +102,7 @@ __export(src_exports, {
|
|
|
102
102
|
extractJsonMiddleware: () => extractJsonMiddleware,
|
|
103
103
|
extractReasoningMiddleware: () => extractReasoningMiddleware,
|
|
104
104
|
gateway: () => import_gateway4.gateway,
|
|
105
|
-
generateId: () =>
|
|
105
|
+
generateId: () => import_provider_utils44.generateId,
|
|
106
106
|
generateImage: () => generateImage,
|
|
107
107
|
generateObject: () => generateObject,
|
|
108
108
|
generateText: () => generateText,
|
|
@@ -121,11 +121,11 @@ __export(src_exports, {
|
|
|
121
121
|
isTextUIPart: () => isTextUIPart,
|
|
122
122
|
isToolOrDynamicToolUIPart: () => isToolOrDynamicToolUIPart,
|
|
123
123
|
isToolUIPart: () => isToolUIPart,
|
|
124
|
-
jsonSchema: () =>
|
|
124
|
+
jsonSchema: () => import_provider_utils44.jsonSchema,
|
|
125
125
|
lastAssistantMessageIsCompleteWithApprovalResponses: () => lastAssistantMessageIsCompleteWithApprovalResponses,
|
|
126
126
|
lastAssistantMessageIsCompleteWithToolCalls: () => lastAssistantMessageIsCompleteWithToolCalls,
|
|
127
127
|
modelMessageSchema: () => modelMessageSchema,
|
|
128
|
-
parseJsonEventStream: () =>
|
|
128
|
+
parseJsonEventStream: () => import_provider_utils44.parseJsonEventStream,
|
|
129
129
|
parsePartialJson: () => parsePartialJson,
|
|
130
130
|
pipeAgentUIStreamToResponse: () => pipeAgentUIStreamToResponse,
|
|
131
131
|
pipeTextStreamToResponse: () => pipeTextStreamToResponse,
|
|
@@ -142,7 +142,7 @@ __export(src_exports, {
|
|
|
142
142
|
streamObject: () => streamObject,
|
|
143
143
|
streamText: () => streamText,
|
|
144
144
|
systemModelMessageSchema: () => systemModelMessageSchema,
|
|
145
|
-
tool: () =>
|
|
145
|
+
tool: () => import_provider_utils44.tool,
|
|
146
146
|
toolModelMessageSchema: () => toolModelMessageSchema,
|
|
147
147
|
uiMessageChunkSchema: () => uiMessageChunkSchema,
|
|
148
148
|
userModelMessageSchema: () => userModelMessageSchema,
|
|
@@ -151,11 +151,11 @@ __export(src_exports, {
|
|
|
151
151
|
wrapImageModel: () => wrapImageModel,
|
|
152
152
|
wrapLanguageModel: () => wrapLanguageModel,
|
|
153
153
|
wrapProvider: () => wrapProvider,
|
|
154
|
-
zodSchema: () =>
|
|
154
|
+
zodSchema: () => import_provider_utils44.zodSchema
|
|
155
155
|
});
|
|
156
156
|
module.exports = __toCommonJS(src_exports);
|
|
157
157
|
var import_gateway4 = require("@ai-sdk/gateway");
|
|
158
|
-
var
|
|
158
|
+
var import_provider_utils44 = require("@ai-sdk/provider-utils");
|
|
159
159
|
|
|
160
160
|
// src/agent/tool-loop-agent.ts
|
|
161
161
|
var import_provider_utils21 = require("@ai-sdk/provider-utils");
|
|
@@ -1334,7 +1334,7 @@ function detectMediaType({
|
|
|
1334
1334
|
var import_provider_utils3 = require("@ai-sdk/provider-utils");
|
|
1335
1335
|
|
|
1336
1336
|
// src/version.ts
|
|
1337
|
-
var VERSION = true ? "6.0.
|
|
1337
|
+
var VERSION = true ? "6.0.291" : "0.0.0-test";
|
|
1338
1338
|
|
|
1339
1339
|
// src/util/download/download.ts
|
|
1340
1340
|
var download = async ({
|
|
@@ -2286,7 +2286,9 @@ var toolResultPartSchema = import_v44.z.object({
|
|
|
2286
2286
|
var toolApprovalRequestSchema = import_v44.z.object({
|
|
2287
2287
|
type: import_v44.z.literal("tool-approval-request"),
|
|
2288
2288
|
approvalId: import_v44.z.string(),
|
|
2289
|
-
toolCallId: import_v44.z.string()
|
|
2289
|
+
toolCallId: import_v44.z.string(),
|
|
2290
|
+
signature: import_v44.z.string().optional(),
|
|
2291
|
+
inputSchemaInput: import_v44.z.unknown().optional()
|
|
2290
2292
|
});
|
|
2291
2293
|
var toolApprovalResponseSchema = import_v44.z.object({
|
|
2292
2294
|
type: import_v44.z.literal("tool-approval-response"),
|
|
@@ -3244,8 +3246,8 @@ var DefaultGeneratedFile = class {
|
|
|
3244
3246
|
}
|
|
3245
3247
|
};
|
|
3246
3248
|
var DefaultGeneratedFileWithType = class extends DefaultGeneratedFile {
|
|
3247
|
-
constructor(
|
|
3248
|
-
super(
|
|
3249
|
+
constructor() {
|
|
3250
|
+
super(...arguments);
|
|
3249
3251
|
this.type = "file";
|
|
3250
3252
|
}
|
|
3251
3253
|
};
|
|
@@ -3367,6 +3369,43 @@ async function maybeSignApproval({
|
|
|
3367
3369
|
|
|
3368
3370
|
// src/generate-text/validate-tool-approvals.ts
|
|
3369
3371
|
var import_provider_utils12 = require("@ai-sdk/provider-utils");
|
|
3372
|
+
|
|
3373
|
+
// src/util/is-deep-equal-data.ts
|
|
3374
|
+
function isDeepEqualData(obj1, obj2) {
|
|
3375
|
+
if (obj1 === obj2)
|
|
3376
|
+
return true;
|
|
3377
|
+
if (obj1 == null || obj2 == null)
|
|
3378
|
+
return false;
|
|
3379
|
+
if (typeof obj1 !== "object" && typeof obj2 !== "object")
|
|
3380
|
+
return obj1 === obj2;
|
|
3381
|
+
if (obj1.constructor !== obj2.constructor)
|
|
3382
|
+
return false;
|
|
3383
|
+
if (obj1 instanceof Date && obj2 instanceof Date) {
|
|
3384
|
+
return obj1.getTime() === obj2.getTime();
|
|
3385
|
+
}
|
|
3386
|
+
if (Array.isArray(obj1)) {
|
|
3387
|
+
if (obj1.length !== obj2.length)
|
|
3388
|
+
return false;
|
|
3389
|
+
for (let i = 0; i < obj1.length; i++) {
|
|
3390
|
+
if (!isDeepEqualData(obj1[i], obj2[i]))
|
|
3391
|
+
return false;
|
|
3392
|
+
}
|
|
3393
|
+
return true;
|
|
3394
|
+
}
|
|
3395
|
+
const keys1 = Object.keys(obj1);
|
|
3396
|
+
const keys2 = Object.keys(obj2);
|
|
3397
|
+
if (keys1.length !== keys2.length)
|
|
3398
|
+
return false;
|
|
3399
|
+
for (const key of keys1) {
|
|
3400
|
+
if (!keys2.includes(key))
|
|
3401
|
+
return false;
|
|
3402
|
+
if (!isDeepEqualData(obj1[key], obj2[key]))
|
|
3403
|
+
return false;
|
|
3404
|
+
}
|
|
3405
|
+
return true;
|
|
3406
|
+
}
|
|
3407
|
+
|
|
3408
|
+
// src/generate-text/validate-tool-approvals.ts
|
|
3370
3409
|
async function validateApprovedToolApprovals({
|
|
3371
3410
|
approvedToolApprovals,
|
|
3372
3411
|
tools,
|
|
@@ -3406,17 +3445,29 @@ async function validateApprovedToolApprovals({
|
|
|
3406
3445
|
}
|
|
3407
3446
|
}
|
|
3408
3447
|
if (tool2 != null && typeof tool2.execute === "function" && tool2.inputSchema != null) {
|
|
3448
|
+
const hasInputSchemaInput = Object.prototype.hasOwnProperty.call(
|
|
3449
|
+
approvalRequest,
|
|
3450
|
+
"inputSchemaInput"
|
|
3451
|
+
);
|
|
3409
3452
|
const validation = await (0, import_provider_utils12.safeValidateTypes)({
|
|
3410
|
-
value: toolCall.input,
|
|
3453
|
+
value: hasInputSchemaInput ? approvalRequest.inputSchemaInput : toolCall.input,
|
|
3411
3454
|
schema: (0, import_provider_utils12.asSchema)(tool2.inputSchema)
|
|
3412
3455
|
});
|
|
3456
|
+
let validationError;
|
|
3413
3457
|
if (!validation.success) {
|
|
3458
|
+
validationError = validation.error;
|
|
3459
|
+
} else if (!isDeepEqualData(validation.value, toolCall.input)) {
|
|
3460
|
+
validationError = new Error(
|
|
3461
|
+
"Approved tool input does not match the validated schema output."
|
|
3462
|
+
);
|
|
3463
|
+
}
|
|
3464
|
+
if (validationError != null) {
|
|
3414
3465
|
invalid.push({
|
|
3415
3466
|
...approval,
|
|
3416
3467
|
error: new InvalidToolInputError({
|
|
3417
3468
|
toolName: toolCall.toolName,
|
|
3418
3469
|
toolInput: JSON.stringify(toolCall.input),
|
|
3419
|
-
cause:
|
|
3470
|
+
cause: validationError
|
|
3420
3471
|
})
|
|
3421
3472
|
});
|
|
3422
3473
|
continue;
|
|
@@ -4132,6 +4183,22 @@ var json = ({
|
|
|
4132
4183
|
|
|
4133
4184
|
// src/generate-text/parse-tool-call.ts
|
|
4134
4185
|
var import_provider_utils15 = require("@ai-sdk/provider-utils");
|
|
4186
|
+
|
|
4187
|
+
// src/generate-text/tool-call.ts
|
|
4188
|
+
var inputSchemaInputSymbol = Symbol("ai-sdk-tool-call-input-schema-input");
|
|
4189
|
+
function setToolCallInputSchemaInput(toolCall, inputSchemaInput) {
|
|
4190
|
+
Object.defineProperty(toolCall, inputSchemaInputSymbol, {
|
|
4191
|
+
value: inputSchemaInput
|
|
4192
|
+
});
|
|
4193
|
+
return toolCall;
|
|
4194
|
+
}
|
|
4195
|
+
function getToolCallInputSchemaInput(toolCall) {
|
|
4196
|
+
return inputSchemaInputSymbol in toolCall ? {
|
|
4197
|
+
value: toolCall[inputSchemaInputSymbol]
|
|
4198
|
+
} : void 0;
|
|
4199
|
+
}
|
|
4200
|
+
|
|
4201
|
+
// src/generate-text/parse-tool-call.ts
|
|
4135
4202
|
async function parseToolCall({
|
|
4136
4203
|
toolCall,
|
|
4137
4204
|
tools,
|
|
@@ -4238,26 +4305,29 @@ async function doParseToolCall({
|
|
|
4238
4305
|
cause: parseResult.error
|
|
4239
4306
|
});
|
|
4240
4307
|
}
|
|
4241
|
-
return
|
|
4242
|
-
type
|
|
4243
|
-
|
|
4244
|
-
|
|
4245
|
-
|
|
4246
|
-
|
|
4247
|
-
|
|
4248
|
-
|
|
4249
|
-
|
|
4250
|
-
|
|
4251
|
-
|
|
4252
|
-
|
|
4253
|
-
|
|
4254
|
-
|
|
4255
|
-
|
|
4256
|
-
|
|
4257
|
-
|
|
4258
|
-
|
|
4259
|
-
|
|
4260
|
-
|
|
4308
|
+
return setToolCallInputSchemaInput(
|
|
4309
|
+
tool2.type === "dynamic" ? {
|
|
4310
|
+
type: "tool-call",
|
|
4311
|
+
toolCallId: toolCall.toolCallId,
|
|
4312
|
+
toolName: toolCall.toolName,
|
|
4313
|
+
input: parseResult.value,
|
|
4314
|
+
providerExecuted: toolCall.providerExecuted,
|
|
4315
|
+
providerMetadata: toolCall.providerMetadata,
|
|
4316
|
+
...tool2.metadata != null ? { toolMetadata: tool2.metadata } : {},
|
|
4317
|
+
dynamic: true,
|
|
4318
|
+
title: tool2.title
|
|
4319
|
+
} : {
|
|
4320
|
+
type: "tool-call",
|
|
4321
|
+
toolCallId: toolCall.toolCallId,
|
|
4322
|
+
toolName,
|
|
4323
|
+
input: parseResult.value,
|
|
4324
|
+
providerExecuted: toolCall.providerExecuted,
|
|
4325
|
+
providerMetadata: toolCall.providerMetadata,
|
|
4326
|
+
...tool2.metadata != null ? { toolMetadata: tool2.metadata } : {},
|
|
4327
|
+
title: tool2.title
|
|
4328
|
+
},
|
|
4329
|
+
parseResult.rawValue
|
|
4330
|
+
);
|
|
4261
4331
|
}
|
|
4262
4332
|
|
|
4263
4333
|
// src/generate-text/prepare-step-call-settings.ts
|
|
@@ -4463,11 +4533,13 @@ async function toResponseMessages({
|
|
|
4463
4533
|
break;
|
|
4464
4534
|
}
|
|
4465
4535
|
case "tool-approval-request":
|
|
4536
|
+
const inputSchemaInput = getToolCallInputSchemaInput(part.toolCall);
|
|
4466
4537
|
content.push({
|
|
4467
4538
|
type: "tool-approval-request",
|
|
4468
4539
|
approvalId: part.approvalId,
|
|
4469
4540
|
toolCallId: part.toolCall.toolCallId,
|
|
4470
|
-
...part.signature != null ? { signature: part.signature } : {}
|
|
4541
|
+
...part.signature != null ? { signature: part.signature } : {},
|
|
4542
|
+
...inputSchemaInput != null && !isDeepEqualData(inputSchemaInput.value, part.toolCall.input) ? { inputSchemaInput: inputSchemaInput.value } : {}
|
|
4471
4543
|
});
|
|
4472
4544
|
break;
|
|
4473
4545
|
}
|
|
@@ -5588,8 +5660,6 @@ function writeToServerResponse({
|
|
|
5588
5660
|
});
|
|
5589
5661
|
}
|
|
5590
5662
|
}
|
|
5591
|
-
} catch (error) {
|
|
5592
|
-
throw error;
|
|
5593
5663
|
} finally {
|
|
5594
5664
|
response.end();
|
|
5595
5665
|
}
|
|
@@ -5753,6 +5823,7 @@ var uiMessageChunkSchema = (0, import_provider_utils17.lazySchema)(
|
|
|
5753
5823
|
approvalId: import_v47.z.string(),
|
|
5754
5824
|
toolCallId: import_v47.z.string(),
|
|
5755
5825
|
approvalDescriptor: import_v47.z.unknown().optional(),
|
|
5826
|
+
inputSchemaInput: import_v47.z.unknown().optional(),
|
|
5756
5827
|
signature: import_v47.z.string().optional()
|
|
5757
5828
|
}),
|
|
5758
5829
|
import_v47.z.looseObject({
|
|
@@ -6333,6 +6404,10 @@ function processUIMessageStream({
|
|
|
6333
6404
|
toolInvocation.approval = {
|
|
6334
6405
|
id: chunk.approvalId,
|
|
6335
6406
|
...chunk.approvalDescriptor != null ? { descriptor: chunk.approvalDescriptor } : {},
|
|
6407
|
+
...Object.prototype.hasOwnProperty.call(
|
|
6408
|
+
chunk,
|
|
6409
|
+
"inputSchemaInput"
|
|
6410
|
+
) ? { inputSchemaInput: chunk.inputSchemaInput } : {},
|
|
6336
6411
|
...chunk.signature != null ? { signature: chunk.signature } : {}
|
|
6337
6412
|
};
|
|
6338
6413
|
write();
|
|
@@ -9012,10 +9087,14 @@ var DefaultStreamTextResult = class {
|
|
|
9012
9087
|
break;
|
|
9013
9088
|
}
|
|
9014
9089
|
case "tool-approval-request": {
|
|
9090
|
+
const inputSchemaInput = getToolCallInputSchemaInput(
|
|
9091
|
+
part.toolCall
|
|
9092
|
+
);
|
|
9015
9093
|
controller.enqueue({
|
|
9016
9094
|
type: "tool-approval-request",
|
|
9017
9095
|
approvalId: part.approvalId,
|
|
9018
9096
|
toolCallId: part.toolCall.toolCallId,
|
|
9097
|
+
...inputSchemaInput != null && !isDeepEqualData(inputSchemaInput.value, part.toolCall.input) ? { inputSchemaInput: inputSchemaInput.value } : {},
|
|
9019
9098
|
...part.signature != null ? { signature: part.signature } : {}
|
|
9020
9099
|
});
|
|
9021
9100
|
break;
|
|
@@ -9606,6 +9685,12 @@ async function convertToModelMessages(messages, options) {
|
|
|
9606
9685
|
type: "tool-approval-request",
|
|
9607
9686
|
approvalId: part.approval.id,
|
|
9608
9687
|
toolCallId: part.toolCallId,
|
|
9688
|
+
...Object.prototype.hasOwnProperty.call(
|
|
9689
|
+
part.approval,
|
|
9690
|
+
"inputSchemaInput"
|
|
9691
|
+
) ? {
|
|
9692
|
+
inputSchemaInput: part.approval.inputSchemaInput
|
|
9693
|
+
} : {},
|
|
9609
9694
|
...part.approval.signature != null ? { signature: part.approval.signature } : {}
|
|
9610
9695
|
});
|
|
9611
9696
|
}
|
|
@@ -9754,8 +9839,29 @@ function asDynamicToolPart(toolPart) {
|
|
|
9754
9839
|
toolName: type.slice(5)
|
|
9755
9840
|
};
|
|
9756
9841
|
}
|
|
9757
|
-
|
|
9758
|
-
|
|
9842
|
+
function getToolPartInputSchemaInput(toolPart) {
|
|
9843
|
+
return toolPart.approval != null && Object.prototype.hasOwnProperty.call(toolPart.approval, "inputSchemaInput") ? { value: toolPart.approval.inputSchemaInput } : void 0;
|
|
9844
|
+
}
|
|
9845
|
+
var uiMessagesSchema = (0, import_provider_utils24.lazySchema)(() => {
|
|
9846
|
+
const approvalRequestedSchema = import_v48.z.object({
|
|
9847
|
+
id: import_v48.z.string(),
|
|
9848
|
+
approved: import_v48.z.never().optional(),
|
|
9849
|
+
descriptor: import_v48.z.unknown().optional(),
|
|
9850
|
+
reason: import_v48.z.never().optional(),
|
|
9851
|
+
signature: import_v48.z.string().optional(),
|
|
9852
|
+
inputSchemaInput: import_v48.z.unknown().optional()
|
|
9853
|
+
});
|
|
9854
|
+
const approvalRespondedSchema = approvalRequestedSchema.extend({
|
|
9855
|
+
approved: import_v48.z.boolean(),
|
|
9856
|
+
reason: import_v48.z.string().optional()
|
|
9857
|
+
});
|
|
9858
|
+
const approvalGrantedSchema = approvalRespondedSchema.extend({
|
|
9859
|
+
approved: import_v48.z.literal(true)
|
|
9860
|
+
});
|
|
9861
|
+
const approvalDeniedSchema = approvalRespondedSchema.extend({
|
|
9862
|
+
approved: import_v48.z.literal(false)
|
|
9863
|
+
});
|
|
9864
|
+
return (0, import_provider_utils24.zodSchema)(
|
|
9759
9865
|
import_v48.z.array(
|
|
9760
9866
|
import_v48.z.object({
|
|
9761
9867
|
id: import_v48.z.string(),
|
|
@@ -9843,13 +9949,7 @@ var uiMessagesSchema = (0, import_provider_utils24.lazySchema)(
|
|
|
9843
9949
|
output: import_v48.z.never().optional(),
|
|
9844
9950
|
errorText: import_v48.z.never().optional(),
|
|
9845
9951
|
callProviderMetadata: providerMetadataSchema.optional(),
|
|
9846
|
-
approval:
|
|
9847
|
-
id: import_v48.z.string(),
|
|
9848
|
-
approved: import_v48.z.never().optional(),
|
|
9849
|
-
descriptor: import_v48.z.unknown().optional(),
|
|
9850
|
-
reason: import_v48.z.never().optional(),
|
|
9851
|
-
signature: import_v48.z.string().optional()
|
|
9852
|
-
})
|
|
9952
|
+
approval: approvalRequestedSchema
|
|
9853
9953
|
}),
|
|
9854
9954
|
import_v48.z.object({
|
|
9855
9955
|
type: import_v48.z.literal("dynamic-tool"),
|
|
@@ -9862,13 +9962,7 @@ var uiMessagesSchema = (0, import_provider_utils24.lazySchema)(
|
|
|
9862
9962
|
output: import_v48.z.never().optional(),
|
|
9863
9963
|
errorText: import_v48.z.never().optional(),
|
|
9864
9964
|
callProviderMetadata: providerMetadataSchema.optional(),
|
|
9865
|
-
approval:
|
|
9866
|
-
id: import_v48.z.string(),
|
|
9867
|
-
approved: import_v48.z.boolean(),
|
|
9868
|
-
descriptor: import_v48.z.unknown().optional(),
|
|
9869
|
-
reason: import_v48.z.string().optional(),
|
|
9870
|
-
signature: import_v48.z.string().optional()
|
|
9871
|
-
})
|
|
9965
|
+
approval: approvalRespondedSchema
|
|
9872
9966
|
}),
|
|
9873
9967
|
import_v48.z.object({
|
|
9874
9968
|
type: import_v48.z.literal("dynamic-tool"),
|
|
@@ -9883,13 +9977,7 @@ var uiMessagesSchema = (0, import_provider_utils24.lazySchema)(
|
|
|
9883
9977
|
callProviderMetadata: providerMetadataSchema.optional(),
|
|
9884
9978
|
resultProviderMetadata: providerMetadataSchema.optional(),
|
|
9885
9979
|
preliminary: import_v48.z.boolean().optional(),
|
|
9886
|
-
approval:
|
|
9887
|
-
id: import_v48.z.string(),
|
|
9888
|
-
approved: import_v48.z.literal(true),
|
|
9889
|
-
descriptor: import_v48.z.unknown().optional(),
|
|
9890
|
-
reason: import_v48.z.string().optional(),
|
|
9891
|
-
signature: import_v48.z.string().optional()
|
|
9892
|
-
}).optional()
|
|
9980
|
+
approval: approvalGrantedSchema.optional()
|
|
9893
9981
|
}),
|
|
9894
9982
|
import_v48.z.object({
|
|
9895
9983
|
type: import_v48.z.literal("dynamic-tool"),
|
|
@@ -9904,13 +9992,7 @@ var uiMessagesSchema = (0, import_provider_utils24.lazySchema)(
|
|
|
9904
9992
|
errorText: import_v48.z.string(),
|
|
9905
9993
|
callProviderMetadata: providerMetadataSchema.optional(),
|
|
9906
9994
|
resultProviderMetadata: providerMetadataSchema.optional(),
|
|
9907
|
-
approval:
|
|
9908
|
-
id: import_v48.z.string(),
|
|
9909
|
-
approved: import_v48.z.literal(true),
|
|
9910
|
-
descriptor: import_v48.z.unknown().optional(),
|
|
9911
|
-
reason: import_v48.z.string().optional(),
|
|
9912
|
-
signature: import_v48.z.string().optional()
|
|
9913
|
-
}).optional()
|
|
9995
|
+
approval: approvalGrantedSchema.optional()
|
|
9914
9996
|
}),
|
|
9915
9997
|
import_v48.z.object({
|
|
9916
9998
|
type: import_v48.z.literal("dynamic-tool"),
|
|
@@ -9923,13 +10005,7 @@ var uiMessagesSchema = (0, import_provider_utils24.lazySchema)(
|
|
|
9923
10005
|
output: import_v48.z.never().optional(),
|
|
9924
10006
|
errorText: import_v48.z.never().optional(),
|
|
9925
10007
|
callProviderMetadata: providerMetadataSchema.optional(),
|
|
9926
|
-
approval:
|
|
9927
|
-
id: import_v48.z.string(),
|
|
9928
|
-
approved: import_v48.z.literal(false),
|
|
9929
|
-
descriptor: import_v48.z.unknown().optional(),
|
|
9930
|
-
reason: import_v48.z.string().optional(),
|
|
9931
|
-
signature: import_v48.z.string().optional()
|
|
9932
|
-
})
|
|
10008
|
+
approval: approvalDeniedSchema
|
|
9933
10009
|
}),
|
|
9934
10010
|
import_v48.z.object({
|
|
9935
10011
|
type: import_v48.z.string().startsWith("tool-"),
|
|
@@ -9965,13 +10041,7 @@ var uiMessagesSchema = (0, import_provider_utils24.lazySchema)(
|
|
|
9965
10041
|
output: import_v48.z.never().optional(),
|
|
9966
10042
|
errorText: import_v48.z.never().optional(),
|
|
9967
10043
|
callProviderMetadata: providerMetadataSchema.optional(),
|
|
9968
|
-
approval:
|
|
9969
|
-
id: import_v48.z.string(),
|
|
9970
|
-
approved: import_v48.z.never().optional(),
|
|
9971
|
-
descriptor: import_v48.z.unknown().optional(),
|
|
9972
|
-
reason: import_v48.z.never().optional(),
|
|
9973
|
-
signature: import_v48.z.string().optional()
|
|
9974
|
-
})
|
|
10044
|
+
approval: approvalRequestedSchema
|
|
9975
10045
|
}),
|
|
9976
10046
|
import_v48.z.object({
|
|
9977
10047
|
type: import_v48.z.string().startsWith("tool-"),
|
|
@@ -9983,13 +10053,7 @@ var uiMessagesSchema = (0, import_provider_utils24.lazySchema)(
|
|
|
9983
10053
|
output: import_v48.z.never().optional(),
|
|
9984
10054
|
errorText: import_v48.z.never().optional(),
|
|
9985
10055
|
callProviderMetadata: providerMetadataSchema.optional(),
|
|
9986
|
-
approval:
|
|
9987
|
-
id: import_v48.z.string(),
|
|
9988
|
-
approved: import_v48.z.boolean(),
|
|
9989
|
-
descriptor: import_v48.z.unknown().optional(),
|
|
9990
|
-
reason: import_v48.z.string().optional(),
|
|
9991
|
-
signature: import_v48.z.string().optional()
|
|
9992
|
-
})
|
|
10056
|
+
approval: approvalRespondedSchema
|
|
9993
10057
|
}),
|
|
9994
10058
|
import_v48.z.object({
|
|
9995
10059
|
type: import_v48.z.string().startsWith("tool-"),
|
|
@@ -10003,13 +10067,7 @@ var uiMessagesSchema = (0, import_provider_utils24.lazySchema)(
|
|
|
10003
10067
|
callProviderMetadata: providerMetadataSchema.optional(),
|
|
10004
10068
|
resultProviderMetadata: providerMetadataSchema.optional(),
|
|
10005
10069
|
preliminary: import_v48.z.boolean().optional(),
|
|
10006
|
-
approval:
|
|
10007
|
-
id: import_v48.z.string(),
|
|
10008
|
-
approved: import_v48.z.literal(true),
|
|
10009
|
-
descriptor: import_v48.z.unknown().optional(),
|
|
10010
|
-
reason: import_v48.z.string().optional(),
|
|
10011
|
-
signature: import_v48.z.string().optional()
|
|
10012
|
-
}).optional()
|
|
10070
|
+
approval: approvalGrantedSchema.optional()
|
|
10013
10071
|
}),
|
|
10014
10072
|
import_v48.z.object({
|
|
10015
10073
|
type: import_v48.z.string().startsWith("tool-"),
|
|
@@ -10023,13 +10081,7 @@ var uiMessagesSchema = (0, import_provider_utils24.lazySchema)(
|
|
|
10023
10081
|
errorText: import_v48.z.string(),
|
|
10024
10082
|
callProviderMetadata: providerMetadataSchema.optional(),
|
|
10025
10083
|
resultProviderMetadata: providerMetadataSchema.optional(),
|
|
10026
|
-
approval:
|
|
10027
|
-
id: import_v48.z.string(),
|
|
10028
|
-
approved: import_v48.z.literal(true),
|
|
10029
|
-
descriptor: import_v48.z.unknown().optional(),
|
|
10030
|
-
reason: import_v48.z.string().optional(),
|
|
10031
|
-
signature: import_v48.z.string().optional()
|
|
10032
|
-
}).optional()
|
|
10084
|
+
approval: approvalGrantedSchema.optional()
|
|
10033
10085
|
}),
|
|
10034
10086
|
import_v48.z.object({
|
|
10035
10087
|
type: import_v48.z.string().startsWith("tool-"),
|
|
@@ -10041,13 +10093,7 @@ var uiMessagesSchema = (0, import_provider_utils24.lazySchema)(
|
|
|
10041
10093
|
output: import_v48.z.never().optional(),
|
|
10042
10094
|
errorText: import_v48.z.never().optional(),
|
|
10043
10095
|
callProviderMetadata: providerMetadataSchema.optional(),
|
|
10044
|
-
approval:
|
|
10045
|
-
id: import_v48.z.string(),
|
|
10046
|
-
approved: import_v48.z.literal(false),
|
|
10047
|
-
descriptor: import_v48.z.unknown().optional(),
|
|
10048
|
-
reason: import_v48.z.string().optional(),
|
|
10049
|
-
signature: import_v48.z.string().optional()
|
|
10050
|
-
})
|
|
10096
|
+
approval: approvalDeniedSchema
|
|
10051
10097
|
})
|
|
10052
10098
|
])
|
|
10053
10099
|
)
|
|
@@ -10065,8 +10111,8 @@ var uiMessagesSchema = (0, import_provider_utils24.lazySchema)(
|
|
|
10065
10111
|
}
|
|
10066
10112
|
})
|
|
10067
10113
|
).nonempty("Messages array must not be empty")
|
|
10068
|
-
)
|
|
10069
|
-
);
|
|
10114
|
+
);
|
|
10115
|
+
});
|
|
10070
10116
|
async function safeValidateUIMessagesInternal({
|
|
10071
10117
|
messages,
|
|
10072
10118
|
metadataSchema,
|
|
@@ -10092,7 +10138,7 @@ async function safeValidateUIMessagesInternal({
|
|
|
10092
10138
|
});
|
|
10093
10139
|
if (metadataSchema) {
|
|
10094
10140
|
for (const [msgIdx, message] of validatedMessages.entries()) {
|
|
10095
|
-
await (0, import_provider_utils24.validateTypes)({
|
|
10141
|
+
message.metadata = await (0, import_provider_utils24.validateTypes)({
|
|
10096
10142
|
value: message.metadata,
|
|
10097
10143
|
schema: metadataSchema,
|
|
10098
10144
|
context: {
|
|
@@ -10124,7 +10170,7 @@ async function safeValidateUIMessagesInternal({
|
|
|
10124
10170
|
})
|
|
10125
10171
|
};
|
|
10126
10172
|
}
|
|
10127
|
-
await (0, import_provider_utils24.validateTypes)({
|
|
10173
|
+
dataPart.data = await (0, import_provider_utils24.validateTypes)({
|
|
10128
10174
|
value: dataPart.data,
|
|
10129
10175
|
schema: dataSchema,
|
|
10130
10176
|
context: {
|
|
@@ -10166,35 +10212,34 @@ async function safeValidateUIMessagesInternal({
|
|
|
10166
10212
|
entityName: toolName,
|
|
10167
10213
|
entityId: toolPart.toolCallId
|
|
10168
10214
|
};
|
|
10215
|
+
const inputSchemaInput = getToolPartInputSchemaInput(toolPart);
|
|
10216
|
+
const inputToValidate = inputSchemaInput == null ? toolPart.input : inputSchemaInput.value;
|
|
10169
10217
|
let convertToDynamic = false;
|
|
10170
|
-
if (toolPart.state
|
|
10171
|
-
if (toolPart.input !== void 0) {
|
|
10172
|
-
const result = await (0, import_provider_utils24.safeValidateTypes)({
|
|
10173
|
-
value: toolPart.input,
|
|
10174
|
-
schema: tool2.inputSchema,
|
|
10175
|
-
context: inputValidationContext
|
|
10176
|
-
});
|
|
10177
|
-
convertToDynamic = !result.success;
|
|
10178
|
-
}
|
|
10179
|
-
} else if (toolPart.state === "output-available") {
|
|
10218
|
+
if (toolPart.state !== "input-streaming" && (toolPart.state !== "output-error" || inputSchemaInput != null || toolPart.input !== void 0)) {
|
|
10180
10219
|
const result = await (0, import_provider_utils24.safeValidateTypes)({
|
|
10181
|
-
value:
|
|
10220
|
+
value: inputToValidate,
|
|
10182
10221
|
schema: tool2.inputSchema,
|
|
10183
10222
|
context: inputValidationContext
|
|
10184
10223
|
});
|
|
10224
|
+
let inputError;
|
|
10185
10225
|
if (!result.success) {
|
|
10186
|
-
|
|
10226
|
+
inputError = result.error;
|
|
10227
|
+
} else if (inputSchemaInput != null) {
|
|
10228
|
+
if (!isDeepEqualData(result.value, toolPart.input)) {
|
|
10229
|
+
inputError = new import_provider31.TypeValidationError({
|
|
10230
|
+
value: toolPart.input,
|
|
10231
|
+
cause: "Tool input does not match the output reconstructed from inputSchemaInput.",
|
|
10232
|
+
context: inputValidationContext
|
|
10233
|
+
});
|
|
10234
|
+
}
|
|
10235
|
+
}
|
|
10236
|
+
if (inputError != null) {
|
|
10237
|
+
if (toolPart.state === "output-error" || toolPart.state === "output-available" && isEmptyObject(toolPart.input)) {
|
|
10187
10238
|
convertToDynamic = true;
|
|
10188
10239
|
} else {
|
|
10189
|
-
throw
|
|
10240
|
+
throw inputError;
|
|
10190
10241
|
}
|
|
10191
10242
|
}
|
|
10192
|
-
} else if (toolPart.state === "input-available" || toolPart.state === "approval-requested" || toolPart.state === "approval-responded" || toolPart.state === "output-denied") {
|
|
10193
|
-
await (0, import_provider_utils24.validateTypes)({
|
|
10194
|
-
value: toolPart.input,
|
|
10195
|
-
schema: tool2.inputSchema,
|
|
10196
|
-
context: inputValidationContext
|
|
10197
|
-
});
|
|
10198
10243
|
}
|
|
10199
10244
|
if (toolPart.state === "output-available" && tool2.outputSchema) {
|
|
10200
10245
|
await (0, import_provider_utils24.validateTypes)({
|
|
@@ -10451,7 +10496,7 @@ var DefaultEmbedResult = class {
|
|
|
10451
10496
|
};
|
|
10452
10497
|
|
|
10453
10498
|
// src/embed/embed-many.ts
|
|
10454
|
-
var
|
|
10499
|
+
var import_provider_utils28 = require("@ai-sdk/provider-utils");
|
|
10455
10500
|
|
|
10456
10501
|
// src/model/get-embedding-model-max-input-bytes-per-call.ts
|
|
10457
10502
|
var import_provider_utils26 = require("@ai-sdk/provider-utils");
|
|
@@ -10459,6 +10504,12 @@ function getEmbeddingModelMaxInputBytesPerCall(model) {
|
|
|
10459
10504
|
return model[import_provider_utils26.EXPERIMENTAL_EMBEDDING_MODEL_MAX_INPUT_BYTES_PER_CALL];
|
|
10460
10505
|
}
|
|
10461
10506
|
|
|
10507
|
+
// src/model/get-embedding-model-provider-options-transformer.ts
|
|
10508
|
+
var import_provider_utils27 = require("@ai-sdk/provider-utils");
|
|
10509
|
+
function getEmbeddingModelProviderOptionsTransformer(model) {
|
|
10510
|
+
return model[import_provider_utils27.EXPERIMENTAL_EMBEDDING_MODEL_PROVIDER_OPTIONS_TRANSFORMER];
|
|
10511
|
+
}
|
|
10512
|
+
|
|
10462
10513
|
// src/util/split-array.ts
|
|
10463
10514
|
function splitArray(array2, chunkSize) {
|
|
10464
10515
|
if (chunkSize <= 0) {
|
|
@@ -10487,7 +10538,7 @@ async function embedMany({
|
|
|
10487
10538
|
maxRetries: maxRetriesArg,
|
|
10488
10539
|
abortSignal
|
|
10489
10540
|
});
|
|
10490
|
-
const headersWithUserAgent = (0,
|
|
10541
|
+
const headersWithUserAgent = (0, import_provider_utils28.withUserAgentSuffix)(
|
|
10491
10542
|
headers != null ? headers : {},
|
|
10492
10543
|
`ai/${VERSION}`
|
|
10493
10544
|
);
|
|
@@ -10513,7 +10564,6 @@ async function embedMany({
|
|
|
10513
10564
|
}),
|
|
10514
10565
|
tracer,
|
|
10515
10566
|
fn: async (span) => {
|
|
10516
|
-
var _a23;
|
|
10517
10567
|
const [
|
|
10518
10568
|
maxEmbeddingsPerCall,
|
|
10519
10569
|
maxInputBytesPerCall,
|
|
@@ -10545,7 +10595,7 @@ async function embedMany({
|
|
|
10545
10595
|
}),
|
|
10546
10596
|
tracer,
|
|
10547
10597
|
fn: async (doEmbedSpan) => {
|
|
10548
|
-
var
|
|
10598
|
+
var _a23, _b;
|
|
10549
10599
|
const modelResponse = await model.doEmbed({
|
|
10550
10600
|
values,
|
|
10551
10601
|
abortSignal,
|
|
@@ -10553,7 +10603,7 @@ async function embedMany({
|
|
|
10553
10603
|
providerOptions
|
|
10554
10604
|
});
|
|
10555
10605
|
const embeddings3 = modelResponse.embeddings;
|
|
10556
|
-
const usage2 = (
|
|
10606
|
+
const usage2 = (_a23 = modelResponse.usage) != null ? _a23 : { tokens: NaN };
|
|
10557
10607
|
doEmbedSpan.setAttributes(
|
|
10558
10608
|
await selectTelemetryAttributes({
|
|
10559
10609
|
telemetry,
|
|
@@ -10607,6 +10657,7 @@ async function embedMany({
|
|
|
10607
10657
|
maxEmbeddingsPerCall: hasEmbeddingLimit ? maxEmbeddingsPerCall : Infinity,
|
|
10608
10658
|
maxInputBytesPerCall: hasInputByteLimit ? maxInputBytesPerCall : Infinity
|
|
10609
10659
|
});
|
|
10660
|
+
const providerOptionsTransformer = getEmbeddingModelProviderOptionsTransformer(model);
|
|
10610
10661
|
const embeddings = [];
|
|
10611
10662
|
const warnings = [];
|
|
10612
10663
|
const responses = [];
|
|
@@ -10616,9 +10667,18 @@ async function embedMany({
|
|
|
10616
10667
|
valueChunks,
|
|
10617
10668
|
supportsParallelCalls ? maxParallelCalls : 1
|
|
10618
10669
|
);
|
|
10670
|
+
let nextChunkStartIndex = 0;
|
|
10619
10671
|
for (const parallelChunk of parallelChunks) {
|
|
10620
10672
|
const results = await Promise.all(
|
|
10621
|
-
parallelChunk.map((chunk) => {
|
|
10673
|
+
parallelChunk.map(async (chunk) => {
|
|
10674
|
+
const startIndex = nextChunkStartIndex;
|
|
10675
|
+
nextChunkStartIndex += chunk.length;
|
|
10676
|
+
const chunkProviderOptions = providerOptionsTransformer ? await providerOptionsTransformer({
|
|
10677
|
+
providerOptions,
|
|
10678
|
+
values,
|
|
10679
|
+
startIndex,
|
|
10680
|
+
endIndex: startIndex + chunk.length
|
|
10681
|
+
}) : providerOptions;
|
|
10622
10682
|
return retry(() => {
|
|
10623
10683
|
return recordSpan({
|
|
10624
10684
|
name: "ai.embedMany.doEmbed",
|
|
@@ -10638,15 +10698,15 @@ async function embedMany({
|
|
|
10638
10698
|
}),
|
|
10639
10699
|
tracer,
|
|
10640
10700
|
fn: async (doEmbedSpan) => {
|
|
10641
|
-
var
|
|
10701
|
+
var _a23, _b;
|
|
10642
10702
|
const modelResponse = await model.doEmbed({
|
|
10643
10703
|
values: chunk,
|
|
10644
10704
|
abortSignal,
|
|
10645
10705
|
headers: headersWithUserAgent,
|
|
10646
|
-
providerOptions
|
|
10706
|
+
providerOptions: chunkProviderOptions
|
|
10647
10707
|
});
|
|
10648
10708
|
const embeddings2 = modelResponse.embeddings;
|
|
10649
|
-
const usage = (
|
|
10709
|
+
const usage = (_a23 = modelResponse.usage) != null ? _a23 : { tokens: NaN };
|
|
10650
10710
|
doEmbedSpan.setAttributes(
|
|
10651
10711
|
await selectTelemetryAttributes({
|
|
10652
10712
|
telemetry,
|
|
@@ -10685,7 +10745,7 @@ async function embedMany({
|
|
|
10685
10745
|
result.providerMetadata
|
|
10686
10746
|
)) {
|
|
10687
10747
|
providerMetadata[providerName] = {
|
|
10688
|
-
...
|
|
10748
|
+
...providerMetadata[providerName],
|
|
10689
10749
|
...metadata
|
|
10690
10750
|
};
|
|
10691
10751
|
}
|
|
@@ -10763,7 +10823,7 @@ var DefaultEmbedManyResult = class {
|
|
|
10763
10823
|
};
|
|
10764
10824
|
|
|
10765
10825
|
// src/generate-image/generate-image.ts
|
|
10766
|
-
var
|
|
10826
|
+
var import_provider_utils29 = require("@ai-sdk/provider-utils");
|
|
10767
10827
|
var RetryableNoImageResultError = class extends Error {
|
|
10768
10828
|
constructor() {
|
|
10769
10829
|
super("No image generated.");
|
|
@@ -10785,7 +10845,7 @@ async function generateImage({
|
|
|
10785
10845
|
}) {
|
|
10786
10846
|
var _a23, _b;
|
|
10787
10847
|
const model = resolveImageModel(modelArg);
|
|
10788
|
-
const headersWithUserAgent = (0,
|
|
10848
|
+
const headersWithUserAgent = (0, import_provider_utils29.withUserAgentSuffix)(
|
|
10789
10849
|
headers != null ? headers : {},
|
|
10790
10850
|
`ai/${VERSION}`
|
|
10791
10851
|
);
|
|
@@ -10945,7 +11005,7 @@ function toImageModelV3File(dataContent) {
|
|
|
10945
11005
|
if (typeof dataContent === "string" && dataContent.startsWith("data:")) {
|
|
10946
11006
|
const { mediaType: dataUrlMediaType, base64Content } = splitDataUrl(dataContent);
|
|
10947
11007
|
if (base64Content != null) {
|
|
10948
|
-
const uint8Data2 = (0,
|
|
11008
|
+
const uint8Data2 = (0, import_provider_utils29.convertBase64ToUint8Array)(base64Content);
|
|
10949
11009
|
return {
|
|
10950
11010
|
type: "file",
|
|
10951
11011
|
data: uint8Data2,
|
|
@@ -10971,11 +11031,11 @@ function toImageModelV3File(dataContent) {
|
|
|
10971
11031
|
var experimental_generateImage = generateImage;
|
|
10972
11032
|
|
|
10973
11033
|
// src/generate-object/generate-object.ts
|
|
10974
|
-
var
|
|
11034
|
+
var import_provider_utils32 = require("@ai-sdk/provider-utils");
|
|
10975
11035
|
|
|
10976
11036
|
// src/generate-object/output-strategy.ts
|
|
10977
11037
|
var import_provider32 = require("@ai-sdk/provider");
|
|
10978
|
-
var
|
|
11038
|
+
var import_provider_utils30 = require("@ai-sdk/provider-utils");
|
|
10979
11039
|
var noSchemaOutputStrategy = {
|
|
10980
11040
|
type: "no-schema",
|
|
10981
11041
|
jsonSchema: async () => void 0,
|
|
@@ -11014,7 +11074,7 @@ var objectOutputStrategy = (schema) => ({
|
|
|
11014
11074
|
};
|
|
11015
11075
|
},
|
|
11016
11076
|
async validateFinalResult(value) {
|
|
11017
|
-
return (0,
|
|
11077
|
+
return (0, import_provider_utils30.safeValidateTypes)({ value, schema });
|
|
11018
11078
|
},
|
|
11019
11079
|
createElementStream() {
|
|
11020
11080
|
throw new import_provider32.UnsupportedFunctionalityError({
|
|
@@ -11060,7 +11120,7 @@ var arrayOutputStrategy = (schema) => {
|
|
|
11060
11120
|
const resultArray = [];
|
|
11061
11121
|
for (let i = 0; i < inputArray.length; i++) {
|
|
11062
11122
|
const element = inputArray[i];
|
|
11063
|
-
const result = await (0,
|
|
11123
|
+
const result = await (0, import_provider_utils30.safeValidateTypes)({ value: element, schema });
|
|
11064
11124
|
if (i === inputArray.length - 1 && !isFinalDelta) {
|
|
11065
11125
|
continue;
|
|
11066
11126
|
}
|
|
@@ -11102,7 +11162,7 @@ var arrayOutputStrategy = (schema) => {
|
|
|
11102
11162
|
const inputArray = value.elements;
|
|
11103
11163
|
const resultArray = [];
|
|
11104
11164
|
for (const element of inputArray) {
|
|
11105
|
-
const result = await (0,
|
|
11165
|
+
const result = await (0, import_provider_utils30.safeValidateTypes)({ value: element, schema });
|
|
11106
11166
|
if (!result.success) {
|
|
11107
11167
|
return result;
|
|
11108
11168
|
}
|
|
@@ -11221,9 +11281,9 @@ function getOutputStrategy({
|
|
|
11221
11281
|
}) {
|
|
11222
11282
|
switch (output) {
|
|
11223
11283
|
case "object":
|
|
11224
|
-
return objectOutputStrategy((0,
|
|
11284
|
+
return objectOutputStrategy((0, import_provider_utils30.asSchema)(schema));
|
|
11225
11285
|
case "array":
|
|
11226
|
-
return arrayOutputStrategy((0,
|
|
11286
|
+
return arrayOutputStrategy((0, import_provider_utils30.asSchema)(schema));
|
|
11227
11287
|
case "enum":
|
|
11228
11288
|
return enumOutputStrategy(enumValues);
|
|
11229
11289
|
case "no-schema":
|
|
@@ -11237,9 +11297,9 @@ function getOutputStrategy({
|
|
|
11237
11297
|
|
|
11238
11298
|
// src/generate-object/parse-and-validate-object-result.ts
|
|
11239
11299
|
var import_provider33 = require("@ai-sdk/provider");
|
|
11240
|
-
var
|
|
11300
|
+
var import_provider_utils31 = require("@ai-sdk/provider-utils");
|
|
11241
11301
|
async function parseAndValidateObjectResult(result, outputStrategy, context2) {
|
|
11242
|
-
const parseResult = await (0,
|
|
11302
|
+
const parseResult = await (0, import_provider_utils31.safeParseJSON)({ text: result });
|
|
11243
11303
|
if (!parseResult.success) {
|
|
11244
11304
|
throw new NoObjectGeneratedError({
|
|
11245
11305
|
message: "No object generated: could not parse the response.",
|
|
@@ -11411,7 +11471,7 @@ function validateObjectGenerationInput({
|
|
|
11411
11471
|
}
|
|
11412
11472
|
|
|
11413
11473
|
// src/generate-object/generate-object.ts
|
|
11414
|
-
var originalGenerateId3 = (0,
|
|
11474
|
+
var originalGenerateId3 = (0, import_provider_utils32.createIdGenerator)({ prefix: "aiobj", size: 24 });
|
|
11415
11475
|
async function generateObject(options) {
|
|
11416
11476
|
const {
|
|
11417
11477
|
model: modelArg,
|
|
@@ -11457,7 +11517,7 @@ async function generateObject(options) {
|
|
|
11457
11517
|
enumValues
|
|
11458
11518
|
});
|
|
11459
11519
|
const callSettings = prepareCallSettings(settings);
|
|
11460
|
-
const headersWithUserAgent = (0,
|
|
11520
|
+
const headersWithUserAgent = (0, import_provider_utils32.withUserAgentSuffix)(
|
|
11461
11521
|
headers != null ? headers : {},
|
|
11462
11522
|
`ai/${VERSION}`
|
|
11463
11523
|
);
|
|
@@ -11685,7 +11745,7 @@ var DefaultGenerateObjectResult = class {
|
|
|
11685
11745
|
};
|
|
11686
11746
|
|
|
11687
11747
|
// src/generate-object/stream-object.ts
|
|
11688
|
-
var
|
|
11748
|
+
var import_provider_utils34 = require("@ai-sdk/provider-utils");
|
|
11689
11749
|
|
|
11690
11750
|
// src/util/cosine-similarity.ts
|
|
11691
11751
|
function cosineSimilarity(vector1, vector2) {
|
|
@@ -11733,41 +11793,6 @@ function getTextFromDataUrl(dataUrl) {
|
|
|
11733
11793
|
}
|
|
11734
11794
|
}
|
|
11735
11795
|
|
|
11736
|
-
// src/util/is-deep-equal-data.ts
|
|
11737
|
-
function isDeepEqualData(obj1, obj2) {
|
|
11738
|
-
if (obj1 === obj2)
|
|
11739
|
-
return true;
|
|
11740
|
-
if (obj1 == null || obj2 == null)
|
|
11741
|
-
return false;
|
|
11742
|
-
if (typeof obj1 !== "object" && typeof obj2 !== "object")
|
|
11743
|
-
return obj1 === obj2;
|
|
11744
|
-
if (obj1.constructor !== obj2.constructor)
|
|
11745
|
-
return false;
|
|
11746
|
-
if (obj1 instanceof Date && obj2 instanceof Date) {
|
|
11747
|
-
return obj1.getTime() === obj2.getTime();
|
|
11748
|
-
}
|
|
11749
|
-
if (Array.isArray(obj1)) {
|
|
11750
|
-
if (obj1.length !== obj2.length)
|
|
11751
|
-
return false;
|
|
11752
|
-
for (let i = 0; i < obj1.length; i++) {
|
|
11753
|
-
if (!isDeepEqualData(obj1[i], obj2[i]))
|
|
11754
|
-
return false;
|
|
11755
|
-
}
|
|
11756
|
-
return true;
|
|
11757
|
-
}
|
|
11758
|
-
const keys1 = Object.keys(obj1);
|
|
11759
|
-
const keys2 = Object.keys(obj2);
|
|
11760
|
-
if (keys1.length !== keys2.length)
|
|
11761
|
-
return false;
|
|
11762
|
-
for (const key of keys1) {
|
|
11763
|
-
if (!keys2.includes(key))
|
|
11764
|
-
return false;
|
|
11765
|
-
if (!isDeepEqualData(obj1[key], obj2[key]))
|
|
11766
|
-
return false;
|
|
11767
|
-
}
|
|
11768
|
-
return true;
|
|
11769
|
-
}
|
|
11770
|
-
|
|
11771
11796
|
// src/util/serial-job-executor.ts
|
|
11772
11797
|
var SerialJobExecutor = class {
|
|
11773
11798
|
constructor() {
|
|
@@ -11801,7 +11826,7 @@ var SerialJobExecutor = class {
|
|
|
11801
11826
|
};
|
|
11802
11827
|
|
|
11803
11828
|
// src/util/simulate-readable-stream.ts
|
|
11804
|
-
var
|
|
11829
|
+
var import_provider_utils33 = require("@ai-sdk/provider-utils");
|
|
11805
11830
|
function simulateReadableStream({
|
|
11806
11831
|
chunks,
|
|
11807
11832
|
initialDelayInMs = 0,
|
|
@@ -11809,7 +11834,7 @@ function simulateReadableStream({
|
|
|
11809
11834
|
_internal
|
|
11810
11835
|
}) {
|
|
11811
11836
|
var _a23;
|
|
11812
|
-
const delay = (_a23 = _internal == null ? void 0 : _internal.delay) != null ? _a23 :
|
|
11837
|
+
const delay = (_a23 = _internal == null ? void 0 : _internal.delay) != null ? _a23 : import_provider_utils33.delay;
|
|
11813
11838
|
let index = 0;
|
|
11814
11839
|
return new ReadableStream({
|
|
11815
11840
|
async pull(controller) {
|
|
@@ -11824,7 +11849,7 @@ function simulateReadableStream({
|
|
|
11824
11849
|
}
|
|
11825
11850
|
|
|
11826
11851
|
// src/generate-object/stream-object.ts
|
|
11827
|
-
var originalGenerateId4 = (0,
|
|
11852
|
+
var originalGenerateId4 = (0, import_provider_utils34.createIdGenerator)({ prefix: "aiobj", size: 24 });
|
|
11828
11853
|
async function markPromiseAsHandled(promise) {
|
|
11829
11854
|
try {
|
|
11830
11855
|
await promise;
|
|
@@ -11923,13 +11948,13 @@ var DefaultStreamObjectResult = class {
|
|
|
11923
11948
|
currentDate,
|
|
11924
11949
|
now: now2
|
|
11925
11950
|
}) {
|
|
11926
|
-
this._object = new
|
|
11927
|
-
this._usage = new
|
|
11928
|
-
this._providerMetadata = new
|
|
11929
|
-
this._warnings = new
|
|
11930
|
-
this._request = new
|
|
11931
|
-
this._response = new
|
|
11932
|
-
this._finishReason = new
|
|
11951
|
+
this._object = new import_provider_utils34.DelayedPromise();
|
|
11952
|
+
this._usage = new import_provider_utils34.DelayedPromise();
|
|
11953
|
+
this._providerMetadata = new import_provider_utils34.DelayedPromise();
|
|
11954
|
+
this._warnings = new import_provider_utils34.DelayedPromise();
|
|
11955
|
+
this._request = new import_provider_utils34.DelayedPromise();
|
|
11956
|
+
this._response = new import_provider_utils34.DelayedPromise();
|
|
11957
|
+
this._finishReason = new import_provider_utils34.DelayedPromise();
|
|
11933
11958
|
const model = resolveLanguageModel(modelArg);
|
|
11934
11959
|
const { maxRetries, retry } = prepareRetries({
|
|
11935
11960
|
maxRetries: maxRetriesArg,
|
|
@@ -12407,7 +12432,7 @@ var DefaultStreamObjectResult = class {
|
|
|
12407
12432
|
};
|
|
12408
12433
|
|
|
12409
12434
|
// src/generate-speech/generate-speech.ts
|
|
12410
|
-
var
|
|
12435
|
+
var import_provider_utils35 = require("@ai-sdk/provider-utils");
|
|
12411
12436
|
|
|
12412
12437
|
// src/generate-speech/generated-audio-file.ts
|
|
12413
12438
|
var DefaultGeneratedAudioFile = class extends DefaultGeneratedFile {
|
|
@@ -12453,7 +12478,7 @@ async function generateSpeech({
|
|
|
12453
12478
|
if (!resolvedModel) {
|
|
12454
12479
|
throw new Error("Model could not be resolved");
|
|
12455
12480
|
}
|
|
12456
|
-
const headersWithUserAgent = (0,
|
|
12481
|
+
const headersWithUserAgent = (0, import_provider_utils35.withUserAgentSuffix)(
|
|
12457
12482
|
headers != null ? headers : {},
|
|
12458
12483
|
`ai/${VERSION}`
|
|
12459
12484
|
);
|
|
@@ -12608,7 +12633,7 @@ function pruneMessages({
|
|
|
12608
12633
|
}
|
|
12609
12634
|
|
|
12610
12635
|
// src/generate-text/smooth-stream.ts
|
|
12611
|
-
var
|
|
12636
|
+
var import_provider_utils36 = require("@ai-sdk/provider-utils");
|
|
12612
12637
|
var import_provider34 = require("@ai-sdk/provider");
|
|
12613
12638
|
var CHUNKING_REGEXPS = {
|
|
12614
12639
|
word: /\S+\s+/m,
|
|
@@ -12620,7 +12645,7 @@ function isDocumentHidden() {
|
|
|
12620
12645
|
function smoothStream({
|
|
12621
12646
|
delayInMs = 10,
|
|
12622
12647
|
chunking = "word",
|
|
12623
|
-
_internal: { delay =
|
|
12648
|
+
_internal: { delay = import_provider_utils36.delay } = {}
|
|
12624
12649
|
} = {}) {
|
|
12625
12650
|
let detectChunk;
|
|
12626
12651
|
if (chunking != null && typeof chunking === "object" && "segment" in chunking && typeof chunking.segment === "function") {
|
|
@@ -12709,7 +12734,7 @@ function smoothStream({
|
|
|
12709
12734
|
}
|
|
12710
12735
|
|
|
12711
12736
|
// src/generate-video/generate-video.ts
|
|
12712
|
-
var
|
|
12737
|
+
var import_provider_utils37 = require("@ai-sdk/provider-utils");
|
|
12713
12738
|
var defaultDownload = createDownload();
|
|
12714
12739
|
async function experimental_generateVideo({
|
|
12715
12740
|
model: modelArg,
|
|
@@ -12732,7 +12757,7 @@ async function experimental_generateVideo({
|
|
|
12732
12757
|
}) {
|
|
12733
12758
|
var _a23, _b;
|
|
12734
12759
|
const model = resolveVideoModel(modelArg);
|
|
12735
|
-
const headersWithUserAgent = (0,
|
|
12760
|
+
const headersWithUserAgent = (0, import_provider_utils37.withUserAgentSuffix)(
|
|
12736
12761
|
headers != null ? headers : {},
|
|
12737
12762
|
`ai/${VERSION}`
|
|
12738
12763
|
);
|
|
@@ -12917,14 +12942,14 @@ function normalizeImageData(dataContent, { restrictToImages = true } = {}) {
|
|
|
12917
12942
|
}
|
|
12918
12943
|
if (dataContent.startsWith("data:")) {
|
|
12919
12944
|
const { mediaType, base64Content } = splitDataUrl(dataContent);
|
|
12920
|
-
const data = (0,
|
|
12945
|
+
const data = (0, import_provider_utils37.convertBase64ToUint8Array)(base64Content != null ? base64Content : "");
|
|
12921
12946
|
return {
|
|
12922
12947
|
type: "file",
|
|
12923
12948
|
mediaType: mediaType != null ? mediaType : detectFileMediaType(data, restrictToImages),
|
|
12924
12949
|
data
|
|
12925
12950
|
};
|
|
12926
12951
|
}
|
|
12927
|
-
const bytes = (0,
|
|
12952
|
+
const bytes = (0, import_provider_utils37.convertBase64ToUint8Array)(dataContent);
|
|
12928
12953
|
return {
|
|
12929
12954
|
type: "file",
|
|
12930
12955
|
mediaType: detectFileMediaType(bytes, restrictToImages),
|
|
@@ -13465,7 +13490,7 @@ var doWrap = ({
|
|
|
13465
13490
|
};
|
|
13466
13491
|
|
|
13467
13492
|
// src/middleware/wrap-embedding-model.ts
|
|
13468
|
-
var
|
|
13493
|
+
var import_provider_utils38 = require("@ai-sdk/provider-utils");
|
|
13469
13494
|
var wrapEmbeddingModel = ({
|
|
13470
13495
|
model,
|
|
13471
13496
|
middleware: middlewareArg,
|
|
@@ -13500,7 +13525,8 @@ var doWrap2 = ({
|
|
|
13500
13525
|
provider: (_a23 = providerId != null ? providerId : overrideProvider == null ? void 0 : overrideProvider({ model })) != null ? _a23 : model.provider,
|
|
13501
13526
|
modelId: (_b = modelId != null ? modelId : overrideModelId == null ? void 0 : overrideModelId({ model })) != null ? _b : model.modelId,
|
|
13502
13527
|
maxEmbeddingsPerCall: (_c = overrideMaxEmbeddingsPerCall == null ? void 0 : overrideMaxEmbeddingsPerCall({ model })) != null ? _c : model.maxEmbeddingsPerCall,
|
|
13503
|
-
[
|
|
13528
|
+
[import_provider_utils38.EXPERIMENTAL_EMBEDDING_MODEL_MAX_INPUT_BYTES_PER_CALL]: getEmbeddingModelMaxInputBytesPerCall(model),
|
|
13529
|
+
[import_provider_utils38.EXPERIMENTAL_EMBEDDING_MODEL_PROVIDER_OPTIONS_TRANSFORMER]: getEmbeddingModelProviderOptionsTransformer(model),
|
|
13504
13530
|
supportsParallelCalls: (_d = overrideSupportsParallelCalls == null ? void 0 : overrideSupportsParallelCalls({ model })) != null ? _d : model.supportsParallelCalls,
|
|
13505
13531
|
async doEmbed(params) {
|
|
13506
13532
|
const transformedParams = await doTransform({ params });
|
|
@@ -14004,7 +14030,7 @@ var DefaultRerankResult = class {
|
|
|
14004
14030
|
};
|
|
14005
14031
|
|
|
14006
14032
|
// src/transcribe/transcribe.ts
|
|
14007
|
-
var
|
|
14033
|
+
var import_provider_utils39 = require("@ai-sdk/provider-utils");
|
|
14008
14034
|
var defaultDownload2 = createDownload();
|
|
14009
14035
|
async function transcribe({
|
|
14010
14036
|
model,
|
|
@@ -14023,7 +14049,7 @@ async function transcribe({
|
|
|
14023
14049
|
maxRetries: maxRetriesArg,
|
|
14024
14050
|
abortSignal
|
|
14025
14051
|
});
|
|
14026
|
-
const headersWithUserAgent = (0,
|
|
14052
|
+
const headersWithUserAgent = (0, import_provider_utils39.withUserAgentSuffix)(
|
|
14027
14053
|
headers != null ? headers : {},
|
|
14028
14054
|
`ai/${VERSION}`
|
|
14029
14055
|
);
|
|
@@ -14075,7 +14101,7 @@ var DefaultTranscriptionResult = class {
|
|
|
14075
14101
|
};
|
|
14076
14102
|
|
|
14077
14103
|
// src/ui/call-completion-api.ts
|
|
14078
|
-
var
|
|
14104
|
+
var import_provider_utils40 = require("@ai-sdk/provider-utils");
|
|
14079
14105
|
|
|
14080
14106
|
// src/ui/process-text-stream.ts
|
|
14081
14107
|
async function processTextStream({
|
|
@@ -14123,13 +14149,13 @@ async function callCompletionApi({
|
|
|
14123
14149
|
...body
|
|
14124
14150
|
}),
|
|
14125
14151
|
credentials,
|
|
14126
|
-
headers: (0,
|
|
14152
|
+
headers: (0, import_provider_utils40.withUserAgentSuffix)(
|
|
14127
14153
|
{
|
|
14128
14154
|
"Content-Type": "application/json",
|
|
14129
14155
|
...headers
|
|
14130
14156
|
},
|
|
14131
14157
|
`ai-sdk/${VERSION}`,
|
|
14132
|
-
(0,
|
|
14158
|
+
(0, import_provider_utils40.getRuntimeEnvironmentUserAgent)()
|
|
14133
14159
|
),
|
|
14134
14160
|
signal: abortController.signal
|
|
14135
14161
|
}).catch((err) => {
|
|
@@ -14157,7 +14183,7 @@ async function callCompletionApi({
|
|
|
14157
14183
|
}
|
|
14158
14184
|
case "data": {
|
|
14159
14185
|
await consumeStream({
|
|
14160
|
-
stream: (0,
|
|
14186
|
+
stream: (0, import_provider_utils40.parseJsonEventStream)({
|
|
14161
14187
|
stream: response.body,
|
|
14162
14188
|
schema: uiMessageChunkSchema
|
|
14163
14189
|
}).pipeThrough(
|
|
@@ -14209,7 +14235,7 @@ async function callCompletionApi({
|
|
|
14209
14235
|
}
|
|
14210
14236
|
|
|
14211
14237
|
// src/ui/chat.ts
|
|
14212
|
-
var
|
|
14238
|
+
var import_provider_utils43 = require("@ai-sdk/provider-utils");
|
|
14213
14239
|
|
|
14214
14240
|
// src/ui/convert-file-list-to-file-ui-parts.ts
|
|
14215
14241
|
async function convertFileListToFileUIParts(files) {
|
|
@@ -14242,10 +14268,10 @@ async function convertFileListToFileUIParts(files) {
|
|
|
14242
14268
|
}
|
|
14243
14269
|
|
|
14244
14270
|
// src/ui/default-chat-transport.ts
|
|
14245
|
-
var
|
|
14271
|
+
var import_provider_utils42 = require("@ai-sdk/provider-utils");
|
|
14246
14272
|
|
|
14247
14273
|
// src/ui/http-chat-transport.ts
|
|
14248
|
-
var
|
|
14274
|
+
var import_provider_utils41 = require("@ai-sdk/provider-utils");
|
|
14249
14275
|
var HttpChatTransport = class {
|
|
14250
14276
|
constructor({
|
|
14251
14277
|
api = "/api/chat",
|
|
@@ -14269,12 +14295,12 @@ var HttpChatTransport = class {
|
|
|
14269
14295
|
...options
|
|
14270
14296
|
}) {
|
|
14271
14297
|
var _a23, _b, _c, _d, _e;
|
|
14272
|
-
const resolvedBody = await (0,
|
|
14273
|
-
const resolvedHeaders = await (0,
|
|
14274
|
-
const resolvedCredentials = await (0,
|
|
14298
|
+
const resolvedBody = await (0, import_provider_utils41.resolve)(this.body);
|
|
14299
|
+
const resolvedHeaders = await (0, import_provider_utils41.resolve)(this.headers);
|
|
14300
|
+
const resolvedCredentials = await (0, import_provider_utils41.resolve)(this.credentials);
|
|
14275
14301
|
const baseHeaders = {
|
|
14276
|
-
...(0,
|
|
14277
|
-
...(0,
|
|
14302
|
+
...(0, import_provider_utils41.normalizeHeaders)(resolvedHeaders),
|
|
14303
|
+
...(0, import_provider_utils41.normalizeHeaders)(options.headers)
|
|
14278
14304
|
};
|
|
14279
14305
|
const preparedRequest = await ((_a23 = this.prepareSendMessagesRequest) == null ? void 0 : _a23.call(this, {
|
|
14280
14306
|
api: this.api,
|
|
@@ -14288,7 +14314,7 @@ var HttpChatTransport = class {
|
|
|
14288
14314
|
messageId: options.messageId
|
|
14289
14315
|
}));
|
|
14290
14316
|
const api = (_b = preparedRequest == null ? void 0 : preparedRequest.api) != null ? _b : this.api;
|
|
14291
|
-
const headers = (preparedRequest == null ? void 0 : preparedRequest.headers) !== void 0 ? (0,
|
|
14317
|
+
const headers = (preparedRequest == null ? void 0 : preparedRequest.headers) !== void 0 ? (0, import_provider_utils41.normalizeHeaders)(preparedRequest.headers) : baseHeaders;
|
|
14292
14318
|
const body = (preparedRequest == null ? void 0 : preparedRequest.body) !== void 0 ? preparedRequest.body : {
|
|
14293
14319
|
...resolvedBody,
|
|
14294
14320
|
...options.body,
|
|
@@ -14321,12 +14347,12 @@ var HttpChatTransport = class {
|
|
|
14321
14347
|
}
|
|
14322
14348
|
async reconnectToStream(options) {
|
|
14323
14349
|
var _a23, _b, _c, _d, _e;
|
|
14324
|
-
const resolvedBody = await (0,
|
|
14325
|
-
const resolvedHeaders = await (0,
|
|
14326
|
-
const resolvedCredentials = await (0,
|
|
14350
|
+
const resolvedBody = await (0, import_provider_utils41.resolve)(this.body);
|
|
14351
|
+
const resolvedHeaders = await (0, import_provider_utils41.resolve)(this.headers);
|
|
14352
|
+
const resolvedCredentials = await (0, import_provider_utils41.resolve)(this.credentials);
|
|
14327
14353
|
const baseHeaders = {
|
|
14328
|
-
...(0,
|
|
14329
|
-
...(0,
|
|
14354
|
+
...(0, import_provider_utils41.normalizeHeaders)(resolvedHeaders),
|
|
14355
|
+
...(0, import_provider_utils41.normalizeHeaders)(options.headers)
|
|
14330
14356
|
};
|
|
14331
14357
|
const preparedRequest = await ((_a23 = this.prepareReconnectToStreamRequest) == null ? void 0 : _a23.call(this, {
|
|
14332
14358
|
api: this.api,
|
|
@@ -14337,7 +14363,7 @@ var HttpChatTransport = class {
|
|
|
14337
14363
|
requestMetadata: options.metadata
|
|
14338
14364
|
}));
|
|
14339
14365
|
const api = (_b = preparedRequest == null ? void 0 : preparedRequest.api) != null ? _b : `${this.api}/${options.chatId}/stream`;
|
|
14340
|
-
const headers = (preparedRequest == null ? void 0 : preparedRequest.headers) !== void 0 ? (0,
|
|
14366
|
+
const headers = (preparedRequest == null ? void 0 : preparedRequest.headers) !== void 0 ? (0, import_provider_utils41.normalizeHeaders)(preparedRequest.headers) : baseHeaders;
|
|
14341
14367
|
const credentials = (_c = preparedRequest == null ? void 0 : preparedRequest.credentials) != null ? _c : resolvedCredentials;
|
|
14342
14368
|
const fetch2 = (_d = this.fetch) != null ? _d : globalThis.fetch;
|
|
14343
14369
|
const response = await fetch2(api, {
|
|
@@ -14367,7 +14393,7 @@ var DefaultChatTransport = class extends HttpChatTransport {
|
|
|
14367
14393
|
super(options);
|
|
14368
14394
|
}
|
|
14369
14395
|
processResponseStream(stream) {
|
|
14370
|
-
return (0,
|
|
14396
|
+
return (0, import_provider_utils42.parseJsonEventStream)({
|
|
14371
14397
|
stream,
|
|
14372
14398
|
schema: uiMessageChunkSchema
|
|
14373
14399
|
}).pipeThrough(
|
|
@@ -14386,7 +14412,7 @@ var DefaultChatTransport = class extends HttpChatTransport {
|
|
|
14386
14412
|
// src/ui/chat.ts
|
|
14387
14413
|
var AbstractChat = class {
|
|
14388
14414
|
constructor({
|
|
14389
|
-
generateId: generateId2 =
|
|
14415
|
+
generateId: generateId2 = import_provider_utils43.generateId,
|
|
14390
14416
|
id = generateId2(),
|
|
14391
14417
|
transport = new DefaultChatTransport(),
|
|
14392
14418
|
messageMetadataSchema,
|
|
@@ -14410,9 +14436,24 @@ var AbstractChat = class {
|
|
|
14410
14436
|
this.sendMessage = async (message, options) => {
|
|
14411
14437
|
var _a23, _b, _c, _d;
|
|
14412
14438
|
if (message == null) {
|
|
14413
|
-
|
|
14414
|
-
|
|
14415
|
-
messageId
|
|
14439
|
+
let messageId = this.pendingApprovalMessageId;
|
|
14440
|
+
if (messageId == null) {
|
|
14441
|
+
messageId = (_a23 = this.lastMessage) == null ? void 0 : _a23.id;
|
|
14442
|
+
for (let i = this.state.messages.length - 1; i >= 0; i--) {
|
|
14443
|
+
const candidate = this.state.messages[i];
|
|
14444
|
+
if (candidate.role === "assistant" && candidate.parts.some(
|
|
14445
|
+
(part) => isToolUIPart(part) && part.state === "approval-responded"
|
|
14446
|
+
)) {
|
|
14447
|
+
messageId = candidate.id;
|
|
14448
|
+
break;
|
|
14449
|
+
}
|
|
14450
|
+
}
|
|
14451
|
+
}
|
|
14452
|
+
const consumesPendingApproval = messageId != null && messageId === this.pendingApprovalMessageId;
|
|
14453
|
+
const pendingApprovalMessageIndex = consumesPendingApproval ? this.state.messages.findIndex((message2) => message2.id === messageId) : -1;
|
|
14454
|
+
await this.makeRequestForToolApproval({
|
|
14455
|
+
messageId,
|
|
14456
|
+
messageIndex: pendingApprovalMessageIndex,
|
|
14416
14457
|
...options
|
|
14417
14458
|
});
|
|
14418
14459
|
return;
|
|
@@ -14507,16 +14548,24 @@ var AbstractChat = class {
|
|
|
14507
14548
|
options
|
|
14508
14549
|
}) => this.jobExecutor.run(async () => {
|
|
14509
14550
|
const messages = this.state.messages;
|
|
14510
|
-
const lastMessage = messages[messages.length - 1];
|
|
14511
14551
|
const updatePart = (part) => isToolUIPart(part) && part.state === "approval-requested" && part.approval.id === id ? {
|
|
14512
14552
|
...part,
|
|
14513
14553
|
state: "approval-responded",
|
|
14514
14554
|
approval: { ...part.approval, id, approved, reason }
|
|
14515
14555
|
} : part;
|
|
14516
|
-
|
|
14517
|
-
|
|
14518
|
-
|
|
14519
|
-
|
|
14556
|
+
const messageIndex = messages.findIndex(
|
|
14557
|
+
(message) => message.parts.some(
|
|
14558
|
+
(part) => isToolUIPart(part) && part.state === "approval-requested" && part.approval.id === id
|
|
14559
|
+
)
|
|
14560
|
+
);
|
|
14561
|
+
if (messageIndex !== -1) {
|
|
14562
|
+
const message = messages[messageIndex];
|
|
14563
|
+
this.state.replaceMessage(messageIndex, {
|
|
14564
|
+
...message,
|
|
14565
|
+
parts: message.parts.map(updatePart)
|
|
14566
|
+
});
|
|
14567
|
+
this.pendingApprovalMessageId = message.id;
|
|
14568
|
+
}
|
|
14520
14569
|
if (this.activeResponse) {
|
|
14521
14570
|
this.activeResponse.state.message.parts = this.activeResponse.state.message.parts.map(updatePart);
|
|
14522
14571
|
}
|
|
@@ -14524,9 +14573,10 @@ var AbstractChat = class {
|
|
|
14524
14573
|
this.shouldSendAutomatically().then((shouldSend) => {
|
|
14525
14574
|
var _a23;
|
|
14526
14575
|
if (shouldSend) {
|
|
14527
|
-
this.
|
|
14528
|
-
|
|
14529
|
-
messageId
|
|
14576
|
+
const messageId = messageIndex === -1 ? (_a23 = this.lastMessage) == null ? void 0 : _a23.id : messages[messageIndex].id;
|
|
14577
|
+
this.makeRequestForToolApproval({
|
|
14578
|
+
messageId,
|
|
14579
|
+
messageIndex,
|
|
14530
14580
|
...options
|
|
14531
14581
|
});
|
|
14532
14582
|
}
|
|
@@ -14628,6 +14678,25 @@ var AbstractChat = class {
|
|
|
14628
14678
|
}
|
|
14629
14679
|
return result;
|
|
14630
14680
|
}
|
|
14681
|
+
async makeRequestForToolApproval({
|
|
14682
|
+
messageId,
|
|
14683
|
+
messageIndex,
|
|
14684
|
+
...options
|
|
14685
|
+
}) {
|
|
14686
|
+
var _a23, _b;
|
|
14687
|
+
const consumesPendingApproval = messageId != null && messageId === this.pendingApprovalMessageId;
|
|
14688
|
+
if (consumesPendingApproval) {
|
|
14689
|
+
this.pendingApprovalMessageId = void 0;
|
|
14690
|
+
}
|
|
14691
|
+
await this.makeRequest({
|
|
14692
|
+
trigger: "submit-message",
|
|
14693
|
+
messageId,
|
|
14694
|
+
...options
|
|
14695
|
+
});
|
|
14696
|
+
if (consumesPendingApproval && this.status === "error" && this.pendingApprovalMessageId == null) {
|
|
14697
|
+
this.pendingApprovalMessageId = (_b = (_a23 = this.state.messages[messageIndex]) == null ? void 0 : _a23.id) != null ? _b : messageId;
|
|
14698
|
+
}
|
|
14699
|
+
}
|
|
14631
14700
|
async makeRequest({
|
|
14632
14701
|
trigger,
|
|
14633
14702
|
metadata,
|
|
@@ -14694,6 +14763,9 @@ var AbstractChat = class {
|
|
|
14694
14763
|
}
|
|
14695
14764
|
this.setStatus({ status: "submitted", error: void 0 });
|
|
14696
14765
|
const lastMessage = this.lastMessage;
|
|
14766
|
+
const responseMessageIndex = trigger === "submit-message" && messageId != null ? this.state.messages.findIndex((message) => message.id === messageId) : this.state.messages.length - 1;
|
|
14767
|
+
const responseMessage = responseMessageIndex === -1 ? lastMessage : this.state.messages[responseMessageIndex];
|
|
14768
|
+
const usesEarlierAssistantMessage = responseMessageIndex !== -1 && responseMessageIndex < this.state.messages.length - 1 && (responseMessage == null ? void 0 : responseMessage.role) === "assistant";
|
|
14697
14769
|
let isAbort = false;
|
|
14698
14770
|
let isDisconnect = false;
|
|
14699
14771
|
let isError = false;
|
|
@@ -14701,7 +14773,7 @@ var AbstractChat = class {
|
|
|
14701
14773
|
try {
|
|
14702
14774
|
const response = {
|
|
14703
14775
|
state: createStreamingUIMessageState({
|
|
14704
|
-
lastMessage: trigger === "resume-stream" || trigger === "regenerate-message" ? void 0 : this.state.snapshot(
|
|
14776
|
+
lastMessage: trigger === "resume-stream" || trigger === "regenerate-message" ? void 0 : this.state.snapshot(responseMessage),
|
|
14705
14777
|
messageId: this.generateId()
|
|
14706
14778
|
}),
|
|
14707
14779
|
abortController
|
|
@@ -14742,8 +14814,12 @@ var AbstractChat = class {
|
|
|
14742
14814
|
if (updateStatus) {
|
|
14743
14815
|
this.setStatus({ status: "streaming" });
|
|
14744
14816
|
}
|
|
14745
|
-
|
|
14746
|
-
|
|
14817
|
+
if (usesEarlierAssistantMessage) {
|
|
14818
|
+
this.state.replaceMessage(
|
|
14819
|
+
responseMessageIndex,
|
|
14820
|
+
response.state.message
|
|
14821
|
+
);
|
|
14822
|
+
} else if (response.state.message.id === ((_a24 = this.lastMessage) == null ? void 0 : _a24.id)) {
|
|
14747
14823
|
this.state.replaceMessage(
|
|
14748
14824
|
this.state.messages.length - 1,
|
|
14749
14825
|
response.state.message
|