ai 5.0.267 → 5.0.269
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 +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +78 -12
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +78 -12
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.js +1 -1
- package/dist/internal/index.mjs +1 -1
- package/package.json +3 -3
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.269" : "0.0.0-test";
|
|
731
731
|
|
|
732
732
|
// src/util/download/download.ts
|
|
733
733
|
var download = async ({
|
|
@@ -2935,21 +2935,44 @@ function writeToServerResponse({
|
|
|
2935
2935
|
response.writeHead(statusCode, headers);
|
|
2936
2936
|
}
|
|
2937
2937
|
const reader = stream.getReader();
|
|
2938
|
+
let clientDisconnected = false;
|
|
2939
|
+
let onDisconnect;
|
|
2940
|
+
const handleClose = () => {
|
|
2941
|
+
if (response.writableFinished) {
|
|
2942
|
+
return;
|
|
2943
|
+
}
|
|
2944
|
+
clientDisconnected = true;
|
|
2945
|
+
onDisconnect == null ? void 0 : onDisconnect();
|
|
2946
|
+
reader.cancel(new Error("Client disconnected.")).catch(() => {
|
|
2947
|
+
});
|
|
2948
|
+
};
|
|
2949
|
+
response.once("close", handleClose);
|
|
2950
|
+
if (response.destroyed) {
|
|
2951
|
+
handleClose();
|
|
2952
|
+
}
|
|
2938
2953
|
const read = async () => {
|
|
2939
2954
|
try {
|
|
2940
2955
|
while (true) {
|
|
2941
2956
|
const { done, value } = await reader.read();
|
|
2942
|
-
if (done)
|
|
2957
|
+
if (done || clientDisconnected || response.destroyed)
|
|
2943
2958
|
break;
|
|
2944
2959
|
const canContinue = response.write(value);
|
|
2945
2960
|
if (!canContinue) {
|
|
2946
2961
|
await new Promise((resolve2) => {
|
|
2962
|
+
onDisconnect = resolve2;
|
|
2947
2963
|
response.once("drain", resolve2);
|
|
2948
2964
|
});
|
|
2965
|
+
onDisconnect = void 0;
|
|
2949
2966
|
}
|
|
2950
2967
|
}
|
|
2951
2968
|
} finally {
|
|
2952
|
-
response.
|
|
2969
|
+
response.off("close", handleClose);
|
|
2970
|
+
if (clientDisconnected || response.destroyed) {
|
|
2971
|
+
reader.cancel().catch(() => {
|
|
2972
|
+
});
|
|
2973
|
+
} else {
|
|
2974
|
+
response.end();
|
|
2975
|
+
}
|
|
2953
2976
|
}
|
|
2954
2977
|
};
|
|
2955
2978
|
return read();
|
|
@@ -8748,28 +8771,51 @@ function smoothStream({
|
|
|
8748
8771
|
return () => {
|
|
8749
8772
|
let buffer = "";
|
|
8750
8773
|
let id = "";
|
|
8774
|
+
let providerMetadata;
|
|
8775
|
+
function flushBuffer(controller) {
|
|
8776
|
+
if (buffer.length > 0 || providerMetadata != null) {
|
|
8777
|
+
controller.enqueue({
|
|
8778
|
+
type: "text-delta",
|
|
8779
|
+
text: buffer,
|
|
8780
|
+
id,
|
|
8781
|
+
...providerMetadata != null ? { providerMetadata } : {}
|
|
8782
|
+
});
|
|
8783
|
+
buffer = "";
|
|
8784
|
+
providerMetadata = void 0;
|
|
8785
|
+
}
|
|
8786
|
+
}
|
|
8751
8787
|
return new TransformStream({
|
|
8752
8788
|
async transform(chunk, controller) {
|
|
8753
8789
|
if (chunk.type !== "text-delta") {
|
|
8754
|
-
|
|
8755
|
-
controller.enqueue({ type: "text-delta", text: buffer, id });
|
|
8756
|
-
buffer = "";
|
|
8757
|
-
}
|
|
8790
|
+
flushBuffer(controller);
|
|
8758
8791
|
controller.enqueue(chunk);
|
|
8759
8792
|
return;
|
|
8760
8793
|
}
|
|
8761
|
-
if (chunk.
|
|
8762
|
-
controller
|
|
8763
|
-
|
|
8794
|
+
if (chunk.text.length === 0 && chunk.providerMetadata != null) {
|
|
8795
|
+
flushBuffer(controller);
|
|
8796
|
+
controller.enqueue(chunk);
|
|
8797
|
+
return;
|
|
8798
|
+
}
|
|
8799
|
+
if (buffer.length > 0 && (chunk.id !== id || providerMetadata != null || chunk.providerMetadata != null)) {
|
|
8800
|
+
flushBuffer(controller);
|
|
8764
8801
|
}
|
|
8765
8802
|
buffer += chunk.text;
|
|
8766
8803
|
id = chunk.id;
|
|
8804
|
+
providerMetadata = chunk.providerMetadata;
|
|
8767
8805
|
let match;
|
|
8768
8806
|
while ((match = detectChunk(buffer)) != null) {
|
|
8769
|
-
controller.enqueue({
|
|
8807
|
+
controller.enqueue({
|
|
8808
|
+
type: "text-delta",
|
|
8809
|
+
text: match,
|
|
8810
|
+
id,
|
|
8811
|
+
...providerMetadata != null ? { providerMetadata } : {}
|
|
8812
|
+
});
|
|
8770
8813
|
buffer = buffer.slice(match.length);
|
|
8771
8814
|
await delay2(isDocumentHidden() ? null : delayInMs);
|
|
8772
8815
|
}
|
|
8816
|
+
if (buffer.length === 0) {
|
|
8817
|
+
providerMetadata = void 0;
|
|
8818
|
+
}
|
|
8773
8819
|
}
|
|
8774
8820
|
});
|
|
8775
8821
|
};
|
|
@@ -9737,6 +9783,7 @@ var AbstractChat = class {
|
|
|
9737
9783
|
}) {
|
|
9738
9784
|
this.activeResponse = void 0;
|
|
9739
9785
|
this.activeResumeRequest = void 0;
|
|
9786
|
+
this.resumableStreamState = void 0;
|
|
9740
9787
|
this.jobExecutor = new SerialJobExecutor();
|
|
9741
9788
|
/**
|
|
9742
9789
|
* Appends or replaces a user message to the chat list. This triggers the API call to fetch
|
|
@@ -9932,6 +9979,9 @@ var AbstractChat = class {
|
|
|
9932
9979
|
messageId
|
|
9933
9980
|
}) {
|
|
9934
9981
|
var _a16, _b, _c, _d;
|
|
9982
|
+
if (trigger !== "resume-stream") {
|
|
9983
|
+
this.resumableStreamState = void 0;
|
|
9984
|
+
}
|
|
9935
9985
|
const abortController = new AbortController();
|
|
9936
9986
|
const activeResumeRequest = trigger === "resume-stream" ? { abortController } : void 0;
|
|
9937
9987
|
if (activeResumeRequest) {
|
|
@@ -9952,7 +10002,7 @@ var AbstractChat = class {
|
|
|
9952
10002
|
let activeResponse;
|
|
9953
10003
|
try {
|
|
9954
10004
|
const response = {
|
|
9955
|
-
state: createStreamingUIMessageState({
|
|
10005
|
+
state: trigger === "resume-stream" && this.resumableStreamState != null ? this.resumableStreamState : createStreamingUIMessageState({
|
|
9956
10006
|
lastMessage: trigger === "resume-stream" ? void 0 : this.state.snapshot(lastMessage),
|
|
9957
10007
|
messageId: this.generateId()
|
|
9958
10008
|
}),
|
|
@@ -9977,12 +10027,14 @@ var AbstractChat = class {
|
|
|
9977
10027
|
}));
|
|
9978
10028
|
if (isCurrentRequest()) {
|
|
9979
10029
|
this.setStatus({ status: "ready" });
|
|
10030
|
+
this.resumableStreamState = void 0;
|
|
9980
10031
|
}
|
|
9981
10032
|
return;
|
|
9982
10033
|
}
|
|
9983
10034
|
if (reconnect == null) {
|
|
9984
10035
|
if (isCurrentRequest()) {
|
|
9985
10036
|
this.setStatus({ status: "ready" });
|
|
10037
|
+
this.resumableStreamState = void 0;
|
|
9986
10038
|
}
|
|
9987
10039
|
return;
|
|
9988
10040
|
}
|
|
@@ -10048,17 +10100,26 @@ var AbstractChat = class {
|
|
|
10048
10100
|
if (isAbort) {
|
|
10049
10101
|
if (isCurrentRequest()) {
|
|
10050
10102
|
this.setStatus({ status: "ready" });
|
|
10103
|
+
if (this.resumableStreamState === response.state) {
|
|
10104
|
+
this.resumableStreamState = void 0;
|
|
10105
|
+
}
|
|
10051
10106
|
}
|
|
10052
10107
|
return null;
|
|
10053
10108
|
}
|
|
10054
10109
|
if (isCurrentRequest()) {
|
|
10055
10110
|
this.setStatus({ status: "ready" });
|
|
10111
|
+
if (this.resumableStreamState === response.state) {
|
|
10112
|
+
this.resumableStreamState = void 0;
|
|
10113
|
+
}
|
|
10056
10114
|
}
|
|
10057
10115
|
} catch (err) {
|
|
10058
10116
|
if (isAbort || err.name === "AbortError") {
|
|
10059
10117
|
isAbort = true;
|
|
10060
10118
|
if (isCurrentRequest()) {
|
|
10061
10119
|
this.setStatus({ status: "ready" });
|
|
10120
|
+
if (this.resumableStreamState === (activeResponse == null ? void 0 : activeResponse.state)) {
|
|
10121
|
+
this.resumableStreamState = void 0;
|
|
10122
|
+
}
|
|
10062
10123
|
}
|
|
10063
10124
|
return null;
|
|
10064
10125
|
}
|
|
@@ -10069,6 +10130,11 @@ var AbstractChat = class {
|
|
|
10069
10130
|
if (err instanceof TypeError && (err.message.toLowerCase().includes("fetch") || err.message.toLowerCase().includes("network"))) {
|
|
10070
10131
|
isDisconnect = true;
|
|
10071
10132
|
}
|
|
10133
|
+
if (isDisconnect) {
|
|
10134
|
+
this.resumableStreamState = activeResponse == null ? void 0 : activeResponse.state;
|
|
10135
|
+
} else if (this.resumableStreamState === (activeResponse == null ? void 0 : activeResponse.state)) {
|
|
10136
|
+
this.resumableStreamState = void 0;
|
|
10137
|
+
}
|
|
10072
10138
|
if (this.onError && err instanceof Error) {
|
|
10073
10139
|
this.onError(err);
|
|
10074
10140
|
}
|