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,311 +0,0 @@
1
- // src/core/serialization/data-stream/DataStream.ts
2
- import { AssistantTransformStream } from "../../utils/stream/AssistantTransformStream.mjs";
3
- import { PipeableTransformStream } from "../../utils/stream/PipeableTransformStream.mjs";
4
- import { DataStreamStreamChunkType } from "./chunk-types.mjs";
5
- import { LineDecoderStream } from "../../utils/stream/LineDecoderStream.mjs";
6
- import {
7
- DataStreamChunkDecoder,
8
- DataStreamChunkEncoder
9
- } from "./serialization.mjs";
10
- import {
11
- AssistantMetaTransformStream
12
- } from "../../utils/stream/AssistantMetaTransformStream.mjs";
13
- var DataStreamEncoder = class extends PipeableTransformStream {
14
- headers = new Headers({
15
- "Content-Type": "text/plain; charset=utf-8",
16
- "x-vercel-ai-data-stream": "v1"
17
- });
18
- constructor() {
19
- super((readable) => {
20
- const transform = new TransformStream({
21
- transform(chunk, controller) {
22
- const type = chunk.type;
23
- switch (type) {
24
- case "part-start": {
25
- const part = chunk.part;
26
- if (part.type === "tool-call") {
27
- const { type: type2, ...value } = part;
28
- controller.enqueue({
29
- type: DataStreamStreamChunkType.StartToolCall,
30
- value
31
- });
32
- }
33
- if (part.type === "source") {
34
- const { type: type2, ...value } = part;
35
- controller.enqueue({
36
- type: DataStreamStreamChunkType.Source,
37
- value
38
- });
39
- }
40
- break;
41
- }
42
- case "text-delta": {
43
- const part = chunk.meta;
44
- switch (part.type) {
45
- case "text": {
46
- controller.enqueue({
47
- type: DataStreamStreamChunkType.TextDelta,
48
- value: chunk.textDelta
49
- });
50
- break;
51
- }
52
- case "reasoning": {
53
- controller.enqueue({
54
- type: DataStreamStreamChunkType.ReasoningDelta,
55
- value: chunk.textDelta
56
- });
57
- break;
58
- }
59
- case "tool-call": {
60
- controller.enqueue({
61
- type: DataStreamStreamChunkType.ToolCallArgsTextDelta,
62
- value: {
63
- toolCallId: part.toolCallId,
64
- argsTextDelta: chunk.textDelta
65
- }
66
- });
67
- break;
68
- }
69
- default:
70
- throw new Error(
71
- `Unsupported part type for text-delta: ${part.type}`
72
- );
73
- }
74
- break;
75
- }
76
- case "result": {
77
- const part = chunk.meta;
78
- if (part.type !== "tool-call") {
79
- throw new Error(
80
- `Result chunk on non-tool-call part not supported: ${part.type}`
81
- );
82
- }
83
- controller.enqueue({
84
- type: DataStreamStreamChunkType.ToolCallResult,
85
- value: {
86
- toolCallId: part.toolCallId,
87
- result: chunk.result,
88
- artifact: chunk.artifact,
89
- ...chunk.isError ? { isError: chunk.isError } : {}
90
- }
91
- });
92
- break;
93
- }
94
- case "step-start": {
95
- const { type: type2, ...value } = chunk;
96
- controller.enqueue({
97
- type: DataStreamStreamChunkType.StartStep,
98
- value
99
- });
100
- break;
101
- }
102
- case "step-finish": {
103
- const { type: type2, ...value } = chunk;
104
- controller.enqueue({
105
- type: DataStreamStreamChunkType.FinishStep,
106
- value
107
- });
108
- break;
109
- }
110
- case "message-finish": {
111
- const { type: type2, ...value } = chunk;
112
- controller.enqueue({
113
- type: DataStreamStreamChunkType.FinishMessage,
114
- value
115
- });
116
- break;
117
- }
118
- case "error": {
119
- controller.enqueue({
120
- type: DataStreamStreamChunkType.Error,
121
- value: chunk.error
122
- });
123
- break;
124
- }
125
- case "annotations": {
126
- controller.enqueue({
127
- type: DataStreamStreamChunkType.Annotation,
128
- value: chunk.annotations
129
- });
130
- break;
131
- }
132
- case "data": {
133
- controller.enqueue({
134
- type: DataStreamStreamChunkType.Data,
135
- value: chunk.data
136
- });
137
- break;
138
- }
139
- // TODO ignore for now
140
- // in the future, we should create a handler that waits for text parts to finish before continuing
141
- case "tool-call-args-text-finish":
142
- case "part-finish":
143
- break;
144
- default: {
145
- const exhaustiveCheck = type;
146
- throw new Error(`Unsupported chunk type: ${exhaustiveCheck}`);
147
- }
148
- }
149
- }
150
- });
151
- return readable.pipeThrough(new AssistantMetaTransformStream()).pipeThrough(transform).pipeThrough(new DataStreamChunkEncoder()).pipeThrough(new TextEncoderStream());
152
- });
153
- }
154
- };
155
- var TOOL_CALL_ARGS_CLOSING_CHUNKS = [
156
- DataStreamStreamChunkType.StartToolCall,
157
- DataStreamStreamChunkType.ToolCall,
158
- DataStreamStreamChunkType.TextDelta,
159
- DataStreamStreamChunkType.ReasoningDelta,
160
- DataStreamStreamChunkType.Source,
161
- DataStreamStreamChunkType.Error,
162
- DataStreamStreamChunkType.FinishStep,
163
- DataStreamStreamChunkType.FinishMessage
164
- ];
165
- var DataStreamDecoder = class extends PipeableTransformStream {
166
- constructor() {
167
- super((readable) => {
168
- const toolCallControllers = /* @__PURE__ */ new Map();
169
- let activeToolCallArgsText;
170
- const transform = new AssistantTransformStream({
171
- transform(chunk, controller) {
172
- const { type, value } = chunk;
173
- if (TOOL_CALL_ARGS_CLOSING_CHUNKS.includes(type)) {
174
- activeToolCallArgsText?.close();
175
- activeToolCallArgsText = void 0;
176
- }
177
- switch (type) {
178
- case DataStreamStreamChunkType.ReasoningDelta:
179
- controller.appendReasoning(value);
180
- break;
181
- case DataStreamStreamChunkType.TextDelta:
182
- controller.appendText(value);
183
- break;
184
- case DataStreamStreamChunkType.StartToolCall: {
185
- const { toolCallId, toolName } = value;
186
- const toolCallController = controller.addToolCallPart({
187
- toolCallId,
188
- toolName
189
- });
190
- toolCallControllers.set(toolCallId, toolCallController);
191
- activeToolCallArgsText = toolCallController.argsText;
192
- break;
193
- }
194
- case DataStreamStreamChunkType.ToolCallArgsTextDelta: {
195
- const { toolCallId, argsTextDelta } = value;
196
- const toolCallController = toolCallControllers.get(toolCallId);
197
- if (!toolCallController)
198
- throw new Error(
199
- "Encountered tool call with unknown id: " + toolCallId
200
- );
201
- toolCallController.argsText.append(argsTextDelta);
202
- break;
203
- }
204
- case DataStreamStreamChunkType.ToolCallResult: {
205
- const { toolCallId, artifact, result, isError } = value;
206
- const toolCallController = toolCallControllers.get(toolCallId);
207
- if (!toolCallController)
208
- throw new Error(
209
- "Encountered tool call result with unknown id: " + toolCallId
210
- );
211
- toolCallController.setResponse({
212
- artifact,
213
- result,
214
- isError
215
- });
216
- break;
217
- }
218
- case DataStreamStreamChunkType.ToolCall: {
219
- const { toolCallId, toolName, args } = value;
220
- let toolCallController = toolCallControllers.get(toolCallId);
221
- if (toolCallController) {
222
- toolCallController.argsText.close();
223
- } else {
224
- toolCallController = controller.addToolCallPart({
225
- toolCallId,
226
- toolName,
227
- args
228
- });
229
- toolCallControllers.set(toolCallId, toolCallController);
230
- }
231
- break;
232
- }
233
- case DataStreamStreamChunkType.FinishMessage:
234
- controller.enqueue({
235
- type: "message-finish",
236
- path: [],
237
- ...value
238
- });
239
- break;
240
- case DataStreamStreamChunkType.StartStep:
241
- controller.enqueue({
242
- type: "step-start",
243
- path: [],
244
- ...value
245
- });
246
- break;
247
- case DataStreamStreamChunkType.FinishStep:
248
- controller.enqueue({
249
- type: "step-finish",
250
- path: [],
251
- ...value
252
- });
253
- break;
254
- case DataStreamStreamChunkType.Data:
255
- controller.enqueue({
256
- type: "data",
257
- path: [],
258
- data: value
259
- });
260
- break;
261
- case DataStreamStreamChunkType.Annotation:
262
- controller.enqueue({
263
- type: "annotations",
264
- path: [],
265
- annotations: value
266
- });
267
- break;
268
- case DataStreamStreamChunkType.Source:
269
- controller.appendSource({
270
- type: "source",
271
- ...value
272
- });
273
- break;
274
- case DataStreamStreamChunkType.Error:
275
- controller.enqueue({
276
- type: "error",
277
- path: [],
278
- error: value
279
- });
280
- break;
281
- case DataStreamStreamChunkType.File:
282
- controller.appendFile({
283
- type: "file",
284
- ...value
285
- });
286
- break;
287
- case DataStreamStreamChunkType.ReasoningSignature:
288
- case DataStreamStreamChunkType.RedactedReasoning:
289
- break;
290
- default: {
291
- const exhaustiveCheck = type;
292
- throw new Error(`unsupported chunk type: ${exhaustiveCheck}`);
293
- }
294
- }
295
- },
296
- flush() {
297
- activeToolCallArgsText?.close();
298
- activeToolCallArgsText = void 0;
299
- toolCallControllers.forEach((controller) => controller.close());
300
- toolCallControllers.clear();
301
- }
302
- });
303
- return readable.pipeThrough(new TextDecoderStream()).pipeThrough(new LineDecoderStream()).pipeThrough(new DataStreamChunkDecoder()).pipeThrough(transform);
304
- });
305
- }
306
- };
307
- export {
308
- DataStreamDecoder,
309
- DataStreamEncoder
310
- };
311
- //# sourceMappingURL=DataStream.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/core/serialization/data-stream/DataStream.ts"],"sourcesContent":["import { AssistantStreamChunk } from \"../../AssistantStreamChunk\";\nimport { ToolCallStreamController } from \"../../modules/tool-call\";\nimport { AssistantTransformStream } from \"../../utils/stream/AssistantTransformStream\";\nimport { PipeableTransformStream } from \"../../utils/stream/PipeableTransformStream\";\nimport { DataStreamChunk, DataStreamStreamChunkType } from \"./chunk-types\";\nimport { LineDecoderStream } from \"../../utils/stream/LineDecoderStream\";\nimport {\n DataStreamChunkDecoder,\n DataStreamChunkEncoder,\n} from \"./serialization\";\nimport {\n AssistantMetaStreamChunk,\n AssistantMetaTransformStream,\n} from \"../../utils/stream/AssistantMetaTransformStream\";\nimport { TextStreamController } from \"../../modules/text\";\nimport { AssistantStreamEncoder } from \"../../AssistantStream\";\n\nexport class DataStreamEncoder\n extends PipeableTransformStream<AssistantStreamChunk, Uint8Array>\n implements AssistantStreamEncoder\n{\n headers = new Headers({\n \"Content-Type\": \"text/plain; charset=utf-8\",\n \"x-vercel-ai-data-stream\": \"v1\",\n });\n\n constructor() {\n super((readable) => {\n const transform = new TransformStream<\n AssistantMetaStreamChunk,\n DataStreamChunk\n >({\n transform(chunk, controller) {\n const type = chunk.type;\n switch (type) {\n case \"part-start\": {\n const part = chunk.part;\n if (part.type === \"tool-call\") {\n const { type, ...value } = part;\n controller.enqueue({\n type: DataStreamStreamChunkType.StartToolCall,\n value,\n });\n }\n if (part.type === \"source\") {\n const { type, ...value } = part;\n controller.enqueue({\n type: DataStreamStreamChunkType.Source,\n value,\n });\n }\n break;\n }\n case \"text-delta\": {\n const part = chunk.meta;\n switch (part.type) {\n case \"text\": {\n controller.enqueue({\n type: DataStreamStreamChunkType.TextDelta,\n value: chunk.textDelta,\n });\n break;\n }\n case \"reasoning\": {\n controller.enqueue({\n type: DataStreamStreamChunkType.ReasoningDelta,\n value: chunk.textDelta,\n });\n break;\n }\n case \"tool-call\": {\n controller.enqueue({\n type: DataStreamStreamChunkType.ToolCallArgsTextDelta,\n value: {\n toolCallId: part.toolCallId,\n argsTextDelta: chunk.textDelta,\n },\n });\n break;\n }\n default:\n throw new Error(\n `Unsupported part type for text-delta: ${part.type}`,\n );\n }\n break;\n }\n case \"result\": {\n // Only tool-call parts can have results.\n const part = chunk.meta;\n if (part.type !== \"tool-call\") {\n throw new Error(\n `Result chunk on non-tool-call part not supported: ${part.type}`,\n );\n }\n controller.enqueue({\n type: DataStreamStreamChunkType.ToolCallResult,\n value: {\n toolCallId: part.toolCallId,\n result: chunk.result,\n artifact: chunk.artifact,\n ...(chunk.isError ? { isError: chunk.isError } : {}),\n },\n });\n break;\n }\n case \"step-start\": {\n const { type, ...value } = chunk;\n controller.enqueue({\n type: DataStreamStreamChunkType.StartStep,\n value,\n });\n break;\n }\n case \"step-finish\": {\n const { type, ...value } = chunk;\n controller.enqueue({\n type: DataStreamStreamChunkType.FinishStep,\n value,\n });\n break;\n }\n case \"message-finish\": {\n const { type, ...value } = chunk;\n controller.enqueue({\n type: DataStreamStreamChunkType.FinishMessage,\n value,\n });\n break;\n }\n case \"error\": {\n controller.enqueue({\n type: DataStreamStreamChunkType.Error,\n value: chunk.error,\n });\n break;\n }\n case \"annotations\": {\n controller.enqueue({\n type: DataStreamStreamChunkType.Annotation,\n value: chunk.annotations,\n });\n break;\n }\n case \"data\": {\n controller.enqueue({\n type: DataStreamStreamChunkType.Data,\n value: chunk.data,\n });\n break;\n }\n\n // TODO ignore for now\n // in the future, we should create a handler that waits for text parts to finish before continuing\n case \"tool-call-args-text-finish\":\n case \"part-finish\":\n break;\n\n default: {\n const exhaustiveCheck: never = type;\n throw new Error(`Unsupported chunk type: ${exhaustiveCheck}`);\n }\n }\n },\n });\n\n return readable\n .pipeThrough(new AssistantMetaTransformStream())\n .pipeThrough(transform)\n .pipeThrough(new DataStreamChunkEncoder())\n .pipeThrough(new TextEncoderStream());\n });\n }\n}\n\nconst TOOL_CALL_ARGS_CLOSING_CHUNKS = [\n DataStreamStreamChunkType.StartToolCall,\n DataStreamStreamChunkType.ToolCall,\n DataStreamStreamChunkType.TextDelta,\n DataStreamStreamChunkType.ReasoningDelta,\n DataStreamStreamChunkType.Source,\n DataStreamStreamChunkType.Error,\n DataStreamStreamChunkType.FinishStep,\n DataStreamStreamChunkType.FinishMessage,\n];\n\nexport class DataStreamDecoder extends PipeableTransformStream<\n Uint8Array,\n AssistantStreamChunk\n> {\n constructor() {\n super((readable) => {\n const toolCallControllers = new Map<string, ToolCallStreamController>();\n let activeToolCallArgsText: TextStreamController | undefined;\n const transform = new AssistantTransformStream<DataStreamChunk>({\n transform(chunk, controller) {\n const { type, value } = chunk;\n\n if (TOOL_CALL_ARGS_CLOSING_CHUNKS.includes(type)) {\n activeToolCallArgsText?.close();\n activeToolCallArgsText = undefined;\n }\n\n switch (type) {\n case DataStreamStreamChunkType.ReasoningDelta:\n controller.appendReasoning(value);\n break;\n\n case DataStreamStreamChunkType.TextDelta:\n controller.appendText(value);\n break;\n\n case DataStreamStreamChunkType.StartToolCall: {\n const { toolCallId, toolName } = value;\n const toolCallController = controller.addToolCallPart({\n toolCallId,\n toolName,\n });\n toolCallControllers.set(toolCallId, toolCallController);\n\n activeToolCallArgsText = toolCallController.argsText;\n break;\n }\n\n case DataStreamStreamChunkType.ToolCallArgsTextDelta: {\n const { toolCallId, argsTextDelta } = value;\n const toolCallController = toolCallControllers.get(toolCallId);\n if (!toolCallController)\n throw new Error(\n \"Encountered tool call with unknown id: \" + toolCallId,\n );\n toolCallController.argsText.append(argsTextDelta);\n break;\n }\n\n case DataStreamStreamChunkType.ToolCallResult: {\n const { toolCallId, artifact, result, isError } = value;\n const toolCallController = toolCallControllers.get(toolCallId);\n if (!toolCallController)\n throw new Error(\n \"Encountered tool call result with unknown id: \" + toolCallId,\n );\n toolCallController.setResponse({\n artifact,\n result,\n isError,\n });\n break;\n }\n\n case DataStreamStreamChunkType.ToolCall: {\n const { toolCallId, toolName, args } = value;\n\n let toolCallController = toolCallControllers.get(toolCallId);\n if (toolCallController) {\n toolCallController.argsText.close();\n } else {\n toolCallController = controller.addToolCallPart({\n toolCallId,\n toolName,\n args,\n });\n toolCallControllers.set(toolCallId, toolCallController);\n }\n break;\n }\n\n case DataStreamStreamChunkType.FinishMessage:\n controller.enqueue({\n type: \"message-finish\",\n path: [],\n ...value,\n });\n break;\n\n case DataStreamStreamChunkType.StartStep:\n controller.enqueue({\n type: \"step-start\",\n path: [],\n ...value,\n });\n break;\n\n case DataStreamStreamChunkType.FinishStep:\n controller.enqueue({\n type: \"step-finish\",\n path: [],\n ...value,\n });\n break;\n case DataStreamStreamChunkType.Data:\n controller.enqueue({\n type: \"data\",\n path: [],\n data: value,\n });\n break;\n\n case DataStreamStreamChunkType.Annotation:\n controller.enqueue({\n type: \"annotations\",\n path: [],\n annotations: value,\n });\n break;\n\n case DataStreamStreamChunkType.Source:\n controller.appendSource({\n type: \"source\",\n ...value,\n });\n break;\n\n case DataStreamStreamChunkType.Error:\n controller.enqueue({\n type: \"error\",\n path: [],\n error: value,\n });\n break;\n\n case DataStreamStreamChunkType.File:\n controller.appendFile({\n type: \"file\",\n ...value,\n });\n break;\n\n case DataStreamStreamChunkType.ReasoningSignature:\n case DataStreamStreamChunkType.RedactedReasoning:\n // ignore these for now\n break;\n\n default: {\n const exhaustiveCheck: never = type;\n throw new Error(`unsupported chunk type: ${exhaustiveCheck}`);\n }\n }\n },\n flush() {\n activeToolCallArgsText?.close();\n activeToolCallArgsText = undefined;\n toolCallControllers.forEach((controller) => controller.close());\n toolCallControllers.clear();\n },\n });\n\n return readable\n .pipeThrough(new TextDecoderStream())\n .pipeThrough(new LineDecoderStream())\n .pipeThrough(new DataStreamChunkDecoder())\n .pipeThrough(transform);\n });\n }\n}\n"],"mappings":"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","names":["type"]}
@@ -1,86 +0,0 @@
1
- import { ReadonlyJSONObject, ReadonlyJSONValue } from "../../../utils/json/json-value";
2
- export type DataStreamChunk = {
3
- [K in DataStreamStreamChunkType]: {
4
- type: K;
5
- value: DataStreamStreamChunkValue[K];
6
- };
7
- }[DataStreamStreamChunkType];
8
- type LanguageModelV1FinishReason = "stop" | "length" | "content-filter" | "tool-calls" | "error" | "other" | "unknown";
9
- type LanguageModelV1Usage = {
10
- promptTokens: number;
11
- completionTokens: number;
12
- };
13
- export declare enum DataStreamStreamChunkType {
14
- TextDelta = "0",
15
- Data = "2",
16
- Error = "3",
17
- Annotation = "8",
18
- ToolCall = "9",
19
- ToolCallResult = "a",
20
- StartToolCall = "b",
21
- ToolCallArgsTextDelta = "c",
22
- FinishMessage = "d",
23
- FinishStep = "e",
24
- StartStep = "f",
25
- ReasoningDelta = "g",
26
- Source = "h",
27
- RedactedReasoning = "i",
28
- ReasoningSignature = "j",
29
- File = "k"
30
- }
31
- type DataStreamStreamChunkValue = {
32
- [DataStreamStreamChunkType.TextDelta]: string;
33
- [DataStreamStreamChunkType.Data]: ReadonlyJSONValue[];
34
- [DataStreamStreamChunkType.Annotation]: ReadonlyJSONValue[];
35
- [DataStreamStreamChunkType.ToolCall]: {
36
- toolCallId: string;
37
- toolName: string;
38
- args: ReadonlyJSONObject;
39
- };
40
- [DataStreamStreamChunkType.StartToolCall]: {
41
- toolCallId: string;
42
- toolName: string;
43
- };
44
- [DataStreamStreamChunkType.ToolCallArgsTextDelta]: {
45
- toolCallId: string;
46
- argsTextDelta: string;
47
- };
48
- [DataStreamStreamChunkType.ToolCallResult]: {
49
- toolCallId: string;
50
- result: ReadonlyJSONValue;
51
- artifact?: ReadonlyJSONValue | undefined;
52
- isError?: boolean;
53
- };
54
- [DataStreamStreamChunkType.Error]: string;
55
- [DataStreamStreamChunkType.FinishStep]: {
56
- finishReason: LanguageModelV1FinishReason;
57
- usage: LanguageModelV1Usage;
58
- isContinued: boolean;
59
- };
60
- [DataStreamStreamChunkType.FinishMessage]: {
61
- finishReason: LanguageModelV1FinishReason;
62
- usage: LanguageModelV1Usage;
63
- };
64
- [DataStreamStreamChunkType.StartStep]: {
65
- messageId: string;
66
- };
67
- [DataStreamStreamChunkType.ReasoningDelta]: string;
68
- [DataStreamStreamChunkType.Source]: {
69
- sourceType: "url";
70
- id: string;
71
- url: string;
72
- title?: string;
73
- };
74
- [DataStreamStreamChunkType.RedactedReasoning]: {
75
- data: string;
76
- };
77
- [DataStreamStreamChunkType.ReasoningSignature]: {
78
- signature: string;
79
- };
80
- [DataStreamStreamChunkType.File]: {
81
- data: string;
82
- mimeType: string;
83
- };
84
- };
85
- export {};
86
- //# sourceMappingURL=chunk-types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunk-types.d.ts","sourceRoot":"","sources":["../../../../src/core/serialization/data-stream/chunk-types.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- // src/core/serialization/data-stream/chunk-types.ts
2
- var DataStreamStreamChunkType = /* @__PURE__ */ ((DataStreamStreamChunkType2) => {
3
- DataStreamStreamChunkType2["TextDelta"] = "0";
4
- DataStreamStreamChunkType2["Data"] = "2";
5
- DataStreamStreamChunkType2["Error"] = "3";
6
- DataStreamStreamChunkType2["Annotation"] = "8";
7
- DataStreamStreamChunkType2["ToolCall"] = "9";
8
- DataStreamStreamChunkType2["ToolCallResult"] = "a";
9
- DataStreamStreamChunkType2["StartToolCall"] = "b";
10
- DataStreamStreamChunkType2["ToolCallArgsTextDelta"] = "c";
11
- DataStreamStreamChunkType2["FinishMessage"] = "d";
12
- DataStreamStreamChunkType2["FinishStep"] = "e";
13
- DataStreamStreamChunkType2["StartStep"] = "f";
14
- DataStreamStreamChunkType2["ReasoningDelta"] = "g";
15
- DataStreamStreamChunkType2["Source"] = "h";
16
- DataStreamStreamChunkType2["RedactedReasoning"] = "i";
17
- DataStreamStreamChunkType2["ReasoningSignature"] = "j";
18
- DataStreamStreamChunkType2["File"] = "k";
19
- return DataStreamStreamChunkType2;
20
- })(DataStreamStreamChunkType || {});
21
- export {
22
- DataStreamStreamChunkType
23
- };
24
- //# sourceMappingURL=chunk-types.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/core/serialization/data-stream/chunk-types.ts"],"sourcesContent":["import {\n ReadonlyJSONObject,\n ReadonlyJSONValue,\n} from \"../../../utils/json/json-value\";\n\nexport type DataStreamChunk = {\n [K in DataStreamStreamChunkType]: {\n type: K;\n value: DataStreamStreamChunkValue[K];\n };\n}[DataStreamStreamChunkType];\n\ntype LanguageModelV1FinishReason =\n | \"stop\"\n | \"length\"\n | \"content-filter\"\n | \"tool-calls\"\n | \"error\"\n | \"other\"\n | \"unknown\";\n\ntype LanguageModelV1Usage = {\n promptTokens: number;\n completionTokens: number;\n};\n\nexport enum DataStreamStreamChunkType {\n TextDelta = \"0\",\n Data = \"2\",\n Error = \"3\",\n Annotation = \"8\",\n ToolCall = \"9\",\n ToolCallResult = \"a\",\n StartToolCall = \"b\",\n ToolCallArgsTextDelta = \"c\",\n FinishMessage = \"d\",\n FinishStep = \"e\",\n StartStep = \"f\",\n ReasoningDelta = \"g\",\n Source = \"h\",\n RedactedReasoning = \"i\",\n ReasoningSignature = \"j\",\n File = \"k\",\n}\ntype DataStreamStreamChunkValue = {\n [DataStreamStreamChunkType.TextDelta]: string;\n [DataStreamStreamChunkType.Data]: ReadonlyJSONValue[];\n [DataStreamStreamChunkType.Annotation]: ReadonlyJSONValue[];\n [DataStreamStreamChunkType.ToolCall]: {\n toolCallId: string;\n toolName: string;\n args: ReadonlyJSONObject;\n };\n [DataStreamStreamChunkType.StartToolCall]: {\n toolCallId: string;\n toolName: string;\n };\n [DataStreamStreamChunkType.ToolCallArgsTextDelta]: {\n toolCallId: string;\n argsTextDelta: string;\n };\n [DataStreamStreamChunkType.ToolCallResult]: {\n toolCallId: string;\n result: ReadonlyJSONValue;\n\n // aui-extensions\n artifact?: ReadonlyJSONValue | undefined;\n isError?: boolean;\n };\n [DataStreamStreamChunkType.Error]: string;\n [DataStreamStreamChunkType.FinishStep]: {\n finishReason: LanguageModelV1FinishReason;\n usage: LanguageModelV1Usage;\n isContinued: boolean;\n };\n [DataStreamStreamChunkType.FinishMessage]: {\n finishReason: LanguageModelV1FinishReason;\n usage: LanguageModelV1Usage;\n };\n [DataStreamStreamChunkType.StartStep]: {\n messageId: string;\n };\n [DataStreamStreamChunkType.ReasoningDelta]: string;\n [DataStreamStreamChunkType.Source]: {\n sourceType: \"url\";\n id: string;\n url: string;\n title?: string;\n };\n [DataStreamStreamChunkType.RedactedReasoning]: { data: string };\n [DataStreamStreamChunkType.ReasoningSignature]: { signature: string };\n [DataStreamStreamChunkType.File]: { data: string; mimeType: string };\n};\n"],"mappings":";AA0BO,IAAK,4BAAL,kBAAKA,+BAAL;AACL,EAAAA,2BAAA,eAAY;AACZ,EAAAA,2BAAA,UAAO;AACP,EAAAA,2BAAA,WAAQ;AACR,EAAAA,2BAAA,gBAAa;AACb,EAAAA,2BAAA,cAAW;AACX,EAAAA,2BAAA,oBAAiB;AACjB,EAAAA,2BAAA,mBAAgB;AAChB,EAAAA,2BAAA,2BAAwB;AACxB,EAAAA,2BAAA,mBAAgB;AAChB,EAAAA,2BAAA,gBAAa;AACb,EAAAA,2BAAA,eAAY;AACZ,EAAAA,2BAAA,oBAAiB;AACjB,EAAAA,2BAAA,YAAS;AACT,EAAAA,2BAAA,uBAAoB;AACpB,EAAAA,2BAAA,wBAAqB;AACrB,EAAAA,2BAAA,UAAO;AAhBG,SAAAA;AAAA,GAAA;","names":["DataStreamStreamChunkType"]}
@@ -1,8 +0,0 @@
1
- import { DataStreamChunk } from "./chunk-types";
2
- export declare class DataStreamChunkEncoder extends TransformStream<DataStreamChunk, string> {
3
- constructor();
4
- }
5
- export declare class DataStreamChunkDecoder extends TransformStream<string, DataStreamChunk> {
6
- constructor();
7
- }
8
- //# sourceMappingURL=serialization.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"serialization.d.ts","sourceRoot":"","sources":["../../../../src/core/serialization/data-stream/serialization.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAA6B,MAAM,eAAe,CAAC;AAE3E,qBAAa,sBAAuB,SAAQ,eAAe,CACzD,eAAe,EACf,MAAM,CACP;;CAQA;AAED,qBAAa,sBAAuB,SAAQ,eAAe,CACzD,MAAM,EACN,eAAe,CAChB;;CAaA"}
@@ -1,30 +0,0 @@
1
- // src/core/serialization/data-stream/serialization.ts
2
- var DataStreamChunkEncoder = class extends TransformStream {
3
- constructor() {
4
- super({
5
- transform: (chunk, controller) => {
6
- controller.enqueue(`${chunk.type}:${JSON.stringify(chunk.value)}
7
- `);
8
- }
9
- });
10
- }
11
- };
12
- var DataStreamChunkDecoder = class extends TransformStream {
13
- constructor() {
14
- super({
15
- transform: (chunk, controller) => {
16
- const index = chunk.indexOf(":");
17
- if (index === -1) throw new Error("Invalid stream part");
18
- controller.enqueue({
19
- type: chunk.slice(0, index),
20
- value: JSON.parse(chunk.slice(index + 1))
21
- });
22
- }
23
- });
24
- }
25
- };
26
- export {
27
- DataStreamChunkDecoder,
28
- DataStreamChunkEncoder
29
- };
30
- //# sourceMappingURL=serialization.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/core/serialization/data-stream/serialization.ts"],"sourcesContent":["import { DataStreamChunk, DataStreamStreamChunkType } from \"./chunk-types\";\n\nexport class DataStreamChunkEncoder extends TransformStream<\n DataStreamChunk,\n string\n> {\n constructor() {\n super({\n transform: (chunk, controller) => {\n controller.enqueue(`${chunk.type}:${JSON.stringify(chunk.value)}\\n`);\n },\n });\n }\n}\n\nexport class DataStreamChunkDecoder extends TransformStream<\n string,\n DataStreamChunk\n> {\n constructor() {\n super({\n transform: (chunk, controller) => {\n const index = chunk.indexOf(\":\");\n if (index === -1) throw new Error(\"Invalid stream part\");\n controller.enqueue({\n type: chunk.slice(0, index) as DataStreamStreamChunkType,\n value: JSON.parse(chunk.slice(index + 1)),\n });\n },\n });\n }\n}\n"],"mappings":";AAEO,IAAM,yBAAN,cAAqC,gBAG1C;AAAA,EACA,cAAc;AACZ,UAAM;AAAA,MACJ,WAAW,CAAC,OAAO,eAAe;AAChC,mBAAW,QAAQ,GAAG,MAAM,IAAI,IAAI,KAAK,UAAU,MAAM,KAAK,CAAC;AAAA,CAAI;AAAA,MACrE;AAAA,IACF,CAAC;AAAA,EACH;AACF;AAEO,IAAM,yBAAN,cAAqC,gBAG1C;AAAA,EACA,cAAc;AACZ,UAAM;AAAA,MACJ,WAAW,CAAC,OAAO,eAAe;AAChC,cAAM,QAAQ,MAAM,QAAQ,GAAG;AAC/B,YAAI,UAAU,GAAI,OAAM,IAAI,MAAM,qBAAqB;AACvD,mBAAW,QAAQ;AAAA,UACjB,MAAM,MAAM,MAAM,GAAG,KAAK;AAAA,UAC1B,OAAO,KAAK,MAAM,MAAM,MAAM,QAAQ,CAAC,CAAC;AAAA,QAC1C,CAAC;AAAA,MACH;AAAA,IACF,CAAC;AAAA,EACH;AACF;","names":[]}
@@ -1,33 +0,0 @@
1
- import { ToolCallArgsReader, ToolCallReader, ToolCallResponseReader } from "./tool-types";
2
- import { TypeAtPath, TypePath } from "./type-path-utils";
3
- import { ToolResponse } from "./ToolResponse";
4
- export declare class ToolCallArgsReaderImpl<T> implements ToolCallArgsReader<T> {
5
- private argTextDeltas;
6
- private handles;
7
- private args;
8
- constructor(argTextDeltas: ReadableStream<string>);
9
- private processStream;
10
- get<PathT extends TypePath<T>>(...fieldPath: PathT): Promise<TypeAtPath<T, PathT>>;
11
- streamValues<PathT extends TypePath<T>>(...fieldPath: PathT): any;
12
- streamText<PathT extends TypePath<T>>(...fieldPath: PathT): any;
13
- forEach<PathT extends TypePath<T>>(...fieldPath: PathT): any;
14
- }
15
- export declare class ToolCallResponseReaderImpl<TResult> implements ToolCallResponseReader<TResult> {
16
- private readonly promise;
17
- constructor(promise: Promise<ToolResponse<TResult>>);
18
- get(): Promise<ToolResponse<TResult>>;
19
- }
20
- export declare class ToolCallReaderImpl<TArgs, TResult> implements ToolCallReader<TArgs, TResult> {
21
- readonly args: ToolCallArgsReaderImpl<TArgs>;
22
- readonly response: ToolCallResponseReaderImpl<TResult>;
23
- private readonly writable;
24
- private readonly resolve;
25
- argsText: string;
26
- constructor();
27
- appendArgsTextDelta(text: string): Promise<void>;
28
- setResponse(value: ToolResponse<TResult>): void;
29
- result: {
30
- get: () => Promise<TResult>;
31
- };
32
- }
33
- //# sourceMappingURL=ToolCallReader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ToolCallReader.d.ts","sourceRoot":"","sources":["../../../src/core/tool/ToolCallReader.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,sBAAsB,EACvB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAyN9C,qBAAa,sBAAsB,CAAC,CAAC,CAAE,YAAW,kBAAkB,CAAC,CAAC,CAAC;IACrE,OAAO,CAAC,aAAa,CAAyB;IAC9C,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,IAAI,CAAmC;gBAEnC,aAAa,EAAE,cAAc,CAAC,MAAM,CAAC;YAKnC,aAAa;IA6B3B,GAAG,CAAC,KAAK,SAAS,QAAQ,CAAC,CAAC,CAAC,EAC3B,GAAG,SAAS,EAAE,KAAK,GAClB,OAAO,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAwBhC,YAAY,CAAC,KAAK,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,KAAK,GAAG,GAAG;IA4BjE,UAAU,CAAC,KAAK,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,KAAK,GAAG,GAAG;IA4B/D,OAAO,CAAC,KAAK,SAAS,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,SAAS,EAAE,KAAK,GAAG,GAAG;CA2B7D;AAED,qBAAa,0BAA0B,CAAC,OAAO,CAC7C,YAAW,sBAAsB,CAAC,OAAO,CAAC;IAE9B,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAE7D,GAAG;CAGX;AAED,qBAAa,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAC5C,YAAW,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC;IAEzC,SAAgB,IAAI,EAAE,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACpD,SAAgB,QAAQ,EAAE,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAC9D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyC;IAE1D,QAAQ,EAAE,MAAM,CAAM;;IAYvB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAatD,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,IAAI;IAI/C,MAAM;;MAKJ;CACH"}