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.
Files changed (234) hide show
  1. package/README.md +6 -4
  2. package/dist/core/AssistantStream.d.ts +35 -31
  3. package/dist/core/AssistantStream.d.ts.map +1 -1
  4. package/dist/core/AssistantStream.js +39 -37
  5. package/dist/core/AssistantStream.js.map +1 -1
  6. package/dist/core/AssistantStreamChunk.d.ts +71 -78
  7. package/dist/core/AssistantStreamChunk.d.ts.map +1 -1
  8. package/dist/core/AssistantStreamChunk.js +0 -2
  9. package/dist/core/accumulators/AssistantMessageStream.d.ts +15 -11
  10. package/dist/core/accumulators/AssistantMessageStream.d.ts.map +1 -1
  11. package/dist/core/accumulators/AssistantMessageStream.js +52 -48
  12. package/dist/core/accumulators/AssistantMessageStream.js.map +1 -1
  13. package/dist/core/accumulators/TimingTracker.d.ts +15 -11
  14. package/dist/core/accumulators/TimingTracker.d.ts.map +1 -1
  15. package/dist/core/accumulators/TimingTracker.js +36 -43
  16. package/dist/core/accumulators/TimingTracker.js.map +1 -1
  17. package/dist/core/accumulators/assistant-message-accumulator.d.ts +21 -11
  18. package/dist/core/accumulators/assistant-message-accumulator.d.ts.map +1 -1
  19. package/dist/core/accumulators/assistant-message-accumulator.js +349 -390
  20. package/dist/core/accumulators/assistant-message-accumulator.js.map +1 -1
  21. package/dist/core/converters/toGenericMessages.d.ts +49 -47
  22. package/dist/core/converters/toGenericMessages.d.ts.map +1 -1
  23. package/dist/core/converters/toGenericMessages.js +122 -136
  24. package/dist/core/converters/toGenericMessages.js.map +1 -1
  25. package/dist/core/modules/assistant-stream.d.ts +62 -66
  26. package/dist/core/modules/assistant-stream.d.ts.map +1 -1
  27. package/dist/core/modules/assistant-stream.js +176 -182
  28. package/dist/core/modules/assistant-stream.js.map +1 -1
  29. package/dist/core/modules/text.d.ts +11 -7
  30. package/dist/core/modules/text.d.ts.map +1 -1
  31. package/dist/core/modules/text.js +45 -45
  32. package/dist/core/modules/text.js.map +1 -1
  33. package/dist/core/modules/tool-call.d.ts +15 -11
  34. package/dist/core/modules/tool-call.d.ts.map +1 -1
  35. package/dist/core/modules/tool-call.js +81 -96
  36. package/dist/core/modules/tool-call.js.map +1 -1
  37. package/dist/core/object/ObjectStreamAccumulator.d.ts +13 -9
  38. package/dist/core/object/ObjectStreamAccumulator.d.ts.map +1 -1
  39. package/dist/core/object/ObjectStreamAccumulator.js +44 -52
  40. package/dist/core/object/ObjectStreamAccumulator.js.map +1 -1
  41. package/dist/core/object/ObjectStreamResponse.d.ts +12 -8
  42. package/dist/core/object/ObjectStreamResponse.d.ts.map +1 -1
  43. package/dist/core/object/ObjectStreamResponse.js +52 -71
  44. package/dist/core/object/ObjectStreamResponse.js.map +1 -1
  45. package/dist/core/object/createObjectStream.d.ts +14 -8
  46. package/dist/core/object/createObjectStream.d.ts.map +1 -1
  47. package/dist/core/object/createObjectStream.js +50 -47
  48. package/dist/core/object/createObjectStream.js.map +1 -1
  49. package/dist/core/object/types.d.ts +14 -11
  50. package/dist/core/object/types.d.ts.map +1 -1
  51. package/dist/core/object/types.js +0 -2
  52. package/dist/core/serialization/PlainText.d.ts +11 -7
  53. package/dist/core/serialization/PlainText.d.ts.map +1 -1
  54. package/dist/core/serialization/PlainText.js +40 -48
  55. package/dist/core/serialization/PlainText.js.map +1 -1
  56. package/dist/core/serialization/assistant-transport/AssistantTransport.d.ts +11 -7
  57. package/dist/core/serialization/assistant-transport/AssistantTransport.d.ts.map +1 -1
  58. package/dist/core/serialization/assistant-transport/AssistantTransport.js +102 -117
  59. package/dist/core/serialization/assistant-transport/AssistantTransport.js.map +1 -1
  60. package/dist/core/serialization/data-stream/DataStream.d.ts +11 -7
  61. package/dist/core/serialization/data-stream/DataStream.d.ts.map +1 -1
  62. package/dist/core/serialization/data-stream/DataStream.js +320 -371
  63. package/dist/core/serialization/data-stream/DataStream.js.map +1 -1
  64. package/dist/core/serialization/data-stream/chunk-types.d.ts +101 -100
  65. package/dist/core/serialization/data-stream/chunk-types.d.ts.map +1 -1
  66. package/dist/core/serialization/data-stream/chunk-types.js +27 -23
  67. package/dist/core/serialization/data-stream/chunk-types.js.map +1 -1
  68. package/dist/core/serialization/data-stream/serialization.d.ts +9 -5
  69. package/dist/core/serialization/data-stream/serialization.d.ts.map +1 -1
  70. package/dist/core/serialization/data-stream/serialization.js +23 -24
  71. package/dist/core/serialization/data-stream/serialization.js.map +1 -1
  72. package/dist/core/serialization/ui-message-stream/UIMessageStream.d.ts +15 -12
  73. package/dist/core/serialization/ui-message-stream/UIMessageStream.d.ts.map +1 -1
  74. package/dist/core/serialization/ui-message-stream/UIMessageStream.js +205 -228
  75. package/dist/core/serialization/ui-message-stream/UIMessageStream.js.map +1 -1
  76. package/dist/core/serialization/ui-message-stream/chunk-types.d.ts +68 -65
  77. package/dist/core/serialization/ui-message-stream/chunk-types.d.ts.map +1 -1
  78. package/dist/core/serialization/ui-message-stream/chunk-types.js +0 -2
  79. package/dist/core/tool/ToolCallReader.d.ts +34 -30
  80. package/dist/core/tool/ToolCallReader.d.ts.map +1 -1
  81. package/dist/core/tool/ToolCallReader.js +264 -317
  82. package/dist/core/tool/ToolCallReader.js.map +1 -1
  83. package/dist/core/tool/ToolExecutionStream.d.ts +20 -17
  84. package/dist/core/tool/ToolExecutionStream.d.ts.map +1 -1
  85. package/dist/core/tool/ToolExecutionStream.js +123 -146
  86. package/dist/core/tool/ToolExecutionStream.js.map +1 -1
  87. package/dist/core/tool/ToolResponse.d.ts +41 -41
  88. package/dist/core/tool/ToolResponse.d.ts.map +1 -1
  89. package/dist/core/tool/ToolResponse.js +50 -56
  90. package/dist/core/tool/ToolResponse.js.map +1 -1
  91. package/dist/core/tool/schema-utils.d.ts +19 -15
  92. package/dist/core/tool/schema-utils.d.ts.map +1 -1
  93. package/dist/core/tool/schema-utils.js +50 -84
  94. package/dist/core/tool/schema-utils.js.map +1 -1
  95. package/dist/core/tool/tool-types.d.ts +103 -122
  96. package/dist/core/tool/tool-types.d.ts.map +1 -1
  97. package/dist/core/tool/tool-types.js +0 -2
  98. package/dist/core/tool/toolResultStream.d.ts +11 -9
  99. package/dist/core/tool/toolResultStream.d.ts.map +1 -1
  100. package/dist/core/tool/toolResultStream.js +127 -157
  101. package/dist/core/tool/toolResultStream.js.map +1 -1
  102. package/dist/core/tool/type-path-utils.d.ts +8 -19
  103. package/dist/core/tool/type-path-utils.d.ts.map +1 -1
  104. package/dist/core/tool/type-path-utils.js +0 -2
  105. package/dist/core/utils/Counter.d.ts +6 -3
  106. package/dist/core/utils/Counter.d.ts.map +1 -1
  107. package/dist/core/utils/Counter.js +10 -6
  108. package/dist/core/utils/Counter.js.map +1 -1
  109. package/dist/core/utils/generateId.d.ts +4 -1
  110. package/dist/core/utils/generateId.d.ts.map +1 -1
  111. package/dist/core/utils/generateId.js +5 -1
  112. package/dist/core/utils/generateId.js.map +1 -1
  113. package/dist/core/utils/stream/AssistantMetaTransformStream.d.ts +15 -11
  114. package/dist/core/utils/stream/AssistantMetaTransformStream.d.ts.map +1 -1
  115. package/dist/core/utils/stream/AssistantMetaTransformStream.js +38 -42
  116. package/dist/core/utils/stream/AssistantMetaTransformStream.js.map +1 -1
  117. package/dist/core/utils/stream/AssistantTransformStream.d.ts +11 -8
  118. package/dist/core/utils/stream/AssistantTransformStream.d.ts.map +1 -1
  119. package/dist/core/utils/stream/AssistantTransformStream.js +37 -35
  120. package/dist/core/utils/stream/AssistantTransformStream.js.map +1 -1
  121. package/dist/core/utils/stream/LineDecoderStream.d.ts +6 -3
  122. package/dist/core/utils/stream/LineDecoderStream.d.ts.map +1 -1
  123. package/dist/core/utils/stream/LineDecoderStream.js +23 -26
  124. package/dist/core/utils/stream/LineDecoderStream.js.map +1 -1
  125. package/dist/core/utils/stream/PipeableTransformStream.d.ts +5 -2
  126. package/dist/core/utils/stream/PipeableTransformStream.d.ts.map +1 -1
  127. package/dist/core/utils/stream/PipeableTransformStream.js +14 -10
  128. package/dist/core/utils/stream/PipeableTransformStream.js.map +1 -1
  129. package/dist/core/utils/stream/SSE.d.ts +10 -6
  130. package/dist/core/utils/stream/SSE.d.ts.map +1 -1
  131. package/dist/core/utils/stream/SSE.js +79 -91
  132. package/dist/core/utils/stream/SSE.js.map +1 -1
  133. package/dist/core/utils/stream/UnderlyingReadable.d.ts +7 -4
  134. package/dist/core/utils/stream/UnderlyingReadable.d.ts.map +1 -1
  135. package/dist/core/utils/stream/UnderlyingReadable.js +0 -2
  136. package/dist/core/utils/stream/merge.d.ts +11 -7
  137. package/dist/core/utils/stream/merge.d.ts.map +1 -1
  138. package/dist/core/utils/stream/merge.js +68 -170
  139. package/dist/core/utils/stream/merge.js.map +1 -1
  140. package/dist/core/utils/stream/path-utils.d.ts +11 -7
  141. package/dist/core/utils/stream/path-utils.d.ts.map +1 -1
  142. package/dist/core/utils/stream/path-utils.js +46 -52
  143. package/dist/core/utils/stream/path-utils.js.map +1 -1
  144. package/dist/core/utils/types.d.ts +109 -113
  145. package/dist/core/utils/types.d.ts.map +1 -1
  146. package/dist/core/utils/types.js +0 -2
  147. package/dist/core/utils/withPromiseOrValue.d.ts +4 -1
  148. package/dist/core/utils/withPromiseOrValue.d.ts.map +1 -1
  149. package/dist/core/utils/withPromiseOrValue.js +12 -15
  150. package/dist/core/utils/withPromiseOrValue.js.map +1 -1
  151. package/dist/index.d.ts +23 -24
  152. package/dist/index.js +16 -16
  153. package/dist/node_modules/.pnpm/@types_json-schema@7.0.15/node_modules/@types/json-schema/index.d.ts +141 -0
  154. package/dist/node_modules/.pnpm/@types_json-schema@7.0.15/node_modules/@types/json-schema/index.d.ts.map +1 -0
  155. package/dist/resumable/ResumableStreamContext.d.ts +28 -24
  156. package/dist/resumable/ResumableStreamContext.d.ts.map +1 -1
  157. package/dist/resumable/ResumableStreamContext.js +99 -114
  158. package/dist/resumable/ResumableStreamContext.js.map +1 -1
  159. package/dist/resumable/constants.d.ts +4 -1
  160. package/dist/resumable/constants.d.ts.map +1 -1
  161. package/dist/resumable/constants.js +5 -1
  162. package/dist/resumable/constants.js.map +1 -1
  163. package/dist/resumable/createResumableAssistantStreamResponse.d.ts +22 -21
  164. package/dist/resumable/createResumableAssistantStreamResponse.d.ts.map +1 -1
  165. package/dist/resumable/createResumableAssistantStreamResponse.js +25 -32
  166. package/dist/resumable/createResumableAssistantStreamResponse.js.map +1 -1
  167. package/dist/resumable/errors.d.ts +8 -5
  168. package/dist/resumable/errors.d.ts.map +1 -1
  169. package/dist/resumable/errors.js +14 -12
  170. package/dist/resumable/errors.js.map +1 -1
  171. package/dist/resumable/index.d.ts +7 -7
  172. package/dist/resumable/index.js +5 -5
  173. package/dist/resumable/stores/InMemoryResumableStreamStore.d.ts +14 -10
  174. package/dist/resumable/stores/InMemoryResumableStreamStore.d.ts.map +1 -1
  175. package/dist/resumable/stores/InMemoryResumableStreamStore.js +159 -193
  176. package/dist/resumable/stores/InMemoryResumableStreamStore.js.map +1 -1
  177. package/dist/resumable/stores/ioredis.d.ts +9 -5
  178. package/dist/resumable/stores/ioredis.d.ts.map +1 -1
  179. package/dist/resumable/stores/ioredis.js +70 -82
  180. package/dist/resumable/stores/ioredis.js.map +1 -1
  181. package/dist/resumable/stores/redis-impl.d.ts +51 -48
  182. package/dist/resumable/stores/redis-impl.d.ts.map +1 -1
  183. package/dist/resumable/stores/redis-impl.js +176 -176
  184. package/dist/resumable/stores/redis-impl.js.map +1 -1
  185. package/dist/resumable/stores/redis.d.ts +31 -28
  186. package/dist/resumable/stores/redis.d.ts.map +1 -1
  187. package/dist/resumable/stores/redis.js +87 -95
  188. package/dist/resumable/stores/redis.js.map +1 -1
  189. package/dist/resumable/types.d.ts +29 -26
  190. package/dist/resumable/types.d.ts.map +1 -1
  191. package/dist/resumable/types.js +0 -2
  192. package/dist/utils/AsyncIterableStream.d.ts +5 -2
  193. package/dist/utils/AsyncIterableStream.d.ts.map +1 -1
  194. package/dist/utils/AsyncIterableStream.js +17 -16
  195. package/dist/utils/AsyncIterableStream.js.map +1 -1
  196. package/dist/utils/json/fix-json.d.ts +4 -1
  197. package/dist/utils/json/fix-json.d.ts.map +1 -1
  198. package/dist/utils/json/fix-json.js +286 -380
  199. package/dist/utils/json/fix-json.js.map +1 -1
  200. package/dist/utils/json/is-json.d.ts +8 -4
  201. package/dist/utils/json/is-json.d.ts.map +1 -1
  202. package/dist/utils/json/is-json.js +13 -21
  203. package/dist/utils/json/is-json.js.map +1 -1
  204. package/dist/utils/json/json-value.d.ts +7 -4
  205. package/dist/utils/json/json-value.d.ts.map +1 -1
  206. package/dist/utils/json/json-value.js +0 -2
  207. package/dist/utils/json/parse-partial-json-object.d.ts +11 -8
  208. package/dist/utils/json/parse-partial-json-object.d.ts.map +1 -1
  209. package/dist/utils/json/parse-partial-json-object.js +50 -62
  210. package/dist/utils/json/parse-partial-json-object.js.map +1 -1
  211. package/dist/utils/promiseWithResolvers.d.ts +7 -4
  212. package/dist/utils/promiseWithResolvers.d.ts.map +1 -1
  213. package/dist/utils/promiseWithResolvers.js +17 -10
  214. package/dist/utils/promiseWithResolvers.js.map +1 -1
  215. package/dist/utils.d.ts +6 -6
  216. package/dist/utils.js +5 -5
  217. package/package.json +3 -3
  218. package/src/core/modules/assistant-stream.test.ts +104 -0
  219. package/src/core/modules/assistant-stream.ts +13 -4
  220. package/dist/core/AssistantStreamChunk.js.map +0 -1
  221. package/dist/core/object/types.js.map +0 -1
  222. package/dist/core/serialization/ui-message-stream/chunk-types.js.map +0 -1
  223. package/dist/core/tool/tool-types.js.map +0 -1
  224. package/dist/core/tool/type-path-utils.js.map +0 -1
  225. package/dist/core/utils/stream/UnderlyingReadable.js.map +0 -1
  226. package/dist/core/utils/types.js.map +0 -1
  227. package/dist/index.d.ts.map +0 -1
  228. package/dist/index.js.map +0 -1
  229. package/dist/resumable/index.d.ts.map +0 -1
  230. package/dist/resumable/index.js.map +0 -1
  231. package/dist/resumable/types.js.map +0 -1
  232. package/dist/utils/json/json-value.js.map +0 -1
  233. package/dist/utils.d.ts.map +0 -1
  234. 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
- export class ObjectStreamEncoder extends PipeableTransformStream {
5
- constructor() {
6
- super((readable) => readable
7
- .pipeThrough((() => {
8
- class ObjectStreamTransformer {
9
- #isFirstChunk = true;
10
- start() {
11
- // Nothing needed here since we initialize in the field declaration
12
- }
13
- transform(chunk, controller) {
14
- if (this.#isFirstChunk &&
15
- chunk.snapshot &&
16
- Object.keys(chunk.snapshot).length > 0) {
17
- // For the first chunk, if there's an initial state that's not empty,
18
- // prepend a set operation for the initial state
19
- controller.enqueue([
20
- { type: "set", path: [], value: chunk.snapshot },
21
- ...chunk.operations,
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","sourceRoot":"","sources":["../../../src/core/object/ObjectStreamResponse.ts"],"names":[],"mappings":"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"}
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 type { ReadonlyJSONValue } from "../../utils.js";
2
- import type { ObjectStreamOperation, ObjectStreamChunk } from "./types.js";
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
- readonly abortSignal: AbortSignal;
5
- enqueue(operations: readonly ObjectStreamOperation[]): void;
6
+ readonly abortSignal: AbortSignal;
7
+ enqueue(operations: readonly ObjectStreamOperation[]): void;
6
8
  };
7
9
  type CreateObjectStreamOptions = {
8
- execute: (controller: ObjectStreamController) => void | PromiseLike<void>;
9
- defaultValue?: ReadonlyJSONValue;
10
+ execute: (controller: ObjectStreamController) => void | PromiseLike<void>;
11
+ defaultValue?: ReadonlyJSONValue;
10
12
  };
11
- export declare const createObjectStream: ({ execute, defaultValue, }: CreateObjectStreamOptions) => ReadableStream<ObjectStreamChunk>;
12
- export {};
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","sourceRoot":"","sources":["../../../src/core/object/createObjectStream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,uBAAoB;AAGrD,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,mBAAgB;AAExE,KAAK,sBAAsB,GAAG;IAC5B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAElC,OAAO,CAAC,UAAU,EAAE,SAAS,qBAAqB,EAAE,GAAG,IAAI,CAAC;CAC7D,CAAC;AAuDF,KAAK,yBAAyB,GAAG;IAC/B,OAAO,EAAE,CAAC,UAAU,EAAE,sBAAsB,KAAK,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC1E,YAAY,CAAC,EAAE,iBAAiB,CAAC;CAClC,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAI,4BAGhC,yBAAyB,sCAc3B,CAAC"}
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
- class ObjectStreamControllerImpl {
4
- _controller;
5
- _abortController = new AbortController();
6
- _accumulator;
7
- get abortSignal() {
8
- return this._abortController.signal;
9
- }
10
- constructor(controller, defaultValue) {
11
- this._controller = controller;
12
- this._accumulator = new ObjectStreamAccumulator(defaultValue);
13
- }
14
- enqueue(operations) {
15
- this._accumulator.append(operations);
16
- this._controller.enqueue({
17
- snapshot: this._accumulator.state,
18
- operations,
19
- });
20
- }
21
- __internalError(error) {
22
- this._controller.error(error);
23
- }
24
- __internalClose() {
25
- this._controller.close();
26
- }
27
- __internalCancel(reason) {
28
- this._abortController.abort(reason);
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
- let controller;
33
- const stream = new ReadableStream({
34
- start(c) {
35
- controller = new ObjectStreamControllerImpl(c, defaultValue);
36
- },
37
- cancel(reason) {
38
- controller.__internalCancel(reason);
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
- export 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;
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","sourceRoot":"","sources":["../../../src/core/object/createObjectStream.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,uCAAoC;AACjE,OAAO,EAAE,uBAAuB,EAAE,qCAAkC;AASpE,MAAM,0BAA0B;IACtB,WAAW,CAAqD;IAChE,gBAAgB,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,YAAY,CAA0B;IAE9C,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;IACtC,CAAC;IAED,YACE,UAA8D,EAC9D,YAA+B;QAE/B,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,uBAAuB,CAAC,YAAY,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,CAAC,UAA4C;QAClD,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAErC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;YACvB,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK;YACjC,UAAU;SACX,CAAC,CAAC;IACL,CAAC;IAED,eAAe,CAAC,KAAc;QAC5B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,eAAe;QACb,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;IAED,gBAAgB,CAAC,MAAgB;QAC/B,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;CACF;AAED,MAAM,uBAAuB,GAAG,CAAC,YAA+B,EAAE,EAAE;IAClE,IAAI,UAAuC,CAAC;IAC5C,MAAM,MAAM,GAAG,IAAI,cAAc,CAAoB;QACnD,KAAK,CAAC,CAAC;YACL,UAAU,GAAG,IAAI,0BAA0B,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,CAAC,MAAe;YACpB,UAAU,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACtC,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,CAAC,MAAM,EAAE,UAAU,CAAU,CAAC;AACvC,CAAC,CAAC;AAOF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EACjC,OAAO,EACP,YAAY,GAAG,EAAE,GACS,EAAE,EAAE;IAC9B,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,uBAAuB,CAAC,YAAY,CAAC,CAAC;IAEnE,kBAAkB,CAChB,GAAG,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,EACzB,GAAG,EAAE;QACH,UAAU,CAAC,eAAe,EAAE,CAAC;IAC/B,CAAC,EACD,CAAC,CAAU,EAAE,EAAE;QACb,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC,CACF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC"}
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 type { ReadonlyJSONValue } from "../../utils.js";
2
- export type ObjectStreamOperation = {
3
- readonly type: "set";
4
- readonly path: readonly string[];
5
- readonly value: ReadonlyJSONValue;
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
- readonly type: "append-text";
8
- readonly path: readonly string[];
9
- readonly value: string;
8
+ readonly type: "append-text";
9
+ readonly path: readonly string[];
10
+ readonly value: string;
10
11
  };
11
- export type ObjectStreamChunk = {
12
- readonly snapshot: ReadonlyJSONValue;
13
- readonly operations: readonly ObjectStreamOperation[];
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","sourceRoot":"","sources":["../../../src/core/object/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,uBAAoB;AAErD,MAAM,MAAM,qBAAqB,GAC7B;IACE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;CACnC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEN,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,UAAU,EAAE,SAAS,qBAAqB,EAAE,CAAC;CACvD,CAAC"}
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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1,11 +1,15 @@
1
- import type { AssistantStreamEncoder } from "../AssistantStream.js";
2
- import type { AssistantStreamChunk } from "../AssistantStreamChunk.js";
1
+ import { AssistantStreamChunk } from "../AssistantStreamChunk.js";
2
+ import { AssistantStreamEncoder } from "../AssistantStream.js";
3
3
  import { PipeableTransformStream } from "../utils/stream/PipeableTransformStream.js";
4
- export declare class PlainTextEncoder extends PipeableTransformStream<AssistantStreamChunk, Uint8Array<ArrayBuffer>> implements AssistantStreamEncoder {
5
- headers: Headers;
6
- constructor();
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
- export declare class PlainTextDecoder extends PipeableTransformStream<Uint8Array<ArrayBuffer>, AssistantStreamChunk> {
9
- constructor();
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","sourceRoot":"","sources":["../../../src/core/serialization/PlainText.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,8BAA2B;AACjE,OAAO,KAAK,EAAE,oBAAoB,EAAE,mCAAgC;AAEpE,OAAO,EAAE,uBAAuB,EAAE,mDAAgD;AAElF,qBAAa,gBACX,SAAQ,uBAAuB,CAAC,oBAAoB,EAAE,UAAU,CAAC,WAAW,CAAC,CAC7E,YAAW,sBAAsB;IAEjC,OAAO,UAGJ;;CAwCJ;AAED,qBAAa,gBAAiB,SAAQ,uBAAuB,CAC3D,UAAU,CAAC,WAAW,CAAC,EACvB,oBAAoB,CACrB;;CAcA"}
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
- export class PlainTextEncoder extends PipeableTransformStream {
4
- headers = new Headers({
5
- "Content-Type": "text/plain; charset=utf-8",
6
- "x-vercel-ai-data-stream": "v1",
7
- });
8
- constructor() {
9
- super((readable) => {
10
- const transform = new TransformStream({
11
- 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":
23
- break;
24
- default: {
25
- const unsupportedType = type;
26
- throw new Error(`unsupported chunk type: ${unsupportedType}`);
27
- }
28
- }
29
- },
30
- });
31
- return readable
32
- .pipeThrough(transform)
33
- .pipeThrough(new TextEncoderStream());
34
- });
35
- }
36
- }
37
- export class PlainTextDecoder extends PipeableTransformStream {
38
- constructor() {
39
- super((readable) => {
40
- const transform = new AssistantTransformStream({
41
- transform(chunk, controller) {
42
- controller.appendText(chunk);
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","sourceRoot":"","sources":["../../../src/core/serialization/PlainText.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,oDAAiD;AACpF,OAAO,EAAE,uBAAuB,EAAE,mDAAgD;AAElF,MAAM,OAAO,gBACX,SAAQ,uBAAsE;IAG9E,OAAO,GAAG,IAAI,OAAO,CAAC;QACpB,cAAc,EAAE,2BAA2B;QAC3C,yBAAyB,EAAE,IAAI;KAChC,CAAC,CAAC;IAEH;QACE,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE;YACjB,MAAM,SAAS,GAAG,IAAI,eAAe,CAA+B;gBAClE,SAAS,CAAC,KAAK,EAAE,UAAU;oBACzB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;oBACxB,QAAQ,IAAI,EAAE,CAAC;wBACb,KAAK,YAAY;4BACf,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;4BACpC,MAAM;wBAER,KAAK,YAAY,CAAC;wBAClB,KAAK,aAAa,CAAC;wBACnB,KAAK,YAAY,CAAC;wBAClB,KAAK,aAAa,CAAC;wBACnB,KAAK,gBAAgB,CAAC;wBACtB,KAAK,OAAO;4BACV,MAAM;wBAER,OAAO,CAAC,CAAC,CAAC;4BACR,MAAM,eAAe,GAOA,IAAI,CAAC;4BAC1B,MAAM,IAAI,KAAK,CAAC,2BAA2B,eAAe,EAAE,CAAC,CAAC;wBAChE,CAAC;oBACH,CAAC;gBACH,CAAC;aACF,CAAC,CAAC;YAEH,OAAO,QAAQ;iBACZ,WAAW,CAAC,SAAS,CAAC;iBACtB,WAAW,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,uBAGrC;IACC;QACE,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE;YACjB,MAAM,SAAS,GAAG,IAAI,wBAAwB,CAAS;gBACrD,SAAS,CAAC,KAAK,EAAE,UAAU;oBACzB,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBAC/B,CAAC;aACF,CAAC,CAAC;YAEH,OAAO,QAAQ;iBACZ,WAAW,CAAC,IAAI,iBAAiB,EAAE,CAAC;iBACpC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
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 type { AssistantStreamChunk } from "../../AssistantStreamChunk.js";
1
+ import { AssistantStreamChunk } from "../../AssistantStreamChunk.js";
2
+ import { AssistantStreamEncoder } from "../../AssistantStream.js";
2
3
  import { PipeableTransformStream } from "../../utils/stream/PipeableTransformStream.js";
3
- import type { AssistantStreamEncoder } from "../../AssistantStream.js";
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
- export declare class AssistantTransportEncoder extends PipeableTransformStream<AssistantStreamChunk, Uint8Array<ArrayBuffer>> implements AssistantStreamEncoder {
9
- headers: Headers;
10
- constructor();
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
- export declare class AssistantTransportDecoder extends PipeableTransformStream<Uint8Array<ArrayBuffer>, AssistantStreamChunk> {
17
- constructor();
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","sourceRoot":"","sources":["../../../../src/core/serialization/assistant-transport/AssistantTransport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,sCAAmC;AACvE,OAAO,EAAE,uBAAuB,EAAE,sDAAmD;AAErF,OAAO,KAAK,EAAE,sBAAsB,EAAE,iCAA8B;AAEpE;;;GAGG;AACH,qBAAa,yBACX,SAAQ,uBAAuB,CAAC,oBAAoB,EAAE,UAAU,CAAC,WAAW,CAAC,CAC7E,YAAW,sBAAsB;IAEjC,OAAO,UAIJ;;CAkBJ;AAoED;;;GAGG;AACH,qBAAa,yBAA0B,SAAQ,uBAAuB,CACpE,UAAU,CAAC,WAAW,CAAC,EACvB,oBAAoB,CACrB;;CAsCA"}
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"}