ai 5.0.229 → 5.0.231
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 +15 -0
- package/dist/index.d.mts +6 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.js +77 -21
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +77 -21
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.js +1 -1
- package/dist/internal/index.mjs +1 -1
- package/package.json +2 -2
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.231" : "0.0.0-test";
|
|
731
731
|
|
|
732
732
|
// src/util/download/download.ts
|
|
733
733
|
var download = async ({
|
|
@@ -4221,9 +4221,20 @@ function createAsyncIterableStream(source) {
|
|
|
4221
4221
|
// src/util/consume-stream.ts
|
|
4222
4222
|
async function consumeStream({
|
|
4223
4223
|
stream,
|
|
4224
|
-
onError
|
|
4224
|
+
onError,
|
|
4225
|
+
abortSignal
|
|
4225
4226
|
}) {
|
|
4226
4227
|
const reader = stream.getReader();
|
|
4228
|
+
let cancelPromise;
|
|
4229
|
+
const cancelOnAbort = () => {
|
|
4230
|
+
cancelPromise != null ? cancelPromise : cancelPromise = reader.cancel().catch(() => {
|
|
4231
|
+
});
|
|
4232
|
+
};
|
|
4233
|
+
if (abortSignal == null ? void 0 : abortSignal.aborted) {
|
|
4234
|
+
cancelOnAbort();
|
|
4235
|
+
} else {
|
|
4236
|
+
abortSignal == null ? void 0 : abortSignal.addEventListener("abort", cancelOnAbort, { once: true });
|
|
4237
|
+
}
|
|
4227
4238
|
try {
|
|
4228
4239
|
while (true) {
|
|
4229
4240
|
const { done } = await reader.read();
|
|
@@ -4233,6 +4244,8 @@ async function consumeStream({
|
|
|
4233
4244
|
} catch (error) {
|
|
4234
4245
|
onError == null ? void 0 : onError(error);
|
|
4235
4246
|
} finally {
|
|
4247
|
+
await cancelPromise;
|
|
4248
|
+
abortSignal == null ? void 0 : abortSignal.removeEventListener("abort", cancelOnAbort);
|
|
4236
4249
|
reader.releaseLock();
|
|
4237
4250
|
}
|
|
4238
4251
|
}
|
|
@@ -9307,7 +9320,8 @@ var HttpChatTransport = class {
|
|
|
9307
9320
|
const response = await fetch2(api, {
|
|
9308
9321
|
method: "GET",
|
|
9309
9322
|
headers,
|
|
9310
|
-
credentials
|
|
9323
|
+
credentials,
|
|
9324
|
+
signal: options.abortSignal
|
|
9311
9325
|
});
|
|
9312
9326
|
if (response.status === 204) {
|
|
9313
9327
|
return null;
|
|
@@ -9362,6 +9376,7 @@ var AbstractChat = class {
|
|
|
9362
9376
|
sendAutomaticallyWhen
|
|
9363
9377
|
}) {
|
|
9364
9378
|
this.activeResponse = void 0;
|
|
9379
|
+
this.activeResumeRequest = void 0;
|
|
9365
9380
|
this.jobExecutor = new SerialJobExecutor();
|
|
9366
9381
|
/**
|
|
9367
9382
|
* Appends or replaces a user message to the chat list. This triggers the API call to fetch
|
|
@@ -9501,12 +9516,9 @@ var AbstractChat = class {
|
|
|
9501
9516
|
* Abort the current request immediately, keep the generated tokens if any.
|
|
9502
9517
|
*/
|
|
9503
9518
|
this.stop = async () => {
|
|
9504
|
-
var _a16;
|
|
9505
|
-
|
|
9506
|
-
|
|
9507
|
-
if ((_a16 = this.activeResponse) == null ? void 0 : _a16.abortController) {
|
|
9508
|
-
this.activeResponse.abortController.abort();
|
|
9509
|
-
}
|
|
9519
|
+
var _a16, _b;
|
|
9520
|
+
(_a16 = this.activeResumeRequest) == null ? void 0 : _a16.abortController.abort();
|
|
9521
|
+
(_b = this.activeResponse) == null ? void 0 : _b.abortController.abort();
|
|
9510
9522
|
};
|
|
9511
9523
|
this.id = id;
|
|
9512
9524
|
this.transport = transport;
|
|
@@ -9559,7 +9571,19 @@ var AbstractChat = class {
|
|
|
9559
9571
|
body,
|
|
9560
9572
|
messageId
|
|
9561
9573
|
}) {
|
|
9562
|
-
var _a16, _b, _c;
|
|
9574
|
+
var _a16, _b, _c, _d;
|
|
9575
|
+
const abortController = new AbortController();
|
|
9576
|
+
const activeResumeRequest = trigger === "resume-stream" ? { abortController } : void 0;
|
|
9577
|
+
if (activeResumeRequest) {
|
|
9578
|
+
(_a16 = this.activeResumeRequest) == null ? void 0 : _a16.abortController.abort();
|
|
9579
|
+
this.activeResumeRequest = activeResumeRequest;
|
|
9580
|
+
}
|
|
9581
|
+
const isCurrentRequest = () => activeResumeRequest == null || this.activeResumeRequest === activeResumeRequest;
|
|
9582
|
+
const clearActiveResumeRequest = () => {
|
|
9583
|
+
if (this.activeResumeRequest === activeResumeRequest) {
|
|
9584
|
+
this.activeResumeRequest = void 0;
|
|
9585
|
+
}
|
|
9586
|
+
};
|
|
9563
9587
|
this.setStatus({ status: "submitted", error: void 0 });
|
|
9564
9588
|
const lastMessage = this.lastMessage;
|
|
9565
9589
|
let isAbort = false;
|
|
@@ -9572,7 +9596,7 @@ var AbstractChat = class {
|
|
|
9572
9596
|
lastMessage: this.state.snapshot(lastMessage),
|
|
9573
9597
|
messageId: this.generateId()
|
|
9574
9598
|
}),
|
|
9575
|
-
abortController
|
|
9599
|
+
abortController
|
|
9576
9600
|
};
|
|
9577
9601
|
activeResponse = response;
|
|
9578
9602
|
response.abortController.signal.addEventListener("abort", () => {
|
|
@@ -9583,12 +9607,23 @@ var AbstractChat = class {
|
|
|
9583
9607
|
if (trigger === "resume-stream") {
|
|
9584
9608
|
const reconnect = await this.transport.reconnectToStream({
|
|
9585
9609
|
chatId: this.id,
|
|
9610
|
+
abortSignal: abortController.signal,
|
|
9586
9611
|
metadata,
|
|
9587
9612
|
headers,
|
|
9588
9613
|
body
|
|
9589
9614
|
});
|
|
9615
|
+
if (abortController.signal.aborted || !isCurrentRequest()) {
|
|
9616
|
+
await (reconnect == null ? void 0 : reconnect.cancel().catch(() => {
|
|
9617
|
+
}));
|
|
9618
|
+
if (isCurrentRequest()) {
|
|
9619
|
+
this.setStatus({ status: "ready" });
|
|
9620
|
+
}
|
|
9621
|
+
return;
|
|
9622
|
+
}
|
|
9590
9623
|
if (reconnect == null) {
|
|
9591
|
-
|
|
9624
|
+
if (isCurrentRequest()) {
|
|
9625
|
+
this.setStatus({ status: "ready" });
|
|
9626
|
+
}
|
|
9592
9627
|
return;
|
|
9593
9628
|
}
|
|
9594
9629
|
stream = reconnect;
|
|
@@ -9606,11 +9641,17 @@ var AbstractChat = class {
|
|
|
9606
9641
|
}
|
|
9607
9642
|
const runUpdateMessageJob = (job) => (
|
|
9608
9643
|
// serialize the job execution to avoid race conditions:
|
|
9609
|
-
this.jobExecutor.run(
|
|
9610
|
-
()
|
|
9644
|
+
this.jobExecutor.run(() => {
|
|
9645
|
+
if (response.abortController.signal.aborted) {
|
|
9646
|
+
return Promise.resolve();
|
|
9647
|
+
}
|
|
9648
|
+
return job({
|
|
9611
9649
|
state: response.state,
|
|
9612
9650
|
write: () => {
|
|
9613
9651
|
var _a17;
|
|
9652
|
+
if (response.abortController.signal.aborted) {
|
|
9653
|
+
return;
|
|
9654
|
+
}
|
|
9614
9655
|
this.setStatus({ status: "streaming" });
|
|
9615
9656
|
const replaceLastMessage = response.state.message.id === ((_a17 = this.lastMessage) == null ? void 0 : _a17.id);
|
|
9616
9657
|
if (replaceLastMessage) {
|
|
@@ -9622,8 +9663,8 @@ var AbstractChat = class {
|
|
|
9622
9663
|
this.state.pushMessage(response.state.message);
|
|
9623
9664
|
}
|
|
9624
9665
|
}
|
|
9625
|
-
})
|
|
9626
|
-
)
|
|
9666
|
+
});
|
|
9667
|
+
})
|
|
9627
9668
|
);
|
|
9628
9669
|
await consumeStream({
|
|
9629
9670
|
stream: processUIMessageStream({
|
|
@@ -9637,15 +9678,29 @@ var AbstractChat = class {
|
|
|
9637
9678
|
throw error;
|
|
9638
9679
|
}
|
|
9639
9680
|
}),
|
|
9681
|
+
abortSignal: response.abortController.signal,
|
|
9640
9682
|
onError: (error) => {
|
|
9641
9683
|
throw error;
|
|
9642
9684
|
}
|
|
9643
9685
|
});
|
|
9644
|
-
|
|
9686
|
+
if (isAbort) {
|
|
9687
|
+
if (isCurrentRequest()) {
|
|
9688
|
+
this.setStatus({ status: "ready" });
|
|
9689
|
+
}
|
|
9690
|
+
return null;
|
|
9691
|
+
}
|
|
9692
|
+
if (isCurrentRequest()) {
|
|
9693
|
+
this.setStatus({ status: "ready" });
|
|
9694
|
+
}
|
|
9645
9695
|
} catch (err) {
|
|
9646
9696
|
if (isAbort || err.name === "AbortError") {
|
|
9647
9697
|
isAbort = true;
|
|
9648
|
-
|
|
9698
|
+
if (isCurrentRequest()) {
|
|
9699
|
+
this.setStatus({ status: "ready" });
|
|
9700
|
+
}
|
|
9701
|
+
return null;
|
|
9702
|
+
}
|
|
9703
|
+
if (!isCurrentRequest()) {
|
|
9649
9704
|
return null;
|
|
9650
9705
|
}
|
|
9651
9706
|
isError = true;
|
|
@@ -9659,7 +9714,7 @@ var AbstractChat = class {
|
|
|
9659
9714
|
} finally {
|
|
9660
9715
|
try {
|
|
9661
9716
|
if (activeResponse) {
|
|
9662
|
-
(
|
|
9717
|
+
(_b = this.onFinish) == null ? void 0 : _b.call(this, {
|
|
9663
9718
|
message: activeResponse.state.message,
|
|
9664
9719
|
messages: this.state.messages,
|
|
9665
9720
|
isAbort,
|
|
@@ -9674,11 +9729,12 @@ var AbstractChat = class {
|
|
|
9674
9729
|
if (this.activeResponse === activeResponse) {
|
|
9675
9730
|
this.activeResponse = void 0;
|
|
9676
9731
|
}
|
|
9732
|
+
clearActiveResumeRequest();
|
|
9677
9733
|
}
|
|
9678
|
-
if (((
|
|
9734
|
+
if (((_c = this.sendAutomaticallyWhen) == null ? void 0 : _c.call(this, { messages: this.state.messages })) && !isError) {
|
|
9679
9735
|
await this.makeRequest({
|
|
9680
9736
|
trigger: "submit-message",
|
|
9681
|
-
messageId: (
|
|
9737
|
+
messageId: (_d = this.lastMessage) == null ? void 0 : _d.id,
|
|
9682
9738
|
metadata,
|
|
9683
9739
|
headers,
|
|
9684
9740
|
body
|