assistant-stream 0.0.31 → 0.1.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.
@@ -0,0 +1,338 @@
1
+ // src/core/utils/json/parse-partial-json.ts
2
+ import sjson from "secure-json-parse";
3
+
4
+ // src/core/utils/json/fix-json.ts
5
+ function fixJson(input) {
6
+ const stack = ["ROOT"];
7
+ let lastValidIndex = -1;
8
+ let literalStart = null;
9
+ function processValueStart(char, i, swapState) {
10
+ {
11
+ switch (char) {
12
+ case '"': {
13
+ lastValidIndex = i;
14
+ stack.pop();
15
+ stack.push(swapState);
16
+ stack.push("INSIDE_STRING");
17
+ break;
18
+ }
19
+ case "f":
20
+ case "t":
21
+ case "n": {
22
+ lastValidIndex = i;
23
+ literalStart = i;
24
+ stack.pop();
25
+ stack.push(swapState);
26
+ stack.push("INSIDE_LITERAL");
27
+ break;
28
+ }
29
+ case "-": {
30
+ stack.pop();
31
+ stack.push(swapState);
32
+ stack.push("INSIDE_NUMBER");
33
+ break;
34
+ }
35
+ case "0":
36
+ case "1":
37
+ case "2":
38
+ case "3":
39
+ case "4":
40
+ case "5":
41
+ case "6":
42
+ case "7":
43
+ case "8":
44
+ case "9": {
45
+ lastValidIndex = i;
46
+ stack.pop();
47
+ stack.push(swapState);
48
+ stack.push("INSIDE_NUMBER");
49
+ break;
50
+ }
51
+ case "{": {
52
+ lastValidIndex = i;
53
+ stack.pop();
54
+ stack.push(swapState);
55
+ stack.push("INSIDE_OBJECT_START");
56
+ break;
57
+ }
58
+ case "[": {
59
+ lastValidIndex = i;
60
+ stack.pop();
61
+ stack.push(swapState);
62
+ stack.push("INSIDE_ARRAY_START");
63
+ break;
64
+ }
65
+ }
66
+ }
67
+ }
68
+ function processAfterObjectValue(char, i) {
69
+ switch (char) {
70
+ case ",": {
71
+ stack.pop();
72
+ stack.push("INSIDE_OBJECT_AFTER_COMMA");
73
+ break;
74
+ }
75
+ case "}": {
76
+ lastValidIndex = i;
77
+ stack.pop();
78
+ break;
79
+ }
80
+ }
81
+ }
82
+ function processAfterArrayValue(char, i) {
83
+ switch (char) {
84
+ case ",": {
85
+ stack.pop();
86
+ stack.push("INSIDE_ARRAY_AFTER_COMMA");
87
+ break;
88
+ }
89
+ case "]": {
90
+ lastValidIndex = i;
91
+ stack.pop();
92
+ break;
93
+ }
94
+ }
95
+ }
96
+ for (let i = 0; i < input.length; i++) {
97
+ const char = input[i];
98
+ const currentState = stack[stack.length - 1];
99
+ switch (currentState) {
100
+ case "ROOT":
101
+ processValueStart(char, i, "FINISH");
102
+ break;
103
+ case "INSIDE_OBJECT_START": {
104
+ switch (char) {
105
+ case '"': {
106
+ stack.pop();
107
+ stack.push("INSIDE_OBJECT_KEY");
108
+ break;
109
+ }
110
+ case "}": {
111
+ lastValidIndex = i;
112
+ stack.pop();
113
+ break;
114
+ }
115
+ }
116
+ break;
117
+ }
118
+ case "INSIDE_OBJECT_AFTER_COMMA": {
119
+ switch (char) {
120
+ case '"': {
121
+ stack.pop();
122
+ stack.push("INSIDE_OBJECT_KEY");
123
+ break;
124
+ }
125
+ }
126
+ break;
127
+ }
128
+ case "INSIDE_OBJECT_KEY": {
129
+ switch (char) {
130
+ case '"': {
131
+ stack.pop();
132
+ stack.push("INSIDE_OBJECT_AFTER_KEY");
133
+ break;
134
+ }
135
+ }
136
+ break;
137
+ }
138
+ case "INSIDE_OBJECT_AFTER_KEY": {
139
+ switch (char) {
140
+ case ":": {
141
+ stack.pop();
142
+ stack.push("INSIDE_OBJECT_BEFORE_VALUE");
143
+ break;
144
+ }
145
+ }
146
+ break;
147
+ }
148
+ case "INSIDE_OBJECT_BEFORE_VALUE": {
149
+ processValueStart(char, i, "INSIDE_OBJECT_AFTER_VALUE");
150
+ break;
151
+ }
152
+ case "INSIDE_OBJECT_AFTER_VALUE": {
153
+ processAfterObjectValue(char, i);
154
+ break;
155
+ }
156
+ case "INSIDE_STRING": {
157
+ switch (char) {
158
+ case '"': {
159
+ stack.pop();
160
+ lastValidIndex = i;
161
+ break;
162
+ }
163
+ case "\\": {
164
+ stack.push("INSIDE_STRING_ESCAPE");
165
+ break;
166
+ }
167
+ default: {
168
+ lastValidIndex = i;
169
+ }
170
+ }
171
+ break;
172
+ }
173
+ case "INSIDE_ARRAY_START": {
174
+ switch (char) {
175
+ case "]": {
176
+ lastValidIndex = i;
177
+ stack.pop();
178
+ break;
179
+ }
180
+ default: {
181
+ lastValidIndex = i;
182
+ processValueStart(char, i, "INSIDE_ARRAY_AFTER_VALUE");
183
+ break;
184
+ }
185
+ }
186
+ break;
187
+ }
188
+ case "INSIDE_ARRAY_AFTER_VALUE": {
189
+ switch (char) {
190
+ case ",": {
191
+ stack.pop();
192
+ stack.push("INSIDE_ARRAY_AFTER_COMMA");
193
+ break;
194
+ }
195
+ case "]": {
196
+ lastValidIndex = i;
197
+ stack.pop();
198
+ break;
199
+ }
200
+ default: {
201
+ lastValidIndex = i;
202
+ break;
203
+ }
204
+ }
205
+ break;
206
+ }
207
+ case "INSIDE_ARRAY_AFTER_COMMA": {
208
+ processValueStart(char, i, "INSIDE_ARRAY_AFTER_VALUE");
209
+ break;
210
+ }
211
+ case "INSIDE_STRING_ESCAPE": {
212
+ stack.pop();
213
+ lastValidIndex = i;
214
+ break;
215
+ }
216
+ case "INSIDE_NUMBER": {
217
+ switch (char) {
218
+ case "0":
219
+ case "1":
220
+ case "2":
221
+ case "3":
222
+ case "4":
223
+ case "5":
224
+ case "6":
225
+ case "7":
226
+ case "8":
227
+ case "9": {
228
+ lastValidIndex = i;
229
+ break;
230
+ }
231
+ case "e":
232
+ case "E":
233
+ case "-":
234
+ case ".": {
235
+ break;
236
+ }
237
+ case ",": {
238
+ stack.pop();
239
+ if (stack[stack.length - 1] === "INSIDE_ARRAY_AFTER_VALUE") {
240
+ processAfterArrayValue(char, i);
241
+ }
242
+ if (stack[stack.length - 1] === "INSIDE_OBJECT_AFTER_VALUE") {
243
+ processAfterObjectValue(char, i);
244
+ }
245
+ break;
246
+ }
247
+ case "}": {
248
+ stack.pop();
249
+ if (stack[stack.length - 1] === "INSIDE_OBJECT_AFTER_VALUE") {
250
+ processAfterObjectValue(char, i);
251
+ }
252
+ break;
253
+ }
254
+ case "]": {
255
+ stack.pop();
256
+ if (stack[stack.length - 1] === "INSIDE_ARRAY_AFTER_VALUE") {
257
+ processAfterArrayValue(char, i);
258
+ }
259
+ break;
260
+ }
261
+ default: {
262
+ stack.pop();
263
+ break;
264
+ }
265
+ }
266
+ break;
267
+ }
268
+ case "INSIDE_LITERAL": {
269
+ const partialLiteral = input.substring(literalStart, i + 1);
270
+ if (!"false".startsWith(partialLiteral) && !"true".startsWith(partialLiteral) && !"null".startsWith(partialLiteral)) {
271
+ stack.pop();
272
+ if (stack[stack.length - 1] === "INSIDE_OBJECT_AFTER_VALUE") {
273
+ processAfterObjectValue(char, i);
274
+ } else if (stack[stack.length - 1] === "INSIDE_ARRAY_AFTER_VALUE") {
275
+ processAfterArrayValue(char, i);
276
+ }
277
+ } else {
278
+ lastValidIndex = i;
279
+ }
280
+ break;
281
+ }
282
+ }
283
+ }
284
+ let result = input.slice(0, lastValidIndex + 1);
285
+ for (let i = stack.length - 1; i >= 0; i--) {
286
+ const state = stack[i];
287
+ switch (state) {
288
+ case "INSIDE_STRING": {
289
+ result += '"';
290
+ break;
291
+ }
292
+ case "INSIDE_OBJECT_KEY":
293
+ case "INSIDE_OBJECT_AFTER_KEY":
294
+ case "INSIDE_OBJECT_AFTER_COMMA":
295
+ case "INSIDE_OBJECT_START":
296
+ case "INSIDE_OBJECT_BEFORE_VALUE":
297
+ case "INSIDE_OBJECT_AFTER_VALUE": {
298
+ result += "}";
299
+ break;
300
+ }
301
+ case "INSIDE_ARRAY_START":
302
+ case "INSIDE_ARRAY_AFTER_COMMA":
303
+ case "INSIDE_ARRAY_AFTER_VALUE": {
304
+ result += "]";
305
+ break;
306
+ }
307
+ case "INSIDE_LITERAL": {
308
+ const partialLiteral = input.substring(literalStart, input.length);
309
+ if ("true".startsWith(partialLiteral)) {
310
+ result += "true".slice(partialLiteral.length);
311
+ } else if ("false".startsWith(partialLiteral)) {
312
+ result += "false".slice(partialLiteral.length);
313
+ } else if ("null".startsWith(partialLiteral)) {
314
+ result += "null".slice(partialLiteral.length);
315
+ }
316
+ }
317
+ }
318
+ }
319
+ return result;
320
+ }
321
+
322
+ // src/core/utils/json/parse-partial-json.ts
323
+ var parsePartialJson = (json) => {
324
+ try {
325
+ return sjson.parse(json);
326
+ } catch {
327
+ try {
328
+ return sjson.parse(fixJson(json));
329
+ } catch {
330
+ return void 0;
331
+ }
332
+ }
333
+ };
334
+
335
+ export {
336
+ parsePartialJson
337
+ };
338
+ //# sourceMappingURL=chunk-C7JS3OBQ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/core/utils/json/parse-partial-json.ts","../src/core/utils/json/fix-json.ts"],"sourcesContent":["import sjson from \"secure-json-parse\";\nimport { fixJson } from \"./fix-json\";\n\nexport const parsePartialJson = (json: string) => {\n try {\n return sjson.parse(json);\n } catch {\n try {\n return sjson.parse(fixJson(json));\n } catch {\n return undefined;\n }\n }\n};\n","// LICENSE for this file only\n\n// Copyright 2023 Vercel, Inc.\n\n// Licensed under the Apache License, Version 2.0 (the \"License\");\n// you may not use this file except in compliance with the License.\n// You may obtain a copy of the License at\n\n// http://www.apache.org/licenses/LICENSE-2.0\n\n// Unless required by applicable law or agreed to in writing, software\n// distributed under the License is distributed on an \"AS IS\" BASIS,\n// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n// See the License for the specific language governing permissions and\n// limitations under the License.\n\ntype State =\n | \"ROOT\"\n | \"FINISH\"\n | \"INSIDE_STRING\"\n | \"INSIDE_STRING_ESCAPE\"\n | \"INSIDE_LITERAL\"\n | \"INSIDE_NUMBER\"\n | \"INSIDE_OBJECT_START\"\n | \"INSIDE_OBJECT_KEY\"\n | \"INSIDE_OBJECT_AFTER_KEY\"\n | \"INSIDE_OBJECT_BEFORE_VALUE\"\n | \"INSIDE_OBJECT_AFTER_VALUE\"\n | \"INSIDE_OBJECT_AFTER_COMMA\"\n | \"INSIDE_ARRAY_START\"\n | \"INSIDE_ARRAY_AFTER_VALUE\"\n | \"INSIDE_ARRAY_AFTER_COMMA\";\n\n// Implemented as a scanner with additional fixing\n// that performs a single linear time scan pass over the partial JSON.\n//\n// The states should ideally match relevant states from the JSON spec:\n// https://www.json.org/json-en.html\n//\n// Please note that invalid JSON is not considered/covered, because it\n// is assumed that the resulting JSON will be processed by a standard\n// JSON parser that will detect any invalid JSON.\nexport function fixJson(input: string): string {\n const stack: State[] = [\"ROOT\"];\n let lastValidIndex = -1;\n let literalStart: number | null = null;\n\n function processValueStart(char: string, i: number, swapState: State) {\n {\n switch (char) {\n case '\"': {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_STRING\");\n break;\n }\n\n case \"f\":\n case \"t\":\n case \"n\": {\n lastValidIndex = i;\n literalStart = i;\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_LITERAL\");\n break;\n }\n\n case \"-\": {\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_NUMBER\");\n break;\n }\n case \"0\":\n case \"1\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\":\n case \"8\":\n case \"9\": {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_NUMBER\");\n break;\n }\n\n case \"{\": {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_OBJECT_START\");\n break;\n }\n\n case \"[\": {\n lastValidIndex = i;\n stack.pop();\n stack.push(swapState);\n stack.push(\"INSIDE_ARRAY_START\");\n break;\n }\n }\n }\n }\n\n function processAfterObjectValue(char: string, i: number) {\n switch (char) {\n case \",\": {\n stack.pop();\n stack.push(\"INSIDE_OBJECT_AFTER_COMMA\");\n break;\n }\n case \"}\": {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n }\n }\n\n function processAfterArrayValue(char: string, i: number) {\n switch (char) {\n case \",\": {\n stack.pop();\n stack.push(\"INSIDE_ARRAY_AFTER_COMMA\");\n break;\n }\n case \"]\": {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n }\n }\n\n for (let i = 0; i < input.length; i++) {\n const char = input[i]!;\n const currentState = stack[stack.length - 1];\n\n switch (currentState) {\n case \"ROOT\":\n processValueStart(char, i, \"FINISH\");\n break;\n\n case \"INSIDE_OBJECT_START\": {\n switch (char) {\n case '\"': {\n stack.pop();\n stack.push(\"INSIDE_OBJECT_KEY\");\n break;\n }\n case \"}\": {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n }\n break;\n }\n\n case \"INSIDE_OBJECT_AFTER_COMMA\": {\n switch (char) {\n case '\"': {\n stack.pop();\n stack.push(\"INSIDE_OBJECT_KEY\");\n break;\n }\n }\n break;\n }\n\n case \"INSIDE_OBJECT_KEY\": {\n switch (char) {\n case '\"': {\n stack.pop();\n stack.push(\"INSIDE_OBJECT_AFTER_KEY\");\n break;\n }\n }\n break;\n }\n\n case \"INSIDE_OBJECT_AFTER_KEY\": {\n switch (char) {\n case \":\": {\n stack.pop();\n stack.push(\"INSIDE_OBJECT_BEFORE_VALUE\");\n\n break;\n }\n }\n break;\n }\n\n case \"INSIDE_OBJECT_BEFORE_VALUE\": {\n processValueStart(char, i, \"INSIDE_OBJECT_AFTER_VALUE\");\n break;\n }\n\n case \"INSIDE_OBJECT_AFTER_VALUE\": {\n processAfterObjectValue(char, i);\n break;\n }\n\n case \"INSIDE_STRING\": {\n switch (char) {\n case '\"': {\n stack.pop();\n lastValidIndex = i;\n break;\n }\n\n case \"\\\\\": {\n stack.push(\"INSIDE_STRING_ESCAPE\");\n break;\n }\n\n default: {\n lastValidIndex = i;\n }\n }\n\n break;\n }\n\n case \"INSIDE_ARRAY_START\": {\n switch (char) {\n case \"]\": {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n\n default: {\n lastValidIndex = i;\n processValueStart(char, i, \"INSIDE_ARRAY_AFTER_VALUE\");\n break;\n }\n }\n break;\n }\n\n case \"INSIDE_ARRAY_AFTER_VALUE\": {\n switch (char) {\n case \",\": {\n stack.pop();\n stack.push(\"INSIDE_ARRAY_AFTER_COMMA\");\n break;\n }\n\n case \"]\": {\n lastValidIndex = i;\n stack.pop();\n break;\n }\n\n default: {\n lastValidIndex = i;\n break;\n }\n }\n\n break;\n }\n\n case \"INSIDE_ARRAY_AFTER_COMMA\": {\n processValueStart(char, i, \"INSIDE_ARRAY_AFTER_VALUE\");\n break;\n }\n\n case \"INSIDE_STRING_ESCAPE\": {\n stack.pop();\n lastValidIndex = i;\n\n break;\n }\n\n case \"INSIDE_NUMBER\": {\n switch (char) {\n case \"0\":\n case \"1\":\n case \"2\":\n case \"3\":\n case \"4\":\n case \"5\":\n case \"6\":\n case \"7\":\n case \"8\":\n case \"9\": {\n lastValidIndex = i;\n break;\n }\n\n case \"e\":\n case \"E\":\n case \"-\":\n case \".\": {\n break;\n }\n\n case \",\": {\n stack.pop();\n\n if (stack[stack.length - 1] === \"INSIDE_ARRAY_AFTER_VALUE\") {\n processAfterArrayValue(char, i);\n }\n\n if (stack[stack.length - 1] === \"INSIDE_OBJECT_AFTER_VALUE\") {\n processAfterObjectValue(char, i);\n }\n\n break;\n }\n\n case \"}\": {\n stack.pop();\n\n if (stack[stack.length - 1] === \"INSIDE_OBJECT_AFTER_VALUE\") {\n processAfterObjectValue(char, i);\n }\n\n break;\n }\n\n case \"]\": {\n stack.pop();\n\n if (stack[stack.length - 1] === \"INSIDE_ARRAY_AFTER_VALUE\") {\n processAfterArrayValue(char, i);\n }\n\n break;\n }\n\n default: {\n stack.pop();\n break;\n }\n }\n\n break;\n }\n\n case \"INSIDE_LITERAL\": {\n const partialLiteral = input.substring(literalStart!, i + 1);\n\n if (\n !\"false\".startsWith(partialLiteral) &&\n !\"true\".startsWith(partialLiteral) &&\n !\"null\".startsWith(partialLiteral)\n ) {\n stack.pop();\n\n if (stack[stack.length - 1] === \"INSIDE_OBJECT_AFTER_VALUE\") {\n processAfterObjectValue(char, i);\n } else if (stack[stack.length - 1] === \"INSIDE_ARRAY_AFTER_VALUE\") {\n processAfterArrayValue(char, i);\n }\n } else {\n lastValidIndex = i;\n }\n\n break;\n }\n }\n }\n\n let result = input.slice(0, lastValidIndex + 1);\n\n for (let i = stack.length - 1; i >= 0; i--) {\n const state = stack[i];\n\n switch (state) {\n case \"INSIDE_STRING\": {\n result += '\"';\n break;\n }\n\n case \"INSIDE_OBJECT_KEY\":\n case \"INSIDE_OBJECT_AFTER_KEY\":\n case \"INSIDE_OBJECT_AFTER_COMMA\":\n case \"INSIDE_OBJECT_START\":\n case \"INSIDE_OBJECT_BEFORE_VALUE\":\n case \"INSIDE_OBJECT_AFTER_VALUE\": {\n result += \"}\";\n break;\n }\n\n case \"INSIDE_ARRAY_START\":\n case \"INSIDE_ARRAY_AFTER_COMMA\":\n case \"INSIDE_ARRAY_AFTER_VALUE\": {\n result += \"]\";\n break;\n }\n\n case \"INSIDE_LITERAL\": {\n const partialLiteral = input.substring(literalStart!, input.length);\n\n if (\"true\".startsWith(partialLiteral)) {\n result += \"true\".slice(partialLiteral.length);\n } else if (\"false\".startsWith(partialLiteral)) {\n result += \"false\".slice(partialLiteral.length);\n } else if (\"null\".startsWith(partialLiteral)) {\n result += \"null\".slice(partialLiteral.length);\n }\n }\n }\n }\n\n return result;\n}\n"],"mappings":"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","names":[]}
@@ -845,12 +845,17 @@ var DataStreamDecoder = class extends PipeableTransformStream {
845
845
  }
846
846
  case "9" /* ToolCall */: {
847
847
  const { toolCallId, toolName, args } = value;
848
- const toolCallController = controller.addToolCallPart({
849
- toolCallId,
850
- toolName,
851
- args
852
- });
853
- toolCallControllers.set(toolCallId, toolCallController);
848
+ let toolCallController = toolCallControllers.get(toolCallId);
849
+ if (toolCallController) {
850
+ toolCallController.argsText.close();
851
+ } else {
852
+ toolCallController = controller.addToolCallPart({
853
+ toolCallId,
854
+ toolName,
855
+ args
856
+ });
857
+ toolCallControllers.set(toolCallId, toolCallController);
858
+ }
854
859
  break;
855
860
  }
856
861
  case "d" /* FinishMessage */:
@@ -939,4 +944,4 @@ export {
939
944
  createAssistantStreamResponse,
940
945
  AssistantTransformStream
941
946
  };
942
- //# sourceMappingURL=chunk-NU5PP6C2.mjs.map
947
+ //# sourceMappingURL=chunk-VUZPPK6T.mjs.map