assistant-stream 0.0.25 → 0.0.27
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/dist/ai-sdk.d.mts +1 -1
- package/dist/ai-sdk.d.ts +1 -1
- package/dist/ai-sdk.js +11 -6
- package/dist/ai-sdk.js.map +1 -1
- package/dist/ai-sdk.mjs +1 -1
- package/dist/{assistant-stream-CEVTPU3I.d.mts → assistant-stream-DVLo0jNu.d.mts} +5 -0
- package/dist/{assistant-stream-CEVTPU3I.d.ts → assistant-stream-DVLo0jNu.d.ts} +5 -0
- package/dist/{chunk-O77LIKT5.mjs → chunk-UKEHPKV7.mjs} +41 -10
- package/dist/chunk-UKEHPKV7.mjs.map +1 -0
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +73 -27
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +34 -19
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-O77LIKT5.mjs.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as AssistantStreamChunk, R as ReadonlyJSONValue, c as AssistantMessage, d as AssistantStreamEncoder, A as AssistantStream } from './assistant-stream-
|
|
2
|
-
export { e as createAssistantStream, f as createAssistantStreamResponse } from './assistant-stream-
|
|
1
|
+
import { a as AssistantStreamChunk, R as ReadonlyJSONValue, c as AssistantMessage, d as AssistantStreamEncoder, A as AssistantStream } from './assistant-stream-DVLo0jNu.js';
|
|
2
|
+
export { e as createAssistantStream, f as createAssistantStreamResponse } from './assistant-stream-DVLo0jNu.js';
|
|
3
3
|
|
|
4
4
|
declare class PipeableTransformStream<I, O> extends TransformStream<I, O> {
|
|
5
5
|
constructor(transform: (readable: ReadableStream<I>) => ReadableStream<O>);
|
package/dist/index.js
CHANGED
|
@@ -234,6 +234,13 @@ var ToolCallStreamControllerImpl = class {
|
|
|
234
234
|
return this._argsTextController;
|
|
235
235
|
}
|
|
236
236
|
_argsTextController;
|
|
237
|
+
unstable_setArtifact(artifact) {
|
|
238
|
+
this._controller.enqueue({
|
|
239
|
+
type: "artifact",
|
|
240
|
+
path: [],
|
|
241
|
+
artifact
|
|
242
|
+
});
|
|
243
|
+
}
|
|
237
244
|
setResult(result, isError) {
|
|
238
245
|
this._controller.enqueue({
|
|
239
246
|
type: "result",
|
|
@@ -455,7 +462,7 @@ var AssistantMetaTransformStream = class extends TransformStream {
|
|
|
455
462
|
controller.enqueue(chunk);
|
|
456
463
|
return;
|
|
457
464
|
}
|
|
458
|
-
if (chunk.type === "text-delta" || chunk.type === "result" || chunk.type === "part-finish" || chunk.type === "tool-call-args-text-finish") {
|
|
465
|
+
if (chunk.type === "text-delta" || chunk.type === "result" || chunk.type === "artifact" || chunk.type === "part-finish" || chunk.type === "tool-call-args-text-finish") {
|
|
459
466
|
if (chunk.path.length !== 1) {
|
|
460
467
|
controller.error(
|
|
461
468
|
new Error(`${chunk.type} chunks must have a path of length 1`)
|
|
@@ -530,7 +537,7 @@ var DataStreamEncoder = class extends PipeableTransformStream {
|
|
|
530
537
|
}
|
|
531
538
|
case "tool-call": {
|
|
532
539
|
controller.enqueue({
|
|
533
|
-
type: "c" /*
|
|
540
|
+
type: "c" /* ToolCallArgsTextDelta */,
|
|
534
541
|
value: {
|
|
535
542
|
toolCallId: part.toolCallId,
|
|
536
543
|
argsTextDelta: chunk.textDelta
|
|
@@ -561,6 +568,22 @@ var DataStreamEncoder = class extends PipeableTransformStream {
|
|
|
561
568
|
});
|
|
562
569
|
break;
|
|
563
570
|
}
|
|
571
|
+
case "artifact": {
|
|
572
|
+
const part = chunk.meta;
|
|
573
|
+
if (part.type !== "tool-call") {
|
|
574
|
+
throw new Error(
|
|
575
|
+
`Artifact chunk on non-tool-call part not supported: ${part.type}`
|
|
576
|
+
);
|
|
577
|
+
}
|
|
578
|
+
controller.enqueue({
|
|
579
|
+
type: "aui-tool-artifact" /* AuiToolCallArtifact */,
|
|
580
|
+
value: {
|
|
581
|
+
toolCallId: part.toolCallId,
|
|
582
|
+
artifact: chunk.artifact
|
|
583
|
+
}
|
|
584
|
+
});
|
|
585
|
+
break;
|
|
586
|
+
}
|
|
564
587
|
case "step-start": {
|
|
565
588
|
const { type: type2, ...value } = chunk;
|
|
566
589
|
controller.enqueue({
|
|
@@ -661,7 +684,7 @@ var DataStreamDecoder = class extends PipeableTransformStream {
|
|
|
661
684
|
activeToolCallArgsText = toolCallController.argsText;
|
|
662
685
|
break;
|
|
663
686
|
}
|
|
664
|
-
case "c" /*
|
|
687
|
+
case "c" /* ToolCallArgsTextDelta */: {
|
|
665
688
|
const { toolCallId, argsTextDelta } = value;
|
|
666
689
|
const toolCallController = toolCallControllers.get(toolCallId);
|
|
667
690
|
if (!toolCallController)
|
|
@@ -671,6 +694,16 @@ var DataStreamDecoder = class extends PipeableTransformStream {
|
|
|
671
694
|
toolCallController.argsText.append(argsTextDelta);
|
|
672
695
|
break;
|
|
673
696
|
}
|
|
697
|
+
case "aui-tool-artifact" /* AuiToolCallArtifact */: {
|
|
698
|
+
const { toolCallId, artifact } = value;
|
|
699
|
+
const toolCallController = toolCallControllers.get(toolCallId);
|
|
700
|
+
if (!toolCallController)
|
|
701
|
+
throw new Error(
|
|
702
|
+
"Encountered tool call with unknown id: " + toolCallId
|
|
703
|
+
);
|
|
704
|
+
toolCallController.unstable_setArtifact(artifact);
|
|
705
|
+
break;
|
|
706
|
+
}
|
|
674
707
|
case "a" /* ToolCallResult */: {
|
|
675
708
|
const { toolCallId, result } = value;
|
|
676
709
|
const toolCallController = toolCallControllers.get(toolCallId);
|
|
@@ -790,6 +823,10 @@ var AssistantStreamControllerImpl = class {
|
|
|
790
823
|
this._closeSubscriber = callback;
|
|
791
824
|
}
|
|
792
825
|
_addPart(part, stream) {
|
|
826
|
+
if (this._append) {
|
|
827
|
+
this._append.controller.close();
|
|
828
|
+
this._append = void 0;
|
|
829
|
+
}
|
|
793
830
|
this.enqueue({
|
|
794
831
|
type: "part-start",
|
|
795
832
|
part,
|
|
@@ -806,9 +843,6 @@ var AssistantStreamControllerImpl = class {
|
|
|
806
843
|
}
|
|
807
844
|
appendText(textDelta) {
|
|
808
845
|
if (this._append?.kind !== "text") {
|
|
809
|
-
if (this._append) {
|
|
810
|
-
this._append.controller.close();
|
|
811
|
-
}
|
|
812
846
|
this._append = {
|
|
813
847
|
kind: "text",
|
|
814
848
|
controller: this.addTextPart()
|
|
@@ -818,9 +852,6 @@ var AssistantStreamControllerImpl = class {
|
|
|
818
852
|
}
|
|
819
853
|
appendReasoning(textDelta) {
|
|
820
854
|
if (this._append?.kind !== "reasoning") {
|
|
821
|
-
if (this._append) {
|
|
822
|
-
this._append.controller.close();
|
|
823
|
-
}
|
|
824
855
|
this._append = {
|
|
825
856
|
kind: "reasoning",
|
|
826
857
|
controller: this.addReasoningPart()
|
|
@@ -1508,54 +1539,66 @@ var handlePartStart = (message, chunk) => {
|
|
|
1508
1539
|
}
|
|
1509
1540
|
};
|
|
1510
1541
|
var handleToolCallArgsTextFinish = (message, chunk) => {
|
|
1511
|
-
return updatePartForPath(message, chunk, (
|
|
1512
|
-
if (
|
|
1513
|
-
throw new Error("Last
|
|
1542
|
+
return updatePartForPath(message, chunk, (part) => {
|
|
1543
|
+
if (part.type !== "tool-call") {
|
|
1544
|
+
throw new Error("Last is not a tool call");
|
|
1514
1545
|
}
|
|
1515
1546
|
return {
|
|
1516
|
-
...
|
|
1547
|
+
...part,
|
|
1517
1548
|
state: "call"
|
|
1518
1549
|
};
|
|
1519
1550
|
});
|
|
1520
1551
|
};
|
|
1521
1552
|
var handlePartFinish = (message, chunk) => {
|
|
1522
|
-
return updatePartForPath(message, chunk, (
|
|
1523
|
-
...
|
|
1553
|
+
return updatePartForPath(message, chunk, (part) => ({
|
|
1554
|
+
...part,
|
|
1524
1555
|
status: { type: "complete", reason: "unknown" }
|
|
1525
1556
|
}));
|
|
1526
1557
|
};
|
|
1527
1558
|
var handleTextDelta = (message, chunk) => {
|
|
1528
|
-
return updatePartForPath(message, chunk, (
|
|
1529
|
-
if (
|
|
1530
|
-
return { ...
|
|
1531
|
-
} else if (
|
|
1532
|
-
const newArgsText =
|
|
1559
|
+
return updatePartForPath(message, chunk, (part) => {
|
|
1560
|
+
if (part.type === "text") {
|
|
1561
|
+
return { ...part, text: part.text + chunk.textDelta };
|
|
1562
|
+
} else if (part.type === "tool-call") {
|
|
1563
|
+
const newArgsText = part.argsText + chunk.textDelta;
|
|
1533
1564
|
let newArgs;
|
|
1534
1565
|
try {
|
|
1535
1566
|
newArgs = parsePartialJson(newArgsText);
|
|
1536
1567
|
} catch (err) {
|
|
1537
|
-
newArgs =
|
|
1568
|
+
newArgs = part.args;
|
|
1538
1569
|
}
|
|
1539
|
-
return { ...
|
|
1570
|
+
return { ...part, argsText: newArgsText, args: newArgs };
|
|
1540
1571
|
} else {
|
|
1541
1572
|
throw new Error(
|
|
1542
|
-
"text-delta received but
|
|
1573
|
+
"text-delta received but part is neither text nor tool-call"
|
|
1543
1574
|
);
|
|
1544
1575
|
}
|
|
1545
1576
|
});
|
|
1546
1577
|
};
|
|
1547
1578
|
var handleResult = (message, chunk) => {
|
|
1548
|
-
return updatePartForPath(message, chunk, (
|
|
1549
|
-
if (
|
|
1579
|
+
return updatePartForPath(message, chunk, (part) => {
|
|
1580
|
+
if (part.type === "tool-call") {
|
|
1550
1581
|
return {
|
|
1551
|
-
...
|
|
1582
|
+
...part,
|
|
1552
1583
|
state: "result",
|
|
1553
1584
|
result: chunk.result,
|
|
1554
1585
|
isError: chunk.isError ?? false,
|
|
1555
1586
|
status: { type: "complete", reason: "stop" }
|
|
1556
1587
|
};
|
|
1557
1588
|
} else {
|
|
1558
|
-
throw new Error("Result chunk received but
|
|
1589
|
+
throw new Error("Result chunk received but part is not a tool-call");
|
|
1590
|
+
}
|
|
1591
|
+
});
|
|
1592
|
+
};
|
|
1593
|
+
var handleArtifact = (message, chunk) => {
|
|
1594
|
+
return updatePartForPath(message, chunk, (part) => {
|
|
1595
|
+
if (part.type === "tool-call") {
|
|
1596
|
+
return {
|
|
1597
|
+
...part,
|
|
1598
|
+
artifact: chunk.artifact
|
|
1599
|
+
};
|
|
1600
|
+
} else {
|
|
1601
|
+
throw new Error("Artifact chunk received but part is not a tool-call");
|
|
1559
1602
|
}
|
|
1560
1603
|
});
|
|
1561
1604
|
};
|
|
@@ -1670,6 +1713,9 @@ var AssistantMessageAccumulator = class extends TransformStream {
|
|
|
1670
1713
|
case "result":
|
|
1671
1714
|
message = handleResult(message, chunk);
|
|
1672
1715
|
break;
|
|
1716
|
+
case "artifact":
|
|
1717
|
+
message = handleArtifact(message, chunk);
|
|
1718
|
+
break;
|
|
1673
1719
|
case "message-finish":
|
|
1674
1720
|
message = handleMessageFinish(message, chunk);
|
|
1675
1721
|
break;
|