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
package/README.md CHANGED
@@ -22,14 +22,16 @@ import { createAssistantStreamResponse } from "assistant-stream";
22
22
 
23
23
  export async function POST(request: Request) {
24
24
  return createAssistantStreamResponse(async (controller) => {
25
- const text = controller.appendText();
26
- text.append("Hello, ");
27
- text.append("world!");
28
- text.close();
25
+ controller.appendText("Hello, ");
26
+ controller.appendText("world!");
29
27
  });
30
28
  }
31
29
  ```
32
30
 
31
+ `createAssistantStreamResponse` returns a standard Web `Response`, so it works out of the box with any Fetch-style route (Next.js App Router, Hono, Bun.serve, Deno, Cloudflare Workers). Frameworks that use their own response objects (Express, Fastify) need a small adapter: copy `status` and `headers`, then pipe `response.body` into the framework's writable stream. Avoid sending the `Response` body into a `res` object whose lifecycle is already controlled by the framework (that is the `ERR_INVALID_STATE: Controller is already closed` failure mode).
32
+
33
+ `createAssistantStreamResponse` emits the data stream wire format. On the frontend, pair it with `useDataStreamRuntime({ api, protocol: "data-stream" })`; the default `protocol: "ui-message-stream"` expects an SSE-based format produced by AI SDK v6's `result.toUIMessageStreamResponse()` and will not decode this output.
34
+
33
35
  For tool execution, pipe through `ToolExecutionStream`; for resumable streams (clients can reconnect and replay), import from the `assistant-stream/resumable` sub-path with a `redis` or `ioredis` adapter.
34
36
 
35
37
  ## Sub-paths
@@ -1,4 +1,6 @@
1
- import type { AssistantStreamChunk } from "./AssistantStreamChunk.js";
1
+ import { AssistantStreamChunk } from "./AssistantStreamChunk.js";
2
+
3
+ //#region src/core/AssistantStream.d.ts
2
4
  /**
3
5
  * Stream of assistant-ui protocol chunks.
4
6
  *
@@ -7,7 +9,7 @@ import type { AssistantStreamChunk } from "./AssistantStreamChunk.js";
7
9
  * encoder such as `DataStreamEncoder` when returning it from an HTTP route,
8
10
  * and the matching decoder when reading it back from a response.
9
11
  */
10
- export type AssistantStream = ReadableStream<AssistantStreamChunk>;
12
+ type AssistantStream = ReadableStream<AssistantStreamChunk>;
11
13
  /**
12
14
  * Encoder that converts an {@link AssistantStream} into bytes suitable for an
13
15
  * HTTP response body.
@@ -15,35 +17,37 @@ export type AssistantStream = ReadableStream<AssistantStreamChunk>;
15
17
  * Encoders may expose response headers, such as content type or protocol
16
18
  * markers, through `headers`.
17
19
  */
18
- export type AssistantStreamEncoder = ReadableWritablePair<Uint8Array<ArrayBuffer>, AssistantStreamChunk> & {
19
- headers?: Headers;
20
+ type AssistantStreamEncoder = ReadableWritablePair<Uint8Array<ArrayBuffer>, AssistantStreamChunk> & {
21
+ headers?: Headers;
20
22
  };
21
- export declare const AssistantStream: {
22
- /**
23
- * Converts an {@link AssistantStream} into a `Response` using the supplied
24
- * encoder.
25
- *
26
- * The encoder's `headers` are copied onto the response. Pair this with the
27
- * decoder for the same wire format when consuming the response.
28
- */
29
- toResponse(stream: AssistantStream, transformer: AssistantStreamEncoder): Response;
30
- /**
31
- * Reads an assistant stream from a `Response` body using the supplied
32
- * decoder.
33
- *
34
- * The response body must be present and encoded with the matching assistant
35
- * stream wire format.
36
- */
37
- fromResponse(response: Response, transformer: ReadableWritablePair<AssistantStreamChunk, Uint8Array<ArrayBuffer>>): ReadableStream<AssistantStreamChunk>;
38
- /**
39
- * Pipes an {@link AssistantStream} through an encoder and returns the
40
- * resulting byte stream.
41
- */
42
- toByteStream(stream: AssistantStream, transformer: ReadableWritablePair<Uint8Array<ArrayBuffer>, AssistantStreamChunk>): ReadableStream<Uint8Array<ArrayBuffer>>;
43
- /**
44
- * Pipes a byte stream through a decoder and returns normalized
45
- * {@link AssistantStreamChunk} values.
46
- */
47
- fromByteStream(readable: ReadableStream<Uint8Array<ArrayBuffer>>, transformer: ReadableWritablePair<AssistantStreamChunk, Uint8Array<ArrayBuffer>>): ReadableStream<AssistantStreamChunk>;
23
+ declare const AssistantStream: {
24
+ /**
25
+ * Converts an {@link AssistantStream} into a `Response` using the supplied
26
+ * encoder.
27
+ *
28
+ * The encoder's `headers` are copied onto the response. Pair this with the
29
+ * decoder for the same wire format when consuming the response.
30
+ */
31
+ toResponse(stream: AssistantStream, transformer: AssistantStreamEncoder): Response;
32
+ /**
33
+ * Reads an assistant stream from a `Response` body using the supplied
34
+ * decoder.
35
+ *
36
+ * The response body must be present and encoded with the matching assistant
37
+ * stream wire format.
38
+ */
39
+ fromResponse(response: Response, transformer: ReadableWritablePair<AssistantStreamChunk, Uint8Array<ArrayBuffer>>): ReadableStream<AssistantStreamChunk>;
40
+ /**
41
+ * Pipes an {@link AssistantStream} through an encoder and returns the
42
+ * resulting byte stream.
43
+ */
44
+ toByteStream(stream: AssistantStream, transformer: ReadableWritablePair<Uint8Array<ArrayBuffer>, AssistantStreamChunk>): ReadableStream<Uint8Array<ArrayBuffer>>;
45
+ /**
46
+ * Pipes a byte stream through a decoder and returns normalized
47
+ * {@link AssistantStreamChunk} values.
48
+ */
49
+ fromByteStream(readable: ReadableStream<Uint8Array<ArrayBuffer>>, transformer: ReadableWritablePair<AssistantStreamChunk, Uint8Array<ArrayBuffer>>): ReadableStream<AssistantStreamChunk>;
48
50
  };
51
+ //#endregion
52
+ export { AssistantStream, AssistantStreamEncoder };
49
53
  //# sourceMappingURL=AssistantStream.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantStream.d.ts","sourceRoot":"","sources":["../../src/core/AssistantStream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,kCAA+B;AAEnE;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,oBAAoB,CAAC,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,MAAM,sBAAsB,GAAG,oBAAoB,CACvD,UAAU,CAAC,WAAW,CAAC,EACvB,oBAAoB,CACrB,GAAG;IACF,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,eAAe;IAC1B;;;;;;OAMG;uBACgB,eAAe,eAAe,sBAAsB;IAMvE;;;;;;OAMG;2BAES,QAAQ,eACL,oBAAoB,CAC/B,oBAAoB,EACpB,UAAU,CAAC,WAAW,CAAC,CACxB;IAKH;;;OAGG;yBAEO,eAAe,eACV,oBAAoB,CAC/B,UAAU,CAAC,WAAW,CAAC,EACvB,oBAAoB,CACrB;IAKH;;;OAGG;6BAES,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,eACpC,oBAAoB,CAC/B,oBAAoB,EACpB,UAAU,CAAC,WAAW,CAAC,CACxB;CAIJ,CAAC"}
1
+ {"version":3,"file":"AssistantStream.d.ts","names":[],"sources":["../../src/core/AssistantStream.ts"],"mappings":";;;;;AAUA;;;;AAAiE;AASjE;KATY,eAAA,GAAkB,cAAc,CAAC,oBAAA;;;;;;;;KASjC,sBAAA,GAAyB,oBAAA,CACnC,UAAA,CAAW,WAAA,GACX,oBAAA;EAEA,OAAA,GAAU,OAAA;AAAA;AAAA,cAGC,eAAA;EALX;;;;AAEiB;AAGnB;;qBAQqB,eAAA,EAAe,WAAA,EAAe,sBAAA,GAAsB,QAAA;EAApD;;;;;;;yBAcP,QAAA,EAAQ,WAAA,EACL,oBAAA,CACX,oBAAA,EACA,UAAA,CAAW,WAAA,KACZ,cAAA,CAAA,oBAAA;EAAA;;;;uBAUO,eAAA,EAAe,WAAA,EACV,oBAAA,CACX,UAAA,CAAW,WAAA,GACX,oBAAA,IACD,cAAA,CAAA,UAAA,CAAA,WAAA;EADC;;;;2BAWQ,cAAA,CAAe,UAAA,CAAW,WAAA,IAAa,WAAA,EACpC,oBAAA,CACX,oBAAA,EACA,UAAA,CAAW,WAAA,KACZ,cAAA,CAAA,oBAAA;AAAA"}
@@ -1,39 +1,41 @@
1
- export const AssistantStream = {
2
- /**
3
- * Converts an {@link AssistantStream} into a `Response` using the supplied
4
- * encoder.
5
- *
6
- * The encoder's `headers` are copied onto the response. Pair this with the
7
- * decoder for the same wire format when consuming the response.
8
- */
9
- toResponse(stream, transformer) {
10
- return new Response(AssistantStream.toByteStream(stream, transformer), {
11
- headers: transformer.headers ?? {},
12
- });
13
- },
14
- /**
15
- * Reads an assistant stream from a `Response` body using the supplied
16
- * decoder.
17
- *
18
- * The response body must be present and encoded with the matching assistant
19
- * stream wire format.
20
- */
21
- fromResponse(response, transformer) {
22
- return AssistantStream.fromByteStream(response.body, transformer);
23
- },
24
- /**
25
- * Pipes an {@link AssistantStream} through an encoder and returns the
26
- * resulting byte stream.
27
- */
28
- toByteStream(stream, transformer) {
29
- return stream.pipeThrough(transformer);
30
- },
31
- /**
32
- * Pipes a byte stream through a decoder and returns normalized
33
- * {@link AssistantStreamChunk} values.
34
- */
35
- fromByteStream(readable, transformer) {
36
- return readable.pipeThrough(transformer);
37
- },
1
+ //#region src/core/AssistantStream.ts
2
+ const AssistantStream = {
3
+ /**
4
+ * Converts an {@link AssistantStream} into a `Response` using the supplied
5
+ * encoder.
6
+ *
7
+ * The encoder's `headers` are copied onto the response. Pair this with the
8
+ * decoder for the same wire format when consuming the response.
9
+ */
10
+ toResponse(stream, transformer) {
11
+ return new Response(AssistantStream.toByteStream(stream, transformer), { headers: transformer.headers ?? {} });
12
+ },
13
+ /**
14
+ * Reads an assistant stream from a `Response` body using the supplied
15
+ * decoder.
16
+ *
17
+ * The response body must be present and encoded with the matching assistant
18
+ * stream wire format.
19
+ */
20
+ fromResponse(response, transformer) {
21
+ return AssistantStream.fromByteStream(response.body, transformer);
22
+ },
23
+ /**
24
+ * Pipes an {@link AssistantStream} through an encoder and returns the
25
+ * resulting byte stream.
26
+ */
27
+ toByteStream(stream, transformer) {
28
+ return stream.pipeThrough(transformer);
29
+ },
30
+ /**
31
+ * Pipes a byte stream through a decoder and returns normalized
32
+ * {@link AssistantStreamChunk} values.
33
+ */
34
+ fromByteStream(readable, transformer) {
35
+ return readable.pipeThrough(transformer);
36
+ }
38
37
  };
38
+ //#endregion
39
+ export { AssistantStream };
40
+
39
41
  //# sourceMappingURL=AssistantStream.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantStream.js","sourceRoot":"","sources":["../../src/core/AssistantStream.ts"],"names":[],"mappings":"AA0BA,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B;;;;;;OAMG;IACH,UAAU,CAAC,MAAuB,EAAE,WAAmC;QACrE,OAAO,IAAI,QAAQ,CAAC,eAAe,CAAC,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,EAAE;YACrE,OAAO,EAAE,WAAW,CAAC,OAAO,IAAI,EAAE;SACnC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;OAMG;IACH,YAAY,CACV,QAAkB,EAClB,WAGC;QAED,OAAO,eAAe,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAK,EAAE,WAAW,CAAC,CAAC;IACrE,CAAC;IAED;;;OAGG;IACH,YAAY,CACV,MAAuB,EACvB,WAGC;QAED,OAAO,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;IAED;;;OAGG;IACH,cAAc,CACZ,QAAiD,EACjD,WAGC;QAED,OAAO,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"AssistantStream.js","names":[],"sources":["../../src/core/AssistantStream.ts"],"sourcesContent":["import type { AssistantStreamChunk } from \"./AssistantStreamChunk\";\n\n/**\n * Stream of assistant-ui protocol chunks.\n *\n * `AssistantStream` is the normalized internal stream format used by\n * encoders, decoders, accumulators, and tool execution transforms. Use an\n * encoder such as `DataStreamEncoder` when returning it from an HTTP route,\n * and the matching decoder when reading it back from a response.\n */\nexport type AssistantStream = ReadableStream<AssistantStreamChunk>;\n\n/**\n * Encoder that converts an {@link AssistantStream} into bytes suitable for an\n * HTTP response body.\n *\n * Encoders may expose response headers, such as content type or protocol\n * markers, through `headers`.\n */\nexport type AssistantStreamEncoder = ReadableWritablePair<\n Uint8Array<ArrayBuffer>,\n AssistantStreamChunk\n> & {\n headers?: Headers;\n};\n\nexport const AssistantStream = {\n /**\n * Converts an {@link AssistantStream} into a `Response` using the supplied\n * encoder.\n *\n * The encoder's `headers` are copied onto the response. Pair this with the\n * decoder for the same wire format when consuming the response.\n */\n toResponse(stream: AssistantStream, transformer: AssistantStreamEncoder) {\n return new Response(AssistantStream.toByteStream(stream, transformer), {\n headers: transformer.headers ?? {},\n });\n },\n\n /**\n * Reads an assistant stream from a `Response` body using the supplied\n * decoder.\n *\n * The response body must be present and encoded with the matching assistant\n * stream wire format.\n */\n fromResponse(\n response: Response,\n transformer: ReadableWritablePair<\n AssistantStreamChunk,\n Uint8Array<ArrayBuffer>\n >,\n ) {\n return AssistantStream.fromByteStream(response.body!, transformer);\n },\n\n /**\n * Pipes an {@link AssistantStream} through an encoder and returns the\n * resulting byte stream.\n */\n toByteStream(\n stream: AssistantStream,\n transformer: ReadableWritablePair<\n Uint8Array<ArrayBuffer>,\n AssistantStreamChunk\n >,\n ) {\n return stream.pipeThrough(transformer);\n },\n\n /**\n * Pipes a byte stream through a decoder and returns normalized\n * {@link AssistantStreamChunk} values.\n */\n fromByteStream(\n readable: ReadableStream<Uint8Array<ArrayBuffer>>,\n transformer: ReadableWritablePair<\n AssistantStreamChunk,\n Uint8Array<ArrayBuffer>\n >,\n ) {\n return readable.pipeThrough(transformer);\n },\n};\n"],"mappings":";AA0BA,MAAa,kBAAkB;;;;;;;;CAQ7B,WAAW,QAAyB,aAAqC;EACvE,OAAO,IAAI,SAAS,gBAAgB,aAAa,QAAQ,WAAW,GAAG,EACrE,SAAS,YAAY,WAAW,CAAC,EACnC,CAAC;CACH;;;;;;;;CASA,aACE,UACA,aAIA;EACA,OAAO,gBAAgB,eAAe,SAAS,MAAO,WAAW;CACnE;;;;;CAMA,aACE,QACA,aAIA;EACA,OAAO,OAAO,YAAY,WAAW;CACvC;;;;;CAMA,eACE,UACA,aAIA;EACA,OAAO,SAAS,YAAY,WAAW;CACzC;AACF"}
@@ -1,37 +1,39 @@
1
- import type { ReadonlyJSONValue } from "../utils/json/json-value.js";
2
- import type { ObjectStreamOperation } from "./object/types.js";
3
- import type { ToolModelContentPart } from "./tool/tool-types.js";
1
+ import { ReadonlyJSONValue } from "../utils/json/json-value.js";
2
+ import { ToolModelContentPart } from "./tool/tool-types.js";
3
+ import { ObjectStreamOperation } from "./object/types.js";
4
+
5
+ //#region src/core/AssistantStreamChunk.d.ts
4
6
  /**
5
7
  * Initial metadata for a stream part.
6
8
  *
7
9
  * A part starts with `part-start`, receives zero or more chunks at the same
8
10
  * path, and ends with `part-finish`.
9
11
  */
10
- export type PartInit = {
11
- readonly type: "text" | "reasoning";
12
- readonly parentId?: string;
12
+ type PartInit = {
13
+ readonly type: "text" | "reasoning";
14
+ readonly parentId?: string;
13
15
  } | {
14
- readonly type: "tool-call";
15
- readonly toolCallId: string;
16
- readonly toolName: string;
17
- readonly parentId?: string;
16
+ readonly type: "tool-call";
17
+ readonly toolCallId: string;
18
+ readonly toolName: string;
19
+ readonly parentId?: string;
18
20
  } | {
19
- readonly type: "source";
20
- readonly sourceType: "url";
21
- readonly id: string;
22
- readonly url: string;
23
- readonly title?: string;
24
- readonly parentId?: string;
21
+ readonly type: "source";
22
+ readonly sourceType: "url";
23
+ readonly id: string;
24
+ readonly url: string;
25
+ readonly title?: string;
26
+ readonly parentId?: string;
25
27
  } | {
26
- readonly type: "file";
27
- readonly data: string;
28
- readonly mimeType: string;
29
- readonly parentId?: string;
28
+ readonly type: "file";
29
+ readonly data: string;
30
+ readonly mimeType: string;
31
+ readonly parentId?: string;
30
32
  } | {
31
- readonly type: "data";
32
- readonly name: string;
33
- readonly data: ReadonlyJSONValue;
34
- readonly parentId?: string;
33
+ readonly type: "data";
34
+ readonly name: string;
35
+ readonly data: ReadonlyJSONValue;
36
+ readonly parentId?: string;
35
37
  };
36
38
  /**
37
39
  * Normalized assistant-ui streaming protocol chunk.
@@ -40,71 +42,62 @@ export type PartInit = {
40
42
  * may translate these chunks into provider-specific wire formats, while
41
43
  * accumulators consume them to build assistant messages.
42
44
  */
43
- export type AssistantStreamChunk = {
44
- readonly path: readonly number[];
45
+ type AssistantStreamChunk = {
46
+ readonly path: readonly number[];
45
47
  } & ({
46
- /** Opens a new content part at `path`. */
47
- readonly type: "part-start";
48
- readonly part: PartInit;
48
+ /** Opens a new content part at `path`. */readonly type: "part-start";
49
+ readonly part: PartInit;
49
50
  } | {
50
- /** Closes the current part at `path`. */
51
- readonly type: "part-finish";
51
+ /** Closes the current part at `path`. */readonly type: "part-finish";
52
52
  } | {
53
- /** Marks streamed tool-call argument text as complete. */
54
- readonly type: "tool-call-args-text-finish";
53
+ /** Marks streamed tool-call argument text as complete. */readonly type: "tool-call-args-text-finish";
55
54
  } | {
56
- /** Appends text to a text, reasoning, or tool-call argument part. */
57
- readonly type: "text-delta";
58
- readonly textDelta: string;
55
+ /** Appends text to a text, reasoning, or tool-call argument part. */readonly type: "text-delta";
56
+ readonly textDelta: string;
59
57
  } | {
60
- /** Appends provider or application annotations to the current message. */
61
- readonly type: "annotations";
62
- readonly annotations: ReadonlyJSONValue[];
58
+ /** Appends provider or application annotations to the current message. */readonly type: "annotations";
59
+ readonly annotations: ReadonlyJSONValue[];
63
60
  } | {
64
- /** Emits application data chunks associated with the current message. */
65
- readonly type: "data";
66
- readonly data: ReadonlyJSONValue[];
61
+ /** Emits application data chunks associated with the current message. */readonly type: "data";
62
+ readonly data: ReadonlyJSONValue[];
67
63
  } | {
68
- /** Starts a model generation step. */
69
- readonly type: "step-start";
70
- readonly messageId: string;
64
+ /** Starts a model generation step. */readonly type: "step-start";
65
+ readonly messageId: string;
71
66
  } | {
72
- /** Finishes a model generation step and reports usage for that step. */
73
- readonly type: "step-finish";
74
- readonly finishReason: "stop" | "length" | "content-filter" | "tool-calls" | "error" | "other" | "unknown";
75
- readonly usage: {
76
- readonly inputTokens: number;
77
- readonly outputTokens: number;
78
- };
79
- readonly isContinued: boolean;
67
+ /** Finishes a model generation step and reports usage for that step. */readonly type: "step-finish";
68
+ readonly finishReason: "stop" | "length" | "content-filter" | "tool-calls" | "error" | "other" | "unknown";
69
+ readonly usage: {
70
+ readonly inputTokens: number;
71
+ readonly outputTokens: number;
72
+ };
73
+ readonly isContinued: boolean;
80
74
  } | {
81
- /** Finishes the assistant message and reports final usage. */
82
- readonly type: "message-finish";
83
- readonly finishReason: "stop" | "length" | "content-filter" | "tool-calls" | "error" | "other" | "unknown";
84
- readonly usage: {
85
- readonly inputTokens: number;
86
- readonly outputTokens: number;
87
- };
75
+ /** Finishes the assistant message and reports final usage. */readonly type: "message-finish";
76
+ readonly finishReason: "stop" | "length" | "content-filter" | "tool-calls" | "error" | "other" | "unknown";
77
+ readonly usage: {
78
+ readonly inputTokens: number;
79
+ readonly outputTokens: number;
80
+ };
88
81
  } | {
89
- /**
90
- * Emits the result for a tool-call part.
91
- *
92
- * `artifact` is UI-visible metadata, while `modelContent` can override
93
- * what is sent back to the model.
94
- */
95
- readonly type: "result";
96
- readonly artifact?: ReadonlyJSONValue;
97
- readonly result: ReadonlyJSONValue;
98
- readonly isError: boolean;
99
- readonly modelContent?: readonly ToolModelContentPart[];
100
- readonly messages?: ReadonlyJSONValue;
82
+ /**
83
+ * Emits the result for a tool-call part.
84
+ *
85
+ * `artifact` is UI-visible metadata, while `modelContent` can override
86
+ * what is sent back to the model.
87
+ */
88
+ readonly type: "result";
89
+ readonly artifact?: ReadonlyJSONValue;
90
+ readonly result: ReadonlyJSONValue;
91
+ readonly isError: boolean;
92
+ readonly modelContent?: readonly ToolModelContentPart[];
93
+ readonly messages?: ReadonlyJSONValue;
101
94
  } | {
102
- /** Emits a stream-level error message. */
103
- readonly type: "error";
104
- readonly error: string;
95
+ /** Emits a stream-level error message. */readonly type: "error";
96
+ readonly error: string;
105
97
  } | {
106
- /** Applies object-stream operations to state carried by this stream. */
107
- readonly type: "update-state";
108
- readonly operations: ObjectStreamOperation[];
98
+ /** Applies object-stream operations to state carried by this stream. */readonly type: "update-state";
99
+ readonly operations: ObjectStreamOperation[];
109
100
  });
101
+ //#endregion
102
+ export { AssistantStreamChunk, PartInit };
110
103
  //# sourceMappingURL=AssistantStreamChunk.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantStreamChunk.d.ts","sourceRoot":"","sources":["../../src/core/AssistantStreamChunk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AssistantStreamChunk.d.ts","names":[],"sources":["../../src/core/AssistantStreamChunk.ts"],"mappings":";;;;;;;AAUA;;;;KAAY,QAAA;EAAA,SAEG,IAAA;EAAA,SACA,QAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,UAAA;EAAA,SACA,QAAA;EAAA,SACA,QAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,UAAA;EAAA,SACA,EAAA;EAAA,SACA,GAAA;EAAA,SACA,KAAA;EAAA,SACA,QAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,IAAA;EAAA,SACA,QAAA;EAAA,SACA,QAAA;AAAA;EAAA,SAGA,IAAA;EAAA,SACA,IAAA;EAAA,SACA,IAAA,EAAM,iBAAiB;EAAA,SACvB,QAAA;AAAA;;;;;;;;KAUH,oBAAA;EAAA,SAAkC,IAAA;AAAA;EAAA,mDAG/B,IAAA;EAAA,SACA,IAAA,EAAM,QAAA;AAAA;EAIN,kDAAA,IAAA;AAAA;EASA,mEALA,IAAA;AAAA;EAUa,8EANb,IAAA;EAAA,SACA,SAAA;AAAA;EAcA,mFAVA,IAAA;EAAA,SACA,WAAA,EAAa,iBAAA;AAAA;EAuBb,kFAnBA,IAAA;EAAA,SACA,IAAA,EAAM,iBAAA;AAAA;EA0BN,+CAtBA,IAAA;EAAA,SACA,SAAA;AAAA;EAgCE,iFA5BF,IAAA;EAAA,SACA,YAAA;EAAA,SAQA,KAAA;IAAA,SACE,WAAA;IAAA,SACA,YAAA;EAAA;EAAA,SAEF,WAAA;AAAA;EA8BA,uEA1BA,IAAA;EAAA,SACA,YAAA;EAAA,SAQA,KAAA;IAAA,SACE,WAAA;IAAA,SACA,YAAA;EAAA;AAAA;EAyB+B;;;;;;EAAA,SAfjC,IAAA;EAAA,SACA,QAAA,GAAW,iBAAA;EAAA,SACX,MAAA,EAAQ,iBAAA;EAAA,SACR,OAAA;EAAA,SACA,YAAA,YAAwB,oBAAA;EAAA,SACxB,QAAA,GAAW,iBAAA;AAAA;qDAIX,IAAA;EAAA,SACA,KAAA;AAAA;mFAIA,IAAA;EAAA,SACA,UAAA,EAAY,qBAAA;AAAA"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=AssistantStreamChunk.js.map
@@ -1,13 +1,17 @@
1
- import type { AssistantStream } from "../AssistantStream.js";
2
- import type { AssistantMessage } from "../utils/types.js";
3
- export declare class AssistantMessageStream {
4
- readonly readable: ReadableStream<AssistantMessage>;
5
- constructor(readable: ReadableStream<AssistantMessage>);
6
- static fromAssistantStream(stream: AssistantStream): AssistantMessageStream;
7
- unstable_result(): Promise<AssistantMessage>;
8
- [Symbol.asyncIterator](): {
9
- next(): Promise<IteratorResult<AssistantMessage, undefined>>;
10
- };
11
- tee(): [AssistantMessageStream, AssistantMessageStream];
1
+ import { AssistantMessage } from "../utils/types.js";
2
+ import { AssistantStream } from "../AssistantStream.js";
3
+
4
+ //#region src/core/accumulators/AssistantMessageStream.d.ts
5
+ declare class AssistantMessageStream {
6
+ readonly readable: ReadableStream<AssistantMessage>;
7
+ constructor(readable: ReadableStream<AssistantMessage>);
8
+ static fromAssistantStream(stream: AssistantStream): AssistantMessageStream;
9
+ unstable_result(): Promise<AssistantMessage>;
10
+ [Symbol.asyncIterator](): {
11
+ next(): Promise<IteratorResult<AssistantMessage, undefined>>;
12
+ };
13
+ tee(): [AssistantMessageStream, AssistantMessageStream];
12
14
  }
15
+ //#endregion
16
+ export { AssistantMessageStream };
13
17
  //# sourceMappingURL=AssistantMessageStream.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantMessageStream.d.ts","sourceRoot":"","sources":["../../../src/core/accumulators/AssistantMessageStream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,8BAA2B;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,0BAAuB;AAGvD,qBAAa,sBAAsB;aACL,QAAQ,EAAE,cAAc,CAAC,gBAAgB,CAAC;gBAA1C,QAAQ,EAAE,cAAc,CAAC,gBAAgB,CAAC;IAItE,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,eAAe;IAM5C,eAAe,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAwBlD,CAAC,MAAM,CAAC,aAAa,CAAC;gBAGJ,OAAO,CAAC,cAAc,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;;IAOtE,GAAG,IAAI,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;CAOxD"}
1
+ {"version":3,"file":"AssistantMessageStream.d.ts","names":[],"sources":["../../../src/core/accumulators/AssistantMessageStream.ts"],"mappings":";;;;cAIa,sBAAA;EAAA,SACiB,QAAA,EAAU,cAAA,CAAe,gBAAA;cAAzB,QAAA,EAAU,cAAA,CAAe,gBAAA;EAAA,OAI9C,mBAAA,CAAoB,MAAA,EAAQ,eAAA,GAAe,sBAAA;EAM5C,eAAA,CAAA,GAAmB,OAAA,CAAQ,gBAAA;EAAA,CAwBhC,MAAA,CAAO,aAAA;YAGU,OAAA,CAAQ,cAAA,CAAe,gBAAA;EAAA;EAOzC,GAAA,CAAA,IAAQ,sBAAA,EAAwB,sBAAA;AAAA"}
@@ -1,50 +1,54 @@
1
1
  import { AssistantMessageAccumulator } from "./assistant-message-accumulator.js";
2
- export class AssistantMessageStream {
3
- readable;
4
- constructor(readable) {
5
- this.readable = readable;
6
- this.readable = readable;
7
- }
8
- static fromAssistantStream(stream) {
9
- return new AssistantMessageStream(stream.pipeThrough(new AssistantMessageAccumulator()));
10
- }
11
- async unstable_result() {
12
- let last;
13
- for await (const chunk of this) {
14
- last = chunk;
15
- }
16
- if (!last) {
17
- return {
18
- role: "assistant",
19
- status: { type: "complete", reason: "unknown" },
20
- parts: [],
21
- content: [],
22
- metadata: {
23
- unstable_state: null,
24
- unstable_data: [],
25
- unstable_annotations: [],
26
- steps: [],
27
- custom: {},
28
- },
29
- };
30
- }
31
- return last;
32
- }
33
- [Symbol.asyncIterator]() {
34
- const reader = this.readable.getReader();
35
- return {
36
- async next() {
37
- const { done, value } = await reader.read();
38
- return done ? { done: true, value: undefined } : { done: false, value };
39
- },
40
- };
41
- }
42
- tee() {
43
- const [readable1, readable2] = this.readable.tee();
44
- return [
45
- new AssistantMessageStream(readable1),
46
- new AssistantMessageStream(readable2),
47
- ];
48
- }
49
- }
2
+ //#region src/core/accumulators/AssistantMessageStream.ts
3
+ var AssistantMessageStream = class AssistantMessageStream {
4
+ readable;
5
+ constructor(readable) {
6
+ this.readable = readable;
7
+ this.readable = readable;
8
+ }
9
+ static fromAssistantStream(stream) {
10
+ return new AssistantMessageStream(stream.pipeThrough(new AssistantMessageAccumulator()));
11
+ }
12
+ async unstable_result() {
13
+ let last;
14
+ for await (const chunk of this) last = chunk;
15
+ if (!last) return {
16
+ role: "assistant",
17
+ status: {
18
+ type: "complete",
19
+ reason: "unknown"
20
+ },
21
+ parts: [],
22
+ content: [],
23
+ metadata: {
24
+ unstable_state: null,
25
+ unstable_data: [],
26
+ unstable_annotations: [],
27
+ steps: [],
28
+ custom: {}
29
+ }
30
+ };
31
+ return last;
32
+ }
33
+ [Symbol.asyncIterator]() {
34
+ const reader = this.readable.getReader();
35
+ return { async next() {
36
+ const { done, value } = await reader.read();
37
+ return done ? {
38
+ done: true,
39
+ value: void 0
40
+ } : {
41
+ done: false,
42
+ value
43
+ };
44
+ } };
45
+ }
46
+ tee() {
47
+ const [readable1, readable2] = this.readable.tee();
48
+ return [new AssistantMessageStream(readable1), new AssistantMessageStream(readable2)];
49
+ }
50
+ };
51
+ //#endregion
52
+ export { AssistantMessageStream };
53
+
50
54
  //# sourceMappingURL=AssistantMessageStream.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantMessageStream.js","sourceRoot":"","sources":["../../../src/core/accumulators/AssistantMessageStream.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,2BAA2B,EAAE,2CAAwC;AAE9E,MAAM,OAAO,sBAAsB;IACL;IAA5B,YAA4B,QAA0C;QAA1C,aAAQ,GAAR,QAAQ,CAAkC;QACpE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,mBAAmB,CAAC,MAAuB;QAChD,OAAO,IAAI,sBAAsB,CAC/B,MAAM,CAAC,WAAW,CAAC,IAAI,2BAA2B,EAAE,CAAC,CACtD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,IAAI,IAAkC,CAAC;QACvC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;YAC/B,IAAI,GAAG,KAAK,CAAC;QACf,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;gBACL,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE;gBAC/C,KAAK,EAAE,EAAE;gBACT,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE;oBACR,cAAc,EAAE,IAAI;oBACpB,aAAa,EAAE,EAAE;oBACjB,oBAAoB,EAAE,EAAE;oBACxB,KAAK,EAAE,EAAE;oBACT,MAAM,EAAE,EAAE;iBACX;aACF,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,CAAC,MAAM,CAAC,aAAa,CAAC;QACpB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QACzC,OAAO;YACL,KAAK,CAAC,IAAI;gBACR,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;gBAC5C,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;YAC1E,CAAC;SACF,CAAC;IACJ,CAAC;IAED,GAAG;QACD,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QACnD,OAAO;YACL,IAAI,sBAAsB,CAAC,SAAS,CAAC;YACrC,IAAI,sBAAsB,CAAC,SAAS,CAAC;SACtC,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"AssistantMessageStream.js","names":[],"sources":["../../../src/core/accumulators/AssistantMessageStream.ts"],"sourcesContent":["import type { AssistantStream } from \"../AssistantStream\";\nimport type { AssistantMessage } from \"../utils/types\";\nimport { AssistantMessageAccumulator } from \"./assistant-message-accumulator\";\n\nexport class AssistantMessageStream {\n constructor(public readonly readable: ReadableStream<AssistantMessage>) {\n this.readable = readable;\n }\n\n static fromAssistantStream(stream: AssistantStream) {\n return new AssistantMessageStream(\n stream.pipeThrough(new AssistantMessageAccumulator()),\n );\n }\n\n async unstable_result(): Promise<AssistantMessage> {\n let last: AssistantMessage | undefined;\n for await (const chunk of this) {\n last = chunk;\n }\n\n if (!last) {\n return {\n role: \"assistant\",\n status: { type: \"complete\", reason: \"unknown\" },\n parts: [],\n content: [],\n metadata: {\n unstable_state: null,\n unstable_data: [],\n unstable_annotations: [],\n steps: [],\n custom: {},\n },\n };\n }\n return last;\n }\n\n [Symbol.asyncIterator]() {\n const reader = this.readable.getReader();\n return {\n async next(): Promise<IteratorResult<AssistantMessage, undefined>> {\n const { done, value } = await reader.read();\n return done ? { done: true, value: undefined } : { done: false, value };\n },\n };\n }\n\n tee(): [AssistantMessageStream, AssistantMessageStream] {\n const [readable1, readable2] = this.readable.tee();\n return [\n new AssistantMessageStream(readable1),\n new AssistantMessageStream(readable2),\n ];\n }\n}\n"],"mappings":";;AAIA,IAAa,yBAAb,MAAa,uBAAuB;CACN;CAA5B,YAAY,UAA4D;EAA5C,KAAA,WAAA;EAC1B,KAAK,WAAW;CAClB;CAEA,OAAO,oBAAoB,QAAyB;EAClD,OAAO,IAAI,uBACT,OAAO,YAAY,IAAI,4BAA4B,CAAC,CACtD;CACF;CAEA,MAAM,kBAA6C;EACjD,IAAI;EACJ,WAAW,MAAM,SAAS,MACxB,OAAO;EAGT,IAAI,CAAC,MACH,OAAO;GACL,MAAM;GACN,QAAQ;IAAE,MAAM;IAAY,QAAQ;GAAU;GAC9C,OAAO,CAAC;GACR,SAAS,CAAC;GACV,UAAU;IACR,gBAAgB;IAChB,eAAe,CAAC;IAChB,sBAAsB,CAAC;IACvB,OAAO,CAAC;IACR,QAAQ,CAAC;GACX;EACF;EAEF,OAAO;CACT;CAEA,CAAC,OAAO,iBAAiB;EACvB,MAAM,SAAS,KAAK,SAAS,UAAU;EACvC,OAAO,EACL,MAAM,OAA6D;GACjE,MAAM,EAAE,MAAM,UAAU,MAAM,OAAO,KAAK;GAC1C,OAAO,OAAO;IAAE,MAAM;IAAM,OAAO,KAAA;GAAU,IAAI;IAAE,MAAM;IAAO;GAAM;EACxE,EACF;CACF;CAEA,MAAwD;EACtD,MAAM,CAAC,WAAW,aAAa,KAAK,SAAS,IAAI;EACjD,OAAO,CACL,IAAI,uBAAuB,SAAS,GACpC,IAAI,uBAAuB,SAAS,CACtC;CACF;AACF"}
@@ -1,13 +1,17 @@
1
- import type { AssistantMessageTiming } from "../utils/types.js";
2
- export declare class TimingTracker {
3
- private _streamStartTime;
4
- private _firstTokenTime;
5
- private _totalChunks;
6
- private _toolCallIds;
7
- constructor();
8
- recordChunk(): void;
9
- recordFirstToken(): void;
10
- recordToolCallStart(toolCallId: string): void;
11
- getTiming(outputTokens?: number, totalText?: string): AssistantMessageTiming;
1
+ import { AssistantMessageTiming } from "../utils/types.js";
2
+
3
+ //#region src/core/accumulators/TimingTracker.d.ts
4
+ declare class TimingTracker {
5
+ private _streamStartTime;
6
+ private _firstTokenTime;
7
+ private _totalChunks;
8
+ private _toolCallIds;
9
+ constructor();
10
+ recordChunk(): void;
11
+ recordFirstToken(): void;
12
+ recordToolCallStart(toolCallId: string): void;
13
+ getTiming(outputTokens?: number, totalText?: string): AssistantMessageTiming;
12
14
  }
15
+ //#endregion
16
+ export { TimingTracker };
13
17
  //# sourceMappingURL=TimingTracker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TimingTracker.d.ts","sourceRoot":"","sources":["../../../src/core/accumulators/TimingTracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,0BAAuB;AAE7D,qBAAa,aAAa;IACxB,OAAO,CAAC,gBAAgB,CAAS;IACjC,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,YAAY,CAAqB;;IAMzC,WAAW,IAAI,IAAI;IAInB,gBAAgB,IAAI,IAAI;IAMxB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAI7C,SAAS,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,sBAAsB;CA4B7E"}
1
+ {"version":3,"file":"TimingTracker.d.ts","names":[],"sources":["../../../src/core/accumulators/TimingTracker.ts"],"mappings":";;;cAEa,aAAA;EAAA,QACH,gBAAA;EAAA,QACA,eAAA;EAAA,QACA,YAAA;EAAA,QACA,YAAA;;EAMR,WAAA,CAAA;EAIA,gBAAA,CAAA;EAMA,mBAAA,CAAoB,UAAA;EAIpB,SAAA,CAAU,YAAA,WAAuB,SAAA,YAAqB,sBAAsB;AAAA"}