ai 4.0.11 → 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 +17 -0
- package/dist/index.d.mts +75 -17
- package/dist/index.d.ts +75 -17
- package/dist/index.js +303 -186
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +271 -156
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -5
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,32 +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
|
-
|
48
|
-
|
47
|
+
ToolCallRepairError: () => ToolCallRepairError,
|
48
|
+
ToolExecutionError: () => ToolExecutionError,
|
49
|
+
TypeValidationError: () => import_provider15.TypeValidationError,
|
50
|
+
UnsupportedFunctionalityError: () => import_provider15.UnsupportedFunctionalityError,
|
49
51
|
convertToCoreMessages: () => convertToCoreMessages,
|
50
52
|
cosineSimilarity: () => cosineSimilarity,
|
51
53
|
createDataStream: () => createDataStream,
|
@@ -406,7 +408,7 @@ function getBaseTelemetryAttributes({
|
|
406
408
|
telemetry,
|
407
409
|
headers
|
408
410
|
}) {
|
409
|
-
var
|
411
|
+
var _a13;
|
410
412
|
return {
|
411
413
|
"ai.model.provider": model.provider,
|
412
414
|
"ai.model.id": model.modelId,
|
@@ -416,7 +418,7 @@ function getBaseTelemetryAttributes({
|
|
416
418
|
return attributes;
|
417
419
|
}, {}),
|
418
420
|
// add metadata as attributes:
|
419
|
-
...Object.entries((
|
421
|
+
...Object.entries((_a13 = telemetry == null ? void 0 : telemetry.metadata) != null ? _a13 : {}).reduce(
|
420
422
|
(attributes, [key, value]) => {
|
421
423
|
attributes[`ai.telemetry.metadata.${key}`] = value;
|
422
424
|
return attributes;
|
@@ -441,7 +443,7 @@ var noopTracer = {
|
|
441
443
|
startSpan() {
|
442
444
|
return noopSpan;
|
443
445
|
},
|
444
|
-
startActiveSpan(
|
446
|
+
startActiveSpan(name13, arg1, arg2, arg3) {
|
445
447
|
if (typeof arg1 === "function") {
|
446
448
|
return arg1(noopSpan);
|
447
449
|
}
|
@@ -511,13 +513,13 @@ function getTracer({
|
|
511
513
|
// core/telemetry/record-span.ts
|
512
514
|
var import_api2 = require("@opentelemetry/api");
|
513
515
|
function recordSpan({
|
514
|
-
name:
|
516
|
+
name: name13,
|
515
517
|
tracer,
|
516
518
|
attributes,
|
517
519
|
fn,
|
518
520
|
endWhenDone = true
|
519
521
|
}) {
|
520
|
-
return tracer.startActiveSpan(
|
522
|
+
return tracer.startActiveSpan(name13, { attributes }, async (span) => {
|
521
523
|
try {
|
522
524
|
const result = await fn(span);
|
523
525
|
if (endWhenDone) {
|
@@ -625,14 +627,14 @@ async function embed({
|
|
625
627
|
}),
|
626
628
|
tracer,
|
627
629
|
fn: async (doEmbedSpan) => {
|
628
|
-
var
|
630
|
+
var _a13;
|
629
631
|
const modelResponse = await model.doEmbed({
|
630
632
|
values: [value],
|
631
633
|
abortSignal,
|
632
634
|
headers
|
633
635
|
});
|
634
636
|
const embedding2 = modelResponse.embeddings[0];
|
635
|
-
const usage2 = (
|
637
|
+
const usage2 = (_a13 = modelResponse.usage) != null ? _a13 : { tokens: NaN };
|
636
638
|
doEmbedSpan.setAttributes(
|
637
639
|
selectTelemetryAttributes({
|
638
640
|
telemetry,
|
@@ -742,14 +744,14 @@ async function embedMany({
|
|
742
744
|
}),
|
743
745
|
tracer,
|
744
746
|
fn: async (doEmbedSpan) => {
|
745
|
-
var
|
747
|
+
var _a13;
|
746
748
|
const modelResponse = await model.doEmbed({
|
747
749
|
values,
|
748
750
|
abortSignal,
|
749
751
|
headers
|
750
752
|
});
|
751
753
|
const embeddings3 = modelResponse.embeddings;
|
752
|
-
const usage2 = (
|
754
|
+
const usage2 = (_a13 = modelResponse.usage) != null ? _a13 : { tokens: NaN };
|
753
755
|
doEmbedSpan.setAttributes(
|
754
756
|
selectTelemetryAttributes({
|
755
757
|
telemetry,
|
@@ -801,14 +803,14 @@ async function embedMany({
|
|
801
803
|
}),
|
802
804
|
tracer,
|
803
805
|
fn: async (doEmbedSpan) => {
|
804
|
-
var
|
806
|
+
var _a13;
|
805
807
|
const modelResponse = await model.doEmbed({
|
806
808
|
values: chunk,
|
807
809
|
abortSignal,
|
808
810
|
headers
|
809
811
|
});
|
810
812
|
const embeddings2 = modelResponse.embeddings;
|
811
|
-
const usage2 = (
|
813
|
+
const usage2 = (_a13 = modelResponse.usage) != null ? _a13 : { tokens: NaN };
|
812
814
|
doEmbedSpan.setAttributes(
|
813
815
|
selectTelemetryAttributes({
|
814
816
|
telemetry,
|
@@ -888,7 +890,7 @@ async function download({
|
|
888
890
|
url,
|
889
891
|
fetchImplementation = fetch
|
890
892
|
}) {
|
891
|
-
var
|
893
|
+
var _a13;
|
892
894
|
const urlText = url.toString();
|
893
895
|
try {
|
894
896
|
const response = await fetchImplementation(urlText);
|
@@ -901,7 +903,7 @@ async function download({
|
|
901
903
|
}
|
902
904
|
return {
|
903
905
|
data: new Uint8Array(await response.arrayBuffer()),
|
904
|
-
mimeType: (
|
906
|
+
mimeType: (_a13 = response.headers.get("content-type")) != null ? _a13 : void 0
|
905
907
|
};
|
906
908
|
} catch (error) {
|
907
909
|
if (DownloadError.isInstance(error)) {
|
@@ -961,8 +963,8 @@ var dataContentSchema = import_zod.z.union([
|
|
961
963
|
import_zod.z.custom(
|
962
964
|
// Buffer might not be available in some environments such as CloudFlare:
|
963
965
|
(value) => {
|
964
|
-
var
|
965
|
-
return (_b = (
|
966
|
+
var _a13, _b;
|
967
|
+
return (_b = (_a13 = globalThis.Buffer) == null ? void 0 : _a13.isBuffer(value)) != null ? _b : false;
|
966
968
|
},
|
967
969
|
{ message: "Must be a Buffer" }
|
968
970
|
)
|
@@ -1470,7 +1472,7 @@ function detectSingleMessageCharacteristics(message) {
|
|
1470
1472
|
|
1471
1473
|
// core/prompt/attachments-to-parts.ts
|
1472
1474
|
function attachmentsToParts(attachments) {
|
1473
|
-
var
|
1475
|
+
var _a13, _b, _c;
|
1474
1476
|
const parts = [];
|
1475
1477
|
for (const attachment of attachments) {
|
1476
1478
|
let url;
|
@@ -1482,7 +1484,7 @@ function attachmentsToParts(attachments) {
|
|
1482
1484
|
switch (url.protocol) {
|
1483
1485
|
case "http:":
|
1484
1486
|
case "https:": {
|
1485
|
-
if ((
|
1487
|
+
if ((_a13 = attachment.contentType) == null ? void 0 : _a13.startsWith("image/")) {
|
1486
1488
|
parts.push({ type: "image", image: url });
|
1487
1489
|
} else {
|
1488
1490
|
if (!attachment.contentType) {
|
@@ -1568,8 +1570,8 @@ _a6 = symbol6;
|
|
1568
1570
|
|
1569
1571
|
// core/prompt/convert-to-core-messages.ts
|
1570
1572
|
function convertToCoreMessages(messages, options) {
|
1571
|
-
var
|
1572
|
-
const tools = (
|
1573
|
+
var _a13;
|
1574
|
+
const tools = (_a13 = options == null ? void 0 : options.tools) != null ? _a13 : {};
|
1573
1575
|
const coreMessages = [];
|
1574
1576
|
for (const message of messages) {
|
1575
1577
|
const { role, content, toolInvocations, experimental_attachments } = message;
|
@@ -1851,7 +1853,7 @@ var arrayOutputStrategy = (schema) => {
|
|
1851
1853
|
additionalProperties: false
|
1852
1854
|
},
|
1853
1855
|
validatePartialResult({ value, latestObject, isFirstDelta, isFinalDelta }) {
|
1854
|
-
var
|
1856
|
+
var _a13;
|
1855
1857
|
if (!(0, import_provider10.isJSONObject)(value) || !(0, import_provider10.isJSONArray)(value.elements)) {
|
1856
1858
|
return {
|
1857
1859
|
success: false,
|
@@ -1874,7 +1876,7 @@ var arrayOutputStrategy = (schema) => {
|
|
1874
1876
|
}
|
1875
1877
|
resultArray.push(result.value);
|
1876
1878
|
}
|
1877
|
-
const publishedElementCount = (
|
1879
|
+
const publishedElementCount = (_a13 = latestObject == null ? void 0 : latestObject.length) != null ? _a13 : 0;
|
1878
1880
|
let textDelta = "";
|
1879
1881
|
if (isFirstDelta) {
|
1880
1882
|
textDelta += "[";
|
@@ -2206,7 +2208,7 @@ async function generateObject({
|
|
2206
2208
|
}),
|
2207
2209
|
tracer,
|
2208
2210
|
fn: async (span) => {
|
2209
|
-
var
|
2211
|
+
var _a13, _b;
|
2210
2212
|
if (mode === "auto" || mode == null) {
|
2211
2213
|
mode = model.defaultObjectGenerationMode;
|
2212
2214
|
}
|
@@ -2268,7 +2270,7 @@ async function generateObject({
|
|
2268
2270
|
}),
|
2269
2271
|
tracer,
|
2270
2272
|
fn: async (span2) => {
|
2271
|
-
var
|
2273
|
+
var _a14, _b2, _c, _d, _e, _f;
|
2272
2274
|
const result2 = await model.doGenerate({
|
2273
2275
|
mode: {
|
2274
2276
|
type: "object-json",
|
@@ -2287,7 +2289,7 @@ async function generateObject({
|
|
2287
2289
|
throw new NoObjectGeneratedError();
|
2288
2290
|
}
|
2289
2291
|
const responseData = {
|
2290
|
-
id: (_b2 = (
|
2292
|
+
id: (_b2 = (_a14 = result2.response) == null ? void 0 : _a14.id) != null ? _b2 : generateId3(),
|
2291
2293
|
timestamp: (_d = (_c = result2.response) == null ? void 0 : _c.timestamp) != null ? _d : currentDate(),
|
2292
2294
|
modelId: (_f = (_e = result2.response) == null ? void 0 : _e.modelId) != null ? _f : model.modelId
|
2293
2295
|
};
|
@@ -2322,7 +2324,7 @@ async function generateObject({
|
|
2322
2324
|
rawResponse = generateResult.rawResponse;
|
2323
2325
|
logprobs = generateResult.logprobs;
|
2324
2326
|
resultProviderMetadata = generateResult.providerMetadata;
|
2325
|
-
request = (
|
2327
|
+
request = (_a13 = generateResult.request) != null ? _a13 : {};
|
2326
2328
|
response = generateResult.responseData;
|
2327
2329
|
break;
|
2328
2330
|
}
|
@@ -2368,7 +2370,7 @@ async function generateObject({
|
|
2368
2370
|
}),
|
2369
2371
|
tracer,
|
2370
2372
|
fn: async (span2) => {
|
2371
|
-
var
|
2373
|
+
var _a14, _b2, _c, _d, _e, _f, _g, _h;
|
2372
2374
|
const result2 = await model.doGenerate({
|
2373
2375
|
mode: {
|
2374
2376
|
type: "object-tool",
|
@@ -2386,7 +2388,7 @@ async function generateObject({
|
|
2386
2388
|
abortSignal,
|
2387
2389
|
headers
|
2388
2390
|
});
|
2389
|
-
const objectText = (_b2 = (
|
2391
|
+
const objectText = (_b2 = (_a14 = result2.toolCalls) == null ? void 0 : _a14[0]) == null ? void 0 : _b2.args;
|
2390
2392
|
if (objectText === void 0) {
|
2391
2393
|
throw new NoObjectGeneratedError();
|
2392
2394
|
}
|
@@ -2491,9 +2493,9 @@ var DefaultGenerateObjectResult = class {
|
|
2491
2493
|
this.logprobs = options.logprobs;
|
2492
2494
|
}
|
2493
2495
|
toJsonResponse(init) {
|
2494
|
-
var
|
2496
|
+
var _a13;
|
2495
2497
|
return new Response(JSON.stringify(this.object), {
|
2496
|
-
status: (
|
2498
|
+
status: (_a13 = init == null ? void 0 : init.status) != null ? _a13 : 200,
|
2497
2499
|
headers: prepareResponseHeaders(init == null ? void 0 : init.headers, {
|
2498
2500
|
contentType: "application/json; charset=utf-8"
|
2499
2501
|
})
|
@@ -2528,17 +2530,17 @@ var DelayedPromise = class {
|
|
2528
2530
|
return this.promise;
|
2529
2531
|
}
|
2530
2532
|
resolve(value) {
|
2531
|
-
var
|
2533
|
+
var _a13;
|
2532
2534
|
this.status = { type: "resolved", value };
|
2533
2535
|
if (this.promise) {
|
2534
|
-
(
|
2536
|
+
(_a13 = this._resolve) == null ? void 0 : _a13.call(this, value);
|
2535
2537
|
}
|
2536
2538
|
}
|
2537
2539
|
reject(error) {
|
2538
|
-
var
|
2540
|
+
var _a13;
|
2539
2541
|
this.status = { type: "rejected", error };
|
2540
2542
|
if (this.promise) {
|
2541
|
-
(
|
2543
|
+
(_a13 = this._reject) == null ? void 0 : _a13.call(this, error);
|
2542
2544
|
}
|
2543
2545
|
}
|
2544
2546
|
};
|
@@ -2627,8 +2629,8 @@ function createStitchableStream() {
|
|
2627
2629
|
|
2628
2630
|
// core/util/now.ts
|
2629
2631
|
function now() {
|
2630
|
-
var
|
2631
|
-
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();
|
2632
2634
|
}
|
2633
2635
|
|
2634
2636
|
// core/generate-object/stream-object.ts
|
@@ -2917,7 +2919,7 @@ var DefaultStreamObjectResult = class {
|
|
2917
2919
|
const transformedStream = stream.pipeThrough(new TransformStream(transformer)).pipeThrough(
|
2918
2920
|
new TransformStream({
|
2919
2921
|
async transform(chunk, controller) {
|
2920
|
-
var
|
2922
|
+
var _a13, _b, _c;
|
2921
2923
|
if (isFirstChunk) {
|
2922
2924
|
const msToFirstChunk = now2() - startTimestampMs;
|
2923
2925
|
isFirstChunk = false;
|
@@ -2963,7 +2965,7 @@ var DefaultStreamObjectResult = class {
|
|
2963
2965
|
switch (chunk.type) {
|
2964
2966
|
case "response-metadata": {
|
2965
2967
|
response = {
|
2966
|
-
id: (
|
2968
|
+
id: (_a13 = chunk.id) != null ? _a13 : response.id,
|
2967
2969
|
timestamp: (_b = chunk.timestamp) != null ? _b : response.timestamp,
|
2968
2970
|
modelId: (_c = chunk.modelId) != null ? _c : response.modelId
|
2969
2971
|
};
|
@@ -3160,9 +3162,9 @@ var DefaultStreamObjectResult = class {
|
|
3160
3162
|
});
|
3161
3163
|
}
|
3162
3164
|
toTextStreamResponse(init) {
|
3163
|
-
var
|
3165
|
+
var _a13;
|
3164
3166
|
return new Response(this.textStream.pipeThrough(new TextEncoderStream()), {
|
3165
|
-
status: (
|
3167
|
+
status: (_a13 = init == null ? void 0 : init.status) != null ? _a13 : 200,
|
3166
3168
|
headers: prepareResponseHeaders(init == null ? void 0 : init.headers, {
|
3167
3169
|
contentType: "text/plain; charset=utf-8"
|
3168
3170
|
})
|
@@ -3174,7 +3176,7 @@ var DefaultStreamObjectResult = class {
|
|
3174
3176
|
var import_provider_utils8 = require("@ai-sdk/provider-utils");
|
3175
3177
|
|
3176
3178
|
// errors/index.ts
|
3177
|
-
var
|
3179
|
+
var import_provider15 = require("@ai-sdk/provider");
|
3178
3180
|
|
3179
3181
|
// errors/invalid-tool-arguments-error.ts
|
3180
3182
|
var import_provider11 = require("@ai-sdk/provider");
|
@@ -3225,6 +3227,52 @@ var NoSuchToolError = class extends import_provider12.AISDKError {
|
|
3225
3227
|
};
|
3226
3228
|
_a9 = symbol9;
|
3227
3229
|
|
3230
|
+
// errors/tool-call-repair-error.ts
|
3231
|
+
var import_provider13 = require("@ai-sdk/provider");
|
3232
|
+
var name10 = "AI_ToolCallRepairError";
|
3233
|
+
var marker10 = `vercel.ai.error.${name10}`;
|
3234
|
+
var symbol10 = Symbol.for(marker10);
|
3235
|
+
var _a10;
|
3236
|
+
var ToolCallRepairError = class extends import_provider13.AISDKError {
|
3237
|
+
constructor({
|
3238
|
+
cause,
|
3239
|
+
originalError,
|
3240
|
+
message = `Error repairing tool call: ${(0, import_provider13.getErrorMessage)(cause)}`
|
3241
|
+
}) {
|
3242
|
+
super({ name: name10, message, cause });
|
3243
|
+
this[_a10] = true;
|
3244
|
+
this.originalError = originalError;
|
3245
|
+
}
|
3246
|
+
static isInstance(error) {
|
3247
|
+
return import_provider13.AISDKError.hasMarker(error, marker10);
|
3248
|
+
}
|
3249
|
+
};
|
3250
|
+
_a10 = symbol10;
|
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
|
+
|
3228
3276
|
// core/prompt/prepare-tools-and-tool-choice.ts
|
3229
3277
|
var import_ui_utils4 = require("@ai-sdk/ui-utils");
|
3230
3278
|
|
@@ -3246,24 +3294,24 @@ function prepareToolsAndToolChoice({
|
|
3246
3294
|
};
|
3247
3295
|
}
|
3248
3296
|
const filteredTools = activeTools != null ? Object.entries(tools).filter(
|
3249
|
-
([
|
3297
|
+
([name13]) => activeTools.includes(name13)
|
3250
3298
|
) : Object.entries(tools);
|
3251
3299
|
return {
|
3252
|
-
tools: filteredTools.map(([
|
3300
|
+
tools: filteredTools.map(([name13, tool2]) => {
|
3253
3301
|
const toolType = tool2.type;
|
3254
3302
|
switch (toolType) {
|
3255
3303
|
case void 0:
|
3256
3304
|
case "function":
|
3257
3305
|
return {
|
3258
3306
|
type: "function",
|
3259
|
-
name:
|
3307
|
+
name: name13,
|
3260
3308
|
description: tool2.description,
|
3261
3309
|
parameters: (0, import_ui_utils4.asSchema)(tool2.parameters).jsonSchema
|
3262
3310
|
};
|
3263
3311
|
case "provider-defined":
|
3264
3312
|
return {
|
3265
3313
|
type: "provider-defined",
|
3266
|
-
name:
|
3314
|
+
name: name13,
|
3267
3315
|
id: tool2.id,
|
3268
3316
|
args: tool2.args
|
3269
3317
|
};
|
@@ -3293,14 +3341,49 @@ function removeTextAfterLastWhitespace(text2) {
|
|
3293
3341
|
// core/generate-text/parse-tool-call.ts
|
3294
3342
|
var import_provider_utils7 = require("@ai-sdk/provider-utils");
|
3295
3343
|
var import_ui_utils5 = require("@ai-sdk/ui-utils");
|
3296
|
-
function parseToolCall({
|
3344
|
+
async function parseToolCall({
|
3297
3345
|
toolCall,
|
3298
|
-
tools
|
3346
|
+
tools,
|
3347
|
+
repairToolCall,
|
3348
|
+
system,
|
3349
|
+
messages
|
3299
3350
|
}) {
|
3300
|
-
const toolName = toolCall.toolName;
|
3301
3351
|
if (tools == null) {
|
3302
3352
|
throw new NoSuchToolError({ toolName: toolCall.toolName });
|
3303
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;
|
3304
3387
|
const tool2 = tools[toolName];
|
3305
3388
|
if (tool2 == null) {
|
3306
3389
|
throw new NoSuchToolError({
|
@@ -3380,6 +3463,7 @@ async function generateText({
|
|
3380
3463
|
experimental_telemetry: telemetry,
|
3381
3464
|
experimental_providerMetadata: providerMetadata,
|
3382
3465
|
experimental_activeTools: activeTools,
|
3466
|
+
experimental_repairToolCall: repairToolCall,
|
3383
3467
|
_internal: {
|
3384
3468
|
generateId: generateId3 = originalGenerateId3,
|
3385
3469
|
currentDate = () => /* @__PURE__ */ new Date()
|
@@ -3387,7 +3471,7 @@ async function generateText({
|
|
3387
3471
|
onStepFinish,
|
3388
3472
|
...settings
|
3389
3473
|
}) {
|
3390
|
-
var
|
3474
|
+
var _a13;
|
3391
3475
|
if (maxSteps < 1) {
|
3392
3476
|
throw new InvalidArgumentError({
|
3393
3477
|
parameter: "maxSteps",
|
@@ -3404,7 +3488,7 @@ async function generateText({
|
|
3404
3488
|
});
|
3405
3489
|
const initialPrompt = standardizePrompt({
|
3406
3490
|
prompt: {
|
3407
|
-
system: (
|
3491
|
+
system: (_a13 = output == null ? void 0 : output.injectIntoSystemPrompt({ system, model })) != null ? _a13 : system,
|
3408
3492
|
prompt,
|
3409
3493
|
messages
|
3410
3494
|
},
|
@@ -3430,7 +3514,7 @@ async function generateText({
|
|
3430
3514
|
}),
|
3431
3515
|
tracer,
|
3432
3516
|
fn: async (span) => {
|
3433
|
-
var
|
3517
|
+
var _a14, _b, _c, _d, _e, _f;
|
3434
3518
|
const mode = {
|
3435
3519
|
type: "regular",
|
3436
3520
|
...prepareToolsAndToolChoice({ tools, toolChoice, activeTools })
|
@@ -3482,8 +3566,8 @@ async function generateText({
|
|
3482
3566
|
"ai.prompt.tools": {
|
3483
3567
|
// convert the language model level tools:
|
3484
3568
|
input: () => {
|
3485
|
-
var
|
3486
|
-
return (
|
3569
|
+
var _a15;
|
3570
|
+
return (_a15 = mode.tools) == null ? void 0 : _a15.map((tool2) => JSON.stringify(tool2));
|
3487
3571
|
}
|
3488
3572
|
},
|
3489
3573
|
"ai.prompt.toolChoice": {
|
@@ -3503,7 +3587,7 @@ async function generateText({
|
|
3503
3587
|
}),
|
3504
3588
|
tracer,
|
3505
3589
|
fn: async (span2) => {
|
3506
|
-
var
|
3590
|
+
var _a15, _b2, _c2, _d2, _e2, _f2;
|
3507
3591
|
const result = await model.doGenerate({
|
3508
3592
|
mode,
|
3509
3593
|
...callSettings,
|
@@ -3515,7 +3599,7 @@ async function generateText({
|
|
3515
3599
|
headers
|
3516
3600
|
});
|
3517
3601
|
const responseData = {
|
3518
|
-
id: (_b2 = (
|
3602
|
+
id: (_b2 = (_a15 = result.response) == null ? void 0 : _a15.id) != null ? _b2 : generateId3(),
|
3519
3603
|
timestamp: (_d2 = (_c2 = result.response) == null ? void 0 : _c2.timestamp) != null ? _d2 : currentDate(),
|
3520
3604
|
modelId: (_f2 = (_e2 = result.response) == null ? void 0 : _e2.modelId) != null ? _f2 : model.modelId
|
3521
3605
|
};
|
@@ -3548,8 +3632,16 @@ async function generateText({
|
|
3548
3632
|
}
|
3549
3633
|
})
|
3550
3634
|
);
|
3551
|
-
currentToolCalls =
|
3552
|
-
(
|
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
|
+
)
|
3553
3645
|
);
|
3554
3646
|
currentToolResults = tools == null ? [] : await executeTools({
|
3555
3647
|
toolCalls: currentToolCalls,
|
@@ -3695,25 +3787,33 @@ async function executeTools({
|
|
3695
3787
|
}),
|
3696
3788
|
tracer,
|
3697
3789
|
fn: async (span) => {
|
3698
|
-
const result2 = await tool2.execute(args, {
|
3699
|
-
toolCallId,
|
3700
|
-
messages,
|
3701
|
-
abortSignal
|
3702
|
-
});
|
3703
3790
|
try {
|
3704
|
-
|
3705
|
-
|
3706
|
-
|
3707
|
-
|
3708
|
-
|
3709
|
-
|
3791
|
+
const result2 = await tool2.execute(args, {
|
3792
|
+
toolCallId,
|
3793
|
+
messages,
|
3794
|
+
abortSignal
|
3795
|
+
});
|
3796
|
+
try {
|
3797
|
+
span.setAttributes(
|
3798
|
+
selectTelemetryAttributes({
|
3799
|
+
telemetry,
|
3800
|
+
attributes: {
|
3801
|
+
"ai.toolCall.result": {
|
3802
|
+
output: () => JSON.stringify(result2)
|
3803
|
+
}
|
3710
3804
|
}
|
3711
|
-
}
|
3712
|
-
|
3713
|
-
)
|
3714
|
-
|
3805
|
+
})
|
3806
|
+
);
|
3807
|
+
} catch (ignored) {
|
3808
|
+
}
|
3809
|
+
return result2;
|
3810
|
+
} catch (error) {
|
3811
|
+
throw new ToolExecutionError({
|
3812
|
+
toolName,
|
3813
|
+
toolArgs: args,
|
3814
|
+
cause: error
|
3815
|
+
});
|
3715
3816
|
}
|
3716
|
-
return result2;
|
3717
3817
|
}
|
3718
3818
|
});
|
3719
3819
|
return {
|
@@ -3745,9 +3845,49 @@ var DefaultGenerateTextResult = class {
|
|
3745
3845
|
}
|
3746
3846
|
};
|
3747
3847
|
|
3748
|
-
// core/generate-text/
|
3848
|
+
// core/generate-text/output.ts
|
3849
|
+
var output_exports = {};
|
3850
|
+
__export(output_exports, {
|
3851
|
+
object: () => object,
|
3852
|
+
text: () => text
|
3853
|
+
});
|
3749
3854
|
var import_provider_utils9 = require("@ai-sdk/provider-utils");
|
3750
|
-
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");
|
3751
3891
|
|
3752
3892
|
// core/util/merge-streams.ts
|
3753
3893
|
function mergeStreams(stream1, stream2) {
|
@@ -3838,15 +3978,17 @@ function mergeStreams(stream1, stream2) {
|
|
3838
3978
|
}
|
3839
3979
|
|
3840
3980
|
// core/generate-text/run-tools-transformation.ts
|
3841
|
-
var
|
3981
|
+
var import_ui_utils7 = require("@ai-sdk/ui-utils");
|
3842
3982
|
function runToolsTransformation({
|
3843
3983
|
tools,
|
3844
3984
|
generatorStream,
|
3845
3985
|
toolCallStreaming,
|
3846
3986
|
tracer,
|
3847
3987
|
telemetry,
|
3988
|
+
system,
|
3848
3989
|
messages,
|
3849
|
-
abortSignal
|
3990
|
+
abortSignal,
|
3991
|
+
repairToolCall
|
3850
3992
|
}) {
|
3851
3993
|
let toolResultsStreamController = null;
|
3852
3994
|
const toolResultsStream = new ReadableStream({
|
@@ -3867,7 +4009,7 @@ function runToolsTransformation({
|
|
3867
4009
|
}
|
3868
4010
|
}
|
3869
4011
|
const forwardStream = new TransformStream({
|
3870
|
-
transform(chunk, controller) {
|
4012
|
+
async transform(chunk, controller) {
|
3871
4013
|
const chunkType = chunk.type;
|
3872
4014
|
switch (chunkType) {
|
3873
4015
|
case "text-delta":
|
@@ -3916,13 +4058,16 @@ function runToolsTransformation({
|
|
3916
4058
|
break;
|
3917
4059
|
}
|
3918
4060
|
try {
|
3919
|
-
const toolCall = parseToolCall({
|
4061
|
+
const toolCall = await parseToolCall({
|
3920
4062
|
toolCall: chunk,
|
3921
|
-
tools
|
4063
|
+
tools,
|
4064
|
+
repairToolCall,
|
4065
|
+
system,
|
4066
|
+
messages
|
3922
4067
|
});
|
3923
4068
|
controller.enqueue(toolCall);
|
3924
4069
|
if (tool2.execute != null) {
|
3925
|
-
const toolExecutionId = (0,
|
4070
|
+
const toolExecutionId = (0, import_ui_utils7.generateId)();
|
3926
4071
|
outstandingToolResults.add(toolExecutionId);
|
3927
4072
|
recordSpan({
|
3928
4073
|
name: "ai.toolCall",
|
@@ -3971,7 +4116,11 @@ function runToolsTransformation({
|
|
3971
4116
|
(error) => {
|
3972
4117
|
toolResultsStreamController.enqueue({
|
3973
4118
|
type: "error",
|
3974
|
-
error
|
4119
|
+
error: new ToolExecutionError({
|
4120
|
+
toolName: toolCall.toolName,
|
4121
|
+
toolArgs: toolCall.args,
|
4122
|
+
cause: error
|
4123
|
+
})
|
3975
4124
|
});
|
3976
4125
|
outstandingToolResults.delete(toolExecutionId);
|
3977
4126
|
attemptClose();
|
@@ -4036,7 +4185,7 @@ function runToolsTransformation({
|
|
4036
4185
|
}
|
4037
4186
|
|
4038
4187
|
// core/generate-text/stream-text.ts
|
4039
|
-
var originalGenerateId4 = (0,
|
4188
|
+
var originalGenerateId4 = (0, import_provider_utils10.createIdGenerator)({ prefix: "aitxt", size: 24 });
|
4040
4189
|
function streamText({
|
4041
4190
|
model,
|
4042
4191
|
tools,
|
@@ -4053,6 +4202,7 @@ function streamText({
|
|
4053
4202
|
experimental_providerMetadata: providerMetadata,
|
4054
4203
|
experimental_toolCallStreaming: toolCallStreaming = false,
|
4055
4204
|
experimental_activeTools: activeTools,
|
4205
|
+
experimental_repairToolCall: repairToolCall,
|
4056
4206
|
onChunk,
|
4057
4207
|
onFinish,
|
4058
4208
|
onStepFinish,
|
@@ -4077,6 +4227,7 @@ function streamText({
|
|
4077
4227
|
toolChoice,
|
4078
4228
|
toolCallStreaming,
|
4079
4229
|
activeTools,
|
4230
|
+
repairToolCall,
|
4080
4231
|
maxSteps,
|
4081
4232
|
continueSteps,
|
4082
4233
|
providerMetadata,
|
@@ -4103,6 +4254,7 @@ var DefaultStreamTextResult = class {
|
|
4103
4254
|
toolChoice,
|
4104
4255
|
toolCallStreaming,
|
4105
4256
|
activeTools,
|
4257
|
+
repairToolCall,
|
4106
4258
|
maxSteps,
|
4107
4259
|
continueSteps,
|
4108
4260
|
providerMetadata,
|
@@ -4214,8 +4366,8 @@ var DefaultStreamTextResult = class {
|
|
4214
4366
|
"ai.prompt.tools": {
|
4215
4367
|
// convert the language model level tools:
|
4216
4368
|
input: () => {
|
4217
|
-
var
|
4218
|
-
return (
|
4369
|
+
var _a13;
|
4370
|
+
return (_a13 = mode.tools) == null ? void 0 : _a13.map((tool2) => JSON.stringify(tool2));
|
4219
4371
|
}
|
4220
4372
|
},
|
4221
4373
|
"ai.prompt.toolChoice": {
|
@@ -4257,7 +4409,9 @@ var DefaultStreamTextResult = class {
|
|
4257
4409
|
toolCallStreaming,
|
4258
4410
|
tracer,
|
4259
4411
|
telemetry,
|
4412
|
+
system,
|
4260
4413
|
messages: stepInputMessages,
|
4414
|
+
repairToolCall,
|
4261
4415
|
abortSignal
|
4262
4416
|
});
|
4263
4417
|
const stepRequest = request != null ? request : {};
|
@@ -4298,7 +4452,7 @@ var DefaultStreamTextResult = class {
|
|
4298
4452
|
transformedStream.pipeThrough(
|
4299
4453
|
new TransformStream({
|
4300
4454
|
async transform(chunk, controller) {
|
4301
|
-
var
|
4455
|
+
var _a13, _b, _c;
|
4302
4456
|
if (stepFirstChunk) {
|
4303
4457
|
const msToFirstChunk = now2() - startTimestampMs;
|
4304
4458
|
stepFirstChunk = false;
|
@@ -4352,7 +4506,7 @@ var DefaultStreamTextResult = class {
|
|
4352
4506
|
}
|
4353
4507
|
case "response-metadata": {
|
4354
4508
|
stepResponse = {
|
4355
|
-
id: (
|
4509
|
+
id: (_a13 = chunk.id) != null ? _a13 : stepResponse.id,
|
4356
4510
|
timestamp: (_b = chunk.timestamp) != null ? _b : stepResponse.timestamp,
|
4357
4511
|
modelId: (_c = chunk.modelId) != null ? _c : stepResponse.modelId
|
4358
4512
|
};
|
@@ -4599,7 +4753,8 @@ var DefaultStreamTextResult = class {
|
|
4599
4753
|
self.stitchableStream.addStream(
|
4600
4754
|
new ReadableStream({
|
4601
4755
|
start(controller) {
|
4602
|
-
controller.
|
4756
|
+
controller.enqueue({ type: "error", error });
|
4757
|
+
controller.close();
|
4603
4758
|
}
|
4604
4759
|
})
|
4605
4760
|
);
|
@@ -4668,7 +4823,7 @@ var DefaultStreamTextResult = class {
|
|
4668
4823
|
});
|
4669
4824
|
}
|
4670
4825
|
toDataStreamInternal({
|
4671
|
-
getErrorMessage:
|
4826
|
+
getErrorMessage: getErrorMessage5 = () => "An error occurred.",
|
4672
4827
|
// mask error messages for safety by default
|
4673
4828
|
sendUsage = true
|
4674
4829
|
} = {}) {
|
@@ -4686,12 +4841,12 @@ var DefaultStreamTextResult = class {
|
|
4686
4841
|
const chunkType = chunk.type;
|
4687
4842
|
switch (chunkType) {
|
4688
4843
|
case "text-delta": {
|
4689
|
-
controller.enqueue((0,
|
4844
|
+
controller.enqueue((0, import_ui_utils8.formatDataStreamPart)("text", chunk.textDelta));
|
4690
4845
|
break;
|
4691
4846
|
}
|
4692
4847
|
case "tool-call-streaming-start": {
|
4693
4848
|
controller.enqueue(
|
4694
|
-
(0,
|
4849
|
+
(0, import_ui_utils8.formatDataStreamPart)("tool_call_streaming_start", {
|
4695
4850
|
toolCallId: chunk.toolCallId,
|
4696
4851
|
toolName: chunk.toolName
|
4697
4852
|
})
|
@@ -4700,7 +4855,7 @@ var DefaultStreamTextResult = class {
|
|
4700
4855
|
}
|
4701
4856
|
case "tool-call-delta": {
|
4702
4857
|
controller.enqueue(
|
4703
|
-
(0,
|
4858
|
+
(0, import_ui_utils8.formatDataStreamPart)("tool_call_delta", {
|
4704
4859
|
toolCallId: chunk.toolCallId,
|
4705
4860
|
argsTextDelta: chunk.argsTextDelta
|
4706
4861
|
})
|
@@ -4709,7 +4864,7 @@ var DefaultStreamTextResult = class {
|
|
4709
4864
|
}
|
4710
4865
|
case "tool-call": {
|
4711
4866
|
controller.enqueue(
|
4712
|
-
(0,
|
4867
|
+
(0, import_ui_utils8.formatDataStreamPart)("tool_call", {
|
4713
4868
|
toolCallId: chunk.toolCallId,
|
4714
4869
|
toolName: chunk.toolName,
|
4715
4870
|
args: chunk.args
|
@@ -4719,7 +4874,7 @@ var DefaultStreamTextResult = class {
|
|
4719
4874
|
}
|
4720
4875
|
case "tool-result": {
|
4721
4876
|
controller.enqueue(
|
4722
|
-
(0,
|
4877
|
+
(0, import_ui_utils8.formatDataStreamPart)("tool_result", {
|
4723
4878
|
toolCallId: chunk.toolCallId,
|
4724
4879
|
result: chunk.result
|
4725
4880
|
})
|
@@ -4728,13 +4883,13 @@ var DefaultStreamTextResult = class {
|
|
4728
4883
|
}
|
4729
4884
|
case "error": {
|
4730
4885
|
controller.enqueue(
|
4731
|
-
(0,
|
4886
|
+
(0, import_ui_utils8.formatDataStreamPart)("error", getErrorMessage5(chunk.error))
|
4732
4887
|
);
|
4733
4888
|
break;
|
4734
4889
|
}
|
4735
4890
|
case "step-finish": {
|
4736
4891
|
controller.enqueue(
|
4737
|
-
(0,
|
4892
|
+
(0, import_ui_utils8.formatDataStreamPart)("finish_step", {
|
4738
4893
|
finishReason: chunk.finishReason,
|
4739
4894
|
usage: sendUsage ? {
|
4740
4895
|
promptTokens: chunk.usage.promptTokens,
|
@@ -4747,7 +4902,7 @@ var DefaultStreamTextResult = class {
|
|
4747
4902
|
}
|
4748
4903
|
case "finish": {
|
4749
4904
|
controller.enqueue(
|
4750
|
-
(0,
|
4905
|
+
(0, import_ui_utils8.formatDataStreamPart)("finish_message", {
|
4751
4906
|
finishReason: chunk.finishReason,
|
4752
4907
|
usage: sendUsage ? {
|
4753
4908
|
promptTokens: chunk.usage.promptTokens,
|
@@ -4771,7 +4926,7 @@ var DefaultStreamTextResult = class {
|
|
4771
4926
|
statusText,
|
4772
4927
|
headers,
|
4773
4928
|
data,
|
4774
|
-
getErrorMessage:
|
4929
|
+
getErrorMessage: getErrorMessage5,
|
4775
4930
|
sendUsage
|
4776
4931
|
} = {}) {
|
4777
4932
|
writeToServerResponse({
|
@@ -4782,7 +4937,7 @@ var DefaultStreamTextResult = class {
|
|
4782
4937
|
contentType: "text/plain; charset=utf-8",
|
4783
4938
|
dataStreamVersion: "v1"
|
4784
4939
|
}),
|
4785
|
-
stream: this.toDataStream({ data, getErrorMessage:
|
4940
|
+
stream: this.toDataStream({ data, getErrorMessage: getErrorMessage5, sendUsage })
|
4786
4941
|
});
|
4787
4942
|
}
|
4788
4943
|
pipeTextStreamToResponse(response, init) {
|
@@ -4816,11 +4971,11 @@ var DefaultStreamTextResult = class {
|
|
4816
4971
|
status,
|
4817
4972
|
statusText,
|
4818
4973
|
data,
|
4819
|
-
getErrorMessage:
|
4974
|
+
getErrorMessage: getErrorMessage5,
|
4820
4975
|
sendUsage
|
4821
4976
|
} = {}) {
|
4822
4977
|
return new Response(
|
4823
|
-
this.toDataStream({ data, getErrorMessage:
|
4978
|
+
this.toDataStream({ data, getErrorMessage: getErrorMessage5, sendUsage }),
|
4824
4979
|
{
|
4825
4980
|
status,
|
4826
4981
|
statusText,
|
@@ -4832,9 +4987,9 @@ var DefaultStreamTextResult = class {
|
|
4832
4987
|
);
|
4833
4988
|
}
|
4834
4989
|
toTextStreamResponse(init) {
|
4835
|
-
var
|
4990
|
+
var _a13;
|
4836
4991
|
return new Response(this.textStream.pipeThrough(new TextEncoderStream()), {
|
4837
|
-
status: (
|
4992
|
+
status: (_a13 = init == null ? void 0 : init.status) != null ? _a13 : 200,
|
4838
4993
|
headers: prepareResponseHeaders(init == null ? void 0 : init.headers, {
|
4839
4994
|
contentType: "text/plain; charset=utf-8"
|
4840
4995
|
})
|
@@ -4842,46 +4997,6 @@ var DefaultStreamTextResult = class {
|
|
4842
4997
|
}
|
4843
4998
|
};
|
4844
4999
|
|
4845
|
-
// core/generate-text/output.ts
|
4846
|
-
var output_exports = {};
|
4847
|
-
__export(output_exports, {
|
4848
|
-
object: () => object,
|
4849
|
-
text: () => text
|
4850
|
-
});
|
4851
|
-
var import_provider_utils10 = require("@ai-sdk/provider-utils");
|
4852
|
-
var import_ui_utils8 = require("@ai-sdk/ui-utils");
|
4853
|
-
var text = () => ({
|
4854
|
-
type: "text",
|
4855
|
-
responseFormat: () => ({ type: "text" }),
|
4856
|
-
injectIntoSystemPrompt({ system }) {
|
4857
|
-
return system;
|
4858
|
-
},
|
4859
|
-
parseOutput({ text: text2 }) {
|
4860
|
-
return text2;
|
4861
|
-
}
|
4862
|
-
});
|
4863
|
-
var object = ({
|
4864
|
-
schema: inputSchema
|
4865
|
-
}) => {
|
4866
|
-
const schema = (0, import_ui_utils8.asSchema)(inputSchema);
|
4867
|
-
return {
|
4868
|
-
type: "object",
|
4869
|
-
responseFormat: ({ model }) => ({
|
4870
|
-
type: "json",
|
4871
|
-
schema: model.supportsStructuredOutputs ? schema.jsonSchema : void 0
|
4872
|
-
}),
|
4873
|
-
injectIntoSystemPrompt({ system, model }) {
|
4874
|
-
return model.supportsStructuredOutputs ? system : injectJsonInstruction({
|
4875
|
-
prompt: system,
|
4876
|
-
schema: schema.jsonSchema
|
4877
|
-
});
|
4878
|
-
},
|
4879
|
-
parseOutput({ text: text2 }) {
|
4880
|
-
return (0, import_provider_utils10.parseJSON)({ text: text2, schema });
|
4881
|
-
}
|
4882
|
-
};
|
4883
|
-
};
|
4884
|
-
|
4885
5000
|
// core/middleware/wrap-language-model.ts
|
4886
5001
|
var experimental_wrapLanguageModel = ({
|
4887
5002
|
model,
|
@@ -4917,7 +5032,7 @@ var experimental_wrapLanguageModel = ({
|
|
4917
5032
|
};
|
4918
5033
|
|
4919
5034
|
// core/registry/custom-provider.ts
|
4920
|
-
var
|
5035
|
+
var import_provider16 = require("@ai-sdk/provider");
|
4921
5036
|
function experimental_customProvider({
|
4922
5037
|
languageModels,
|
4923
5038
|
textEmbeddingModels,
|
@@ -4931,7 +5046,7 @@ function experimental_customProvider({
|
|
4931
5046
|
if (fallbackProvider) {
|
4932
5047
|
return fallbackProvider.languageModel(modelId);
|
4933
5048
|
}
|
4934
|
-
throw new
|
5049
|
+
throw new import_provider16.NoSuchModelError({ modelId, modelType: "languageModel" });
|
4935
5050
|
},
|
4936
5051
|
textEmbeddingModel(modelId) {
|
4937
5052
|
if (textEmbeddingModels != null && modelId in textEmbeddingModels) {
|
@@ -4940,18 +5055,18 @@ function experimental_customProvider({
|
|
4940
5055
|
if (fallbackProvider) {
|
4941
5056
|
return fallbackProvider.textEmbeddingModel(modelId);
|
4942
5057
|
}
|
4943
|
-
throw new
|
5058
|
+
throw new import_provider16.NoSuchModelError({ modelId, modelType: "textEmbeddingModel" });
|
4944
5059
|
}
|
4945
5060
|
};
|
4946
5061
|
}
|
4947
5062
|
|
4948
5063
|
// core/registry/no-such-provider-error.ts
|
4949
|
-
var
|
4950
|
-
var
|
4951
|
-
var
|
4952
|
-
var
|
4953
|
-
var
|
4954
|
-
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 {
|
4955
5070
|
constructor({
|
4956
5071
|
modelId,
|
4957
5072
|
modelType,
|
@@ -4959,19 +5074,19 @@ var NoSuchProviderError = class extends import_provider15.NoSuchModelError {
|
|
4959
5074
|
availableProviders,
|
4960
5075
|
message = `No such provider: ${providerId} (available providers: ${availableProviders.join()})`
|
4961
5076
|
}) {
|
4962
|
-
super({ errorName:
|
4963
|
-
this[
|
5077
|
+
super({ errorName: name12, modelId, modelType, message });
|
5078
|
+
this[_a12] = true;
|
4964
5079
|
this.providerId = providerId;
|
4965
5080
|
this.availableProviders = availableProviders;
|
4966
5081
|
}
|
4967
5082
|
static isInstance(error) {
|
4968
|
-
return
|
5083
|
+
return import_provider17.AISDKError.hasMarker(error, marker12);
|
4969
5084
|
}
|
4970
5085
|
};
|
4971
|
-
|
5086
|
+
_a12 = symbol12;
|
4972
5087
|
|
4973
5088
|
// core/registry/provider-registry.ts
|
4974
|
-
var
|
5089
|
+
var import_provider18 = require("@ai-sdk/provider");
|
4975
5090
|
function experimental_createProviderRegistry(providers) {
|
4976
5091
|
const registry = new DefaultProviderRegistry();
|
4977
5092
|
for (const [id, provider] of Object.entries(providers)) {
|
@@ -5001,7 +5116,7 @@ var DefaultProviderRegistry = class {
|
|
5001
5116
|
splitId(id, modelType) {
|
5002
5117
|
const index = id.indexOf(":");
|
5003
5118
|
if (index === -1) {
|
5004
|
-
throw new
|
5119
|
+
throw new import_provider18.NoSuchModelError({
|
5005
5120
|
modelId: id,
|
5006
5121
|
modelType,
|
5007
5122
|
message: `Invalid ${modelType} id for registry: ${id} (must be in the format "providerId:modelId")`
|
@@ -5010,21 +5125,21 @@ var DefaultProviderRegistry = class {
|
|
5010
5125
|
return [id.slice(0, index), id.slice(index + 1)];
|
5011
5126
|
}
|
5012
5127
|
languageModel(id) {
|
5013
|
-
var
|
5128
|
+
var _a13, _b;
|
5014
5129
|
const [providerId, modelId] = this.splitId(id, "languageModel");
|
5015
|
-
const model = (_b = (
|
5130
|
+
const model = (_b = (_a13 = this.getProvider(providerId)).languageModel) == null ? void 0 : _b.call(_a13, modelId);
|
5016
5131
|
if (model == null) {
|
5017
|
-
throw new
|
5132
|
+
throw new import_provider18.NoSuchModelError({ modelId: id, modelType: "languageModel" });
|
5018
5133
|
}
|
5019
5134
|
return model;
|
5020
5135
|
}
|
5021
5136
|
textEmbeddingModel(id) {
|
5022
|
-
var
|
5137
|
+
var _a13;
|
5023
5138
|
const [providerId, modelId] = this.splitId(id, "textEmbeddingModel");
|
5024
5139
|
const provider = this.getProvider(providerId);
|
5025
|
-
const model = (
|
5140
|
+
const model = (_a13 = provider.textEmbeddingModel) == null ? void 0 : _a13.call(provider, modelId);
|
5026
5141
|
if (model == null) {
|
5027
|
-
throw new
|
5142
|
+
throw new import_provider18.NoSuchModelError({
|
5028
5143
|
modelId: id,
|
5029
5144
|
modelType: "textEmbeddingModel"
|
5030
5145
|
});
|
@@ -5068,7 +5183,7 @@ var import_ui_utils10 = require("@ai-sdk/ui-utils");
|
|
5068
5183
|
function AssistantResponse({ threadId, messageId }, process2) {
|
5069
5184
|
const stream = new ReadableStream({
|
5070
5185
|
async start(controller) {
|
5071
|
-
var
|
5186
|
+
var _a13;
|
5072
5187
|
const textEncoder = new TextEncoder();
|
5073
5188
|
const sendMessage = (message) => {
|
5074
5189
|
controller.enqueue(
|
@@ -5090,7 +5205,7 @@ function AssistantResponse({ threadId, messageId }, process2) {
|
|
5090
5205
|
);
|
5091
5206
|
};
|
5092
5207
|
const forwardStream = async (stream2) => {
|
5093
|
-
var
|
5208
|
+
var _a14, _b;
|
5094
5209
|
let result = void 0;
|
5095
5210
|
for await (const value of stream2) {
|
5096
5211
|
switch (value.event) {
|
@@ -5107,7 +5222,7 @@ function AssistantResponse({ threadId, messageId }, process2) {
|
|
5107
5222
|
break;
|
5108
5223
|
}
|
5109
5224
|
case "thread.message.delta": {
|
5110
|
-
const content = (
|
5225
|
+
const content = (_a14 = value.data.delta.content) == null ? void 0 : _a14[0];
|
5111
5226
|
if ((content == null ? void 0 : content.type) === "text" && ((_b = content.text) == null ? void 0 : _b.value) != null) {
|
5112
5227
|
controller.enqueue(
|
5113
5228
|
textEncoder.encode(
|
@@ -5141,7 +5256,7 @@ function AssistantResponse({ threadId, messageId }, process2) {
|
|
5141
5256
|
forwardStream
|
5142
5257
|
});
|
5143
5258
|
} catch (error) {
|
5144
|
-
sendError((
|
5259
|
+
sendError((_a13 = error.message) != null ? _a13 : `${error}`);
|
5145
5260
|
} finally {
|
5146
5261
|
controller.close();
|
5147
5262
|
}
|
@@ -5202,7 +5317,7 @@ function toDataStreamInternal(stream, callbacks) {
|
|
5202
5317
|
return stream.pipeThrough(
|
5203
5318
|
new TransformStream({
|
5204
5319
|
transform: async (value, controller) => {
|
5205
|
-
var
|
5320
|
+
var _a13;
|
5206
5321
|
if (typeof value === "string") {
|
5207
5322
|
controller.enqueue(value);
|
5208
5323
|
return;
|
@@ -5210,7 +5325,7 @@ function toDataStreamInternal(stream, callbacks) {
|
|
5210
5325
|
if ("event" in value) {
|
5211
5326
|
if (value.event === "on_chat_model_stream") {
|
5212
5327
|
forwardAIMessageChunk(
|
5213
|
-
(
|
5328
|
+
(_a13 = value.data) == null ? void 0 : _a13.chunk,
|
5214
5329
|
controller
|
5215
5330
|
);
|
5216
5331
|
}
|
@@ -5233,7 +5348,7 @@ function toDataStream(stream, callbacks) {
|
|
5233
5348
|
);
|
5234
5349
|
}
|
5235
5350
|
function toDataStreamResponse(stream, options) {
|
5236
|
-
var
|
5351
|
+
var _a13;
|
5237
5352
|
const dataStream = toDataStreamInternal(
|
5238
5353
|
stream,
|
5239
5354
|
options == null ? void 0 : options.callbacks
|
@@ -5242,7 +5357,7 @@ function toDataStreamResponse(stream, options) {
|
|
5242
5357
|
const init = options == null ? void 0 : options.init;
|
5243
5358
|
const responseStream = data ? mergeStreams(data.stream, dataStream) : dataStream;
|
5244
5359
|
return new Response(responseStream, {
|
5245
|
-
status: (
|
5360
|
+
status: (_a13 = init == null ? void 0 : init.status) != null ? _a13 : 200,
|
5246
5361
|
statusText: init == null ? void 0 : init.statusText,
|
5247
5362
|
headers: prepareResponseHeaders(init == null ? void 0 : init.headers, {
|
5248
5363
|
contentType: "text/plain; charset=utf-8",
|
@@ -5297,14 +5412,14 @@ function toDataStream2(stream, callbacks) {
|
|
5297
5412
|
);
|
5298
5413
|
}
|
5299
5414
|
function toDataStreamResponse2(stream, options = {}) {
|
5300
|
-
var
|
5415
|
+
var _a13;
|
5301
5416
|
const { init, data, callbacks } = options;
|
5302
5417
|
const dataStream = toDataStreamInternal2(stream, callbacks).pipeThrough(
|
5303
5418
|
new TextEncoderStream()
|
5304
5419
|
);
|
5305
5420
|
const responseStream = data ? mergeStreams(data.stream, dataStream) : dataStream;
|
5306
5421
|
return new Response(responseStream, {
|
5307
|
-
status: (
|
5422
|
+
status: (_a13 = init == null ? void 0 : init.status) != null ? _a13 : 200,
|
5308
5423
|
statusText: init == null ? void 0 : init.statusText,
|
5309
5424
|
headers: prepareResponseHeaders(init == null ? void 0 : init.headers, {
|
5310
5425
|
contentType: "text/plain; charset=utf-8",
|
@@ -5421,6 +5536,8 @@ var StreamData = class {
|
|
5421
5536
|
Output,
|
5422
5537
|
RetryError,
|
5423
5538
|
StreamData,
|
5539
|
+
ToolCallRepairError,
|
5540
|
+
ToolExecutionError,
|
5424
5541
|
TypeValidationError,
|
5425
5542
|
UnsupportedFunctionalityError,
|
5426
5543
|
convertToCoreMessages,
|