assistant-stream 0.1.7 → 0.2.0

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 (251) hide show
  1. package/ai-sdk/package.json +2 -2
  2. package/dist/ai-sdk/index.js +7 -34
  3. package/dist/ai-sdk/index.js.map +1 -1
  4. package/dist/ai-sdk/language-model.js +5 -31
  5. package/dist/ai-sdk/language-model.js.map +1 -1
  6. package/dist/ai-sdk.js +4 -32
  7. package/dist/ai-sdk.js.map +1 -1
  8. package/dist/core/AssistantStream.js +3 -29
  9. package/dist/core/AssistantStream.js.map +1 -1
  10. package/dist/core/AssistantStreamChunk.js +0 -18
  11. package/dist/core/AssistantStreamChunk.js.map +1 -1
  12. package/dist/core/accumulators/AssistantMessageStream.js +9 -35
  13. package/dist/core/accumulators/AssistantMessageStream.js.map +1 -1
  14. package/dist/core/accumulators/assistant-message-accumulator.js +22 -48
  15. package/dist/core/accumulators/assistant-message-accumulator.js.map +1 -1
  16. package/dist/core/index.js +16 -46
  17. package/dist/core/index.js.map +1 -1
  18. package/dist/core/modules/assistant-stream.js +29 -52
  19. package/dist/core/modules/assistant-stream.js.map +1 -1
  20. package/dist/core/modules/text.js +6 -33
  21. package/dist/core/modules/text.js.map +1 -1
  22. package/dist/core/modules/tool-call.js +8 -35
  23. package/dist/core/modules/tool-call.js.map +1 -1
  24. package/dist/core/serialization/PlainText.js +9 -36
  25. package/dist/core/serialization/PlainText.js.map +1 -1
  26. package/dist/core/serialization/data-stream/DataStream.js +57 -79
  27. package/dist/core/serialization/data-stream/DataStream.js.map +1 -1
  28. package/dist/core/serialization/data-stream/chunk-types.js +2 -28
  29. package/dist/core/serialization/data-stream/chunk-types.js.map +1 -1
  30. package/dist/core/serialization/data-stream/serialization.js +6 -33
  31. package/dist/core/serialization/data-stream/serialization.js.map +1 -1
  32. package/dist/core/tool/ToolCallReader.js +30 -55
  33. package/dist/core/tool/ToolCallReader.js.map +1 -1
  34. package/dist/core/tool/ToolExecutionStream.js +18 -52
  35. package/dist/core/tool/ToolExecutionStream.js.map +1 -1
  36. package/dist/core/tool/ToolResponse.js +5 -31
  37. package/dist/core/tool/ToolResponse.js.map +1 -1
  38. package/dist/core/tool/index.js +9 -35
  39. package/dist/core/tool/index.js.map +1 -1
  40. package/dist/core/tool/tool-types.js +0 -18
  41. package/dist/core/tool/tool-types.js.map +1 -1
  42. package/dist/core/tool/toolResultStream.js +8 -35
  43. package/dist/core/tool/toolResultStream.js.map +1 -1
  44. package/dist/core/tool/type-path-utils.js +0 -18
  45. package/dist/core/tool/type-path-utils.js.map +1 -1
  46. package/dist/core/utils/Counter.js +4 -30
  47. package/dist/core/utils/Counter.js.map +1 -1
  48. package/dist/core/utils/generateId.js +4 -30
  49. package/dist/core/utils/generateId.js.map +1 -1
  50. package/dist/core/utils/stream/AssistantMetaTransformStream.js +4 -30
  51. package/dist/core/utils/stream/AssistantMetaTransformStream.js.map +1 -1
  52. package/dist/core/utils/stream/AssistantTransformStream.js +8 -32
  53. package/dist/core/utils/stream/AssistantTransformStream.js.map +1 -1
  54. package/dist/core/utils/stream/LineDecoderStream.js +4 -30
  55. package/dist/core/utils/stream/LineDecoderStream.js.map +1 -1
  56. package/dist/core/utils/stream/PipeableTransformStream.js +4 -30
  57. package/dist/core/utils/stream/PipeableTransformStream.js.map +1 -1
  58. package/dist/core/utils/stream/UnderlyingReadable.js +0 -18
  59. package/dist/core/utils/stream/UnderlyingReadable.js.map +1 -1
  60. package/dist/core/utils/stream/merge.js +5 -31
  61. package/dist/core/utils/stream/merge.js.map +1 -1
  62. package/dist/core/utils/stream/path-utils.js +10 -38
  63. package/dist/core/utils/stream/path-utils.js.map +1 -1
  64. package/dist/core/utils/types.js +0 -18
  65. package/dist/core/utils/types.js.map +1 -1
  66. package/dist/core/utils/withPromiseOrValue.js +2 -28
  67. package/dist/core/utils/withPromiseOrValue.js.map +1 -1
  68. package/dist/index.js +1 -24
  69. package/dist/index.js.map +1 -1
  70. package/dist/utils/AsyncIterableStream.js +2 -28
  71. package/dist/utils/AsyncIterableStream.js.map +1 -1
  72. package/dist/utils/json/fix-json.js +2 -28
  73. package/dist/utils/json/fix-json.js.map +1 -1
  74. package/dist/utils/json/is-json.js +2 -30
  75. package/dist/utils/json/is-json.js.map +1 -1
  76. package/dist/utils/json/json-value.js +0 -18
  77. package/dist/utils/json/json-value.js.map +1 -1
  78. package/dist/utils/json/parse-partial-json-object.js +12 -50
  79. package/dist/utils/json/parse-partial-json-object.js.map +1 -1
  80. package/dist/utils/promiseWithResolvers.js +3 -29
  81. package/dist/utils/promiseWithResolvers.js.map +1 -1
  82. package/dist/utils.js +9 -32
  83. package/dist/utils.js.map +1 -1
  84. package/package.json +10 -28
  85. package/utils/package.json +1 -1
  86. package/dist/ai-sdk/index.d.ts +0 -5
  87. package/dist/ai-sdk/index.d.ts.map +0 -1
  88. package/dist/ai-sdk/index.mjs +0 -173
  89. package/dist/ai-sdk/index.mjs.map +0 -1
  90. package/dist/ai-sdk/language-model.d.ts +0 -6
  91. package/dist/ai-sdk/language-model.d.ts.map +0 -1
  92. package/dist/ai-sdk/language-model.mjs +0 -106
  93. package/dist/ai-sdk/language-model.mjs.map +0 -1
  94. package/dist/ai-sdk.d.ts +0 -3
  95. package/dist/ai-sdk.d.ts.map +0 -1
  96. package/dist/ai-sdk.mjs +0 -7
  97. package/dist/ai-sdk.mjs.map +0 -1
  98. package/dist/core/AssistantStream.d.ts +0 -12
  99. package/dist/core/AssistantStream.d.ts.map +0 -1
  100. package/dist/core/AssistantStream.mjs +0 -21
  101. package/dist/core/AssistantStream.mjs.map +0 -1
  102. package/dist/core/AssistantStreamChunk.d.ts +0 -64
  103. package/dist/core/AssistantStreamChunk.d.ts.map +0 -1
  104. package/dist/core/AssistantStreamChunk.mjs +0 -1
  105. package/dist/core/AssistantStreamChunk.mjs.map +0 -1
  106. package/dist/core/accumulators/AssistantMessageStream.d.ts +0 -13
  107. package/dist/core/accumulators/AssistantMessageStream.d.ts.map +0 -1
  108. package/dist/core/accumulators/AssistantMessageStream.mjs +0 -54
  109. package/dist/core/accumulators/AssistantMessageStream.mjs.map +0 -1
  110. package/dist/core/accumulators/assistant-message-accumulator.d.ts +0 -8
  111. package/dist/core/accumulators/assistant-message-accumulator.d.ts.map +0 -1
  112. package/dist/core/accumulators/assistant-message-accumulator.mjs +0 -309
  113. package/dist/core/accumulators/assistant-message-accumulator.mjs.map +0 -1
  114. package/dist/core/index.d.ts +0 -11
  115. package/dist/core/index.d.ts.map +0 -1
  116. package/dist/core/index.mjs +0 -26
  117. package/dist/core/index.mjs.map +0 -1
  118. package/dist/core/modules/assistant-stream.d.ts +0 -31
  119. package/dist/core/modules/assistant-stream.d.ts.map +0 -1
  120. package/dist/core/modules/assistant-stream.mjs +0 -202
  121. package/dist/core/modules/assistant-stream.mjs.map +0 -1
  122. package/dist/core/modules/text.d.ts +0 -9
  123. package/dist/core/modules/text.d.ts.map +0 -1
  124. package/dist/core/modules/text.mjs +0 -52
  125. package/dist/core/modules/text.mjs.map +0 -1
  126. package/dist/core/modules/tool-call.d.ts +0 -13
  127. package/dist/core/modules/tool-call.d.ts.map +0 -1
  128. package/dist/core/modules/tool-call.mjs +0 -84
  129. package/dist/core/modules/tool-call.mjs.map +0 -1
  130. package/dist/core/serialization/PlainText.d.ts +0 -11
  131. package/dist/core/serialization/PlainText.d.ts.map +0 -1
  132. package/dist/core/serialization/PlainText.mjs +0 -44
  133. package/dist/core/serialization/PlainText.mjs.map +0 -1
  134. package/dist/core/serialization/data-stream/DataStream.d.ts +0 -11
  135. package/dist/core/serialization/data-stream/DataStream.d.ts.map +0 -1
  136. package/dist/core/serialization/data-stream/DataStream.mjs +0 -311
  137. package/dist/core/serialization/data-stream/DataStream.mjs.map +0 -1
  138. package/dist/core/serialization/data-stream/chunk-types.d.ts +0 -86
  139. package/dist/core/serialization/data-stream/chunk-types.d.ts.map +0 -1
  140. package/dist/core/serialization/data-stream/chunk-types.mjs +0 -24
  141. package/dist/core/serialization/data-stream/chunk-types.mjs.map +0 -1
  142. package/dist/core/serialization/data-stream/serialization.d.ts +0 -8
  143. package/dist/core/serialization/data-stream/serialization.d.ts.map +0 -1
  144. package/dist/core/serialization/data-stream/serialization.mjs +0 -30
  145. package/dist/core/serialization/data-stream/serialization.mjs.map +0 -1
  146. package/dist/core/tool/ToolCallReader.d.ts +0 -33
  147. package/dist/core/tool/ToolCallReader.d.ts.map +0 -1
  148. package/dist/core/tool/ToolCallReader.mjs +0 -315
  149. package/dist/core/tool/ToolCallReader.mjs.map +0 -1
  150. package/dist/core/tool/ToolExecutionStream.d.ts +0 -24
  151. package/dist/core/tool/ToolExecutionStream.d.ts.map +0 -1
  152. package/dist/core/tool/ToolExecutionStream.mjs +0 -132
  153. package/dist/core/tool/ToolExecutionStream.mjs.map +0 -1
  154. package/dist/core/tool/ToolResponse.d.ts +0 -17
  155. package/dist/core/tool/ToolResponse.d.ts.map +0 -1
  156. package/dist/core/tool/ToolResponse.mjs +0 -22
  157. package/dist/core/tool/ToolResponse.mjs.map +0 -1
  158. package/dist/core/tool/index.d.ts +0 -6
  159. package/dist/core/tool/index.d.ts.map +0 -1
  160. package/dist/core/tool/index.mjs +0 -14
  161. package/dist/core/tool/index.mjs.map +0 -1
  162. package/dist/core/tool/tool-types.d.ts +0 -76
  163. package/dist/core/tool/tool-types.d.ts.map +0 -1
  164. package/dist/core/tool/tool-types.mjs +0 -1
  165. package/dist/core/tool/tool-types.mjs.map +0 -1
  166. package/dist/core/tool/toolResultStream.d.ts +0 -6
  167. package/dist/core/tool/toolResultStream.d.ts.map +0 -1
  168. package/dist/core/tool/toolResultStream.mjs +0 -78
  169. package/dist/core/tool/toolResultStream.mjs.map +0 -1
  170. package/dist/core/tool/type-path-utils.d.ts +0 -23
  171. package/dist/core/tool/type-path-utils.d.ts.map +0 -1
  172. package/dist/core/tool/type-path-utils.mjs +0 -1
  173. package/dist/core/tool/type-path-utils.mjs.map +0 -1
  174. package/dist/core/utils/Counter.d.ts +0 -5
  175. package/dist/core/utils/Counter.d.ts.map +0 -1
  176. package/dist/core/utils/Counter.mjs +0 -11
  177. package/dist/core/utils/Counter.mjs.map +0 -1
  178. package/dist/core/utils/generateId.d.ts +0 -2
  179. package/dist/core/utils/generateId.d.ts.map +0 -1
  180. package/dist/core/utils/generateId.mjs +0 -10
  181. package/dist/core/utils/generateId.mjs.map +0 -1
  182. package/dist/core/utils/stream/AssistantMetaTransformStream.d.ts +0 -20
  183. package/dist/core/utils/stream/AssistantMetaTransformStream.d.ts.map +0 -1
  184. package/dist/core/utils/stream/AssistantMetaTransformStream.mjs +0 -44
  185. package/dist/core/utils/stream/AssistantMetaTransformStream.mjs.map +0 -1
  186. package/dist/core/utils/stream/AssistantTransformStream.d.ts +0 -15
  187. package/dist/core/utils/stream/AssistantTransformStream.d.ts.map +0 -1
  188. package/dist/core/utils/stream/AssistantTransformStream.mjs +0 -46
  189. package/dist/core/utils/stream/AssistantTransformStream.mjs.map +0 -1
  190. package/dist/core/utils/stream/LineDecoderStream.d.ts +0 -5
  191. package/dist/core/utils/stream/LineDecoderStream.d.ts.map +0 -1
  192. package/dist/core/utils/stream/LineDecoderStream.mjs +0 -27
  193. package/dist/core/utils/stream/LineDecoderStream.mjs.map +0 -1
  194. package/dist/core/utils/stream/PipeableTransformStream.d.ts +0 -4
  195. package/dist/core/utils/stream/PipeableTransformStream.d.ts.map +0 -1
  196. package/dist/core/utils/stream/PipeableTransformStream.mjs +0 -15
  197. package/dist/core/utils/stream/PipeableTransformStream.mjs.map +0 -1
  198. package/dist/core/utils/stream/UnderlyingReadable.d.ts +0 -6
  199. package/dist/core/utils/stream/UnderlyingReadable.d.ts.map +0 -1
  200. package/dist/core/utils/stream/UnderlyingReadable.mjs +0 -1
  201. package/dist/core/utils/stream/UnderlyingReadable.mjs.map +0 -1
  202. package/dist/core/utils/stream/merge.d.ts +0 -9
  203. package/dist/core/utils/stream/merge.d.ts.map +0 -1
  204. package/dist/core/utils/stream/merge.mjs +0 -85
  205. package/dist/core/utils/stream/merge.mjs.map +0 -1
  206. package/dist/core/utils/stream/path-utils.d.ts +0 -12
  207. package/dist/core/utils/stream/path-utils.d.ts.map +0 -1
  208. package/dist/core/utils/stream/path-utils.mjs +0 -61
  209. package/dist/core/utils/stream/path-utils.mjs.map +0 -1
  210. package/dist/core/utils/types.d.ts +0 -102
  211. package/dist/core/utils/types.d.ts.map +0 -1
  212. package/dist/core/utils/types.mjs +0 -1
  213. package/dist/core/utils/types.mjs.map +0 -1
  214. package/dist/core/utils/withPromiseOrValue.d.ts +0 -2
  215. package/dist/core/utils/withPromiseOrValue.d.ts.map +0 -1
  216. package/dist/core/utils/withPromiseOrValue.mjs +0 -17
  217. package/dist/core/utils/withPromiseOrValue.mjs.map +0 -1
  218. package/dist/index.d.ts +0 -2
  219. package/dist/index.d.ts.map +0 -1
  220. package/dist/index.mjs +0 -3
  221. package/dist/index.mjs.map +0 -1
  222. package/dist/utils/AsyncIterableStream.d.ts +0 -3
  223. package/dist/utils/AsyncIterableStream.d.ts.map +0 -1
  224. package/dist/utils/AsyncIterableStream.mjs +0 -21
  225. package/dist/utils/AsyncIterableStream.mjs.map +0 -1
  226. package/dist/utils/json/fix-json.d.ts +0 -2
  227. package/dist/utils/json/fix-json.d.ts.map +0 -1
  228. package/dist/utils/json/fix-json.mjs +0 -362
  229. package/dist/utils/json/fix-json.mjs.map +0 -1
  230. package/dist/utils/json/is-json.d.ts +0 -5
  231. package/dist/utils/json/is-json.d.ts.map +0 -1
  232. package/dist/utils/json/is-json.mjs +0 -29
  233. package/dist/utils/json/is-json.mjs.map +0 -1
  234. package/dist/utils/json/json-value.d.ts +0 -6
  235. package/dist/utils/json/json-value.d.ts.map +0 -1
  236. package/dist/utils/json/json-value.mjs +0 -1
  237. package/dist/utils/json/json-value.mjs.map +0 -1
  238. package/dist/utils/json/parse-partial-json-object.d.ts +0 -14
  239. package/dist/utils/json/parse-partial-json-object.d.ts.map +0 -1
  240. package/dist/utils/json/parse-partial-json-object.mjs +0 -65
  241. package/dist/utils/json/parse-partial-json-object.mjs.map +0 -1
  242. package/dist/utils/json/parse-partial-json-object.test.d.ts +0 -2
  243. package/dist/utils/json/parse-partial-json-object.test.d.ts.map +0 -1
  244. package/dist/utils/promiseWithResolvers.d.ts +0 -6
  245. package/dist/utils/promiseWithResolvers.d.ts.map +0 -1
  246. package/dist/utils/promiseWithResolvers.mjs +0 -15
  247. package/dist/utils/promiseWithResolvers.mjs.map +0 -1
  248. package/dist/utils.d.ts +0 -4
  249. package/dist/utils.d.ts.map +0 -1
  250. package/dist/utils.mjs +0 -14
  251. package/dist/utils.mjs.map +0 -1
@@ -1,76 +0,0 @@
1
- import { JSONSchema7 } from "json-schema";
2
- import { TypeAtPath, TypePath } from "./type-path-utils";
3
- import { DeepPartial } from "ai";
4
- import { AsyncIterableStream } from "../../utils";
5
- import type { StandardSchemaV1 } from "@standard-schema/spec";
6
- import { ToolResponse } from "./ToolResponse";
7
- /**
8
- * Interface for reading tool call arguments from a stream, which are
9
- * generated by a language learning model (LLM). Provides methods to
10
- * retrieve specific values, partial streams, or complete items from
11
- * an array, based on a specified path.
12
- *
13
- * @template TArgs The type of arguments being read.
14
- */
15
- export interface ToolCallArgsReader<TArgs> {
16
- /**
17
- * Returns a promise that will resolve to the value at the given path,
18
- * as soon as that path is generated by the LLM.
19
- *
20
- * @param fieldPath An array of object keys or array indices.
21
- */
22
- get<PathT extends TypePath<TArgs>>(...fieldPath: PathT): Promise<TypeAtPath<TArgs, PathT>>;
23
- /**
24
- * Returns a stream that will emit partial values at the given path,
25
- * as they are generated by the LLM.
26
- *
27
- * @param fieldPath An array of object keys or array indices.
28
- */
29
- streamValues<PathT extends TypePath<TArgs>>(...fieldPath: PathT): AsyncIterableStream<DeepPartial<TypeAtPath<TArgs, PathT>>>;
30
- /**
31
- * Returns a stream that will emit partial text at the given path,
32
- * as they are generated by the LLM.
33
- *
34
- * @param fieldPath An array of object keys or array indices.
35
- */
36
- streamText<PathT extends TypePath<TArgs>>(...fieldPath: PathT): TypeAtPath<TArgs, PathT> extends string & infer U ? AsyncIterableStream<U> : never;
37
- /**
38
- * Returns a stream that will emit complete items in the array
39
- * at the given path, as they are generated by the LLM.
40
- *
41
- * @param fieldPath An array of object keys or array indices.
42
- */
43
- forEach<PathT extends TypePath<TArgs>>(...fieldPath: PathT): TypeAtPath<TArgs, PathT> extends Array<infer U> ? AsyncIterableStream<U> : never;
44
- }
45
- export interface ToolCallResponseReader<TResult> {
46
- get: () => Promise<ToolResponse<TResult>>;
47
- }
48
- export interface ToolCallReader<TArgs, TResult> {
49
- args: ToolCallArgsReader<TArgs>;
50
- response: ToolCallResponseReader<TResult>;
51
- /**
52
- * @deprecated Deprecated. Use `response.get().result` instead.
53
- */
54
- result: {
55
- get: () => Promise<TResult>;
56
- };
57
- }
58
- type ToolExecutionContext = {
59
- toolCallId: string;
60
- abortSignal: AbortSignal;
61
- };
62
- export type ToolExecuteFunction<TArgs, TResult> = (args: TArgs, context: ToolExecutionContext) => TResult | Promise<TResult>;
63
- export type ToolStreamCallFunction<TArgs, TResult> = (reader: ToolCallReader<TArgs, TResult>, context: ToolExecutionContext) => void;
64
- type OnSchemaValidationErrorFunction<TResult> = ToolExecuteFunction<unknown, TResult>;
65
- export type Tool<TArgs = unknown, TResult = unknown> = {
66
- description?: string | undefined;
67
- parameters: StandardSchemaV1<TArgs> | JSONSchema7;
68
- execute?: ToolExecuteFunction<TArgs, TResult>;
69
- /**
70
- * @deprecated Experimental, API may change.
71
- */
72
- streamCall?: ToolStreamCallFunction<TArgs, TResult>;
73
- experimental_onSchemaValidationError?: OnSchemaValidationErrorFunction<TResult>;
74
- };
75
- export {};
76
- //# sourceMappingURL=tool-types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tool-types.d.ts","sourceRoot":"","sources":["../../../src/core/tool/tool-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB,CAAC,KAAK;IACvC;;;;;OAKG;IACH,GAAG,CAAC,KAAK,SAAS,QAAQ,CAAC,KAAK,CAAC,EAC/B,GAAG,SAAS,EAAE,KAAK,GAClB,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IAErC;;;;;OAKG;IACH,YAAY,CAAC,KAAK,SAAS,QAAQ,CAAC,KAAK,CAAC,EACxC,GAAG,SAAS,EAAE,KAAK,GAClB,mBAAmB,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAE9D;;;;;OAKG;IACH,UAAU,CAAC,KAAK,SAAS,QAAQ,CAAC,KAAK,CAAC,EACtC,GAAG,SAAS,EAAE,KAAK,GAClB,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,MAAM,GAAG,MAAM,CAAC,GAChD,mBAAmB,CAAC,CAAC,CAAC,GACtB,KAAK,CAAC;IAEV;;;;;OAKG;IACH,OAAO,CAAC,KAAK,SAAS,QAAQ,CAAC,KAAK,CAAC,EACnC,GAAG,SAAS,EAAE,KAAK,GAClB,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,KAAK,CAAC,MAAM,CAAC,CAAC,GAC9C,mBAAmB,CAAC,CAAC,CAAC,GACtB,KAAK,CAAC;CACX;AAED,MAAM,WAAW,sBAAsB,CAAC,OAAO;IAC7C,GAAG,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,cAAc,CAAC,KAAK,EAAE,OAAO;IAC5C,IAAI,EAAE,kBAAkB,CAAC,KAAK,CAAC,CAAC;IAChC,QAAQ,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAE1C;;OAEG;IACH,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;KAC7B,CAAC;CACH;AAED,KAAK,oBAAoB,GAAG;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,WAAW,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,KAAK,EAAE,OAAO,IAAI,CAChD,IAAI,EAAE,KAAK,EACX,OAAO,EAAE,oBAAoB,KAC1B,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAEhC,MAAM,MAAM,sBAAsB,CAAC,KAAK,EAAE,OAAO,IAAI,CACnD,MAAM,EAAE,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,EACtC,OAAO,EAAE,oBAAoB,KAC1B,IAAI,CAAC;AAEV,KAAK,+BAA+B,CAAC,OAAO,IAAI,mBAAmB,CACjE,OAAO,EACP,OAAO,CACR,CAAC;AAEF,MAAM,MAAM,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI;IACrD,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,UAAU,EAAE,gBAAgB,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC;IAClD,OAAO,CAAC,EAAE,mBAAmB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC9C;;OAEG;IACH,UAAU,CAAC,EAAE,sBAAsB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACpD,oCAAoC,CAAC,EAAE,+BAA+B,CAAC,OAAO,CAAC,CAAC;CACjF,CAAC"}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=tool-types.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,6 +0,0 @@
1
- import { Tool } from "./tool-types";
2
- import { ToolExecutionStream } from "./ToolExecutionStream";
3
- import { AssistantMessage } from "../utils/types";
4
- export declare function unstable_runPendingTools(message: AssistantMessage, tools: Record<string, Tool<any, any>> | undefined, abortSignal: AbortSignal): Promise<AssistantMessage>;
5
- export declare function toolResultStream(tools: Record<string, Tool<any, any>> | undefined, abortSignal: AbortSignal): ToolExecutionStream;
6
- //# sourceMappingURL=toolResultStream.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"toolResultStream.d.ts","sourceRoot":"","sources":["../../../src/core/tool/toolResultStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAuC,MAAM,cAAc,CAAC;AAGzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAuElD,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,SAAS,EACjD,WAAW,EAAE,WAAW,6BA6BzB;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,GAAG,SAAS,EACjD,WAAW,EAAE,WAAW,uBAOzB"}
@@ -1,78 +0,0 @@
1
- // src/core/tool/toolResultStream.ts
2
- import { ToolResponse } from "./ToolResponse.mjs";
3
- import { ToolExecutionStream } from "./ToolExecutionStream.mjs";
4
- var isStandardSchemaV1 = (schema) => {
5
- return typeof schema === "object" && schema !== null && "~standard" in schema && schema["~standard"].version === 1;
6
- };
7
- function getToolResponse(tools, abortSignal, toolCall) {
8
- const tool = tools?.[toolCall.toolName];
9
- if (!tool || !tool.execute) return void 0;
10
- const getResult = async (toolExecute) => {
11
- let executeFn = toolExecute;
12
- if (isStandardSchemaV1(tool.parameters)) {
13
- let result2 = tool.parameters["~standard"].validate(toolCall.args);
14
- if (result2 instanceof Promise) result2 = await result2;
15
- if (result2.issues) {
16
- executeFn = tool.experimental_onSchemaValidationError ?? (() => {
17
- throw new Error(
18
- `Function parameter validation failed. ${JSON.stringify(result2.issues)}`
19
- );
20
- });
21
- }
22
- }
23
- const result = await executeFn(toolCall.args, {
24
- toolCallId: toolCall.toolCallId,
25
- abortSignal
26
- });
27
- if (result instanceof ToolResponse) return result;
28
- return new ToolResponse({
29
- result: result === void 0 ? "<no result>" : result
30
- });
31
- };
32
- return getResult(tool.execute);
33
- }
34
- function getToolStreamResponse(tools, abortSignal, reader, context) {
35
- tools?.[context.toolName]?.streamCall?.(reader, {
36
- toolCallId: context.toolCallId,
37
- abortSignal
38
- });
39
- }
40
- async function unstable_runPendingTools(message, tools, abortSignal) {
41
- for (const part of message.parts) {
42
- if (part.type === "tool-call") {
43
- const promiseOrUndefined = getToolResponse(tools, abortSignal, part);
44
- if (promiseOrUndefined) {
45
- const result = await promiseOrUndefined;
46
- const updatedParts = message.parts.map((p) => {
47
- if (p.type === "tool-call" && p.toolCallId === part.toolCallId) {
48
- return {
49
- ...p,
50
- state: "result",
51
- artifact: result.artifact,
52
- result: result.result,
53
- isError: result.isError
54
- };
55
- }
56
- return p;
57
- });
58
- message = {
59
- ...message,
60
- parts: updatedParts,
61
- content: updatedParts
62
- };
63
- }
64
- }
65
- }
66
- return message;
67
- }
68
- function toolResultStream(tools, abortSignal) {
69
- return new ToolExecutionStream({
70
- execute: (toolCall) => getToolResponse(tools, abortSignal, toolCall),
71
- streamCall: ({ reader, ...context }) => getToolStreamResponse(tools, abortSignal, reader, context)
72
- });
73
- }
74
- export {
75
- toolResultStream,
76
- unstable_runPendingTools
77
- };
78
- //# sourceMappingURL=toolResultStream.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/core/tool/toolResultStream.ts"],"sourcesContent":["import { Tool, ToolCallReader, ToolExecuteFunction } from \"./tool-types\";\nimport { StandardSchemaV1 } from \"@standard-schema/spec\";\nimport { ToolResponse } from \"./ToolResponse\";\nimport { ToolExecutionStream } from \"./ToolExecutionStream\";\nimport { AssistantMessage } from \"../utils/types\";\n\nconst isStandardSchemaV1 = (\n schema: unknown,\n): schema is StandardSchemaV1<unknown> => {\n return (\n typeof schema === \"object\" &&\n schema !== null &&\n \"~standard\" in schema &&\n (schema as StandardSchemaV1<unknown>)[\"~standard\"].version === 1\n );\n};\n\nfunction getToolResponse(\n tools: Record<string, Tool<any, any>> | undefined,\n abortSignal: AbortSignal,\n toolCall: {\n toolCallId: string;\n toolName: string;\n args: unknown;\n },\n) {\n const tool = tools?.[toolCall.toolName];\n if (!tool || !tool.execute) return undefined;\n\n const getResult = async (toolExecute: ToolExecuteFunction<any, any>) => {\n let executeFn = toolExecute;\n\n if (isStandardSchemaV1(tool.parameters)) {\n let result = tool.parameters[\"~standard\"].validate(toolCall.args);\n if (result instanceof Promise) result = await result;\n\n if (result.issues) {\n executeFn =\n tool.experimental_onSchemaValidationError ??\n (() => {\n throw new Error(\n `Function parameter validation failed. ${JSON.stringify(result.issues)}`,\n );\n });\n }\n }\n\n const result = await executeFn(toolCall.args, {\n toolCallId: toolCall.toolCallId,\n abortSignal,\n });\n if (result instanceof ToolResponse) return result;\n return new ToolResponse({\n result: result === undefined ? \"<no result>\" : result,\n });\n };\n\n return getResult(tool.execute);\n}\n\nfunction getToolStreamResponse<TArgs, TResult>(\n tools: Record<string, Tool<any, any>> | undefined,\n abortSignal: AbortSignal,\n reader: ToolCallReader<TArgs, TResult>,\n context: {\n toolCallId: string;\n toolName: string;\n },\n) {\n tools?.[context.toolName]?.streamCall?.(reader, {\n toolCallId: context.toolCallId,\n abortSignal,\n });\n}\n\nexport async function unstable_runPendingTools(\n message: AssistantMessage,\n tools: Record<string, Tool<any, any>> | undefined,\n abortSignal: AbortSignal,\n) {\n // TODO parallel tool calling\n for (const part of message.parts) {\n if (part.type === \"tool-call\") {\n const promiseOrUndefined = getToolResponse(tools, abortSignal, part);\n if (promiseOrUndefined) {\n const result = await promiseOrUndefined;\n const updatedParts = message.parts.map((p) => {\n if (p.type === \"tool-call\" && p.toolCallId === part.toolCallId) {\n return {\n ...p,\n state: \"result\" as const,\n artifact: result.artifact,\n result: result.result,\n isError: result.isError,\n };\n }\n return p;\n });\n message = {\n ...message,\n parts: updatedParts,\n content: updatedParts,\n };\n }\n }\n }\n return message;\n}\n\nexport function toolResultStream(\n tools: Record<string, Tool<any, any>> | undefined,\n abortSignal: AbortSignal,\n) {\n return new ToolExecutionStream({\n execute: (toolCall) => getToolResponse(tools, abortSignal, toolCall),\n streamCall: ({ reader, ...context }) =>\n getToolStreamResponse(tools, abortSignal, reader, context),\n });\n}\n"],"mappings":";AAEA,SAAS,oBAAoB;AAC7B,SAAS,2BAA2B;AAGpC,IAAM,qBAAqB,CACzB,WACwC;AACxC,SACE,OAAO,WAAW,YAClB,WAAW,QACX,eAAe,UACd,OAAqC,WAAW,EAAE,YAAY;AAEnE;AAEA,SAAS,gBACP,OACA,aACA,UAKA;AACA,QAAM,OAAO,QAAQ,SAAS,QAAQ;AACtC,MAAI,CAAC,QAAQ,CAAC,KAAK,QAAS,QAAO;AAEnC,QAAM,YAAY,OAAO,gBAA+C;AACtE,QAAI,YAAY;AAEhB,QAAI,mBAAmB,KAAK,UAAU,GAAG;AACvC,UAAIA,UAAS,KAAK,WAAW,WAAW,EAAE,SAAS,SAAS,IAAI;AAChE,UAAIA,mBAAkB,QAAS,CAAAA,UAAS,MAAMA;AAE9C,UAAIA,QAAO,QAAQ;AACjB,oBACE,KAAK,yCACJ,MAAM;AACL,gBAAM,IAAI;AAAA,YACR,yCAAyC,KAAK,UAAUA,QAAO,MAAM,CAAC;AAAA,UACxE;AAAA,QACF;AAAA,MACJ;AAAA,IACF;AAEA,UAAM,SAAS,MAAM,UAAU,SAAS,MAAM;AAAA,MAC5C,YAAY,SAAS;AAAA,MACrB;AAAA,IACF,CAAC;AACD,QAAI,kBAAkB,aAAc,QAAO;AAC3C,WAAO,IAAI,aAAa;AAAA,MACtB,QAAQ,WAAW,SAAY,gBAAgB;AAAA,IACjD,CAAC;AAAA,EACH;AAEA,SAAO,UAAU,KAAK,OAAO;AAC/B;AAEA,SAAS,sBACP,OACA,aACA,QACA,SAIA;AACA,UAAQ,QAAQ,QAAQ,GAAG,aAAa,QAAQ;AAAA,IAC9C,YAAY,QAAQ;AAAA,IACpB;AAAA,EACF,CAAC;AACH;AAEA,eAAsB,yBACpB,SACA,OACA,aACA;AAEA,aAAW,QAAQ,QAAQ,OAAO;AAChC,QAAI,KAAK,SAAS,aAAa;AAC7B,YAAM,qBAAqB,gBAAgB,OAAO,aAAa,IAAI;AACnE,UAAI,oBAAoB;AACtB,cAAM,SAAS,MAAM;AACrB,cAAM,eAAe,QAAQ,MAAM,IAAI,CAAC,MAAM;AAC5C,cAAI,EAAE,SAAS,eAAe,EAAE,eAAe,KAAK,YAAY;AAC9D,mBAAO;AAAA,cACL,GAAG;AAAA,cACH,OAAO;AAAA,cACP,UAAU,OAAO;AAAA,cACjB,QAAQ,OAAO;AAAA,cACf,SAAS,OAAO;AAAA,YAClB;AAAA,UACF;AACA,iBAAO;AAAA,QACT,CAAC;AACD,kBAAU;AAAA,UACR,GAAG;AAAA,UACH,OAAO;AAAA,UACP,SAAS;AAAA,QACX;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAEO,SAAS,iBACd,OACA,aACA;AACA,SAAO,IAAI,oBAAoB;AAAA,IAC7B,SAAS,CAAC,aAAa,gBAAgB,OAAO,aAAa,QAAQ;AAAA,IACnE,YAAY,CAAC,EAAE,QAAQ,GAAG,QAAQ,MAChC,sBAAsB,OAAO,aAAa,QAAQ,OAAO;AAAA,EAC7D,CAAC;AACH;","names":["result"]}
@@ -1,23 +0,0 @@
1
- type AsNumber<K> = K extends `${infer N extends number}` ? N | K : never;
2
- type TupleIndex<T extends readonly any[]> = Exclude<keyof T, keyof any[]>;
3
- type ObjectKey<T> = keyof T & (string | number);
4
- export type TypePath<T> = [] | (0 extends 1 & T ? any[] : T extends object ? T extends readonly any[] ? number extends T["length"] ? {
5
- [K in TupleIndex<T>]: [AsNumber<K>, ...TypePath<T[K]>];
6
- }[TupleIndex<T>] : [
7
- number,
8
- ...TypePath<T[number]>
9
- ] : {
10
- [K in ObjectKey<T>]: [K, ...TypePath<T[K]>];
11
- }[ObjectKey<T>] : [
12
- ]);
13
- export type TypeAtPath<T, P extends readonly any[]> = P extends [
14
- infer Head,
15
- ...infer Rest
16
- ] ? Head extends keyof T ? TypeAtPath<T[Head], Rest> : never : T;
17
- export type DeepPartial<T> = T extends readonly any[] ? readonly DeepPartial<T[number]>[] : T extends {
18
- [key: string]: any;
19
- } ? {
20
- readonly [K in keyof T]?: DeepPartial<T[K]>;
21
- } : T;
22
- export {};
23
- //# sourceMappingURL=type-path-utils.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"type-path-utils.d.ts","sourceRoot":"","sources":["../../../src/core/tool/type-path-utils.ts"],"names":[],"mappings":"AAAA,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACzE,KAAK,UAAU,CAAC,CAAC,SAAS,SAAS,GAAG,EAAE,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,CAAC;AAC1E,KAAK,SAAS,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;AAEhD,MAAM,MAAM,QAAQ,CAAC,CAAC,IAClB,EAAE,GACF,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,GACZ,GAAG,EAAE,GACL,CAAC,SAAS,MAAM,GACd,CAAC,SAAS,SAAS,GAAG,EAAE,GACtB,MAAM,SAAS,CAAC,CAAC,QAAQ,CAAC,GAExB;KACG,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACvD,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,GAEhB;IAAC,MAAM;IAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;CAAC,GAElC;KAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAE/D;CAAE,CAAC,CAAC;AAEd,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,GAAG,EAAE,IAAI,CAAC,SAAS;IAC9D,MAAM,IAAI;IACV,GAAG,MAAM,IAAI;CACd,GACG,IAAI,SAAS,MAAM,CAAC,GAClB,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,GACzB,KAAK,GACP,CAAC,CAAC;AAEN,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,SAAS,GAAG,EAAE,GACjD,SAAS,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,GACjC,CAAC,SAAS;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,GAC9B;IAAE,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAC/C,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=type-path-utils.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,5 +0,0 @@
1
- export declare class Counter {
2
- value: number;
3
- up(): number;
4
- }
5
- //# sourceMappingURL=Counter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Counter.d.ts","sourceRoot":"","sources":["../../../src/core/utils/Counter.ts"],"names":[],"mappings":"AAAA,qBAAa,OAAO;IACX,KAAK,SAAM;IAElB,EAAE;CAGH"}
@@ -1,11 +0,0 @@
1
- // src/core/utils/Counter.ts
2
- var Counter = class {
3
- value = -1;
4
- up() {
5
- return ++this.value;
6
- }
7
- };
8
- export {
9
- Counter
10
- };
11
- //# sourceMappingURL=Counter.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/core/utils/Counter.ts"],"sourcesContent":["export class Counter {\n public value = -1;\n\n up() {\n return ++this.value;\n }\n}\n"],"mappings":";AAAO,IAAM,UAAN,MAAc;AAAA,EACZ,QAAQ;AAAA,EAEf,KAAK;AACH,WAAO,EAAE,KAAK;AAAA,EAChB;AACF;","names":[]}
@@ -1,2 +0,0 @@
1
- export declare const generateId: (size?: number) => string;
2
- //# sourceMappingURL=generateId.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateId.d.ts","sourceRoot":"","sources":["../../../src/core/utils/generateId.tsx"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU,2BAGtB,CAAC"}
@@ -1,10 +0,0 @@
1
- // src/core/utils/generateId.tsx
2
- import { customAlphabet } from "nanoid/non-secure";
3
- var generateId = customAlphabet(
4
- "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",
5
- 7
6
- );
7
- export {
8
- generateId
9
- };
10
- //# sourceMappingURL=generateId.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/core/utils/generateId.tsx"],"sourcesContent":["import { customAlphabet } from \"nanoid/non-secure\";\n\nexport const generateId = customAlphabet(\n \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\",\n 7,\n);\n"],"mappings":";AAAA,SAAS,sBAAsB;AAExB,IAAM,aAAa;AAAA,EACxB;AAAA,EACA;AACF;","names":[]}
@@ -1,20 +0,0 @@
1
- import { AssistantStreamChunk, PartInit } from "../../AssistantStreamChunk";
2
- /**
3
- * For chunk types that are associated with a part,
4
- * we require a non‑nullable meta field.
5
- */
6
- export type AssistantMetaStreamChunk = (AssistantStreamChunk & {
7
- type: "text-delta" | "part-finish";
8
- meta: PartInit;
9
- }) | (AssistantStreamChunk & {
10
- type: "result" | "tool-call-args-text-finish";
11
- meta: PartInit & {
12
- type: "tool-call";
13
- };
14
- }) | (AssistantStreamChunk & {
15
- type: Exclude<AssistantStreamChunk["type"], "text-delta" | "result" | "tool-call-args-text-finish" | "part-finish">;
16
- });
17
- export declare class AssistantMetaTransformStream extends TransformStream<AssistantStreamChunk, AssistantMetaStreamChunk> {
18
- constructor();
19
- }
20
- //# sourceMappingURL=AssistantMetaTransformStream.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AssistantMetaTransformStream.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/stream/AssistantMetaTransformStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAE5E;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAChC,CAAC,oBAAoB,GAAG;IACtB,IAAI,EAAE,YAAY,GAAG,aAAa,CAAC;IACnC,IAAI,EAAE,QAAQ,CAAC;CAChB,CAAC,GACF,CAAC,oBAAoB,GAAG;IACtB,IAAI,EAAE,QAAQ,GAAG,4BAA4B,CAAC;IAC9C,IAAI,EAAE,QAAQ,GAAG;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,CAAC;CACxC,CAAC,GACF,CAAC,oBAAoB,GAAG;IACtB,IAAI,EAAE,OAAO,CACX,oBAAoB,CAAC,MAAM,CAAC,EAC5B,YAAY,GAAG,QAAQ,GAAG,4BAA4B,GAAG,aAAa,CACvE,CAAC;CACH,CAAC,CAAC;AACP,qBAAa,4BAA6B,SAAQ,eAAe,CAC/D,oBAAoB,EACpB,wBAAwB,CACzB;;CAiDA"}
@@ -1,44 +0,0 @@
1
- // src/core/utils/stream/AssistantMetaTransformStream.ts
2
- var AssistantMetaTransformStream = class extends TransformStream {
3
- constructor() {
4
- const parts = [];
5
- super({
6
- transform(chunk, controller) {
7
- if (chunk.type === "part-start") {
8
- if (chunk.path.length !== 0) {
9
- controller.error(new Error("Nested parts are not supported"));
10
- return;
11
- }
12
- parts.push(chunk.part);
13
- controller.enqueue(chunk);
14
- return;
15
- }
16
- if (chunk.type === "text-delta" || chunk.type === "result" || chunk.type === "part-finish" || chunk.type === "tool-call-args-text-finish") {
17
- if (chunk.path.length !== 1) {
18
- controller.error(
19
- new Error(`${chunk.type} chunks must have a path of length 1`)
20
- );
21
- return;
22
- }
23
- const idx = chunk.path[0];
24
- if (idx < 0 || idx >= parts.length) {
25
- controller.error(new Error(`Invalid path index: ${idx}`));
26
- return;
27
- }
28
- const part = parts[idx];
29
- controller.enqueue({
30
- ...chunk,
31
- meta: part
32
- // TODO
33
- });
34
- return;
35
- }
36
- controller.enqueue(chunk);
37
- }
38
- });
39
- }
40
- };
41
- export {
42
- AssistantMetaTransformStream
43
- };
44
- //# sourceMappingURL=AssistantMetaTransformStream.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/core/utils/stream/AssistantMetaTransformStream.ts"],"sourcesContent":["import { AssistantStreamChunk, PartInit } from \"../../AssistantStreamChunk\";\n\n/**\n * For chunk types that are associated with a part,\n * we require a non‑nullable meta field.\n */\nexport type AssistantMetaStreamChunk =\n | (AssistantStreamChunk & {\n type: \"text-delta\" | \"part-finish\";\n meta: PartInit;\n })\n | (AssistantStreamChunk & {\n type: \"result\" | \"tool-call-args-text-finish\";\n meta: PartInit & { type: \"tool-call\" };\n })\n | (AssistantStreamChunk & {\n type: Exclude<\n AssistantStreamChunk[\"type\"],\n \"text-delta\" | \"result\" | \"tool-call-args-text-finish\" | \"part-finish\"\n >;\n });\nexport class AssistantMetaTransformStream extends TransformStream<\n AssistantStreamChunk,\n AssistantMetaStreamChunk\n> {\n constructor() {\n // We use an array to record parts as they are introduced.\n const parts: PartInit[] = [];\n\n super({\n transform(chunk, controller) {\n // For chunks that introduce a new part.\n if (chunk.type === \"part-start\") {\n if (chunk.path.length !== 0) {\n controller.error(new Error(\"Nested parts are not supported\"));\n return;\n }\n parts.push(chunk.part);\n controller.enqueue(chunk);\n return;\n }\n\n // For chunks that expect an associated part.\n if (\n chunk.type === \"text-delta\" ||\n chunk.type === \"result\" ||\n chunk.type === \"part-finish\" ||\n chunk.type === \"tool-call-args-text-finish\"\n ) {\n if (chunk.path.length !== 1) {\n controller.error(\n new Error(`${chunk.type} chunks must have a path of length 1`),\n );\n return;\n }\n const idx = chunk.path[0]!;\n if (idx < 0 || idx >= parts.length) {\n controller.error(new Error(`Invalid path index: ${idx}`));\n return;\n }\n const part = parts[idx]!;\n\n controller.enqueue({\n ...chunk,\n meta: part as any, // TODO\n });\n return;\n }\n\n controller.enqueue(chunk);\n },\n });\n }\n}\n"],"mappings":";AAqBO,IAAM,+BAAN,cAA2C,gBAGhD;AAAA,EACA,cAAc;AAEZ,UAAM,QAAoB,CAAC;AAE3B,UAAM;AAAA,MACJ,UAAU,OAAO,YAAY;AAE3B,YAAI,MAAM,SAAS,cAAc;AAC/B,cAAI,MAAM,KAAK,WAAW,GAAG;AAC3B,uBAAW,MAAM,IAAI,MAAM,gCAAgC,CAAC;AAC5D;AAAA,UACF;AACA,gBAAM,KAAK,MAAM,IAAI;AACrB,qBAAW,QAAQ,KAAK;AACxB;AAAA,QACF;AAGA,YACE,MAAM,SAAS,gBACf,MAAM,SAAS,YACf,MAAM,SAAS,iBACf,MAAM,SAAS,8BACf;AACA,cAAI,MAAM,KAAK,WAAW,GAAG;AAC3B,uBAAW;AAAA,cACT,IAAI,MAAM,GAAG,MAAM,IAAI,sCAAsC;AAAA,YAC/D;AACA;AAAA,UACF;AACA,gBAAM,MAAM,MAAM,KAAK,CAAC;AACxB,cAAI,MAAM,KAAK,OAAO,MAAM,QAAQ;AAClC,uBAAW,MAAM,IAAI,MAAM,uBAAuB,GAAG,EAAE,CAAC;AACxD;AAAA,UACF;AACA,gBAAM,OAAO,MAAM,GAAG;AAEtB,qBAAW,QAAQ;AAAA,YACjB,GAAG;AAAA,YACH,MAAM;AAAA;AAAA,UACR,CAAC;AACD;AAAA,QACF;AAEA,mBAAW,QAAQ,KAAK;AAAA,MAC1B;AAAA,IACF,CAAC;AAAA,EACH;AACF;","names":[]}
@@ -1,15 +0,0 @@
1
- import { AssistantStreamChunk } from "../../AssistantStreamChunk";
2
- import { AssistantStreamController } from "../../modules/assistant-stream";
3
- type AssistantTransformerFlushCallback = (controller: AssistantStreamController) => void | PromiseLike<void>;
4
- type AssistantTransformerStartCallback = (controller: AssistantStreamController) => void | PromiseLike<void>;
5
- type AssistantTransformerTransformCallback<I> = (chunk: I, controller: AssistantStreamController) => void | PromiseLike<void>;
6
- type AssistantTransformer<I> = {
7
- flush?: AssistantTransformerFlushCallback;
8
- start?: AssistantTransformerStartCallback;
9
- transform?: AssistantTransformerTransformCallback<I>;
10
- };
11
- export declare class AssistantTransformStream<I> extends TransformStream<I, AssistantStreamChunk> {
12
- constructor(transformer: AssistantTransformer<I>, writableStrategy?: QueuingStrategy<I>, readableStrategy?: QueuingStrategy<AssistantStreamChunk>);
13
- }
14
- export {};
15
- //# sourceMappingURL=AssistantTransformStream.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AssistantTransformStream.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/stream/AssistantTransformStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EACL,yBAAyB,EAE1B,MAAM,gCAAgC,CAAC;AAExC,KAAK,iCAAiC,GAAG,CACvC,UAAU,EAAE,yBAAyB,KAClC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;AAE9B,KAAK,iCAAiC,GAAG,CACvC,UAAU,EAAE,yBAAyB,KAClC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;AAE9B,KAAK,qCAAqC,CAAC,CAAC,IAAI,CAC9C,KAAK,EAAE,CAAC,EACR,UAAU,EAAE,yBAAyB,KAClC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;AAE9B,KAAK,oBAAoB,CAAC,CAAC,IAAI;IAC7B,KAAK,CAAC,EAAE,iCAAiC,CAAC;IAC1C,KAAK,CAAC,EAAE,iCAAiC,CAAC;IAC1C,SAAS,CAAC,EAAE,qCAAqC,CAAC,CAAC,CAAC,CAAC;CACtD,CAAC;AAEF,qBAAa,wBAAwB,CAAC,CAAC,CAAE,SAAQ,eAAe,CAC9D,CAAC,EACD,oBAAoB,CACrB;gBAEG,WAAW,EAAE,oBAAoB,CAAC,CAAC,CAAC,EACpC,gBAAgB,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,EACrC,gBAAgB,CAAC,EAAE,eAAe,CAAC,oBAAoB,CAAC;CAyC3D"}
@@ -1,46 +0,0 @@
1
- // src/core/utils/stream/AssistantTransformStream.ts
2
- import {
3
- createAssistantStreamController
4
- } from "../../modules/assistant-stream.mjs";
5
- var AssistantTransformStream = class extends TransformStream {
6
- constructor(transformer, writableStrategy, readableStrategy) {
7
- const [stream, runController] = createAssistantStreamController();
8
- let runPipeTask;
9
- super(
10
- {
11
- start(controller) {
12
- runPipeTask = stream.pipeTo(
13
- new WritableStream({
14
- write(chunk) {
15
- controller.enqueue(chunk);
16
- },
17
- abort(reason) {
18
- controller.error(reason);
19
- },
20
- close() {
21
- controller.terminate();
22
- }
23
- })
24
- ).catch((error) => {
25
- controller.error(error);
26
- });
27
- return transformer.start?.(runController);
28
- },
29
- transform(chunk) {
30
- return transformer.transform?.(chunk, runController);
31
- },
32
- async flush() {
33
- await transformer.flush?.(runController);
34
- runController.close();
35
- await runPipeTask;
36
- }
37
- },
38
- writableStrategy,
39
- readableStrategy
40
- );
41
- }
42
- };
43
- export {
44
- AssistantTransformStream
45
- };
46
- //# sourceMappingURL=AssistantTransformStream.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/core/utils/stream/AssistantTransformStream.ts"],"sourcesContent":["import { AssistantStreamChunk } from \"../../AssistantStreamChunk\";\nimport {\n AssistantStreamController,\n createAssistantStreamController,\n} from \"../../modules/assistant-stream\";\n\ntype AssistantTransformerFlushCallback = (\n controller: AssistantStreamController,\n) => void | PromiseLike<void>;\n\ntype AssistantTransformerStartCallback = (\n controller: AssistantStreamController,\n) => void | PromiseLike<void>;\n\ntype AssistantTransformerTransformCallback<I> = (\n chunk: I,\n controller: AssistantStreamController,\n) => void | PromiseLike<void>;\n\ntype AssistantTransformer<I> = {\n flush?: AssistantTransformerFlushCallback;\n start?: AssistantTransformerStartCallback;\n transform?: AssistantTransformerTransformCallback<I>;\n};\n\nexport class AssistantTransformStream<I> extends TransformStream<\n I,\n AssistantStreamChunk\n> {\n constructor(\n transformer: AssistantTransformer<I>,\n writableStrategy?: QueuingStrategy<I>,\n readableStrategy?: QueuingStrategy<AssistantStreamChunk>,\n ) {\n const [stream, runController] = createAssistantStreamController();\n\n let runPipeTask: Promise<void>;\n super(\n {\n start(controller) {\n runPipeTask = stream\n .pipeTo(\n new WritableStream({\n write(chunk) {\n controller.enqueue(chunk);\n },\n abort(reason?: any) {\n controller.error(reason);\n },\n close() {\n controller.terminate();\n },\n }),\n )\n .catch((error) => {\n controller.error(error);\n });\n\n return transformer.start?.(runController);\n },\n transform(chunk) {\n return transformer.transform?.(chunk, runController);\n },\n async flush() {\n await transformer.flush?.(runController);\n runController.close();\n await runPipeTask;\n },\n },\n writableStrategy,\n readableStrategy,\n );\n }\n}\n"],"mappings":";AACA;AAAA,EAEE;AAAA,OACK;AAqBA,IAAM,2BAAN,cAA0C,gBAG/C;AAAA,EACA,YACE,aACA,kBACA,kBACA;AACA,UAAM,CAAC,QAAQ,aAAa,IAAI,gCAAgC;AAEhE,QAAI;AACJ;AAAA,MACE;AAAA,QACE,MAAM,YAAY;AAChB,wBAAc,OACX;AAAA,YACC,IAAI,eAAe;AAAA,cACjB,MAAM,OAAO;AACX,2BAAW,QAAQ,KAAK;AAAA,cAC1B;AAAA,cACA,MAAM,QAAc;AAClB,2BAAW,MAAM,MAAM;AAAA,cACzB;AAAA,cACA,QAAQ;AACN,2BAAW,UAAU;AAAA,cACvB;AAAA,YACF,CAAC;AAAA,UACH,EACC,MAAM,CAAC,UAAU;AAChB,uBAAW,MAAM,KAAK;AAAA,UACxB,CAAC;AAEH,iBAAO,YAAY,QAAQ,aAAa;AAAA,QAC1C;AAAA,QACA,UAAU,OAAO;AACf,iBAAO,YAAY,YAAY,OAAO,aAAa;AAAA,QACrD;AAAA,QACA,MAAM,QAAQ;AACZ,gBAAM,YAAY,QAAQ,aAAa;AACvC,wBAAc,MAAM;AACpB,gBAAM;AAAA,QACR;AAAA,MACF;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
@@ -1,5 +0,0 @@
1
- export declare class LineDecoderStream extends TransformStream<string, string> {
2
- private buffer;
3
- constructor();
4
- }
5
- //# sourceMappingURL=LineDecoderStream.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LineDecoderStream.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/stream/LineDecoderStream.ts"],"names":[],"mappings":"AAAA,qBAAa,iBAAkB,SAAQ,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC;IACpE,OAAO,CAAC,MAAM,CAAM;;CA2BrB"}
@@ -1,27 +0,0 @@
1
- // src/core/utils/stream/LineDecoderStream.ts
2
- var LineDecoderStream = class extends TransformStream {
3
- buffer = "";
4
- constructor() {
5
- super({
6
- transform: (chunk, controller) => {
7
- this.buffer += chunk;
8
- const lines = this.buffer.split("\n");
9
- for (let i = 0; i < lines.length - 1; i++) {
10
- controller.enqueue(lines[i]);
11
- }
12
- this.buffer = lines[lines.length - 1] || "";
13
- },
14
- flush: () => {
15
- if (this.buffer) {
16
- throw new Error(
17
- `Stream ended with an incomplete line: "${this.buffer}"`
18
- );
19
- }
20
- }
21
- });
22
- }
23
- };
24
- export {
25
- LineDecoderStream
26
- };
27
- //# sourceMappingURL=LineDecoderStream.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/core/utils/stream/LineDecoderStream.ts"],"sourcesContent":["export class LineDecoderStream extends TransformStream<string, string> {\n private buffer = \"\";\n\n constructor() {\n super({\n transform: (chunk, controller) => {\n this.buffer += chunk;\n const lines = this.buffer.split(\"\\n\");\n\n // Process all complete lines\n for (let i = 0; i < lines.length - 1; i++) {\n controller.enqueue(lines[i]);\n }\n\n // Keep the last incomplete line in the buffer\n this.buffer = lines[lines.length - 1] || \"\";\n },\n flush: () => {\n // If there's content in the buffer when the stream ends, it means\n // the stream ended with an incomplete line (no trailing newline)\n if (this.buffer) {\n throw new Error(\n `Stream ended with an incomplete line: \"${this.buffer}\"`,\n );\n }\n },\n });\n }\n}\n"],"mappings":";AAAO,IAAM,oBAAN,cAAgC,gBAAgC;AAAA,EAC7D,SAAS;AAAA,EAEjB,cAAc;AACZ,UAAM;AAAA,MACJ,WAAW,CAAC,OAAO,eAAe;AAChC,aAAK,UAAU;AACf,cAAM,QAAQ,KAAK,OAAO,MAAM,IAAI;AAGpC,iBAAS,IAAI,GAAG,IAAI,MAAM,SAAS,GAAG,KAAK;AACzC,qBAAW,QAAQ,MAAM,CAAC,CAAC;AAAA,QAC7B;AAGA,aAAK,SAAS,MAAM,MAAM,SAAS,CAAC,KAAK;AAAA,MAC3C;AAAA,MACA,OAAO,MAAM;AAGX,YAAI,KAAK,QAAQ;AACf,gBAAM,IAAI;AAAA,YACR,0CAA0C,KAAK,MAAM;AAAA,UACvD;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AACF;","names":[]}
@@ -1,4 +0,0 @@
1
- export declare class PipeableTransformStream<I, O> extends TransformStream<I, O> {
2
- constructor(transform: (readable: ReadableStream<I>) => ReadableStream<O>);
3
- }
4
- //# sourceMappingURL=PipeableTransformStream.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PipeableTransformStream.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/stream/PipeableTransformStream.ts"],"names":[],"mappings":"AAAA,qBAAa,uBAAuB,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC1D,SAAS,EAAE,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,CAAC;CAQ1E"}
@@ -1,15 +0,0 @@
1
- // src/core/utils/stream/PipeableTransformStream.ts
2
- var PipeableTransformStream = class extends TransformStream {
3
- constructor(transform) {
4
- super();
5
- const readable = transform(super.readable);
6
- Object.defineProperty(this, "readable", {
7
- value: readable,
8
- writable: false
9
- });
10
- }
11
- };
12
- export {
13
- PipeableTransformStream
14
- };
15
- //# sourceMappingURL=PipeableTransformStream.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/core/utils/stream/PipeableTransformStream.ts"],"sourcesContent":["export class PipeableTransformStream<I, O> extends TransformStream<I, O> {\n constructor(transform: (readable: ReadableStream<I>) => ReadableStream<O>) {\n super();\n const readable = transform(super.readable as unknown as ReadableStream<I>);\n Object.defineProperty(this, \"readable\", {\n value: readable,\n writable: false,\n });\n }\n}\n"],"mappings":";AAAO,IAAM,0BAAN,cAA4C,gBAAsB;AAAA,EACvE,YAAY,WAA+D;AACzE,UAAM;AACN,UAAM,WAAW,UAAU,MAAM,QAAwC;AACzE,WAAO,eAAe,MAAM,YAAY;AAAA,MACtC,OAAO;AAAA,MACP,UAAU;AAAA,IACZ,CAAC;AAAA,EACH;AACF;","names":[]}
@@ -1,6 +0,0 @@
1
- export type UnderlyingReadable<TController> = {
2
- start?: (controller: TController) => void;
3
- pull?: (controller: TController) => void | PromiseLike<void>;
4
- cancel?: UnderlyingSourceCancelCallback;
5
- };
6
- //# sourceMappingURL=UnderlyingReadable.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UnderlyingReadable.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/stream/UnderlyingReadable.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,CAAC,WAAW,IAAI;IAC5C,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,WAAW,KAAK,IAAI,CAAC;IAC1C,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,WAAW,KAAK,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC7D,MAAM,CAAC,EAAE,8BAA8B,CAAC;CACzC,CAAC"}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=UnderlyingReadable.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,9 +0,0 @@
1
- import { AssistantStreamChunk } from "../../AssistantStreamChunk";
2
- export declare const createMergeStream: () => {
3
- readable: ReadableStream<AssistantStreamChunk>;
4
- isSealed(): boolean;
5
- seal(): void;
6
- addStream(stream: ReadableStream<AssistantStreamChunk>): void;
7
- enqueue(chunk: AssistantStreamChunk): void;
8
- };
9
- //# sourceMappingURL=merge.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../../../src/core/utils/stream/merge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAQlE,eAAO,MAAM,iBAAiB;;;;sBA0ER,cAAc,CAAC,oBAAoB,CAAC;mBAUvC,oBAAoB;CAWtC,CAAC"}
@@ -1,85 +0,0 @@
1
- // src/core/utils/stream/merge.ts
2
- import { promiseWithResolvers } from "../../../utils/promiseWithResolvers.mjs";
3
- var createMergeStream = () => {
4
- const list = [];
5
- let sealed = false;
6
- let controller;
7
- let currentPull;
8
- const handlePull = (item) => {
9
- if (!item.promise) {
10
- item.promise = item.reader.read().then(({ done, value }) => {
11
- item.promise = void 0;
12
- if (done) {
13
- list.splice(list.indexOf(item), 1);
14
- if (sealed && list.length === 0) {
15
- controller.close();
16
- }
17
- } else {
18
- controller.enqueue(value);
19
- }
20
- currentPull?.resolve();
21
- currentPull = void 0;
22
- }).catch((e) => {
23
- console.error(e);
24
- list.forEach((item2) => {
25
- item2.reader.cancel();
26
- });
27
- list.length = 0;
28
- controller.error(e);
29
- currentPull?.reject(e);
30
- currentPull = void 0;
31
- });
32
- }
33
- };
34
- const readable = new ReadableStream({
35
- start(c) {
36
- controller = c;
37
- },
38
- pull() {
39
- currentPull = promiseWithResolvers();
40
- list.forEach((item) => {
41
- handlePull(item);
42
- });
43
- return currentPull.promise;
44
- },
45
- cancel() {
46
- list.forEach((item) => {
47
- item.reader.cancel();
48
- });
49
- list.length = 0;
50
- }
51
- });
52
- return {
53
- readable,
54
- isSealed() {
55
- return sealed;
56
- },
57
- seal() {
58
- sealed = true;
59
- if (list.length === 0) controller.close();
60
- },
61
- addStream(stream) {
62
- if (sealed)
63
- throw new Error(
64
- "Cannot add streams after the run callback has settled."
65
- );
66
- const item = { reader: stream.getReader() };
67
- list.push(item);
68
- handlePull(item);
69
- },
70
- enqueue(chunk) {
71
- this.addStream(
72
- new ReadableStream({
73
- start(c) {
74
- c.enqueue(chunk);
75
- c.close();
76
- }
77
- })
78
- );
79
- }
80
- };
81
- };
82
- export {
83
- createMergeStream
84
- };
85
- //# sourceMappingURL=merge.mjs.map