ai 5.0.230 → 5.0.232
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 +6 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.js +85 -23
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +85 -23
- 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.232" : "0.0.0-test";
|
|
731
731
|
|
|
732
732
|
// src/util/download/download.ts
|
|
733
733
|
var download = async ({
|
|
@@ -1631,7 +1631,8 @@ function recordSpan({
|
|
|
1631
1631
|
tracer,
|
|
1632
1632
|
attributes,
|
|
1633
1633
|
fn,
|
|
1634
|
-
endWhenDone = true
|
|
1634
|
+
endWhenDone = true,
|
|
1635
|
+
endOnError = endWhenDone
|
|
1635
1636
|
}) {
|
|
1636
1637
|
return tracer.startActiveSpan(name16, { attributes }, async (span) => {
|
|
1637
1638
|
try {
|
|
@@ -1644,7 +1645,9 @@ function recordSpan({
|
|
|
1644
1645
|
try {
|
|
1645
1646
|
recordErrorOnSpan(span, error);
|
|
1646
1647
|
} finally {
|
|
1647
|
-
|
|
1648
|
+
if (endOnError) {
|
|
1649
|
+
span.end();
|
|
1650
|
+
}
|
|
1648
1651
|
}
|
|
1649
1652
|
throw error;
|
|
1650
1653
|
}
|
|
@@ -4221,9 +4224,20 @@ function createAsyncIterableStream(source) {
|
|
|
4221
4224
|
// src/util/consume-stream.ts
|
|
4222
4225
|
async function consumeStream({
|
|
4223
4226
|
stream,
|
|
4224
|
-
onError
|
|
4227
|
+
onError,
|
|
4228
|
+
abortSignal
|
|
4225
4229
|
}) {
|
|
4226
4230
|
const reader = stream.getReader();
|
|
4231
|
+
let cancelPromise;
|
|
4232
|
+
const cancelOnAbort = () => {
|
|
4233
|
+
cancelPromise != null ? cancelPromise : cancelPromise = reader.cancel().catch(() => {
|
|
4234
|
+
});
|
|
4235
|
+
};
|
|
4236
|
+
if (abortSignal == null ? void 0 : abortSignal.aborted) {
|
|
4237
|
+
cancelOnAbort();
|
|
4238
|
+
} else {
|
|
4239
|
+
abortSignal == null ? void 0 : abortSignal.addEventListener("abort", cancelOnAbort, { once: true });
|
|
4240
|
+
}
|
|
4227
4241
|
try {
|
|
4228
4242
|
while (true) {
|
|
4229
4243
|
const { done } = await reader.read();
|
|
@@ -4233,6 +4247,8 @@ async function consumeStream({
|
|
|
4233
4247
|
} catch (error) {
|
|
4234
4248
|
onError == null ? void 0 : onError(error);
|
|
4235
4249
|
} finally {
|
|
4250
|
+
await cancelPromise;
|
|
4251
|
+
abortSignal == null ? void 0 : abortSignal.removeEventListener("abort", cancelOnAbort);
|
|
4236
4252
|
reader.releaseLock();
|
|
4237
4253
|
}
|
|
4238
4254
|
}
|
|
@@ -5186,6 +5202,7 @@ var DefaultStreamTextResult = class {
|
|
|
5186
5202
|
}),
|
|
5187
5203
|
tracer,
|
|
5188
5204
|
endWhenDone: false,
|
|
5205
|
+
endOnError: true,
|
|
5189
5206
|
fn: async (doStreamSpan2) => {
|
|
5190
5207
|
return {
|
|
5191
5208
|
startTimestampMs: now2(),
|
|
@@ -7701,6 +7718,7 @@ var DefaultStreamObjectResult = class {
|
|
|
7701
7718
|
}),
|
|
7702
7719
|
tracer,
|
|
7703
7720
|
endWhenDone: false,
|
|
7721
|
+
endOnError: true,
|
|
7704
7722
|
fn: async (rootSpan) => {
|
|
7705
7723
|
const standardizedPrompt = await standardizePrompt({
|
|
7706
7724
|
system,
|
|
@@ -7772,6 +7790,7 @@ var DefaultStreamObjectResult = class {
|
|
|
7772
7790
|
}),
|
|
7773
7791
|
tracer,
|
|
7774
7792
|
endWhenDone: false,
|
|
7793
|
+
endOnError: true,
|
|
7775
7794
|
fn: async (doStreamSpan2) => ({
|
|
7776
7795
|
startTimestampMs: now2(),
|
|
7777
7796
|
doStreamSpan: doStreamSpan2,
|
|
@@ -9307,7 +9326,8 @@ var HttpChatTransport = class {
|
|
|
9307
9326
|
const response = await fetch2(api, {
|
|
9308
9327
|
method: "GET",
|
|
9309
9328
|
headers,
|
|
9310
|
-
credentials
|
|
9329
|
+
credentials,
|
|
9330
|
+
signal: options.abortSignal
|
|
9311
9331
|
});
|
|
9312
9332
|
if (response.status === 204) {
|
|
9313
9333
|
return null;
|
|
@@ -9362,6 +9382,7 @@ var AbstractChat = class {
|
|
|
9362
9382
|
sendAutomaticallyWhen
|
|
9363
9383
|
}) {
|
|
9364
9384
|
this.activeResponse = void 0;
|
|
9385
|
+
this.activeResumeRequest = void 0;
|
|
9365
9386
|
this.jobExecutor = new SerialJobExecutor();
|
|
9366
9387
|
/**
|
|
9367
9388
|
* Appends or replaces a user message to the chat list. This triggers the API call to fetch
|
|
@@ -9501,12 +9522,9 @@ var AbstractChat = class {
|
|
|
9501
9522
|
* Abort the current request immediately, keep the generated tokens if any.
|
|
9502
9523
|
*/
|
|
9503
9524
|
this.stop = async () => {
|
|
9504
|
-
var _a16;
|
|
9505
|
-
|
|
9506
|
-
|
|
9507
|
-
if ((_a16 = this.activeResponse) == null ? void 0 : _a16.abortController) {
|
|
9508
|
-
this.activeResponse.abortController.abort();
|
|
9509
|
-
}
|
|
9525
|
+
var _a16, _b;
|
|
9526
|
+
(_a16 = this.activeResumeRequest) == null ? void 0 : _a16.abortController.abort();
|
|
9527
|
+
(_b = this.activeResponse) == null ? void 0 : _b.abortController.abort();
|
|
9510
9528
|
};
|
|
9511
9529
|
this.id = id;
|
|
9512
9530
|
this.transport = transport;
|
|
@@ -9559,7 +9577,19 @@ var AbstractChat = class {
|
|
|
9559
9577
|
body,
|
|
9560
9578
|
messageId
|
|
9561
9579
|
}) {
|
|
9562
|
-
var _a16, _b, _c;
|
|
9580
|
+
var _a16, _b, _c, _d;
|
|
9581
|
+
const abortController = new AbortController();
|
|
9582
|
+
const activeResumeRequest = trigger === "resume-stream" ? { abortController } : void 0;
|
|
9583
|
+
if (activeResumeRequest) {
|
|
9584
|
+
(_a16 = this.activeResumeRequest) == null ? void 0 : _a16.abortController.abort();
|
|
9585
|
+
this.activeResumeRequest = activeResumeRequest;
|
|
9586
|
+
}
|
|
9587
|
+
const isCurrentRequest = () => activeResumeRequest == null || this.activeResumeRequest === activeResumeRequest;
|
|
9588
|
+
const clearActiveResumeRequest = () => {
|
|
9589
|
+
if (this.activeResumeRequest === activeResumeRequest) {
|
|
9590
|
+
this.activeResumeRequest = void 0;
|
|
9591
|
+
}
|
|
9592
|
+
};
|
|
9563
9593
|
this.setStatus({ status: "submitted", error: void 0 });
|
|
9564
9594
|
const lastMessage = this.lastMessage;
|
|
9565
9595
|
let isAbort = false;
|
|
@@ -9572,7 +9602,7 @@ var AbstractChat = class {
|
|
|
9572
9602
|
lastMessage: this.state.snapshot(lastMessage),
|
|
9573
9603
|
messageId: this.generateId()
|
|
9574
9604
|
}),
|
|
9575
|
-
abortController
|
|
9605
|
+
abortController
|
|
9576
9606
|
};
|
|
9577
9607
|
activeResponse = response;
|
|
9578
9608
|
response.abortController.signal.addEventListener("abort", () => {
|
|
@@ -9583,12 +9613,23 @@ var AbstractChat = class {
|
|
|
9583
9613
|
if (trigger === "resume-stream") {
|
|
9584
9614
|
const reconnect = await this.transport.reconnectToStream({
|
|
9585
9615
|
chatId: this.id,
|
|
9616
|
+
abortSignal: abortController.signal,
|
|
9586
9617
|
metadata,
|
|
9587
9618
|
headers,
|
|
9588
9619
|
body
|
|
9589
9620
|
});
|
|
9621
|
+
if (abortController.signal.aborted || !isCurrentRequest()) {
|
|
9622
|
+
await (reconnect == null ? void 0 : reconnect.cancel().catch(() => {
|
|
9623
|
+
}));
|
|
9624
|
+
if (isCurrentRequest()) {
|
|
9625
|
+
this.setStatus({ status: "ready" });
|
|
9626
|
+
}
|
|
9627
|
+
return;
|
|
9628
|
+
}
|
|
9590
9629
|
if (reconnect == null) {
|
|
9591
|
-
|
|
9630
|
+
if (isCurrentRequest()) {
|
|
9631
|
+
this.setStatus({ status: "ready" });
|
|
9632
|
+
}
|
|
9592
9633
|
return;
|
|
9593
9634
|
}
|
|
9594
9635
|
stream = reconnect;
|
|
@@ -9606,11 +9647,17 @@ var AbstractChat = class {
|
|
|
9606
9647
|
}
|
|
9607
9648
|
const runUpdateMessageJob = (job) => (
|
|
9608
9649
|
// serialize the job execution to avoid race conditions:
|
|
9609
|
-
this.jobExecutor.run(
|
|
9610
|
-
()
|
|
9650
|
+
this.jobExecutor.run(() => {
|
|
9651
|
+
if (response.abortController.signal.aborted) {
|
|
9652
|
+
return Promise.resolve();
|
|
9653
|
+
}
|
|
9654
|
+
return job({
|
|
9611
9655
|
state: response.state,
|
|
9612
9656
|
write: () => {
|
|
9613
9657
|
var _a17;
|
|
9658
|
+
if (response.abortController.signal.aborted) {
|
|
9659
|
+
return;
|
|
9660
|
+
}
|
|
9614
9661
|
this.setStatus({ status: "streaming" });
|
|
9615
9662
|
const replaceLastMessage = response.state.message.id === ((_a17 = this.lastMessage) == null ? void 0 : _a17.id);
|
|
9616
9663
|
if (replaceLastMessage) {
|
|
@@ -9622,8 +9669,8 @@ var AbstractChat = class {
|
|
|
9622
9669
|
this.state.pushMessage(response.state.message);
|
|
9623
9670
|
}
|
|
9624
9671
|
}
|
|
9625
|
-
})
|
|
9626
|
-
)
|
|
9672
|
+
});
|
|
9673
|
+
})
|
|
9627
9674
|
);
|
|
9628
9675
|
await consumeStream({
|
|
9629
9676
|
stream: processUIMessageStream({
|
|
@@ -9637,15 +9684,29 @@ var AbstractChat = class {
|
|
|
9637
9684
|
throw error;
|
|
9638
9685
|
}
|
|
9639
9686
|
}),
|
|
9687
|
+
abortSignal: response.abortController.signal,
|
|
9640
9688
|
onError: (error) => {
|
|
9641
9689
|
throw error;
|
|
9642
9690
|
}
|
|
9643
9691
|
});
|
|
9644
|
-
|
|
9692
|
+
if (isAbort) {
|
|
9693
|
+
if (isCurrentRequest()) {
|
|
9694
|
+
this.setStatus({ status: "ready" });
|
|
9695
|
+
}
|
|
9696
|
+
return null;
|
|
9697
|
+
}
|
|
9698
|
+
if (isCurrentRequest()) {
|
|
9699
|
+
this.setStatus({ status: "ready" });
|
|
9700
|
+
}
|
|
9645
9701
|
} catch (err) {
|
|
9646
9702
|
if (isAbort || err.name === "AbortError") {
|
|
9647
9703
|
isAbort = true;
|
|
9648
|
-
|
|
9704
|
+
if (isCurrentRequest()) {
|
|
9705
|
+
this.setStatus({ status: "ready" });
|
|
9706
|
+
}
|
|
9707
|
+
return null;
|
|
9708
|
+
}
|
|
9709
|
+
if (!isCurrentRequest()) {
|
|
9649
9710
|
return null;
|
|
9650
9711
|
}
|
|
9651
9712
|
isError = true;
|
|
@@ -9659,7 +9720,7 @@ var AbstractChat = class {
|
|
|
9659
9720
|
} finally {
|
|
9660
9721
|
try {
|
|
9661
9722
|
if (activeResponse) {
|
|
9662
|
-
(
|
|
9723
|
+
(_b = this.onFinish) == null ? void 0 : _b.call(this, {
|
|
9663
9724
|
message: activeResponse.state.message,
|
|
9664
9725
|
messages: this.state.messages,
|
|
9665
9726
|
isAbort,
|
|
@@ -9674,11 +9735,12 @@ var AbstractChat = class {
|
|
|
9674
9735
|
if (this.activeResponse === activeResponse) {
|
|
9675
9736
|
this.activeResponse = void 0;
|
|
9676
9737
|
}
|
|
9738
|
+
clearActiveResumeRequest();
|
|
9677
9739
|
}
|
|
9678
|
-
if (((
|
|
9740
|
+
if (((_c = this.sendAutomaticallyWhen) == null ? void 0 : _c.call(this, { messages: this.state.messages })) && !isError) {
|
|
9679
9741
|
await this.makeRequest({
|
|
9680
9742
|
trigger: "submit-message",
|
|
9681
|
-
messageId: (
|
|
9743
|
+
messageId: (_d = this.lastMessage) == null ? void 0 : _d.id,
|
|
9682
9744
|
metadata,
|
|
9683
9745
|
headers,
|
|
9684
9746
|
body
|