ai 6.0.293 → 6.0.295
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 +48 -4
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +48 -4
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.js +1 -1
- package/dist/internal/index.mjs +1 -1
- package/docs/02-foundations/02-providers-and-models.mdx +1 -0
- package/docs/03-ai-sdk-core/36-transcription.mdx +1 -0
- package/package.json +4 -4
- package/src/ui/chat.ts +36 -7
- package/src/util/write-to-server-response.ts +41 -2
package/dist/index.mjs
CHANGED
|
@@ -1224,7 +1224,7 @@ import {
|
|
|
1224
1224
|
} from "@ai-sdk/provider-utils";
|
|
1225
1225
|
|
|
1226
1226
|
// src/version.ts
|
|
1227
|
-
var VERSION = true ? "6.0.
|
|
1227
|
+
var VERSION = true ? "6.0.295" : "0.0.0-test";
|
|
1228
1228
|
|
|
1229
1229
|
// src/util/download/download.ts
|
|
1230
1230
|
var download = async ({
|
|
@@ -5575,21 +5575,44 @@ function writeToServerResponse({
|
|
|
5575
5575
|
response.writeHead(statusCode, headers);
|
|
5576
5576
|
}
|
|
5577
5577
|
const reader = stream.getReader();
|
|
5578
|
+
let clientDisconnected = false;
|
|
5579
|
+
let onDisconnect;
|
|
5580
|
+
const handleClose = () => {
|
|
5581
|
+
if (response.writableFinished) {
|
|
5582
|
+
return;
|
|
5583
|
+
}
|
|
5584
|
+
clientDisconnected = true;
|
|
5585
|
+
onDisconnect == null ? void 0 : onDisconnect();
|
|
5586
|
+
reader.cancel(new Error("Client disconnected.")).catch(() => {
|
|
5587
|
+
});
|
|
5588
|
+
};
|
|
5589
|
+
response.once("close", handleClose);
|
|
5590
|
+
if (response.destroyed) {
|
|
5591
|
+
handleClose();
|
|
5592
|
+
}
|
|
5578
5593
|
const read = async () => {
|
|
5579
5594
|
try {
|
|
5580
5595
|
while (true) {
|
|
5581
5596
|
const { done, value } = await reader.read();
|
|
5582
|
-
if (done)
|
|
5597
|
+
if (done || clientDisconnected || response.destroyed)
|
|
5583
5598
|
break;
|
|
5584
5599
|
const canContinue = response.write(value);
|
|
5585
5600
|
if (!canContinue) {
|
|
5586
5601
|
await new Promise((resolve3) => {
|
|
5602
|
+
onDisconnect = resolve3;
|
|
5587
5603
|
response.once("drain", resolve3);
|
|
5588
5604
|
});
|
|
5605
|
+
onDisconnect = void 0;
|
|
5589
5606
|
}
|
|
5590
5607
|
}
|
|
5591
5608
|
} finally {
|
|
5592
|
-
response.
|
|
5609
|
+
response.off("close", handleClose);
|
|
5610
|
+
if (clientDisconnected || response.destroyed) {
|
|
5611
|
+
reader.cancel().catch(() => {
|
|
5612
|
+
});
|
|
5613
|
+
} else {
|
|
5614
|
+
response.end();
|
|
5615
|
+
}
|
|
5593
5616
|
}
|
|
5594
5617
|
};
|
|
5595
5618
|
return read();
|
|
@@ -14417,6 +14440,7 @@ var AbstractChat = class {
|
|
|
14417
14440
|
}) {
|
|
14418
14441
|
this.activeResponse = void 0;
|
|
14419
14442
|
this.activeResumeRequest = void 0;
|
|
14443
|
+
this.resumableStreamState = void 0;
|
|
14420
14444
|
this.jobExecutor = new SerialJobExecutor();
|
|
14421
14445
|
/**
|
|
14422
14446
|
* Appends or replaces a user message to the chat list. This triggers the API call to fetch
|
|
@@ -14696,6 +14720,9 @@ var AbstractChat = class {
|
|
|
14696
14720
|
messageId
|
|
14697
14721
|
}) {
|
|
14698
14722
|
var _a23, _b, _c;
|
|
14723
|
+
if (trigger !== "resume-stream") {
|
|
14724
|
+
this.resumableStreamState = void 0;
|
|
14725
|
+
}
|
|
14699
14726
|
const abortController = new AbortController();
|
|
14700
14727
|
const activeResumeRequest = trigger === "resume-stream" ? { abortController } : void 0;
|
|
14701
14728
|
if (activeResumeRequest) {
|
|
@@ -14723,12 +14750,14 @@ var AbstractChat = class {
|
|
|
14723
14750
|
}));
|
|
14724
14751
|
if (isCurrentRequest()) {
|
|
14725
14752
|
this.setStatus({ status: "ready" });
|
|
14753
|
+
this.resumableStreamState = void 0;
|
|
14726
14754
|
}
|
|
14727
14755
|
clearActiveResumeRequest();
|
|
14728
14756
|
return;
|
|
14729
14757
|
}
|
|
14730
14758
|
if (reconnect == null) {
|
|
14731
14759
|
this.setStatus({ status: "ready" });
|
|
14760
|
+
this.resumableStreamState = void 0;
|
|
14732
14761
|
clearActiveResumeRequest();
|
|
14733
14762
|
return;
|
|
14734
14763
|
}
|
|
@@ -14737,6 +14766,7 @@ var AbstractChat = class {
|
|
|
14737
14766
|
if (abortController.signal.aborted || err.name === "AbortError") {
|
|
14738
14767
|
if (isCurrentRequest()) {
|
|
14739
14768
|
this.setStatus({ status: "ready" });
|
|
14769
|
+
this.resumableStreamState = void 0;
|
|
14740
14770
|
}
|
|
14741
14771
|
clearActiveResumeRequest();
|
|
14742
14772
|
return;
|
|
@@ -14763,7 +14793,7 @@ var AbstractChat = class {
|
|
|
14763
14793
|
let activeResponse;
|
|
14764
14794
|
try {
|
|
14765
14795
|
const response = {
|
|
14766
|
-
state: createStreamingUIMessageState({
|
|
14796
|
+
state: trigger === "resume-stream" && this.resumableStreamState != null ? this.resumableStreamState : createStreamingUIMessageState({
|
|
14767
14797
|
lastMessage: trigger === "resume-stream" || trigger === "regenerate-message" ? void 0 : this.state.snapshot(responseMessage),
|
|
14768
14798
|
messageId: this.generateId()
|
|
14769
14799
|
}),
|
|
@@ -14842,17 +14872,26 @@ var AbstractChat = class {
|
|
|
14842
14872
|
if (isAbort) {
|
|
14843
14873
|
if (isCurrentRequest()) {
|
|
14844
14874
|
this.setStatus({ status: "ready" });
|
|
14875
|
+
if (this.resumableStreamState === response.state) {
|
|
14876
|
+
this.resumableStreamState = void 0;
|
|
14877
|
+
}
|
|
14845
14878
|
}
|
|
14846
14879
|
return null;
|
|
14847
14880
|
}
|
|
14848
14881
|
if (isCurrentRequest()) {
|
|
14849
14882
|
this.setStatus({ status: "ready" });
|
|
14883
|
+
if (this.resumableStreamState === response.state) {
|
|
14884
|
+
this.resumableStreamState = void 0;
|
|
14885
|
+
}
|
|
14850
14886
|
}
|
|
14851
14887
|
} catch (err) {
|
|
14852
14888
|
if (isAbort || err.name === "AbortError") {
|
|
14853
14889
|
isAbort = true;
|
|
14854
14890
|
if (isCurrentRequest()) {
|
|
14855
14891
|
this.setStatus({ status: "ready" });
|
|
14892
|
+
if (this.resumableStreamState === (activeResponse == null ? void 0 : activeResponse.state)) {
|
|
14893
|
+
this.resumableStreamState = void 0;
|
|
14894
|
+
}
|
|
14856
14895
|
}
|
|
14857
14896
|
return null;
|
|
14858
14897
|
}
|
|
@@ -14863,6 +14902,11 @@ var AbstractChat = class {
|
|
|
14863
14902
|
if (err instanceof TypeError && (err.message.toLowerCase().includes("fetch") || err.message.toLowerCase().includes("network"))) {
|
|
14864
14903
|
isDisconnect = true;
|
|
14865
14904
|
}
|
|
14905
|
+
if (isDisconnect) {
|
|
14906
|
+
this.resumableStreamState = activeResponse == null ? void 0 : activeResponse.state;
|
|
14907
|
+
} else if (this.resumableStreamState === (activeResponse == null ? void 0 : activeResponse.state)) {
|
|
14908
|
+
this.resumableStreamState = void 0;
|
|
14909
|
+
}
|
|
14866
14910
|
if (this.onError && err instanceof Error) {
|
|
14867
14911
|
this.onError(err);
|
|
14868
14912
|
}
|