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,48 +1,48 @@
1
- class TextStreamControllerImpl {
2
- _controller;
3
- _isClosed = false;
4
- constructor(controller) {
5
- this._controller = controller;
6
- }
7
- append(textDelta) {
8
- this._controller.enqueue({
9
- type: "text-delta",
10
- path: [],
11
- textDelta,
12
- });
13
- return this;
14
- }
15
- close() {
16
- if (this._isClosed)
17
- return;
18
- this._isClosed = true;
19
- this._controller.enqueue({
20
- type: "part-finish",
21
- path: [],
22
- });
23
- this._controller.close();
24
- }
25
- }
26
- export const createTextStream = (readable) => {
27
- return new ReadableStream({
28
- start(c) {
29
- return readable.start?.(new TextStreamControllerImpl(c));
30
- },
31
- pull(c) {
32
- return readable.pull?.(new TextStreamControllerImpl(c));
33
- },
34
- cancel(c) {
35
- return readable.cancel?.(c);
36
- },
37
- });
1
+ //#region src/core/modules/text.ts
2
+ var TextStreamControllerImpl = class {
3
+ _controller;
4
+ _isClosed = false;
5
+ constructor(controller) {
6
+ this._controller = controller;
7
+ }
8
+ append(textDelta) {
9
+ this._controller.enqueue({
10
+ type: "text-delta",
11
+ path: [],
12
+ textDelta
13
+ });
14
+ return this;
15
+ }
16
+ close() {
17
+ if (this._isClosed) return;
18
+ this._isClosed = true;
19
+ this._controller.enqueue({
20
+ type: "part-finish",
21
+ path: []
22
+ });
23
+ this._controller.close();
24
+ }
38
25
  };
39
- export const createTextStreamController = () => {
40
- let controller;
41
- const stream = createTextStream({
42
- start(c) {
43
- controller = c;
44
- },
45
- });
46
- return [stream, controller];
26
+ const createTextStream = (readable) => {
27
+ return new ReadableStream({
28
+ start(c) {
29
+ return readable.start?.(new TextStreamControllerImpl(c));
30
+ },
31
+ pull(c) {
32
+ return readable.pull?.(new TextStreamControllerImpl(c));
33
+ },
34
+ cancel(c) {
35
+ return readable.cancel?.(c);
36
+ }
37
+ });
47
38
  };
39
+ const createTextStreamController = () => {
40
+ let controller;
41
+ return [createTextStream({ start(c) {
42
+ controller = c;
43
+ } }), controller];
44
+ };
45
+ //#endregion
46
+ export { createTextStream, createTextStreamController };
47
+
48
48
  //# sourceMappingURL=text.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.js","sourceRoot":"","sources":["../../../src/core/modules/text.ts"],"names":[],"mappings":"AASA,MAAM,wBAAwB;IACpB,WAAW,CAAwD;IACnE,SAAS,GAAG,KAAK,CAAC;IAE1B,YACE,UAAiE;QAEjE,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;IAChC,CAAC;IAED,MAAM,CAAC,SAAiB;QACtB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;YACvB,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,EAAE;YACR,SAAS;SACV,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,SAAS;YAAE,OAAO;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;YACvB,IAAI,EAAE,aAAa;YACnB,IAAI,EAAE,EAAE;SACT,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,QAAkD,EACjC,EAAE;IACnB,OAAO,IAAI,cAAc,CAAC;QACxB,KAAK,CAAC,CAAC;YACL,OAAO,QAAQ,CAAC,KAAK,EAAE,CAAC,IAAI,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,CAAC,CAAC;YACJ,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,CAAC,CAAC;YACN,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,EAAE;IAC7C,IAAI,UAAiC,CAAC;IACtC,MAAM,MAAM,GAAG,gBAAgB,CAAC;QAC9B,KAAK,CAAC,CAAC;YACL,UAAU,GAAG,CAAC,CAAC;QACjB,CAAC;KACF,CAAC,CAAC;IACH,OAAO,CAAC,MAAM,EAAE,UAAU,CAAU,CAAC;AACvC,CAAC,CAAC"}
1
+ {"version":3,"file":"text.js","names":[],"sources":["../../../src/core/modules/text.ts"],"sourcesContent":["import type { AssistantStream } from \"../AssistantStream\";\nimport type { AssistantStreamChunk } from \"../AssistantStreamChunk\";\nimport type { UnderlyingReadable } from \"../utils/stream/UnderlyingReadable\";\n\nexport type TextStreamController = {\n append(textDelta: string): void;\n close(): void; // TODO reason? error?\n};\n\nclass TextStreamControllerImpl implements TextStreamController {\n private _controller: ReadableStreamDefaultController<AssistantStreamChunk>;\n private _isClosed = false;\n\n constructor(\n controller: ReadableStreamDefaultController<AssistantStreamChunk>,\n ) {\n this._controller = controller;\n }\n\n append(textDelta: string) {\n this._controller.enqueue({\n type: \"text-delta\",\n path: [],\n textDelta,\n });\n return this;\n }\n\n close() {\n if (this._isClosed) return;\n this._isClosed = true;\n this._controller.enqueue({\n type: \"part-finish\",\n path: [],\n });\n this._controller.close();\n }\n}\n\nexport const createTextStream = (\n readable: UnderlyingReadable<TextStreamController>,\n): AssistantStream => {\n return new ReadableStream({\n start(c) {\n return readable.start?.(new TextStreamControllerImpl(c));\n },\n pull(c) {\n return readable.pull?.(new TextStreamControllerImpl(c));\n },\n cancel(c) {\n return readable.cancel?.(c);\n },\n });\n};\n\nexport const createTextStreamController = () => {\n let controller!: TextStreamController;\n const stream = createTextStream({\n start(c) {\n controller = c;\n },\n });\n return [stream, controller] as const;\n};\n"],"mappings":";AASA,IAAM,2BAAN,MAA+D;CAC7D;CACA,YAAoB;CAEpB,YACE,YACA;EACA,KAAK,cAAc;CACrB;CAEA,OAAO,WAAmB;EACxB,KAAK,YAAY,QAAQ;GACvB,MAAM;GACN,MAAM,CAAC;GACP;EACF,CAAC;EACD,OAAO;CACT;CAEA,QAAQ;EACN,IAAI,KAAK,WAAW;EACpB,KAAK,YAAY;EACjB,KAAK,YAAY,QAAQ;GACvB,MAAM;GACN,MAAM,CAAC;EACT,CAAC;EACD,KAAK,YAAY,MAAM;CACzB;AACF;AAEA,MAAa,oBACX,aACoB;CACpB,OAAO,IAAI,eAAe;EACxB,MAAM,GAAG;GACP,OAAO,SAAS,QAAQ,IAAI,yBAAyB,CAAC,CAAC;EACzD;EACA,KAAK,GAAG;GACN,OAAO,SAAS,OAAO,IAAI,yBAAyB,CAAC,CAAC;EACxD;EACA,OAAO,GAAG;GACR,OAAO,SAAS,SAAS,CAAC;EAC5B;CACF,CAAC;AACH;AAEA,MAAa,mCAAmC;CAC9C,IAAI;CAMJ,OAAO,CALQ,iBAAiB,EAC9B,MAAM,GAAG;EACP,aAAa;CACf,EACF,CACa,GAAG,UAAU;AAC5B"}
@@ -1,13 +1,17 @@
1
- import type { AssistantStream } from "../AssistantStream.js";
2
- import type { ToolResponseLike } from "../tool/ToolResponse.js";
3
- import type { ReadonlyJSONValue } from "../../utils/json/json-value.js";
4
- import type { UnderlyingReadable } from "../utils/stream/UnderlyingReadable.js";
5
- import { type TextStreamController } from "./text.js";
6
- export type ToolCallStreamController = {
7
- argsText: TextStreamController;
8
- setResponse(response: ToolResponseLike<ReadonlyJSONValue>): void;
9
- close(): void;
1
+ import { ReadonlyJSONValue } from "../../utils/json/json-value.js";
2
+ import { UnderlyingReadable } from "../utils/stream/UnderlyingReadable.js";
3
+ import { TextStreamController } from "./text.js";
4
+ import { ToolResponseLike } from "../tool/ToolResponse.js";
5
+ import { AssistantStream } from "../AssistantStream.js";
6
+
7
+ //#region src/core/modules/tool-call.d.ts
8
+ type ToolCallStreamController = {
9
+ argsText: TextStreamController;
10
+ setResponse(response: ToolResponseLike<ReadonlyJSONValue>): void;
11
+ close(): void;
10
12
  };
11
- export declare const createToolCallStream: (readable: UnderlyingReadable<ToolCallStreamController>) => AssistantStream;
12
- export declare const createToolCallStreamController: () => readonly [AssistantStream, ToolCallStreamController];
13
+ declare const createToolCallStream: (readable: UnderlyingReadable<ToolCallStreamController>) => AssistantStream;
14
+ declare const createToolCallStreamController: () => readonly [AssistantStream, ToolCallStreamController];
15
+ //#endregion
16
+ export { ToolCallStreamController, createToolCallStream, createToolCallStreamController };
13
17
  //# sourceMappingURL=tool-call.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-call.d.ts","sourceRoot":"","sources":["../../../src/core/modules/tool-call.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,8BAA2B;AAE1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,gCAA6B;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,uCAAoC;AACrE,OAAO,KAAK,EAAE,kBAAkB,EAAE,8CAA2C;AAC7E,OAAO,EAAoB,KAAK,oBAAoB,EAAE,kBAAe;AAErE,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,EAAE,oBAAoB,CAAC;IAE/B,WAAW,CAAC,QAAQ,EAAE,gBAAgB,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;IACjE,KAAK,IAAI,IAAI,CAAC;CACf,CAAC;AA0FF,eAAO,MAAM,oBAAoB,GAC/B,UAAU,kBAAkB,CAAC,wBAAwB,CAAC,KACrD,eAYF,CAAC;AAEF,eAAO,MAAM,8BAA8B,4DAQ1C,CAAC"}
1
+ {"version":3,"file":"tool-call.d.ts","names":[],"sources":["../../../src/core/modules/tool-call.ts"],"mappings":";;;;;;;KAOY,wBAAA;EACV,QAAA,EAAU,oBAAA;EAEV,WAAA,CAAY,QAAA,EAAU,gBAAA,CAAiB,iBAAA;EACvC,KAAA;AAAA;AAAA,cA2FW,oBAAA,GACX,QAAA,EAAU,kBAAA,CAAmB,wBAAA,MAC5B,eAAA;AAAA,cAcU,8BAAA,kBAA8B,eAAA,EAAA,wBAAA"}
@@ -1,100 +1,85 @@
1
1
  import { createTextStream } from "./text.js";
2
- class ToolCallStreamControllerImpl {
3
- _controller;
4
- _isClosed = false;
5
- _mergeTask;
6
- constructor(_controller) {
7
- this._controller = _controller;
8
- const stream = createTextStream({
9
- start: (c) => {
10
- this._argsTextController = c;
11
- },
12
- });
13
- let hasArgsText = false;
14
- this._mergeTask = stream.pipeTo(new WritableStream({
15
- write: (chunk) => {
16
- switch (chunk.type) {
17
- case "text-delta":
18
- hasArgsText = true;
19
- this._controller.enqueue(chunk);
20
- break;
21
- case "part-finish":
22
- if (!hasArgsText) {
23
- // if no argsText was provided, assume empty object
24
- this._controller.enqueue({
25
- type: "text-delta",
26
- textDelta: "{}",
27
- path: [],
28
- });
29
- }
30
- this._controller.enqueue({
31
- type: "tool-call-args-text-finish",
32
- path: [],
33
- });
34
- break;
35
- default:
36
- throw new Error(`Unexpected chunk type: ${chunk.type}`);
37
- }
38
- },
39
- }));
40
- }
41
- get argsText() {
42
- return this._argsTextController;
43
- }
44
- _argsTextController;
45
- async setResponse(response) {
46
- this._argsTextController.close();
47
- await Promise.resolve(); // flush microtask queue
48
- // TODO switch argsTextController to be something that doesn'#t require this
49
- this._controller.enqueue({
50
- type: "result",
51
- path: [],
52
- ...(response.artifact !== undefined
53
- ? { artifact: response.artifact }
54
- : {}),
55
- result: response.result,
56
- isError: response.isError ?? false,
57
- ...(response.modelContent !== undefined
58
- ? { modelContent: response.modelContent }
59
- : {}),
60
- ...(response.messages !== undefined
61
- ? { messages: response.messages }
62
- : {}),
63
- });
64
- }
65
- async close() {
66
- if (this._isClosed)
67
- return;
68
- this._isClosed = true;
69
- this._argsTextController.close();
70
- await this._mergeTask;
71
- this._controller.enqueue({
72
- type: "part-finish",
73
- path: [],
74
- });
75
- this._controller.close();
76
- }
77
- }
78
- export const createToolCallStream = (readable) => {
79
- return new ReadableStream({
80
- start(c) {
81
- return readable.start?.(new ToolCallStreamControllerImpl(c));
82
- },
83
- pull(c) {
84
- return readable.pull?.(new ToolCallStreamControllerImpl(c));
85
- },
86
- cancel(c) {
87
- return readable.cancel?.(c);
88
- },
89
- });
2
+ //#region src/core/modules/tool-call.ts
3
+ var ToolCallStreamControllerImpl = class {
4
+ _controller;
5
+ _isClosed = false;
6
+ _mergeTask;
7
+ constructor(_controller) {
8
+ this._controller = _controller;
9
+ const stream = createTextStream({ start: (c) => {
10
+ this._argsTextController = c;
11
+ } });
12
+ let hasArgsText = false;
13
+ this._mergeTask = stream.pipeTo(new WritableStream({ write: (chunk) => {
14
+ switch (chunk.type) {
15
+ case "text-delta":
16
+ hasArgsText = true;
17
+ this._controller.enqueue(chunk);
18
+ break;
19
+ case "part-finish":
20
+ if (!hasArgsText) this._controller.enqueue({
21
+ type: "text-delta",
22
+ textDelta: "{}",
23
+ path: []
24
+ });
25
+ this._controller.enqueue({
26
+ type: "tool-call-args-text-finish",
27
+ path: []
28
+ });
29
+ break;
30
+ default: throw new Error(`Unexpected chunk type: ${chunk.type}`);
31
+ }
32
+ } }));
33
+ }
34
+ get argsText() {
35
+ return this._argsTextController;
36
+ }
37
+ _argsTextController;
38
+ async setResponse(response) {
39
+ this._argsTextController.close();
40
+ await Promise.resolve();
41
+ this._controller.enqueue({
42
+ type: "result",
43
+ path: [],
44
+ ...response.artifact !== void 0 ? { artifact: response.artifact } : {},
45
+ result: response.result,
46
+ isError: response.isError ?? false,
47
+ ...response.modelContent !== void 0 ? { modelContent: response.modelContent } : {},
48
+ ...response.messages !== void 0 ? { messages: response.messages } : {}
49
+ });
50
+ }
51
+ async close() {
52
+ if (this._isClosed) return;
53
+ this._isClosed = true;
54
+ this._argsTextController.close();
55
+ await this._mergeTask;
56
+ this._controller.enqueue({
57
+ type: "part-finish",
58
+ path: []
59
+ });
60
+ this._controller.close();
61
+ }
90
62
  };
91
- export const createToolCallStreamController = () => {
92
- let controller;
93
- const stream = createToolCallStream({
94
- start(c) {
95
- controller = c;
96
- },
97
- });
98
- return [stream, controller];
63
+ const createToolCallStream = (readable) => {
64
+ return new ReadableStream({
65
+ start(c) {
66
+ return readable.start?.(new ToolCallStreamControllerImpl(c));
67
+ },
68
+ pull(c) {
69
+ return readable.pull?.(new ToolCallStreamControllerImpl(c));
70
+ },
71
+ cancel(c) {
72
+ return readable.cancel?.(c);
73
+ }
74
+ });
99
75
  };
76
+ const createToolCallStreamController = () => {
77
+ let controller;
78
+ return [createToolCallStream({ start(c) {
79
+ controller = c;
80
+ } }), controller];
81
+ };
82
+ //#endregion
83
+ export { createToolCallStream, createToolCallStreamController };
84
+
100
85
  //# sourceMappingURL=tool-call.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tool-call.js","sourceRoot":"","sources":["../../../src/core/modules/tool-call.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tool-call.js","names":[],"sources":["../../../src/core/modules/tool-call.ts"],"sourcesContent":["import type { AssistantStream } from \"../AssistantStream\";\nimport type { AssistantStreamChunk } from \"../AssistantStreamChunk\";\nimport type { ToolResponseLike } from \"../tool/ToolResponse\";\nimport type { ReadonlyJSONValue } from \"../../utils/json/json-value\";\nimport type { UnderlyingReadable } from \"../utils/stream/UnderlyingReadable\";\nimport { createTextStream, type TextStreamController } from \"./text\";\n\nexport type ToolCallStreamController = {\n argsText: TextStreamController;\n\n setResponse(response: ToolResponseLike<ReadonlyJSONValue>): void;\n close(): void;\n};\n\nclass ToolCallStreamControllerImpl implements ToolCallStreamController {\n private _isClosed = false;\n\n private _mergeTask: Promise<void>;\n constructor(\n private _controller: ReadableStreamDefaultController<AssistantStreamChunk>,\n ) {\n const stream = createTextStream({\n start: (c) => {\n this._argsTextController = c;\n },\n });\n\n let hasArgsText = false;\n this._mergeTask = stream.pipeTo(\n new WritableStream({\n write: (chunk) => {\n switch (chunk.type) {\n case \"text-delta\":\n hasArgsText = true;\n this._controller.enqueue(chunk);\n break;\n\n case \"part-finish\":\n if (!hasArgsText) {\n // if no argsText was provided, assume empty object\n this._controller.enqueue({\n type: \"text-delta\",\n textDelta: \"{}\",\n path: [],\n });\n }\n this._controller.enqueue({\n type: \"tool-call-args-text-finish\",\n path: [],\n });\n break;\n\n default:\n throw new Error(`Unexpected chunk type: ${chunk.type}`);\n }\n },\n }),\n );\n }\n\n get argsText() {\n return this._argsTextController;\n }\n\n private _argsTextController!: TextStreamController;\n\n async setResponse(response: ToolResponseLike<ReadonlyJSONValue>) {\n this._argsTextController.close();\n await Promise.resolve(); // flush microtask queue\n // TODO switch argsTextController to be something that doesn'#t require this\n this._controller.enqueue({\n type: \"result\",\n path: [],\n ...(response.artifact !== undefined\n ? { artifact: response.artifact }\n : {}),\n result: response.result,\n isError: response.isError ?? false,\n ...(response.modelContent !== undefined\n ? { modelContent: response.modelContent }\n : {}),\n ...(response.messages !== undefined\n ? { messages: response.messages }\n : {}),\n });\n }\n\n async close() {\n if (this._isClosed) return;\n\n this._isClosed = true;\n this._argsTextController.close();\n await this._mergeTask;\n\n this._controller.enqueue({\n type: \"part-finish\",\n path: [],\n });\n this._controller.close();\n }\n}\n\nexport const createToolCallStream = (\n readable: UnderlyingReadable<ToolCallStreamController>,\n): AssistantStream => {\n return new ReadableStream({\n start(c) {\n return readable.start?.(new ToolCallStreamControllerImpl(c));\n },\n pull(c) {\n return readable.pull?.(new ToolCallStreamControllerImpl(c));\n },\n cancel(c) {\n return readable.cancel?.(c);\n },\n });\n};\n\nexport const createToolCallStreamController = () => {\n let controller!: ToolCallStreamController;\n const stream = createToolCallStream({\n start(c) {\n controller = c;\n },\n });\n return [stream, controller] as const;\n};\n"],"mappings":";;AAcA,IAAM,+BAAN,MAAuE;CAK3D;CAJV,YAAoB;CAEpB;CACA,YACE,aACA;EADQ,KAAA,cAAA;EAER,MAAM,SAAS,iBAAiB,EAC9B,QAAQ,MAAM;GACZ,KAAK,sBAAsB;EAC7B,EACF,CAAC;EAED,IAAI,cAAc;EAClB,KAAK,aAAa,OAAO,OACvB,IAAI,eAAe,EACjB,QAAQ,UAAU;GAChB,QAAQ,MAAM,MAAd;IACE,KAAK;KACH,cAAc;KACd,KAAK,YAAY,QAAQ,KAAK;KAC9B;IAEF,KAAK;KACH,IAAI,CAAC,aAEH,KAAK,YAAY,QAAQ;MACvB,MAAM;MACN,WAAW;MACX,MAAM,CAAC;KACT,CAAC;KAEH,KAAK,YAAY,QAAQ;MACvB,MAAM;MACN,MAAM,CAAC;KACT,CAAC;KACD;IAEF,SACE,MAAM,IAAI,MAAM,0BAA0B,MAAM,MAAM;GAC1D;EACF,EACF,CAAC,CACH;CACF;CAEA,IAAI,WAAW;EACb,OAAO,KAAK;CACd;CAEA;CAEA,MAAM,YAAY,UAA+C;EAC/D,KAAK,oBAAoB,MAAM;EAC/B,MAAM,QAAQ,QAAQ;EAEtB,KAAK,YAAY,QAAQ;GACvB,MAAM;GACN,MAAM,CAAC;GACP,GAAI,SAAS,aAAa,KAAA,IACtB,EAAE,UAAU,SAAS,SAAS,IAC9B,CAAC;GACL,QAAQ,SAAS;GACjB,SAAS,SAAS,WAAW;GAC7B,GAAI,SAAS,iBAAiB,KAAA,IAC1B,EAAE,cAAc,SAAS,aAAa,IACtC,CAAC;GACL,GAAI,SAAS,aAAa,KAAA,IACtB,EAAE,UAAU,SAAS,SAAS,IAC9B,CAAC;EACP,CAAC;CACH;CAEA,MAAM,QAAQ;EACZ,IAAI,KAAK,WAAW;EAEpB,KAAK,YAAY;EACjB,KAAK,oBAAoB,MAAM;EAC/B,MAAM,KAAK;EAEX,KAAK,YAAY,QAAQ;GACvB,MAAM;GACN,MAAM,CAAC;EACT,CAAC;EACD,KAAK,YAAY,MAAM;CACzB;AACF;AAEA,MAAa,wBACX,aACoB;CACpB,OAAO,IAAI,eAAe;EACxB,MAAM,GAAG;GACP,OAAO,SAAS,QAAQ,IAAI,6BAA6B,CAAC,CAAC;EAC7D;EACA,KAAK,GAAG;GACN,OAAO,SAAS,OAAO,IAAI,6BAA6B,CAAC,CAAC;EAC5D;EACA,OAAO,GAAG;GACR,OAAO,SAAS,SAAS,CAAC;EAC5B;CACF,CAAC;AACH;AAEA,MAAa,uCAAuC;CAClD,IAAI;CAMJ,OAAO,CALQ,qBAAqB,EAClC,MAAM,GAAG;EACP,aAAa;CACf,EACF,CACa,GAAG,UAAU;AAC5B"}
@@ -1,11 +1,15 @@
1
- import type { ReadonlyJSONValue } from "../../utils.js";
2
- import type { ObjectStreamOperation } from "./types.js";
3
- export declare class ObjectStreamAccumulator {
4
- private _state;
5
- constructor(initialValue?: ReadonlyJSONValue);
6
- get state(): ReadonlyJSONValue;
7
- append(ops: readonly ObjectStreamOperation[]): void;
8
- private static apply;
9
- private static updatePath;
1
+ import { ReadonlyJSONValue } from "../../utils/json/json-value.js";
2
+ import { ObjectStreamOperation } from "./types.js";
3
+
4
+ //#region src/core/object/ObjectStreamAccumulator.d.ts
5
+ declare class ObjectStreamAccumulator {
6
+ private _state;
7
+ constructor(initialValue?: ReadonlyJSONValue);
8
+ get state(): ReadonlyJSONValue;
9
+ append(ops: readonly ObjectStreamOperation[]): void;
10
+ private static apply;
11
+ private static updatePath;
10
12
  }
13
+ //#endregion
14
+ export { ObjectStreamAccumulator };
11
15
  //# sourceMappingURL=ObjectStreamAccumulator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectStreamAccumulator.d.ts","sourceRoot":"","sources":["../../../src/core/object/ObjectStreamAccumulator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAsB,uBAAoB;AACzE,OAAO,KAAK,EAAE,qBAAqB,EAAE,mBAAgB;AAErD,qBAAa,uBAAuB;IAClC,OAAO,CAAC,MAAM,CAAoB;gBAEtB,YAAY,GAAE,iBAAwB;IAIlD,IAAI,KAAK,sBAER;IAED,MAAM,CAAC,GAAG,EAAE,SAAS,qBAAqB,EAAE;IAO5C,OAAO,CAAC,MAAM,CAAC,KAAK;IAuBpB,OAAO,CAAC,MAAM,CAAC,UAAU;CAyC1B"}
1
+ {"version":3,"file":"ObjectStreamAccumulator.d.ts","names":[],"sources":["../../../src/core/object/ObjectStreamAccumulator.ts"],"mappings":";;;;cAGa,uBAAA;EAAA,QACH,MAAA;cAEI,YAAA,GAAc,iBAAA;EAAA,IAItB,KAAA,CAAA,GAAK,iBAAA;EAIT,MAAA,CAAO,GAAA,WAAc,qBAAA;EAAA,eAON,KAAA;EAAA,eAuBA,UAAA;AAAA"}
@@ -1,53 +1,45 @@
1
- export class ObjectStreamAccumulator {
2
- _state;
3
- constructor(initialValue = null) {
4
- this._state = initialValue;
5
- }
6
- get state() {
7
- return this._state;
8
- }
9
- append(ops) {
10
- this._state = ops.reduce((state, op) => ObjectStreamAccumulator.apply(state, op), this._state);
11
- }
12
- static apply(state, op) {
13
- const type = op.type;
14
- switch (type) {
15
- case "set":
16
- return ObjectStreamAccumulator.updatePath(state, op.path, () => op.value);
17
- case "append-text":
18
- return ObjectStreamAccumulator.updatePath(state, op.path, (current) => {
19
- if (typeof current !== "string")
20
- throw new Error(`Expected string at path [${op.path.join(", ")}]`);
21
- return current + op.value;
22
- });
23
- default: {
24
- const _exhaustiveCheck = type;
25
- throw new Error(`Invalid operation type: ${_exhaustiveCheck}`);
26
- }
27
- }
28
- }
29
- static updatePath(state, path, updater) {
30
- if (path.length === 0)
31
- return updater(state);
32
- // Initialize state as empty object if it's null and we're trying to set a property
33
- state ??= {};
34
- if (typeof state !== "object") {
35
- throw new Error(`Invalid path: [${path.join(", ")}]`);
36
- }
37
- const [key, ...rest] = path;
38
- if (Array.isArray(state)) {
39
- const idx = Number(key);
40
- if (Number.isNaN(idx))
41
- throw new Error(`Expected array index at [${path.join(", ")}]`);
42
- if (idx > state.length || idx < 0)
43
- throw new Error(`Insert array index out of bounds`);
44
- const nextState = [...state];
45
- nextState[idx] = ObjectStreamAccumulator.updatePath(nextState[idx], rest, updater);
46
- return nextState;
47
- }
48
- const nextState = { ...state };
49
- nextState[key] = ObjectStreamAccumulator.updatePath(nextState[key], rest, updater);
50
- return nextState;
51
- }
52
- }
1
+ //#region src/core/object/ObjectStreamAccumulator.ts
2
+ var ObjectStreamAccumulator = class ObjectStreamAccumulator {
3
+ _state;
4
+ constructor(initialValue = null) {
5
+ this._state = initialValue;
6
+ }
7
+ get state() {
8
+ return this._state;
9
+ }
10
+ append(ops) {
11
+ this._state = ops.reduce((state, op) => ObjectStreamAccumulator.apply(state, op), this._state);
12
+ }
13
+ static apply(state, op) {
14
+ const type = op.type;
15
+ switch (type) {
16
+ case "set": return ObjectStreamAccumulator.updatePath(state, op.path, () => op.value);
17
+ case "append-text": return ObjectStreamAccumulator.updatePath(state, op.path, (current) => {
18
+ if (typeof current !== "string") throw new Error(`Expected string at path [${op.path.join(", ")}]`);
19
+ return current + op.value;
20
+ });
21
+ default: throw new Error(`Invalid operation type: ${type}`);
22
+ }
23
+ }
24
+ static updatePath(state, path, updater) {
25
+ if (path.length === 0) return updater(state);
26
+ state ??= {};
27
+ if (typeof state !== "object") throw new Error(`Invalid path: [${path.join(", ")}]`);
28
+ const [key, ...rest] = path;
29
+ if (Array.isArray(state)) {
30
+ const idx = Number(key);
31
+ if (Number.isNaN(idx)) throw new Error(`Expected array index at [${path.join(", ")}]`);
32
+ if (idx > state.length || idx < 0) throw new Error(`Insert array index out of bounds`);
33
+ const nextState = [...state];
34
+ nextState[idx] = ObjectStreamAccumulator.updatePath(nextState[idx], rest, updater);
35
+ return nextState;
36
+ }
37
+ const nextState = { ...state };
38
+ nextState[key] = ObjectStreamAccumulator.updatePath(nextState[key], rest, updater);
39
+ return nextState;
40
+ }
41
+ };
42
+ //#endregion
43
+ export { ObjectStreamAccumulator };
44
+
53
45
  //# sourceMappingURL=ObjectStreamAccumulator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectStreamAccumulator.js","sourceRoot":"","sources":["../../../src/core/object/ObjectStreamAccumulator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ObjectStreamAccumulator.js","names":["_exhaustiveCheck"],"sources":["../../../src/core/object/ObjectStreamAccumulator.ts"],"sourcesContent":["import type { ReadonlyJSONValue, ReadonlyJSONObject } from \"../../utils\";\nimport type { ObjectStreamOperation } from \"./types\";\n\nexport class ObjectStreamAccumulator {\n private _state: ReadonlyJSONValue;\n\n constructor(initialValue: ReadonlyJSONValue = null) {\n this._state = initialValue;\n }\n\n get state() {\n return this._state;\n }\n\n append(ops: readonly ObjectStreamOperation[]) {\n this._state = ops.reduce(\n (state, op) => ObjectStreamAccumulator.apply(state, op),\n this._state,\n );\n }\n\n private static apply(state: ReadonlyJSONValue, op: ObjectStreamOperation) {\n const type = op.type;\n switch (type) {\n case \"set\":\n return ObjectStreamAccumulator.updatePath(\n state,\n op.path,\n () => op.value,\n );\n case \"append-text\":\n return ObjectStreamAccumulator.updatePath(state, op.path, (current) => {\n if (typeof current !== \"string\")\n throw new Error(`Expected string at path [${op.path.join(\", \")}]`);\n return current + op.value;\n });\n\n default: {\n const _exhaustiveCheck: never = type;\n throw new Error(`Invalid operation type: ${_exhaustiveCheck}`);\n }\n }\n }\n\n private static updatePath(\n state: ReadonlyJSONValue | undefined,\n path: readonly string[],\n updater: (current: ReadonlyJSONValue | undefined) => ReadonlyJSONValue,\n ): ReadonlyJSONValue {\n if (path.length === 0) return updater(state);\n\n // Initialize state as empty object if it's null and we're trying to set a property\n state ??= {};\n\n if (typeof state !== \"object\") {\n throw new Error(`Invalid path: [${path.join(\", \")}]`);\n }\n\n const [key, ...rest] = path as [string, ...(readonly string[])];\n if (Array.isArray(state)) {\n const idx = Number(key);\n if (Number.isNaN(idx))\n throw new Error(`Expected array index at [${path.join(\", \")}]`);\n if (idx > state.length || idx < 0)\n throw new Error(`Insert array index out of bounds`);\n\n const nextState = [...state];\n nextState[idx] = ObjectStreamAccumulator.updatePath(\n nextState[idx],\n rest,\n updater,\n );\n\n return nextState;\n }\n\n const nextState = { ...(state as ReadonlyJSONObject) };\n nextState[key] = ObjectStreamAccumulator.updatePath(\n nextState[key],\n rest,\n updater,\n );\n\n return nextState;\n }\n}\n"],"mappings":";AAGA,IAAa,0BAAb,MAAa,wBAAwB;CACnC;CAEA,YAAY,eAAkC,MAAM;EAClD,KAAK,SAAS;CAChB;CAEA,IAAI,QAAQ;EACV,OAAO,KAAK;CACd;CAEA,OAAO,KAAuC;EAC5C,KAAK,SAAS,IAAI,QACf,OAAO,OAAO,wBAAwB,MAAM,OAAO,EAAE,GACtD,KAAK,MACP;CACF;CAEA,OAAe,MAAM,OAA0B,IAA2B;EACxE,MAAM,OAAO,GAAG;EAChB,QAAQ,MAAR;GACE,KAAK,OACH,OAAO,wBAAwB,WAC7B,OACA,GAAG,YACG,GAAG,KACX;GACF,KAAK,eACH,OAAO,wBAAwB,WAAW,OAAO,GAAG,OAAO,YAAY;IACrE,IAAI,OAAO,YAAY,UACrB,MAAM,IAAI,MAAM,4BAA4B,GAAG,KAAK,KAAK,IAAI,EAAE,EAAE;IACnE,OAAO,UAAU,GAAG;GACtB,CAAC;GAEH,SAEE,MAAM,IAAI,MAAM,2BAA2BA,MAAkB;EAEjE;CACF;CAEA,OAAe,WACb,OACA,MACA,SACmB;EACnB,IAAI,KAAK,WAAW,GAAG,OAAO,QAAQ,KAAK;EAG3C,UAAU,CAAC;EAEX,IAAI,OAAO,UAAU,UACnB,MAAM,IAAI,MAAM,kBAAkB,KAAK,KAAK,IAAI,EAAE,EAAE;EAGtD,MAAM,CAAC,KAAK,GAAG,QAAQ;EACvB,IAAI,MAAM,QAAQ,KAAK,GAAG;GACxB,MAAM,MAAM,OAAO,GAAG;GACtB,IAAI,OAAO,MAAM,GAAG,GAClB,MAAM,IAAI,MAAM,4BAA4B,KAAK,KAAK,IAAI,EAAE,EAAE;GAChE,IAAI,MAAM,MAAM,UAAU,MAAM,GAC9B,MAAM,IAAI,MAAM,kCAAkC;GAEpD,MAAM,YAAY,CAAC,GAAG,KAAK;GAC3B,UAAU,OAAO,wBAAwB,WACvC,UAAU,MACV,MACA,OACF;GAEA,OAAO;EACT;EAEA,MAAM,YAAY,EAAE,GAAI,MAA6B;EACrD,UAAU,OAAO,wBAAwB,WACvC,UAAU,MACV,MACA,OACF;EAEA,OAAO;CACT;AACF"}
@@ -1,13 +1,17 @@
1
+ import { ObjectStreamChunk } from "./types.js";
1
2
  import { PipeableTransformStream } from "../utils/stream/PipeableTransformStream.js";
2
- import type { ObjectStreamChunk } from "./types.js";
3
- export declare class ObjectStreamEncoder extends PipeableTransformStream<ObjectStreamChunk, Uint8Array> {
4
- constructor();
3
+
4
+ //#region src/core/object/ObjectStreamResponse.d.ts
5
+ declare class ObjectStreamEncoder extends PipeableTransformStream<ObjectStreamChunk, Uint8Array> {
6
+ constructor();
5
7
  }
6
- export declare class ObjectStreamDecoder extends PipeableTransformStream<Uint8Array<ArrayBuffer>, ObjectStreamChunk> {
7
- constructor();
8
+ declare class ObjectStreamDecoder extends PipeableTransformStream<Uint8Array<ArrayBuffer>, ObjectStreamChunk> {
9
+ constructor();
8
10
  }
9
- export declare class ObjectStreamResponse extends Response {
10
- constructor(body: ReadableStream<ObjectStreamChunk>);
11
+ declare class ObjectStreamResponse extends Response {
12
+ constructor(body: ReadableStream<ObjectStreamChunk>);
11
13
  }
12
- export declare const fromObjectStreamResponse: (response: Response) => ReadableStream<ObjectStreamChunk>;
14
+ declare const fromObjectStreamResponse: (response: Response) => ReadableStream<ObjectStreamChunk>;
15
+ //#endregion
16
+ export { ObjectStreamDecoder, ObjectStreamEncoder, ObjectStreamResponse, fromObjectStreamResponse };
13
17
  //# sourceMappingURL=ObjectStreamResponse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectStreamResponse.d.ts","sourceRoot":"","sources":["../../../src/core/object/ObjectStreamResponse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,mDAAgD;AAGlF,OAAO,KAAK,EAAE,iBAAiB,EAAyB,mBAAgB;AAExE,qBAAa,mBAAoB,SAAQ,uBAAuB,CAC9D,iBAAiB,EACjB,UAAU,CACX;;CA6CA;AAED,qBAAa,mBAAoB,SAAQ,uBAAuB,CAC9D,UAAU,CAAC,WAAW,CAAC,EACvB,iBAAiB,CAClB;;CAsBA;AAED,qBAAa,oBAAqB,SAAQ,QAAQ;gBACpC,IAAI,EAAE,cAAc,CAAC,iBAAiB,CAAC;CAUpD;AAED,eAAO,MAAM,wBAAwB,GACnC,UAAU,QAAQ,KACjB,cAAc,CAAC,iBAAiB,CAWlC,CAAC"}
1
+ {"version":3,"file":"ObjectStreamResponse.d.ts","names":[],"sources":["../../../src/core/object/ObjectStreamResponse.ts"],"mappings":";;;;cAKa,mBAAA,SAA4B,uBAAA,CACvC,iBAAA,EACA,UAAA;;;cAgDW,mBAAA,SAA4B,uBAAA,CACvC,UAAA,CAAW,WAAA,GACX,iBAAA;;;cAyBW,oBAAA,SAA6B,QAAA;cAC5B,IAAA,EAAM,cAAA,CAAe,iBAAA;AAAA;AAAA,cAYtB,wBAAA,GACX,QAAA,EAAU,QAAA,KACT,cAAA,CAAe,iBAAA"}