assistant-stream 0.1.8 → 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 +5 -8
  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,29 +1,4 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/utils/promiseWithResolvers.ts
21
- var promiseWithResolvers_exports = {};
22
- __export(promiseWithResolvers_exports, {
23
- promiseWithResolvers: () => promiseWithResolvers
24
- });
25
- module.exports = __toCommonJS(promiseWithResolvers_exports);
26
- var promiseWithResolvers = function() {
1
+ const promiseWithResolvers = function() {
27
2
  let resolve;
28
3
  let reject;
29
4
  const promise = new Promise((res, rej) => {
@@ -33,8 +8,7 @@ var promiseWithResolvers = function() {
33
8
  if (!resolve || !reject) throw new Error("Failed to create promise");
34
9
  return { promise, resolve, reject };
35
10
  };
36
- // Annotate the CommonJS export names for ESM import in node:
37
- 0 && (module.exports = {
11
+ export {
38
12
  promiseWithResolvers
39
- });
13
+ };
40
14
  //# sourceMappingURL=promiseWithResolvers.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/promiseWithResolvers.ts"],"sourcesContent":["export const promiseWithResolvers = function <T>() {\n let resolve: ((value: T | PromiseLike<T>) => void) | undefined;\n let reject: ((reason?: unknown) => void) | undefined;\n const promise = new Promise<T>((res, rej) => {\n resolve = res;\n reject = rej;\n });\n if (!resolve || !reject) throw new Error(\"Failed to create promise\");\n return { promise, resolve, reject };\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,IAAM,uBAAuB,WAAe;AACjD,MAAI;AACJ,MAAI;AACJ,QAAM,UAAU,IAAI,QAAW,CAAC,KAAK,QAAQ;AAC3C,cAAU;AACV,aAAS;AAAA,EACX,CAAC;AACD,MAAI,CAAC,WAAW,CAAC,OAAQ,OAAM,IAAI,MAAM,0BAA0B;AACnE,SAAO,EAAE,SAAS,SAAS,OAAO;AACpC;","names":[]}
1
+ {"version":3,"sources":["../../src/utils/promiseWithResolvers.ts"],"sourcesContent":["export const promiseWithResolvers = function <T>() {\n let resolve: ((value: T | PromiseLike<T>) => void) | undefined;\n let reject: ((reason?: unknown) => void) | undefined;\n const promise = new Promise<T>((res, rej) => {\n resolve = res;\n reject = rej;\n });\n if (!resolve || !reject) throw new Error(\"Failed to create promise\");\n return { promise, resolve, reject };\n};\n"],"mappings":"AAAO,MAAM,uBAAuB,WAAe;AACjD,MAAI;AACJ,MAAI;AACJ,QAAM,UAAU,IAAI,QAAW,CAAC,KAAK,QAAQ;AAC3C,cAAU;AACV,aAAS;AAAA,EACX,CAAC;AACD,MAAI,CAAC,WAAW,CAAC,OAAQ,OAAM,IAAI,MAAM,0BAA0B;AACnE,SAAO,EAAE,SAAS,SAAS,OAAO;AACpC;","names":[]}
package/dist/utils.js CHANGED
@@ -1,36 +1,13 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/utils.ts
21
- var utils_exports = {};
22
- __export(utils_exports, {
23
- asAsyncIterableStream: () => import_AsyncIterableStream.asAsyncIterableStream,
24
- getPartialJsonObjectFieldState: () => import_parse_partial_json_object.getPartialJsonObjectFieldState,
25
- parsePartialJsonObject: () => import_parse_partial_json_object.parsePartialJsonObject
26
- });
27
- module.exports = __toCommonJS(utils_exports);
28
- var import_parse_partial_json_object = require("./utils/json/parse-partial-json-object.js");
29
- var import_AsyncIterableStream = require("./utils/AsyncIterableStream.js");
30
- // Annotate the CommonJS export names for ESM import in node:
31
- 0 && (module.exports = {
1
+ import {
2
+ parsePartialJsonObject,
3
+ getPartialJsonObjectFieldState
4
+ } from "./utils/json/parse-partial-json-object";
5
+ import {
6
+ asAsyncIterableStream
7
+ } from "./utils/AsyncIterableStream";
8
+ export {
32
9
  asAsyncIterableStream,
33
10
  getPartialJsonObjectFieldState,
34
11
  parsePartialJsonObject
35
- });
12
+ };
36
13
  //# sourceMappingURL=utils.js.map
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils.ts"],"sourcesContent":["export {\n parsePartialJsonObject,\n getPartialJsonObjectFieldState,\n} from \"./utils/json/parse-partial-json-object\";\nexport {\n type AsyncIterableStream,\n asAsyncIterableStream,\n} from \"./utils/AsyncIterableStream\";\nexport type {\n ReadonlyJSONValue,\n ReadonlyJSONArray,\n ReadonlyJSONObject,\n} from \"./utils/json/json-value\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uCAGO;AACP,iCAGO;","names":[]}
1
+ {"version":3,"sources":["../src/utils.ts"],"sourcesContent":["export {\n parsePartialJsonObject,\n getPartialJsonObjectFieldState,\n} from \"./utils/json/parse-partial-json-object\";\nexport {\n type AsyncIterableStream,\n asAsyncIterableStream,\n} from \"./utils/AsyncIterableStream\";\nexport type {\n ReadonlyJSONValue,\n ReadonlyJSONArray,\n ReadonlyJSONObject,\n} from \"./utils/json/json-value\";\n"],"mappings":"AAAA;AAAA,EACE;AAAA,EACA;AAAA,OACK;AACP;AAAA,EAEE;AAAA,OACK;","names":[]}
package/package.json CHANGED
@@ -1,27 +1,24 @@
1
1
  {
2
2
  "name": "assistant-stream",
3
- "version": "0.1.8",
3
+ "version": "0.2.0",
4
4
  "license": "MIT",
5
+ "type": "module",
5
6
  "exports": {
6
7
  ".": {
7
8
  "types": "./dist/index.d.ts",
8
- "import": "./dist/index.mjs",
9
- "require": "./dist/index.js"
9
+ "default": "./dist/index.js"
10
10
  },
11
11
  "./ai-sdk": {
12
12
  "types": "./dist/ai-sdk.d.ts",
13
- "import": "./dist/ai-sdk.mjs",
14
- "require": "./dist/ai-sdk.js"
13
+ "default": "./dist/ai-sdk.js"
15
14
  },
16
15
  "./utils": {
17
16
  "types": "./dist/utils.d.ts",
18
- "import": "./dist/utils.mjs",
19
- "require": "./dist/utils.js"
17
+ "default": "./dist/utils.js"
20
18
  }
21
19
  },
22
20
  "source": "./src/index.ts",
23
21
  "main": "./dist/index.js",
24
- "module": "./dist/index.mjs",
25
22
  "types": "./dist/index.d.ts",
26
23
  "files": [
27
24
  "dist",
@@ -1,5 +1,5 @@
1
1
  {
2
+ "type": "module",
2
3
  "main": "../dist/utils.js",
3
- "module": "../dist/utils.mjs",
4
4
  "types": "../dist/utils.d.ts"
5
5
  }
@@ -1,5 +0,0 @@
1
- import type { TextStreamPart, ObjectStreamPart, Tool } from "ai";
2
- import { AssistantStream } from "../core/AssistantStream";
3
- export declare const fromStreamText: (stream: ReadableStream<TextStreamPart<Record<string, Tool>>>) => AssistantStream;
4
- export declare const fromStreamObject: (stream: ReadableStream<ObjectStreamPart<unknown>>, toolName: string) => AssistantStream;
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai-sdk/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAK1D,eAAO,MAAM,cAAc,GACzB,QAAQ,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,KAC3D,eAmJF,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,cAAc,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,EACjD,UAAU,MAAM,KACf,eA2CF,CAAC"}
@@ -1,173 +0,0 @@
1
- // src/ai-sdk/index.ts
2
- import { AssistantTransformStream } from "../core/utils/stream/AssistantTransformStream.mjs";
3
- var fromStreamText = (stream) => {
4
- const toolControllers = /* @__PURE__ */ new Map();
5
- let currentToolCallArgsText;
6
- const endCurrentToolCallArgsText = () => {
7
- if (!currentToolCallArgsText) return;
8
- currentToolCallArgsText.argsText.close();
9
- currentToolCallArgsText = void 0;
10
- };
11
- const transformer = new AssistantTransformStream({
12
- transform(chunk, controller) {
13
- const { type } = chunk;
14
- if (type !== "tool-call-delta" && type !== "tool-call" && type !== "error" && type !== "tool-result") {
15
- endCurrentToolCallArgsText();
16
- }
17
- switch (type) {
18
- case "text-delta": {
19
- const { textDelta } = chunk;
20
- controller.appendText(textDelta);
21
- break;
22
- }
23
- case "reasoning": {
24
- const { textDelta } = chunk;
25
- controller.appendReasoning(textDelta);
26
- break;
27
- }
28
- case "tool-call-streaming-start": {
29
- const { toolCallId, toolName } = chunk;
30
- currentToolCallArgsText = controller.addToolCallPart({
31
- toolCallId,
32
- toolName
33
- });
34
- toolControllers.set(toolCallId, currentToolCallArgsText);
35
- break;
36
- }
37
- case "tool-call-delta": {
38
- const { toolCallId, argsTextDelta } = chunk;
39
- const toolController = toolControllers.get(toolCallId);
40
- if (!toolController) throw new Error("Tool call not found");
41
- toolController.argsText.append(argsTextDelta);
42
- break;
43
- }
44
- case "tool-result": {
45
- const { toolCallId, result } = chunk;
46
- const toolController = toolControllers.get(toolCallId);
47
- if (!toolController) throw new Error("Tool call not found");
48
- toolController.setResponse({
49
- result
50
- });
51
- toolController.close();
52
- toolControllers.delete(toolCallId);
53
- break;
54
- }
55
- case "tool-call": {
56
- const { toolCallId, toolName, args } = chunk;
57
- const toolController = controller.addToolCallPart({
58
- toolCallId,
59
- toolName
60
- });
61
- toolController.argsText.append(JSON.stringify(args));
62
- toolController.argsText.close();
63
- toolControllers.set(toolCallId, toolController);
64
- break;
65
- }
66
- case "step-start":
67
- controller.enqueue({
68
- type: "step-start",
69
- path: [],
70
- messageId: chunk.messageId
71
- });
72
- break;
73
- case "step-finish":
74
- controller.enqueue({
75
- type: "step-finish",
76
- path: [],
77
- finishReason: chunk.finishReason,
78
- usage: chunk.usage,
79
- isContinued: chunk.isContinued
80
- });
81
- break;
82
- case "error":
83
- controller.enqueue({
84
- type: "error",
85
- path: [],
86
- error: String(chunk.error)
87
- });
88
- break;
89
- case "finish": {
90
- controller.enqueue({
91
- type: "message-finish",
92
- path: [],
93
- finishReason: chunk.finishReason,
94
- usage: chunk.usage
95
- });
96
- break;
97
- }
98
- case "source":
99
- controller.appendSource({
100
- type: "source",
101
- ...chunk.source
102
- });
103
- break;
104
- case "file":
105
- controller.appendFile({
106
- type: "file",
107
- mimeType: chunk.mimeType,
108
- data: chunk.base64
109
- });
110
- break;
111
- case "reasoning-signature":
112
- case "redacted-reasoning":
113
- break;
114
- default: {
115
- const unhandledType = type;
116
- throw new Error(`Unhandled chunk type: ${unhandledType}`);
117
- }
118
- }
119
- },
120
- flush() {
121
- for (const toolController of toolControllers.values()) {
122
- toolController.close();
123
- }
124
- toolControllers.clear();
125
- }
126
- });
127
- return stream.pipeThrough(transformer);
128
- };
129
- var fromStreamObject = (stream, toolName) => {
130
- let toolCall;
131
- const transformer = new AssistantTransformStream({
132
- start(controller) {
133
- toolCall = controller.addToolCallPart(toolName);
134
- },
135
- transform(chunk, controller) {
136
- const { type } = chunk;
137
- switch (type) {
138
- case "text-delta": {
139
- const { textDelta } = chunk;
140
- toolCall.argsText.append(textDelta);
141
- break;
142
- }
143
- case "finish": {
144
- toolCall.argsText.close();
145
- toolCall.setResponse({
146
- result: "{}"
147
- });
148
- break;
149
- }
150
- case "object":
151
- break;
152
- case "error": {
153
- controller.enqueue({
154
- type: "error",
155
- path: [],
156
- error: String(chunk.error)
157
- });
158
- break;
159
- }
160
- default: {
161
- const unhandledType = type;
162
- throw new Error(`Unhandled chunk type: ${unhandledType}`);
163
- }
164
- }
165
- }
166
- });
167
- return stream.pipeThrough(transformer);
168
- };
169
- export {
170
- fromStreamObject,
171
- fromStreamText
172
- };
173
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/ai-sdk/index.ts"],"sourcesContent":["import type { TextStreamPart, ObjectStreamPart, Tool } from \"ai\";\nimport { AssistantStream } from \"../core/AssistantStream\";\nimport { AssistantTransformStream } from \"../core/utils/stream/AssistantTransformStream\";\nimport { ToolCallStreamController } from \"../core/modules/tool-call\";\nimport { ReadonlyJSONValue } from \"../utils/json/json-value\";\n\nexport const fromStreamText = (\n stream: ReadableStream<TextStreamPart<Record<string, Tool>>>,\n): AssistantStream => {\n const toolControllers = new Map<string, ToolCallStreamController>();\n let currentToolCallArgsText: ToolCallStreamController | undefined;\n\n const endCurrentToolCallArgsText = () => {\n if (!currentToolCallArgsText) return;\n currentToolCallArgsText.argsText.close();\n currentToolCallArgsText = undefined;\n };\n\n const transformer = new AssistantTransformStream<\n TextStreamPart<Record<string, Tool>>\n >({\n transform(chunk, controller) {\n const { type } = chunk;\n\n if (\n type !== \"tool-call-delta\" &&\n type !== \"tool-call\" &&\n type !== \"error\" &&\n (type as string) !== \"tool-result\"\n ) {\n endCurrentToolCallArgsText();\n }\n\n switch (type) {\n case \"text-delta\": {\n const { textDelta } = chunk;\n controller.appendText(textDelta);\n break;\n }\n case \"reasoning\": {\n const { textDelta } = chunk;\n controller.appendReasoning(textDelta);\n break;\n }\n case \"tool-call-streaming-start\": {\n const { toolCallId, toolName } = chunk;\n currentToolCallArgsText = controller.addToolCallPart({\n toolCallId,\n toolName,\n });\n toolControllers.set(toolCallId, currentToolCallArgsText);\n break;\n }\n case \"tool-call-delta\": {\n const { toolCallId, argsTextDelta } = chunk;\n const toolController = toolControllers.get(toolCallId);\n if (!toolController) throw new Error(\"Tool call not found\");\n toolController.argsText.append(argsTextDelta);\n break;\n }\n case \"tool-result\" as string: {\n const { toolCallId, result } = chunk as unknown as {\n toolCallId: string;\n result: ReadonlyJSONValue;\n };\n const toolController = toolControllers.get(toolCallId);\n if (!toolController) throw new Error(\"Tool call not found\");\n toolController.setResponse({\n result,\n });\n toolController.close();\n toolControllers.delete(toolCallId);\n break;\n }\n case \"tool-call\": {\n const { toolCallId, toolName, args } = chunk;\n const toolController = controller.addToolCallPart({\n toolCallId,\n toolName,\n });\n toolController.argsText.append(JSON.stringify(args));\n toolController.argsText.close();\n toolControllers.set(toolCallId, toolController);\n break;\n }\n\n case \"step-start\":\n controller.enqueue({\n type: \"step-start\",\n path: [],\n messageId: chunk.messageId,\n });\n break;\n case \"step-finish\":\n controller.enqueue({\n type: \"step-finish\",\n path: [],\n finishReason: chunk.finishReason,\n usage: chunk.usage,\n isContinued: chunk.isContinued,\n });\n break;\n case \"error\":\n controller.enqueue({\n type: \"error\",\n path: [],\n error: String(chunk.error),\n });\n break;\n\n case \"finish\": {\n controller.enqueue({\n type: \"message-finish\",\n path: [],\n finishReason: chunk.finishReason,\n usage: chunk.usage,\n });\n break;\n }\n\n case \"source\":\n controller.appendSource({\n type: \"source\",\n ...chunk.source,\n });\n break;\n\n case \"file\":\n controller.appendFile({\n type: \"file\",\n mimeType: chunk.mimeType,\n data: chunk.base64,\n });\n break;\n\n case \"reasoning-signature\":\n case \"redacted-reasoning\":\n // ignore these for now\n break;\n\n default: {\n const unhandledType: never = type;\n throw new Error(`Unhandled chunk type: ${unhandledType}`);\n }\n }\n },\n flush() {\n for (const toolController of toolControllers.values()) {\n toolController.close();\n }\n toolControllers.clear();\n },\n });\n\n return stream.pipeThrough(transformer);\n};\n\nexport const fromStreamObject = (\n stream: ReadableStream<ObjectStreamPart<unknown>>,\n toolName: string,\n): AssistantStream => {\n let toolCall!: ToolCallStreamController;\n const transformer = new AssistantTransformStream<ObjectStreamPart<unknown>>({\n start(controller) {\n toolCall = controller.addToolCallPart(toolName);\n },\n transform(chunk, controller) {\n const { type } = chunk;\n switch (type) {\n case \"text-delta\": {\n const { textDelta } = chunk;\n toolCall.argsText.append(textDelta);\n break;\n }\n case \"finish\": {\n toolCall.argsText.close();\n toolCall.setResponse({\n result: \"{}\",\n });\n break;\n }\n\n case \"object\":\n break;\n\n case \"error\": {\n controller.enqueue({\n type: \"error\",\n path: [],\n error: String(chunk.error),\n });\n break;\n }\n\n default: {\n const unhandledType: never = type;\n throw new Error(`Unhandled chunk type: ${unhandledType}`);\n }\n }\n },\n });\n\n return stream.pipeThrough(transformer);\n};\n"],"mappings":";AAEA,SAAS,gCAAgC;AAIlC,IAAM,iBAAiB,CAC5B,WACoB;AACpB,QAAM,kBAAkB,oBAAI,IAAsC;AAClE,MAAI;AAEJ,QAAM,6BAA6B,MAAM;AACvC,QAAI,CAAC,wBAAyB;AAC9B,4BAAwB,SAAS,MAAM;AACvC,8BAA0B;AAAA,EAC5B;AAEA,QAAM,cAAc,IAAI,yBAEtB;AAAA,IACA,UAAU,OAAO,YAAY;AAC3B,YAAM,EAAE,KAAK,IAAI;AAEjB,UACE,SAAS,qBACT,SAAS,eACT,SAAS,WACR,SAAoB,eACrB;AACA,mCAA2B;AAAA,MAC7B;AAEA,cAAQ,MAAM;AAAA,QACZ,KAAK,cAAc;AACjB,gBAAM,EAAE,UAAU,IAAI;AACtB,qBAAW,WAAW,SAAS;AAC/B;AAAA,QACF;AAAA,QACA,KAAK,aAAa;AAChB,gBAAM,EAAE,UAAU,IAAI;AACtB,qBAAW,gBAAgB,SAAS;AACpC;AAAA,QACF;AAAA,QACA,KAAK,6BAA6B;AAChC,gBAAM,EAAE,YAAY,SAAS,IAAI;AACjC,oCAA0B,WAAW,gBAAgB;AAAA,YACnD;AAAA,YACA;AAAA,UACF,CAAC;AACD,0BAAgB,IAAI,YAAY,uBAAuB;AACvD;AAAA,QACF;AAAA,QACA,KAAK,mBAAmB;AACtB,gBAAM,EAAE,YAAY,cAAc,IAAI;AACtC,gBAAM,iBAAiB,gBAAgB,IAAI,UAAU;AACrD,cAAI,CAAC,eAAgB,OAAM,IAAI,MAAM,qBAAqB;AAC1D,yBAAe,SAAS,OAAO,aAAa;AAC5C;AAAA,QACF;AAAA,QACA,KAAK,eAAyB;AAC5B,gBAAM,EAAE,YAAY,OAAO,IAAI;AAI/B,gBAAM,iBAAiB,gBAAgB,IAAI,UAAU;AACrD,cAAI,CAAC,eAAgB,OAAM,IAAI,MAAM,qBAAqB;AAC1D,yBAAe,YAAY;AAAA,YACzB;AAAA,UACF,CAAC;AACD,yBAAe,MAAM;AACrB,0BAAgB,OAAO,UAAU;AACjC;AAAA,QACF;AAAA,QACA,KAAK,aAAa;AAChB,gBAAM,EAAE,YAAY,UAAU,KAAK,IAAI;AACvC,gBAAM,iBAAiB,WAAW,gBAAgB;AAAA,YAChD;AAAA,YACA;AAAA,UACF,CAAC;AACD,yBAAe,SAAS,OAAO,KAAK,UAAU,IAAI,CAAC;AACnD,yBAAe,SAAS,MAAM;AAC9B,0BAAgB,IAAI,YAAY,cAAc;AAC9C;AAAA,QACF;AAAA,QAEA,KAAK;AACH,qBAAW,QAAQ;AAAA,YACjB,MAAM;AAAA,YACN,MAAM,CAAC;AAAA,YACP,WAAW,MAAM;AAAA,UACnB,CAAC;AACD;AAAA,QACF,KAAK;AACH,qBAAW,QAAQ;AAAA,YACjB,MAAM;AAAA,YACN,MAAM,CAAC;AAAA,YACP,cAAc,MAAM;AAAA,YACpB,OAAO,MAAM;AAAA,YACb,aAAa,MAAM;AAAA,UACrB,CAAC;AACD;AAAA,QACF,KAAK;AACH,qBAAW,QAAQ;AAAA,YACjB,MAAM;AAAA,YACN,MAAM,CAAC;AAAA,YACP,OAAO,OAAO,MAAM,KAAK;AAAA,UAC3B,CAAC;AACD;AAAA,QAEF,KAAK,UAAU;AACb,qBAAW,QAAQ;AAAA,YACjB,MAAM;AAAA,YACN,MAAM,CAAC;AAAA,YACP,cAAc,MAAM;AAAA,YACpB,OAAO,MAAM;AAAA,UACf,CAAC;AACD;AAAA,QACF;AAAA,QAEA,KAAK;AACH,qBAAW,aAAa;AAAA,YACtB,MAAM;AAAA,YACN,GAAG,MAAM;AAAA,UACX,CAAC;AACD;AAAA,QAEF,KAAK;AACH,qBAAW,WAAW;AAAA,YACpB,MAAM;AAAA,YACN,UAAU,MAAM;AAAA,YAChB,MAAM,MAAM;AAAA,UACd,CAAC;AACD;AAAA,QAEF,KAAK;AAAA,QACL,KAAK;AAEH;AAAA,QAEF,SAAS;AACP,gBAAM,gBAAuB;AAC7B,gBAAM,IAAI,MAAM,yBAAyB,aAAa,EAAE;AAAA,QAC1D;AAAA,MACF;AAAA,IACF;AAAA,IACA,QAAQ;AACN,iBAAW,kBAAkB,gBAAgB,OAAO,GAAG;AACrD,uBAAe,MAAM;AAAA,MACvB;AACA,sBAAgB,MAAM;AAAA,IACxB;AAAA,EACF,CAAC;AAED,SAAO,OAAO,YAAY,WAAW;AACvC;AAEO,IAAM,mBAAmB,CAC9B,QACA,aACoB;AACpB,MAAI;AACJ,QAAM,cAAc,IAAI,yBAAoD;AAAA,IAC1E,MAAM,YAAY;AAChB,iBAAW,WAAW,gBAAgB,QAAQ;AAAA,IAChD;AAAA,IACA,UAAU,OAAO,YAAY;AAC3B,YAAM,EAAE,KAAK,IAAI;AACjB,cAAQ,MAAM;AAAA,QACZ,KAAK,cAAc;AACjB,gBAAM,EAAE,UAAU,IAAI;AACtB,mBAAS,SAAS,OAAO,SAAS;AAClC;AAAA,QACF;AAAA,QACA,KAAK,UAAU;AACb,mBAAS,SAAS,MAAM;AACxB,mBAAS,YAAY;AAAA,YACnB,QAAQ;AAAA,UACV,CAAC;AACD;AAAA,QACF;AAAA,QAEA,KAAK;AACH;AAAA,QAEF,KAAK,SAAS;AACZ,qBAAW,QAAQ;AAAA,YACjB,MAAM;AAAA,YACN,MAAM,CAAC;AAAA,YACP,OAAO,OAAO,MAAM,KAAK;AAAA,UAC3B,CAAC;AACD;AAAA,QACF;AAAA,QAEA,SAAS;AACP,gBAAM,gBAAuB;AAC7B,gBAAM,IAAI,MAAM,yBAAyB,aAAa,EAAE;AAAA,QAC1D;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AAED,SAAO,OAAO,YAAY,WAAW;AACvC;","names":[]}
@@ -1,6 +0,0 @@
1
- import type { LanguageModelV1StreamPart } from "ai";
2
- import { AssistantTransformStream } from "../core/utils/stream/AssistantTransformStream";
3
- export declare class LanguageModelV1StreamDecoder extends AssistantTransformStream<LanguageModelV1StreamPart> {
4
- constructor();
5
- }
6
- //# sourceMappingURL=language-model.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"language-model.d.ts","sourceRoot":"","sources":["../../src/ai-sdk/language-model.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,IAAI,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AAOzF,qBAAa,4BAA6B,SAAQ,wBAAwB,CAAC,yBAAyB,CAAC;;CAiHpG"}
@@ -1,106 +0,0 @@
1
- // src/ai-sdk/language-model.ts
2
- import { AssistantTransformStream } from "../core/utils/stream/AssistantTransformStream.mjs";
3
- function bufferToBase64(buffer) {
4
- return btoa(String.fromCharCode(...buffer));
5
- }
6
- var LanguageModelV1StreamDecoder = class extends AssistantTransformStream {
7
- constructor() {
8
- let currentToolCall;
9
- const endCurrentToolCall = () => {
10
- if (!currentToolCall) return;
11
- currentToolCall.controller.argsText.close();
12
- currentToolCall.controller.close();
13
- currentToolCall = void 0;
14
- };
15
- super({
16
- transform(chunk, controller) {
17
- const { type } = chunk;
18
- if (type === "text-delta" || type === "reasoning") {
19
- endCurrentToolCall();
20
- }
21
- switch (type) {
22
- case "text-delta": {
23
- controller.appendText(chunk.textDelta);
24
- break;
25
- }
26
- case "reasoning": {
27
- controller.appendReasoning(chunk.textDelta);
28
- break;
29
- }
30
- case "source": {
31
- controller.appendSource({
32
- type: "source",
33
- ...chunk.source
34
- });
35
- break;
36
- }
37
- case "file": {
38
- controller.appendFile({
39
- type: "file",
40
- mimeType: chunk.mimeType,
41
- data: typeof chunk.data === "string" ? chunk.data : bufferToBase64(chunk.data)
42
- });
43
- break;
44
- }
45
- case "tool-call-delta": {
46
- const { toolCallId, toolName, argsTextDelta } = chunk;
47
- if (currentToolCall?.toolCallId === toolCallId) {
48
- currentToolCall.controller.argsText.append(argsTextDelta);
49
- } else {
50
- endCurrentToolCall();
51
- currentToolCall = {
52
- toolCallId,
53
- controller: controller.addToolCallPart({
54
- toolCallId,
55
- toolName
56
- })
57
- };
58
- currentToolCall.controller.argsText.append(argsTextDelta);
59
- }
60
- break;
61
- }
62
- case "tool-call": {
63
- const { toolCallId, toolName, args } = chunk;
64
- if (currentToolCall?.toolCallId === toolCallId) {
65
- currentToolCall.controller.argsText.close();
66
- } else {
67
- const toolController = controller.addToolCallPart({
68
- toolCallId,
69
- toolName,
70
- argsText: args
71
- });
72
- toolController.close();
73
- }
74
- break;
75
- }
76
- case "finish": {
77
- controller.enqueue({
78
- type: "message-finish",
79
- finishReason: chunk.finishReason,
80
- usage: chunk.usage,
81
- path: []
82
- });
83
- controller.close();
84
- break;
85
- }
86
- case "error":
87
- case "response-metadata":
88
- case "reasoning-signature":
89
- case "redacted-reasoning":
90
- break;
91
- default: {
92
- const unhandledType = type;
93
- throw new Error(`Unhandled chunk type: ${unhandledType}`);
94
- }
95
- }
96
- },
97
- flush() {
98
- endCurrentToolCall();
99
- }
100
- });
101
- }
102
- };
103
- export {
104
- LanguageModelV1StreamDecoder
105
- };
106
- //# sourceMappingURL=language-model.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/ai-sdk/language-model.ts"],"sourcesContent":["import type { LanguageModelV1StreamPart } from \"ai\";\nimport { AssistantTransformStream } from \"../core/utils/stream/AssistantTransformStream\";\nimport { ToolCallStreamController } from \"../core/modules/tool-call\";\n\nfunction bufferToBase64(buffer: Uint8Array) {\n return btoa(String.fromCharCode(...buffer));\n}\n\nexport class LanguageModelV1StreamDecoder extends AssistantTransformStream<LanguageModelV1StreamPart> {\n constructor() {\n let currentToolCall:\n | { toolCallId: string; controller: ToolCallStreamController }\n | undefined;\n\n const endCurrentToolCall = () => {\n if (!currentToolCall) return;\n currentToolCall.controller.argsText.close();\n currentToolCall.controller.close();\n currentToolCall = undefined;\n };\n\n super({\n transform(chunk, controller) {\n const { type } = chunk;\n if (type === \"text-delta\" || type === \"reasoning\") {\n endCurrentToolCall();\n }\n\n switch (type) {\n case \"text-delta\": {\n controller.appendText(chunk.textDelta);\n break;\n }\n case \"reasoning\": {\n controller.appendReasoning(chunk.textDelta);\n break;\n }\n\n case \"source\": {\n controller.appendSource({\n type: \"source\",\n ...chunk.source,\n });\n break;\n }\n\n case \"file\": {\n controller.appendFile({\n type: \"file\",\n mimeType: chunk.mimeType,\n data:\n typeof chunk.data === \"string\"\n ? chunk.data\n : bufferToBase64(chunk.data),\n });\n break;\n }\n\n case \"tool-call-delta\": {\n const { toolCallId, toolName, argsTextDelta } = chunk;\n if (currentToolCall?.toolCallId === toolCallId) {\n currentToolCall.controller.argsText.append(argsTextDelta);\n } else {\n endCurrentToolCall();\n currentToolCall = {\n toolCallId,\n controller: controller.addToolCallPart({\n toolCallId,\n toolName,\n }),\n };\n currentToolCall.controller.argsText.append(argsTextDelta);\n }\n\n break;\n }\n\n case \"tool-call\": {\n const { toolCallId, toolName, args } = chunk;\n\n if (currentToolCall?.toolCallId === toolCallId) {\n currentToolCall.controller.argsText.close();\n } else {\n const toolController = controller.addToolCallPart({\n toolCallId,\n toolName,\n argsText: args,\n });\n toolController.close();\n }\n\n break;\n }\n case \"finish\": {\n controller.enqueue({\n type: \"message-finish\",\n finishReason: chunk.finishReason,\n usage: chunk.usage,\n path: [],\n });\n controller.close();\n break;\n }\n\n case \"error\":\n case \"response-metadata\":\n case \"reasoning-signature\":\n case \"redacted-reasoning\":\n break;\n\n default: {\n const unhandledType: never = type;\n throw new Error(`Unhandled chunk type: ${unhandledType}`);\n }\n }\n },\n flush() {\n endCurrentToolCall();\n },\n });\n }\n}\n"],"mappings":";AACA,SAAS,gCAAgC;AAGzC,SAAS,eAAe,QAAoB;AAC1C,SAAO,KAAK,OAAO,aAAa,GAAG,MAAM,CAAC;AAC5C;AAEO,IAAM,+BAAN,cAA2C,yBAAoD;AAAA,EACpG,cAAc;AACZ,QAAI;AAIJ,UAAM,qBAAqB,MAAM;AAC/B,UAAI,CAAC,gBAAiB;AACtB,sBAAgB,WAAW,SAAS,MAAM;AAC1C,sBAAgB,WAAW,MAAM;AACjC,wBAAkB;AAAA,IACpB;AAEA,UAAM;AAAA,MACJ,UAAU,OAAO,YAAY;AAC3B,cAAM,EAAE,KAAK,IAAI;AACjB,YAAI,SAAS,gBAAgB,SAAS,aAAa;AACjD,6BAAmB;AAAA,QACrB;AAEA,gBAAQ,MAAM;AAAA,UACZ,KAAK,cAAc;AACjB,uBAAW,WAAW,MAAM,SAAS;AACrC;AAAA,UACF;AAAA,UACA,KAAK,aAAa;AAChB,uBAAW,gBAAgB,MAAM,SAAS;AAC1C;AAAA,UACF;AAAA,UAEA,KAAK,UAAU;AACb,uBAAW,aAAa;AAAA,cACtB,MAAM;AAAA,cACN,GAAG,MAAM;AAAA,YACX,CAAC;AACD;AAAA,UACF;AAAA,UAEA,KAAK,QAAQ;AACX,uBAAW,WAAW;AAAA,cACpB,MAAM;AAAA,cACN,UAAU,MAAM;AAAA,cAChB,MACE,OAAO,MAAM,SAAS,WAClB,MAAM,OACN,eAAe,MAAM,IAAI;AAAA,YACjC,CAAC;AACD;AAAA,UACF;AAAA,UAEA,KAAK,mBAAmB;AACtB,kBAAM,EAAE,YAAY,UAAU,cAAc,IAAI;AAChD,gBAAI,iBAAiB,eAAe,YAAY;AAC9C,8BAAgB,WAAW,SAAS,OAAO,aAAa;AAAA,YAC1D,OAAO;AACL,iCAAmB;AACnB,gCAAkB;AAAA,gBAChB;AAAA,gBACA,YAAY,WAAW,gBAAgB;AAAA,kBACrC;AAAA,kBACA;AAAA,gBACF,CAAC;AAAA,cACH;AACA,8BAAgB,WAAW,SAAS,OAAO,aAAa;AAAA,YAC1D;AAEA;AAAA,UACF;AAAA,UAEA,KAAK,aAAa;AAChB,kBAAM,EAAE,YAAY,UAAU,KAAK,IAAI;AAEvC,gBAAI,iBAAiB,eAAe,YAAY;AAC9C,8BAAgB,WAAW,SAAS,MAAM;AAAA,YAC5C,OAAO;AACL,oBAAM,iBAAiB,WAAW,gBAAgB;AAAA,gBAChD;AAAA,gBACA;AAAA,gBACA,UAAU;AAAA,cACZ,CAAC;AACD,6BAAe,MAAM;AAAA,YACvB;AAEA;AAAA,UACF;AAAA,UACA,KAAK,UAAU;AACb,uBAAW,QAAQ;AAAA,cACjB,MAAM;AAAA,cACN,cAAc,MAAM;AAAA,cACpB,OAAO,MAAM;AAAA,cACb,MAAM,CAAC;AAAA,YACT,CAAC;AACD,uBAAW,MAAM;AACjB;AAAA,UACF;AAAA,UAEA,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AAAA,UACL,KAAK;AACH;AAAA,UAEF,SAAS;AACP,kBAAM,gBAAuB;AAC7B,kBAAM,IAAI,MAAM,yBAAyB,aAAa,EAAE;AAAA,UAC1D;AAAA,QACF;AAAA,MACF;AAAA,MACA,QAAQ;AACN,2BAAmB;AAAA,MACrB;AAAA,IACF,CAAC;AAAA,EACH;AACF;","names":[]}
package/dist/ai-sdk.d.ts DELETED
@@ -1,3 +0,0 @@
1
- export * from "./ai-sdk/index";
2
- export { LanguageModelV1StreamDecoder } from "./ai-sdk/language-model";
3
- //# sourceMappingURL=ai-sdk.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ai-sdk.d.ts","sourceRoot":"","sources":["../src/ai-sdk.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAC"}
package/dist/ai-sdk.mjs DELETED
@@ -1,7 +0,0 @@
1
- // src/ai-sdk.ts
2
- export * from "./ai-sdk/index.mjs";
3
- import { LanguageModelV1StreamDecoder } from "./ai-sdk/language-model.mjs";
4
- export {
5
- LanguageModelV1StreamDecoder
6
- };
7
- //# sourceMappingURL=ai-sdk.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/ai-sdk.ts"],"sourcesContent":["export * from \"./ai-sdk/index\";\nexport { LanguageModelV1StreamDecoder } from \"./ai-sdk/language-model\";\n"],"mappings":";AAAA,cAAc;AACd,SAAS,oCAAoC;","names":[]}
@@ -1,12 +0,0 @@
1
- import { AssistantStreamChunk } from "./AssistantStreamChunk";
2
- export type AssistantStream = ReadableStream<AssistantStreamChunk>;
3
- export type AssistantStreamEncoder = ReadableWritablePair<Uint8Array, AssistantStreamChunk> & {
4
- headers?: Headers;
5
- };
6
- export declare const AssistantStream: {
7
- toResponse(stream: AssistantStream, transformer: AssistantStreamEncoder): Response;
8
- fromResponse(response: Response, transformer: ReadableWritablePair<AssistantStreamChunk, Uint8Array>): ReadableStream<AssistantStreamChunk>;
9
- toByteStream(stream: AssistantStream, transformer: ReadableWritablePair<Uint8Array, AssistantStreamChunk>): ReadableStream<Uint8Array<ArrayBufferLike>>;
10
- fromByteStream(readable: ReadableStream<Uint8Array>, transformer: ReadableWritablePair<AssistantStreamChunk, Uint8Array>): ReadableStream<AssistantStreamChunk>;
11
- };
12
- //# sourceMappingURL=AssistantStream.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AssistantStream.d.ts","sourceRoot":"","sources":["../../src/core/AssistantStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,MAAM,eAAe,GAAG,cAAc,CAAC,oBAAoB,CAAC,CAAC;AAEnE,MAAM,MAAM,sBAAsB,GAAG,oBAAoB,CACvD,UAAU,EACV,oBAAoB,CACrB,GAAG;IACF,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,eAAe;uBACP,eAAe,eAAe,sBAAsB;2BAO3D,QAAQ,eACL,oBAAoB,CAAC,oBAAoB,EAAE,UAAU,CAAC;yBAM3D,eAAe,eACV,oBAAoB,CAAC,UAAU,EAAE,oBAAoB,CAAC;6BAMzD,cAAc,CAAC,UAAU,CAAC,eACvB,oBAAoB,CAAC,oBAAoB,EAAE,UAAU,CAAC;CAItE,CAAC"}
@@ -1,21 +0,0 @@
1
- // src/core/AssistantStream.ts
2
- var AssistantStream = {
3
- toResponse(stream, transformer) {
4
- return new Response(AssistantStream.toByteStream(stream, transformer), {
5
- headers: transformer.headers ?? {}
6
- });
7
- },
8
- fromResponse(response, transformer) {
9
- return AssistantStream.fromByteStream(response.body, transformer);
10
- },
11
- toByteStream(stream, transformer) {
12
- return stream.pipeThrough(transformer);
13
- },
14
- fromByteStream(readable, transformer) {
15
- return readable.pipeThrough(transformer);
16
- }
17
- };
18
- export {
19
- AssistantStream
20
- };
21
- //# sourceMappingURL=AssistantStream.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/core/AssistantStream.ts"],"sourcesContent":["import { AssistantStreamChunk } from \"./AssistantStreamChunk\";\n\nexport type AssistantStream = ReadableStream<AssistantStreamChunk>;\n\nexport type AssistantStreamEncoder = ReadableWritablePair<\n Uint8Array,\n AssistantStreamChunk\n> & {\n headers?: Headers;\n};\n\nexport const AssistantStream = {\n toResponse(stream: AssistantStream, transformer: AssistantStreamEncoder) {\n return new Response(AssistantStream.toByteStream(stream, transformer), {\n headers: transformer.headers ?? {},\n });\n },\n\n fromResponse(\n response: Response,\n transformer: ReadableWritablePair<AssistantStreamChunk, Uint8Array>,\n ) {\n return AssistantStream.fromByteStream(response.body!, transformer);\n },\n\n toByteStream(\n stream: AssistantStream,\n transformer: ReadableWritablePair<Uint8Array, AssistantStreamChunk>,\n ) {\n return stream.pipeThrough(transformer);\n },\n\n fromByteStream(\n readable: ReadableStream<Uint8Array>,\n transformer: ReadableWritablePair<AssistantStreamChunk, Uint8Array>,\n ) {\n return readable.pipeThrough(transformer);\n },\n};\n"],"mappings":";AAWO,IAAM,kBAAkB;AAAA,EAC7B,WAAW,QAAyB,aAAqC;AACvE,WAAO,IAAI,SAAS,gBAAgB,aAAa,QAAQ,WAAW,GAAG;AAAA,MACrE,SAAS,YAAY,WAAW,CAAC;AAAA,IACnC,CAAC;AAAA,EACH;AAAA,EAEA,aACE,UACA,aACA;AACA,WAAO,gBAAgB,eAAe,SAAS,MAAO,WAAW;AAAA,EACnE;AAAA,EAEA,aACE,QACA,aACA;AACA,WAAO,OAAO,YAAY,WAAW;AAAA,EACvC;AAAA,EAEA,eACE,UACA,aACA;AACA,WAAO,SAAS,YAAY,WAAW;AAAA,EACzC;AACF;","names":[]}
@@ -1,64 +0,0 @@
1
- import { ReadonlyJSONValue } from "../utils/json/json-value";
2
- export type PartInit = {
3
- readonly type: "text" | "reasoning";
4
- } | {
5
- readonly type: "tool-call";
6
- readonly toolCallId: string;
7
- readonly toolName: string;
8
- } | {
9
- readonly type: "source";
10
- readonly sourceType: "url";
11
- readonly id: string;
12
- readonly url: string;
13
- readonly title?: string;
14
- } | {
15
- readonly type: "file";
16
- readonly data: string;
17
- readonly mimeType: string;
18
- };
19
- export type AssistantStreamChunk = {
20
- readonly path: readonly number[];
21
- } & ({
22
- readonly type: "part-start";
23
- readonly part: PartInit;
24
- } | {
25
- readonly type: "part-finish";
26
- } | {
27
- readonly type: "tool-call-args-text-finish";
28
- } | {
29
- readonly type: "text-delta";
30
- readonly textDelta: string;
31
- } | {
32
- readonly type: "annotations";
33
- readonly annotations: ReadonlyJSONValue[];
34
- } | {
35
- readonly type: "data";
36
- readonly data: ReadonlyJSONValue[];
37
- } | {
38
- readonly type: "step-start";
39
- readonly messageId: string;
40
- } | {
41
- readonly type: "step-finish";
42
- readonly finishReason: "stop" | "length" | "content-filter" | "tool-calls" | "error" | "other" | "unknown";
43
- readonly usage: {
44
- readonly promptTokens: number;
45
- readonly completionTokens: number;
46
- };
47
- readonly isContinued: boolean;
48
- } | {
49
- readonly type: "message-finish";
50
- readonly finishReason: "stop" | "length" | "content-filter" | "tool-calls" | "error" | "other" | "unknown";
51
- readonly usage: {
52
- readonly promptTokens: number;
53
- readonly completionTokens: number;
54
- };
55
- } | {
56
- readonly type: "result";
57
- readonly artifact?: ReadonlyJSONValue | undefined;
58
- readonly result: ReadonlyJSONValue;
59
- readonly isError: boolean;
60
- } | {
61
- readonly type: "error";
62
- readonly error: string;
63
- });
64
- //# sourceMappingURL=AssistantStreamChunk.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AssistantStreamChunk.d.ts","sourceRoot":"","sources":["../../src/core/AssistantStreamChunk.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,MAAM,MAAM,QAAQ,GAChB;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;CACrC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC;IAC3B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEN,MAAM,MAAM,oBAAoB,GAAG;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,GAAG,CACtE;IACE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;CACzB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;CAC9B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,4BAA4B,CAAC;CAC7C,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,iBAAiB,EAAE,CAAC;CAC3C,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,iBAAiB,EAAE,CAAC;CACpC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,YAAY,EACjB,MAAM,GACN,QAAQ,GACR,gBAAgB,GAChB,YAAY,GACZ,OAAO,GACP,OAAO,GACP,SAAS,CAAC;IACd,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;KACnC,CAAC;IACF,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;CAC/B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAChC,QAAQ,CAAC,YAAY,EACjB,MAAM,GACN,QAAQ,GACR,gBAAgB,GAChB,YAAY,GACZ,OAAO,GACP,OAAO,GACP,SAAS,CAAC;IACd,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;KACnC,CAAC;CACH,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,QAAQ,CAAC,EAAE,iBAAiB,GAAG,SAAS,CAAC;IAClD,QAAQ,CAAC,MAAM,EAAE,iBAAiB,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;CAC3B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CACJ,CAAC"}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=AssistantStreamChunk.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -1,13 +0,0 @@
1
- import { AssistantStream } from "../AssistantStream";
2
- import { AssistantMessage } from "../utils/types";
3
- export declare class AssistantMessageStream {
4
- readonly readable: ReadableStream<AssistantMessage>;
5
- constructor(readable: ReadableStream<AssistantMessage>);
6
- static fromAssistantStream(stream: AssistantStream): AssistantMessageStream;
7
- unstable_result(): Promise<AssistantMessage>;
8
- [Symbol.asyncIterator](): {
9
- next(): Promise<IteratorResult<AssistantMessage, undefined>>;
10
- };
11
- tee(): [AssistantMessageStream, AssistantMessageStream];
12
- }
13
- //# sourceMappingURL=AssistantMessageStream.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AssistantMessageStream.d.ts","sourceRoot":"","sources":["../../../src/core/accumulators/AssistantMessageStream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGlD,qBAAa,sBAAsB;aACL,QAAQ,EAAE,cAAc,CAAC,gBAAgB,CAAC;gBAA1C,QAAQ,EAAE,cAAc,CAAC,gBAAgB,CAAC;IAItE,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,eAAe;IAM5C,eAAe,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAuBlD,CAAC,MAAM,CAAC,aAAa,CAAC;gBAGJ,OAAO,CAAC,cAAc,CAAC,gBAAgB,EAAE,SAAS,CAAC,CAAC;;IAOtE,GAAG,IAAI,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;CAOxD"}