assistant-stream 0.1.6 → 0.1.7

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 (261) hide show
  1. package/dist/ai-sdk/index.d.ts +5 -0
  2. package/dist/ai-sdk/index.d.ts.map +1 -0
  3. package/dist/ai-sdk/index.js +199 -0
  4. package/dist/ai-sdk/index.js.map +1 -0
  5. package/dist/ai-sdk/index.mjs +173 -0
  6. package/dist/ai-sdk/index.mjs.map +1 -0
  7. package/dist/ai-sdk/language-model.d.ts +6 -0
  8. package/dist/ai-sdk/language-model.d.ts.map +1 -0
  9. package/dist/ai-sdk/language-model.js +131 -0
  10. package/dist/ai-sdk/language-model.js.map +1 -0
  11. package/dist/ai-sdk/language-model.mjs +106 -0
  12. package/dist/ai-sdk/language-model.mjs.map +1 -0
  13. package/dist/ai-sdk.d.ts +3 -24
  14. package/dist/ai-sdk.d.ts.map +1 -0
  15. package/dist/ai-sdk.js +5 -782
  16. package/dist/ai-sdk.js.map +1 -1
  17. package/dist/ai-sdk.mjs +4 -276
  18. package/dist/ai-sdk.mjs.map +1 -1
  19. package/dist/core/AssistantStream.d.ts +12 -0
  20. package/dist/core/AssistantStream.d.ts.map +1 -0
  21. package/dist/core/AssistantStream.js +46 -0
  22. package/dist/core/AssistantStream.js.map +1 -0
  23. package/dist/core/AssistantStream.mjs +21 -0
  24. package/dist/core/AssistantStream.mjs.map +1 -0
  25. package/dist/core/AssistantStreamChunk.d.ts +64 -0
  26. package/dist/core/AssistantStreamChunk.d.ts.map +1 -0
  27. package/dist/core/AssistantStreamChunk.js +19 -0
  28. package/dist/core/AssistantStreamChunk.js.map +1 -0
  29. package/dist/core/AssistantStreamChunk.mjs +1 -0
  30. package/dist/core/AssistantStreamChunk.mjs.map +1 -0
  31. package/dist/core/accumulators/AssistantMessageStream.d.ts +13 -0
  32. package/dist/core/accumulators/AssistantMessageStream.d.ts.map +1 -0
  33. package/dist/core/accumulators/AssistantMessageStream.js +79 -0
  34. package/dist/core/accumulators/AssistantMessageStream.js.map +1 -0
  35. package/dist/core/accumulators/AssistantMessageStream.mjs +54 -0
  36. package/dist/core/accumulators/AssistantMessageStream.mjs.map +1 -0
  37. package/dist/core/accumulators/assistant-message-accumulator.d.ts +8 -0
  38. package/dist/core/accumulators/assistant-message-accumulator.d.ts.map +1 -0
  39. package/dist/core/accumulators/assistant-message-accumulator.js +334 -0
  40. package/dist/core/accumulators/assistant-message-accumulator.js.map +1 -0
  41. package/dist/core/accumulators/assistant-message-accumulator.mjs +309 -0
  42. package/dist/core/accumulators/assistant-message-accumulator.mjs.map +1 -0
  43. package/dist/core/index.d.ts +11 -0
  44. package/dist/core/index.d.ts.map +1 -0
  45. package/dist/core/index.js +55 -0
  46. package/dist/core/index.js.map +1 -0
  47. package/dist/core/index.mjs +26 -0
  48. package/dist/core/index.mjs.map +1 -0
  49. package/dist/core/modules/assistant-stream.d.ts +31 -0
  50. package/dist/core/modules/assistant-stream.d.ts.map +1 -0
  51. package/dist/core/modules/assistant-stream.js +224 -0
  52. package/dist/core/modules/assistant-stream.js.map +1 -0
  53. package/dist/core/modules/assistant-stream.mjs +202 -0
  54. package/dist/core/modules/assistant-stream.mjs.map +1 -0
  55. package/dist/core/modules/text.d.ts +9 -0
  56. package/dist/core/modules/text.d.ts.map +1 -0
  57. package/dist/core/modules/text.js +78 -0
  58. package/dist/core/modules/text.js.map +1 -0
  59. package/dist/core/modules/text.mjs +52 -0
  60. package/dist/core/modules/text.mjs.map +1 -0
  61. package/dist/core/modules/tool-call.d.ts +13 -0
  62. package/dist/core/modules/tool-call.d.ts.map +1 -0
  63. package/dist/core/modules/tool-call.js +110 -0
  64. package/dist/core/modules/tool-call.js.map +1 -0
  65. package/dist/core/modules/tool-call.mjs +84 -0
  66. package/dist/core/modules/tool-call.mjs.map +1 -0
  67. package/dist/core/serialization/PlainText.d.ts +11 -0
  68. package/dist/core/serialization/PlainText.d.ts.map +1 -0
  69. package/dist/core/serialization/PlainText.js +70 -0
  70. package/dist/core/serialization/PlainText.js.map +1 -0
  71. package/dist/core/serialization/PlainText.mjs +44 -0
  72. package/dist/core/serialization/PlainText.mjs.map +1 -0
  73. package/dist/core/serialization/data-stream/DataStream.d.ts +11 -0
  74. package/dist/core/serialization/data-stream/DataStream.d.ts.map +1 -0
  75. package/dist/core/serialization/data-stream/DataStream.js +332 -0
  76. package/dist/core/serialization/data-stream/DataStream.js.map +1 -0
  77. package/dist/core/serialization/data-stream/DataStream.mjs +311 -0
  78. package/dist/core/serialization/data-stream/DataStream.mjs.map +1 -0
  79. package/dist/core/serialization/data-stream/chunk-types.d.ts +86 -0
  80. package/dist/core/serialization/data-stream/chunk-types.d.ts.map +1 -0
  81. package/dist/core/serialization/data-stream/chunk-types.js +49 -0
  82. package/dist/core/serialization/data-stream/chunk-types.js.map +1 -0
  83. package/dist/core/serialization/data-stream/chunk-types.mjs +24 -0
  84. package/dist/core/serialization/data-stream/chunk-types.mjs.map +1 -0
  85. package/dist/core/serialization/data-stream/serialization.d.ts +8 -0
  86. package/dist/core/serialization/data-stream/serialization.d.ts.map +1 -0
  87. package/dist/core/serialization/data-stream/serialization.js +56 -0
  88. package/dist/core/serialization/data-stream/serialization.js.map +1 -0
  89. package/dist/core/serialization/data-stream/serialization.mjs +30 -0
  90. package/dist/core/serialization/data-stream/serialization.mjs.map +1 -0
  91. package/dist/core/tool/ToolCallReader.d.ts +33 -0
  92. package/dist/core/tool/ToolCallReader.d.ts.map +1 -0
  93. package/dist/core/tool/ToolCallReader.js +339 -0
  94. package/dist/core/tool/ToolCallReader.js.map +1 -0
  95. package/dist/core/tool/ToolCallReader.mjs +315 -0
  96. package/dist/core/tool/ToolCallReader.mjs.map +1 -0
  97. package/dist/core/tool/ToolExecutionStream.d.ts +24 -0
  98. package/dist/core/tool/ToolExecutionStream.d.ts.map +1 -0
  99. package/dist/core/tool/ToolExecutionStream.js +165 -0
  100. package/dist/core/tool/ToolExecutionStream.js.map +1 -0
  101. package/dist/core/tool/ToolExecutionStream.mjs +132 -0
  102. package/dist/core/tool/ToolExecutionStream.mjs.map +1 -0
  103. package/dist/core/tool/ToolResponse.d.ts +17 -0
  104. package/dist/core/tool/ToolResponse.d.ts.map +1 -0
  105. package/dist/core/tool/ToolResponse.js +47 -0
  106. package/dist/core/tool/ToolResponse.js.map +1 -0
  107. package/dist/core/tool/ToolResponse.mjs +22 -0
  108. package/dist/core/tool/ToolResponse.mjs.map +1 -0
  109. package/dist/core/tool/index.d.ts +6 -0
  110. package/dist/core/tool/index.d.ts.map +1 -0
  111. package/dist/core/tool/index.js +39 -0
  112. package/dist/core/tool/index.js.map +1 -0
  113. package/dist/core/tool/index.mjs +14 -0
  114. package/dist/core/tool/index.mjs.map +1 -0
  115. package/dist/core/tool/tool-types.d.ts +76 -0
  116. package/dist/core/tool/tool-types.d.ts.map +1 -0
  117. package/dist/core/tool/tool-types.js +19 -0
  118. package/dist/core/tool/tool-types.js.map +1 -0
  119. package/dist/core/tool/tool-types.mjs +1 -0
  120. package/dist/core/tool/tool-types.mjs.map +1 -0
  121. package/dist/core/tool/toolResultStream.d.ts +6 -0
  122. package/dist/core/tool/toolResultStream.d.ts.map +1 -0
  123. package/dist/core/tool/toolResultStream.js +104 -0
  124. package/dist/core/tool/toolResultStream.js.map +1 -0
  125. package/dist/core/tool/toolResultStream.mjs +78 -0
  126. package/dist/core/tool/toolResultStream.mjs.map +1 -0
  127. package/dist/core/tool/type-path-utils.d.ts +23 -0
  128. package/dist/core/tool/type-path-utils.d.ts.map +1 -0
  129. package/dist/core/tool/type-path-utils.js +19 -0
  130. package/dist/core/tool/type-path-utils.js.map +1 -0
  131. package/dist/core/tool/type-path-utils.mjs +1 -0
  132. package/dist/core/tool/type-path-utils.mjs.map +1 -0
  133. package/dist/core/utils/Counter.d.ts +5 -0
  134. package/dist/core/utils/Counter.d.ts.map +1 -0
  135. package/dist/core/utils/Counter.js +36 -0
  136. package/dist/core/utils/Counter.js.map +1 -0
  137. package/dist/core/utils/Counter.mjs +11 -0
  138. package/dist/core/utils/Counter.mjs.map +1 -0
  139. package/dist/core/utils/generateId.d.ts +2 -0
  140. package/dist/core/utils/generateId.d.ts.map +1 -0
  141. package/dist/core/utils/generateId.js +35 -0
  142. package/dist/core/utils/generateId.js.map +1 -0
  143. package/dist/core/utils/generateId.mjs +10 -0
  144. package/dist/core/utils/generateId.mjs.map +1 -0
  145. package/dist/core/utils/stream/AssistantMetaTransformStream.d.ts +20 -0
  146. package/dist/core/utils/stream/AssistantMetaTransformStream.d.ts.map +1 -0
  147. package/dist/core/utils/stream/AssistantMetaTransformStream.js +69 -0
  148. package/dist/core/utils/stream/AssistantMetaTransformStream.js.map +1 -0
  149. package/dist/core/utils/stream/AssistantMetaTransformStream.mjs +44 -0
  150. package/dist/core/utils/stream/AssistantMetaTransformStream.mjs.map +1 -0
  151. package/dist/core/utils/stream/AssistantTransformStream.d.ts +15 -0
  152. package/dist/core/utils/stream/AssistantTransformStream.d.ts.map +1 -0
  153. package/dist/core/utils/stream/AssistantTransformStream.js +69 -0
  154. package/dist/core/utils/stream/AssistantTransformStream.js.map +1 -0
  155. package/dist/core/utils/stream/AssistantTransformStream.mjs +46 -0
  156. package/dist/core/utils/stream/AssistantTransformStream.mjs.map +1 -0
  157. package/dist/core/utils/stream/LineDecoderStream.d.ts +5 -0
  158. package/dist/core/utils/stream/LineDecoderStream.d.ts.map +1 -0
  159. package/dist/core/utils/stream/LineDecoderStream.js +52 -0
  160. package/dist/core/utils/stream/LineDecoderStream.js.map +1 -0
  161. package/dist/core/utils/stream/LineDecoderStream.mjs +27 -0
  162. package/dist/core/utils/stream/LineDecoderStream.mjs.map +1 -0
  163. package/dist/core/utils/stream/PipeableTransformStream.d.ts +4 -0
  164. package/dist/core/utils/stream/PipeableTransformStream.d.ts.map +1 -0
  165. package/dist/core/utils/stream/PipeableTransformStream.js +40 -0
  166. package/dist/core/utils/stream/PipeableTransformStream.js.map +1 -0
  167. package/dist/core/utils/stream/PipeableTransformStream.mjs +15 -0
  168. package/dist/core/utils/stream/PipeableTransformStream.mjs.map +1 -0
  169. package/dist/core/utils/stream/UnderlyingReadable.d.ts +6 -0
  170. package/dist/core/utils/stream/UnderlyingReadable.d.ts.map +1 -0
  171. package/dist/core/utils/stream/UnderlyingReadable.js +19 -0
  172. package/dist/core/utils/stream/UnderlyingReadable.js.map +1 -0
  173. package/dist/core/utils/stream/UnderlyingReadable.mjs +1 -0
  174. package/dist/core/utils/stream/UnderlyingReadable.mjs.map +1 -0
  175. package/dist/core/utils/stream/merge.d.ts +9 -0
  176. package/dist/core/utils/stream/merge.d.ts.map +1 -0
  177. package/dist/core/utils/stream/merge.js +110 -0
  178. package/dist/core/utils/stream/merge.js.map +1 -0
  179. package/dist/core/utils/stream/merge.mjs +85 -0
  180. package/dist/core/utils/stream/merge.mjs.map +1 -0
  181. package/dist/core/utils/stream/path-utils.d.ts +12 -0
  182. package/dist/core/utils/stream/path-utils.d.ts.map +1 -0
  183. package/dist/core/utils/stream/path-utils.js +88 -0
  184. package/dist/core/utils/stream/path-utils.js.map +1 -0
  185. package/dist/core/utils/stream/path-utils.mjs +61 -0
  186. package/dist/core/utils/stream/path-utils.mjs.map +1 -0
  187. package/dist/core/utils/types.d.ts +102 -0
  188. package/dist/core/utils/types.d.ts.map +1 -0
  189. package/dist/core/utils/types.js +19 -0
  190. package/dist/core/utils/types.js.map +1 -0
  191. package/dist/core/utils/types.mjs +1 -0
  192. package/dist/core/utils/types.mjs.map +1 -0
  193. package/dist/core/utils/withPromiseOrValue.d.ts +2 -0
  194. package/dist/core/utils/withPromiseOrValue.d.ts.map +1 -0
  195. package/dist/core/utils/withPromiseOrValue.js +42 -0
  196. package/dist/core/utils/withPromiseOrValue.js.map +1 -0
  197. package/dist/core/utils/withPromiseOrValue.mjs +17 -0
  198. package/dist/core/utils/withPromiseOrValue.mjs.map +1 -0
  199. package/dist/index.d.ts +2 -153
  200. package/dist/index.d.ts.map +1 -0
  201. package/dist/index.js +3 -2318
  202. package/dist/index.js.map +1 -1
  203. package/dist/index.mjs +2 -957
  204. package/dist/index.mjs.map +1 -1
  205. package/dist/utils/AsyncIterableStream.d.ts +3 -0
  206. package/dist/utils/AsyncIterableStream.d.ts.map +1 -0
  207. package/dist/utils/AsyncIterableStream.js +46 -0
  208. package/dist/utils/AsyncIterableStream.js.map +1 -0
  209. package/dist/utils/AsyncIterableStream.mjs +21 -0
  210. package/dist/utils/AsyncIterableStream.mjs.map +1 -0
  211. package/dist/utils/json/fix-json.d.ts +2 -0
  212. package/dist/utils/json/fix-json.d.ts.map +1 -0
  213. package/dist/{chunk-PQLDKUPN.mjs → utils/json/fix-json.js} +28 -66
  214. package/dist/utils/json/fix-json.js.map +1 -0
  215. package/dist/utils/json/fix-json.mjs +362 -0
  216. package/dist/utils/json/fix-json.mjs.map +1 -0
  217. package/dist/utils/json/is-json.d.ts +5 -0
  218. package/dist/utils/json/is-json.d.ts.map +1 -0
  219. package/dist/utils/json/is-json.js +56 -0
  220. package/dist/utils/json/is-json.js.map +1 -0
  221. package/dist/utils/json/is-json.mjs +29 -0
  222. package/dist/utils/json/is-json.mjs.map +1 -0
  223. package/dist/utils/json/json-value.d.ts +6 -0
  224. package/dist/utils/json/json-value.d.ts.map +1 -0
  225. package/dist/utils/json/json-value.js +19 -0
  226. package/dist/utils/json/json-value.js.map +1 -0
  227. package/dist/utils/json/json-value.mjs +1 -0
  228. package/dist/utils/json/json-value.mjs.map +1 -0
  229. package/dist/utils/json/parse-partial-json-object.d.ts +14 -0
  230. package/dist/utils/json/parse-partial-json-object.d.ts.map +1 -0
  231. package/dist/utils/json/parse-partial-json-object.js +102 -0
  232. package/dist/utils/json/parse-partial-json-object.js.map +1 -0
  233. package/dist/utils/json/parse-partial-json-object.mjs +65 -0
  234. package/dist/utils/json/parse-partial-json-object.mjs.map +1 -0
  235. package/dist/utils/json/parse-partial-json-object.test.d.ts +2 -0
  236. package/dist/utils/json/parse-partial-json-object.test.d.ts.map +1 -0
  237. package/dist/utils/promiseWithResolvers.d.ts +6 -0
  238. package/dist/utils/promiseWithResolvers.d.ts.map +1 -0
  239. package/dist/utils/promiseWithResolvers.js +40 -0
  240. package/dist/utils/promiseWithResolvers.js.map +1 -0
  241. package/dist/utils/promiseWithResolvers.mjs +15 -0
  242. package/dist/utils/promiseWithResolvers.mjs.map +1 -0
  243. package/dist/utils.d.ts +4 -16
  244. package/dist/utils.d.ts.map +1 -0
  245. package/dist/utils.js +5 -451
  246. package/dist/utils.js.map +1 -1
  247. package/dist/utils.mjs +7 -21
  248. package/dist/utils.mjs.map +1 -1
  249. package/package.json +1 -1
  250. package/dist/AsyncIterableStream-C3C8ZoXv.d.mts +0 -4
  251. package/dist/AsyncIterableStream-C3C8ZoXv.d.ts +0 -4
  252. package/dist/ai-sdk.d.mts +0 -24
  253. package/dist/assistant-stream-ISFjQ0mQ.d.mts +0 -225
  254. package/dist/assistant-stream-kAoIMgvk.d.ts +0 -225
  255. package/dist/chunk-EDE6WQ2R.mjs +0 -943
  256. package/dist/chunk-EDE6WQ2R.mjs.map +0 -1
  257. package/dist/chunk-PQLDKUPN.mjs.map +0 -1
  258. package/dist/index.d.mts +0 -153
  259. package/dist/json-value-Ch5eKkQ_.d.mts +0 -7
  260. package/dist/json-value-Ch5eKkQ_.d.ts +0 -7
  261. package/dist/utils.d.mts +0 -16
package/dist/ai-sdk.js CHANGED
@@ -15,797 +15,20 @@ var __copyProps = (to, from, except, desc) => {
15
15
  }
16
16
  return to;
17
17
  };
18
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
18
19
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
20
 
20
21
  // src/ai-sdk.ts
21
22
  var ai_sdk_exports = {};
22
23
  __export(ai_sdk_exports, {
23
- LanguageModelV1StreamDecoder: () => LanguageModelV1StreamDecoder,
24
- fromStreamObject: () => fromStreamObject,
25
- fromStreamText: () => fromStreamText
24
+ LanguageModelV1StreamDecoder: () => import_language_model.LanguageModelV1StreamDecoder
26
25
  });
27
26
  module.exports = __toCommonJS(ai_sdk_exports);
28
-
29
- // src/utils/promiseWithResolvers.ts
30
- var promiseWithResolvers = function() {
31
- let resolve;
32
- let reject;
33
- const promise = new Promise((res, rej) => {
34
- resolve = res;
35
- reject = rej;
36
- });
37
- if (!resolve || !reject) throw new Error("Failed to create promise");
38
- return { promise, resolve, reject };
39
- };
40
-
41
- // src/core/utils/stream/merge.ts
42
- var createMergeStream = () => {
43
- const list = [];
44
- let sealed = false;
45
- let controller;
46
- let currentPull;
47
- const handlePull = (item) => {
48
- if (!item.promise) {
49
- item.promise = item.reader.read().then(({ done, value }) => {
50
- item.promise = void 0;
51
- if (done) {
52
- list.splice(list.indexOf(item), 1);
53
- if (sealed && list.length === 0) {
54
- controller.close();
55
- }
56
- } else {
57
- controller.enqueue(value);
58
- }
59
- currentPull?.resolve();
60
- currentPull = void 0;
61
- }).catch((e) => {
62
- console.error(e);
63
- list.forEach((item2) => {
64
- item2.reader.cancel();
65
- });
66
- list.length = 0;
67
- controller.error(e);
68
- currentPull?.reject(e);
69
- currentPull = void 0;
70
- });
71
- }
72
- };
73
- const readable = new ReadableStream({
74
- start(c) {
75
- controller = c;
76
- },
77
- pull() {
78
- currentPull = promiseWithResolvers();
79
- list.forEach((item) => {
80
- handlePull(item);
81
- });
82
- return currentPull.promise;
83
- },
84
- cancel() {
85
- list.forEach((item) => {
86
- item.reader.cancel();
87
- });
88
- list.length = 0;
89
- }
90
- });
91
- return {
92
- readable,
93
- isSealed() {
94
- return sealed;
95
- },
96
- seal() {
97
- sealed = true;
98
- if (list.length === 0) controller.close();
99
- },
100
- addStream(stream) {
101
- if (sealed)
102
- throw new Error(
103
- "Cannot add streams after the run callback has settled."
104
- );
105
- const item = { reader: stream.getReader() };
106
- list.push(item);
107
- handlePull(item);
108
- },
109
- enqueue(chunk) {
110
- this.addStream(
111
- new ReadableStream({
112
- start(c) {
113
- c.enqueue(chunk);
114
- c.close();
115
- }
116
- })
117
- );
118
- }
119
- };
120
- };
121
-
122
- // src/core/modules/text.ts
123
- var TextStreamControllerImpl = class {
124
- _controller;
125
- _isClosed = false;
126
- constructor(controller) {
127
- this._controller = controller;
128
- }
129
- append(textDelta) {
130
- this._controller.enqueue({
131
- type: "text-delta",
132
- path: [],
133
- textDelta
134
- });
135
- return this;
136
- }
137
- close() {
138
- if (this._isClosed) return;
139
- this._isClosed = true;
140
- this._controller.enqueue({
141
- type: "part-finish",
142
- path: []
143
- });
144
- this._controller.close();
145
- }
146
- };
147
- var createTextStream = (readable) => {
148
- return new ReadableStream({
149
- start(c) {
150
- return readable.start?.(new TextStreamControllerImpl(c));
151
- },
152
- pull(c) {
153
- return readable.pull?.(new TextStreamControllerImpl(c));
154
- },
155
- cancel(c) {
156
- return readable.cancel?.(c);
157
- }
158
- });
159
- };
160
- var createTextStreamController = () => {
161
- let controller;
162
- const stream = createTextStream({
163
- start(c) {
164
- controller = c;
165
- }
166
- });
167
- return [stream, controller];
168
- };
169
-
170
- // src/core/modules/tool-call.ts
171
- var ToolCallStreamControllerImpl = class {
172
- constructor(_controller) {
173
- this._controller = _controller;
174
- const stream = createTextStream({
175
- start: (c) => {
176
- this._argsTextController = c;
177
- }
178
- });
179
- this._mergeTask = stream.pipeTo(
180
- new WritableStream({
181
- write: (chunk) => {
182
- switch (chunk.type) {
183
- case "text-delta":
184
- this._controller.enqueue(chunk);
185
- break;
186
- case "part-finish":
187
- this._controller.enqueue({
188
- type: "tool-call-args-text-finish",
189
- path: []
190
- });
191
- break;
192
- default:
193
- throw new Error(`Unexpected chunk type: ${chunk.type}`);
194
- }
195
- }
196
- })
197
- );
198
- }
199
- _isClosed = false;
200
- _mergeTask;
201
- get argsText() {
202
- return this._argsTextController;
203
- }
204
- _argsTextController;
205
- setResponse(response) {
206
- this._controller.enqueue({
207
- type: "result",
208
- path: [],
209
- artifact: response.artifact,
210
- result: response.result,
211
- isError: response.isError ?? false
212
- });
213
- }
214
- async close() {
215
- if (this._isClosed) return;
216
- this._isClosed = true;
217
- this._argsTextController.close();
218
- await this._mergeTask;
219
- this._controller.enqueue({
220
- type: "part-finish",
221
- path: []
222
- });
223
- this._controller.close();
224
- }
225
- };
226
- var createToolCallStream = (readable) => {
227
- return new ReadableStream({
228
- start(c) {
229
- return readable.start?.(new ToolCallStreamControllerImpl(c));
230
- },
231
- pull(c) {
232
- return readable.pull?.(new ToolCallStreamControllerImpl(c));
233
- },
234
- cancel(c) {
235
- return readable.cancel?.(c);
236
- }
237
- });
238
- };
239
- var createToolCallStreamController = () => {
240
- let controller;
241
- const stream = createToolCallStream({
242
- start(c) {
243
- controller = c;
244
- }
245
- });
246
- return [stream, controller];
247
- };
248
-
249
- // src/core/utils/Counter.ts
250
- var Counter = class {
251
- value = -1;
252
- up() {
253
- return ++this.value;
254
- }
255
- };
256
-
257
- // src/core/utils/stream/path-utils.ts
258
- var PathAppendEncoder = class extends TransformStream {
259
- constructor(idx) {
260
- super({
261
- transform(chunk, controller) {
262
- controller.enqueue({
263
- ...chunk,
264
- path: [idx, ...chunk.path]
265
- });
266
- }
267
- });
268
- }
269
- };
270
- var PathAppendDecoder = class extends TransformStream {
271
- constructor(idx) {
272
- super({
273
- transform(chunk, controller) {
274
- const {
275
- path: [idx2, ...path]
276
- } = chunk;
277
- if (idx !== idx2)
278
- throw new Error(`Path mismatch: expected ${idx}, got ${idx2}`);
279
- controller.enqueue({
280
- ...chunk,
281
- path
282
- });
283
- }
284
- });
285
- }
286
- };
287
- var PathMergeEncoder = class extends TransformStream {
288
- constructor(counter) {
289
- const innerCounter = new Counter();
290
- const mapping = /* @__PURE__ */ new Map();
291
- super({
292
- transform(chunk, controller) {
293
- if (chunk.type === "part-start" && chunk.path.length === 0) {
294
- mapping.set(innerCounter.up(), counter.up());
295
- }
296
- const [idx, ...path] = chunk.path;
297
- if (idx === void 0) {
298
- controller.enqueue(chunk);
299
- return;
300
- }
301
- const mappedIdx = mapping.get(idx);
302
- if (mappedIdx === void 0) throw new Error("Path not found");
303
- controller.enqueue({
304
- ...chunk,
305
- path: [mappedIdx, ...path]
306
- });
307
- }
308
- });
309
- }
310
- };
311
-
312
- // src/core/utils/generateId.tsx
313
- var import_non_secure = require("nanoid/non-secure");
314
- var generateId = (0, import_non_secure.customAlphabet)(
315
- "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz",
316
- 7
317
- );
318
-
319
- // src/core/modules/assistant-stream.ts
320
- var AssistantStreamControllerImpl = class {
321
- _merger = createMergeStream();
322
- _append;
323
- _contentCounter = new Counter();
324
- get __internal_isClosed() {
325
- return this._merger.isSealed();
326
- }
327
- __internal_getReadable() {
328
- return this._merger.readable;
329
- }
330
- _closeSubscriber;
331
- __internal_subscribeToClose(callback) {
332
- this._closeSubscriber = callback;
333
- }
334
- _addPart(part, stream) {
335
- if (this._append) {
336
- this._append.controller.close();
337
- this._append = void 0;
338
- }
339
- this.enqueue({
340
- type: "part-start",
341
- part,
342
- path: []
343
- });
344
- this._merger.addStream(
345
- stream.pipeThrough(new PathAppendEncoder(this._contentCounter.value))
346
- );
347
- }
348
- merge(stream) {
349
- this._merger.addStream(
350
- stream.pipeThrough(new PathMergeEncoder(this._contentCounter))
351
- );
352
- }
353
- appendText(textDelta) {
354
- if (this._append?.kind !== "text") {
355
- this._append = {
356
- kind: "text",
357
- controller: this.addTextPart()
358
- };
359
- }
360
- this._append.controller.append(textDelta);
361
- }
362
- appendReasoning(textDelta) {
363
- if (this._append?.kind !== "reasoning") {
364
- this._append = {
365
- kind: "reasoning",
366
- controller: this.addReasoningPart()
367
- };
368
- }
369
- this._append.controller.append(textDelta);
370
- }
371
- addTextPart() {
372
- const [stream, controller] = createTextStreamController();
373
- this._addPart({ type: "text" }, stream);
374
- return controller;
375
- }
376
- addReasoningPart() {
377
- const [stream, controller] = createTextStreamController();
378
- this._addPart({ type: "reasoning" }, stream);
379
- return controller;
380
- }
381
- addToolCallPart(options) {
382
- const opt = typeof options === "string" ? { toolName: options } : options;
383
- const toolName = opt.toolName;
384
- const toolCallId = opt.toolCallId ?? generateId();
385
- const [stream, controller] = createToolCallStreamController();
386
- this._addPart({ type: "tool-call", toolName, toolCallId }, stream);
387
- if (opt.argsText !== void 0) {
388
- controller.argsText.append(opt.argsText);
389
- controller.argsText.close();
390
- }
391
- if (opt.args !== void 0) {
392
- controller.argsText.append(JSON.stringify(opt.args));
393
- controller.argsText.close();
394
- }
395
- if (opt.response !== void 0) {
396
- controller.setResponse(opt.response);
397
- }
398
- return controller;
399
- }
400
- appendSource(options) {
401
- this._addPart(
402
- options,
403
- new ReadableStream({
404
- start(controller) {
405
- controller.enqueue({
406
- type: "part-finish",
407
- path: []
408
- });
409
- controller.close();
410
- }
411
- })
412
- );
413
- }
414
- appendFile(options) {
415
- this._addPart(
416
- options,
417
- new ReadableStream({
418
- start(controller) {
419
- controller.enqueue({
420
- type: "part-finish",
421
- path: []
422
- });
423
- controller.close();
424
- }
425
- })
426
- );
427
- }
428
- enqueue(chunk) {
429
- this._merger.enqueue(chunk);
430
- if (chunk.type === "part-start" && chunk.path.length === 0) {
431
- this._contentCounter.up();
432
- }
433
- }
434
- close() {
435
- this._merger.seal();
436
- this._append?.controller?.close();
437
- this._closeSubscriber?.();
438
- }
439
- };
440
- function createAssistantStream(callback) {
441
- const controller = new AssistantStreamControllerImpl();
442
- let promiseOrVoid;
443
- try {
444
- promiseOrVoid = callback(controller);
445
- } catch (e) {
446
- if (!controller.__internal_isClosed) {
447
- controller.enqueue({
448
- type: "error",
449
- path: [],
450
- error: String(e)
451
- });
452
- controller.close();
453
- }
454
- throw e;
455
- }
456
- if (promiseOrVoid instanceof Promise) {
457
- const runTask = async () => {
458
- try {
459
- await promiseOrVoid;
460
- } catch (e) {
461
- if (!controller.__internal_isClosed) {
462
- controller.enqueue({
463
- type: "error",
464
- path: [],
465
- error: String(e)
466
- });
467
- }
468
- throw e;
469
- } finally {
470
- if (!controller.__internal_isClosed) {
471
- controller.close();
472
- }
473
- }
474
- };
475
- runTask();
476
- } else {
477
- if (!controller.__internal_isClosed) {
478
- controller.close();
479
- }
480
- }
481
- return controller.__internal_getReadable();
482
- }
483
- function createAssistantStreamController() {
484
- const { resolve, promise } = promiseWithResolvers();
485
- let controller;
486
- const stream = createAssistantStream((c) => {
487
- controller = c;
488
- controller.__internal_subscribeToClose(
489
- resolve
490
- );
491
- return promise;
492
- });
493
- return [stream, controller];
494
- }
495
-
496
- // src/core/utils/stream/AssistantTransformStream.ts
497
- var AssistantTransformStream = class extends TransformStream {
498
- constructor(transformer, writableStrategy, readableStrategy) {
499
- const [stream, runController] = createAssistantStreamController();
500
- let runPipeTask;
501
- super(
502
- {
503
- start(controller) {
504
- runPipeTask = stream.pipeTo(
505
- new WritableStream({
506
- write(chunk) {
507
- controller.enqueue(chunk);
508
- },
509
- abort(reason) {
510
- controller.error(reason);
511
- },
512
- close() {
513
- controller.terminate();
514
- }
515
- })
516
- ).catch((error) => {
517
- controller.error(error);
518
- });
519
- return transformer.start?.(runController);
520
- },
521
- transform(chunk) {
522
- return transformer.transform?.(chunk, runController);
523
- },
524
- async flush() {
525
- await transformer.flush?.(runController);
526
- runController.close();
527
- await runPipeTask;
528
- }
529
- },
530
- writableStrategy,
531
- readableStrategy
532
- );
533
- }
534
- };
535
-
536
- // src/ai-sdk/index.ts
537
- var fromStreamText = (stream) => {
538
- const toolControllers = /* @__PURE__ */ new Map();
539
- let currentToolCallArgsText;
540
- const endCurrentToolCallArgsText = () => {
541
- if (!currentToolCallArgsText) return;
542
- currentToolCallArgsText.argsText.close();
543
- currentToolCallArgsText = void 0;
544
- };
545
- const transformer = new AssistantTransformStream({
546
- transform(chunk, controller) {
547
- const { type } = chunk;
548
- if (type !== "tool-call-delta" && type !== "tool-call" && type !== "error" && type !== "tool-result") {
549
- endCurrentToolCallArgsText();
550
- }
551
- switch (type) {
552
- case "text-delta": {
553
- const { textDelta } = chunk;
554
- controller.appendText(textDelta);
555
- break;
556
- }
557
- case "reasoning": {
558
- const { textDelta } = chunk;
559
- controller.appendReasoning(textDelta);
560
- break;
561
- }
562
- case "tool-call-streaming-start": {
563
- const { toolCallId, toolName } = chunk;
564
- currentToolCallArgsText = controller.addToolCallPart({
565
- toolCallId,
566
- toolName
567
- });
568
- toolControllers.set(toolCallId, currentToolCallArgsText);
569
- break;
570
- }
571
- case "tool-call-delta": {
572
- const { toolCallId, argsTextDelta } = chunk;
573
- const toolController = toolControllers.get(toolCallId);
574
- if (!toolController) throw new Error("Tool call not found");
575
- toolController.argsText.append(argsTextDelta);
576
- break;
577
- }
578
- case "tool-result": {
579
- const { toolCallId, result } = chunk;
580
- const toolController = toolControllers.get(toolCallId);
581
- if (!toolController) throw new Error("Tool call not found");
582
- toolController.setResponse({
583
- result
584
- });
585
- toolController.close();
586
- toolControllers.delete(toolCallId);
587
- break;
588
- }
589
- case "tool-call": {
590
- const { toolCallId, toolName, args } = chunk;
591
- const toolController = controller.addToolCallPart({
592
- toolCallId,
593
- toolName
594
- });
595
- toolController.argsText.append(JSON.stringify(args));
596
- toolController.argsText.close();
597
- toolControllers.set(toolCallId, toolController);
598
- break;
599
- }
600
- case "step-start":
601
- controller.enqueue({
602
- type: "step-start",
603
- path: [],
604
- messageId: chunk.messageId
605
- });
606
- break;
607
- case "step-finish":
608
- controller.enqueue({
609
- type: "step-finish",
610
- path: [],
611
- finishReason: chunk.finishReason,
612
- usage: chunk.usage,
613
- isContinued: chunk.isContinued
614
- });
615
- break;
616
- case "error":
617
- controller.enqueue({
618
- type: "error",
619
- path: [],
620
- error: String(chunk.error)
621
- });
622
- break;
623
- case "finish": {
624
- controller.enqueue({
625
- type: "message-finish",
626
- path: [],
627
- finishReason: chunk.finishReason,
628
- usage: chunk.usage
629
- });
630
- break;
631
- }
632
- case "source":
633
- controller.appendSource({
634
- type: "source",
635
- ...chunk.source
636
- });
637
- break;
638
- case "file":
639
- controller.appendFile({
640
- type: "file",
641
- mimeType: chunk.mimeType,
642
- data: chunk.base64
643
- });
644
- break;
645
- case "reasoning-signature":
646
- case "redacted-reasoning":
647
- break;
648
- default: {
649
- const unhandledType = type;
650
- throw new Error(`Unhandled chunk type: ${unhandledType}`);
651
- }
652
- }
653
- },
654
- flush() {
655
- for (const toolController of toolControllers.values()) {
656
- toolController.close();
657
- }
658
- toolControllers.clear();
659
- }
660
- });
661
- return stream.pipeThrough(transformer);
662
- };
663
- var fromStreamObject = (stream, toolName) => {
664
- let toolCall;
665
- const transformer = new AssistantTransformStream({
666
- start(controller) {
667
- toolCall = controller.addToolCallPart(toolName);
668
- },
669
- transform(chunk, controller) {
670
- const { type } = chunk;
671
- switch (type) {
672
- case "text-delta": {
673
- const { textDelta } = chunk;
674
- toolCall.argsText.append(textDelta);
675
- break;
676
- }
677
- case "finish": {
678
- toolCall.argsText.close();
679
- toolCall.setResponse({
680
- result: "{}"
681
- });
682
- break;
683
- }
684
- case "object":
685
- break;
686
- case "error": {
687
- controller.enqueue({
688
- type: "error",
689
- path: [],
690
- error: String(chunk.error)
691
- });
692
- break;
693
- }
694
- default: {
695
- const unhandledType = type;
696
- throw new Error(`Unhandled chunk type: ${unhandledType}`);
697
- }
698
- }
699
- }
700
- });
701
- return stream.pipeThrough(transformer);
702
- };
703
-
704
- // src/ai-sdk/language-model.ts
705
- function bufferToBase64(buffer) {
706
- return btoa(String.fromCharCode(...buffer));
707
- }
708
- var LanguageModelV1StreamDecoder = class extends AssistantTransformStream {
709
- constructor() {
710
- let currentToolCall;
711
- const endCurrentToolCall = () => {
712
- if (!currentToolCall) return;
713
- currentToolCall.controller.argsText.close();
714
- currentToolCall.controller.close();
715
- currentToolCall = void 0;
716
- };
717
- super({
718
- transform(chunk, controller) {
719
- const { type } = chunk;
720
- if (type === "text-delta" || type === "reasoning") {
721
- endCurrentToolCall();
722
- }
723
- switch (type) {
724
- case "text-delta": {
725
- controller.appendText(chunk.textDelta);
726
- break;
727
- }
728
- case "reasoning": {
729
- controller.appendReasoning(chunk.textDelta);
730
- break;
731
- }
732
- case "source": {
733
- controller.appendSource({
734
- type: "source",
735
- ...chunk.source
736
- });
737
- break;
738
- }
739
- case "file": {
740
- controller.appendFile({
741
- type: "file",
742
- mimeType: chunk.mimeType,
743
- data: typeof chunk.data === "string" ? chunk.data : bufferToBase64(chunk.data)
744
- });
745
- break;
746
- }
747
- case "tool-call-delta": {
748
- const { toolCallId, toolName, argsTextDelta } = chunk;
749
- if (currentToolCall?.toolCallId === toolCallId) {
750
- currentToolCall.controller.argsText.append(argsTextDelta);
751
- } else {
752
- endCurrentToolCall();
753
- currentToolCall = {
754
- toolCallId,
755
- controller: controller.addToolCallPart({
756
- toolCallId,
757
- toolName
758
- })
759
- };
760
- currentToolCall.controller.argsText.append(argsTextDelta);
761
- }
762
- break;
763
- }
764
- case "tool-call": {
765
- const { toolCallId, toolName, args } = chunk;
766
- if (currentToolCall?.toolCallId === toolCallId) {
767
- currentToolCall.controller.argsText.close();
768
- } else {
769
- const toolController = controller.addToolCallPart({
770
- toolCallId,
771
- toolName,
772
- argsText: args
773
- });
774
- toolController.close();
775
- }
776
- break;
777
- }
778
- case "finish": {
779
- controller.enqueue({
780
- type: "message-finish",
781
- finishReason: chunk.finishReason,
782
- usage: chunk.usage,
783
- path: []
784
- });
785
- controller.close();
786
- break;
787
- }
788
- case "error":
789
- case "response-metadata":
790
- case "reasoning-signature":
791
- case "redacted-reasoning":
792
- break;
793
- default: {
794
- const unhandledType = type;
795
- throw new Error(`Unhandled chunk type: ${unhandledType}`);
796
- }
797
- }
798
- },
799
- flush() {
800
- endCurrentToolCall();
801
- }
802
- });
803
- }
804
- };
27
+ __reExport(ai_sdk_exports, require("./ai-sdk/index.js"), module.exports);
28
+ var import_language_model = require("./ai-sdk/language-model.js");
805
29
  // Annotate the CommonJS export names for ESM import in node:
806
30
  0 && (module.exports = {
807
31
  LanguageModelV1StreamDecoder,
808
- fromStreamObject,
809
- fromStreamText
32
+ ...require("./ai-sdk/index.js")
810
33
  });
811
34
  //# sourceMappingURL=ai-sdk.js.map