assistant-stream 0.3.15 → 0.3.16

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 (232) 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 +174 -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/dist/core/AssistantStreamChunk.js.map +0 -1
  219. package/dist/core/object/types.js.map +0 -1
  220. package/dist/core/serialization/ui-message-stream/chunk-types.js.map +0 -1
  221. package/dist/core/tool/tool-types.js.map +0 -1
  222. package/dist/core/tool/type-path-utils.js.map +0 -1
  223. package/dist/core/utils/stream/UnderlyingReadable.js.map +0 -1
  224. package/dist/core/utils/types.js.map +0 -1
  225. package/dist/index.d.ts.map +0 -1
  226. package/dist/index.js.map +0 -1
  227. package/dist/resumable/index.d.ts.map +0 -1
  228. package/dist/resumable/index.js.map +0 -1
  229. package/dist/resumable/types.js.map +0 -1
  230. package/dist/utils/json/json-value.js.map +0 -1
  231. package/dist/utils.d.ts.map +0 -1
  232. package/dist/utils.js.map +0 -1
@@ -1,15 +1,18 @@
1
- import type { AssistantStreamChunk } from "../../AssistantStreamChunk.js";
2
- import { type AssistantStreamController } from "../../modules/assistant-stream.js";
1
+ import { AssistantStreamController } from "../../modules/assistant-stream.js";
2
+ import { AssistantStreamChunk } from "../../AssistantStreamChunk.js";
3
+
4
+ //#region src/core/utils/stream/AssistantTransformStream.d.ts
3
5
  type AssistantTransformerFlushCallback = (controller: AssistantStreamController) => void | PromiseLike<void>;
4
6
  type AssistantTransformerStartCallback = (controller: AssistantStreamController) => void | PromiseLike<void>;
5
7
  type AssistantTransformerTransformCallback<I> = (chunk: I, controller: AssistantStreamController) => void | PromiseLike<void>;
6
8
  type AssistantTransformer<I> = {
7
- flush?: AssistantTransformerFlushCallback;
8
- start?: AssistantTransformerStartCallback;
9
- transform?: AssistantTransformerTransformCallback<I>;
9
+ flush?: AssistantTransformerFlushCallback;
10
+ start?: AssistantTransformerStartCallback;
11
+ transform?: AssistantTransformerTransformCallback<I>;
10
12
  };
11
- export declare class AssistantTransformStream<I> extends TransformStream<I, AssistantStreamChunk> {
12
- constructor(transformer: AssistantTransformer<I>, writableStrategy?: QueuingStrategy<I>, readableStrategy?: QueuingStrategy<AssistantStreamChunk>);
13
+ declare class AssistantTransformStream<I> extends TransformStream<I, AssistantStreamChunk> {
14
+ constructor(transformer: AssistantTransformer<I>, writableStrategy?: QueuingStrategy<I>, readableStrategy?: QueuingStrategy<AssistantStreamChunk>);
13
15
  }
14
- export {};
16
+ //#endregion
17
+ export { AssistantTransformStream };
15
18
  //# sourceMappingURL=AssistantTransformStream.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantTransformStream.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/stream/AssistantTransformStream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,sCAAmC;AACvE,OAAO,EACL,KAAK,yBAAyB,EAE/B,0CAAuC;AAExC,KAAK,iCAAiC,GAAG,CACvC,UAAU,EAAE,yBAAyB,KAClC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;AAE9B,KAAK,iCAAiC,GAAG,CACvC,UAAU,EAAE,yBAAyB,KAClC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;AAE9B,KAAK,qCAAqC,CAAC,CAAC,IAAI,CAC9C,KAAK,EAAE,CAAC,EACR,UAAU,EAAE,yBAAyB,KAClC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;AAE9B,KAAK,oBAAoB,CAAC,CAAC,IAAI;IAC7B,KAAK,CAAC,EAAE,iCAAiC,CAAC;IAC1C,KAAK,CAAC,EAAE,iCAAiC,CAAC;IAC1C,SAAS,CAAC,EAAE,qCAAqC,CAAC,CAAC,CAAC,CAAC;CACtD,CAAC;AAEF,qBAAa,wBAAwB,CAAC,CAAC,CAAE,SAAQ,eAAe,CAC9D,CAAC,EACD,oBAAoB,CACrB;gBAEG,WAAW,EAAE,oBAAoB,CAAC,CAAC,CAAC,EACpC,gBAAgB,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,EACrC,gBAAgB,CAAC,EAAE,eAAe,CAAC,oBAAoB,CAAC;CAyC3D"}
1
+ {"version":3,"file":"AssistantTransformStream.d.ts","names":[],"sources":["../../../../src/core/utils/stream/AssistantTransformStream.ts"],"mappings":";;;;KAMK,iCAAA,IACH,UAAA,EAAY,yBAAA,YACF,WAAW;AAAA,KAElB,iCAAA,IACH,UAAA,EAAY,yBAAA,YACF,WAAW;AAAA,KAElB,qCAAA,OACH,KAAA,EAAO,CAAA,EACP,UAAA,EAAY,yBAAA,YACF,WAAA;AAAA,KAEP,oBAAA;EACH,KAAA,GAAQ,iCAAA;EACR,KAAA,GAAQ,iCAAA;EACR,SAAA,GAAY,qCAAA,CAAsC,CAAA;AAAA;AAAA,cAGvC,wBAAA,YAAoC,eAAA,CAC/C,CAAA,EACA,oBAAA;cAGE,WAAA,EAAa,oBAAA,CAAqB,CAAA,GAClC,gBAAA,GAAmB,eAAA,CAAgB,CAAA,GACnC,gBAAA,GAAmB,eAAA,CAAgB,oBAAA;AAAA"}
@@ -1,36 +1,38 @@
1
- import { createAssistantStreamController, } from "../../modules/assistant-stream.js";
2
- export class AssistantTransformStream extends TransformStream {
3
- constructor(transformer, writableStrategy, readableStrategy) {
4
- const [stream, runController] = createAssistantStreamController();
5
- let runPipeTask;
6
- super({
7
- start(controller) {
8
- runPipeTask = stream
9
- .pipeTo(new WritableStream({
10
- write(chunk) {
11
- controller.enqueue(chunk);
12
- },
13
- abort(reason) {
14
- controller.error(reason);
15
- },
16
- close() {
17
- controller.terminate();
18
- },
19
- }))
20
- .catch((error) => {
21
- controller.error(error);
22
- });
23
- return transformer.start?.(runController);
24
- },
25
- transform(chunk) {
26
- return transformer.transform?.(chunk, runController);
27
- },
28
- async flush() {
29
- await transformer.flush?.(runController);
30
- runController.close();
31
- await runPipeTask;
32
- },
33
- }, writableStrategy, readableStrategy);
34
- }
35
- }
1
+ import { createAssistantStreamController } from "../../modules/assistant-stream.js";
2
+ //#region src/core/utils/stream/AssistantTransformStream.ts
3
+ var AssistantTransformStream = class extends TransformStream {
4
+ constructor(transformer, writableStrategy, readableStrategy) {
5
+ const [stream, runController] = createAssistantStreamController();
6
+ let runPipeTask;
7
+ super({
8
+ start(controller) {
9
+ runPipeTask = stream.pipeTo(new WritableStream({
10
+ write(chunk) {
11
+ controller.enqueue(chunk);
12
+ },
13
+ abort(reason) {
14
+ controller.error(reason);
15
+ },
16
+ close() {
17
+ controller.terminate();
18
+ }
19
+ })).catch((error) => {
20
+ controller.error(error);
21
+ });
22
+ return transformer.start?.(runController);
23
+ },
24
+ transform(chunk) {
25
+ return transformer.transform?.(chunk, runController);
26
+ },
27
+ async flush() {
28
+ await transformer.flush?.(runController);
29
+ runController.close();
30
+ await runPipeTask;
31
+ }
32
+ }, writableStrategy, readableStrategy);
33
+ }
34
+ };
35
+ //#endregion
36
+ export { AssistantTransformStream };
37
+
36
38
  //# sourceMappingURL=AssistantTransformStream.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantTransformStream.js","sourceRoot":"","sources":["../../../../src/core/utils/stream/AssistantTransformStream.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,+BAA+B,GAChC,0CAAuC;AAqBxC,MAAM,OAAO,wBAA4B,SAAQ,eAGhD;IACC,YACE,WAAoC,EACpC,gBAAqC,EACrC,gBAAwD;QAExD,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GAAG,+BAA+B,EAAE,CAAC;QAElE,IAAI,WAA0B,CAAC;QAC/B,KAAK,CACH;YACE,KAAK,CAAC,UAAU;gBACd,WAAW,GAAG,MAAM;qBACjB,MAAM,CACL,IAAI,cAAc,CAAC;oBACjB,KAAK,CAAC,KAAK;wBACT,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBAC5B,CAAC;oBACD,KAAK,CAAC,MAAY;wBAChB,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBAC3B,CAAC;oBACD,KAAK;wBACH,UAAU,CAAC,SAAS,EAAE,CAAC;oBACzB,CAAC;iBACF,CAAC,CACH;qBACA,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;oBACf,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC1B,CAAC,CAAC,CAAC;gBAEL,OAAO,WAAW,CAAC,KAAK,EAAE,CAAC,aAAa,CAAC,CAAC;YAC5C,CAAC;YACD,SAAS,CAAC,KAAK;gBACb,OAAO,WAAW,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;YACvD,CAAC;YACD,KAAK,CAAC,KAAK;gBACT,MAAM,WAAW,CAAC,KAAK,EAAE,CAAC,aAAa,CAAC,CAAC;gBACzC,aAAa,CAAC,KAAK,EAAE,CAAC;gBACtB,MAAM,WAAW,CAAC;YACpB,CAAC;SACF,EACD,gBAAgB,EAChB,gBAAgB,CACjB,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"AssistantTransformStream.js","names":[],"sources":["../../../../src/core/utils/stream/AssistantTransformStream.ts"],"sourcesContent":["import type { AssistantStreamChunk } from \"../../AssistantStreamChunk\";\nimport {\n type AssistantStreamController,\n createAssistantStreamController,\n} from \"../../modules/assistant-stream\";\n\ntype AssistantTransformerFlushCallback = (\n controller: AssistantStreamController,\n) => void | PromiseLike<void>;\n\ntype AssistantTransformerStartCallback = (\n controller: AssistantStreamController,\n) => void | PromiseLike<void>;\n\ntype AssistantTransformerTransformCallback<I> = (\n chunk: I,\n controller: AssistantStreamController,\n) => void | PromiseLike<void>;\n\ntype AssistantTransformer<I> = {\n flush?: AssistantTransformerFlushCallback;\n start?: AssistantTransformerStartCallback;\n transform?: AssistantTransformerTransformCallback<I>;\n};\n\nexport class AssistantTransformStream<I> extends TransformStream<\n I,\n AssistantStreamChunk\n> {\n constructor(\n transformer: AssistantTransformer<I>,\n writableStrategy?: QueuingStrategy<I>,\n readableStrategy?: QueuingStrategy<AssistantStreamChunk>,\n ) {\n const [stream, runController] = createAssistantStreamController();\n\n let runPipeTask: Promise<void>;\n super(\n {\n start(controller) {\n runPipeTask = stream\n .pipeTo(\n new WritableStream({\n write(chunk) {\n controller.enqueue(chunk);\n },\n abort(reason?: any) {\n controller.error(reason);\n },\n close() {\n controller.terminate();\n },\n }),\n )\n .catch((error) => {\n controller.error(error);\n });\n\n return transformer.start?.(runController);\n },\n transform(chunk) {\n return transformer.transform?.(chunk, runController);\n },\n async flush() {\n await transformer.flush?.(runController);\n runController.close();\n await runPipeTask;\n },\n },\n writableStrategy,\n readableStrategy,\n );\n }\n}\n"],"mappings":";;AAyBA,IAAa,2BAAb,cAAiD,gBAG/C;CACA,YACE,aACA,kBACA,kBACA;EACA,MAAM,CAAC,QAAQ,iBAAiB,gCAAgC;EAEhE,IAAI;EACJ,MACE;GACE,MAAM,YAAY;IAChB,cAAc,OACX,OACC,IAAI,eAAe;KACjB,MAAM,OAAO;MACX,WAAW,QAAQ,KAAK;KAC1B;KACA,MAAM,QAAc;MAClB,WAAW,MAAM,MAAM;KACzB;KACA,QAAQ;MACN,WAAW,UAAU;KACvB;IACF,CAAC,CACH,EACC,OAAO,UAAU;KAChB,WAAW,MAAM,KAAK;IACxB,CAAC;IAEH,OAAO,YAAY,QAAQ,aAAa;GAC1C;GACA,UAAU,OAAO;IACf,OAAO,YAAY,YAAY,OAAO,aAAa;GACrD;GACA,MAAM,QAAQ;IACZ,MAAM,YAAY,QAAQ,aAAa;IACvC,cAAc,MAAM;IACpB,MAAM;GACR;EACF,GACA,kBACA,gBACF;CACF;AACF"}
@@ -1,5 +1,8 @@
1
- export declare class LineDecoderStream extends TransformStream<string, string> {
2
- private buffer;
3
- constructor();
1
+ //#region src/core/utils/stream/LineDecoderStream.d.ts
2
+ declare class LineDecoderStream extends TransformStream<string, string> {
3
+ private buffer;
4
+ constructor();
4
5
  }
6
+ //#endregion
7
+ export { LineDecoderStream };
5
8
  //# sourceMappingURL=LineDecoderStream.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LineDecoderStream.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/stream/LineDecoderStream.ts"],"names":[],"mappings":"AAAA,qBAAa,iBAAkB,SAAQ,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC;IACpE,OAAO,CAAC,MAAM,CAAM;;CA6BrB"}
1
+ {"version":3,"file":"LineDecoderStream.d.ts","names":[],"sources":["../../../../src/core/utils/stream/LineDecoderStream.ts"],"mappings":";cAAa,iBAAA,SAA0B,eAAe;EAAA,QAC5C,MAAA"}
@@ -1,27 +1,24 @@
1
- export class LineDecoderStream extends TransformStream {
2
- buffer = "";
3
- constructor() {
4
- super({
5
- transform: (chunk, controller) => {
6
- this.buffer += chunk;
7
- const lines = this.buffer.split("\n");
8
- // Process all complete lines
9
- for (let i = 0; i < lines.length - 1; i++) {
10
- // Strip trailing \r to handle \r\n (CRLF) line endings per the SSE spec.
11
- const line = lines[i];
12
- controller.enqueue(line.endsWith("\r") ? line.slice(0, -1) : line);
13
- }
14
- // Keep the last incomplete line in the buffer
15
- this.buffer = lines[lines.length - 1] || "";
16
- },
17
- flush: () => {
18
- // If there's content in the buffer when the stream ends, it means
19
- // the stream ended with an incomplete line (no trailing newline)
20
- if (this.buffer) {
21
- throw new Error(`Stream ended with an incomplete line: "${this.buffer}"`);
22
- }
23
- },
24
- });
25
- }
26
- }
1
+ //#region src/core/utils/stream/LineDecoderStream.ts
2
+ var LineDecoderStream = class extends TransformStream {
3
+ buffer = "";
4
+ constructor() {
5
+ super({
6
+ transform: (chunk, controller) => {
7
+ this.buffer += chunk;
8
+ const lines = this.buffer.split("\n");
9
+ for (let i = 0; i < lines.length - 1; i++) {
10
+ const line = lines[i];
11
+ controller.enqueue(line.endsWith("\r") ? line.slice(0, -1) : line);
12
+ }
13
+ this.buffer = lines[lines.length - 1] || "";
14
+ },
15
+ flush: () => {
16
+ if (this.buffer) throw new Error(`Stream ended with an incomplete line: "${this.buffer}"`);
17
+ }
18
+ });
19
+ }
20
+ };
21
+ //#endregion
22
+ export { LineDecoderStream };
23
+
27
24
  //# sourceMappingURL=LineDecoderStream.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LineDecoderStream.js","sourceRoot":"","sources":["../../../../src/core/utils/stream/LineDecoderStream.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,iBAAkB,SAAQ,eAA+B;IAC5D,MAAM,GAAG,EAAE,CAAC;IAEpB;QACE,KAAK,CAAC;YACJ,SAAS,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;gBAC/B,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;gBACrB,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAEtC,6BAA6B;gBAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC1C,yEAAyE;oBACzE,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;oBACvB,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACrE,CAAC;gBAED,8CAA8C;gBAC9C,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9C,CAAC;YACD,KAAK,EAAE,GAAG,EAAE;gBACV,kEAAkE;gBAClE,iEAAiE;gBACjE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChB,MAAM,IAAI,KAAK,CACb,0CAA0C,IAAI,CAAC,MAAM,GAAG,CACzD,CAAC;gBACJ,CAAC;YACH,CAAC;SACF,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"LineDecoderStream.js","names":[],"sources":["../../../../src/core/utils/stream/LineDecoderStream.ts"],"sourcesContent":["export class LineDecoderStream extends TransformStream<string, string> {\n private buffer = \"\";\n\n constructor() {\n super({\n transform: (chunk, controller) => {\n this.buffer += chunk;\n const lines = this.buffer.split(\"\\n\");\n\n // Process all complete lines\n for (let i = 0; i < lines.length - 1; i++) {\n // Strip trailing \\r to handle \\r\\n (CRLF) line endings per the SSE spec.\n const line = lines[i]!;\n controller.enqueue(line.endsWith(\"\\r\") ? line.slice(0, -1) : line);\n }\n\n // Keep the last incomplete line in the buffer\n this.buffer = lines[lines.length - 1] || \"\";\n },\n flush: () => {\n // If there's content in the buffer when the stream ends, it means\n // the stream ended with an incomplete line (no trailing newline)\n if (this.buffer) {\n throw new Error(\n `Stream ended with an incomplete line: \"${this.buffer}\"`,\n );\n }\n },\n });\n }\n}\n"],"mappings":";AAAA,IAAa,oBAAb,cAAuC,gBAAgC;CACrE,SAAiB;CAEjB,cAAc;EACZ,MAAM;GACJ,YAAY,OAAO,eAAe;IAChC,KAAK,UAAU;IACf,MAAM,QAAQ,KAAK,OAAO,MAAM,IAAI;IAGpC,KAAK,IAAI,IAAI,GAAG,IAAI,MAAM,SAAS,GAAG,KAAK;KAEzC,MAAM,OAAO,MAAM;KACnB,WAAW,QAAQ,KAAK,SAAS,IAAI,IAAI,KAAK,MAAM,GAAG,EAAE,IAAI,IAAI;IACnE;IAGA,KAAK,SAAS,MAAM,MAAM,SAAS,MAAM;GAC3C;GACA,aAAa;IAGX,IAAI,KAAK,QACP,MAAM,IAAI,MACR,0CAA0C,KAAK,OAAO,EACxD;GAEJ;EACF,CAAC;CACH;AACF"}
@@ -1,4 +1,7 @@
1
- export declare class PipeableTransformStream<I, O> extends TransformStream<I, O> {
2
- constructor(transform: (readable: ReadableStream<I>) => ReadableStream<O>);
1
+ //#region src/core/utils/stream/PipeableTransformStream.d.ts
2
+ declare class PipeableTransformStream<I, O> extends TransformStream<I, O> {
3
+ constructor(transform: (readable: ReadableStream<I>) => ReadableStream<O>);
3
4
  }
5
+ //#endregion
6
+ export { PipeableTransformStream };
4
7
  //# sourceMappingURL=PipeableTransformStream.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PipeableTransformStream.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/stream/PipeableTransformStream.ts"],"names":[],"mappings":"AAAA,qBAAa,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC1D,SAAS,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,CAAC;CAQ1E"}
1
+ {"version":3,"file":"PipeableTransformStream.d.ts","names":[],"sources":["../../../../src/core/utils/stream/PipeableTransformStream.ts"],"mappings":";cAAa,uBAAA,eAAsC,eAAA,CAAgB,CAAA,EAAG,CAAA;cACxD,SAAA,GAAY,QAAA,EAAU,cAAA,CAAe,CAAA,MAAO,cAAA,CAAe,CAAA;AAAA"}
@@ -1,11 +1,15 @@
1
- export class PipeableTransformStream extends TransformStream {
2
- constructor(transform) {
3
- super();
4
- const readable = transform(super.readable);
5
- Object.defineProperty(this, "readable", {
6
- value: readable,
7
- writable: false,
8
- });
9
- }
10
- }
1
+ //#region src/core/utils/stream/PipeableTransformStream.ts
2
+ var PipeableTransformStream = class extends TransformStream {
3
+ constructor(transform) {
4
+ super();
5
+ const readable = transform(super.readable);
6
+ Object.defineProperty(this, "readable", {
7
+ value: readable,
8
+ writable: false
9
+ });
10
+ }
11
+ };
12
+ //#endregion
13
+ export { PipeableTransformStream };
14
+
11
15
  //# sourceMappingURL=PipeableTransformStream.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PipeableTransformStream.js","sourceRoot":"","sources":["../../../../src/core/utils/stream/PipeableTransformStream.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,uBAA8B,SAAQ,eAAqB;IACtE,YAAY,SAA6D;QACvE,KAAK,EAAE,CAAC;QACR,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,QAAwC,CAAC,CAAC;QAC3E,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE;YACtC,KAAK,EAAE,QAAQ;YACf,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"PipeableTransformStream.js","names":[],"sources":["../../../../src/core/utils/stream/PipeableTransformStream.ts"],"sourcesContent":["export class PipeableTransformStream<I, O> extends TransformStream<I, O> {\n constructor(transform: (readable: ReadableStream<I>) => ReadableStream<O>) {\n super();\n const readable = transform(super.readable as unknown as ReadableStream<I>);\n Object.defineProperty(this, \"readable\", {\n value: readable,\n writable: false,\n });\n }\n}\n"],"mappings":";AAAA,IAAa,0BAAb,cAAmD,gBAAsB;CACvE,YAAY,WAA+D;EACzE,MAAM;EACN,MAAM,WAAW,UAAU,MAAM,QAAwC;EACzE,OAAO,eAAe,MAAM,YAAY;GACtC,OAAO;GACP,UAAU;EACZ,CAAC;CACH;AACF"}
@@ -1,10 +1,14 @@
1
1
  import { PipeableTransformStream } from "./PipeableTransformStream.js";
2
- export declare class SSEEncoder<T> extends PipeableTransformStream<T, Uint8Array<ArrayBuffer>> {
3
- static readonly headers: Headers;
4
- headers: Headers;
5
- constructor();
2
+
3
+ //#region src/core/utils/stream/SSE.d.ts
4
+ declare class SSEEncoder<T> extends PipeableTransformStream<T, Uint8Array<ArrayBuffer>> {
5
+ static readonly headers: Headers;
6
+ headers: Headers;
7
+ constructor();
6
8
  }
7
- export declare class SSEDecoder<T> extends PipeableTransformStream<Uint8Array<ArrayBuffer>, T> {
8
- constructor();
9
+ declare class SSEDecoder<T> extends PipeableTransformStream<Uint8Array<ArrayBuffer>, T> {
10
+ constructor();
9
11
  }
12
+ //#endregion
13
+ export { SSEDecoder, SSEEncoder };
10
14
  //# sourceMappingURL=SSE.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SSE.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/stream/SSE.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,qCAAkC;AAGpE,qBAAa,UAAU,CAAC,CAAC,CAAE,SAAQ,uBAAuB,CACxD,CAAC,EACD,UAAU,CAAC,WAAW,CAAC,CACxB;IACC,MAAM,CAAC,QAAQ,CAAC,OAAO,UAIpB;IAEH,OAAO,UAAsB;;CAe9B;AAoED,qBAAa,UAAU,CAAC,CAAC,CAAE,SAAQ,uBAAuB,CACxD,UAAU,CAAC,WAAW,CAAC,EACvB,CAAC,CACF;;CAsBA"}
1
+ {"version":3,"file":"SSE.d.ts","names":[],"sources":["../../../../src/core/utils/stream/SSE.ts"],"mappings":";;;cAGa,UAAA,YAAsB,uBAAA,CACjC,CAAA,EACA,UAAA,CAAW,WAAA;EAAA,gBAEK,OAAA,EAAO,OAAA;EAMvB,OAAA,EAAO,OAAA;;;cAmFI,UAAA,YAAsB,uBAAA,CACjC,UAAA,CAAW,WAAA,GACX,CAAA"}
@@ -1,94 +1,82 @@
1
1
  import { PipeableTransformStream } from "./PipeableTransformStream.js";
2
2
  import { LineDecoderStream } from "./LineDecoderStream.js";
3
- export class SSEEncoder extends PipeableTransformStream {
4
- static headers = new Headers({
5
- "Content-Type": "text/event-stream",
6
- "Cache-Control": "no-cache",
7
- Connection: "keep-alive",
8
- });
9
- headers = SSEEncoder.headers;
10
- constructor() {
11
- super((readable) => readable
12
- .pipeThrough(new TransformStream({
13
- transform(chunk, controller) {
14
- controller.enqueue(`data: ${JSON.stringify(chunk)}\n\n`);
15
- },
16
- }))
17
- .pipeThrough(new TextEncoderStream()));
18
- }
19
- }
20
- class SSEEventStream extends TransformStream {
21
- constructor() {
22
- let eventBuffer = {};
23
- let dataLines = [];
24
- super({
25
- start() {
26
- eventBuffer = {};
27
- dataLines = [];
28
- },
29
- transform(line, controller) {
30
- if (line.startsWith(":"))
31
- return; // Ignore comments
32
- if (line === "") {
33
- if (dataLines.length > 0) {
34
- controller.enqueue({
35
- event: eventBuffer.event || "message",
36
- data: dataLines.join("\n"),
37
- id: eventBuffer.id,
38
- retry: eventBuffer.retry,
39
- });
40
- }
41
- eventBuffer = {};
42
- dataLines = [];
43
- return;
44
- }
45
- const [field, ...rest] = line.split(":");
46
- const value = rest.join(":").trimStart();
47
- switch (field) {
48
- case "event":
49
- eventBuffer.event = value;
50
- break;
51
- case "data":
52
- dataLines.push(value);
53
- break;
54
- case "id":
55
- eventBuffer.id = value;
56
- break;
57
- case "retry":
58
- eventBuffer.retry = Number(value);
59
- break;
60
- }
61
- },
62
- flush(controller) {
63
- if (dataLines.length > 0) {
64
- controller.enqueue({
65
- event: eventBuffer.event || "message",
66
- data: dataLines.join("\n"),
67
- id: eventBuffer.id,
68
- retry: eventBuffer.retry,
69
- });
70
- }
71
- },
72
- });
73
- }
74
- }
75
- export class SSEDecoder extends PipeableTransformStream {
76
- constructor() {
77
- super((readable) => readable
78
- .pipeThrough(new TextDecoderStream())
79
- .pipeThrough(new LineDecoderStream())
80
- .pipeThrough(new SSEEventStream())
81
- .pipeThrough(new TransformStream({
82
- transform(event, controller) {
83
- switch (event.event) {
84
- case "message":
85
- controller.enqueue(JSON.parse(event.data));
86
- break;
87
- default:
88
- throw new Error(`Unknown SSE event type: ${event.event}`);
89
- }
90
- },
91
- })));
92
- }
93
- }
3
+ //#region src/core/utils/stream/SSE.ts
4
+ var SSEEncoder = class SSEEncoder extends PipeableTransformStream {
5
+ static headers = new Headers({
6
+ "Content-Type": "text/event-stream",
7
+ "Cache-Control": "no-cache",
8
+ Connection: "keep-alive"
9
+ });
10
+ headers = SSEEncoder.headers;
11
+ constructor() {
12
+ super((readable) => readable.pipeThrough(new TransformStream({ transform(chunk, controller) {
13
+ controller.enqueue(`data: ${JSON.stringify(chunk)}\n\n`);
14
+ } })).pipeThrough(new TextEncoderStream()));
15
+ }
16
+ };
17
+ var SSEEventStream = class extends TransformStream {
18
+ constructor() {
19
+ let eventBuffer = {};
20
+ let dataLines = [];
21
+ super({
22
+ start() {
23
+ eventBuffer = {};
24
+ dataLines = [];
25
+ },
26
+ transform(line, controller) {
27
+ if (line.startsWith(":")) return;
28
+ if (line === "") {
29
+ if (dataLines.length > 0) controller.enqueue({
30
+ event: eventBuffer.event || "message",
31
+ data: dataLines.join("\n"),
32
+ id: eventBuffer.id,
33
+ retry: eventBuffer.retry
34
+ });
35
+ eventBuffer = {};
36
+ dataLines = [];
37
+ return;
38
+ }
39
+ const [field, ...rest] = line.split(":");
40
+ const value = rest.join(":").trimStart();
41
+ switch (field) {
42
+ case "event":
43
+ eventBuffer.event = value;
44
+ break;
45
+ case "data":
46
+ dataLines.push(value);
47
+ break;
48
+ case "id":
49
+ eventBuffer.id = value;
50
+ break;
51
+ case "retry":
52
+ eventBuffer.retry = Number(value);
53
+ break;
54
+ }
55
+ },
56
+ flush(controller) {
57
+ if (dataLines.length > 0) controller.enqueue({
58
+ event: eventBuffer.event || "message",
59
+ data: dataLines.join("\n"),
60
+ id: eventBuffer.id,
61
+ retry: eventBuffer.retry
62
+ });
63
+ }
64
+ });
65
+ }
66
+ };
67
+ var SSEDecoder = class extends PipeableTransformStream {
68
+ constructor() {
69
+ super((readable) => readable.pipeThrough(new TextDecoderStream()).pipeThrough(new LineDecoderStream()).pipeThrough(new SSEEventStream()).pipeThrough(new TransformStream({ transform(event, controller) {
70
+ switch (event.event) {
71
+ case "message":
72
+ controller.enqueue(JSON.parse(event.data));
73
+ break;
74
+ default: throw new Error(`Unknown SSE event type: ${event.event}`);
75
+ }
76
+ } })));
77
+ }
78
+ };
79
+ //#endregion
80
+ export { SSEDecoder, SSEEncoder };
81
+
94
82
  //# sourceMappingURL=SSE.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SSE.js","sourceRoot":"","sources":["../../../../src/core/utils/stream/SSE.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SSE.js","names":[],"sources":["../../../../src/core/utils/stream/SSE.ts"],"sourcesContent":["import { PipeableTransformStream } from \"./PipeableTransformStream\";\nimport { LineDecoderStream } from \"./LineDecoderStream\";\n\nexport class SSEEncoder<T> extends PipeableTransformStream<\n T,\n Uint8Array<ArrayBuffer>\n> {\n static readonly headers = new Headers({\n \"Content-Type\": \"text/event-stream\",\n \"Cache-Control\": \"no-cache\",\n Connection: \"keep-alive\",\n });\n\n headers = SSEEncoder.headers;\n\n constructor() {\n super((readable) =>\n readable\n .pipeThrough(\n new TransformStream<T, string>({\n transform(chunk, controller) {\n controller.enqueue(`data: ${JSON.stringify(chunk)}\\n\\n`);\n },\n }),\n )\n .pipeThrough(new TextEncoderStream()),\n );\n }\n}\n\ntype SSEEvent = {\n event: string;\n data: string;\n id?: string | undefined;\n retry?: number | undefined;\n};\n\nclass SSEEventStream extends TransformStream<string, SSEEvent> {\n constructor() {\n let eventBuffer: Partial<SSEEvent> = {};\n let dataLines: string[] = [];\n\n super({\n start() {\n eventBuffer = {};\n dataLines = [];\n },\n transform(line, controller) {\n if (line.startsWith(\":\")) return; // Ignore comments\n\n if (line === \"\") {\n if (dataLines.length > 0) {\n controller.enqueue({\n event: eventBuffer.event || \"message\",\n data: dataLines.join(\"\\n\"),\n id: eventBuffer.id,\n retry: eventBuffer.retry,\n });\n }\n eventBuffer = {};\n dataLines = [];\n return;\n }\n\n const [field, ...rest] = line.split(\":\");\n const value = rest.join(\":\").trimStart();\n\n switch (field) {\n case \"event\":\n eventBuffer.event = value;\n break;\n case \"data\":\n dataLines.push(value);\n break;\n case \"id\":\n eventBuffer.id = value;\n break;\n case \"retry\":\n eventBuffer.retry = Number(value);\n break;\n }\n },\n flush(controller) {\n if (dataLines.length > 0) {\n controller.enqueue({\n event: eventBuffer.event || \"message\",\n data: dataLines.join(\"\\n\"),\n id: eventBuffer.id,\n retry: eventBuffer.retry,\n });\n }\n },\n });\n }\n}\n\nexport class SSEDecoder<T> extends PipeableTransformStream<\n Uint8Array<ArrayBuffer>,\n T\n> {\n constructor() {\n super((readable) =>\n readable\n .pipeThrough(new TextDecoderStream())\n .pipeThrough(new LineDecoderStream())\n .pipeThrough(new SSEEventStream())\n .pipeThrough(\n new TransformStream<SSEEvent, T>({\n transform(event, controller) {\n switch (event.event) {\n case \"message\":\n controller.enqueue(JSON.parse(event.data));\n break;\n default:\n throw new Error(`Unknown SSE event type: ${event.event}`);\n }\n },\n }),\n ),\n );\n }\n}\n"],"mappings":";;;AAGA,IAAa,aAAb,MAAa,mBAAsB,wBAGjC;CACA,OAAgB,UAAU,IAAI,QAAQ;EACpC,gBAAgB;EAChB,iBAAiB;EACjB,YAAY;CACd,CAAC;CAED,UAAU,WAAW;CAErB,cAAc;EACZ,OAAO,aACL,SACG,YACC,IAAI,gBAA2B,EAC7B,UAAU,OAAO,YAAY;GAC3B,WAAW,QAAQ,SAAS,KAAK,UAAU,KAAK,EAAE,KAAK;EACzD,EACF,CAAC,CACH,EACC,YAAY,IAAI,kBAAkB,CAAC,CACxC;CACF;AACF;AASA,IAAM,iBAAN,cAA6B,gBAAkC;CAC7D,cAAc;EACZ,IAAI,cAAiC,CAAC;EACtC,IAAI,YAAsB,CAAC;EAE3B,MAAM;GACJ,QAAQ;IACN,cAAc,CAAC;IACf,YAAY,CAAC;GACf;GACA,UAAU,MAAM,YAAY;IAC1B,IAAI,KAAK,WAAW,GAAG,GAAG;IAE1B,IAAI,SAAS,IAAI;KACf,IAAI,UAAU,SAAS,GACrB,WAAW,QAAQ;MACjB,OAAO,YAAY,SAAS;MAC5B,MAAM,UAAU,KAAK,IAAI;MACzB,IAAI,YAAY;MAChB,OAAO,YAAY;KACrB,CAAC;KAEH,cAAc,CAAC;KACf,YAAY,CAAC;KACb;IACF;IAEA,MAAM,CAAC,OAAO,GAAG,QAAQ,KAAK,MAAM,GAAG;IACvC,MAAM,QAAQ,KAAK,KAAK,GAAG,EAAE,UAAU;IAEvC,QAAQ,OAAR;KACE,KAAK;MACH,YAAY,QAAQ;MACpB;KACF,KAAK;MACH,UAAU,KAAK,KAAK;MACpB;KACF,KAAK;MACH,YAAY,KAAK;MACjB;KACF,KAAK;MACH,YAAY,QAAQ,OAAO,KAAK;MAChC;IACJ;GACF;GACA,MAAM,YAAY;IAChB,IAAI,UAAU,SAAS,GACrB,WAAW,QAAQ;KACjB,OAAO,YAAY,SAAS;KAC5B,MAAM,UAAU,KAAK,IAAI;KACzB,IAAI,YAAY;KAChB,OAAO,YAAY;IACrB,CAAC;GAEL;EACF,CAAC;CACH;AACF;AAEA,IAAa,aAAb,cAAmC,wBAGjC;CACA,cAAc;EACZ,OAAO,aACL,SACG,YAAY,IAAI,kBAAkB,CAAC,EACnC,YAAY,IAAI,kBAAkB,CAAC,EACnC,YAAY,IAAI,eAAe,CAAC,EAChC,YACC,IAAI,gBAA6B,EAC/B,UAAU,OAAO,YAAY;GAC3B,QAAQ,MAAM,OAAd;IACE,KAAK;KACH,WAAW,QAAQ,KAAK,MAAM,MAAM,IAAI,CAAC;KACzC;IACF,SACE,MAAM,IAAI,MAAM,2BAA2B,MAAM,OAAO;GAC5D;EACF,EACF,CAAC,CACH,CACJ;CACF;AACF"}
@@ -1,6 +1,9 @@
1
- export type UnderlyingReadable<TController> = {
2
- start?: (controller: TController) => void;
3
- pull?: (controller: TController) => void | PromiseLike<void>;
4
- cancel?: UnderlyingSourceCancelCallback;
1
+ //#region src/core/utils/stream/UnderlyingReadable.d.ts
2
+ type UnderlyingReadable<TController> = {
3
+ start?: (controller: TController) => void;
4
+ pull?: (controller: TController) => void | PromiseLike<void>;
5
+ cancel?: UnderlyingSourceCancelCallback;
5
6
  };
7
+ //#endregion
8
+ export { UnderlyingReadable };
6
9
  //# sourceMappingURL=UnderlyingReadable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UnderlyingReadable.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/stream/UnderlyingReadable.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,CAAC,WAAW,IAAI;IAC5C,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,WAAW,KAAK,IAAI,CAAC;IAC1C,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,WAAW,KAAK,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC7D,MAAM,CAAC,EAAE,8BAA8B,CAAC;CACzC,CAAC"}
1
+ {"version":3,"file":"UnderlyingReadable.d.ts","names":[],"sources":["../../../../src/core/utils/stream/UnderlyingReadable.ts"],"mappings":";KAAY,kBAAA;EACV,KAAA,IAAS,UAAA,EAAY,WAAA;EACrB,IAAA,IAAQ,UAAA,EAAY,WAAA,YAAuB,WAAA;EAC3C,MAAA,GAAS,8BAAA;AAAA"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=UnderlyingReadable.js.map
@@ -1,9 +1,13 @@
1
- import type { AssistantStreamChunk } from "../../AssistantStreamChunk.js";
2
- export declare const createMergeStream: () => {
3
- readable: ReadableStream<AssistantStreamChunk>;
4
- isSealed(): boolean;
5
- seal(): void;
6
- addStream(stream: ReadableStream<AssistantStreamChunk>): void;
7
- enqueue(chunk: AssistantStreamChunk): void;
1
+ import { AssistantStreamChunk } from "../../AssistantStreamChunk.js";
2
+
3
+ //#region src/core/utils/stream/merge.d.ts
4
+ declare const createMergeStream: () => {
5
+ readable: ReadableStream<AssistantStreamChunk>;
6
+ isSealed(): boolean;
7
+ seal(): void;
8
+ addStream(stream: ReadableStream<AssistantStreamChunk>): void;
9
+ enqueue(chunk: AssistantStreamChunk): void;
8
10
  };
11
+ //#endregion
12
+ export { createMergeStream };
9
13
  //# sourceMappingURL=merge.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/stream/merge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,sCAAmC;AAQvE,eAAO,MAAM,iBAAiB;;;;sBA0ER,cAAc,CAAC,oBAAoB,CAAC;mBAUvC,oBAAoB;CAWtC,CAAC"}
1
+ {"version":3,"file":"merge.d.ts","names":[],"sources":["../../../../src/core/utils/stream/merge.ts"],"mappings":";;;cAQa,iBAAA;;;;oBA0ES,cAAA,CAAe,oBAAA;iBAUlB,oBAAA;AAAA"}