assistant-stream 0.3.15 → 0.3.17
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/README.md +6 -4
- package/dist/core/AssistantStream.d.ts +35 -31
- package/dist/core/AssistantStream.d.ts.map +1 -1
- package/dist/core/AssistantStream.js +39 -37
- package/dist/core/AssistantStream.js.map +1 -1
- package/dist/core/AssistantStreamChunk.d.ts +71 -78
- package/dist/core/AssistantStreamChunk.d.ts.map +1 -1
- package/dist/core/AssistantStreamChunk.js +0 -2
- package/dist/core/accumulators/AssistantMessageStream.d.ts +15 -11
- package/dist/core/accumulators/AssistantMessageStream.d.ts.map +1 -1
- package/dist/core/accumulators/AssistantMessageStream.js +52 -48
- package/dist/core/accumulators/AssistantMessageStream.js.map +1 -1
- package/dist/core/accumulators/TimingTracker.d.ts +15 -11
- package/dist/core/accumulators/TimingTracker.d.ts.map +1 -1
- package/dist/core/accumulators/TimingTracker.js +36 -43
- package/dist/core/accumulators/TimingTracker.js.map +1 -1
- package/dist/core/accumulators/assistant-message-accumulator.d.ts +21 -11
- package/dist/core/accumulators/assistant-message-accumulator.d.ts.map +1 -1
- package/dist/core/accumulators/assistant-message-accumulator.js +349 -390
- package/dist/core/accumulators/assistant-message-accumulator.js.map +1 -1
- package/dist/core/converters/toGenericMessages.d.ts +49 -47
- package/dist/core/converters/toGenericMessages.d.ts.map +1 -1
- package/dist/core/converters/toGenericMessages.js +122 -136
- package/dist/core/converters/toGenericMessages.js.map +1 -1
- package/dist/core/modules/assistant-stream.d.ts +62 -66
- package/dist/core/modules/assistant-stream.d.ts.map +1 -1
- package/dist/core/modules/assistant-stream.js +176 -182
- package/dist/core/modules/assistant-stream.js.map +1 -1
- package/dist/core/modules/text.d.ts +11 -7
- package/dist/core/modules/text.d.ts.map +1 -1
- package/dist/core/modules/text.js +45 -45
- package/dist/core/modules/text.js.map +1 -1
- package/dist/core/modules/tool-call.d.ts +15 -11
- package/dist/core/modules/tool-call.d.ts.map +1 -1
- package/dist/core/modules/tool-call.js +81 -96
- package/dist/core/modules/tool-call.js.map +1 -1
- package/dist/core/object/ObjectStreamAccumulator.d.ts +13 -9
- package/dist/core/object/ObjectStreamAccumulator.d.ts.map +1 -1
- package/dist/core/object/ObjectStreamAccumulator.js +44 -52
- package/dist/core/object/ObjectStreamAccumulator.js.map +1 -1
- package/dist/core/object/ObjectStreamResponse.d.ts +12 -8
- package/dist/core/object/ObjectStreamResponse.d.ts.map +1 -1
- package/dist/core/object/ObjectStreamResponse.js +52 -71
- package/dist/core/object/ObjectStreamResponse.js.map +1 -1
- package/dist/core/object/createObjectStream.d.ts +14 -8
- package/dist/core/object/createObjectStream.d.ts.map +1 -1
- package/dist/core/object/createObjectStream.js +50 -47
- package/dist/core/object/createObjectStream.js.map +1 -1
- package/dist/core/object/types.d.ts +14 -11
- package/dist/core/object/types.d.ts.map +1 -1
- package/dist/core/object/types.js +0 -2
- package/dist/core/serialization/PlainText.d.ts +11 -7
- package/dist/core/serialization/PlainText.d.ts.map +1 -1
- package/dist/core/serialization/PlainText.js +40 -48
- package/dist/core/serialization/PlainText.js.map +1 -1
- package/dist/core/serialization/assistant-transport/AssistantTransport.d.ts +11 -7
- package/dist/core/serialization/assistant-transport/AssistantTransport.d.ts.map +1 -1
- package/dist/core/serialization/assistant-transport/AssistantTransport.js +102 -117
- package/dist/core/serialization/assistant-transport/AssistantTransport.js.map +1 -1
- package/dist/core/serialization/data-stream/DataStream.d.ts +11 -7
- package/dist/core/serialization/data-stream/DataStream.d.ts.map +1 -1
- package/dist/core/serialization/data-stream/DataStream.js +320 -371
- package/dist/core/serialization/data-stream/DataStream.js.map +1 -1
- package/dist/core/serialization/data-stream/chunk-types.d.ts +101 -100
- package/dist/core/serialization/data-stream/chunk-types.d.ts.map +1 -1
- package/dist/core/serialization/data-stream/chunk-types.js +27 -23
- package/dist/core/serialization/data-stream/chunk-types.js.map +1 -1
- package/dist/core/serialization/data-stream/serialization.d.ts +9 -5
- package/dist/core/serialization/data-stream/serialization.d.ts.map +1 -1
- package/dist/core/serialization/data-stream/serialization.js +23 -24
- package/dist/core/serialization/data-stream/serialization.js.map +1 -1
- package/dist/core/serialization/ui-message-stream/UIMessageStream.d.ts +15 -12
- package/dist/core/serialization/ui-message-stream/UIMessageStream.d.ts.map +1 -1
- package/dist/core/serialization/ui-message-stream/UIMessageStream.js +205 -228
- package/dist/core/serialization/ui-message-stream/UIMessageStream.js.map +1 -1
- package/dist/core/serialization/ui-message-stream/chunk-types.d.ts +68 -65
- package/dist/core/serialization/ui-message-stream/chunk-types.d.ts.map +1 -1
- package/dist/core/serialization/ui-message-stream/chunk-types.js +0 -2
- package/dist/core/tool/ToolCallReader.d.ts +34 -30
- package/dist/core/tool/ToolCallReader.d.ts.map +1 -1
- package/dist/core/tool/ToolCallReader.js +264 -317
- package/dist/core/tool/ToolCallReader.js.map +1 -1
- package/dist/core/tool/ToolExecutionStream.d.ts +20 -17
- package/dist/core/tool/ToolExecutionStream.d.ts.map +1 -1
- package/dist/core/tool/ToolExecutionStream.js +123 -146
- package/dist/core/tool/ToolExecutionStream.js.map +1 -1
- package/dist/core/tool/ToolResponse.d.ts +41 -41
- package/dist/core/tool/ToolResponse.d.ts.map +1 -1
- package/dist/core/tool/ToolResponse.js +50 -56
- package/dist/core/tool/ToolResponse.js.map +1 -1
- package/dist/core/tool/schema-utils.d.ts +19 -15
- package/dist/core/tool/schema-utils.d.ts.map +1 -1
- package/dist/core/tool/schema-utils.js +50 -84
- package/dist/core/tool/schema-utils.js.map +1 -1
- package/dist/core/tool/tool-types.d.ts +103 -122
- package/dist/core/tool/tool-types.d.ts.map +1 -1
- package/dist/core/tool/tool-types.js +0 -2
- package/dist/core/tool/toolResultStream.d.ts +11 -9
- package/dist/core/tool/toolResultStream.d.ts.map +1 -1
- package/dist/core/tool/toolResultStream.js +127 -157
- package/dist/core/tool/toolResultStream.js.map +1 -1
- package/dist/core/tool/type-path-utils.d.ts +8 -19
- package/dist/core/tool/type-path-utils.d.ts.map +1 -1
- package/dist/core/tool/type-path-utils.js +0 -2
- package/dist/core/utils/Counter.d.ts +6 -3
- package/dist/core/utils/Counter.d.ts.map +1 -1
- package/dist/core/utils/Counter.js +10 -6
- package/dist/core/utils/Counter.js.map +1 -1
- package/dist/core/utils/generateId.d.ts +4 -1
- package/dist/core/utils/generateId.d.ts.map +1 -1
- package/dist/core/utils/generateId.js +5 -1
- package/dist/core/utils/generateId.js.map +1 -1
- package/dist/core/utils/stream/AssistantMetaTransformStream.d.ts +15 -11
- package/dist/core/utils/stream/AssistantMetaTransformStream.d.ts.map +1 -1
- package/dist/core/utils/stream/AssistantMetaTransformStream.js +38 -42
- package/dist/core/utils/stream/AssistantMetaTransformStream.js.map +1 -1
- package/dist/core/utils/stream/AssistantTransformStream.d.ts +11 -8
- package/dist/core/utils/stream/AssistantTransformStream.d.ts.map +1 -1
- package/dist/core/utils/stream/AssistantTransformStream.js +37 -35
- package/dist/core/utils/stream/AssistantTransformStream.js.map +1 -1
- package/dist/core/utils/stream/LineDecoderStream.d.ts +6 -3
- package/dist/core/utils/stream/LineDecoderStream.d.ts.map +1 -1
- package/dist/core/utils/stream/LineDecoderStream.js +23 -26
- package/dist/core/utils/stream/LineDecoderStream.js.map +1 -1
- package/dist/core/utils/stream/PipeableTransformStream.d.ts +5 -2
- package/dist/core/utils/stream/PipeableTransformStream.d.ts.map +1 -1
- package/dist/core/utils/stream/PipeableTransformStream.js +14 -10
- package/dist/core/utils/stream/PipeableTransformStream.js.map +1 -1
- package/dist/core/utils/stream/SSE.d.ts +10 -6
- package/dist/core/utils/stream/SSE.d.ts.map +1 -1
- package/dist/core/utils/stream/SSE.js +79 -91
- package/dist/core/utils/stream/SSE.js.map +1 -1
- package/dist/core/utils/stream/UnderlyingReadable.d.ts +7 -4
- package/dist/core/utils/stream/UnderlyingReadable.d.ts.map +1 -1
- package/dist/core/utils/stream/UnderlyingReadable.js +0 -2
- package/dist/core/utils/stream/merge.d.ts +11 -7
- package/dist/core/utils/stream/merge.d.ts.map +1 -1
- package/dist/core/utils/stream/merge.js +68 -170
- package/dist/core/utils/stream/merge.js.map +1 -1
- package/dist/core/utils/stream/path-utils.d.ts +11 -7
- package/dist/core/utils/stream/path-utils.d.ts.map +1 -1
- package/dist/core/utils/stream/path-utils.js +46 -52
- package/dist/core/utils/stream/path-utils.js.map +1 -1
- package/dist/core/utils/types.d.ts +109 -113
- package/dist/core/utils/types.d.ts.map +1 -1
- package/dist/core/utils/types.js +0 -2
- package/dist/core/utils/withPromiseOrValue.d.ts +4 -1
- package/dist/core/utils/withPromiseOrValue.d.ts.map +1 -1
- package/dist/core/utils/withPromiseOrValue.js +12 -15
- package/dist/core/utils/withPromiseOrValue.js.map +1 -1
- package/dist/index.d.ts +23 -24
- package/dist/index.js +16 -16
- package/dist/node_modules/.pnpm/@types_json-schema@7.0.15/node_modules/@types/json-schema/index.d.ts +141 -0
- package/dist/node_modules/.pnpm/@types_json-schema@7.0.15/node_modules/@types/json-schema/index.d.ts.map +1 -0
- package/dist/resumable/ResumableStreamContext.d.ts +28 -24
- package/dist/resumable/ResumableStreamContext.d.ts.map +1 -1
- package/dist/resumable/ResumableStreamContext.js +99 -114
- package/dist/resumable/ResumableStreamContext.js.map +1 -1
- package/dist/resumable/constants.d.ts +4 -1
- package/dist/resumable/constants.d.ts.map +1 -1
- package/dist/resumable/constants.js +5 -1
- package/dist/resumable/constants.js.map +1 -1
- package/dist/resumable/createResumableAssistantStreamResponse.d.ts +22 -21
- package/dist/resumable/createResumableAssistantStreamResponse.d.ts.map +1 -1
- package/dist/resumable/createResumableAssistantStreamResponse.js +25 -32
- package/dist/resumable/createResumableAssistantStreamResponse.js.map +1 -1
- package/dist/resumable/errors.d.ts +8 -5
- package/dist/resumable/errors.d.ts.map +1 -1
- package/dist/resumable/errors.js +14 -12
- package/dist/resumable/errors.js.map +1 -1
- package/dist/resumable/index.d.ts +7 -7
- package/dist/resumable/index.js +5 -5
- package/dist/resumable/stores/InMemoryResumableStreamStore.d.ts +14 -10
- package/dist/resumable/stores/InMemoryResumableStreamStore.d.ts.map +1 -1
- package/dist/resumable/stores/InMemoryResumableStreamStore.js +159 -193
- package/dist/resumable/stores/InMemoryResumableStreamStore.js.map +1 -1
- package/dist/resumable/stores/ioredis.d.ts +9 -5
- package/dist/resumable/stores/ioredis.d.ts.map +1 -1
- package/dist/resumable/stores/ioredis.js +70 -82
- package/dist/resumable/stores/ioredis.js.map +1 -1
- package/dist/resumable/stores/redis-impl.d.ts +51 -48
- package/dist/resumable/stores/redis-impl.d.ts.map +1 -1
- package/dist/resumable/stores/redis-impl.js +176 -176
- package/dist/resumable/stores/redis-impl.js.map +1 -1
- package/dist/resumable/stores/redis.d.ts +31 -28
- package/dist/resumable/stores/redis.d.ts.map +1 -1
- package/dist/resumable/stores/redis.js +87 -95
- package/dist/resumable/stores/redis.js.map +1 -1
- package/dist/resumable/types.d.ts +29 -26
- package/dist/resumable/types.d.ts.map +1 -1
- package/dist/resumable/types.js +0 -2
- package/dist/utils/AsyncIterableStream.d.ts +5 -2
- package/dist/utils/AsyncIterableStream.d.ts.map +1 -1
- package/dist/utils/AsyncIterableStream.js +17 -16
- package/dist/utils/AsyncIterableStream.js.map +1 -1
- package/dist/utils/json/fix-json.d.ts +4 -1
- package/dist/utils/json/fix-json.d.ts.map +1 -1
- package/dist/utils/json/fix-json.js +286 -380
- package/dist/utils/json/fix-json.js.map +1 -1
- package/dist/utils/json/is-json.d.ts +8 -4
- package/dist/utils/json/is-json.d.ts.map +1 -1
- package/dist/utils/json/is-json.js +13 -21
- package/dist/utils/json/is-json.js.map +1 -1
- package/dist/utils/json/json-value.d.ts +7 -4
- package/dist/utils/json/json-value.d.ts.map +1 -1
- package/dist/utils/json/json-value.js +0 -2
- package/dist/utils/json/parse-partial-json-object.d.ts +11 -8
- package/dist/utils/json/parse-partial-json-object.d.ts.map +1 -1
- package/dist/utils/json/parse-partial-json-object.js +50 -62
- package/dist/utils/json/parse-partial-json-object.js.map +1 -1
- package/dist/utils/promiseWithResolvers.d.ts +7 -4
- package/dist/utils/promiseWithResolvers.d.ts.map +1 -1
- package/dist/utils/promiseWithResolvers.js +17 -10
- package/dist/utils/promiseWithResolvers.js.map +1 -1
- package/dist/utils.d.ts +6 -6
- package/dist/utils.js +5 -5
- package/package.json +3 -3
- package/src/core/modules/assistant-stream.test.ts +104 -0
- package/src/core/modules/assistant-stream.ts +13 -4
- package/dist/core/AssistantStreamChunk.js.map +0 -1
- package/dist/core/object/types.js.map +0 -1
- package/dist/core/serialization/ui-message-stream/chunk-types.js.map +0 -1
- package/dist/core/tool/tool-types.js.map +0 -1
- package/dist/core/tool/type-path-utils.js.map +0 -1
- package/dist/core/utils/stream/UnderlyingReadable.js.map +0 -1
- package/dist/core/utils/types.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/resumable/index.d.ts.map +0 -1
- package/dist/resumable/index.js.map +0 -1
- package/dist/resumable/types.js.map +0 -1
- package/dist/utils/json/json-value.js.map +0 -1
- package/dist/utils.d.ts.map +0 -1
- package/dist/utils.js.map +0 -1
|
@@ -1,76 +1,57 @@
|
|
|
1
1
|
import { PipeableTransformStream } from "../utils/stream/PipeableTransformStream.js";
|
|
2
2
|
import { ObjectStreamAccumulator } from "./ObjectStreamAccumulator.js";
|
|
3
3
|
import { SSEDecoder, SSEEncoder } from "../utils/stream/SSE.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
else {
|
|
25
|
-
controller.enqueue(chunk.operations);
|
|
26
|
-
}
|
|
27
|
-
this.#isFirstChunk = false;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
return new TransformStream(new ObjectStreamTransformer());
|
|
31
|
-
})())
|
|
32
|
-
.pipeThrough(new SSEEncoder()));
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
export class ObjectStreamDecoder extends PipeableTransformStream {
|
|
36
|
-
constructor() {
|
|
37
|
-
const accumulator = new ObjectStreamAccumulator();
|
|
38
|
-
super((readable) => readable
|
|
39
|
-
.pipeThrough(new SSEDecoder())
|
|
40
|
-
.pipeThrough(new TransformStream({
|
|
41
|
-
transform(operations, controller) {
|
|
42
|
-
accumulator.append(operations);
|
|
43
|
-
controller.enqueue({
|
|
44
|
-
snapshot: accumulator.state,
|
|
45
|
-
operations,
|
|
46
|
-
});
|
|
47
|
-
},
|
|
48
|
-
})));
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
export class ObjectStreamResponse extends Response {
|
|
52
|
-
constructor(body) {
|
|
53
|
-
super(body.pipeThrough(new ObjectStreamEncoder()), {
|
|
54
|
-
headers: new Headers({
|
|
55
|
-
"Content-Type": "text/event-stream",
|
|
56
|
-
"Cache-Control": "no-cache",
|
|
57
|
-
Connection: "keep-alive",
|
|
58
|
-
"Assistant-Stream-Format": "object-stream/v0",
|
|
59
|
-
}),
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
export const fromObjectStreamResponse = (response) => {
|
|
64
|
-
if (!response.ok)
|
|
65
|
-
throw new Error(`Response failed, status ${response.status}`);
|
|
66
|
-
if (!response.body)
|
|
67
|
-
throw new Error("Response body is null");
|
|
68
|
-
if (response.headers.get("Content-Type") !== "text/event-stream") {
|
|
69
|
-
throw new Error("Response is not an event stream");
|
|
70
|
-
}
|
|
71
|
-
if (response.headers.get("Assistant-Stream-Format") !== "object-stream/v0") {
|
|
72
|
-
throw new Error("Unsupported Assistant-Stream-Format header");
|
|
73
|
-
}
|
|
74
|
-
return response.body.pipeThrough(new ObjectStreamDecoder());
|
|
4
|
+
//#region src/core/object/ObjectStreamResponse.ts
|
|
5
|
+
var ObjectStreamEncoder = class extends PipeableTransformStream {
|
|
6
|
+
constructor() {
|
|
7
|
+
super((readable) => readable.pipeThrough((() => {
|
|
8
|
+
class ObjectStreamTransformer {
|
|
9
|
+
#isFirstChunk = true;
|
|
10
|
+
start() {}
|
|
11
|
+
transform(chunk, controller) {
|
|
12
|
+
if (this.#isFirstChunk && chunk.snapshot && Object.keys(chunk.snapshot).length > 0) controller.enqueue([{
|
|
13
|
+
type: "set",
|
|
14
|
+
path: [],
|
|
15
|
+
value: chunk.snapshot
|
|
16
|
+
}, ...chunk.operations]);
|
|
17
|
+
else controller.enqueue(chunk.operations);
|
|
18
|
+
this.#isFirstChunk = false;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return new TransformStream(new ObjectStreamTransformer());
|
|
22
|
+
})()).pipeThrough(new SSEEncoder()));
|
|
23
|
+
}
|
|
75
24
|
};
|
|
25
|
+
var ObjectStreamDecoder = class extends PipeableTransformStream {
|
|
26
|
+
constructor() {
|
|
27
|
+
const accumulator = new ObjectStreamAccumulator();
|
|
28
|
+
super((readable) => readable.pipeThrough(new SSEDecoder()).pipeThrough(new TransformStream({ transform(operations, controller) {
|
|
29
|
+
accumulator.append(operations);
|
|
30
|
+
controller.enqueue({
|
|
31
|
+
snapshot: accumulator.state,
|
|
32
|
+
operations
|
|
33
|
+
});
|
|
34
|
+
} })));
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
var ObjectStreamResponse = class extends Response {
|
|
38
|
+
constructor(body) {
|
|
39
|
+
super(body.pipeThrough(new ObjectStreamEncoder()), { headers: new Headers({
|
|
40
|
+
"Content-Type": "text/event-stream",
|
|
41
|
+
"Cache-Control": "no-cache",
|
|
42
|
+
Connection: "keep-alive",
|
|
43
|
+
"Assistant-Stream-Format": "object-stream/v0"
|
|
44
|
+
}) });
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
const fromObjectStreamResponse = (response) => {
|
|
48
|
+
if (!response.ok) throw new Error(`Response failed, status ${response.status}`);
|
|
49
|
+
if (!response.body) throw new Error("Response body is null");
|
|
50
|
+
if (response.headers.get("Content-Type") !== "text/event-stream") throw new Error("Response is not an event stream");
|
|
51
|
+
if (response.headers.get("Assistant-Stream-Format") !== "object-stream/v0") throw new Error("Unsupported Assistant-Stream-Format header");
|
|
52
|
+
return response.body.pipeThrough(new ObjectStreamDecoder());
|
|
53
|
+
};
|
|
54
|
+
//#endregion
|
|
55
|
+
export { ObjectStreamDecoder, ObjectStreamEncoder, ObjectStreamResponse, fromObjectStreamResponse };
|
|
56
|
+
|
|
76
57
|
//# sourceMappingURL=ObjectStreamResponse.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObjectStreamResponse.js","
|
|
1
|
+
{"version":3,"file":"ObjectStreamResponse.js","names":["#isFirstChunk"],"sources":["../../../src/core/object/ObjectStreamResponse.ts"],"sourcesContent":["import { PipeableTransformStream } from \"../utils/stream/PipeableTransformStream\";\nimport { ObjectStreamAccumulator } from \"./ObjectStreamAccumulator\";\nimport { SSEDecoder, SSEEncoder } from \"../utils/stream/SSE\";\nimport type { ObjectStreamChunk, ObjectStreamOperation } from \"./types\";\n\nexport class ObjectStreamEncoder extends PipeableTransformStream<\n ObjectStreamChunk,\n Uint8Array\n> {\n constructor() {\n super((readable) =>\n readable\n .pipeThrough(\n (() => {\n class ObjectStreamTransformer\n implements\n Transformer<ObjectStreamChunk, readonly ObjectStreamOperation[]>\n {\n #isFirstChunk = true;\n\n start() {\n // Nothing needed here since we initialize in the field declaration\n }\n\n transform(\n chunk: ObjectStreamChunk,\n controller: TransformStreamDefaultController<\n readonly ObjectStreamOperation[]\n >,\n ) {\n if (\n this.#isFirstChunk &&\n chunk.snapshot &&\n Object.keys(chunk.snapshot).length > 0\n ) {\n // For the first chunk, if there's an initial state that's not empty,\n // prepend a set operation for the initial state\n controller.enqueue([\n { type: \"set\", path: [], value: chunk.snapshot },\n ...chunk.operations,\n ]);\n } else {\n controller.enqueue(chunk.operations);\n }\n this.#isFirstChunk = false;\n }\n }\n return new TransformStream(new ObjectStreamTransformer());\n })(),\n )\n .pipeThrough(new SSEEncoder()),\n );\n }\n}\n\nexport class ObjectStreamDecoder extends PipeableTransformStream<\n Uint8Array<ArrayBuffer>,\n ObjectStreamChunk\n> {\n constructor() {\n const accumulator = new ObjectStreamAccumulator();\n super((readable) =>\n readable\n .pipeThrough(new SSEDecoder<readonly ObjectStreamOperation[]>())\n .pipeThrough(\n new TransformStream<\n readonly ObjectStreamOperation[],\n ObjectStreamChunk\n >({\n transform(operations, controller) {\n accumulator.append(operations);\n controller.enqueue({\n snapshot: accumulator.state,\n operations,\n });\n },\n }),\n ),\n );\n }\n}\n\nexport class ObjectStreamResponse extends Response {\n constructor(body: ReadableStream<ObjectStreamChunk>) {\n super(body.pipeThrough(new ObjectStreamEncoder()), {\n headers: new Headers({\n \"Content-Type\": \"text/event-stream\",\n \"Cache-Control\": \"no-cache\",\n Connection: \"keep-alive\",\n \"Assistant-Stream-Format\": \"object-stream/v0\",\n }),\n });\n }\n}\n\nexport const fromObjectStreamResponse = (\n response: Response,\n): ReadableStream<ObjectStreamChunk> => {\n if (!response.ok)\n throw new Error(`Response failed, status ${response.status}`);\n if (!response.body) throw new Error(\"Response body is null\");\n if (response.headers.get(\"Content-Type\") !== \"text/event-stream\") {\n throw new Error(\"Response is not an event stream\");\n }\n if (response.headers.get(\"Assistant-Stream-Format\") !== \"object-stream/v0\") {\n throw new Error(\"Unsupported Assistant-Stream-Format header\");\n }\n return response.body.pipeThrough(new ObjectStreamDecoder());\n};\n"],"mappings":";;;;AAKA,IAAa,sBAAb,cAAyC,wBAGvC;CACA,cAAc;EACZ,OAAO,aACL,SACG,mBACQ;GACL,MAAM,wBAGN;IACE,gBAAgB;IAEhB,QAAQ,CAER;IAEA,UACE,OACA,YAGA;KACA,IACE,KAAKA,iBACL,MAAM,YACN,OAAO,KAAK,MAAM,QAAQ,EAAE,SAAS,GAIrC,WAAW,QAAQ,CACjB;MAAE,MAAM;MAAO,MAAM,CAAC;MAAG,OAAO,MAAM;KAAS,GAC/C,GAAG,MAAM,UACX,CAAC;UAED,WAAW,QAAQ,MAAM,UAAU;KAErC,KAAKA,gBAAgB;IACvB;GACF;GACA,OAAO,IAAI,gBAAgB,IAAI,wBAAwB,CAAC;EAC1D,GAAG,CACL,EACC,YAAY,IAAI,WAAW,CAAC,CACjC;CACF;AACF;AAEA,IAAa,sBAAb,cAAyC,wBAGvC;CACA,cAAc;EACZ,MAAM,cAAc,IAAI,wBAAwB;EAChD,OAAO,aACL,SACG,YAAY,IAAI,WAA6C,CAAC,EAC9D,YACC,IAAI,gBAGF,EACA,UAAU,YAAY,YAAY;GAChC,YAAY,OAAO,UAAU;GAC7B,WAAW,QAAQ;IACjB,UAAU,YAAY;IACtB;GACF,CAAC;EACH,EACF,CAAC,CACH,CACJ;CACF;AACF;AAEA,IAAa,uBAAb,cAA0C,SAAS;CACjD,YAAY,MAAyC;EACnD,MAAM,KAAK,YAAY,IAAI,oBAAoB,CAAC,GAAG,EACjD,SAAS,IAAI,QAAQ;GACnB,gBAAgB;GAChB,iBAAiB;GACjB,YAAY;GACZ,2BAA2B;EAC7B,CAAC,EACH,CAAC;CACH;AACF;AAEA,MAAa,4BACX,aACsC;CACtC,IAAI,CAAC,SAAS,IACZ,MAAM,IAAI,MAAM,2BAA2B,SAAS,QAAQ;CAC9D,IAAI,CAAC,SAAS,MAAM,MAAM,IAAI,MAAM,uBAAuB;CAC3D,IAAI,SAAS,QAAQ,IAAI,cAAc,MAAM,qBAC3C,MAAM,IAAI,MAAM,iCAAiC;CAEnD,IAAI,SAAS,QAAQ,IAAI,yBAAyB,MAAM,oBACtD,MAAM,IAAI,MAAM,4CAA4C;CAE9D,OAAO,SAAS,KAAK,YAAY,IAAI,oBAAoB,CAAC;AAC5D"}
|
|
@@ -1,13 +1,19 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import { ReadonlyJSONValue } from "../../utils/json/json-value.js";
|
|
2
|
+
import { ObjectStreamChunk, ObjectStreamOperation } from "./types.js";
|
|
3
|
+
|
|
4
|
+
//#region src/core/object/createObjectStream.d.ts
|
|
3
5
|
type ObjectStreamController = {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
+
readonly abortSignal: AbortSignal;
|
|
7
|
+
enqueue(operations: readonly ObjectStreamOperation[]): void;
|
|
6
8
|
};
|
|
7
9
|
type CreateObjectStreamOptions = {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
+
execute: (controller: ObjectStreamController) => void | PromiseLike<void>;
|
|
11
|
+
defaultValue?: ReadonlyJSONValue;
|
|
10
12
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
+
declare const createObjectStream: ({
|
|
14
|
+
execute,
|
|
15
|
+
defaultValue
|
|
16
|
+
}: CreateObjectStreamOptions) => ReadableStream<ObjectStreamChunk>;
|
|
17
|
+
//#endregion
|
|
18
|
+
export { createObjectStream };
|
|
13
19
|
//# sourceMappingURL=createObjectStream.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createObjectStream.d.ts","
|
|
1
|
+
{"version":3,"file":"createObjectStream.d.ts","names":[],"sources":["../../../src/core/object/createObjectStream.ts"],"mappings":";;;;KAKK,sBAAA;EAAA,SACM,WAAA,EAAa,WAAA;EAEtB,OAAA,CAAQ,UAAA,WAAqB,qBAAqB;AAAA;AAAA,KAwD/C,yBAAA;EACH,OAAA,GAAU,UAAA,EAAY,sBAAA,YAAkC,WAAA;EACxD,YAAA,GAAe,iBAAA;AAAA;AAAA,cAGJ,kBAAA;EAAsB,OAAA;EAAA;AAAA,GAGhC,yBAAA,KAAyB,cAAA,CAAA,iBAAA"}
|
|
@@ -1,52 +1,55 @@
|
|
|
1
|
-
import { withPromiseOrValue } from "../utils/withPromiseOrValue.js";
|
|
2
1
|
import { ObjectStreamAccumulator } from "./ObjectStreamAccumulator.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
2
|
+
import { withPromiseOrValue } from "../utils/withPromiseOrValue.js";
|
|
3
|
+
//#region src/core/object/createObjectStream.ts
|
|
4
|
+
var ObjectStreamControllerImpl = class {
|
|
5
|
+
_controller;
|
|
6
|
+
_abortController = new AbortController();
|
|
7
|
+
_accumulator;
|
|
8
|
+
get abortSignal() {
|
|
9
|
+
return this._abortController.signal;
|
|
10
|
+
}
|
|
11
|
+
constructor(controller, defaultValue) {
|
|
12
|
+
this._controller = controller;
|
|
13
|
+
this._accumulator = new ObjectStreamAccumulator(defaultValue);
|
|
14
|
+
}
|
|
15
|
+
enqueue(operations) {
|
|
16
|
+
this._accumulator.append(operations);
|
|
17
|
+
this._controller.enqueue({
|
|
18
|
+
snapshot: this._accumulator.state,
|
|
19
|
+
operations
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
__internalError(error) {
|
|
23
|
+
this._controller.error(error);
|
|
24
|
+
}
|
|
25
|
+
__internalClose() {
|
|
26
|
+
this._controller.close();
|
|
27
|
+
}
|
|
28
|
+
__internalCancel(reason) {
|
|
29
|
+
this._abortController.abort(reason);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
31
32
|
const getStreamControllerPair = (defaultValue) => {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
return [stream, controller];
|
|
33
|
+
let controller;
|
|
34
|
+
return [new ReadableStream({
|
|
35
|
+
start(c) {
|
|
36
|
+
controller = new ObjectStreamControllerImpl(c, defaultValue);
|
|
37
|
+
},
|
|
38
|
+
cancel(reason) {
|
|
39
|
+
controller.__internalCancel(reason);
|
|
40
|
+
}
|
|
41
|
+
}), controller];
|
|
42
42
|
};
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
43
|
+
const createObjectStream = ({ execute, defaultValue = {} }) => {
|
|
44
|
+
const [stream, controller] = getStreamControllerPair(defaultValue);
|
|
45
|
+
withPromiseOrValue(() => execute(controller), () => {
|
|
46
|
+
controller.__internalClose();
|
|
47
|
+
}, (e) => {
|
|
48
|
+
controller.__internalError(e);
|
|
49
|
+
});
|
|
50
|
+
return stream;
|
|
51
51
|
};
|
|
52
|
+
//#endregion
|
|
53
|
+
export { createObjectStream };
|
|
54
|
+
|
|
52
55
|
//# sourceMappingURL=createObjectStream.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createObjectStream.js","
|
|
1
|
+
{"version":3,"file":"createObjectStream.js","names":[],"sources":["../../../src/core/object/createObjectStream.ts"],"sourcesContent":["import type { ReadonlyJSONValue } from \"../../utils\";\nimport { withPromiseOrValue } from \"../utils/withPromiseOrValue\";\nimport { ObjectStreamAccumulator } from \"./ObjectStreamAccumulator\";\nimport type { ObjectStreamOperation, ObjectStreamChunk } from \"./types\";\n\ntype ObjectStreamController = {\n readonly abortSignal: AbortSignal;\n\n enqueue(operations: readonly ObjectStreamOperation[]): void;\n};\n\nclass ObjectStreamControllerImpl implements ObjectStreamController {\n private _controller: ReadableStreamDefaultController<ObjectStreamChunk>;\n private _abortController = new AbortController();\n private _accumulator: ObjectStreamAccumulator;\n\n get abortSignal() {\n return this._abortController.signal;\n }\n\n constructor(\n controller: ReadableStreamDefaultController<ObjectStreamChunk>,\n defaultValue: ReadonlyJSONValue,\n ) {\n this._controller = controller;\n this._accumulator = new ObjectStreamAccumulator(defaultValue);\n }\n\n enqueue(operations: readonly ObjectStreamOperation[]) {\n this._accumulator.append(operations);\n\n this._controller.enqueue({\n snapshot: this._accumulator.state,\n operations,\n });\n }\n\n __internalError(error: unknown) {\n this._controller.error(error);\n }\n\n __internalClose() {\n this._controller.close();\n }\n\n __internalCancel(reason?: unknown) {\n this._abortController.abort(reason);\n }\n}\n\nconst getStreamControllerPair = (defaultValue: ReadonlyJSONValue) => {\n let controller!: ObjectStreamControllerImpl;\n const stream = new ReadableStream<ObjectStreamChunk>({\n start(c) {\n controller = new ObjectStreamControllerImpl(c, defaultValue);\n },\n cancel(reason: unknown) {\n controller.__internalCancel(reason);\n },\n });\n\n return [stream, controller] as const;\n};\n\ntype CreateObjectStreamOptions = {\n execute: (controller: ObjectStreamController) => void | PromiseLike<void>;\n defaultValue?: ReadonlyJSONValue;\n};\n\nexport const createObjectStream = ({\n execute,\n defaultValue = {},\n}: CreateObjectStreamOptions) => {\n const [stream, controller] = getStreamControllerPair(defaultValue);\n\n withPromiseOrValue(\n () => execute(controller),\n () => {\n controller.__internalClose();\n },\n (e: unknown) => {\n controller.__internalError(e);\n },\n );\n\n return stream;\n};\n"],"mappings":";;;AAWA,IAAM,6BAAN,MAAmE;CACjE;CACA,mBAA2B,IAAI,gBAAgB;CAC/C;CAEA,IAAI,cAAc;EAChB,OAAO,KAAK,iBAAiB;CAC/B;CAEA,YACE,YACA,cACA;EACA,KAAK,cAAc;EACnB,KAAK,eAAe,IAAI,wBAAwB,YAAY;CAC9D;CAEA,QAAQ,YAA8C;EACpD,KAAK,aAAa,OAAO,UAAU;EAEnC,KAAK,YAAY,QAAQ;GACvB,UAAU,KAAK,aAAa;GAC5B;EACF,CAAC;CACH;CAEA,gBAAgB,OAAgB;EAC9B,KAAK,YAAY,MAAM,KAAK;CAC9B;CAEA,kBAAkB;EAChB,KAAK,YAAY,MAAM;CACzB;CAEA,iBAAiB,QAAkB;EACjC,KAAK,iBAAiB,MAAM,MAAM;CACpC;AACF;AAEA,MAAM,2BAA2B,iBAAoC;CACnE,IAAI;CAUJ,OAAO,CAAC,IATW,eAAkC;EACnD,MAAM,GAAG;GACP,aAAa,IAAI,2BAA2B,GAAG,YAAY;EAC7D;EACA,OAAO,QAAiB;GACtB,WAAW,iBAAiB,MAAM;EACpC;CACF,CAEa,GAAG,UAAU;AAC5B;AAOA,MAAa,sBAAsB,EACjC,SACA,eAAe,CAAC,QACe;CAC/B,MAAM,CAAC,QAAQ,cAAc,wBAAwB,YAAY;CAEjE,yBACQ,QAAQ,UAAU,SAClB;EACJ,WAAW,gBAAgB;CAC7B,IACC,MAAe;EACd,WAAW,gBAAgB,CAAC;CAC9B,CACF;CAEA,OAAO;AACT"}
|
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { ReadonlyJSONValue } from "../../utils/json/json-value.js";
|
|
2
|
+
//#region src/core/object/types.d.ts
|
|
3
|
+
type ObjectStreamOperation = {
|
|
4
|
+
readonly type: "set";
|
|
5
|
+
readonly path: readonly string[];
|
|
6
|
+
readonly value: ReadonlyJSONValue;
|
|
6
7
|
} | {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
readonly type: "append-text";
|
|
9
|
+
readonly path: readonly string[];
|
|
10
|
+
readonly value: string;
|
|
10
11
|
};
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
type ObjectStreamChunk = {
|
|
13
|
+
readonly snapshot: ReadonlyJSONValue;
|
|
14
|
+
readonly operations: readonly ObjectStreamOperation[];
|
|
14
15
|
};
|
|
16
|
+
//#endregion
|
|
17
|
+
export { ObjectStreamChunk, ObjectStreamOperation };
|
|
15
18
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","
|
|
1
|
+
{"version":3,"file":"types.d.ts","names":[],"sources":["../../../src/core/object/types.ts"],"mappings":";;KAEY,qBAAA;EAAA,SAEG,IAAA;EAAA,SACA,IAAA;EAAA,SACA,KAAA,EAAO,iBAAiB;AAAA;EAAA,SAGxB,IAAA;EAAA,SACA,IAAA;EAAA,SACA,KAAA;AAAA;AAAA,KAGH,iBAAA;EAAA,SACD,QAAA,EAAU,iBAAA;EAAA,SACV,UAAA,WAAqB,qBAAqB;AAAA"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import { AssistantStreamChunk } from "../AssistantStreamChunk.js";
|
|
2
|
+
import { AssistantStreamEncoder } from "../AssistantStream.js";
|
|
3
3
|
import { PipeableTransformStream } from "../utils/stream/PipeableTransformStream.js";
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
4
|
+
|
|
5
|
+
//#region src/core/serialization/PlainText.d.ts
|
|
6
|
+
declare class PlainTextEncoder extends PipeableTransformStream<AssistantStreamChunk, Uint8Array<ArrayBuffer>> implements AssistantStreamEncoder {
|
|
7
|
+
headers: Headers;
|
|
8
|
+
constructor();
|
|
7
9
|
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
+
declare class PlainTextDecoder extends PipeableTransformStream<Uint8Array<ArrayBuffer>, AssistantStreamChunk> {
|
|
11
|
+
constructor();
|
|
10
12
|
}
|
|
13
|
+
//#endregion
|
|
14
|
+
export { PlainTextDecoder, PlainTextEncoder };
|
|
11
15
|
//# sourceMappingURL=PlainText.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlainText.d.ts","
|
|
1
|
+
{"version":3,"file":"PlainText.d.ts","names":[],"sources":["../../../src/core/serialization/PlainText.ts"],"mappings":";;;;;cAKa,gBAAA,SACH,uBAAA,CAAwB,oBAAA,EAAsB,UAAA,CAAW,WAAA,cACtD,sBAAA;EAEX,OAAA,EAAO,OAAA;;;cA6CI,gBAAA,SAAyB,uBAAA,CACpC,UAAA,CAAW,WAAA,GACX,oBAAA"}
|
|
@@ -1,51 +1,43 @@
|
|
|
1
1
|
import { AssistantTransformStream } from "../utils/stream/AssistantTransformStream.js";
|
|
2
2
|
import { PipeableTransformStream } from "../utils/stream/PipeableTransformStream.js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
},
|
|
44
|
-
});
|
|
45
|
-
return readable
|
|
46
|
-
.pipeThrough(new TextDecoderStream())
|
|
47
|
-
.pipeThrough(transform);
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
}
|
|
3
|
+
//#region src/core/serialization/PlainText.ts
|
|
4
|
+
var PlainTextEncoder = class extends PipeableTransformStream {
|
|
5
|
+
headers = new Headers({
|
|
6
|
+
"Content-Type": "text/plain; charset=utf-8",
|
|
7
|
+
"x-vercel-ai-data-stream": "v1"
|
|
8
|
+
});
|
|
9
|
+
constructor() {
|
|
10
|
+
super((readable) => {
|
|
11
|
+
const transform = new TransformStream({ transform(chunk, controller) {
|
|
12
|
+
const type = chunk.type;
|
|
13
|
+
switch (type) {
|
|
14
|
+
case "text-delta":
|
|
15
|
+
controller.enqueue(chunk.textDelta);
|
|
16
|
+
break;
|
|
17
|
+
case "part-start":
|
|
18
|
+
case "part-finish":
|
|
19
|
+
case "step-start":
|
|
20
|
+
case "step-finish":
|
|
21
|
+
case "message-finish":
|
|
22
|
+
case "error": break;
|
|
23
|
+
default: throw new Error(`unsupported chunk type: ${type}`);
|
|
24
|
+
}
|
|
25
|
+
} });
|
|
26
|
+
return readable.pipeThrough(transform).pipeThrough(new TextEncoderStream());
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
var PlainTextDecoder = class extends PipeableTransformStream {
|
|
31
|
+
constructor() {
|
|
32
|
+
super((readable) => {
|
|
33
|
+
const transform = new AssistantTransformStream({ transform(chunk, controller) {
|
|
34
|
+
controller.appendText(chunk);
|
|
35
|
+
} });
|
|
36
|
+
return readable.pipeThrough(new TextDecoderStream()).pipeThrough(transform);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
//#endregion
|
|
41
|
+
export { PlainTextDecoder, PlainTextEncoder };
|
|
42
|
+
|
|
51
43
|
//# sourceMappingURL=PlainText.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlainText.js","
|
|
1
|
+
{"version":3,"file":"PlainText.js","names":["unsupportedType"],"sources":["../../../src/core/serialization/PlainText.ts"],"sourcesContent":["import type { AssistantStreamEncoder } from \"../AssistantStream\";\nimport type { AssistantStreamChunk } from \"../AssistantStreamChunk\";\nimport { AssistantTransformStream } from \"../utils/stream/AssistantTransformStream\";\nimport { PipeableTransformStream } from \"../utils/stream/PipeableTransformStream\";\n\nexport class PlainTextEncoder\n extends PipeableTransformStream<AssistantStreamChunk, Uint8Array<ArrayBuffer>>\n implements AssistantStreamEncoder\n{\n headers = new Headers({\n \"Content-Type\": \"text/plain; charset=utf-8\",\n \"x-vercel-ai-data-stream\": \"v1\",\n });\n\n constructor() {\n super((readable) => {\n const transform = new TransformStream<AssistantStreamChunk, string>({\n transform(chunk, controller) {\n const type = chunk.type;\n switch (type) {\n case \"text-delta\":\n controller.enqueue(chunk.textDelta);\n break;\n\n case \"part-start\":\n case \"part-finish\":\n case \"step-start\":\n case \"step-finish\":\n case \"message-finish\":\n case \"error\":\n break;\n\n default: {\n const unsupportedType:\n | \"tool-call-args-text-finish\"\n | \"data\"\n | \"annotations\"\n | \"tool-call-begin\"\n | \"tool-call-delta\"\n | \"result\"\n | \"update-state\" = type;\n throw new Error(`unsupported chunk type: ${unsupportedType}`);\n }\n }\n },\n });\n\n return readable\n .pipeThrough(transform)\n .pipeThrough(new TextEncoderStream());\n });\n }\n}\n\nexport class PlainTextDecoder extends PipeableTransformStream<\n Uint8Array<ArrayBuffer>,\n AssistantStreamChunk\n> {\n constructor() {\n super((readable) => {\n const transform = new AssistantTransformStream<string>({\n transform(chunk, controller) {\n controller.appendText(chunk);\n },\n });\n\n return readable\n .pipeThrough(new TextDecoderStream())\n .pipeThrough(transform);\n });\n }\n}\n"],"mappings":";;;AAKA,IAAa,mBAAb,cACU,wBAEV;CACE,UAAU,IAAI,QAAQ;EACpB,gBAAgB;EAChB,2BAA2B;CAC7B,CAAC;CAED,cAAc;EACZ,OAAO,aAAa;GAClB,MAAM,YAAY,IAAI,gBAA8C,EAClE,UAAU,OAAO,YAAY;IAC3B,MAAM,OAAO,MAAM;IACnB,QAAQ,MAAR;KACE,KAAK;MACH,WAAW,QAAQ,MAAM,SAAS;MAClC;KAEF,KAAK;KACL,KAAK;KACL,KAAK;KACL,KAAK;KACL,KAAK;KACL,KAAK,SACH;KAEF,SASE,MAAM,IAAI,MAAM,2BAA2BA,MAAiB;IAEhE;GACF,EACF,CAAC;GAED,OAAO,SACJ,YAAY,SAAS,EACrB,YAAY,IAAI,kBAAkB,CAAC;EACxC,CAAC;CACH;AACF;AAEA,IAAa,mBAAb,cAAsC,wBAGpC;CACA,cAAc;EACZ,OAAO,aAAa;GAClB,MAAM,YAAY,IAAI,yBAAiC,EACrD,UAAU,OAAO,YAAY;IAC3B,WAAW,WAAW,KAAK;GAC7B,EACF,CAAC;GAED,OAAO,SACJ,YAAY,IAAI,kBAAkB,CAAC,EACnC,YAAY,SAAS;EAC1B,CAAC;CACH;AACF"}
|
|
@@ -1,19 +1,23 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { AssistantStreamChunk } from "../../AssistantStreamChunk.js";
|
|
2
|
+
import { AssistantStreamEncoder } from "../../AssistantStream.js";
|
|
2
3
|
import { PipeableTransformStream } from "../../utils/stream/PipeableTransformStream.js";
|
|
3
|
-
|
|
4
|
+
|
|
5
|
+
//#region src/core/serialization/assistant-transport/AssistantTransport.d.ts
|
|
4
6
|
/**
|
|
5
7
|
* AssistantTransportEncoder encodes AssistantStreamChunks into SSE format
|
|
6
8
|
* and emits [DONE] when the stream completes.
|
|
7
9
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
10
|
+
declare class AssistantTransportEncoder extends PipeableTransformStream<AssistantStreamChunk, Uint8Array<ArrayBuffer>> implements AssistantStreamEncoder {
|
|
11
|
+
headers: Headers;
|
|
12
|
+
constructor();
|
|
11
13
|
}
|
|
12
14
|
/**
|
|
13
15
|
* AssistantTransportDecoder decodes SSE format into AssistantStreamChunks.
|
|
14
16
|
* It stops decoding when it encounters [DONE].
|
|
15
17
|
*/
|
|
16
|
-
|
|
17
|
-
|
|
18
|
+
declare class AssistantTransportDecoder extends PipeableTransformStream<Uint8Array<ArrayBuffer>, AssistantStreamChunk> {
|
|
19
|
+
constructor();
|
|
18
20
|
}
|
|
21
|
+
//#endregion
|
|
22
|
+
export { AssistantTransportDecoder, AssistantTransportEncoder };
|
|
19
23
|
//# sourceMappingURL=AssistantTransport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AssistantTransport.d.ts","
|
|
1
|
+
{"version":3,"file":"AssistantTransport.d.ts","names":[],"sources":["../../../../src/core/serialization/assistant-transport/AssistantTransport.ts"],"mappings":";;;;;;;AASA;;cAAa,yBAAA,SACH,uBAAA,CAAwB,oBAAA,EAAsB,UAAA,CAAW,WAAA,cACtD,sBAAA;EAEX,OAAA,EAAO,OAAA;;;;;;;cA8FI,yBAAA,SAAkC,uBAAA,CAC7C,UAAA,CAAW,WAAA,GACX,oBAAA"}
|