ai 5.0.248 → 5.0.249
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 +35 -2
- package/dist/index.d.ts +35 -2
- package/dist/index.js +180 -32
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +180 -32
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.js +1 -1
- package/dist/internal/index.mjs +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -727,7 +727,7 @@ import {
|
|
|
727
727
|
} from "@ai-sdk/provider-utils";
|
|
728
728
|
|
|
729
729
|
// src/version.ts
|
|
730
|
-
var VERSION = true ? "5.0.
|
|
730
|
+
var VERSION = true ? "5.0.249" : "0.0.0-test";
|
|
731
731
|
|
|
732
732
|
// src/util/download/download.ts
|
|
733
733
|
var download = async ({
|
|
@@ -4072,7 +4072,8 @@ function handleUIMessageStreamFinish({
|
|
|
4072
4072
|
originalMessages = [],
|
|
4073
4073
|
onFinish,
|
|
4074
4074
|
onError,
|
|
4075
|
-
stream
|
|
4075
|
+
stream,
|
|
4076
|
+
getOutcome
|
|
4076
4077
|
}) {
|
|
4077
4078
|
let lastMessage = originalMessages == null ? void 0 : originalMessages[originalMessages.length - 1];
|
|
4078
4079
|
if ((lastMessage == null ? void 0 : lastMessage.role) !== "assistant") {
|
|
@@ -4081,19 +4082,34 @@ function handleUIMessageStreamFinish({
|
|
|
4081
4082
|
messageId = lastMessage.id;
|
|
4082
4083
|
}
|
|
4083
4084
|
let isAborted = false;
|
|
4085
|
+
let hasProcessingFailure = false;
|
|
4086
|
+
let processingError;
|
|
4087
|
+
const recordProcessingFailure = (error) => {
|
|
4088
|
+
hasProcessingFailure = true;
|
|
4089
|
+
processingError = error;
|
|
4090
|
+
};
|
|
4084
4091
|
const idInjectedStream = stream.pipeThrough(
|
|
4085
4092
|
new TransformStream({
|
|
4086
4093
|
transform(chunk, controller) {
|
|
4087
|
-
|
|
4088
|
-
|
|
4089
|
-
if (
|
|
4090
|
-
startChunk
|
|
4094
|
+
try {
|
|
4095
|
+
let outputChunk = chunk;
|
|
4096
|
+
if (chunk.type === "start") {
|
|
4097
|
+
const startChunk = chunk;
|
|
4098
|
+
if (startChunk.messageId == null && messageId != null) {
|
|
4099
|
+
outputChunk = {
|
|
4100
|
+
...startChunk,
|
|
4101
|
+
messageId
|
|
4102
|
+
};
|
|
4103
|
+
}
|
|
4091
4104
|
}
|
|
4105
|
+
if (chunk.type === "abort") {
|
|
4106
|
+
isAborted = true;
|
|
4107
|
+
}
|
|
4108
|
+
controller.enqueue(outputChunk);
|
|
4109
|
+
} catch (error) {
|
|
4110
|
+
recordProcessingFailure(error);
|
|
4111
|
+
throw error;
|
|
4092
4112
|
}
|
|
4093
|
-
if (chunk.type === "abort") {
|
|
4094
|
-
isAborted = true;
|
|
4095
|
-
}
|
|
4096
|
-
controller.enqueue(chunk);
|
|
4097
4113
|
}
|
|
4098
4114
|
})
|
|
4099
4115
|
);
|
|
@@ -4106,19 +4122,28 @@ function handleUIMessageStreamFinish({
|
|
|
4106
4122
|
// will be overridden by the stream
|
|
4107
4123
|
});
|
|
4108
4124
|
const runUpdateMessageJob = async (job) => {
|
|
4109
|
-
|
|
4110
|
-
|
|
4125
|
+
try {
|
|
4126
|
+
await job({ state, write: () => {
|
|
4127
|
+
} });
|
|
4128
|
+
} catch (error) {
|
|
4129
|
+
recordProcessingFailure(error);
|
|
4130
|
+
throw error;
|
|
4131
|
+
}
|
|
4111
4132
|
};
|
|
4112
4133
|
let finishCalled = false;
|
|
4113
4134
|
const callOnFinish = async () => {
|
|
4135
|
+
var _a16;
|
|
4114
4136
|
if (finishCalled || !onFinish) {
|
|
4115
4137
|
return;
|
|
4116
4138
|
}
|
|
4117
4139
|
finishCalled = true;
|
|
4118
4140
|
const isContinuation = state.message.id === (lastMessage == null ? void 0 : lastMessage.id);
|
|
4141
|
+
const declaredOutcome = (_a16 = getOutcome == null ? void 0 : getOutcome()) != null ? _a16 : { status: "unknown" };
|
|
4142
|
+
const outcome = hasProcessingFailure ? { status: "failed", error: processingError } : declaredOutcome.status === "unknown" && isAborted ? { status: "aborted" } : declaredOutcome;
|
|
4119
4143
|
await onFinish({
|
|
4120
|
-
isAborted,
|
|
4144
|
+
isAborted: isAborted || outcome.status === "aborted",
|
|
4121
4145
|
isContinuation,
|
|
4146
|
+
outcome,
|
|
4122
4147
|
responseMessage: state.message,
|
|
4123
4148
|
messages: [
|
|
4124
4149
|
...isContinuation ? originalMessages.slice(0, -1) : originalMessages,
|
|
@@ -5715,6 +5740,17 @@ var DefaultStreamTextResult = class {
|
|
|
5715
5740
|
onError = () => "An error occurred."
|
|
5716
5741
|
// prevent leaking server error details to the client by default
|
|
5717
5742
|
} = {}) {
|
|
5743
|
+
let outcome = { status: "unknown" };
|
|
5744
|
+
let hasFatalFailure = false;
|
|
5745
|
+
const setSourceOutcome = (newOutcome) => {
|
|
5746
|
+
if (!hasFatalFailure && outcome.status !== "completed" && outcome.status !== "aborted" && newOutcome.status !== "unknown" && (outcome.status === "unknown" || newOutcome.status !== "failed")) {
|
|
5747
|
+
outcome = newOutcome;
|
|
5748
|
+
}
|
|
5749
|
+
};
|
|
5750
|
+
const failOutcome = (error) => {
|
|
5751
|
+
hasFatalFailure = true;
|
|
5752
|
+
outcome = { status: "failed", error };
|
|
5753
|
+
};
|
|
5718
5754
|
const responseMessageId = generateMessageId != null ? getResponseUIMessageId({
|
|
5719
5755
|
originalMessages,
|
|
5720
5756
|
responseMessageId: generateMessageId
|
|
@@ -5726,7 +5762,48 @@ var DefaultStreamTextResult = class {
|
|
|
5726
5762
|
const dynamic = ((_b = (_a16 = this.tools) == null ? void 0 : _a16[toolName]) == null ? void 0 : _b.type) === "dynamic";
|
|
5727
5763
|
return dynamic ? true : void 0;
|
|
5728
5764
|
};
|
|
5729
|
-
const
|
|
5765
|
+
const sourceReader = this.fullStream.getReader();
|
|
5766
|
+
let sourceReaderReleased = false;
|
|
5767
|
+
let sourceStreamCancelled = false;
|
|
5768
|
+
const releaseSourceReader = () => {
|
|
5769
|
+
if (!sourceReaderReleased) {
|
|
5770
|
+
sourceReader.releaseLock();
|
|
5771
|
+
sourceReaderReleased = true;
|
|
5772
|
+
}
|
|
5773
|
+
};
|
|
5774
|
+
const sourceStream = new ReadableStream({
|
|
5775
|
+
async pull(controller) {
|
|
5776
|
+
try {
|
|
5777
|
+
const { done, value } = await sourceReader.read();
|
|
5778
|
+
if (done) {
|
|
5779
|
+
releaseSourceReader();
|
|
5780
|
+
if (!sourceStreamCancelled) {
|
|
5781
|
+
controller.close();
|
|
5782
|
+
}
|
|
5783
|
+
} else {
|
|
5784
|
+
controller.enqueue(value);
|
|
5785
|
+
}
|
|
5786
|
+
} catch (error) {
|
|
5787
|
+
releaseSourceReader();
|
|
5788
|
+
if (!sourceStreamCancelled) {
|
|
5789
|
+
failOutcome(error);
|
|
5790
|
+
controller.error(error);
|
|
5791
|
+
}
|
|
5792
|
+
}
|
|
5793
|
+
},
|
|
5794
|
+
async cancel(reason) {
|
|
5795
|
+
sourceStreamCancelled = true;
|
|
5796
|
+
if (sourceReaderReleased) {
|
|
5797
|
+
return;
|
|
5798
|
+
}
|
|
5799
|
+
try {
|
|
5800
|
+
await sourceReader.cancel(reason);
|
|
5801
|
+
} finally {
|
|
5802
|
+
releaseSourceReader();
|
|
5803
|
+
}
|
|
5804
|
+
}
|
|
5805
|
+
});
|
|
5806
|
+
const baseStream = sourceStream.pipeThrough(
|
|
5730
5807
|
new TransformStream({
|
|
5731
5808
|
transform: async (part, controller) => {
|
|
5732
5809
|
const messageMetadataValue = messageMetadata == null ? void 0 : messageMetadata({ part });
|
|
@@ -5940,16 +6017,65 @@ var DefaultStreamTextResult = class {
|
|
|
5940
6017
|
messageMetadata: messageMetadataValue
|
|
5941
6018
|
});
|
|
5942
6019
|
}
|
|
6020
|
+
if (part.type === "finish") {
|
|
6021
|
+
setSourceOutcome({ status: "completed" });
|
|
6022
|
+
} else if (part.type === "abort") {
|
|
6023
|
+
setSourceOutcome({ status: "aborted" });
|
|
6024
|
+
} else if (part.type === "error") {
|
|
6025
|
+
setSourceOutcome({ status: "failed", error: part.error });
|
|
6026
|
+
}
|
|
5943
6027
|
}
|
|
5944
6028
|
})
|
|
5945
6029
|
);
|
|
6030
|
+
const baseStreamReader = baseStream.getReader();
|
|
6031
|
+
let baseStreamReaderReleased = false;
|
|
6032
|
+
let baseStreamCancelled = false;
|
|
6033
|
+
const releaseBaseStreamReader = () => {
|
|
6034
|
+
if (!baseStreamReaderReleased) {
|
|
6035
|
+
baseStreamReader.releaseLock();
|
|
6036
|
+
baseStreamReaderReleased = true;
|
|
6037
|
+
}
|
|
6038
|
+
};
|
|
6039
|
+
const trackedBaseStream = new ReadableStream({
|
|
6040
|
+
async pull(controller) {
|
|
6041
|
+
try {
|
|
6042
|
+
const { done, value } = await baseStreamReader.read();
|
|
6043
|
+
if (done) {
|
|
6044
|
+
releaseBaseStreamReader();
|
|
6045
|
+
if (!baseStreamCancelled) {
|
|
6046
|
+
controller.close();
|
|
6047
|
+
}
|
|
6048
|
+
} else {
|
|
6049
|
+
controller.enqueue(value);
|
|
6050
|
+
}
|
|
6051
|
+
} catch (error) {
|
|
6052
|
+
releaseBaseStreamReader();
|
|
6053
|
+
if (!baseStreamCancelled) {
|
|
6054
|
+
failOutcome(error);
|
|
6055
|
+
controller.error(error);
|
|
6056
|
+
}
|
|
6057
|
+
}
|
|
6058
|
+
},
|
|
6059
|
+
async cancel(reason) {
|
|
6060
|
+
baseStreamCancelled = true;
|
|
6061
|
+
if (baseStreamReaderReleased) {
|
|
6062
|
+
return;
|
|
6063
|
+
}
|
|
6064
|
+
try {
|
|
6065
|
+
await baseStreamReader.cancel(reason);
|
|
6066
|
+
} finally {
|
|
6067
|
+
releaseBaseStreamReader();
|
|
6068
|
+
}
|
|
6069
|
+
}
|
|
6070
|
+
});
|
|
5946
6071
|
return createAsyncIterableStream(
|
|
5947
6072
|
handleUIMessageStreamFinish({
|
|
5948
|
-
stream:
|
|
6073
|
+
stream: trackedBaseStream,
|
|
5949
6074
|
messageId: responseMessageId != null ? responseMessageId : generateMessageId == null ? void 0 : generateMessageId(),
|
|
5950
6075
|
originalMessages,
|
|
5951
6076
|
onFinish,
|
|
5952
|
-
onError
|
|
6077
|
+
onError,
|
|
6078
|
+
getOutcome: () => outcome
|
|
5953
6079
|
})
|
|
5954
6080
|
);
|
|
5955
6081
|
}
|
|
@@ -10298,6 +10424,7 @@ function createUIMessageStream({
|
|
|
10298
10424
|
}) {
|
|
10299
10425
|
let controller;
|
|
10300
10426
|
const ongoingStreamPromises = [];
|
|
10427
|
+
let outcome = { status: "unknown" };
|
|
10301
10428
|
const stream = new ReadableStream({
|
|
10302
10429
|
start(controllerArg) {
|
|
10303
10430
|
controller = controllerArg;
|
|
@@ -10309,6 +10436,35 @@ function createUIMessageStream({
|
|
|
10309
10436
|
} catch (error) {
|
|
10310
10437
|
}
|
|
10311
10438
|
}
|
|
10439
|
+
function setOutcome(newOutcome) {
|
|
10440
|
+
if (outcome.status === "unknown" && newOutcome.status !== "unknown") {
|
|
10441
|
+
outcome = newOutcome;
|
|
10442
|
+
}
|
|
10443
|
+
}
|
|
10444
|
+
function failOutcome(error) {
|
|
10445
|
+
outcome = { status: "failed", error };
|
|
10446
|
+
}
|
|
10447
|
+
function safeError(error) {
|
|
10448
|
+
try {
|
|
10449
|
+
controller.error(error);
|
|
10450
|
+
} catch (e) {
|
|
10451
|
+
}
|
|
10452
|
+
}
|
|
10453
|
+
function handleError(error) {
|
|
10454
|
+
failOutcome(error);
|
|
10455
|
+
let errorText;
|
|
10456
|
+
try {
|
|
10457
|
+
errorText = onError(error);
|
|
10458
|
+
} catch (onErrorError) {
|
|
10459
|
+
failOutcome(onErrorError);
|
|
10460
|
+
safeError(onErrorError);
|
|
10461
|
+
return;
|
|
10462
|
+
}
|
|
10463
|
+
safeEnqueue({
|
|
10464
|
+
type: "error",
|
|
10465
|
+
errorText
|
|
10466
|
+
});
|
|
10467
|
+
}
|
|
10312
10468
|
try {
|
|
10313
10469
|
const result = execute({
|
|
10314
10470
|
writer: {
|
|
@@ -10326,38 +10482,29 @@ function createUIMessageStream({
|
|
|
10326
10482
|
safeEnqueue(value);
|
|
10327
10483
|
}
|
|
10328
10484
|
})().catch((error) => {
|
|
10329
|
-
|
|
10330
|
-
type: "error",
|
|
10331
|
-
errorText: onError(error)
|
|
10332
|
-
});
|
|
10485
|
+
handleError(error);
|
|
10333
10486
|
})
|
|
10334
10487
|
);
|
|
10335
10488
|
},
|
|
10489
|
+
setOutcome,
|
|
10336
10490
|
onError
|
|
10337
10491
|
}
|
|
10338
10492
|
});
|
|
10339
10493
|
if (result) {
|
|
10340
10494
|
ongoingStreamPromises.push(
|
|
10341
10495
|
result.catch((error) => {
|
|
10342
|
-
|
|
10343
|
-
type: "error",
|
|
10344
|
-
errorText: onError(error)
|
|
10345
|
-
});
|
|
10496
|
+
handleError(error);
|
|
10346
10497
|
})
|
|
10347
10498
|
);
|
|
10348
10499
|
}
|
|
10349
10500
|
} catch (error) {
|
|
10350
|
-
|
|
10351
|
-
type: "error",
|
|
10352
|
-
errorText: onError(error)
|
|
10353
|
-
});
|
|
10501
|
+
handleError(error);
|
|
10354
10502
|
}
|
|
10355
|
-
const waitForStreams =
|
|
10503
|
+
const waitForStreams = (async () => {
|
|
10356
10504
|
while (ongoingStreamPromises.length > 0) {
|
|
10357
10505
|
await ongoingStreamPromises.shift();
|
|
10358
10506
|
}
|
|
10359
|
-
|
|
10360
|
-
});
|
|
10507
|
+
})();
|
|
10361
10508
|
waitForStreams.finally(() => {
|
|
10362
10509
|
try {
|
|
10363
10510
|
controller.close();
|
|
@@ -10369,7 +10516,8 @@ function createUIMessageStream({
|
|
|
10369
10516
|
messageId: generateId3(),
|
|
10370
10517
|
originalMessages,
|
|
10371
10518
|
onFinish,
|
|
10372
|
-
onError
|
|
10519
|
+
onError,
|
|
10520
|
+
getOutcome: () => outcome
|
|
10373
10521
|
});
|
|
10374
10522
|
}
|
|
10375
10523
|
|