ai 4.0.12 → 4.0.13
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 +6 -0
- package/dist/index.d.mts +73 -29
- package/dist/index.d.ts +73 -29
- package/dist/index.js +254 -176
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +223 -146
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
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 name13 in all)
|
8
|
+
__defProp(target, name13, { get: all[name13], enumerable: true });
|
9
9
|
};
|
10
10
|
var __copyProps = (to, from, except, desc) => {
|
11
11
|
if (from && typeof from === "object" || typeof from === "function") {
|
@@ -20,33 +20,34 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
20
20
|
// streams/index.ts
|
21
21
|
var streams_exports = {};
|
22
22
|
__export(streams_exports, {
|
23
|
-
AISDKError: () =>
|
24
|
-
APICallError: () =>
|
23
|
+
AISDKError: () => import_provider15.AISDKError,
|
24
|
+
APICallError: () => import_provider15.APICallError,
|
25
25
|
AssistantResponse: () => AssistantResponse,
|
26
26
|
DownloadError: () => DownloadError,
|
27
|
-
EmptyResponseBodyError: () =>
|
27
|
+
EmptyResponseBodyError: () => import_provider15.EmptyResponseBodyError,
|
28
28
|
InvalidArgumentError: () => InvalidArgumentError,
|
29
29
|
InvalidDataContentError: () => InvalidDataContentError,
|
30
30
|
InvalidMessageRoleError: () => InvalidMessageRoleError,
|
31
|
-
InvalidPromptError: () =>
|
32
|
-
InvalidResponseDataError: () =>
|
31
|
+
InvalidPromptError: () => import_provider15.InvalidPromptError,
|
32
|
+
InvalidResponseDataError: () => import_provider15.InvalidResponseDataError,
|
33
33
|
InvalidToolArgumentsError: () => InvalidToolArgumentsError,
|
34
|
-
JSONParseError: () =>
|
34
|
+
JSONParseError: () => import_provider15.JSONParseError,
|
35
35
|
LangChainAdapter: () => langchain_adapter_exports,
|
36
36
|
LlamaIndexAdapter: () => llamaindex_adapter_exports,
|
37
|
-
LoadAPIKeyError: () =>
|
37
|
+
LoadAPIKeyError: () => import_provider15.LoadAPIKeyError,
|
38
38
|
MessageConversionError: () => MessageConversionError,
|
39
|
-
NoContentGeneratedError: () =>
|
39
|
+
NoContentGeneratedError: () => import_provider15.NoContentGeneratedError,
|
40
40
|
NoObjectGeneratedError: () => NoObjectGeneratedError,
|
41
|
-
NoSuchModelError: () =>
|
41
|
+
NoSuchModelError: () => import_provider15.NoSuchModelError,
|
42
42
|
NoSuchProviderError: () => NoSuchProviderError,
|
43
43
|
NoSuchToolError: () => NoSuchToolError,
|
44
44
|
Output: () => output_exports,
|
45
45
|
RetryError: () => RetryError,
|
46
46
|
StreamData: () => StreamData,
|
47
|
+
ToolCallRepairError: () => ToolCallRepairError,
|
47
48
|
ToolExecutionError: () => ToolExecutionError,
|
48
|
-
TypeValidationError: () =>
|
49
|
-
UnsupportedFunctionalityError: () =>
|
49
|
+
TypeValidationError: () => import_provider15.TypeValidationError,
|
50
|
+
UnsupportedFunctionalityError: () => import_provider15.UnsupportedFunctionalityError,
|
50
51
|
convertToCoreMessages: () => convertToCoreMessages,
|
51
52
|
cosineSimilarity: () => cosineSimilarity,
|
52
53
|
createDataStream: () => createDataStream,
|
@@ -407,7 +408,7 @@ function getBaseTelemetryAttributes({
|
|
407
408
|
telemetry,
|
408
409
|
headers
|
409
410
|
}) {
|
410
|
-
var
|
411
|
+
var _a13;
|
411
412
|
return {
|
412
413
|
"ai.model.provider": model.provider,
|
413
414
|
"ai.model.id": model.modelId,
|
@@ -417,7 +418,7 @@ function getBaseTelemetryAttributes({
|
|
417
418
|
return attributes;
|
418
419
|
}, {}),
|
419
420
|
// add metadata as attributes:
|
420
|
-
...Object.entries((
|
421
|
+
...Object.entries((_a13 = telemetry == null ? void 0 : telemetry.metadata) != null ? _a13 : {}).reduce(
|
421
422
|
(attributes, [key, value]) => {
|
422
423
|
attributes[`ai.telemetry.metadata.${key}`] = value;
|
423
424
|
return attributes;
|
@@ -442,7 +443,7 @@ var noopTracer = {
|
|
442
443
|
startSpan() {
|
443
444
|
return noopSpan;
|
444
445
|
},
|
445
|
-
startActiveSpan(
|
446
|
+
startActiveSpan(name13, arg1, arg2, arg3) {
|
446
447
|
if (typeof arg1 === "function") {
|
447
448
|
return arg1(noopSpan);
|
448
449
|
}
|
@@ -512,13 +513,13 @@ function getTracer({
|
|
512
513
|
// core/telemetry/record-span.ts
|
513
514
|
var import_api2 = require("@opentelemetry/api");
|
514
515
|
function recordSpan({
|
515
|
-
name:
|
516
|
+
name: name13,
|
516
517
|
tracer,
|
517
518
|
attributes,
|
518
519
|
fn,
|
519
520
|
endWhenDone = true
|
520
521
|
}) {
|
521
|
-
return tracer.startActiveSpan(
|
522
|
+
return tracer.startActiveSpan(name13, { attributes }, async (span) => {
|
522
523
|
try {
|
523
524
|
const result = await fn(span);
|
524
525
|
if (endWhenDone) {
|
@@ -626,14 +627,14 @@ async function embed({
|
|
626
627
|
}),
|
627
628
|
tracer,
|
628
629
|
fn: async (doEmbedSpan) => {
|
629
|
-
var
|
630
|
+
var _a13;
|
630
631
|
const modelResponse = await model.doEmbed({
|
631
632
|
values: [value],
|
632
633
|
abortSignal,
|
633
634
|
headers
|
634
635
|
});
|
635
636
|
const embedding2 = modelResponse.embeddings[0];
|
636
|
-
const usage2 = (
|
637
|
+
const usage2 = (_a13 = modelResponse.usage) != null ? _a13 : { tokens: NaN };
|
637
638
|
doEmbedSpan.setAttributes(
|
638
639
|
selectTelemetryAttributes({
|
639
640
|
telemetry,
|
@@ -743,14 +744,14 @@ async function embedMany({
|
|
743
744
|
}),
|
744
745
|
tracer,
|
745
746
|
fn: async (doEmbedSpan) => {
|
746
|
-
var
|
747
|
+
var _a13;
|
747
748
|
const modelResponse = await model.doEmbed({
|
748
749
|
values,
|
749
750
|
abortSignal,
|
750
751
|
headers
|
751
752
|
});
|
752
753
|
const embeddings3 = modelResponse.embeddings;
|
753
|
-
const usage2 = (
|
754
|
+
const usage2 = (_a13 = modelResponse.usage) != null ? _a13 : { tokens: NaN };
|
754
755
|
doEmbedSpan.setAttributes(
|
755
756
|
selectTelemetryAttributes({
|
756
757
|
telemetry,
|
@@ -802,14 +803,14 @@ async function embedMany({
|
|
802
803
|
}),
|
803
804
|
tracer,
|
804
805
|
fn: async (doEmbedSpan) => {
|
805
|
-
var
|
806
|
+
var _a13;
|
806
807
|
const modelResponse = await model.doEmbed({
|
807
808
|
values: chunk,
|
808
809
|
abortSignal,
|
809
810
|
headers
|
810
811
|
});
|
811
812
|
const embeddings2 = modelResponse.embeddings;
|
812
|
-
const usage2 = (
|
813
|
+
const usage2 = (_a13 = modelResponse.usage) != null ? _a13 : { tokens: NaN };
|
813
814
|
doEmbedSpan.setAttributes(
|
814
815
|
selectTelemetryAttributes({
|
815
816
|
telemetry,
|
@@ -889,7 +890,7 @@ async function download({
|
|
889
890
|
url,
|
890
891
|
fetchImplementation = fetch
|
891
892
|
}) {
|
892
|
-
var
|
893
|
+
var _a13;
|
893
894
|
const urlText = url.toString();
|
894
895
|
try {
|
895
896
|
const response = await fetchImplementation(urlText);
|
@@ -902,7 +903,7 @@ async function download({
|
|
902
903
|
}
|
903
904
|
return {
|
904
905
|
data: new Uint8Array(await response.arrayBuffer()),
|
905
|
-
mimeType: (
|
906
|
+
mimeType: (_a13 = response.headers.get("content-type")) != null ? _a13 : void 0
|
906
907
|
};
|
907
908
|
} catch (error) {
|
908
909
|
if (DownloadError.isInstance(error)) {
|
@@ -962,8 +963,8 @@ var dataContentSchema = import_zod.z.union([
|
|
962
963
|
import_zod.z.custom(
|
963
964
|
// Buffer might not be available in some environments such as CloudFlare:
|
964
965
|
(value) => {
|
965
|
-
var
|
966
|
-
return (_b = (
|
966
|
+
var _a13, _b;
|
967
|
+
return (_b = (_a13 = globalThis.Buffer) == null ? void 0 : _a13.isBuffer(value)) != null ? _b : false;
|
967
968
|
},
|
968
969
|
{ message: "Must be a Buffer" }
|
969
970
|
)
|
@@ -1471,7 +1472,7 @@ function detectSingleMessageCharacteristics(message) {
|
|
1471
1472
|
|
1472
1473
|
// core/prompt/attachments-to-parts.ts
|
1473
1474
|
function attachmentsToParts(attachments) {
|
1474
|
-
var
|
1475
|
+
var _a13, _b, _c;
|
1475
1476
|
const parts = [];
|
1476
1477
|
for (const attachment of attachments) {
|
1477
1478
|
let url;
|
@@ -1483,7 +1484,7 @@ function attachmentsToParts(attachments) {
|
|
1483
1484
|
switch (url.protocol) {
|
1484
1485
|
case "http:":
|
1485
1486
|
case "https:": {
|
1486
|
-
if ((
|
1487
|
+
if ((_a13 = attachment.contentType) == null ? void 0 : _a13.startsWith("image/")) {
|
1487
1488
|
parts.push({ type: "image", image: url });
|
1488
1489
|
} else {
|
1489
1490
|
if (!attachment.contentType) {
|
@@ -1569,8 +1570,8 @@ _a6 = symbol6;
|
|
1569
1570
|
|
1570
1571
|
// core/prompt/convert-to-core-messages.ts
|
1571
1572
|
function convertToCoreMessages(messages, options) {
|
1572
|
-
var
|
1573
|
-
const tools = (
|
1573
|
+
var _a13;
|
1574
|
+
const tools = (_a13 = options == null ? void 0 : options.tools) != null ? _a13 : {};
|
1574
1575
|
const coreMessages = [];
|
1575
1576
|
for (const message of messages) {
|
1576
1577
|
const { role, content, toolInvocations, experimental_attachments } = message;
|
@@ -1852,7 +1853,7 @@ var arrayOutputStrategy = (schema) => {
|
|
1852
1853
|
additionalProperties: false
|
1853
1854
|
},
|
1854
1855
|
validatePartialResult({ value, latestObject, isFirstDelta, isFinalDelta }) {
|
1855
|
-
var
|
1856
|
+
var _a13;
|
1856
1857
|
if (!(0, import_provider10.isJSONObject)(value) || !(0, import_provider10.isJSONArray)(value.elements)) {
|
1857
1858
|
return {
|
1858
1859
|
success: false,
|
@@ -1875,7 +1876,7 @@ var arrayOutputStrategy = (schema) => {
|
|
1875
1876
|
}
|
1876
1877
|
resultArray.push(result.value);
|
1877
1878
|
}
|
1878
|
-
const publishedElementCount = (
|
1879
|
+
const publishedElementCount = (_a13 = latestObject == null ? void 0 : latestObject.length) != null ? _a13 : 0;
|
1879
1880
|
let textDelta = "";
|
1880
1881
|
if (isFirstDelta) {
|
1881
1882
|
textDelta += "[";
|
@@ -2207,7 +2208,7 @@ async function generateObject({
|
|
2207
2208
|
}),
|
2208
2209
|
tracer,
|
2209
2210
|
fn: async (span) => {
|
2210
|
-
var
|
2211
|
+
var _a13, _b;
|
2211
2212
|
if (mode === "auto" || mode == null) {
|
2212
2213
|
mode = model.defaultObjectGenerationMode;
|
2213
2214
|
}
|
@@ -2269,7 +2270,7 @@ async function generateObject({
|
|
2269
2270
|
}),
|
2270
2271
|
tracer,
|
2271
2272
|
fn: async (span2) => {
|
2272
|
-
var
|
2273
|
+
var _a14, _b2, _c, _d, _e, _f;
|
2273
2274
|
const result2 = await model.doGenerate({
|
2274
2275
|
mode: {
|
2275
2276
|
type: "object-json",
|
@@ -2288,7 +2289,7 @@ async function generateObject({
|
|
2288
2289
|
throw new NoObjectGeneratedError();
|
2289
2290
|
}
|
2290
2291
|
const responseData = {
|
2291
|
-
id: (_b2 = (
|
2292
|
+
id: (_b2 = (_a14 = result2.response) == null ? void 0 : _a14.id) != null ? _b2 : generateId3(),
|
2292
2293
|
timestamp: (_d = (_c = result2.response) == null ? void 0 : _c.timestamp) != null ? _d : currentDate(),
|
2293
2294
|
modelId: (_f = (_e = result2.response) == null ? void 0 : _e.modelId) != null ? _f : model.modelId
|
2294
2295
|
};
|
@@ -2323,7 +2324,7 @@ async function generateObject({
|
|
2323
2324
|
rawResponse = generateResult.rawResponse;
|
2324
2325
|
logprobs = generateResult.logprobs;
|
2325
2326
|
resultProviderMetadata = generateResult.providerMetadata;
|
2326
|
-
request = (
|
2327
|
+
request = (_a13 = generateResult.request) != null ? _a13 : {};
|
2327
2328
|
response = generateResult.responseData;
|
2328
2329
|
break;
|
2329
2330
|
}
|
@@ -2369,7 +2370,7 @@ async function generateObject({
|
|
2369
2370
|
}),
|
2370
2371
|
tracer,
|
2371
2372
|
fn: async (span2) => {
|
2372
|
-
var
|
2373
|
+
var _a14, _b2, _c, _d, _e, _f, _g, _h;
|
2373
2374
|
const result2 = await model.doGenerate({
|
2374
2375
|
mode: {
|
2375
2376
|
type: "object-tool",
|
@@ -2387,7 +2388,7 @@ async function generateObject({
|
|
2387
2388
|
abortSignal,
|
2388
2389
|
headers
|
2389
2390
|
});
|
2390
|
-
const objectText = (_b2 = (
|
2391
|
+
const objectText = (_b2 = (_a14 = result2.toolCalls) == null ? void 0 : _a14[0]) == null ? void 0 : _b2.args;
|
2391
2392
|
if (objectText === void 0) {
|
2392
2393
|
throw new NoObjectGeneratedError();
|
2393
2394
|
}
|
@@ -2492,9 +2493,9 @@ var DefaultGenerateObjectResult = class {
|
|
2492
2493
|
this.logprobs = options.logprobs;
|
2493
2494
|
}
|
2494
2495
|
toJsonResponse(init) {
|
2495
|
-
var
|
2496
|
+
var _a13;
|
2496
2497
|
return new Response(JSON.stringify(this.object), {
|
2497
|
-
status: (
|
2498
|
+
status: (_a13 = init == null ? void 0 : init.status) != null ? _a13 : 200,
|
2498
2499
|
headers: prepareResponseHeaders(init == null ? void 0 : init.headers, {
|
2499
2500
|
contentType: "application/json; charset=utf-8"
|
2500
2501
|
})
|
@@ -2529,17 +2530,17 @@ var DelayedPromise = class {
|
|
2529
2530
|
return this.promise;
|
2530
2531
|
}
|
2531
2532
|
resolve(value) {
|
2532
|
-
var
|
2533
|
+
var _a13;
|
2533
2534
|
this.status = { type: "resolved", value };
|
2534
2535
|
if (this.promise) {
|
2535
|
-
(
|
2536
|
+
(_a13 = this._resolve) == null ? void 0 : _a13.call(this, value);
|
2536
2537
|
}
|
2537
2538
|
}
|
2538
2539
|
reject(error) {
|
2539
|
-
var
|
2540
|
+
var _a13;
|
2540
2541
|
this.status = { type: "rejected", error };
|
2541
2542
|
if (this.promise) {
|
2542
|
-
(
|
2543
|
+
(_a13 = this._reject) == null ? void 0 : _a13.call(this, error);
|
2543
2544
|
}
|
2544
2545
|
}
|
2545
2546
|
};
|
@@ -2628,8 +2629,8 @@ function createStitchableStream() {
|
|
2628
2629
|
|
2629
2630
|
// core/util/now.ts
|
2630
2631
|
function now() {
|
2631
|
-
var
|
2632
|
-
return (_b = (
|
2632
|
+
var _a13, _b;
|
2633
|
+
return (_b = (_a13 = globalThis == null ? void 0 : globalThis.performance) == null ? void 0 : _a13.now()) != null ? _b : Date.now();
|
2633
2634
|
}
|
2634
2635
|
|
2635
2636
|
// core/generate-object/stream-object.ts
|
@@ -2918,7 +2919,7 @@ var DefaultStreamObjectResult = class {
|
|
2918
2919
|
const transformedStream = stream.pipeThrough(new TransformStream(transformer)).pipeThrough(
|
2919
2920
|
new TransformStream({
|
2920
2921
|
async transform(chunk, controller) {
|
2921
|
-
var
|
2922
|
+
var _a13, _b, _c;
|
2922
2923
|
if (isFirstChunk) {
|
2923
2924
|
const msToFirstChunk = now2() - startTimestampMs;
|
2924
2925
|
isFirstChunk = false;
|
@@ -2964,7 +2965,7 @@ var DefaultStreamObjectResult = class {
|
|
2964
2965
|
switch (chunk.type) {
|
2965
2966
|
case "response-metadata": {
|
2966
2967
|
response = {
|
2967
|
-
id: (
|
2968
|
+
id: (_a13 = chunk.id) != null ? _a13 : response.id,
|
2968
2969
|
timestamp: (_b = chunk.timestamp) != null ? _b : response.timestamp,
|
2969
2970
|
modelId: (_c = chunk.modelId) != null ? _c : response.modelId
|
2970
2971
|
};
|
@@ -3161,9 +3162,9 @@ var DefaultStreamObjectResult = class {
|
|
3161
3162
|
});
|
3162
3163
|
}
|
3163
3164
|
toTextStreamResponse(init) {
|
3164
|
-
var
|
3165
|
+
var _a13;
|
3165
3166
|
return new Response(this.textStream.pipeThrough(new TextEncoderStream()), {
|
3166
|
-
status: (
|
3167
|
+
status: (_a13 = init == null ? void 0 : init.status) != null ? _a13 : 200,
|
3167
3168
|
headers: prepareResponseHeaders(init == null ? void 0 : init.headers, {
|
3168
3169
|
contentType: "text/plain; charset=utf-8"
|
3169
3170
|
})
|
@@ -3175,7 +3176,7 @@ var DefaultStreamObjectResult = class {
|
|
3175
3176
|
var import_provider_utils8 = require("@ai-sdk/provider-utils");
|
3176
3177
|
|
3177
3178
|
// errors/index.ts
|
3178
|
-
var
|
3179
|
+
var import_provider15 = require("@ai-sdk/provider");
|
3179
3180
|
|
3180
3181
|
// errors/invalid-tool-arguments-error.ts
|
3181
3182
|
var import_provider11 = require("@ai-sdk/provider");
|
@@ -3226,23 +3227,21 @@ var NoSuchToolError = class extends import_provider12.AISDKError {
|
|
3226
3227
|
};
|
3227
3228
|
_a9 = symbol9;
|
3228
3229
|
|
3229
|
-
// errors/tool-
|
3230
|
+
// errors/tool-call-repair-error.ts
|
3230
3231
|
var import_provider13 = require("@ai-sdk/provider");
|
3231
|
-
var name10 = "
|
3232
|
+
var name10 = "AI_ToolCallRepairError";
|
3232
3233
|
var marker10 = `vercel.ai.error.${name10}`;
|
3233
3234
|
var symbol10 = Symbol.for(marker10);
|
3234
3235
|
var _a10;
|
3235
|
-
var
|
3236
|
+
var ToolCallRepairError = class extends import_provider13.AISDKError {
|
3236
3237
|
constructor({
|
3237
|
-
toolArgs,
|
3238
|
-
toolName,
|
3239
3238
|
cause,
|
3240
|
-
|
3239
|
+
originalError,
|
3240
|
+
message = `Error repairing tool call: ${(0, import_provider13.getErrorMessage)(cause)}`
|
3241
3241
|
}) {
|
3242
3242
|
super({ name: name10, message, cause });
|
3243
3243
|
this[_a10] = true;
|
3244
|
-
this.
|
3245
|
-
this.toolName = toolName;
|
3244
|
+
this.originalError = originalError;
|
3246
3245
|
}
|
3247
3246
|
static isInstance(error) {
|
3248
3247
|
return import_provider13.AISDKError.hasMarker(error, marker10);
|
@@ -3250,6 +3249,30 @@ var ToolExecutionError = class extends import_provider13.AISDKError {
|
|
3250
3249
|
};
|
3251
3250
|
_a10 = symbol10;
|
3252
3251
|
|
3252
|
+
// errors/tool-execution-error.ts
|
3253
|
+
var import_provider14 = require("@ai-sdk/provider");
|
3254
|
+
var name11 = "AI_ToolExecutionError";
|
3255
|
+
var marker11 = `vercel.ai.error.${name11}`;
|
3256
|
+
var symbol11 = Symbol.for(marker11);
|
3257
|
+
var _a11;
|
3258
|
+
var ToolExecutionError = class extends import_provider14.AISDKError {
|
3259
|
+
constructor({
|
3260
|
+
toolArgs,
|
3261
|
+
toolName,
|
3262
|
+
cause,
|
3263
|
+
message = `Error executing tool ${toolName}: ${(0, import_provider14.getErrorMessage)(cause)}`
|
3264
|
+
}) {
|
3265
|
+
super({ name: name11, message, cause });
|
3266
|
+
this[_a11] = true;
|
3267
|
+
this.toolArgs = toolArgs;
|
3268
|
+
this.toolName = toolName;
|
3269
|
+
}
|
3270
|
+
static isInstance(error) {
|
3271
|
+
return import_provider14.AISDKError.hasMarker(error, marker11);
|
3272
|
+
}
|
3273
|
+
};
|
3274
|
+
_a11 = symbol11;
|
3275
|
+
|
3253
3276
|
// core/prompt/prepare-tools-and-tool-choice.ts
|
3254
3277
|
var import_ui_utils4 = require("@ai-sdk/ui-utils");
|
3255
3278
|
|
@@ -3271,24 +3294,24 @@ function prepareToolsAndToolChoice({
|
|
3271
3294
|
};
|
3272
3295
|
}
|
3273
3296
|
const filteredTools = activeTools != null ? Object.entries(tools).filter(
|
3274
|
-
([
|
3297
|
+
([name13]) => activeTools.includes(name13)
|
3275
3298
|
) : Object.entries(tools);
|
3276
3299
|
return {
|
3277
|
-
tools: filteredTools.map(([
|
3300
|
+
tools: filteredTools.map(([name13, tool2]) => {
|
3278
3301
|
const toolType = tool2.type;
|
3279
3302
|
switch (toolType) {
|
3280
3303
|
case void 0:
|
3281
3304
|
case "function":
|
3282
3305
|
return {
|
3283
3306
|
type: "function",
|
3284
|
-
name:
|
3307
|
+
name: name13,
|
3285
3308
|
description: tool2.description,
|
3286
3309
|
parameters: (0, import_ui_utils4.asSchema)(tool2.parameters).jsonSchema
|
3287
3310
|
};
|
3288
3311
|
case "provider-defined":
|
3289
3312
|
return {
|
3290
3313
|
type: "provider-defined",
|
3291
|
-
name:
|
3314
|
+
name: name13,
|
3292
3315
|
id: tool2.id,
|
3293
3316
|
args: tool2.args
|
3294
3317
|
};
|
@@ -3318,14 +3341,49 @@ function removeTextAfterLastWhitespace(text2) {
|
|
3318
3341
|
// core/generate-text/parse-tool-call.ts
|
3319
3342
|
var import_provider_utils7 = require("@ai-sdk/provider-utils");
|
3320
3343
|
var import_ui_utils5 = require("@ai-sdk/ui-utils");
|
3321
|
-
function parseToolCall({
|
3344
|
+
async function parseToolCall({
|
3322
3345
|
toolCall,
|
3323
|
-
tools
|
3346
|
+
tools,
|
3347
|
+
repairToolCall,
|
3348
|
+
system,
|
3349
|
+
messages
|
3324
3350
|
}) {
|
3325
|
-
const toolName = toolCall.toolName;
|
3326
3351
|
if (tools == null) {
|
3327
3352
|
throw new NoSuchToolError({ toolName: toolCall.toolName });
|
3328
3353
|
}
|
3354
|
+
try {
|
3355
|
+
return await doParseToolCall({ toolCall, tools });
|
3356
|
+
} catch (error) {
|
3357
|
+
if (repairToolCall == null || !(NoSuchToolError.isInstance(error) || InvalidToolArgumentsError.isInstance(error))) {
|
3358
|
+
throw error;
|
3359
|
+
}
|
3360
|
+
let repairedToolCall = null;
|
3361
|
+
try {
|
3362
|
+
repairedToolCall = await repairToolCall({
|
3363
|
+
toolCall,
|
3364
|
+
tools,
|
3365
|
+
parameterSchema: ({ toolName }) => (0, import_ui_utils5.asSchema)(tools[toolName].parameters).jsonSchema,
|
3366
|
+
system,
|
3367
|
+
messages,
|
3368
|
+
error
|
3369
|
+
});
|
3370
|
+
} catch (repairError) {
|
3371
|
+
throw new ToolCallRepairError({
|
3372
|
+
cause: repairError,
|
3373
|
+
originalError: error
|
3374
|
+
});
|
3375
|
+
}
|
3376
|
+
if (repairedToolCall == null) {
|
3377
|
+
throw error;
|
3378
|
+
}
|
3379
|
+
return await doParseToolCall({ toolCall: repairedToolCall, tools });
|
3380
|
+
}
|
3381
|
+
}
|
3382
|
+
async function doParseToolCall({
|
3383
|
+
toolCall,
|
3384
|
+
tools
|
3385
|
+
}) {
|
3386
|
+
const toolName = toolCall.toolName;
|
3329
3387
|
const tool2 = tools[toolName];
|
3330
3388
|
if (tool2 == null) {
|
3331
3389
|
throw new NoSuchToolError({
|
@@ -3405,6 +3463,7 @@ async function generateText({
|
|
3405
3463
|
experimental_telemetry: telemetry,
|
3406
3464
|
experimental_providerMetadata: providerMetadata,
|
3407
3465
|
experimental_activeTools: activeTools,
|
3466
|
+
experimental_repairToolCall: repairToolCall,
|
3408
3467
|
_internal: {
|
3409
3468
|
generateId: generateId3 = originalGenerateId3,
|
3410
3469
|
currentDate = () => /* @__PURE__ */ new Date()
|
@@ -3412,7 +3471,7 @@ async function generateText({
|
|
3412
3471
|
onStepFinish,
|
3413
3472
|
...settings
|
3414
3473
|
}) {
|
3415
|
-
var
|
3474
|
+
var _a13;
|
3416
3475
|
if (maxSteps < 1) {
|
3417
3476
|
throw new InvalidArgumentError({
|
3418
3477
|
parameter: "maxSteps",
|
@@ -3429,7 +3488,7 @@ async function generateText({
|
|
3429
3488
|
});
|
3430
3489
|
const initialPrompt = standardizePrompt({
|
3431
3490
|
prompt: {
|
3432
|
-
system: (
|
3491
|
+
system: (_a13 = output == null ? void 0 : output.injectIntoSystemPrompt({ system, model })) != null ? _a13 : system,
|
3433
3492
|
prompt,
|
3434
3493
|
messages
|
3435
3494
|
},
|
@@ -3455,7 +3514,7 @@ async function generateText({
|
|
3455
3514
|
}),
|
3456
3515
|
tracer,
|
3457
3516
|
fn: async (span) => {
|
3458
|
-
var
|
3517
|
+
var _a14, _b, _c, _d, _e, _f;
|
3459
3518
|
const mode = {
|
3460
3519
|
type: "regular",
|
3461
3520
|
...prepareToolsAndToolChoice({ tools, toolChoice, activeTools })
|
@@ -3507,8 +3566,8 @@ async function generateText({
|
|
3507
3566
|
"ai.prompt.tools": {
|
3508
3567
|
// convert the language model level tools:
|
3509
3568
|
input: () => {
|
3510
|
-
var
|
3511
|
-
return (
|
3569
|
+
var _a15;
|
3570
|
+
return (_a15 = mode.tools) == null ? void 0 : _a15.map((tool2) => JSON.stringify(tool2));
|
3512
3571
|
}
|
3513
3572
|
},
|
3514
3573
|
"ai.prompt.toolChoice": {
|
@@ -3528,7 +3587,7 @@ async function generateText({
|
|
3528
3587
|
}),
|
3529
3588
|
tracer,
|
3530
3589
|
fn: async (span2) => {
|
3531
|
-
var
|
3590
|
+
var _a15, _b2, _c2, _d2, _e2, _f2;
|
3532
3591
|
const result = await model.doGenerate({
|
3533
3592
|
mode,
|
3534
3593
|
...callSettings,
|
@@ -3540,7 +3599,7 @@ async function generateText({
|
|
3540
3599
|
headers
|
3541
3600
|
});
|
3542
3601
|
const responseData = {
|
3543
|
-
id: (_b2 = (
|
3602
|
+
id: (_b2 = (_a15 = result.response) == null ? void 0 : _a15.id) != null ? _b2 : generateId3(),
|
3544
3603
|
timestamp: (_d2 = (_c2 = result.response) == null ? void 0 : _c2.timestamp) != null ? _d2 : currentDate(),
|
3545
3604
|
modelId: (_f2 = (_e2 = result.response) == null ? void 0 : _e2.modelId) != null ? _f2 : model.modelId
|
3546
3605
|
};
|
@@ -3573,8 +3632,16 @@ async function generateText({
|
|
3573
3632
|
}
|
3574
3633
|
})
|
3575
3634
|
);
|
3576
|
-
currentToolCalls =
|
3577
|
-
(
|
3635
|
+
currentToolCalls = await Promise.all(
|
3636
|
+
((_a14 = currentModelResponse.toolCalls) != null ? _a14 : []).map(
|
3637
|
+
(toolCall) => parseToolCall({
|
3638
|
+
toolCall,
|
3639
|
+
tools,
|
3640
|
+
repairToolCall,
|
3641
|
+
system,
|
3642
|
+
messages: stepInputMessages
|
3643
|
+
})
|
3644
|
+
)
|
3578
3645
|
);
|
3579
3646
|
currentToolResults = tools == null ? [] : await executeTools({
|
3580
3647
|
toolCalls: currentToolCalls,
|
@@ -3778,9 +3845,49 @@ var DefaultGenerateTextResult = class {
|
|
3778
3845
|
}
|
3779
3846
|
};
|
3780
3847
|
|
3781
|
-
// core/generate-text/
|
3848
|
+
// core/generate-text/output.ts
|
3849
|
+
var output_exports = {};
|
3850
|
+
__export(output_exports, {
|
3851
|
+
object: () => object,
|
3852
|
+
text: () => text
|
3853
|
+
});
|
3782
3854
|
var import_provider_utils9 = require("@ai-sdk/provider-utils");
|
3783
|
-
var
|
3855
|
+
var import_ui_utils6 = require("@ai-sdk/ui-utils");
|
3856
|
+
var text = () => ({
|
3857
|
+
type: "text",
|
3858
|
+
responseFormat: () => ({ type: "text" }),
|
3859
|
+
injectIntoSystemPrompt({ system }) {
|
3860
|
+
return system;
|
3861
|
+
},
|
3862
|
+
parseOutput({ text: text2 }) {
|
3863
|
+
return text2;
|
3864
|
+
}
|
3865
|
+
});
|
3866
|
+
var object = ({
|
3867
|
+
schema: inputSchema
|
3868
|
+
}) => {
|
3869
|
+
const schema = (0, import_ui_utils6.asSchema)(inputSchema);
|
3870
|
+
return {
|
3871
|
+
type: "object",
|
3872
|
+
responseFormat: ({ model }) => ({
|
3873
|
+
type: "json",
|
3874
|
+
schema: model.supportsStructuredOutputs ? schema.jsonSchema : void 0
|
3875
|
+
}),
|
3876
|
+
injectIntoSystemPrompt({ system, model }) {
|
3877
|
+
return model.supportsStructuredOutputs ? system : injectJsonInstruction({
|
3878
|
+
prompt: system,
|
3879
|
+
schema: schema.jsonSchema
|
3880
|
+
});
|
3881
|
+
},
|
3882
|
+
parseOutput({ text: text2 }) {
|
3883
|
+
return (0, import_provider_utils9.parseJSON)({ text: text2, schema });
|
3884
|
+
}
|
3885
|
+
};
|
3886
|
+
};
|
3887
|
+
|
3888
|
+
// core/generate-text/stream-text.ts
|
3889
|
+
var import_provider_utils10 = require("@ai-sdk/provider-utils");
|
3890
|
+
var import_ui_utils8 = require("@ai-sdk/ui-utils");
|
3784
3891
|
|
3785
3892
|
// core/util/merge-streams.ts
|
3786
3893
|
function mergeStreams(stream1, stream2) {
|
@@ -3871,15 +3978,17 @@ function mergeStreams(stream1, stream2) {
|
|
3871
3978
|
}
|
3872
3979
|
|
3873
3980
|
// core/generate-text/run-tools-transformation.ts
|
3874
|
-
var
|
3981
|
+
var import_ui_utils7 = require("@ai-sdk/ui-utils");
|
3875
3982
|
function runToolsTransformation({
|
3876
3983
|
tools,
|
3877
3984
|
generatorStream,
|
3878
3985
|
toolCallStreaming,
|
3879
3986
|
tracer,
|
3880
3987
|
telemetry,
|
3988
|
+
system,
|
3881
3989
|
messages,
|
3882
|
-
abortSignal
|
3990
|
+
abortSignal,
|
3991
|
+
repairToolCall
|
3883
3992
|
}) {
|
3884
3993
|
let toolResultsStreamController = null;
|
3885
3994
|
const toolResultsStream = new ReadableStream({
|
@@ -3900,7 +4009,7 @@ function runToolsTransformation({
|
|
3900
4009
|
}
|
3901
4010
|
}
|
3902
4011
|
const forwardStream = new TransformStream({
|
3903
|
-
transform(chunk, controller) {
|
4012
|
+
async transform(chunk, controller) {
|
3904
4013
|
const chunkType = chunk.type;
|
3905
4014
|
switch (chunkType) {
|
3906
4015
|
case "text-delta":
|
@@ -3949,13 +4058,16 @@ function runToolsTransformation({
|
|
3949
4058
|
break;
|
3950
4059
|
}
|
3951
4060
|
try {
|
3952
|
-
const toolCall = parseToolCall({
|
4061
|
+
const toolCall = await parseToolCall({
|
3953
4062
|
toolCall: chunk,
|
3954
|
-
tools
|
4063
|
+
tools,
|
4064
|
+
repairToolCall,
|
4065
|
+
system,
|
4066
|
+
messages
|
3955
4067
|
});
|
3956
4068
|
controller.enqueue(toolCall);
|
3957
4069
|
if (tool2.execute != null) {
|
3958
|
-
const toolExecutionId = (0,
|
4070
|
+
const toolExecutionId = (0, import_ui_utils7.generateId)();
|
3959
4071
|
outstandingToolResults.add(toolExecutionId);
|
3960
4072
|
recordSpan({
|
3961
4073
|
name: "ai.toolCall",
|
@@ -4073,7 +4185,7 @@ function runToolsTransformation({
|
|
4073
4185
|
}
|
4074
4186
|
|
4075
4187
|
// core/generate-text/stream-text.ts
|
4076
|
-
var originalGenerateId4 = (0,
|
4188
|
+
var originalGenerateId4 = (0, import_provider_utils10.createIdGenerator)({ prefix: "aitxt", size: 24 });
|
4077
4189
|
function streamText({
|
4078
4190
|
model,
|
4079
4191
|
tools,
|
@@ -4090,6 +4202,7 @@ function streamText({
|
|
4090
4202
|
experimental_providerMetadata: providerMetadata,
|
4091
4203
|
experimental_toolCallStreaming: toolCallStreaming = false,
|
4092
4204
|
experimental_activeTools: activeTools,
|
4205
|
+
experimental_repairToolCall: repairToolCall,
|
4093
4206
|
onChunk,
|
4094
4207
|
onFinish,
|
4095
4208
|
onStepFinish,
|
@@ -4114,6 +4227,7 @@ function streamText({
|
|
4114
4227
|
toolChoice,
|
4115
4228
|
toolCallStreaming,
|
4116
4229
|
activeTools,
|
4230
|
+
repairToolCall,
|
4117
4231
|
maxSteps,
|
4118
4232
|
continueSteps,
|
4119
4233
|
providerMetadata,
|
@@ -4140,6 +4254,7 @@ var DefaultStreamTextResult = class {
|
|
4140
4254
|
toolChoice,
|
4141
4255
|
toolCallStreaming,
|
4142
4256
|
activeTools,
|
4257
|
+
repairToolCall,
|
4143
4258
|
maxSteps,
|
4144
4259
|
continueSteps,
|
4145
4260
|
providerMetadata,
|
@@ -4251,8 +4366,8 @@ var DefaultStreamTextResult = class {
|
|
4251
4366
|
"ai.prompt.tools": {
|
4252
4367
|
// convert the language model level tools:
|
4253
4368
|
input: () => {
|
4254
|
-
var
|
4255
|
-
return (
|
4369
|
+
var _a13;
|
4370
|
+
return (_a13 = mode.tools) == null ? void 0 : _a13.map((tool2) => JSON.stringify(tool2));
|
4256
4371
|
}
|
4257
4372
|
},
|
4258
4373
|
"ai.prompt.toolChoice": {
|
@@ -4294,7 +4409,9 @@ var DefaultStreamTextResult = class {
|
|
4294
4409
|
toolCallStreaming,
|
4295
4410
|
tracer,
|
4296
4411
|
telemetry,
|
4412
|
+
system,
|
4297
4413
|
messages: stepInputMessages,
|
4414
|
+
repairToolCall,
|
4298
4415
|
abortSignal
|
4299
4416
|
});
|
4300
4417
|
const stepRequest = request != null ? request : {};
|
@@ -4335,7 +4452,7 @@ var DefaultStreamTextResult = class {
|
|
4335
4452
|
transformedStream.pipeThrough(
|
4336
4453
|
new TransformStream({
|
4337
4454
|
async transform(chunk, controller) {
|
4338
|
-
var
|
4455
|
+
var _a13, _b, _c;
|
4339
4456
|
if (stepFirstChunk) {
|
4340
4457
|
const msToFirstChunk = now2() - startTimestampMs;
|
4341
4458
|
stepFirstChunk = false;
|
@@ -4389,7 +4506,7 @@ var DefaultStreamTextResult = class {
|
|
4389
4506
|
}
|
4390
4507
|
case "response-metadata": {
|
4391
4508
|
stepResponse = {
|
4392
|
-
id: (
|
4509
|
+
id: (_a13 = chunk.id) != null ? _a13 : stepResponse.id,
|
4393
4510
|
timestamp: (_b = chunk.timestamp) != null ? _b : stepResponse.timestamp,
|
4394
4511
|
modelId: (_c = chunk.modelId) != null ? _c : stepResponse.modelId
|
4395
4512
|
};
|
@@ -4706,7 +4823,7 @@ var DefaultStreamTextResult = class {
|
|
4706
4823
|
});
|
4707
4824
|
}
|
4708
4825
|
toDataStreamInternal({
|
4709
|
-
getErrorMessage:
|
4826
|
+
getErrorMessage: getErrorMessage5 = () => "An error occurred.",
|
4710
4827
|
// mask error messages for safety by default
|
4711
4828
|
sendUsage = true
|
4712
4829
|
} = {}) {
|
@@ -4724,12 +4841,12 @@ var DefaultStreamTextResult = class {
|
|
4724
4841
|
const chunkType = chunk.type;
|
4725
4842
|
switch (chunkType) {
|
4726
4843
|
case "text-delta": {
|
4727
|
-
controller.enqueue((0,
|
4844
|
+
controller.enqueue((0, import_ui_utils8.formatDataStreamPart)("text", chunk.textDelta));
|
4728
4845
|
break;
|
4729
4846
|
}
|
4730
4847
|
case "tool-call-streaming-start": {
|
4731
4848
|
controller.enqueue(
|
4732
|
-
(0,
|
4849
|
+
(0, import_ui_utils8.formatDataStreamPart)("tool_call_streaming_start", {
|
4733
4850
|
toolCallId: chunk.toolCallId,
|
4734
4851
|
toolName: chunk.toolName
|
4735
4852
|
})
|
@@ -4738,7 +4855,7 @@ var DefaultStreamTextResult = class {
|
|
4738
4855
|
}
|
4739
4856
|
case "tool-call-delta": {
|
4740
4857
|
controller.enqueue(
|
4741
|
-
(0,
|
4858
|
+
(0, import_ui_utils8.formatDataStreamPart)("tool_call_delta", {
|
4742
4859
|
toolCallId: chunk.toolCallId,
|
4743
4860
|
argsTextDelta: chunk.argsTextDelta
|
4744
4861
|
})
|
@@ -4747,7 +4864,7 @@ var DefaultStreamTextResult = class {
|
|
4747
4864
|
}
|
4748
4865
|
case "tool-call": {
|
4749
4866
|
controller.enqueue(
|
4750
|
-
(0,
|
4867
|
+
(0, import_ui_utils8.formatDataStreamPart)("tool_call", {
|
4751
4868
|
toolCallId: chunk.toolCallId,
|
4752
4869
|
toolName: chunk.toolName,
|
4753
4870
|
args: chunk.args
|
@@ -4757,7 +4874,7 @@ var DefaultStreamTextResult = class {
|
|
4757
4874
|
}
|
4758
4875
|
case "tool-result": {
|
4759
4876
|
controller.enqueue(
|
4760
|
-
(0,
|
4877
|
+
(0, import_ui_utils8.formatDataStreamPart)("tool_result", {
|
4761
4878
|
toolCallId: chunk.toolCallId,
|
4762
4879
|
result: chunk.result
|
4763
4880
|
})
|
@@ -4766,13 +4883,13 @@ var DefaultStreamTextResult = class {
|
|
4766
4883
|
}
|
4767
4884
|
case "error": {
|
4768
4885
|
controller.enqueue(
|
4769
|
-
(0,
|
4886
|
+
(0, import_ui_utils8.formatDataStreamPart)("error", getErrorMessage5(chunk.error))
|
4770
4887
|
);
|
4771
4888
|
break;
|
4772
4889
|
}
|
4773
4890
|
case "step-finish": {
|
4774
4891
|
controller.enqueue(
|
4775
|
-
(0,
|
4892
|
+
(0, import_ui_utils8.formatDataStreamPart)("finish_step", {
|
4776
4893
|
finishReason: chunk.finishReason,
|
4777
4894
|
usage: sendUsage ? {
|
4778
4895
|
promptTokens: chunk.usage.promptTokens,
|
@@ -4785,7 +4902,7 @@ var DefaultStreamTextResult = class {
|
|
4785
4902
|
}
|
4786
4903
|
case "finish": {
|
4787
4904
|
controller.enqueue(
|
4788
|
-
(0,
|
4905
|
+
(0, import_ui_utils8.formatDataStreamPart)("finish_message", {
|
4789
4906
|
finishReason: chunk.finishReason,
|
4790
4907
|
usage: sendUsage ? {
|
4791
4908
|
promptTokens: chunk.usage.promptTokens,
|
@@ -4809,7 +4926,7 @@ var DefaultStreamTextResult = class {
|
|
4809
4926
|
statusText,
|
4810
4927
|
headers,
|
4811
4928
|
data,
|
4812
|
-
getErrorMessage:
|
4929
|
+
getErrorMessage: getErrorMessage5,
|
4813
4930
|
sendUsage
|
4814
4931
|
} = {}) {
|
4815
4932
|
writeToServerResponse({
|
@@ -4820,7 +4937,7 @@ var DefaultStreamTextResult = class {
|
|
4820
4937
|
contentType: "text/plain; charset=utf-8",
|
4821
4938
|
dataStreamVersion: "v1"
|
4822
4939
|
}),
|
4823
|
-
stream: this.toDataStream({ data, getErrorMessage:
|
4940
|
+
stream: this.toDataStream({ data, getErrorMessage: getErrorMessage5, sendUsage })
|
4824
4941
|
});
|
4825
4942
|
}
|
4826
4943
|
pipeTextStreamToResponse(response, init) {
|
@@ -4854,11 +4971,11 @@ var DefaultStreamTextResult = class {
|
|
4854
4971
|
status,
|
4855
4972
|
statusText,
|
4856
4973
|
data,
|
4857
|
-
getErrorMessage:
|
4974
|
+
getErrorMessage: getErrorMessage5,
|
4858
4975
|
sendUsage
|
4859
4976
|
} = {}) {
|
4860
4977
|
return new Response(
|
4861
|
-
this.toDataStream({ data, getErrorMessage:
|
4978
|
+
this.toDataStream({ data, getErrorMessage: getErrorMessage5, sendUsage }),
|
4862
4979
|
{
|
4863
4980
|
status,
|
4864
4981
|
statusText,
|
@@ -4870,9 +4987,9 @@ var DefaultStreamTextResult = class {
|
|
4870
4987
|
);
|
4871
4988
|
}
|
4872
4989
|
toTextStreamResponse(init) {
|
4873
|
-
var
|
4990
|
+
var _a13;
|
4874
4991
|
return new Response(this.textStream.pipeThrough(new TextEncoderStream()), {
|
4875
|
-
status: (
|
4992
|
+
status: (_a13 = init == null ? void 0 : init.status) != null ? _a13 : 200,
|
4876
4993
|
headers: prepareResponseHeaders(init == null ? void 0 : init.headers, {
|
4877
4994
|
contentType: "text/plain; charset=utf-8"
|
4878
4995
|
})
|
@@ -4880,46 +4997,6 @@ var DefaultStreamTextResult = class {
|
|
4880
4997
|
}
|
4881
4998
|
};
|
4882
4999
|
|
4883
|
-
// core/generate-text/output.ts
|
4884
|
-
var output_exports = {};
|
4885
|
-
__export(output_exports, {
|
4886
|
-
object: () => object,
|
4887
|
-
text: () => text
|
4888
|
-
});
|
4889
|
-
var import_provider_utils10 = require("@ai-sdk/provider-utils");
|
4890
|
-
var import_ui_utils8 = require("@ai-sdk/ui-utils");
|
4891
|
-
var text = () => ({
|
4892
|
-
type: "text",
|
4893
|
-
responseFormat: () => ({ type: "text" }),
|
4894
|
-
injectIntoSystemPrompt({ system }) {
|
4895
|
-
return system;
|
4896
|
-
},
|
4897
|
-
parseOutput({ text: text2 }) {
|
4898
|
-
return text2;
|
4899
|
-
}
|
4900
|
-
});
|
4901
|
-
var object = ({
|
4902
|
-
schema: inputSchema
|
4903
|
-
}) => {
|
4904
|
-
const schema = (0, import_ui_utils8.asSchema)(inputSchema);
|
4905
|
-
return {
|
4906
|
-
type: "object",
|
4907
|
-
responseFormat: ({ model }) => ({
|
4908
|
-
type: "json",
|
4909
|
-
schema: model.supportsStructuredOutputs ? schema.jsonSchema : void 0
|
4910
|
-
}),
|
4911
|
-
injectIntoSystemPrompt({ system, model }) {
|
4912
|
-
return model.supportsStructuredOutputs ? system : injectJsonInstruction({
|
4913
|
-
prompt: system,
|
4914
|
-
schema: schema.jsonSchema
|
4915
|
-
});
|
4916
|
-
},
|
4917
|
-
parseOutput({ text: text2 }) {
|
4918
|
-
return (0, import_provider_utils10.parseJSON)({ text: text2, schema });
|
4919
|
-
}
|
4920
|
-
};
|
4921
|
-
};
|
4922
|
-
|
4923
5000
|
// core/middleware/wrap-language-model.ts
|
4924
5001
|
var experimental_wrapLanguageModel = ({
|
4925
5002
|
model,
|
@@ -4955,7 +5032,7 @@ var experimental_wrapLanguageModel = ({
|
|
4955
5032
|
};
|
4956
5033
|
|
4957
5034
|
// core/registry/custom-provider.ts
|
4958
|
-
var
|
5035
|
+
var import_provider16 = require("@ai-sdk/provider");
|
4959
5036
|
function experimental_customProvider({
|
4960
5037
|
languageModels,
|
4961
5038
|
textEmbeddingModels,
|
@@ -4969,7 +5046,7 @@ function experimental_customProvider({
|
|
4969
5046
|
if (fallbackProvider) {
|
4970
5047
|
return fallbackProvider.languageModel(modelId);
|
4971
5048
|
}
|
4972
|
-
throw new
|
5049
|
+
throw new import_provider16.NoSuchModelError({ modelId, modelType: "languageModel" });
|
4973
5050
|
},
|
4974
5051
|
textEmbeddingModel(modelId) {
|
4975
5052
|
if (textEmbeddingModels != null && modelId in textEmbeddingModels) {
|
@@ -4978,18 +5055,18 @@ function experimental_customProvider({
|
|
4978
5055
|
if (fallbackProvider) {
|
4979
5056
|
return fallbackProvider.textEmbeddingModel(modelId);
|
4980
5057
|
}
|
4981
|
-
throw new
|
5058
|
+
throw new import_provider16.NoSuchModelError({ modelId, modelType: "textEmbeddingModel" });
|
4982
5059
|
}
|
4983
5060
|
};
|
4984
5061
|
}
|
4985
5062
|
|
4986
5063
|
// core/registry/no-such-provider-error.ts
|
4987
|
-
var
|
4988
|
-
var
|
4989
|
-
var
|
4990
|
-
var
|
4991
|
-
var
|
4992
|
-
var NoSuchProviderError = class extends
|
5064
|
+
var import_provider17 = require("@ai-sdk/provider");
|
5065
|
+
var name12 = "AI_NoSuchProviderError";
|
5066
|
+
var marker12 = `vercel.ai.error.${name12}`;
|
5067
|
+
var symbol12 = Symbol.for(marker12);
|
5068
|
+
var _a12;
|
5069
|
+
var NoSuchProviderError = class extends import_provider17.NoSuchModelError {
|
4993
5070
|
constructor({
|
4994
5071
|
modelId,
|
4995
5072
|
modelType,
|
@@ -4997,19 +5074,19 @@ var NoSuchProviderError = class extends import_provider16.NoSuchModelError {
|
|
4997
5074
|
availableProviders,
|
4998
5075
|
message = `No such provider: ${providerId} (available providers: ${availableProviders.join()})`
|
4999
5076
|
}) {
|
5000
|
-
super({ errorName:
|
5001
|
-
this[
|
5077
|
+
super({ errorName: name12, modelId, modelType, message });
|
5078
|
+
this[_a12] = true;
|
5002
5079
|
this.providerId = providerId;
|
5003
5080
|
this.availableProviders = availableProviders;
|
5004
5081
|
}
|
5005
5082
|
static isInstance(error) {
|
5006
|
-
return
|
5083
|
+
return import_provider17.AISDKError.hasMarker(error, marker12);
|
5007
5084
|
}
|
5008
5085
|
};
|
5009
|
-
|
5086
|
+
_a12 = symbol12;
|
5010
5087
|
|
5011
5088
|
// core/registry/provider-registry.ts
|
5012
|
-
var
|
5089
|
+
var import_provider18 = require("@ai-sdk/provider");
|
5013
5090
|
function experimental_createProviderRegistry(providers) {
|
5014
5091
|
const registry = new DefaultProviderRegistry();
|
5015
5092
|
for (const [id, provider] of Object.entries(providers)) {
|
@@ -5039,7 +5116,7 @@ var DefaultProviderRegistry = class {
|
|
5039
5116
|
splitId(id, modelType) {
|
5040
5117
|
const index = id.indexOf(":");
|
5041
5118
|
if (index === -1) {
|
5042
|
-
throw new
|
5119
|
+
throw new import_provider18.NoSuchModelError({
|
5043
5120
|
modelId: id,
|
5044
5121
|
modelType,
|
5045
5122
|
message: `Invalid ${modelType} id for registry: ${id} (must be in the format "providerId:modelId")`
|
@@ -5048,21 +5125,21 @@ var DefaultProviderRegistry = class {
|
|
5048
5125
|
return [id.slice(0, index), id.slice(index + 1)];
|
5049
5126
|
}
|
5050
5127
|
languageModel(id) {
|
5051
|
-
var
|
5128
|
+
var _a13, _b;
|
5052
5129
|
const [providerId, modelId] = this.splitId(id, "languageModel");
|
5053
|
-
const model = (_b = (
|
5130
|
+
const model = (_b = (_a13 = this.getProvider(providerId)).languageModel) == null ? void 0 : _b.call(_a13, modelId);
|
5054
5131
|
if (model == null) {
|
5055
|
-
throw new
|
5132
|
+
throw new import_provider18.NoSuchModelError({ modelId: id, modelType: "languageModel" });
|
5056
5133
|
}
|
5057
5134
|
return model;
|
5058
5135
|
}
|
5059
5136
|
textEmbeddingModel(id) {
|
5060
|
-
var
|
5137
|
+
var _a13;
|
5061
5138
|
const [providerId, modelId] = this.splitId(id, "textEmbeddingModel");
|
5062
5139
|
const provider = this.getProvider(providerId);
|
5063
|
-
const model = (
|
5140
|
+
const model = (_a13 = provider.textEmbeddingModel) == null ? void 0 : _a13.call(provider, modelId);
|
5064
5141
|
if (model == null) {
|
5065
|
-
throw new
|
5142
|
+
throw new import_provider18.NoSuchModelError({
|
5066
5143
|
modelId: id,
|
5067
5144
|
modelType: "textEmbeddingModel"
|
5068
5145
|
});
|
@@ -5106,7 +5183,7 @@ var import_ui_utils10 = require("@ai-sdk/ui-utils");
|
|
5106
5183
|
function AssistantResponse({ threadId, messageId }, process2) {
|
5107
5184
|
const stream = new ReadableStream({
|
5108
5185
|
async start(controller) {
|
5109
|
-
var
|
5186
|
+
var _a13;
|
5110
5187
|
const textEncoder = new TextEncoder();
|
5111
5188
|
const sendMessage = (message) => {
|
5112
5189
|
controller.enqueue(
|
@@ -5128,7 +5205,7 @@ function AssistantResponse({ threadId, messageId }, process2) {
|
|
5128
5205
|
);
|
5129
5206
|
};
|
5130
5207
|
const forwardStream = async (stream2) => {
|
5131
|
-
var
|
5208
|
+
var _a14, _b;
|
5132
5209
|
let result = void 0;
|
5133
5210
|
for await (const value of stream2) {
|
5134
5211
|
switch (value.event) {
|
@@ -5145,7 +5222,7 @@ function AssistantResponse({ threadId, messageId }, process2) {
|
|
5145
5222
|
break;
|
5146
5223
|
}
|
5147
5224
|
case "thread.message.delta": {
|
5148
|
-
const content = (
|
5225
|
+
const content = (_a14 = value.data.delta.content) == null ? void 0 : _a14[0];
|
5149
5226
|
if ((content == null ? void 0 : content.type) === "text" && ((_b = content.text) == null ? void 0 : _b.value) != null) {
|
5150
5227
|
controller.enqueue(
|
5151
5228
|
textEncoder.encode(
|
@@ -5179,7 +5256,7 @@ function AssistantResponse({ threadId, messageId }, process2) {
|
|
5179
5256
|
forwardStream
|
5180
5257
|
});
|
5181
5258
|
} catch (error) {
|
5182
|
-
sendError((
|
5259
|
+
sendError((_a13 = error.message) != null ? _a13 : `${error}`);
|
5183
5260
|
} finally {
|
5184
5261
|
controller.close();
|
5185
5262
|
}
|
@@ -5240,7 +5317,7 @@ function toDataStreamInternal(stream, callbacks) {
|
|
5240
5317
|
return stream.pipeThrough(
|
5241
5318
|
new TransformStream({
|
5242
5319
|
transform: async (value, controller) => {
|
5243
|
-
var
|
5320
|
+
var _a13;
|
5244
5321
|
if (typeof value === "string") {
|
5245
5322
|
controller.enqueue(value);
|
5246
5323
|
return;
|
@@ -5248,7 +5325,7 @@ function toDataStreamInternal(stream, callbacks) {
|
|
5248
5325
|
if ("event" in value) {
|
5249
5326
|
if (value.event === "on_chat_model_stream") {
|
5250
5327
|
forwardAIMessageChunk(
|
5251
|
-
(
|
5328
|
+
(_a13 = value.data) == null ? void 0 : _a13.chunk,
|
5252
5329
|
controller
|
5253
5330
|
);
|
5254
5331
|
}
|
@@ -5271,7 +5348,7 @@ function toDataStream(stream, callbacks) {
|
|
5271
5348
|
);
|
5272
5349
|
}
|
5273
5350
|
function toDataStreamResponse(stream, options) {
|
5274
|
-
var
|
5351
|
+
var _a13;
|
5275
5352
|
const dataStream = toDataStreamInternal(
|
5276
5353
|
stream,
|
5277
5354
|
options == null ? void 0 : options.callbacks
|
@@ -5280,7 +5357,7 @@ function toDataStreamResponse(stream, options) {
|
|
5280
5357
|
const init = options == null ? void 0 : options.init;
|
5281
5358
|
const responseStream = data ? mergeStreams(data.stream, dataStream) : dataStream;
|
5282
5359
|
return new Response(responseStream, {
|
5283
|
-
status: (
|
5360
|
+
status: (_a13 = init == null ? void 0 : init.status) != null ? _a13 : 200,
|
5284
5361
|
statusText: init == null ? void 0 : init.statusText,
|
5285
5362
|
headers: prepareResponseHeaders(init == null ? void 0 : init.headers, {
|
5286
5363
|
contentType: "text/plain; charset=utf-8",
|
@@ -5335,14 +5412,14 @@ function toDataStream2(stream, callbacks) {
|
|
5335
5412
|
);
|
5336
5413
|
}
|
5337
5414
|
function toDataStreamResponse2(stream, options = {}) {
|
5338
|
-
var
|
5415
|
+
var _a13;
|
5339
5416
|
const { init, data, callbacks } = options;
|
5340
5417
|
const dataStream = toDataStreamInternal2(stream, callbacks).pipeThrough(
|
5341
5418
|
new TextEncoderStream()
|
5342
5419
|
);
|
5343
5420
|
const responseStream = data ? mergeStreams(data.stream, dataStream) : dataStream;
|
5344
5421
|
return new Response(responseStream, {
|
5345
|
-
status: (
|
5422
|
+
status: (_a13 = init == null ? void 0 : init.status) != null ? _a13 : 200,
|
5346
5423
|
statusText: init == null ? void 0 : init.statusText,
|
5347
5424
|
headers: prepareResponseHeaders(init == null ? void 0 : init.headers, {
|
5348
5425
|
contentType: "text/plain; charset=utf-8",
|
@@ -5459,6 +5536,7 @@ var StreamData = class {
|
|
5459
5536
|
Output,
|
5460
5537
|
RetryError,
|
5461
5538
|
StreamData,
|
5539
|
+
ToolCallRepairError,
|
5462
5540
|
ToolExecutionError,
|
5463
5541
|
TypeValidationError,
|
5464
5542
|
UnsupportedFunctionalityError,
|