supercompat 1.0.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.
package/dist/index.js ADDED
@@ -0,0 +1,2265 @@
1
+ // src/supercompat.ts
2
+ function _array_like_to_array(arr, len) {
3
+ if (len == null || len > arr.length) len = arr.length;
4
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
5
+ return arr2;
6
+ }
7
+ function _array_with_holes(arr) {
8
+ if (Array.isArray(arr)) return arr;
9
+ }
10
+ function _array_without_holes(arr) {
11
+ if (Array.isArray(arr)) return _array_like_to_array(arr);
12
+ }
13
+ function _async_iterator(iterable) {
14
+ var method, async, sync, retry = 2;
15
+ for("undefined" != typeof Symbol && (async = Symbol.asyncIterator, sync = Symbol.iterator); retry--;){
16
+ if (async && null != (method = iterable[async])) return method.call(iterable);
17
+ if (sync && null != (method = iterable[sync])) return new AsyncFromSyncIterator(method.call(iterable));
18
+ async = "@@asyncIterator", sync = "@@iterator";
19
+ }
20
+ throw new TypeError("Object is not async iterable");
21
+ }
22
+ function AsyncFromSyncIterator(s) {
23
+ function AsyncFromSyncIteratorContinuation(r) {
24
+ if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object."));
25
+ var done = r.done;
26
+ return Promise.resolve(r.value).then(function(value) {
27
+ return {
28
+ value: value,
29
+ done: done
30
+ };
31
+ });
32
+ }
33
+ return AsyncFromSyncIterator = function(s) {
34
+ this.s = s, this.n = s.next;
35
+ }, AsyncFromSyncIterator.prototype = {
36
+ s: null,
37
+ n: null,
38
+ next: function() {
39
+ return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments));
40
+ },
41
+ return: function(value) {
42
+ var ret = this.s.return;
43
+ return void 0 === ret ? Promise.resolve({
44
+ value: value,
45
+ done: !0
46
+ }) : AsyncFromSyncIteratorContinuation(ret.apply(this.s, arguments));
47
+ },
48
+ throw: function(value) {
49
+ var thr = this.s.return;
50
+ return void 0 === thr ? Promise.reject(value) : AsyncFromSyncIteratorContinuation(thr.apply(this.s, arguments));
51
+ }
52
+ }, new AsyncFromSyncIterator(s);
53
+ }
54
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
55
+ try {
56
+ var info = gen[key](arg);
57
+ var value = info.value;
58
+ } catch (error) {
59
+ reject(error);
60
+ return;
61
+ }
62
+ if (info.done) {
63
+ resolve(value);
64
+ } else {
65
+ Promise.resolve(value).then(_next, _throw);
66
+ }
67
+ }
68
+ function _async_to_generator(fn) {
69
+ return function() {
70
+ var self = this, args = arguments;
71
+ return new Promise(function(resolve, reject) {
72
+ var gen = fn.apply(self, args);
73
+ function _next(value) {
74
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
75
+ }
76
+ function _throw(err) {
77
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
78
+ }
79
+ _next(undefined);
80
+ });
81
+ };
82
+ }
83
+ function _define_property(obj, key, value) {
84
+ if (key in obj) {
85
+ Object.defineProperty(obj, key, {
86
+ value: value,
87
+ enumerable: true,
88
+ configurable: true,
89
+ writable: true
90
+ });
91
+ } else {
92
+ obj[key] = value;
93
+ }
94
+ return obj;
95
+ }
96
+ function _iterable_to_array(iter) {
97
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
98
+ }
99
+ function _iterable_to_array_limit(arr, i) {
100
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
101
+ if (_i == null) return;
102
+ var _arr = [];
103
+ var _n = true;
104
+ var _d = false;
105
+ var _s, _e;
106
+ try {
107
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
108
+ _arr.push(_s.value);
109
+ if (i && _arr.length === i) break;
110
+ }
111
+ } catch (err) {
112
+ _d = true;
113
+ _e = err;
114
+ } finally{
115
+ try {
116
+ if (!_n && _i["return"] != null) _i["return"]();
117
+ } finally{
118
+ if (_d) throw _e;
119
+ }
120
+ }
121
+ return _arr;
122
+ }
123
+ function _non_iterable_rest() {
124
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
125
+ }
126
+ function _non_iterable_spread() {
127
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
128
+ }
129
+ function _object_spread(target) {
130
+ for(var i = 1; i < arguments.length; i++){
131
+ var source = arguments[i] != null ? arguments[i] : {};
132
+ var ownKeys = Object.keys(source);
133
+ if (typeof Object.getOwnPropertySymbols === "function") {
134
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
135
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
136
+ }));
137
+ }
138
+ ownKeys.forEach(function(key) {
139
+ _define_property(target, key, source[key]);
140
+ });
141
+ }
142
+ return target;
143
+ }
144
+ function ownKeys(object, enumerableOnly) {
145
+ var keys = Object.keys(object);
146
+ if (Object.getOwnPropertySymbols) {
147
+ var symbols = Object.getOwnPropertySymbols(object);
148
+ if (enumerableOnly) {
149
+ symbols = symbols.filter(function(sym) {
150
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
151
+ });
152
+ }
153
+ keys.push.apply(keys, symbols);
154
+ }
155
+ return keys;
156
+ }
157
+ function _object_spread_props(target, source) {
158
+ source = source != null ? source : {};
159
+ if (Object.getOwnPropertyDescriptors) {
160
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
161
+ } else {
162
+ ownKeys(Object(source)).forEach(function(key) {
163
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
164
+ });
165
+ }
166
+ return target;
167
+ }
168
+ function _sliced_to_array(arr, i) {
169
+ return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
170
+ }
171
+ function _to_array(arr) {
172
+ return _array_with_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_rest();
173
+ }
174
+ function _to_consumable_array(arr) {
175
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
176
+ }
177
+ function _unsupported_iterable_to_array(o, minLen) {
178
+ if (!o) return;
179
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
180
+ var n = Object.prototype.toString.call(o).slice(8, -1);
181
+ if (n === "Object" && o.constructor) n = o.constructor.name;
182
+ if (n === "Map" || n === "Set") return Array.from(n);
183
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
184
+ }
185
+ function _ts_generator(thisArg, body) {
186
+ var f, y, t, g, _ = {
187
+ label: 0,
188
+ sent: function() {
189
+ if (t[0] & 1) throw t[1];
190
+ return t[1];
191
+ },
192
+ trys: [],
193
+ ops: []
194
+ };
195
+ return g = {
196
+ next: verb(0),
197
+ "throw": verb(1),
198
+ "return": verb(2)
199
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
200
+ return this;
201
+ }), g;
202
+ function verb(n) {
203
+ return function(v) {
204
+ return step([
205
+ n,
206
+ v
207
+ ]);
208
+ };
209
+ }
210
+ function step(op) {
211
+ if (f) throw new TypeError("Generator is already executing.");
212
+ while(_)try {
213
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
214
+ if (y = 0, t) op = [
215
+ op[0] & 2,
216
+ t.value
217
+ ];
218
+ switch(op[0]){
219
+ case 0:
220
+ case 1:
221
+ t = op;
222
+ break;
223
+ case 4:
224
+ _.label++;
225
+ return {
226
+ value: op[1],
227
+ done: false
228
+ };
229
+ case 5:
230
+ _.label++;
231
+ y = op[1];
232
+ op = [
233
+ 0
234
+ ];
235
+ continue;
236
+ case 7:
237
+ op = _.ops.pop();
238
+ _.trys.pop();
239
+ continue;
240
+ default:
241
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
242
+ _ = 0;
243
+ continue;
244
+ }
245
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
246
+ _.label = op[1];
247
+ break;
248
+ }
249
+ if (op[0] === 6 && _.label < t[1]) {
250
+ _.label = t[1];
251
+ t = op;
252
+ break;
253
+ }
254
+ if (t && _.label < t[2]) {
255
+ _.label = t[2];
256
+ _.ops.push(op);
257
+ break;
258
+ }
259
+ if (t[2]) _.ops.pop();
260
+ _.trys.pop();
261
+ continue;
262
+ }
263
+ op = body.call(thisArg, _);
264
+ } catch (e) {
265
+ op = [
266
+ 6,
267
+ e
268
+ ];
269
+ y = 0;
270
+ } finally{
271
+ f = t = 0;
272
+ }
273
+ if (op[0] & 5) throw op[1];
274
+ return {
275
+ value: op[0] ? op[1] : void 0,
276
+ done: true
277
+ };
278
+ }
279
+ }
280
+ function _ts_values(o) {
281
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
282
+ if (m) return m.call(o);
283
+ if (o && typeof o.length === "number") return {
284
+ next: function() {
285
+ if (o && i >= o.length) o = void 0;
286
+ return {
287
+ value: o && o[i++],
288
+ done: !o
289
+ };
290
+ }
291
+ };
292
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
293
+ }
294
+ var _mistral, _mistral1;
295
+ import { assign, partob } from "radash";
296
+ var supercompat = function(param) {
297
+ var client = param.client, storage = param.storage, runAdapter = param.runAdapter;
298
+ return assign(client, storage({
299
+ runAdapter: partob(runAdapter, {
300
+ client: client
301
+ })
302
+ }));
303
+ };
304
+ // src/adapters/client/mistralClientAdapter/index.ts
305
+ var mistralClientAdapter = function(param) {
306
+ var mistral = param.mistral;
307
+ return {
308
+ chat: {
309
+ completions: {
310
+ // @ts-ignore-next-line
311
+ create: function() {
312
+ for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
313
+ args[_key] = arguments[_key];
314
+ }
315
+ return(// @ts-ignore-next-line
316
+ args[0].stream ? (_mistral = mistral).chatStream.apply(_mistral, _to_consumable_array(args)) : (_mistral1 = mistral).chat.apply(_mistral1, _to_consumable_array(args)));
317
+ }
318
+ }
319
+ }
320
+ };
321
+ };
322
+ // src/adapters/client/perplexityClientAdapter/index.ts
323
+ var agentSideRoles = [
324
+ "assistant",
325
+ "system"
326
+ ];
327
+ var perplexityClientAdapter = function(param) {
328
+ var perplexity = param.perplexity;
329
+ return {
330
+ chat: {
331
+ completions: {
332
+ create: function() {
333
+ for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
334
+ args[_key] = arguments[_key];
335
+ }
336
+ var _perplexity_chat_completions;
337
+ var _args = _to_array(args), firstArg = _args[0], restArgs = _args.slice(1);
338
+ var messages3 = [];
339
+ firstArg.messages.forEach(function(message, index) {
340
+ messages3.push(message);
341
+ var nextMessage = firstArg.messages[index + 1];
342
+ if (!nextMessage) return;
343
+ if (message.role === "user" && nextMessage.role === "user") {
344
+ messages3.push({
345
+ role: "assistant",
346
+ content: ""
347
+ });
348
+ } else if (agentSideRoles.includes(message.role) && agentSideRoles.includes(nextMessage.role)) {
349
+ messages3.push({
350
+ role: "user",
351
+ content: ""
352
+ });
353
+ }
354
+ });
355
+ return (_perplexity_chat_completions = perplexity.chat.completions).create.apply(_perplexity_chat_completions, [
356
+ _object_spread_props(_object_spread({}, firstArg), {
357
+ messages: messages3
358
+ })
359
+ ].concat(_to_consumable_array(restArgs)));
360
+ }
361
+ }
362
+ }
363
+ };
364
+ };
365
+ // src/adapters/run/completionsRunAdapter/index.ts
366
+ import _ from "lodash";
367
+ import { uid, omit, isEmpty } from "radash";
368
+ import dayjs from "dayjs";
369
+ // src/adapters/run/completionsRunAdapter/messages.ts
370
+ import { flat } from "radash";
371
+ // src/adapters/run/completionsRunAdapter/serializeMessage.ts
372
+ var serializeToolCalls = function(param) {
373
+ var runStep = param.runStep;
374
+ if (runStep.step_details.type !== "tool_calls") return [];
375
+ var functionToolCalls = runStep.step_details.tool_calls.filter(function(tc) {
376
+ return tc.type === "function";
377
+ });
378
+ return functionToolCalls.map(function(toolCall) {
379
+ return {
380
+ tool_call_id: toolCall.id,
381
+ role: "tool",
382
+ name: toolCall.function.name,
383
+ content: toolCall.function.output
384
+ };
385
+ });
386
+ };
387
+ var serializeMessageWithContent = function(param) {
388
+ var message = param.message;
389
+ var _message_metadata;
390
+ return _object_spread({
391
+ role: message.role,
392
+ content: serializeContent({
393
+ content: message.content
394
+ })
395
+ }, (message === null || message === void 0 ? void 0 : (_message_metadata = message.metadata) === null || _message_metadata === void 0 ? void 0 : _message_metadata.toolCalls) ? {
396
+ tool_calls: message.metadata.toolCalls
397
+ } : {});
398
+ };
399
+ var serializeContent = function(param) {
400
+ var content = param.content;
401
+ return content.map(function(content2) {
402
+ return content2.text.value;
403
+ }).join("\n");
404
+ };
405
+ var serializeMessage = function(param) {
406
+ var message = param.message;
407
+ console.log("serializing msg");
408
+ console.dir({
409
+ message: message
410
+ }, {
411
+ depth: null
412
+ });
413
+ var result = [
414
+ serializeMessageWithContent({
415
+ message: message
416
+ })
417
+ ];
418
+ if (!message.run) return result;
419
+ var toolCallsRunSteps = message.run.runSteps.filter(function(runStep) {
420
+ return runStep.type === "tool_calls";
421
+ });
422
+ toolCallsRunSteps.forEach(function(runStep) {
423
+ var _result;
424
+ (_result = result).push.apply(_result, _to_consumable_array(serializeToolCalls({
425
+ runStep: runStep
426
+ })));
427
+ });
428
+ console.dir({
429
+ result: result
430
+ }, {
431
+ depth: null
432
+ });
433
+ return result;
434
+ };
435
+ // src/adapters/run/completionsRunAdapter/messages.ts
436
+ var messages = function() {
437
+ var _ref = _async_to_generator(function(param) {
438
+ var run, getMessages2, _, _1;
439
+ return _ts_generator(this, function(_state) {
440
+ switch(_state.label){
441
+ case 0:
442
+ run = param.run, getMessages2 = param.getMessages;
443
+ _1 = (_ = _to_consumable_array(run.instructions ? [
444
+ {
445
+ role: "system",
446
+ content: run.instructions
447
+ }
448
+ ] : [])).concat;
449
+ return [
450
+ 4,
451
+ getMessages2()
452
+ ];
453
+ case 1:
454
+ return [
455
+ 2,
456
+ _1.apply(_, [
457
+ _to_consumable_array.apply(void 0, [
458
+ flat.apply(void 0, [
459
+ _state.sent().map(function(message) {
460
+ return serializeMessage({
461
+ message: message
462
+ });
463
+ })
464
+ ])
465
+ ])
466
+ ])
467
+ ];
468
+ }
469
+ });
470
+ });
471
+ return function messages(_) {
472
+ return _ref.apply(this, arguments);
473
+ };
474
+ }();
475
+ // src/adapters/run/completionsRunAdapter/index.ts
476
+ var updatedToolCall = function(param) {
477
+ var toolCall = param.toolCall, delta = param.delta;
478
+ if (!toolCall) return omit(delta, [
479
+ "index"
480
+ ]);
481
+ var result = _.cloneDeep(toolCall);
482
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
483
+ try {
484
+ for(var _iterator = Object.entries(delta.function)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
485
+ var _step_value = _sliced_to_array(_step.value, 2), key = _step_value[0], value = _step_value[1];
486
+ var _result_function_key;
487
+ result.function[key] = "".concat((_result_function_key = result.function[key]) !== null && _result_function_key !== void 0 ? _result_function_key : "").concat(value);
488
+ }
489
+ } catch (err) {
490
+ _didIteratorError = true;
491
+ _iteratorError = err;
492
+ } finally{
493
+ try {
494
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
495
+ _iterator.return();
496
+ }
497
+ } finally{
498
+ if (_didIteratorError) {
499
+ throw _iteratorError;
500
+ }
501
+ }
502
+ }
503
+ return result;
504
+ };
505
+ var toolCallsData = function(param) {
506
+ var prevToolCalls = param.prevToolCalls, delta = param.delta;
507
+ if (!prevToolCalls) {
508
+ return delta.tool_calls.map(function(tc) {
509
+ return _object_spread({
510
+ id: uid(24),
511
+ type: "function"
512
+ }, omit(tc, [
513
+ "index"
514
+ ]));
515
+ });
516
+ }
517
+ var newToolCalls = _.cloneDeep(prevToolCalls);
518
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
519
+ try {
520
+ for(var _iterator = delta.tool_calls[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
521
+ var runStepDelta = _step.value;
522
+ newToolCalls[runStepDelta.index] = updatedToolCall({
523
+ toolCall: newToolCalls[runStepDelta.index],
524
+ delta: runStepDelta
525
+ });
526
+ }
527
+ } catch (err) {
528
+ _didIteratorError = true;
529
+ _iteratorError = err;
530
+ } finally{
531
+ try {
532
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
533
+ _iterator.return();
534
+ }
535
+ } finally{
536
+ if (_didIteratorError) {
537
+ throw _iteratorError;
538
+ }
539
+ }
540
+ }
541
+ return newToolCalls;
542
+ };
543
+ var completionsRunAdapter = function() {
544
+ var _ref = _async_to_generator(function(param) {
545
+ var client, run, onEvent2, getMessages2, opts, _tmp, providerResponse, e, message, toolCallsRunStep, currentContent, currentToolCalls, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, chunk, delta, _delta_content, err;
546
+ return _ts_generator(this, function(_state) {
547
+ switch(_state.label){
548
+ case 0:
549
+ client = param.client, run = param.run, onEvent2 = param.onEvent, getMessages2 = param.getMessages;
550
+ if (run.status !== "queued") return [
551
+ 2
552
+ ];
553
+ onEvent2({
554
+ event: "thread.run.in_progress",
555
+ data: _object_spread_props(_object_spread({}, run), {
556
+ status: "in_progress"
557
+ })
558
+ });
559
+ _tmp = {};
560
+ return [
561
+ 4,
562
+ messages({
563
+ run: run,
564
+ getMessages: getMessages2
565
+ })
566
+ ];
567
+ case 1:
568
+ opts = _object_spread.apply(void 0, [
569
+ (_tmp.messages = _state.sent(), _tmp.model = run.model, _tmp.stream = true, _tmp),
570
+ isEmpty(run.tools) ? {} : {
571
+ tools: run.tools
572
+ }
573
+ ]);
574
+ console.dir({
575
+ opts: opts
576
+ }, {
577
+ depth: null
578
+ });
579
+ _state.label = 2;
580
+ case 2:
581
+ _state.trys.push([
582
+ 2,
583
+ 4,
584
+ ,
585
+ 5
586
+ ]);
587
+ return [
588
+ 4,
589
+ client.chat.completions.create(opts)
590
+ ];
591
+ case 3:
592
+ providerResponse = _state.sent();
593
+ return [
594
+ 3,
595
+ 5
596
+ ];
597
+ case 4:
598
+ e = _state.sent();
599
+ console.error(e);
600
+ return [
601
+ 2,
602
+ onEvent2({
603
+ event: "thread.run.failed",
604
+ data: _object_spread_props(_object_spread({}, run), {
605
+ failed_at: dayjs().unix(),
606
+ status: "in_progress",
607
+ last_error: e.message
608
+ })
609
+ })
610
+ ];
611
+ case 5:
612
+ return [
613
+ 4,
614
+ onEvent2({
615
+ event: "thread.message.created",
616
+ data: {
617
+ id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
618
+ object: "thread.message",
619
+ completed_at: null,
620
+ run_id: run.id,
621
+ created_at: dayjs().unix(),
622
+ assistant_id: run.assistant_id,
623
+ incomplete_at: null,
624
+ incomplete_details: null,
625
+ metadata: {},
626
+ file_ids: [],
627
+ thread_id: run.thread_id,
628
+ content: [
629
+ {
630
+ text: {
631
+ value: "",
632
+ annotations: []
633
+ },
634
+ type: "text"
635
+ }
636
+ ],
637
+ role: "assistant",
638
+ status: "in_progress"
639
+ }
640
+ })
641
+ ];
642
+ case 6:
643
+ message = _state.sent();
644
+ onEvent2({
645
+ event: "thread.run.step.created",
646
+ data: {
647
+ id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
648
+ object: "thread.run.step",
649
+ run_id: run.id,
650
+ assistant_id: run.assistant_id,
651
+ thread_id: run.thread_id,
652
+ type: "message_creation",
653
+ status: "completed",
654
+ completed_at: dayjs().unix(),
655
+ created_at: dayjs().unix(),
656
+ expired_at: null,
657
+ last_error: null,
658
+ metadata: {},
659
+ failed_at: null,
660
+ cancelled_at: null,
661
+ usage: null,
662
+ step_details: {
663
+ type: "message_creation",
664
+ message_creation: {
665
+ message_id: message.id
666
+ }
667
+ }
668
+ }
669
+ });
670
+ currentContent = "";
671
+ console.dir({
672
+ providerResponse: providerResponse
673
+ }, {
674
+ depth: null
675
+ });
676
+ _iteratorAbruptCompletion = false, _didIteratorError = false;
677
+ _state.label = 7;
678
+ case 7:
679
+ _state.trys.push([
680
+ 7,
681
+ 15,
682
+ 16,
683
+ 21
684
+ ]);
685
+ _iterator = _async_iterator(providerResponse);
686
+ _state.label = 8;
687
+ case 8:
688
+ return [
689
+ 4,
690
+ _iterator.next()
691
+ ];
692
+ case 9:
693
+ if (!(_iteratorAbruptCompletion = !(_step = _state.sent()).done)) return [
694
+ 3,
695
+ 14
696
+ ];
697
+ _value = _step.value;
698
+ chunk = _value;
699
+ delta = chunk.choices[0].delta;
700
+ if (delta.content) {
701
+ ;
702
+ currentContent = "".concat(currentContent).concat((_delta_content = delta.content) !== null && _delta_content !== void 0 ? _delta_content : "");
703
+ }
704
+ if (!delta.tool_calls) return [
705
+ 3,
706
+ 12
707
+ ];
708
+ if (!!toolCallsRunStep) return [
709
+ 3,
710
+ 11
711
+ ];
712
+ return [
713
+ 4,
714
+ onEvent2({
715
+ event: "thread.run.step.created",
716
+ data: {
717
+ id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
718
+ object: "thread.run.step",
719
+ run_id: run.id,
720
+ assistant_id: run.assistant_id,
721
+ thread_id: run.thread_id,
722
+ type: "tool_calls",
723
+ status: "in_progress",
724
+ completed_at: null,
725
+ created_at: dayjs().unix(),
726
+ expired_at: null,
727
+ last_error: null,
728
+ metadata: {},
729
+ failed_at: null,
730
+ cancelled_at: null,
731
+ usage: null,
732
+ step_details: {
733
+ type: "tool_calls",
734
+ tool_calls: []
735
+ }
736
+ }
737
+ })
738
+ ];
739
+ case 10:
740
+ toolCallsRunStep = _state.sent();
741
+ _state.label = 11;
742
+ case 11:
743
+ onEvent2({
744
+ event: "thread.run.step.delta",
745
+ data: {
746
+ object: "thread.run.step.delta",
747
+ run_id: run.id,
748
+ id: toolCallsRunStep.id,
749
+ delta: {
750
+ step_details: {
751
+ type: "tool_calls",
752
+ tool_calls: delta.tool_calls.map(function(tc) {
753
+ return _object_spread({
754
+ id: uid(24),
755
+ type: "function"
756
+ }, tc);
757
+ })
758
+ }
759
+ }
760
+ }
761
+ });
762
+ currentToolCalls = toolCallsData({
763
+ prevToolCalls: currentToolCalls,
764
+ delta: delta
765
+ });
766
+ _state.label = 12;
767
+ case 12:
768
+ if (delta.content) {
769
+ onEvent2({
770
+ event: "thread.message.delta",
771
+ data: {
772
+ id: message.id,
773
+ delta: {
774
+ content: [
775
+ {
776
+ type: "text",
777
+ index: 0,
778
+ text: {
779
+ value: delta.content
780
+ }
781
+ }
782
+ ]
783
+ }
784
+ }
785
+ });
786
+ }
787
+ _state.label = 13;
788
+ case 13:
789
+ _iteratorAbruptCompletion = false;
790
+ return [
791
+ 3,
792
+ 8
793
+ ];
794
+ case 14:
795
+ return [
796
+ 3,
797
+ 21
798
+ ];
799
+ case 15:
800
+ err = _state.sent();
801
+ _didIteratorError = true;
802
+ _iteratorError = err;
803
+ return [
804
+ 3,
805
+ 21
806
+ ];
807
+ case 16:
808
+ _state.trys.push([
809
+ 16,
810
+ ,
811
+ 19,
812
+ 20
813
+ ]);
814
+ if (!(_iteratorAbruptCompletion && _iterator.return != null)) return [
815
+ 3,
816
+ 18
817
+ ];
818
+ return [
819
+ 4,
820
+ _iterator.return()
821
+ ];
822
+ case 17:
823
+ _state.sent();
824
+ _state.label = 18;
825
+ case 18:
826
+ return [
827
+ 3,
828
+ 20
829
+ ];
830
+ case 19:
831
+ if (_didIteratorError) {
832
+ throw _iteratorError;
833
+ }
834
+ return [
835
+ 7
836
+ ];
837
+ case 20:
838
+ return [
839
+ 7
840
+ ];
841
+ case 21:
842
+ return [
843
+ 4,
844
+ onEvent2({
845
+ event: "thread.message.completed",
846
+ data: _object_spread_props(_object_spread({}, message), {
847
+ status: "completed",
848
+ content: [
849
+ {
850
+ text: {
851
+ value: currentContent,
852
+ annotations: []
853
+ },
854
+ type: "text"
855
+ }
856
+ ],
857
+ tool_calls: currentToolCalls
858
+ })
859
+ })
860
+ ];
861
+ case 22:
862
+ message = _state.sent();
863
+ if (isEmpty(message.toolCalls)) {
864
+ return [
865
+ 2,
866
+ onEvent2({
867
+ event: "thread.run.completed",
868
+ data: _object_spread_props(_object_spread({}, run), {
869
+ status: "completed",
870
+ completed_at: dayjs().unix()
871
+ })
872
+ })
873
+ ];
874
+ }
875
+ return [
876
+ 2,
877
+ onEvent2({
878
+ event: "thread.run.requires_action",
879
+ data: _object_spread_props(_object_spread({}, run), {
880
+ status: "requires_action",
881
+ required_action: {
882
+ type: "submit_tool_outputs",
883
+ submit_tool_outputs: {
884
+ tool_calls: message.toolCalls
885
+ }
886
+ }
887
+ })
888
+ })
889
+ ];
890
+ }
891
+ });
892
+ });
893
+ return function completionsRunAdapter(_) {
894
+ return _ref.apply(this, arguments);
895
+ };
896
+ }();
897
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/create.ts
898
+ import dayjs3 from "dayjs";
899
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/serializeThread.ts
900
+ import dayjs2 from "dayjs";
901
+ var serializeThread = function(param) {
902
+ var thread = param.thread;
903
+ return {
904
+ id: thread.id,
905
+ object: "thread",
906
+ created_at: dayjs2(thread.createdAt).unix(),
907
+ metadata: thread.metadata
908
+ };
909
+ };
910
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/create.ts
911
+ var create = function(param) {
912
+ var prisma = param.prisma;
913
+ return /*#__PURE__*/ _async_to_generator(function() {
914
+ var _len, args, _key, _args_, _args__body, messages3, metadata, initialCreatedAt, thread;
915
+ var _arguments = arguments;
916
+ return _ts_generator(this, function(_state) {
917
+ switch(_state.label){
918
+ case 0:
919
+ for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
920
+ args[_key] = _arguments[_key];
921
+ }
922
+ _args_ = args[0], _args__body = _args_.// @ts-ignore-next-line
923
+ body, messages3 = _args__body.messages, metadata = _args__body.metadata;
924
+ initialCreatedAt = dayjs3().subtract(messages3.length, "seconds").format();
925
+ return [
926
+ 4,
927
+ prisma.thread.create({
928
+ data: {
929
+ assistantId: metadata.superinterfaceAssistantId,
930
+ metadata: metadata,
931
+ messages: {
932
+ create: messages3.map(function(message, index) {
933
+ return {
934
+ role: message.role,
935
+ content: [
936
+ {
937
+ type: "text",
938
+ text: {
939
+ annotations: [],
940
+ value: message.content
941
+ }
942
+ }
943
+ ],
944
+ fileIds: message.file_ids,
945
+ metadata: message.metadata,
946
+ createdAt: dayjs3(initialCreatedAt).add(index, "seconds").toDate()
947
+ };
948
+ })
949
+ }
950
+ }
951
+ })
952
+ ];
953
+ case 1:
954
+ thread = _state.sent();
955
+ return [
956
+ 2,
957
+ serializeThread({
958
+ thread: thread
959
+ })
960
+ ];
961
+ }
962
+ });
963
+ });
964
+ };
965
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/messages/list.ts
966
+ import { assign as assign3, last } from "radash";
967
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/messages/serializeMessage.ts
968
+ import dayjs4 from "dayjs";
969
+ import { assign as assign2 } from "radash";
970
+ var serializeMessage2 = function(param) {
971
+ var message = param.message;
972
+ var _message_metadata;
973
+ return {
974
+ id: message.id,
975
+ object: "thread.message",
976
+ created_at: dayjs4(message.createdAt).unix(),
977
+ thread_id: message.threadId,
978
+ completed_at: message.completedAt ? dayjs4(message.completedAt).unix() : null,
979
+ incomplete_at: message.incompleteAt ? dayjs4(message.incompleteAt).unix() : null,
980
+ incomplete_details: message.incompleteDetails,
981
+ role: message.role.toLowerCase(),
982
+ content: message.content,
983
+ assistant_id: message.assistantId,
984
+ run_id: message.runId,
985
+ file_ids: message.fileIds,
986
+ status: message.status.toLowerCase(),
987
+ metadata: assign2((_message_metadata = message.metadata) !== null && _message_metadata !== void 0 ? _message_metadata : {}, {
988
+ toolCalls: message.toolCalls
989
+ })
990
+ };
991
+ };
992
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/messages/list.ts
993
+ var list = function(param) {
994
+ var prisma = param.prisma;
995
+ return /*#__PURE__*/ _async_to_generator(function() {
996
+ var _len, args, _key, _last, threadId, _args_, _assign3, // @ts-ignore-next-line
997
+ limit, // @ts-ignore-next-line
998
+ order, messages3, _last_id;
999
+ var _arguments = arguments;
1000
+ return _ts_generator(this, function(_state) {
1001
+ switch(_state.label){
1002
+ case 0:
1003
+ for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1004
+ args[_key] = _arguments[_key];
1005
+ }
1006
+ threadId = args[0];
1007
+ _assign3 = assign3({
1008
+ // @ts-ignore-next-line
1009
+ limit: 20,
1010
+ order: "desc"
1011
+ }, (_args_ = args[1]) !== null && _args_ !== void 0 ? _args_ : {}), limit = _assign3.limit, order = _assign3.order;
1012
+ return [
1013
+ 4,
1014
+ prisma.message.findMany({
1015
+ where: {
1016
+ threadId: threadId
1017
+ },
1018
+ take: limit,
1019
+ orderBy: {
1020
+ createdAt: order
1021
+ }
1022
+ })
1023
+ ];
1024
+ case 1:
1025
+ messages3 = _state.sent();
1026
+ return [
1027
+ 2,
1028
+ {
1029
+ data: messages3.map(function(message) {
1030
+ return serializeMessage2({
1031
+ message: message
1032
+ });
1033
+ }),
1034
+ hasNextPage: function() {
1035
+ return false;
1036
+ },
1037
+ body: {
1038
+ last_id: (_last_id = (_last = last(messages3)) === null || _last === void 0 ? void 0 : _last.id) !== null && _last_id !== void 0 ? _last_id : null
1039
+ }
1040
+ }
1041
+ ];
1042
+ }
1043
+ });
1044
+ });
1045
+ };
1046
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/messages/create.ts
1047
+ var messageContentBlocks = function(param) {
1048
+ var content = param.content;
1049
+ return [
1050
+ {
1051
+ type: "text",
1052
+ text: {
1053
+ value: content !== null && content !== void 0 ? content : "",
1054
+ annotations: []
1055
+ }
1056
+ }
1057
+ ];
1058
+ };
1059
+ var create2 = function(param) {
1060
+ var prisma = param.prisma;
1061
+ return /*#__PURE__*/ _async_to_generator(function() {
1062
+ var _len, args, _key, threadId, content, message;
1063
+ var _arguments = arguments;
1064
+ return _ts_generator(this, function(_state) {
1065
+ switch(_state.label){
1066
+ case 0:
1067
+ for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1068
+ args[_key] = _arguments[_key];
1069
+ }
1070
+ threadId = args[0];
1071
+ content = args[1].content;
1072
+ return [
1073
+ 4,
1074
+ prisma.message.create({
1075
+ data: {
1076
+ threadId: threadId,
1077
+ content: messageContentBlocks({
1078
+ content: content
1079
+ }),
1080
+ role: "USER"
1081
+ }
1082
+ })
1083
+ ];
1084
+ case 1:
1085
+ message = _state.sent();
1086
+ return [
1087
+ 2,
1088
+ serializeMessage2({
1089
+ message: message
1090
+ })
1091
+ ];
1092
+ }
1093
+ });
1094
+ });
1095
+ };
1096
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/messages/index.ts
1097
+ var messages2 = function(param) {
1098
+ var prisma = param.prisma;
1099
+ return {
1100
+ list: list({
1101
+ prisma: prisma
1102
+ }),
1103
+ create: create2({
1104
+ prisma: prisma
1105
+ })
1106
+ };
1107
+ };
1108
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/list.ts
1109
+ import { assign as assign4, last as last2 } from "radash";
1110
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/serializeRun.ts
1111
+ import dayjs5 from "dayjs";
1112
+ var serializeRun = function(param) {
1113
+ var run = param.run;
1114
+ return {
1115
+ id: run.id,
1116
+ object: "thread.run",
1117
+ created_at: dayjs5(run.createdAt).unix(),
1118
+ thread_id: run.threadId,
1119
+ assistant_id: run.assistantId,
1120
+ status: run.status.toLowerCase(),
1121
+ required_action: run.requiredAction,
1122
+ last_error: run.lastError,
1123
+ expires_at: dayjs5(run.expiresAt).unix(),
1124
+ started_at: run.startedAt ? dayjs5(run.startedAt).unix() : null,
1125
+ cancelled_at: run.cancelledAt ? dayjs5(run.cancelledAt).unix() : null,
1126
+ failed_at: run.failedAt ? dayjs5(run.failedAt).unix() : null,
1127
+ completed_at: run.completedAt ? dayjs5(run.completedAt).unix() : null,
1128
+ model: run.model,
1129
+ instructions: run.instructions,
1130
+ // @ts-ignore-next-line
1131
+ tools: run.tools,
1132
+ file_ids: run.fileIds,
1133
+ metadata: run.metadata,
1134
+ usage: run.usage
1135
+ };
1136
+ };
1137
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/list.ts
1138
+ var list2 = function(param) {
1139
+ var prisma = param.prisma;
1140
+ return /*#__PURE__*/ _async_to_generator(function() {
1141
+ var _len, args, _key, _last2, threadId, _args_, _assign4, // @ts-ignore-next-line
1142
+ limit, // @ts-ignore-next-line
1143
+ order, runs2, _last2_id;
1144
+ var _arguments = arguments;
1145
+ return _ts_generator(this, function(_state) {
1146
+ switch(_state.label){
1147
+ case 0:
1148
+ for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1149
+ args[_key] = _arguments[_key];
1150
+ }
1151
+ threadId = args[0];
1152
+ _assign4 = assign4({
1153
+ // @ts-ignore-next-line
1154
+ limit: 20,
1155
+ order: "desc"
1156
+ }, (_args_ = args[1]) !== null && _args_ !== void 0 ? _args_ : {}), limit = _assign4.limit, order = _assign4.order;
1157
+ return [
1158
+ 4,
1159
+ prisma.run.findMany({
1160
+ where: {
1161
+ threadId: threadId
1162
+ },
1163
+ take: limit,
1164
+ orderBy: {
1165
+ createdAt: order
1166
+ }
1167
+ })
1168
+ ];
1169
+ case 1:
1170
+ runs2 = _state.sent();
1171
+ return [
1172
+ 2,
1173
+ {
1174
+ data: runs2.map(function(run) {
1175
+ return serializeRun({
1176
+ run: run
1177
+ });
1178
+ }),
1179
+ hasNextPage: function() {
1180
+ return false;
1181
+ },
1182
+ body: {
1183
+ last_id: (_last2_id = (_last2 = last2(runs2)) === null || _last2 === void 0 ? void 0 : _last2.id) !== null && _last2_id !== void 0 ? _last2_id : null
1184
+ }
1185
+ }
1186
+ ];
1187
+ }
1188
+ });
1189
+ });
1190
+ };
1191
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/create.ts
1192
+ import dayjs6 from "dayjs";
1193
+ import { assign as assign5 } from "radash";
1194
+ var create3 = function(param) {
1195
+ var prisma = param.prisma;
1196
+ return /*#__PURE__*/ _async_to_generator(function() {
1197
+ var _len, args, _key, threadId, assistant_id, assistant, _assign5, model, instructions, // additional_instructions,
1198
+ tools, metadata, run;
1199
+ var _arguments = arguments;
1200
+ return _ts_generator(this, function(_state) {
1201
+ switch(_state.label){
1202
+ case 0:
1203
+ for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1204
+ args[_key] = _arguments[_key];
1205
+ }
1206
+ threadId = args[0];
1207
+ assistant_id = args[1].assistant_id;
1208
+ return [
1209
+ 4,
1210
+ prisma.assistant.findUnique({
1211
+ where: {
1212
+ id: assistant_id
1213
+ }
1214
+ })
1215
+ ];
1216
+ case 1:
1217
+ assistant = _state.sent();
1218
+ if (!assistant) {
1219
+ throw new Error("Assistant not found");
1220
+ }
1221
+ _assign5 = assign5({
1222
+ model: assistant.modelSlug,
1223
+ instructions: "",
1224
+ additional_instructions: null
1225
+ }, args[1]), model = _assign5.model, instructions = _assign5.instructions, tools = _assign5.tools, metadata = _assign5.metadata;
1226
+ return [
1227
+ 4,
1228
+ prisma.run.create({
1229
+ data: {
1230
+ status: "QUEUED",
1231
+ expiresAt: dayjs6().add(1, "hour").unix(),
1232
+ // @ts-ignore-next-line
1233
+ model: model,
1234
+ // @ts-ignore-next-line
1235
+ instructions: instructions,
1236
+ // @ts-ignore-next-line
1237
+ tools: tools,
1238
+ // @ts-ignore-next-line
1239
+ metadata: metadata,
1240
+ thread: {
1241
+ connect: {
1242
+ id: threadId
1243
+ }
1244
+ },
1245
+ assistant: {
1246
+ connect: {
1247
+ id: assistant_id
1248
+ }
1249
+ }
1250
+ }
1251
+ })
1252
+ ];
1253
+ case 2:
1254
+ run = _state.sent();
1255
+ return [
1256
+ 2,
1257
+ serializeRun({
1258
+ run: run
1259
+ })
1260
+ ];
1261
+ }
1262
+ });
1263
+ });
1264
+ };
1265
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/createAndStream.ts
1266
+ import { assign as assign6 } from "radash";
1267
+ import dayjs8 from "dayjs";
1268
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadRunInProgress.ts
1269
+ var threadRunInProgress = function(param) {
1270
+ var prisma = param.prisma, event = param.event, controller = param.controller;
1271
+ controller.enqueue(event);
1272
+ return prisma.run.update({
1273
+ where: {
1274
+ id: event.data.id
1275
+ },
1276
+ data: {
1277
+ status: "IN_PROGRESS" /* IN_PROGRESS */
1278
+ }
1279
+ });
1280
+ };
1281
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadRunFailed.ts
1282
+ var threadRunFailed = function(param) {
1283
+ var prisma = param.prisma, event = param.event, controller = param.controller;
1284
+ controller.enqueue(event);
1285
+ return prisma.run.update({
1286
+ where: {
1287
+ id: event.data.id
1288
+ },
1289
+ data: {
1290
+ status: "FAILED" /* FAILED */ ,
1291
+ failedAt: event.data.failed_at,
1292
+ lastError: event.data.last_error
1293
+ }
1294
+ });
1295
+ };
1296
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadRunCompleted.ts
1297
+ var threadRunCompleted = function(param) {
1298
+ var prisma = param.prisma, event = param.event, controller = param.controller;
1299
+ controller.enqueue(event);
1300
+ return prisma.run.update({
1301
+ where: {
1302
+ id: event.data.id
1303
+ },
1304
+ data: {
1305
+ status: "COMPLETED" /* COMPLETED */ ,
1306
+ requiredAction: void 0
1307
+ }
1308
+ });
1309
+ };
1310
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadRunRequiresAction.ts
1311
+ var threadRunRequiresAction = function(param) {
1312
+ var prisma = param.prisma, event = param.event, controller = param.controller;
1313
+ controller.enqueue(event);
1314
+ return prisma.run.update({
1315
+ where: {
1316
+ id: event.data.id
1317
+ },
1318
+ data: {
1319
+ status: RunStatus.REQUIRES_ACTION,
1320
+ requiredAction: event.data.required_action
1321
+ }
1322
+ });
1323
+ };
1324
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/steps/serializeRunStep.ts
1325
+ import dayjs7 from "dayjs";
1326
+ var serializeRunStep = function(param) {
1327
+ var runStep = param.runStep;
1328
+ return {
1329
+ id: runStep.id,
1330
+ object: "thread.run.step",
1331
+ created_at: dayjs7(runStep.createdAt).unix(),
1332
+ assistant_id: runStep.assistantId,
1333
+ thread_id: runStep.threadId,
1334
+ run_id: runStep.runId,
1335
+ type: runStep.type.toLowerCase(),
1336
+ status: runStep.status.toLowerCase(),
1337
+ // @ts-ignore-next-line
1338
+ step_details: runStep.stepDetails,
1339
+ last_error: runStep.lastError,
1340
+ expired_at: runStep.expiredAt ? dayjs7(runStep.expiredAt).unix() : null,
1341
+ cancelled_at: runStep.cancelledAt ? dayjs7(runStep.cancelledAt).unix() : null,
1342
+ failed_at: runStep.failedAt ? dayjs7(runStep.failedAt).unix() : null,
1343
+ completed_at: runStep.completedAt ? dayjs7(runStep.completedAt).unix() : null,
1344
+ metadata: runStep.metadata,
1345
+ usage: runStep.usage
1346
+ };
1347
+ };
1348
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadRunStepCreated.ts
1349
+ var type = function(event) {
1350
+ if (event.data.type === "message_creation") return "MESSAGE_CREATION" /* MESSAGE_CREATION */ ;
1351
+ if (event.data.type === "tool_calls") return "TOOL_CALLS" /* TOOL_CALLS */ ;
1352
+ throw new Error("Unknown type: ".concat(event.data.type));
1353
+ };
1354
+ var status = function(event) {
1355
+ if (event.data.status === "in_progress") return "IN_PROGRESS" /* IN_PROGRESS */ ;
1356
+ if (event.data.status === "cancelled") return "CANCELLED" /* CANCELLED */ ;
1357
+ if (event.data.status === "completed") return "COMPLETED" /* COMPLETED */ ;
1358
+ if (event.data.status === "failed") return "FAILED" /* FAILED */ ;
1359
+ if (event.data.status === "expired") return "EXPIRED" /* EXPIRED */ ;
1360
+ throw new Error("Unknown status: ".concat(event.data.status));
1361
+ };
1362
+ var threadRunStepCreated = function() {
1363
+ var _ref = _async_to_generator(function(param) {
1364
+ var prisma, event, controller, runStep, serializedRunStep;
1365
+ return _ts_generator(this, function(_state) {
1366
+ switch(_state.label){
1367
+ case 0:
1368
+ prisma = param.prisma, event = param.event, controller = param.controller;
1369
+ return [
1370
+ 4,
1371
+ prisma.runStep.create({
1372
+ data: {
1373
+ runId: event.data.run_id,
1374
+ assistantId: event.data.assistant_id,
1375
+ threadId: event.data.thread_id,
1376
+ type: type(event),
1377
+ status: status(event),
1378
+ stepDetails: event.data.step_details,
1379
+ completedAt: event.data.completed_at
1380
+ }
1381
+ })
1382
+ ];
1383
+ case 1:
1384
+ runStep = _state.sent();
1385
+ serializedRunStep = serializeRunStep({
1386
+ runStep: runStep
1387
+ });
1388
+ controller.enqueue(_object_spread_props(_object_spread({}, event), {
1389
+ data: serializedRunStep
1390
+ }));
1391
+ return [
1392
+ 2,
1393
+ serializedRunStep
1394
+ ];
1395
+ }
1396
+ });
1397
+ });
1398
+ return function threadRunStepCreated(_) {
1399
+ return _ref.apply(this, arguments);
1400
+ };
1401
+ }();
1402
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadRunStepDelta.ts
1403
+ var threadRunStepDelta = function(param) {
1404
+ var event = param.event, controller = param.controller;
1405
+ return controller.enqueue(event);
1406
+ };
1407
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadMessageCreated.ts
1408
+ var status2 = function(event) {
1409
+ if (event.data.status === "completed") return "COMPLETED" /* COMPLETED */ ;
1410
+ if (event.data.status === "in_progress") return "IN_PROGRESS" /* IN_PROGRESS */ ;
1411
+ if (event.data.status === "incomplete") return "INCOMPLETE" /* INCOMPLETE */ ;
1412
+ throw new Error("Unknown status: ".concat(event.data.status));
1413
+ };
1414
+ var threadMessageCreated = function() {
1415
+ var _ref = _async_to_generator(function(param) {
1416
+ var prisma, event, controller, message, serializedMessage;
1417
+ return _ts_generator(this, function(_state) {
1418
+ switch(_state.label){
1419
+ case 0:
1420
+ prisma = param.prisma, event = param.event, controller = param.controller;
1421
+ return [
1422
+ 4,
1423
+ prisma.message.create({
1424
+ data: {
1425
+ threadId: event.data.thread_id,
1426
+ content: event.data.content,
1427
+ role: event.data.role === "assistant" ? "ASSISTANT" : "USER",
1428
+ assistantId: event.data.assistant_id,
1429
+ runId: event.data.run_id,
1430
+ status: status2(event)
1431
+ }
1432
+ })
1433
+ ];
1434
+ case 1:
1435
+ message = _state.sent();
1436
+ serializedMessage = serializeMessage2({
1437
+ message: message
1438
+ });
1439
+ controller.enqueue(_object_spread_props(_object_spread({}, event), {
1440
+ data: serializedMessage
1441
+ }));
1442
+ return [
1443
+ 2,
1444
+ serializedMessage
1445
+ ];
1446
+ }
1447
+ });
1448
+ });
1449
+ return function threadMessageCreated(_) {
1450
+ return _ref.apply(this, arguments);
1451
+ };
1452
+ }();
1453
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadMessageDelta.ts
1454
+ var threadMessageDelta = function(param) {
1455
+ var event = param.event, controller = param.controller;
1456
+ return controller.enqueue(event);
1457
+ };
1458
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadMessageCompleted.ts
1459
+ var threadMessageCompleted = function() {
1460
+ var _ref = _async_to_generator(function(param) {
1461
+ var prisma, event, controller, latestRunStep;
1462
+ return _ts_generator(this, function(_state) {
1463
+ switch(_state.label){
1464
+ case 0:
1465
+ prisma = param.prisma, event = param.event, controller = param.controller;
1466
+ controller.enqueue(event);
1467
+ if (!event.data.tool_calls) return [
1468
+ 3,
1469
+ 3
1470
+ ];
1471
+ return [
1472
+ 4,
1473
+ prisma.runStep.findFirst({
1474
+ where: {
1475
+ threadId: event.data.thread_id,
1476
+ type: "TOOL_CALLS" /* TOOL_CALLS */
1477
+ },
1478
+ orderBy: {
1479
+ createdAt: "desc"
1480
+ }
1481
+ })
1482
+ ];
1483
+ case 1:
1484
+ latestRunStep = _state.sent();
1485
+ if (!latestRunStep) {
1486
+ throw new Error("No run step found");
1487
+ }
1488
+ return [
1489
+ 4,
1490
+ prisma.runStep.update({
1491
+ where: {
1492
+ id: latestRunStep.id
1493
+ },
1494
+ data: {
1495
+ stepDetails: {
1496
+ type: "tool_calls",
1497
+ tool_calls: event.data.tool_calls
1498
+ }
1499
+ }
1500
+ })
1501
+ ];
1502
+ case 2:
1503
+ _state.sent();
1504
+ _state.label = 3;
1505
+ case 3:
1506
+ return [
1507
+ 2,
1508
+ prisma.message.update({
1509
+ where: {
1510
+ id: event.data.id
1511
+ },
1512
+ data: _object_spread({
1513
+ status: "COMPLETED" /* COMPLETED */
1514
+ }, event.data.content ? {
1515
+ content: event.data.content
1516
+ } : {}, event.data.tool_calls ? {
1517
+ toolCalls: event.data.tool_calls
1518
+ } : {})
1519
+ })
1520
+ ];
1521
+ }
1522
+ });
1523
+ });
1524
+ return function threadMessageCompleted(_) {
1525
+ return _ref.apply(this, arguments);
1526
+ };
1527
+ }();
1528
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/index.ts
1529
+ var handlers = {
1530
+ "thread.run.in_progress": threadRunInProgress,
1531
+ "thread.run.failed": threadRunFailed,
1532
+ "thread.run.completed": threadRunCompleted,
1533
+ "thread.run.requires_action": threadRunRequiresAction,
1534
+ "thread.run.step.created": threadRunStepCreated,
1535
+ "thread.run.step.delta": threadRunStepDelta,
1536
+ "thread.message.created": threadMessageCreated,
1537
+ "thread.message.delta": threadMessageDelta,
1538
+ "thread.message.completed": threadMessageCompleted
1539
+ };
1540
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/index.ts
1541
+ var onEvent = function(param) {
1542
+ var prisma = param.prisma, controller = param.controller;
1543
+ return function(event) {
1544
+ var handler = handlers[event.event];
1545
+ if (!handler) {
1546
+ console.log("No handler for event", event);
1547
+ return;
1548
+ }
1549
+ return handler({
1550
+ prisma: prisma,
1551
+ controller: controller,
1552
+ event: event
1553
+ });
1554
+ };
1555
+ };
1556
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/getMessages.ts
1557
+ var getMessages = function(param) {
1558
+ var prisma = param.prisma, run = param.run;
1559
+ return /*#__PURE__*/ _async_to_generator(function() {
1560
+ var messages3;
1561
+ return _ts_generator(this, function(_state) {
1562
+ switch(_state.label){
1563
+ case 0:
1564
+ return [
1565
+ 4,
1566
+ prisma.message.findMany({
1567
+ where: {
1568
+ threadId: run.threadId
1569
+ },
1570
+ include: {
1571
+ run: {
1572
+ include: {
1573
+ runSteps: true
1574
+ }
1575
+ }
1576
+ },
1577
+ take: -10,
1578
+ orderBy: {
1579
+ createdAt: "asc"
1580
+ }
1581
+ })
1582
+ ];
1583
+ case 1:
1584
+ messages3 = _state.sent();
1585
+ return [
1586
+ 2,
1587
+ messages3.map(function(message) {
1588
+ return _object_spread_props(_object_spread({}, serializeMessage2({
1589
+ message: message
1590
+ })), {
1591
+ run: message.run ? _object_spread_props(_object_spread({}, serializeRun({
1592
+ run: message.run
1593
+ })), {
1594
+ runSteps: message.run.runSteps.map(function(runStep) {
1595
+ return serializeRunStep({
1596
+ runStep: runStep
1597
+ });
1598
+ })
1599
+ }) : null
1600
+ });
1601
+ })
1602
+ ];
1603
+ }
1604
+ });
1605
+ });
1606
+ };
1607
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/createAndStream.ts
1608
+ var createAndStream = function(param) {
1609
+ var prisma = param.prisma, runAdapter = param.runAdapter;
1610
+ return function() {
1611
+ for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1612
+ args[_key] = arguments[_key];
1613
+ }
1614
+ return new ReadableStream({
1615
+ start: function start(controller) {
1616
+ return _async_to_generator(function() {
1617
+ var threadId, assistant_id, assistant, _assign6, model, instructions, // additional_instructions,
1618
+ tools, metadata, run, data;
1619
+ return _ts_generator(this, function(_state) {
1620
+ switch(_state.label){
1621
+ case 0:
1622
+ threadId = args[0];
1623
+ assistant_id = args[1].assistant_id;
1624
+ return [
1625
+ 4,
1626
+ prisma.assistant.findUnique({
1627
+ where: {
1628
+ id: assistant_id
1629
+ }
1630
+ })
1631
+ ];
1632
+ case 1:
1633
+ assistant = _state.sent();
1634
+ if (!assistant) {
1635
+ throw new Error("Assistant not found");
1636
+ }
1637
+ _assign6 = assign6({
1638
+ model: assistant.modelSlug,
1639
+ instructions: "",
1640
+ additional_instructions: null
1641
+ }, args[1]), model = _assign6.model, instructions = _assign6.instructions, tools = _assign6.tools, metadata = _assign6.metadata;
1642
+ return [
1643
+ 4,
1644
+ prisma.run.create({
1645
+ data: {
1646
+ status: "QUEUED",
1647
+ expiresAt: dayjs8().add(1, "hour").unix(),
1648
+ // @ts-ignore-next-line
1649
+ model: model,
1650
+ // @ts-ignore-next-line
1651
+ instructions: instructions,
1652
+ // @ts-ignore-next-line
1653
+ tools: tools,
1654
+ // @ts-ignore-next-line
1655
+ metadata: metadata,
1656
+ thread: {
1657
+ connect: {
1658
+ id: threadId
1659
+ }
1660
+ },
1661
+ assistant: {
1662
+ connect: {
1663
+ id: assistant_id
1664
+ }
1665
+ }
1666
+ }
1667
+ })
1668
+ ];
1669
+ case 2:
1670
+ run = _state.sent();
1671
+ data = serializeRun({
1672
+ run: run
1673
+ });
1674
+ controller.enqueue({
1675
+ event: "thread.run.created",
1676
+ data: data
1677
+ });
1678
+ console.log("createAndStream", {
1679
+ getMessages: getMessages
1680
+ });
1681
+ return [
1682
+ 4,
1683
+ runAdapter({
1684
+ run: data,
1685
+ onEvent: onEvent({
1686
+ controller: controller,
1687
+ prisma: prisma
1688
+ }),
1689
+ getMessages: getMessages({
1690
+ prisma: prisma,
1691
+ run: run
1692
+ })
1693
+ })
1694
+ ];
1695
+ case 3:
1696
+ _state.sent();
1697
+ console.log("Stream ended inside cloud storage");
1698
+ controller.close();
1699
+ return [
1700
+ 2
1701
+ ];
1702
+ }
1703
+ });
1704
+ })();
1705
+ }
1706
+ });
1707
+ };
1708
+ };
1709
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/submitToolOutputs.ts
1710
+ import dayjs9 from "dayjs";
1711
+ var submitToolOutputs = function(param) {
1712
+ var prisma = param.prisma, runAdapter = param.runAdapter;
1713
+ return /*#__PURE__*/ _async_to_generator(function() {
1714
+ var _len, args, _key, _args, threadId, runId, body, tool_outputs, run, data;
1715
+ var _arguments = arguments;
1716
+ return _ts_generator(this, function(_state) {
1717
+ switch(_state.label){
1718
+ case 0:
1719
+ for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1720
+ args[_key] = _arguments[_key];
1721
+ }
1722
+ _args = _sliced_to_array(args, 3), threadId = _args[0], runId = _args[1], body = _args[2];
1723
+ tool_outputs = body.tool_outputs;
1724
+ return [
1725
+ 4,
1726
+ prisma.$transaction(function() {
1727
+ var _ref = _async_to_generator(function(prisma2) {
1728
+ var runSteps, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _loop, _iterator, _step, err;
1729
+ return _ts_generator(this, function(_state) {
1730
+ switch(_state.label){
1731
+ case 0:
1732
+ return [
1733
+ 4,
1734
+ prisma2.runStep.findMany({
1735
+ where: {
1736
+ threadId: threadId,
1737
+ runId: runId,
1738
+ type: "TOOL_CALLS",
1739
+ status: "IN_PROGRESS"
1740
+ }
1741
+ })
1742
+ ];
1743
+ case 1:
1744
+ runSteps = _state.sent();
1745
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
1746
+ _state.label = 2;
1747
+ case 2:
1748
+ _state.trys.push([
1749
+ 2,
1750
+ 7,
1751
+ 8,
1752
+ 9
1753
+ ]);
1754
+ _loop = function() {
1755
+ var runStep;
1756
+ return _ts_generator(this, function(_state) {
1757
+ switch(_state.label){
1758
+ case 0:
1759
+ runStep = _step.value;
1760
+ return [
1761
+ 4,
1762
+ prisma2.runStep.update({
1763
+ where: {
1764
+ id: runStep.id
1765
+ },
1766
+ data: {
1767
+ status: "COMPLETED",
1768
+ completedAt: dayjs9().unix(),
1769
+ stepDetails: {
1770
+ type: "tool_calls",
1771
+ tool_calls: runStep.stepDetails.tool_calls.map(function(toolCall) {
1772
+ var toolOutput = tool_outputs.find(function(output) {
1773
+ return output.tool_call_id === toolCall.id;
1774
+ }) || tool_outputs[0];
1775
+ if (!toolOutput) {
1776
+ console.dir({
1777
+ toolOutput: toolOutput,
1778
+ runStep: runStep,
1779
+ tool_outputs: tool_outputs,
1780
+ runSteps: runSteps
1781
+ }, {
1782
+ depth: null
1783
+ });
1784
+ throw new Error("Tool output not found");
1785
+ }
1786
+ return {
1787
+ id: toolCall.id,
1788
+ type: toolCall.type,
1789
+ function: _object_spread_props(_object_spread({}, toolCall.function), {
1790
+ output: toolOutput.output
1791
+ })
1792
+ };
1793
+ })
1794
+ }
1795
+ }
1796
+ })
1797
+ ];
1798
+ case 1:
1799
+ _state.sent();
1800
+ return [
1801
+ 2
1802
+ ];
1803
+ }
1804
+ });
1805
+ };
1806
+ _iterator = runSteps[Symbol.iterator]();
1807
+ _state.label = 3;
1808
+ case 3:
1809
+ if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
1810
+ 3,
1811
+ 6
1812
+ ];
1813
+ return [
1814
+ 5,
1815
+ _ts_values(_loop())
1816
+ ];
1817
+ case 4:
1818
+ _state.sent();
1819
+ _state.label = 5;
1820
+ case 5:
1821
+ _iteratorNormalCompletion = true;
1822
+ return [
1823
+ 3,
1824
+ 3
1825
+ ];
1826
+ case 6:
1827
+ return [
1828
+ 3,
1829
+ 9
1830
+ ];
1831
+ case 7:
1832
+ err = _state.sent();
1833
+ _didIteratorError = true;
1834
+ _iteratorError = err;
1835
+ return [
1836
+ 3,
1837
+ 9
1838
+ ];
1839
+ case 8:
1840
+ try {
1841
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
1842
+ _iterator.return();
1843
+ }
1844
+ } finally{
1845
+ if (_didIteratorError) {
1846
+ throw _iteratorError;
1847
+ }
1848
+ }
1849
+ return [
1850
+ 7
1851
+ ];
1852
+ case 9:
1853
+ return [
1854
+ 2,
1855
+ prisma2.run.update({
1856
+ where: {
1857
+ id: runId
1858
+ },
1859
+ data: {
1860
+ status: "QUEUED"
1861
+ }
1862
+ })
1863
+ ];
1864
+ }
1865
+ });
1866
+ });
1867
+ return function(prisma2) {
1868
+ return _ref.apply(this, arguments);
1869
+ };
1870
+ }())
1871
+ ];
1872
+ case 1:
1873
+ run = _state.sent();
1874
+ data = serializeRun({
1875
+ run: run
1876
+ });
1877
+ return [
1878
+ 4,
1879
+ new Promise(function(resolve) {
1880
+ return new ReadableStream({
1881
+ start: function start(controller) {
1882
+ return _async_to_generator(function() {
1883
+ return _ts_generator(this, function(_state) {
1884
+ switch(_state.label){
1885
+ case 0:
1886
+ return [
1887
+ 4,
1888
+ runAdapter({
1889
+ run: data,
1890
+ onEvent: onEvent({
1891
+ controller: controller,
1892
+ prisma: prisma
1893
+ }),
1894
+ // @ts-ignore-next-line
1895
+ getMessages: getMessages({
1896
+ prisma: prisma,
1897
+ run: run
1898
+ })
1899
+ })
1900
+ ];
1901
+ case 1:
1902
+ _state.sent();
1903
+ controller.close();
1904
+ resolve(void 0);
1905
+ return [
1906
+ 2
1907
+ ];
1908
+ }
1909
+ });
1910
+ })();
1911
+ }
1912
+ });
1913
+ })
1914
+ ];
1915
+ case 2:
1916
+ _state.sent();
1917
+ return [
1918
+ 2,
1919
+ data
1920
+ ];
1921
+ }
1922
+ });
1923
+ });
1924
+ };
1925
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/submitToolOutputsStream.ts
1926
+ import dayjs10 from "dayjs";
1927
+ var submitToolOutputsStream = function(param) {
1928
+ var prisma = param.prisma, runAdapter = param.runAdapter;
1929
+ return function() {
1930
+ for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1931
+ args[_key] = arguments[_key];
1932
+ }
1933
+ return new ReadableStream({
1934
+ start: function start(controller) {
1935
+ return _async_to_generator(function() {
1936
+ var _args, threadId, runId, body, tool_outputs, run;
1937
+ return _ts_generator(this, function(_state) {
1938
+ switch(_state.label){
1939
+ case 0:
1940
+ _args = _sliced_to_array(args, 3), threadId = _args[0], runId = _args[1], body = _args[2];
1941
+ tool_outputs = body.tool_outputs;
1942
+ return [
1943
+ 4,
1944
+ prisma.$transaction(function() {
1945
+ var _ref = _async_to_generator(function(prisma2) {
1946
+ var runSteps, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _loop, _iterator, _step, err;
1947
+ return _ts_generator(this, function(_state) {
1948
+ switch(_state.label){
1949
+ case 0:
1950
+ return [
1951
+ 4,
1952
+ prisma2.runStep.findMany({
1953
+ where: {
1954
+ threadId: threadId,
1955
+ runId: runId,
1956
+ type: "TOOL_CALLS",
1957
+ status: "IN_PROGRESS"
1958
+ },
1959
+ orderBy: {
1960
+ createdAt: "asc"
1961
+ }
1962
+ })
1963
+ ];
1964
+ case 1:
1965
+ runSteps = _state.sent();
1966
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
1967
+ _state.label = 2;
1968
+ case 2:
1969
+ _state.trys.push([
1970
+ 2,
1971
+ 7,
1972
+ 8,
1973
+ 9
1974
+ ]);
1975
+ _loop = function() {
1976
+ var runStep, completedRunStep;
1977
+ return _ts_generator(this, function(_state) {
1978
+ switch(_state.label){
1979
+ case 0:
1980
+ runStep = _step.value;
1981
+ return [
1982
+ 4,
1983
+ prisma2.runStep.update({
1984
+ where: {
1985
+ id: runStep.id
1986
+ },
1987
+ data: {
1988
+ status: "COMPLETED",
1989
+ completedAt: dayjs10().unix(),
1990
+ stepDetails: {
1991
+ type: "tool_calls",
1992
+ tool_calls: runStep.stepDetails.tool_calls.map(function(toolCall) {
1993
+ var toolOutput = tool_outputs.find(function(output) {
1994
+ return output.tool_call_id === toolCall.id;
1995
+ }) || tool_outputs[0];
1996
+ if (!toolOutput) {
1997
+ console.dir({
1998
+ toolOutput: toolOutput,
1999
+ runStep: runStep,
2000
+ tool_outputs: tool_outputs,
2001
+ runSteps: runSteps
2002
+ }, {
2003
+ depth: null
2004
+ });
2005
+ throw new Error("Tool output not found");
2006
+ }
2007
+ return {
2008
+ id: toolCall.id,
2009
+ type: toolCall.type,
2010
+ function: _object_spread_props(_object_spread({}, toolCall.function), {
2011
+ output: toolOutput.output
2012
+ })
2013
+ };
2014
+ })
2015
+ }
2016
+ }
2017
+ })
2018
+ ];
2019
+ case 1:
2020
+ completedRunStep = _state.sent();
2021
+ controller.enqueue({
2022
+ event: "thread.run.step.completed",
2023
+ data: serializeRunStep({
2024
+ runStep: completedRunStep
2025
+ })
2026
+ });
2027
+ return [
2028
+ 2
2029
+ ];
2030
+ }
2031
+ });
2032
+ };
2033
+ _iterator = runSteps[Symbol.iterator]();
2034
+ _state.label = 3;
2035
+ case 3:
2036
+ if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
2037
+ 3,
2038
+ 6
2039
+ ];
2040
+ return [
2041
+ 5,
2042
+ _ts_values(_loop())
2043
+ ];
2044
+ case 4:
2045
+ _state.sent();
2046
+ _state.label = 5;
2047
+ case 5:
2048
+ _iteratorNormalCompletion = true;
2049
+ return [
2050
+ 3,
2051
+ 3
2052
+ ];
2053
+ case 6:
2054
+ return [
2055
+ 3,
2056
+ 9
2057
+ ];
2058
+ case 7:
2059
+ err = _state.sent();
2060
+ _didIteratorError = true;
2061
+ _iteratorError = err;
2062
+ return [
2063
+ 3,
2064
+ 9
2065
+ ];
2066
+ case 8:
2067
+ try {
2068
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
2069
+ _iterator.return();
2070
+ }
2071
+ } finally{
2072
+ if (_didIteratorError) {
2073
+ throw _iteratorError;
2074
+ }
2075
+ }
2076
+ return [
2077
+ 7
2078
+ ];
2079
+ case 9:
2080
+ return [
2081
+ 2,
2082
+ prisma2.run.update({
2083
+ where: {
2084
+ id: runId
2085
+ },
2086
+ data: {
2087
+ status: "QUEUED"
2088
+ }
2089
+ })
2090
+ ];
2091
+ }
2092
+ });
2093
+ });
2094
+ return function(prisma2) {
2095
+ return _ref.apply(this, arguments);
2096
+ };
2097
+ }())
2098
+ ];
2099
+ case 1:
2100
+ run = _state.sent();
2101
+ return [
2102
+ 4,
2103
+ runAdapter({
2104
+ run: serializeRun({
2105
+ run: run
2106
+ }),
2107
+ onEvent: onEvent({
2108
+ controller: controller,
2109
+ prisma: prisma
2110
+ }),
2111
+ // @ts-ignore-next-line
2112
+ getMessages: getMessages({
2113
+ prisma: prisma,
2114
+ run: run
2115
+ })
2116
+ })
2117
+ ];
2118
+ case 2:
2119
+ _state.sent();
2120
+ console.log("Stream ended inside cloud storage");
2121
+ controller.close();
2122
+ return [
2123
+ 2
2124
+ ];
2125
+ }
2126
+ });
2127
+ })();
2128
+ }
2129
+ });
2130
+ };
2131
+ };
2132
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/steps/list.ts
2133
+ import { assign as assign7, last as last3 } from "radash";
2134
+ var list3 = function(param) {
2135
+ var prisma = param.prisma;
2136
+ return /*#__PURE__*/ _async_to_generator(function() {
2137
+ var _len, args, _key, _last3, threadId, runId, _args_, _assign7, // @ts-ignore-next-line
2138
+ limit, // @ts-ignore-next-line
2139
+ order, runSteps, _last3_id;
2140
+ var _arguments = arguments;
2141
+ return _ts_generator(this, function(_state) {
2142
+ switch(_state.label){
2143
+ case 0:
2144
+ for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
2145
+ args[_key] = _arguments[_key];
2146
+ }
2147
+ threadId = args[0];
2148
+ runId = args[1];
2149
+ _assign7 = assign7({
2150
+ // @ts-ignore-next-line
2151
+ limit: 20,
2152
+ order: "desc"
2153
+ }, (_args_ = args[2]) !== null && _args_ !== void 0 ? _args_ : {}), limit = _assign7.limit, order = _assign7.order;
2154
+ return [
2155
+ 4,
2156
+ prisma.runStep.findMany({
2157
+ where: {
2158
+ threadId: threadId,
2159
+ runId: runId
2160
+ },
2161
+ take: limit,
2162
+ orderBy: {
2163
+ createdAt: order
2164
+ }
2165
+ })
2166
+ ];
2167
+ case 1:
2168
+ runSteps = _state.sent();
2169
+ return [
2170
+ 2,
2171
+ {
2172
+ data: runSteps.map(function(runStep) {
2173
+ return serializeRunStep({
2174
+ runStep: runStep
2175
+ });
2176
+ }),
2177
+ hasNextPage: function() {
2178
+ return false;
2179
+ },
2180
+ body: {
2181
+ last_id: (_last3_id = (_last3 = last3(runSteps)) === null || _last3 === void 0 ? void 0 : _last3.id) !== null && _last3_id !== void 0 ? _last3_id : null
2182
+ }
2183
+ }
2184
+ ];
2185
+ }
2186
+ });
2187
+ });
2188
+ };
2189
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/steps/index.ts
2190
+ var steps = function(param) {
2191
+ var prisma = param.prisma;
2192
+ return {
2193
+ list: list3({
2194
+ prisma: prisma
2195
+ })
2196
+ };
2197
+ };
2198
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/index.ts
2199
+ var runs = function(param) {
2200
+ var prisma = param.prisma, runAdapter = param.runAdapter;
2201
+ return {
2202
+ list: list2({
2203
+ prisma: prisma
2204
+ }),
2205
+ create: create3({
2206
+ prisma: prisma
2207
+ }),
2208
+ createAndStream: createAndStream({
2209
+ prisma: prisma,
2210
+ runAdapter: runAdapter
2211
+ }),
2212
+ submitToolOutputs: submitToolOutputs({
2213
+ prisma: prisma,
2214
+ runAdapter: runAdapter
2215
+ }),
2216
+ submitToolOutputsStream: submitToolOutputsStream({
2217
+ prisma: prisma,
2218
+ runAdapter: runAdapter
2219
+ }),
2220
+ steps: steps({
2221
+ prisma: prisma
2222
+ })
2223
+ };
2224
+ };
2225
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/index.ts
2226
+ var threads = function(param) {
2227
+ var prisma = param.prisma, runAdapter = param.runAdapter;
2228
+ return {
2229
+ create: create({
2230
+ prisma: prisma
2231
+ }),
2232
+ messages: messages2({
2233
+ prisma: prisma
2234
+ }),
2235
+ runs: runs({
2236
+ prisma: prisma,
2237
+ runAdapter: runAdapter
2238
+ })
2239
+ };
2240
+ };
2241
+ // src/adapters/storage/prismaStorageAdapter/beta/index.ts
2242
+ var beta = function(param) {
2243
+ var prisma = param.prisma, runAdapter = param.runAdapter;
2244
+ return {
2245
+ threads: threads({
2246
+ prisma: prisma,
2247
+ runAdapter: runAdapter
2248
+ })
2249
+ };
2250
+ };
2251
+ // src/adapters/storage/prismaStorageAdapter/index.ts
2252
+ var prismaStorageAdapter = function(param) {
2253
+ var prisma = param.prisma;
2254
+ return function(param) {
2255
+ var runAdapter = param.runAdapter;
2256
+ return {
2257
+ beta: beta({
2258
+ prisma: prisma,
2259
+ runAdapter: runAdapter
2260
+ })
2261
+ };
2262
+ };
2263
+ };
2264
+ export { completionsRunAdapter, mistralClientAdapter, perplexityClientAdapter, prismaStorageAdapter, supercompat };
2265
+ //# sourceMappingURL=index.js.map