assistant-stream 0.3.14 → 0.3.16

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (238) hide show
  1. package/README.md +6 -4
  2. package/dist/core/AssistantStream.d.ts +50 -9
  3. package/dist/core/AssistantStream.d.ts.map +1 -1
  4. package/dist/core/AssistantStream.js +39 -15
  5. package/dist/core/AssistantStream.js.map +1 -1
  6. package/dist/core/AssistantStreamChunk.d.ts +84 -61
  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 +92 -28
  26. package/dist/core/modules/assistant-stream.d.ts.map +1 -1
  27. package/dist/core/modules/assistant-stream.js +177 -162
  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 +60 -19
  88. package/dist/core/tool/ToolResponse.d.ts.map +1 -1
  89. package/dist/core/tool/ToolResponse.js +51 -34
  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 +173 -92
  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 +24 -7
  99. package/dist/core/tool/toolResultStream.d.ts.map +1 -1
  100. package/dist/core/tool/toolResultStream.js +128 -145
  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 +5 -4
  218. package/src/core/AssistantStream.ts +37 -0
  219. package/src/core/AssistantStreamChunk.ts +30 -0
  220. package/src/core/modules/assistant-stream.ts +68 -0
  221. package/src/core/tool/ToolResponse.ts +45 -1
  222. package/src/core/tool/tool-types.ts +102 -2
  223. package/src/core/tool/toolResultStream.ts +15 -0
  224. package/dist/core/AssistantStreamChunk.js.map +0 -1
  225. package/dist/core/object/types.js.map +0 -1
  226. package/dist/core/serialization/ui-message-stream/chunk-types.js.map +0 -1
  227. package/dist/core/tool/tool-types.js.map +0 -1
  228. package/dist/core/tool/type-path-utils.js.map +0 -1
  229. package/dist/core/utils/stream/UnderlyingReadable.js.map +0 -1
  230. package/dist/core/utils/types.js.map +0 -1
  231. package/dist/index.d.ts.map +0 -1
  232. package/dist/index.js.map +0 -1
  233. package/dist/resumable/index.d.ts.map +0 -1
  234. package/dist/resumable/index.js.map +0 -1
  235. package/dist/resumable/types.js.map +0 -1
  236. package/dist/utils/json/json-value.js.map +0 -1
  237. package/dist/utils.d.ts.map +0 -1
  238. package/dist/utils.js.map +0 -1
@@ -1,27 +1,31 @@
1
- import type { ResumableStreamRole, ResumableStreamStatus, ResumableStreamStore } from "./types.js";
2
- export type ResumableStreamContextOptions = {
3
- readonly store: ResumableStreamStore;
4
- readonly ttlMs?: number;
5
- /**
6
- * Required on serverless runtimes that terminate background work when the
7
- * request handler returns (Vercel, Cloudflare). Pass `after` from
8
- * `next/server` so the producer task outlives the response.
9
- */
10
- readonly waitUntil?: (promise: Promise<unknown>) => void;
11
- readonly onAcquire?: (streamId: string, role: ResumableStreamRole) => void;
12
- readonly onAppend?: (streamId: string, byteLength: number) => void;
13
- readonly onFinalize?: (streamId: string, status: "done" | "error", error?: string) => void;
14
- readonly onError?: (streamId: string, error: unknown) => void;
1
+ import { ResumableStreamRole, ResumableStreamStatus, ResumableStreamStore } from "./types.js";
2
+
3
+ //#region src/resumable/ResumableStreamContext.d.ts
4
+ type ResumableStreamContextOptions = {
5
+ readonly store: ResumableStreamStore;
6
+ readonly ttlMs?: number;
7
+ /**
8
+ * Required on serverless runtimes that terminate background work when the
9
+ * request handler returns (Vercel, Cloudflare). Pass `after` from
10
+ * `next/server` so the producer task outlives the response.
11
+ */
12
+ readonly waitUntil?: (promise: Promise<unknown>) => void;
13
+ readonly onAcquire?: (streamId: string, role: ResumableStreamRole) => void;
14
+ readonly onAppend?: (streamId: string, byteLength: number) => void;
15
+ readonly onFinalize?: (streamId: string, status: "done" | "error", error?: string) => void;
16
+ readonly onError?: (streamId: string, error: unknown) => void;
15
17
  };
16
- export interface ResumableStreamContext {
17
- /** Producer or consumer entrypoint. Atomically elects the role. */
18
- run(streamId: string, makeStream: () => ReadableStream<Uint8Array>): Promise<ReadableStream<Uint8Array>>;
19
- /** Returns `null` when the stream does not exist. */
20
- resume(streamId: string): Promise<ReadableStream<Uint8Array> | null>;
21
- /** Throws `ResumableStreamError("missing")` when the stream does not exist. */
22
- requireResume(streamId: string): Promise<ReadableStream<Uint8Array>>;
23
- status(streamId: string): Promise<ResumableStreamStatus>;
24
- delete(streamId: string): Promise<void>;
18
+ interface ResumableStreamContext {
19
+ /** Producer or consumer entrypoint. Atomically elects the role. */
20
+ run(streamId: string, makeStream: () => ReadableStream<Uint8Array>): Promise<ReadableStream<Uint8Array>>;
21
+ /** Returns `null` when the stream does not exist. */
22
+ resume(streamId: string): Promise<ReadableStream<Uint8Array> | null>;
23
+ /** Throws `ResumableStreamError("missing")` when the stream does not exist. */
24
+ requireResume(streamId: string): Promise<ReadableStream<Uint8Array>>;
25
+ status(streamId: string): Promise<ResumableStreamStatus>;
26
+ delete(streamId: string): Promise<void>;
25
27
  }
26
- export declare function createResumableStreamContext(options: ResumableStreamContextOptions): ResumableStreamContext;
28
+ declare function createResumableStreamContext(options: ResumableStreamContextOptions): ResumableStreamContext;
29
+ //#endregion
30
+ export { ResumableStreamContext, ResumableStreamContextOptions, createResumableStreamContext };
27
31
  //# sourceMappingURL=ResumableStreamContext.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ResumableStreamContext.d.ts","sourceRoot":"","sources":["../../src/resumable/ResumableStreamContext.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACrB,mBAAgB;AAEjB,MAAM,MAAM,6BAA6B,GAAG;IAC1C,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IACrC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,KAAK,IAAI,CAAC;IAC3E,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACnE,QAAQ,CAAC,UAAU,CAAC,EAAE,CACpB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GAAG,OAAO,EACxB,KAAK,CAAC,EAAE,MAAM,KACX,IAAI,CAAC;IACV,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAC/D,CAAC;AAEF,MAAM,WAAW,sBAAsB;IACrC,mEAAmE;IACnE,GAAG,CACD,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,cAAc,CAAC,UAAU,CAAC,GAC3C,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;IAEvC,qDAAqD;IACrD,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;IAErE,+EAA+E;IAC/E,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;IAErE,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAEzD,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,6BAA6B,GACrC,sBAAsB,CA8CxB"}
1
+ {"version":3,"file":"ResumableStreamContext.d.ts","names":[],"sources":["../../src/resumable/ResumableStreamContext.ts"],"mappings":";;;KAOY,6BAAA;EAAA,SACD,KAAA,EAAO,oBAAA;EAAA,SACP,KAAA;EAF8B;;;;;EAAA,SAQ9B,SAAA,IAAa,OAAA,EAAS,OAAA;EAAA,SACtB,SAAA,IAAa,QAAA,UAAkB,IAAA,EAAM,mBAAA;EAAA,SACrC,QAAA,IAAY,QAAA,UAAkB,UAAA;EAAA,SAC9B,UAAA,IACP,QAAA,UACA,MAAA,oBACA,KAAA;EAAA,SAEO,OAAA,IAAW,QAAA,UAAkB,KAAA;AAAA;AAAA,UAGvB,sBAAA;EAXO;EAatB,GAAA,CACE,QAAA,UACA,UAAA,QAAkB,cAAA,CAAe,UAAA,IAChC,OAAA,CAAQ,cAAA,CAAe,UAAA;EAfJ;EAkBtB,MAAA,CAAO,QAAA,WAAmB,OAAA,CAAQ,cAAA,CAAe,UAAA;EAlBT;EAqBxC,aAAA,CAAc,QAAA,WAAmB,OAAA,CAAQ,cAAA,CAAe,UAAA;EAExD,MAAA,CAAO,QAAA,WAAmB,OAAA,CAAQ,qBAAA;EAElC,MAAA,CAAO,QAAA,WAAmB,OAAA;AAAA;AAAA,iBAGZ,4BAAA,CACd,OAAA,EAAS,6BAAA,GACR,sBAAsB"}
@@ -1,121 +1,106 @@
1
1
  import { ResumableStreamError } from "./errors.js";
2
- export function createResumableStreamContext(options) {
3
- const { store, waitUntil, onAcquire, onAppend, onFinalize, onError } = options;
4
- const acquireOptions = options.ttlMs !== undefined ? { ttlMs: options.ttlMs } : undefined;
5
- return {
6
- async run(streamId, makeStream) {
7
- const role = await store.acquire(streamId, acquireOptions);
8
- onAcquire?.(streamId, role);
9
- if (role === "producer") {
10
- startProducerTask(store, streamId, makeStream, {
11
- waitUntil,
12
- onAppend,
13
- onFinalize,
14
- onError,
15
- });
16
- }
17
- return readFromStore(store, streamId);
18
- },
19
- async resume(streamId) {
20
- const status = await store.status(streamId);
21
- if (status === "missing")
22
- return null;
23
- return readFromStore(store, streamId);
24
- },
25
- async requireResume(streamId) {
26
- const status = await store.status(streamId);
27
- if (status === "missing") {
28
- throw new ResumableStreamError("missing", `resumable stream not found: ${streamId}`);
29
- }
30
- return readFromStore(store, streamId);
31
- },
32
- async status(streamId) {
33
- return store.status(streamId);
34
- },
35
- async delete(streamId) {
36
- await store.delete(streamId);
37
- },
38
- };
2
+ //#region src/resumable/ResumableStreamContext.ts
3
+ function createResumableStreamContext(options) {
4
+ const { store, waitUntil, onAcquire, onAppend, onFinalize, onError } = options;
5
+ const acquireOptions = options.ttlMs !== void 0 ? { ttlMs: options.ttlMs } : void 0;
6
+ return {
7
+ async run(streamId, makeStream) {
8
+ const role = await store.acquire(streamId, acquireOptions);
9
+ onAcquire?.(streamId, role);
10
+ if (role === "producer") startProducerTask(store, streamId, makeStream, {
11
+ waitUntil,
12
+ onAppend,
13
+ onFinalize,
14
+ onError
15
+ });
16
+ return readFromStore(store, streamId);
17
+ },
18
+ async resume(streamId) {
19
+ if (await store.status(streamId) === "missing") return null;
20
+ return readFromStore(store, streamId);
21
+ },
22
+ async requireResume(streamId) {
23
+ if (await store.status(streamId) === "missing") throw new ResumableStreamError("missing", `resumable stream not found: ${streamId}`);
24
+ return readFromStore(store, streamId);
25
+ },
26
+ async status(streamId) {
27
+ return store.status(streamId);
28
+ },
29
+ async delete(streamId) {
30
+ await store.delete(streamId);
31
+ }
32
+ };
39
33
  }
40
34
  function startProducerTask(store, streamId, makeStream, hooks) {
41
- const { waitUntil, onAppend, onFinalize, onError } = hooks;
42
- const task = (async () => {
43
- let reader;
44
- let cancelled = false;
45
- try {
46
- reader = makeStream().getReader();
47
- while (true) {
48
- const { done, value } = await reader.read();
49
- if (done)
50
- break;
51
- await store.append(streamId, value);
52
- onAppend?.(streamId, value.byteLength);
53
- }
54
- await store.finalize(streamId, "done");
55
- onFinalize?.(streamId, "done");
56
- }
57
- catch (err) {
58
- cancelled = true;
59
- onError?.(streamId, err);
60
- const message = err instanceof Error ? err.message : String(err);
61
- try {
62
- await reader?.cancel(err);
63
- }
64
- catch (cancelErr) {
65
- console.error("resumable stream reader cancel failed:", cancelErr);
66
- }
67
- try {
68
- await store.finalize(streamId, "error", message);
69
- onFinalize?.(streamId, "error", message);
70
- }
71
- catch (finalizeErr) {
72
- console.error("resumable stream finalize failed:", finalizeErr);
73
- }
74
- }
75
- finally {
76
- if (!cancelled)
77
- reader?.releaseLock();
78
- }
79
- })();
80
- if (waitUntil)
81
- waitUntil(task);
82
- task.catch((err) => {
83
- console.error("resumable producer task failed:", err);
84
- });
35
+ const { waitUntil, onAppend, onFinalize, onError } = hooks;
36
+ const task = (async () => {
37
+ let reader;
38
+ let cancelled = false;
39
+ try {
40
+ reader = makeStream().getReader();
41
+ while (true) {
42
+ const { done, value } = await reader.read();
43
+ if (done) break;
44
+ await store.append(streamId, value);
45
+ onAppend?.(streamId, value.byteLength);
46
+ }
47
+ await store.finalize(streamId, "done");
48
+ onFinalize?.(streamId, "done");
49
+ } catch (err) {
50
+ cancelled = true;
51
+ onError?.(streamId, err);
52
+ const message = err instanceof Error ? err.message : String(err);
53
+ try {
54
+ await reader?.cancel(err);
55
+ } catch (cancelErr) {
56
+ console.error("resumable stream reader cancel failed:", cancelErr);
57
+ }
58
+ try {
59
+ await store.finalize(streamId, "error", message);
60
+ onFinalize?.(streamId, "error", message);
61
+ } catch (finalizeErr) {
62
+ console.error("resumable stream finalize failed:", finalizeErr);
63
+ }
64
+ } finally {
65
+ if (!cancelled) reader?.releaseLock();
66
+ }
67
+ })();
68
+ if (waitUntil) waitUntil(task);
69
+ task.catch((err) => {
70
+ console.error("resumable producer task failed:", err);
71
+ });
85
72
  }
86
73
  function readFromStore(store, streamId) {
87
- const ac = new AbortController();
88
- let iterator;
89
- return new ReadableStream({
90
- start() {
91
- iterator = store.read(streamId, "", ac.signal)[Symbol.asyncIterator]();
92
- },
93
- async pull(controller) {
94
- try {
95
- if (!iterator)
96
- return;
97
- const { done, value } = await iterator.next();
98
- if (done) {
99
- controller.close();
100
- return;
101
- }
102
- controller.enqueue(value.chunk);
103
- }
104
- catch (err) {
105
- // the platform never calls cancel() on errored streams, so unwind
106
- // the store iterator and abort the signal explicitly.
107
- ac.abort();
108
- try {
109
- await iterator?.return?.();
110
- }
111
- catch { }
112
- controller.error(err);
113
- }
114
- },
115
- cancel() {
116
- ac.abort();
117
- iterator?.return?.().catch(() => { });
118
- },
119
- });
74
+ const ac = new AbortController();
75
+ let iterator;
76
+ return new ReadableStream({
77
+ start() {
78
+ iterator = store.read(streamId, "", ac.signal)[Symbol.asyncIterator]();
79
+ },
80
+ async pull(controller) {
81
+ try {
82
+ if (!iterator) return;
83
+ const { done, value } = await iterator.next();
84
+ if (done) {
85
+ controller.close();
86
+ return;
87
+ }
88
+ controller.enqueue(value.chunk);
89
+ } catch (err) {
90
+ ac.abort();
91
+ try {
92
+ await iterator?.return?.();
93
+ } catch {}
94
+ controller.error(err);
95
+ }
96
+ },
97
+ cancel() {
98
+ ac.abort();
99
+ iterator?.return?.().catch(() => {});
100
+ }
101
+ });
120
102
  }
103
+ //#endregion
104
+ export { createResumableStreamContext };
105
+
121
106
  //# sourceMappingURL=ResumableStreamContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ResumableStreamContext.js","sourceRoot":"","sources":["../../src/resumable/ResumableStreamContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ResumableStreamContext.js","names":[],"sources":["../../src/resumable/ResumableStreamContext.ts"],"sourcesContent":["import { ResumableStreamError } from \"./errors\";\nimport type {\n ResumableStreamRole,\n ResumableStreamStatus,\n ResumableStreamStore,\n} from \"./types\";\n\nexport type ResumableStreamContextOptions = {\n readonly store: ResumableStreamStore;\n readonly ttlMs?: number;\n /**\n * Required on serverless runtimes that terminate background work when the\n * request handler returns (Vercel, Cloudflare). Pass `after` from\n * `next/server` so the producer task outlives the response.\n */\n readonly waitUntil?: (promise: Promise<unknown>) => void;\n readonly onAcquire?: (streamId: string, role: ResumableStreamRole) => void;\n readonly onAppend?: (streamId: string, byteLength: number) => void;\n readonly onFinalize?: (\n streamId: string,\n status: \"done\" | \"error\",\n error?: string,\n ) => void;\n readonly onError?: (streamId: string, error: unknown) => void;\n};\n\nexport interface ResumableStreamContext {\n /** Producer or consumer entrypoint. Atomically elects the role. */\n run(\n streamId: string,\n makeStream: () => ReadableStream<Uint8Array>,\n ): Promise<ReadableStream<Uint8Array>>;\n\n /** Returns `null` when the stream does not exist. */\n resume(streamId: string): Promise<ReadableStream<Uint8Array> | null>;\n\n /** Throws `ResumableStreamError(\"missing\")` when the stream does not exist. */\n requireResume(streamId: string): Promise<ReadableStream<Uint8Array>>;\n\n status(streamId: string): Promise<ResumableStreamStatus>;\n\n delete(streamId: string): Promise<void>;\n}\n\nexport function createResumableStreamContext(\n options: ResumableStreamContextOptions,\n): ResumableStreamContext {\n const { store, waitUntil, onAcquire, onAppend, onFinalize, onError } =\n options;\n const acquireOptions =\n options.ttlMs !== undefined ? { ttlMs: options.ttlMs } : undefined;\n\n return {\n async run(streamId, makeStream) {\n const role = await store.acquire(streamId, acquireOptions);\n onAcquire?.(streamId, role);\n if (role === \"producer\") {\n startProducerTask(store, streamId, makeStream, {\n waitUntil,\n onAppend,\n onFinalize,\n onError,\n });\n }\n return readFromStore(store, streamId);\n },\n\n async resume(streamId) {\n const status = await store.status(streamId);\n if (status === \"missing\") return null;\n return readFromStore(store, streamId);\n },\n\n async requireResume(streamId) {\n const status = await store.status(streamId);\n if (status === \"missing\") {\n throw new ResumableStreamError(\n \"missing\",\n `resumable stream not found: ${streamId}`,\n );\n }\n return readFromStore(store, streamId);\n },\n\n async status(streamId) {\n return store.status(streamId);\n },\n\n async delete(streamId) {\n await store.delete(streamId);\n },\n };\n}\n\ntype ProducerHooks = {\n readonly waitUntil: ((promise: Promise<unknown>) => void) | undefined;\n readonly onAppend:\n | ((streamId: string, byteLength: number) => void)\n | undefined;\n readonly onFinalize:\n | ((streamId: string, status: \"done\" | \"error\", error?: string) => void)\n | undefined;\n readonly onError: ((streamId: string, error: unknown) => void) | undefined;\n};\n\nfunction startProducerTask(\n store: ResumableStreamStore,\n streamId: string,\n makeStream: () => ReadableStream<Uint8Array>,\n hooks: ProducerHooks,\n): void {\n const { waitUntil, onAppend, onFinalize, onError } = hooks;\n const task = (async () => {\n let reader: ReadableStreamDefaultReader<Uint8Array> | undefined;\n let cancelled = false;\n try {\n reader = makeStream().getReader();\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n await store.append(streamId, value);\n onAppend?.(streamId, value.byteLength);\n }\n await store.finalize(streamId, \"done\");\n onFinalize?.(streamId, \"done\");\n } catch (err) {\n cancelled = true;\n onError?.(streamId, err);\n const message = err instanceof Error ? err.message : String(err);\n try {\n await reader?.cancel(err);\n } catch (cancelErr) {\n console.error(\"resumable stream reader cancel failed:\", cancelErr);\n }\n try {\n await store.finalize(streamId, \"error\", message);\n onFinalize?.(streamId, \"error\", message);\n } catch (finalizeErr) {\n console.error(\"resumable stream finalize failed:\", finalizeErr);\n }\n } finally {\n if (!cancelled) reader?.releaseLock();\n }\n })();\n\n if (waitUntil) waitUntil(task);\n task.catch((err) => {\n console.error(\"resumable producer task failed:\", err);\n });\n}\n\nfunction readFromStore(\n store: ResumableStreamStore,\n streamId: string,\n): ReadableStream<Uint8Array> {\n const ac = new AbortController();\n let iterator: AsyncIterator<{ chunk: Uint8Array }> | undefined;\n\n return new ReadableStream<Uint8Array>({\n start() {\n iterator = store.read(streamId, \"\", ac.signal)[Symbol.asyncIterator]();\n },\n async pull(controller) {\n try {\n if (!iterator) return;\n const { done, value } = await iterator.next();\n if (done) {\n controller.close();\n return;\n }\n controller.enqueue(value.chunk);\n } catch (err) {\n // the platform never calls cancel() on errored streams, so unwind\n // the store iterator and abort the signal explicitly.\n ac.abort();\n try {\n await iterator?.return?.();\n } catch {}\n controller.error(err);\n }\n },\n cancel() {\n ac.abort();\n iterator?.return?.().catch(() => {});\n },\n });\n}\n"],"mappings":";;AA4CA,SAAgB,6BACd,SACwB;CACxB,MAAM,EAAE,OAAO,WAAW,WAAW,UAAU,YAAY,YACzD;CACF,MAAM,iBACJ,QAAQ,UAAU,KAAA,IAAY,EAAE,OAAO,QAAQ,MAAM,IAAI,KAAA;CAE3D,OAAO;EACL,MAAM,IAAI,UAAU,YAAY;GAC9B,MAAM,OAAO,MAAM,MAAM,QAAQ,UAAU,cAAc;GACzD,YAAY,UAAU,IAAI;GAC1B,IAAI,SAAS,YACX,kBAAkB,OAAO,UAAU,YAAY;IAC7C;IACA;IACA;IACA;GACF,CAAC;GAEH,OAAO,cAAc,OAAO,QAAQ;EACtC;EAEA,MAAM,OAAO,UAAU;GAErB,IAAI,MADiB,MAAM,OAAO,QAAQ,MAC3B,WAAW,OAAO;GACjC,OAAO,cAAc,OAAO,QAAQ;EACtC;EAEA,MAAM,cAAc,UAAU;GAE5B,IAAI,MADiB,MAAM,OAAO,QAAQ,MAC3B,WACb,MAAM,IAAI,qBACR,WACA,+BAA+B,UACjC;GAEF,OAAO,cAAc,OAAO,QAAQ;EACtC;EAEA,MAAM,OAAO,UAAU;GACrB,OAAO,MAAM,OAAO,QAAQ;EAC9B;EAEA,MAAM,OAAO,UAAU;GACrB,MAAM,MAAM,OAAO,QAAQ;EAC7B;CACF;AACF;AAaA,SAAS,kBACP,OACA,UACA,YACA,OACM;CACN,MAAM,EAAE,WAAW,UAAU,YAAY,YAAY;CACrD,MAAM,QAAQ,YAAY;EACxB,IAAI;EACJ,IAAI,YAAY;EAChB,IAAI;GACF,SAAS,WAAW,EAAE,UAAU;GAChC,OAAO,MAAM;IACX,MAAM,EAAE,MAAM,UAAU,MAAM,OAAO,KAAK;IAC1C,IAAI,MAAM;IACV,MAAM,MAAM,OAAO,UAAU,KAAK;IAClC,WAAW,UAAU,MAAM,UAAU;GACvC;GACA,MAAM,MAAM,SAAS,UAAU,MAAM;GACrC,aAAa,UAAU,MAAM;EAC/B,SAAS,KAAK;GACZ,YAAY;GACZ,UAAU,UAAU,GAAG;GACvB,MAAM,UAAU,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;GAC/D,IAAI;IACF,MAAM,QAAQ,OAAO,GAAG;GAC1B,SAAS,WAAW;IAClB,QAAQ,MAAM,0CAA0C,SAAS;GACnE;GACA,IAAI;IACF,MAAM,MAAM,SAAS,UAAU,SAAS,OAAO;IAC/C,aAAa,UAAU,SAAS,OAAO;GACzC,SAAS,aAAa;IACpB,QAAQ,MAAM,qCAAqC,WAAW;GAChE;EACF,UAAU;GACR,IAAI,CAAC,WAAW,QAAQ,YAAY;EACtC;CACF,GAAG;CAEH,IAAI,WAAW,UAAU,IAAI;CAC7B,KAAK,OAAO,QAAQ;EAClB,QAAQ,MAAM,mCAAmC,GAAG;CACtD,CAAC;AACH;AAEA,SAAS,cACP,OACA,UAC4B;CAC5B,MAAM,KAAK,IAAI,gBAAgB;CAC/B,IAAI;CAEJ,OAAO,IAAI,eAA2B;EACpC,QAAQ;GACN,WAAW,MAAM,KAAK,UAAU,IAAI,GAAG,MAAM,EAAE,OAAO,eAAe;EACvE;EACA,MAAM,KAAK,YAAY;GACrB,IAAI;IACF,IAAI,CAAC,UAAU;IACf,MAAM,EAAE,MAAM,UAAU,MAAM,SAAS,KAAK;IAC5C,IAAI,MAAM;KACR,WAAW,MAAM;KACjB;IACF;IACA,WAAW,QAAQ,MAAM,KAAK;GAChC,SAAS,KAAK;IAGZ,GAAG,MAAM;IACT,IAAI;KACF,MAAM,UAAU,SAAS;IAC3B,QAAQ,CAAC;IACT,WAAW,MAAM,GAAG;GACtB;EACF;EACA,SAAS;GACP,GAAG,MAAM;GACT,UAAU,SAAS,EAAE,YAAY,CAAC,CAAC;EACrC;CACF,CAAC;AACH"}
@@ -1,2 +1,5 @@
1
- export declare const DEFAULT_TTL_MS: number;
1
+ //#region src/resumable/constants.d.ts
2
+ declare const DEFAULT_TTL_MS: number;
3
+ //#endregion
4
+ export { DEFAULT_TTL_MS };
2
5
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/resumable/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,QAAsB,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","names":[],"sources":["../../src/resumable/constants.ts"],"mappings":";cAAa,cAAA"}
@@ -1,2 +1,6 @@
1
- export const DEFAULT_TTL_MS = 24 * 60 * 60 * 1000;
1
+ //#region src/resumable/constants.ts
2
+ const DEFAULT_TTL_MS = 1440 * 60 * 1e3;
3
+ //#endregion
4
+ export { DEFAULT_TTL_MS };
5
+
2
6
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/resumable/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC"}
1
+ {"version":3,"file":"constants.js","names":[],"sources":["../../src/resumable/constants.ts"],"sourcesContent":["export const DEFAULT_TTL_MS = 24 * 60 * 60 * 1000;\n"],"mappings":";AAAA,MAAa,iBAAiB,OAAU,KAAK"}
@@ -1,24 +1,25 @@
1
- import type { AssistantStreamEncoder } from "../core/AssistantStream.js";
2
- import { type AssistantStreamController } from "../core/modules/assistant-stream.js";
3
- import type { ResumableStreamContext } from "./ResumableStreamContext.js";
4
- export declare const RESUMABLE_STREAM_ID_HEADER = "x-resumable-stream-id";
5
- export type CreateResumableAssistantStreamResponseOptions = {
6
- readonly context: ResumableStreamContext;
7
- readonly streamId: string;
8
- readonly callback: (controller: AssistantStreamController) => PromiseLike<void> | void;
9
- /** Defaults to `DataStreamEncoder`. Also consulted for response headers. */
10
- readonly encoder?: () => AssistantStreamEncoder;
11
- readonly headers?: HeadersInit;
1
+ import { AssistantStreamController } from "../core/modules/assistant-stream.js";
2
+ import { AssistantStreamEncoder } from "../core/AssistantStream.js";
3
+ import { ResumableStreamContext } from "./ResumableStreamContext.js";
4
+
5
+ //#region src/resumable/createResumableAssistantStreamResponse.d.ts
6
+ declare const RESUMABLE_STREAM_ID_HEADER = "x-resumable-stream-id";
7
+ type CreateResumableAssistantStreamResponseOptions = {
8
+ readonly context: ResumableStreamContext;
9
+ readonly streamId: string;
10
+ readonly callback: (controller: AssistantStreamController) => PromiseLike<void> | void; /** Defaults to `DataStreamEncoder`. Also consulted for response headers. */
11
+ readonly encoder?: () => AssistantStreamEncoder;
12
+ readonly headers?: HeadersInit;
12
13
  };
13
- export declare function createResumableAssistantStreamResponse(options: CreateResumableAssistantStreamResponseOptions): Promise<Response>;
14
- export type CreateResumeAssistantStreamResponseOptions = {
15
- readonly context: ResumableStreamContext;
16
- readonly streamId: string;
17
- /** Read for `headers` only; the encoder transform is not invoked on resume. */
18
- readonly encoder?: () => AssistantStreamEncoder;
19
- readonly headers?: HeadersInit;
20
- /** Defaults to a 404 JSON response. */
21
- readonly missingResponse?: () => Response;
14
+ declare function createResumableAssistantStreamResponse(options: CreateResumableAssistantStreamResponseOptions): Promise<Response>;
15
+ type CreateResumeAssistantStreamResponseOptions = {
16
+ readonly context: ResumableStreamContext;
17
+ readonly streamId: string; /** Read for `headers` only; the encoder transform is not invoked on resume. */
18
+ readonly encoder?: () => AssistantStreamEncoder;
19
+ readonly headers?: HeadersInit; /** Defaults to a 404 JSON response. */
20
+ readonly missingResponse?: () => Response;
22
21
  };
23
- export declare function createResumeAssistantStreamResponse(options: CreateResumeAssistantStreamResponseOptions): Promise<Response>;
22
+ declare function createResumeAssistantStreamResponse(options: CreateResumeAssistantStreamResponseOptions): Promise<Response>;
23
+ //#endregion
24
+ export { CreateResumableAssistantStreamResponseOptions, CreateResumeAssistantStreamResponseOptions, RESUMABLE_STREAM_ID_HEADER, createResumableAssistantStreamResponse, createResumeAssistantStreamResponse };
24
25
  //# sourceMappingURL=createResumableAssistantStreamResponse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"createResumableAssistantStreamResponse.d.ts","sourceRoot":"","sources":["../../src/resumable/createResumableAssistantStreamResponse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,mCAAgC;AACtE,OAAO,EAEL,KAAK,yBAAyB,EAC/B,4CAAyC;AAE1C,OAAO,KAAK,EAAE,sBAAsB,EAAE,oCAAiC;AAEvE,eAAO,MAAM,0BAA0B,0BAA0B,CAAC;AAElE,MAAM,MAAM,6CAA6C,GAAG;IAC1D,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,EAAE,CACjB,UAAU,EAAE,yBAAyB,KAClC,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC9B,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,sBAAsB,CAAC;IAChD,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC;CAChC,CAAC;AAEF,wBAAsB,sCAAsC,CAC1D,OAAO,EAAE,6CAA6C,GACrD,OAAO,CAAC,QAAQ,CAAC,CAWnB;AAED,MAAM,MAAM,0CAA0C,GAAG;IACvD,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IACzC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,+EAA+E;IAC/E,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,sBAAsB,CAAC;IAChD,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC;IAC/B,uCAAuC;IACvC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,QAAQ,CAAC;CAC3C,CAAC;AAEF,wBAAsB,mCAAmC,CACvD,OAAO,EAAE,0CAA0C,GAClD,OAAO,CAAC,QAAQ,CAAC,CASnB"}
1
+ {"version":3,"file":"createResumableAssistantStreamResponse.d.ts","names":[],"sources":["../../src/resumable/createResumableAssistantStreamResponse.ts"],"mappings":";;;;;cAQa,0BAAA;AAAA,KAED,6CAAA;EAAA,SACD,OAAA,EAAS,sBAAA;EAAA,SACT,QAAA;EAAA,SACA,QAAA,GACP,UAAA,EAAY,yBAAA,KACT,WAAA,eAPgC;EAAA,SAS5B,OAAA,SAAgB,sBAAA;EAAA,SAChB,OAAA,GAAU,WAAA;AAAA;AAAA,iBAGC,sCAAA,CACpB,OAAA,EAAS,6CAAA,GACR,OAAA,CAAQ,QAAA;AAAA,KAaC,0CAAA;EAAA,SACD,OAAA,EAAS,sBAAA;EAAA,SACT,QAAA,UArBgB;EAAA,SAuBhB,OAAA,SAAgB,sBAAA;EAAA,SAChB,OAAA,GAAU,WAAA,EAvBW;EAAA,SAyBrB,eAAA,SAAwB,QAAA;AAAA;AAAA,iBAGb,mCAAA,CACpB,OAAA,EAAS,0CAAA,GACR,OAAA,CAAQ,QAAA"}
@@ -1,40 +1,33 @@
1
- import { createAssistantStream, } from "../core/modules/assistant-stream.js";
2
1
  import { DataStreamEncoder } from "../core/serialization/data-stream/DataStream.js";
3
- export const RESUMABLE_STREAM_ID_HEADER = "x-resumable-stream-id";
4
- export async function createResumableAssistantStreamResponse(options) {
5
- const encoder = (options.encoder ?? (() => new DataStreamEncoder()))();
6
- const stream = await options.context.run(options.streamId, () => {
7
- const aStream = createAssistantStream(options.callback);
8
- return aStream.pipeThrough(encoder);
9
- });
10
- return new Response(stream, {
11
- headers: mergeHeaders(encoder.headers, options.headers, options.streamId),
12
- });
2
+ import { createAssistantStream } from "../core/modules/assistant-stream.js";
3
+ //#region src/resumable/createResumableAssistantStreamResponse.ts
4
+ const RESUMABLE_STREAM_ID_HEADER = "x-resumable-stream-id";
5
+ async function createResumableAssistantStreamResponse(options) {
6
+ const encoder = (options.encoder ?? (() => new DataStreamEncoder()))();
7
+ const stream = await options.context.run(options.streamId, () => {
8
+ return createAssistantStream(options.callback).pipeThrough(encoder);
9
+ });
10
+ return new Response(stream, { headers: mergeHeaders(encoder.headers, options.headers, options.streamId) });
13
11
  }
14
- export async function createResumeAssistantStreamResponse(options) {
15
- const stream = await options.context.resume(options.streamId);
16
- if (!stream) {
17
- return options.missingResponse?.() ?? defaultMissingResponse();
18
- }
19
- const encoder = (options.encoder ?? (() => new DataStreamEncoder()))();
20
- return new Response(stream, {
21
- headers: mergeHeaders(encoder.headers, options.headers, options.streamId),
22
- });
12
+ async function createResumeAssistantStreamResponse(options) {
13
+ const stream = await options.context.resume(options.streamId);
14
+ if (!stream) return options.missingResponse?.() ?? defaultMissingResponse();
15
+ const encoder = (options.encoder ?? (() => new DataStreamEncoder()))();
16
+ return new Response(stream, { headers: mergeHeaders(encoder.headers, options.headers, options.streamId) });
23
17
  }
24
18
  function defaultMissingResponse() {
25
- return new Response(JSON.stringify({ error: "stream not found" }), {
26
- status: 404,
27
- headers: { "Content-Type": "application/json" },
28
- });
19
+ return new Response(JSON.stringify({ error: "stream not found" }), {
20
+ status: 404,
21
+ headers: { "Content-Type": "application/json" }
22
+ });
29
23
  }
30
24
  function mergeHeaders(encoderHeaders, extra, streamId) {
31
- const merged = new Headers(encoderHeaders ?? {});
32
- if (extra) {
33
- for (const [key, value] of new Headers(extra)) {
34
- merged.set(key, value);
35
- }
36
- }
37
- merged.set(RESUMABLE_STREAM_ID_HEADER, streamId);
38
- return merged;
25
+ const merged = new Headers(encoderHeaders ?? {});
26
+ if (extra) for (const [key, value] of new Headers(extra)) merged.set(key, value);
27
+ merged.set(RESUMABLE_STREAM_ID_HEADER, streamId);
28
+ return merged;
39
29
  }
30
+ //#endregion
31
+ export { RESUMABLE_STREAM_ID_HEADER, createResumableAssistantStreamResponse, createResumeAssistantStreamResponse };
32
+
40
33
  //# sourceMappingURL=createResumableAssistantStreamResponse.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createResumableAssistantStreamResponse.js","sourceRoot":"","sources":["../../src/resumable/createResumableAssistantStreamResponse.ts"],"names":[],"mappings":"AACA,OAAO,EACL,qBAAqB,GAEtB,4CAAyC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,wDAAqD;AAGjF,MAAM,CAAC,MAAM,0BAA0B,GAAG,uBAAuB,CAAC;AAalE,MAAM,CAAC,KAAK,UAAU,sCAAsC,CAC1D,OAAsD;IAEtD,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC,EAAE,CAAC;IAEvE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE;QAC9D,MAAM,OAAO,GAAG,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACxD,OAAO,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE;QAC1B,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC;KAC1E,CAAC,CAAC;AACL,CAAC;AAYD,MAAM,CAAC,KAAK,UAAU,mCAAmC,CACvD,OAAmD;IAEnD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9D,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,OAAO,CAAC,eAAe,EAAE,EAAE,IAAI,sBAAsB,EAAE,CAAC;IACjE,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC,EAAE,CAAC;IACvE,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE;QAC1B,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC;KAC1E,CAAC,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB;IAC7B,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,EAAE;QACjE,MAAM,EAAE,GAAG;QACX,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;KAChD,CAAC,CAAC;AACL,CAAC;AAED,SAAS,YAAY,CACnB,cAAmC,EACnC,KAA8B,EAC9B,QAAgB;IAEhB,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;IACjD,IAAI,KAAK,EAAE,CAAC;QACV,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9C,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IACD,MAAM,CAAC,GAAG,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAC;IACjD,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"createResumableAssistantStreamResponse.js","names":[],"sources":["../../src/resumable/createResumableAssistantStreamResponse.ts"],"sourcesContent":["import type { AssistantStreamEncoder } from \"../core/AssistantStream\";\nimport {\n createAssistantStream,\n type AssistantStreamController,\n} from \"../core/modules/assistant-stream\";\nimport { DataStreamEncoder } from \"../core/serialization/data-stream/DataStream\";\nimport type { ResumableStreamContext } from \"./ResumableStreamContext\";\n\nexport const RESUMABLE_STREAM_ID_HEADER = \"x-resumable-stream-id\";\n\nexport type CreateResumableAssistantStreamResponseOptions = {\n readonly context: ResumableStreamContext;\n readonly streamId: string;\n readonly callback: (\n controller: AssistantStreamController,\n ) => PromiseLike<void> | void;\n /** Defaults to `DataStreamEncoder`. Also consulted for response headers. */\n readonly encoder?: () => AssistantStreamEncoder;\n readonly headers?: HeadersInit;\n};\n\nexport async function createResumableAssistantStreamResponse(\n options: CreateResumableAssistantStreamResponseOptions,\n): Promise<Response> {\n const encoder = (options.encoder ?? (() => new DataStreamEncoder()))();\n\n const stream = await options.context.run(options.streamId, () => {\n const aStream = createAssistantStream(options.callback);\n return aStream.pipeThrough(encoder);\n });\n\n return new Response(stream, {\n headers: mergeHeaders(encoder.headers, options.headers, options.streamId),\n });\n}\n\nexport type CreateResumeAssistantStreamResponseOptions = {\n readonly context: ResumableStreamContext;\n readonly streamId: string;\n /** Read for `headers` only; the encoder transform is not invoked on resume. */\n readonly encoder?: () => AssistantStreamEncoder;\n readonly headers?: HeadersInit;\n /** Defaults to a 404 JSON response. */\n readonly missingResponse?: () => Response;\n};\n\nexport async function createResumeAssistantStreamResponse(\n options: CreateResumeAssistantStreamResponseOptions,\n): Promise<Response> {\n const stream = await options.context.resume(options.streamId);\n if (!stream) {\n return options.missingResponse?.() ?? defaultMissingResponse();\n }\n const encoder = (options.encoder ?? (() => new DataStreamEncoder()))();\n return new Response(stream, {\n headers: mergeHeaders(encoder.headers, options.headers, options.streamId),\n });\n}\n\nfunction defaultMissingResponse(): Response {\n return new Response(JSON.stringify({ error: \"stream not found\" }), {\n status: 404,\n headers: { \"Content-Type\": \"application/json\" },\n });\n}\n\nfunction mergeHeaders(\n encoderHeaders: Headers | undefined,\n extra: HeadersInit | undefined,\n streamId: string,\n): Headers {\n const merged = new Headers(encoderHeaders ?? {});\n if (extra) {\n for (const [key, value] of new Headers(extra)) {\n merged.set(key, value);\n }\n }\n merged.set(RESUMABLE_STREAM_ID_HEADER, streamId);\n return merged;\n}\n"],"mappings":";;;AAQA,MAAa,6BAA6B;AAa1C,eAAsB,uCACpB,SACmB;CACnB,MAAM,WAAW,QAAQ,kBAAkB,IAAI,kBAAkB,IAAI;CAErE,MAAM,SAAS,MAAM,QAAQ,QAAQ,IAAI,QAAQ,gBAAgB;EAE/D,OADgB,sBAAsB,QAAQ,QACjC,EAAE,YAAY,OAAO;CACpC,CAAC;CAED,OAAO,IAAI,SAAS,QAAQ,EAC1B,SAAS,aAAa,QAAQ,SAAS,QAAQ,SAAS,QAAQ,QAAQ,EAC1E,CAAC;AACH;AAYA,eAAsB,oCACpB,SACmB;CACnB,MAAM,SAAS,MAAM,QAAQ,QAAQ,OAAO,QAAQ,QAAQ;CAC5D,IAAI,CAAC,QACH,OAAO,QAAQ,kBAAkB,KAAK,uBAAuB;CAE/D,MAAM,WAAW,QAAQ,kBAAkB,IAAI,kBAAkB,IAAI;CACrE,OAAO,IAAI,SAAS,QAAQ,EAC1B,SAAS,aAAa,QAAQ,SAAS,QAAQ,SAAS,QAAQ,QAAQ,EAC1E,CAAC;AACH;AAEA,SAAS,yBAAmC;CAC1C,OAAO,IAAI,SAAS,KAAK,UAAU,EAAE,OAAO,mBAAmB,CAAC,GAAG;EACjE,QAAQ;EACR,SAAS,EAAE,gBAAgB,mBAAmB;CAChD,CAAC;AACH;AAEA,SAAS,aACP,gBACA,OACA,UACS;CACT,MAAM,SAAS,IAAI,QAAQ,kBAAkB,CAAC,CAAC;CAC/C,IAAI,OACF,KAAK,MAAM,CAAC,KAAK,UAAU,IAAI,QAAQ,KAAK,GAC1C,OAAO,IAAI,KAAK,KAAK;CAGzB,OAAO,IAAI,4BAA4B,QAAQ;CAC/C,OAAO;AACT"}
@@ -1,7 +1,10 @@
1
- export type ResumableStreamErrorCode = "missing" | "exists" | "finalized" | "invalid-id";
2
- export declare class ResumableStreamError extends Error {
3
- readonly code: ResumableStreamErrorCode;
4
- constructor(code: ResumableStreamErrorCode, message: string);
1
+ //#region src/resumable/errors.d.ts
2
+ type ResumableStreamErrorCode = "missing" | "exists" | "finalized" | "invalid-id";
3
+ declare class ResumableStreamError extends Error {
4
+ readonly code: ResumableStreamErrorCode;
5
+ constructor(code: ResumableStreamErrorCode, message: string);
5
6
  }
6
- export declare function validateStreamId(streamId: string): void;
7
+ declare function validateStreamId(streamId: string): void;
8
+ //#endregion
9
+ export { ResumableStreamError, ResumableStreamErrorCode, validateStreamId };
7
10
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/resumable/errors.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,wBAAwB,GAChC,SAAS,GACT,QAAQ,GACR,WAAW,GACX,YAAY,CAAC;AAEjB,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,IAAI,EAAE,wBAAwB,CAAC;gBAE5B,IAAI,EAAE,wBAAwB,EAAE,OAAO,EAAE,MAAM;CAK5D;AAID,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAOvD"}
1
+ {"version":3,"file":"errors.d.ts","names":[],"sources":["../../src/resumable/errors.ts"],"mappings":";KAAY,wBAAA;AAAA,cAMC,oBAAA,SAA6B,KAAA;EAAA,SAC/B,IAAA,EAAM,wBAAA;cAEH,IAAA,EAAM,wBAAA,EAA0B,OAAA;AAAA;AAAA,iBAS9B,gBAAA,CAAiB,QAAgB"}
@@ -1,15 +1,17 @@
1
- export class ResumableStreamError extends Error {
2
- code;
3
- constructor(code, message) {
4
- super(message);
5
- this.name = "ResumableStreamError";
6
- this.code = code;
7
- }
8
- }
1
+ //#region src/resumable/errors.ts
2
+ var ResumableStreamError = class extends Error {
3
+ code;
4
+ constructor(code, message) {
5
+ super(message);
6
+ this.name = "ResumableStreamError";
7
+ this.code = code;
8
+ }
9
+ };
9
10
  const STREAM_ID_PATTERN = /^[A-Za-z0-9_.:-]{1,256}$/;
10
- export function validateStreamId(streamId) {
11
- if (!STREAM_ID_PATTERN.test(streamId)) {
12
- throw new ResumableStreamError("invalid-id", `Invalid streamId: ${streamId} (must match ${STREAM_ID_PATTERN})`);
13
- }
11
+ function validateStreamId(streamId) {
12
+ if (!STREAM_ID_PATTERN.test(streamId)) throw new ResumableStreamError("invalid-id", `Invalid streamId: ${streamId} (must match ${STREAM_ID_PATTERN})`);
14
13
  }
14
+ //#endregion
15
+ export { ResumableStreamError, validateStreamId };
16
+
15
17
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/resumable/errors.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IACpC,IAAI,CAA2B;IAExC,YAAY,IAA8B,EAAE,OAAe;QACzD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,iBAAiB,GAAG,0BAA0B,CAAC;AAErD,MAAM,UAAU,gBAAgB,CAAC,QAAgB;IAC/C,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACtC,MAAM,IAAI,oBAAoB,CAC5B,YAAY,EACZ,qBAAqB,QAAQ,gBAAgB,iBAAiB,GAAG,CAClE,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"errors.js","names":[],"sources":["../../src/resumable/errors.ts"],"sourcesContent":["export type ResumableStreamErrorCode =\n | \"missing\"\n | \"exists\"\n | \"finalized\"\n | \"invalid-id\";\n\nexport class ResumableStreamError extends Error {\n readonly code: ResumableStreamErrorCode;\n\n constructor(code: ResumableStreamErrorCode, message: string) {\n super(message);\n this.name = \"ResumableStreamError\";\n this.code = code;\n }\n}\n\nconst STREAM_ID_PATTERN = /^[A-Za-z0-9_.:-]{1,256}$/;\n\nexport function validateStreamId(streamId: string): void {\n if (!STREAM_ID_PATTERN.test(streamId)) {\n throw new ResumableStreamError(\n \"invalid-id\",\n `Invalid streamId: ${streamId} (must match ${STREAM_ID_PATTERN})`,\n );\n }\n}\n"],"mappings":";AAMA,IAAa,uBAAb,cAA0C,MAAM;CAC9C;CAEA,YAAY,MAAgC,SAAiB;EAC3D,MAAM,OAAO;EACb,KAAK,OAAO;EACZ,KAAK,OAAO;CACd;AACF;AAEA,MAAM,oBAAoB;AAE1B,SAAgB,iBAAiB,UAAwB;CACvD,IAAI,CAAC,kBAAkB,KAAK,QAAQ,GAClC,MAAM,IAAI,qBACR,cACA,qBAAqB,SAAS,eAAe,kBAAkB,EACjE;AAEJ"}
@@ -1,7 +1,7 @@
1
- export type { ResumableStreamStore, ResumableStreamRole, ResumableStreamStatus, ResumableStreamEntry, ResumableStreamAcquireOptions, } from "./types.js";
2
- export { ResumableStreamError, type ResumableStreamErrorCode, } from "./errors.js";
3
- export { createResumableStreamContext, type ResumableStreamContext, type ResumableStreamContextOptions, } from "./ResumableStreamContext.js";
4
- export { createResumableAssistantStreamResponse, createResumeAssistantStreamResponse, RESUMABLE_STREAM_ID_HEADER, type CreateResumableAssistantStreamResponseOptions, type CreateResumeAssistantStreamResponseOptions, } from "./createResumableAssistantStreamResponse.js";
5
- export { createInMemoryResumableStreamStore, type InMemoryResumableStreamStoreOptions, } from "./stores/InMemoryResumableStreamStore.js";
6
- export type { RedisLikeClient, RedisResumableStreamStoreOptions, } from "./stores/redis-impl.js";
7
- //# sourceMappingURL=index.d.ts.map
1
+ import { ResumableStreamAcquireOptions, ResumableStreamEntry, ResumableStreamRole, ResumableStreamStatus, ResumableStreamStore } from "./types.js";
2
+ import { ResumableStreamContext, ResumableStreamContextOptions, createResumableStreamContext } from "./ResumableStreamContext.js";
3
+ import { CreateResumableAssistantStreamResponseOptions, CreateResumeAssistantStreamResponseOptions, RESUMABLE_STREAM_ID_HEADER, createResumableAssistantStreamResponse, createResumeAssistantStreamResponse } from "./createResumableAssistantStreamResponse.js";
4
+ import { ResumableStreamError, ResumableStreamErrorCode } from "./errors.js";
5
+ import { InMemoryResumableStreamStoreOptions, createInMemoryResumableStreamStore } from "./stores/InMemoryResumableStreamStore.js";
6
+ import { RedisLikeClient, RedisResumableStreamStoreOptions } from "./stores/redis-impl.js";
7
+ export { type CreateResumableAssistantStreamResponseOptions, type CreateResumeAssistantStreamResponseOptions, type InMemoryResumableStreamStoreOptions, RESUMABLE_STREAM_ID_HEADER, type RedisLikeClient, type RedisResumableStreamStoreOptions, type ResumableStreamAcquireOptions, type ResumableStreamContext, type ResumableStreamContextOptions, type ResumableStreamEntry, ResumableStreamError, type ResumableStreamErrorCode, type ResumableStreamRole, type ResumableStreamStatus, type ResumableStreamStore, createInMemoryResumableStreamStore, createResumableAssistantStreamResponse, createResumableStreamContext, createResumeAssistantStreamResponse };