supercompat 1.5.1 → 2.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.cjs CHANGED
@@ -362,9 +362,15 @@ __export(src_exports, {
362
362
  completionsRunAdapter: function() {
363
363
  return completionsRunAdapter;
364
364
  },
365
+ groqClientAdapter: function() {
366
+ return groqClientAdapter;
367
+ },
365
368
  mistralClientAdapter: function() {
366
369
  return mistralClientAdapter;
367
370
  },
371
+ openaiClientAdapter: function() {
372
+ return openaiClientAdapter;
373
+ },
368
374
  perplexityClientAdapter: function() {
369
375
  return perplexityClientAdapter;
370
376
  },
@@ -377,8 +383,10 @@ __export(src_exports, {
377
383
  });
378
384
  module.exports = __toCommonJS(src_exports);
379
385
  // src/supercompat.ts
386
+ var import_openai = __toESM(require("openai"), 1);
387
+ // src/supercompatFetch/requestHandlers.ts
380
388
  var import_radash = require("radash");
381
- var supercompat = function(param) {
389
+ var requestHandlers = function(param) {
382
390
  var client = param.client, storage = param.storage, runAdapter = param.runAdapter;
383
391
  return (0, import_radash.assign)(client, storage({
384
392
  runAdapter: (0, import_radash.partob)(runAdapter, {
@@ -386,6 +394,446 @@ var supercompat = function(param) {
386
394
  })
387
395
  }));
388
396
  };
397
+ // src/supercompatFetch/findRequestHandler.ts
398
+ var findRequestHandler = function(param) {
399
+ var url = param.url, requestHandlers2 = param.requestHandlers;
400
+ var pathname = new URL(url).pathname;
401
+ for(var key in requestHandlers2){
402
+ var regex = new RegExp(key);
403
+ if (regex.test(pathname)) {
404
+ return requestHandlers2[key];
405
+ }
406
+ }
407
+ };
408
+ // src/supercompatFetch/index.ts
409
+ var supercompatFetch = function(param) {
410
+ var client = param.client, storage = param.storage, runAdapter = param.runAdapter;
411
+ var requestHandlers2 = requestHandlers({
412
+ client: client,
413
+ storage: storage,
414
+ runAdapter: runAdapter
415
+ });
416
+ return function() {
417
+ for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
418
+ args[_key] = arguments[_key];
419
+ }
420
+ var _args = _sliced_to_array(args, 2), url = _args[0], options = _args[1];
421
+ var pathHandler = findRequestHandler({
422
+ url: url,
423
+ requestHandlers: requestHandlers2
424
+ });
425
+ if (!pathHandler) {
426
+ return fetch.apply(void 0, _to_consumable_array(args));
427
+ }
428
+ var requestHandler = pathHandler[options === null || options === void 0 ? void 0 : options.method];
429
+ if (!requestHandler) {
430
+ return fetch.apply(void 0, _to_consumable_array(args));
431
+ }
432
+ return requestHandler.apply(void 0, _to_consumable_array(args));
433
+ };
434
+ };
435
+ // src/supercompat.ts
436
+ var supercompat = function(param) {
437
+ var client = param.client, storage = param.storage, runAdapter = param.runAdapter;
438
+ return new import_openai.default({
439
+ apiKey: "SUPERCOMPAT_PLACEHOLDER_OPENAI_KEY",
440
+ fetch: supercompatFetch({
441
+ client: client,
442
+ storage: storage,
443
+ runAdapter: runAdapter
444
+ })
445
+ });
446
+ };
447
+ // src/adapters/client/groqClientAdapter/completions/post.ts
448
+ var post = function(param) {
449
+ var groq = param.groq;
450
+ return function() {
451
+ var _ref = _async_to_generator(function(_url, options) {
452
+ var body, response, stream, data, error;
453
+ return _ts_generator(this, function(_state) {
454
+ switch(_state.label){
455
+ case 0:
456
+ body = JSON.parse(options.body);
457
+ if (!body.stream) return [
458
+ 3,
459
+ 2
460
+ ];
461
+ return [
462
+ 4,
463
+ groq.chat.completions.create(body)
464
+ ];
465
+ case 1:
466
+ response = _state.sent();
467
+ stream = new ReadableStream({
468
+ start: function start(controller) {
469
+ return _async_to_generator(function() {
470
+ var _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, chunk, err;
471
+ return _ts_generator(this, function(_state) {
472
+ switch(_state.label){
473
+ case 0:
474
+ _iteratorAbruptCompletion = false, _didIteratorError = false;
475
+ _state.label = 1;
476
+ case 1:
477
+ _state.trys.push([
478
+ 1,
479
+ 6,
480
+ 7,
481
+ 12
482
+ ]);
483
+ _iterator = _async_iterator(response);
484
+ _state.label = 2;
485
+ case 2:
486
+ return [
487
+ 4,
488
+ _iterator.next()
489
+ ];
490
+ case 3:
491
+ if (!(_iteratorAbruptCompletion = !(_step = _state.sent()).done)) return [
492
+ 3,
493
+ 5
494
+ ];
495
+ _value = _step.value;
496
+ chunk = _value;
497
+ controller.enqueue("data: ".concat(JSON.stringify(chunk), "\n\n"));
498
+ _state.label = 4;
499
+ case 4:
500
+ _iteratorAbruptCompletion = false;
501
+ return [
502
+ 3,
503
+ 2
504
+ ];
505
+ case 5:
506
+ return [
507
+ 3,
508
+ 12
509
+ ];
510
+ case 6:
511
+ err = _state.sent();
512
+ _didIteratorError = true;
513
+ _iteratorError = err;
514
+ return [
515
+ 3,
516
+ 12
517
+ ];
518
+ case 7:
519
+ _state.trys.push([
520
+ 7,
521
+ ,
522
+ 10,
523
+ 11
524
+ ]);
525
+ if (!(_iteratorAbruptCompletion && _iterator.return != null)) return [
526
+ 3,
527
+ 9
528
+ ];
529
+ return [
530
+ 4,
531
+ _iterator.return()
532
+ ];
533
+ case 8:
534
+ _state.sent();
535
+ _state.label = 9;
536
+ case 9:
537
+ return [
538
+ 3,
539
+ 11
540
+ ];
541
+ case 10:
542
+ if (_didIteratorError) {
543
+ throw _iteratorError;
544
+ }
545
+ return [
546
+ 7
547
+ ];
548
+ case 11:
549
+ return [
550
+ 7
551
+ ];
552
+ case 12:
553
+ controller.close();
554
+ return [
555
+ 2
556
+ ];
557
+ }
558
+ });
559
+ })();
560
+ }
561
+ });
562
+ return [
563
+ 2,
564
+ new Response(stream, {
565
+ headers: {
566
+ "Content-Type": "text/event-stream"
567
+ }
568
+ })
569
+ ];
570
+ case 2:
571
+ _state.trys.push([
572
+ 2,
573
+ 4,
574
+ ,
575
+ 5
576
+ ]);
577
+ return [
578
+ 4,
579
+ groq.chat.completions.create(body)
580
+ ];
581
+ case 3:
582
+ data = _state.sent();
583
+ return [
584
+ 2,
585
+ new Response(JSON.stringify({
586
+ data: data
587
+ }), {
588
+ status: 200,
589
+ headers: {
590
+ "Content-Type": "application/json"
591
+ }
592
+ })
593
+ ];
594
+ case 4:
595
+ error = _state.sent();
596
+ console.dir({
597
+ error: error
598
+ }, {
599
+ depth: null
600
+ });
601
+ return [
602
+ 2,
603
+ new Response(JSON.stringify({
604
+ error: error
605
+ }), {
606
+ status: 500,
607
+ headers: {
608
+ "Content-Type": "application/json"
609
+ }
610
+ })
611
+ ];
612
+ case 5:
613
+ return [
614
+ 2
615
+ ];
616
+ }
617
+ });
618
+ });
619
+ return function(_url, options) {
620
+ return _ref.apply(this, arguments);
621
+ };
622
+ }();
623
+ };
624
+ // src/adapters/client/groqClientAdapter/completions/index.ts
625
+ var completions = function(param) {
626
+ var groq = param.groq;
627
+ return {
628
+ post: post({
629
+ groq: groq
630
+ })
631
+ };
632
+ };
633
+ // src/adapters/client/groqClientAdapter/index.ts
634
+ var groqClientAdapter = function(param) {
635
+ var groq = param.groq;
636
+ return {
637
+ "^/v1/chat/completions$": completions({
638
+ groq: groq
639
+ })
640
+ };
641
+ };
642
+ // src/adapters/client/openaiClientAdapter/completions/post.ts
643
+ var post2 = function(param) {
644
+ var openai = param.openai;
645
+ return function() {
646
+ var _ref = _async_to_generator(function(_url, options) {
647
+ var body, response, stream, data, error;
648
+ return _ts_generator(this, function(_state) {
649
+ switch(_state.label){
650
+ case 0:
651
+ body = JSON.parse(options.body);
652
+ if (!body.stream) return [
653
+ 3,
654
+ 2
655
+ ];
656
+ return [
657
+ 4,
658
+ openai.chat.completions.create(body)
659
+ ];
660
+ case 1:
661
+ response = _state.sent();
662
+ stream = new ReadableStream({
663
+ start: function start(controller) {
664
+ return _async_to_generator(function() {
665
+ var _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, chunk, err;
666
+ return _ts_generator(this, function(_state) {
667
+ switch(_state.label){
668
+ case 0:
669
+ _iteratorAbruptCompletion = false, _didIteratorError = false;
670
+ _state.label = 1;
671
+ case 1:
672
+ _state.trys.push([
673
+ 1,
674
+ 6,
675
+ 7,
676
+ 12
677
+ ]);
678
+ _iterator = _async_iterator(response);
679
+ _state.label = 2;
680
+ case 2:
681
+ return [
682
+ 4,
683
+ _iterator.next()
684
+ ];
685
+ case 3:
686
+ if (!(_iteratorAbruptCompletion = !(_step = _state.sent()).done)) return [
687
+ 3,
688
+ 5
689
+ ];
690
+ _value = _step.value;
691
+ chunk = _value;
692
+ controller.enqueue("data: ".concat(JSON.stringify(chunk), "\n\n"));
693
+ _state.label = 4;
694
+ case 4:
695
+ _iteratorAbruptCompletion = false;
696
+ return [
697
+ 3,
698
+ 2
699
+ ];
700
+ case 5:
701
+ return [
702
+ 3,
703
+ 12
704
+ ];
705
+ case 6:
706
+ err = _state.sent();
707
+ _didIteratorError = true;
708
+ _iteratorError = err;
709
+ return [
710
+ 3,
711
+ 12
712
+ ];
713
+ case 7:
714
+ _state.trys.push([
715
+ 7,
716
+ ,
717
+ 10,
718
+ 11
719
+ ]);
720
+ if (!(_iteratorAbruptCompletion && _iterator.return != null)) return [
721
+ 3,
722
+ 9
723
+ ];
724
+ return [
725
+ 4,
726
+ _iterator.return()
727
+ ];
728
+ case 8:
729
+ _state.sent();
730
+ _state.label = 9;
731
+ case 9:
732
+ return [
733
+ 3,
734
+ 11
735
+ ];
736
+ case 10:
737
+ if (_didIteratorError) {
738
+ throw _iteratorError;
739
+ }
740
+ return [
741
+ 7
742
+ ];
743
+ case 11:
744
+ return [
745
+ 7
746
+ ];
747
+ case 12:
748
+ controller.close();
749
+ return [
750
+ 2
751
+ ];
752
+ }
753
+ });
754
+ })();
755
+ }
756
+ });
757
+ return [
758
+ 2,
759
+ new Response(stream, {
760
+ headers: {
761
+ "Content-Type": "text/event-stream"
762
+ }
763
+ })
764
+ ];
765
+ case 2:
766
+ _state.trys.push([
767
+ 2,
768
+ 4,
769
+ ,
770
+ 5
771
+ ]);
772
+ return [
773
+ 4,
774
+ openai.chat.completions.create(body)
775
+ ];
776
+ case 3:
777
+ data = _state.sent();
778
+ return [
779
+ 2,
780
+ new Response(JSON.stringify({
781
+ data: data
782
+ }), {
783
+ status: 200,
784
+ headers: {
785
+ "Content-Type": "application/json"
786
+ }
787
+ })
788
+ ];
789
+ case 4:
790
+ error = _state.sent();
791
+ console.dir({
792
+ error: error
793
+ }, {
794
+ depth: null
795
+ });
796
+ return [
797
+ 2,
798
+ new Response(JSON.stringify({
799
+ error: error
800
+ }), {
801
+ status: 500,
802
+ headers: {
803
+ "Content-Type": "application/json"
804
+ }
805
+ })
806
+ ];
807
+ case 5:
808
+ return [
809
+ 2
810
+ ];
811
+ }
812
+ });
813
+ });
814
+ return function(_url, options) {
815
+ return _ref.apply(this, arguments);
816
+ };
817
+ }();
818
+ };
819
+ // src/adapters/client/openaiClientAdapter/completions/index.ts
820
+ var completions2 = function(param) {
821
+ var openai = param.openai;
822
+ return {
823
+ post: post2({
824
+ openai: openai
825
+ })
826
+ };
827
+ };
828
+ // src/adapters/client/openaiClientAdapter/index.ts
829
+ var openaiClientAdapter = function(param) {
830
+ var openai = param.openai;
831
+ return {
832
+ "^/v1/chat/completions$": completions2({
833
+ openai: openai
834
+ })
835
+ };
836
+ };
389
837
  // src/adapters/client/mistralClientAdapter/index.ts
390
838
  var mistralClientAdapter = function(param) {
391
839
  var mistral = param.mistral;
@@ -459,11 +907,6 @@ var anthropicClientAdapter = function(param) {
459
907
  }
460
908
  var _args = _to_array(args), firstArg = _args[0], secondArg = _args[1], restArgs = _args.slice(2);
461
909
  var messages4 = firstArg.messages;
462
- console.dir({
463
- messages: messages4
464
- }, {
465
- depth: null
466
- });
467
910
  if (firstArg.messages[0].role != "user") {
468
911
  messages4.unshift({
469
912
  role: "user",
@@ -540,11 +983,11 @@ var serializeMessage = function(param) {
540
983
  message: message
541
984
  })
542
985
  ];
543
- var run = message.run;
544
- if (!run) return result;
986
+ var run2 = message.run;
987
+ if (!run2) return result;
545
988
  var messageToolCalls = ((_message_metadata = message.metadata) === null || _message_metadata === void 0 ? void 0 : _message_metadata.toolCalls) || [];
546
989
  messageToolCalls.forEach(function(tc) {
547
- var runStep = run.runSteps.find(function(rs) {
990
+ var runStep = run2.runSteps.find(function(rs) {
548
991
  if (rs.type !== "tool_calls") return false;
549
992
  return rs.step_details.tool_calls.some(function(rsTc) {
550
993
  if (rsTc.type !== "function") return false;
@@ -565,23 +1008,21 @@ var serializeMessage = function(param) {
565
1008
  // src/adapters/run/completionsRunAdapter/messages/index.ts
566
1009
  var messages = function() {
567
1010
  var _ref = _async_to_generator(function(param) {
568
- var run, getMessages2, messagesHistoryLength, _, _1, _2;
1011
+ var run2, getMessages2, _, _1, _2;
569
1012
  return _ts_generator(this, function(_state) {
570
1013
  switch(_state.label){
571
1014
  case 0:
572
- run = param.run, getMessages2 = param.getMessages, messagesHistoryLength = param.messagesHistoryLength;
573
- _1 = (_ = _to_consumable_array(run.instructions ? [
1015
+ run2 = param.run, getMessages2 = param.getMessages;
1016
+ _1 = (_ = _to_consumable_array(run2.instructions ? [
574
1017
  {
575
1018
  role: "system",
576
- content: run.instructions
1019
+ content: run2.instructions
577
1020
  }
578
1021
  ] : [])).concat;
579
1022
  _2 = (0, import_radash2.flat);
580
1023
  return [
581
1024
  4,
582
- getMessages2({
583
- messagesHistoryLength: messagesHistoryLength
584
- })
1025
+ getMessages2()
585
1026
  ];
586
1027
  case 1:
587
1028
  return [
@@ -673,21 +1114,26 @@ var toolCallsData = function(param) {
673
1114
  }
674
1115
  return newToolCalls;
675
1116
  };
676
- var completionsRunAdapter = function(param) {
677
- var _param_messagesHistoryLength = param.messagesHistoryLength, messagesHistoryLength = _param_messagesHistoryLength === void 0 ? 10 : _param_messagesHistoryLength, _param_maxTokens = param.maxTokens, maxTokens = _param_maxTokens === void 0 ? void 0 : _param_maxTokens;
1117
+ var completionsRunAdapter = function() {
678
1118
  return function() {
679
1119
  var _ref = _async_to_generator(function(param) {
680
- var client, run, onEvent2, getMessages2, responseFormat, opts, _tmp, providerResponse, e, message, toolCallsRunStep, currentContent, currentToolCalls, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, chunk, delta, _delta_content, err;
1120
+ var clientAdapter, run2, onEvent2, getMessages2, client, opts, _tmp, providerResponse, e, message, toolCallsRunStep, currentContent, currentToolCalls, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, chunk, delta, _delta_content, err;
681
1121
  return _ts_generator(this, function(_state) {
682
1122
  switch(_state.label){
683
1123
  case 0:
684
- client = param.client, run = param.run, onEvent2 = param.onEvent, getMessages2 = param.getMessages, responseFormat = param.responseFormat;
685
- if (run.status !== "queued") return [
1124
+ clientAdapter = param.client, run2 = param.run, onEvent2 = param.onEvent, getMessages2 = param.getMessages;
1125
+ if (run2.status !== "queued") return [
686
1126
  2
687
1127
  ];
1128
+ client = supercompat({
1129
+ client: clientAdapter,
1130
+ storage: function() {},
1131
+ // @ts-ignore-next-line
1132
+ runAdapter: {}
1133
+ });
688
1134
  onEvent2({
689
1135
  event: "thread.run.in_progress",
690
- data: _object_spread_props(_object_spread({}, run), {
1136
+ data: _object_spread_props(_object_spread({}, run2), {
691
1137
  status: "in_progress"
692
1138
  })
693
1139
  });
@@ -695,29 +1141,17 @@ var completionsRunAdapter = function(param) {
695
1141
  return [
696
1142
  4,
697
1143
  messages({
698
- run: run,
699
- getMessages: getMessages2,
700
- messagesHistoryLength: messagesHistoryLength
1144
+ run: run2,
1145
+ getMessages: getMessages2
701
1146
  })
702
1147
  ];
703
1148
  case 1:
704
1149
  opts = _object_spread.apply(void 0, [
705
- (_tmp.messages = _state.sent(), _tmp.model = run.model, _tmp.stream = true, _tmp),
706
- responseFormat ? {
707
- response_format: responseFormat
708
- } : {},
709
- maxTokens ? {
710
- max_tokens: maxTokens
711
- } : {},
712
- (0, import_radash3.isEmpty)(run.tools) ? {} : {
713
- tools: run.tools
1150
+ (_tmp.messages = _state.sent(), _tmp.model = run2.model, _tmp.stream = true, _tmp.response_format = run2.response_format, _tmp),
1151
+ (0, import_radash3.isEmpty)(run2.tools) ? {} : {
1152
+ tools: run2.tools
714
1153
  }
715
1154
  ]);
716
- console.dir({
717
- opts: opts
718
- }, {
719
- depth: null
720
- });
721
1155
  _state.label = 2;
722
1156
  case 2:
723
1157
  _state.trys.push([
@@ -738,12 +1172,13 @@ var completionsRunAdapter = function(param) {
738
1172
  ];
739
1173
  case 4:
740
1174
  e = _state.sent();
1175
+ console.log("error", e);
741
1176
  console.error(e);
742
1177
  return [
743
1178
  2,
744
1179
  onEvent2({
745
1180
  event: "thread.run.failed",
746
- data: _object_spread_props(_object_spread({}, run), {
1181
+ data: _object_spread_props(_object_spread({}, run2), {
747
1182
  failed_at: (0, import_dayjs.default)().unix(),
748
1183
  status: "in_progress",
749
1184
  last_error: e.message
@@ -759,14 +1194,14 @@ var completionsRunAdapter = function(param) {
759
1194
  id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
760
1195
  object: "thread.message",
761
1196
  completed_at: null,
762
- run_id: run.id,
1197
+ run_id: run2.id,
763
1198
  created_at: (0, import_dayjs.default)().unix(),
764
- assistant_id: run.assistant_id,
1199
+ assistant_id: run2.assistant_id,
765
1200
  incomplete_at: null,
766
1201
  incomplete_details: null,
767
1202
  metadata: {},
768
1203
  attachments: [],
769
- thread_id: run.thread_id,
1204
+ thread_id: run2.thread_id,
770
1205
  content: [
771
1206
  {
772
1207
  text: {
@@ -788,9 +1223,9 @@ var completionsRunAdapter = function(param) {
788
1223
  data: {
789
1224
  id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
790
1225
  object: "thread.run.step",
791
- run_id: run.id,
792
- assistant_id: run.assistant_id,
793
- thread_id: run.thread_id,
1226
+ run_id: run2.id,
1227
+ assistant_id: run2.assistant_id,
1228
+ thread_id: run2.thread_id,
794
1229
  type: "message_creation",
795
1230
  status: "completed",
796
1231
  completed_at: (0, import_dayjs.default)().unix(),
@@ -810,11 +1245,6 @@ var completionsRunAdapter = function(param) {
810
1245
  }
811
1246
  });
812
1247
  currentContent = "";
813
- console.dir({
814
- providerResponse: providerResponse
815
- }, {
816
- depth: null
817
- });
818
1248
  _iteratorAbruptCompletion = false, _didIteratorError = false;
819
1249
  _state.label = 7;
820
1250
  case 7:
@@ -858,9 +1288,9 @@ var completionsRunAdapter = function(param) {
858
1288
  data: {
859
1289
  id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
860
1290
  object: "thread.run.step",
861
- run_id: run.id,
862
- assistant_id: run.assistant_id,
863
- thread_id: run.thread_id,
1291
+ run_id: run2.id,
1292
+ assistant_id: run2.assistant_id,
1293
+ thread_id: run2.thread_id,
864
1294
  type: "tool_calls",
865
1295
  status: "in_progress",
866
1296
  completed_at: null,
@@ -886,7 +1316,7 @@ var completionsRunAdapter = function(param) {
886
1316
  event: "thread.run.step.delta",
887
1317
  data: {
888
1318
  object: "thread.run.step.delta",
889
- run_id: run.id,
1319
+ run_id: run2.id,
890
1320
  id: toolCallsRunStep.id,
891
1321
  delta: {
892
1322
  step_details: {
@@ -1007,7 +1437,7 @@ var completionsRunAdapter = function(param) {
1007
1437
  2,
1008
1438
  onEvent2({
1009
1439
  event: "thread.run.completed",
1010
- data: _object_spread_props(_object_spread({}, run), {
1440
+ data: _object_spread_props(_object_spread({}, run2), {
1011
1441
  status: "completed",
1012
1442
  completed_at: (0, import_dayjs.default)().unix()
1013
1443
  })
@@ -1018,7 +1448,7 @@ var completionsRunAdapter = function(param) {
1018
1448
  2,
1019
1449
  onEvent2({
1020
1450
  event: "thread.run.requires_action",
1021
- data: _object_spread_props(_object_spread({}, run), {
1451
+ data: _object_spread_props(_object_spread({}, run2), {
1022
1452
  status: "requires_action",
1023
1453
  required_action: {
1024
1454
  type: "submit_tool_outputs",
@@ -1097,21 +1527,16 @@ var serializeContent2 = function(param) {
1097
1527
  var serializeMessage2 = function(param) {
1098
1528
  var message = param.message;
1099
1529
  var _message_metadata;
1100
- console.dir({
1101
- message: message
1102
- }, {
1103
- depth: null
1104
- });
1105
1530
  var result = [
1106
1531
  serializeMessageWithContent2({
1107
1532
  message: message
1108
1533
  })
1109
1534
  ];
1110
- var run = message.run;
1111
- if (!run) return result;
1535
+ var run2 = message.run;
1536
+ if (!run2) return result;
1112
1537
  var messageToolCalls = ((_message_metadata = message.metadata) === null || _message_metadata === void 0 ? void 0 : _message_metadata.toolCalls) || [];
1113
1538
  messageToolCalls.forEach(function(tc) {
1114
- var runStep = run.runSteps.find(function(rs) {
1539
+ var runStep = run2.runSteps.find(function(rs) {
1115
1540
  if (rs.type !== "tool_calls") return false;
1116
1541
  return rs.step_details.tool_calls.some(function(rsTc) {
1117
1542
  if (rsTc.type !== "function") return false;
@@ -1132,17 +1557,15 @@ var serializeMessage2 = function(param) {
1132
1557
  // src/adapters/run/anthropicRunAdapter/messages/index.ts
1133
1558
  var messages2 = function() {
1134
1559
  var _ref = _async_to_generator(function(param) {
1135
- var run, getMessages2, messagesHistoryLength, _;
1560
+ var run2, getMessages2, _;
1136
1561
  return _ts_generator(this, function(_state) {
1137
1562
  switch(_state.label){
1138
1563
  case 0:
1139
- run = param.run, getMessages2 = param.getMessages, messagesHistoryLength = param.messagesHistoryLength;
1564
+ run2 = param.run, getMessages2 = param.getMessages;
1140
1565
  _ = (0, import_radash4.flat);
1141
1566
  return [
1142
1567
  4,
1143
- getMessages2({
1144
- messagesHistoryLength: messagesHistoryLength
1145
- })
1568
+ getMessages2()
1146
1569
  ];
1147
1570
  case 1:
1148
1571
  return [
@@ -1164,8 +1587,8 @@ var messages2 = function() {
1164
1587
  }();
1165
1588
  // src/adapters/run/anthropicRunAdapter/serializeTools.ts
1166
1589
  var serializeTools = function(param) {
1167
- var run = param.run;
1168
- return run.tools.map(function(tool) {
1590
+ var run2 = param.run;
1591
+ return run2.tools.map(function(tool) {
1169
1592
  if (tool.type === "function") {
1170
1593
  return {
1171
1594
  name: tool.function.name,
@@ -1177,48 +1600,41 @@ var serializeTools = function(param) {
1177
1600
  });
1178
1601
  };
1179
1602
  // src/adapters/run/anthropicRunAdapter/index.ts
1180
- var anthropicRunAdapter = function(param) {
1181
- var _param_messagesHistoryLength = param.messagesHistoryLength, messagesHistoryLength = _param_messagesHistoryLength === void 0 ? 10 : _param_messagesHistoryLength, _param_maxTokens = param.maxTokens, maxTokens = _param_maxTokens === void 0 ? 4096 : _param_maxTokens;
1603
+ var anthropicRunAdapter = function() {
1182
1604
  return function() {
1183
1605
  var _ref = _async_to_generator(function(param) {
1184
- var client, run, onEvent2, getMessages2, isStream, opts, _tmp, providerResponse, e, message, toolCallsRunStep, currentContent, currentToolCalls, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, messageStreamEvent, _messageStreamEvent_delta_text, err, textContentBlock, toolUseBlocks;
1606
+ var client, run2, onEvent2, getMessages2, isStream, opts, _tmp, providerResponse, e, message, toolCallsRunStep, currentContent, currentToolCalls, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, messageStreamEvent, _messageStreamEvent_delta_text, err, textContentBlock, toolUseBlocks;
1185
1607
  return _ts_generator(this, function(_state) {
1186
1608
  switch(_state.label){
1187
1609
  case 0:
1188
- client = param.client, run = param.run, onEvent2 = param.onEvent, getMessages2 = param.getMessages;
1189
- if (run.status !== "queued") return [
1610
+ client = param.client, run2 = param.run, onEvent2 = param.onEvent, getMessages2 = param.getMessages;
1611
+ if (run2.status !== "queued") return [
1190
1612
  2
1191
1613
  ];
1192
1614
  onEvent2({
1193
1615
  event: "thread.run.in_progress",
1194
- data: _object_spread_props(_object_spread({}, run), {
1616
+ data: _object_spread_props(_object_spread({}, run2), {
1195
1617
  status: "in_progress"
1196
1618
  })
1197
1619
  });
1198
- isStream = (0, import_radash5.isEmpty)(run.tools);
1620
+ isStream = (0, import_radash5.isEmpty)(run2.tools);
1199
1621
  _tmp = {};
1200
1622
  return [
1201
1623
  4,
1202
1624
  messages2({
1203
- run: run,
1204
- getMessages: getMessages2,
1205
- messagesHistoryLength: messagesHistoryLength
1625
+ run: run2,
1626
+ getMessages: getMessages2
1206
1627
  })
1207
1628
  ];
1208
1629
  case 1:
1209
1630
  opts = _object_spread.apply(void 0, [
1210
- (_tmp.messages = _state.sent(), _tmp.stream = isStream, _tmp.model = run.model, _tmp.max_tokens = maxTokens, _tmp),
1211
- (0, import_radash5.isEmpty)(run.tools) ? {} : {
1631
+ (_tmp.messages = _state.sent(), _tmp.stream = isStream, _tmp.model = run2.model, _tmp),
1632
+ (0, import_radash5.isEmpty)(run2.tools) ? {} : {
1212
1633
  tools: serializeTools({
1213
- run: run
1634
+ run: run2
1214
1635
  })
1215
1636
  }
1216
1637
  ]);
1217
- console.dir({
1218
- opts: opts
1219
- }, {
1220
- depth: null
1221
- });
1222
1638
  _state.label = 2;
1223
1639
  case 2:
1224
1640
  _state.trys.push([
@@ -1244,7 +1660,7 @@ var anthropicRunAdapter = function(param) {
1244
1660
  2,
1245
1661
  onEvent2({
1246
1662
  event: "thread.run.failed",
1247
- data: _object_spread_props(_object_spread({}, run), {
1663
+ data: _object_spread_props(_object_spread({}, run2), {
1248
1664
  failed_at: (0, import_dayjs2.default)().unix(),
1249
1665
  status: "in_progress",
1250
1666
  last_error: e.message
@@ -1260,14 +1676,14 @@ var anthropicRunAdapter = function(param) {
1260
1676
  id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
1261
1677
  object: "thread.message",
1262
1678
  completed_at: null,
1263
- run_id: run.id,
1679
+ run_id: run2.id,
1264
1680
  created_at: (0, import_dayjs2.default)().unix(),
1265
- assistant_id: run.assistant_id,
1681
+ assistant_id: run2.assistant_id,
1266
1682
  incomplete_at: null,
1267
1683
  incomplete_details: null,
1268
1684
  metadata: {},
1269
1685
  attachments: [],
1270
- thread_id: run.thread_id,
1686
+ thread_id: run2.thread_id,
1271
1687
  content: [
1272
1688
  {
1273
1689
  text: {
@@ -1289,9 +1705,9 @@ var anthropicRunAdapter = function(param) {
1289
1705
  data: {
1290
1706
  id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
1291
1707
  object: "thread.run.step",
1292
- run_id: run.id,
1293
- assistant_id: run.assistant_id,
1294
- thread_id: run.thread_id,
1708
+ run_id: run2.id,
1709
+ assistant_id: run2.assistant_id,
1710
+ thread_id: run2.thread_id,
1295
1711
  type: "message_creation",
1296
1712
  status: "completed",
1297
1713
  completed_at: (0, import_dayjs2.default)().unix(),
@@ -1311,11 +1727,6 @@ var anthropicRunAdapter = function(param) {
1311
1727
  }
1312
1728
  });
1313
1729
  currentContent = "";
1314
- console.dir({
1315
- providerResponse: providerResponse
1316
- }, {
1317
- depth: null
1318
- });
1319
1730
  if (!isStream) return [
1320
1731
  3,
1321
1732
  19
@@ -1455,9 +1866,9 @@ var anthropicRunAdapter = function(param) {
1455
1866
  data: {
1456
1867
  id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
1457
1868
  object: "thread.run.step",
1458
- run_id: run.id,
1459
- assistant_id: run.assistant_id,
1460
- thread_id: run.thread_id,
1869
+ run_id: run2.id,
1870
+ assistant_id: run2.assistant_id,
1871
+ thread_id: run2.thread_id,
1461
1872
  type: "tool_calls",
1462
1873
  status: "in_progress",
1463
1874
  completed_at: null,
@@ -1505,7 +1916,7 @@ var anthropicRunAdapter = function(param) {
1505
1916
  2,
1506
1917
  onEvent2({
1507
1918
  event: "thread.run.completed",
1508
- data: _object_spread_props(_object_spread({}, run), {
1919
+ data: _object_spread_props(_object_spread({}, run2), {
1509
1920
  status: "completed",
1510
1921
  completed_at: (0, import_dayjs2.default)().unix()
1511
1922
  })
@@ -1516,7 +1927,7 @@ var anthropicRunAdapter = function(param) {
1516
1927
  2,
1517
1928
  onEvent2({
1518
1929
  event: "thread.run.requires_action",
1519
- data: _object_spread_props(_object_spread({}, run), {
1930
+ data: _object_spread_props(_object_spread({}, run2), {
1520
1931
  status: "requires_action",
1521
1932
  required_action: {
1522
1933
  type: "submit_tool_outputs",
@@ -1535,9 +1946,9 @@ var anthropicRunAdapter = function(param) {
1535
1946
  };
1536
1947
  }();
1537
1948
  };
1538
- // src/adapters/storage/prismaStorageAdapter/beta/threads/create.ts
1949
+ // src/adapters/storage/prismaStorageAdapter/threads/post.ts
1539
1950
  var import_dayjs4 = __toESM(require("dayjs"), 1);
1540
- // src/adapters/storage/prismaStorageAdapter/beta/threads/serializeThread.ts
1951
+ // src/adapters/storage/prismaStorageAdapter/threads/serializeThread.ts
1541
1952
  var import_dayjs3 = __toESM(require("dayjs"), 1);
1542
1953
  var serializeThread = function(param) {
1543
1954
  var thread = param.thread;
@@ -1550,11 +1961,11 @@ var serializeThread = function(param) {
1550
1961
  tool_resources: null
1551
1962
  };
1552
1963
  };
1553
- // src/adapters/storage/prismaStorageAdapter/beta/threads/create.ts
1554
- var create = function(param) {
1964
+ // src/adapters/storage/prismaStorageAdapter/threads/post.ts
1965
+ var post3 = function(param) {
1555
1966
  var prisma = param.prisma;
1556
1967
  return /*#__PURE__*/ _async_to_generator(function() {
1557
- var _len, args, _key, _args_, _args__body, messages4, metadata, initialCreatedAt, thread;
1968
+ var _len, args, _key, body, messages4, metadata, initialCreatedAt, thread;
1558
1969
  var _arguments = arguments;
1559
1970
  return _ts_generator(this, function(_state) {
1560
1971
  switch(_state.label){
@@ -1562,19 +1973,22 @@ var create = function(param) {
1562
1973
  for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1563
1974
  args[_key] = _arguments[_key];
1564
1975
  }
1565
- _args_ = args[0], _args__body = _args_.// @ts-ignore-next-line
1566
- body, messages4 = _args__body.messages, metadata = _args__body.metadata;
1976
+ body = JSON.parse(args[1].body);
1977
+ messages4 = body.messages || [];
1978
+ metadata = body.metadata || {};
1567
1979
  initialCreatedAt = (0, import_dayjs4.default)().subtract(messages4.length, "seconds").format();
1568
1980
  return [
1569
1981
  4,
1570
1982
  prisma.thread.create({
1571
- data: {
1572
- metadata: metadata,
1983
+ data: _object_spread_props(_object_spread({
1984
+ metadata: metadata
1985
+ }, metadata.assistantId ? {
1573
1986
  assistant: {
1574
1987
  connect: {
1575
- id: metadata.superinterfaceAssistantId
1988
+ id: metadata.assistantId
1576
1989
  }
1577
- },
1990
+ }
1991
+ } : {}), {
1578
1992
  messages: {
1579
1993
  create: messages4.map(function(message, index) {
1580
1994
  return {
@@ -1594,24 +2008,36 @@ var create = function(param) {
1594
2008
  };
1595
2009
  })
1596
2010
  }
1597
- }
2011
+ })
1598
2012
  })
1599
2013
  ];
1600
2014
  case 1:
1601
2015
  thread = _state.sent();
1602
2016
  return [
1603
2017
  2,
1604
- serializeThread({
2018
+ new Response(JSON.stringify(serializeThread({
1605
2019
  thread: thread
2020
+ })), {
2021
+ status: 200,
2022
+ headers: {
2023
+ "Content-Type": "application/json"
2024
+ }
1606
2025
  })
1607
2026
  ];
1608
2027
  }
1609
2028
  });
1610
2029
  });
1611
2030
  };
1612
- // src/adapters/storage/prismaStorageAdapter/beta/threads/messages/list.ts
1613
- var import_radash7 = require("radash");
1614
- // src/adapters/storage/prismaStorageAdapter/beta/threads/messages/serializeMessage.ts
2031
+ // src/adapters/storage/prismaStorageAdapter/threads/index.ts
2032
+ var threads = function(param) {
2033
+ var prisma = param.prisma;
2034
+ return {
2035
+ post: post3({
2036
+ prisma: prisma
2037
+ })
2038
+ };
2039
+ };
2040
+ // src/adapters/storage/prismaStorageAdapter/threads/messages/serializeMessage.ts
1615
2041
  var import_dayjs5 = __toESM(require("dayjs"), 1);
1616
2042
  var import_radash6 = require("radash");
1617
2043
  var serializeMessage3 = function(param) {
@@ -1636,68 +2062,7 @@ var serializeMessage3 = function(param) {
1636
2062
  } : {})
1637
2063
  };
1638
2064
  };
1639
- // src/adapters/storage/prismaStorageAdapter/beta/threads/messages/list.ts
1640
- var list = function(param) {
1641
- var prisma = param.prisma;
1642
- return /*#__PURE__*/ _async_to_generator(function() {
1643
- var _len, args, _key, _this, threadId, _args_, _ref, // @ts-ignore-next-line
1644
- limit, // @ts-ignore-next-line
1645
- order, // @ts-ignore-next-line
1646
- after, messages4, _id;
1647
- var _arguments = arguments;
1648
- return _ts_generator(this, function(_state) {
1649
- switch(_state.label){
1650
- case 0:
1651
- for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1652
- args[_key] = _arguments[_key];
1653
- }
1654
- threadId = args[0];
1655
- _ref = (0, import_radash7.assign)({
1656
- // @ts-ignore-next-line
1657
- limit: 20,
1658
- order: "desc",
1659
- after: null
1660
- }, (_args_ = args[1]) !== null && _args_ !== void 0 ? _args_ : {}), limit = _ref.limit, order = _ref.order, after = _ref.after;
1661
- return [
1662
- 4,
1663
- prisma.message.findMany(_object_spread({
1664
- where: {
1665
- threadId: threadId
1666
- },
1667
- take: limit,
1668
- orderBy: {
1669
- createdAt: order
1670
- }
1671
- }, after ? {
1672
- skip: 1,
1673
- cursor: {
1674
- id: after
1675
- }
1676
- } : {}))
1677
- ];
1678
- case 1:
1679
- messages4 = _state.sent();
1680
- return [
1681
- 2,
1682
- {
1683
- data: messages4.map(function(message) {
1684
- return serializeMessage3({
1685
- message: message
1686
- });
1687
- }),
1688
- hasNextPage: function() {
1689
- return messages4.length === limit;
1690
- },
1691
- body: {
1692
- last_id: (_id = (_this = (0, import_radash7.last)(messages4)) === null || _this === void 0 ? void 0 : _this.id) !== null && _id !== void 0 ? _id : null
1693
- }
1694
- }
1695
- ];
1696
- }
1697
- });
1698
- });
1699
- };
1700
- // src/adapters/storage/prismaStorageAdapter/beta/threads/messages/create.ts
2065
+ // src/adapters/storage/prismaStorageAdapter/threads/messages/post.ts
1701
2066
  var messageContentBlocks = function(param) {
1702
2067
  var content = param.content;
1703
2068
  return [
@@ -1710,230 +2075,234 @@ var messageContentBlocks = function(param) {
1710
2075
  }
1711
2076
  ];
1712
2077
  };
1713
- var create2 = function(param) {
2078
+ var post4 = function(param) {
1714
2079
  var prisma = param.prisma;
1715
- return /*#__PURE__*/ _async_to_generator(function() {
1716
- var _len, args, _key, threadId, content, message;
1717
- var _arguments = arguments;
1718
- return _ts_generator(this, function(_state) {
1719
- switch(_state.label){
1720
- case 0:
1721
- for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1722
- args[_key] = _arguments[_key];
1723
- }
1724
- threadId = args[0];
1725
- content = args[1].content;
1726
- return [
1727
- 4,
1728
- prisma.message.create({
1729
- data: {
1730
- threadId: threadId,
1731
- content: messageContentBlocks({
1732
- content: content
1733
- }),
1734
- role: "USER"
1735
- }
1736
- })
1737
- ];
1738
- case 1:
1739
- message = _state.sent();
1740
- return [
1741
- 2,
1742
- serializeMessage3({
1743
- message: message
1744
- })
1745
- ];
1746
- }
1747
- });
1748
- });
1749
- };
1750
- // src/adapters/storage/prismaStorageAdapter/beta/threads/messages/index.ts
1751
- var messages3 = function(param) {
2080
+ return function() {
2081
+ var _ref = _async_to_generator(function(urlString, options) {
2082
+ var url, _url_pathname_match, threadId, body, role, content, message;
2083
+ return _ts_generator(this, function(_state) {
2084
+ switch(_state.label){
2085
+ case 0:
2086
+ url = new URL(urlString);
2087
+ _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp("^/v1/threads/([^/]+)/messages$")), 2), threadId = _url_pathname_match[1];
2088
+ body = JSON.parse(options.body);
2089
+ role = body.role, content = body.content;
2090
+ return [
2091
+ 4,
2092
+ prisma.message.create({
2093
+ data: {
2094
+ threadId: threadId,
2095
+ content: messageContentBlocks({
2096
+ content: content
2097
+ }),
2098
+ role: role === "user" ? "USER" : "ASSISTANT"
2099
+ }
2100
+ })
2101
+ ];
2102
+ case 1:
2103
+ message = _state.sent();
2104
+ return [
2105
+ 2,
2106
+ new Response(JSON.stringify(serializeMessage3({
2107
+ message: message
2108
+ })), {
2109
+ status: 200,
2110
+ headers: {
2111
+ "Content-Type": "application/json"
2112
+ }
2113
+ })
2114
+ ];
2115
+ }
2116
+ });
2117
+ });
2118
+ return function(urlString, options) {
2119
+ return _ref.apply(this, arguments);
2120
+ };
2121
+ }();
2122
+ };
2123
+ // src/adapters/storage/prismaStorageAdapter/threads/messages/get.ts
2124
+ var import_radash7 = require("radash");
2125
+ var get = function(param) {
2126
+ var prisma = param.prisma;
2127
+ return function() {
2128
+ var _ref = _async_to_generator(function(urlString) {
2129
+ var _this, url, _url_pathname_match, threadId, _ref, limit, order, after, messages4, _id;
2130
+ return _ts_generator(this, function(_state) {
2131
+ switch(_state.label){
2132
+ case 0:
2133
+ url = new URL(urlString);
2134
+ _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp("^/v1/threads/([^/]+)/messages$")), 2), threadId = _url_pathname_match[1];
2135
+ _ref = (0, import_radash7.assign)({
2136
+ limit: "20",
2137
+ order: "desc"
2138
+ }, Object.fromEntries(url.searchParams)), limit = _ref.limit, order = _ref.order, after = _ref.after;
2139
+ return [
2140
+ 4,
2141
+ prisma.message.findMany(_object_spread({
2142
+ where: {
2143
+ threadId: threadId
2144
+ },
2145
+ take: parseInt(limit),
2146
+ orderBy: {
2147
+ createdAt: order
2148
+ }
2149
+ }, after ? {
2150
+ skip: 1,
2151
+ cursor: {
2152
+ id: after
2153
+ }
2154
+ } : {}))
2155
+ ];
2156
+ case 1:
2157
+ messages4 = _state.sent();
2158
+ return [
2159
+ 2,
2160
+ new Response(JSON.stringify({
2161
+ data: messages4.map(function(message) {
2162
+ return serializeMessage3({
2163
+ message: message
2164
+ });
2165
+ }),
2166
+ hasNextPage: function() {
2167
+ return messages4.length === parseInt(limit);
2168
+ },
2169
+ body: {
2170
+ last_id: (_id = (_this = (0, import_radash7.last)(messages4)) === null || _this === void 0 ? void 0 : _this.id) !== null && _id !== void 0 ? _id : null
2171
+ }
2172
+ }), {
2173
+ status: 200,
2174
+ headers: {
2175
+ "Content-Type": "application/json"
2176
+ }
2177
+ })
2178
+ ];
2179
+ }
2180
+ });
2181
+ });
2182
+ return function(urlString) {
2183
+ return _ref.apply(this, arguments);
2184
+ };
2185
+ }();
2186
+ };
2187
+ // src/adapters/storage/prismaStorageAdapter/threads/messages/index.ts
2188
+ var messages3 = function(param) {
1752
2189
  var prisma = param.prisma;
1753
2190
  return {
1754
- list: list({
2191
+ post: post4({
1755
2192
  prisma: prisma
1756
2193
  }),
1757
- create: create2({
2194
+ get: get({
1758
2195
  prisma: prisma
1759
2196
  })
1760
2197
  };
1761
2198
  };
1762
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/list.ts
2199
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/get.ts
1763
2200
  var import_radash8 = require("radash");
1764
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/serializeRun.ts
2201
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/serializeRun.ts
1765
2202
  var import_dayjs6 = __toESM(require("dayjs"), 1);
1766
2203
  var serializeRun = function(param) {
1767
- var run = param.run;
2204
+ var run2 = param.run;
1768
2205
  return {
1769
- id: run.id,
2206
+ id: run2.id,
1770
2207
  object: "thread.run",
1771
- created_at: (0, import_dayjs6.default)(run.createdAt).unix(),
1772
- thread_id: run.threadId,
1773
- assistant_id: run.assistantId,
1774
- status: run.status.toLowerCase(),
1775
- required_action: run.requiredAction,
1776
- last_error: run.lastError,
1777
- expires_at: (0, import_dayjs6.default)(run.expiresAt).unix(),
1778
- started_at: run.startedAt ? (0, import_dayjs6.default)(run.startedAt).unix() : null,
1779
- cancelled_at: run.cancelledAt ? (0, import_dayjs6.default)(run.cancelledAt).unix() : null,
1780
- failed_at: run.failedAt ? (0, import_dayjs6.default)(run.failedAt).unix() : null,
1781
- completed_at: run.completedAt ? (0, import_dayjs6.default)(run.completedAt).unix() : null,
1782
- model: run.model,
1783
- instructions: run.instructions,
1784
- tools: run.tools,
1785
- metadata: run.metadata,
1786
- usage: run.usage,
2208
+ created_at: (0, import_dayjs6.default)(run2.createdAt).unix(),
2209
+ thread_id: run2.threadId,
2210
+ assistant_id: run2.assistantId,
2211
+ status: run2.status.toLowerCase(),
2212
+ required_action: run2.requiredAction,
2213
+ last_error: run2.lastError,
2214
+ expires_at: (0, import_dayjs6.default)(run2.expiresAt).unix(),
2215
+ started_at: run2.startedAt ? (0, import_dayjs6.default)(run2.startedAt).unix() : null,
2216
+ cancelled_at: run2.cancelledAt ? (0, import_dayjs6.default)(run2.cancelledAt).unix() : null,
2217
+ failed_at: run2.failedAt ? (0, import_dayjs6.default)(run2.failedAt).unix() : null,
2218
+ completed_at: run2.completedAt ? (0, import_dayjs6.default)(run2.completedAt).unix() : null,
2219
+ model: run2.model,
2220
+ instructions: run2.instructions,
2221
+ tools: run2.tools,
2222
+ metadata: run2.metadata,
2223
+ usage: run2.usage,
2224
+ truncation_strategy: {
2225
+ type: "auto"
2226
+ },
2227
+ response_format: {
2228
+ type: "text"
2229
+ },
1787
2230
  // TODO
1788
2231
  incomplete_details: null,
1789
2232
  max_completion_tokens: null,
1790
2233
  max_prompt_tokens: null,
1791
- response_format: "auto",
1792
2234
  tool_choice: "auto",
1793
- truncation_strategy: {
1794
- type: "auto",
1795
- last_messages: null
1796
- }
2235
+ parallel_tool_calls: true
1797
2236
  };
1798
2237
  };
1799
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/list.ts
1800
- var list2 = function(param) {
1801
- var prisma = param.prisma;
1802
- return /*#__PURE__*/ _async_to_generator(function() {
1803
- var _len, args, _key, _this, threadId, _args_, _ref, // @ts-ignore-next-line
1804
- limit, // @ts-ignore-next-line
1805
- order, // @ts-ignore-next-line
1806
- after, runs2, _id;
1807
- var _arguments = arguments;
1808
- return _ts_generator(this, function(_state) {
1809
- switch(_state.label){
1810
- case 0:
1811
- for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1812
- args[_key] = _arguments[_key];
1813
- }
1814
- threadId = args[0];
1815
- _ref = (0, import_radash8.assign)({
1816
- // @ts-ignore-next-line
1817
- limit: 20,
1818
- order: "desc"
1819
- }, (_args_ = args[1]) !== null && _args_ !== void 0 ? _args_ : {}), limit = _ref.limit, order = _ref.order, after = _ref.after;
1820
- return [
1821
- 4,
1822
- prisma.run.findMany(_object_spread({
1823
- where: {
1824
- threadId: threadId
1825
- },
1826
- take: limit,
1827
- orderBy: {
1828
- createdAt: order
1829
- }
1830
- }, after ? {
1831
- skip: 1,
1832
- cursor: {
1833
- id: after
1834
- }
1835
- } : {}))
1836
- ];
1837
- case 1:
1838
- runs2 = _state.sent();
1839
- return [
1840
- 2,
1841
- {
1842
- data: runs2.map(function(run) {
1843
- return serializeRun({
1844
- run: run
1845
- });
1846
- }),
1847
- hasNextPage: function() {
1848
- return runs2.length === limit;
1849
- },
1850
- body: {
1851
- last_id: (_id = (_this = (0, import_radash8.last)(runs2)) === null || _this === void 0 ? void 0 : _this.id) !== null && _id !== void 0 ? _id : null
1852
- }
1853
- }
1854
- ];
1855
- }
1856
- });
1857
- });
1858
- };
1859
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/create.ts
1860
- var import_dayjs7 = __toESM(require("dayjs"), 1);
1861
- var import_radash9 = require("radash");
1862
- var create3 = function(param) {
2238
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/get.ts
2239
+ var get2 = function(param) {
1863
2240
  var prisma = param.prisma;
1864
- return /*#__PURE__*/ _async_to_generator(function() {
1865
- var _len, args, _key, threadId, assistant_id, assistant, _ref, model, instructions, // additional_instructions,
1866
- tools, metadata, run;
1867
- var _arguments = arguments;
1868
- return _ts_generator(this, function(_state) {
1869
- switch(_state.label){
1870
- case 0:
1871
- for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1872
- args[_key] = _arguments[_key];
1873
- }
1874
- threadId = args[0];
1875
- assistant_id = args[1].assistant_id;
1876
- return [
1877
- 4,
1878
- prisma.assistant.findUnique({
1879
- where: {
1880
- id: assistant_id
1881
- }
1882
- })
1883
- ];
1884
- case 1:
1885
- assistant = _state.sent();
1886
- if (!assistant) {
1887
- throw new Error("Assistant not found");
1888
- }
1889
- _ref = (0, import_radash9.assign)({
1890
- model: assistant.modelSlug,
1891
- instructions: "",
1892
- additional_instructions: null
1893
- }, args[1]), model = _ref.model, instructions = _ref.instructions, tools = _ref.tools, metadata = _ref.metadata;
1894
- return [
1895
- 4,
1896
- prisma.run.create({
1897
- data: {
1898
- status: "QUEUED",
1899
- expiresAt: (0, import_dayjs7.default)().add(1, "hour").unix(),
1900
- // @ts-ignore-next-line
1901
- model: model,
1902
- // @ts-ignore-next-line
1903
- instructions: instructions,
1904
- // @ts-ignore-next-line
1905
- tools: tools,
1906
- // @ts-ignore-next-line
1907
- metadata: metadata,
1908
- thread: {
1909
- connect: {
1910
- id: threadId
1911
- }
2241
+ return function() {
2242
+ var _ref = _async_to_generator(function(urlString) {
2243
+ var _this, url, _url_pathname_match, threadId, _ref, limit, order, after, runs2, _id;
2244
+ return _ts_generator(this, function(_state) {
2245
+ switch(_state.label){
2246
+ case 0:
2247
+ url = new URL(urlString);
2248
+ _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp("^/v1/threads/([^/]+)/runs$")), 2), threadId = _url_pathname_match[1];
2249
+ _ref = (0, import_radash8.assign)({
2250
+ limit: "20",
2251
+ order: "desc"
2252
+ }, Object.fromEntries(url.searchParams)), limit = _ref.limit, order = _ref.order, after = _ref.after;
2253
+ return [
2254
+ 4,
2255
+ prisma.run.findMany(_object_spread({
2256
+ where: {
2257
+ threadId: threadId
1912
2258
  },
1913
- assistant: {
1914
- connect: {
1915
- id: assistant_id
1916
- }
2259
+ take: parseInt(limit),
2260
+ orderBy: {
2261
+ createdAt: order
1917
2262
  }
1918
- }
1919
- })
1920
- ];
1921
- case 2:
1922
- run = _state.sent();
1923
- return [
1924
- 2,
1925
- serializeRun({
1926
- run: run
1927
- })
1928
- ];
1929
- }
2263
+ }, after ? {
2264
+ skip: 1,
2265
+ cursor: {
2266
+ id: after
2267
+ }
2268
+ } : {}))
2269
+ ];
2270
+ case 1:
2271
+ runs2 = _state.sent();
2272
+ return [
2273
+ 2,
2274
+ new Response(JSON.stringify({
2275
+ data: runs2.map(function(run2) {
2276
+ return serializeRun({
2277
+ run: run2
2278
+ });
2279
+ }),
2280
+ hasNextPage: function() {
2281
+ return runs2.length === parseInt(limit);
2282
+ },
2283
+ body: {
2284
+ // @ts-ignore-next-line
2285
+ last_id: (_id = (_this = (0, import_radash8.last)(runs2)) === null || _this === void 0 ? void 0 : _this.id) !== null && _id !== void 0 ? _id : null
2286
+ }
2287
+ }), {
2288
+ status: 200,
2289
+ headers: {
2290
+ "Content-Type": "application/json"
2291
+ }
2292
+ })
2293
+ ];
2294
+ }
2295
+ });
1930
2296
  });
1931
- });
2297
+ return function(urlString) {
2298
+ return _ref.apply(this, arguments);
2299
+ };
2300
+ }();
1932
2301
  };
1933
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/createAndStream.ts
1934
- var import_radash10 = require("radash");
1935
- var import_dayjs9 = __toESM(require("dayjs"), 1);
1936
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadRunInProgress.ts
2302
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/post.ts
2303
+ var import_dayjs8 = __toESM(require("dayjs"), 1);
2304
+ var import_radash9 = require("radash");
2305
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/onEvent/handlers/threadRunInProgress.ts
1937
2306
  var threadRunInProgress = function(param) {
1938
2307
  var prisma = param.prisma, event = param.event, controller = param.controller;
1939
2308
  controller.enqueue(event);
@@ -1946,7 +2315,7 @@ var threadRunInProgress = function(param) {
1946
2315
  }
1947
2316
  });
1948
2317
  };
1949
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadRunFailed.ts
2318
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/onEvent/handlers/threadRunFailed.ts
1950
2319
  var threadRunFailed = function(param) {
1951
2320
  var prisma = param.prisma, event = param.event, controller = param.controller;
1952
2321
  controller.enqueue(event);
@@ -1961,7 +2330,7 @@ var threadRunFailed = function(param) {
1961
2330
  }
1962
2331
  });
1963
2332
  };
1964
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadRunCompleted.ts
2333
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/onEvent/handlers/threadRunCompleted.ts
1965
2334
  var threadRunCompleted = function(param) {
1966
2335
  var prisma = param.prisma, event = param.event, controller = param.controller;
1967
2336
  controller.enqueue(event);
@@ -1975,7 +2344,7 @@ var threadRunCompleted = function(param) {
1975
2344
  }
1976
2345
  });
1977
2346
  };
1978
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadRunRequiresAction.ts
2347
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/onEvent/handlers/threadRunRequiresAction.ts
1979
2348
  var threadRunRequiresAction = function(param) {
1980
2349
  var prisma = param.prisma, event = param.event, controller = param.controller;
1981
2350
  controller.enqueue(event);
@@ -1989,14 +2358,14 @@ var threadRunRequiresAction = function(param) {
1989
2358
  }
1990
2359
  });
1991
2360
  };
1992
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/steps/serializeRunStep.ts
1993
- var import_dayjs8 = __toESM(require("dayjs"), 1);
2361
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/steps/serializeRunStep.ts
2362
+ var import_dayjs7 = __toESM(require("dayjs"), 1);
1994
2363
  var serializeRunStep = function(param) {
1995
2364
  var runStep = param.runStep;
1996
2365
  return {
1997
2366
  id: runStep.id,
1998
2367
  object: "thread.run.step",
1999
- created_at: (0, import_dayjs8.default)(runStep.createdAt).unix(),
2368
+ created_at: (0, import_dayjs7.default)(runStep.createdAt).unix(),
2000
2369
  assistant_id: runStep.assistantId,
2001
2370
  thread_id: runStep.threadId,
2002
2371
  run_id: runStep.runId,
@@ -2005,15 +2374,15 @@ var serializeRunStep = function(param) {
2005
2374
  // @ts-ignore-next-line
2006
2375
  step_details: runStep.stepDetails,
2007
2376
  last_error: runStep.lastError,
2008
- expired_at: runStep.expiredAt ? (0, import_dayjs8.default)(runStep.expiredAt).unix() : null,
2009
- cancelled_at: runStep.cancelledAt ? (0, import_dayjs8.default)(runStep.cancelledAt).unix() : null,
2010
- failed_at: runStep.failedAt ? (0, import_dayjs8.default)(runStep.failedAt).unix() : null,
2011
- completed_at: runStep.completedAt ? (0, import_dayjs8.default)(runStep.completedAt).unix() : null,
2377
+ expired_at: runStep.expiredAt ? (0, import_dayjs7.default)(runStep.expiredAt).unix() : null,
2378
+ cancelled_at: runStep.cancelledAt ? (0, import_dayjs7.default)(runStep.cancelledAt).unix() : null,
2379
+ failed_at: runStep.failedAt ? (0, import_dayjs7.default)(runStep.failedAt).unix() : null,
2380
+ completed_at: runStep.completedAt ? (0, import_dayjs7.default)(runStep.completedAt).unix() : null,
2012
2381
  metadata: runStep.metadata,
2013
2382
  usage: runStep.usage
2014
2383
  };
2015
2384
  };
2016
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadRunStepCreated.ts
2385
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/onEvent/handlers/threadRunStepCreated.ts
2017
2386
  var type = function(event) {
2018
2387
  if (event.data.type === "message_creation") return "MESSAGE_CREATION" /* MESSAGE_CREATION */ ;
2019
2388
  if (event.data.type === "tool_calls") return "TOOL_CALLS" /* TOOL_CALLS */ ;
@@ -2067,12 +2436,12 @@ var threadRunStepCreated = function() {
2067
2436
  return _ref.apply(this, arguments);
2068
2437
  };
2069
2438
  }();
2070
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadRunStepDelta.ts
2439
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/onEvent/handlers/threadRunStepDelta.ts
2071
2440
  var threadRunStepDelta = function(param) {
2072
2441
  var event = param.event, controller = param.controller;
2073
2442
  return controller.enqueue(event);
2074
2443
  };
2075
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadMessageCreated.ts
2444
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/onEvent/handlers/threadMessageCreated.ts
2076
2445
  var status2 = function(event) {
2077
2446
  if (event.data.status === "completed") return "COMPLETED" /* COMPLETED */ ;
2078
2447
  if (event.data.status === "in_progress") return "IN_PROGRESS" /* IN_PROGRESS */ ;
@@ -2118,12 +2487,12 @@ var threadMessageCreated = function() {
2118
2487
  return _ref.apply(this, arguments);
2119
2488
  };
2120
2489
  }();
2121
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadMessageDelta.ts
2490
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/onEvent/handlers/threadMessageDelta.ts
2122
2491
  var threadMessageDelta = function(param) {
2123
2492
  var event = param.event, controller = param.controller;
2124
2493
  return controller.enqueue(event);
2125
2494
  };
2126
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadMessageCompleted.ts
2495
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/onEvent/handlers/threadMessageCompleted.ts
2127
2496
  var threadMessageCompleted = function() {
2128
2497
  var _ref = _async_to_generator(function(param) {
2129
2498
  var prisma, event, controller, latestRunStep;
@@ -2193,7 +2562,7 @@ var threadMessageCompleted = function() {
2193
2562
  return _ref.apply(this, arguments);
2194
2563
  };
2195
2564
  }();
2196
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/index.ts
2565
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/onEvent/handlers/index.ts
2197
2566
  var handlers = {
2198
2567
  "thread.run.in_progress": threadRunInProgress,
2199
2568
  "thread.run.failed": threadRunFailed,
@@ -2205,7 +2574,7 @@ var handlers = {
2205
2574
  "thread.message.delta": threadMessageDelta,
2206
2575
  "thread.message.completed": threadMessageCompleted
2207
2576
  };
2208
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/index.ts
2577
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/onEvent/index.ts
2209
2578
  var onEvent = function(param) {
2210
2579
  var prisma = param.prisma, controller = param.controller;
2211
2580
  return function(event) {
@@ -2221,708 +2590,694 @@ var onEvent = function(param) {
2221
2590
  });
2222
2591
  };
2223
2592
  };
2224
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/getMessages.ts
2593
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/getMessages.ts
2594
+ var getTake = function(param) {
2595
+ var run2 = param.run;
2596
+ if (run2.truncationStrategy.type === "auto") {
2597
+ return null;
2598
+ }
2599
+ if (run2.truncationStrategy.type === "last_messages") {
2600
+ if (!run2.truncationStrategy.last_messages) {
2601
+ throw new Error("Truncation strategy last_messages is required");
2602
+ }
2603
+ return -run2.truncationStrategy.last_messages;
2604
+ }
2605
+ throw new Error("Unsupported truncation strategy type: ".concat(run2.truncationStrategy.type));
2606
+ };
2225
2607
  var getMessages = function(param) {
2226
- var prisma = param.prisma, run = param.run;
2608
+ var prisma = param.prisma, run2 = param.run;
2609
+ return /*#__PURE__*/ _async_to_generator(function() {
2610
+ var take, messages4;
2611
+ return _ts_generator(this, function(_state) {
2612
+ switch(_state.label){
2613
+ case 0:
2614
+ take = getTake({
2615
+ run: run2
2616
+ });
2617
+ return [
2618
+ 4,
2619
+ prisma.message.findMany(_object_spread({
2620
+ where: {
2621
+ threadId: run2.threadId
2622
+ },
2623
+ include: {
2624
+ run: {
2625
+ include: {
2626
+ runSteps: true
2627
+ }
2628
+ }
2629
+ },
2630
+ orderBy: {
2631
+ createdAt: "asc"
2632
+ }
2633
+ }, take ? {
2634
+ take: take
2635
+ } : {}))
2636
+ ];
2637
+ case 1:
2638
+ messages4 = _state.sent();
2639
+ return [
2640
+ 2,
2641
+ messages4.map(function(message) {
2642
+ return _object_spread_props(_object_spread({}, serializeMessage3({
2643
+ message: message
2644
+ })), {
2645
+ run: message.run ? _object_spread_props(_object_spread({}, serializeRun({
2646
+ run: message.run
2647
+ })), {
2648
+ runSteps: message.run.runSteps.map(function(runStep) {
2649
+ return serializeRunStep({
2650
+ runStep: runStep
2651
+ });
2652
+ })
2653
+ }) : null
2654
+ });
2655
+ })
2656
+ ];
2657
+ }
2658
+ });
2659
+ });
2660
+ };
2661
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/post.ts
2662
+ var post5 = function(param) {
2663
+ var prisma = param.prisma, runAdapter = param.runAdapter;
2227
2664
  return function() {
2228
- var _ref = _async_to_generator(function(param) {
2229
- var messagesHistoryLength, messages4;
2665
+ var _ref = _async_to_generator(function(urlString, options) {
2666
+ var url, _url_pathname_match, threadId, body, assistant_id, stream, assistant, _ref, model, instructions, // additional_instructions,
2667
+ tools, metadata, response_format, truncation_strategy, run2, data, readableStream;
2230
2668
  return _ts_generator(this, function(_state) {
2231
2669
  switch(_state.label){
2232
2670
  case 0:
2233
- messagesHistoryLength = param.messagesHistoryLength;
2671
+ url = new URL(urlString);
2672
+ _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp("^/v1/threads/([^/]+)/runs$")), 2), threadId = _url_pathname_match[1];
2673
+ body = JSON.parse(options.body);
2674
+ assistant_id = body.assistant_id, stream = body.stream;
2234
2675
  return [
2235
2676
  4,
2236
- prisma.message.findMany({
2677
+ prisma.assistant.findUnique({
2237
2678
  where: {
2238
- threadId: run.threadId
2239
- },
2240
- include: {
2241
- run: {
2242
- include: {
2243
- runSteps: true
2244
- }
2245
- }
2246
- },
2247
- take: -messagesHistoryLength,
2248
- orderBy: {
2249
- createdAt: "asc"
2679
+ id: assistant_id
2250
2680
  }
2251
2681
  })
2252
2682
  ];
2253
2683
  case 1:
2254
- messages4 = _state.sent();
2684
+ assistant = _state.sent();
2685
+ if (!assistant) {
2686
+ throw new Error("Assistant not found");
2687
+ }
2688
+ _ref = (0, import_radash9.assign)({
2689
+ model: assistant.modelSlug,
2690
+ instructions: "",
2691
+ additional_instructions: null,
2692
+ truncation_strategy: {
2693
+ type: "auto"
2694
+ },
2695
+ response_format: {
2696
+ type: "text"
2697
+ }
2698
+ }, body), model = _ref.model, instructions = _ref.instructions, tools = _ref.tools, metadata = _ref.metadata, response_format = _ref.response_format, truncation_strategy = _ref.truncation_strategy;
2255
2699
  return [
2256
- 2,
2257
- messages4.map(function(message) {
2258
- return _object_spread_props(_object_spread({}, serializeMessage3({
2259
- message: message
2260
- })), {
2261
- run: message.run ? _object_spread_props(_object_spread({}, serializeRun({
2262
- run: message.run
2263
- })), {
2264
- runSteps: message.run.runSteps.map(function(runStep) {
2265
- return serializeRunStep({
2266
- runStep: runStep
2267
- });
2268
- })
2269
- }) : null
2270
- });
2700
+ 4,
2701
+ prisma.run.create({
2702
+ data: {
2703
+ status: "QUEUED",
2704
+ expiresAt: (0, import_dayjs8.default)().add(1, "hour").unix(),
2705
+ model: model,
2706
+ instructions: instructions,
2707
+ tools: tools,
2708
+ metadata: metadata,
2709
+ thread: {
2710
+ connect: {
2711
+ id: threadId
2712
+ }
2713
+ },
2714
+ assistant: {
2715
+ connect: {
2716
+ id: assistant_id
2717
+ }
2718
+ },
2719
+ truncationStrategy: truncation_strategy,
2720
+ responseFormat: response_format
2721
+ }
2271
2722
  })
2272
2723
  ];
2724
+ case 2:
2725
+ run2 = _state.sent();
2726
+ data = serializeRun({
2727
+ run: run2
2728
+ });
2729
+ readableStream = new ReadableStream({
2730
+ start: function start(controller) {
2731
+ return _async_to_generator(function() {
2732
+ return _ts_generator(this, function(_state) {
2733
+ switch(_state.label){
2734
+ case 0:
2735
+ return [
2736
+ 4,
2737
+ runAdapter({
2738
+ run: data,
2739
+ onEvent: onEvent({
2740
+ controller: _object_spread_props(_object_spread({}, controller), {
2741
+ enqueue: function(data2) {
2742
+ controller.enqueue("data: ".concat(JSON.stringify(data2), "\n\n"));
2743
+ }
2744
+ }),
2745
+ prisma: prisma
2746
+ }),
2747
+ getMessages: getMessages({
2748
+ prisma: prisma,
2749
+ run: run2
2750
+ })
2751
+ })
2752
+ ];
2753
+ case 1:
2754
+ _state.sent();
2755
+ controller.close();
2756
+ return [
2757
+ 2
2758
+ ];
2759
+ }
2760
+ });
2761
+ })();
2762
+ }
2763
+ });
2764
+ if (stream) {
2765
+ return [
2766
+ 2,
2767
+ new Response(readableStream, {
2768
+ headers: {
2769
+ "Content-Type": "text/event-stream"
2770
+ }
2771
+ })
2772
+ ];
2773
+ } else {
2774
+ return [
2775
+ 2,
2776
+ new Response(JSON.stringify(data), {
2777
+ status: 200,
2778
+ headers: {
2779
+ "Content-Type": "application/json"
2780
+ }
2781
+ })
2782
+ ];
2783
+ }
2784
+ return [
2785
+ 2
2786
+ ];
2273
2787
  }
2274
2788
  });
2275
2789
  });
2276
- return function(_) {
2790
+ return function(urlString, options) {
2277
2791
  return _ref.apply(this, arguments);
2278
2792
  };
2279
2793
  }();
2280
2794
  };
2281
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/createAndStream.ts
2282
- var createAndStream = function(param) {
2795
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/index.ts
2796
+ var runs = function(param) {
2283
2797
  var prisma = param.prisma, runAdapter = param.runAdapter;
2798
+ return {
2799
+ get: get2({
2800
+ prisma: prisma
2801
+ }),
2802
+ post: post5({
2803
+ prisma: prisma,
2804
+ runAdapter: runAdapter
2805
+ })
2806
+ };
2807
+ };
2808
+ // src/adapters/storage/prismaStorageAdapter/threads/run/get.ts
2809
+ var get3 = function(param) {
2810
+ var prisma = param.prisma;
2284
2811
  return function() {
2285
- for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
2286
- args[_key] = arguments[_key];
2287
- }
2288
- return new ReadableStream({
2289
- start: function start(controller) {
2290
- return _async_to_generator(function() {
2291
- var threadId, assistant_id, assistant, _ref, model, instructions, // additional_instructions,
2292
- tools, metadata, response_format, run, data;
2293
- return _ts_generator(this, function(_state) {
2294
- switch(_state.label){
2295
- case 0:
2296
- threadId = args[0];
2297
- assistant_id = args[1].assistant_id;
2298
- return [
2299
- 4,
2300
- prisma.assistant.findUnique({
2301
- where: {
2302
- id: assistant_id
2303
- }
2304
- })
2305
- ];
2306
- case 1:
2307
- assistant = _state.sent();
2308
- if (!assistant) {
2309
- throw new Error("Assistant not found");
2310
- }
2311
- _ref = (0, import_radash10.assign)({
2312
- model: assistant.modelSlug,
2313
- instructions: "",
2314
- additional_instructions: null
2315
- }, args[1]), model = _ref.model, instructions = _ref.instructions, tools = _ref.tools, metadata = _ref.metadata, response_format = _ref.response_format;
2316
- return [
2317
- 4,
2318
- prisma.run.create({
2319
- data: {
2320
- status: "QUEUED",
2321
- expiresAt: (0, import_dayjs9.default)().add(1, "hour").unix(),
2322
- // @ts-ignore-next-line
2323
- model: model,
2324
- // @ts-ignore-next-line
2325
- instructions: instructions,
2326
- // @ts-ignore-next-line
2327
- tools: tools,
2328
- // @ts-ignore-next-line
2329
- metadata: metadata,
2330
- thread: {
2331
- connect: {
2332
- id: threadId
2333
- }
2334
- },
2335
- assistant: {
2336
- connect: {
2337
- id: assistant_id
2338
- }
2339
- }
2340
- }
2341
- })
2342
- ];
2343
- case 2:
2344
- run = _state.sent();
2345
- data = serializeRun({
2346
- run: run
2347
- });
2348
- controller.enqueue({
2349
- event: "thread.run.created",
2350
- data: data
2351
- });
2352
- return [
2353
- 4,
2354
- runAdapter({
2355
- run: data,
2356
- onEvent: onEvent({
2357
- controller: controller,
2358
- prisma: prisma
2359
- }),
2360
- getMessages: getMessages({
2361
- prisma: prisma,
2362
- run: run
2363
- }),
2364
- responseFormat: response_format
2365
- })
2366
- ];
2367
- case 3:
2368
- _state.sent();
2369
- console.log("Stream ended inside cloud storage");
2370
- controller.close();
2371
- return [
2372
- 2
2373
- ];
2374
- }
2375
- });
2376
- })();
2377
- }
2812
+ var _ref = _async_to_generator(function(urlString) {
2813
+ var url, _url_pathname_match, threadId, runId, run2;
2814
+ return _ts_generator(this, function(_state) {
2815
+ switch(_state.label){
2816
+ case 0:
2817
+ url = new URL(urlString);
2818
+ _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp("^/v1/threads/([^/]+)/runs/([^/]+)$")), 3), threadId = _url_pathname_match[1], runId = _url_pathname_match[2];
2819
+ return [
2820
+ 4,
2821
+ prisma.run.findUnique({
2822
+ where: {
2823
+ id: runId,
2824
+ threadId: threadId
2825
+ }
2826
+ })
2827
+ ];
2828
+ case 1:
2829
+ run2 = _state.sent();
2830
+ return [
2831
+ 2,
2832
+ new Response(JSON.stringify(serializeRun({
2833
+ run: run2
2834
+ })), {
2835
+ status: 200,
2836
+ headers: {
2837
+ "Content-Type": "application/json",
2838
+ "openai-poll-after-ms": "5000"
2839
+ }
2840
+ })
2841
+ ];
2842
+ }
2843
+ });
2378
2844
  });
2379
- };
2845
+ return function(urlString) {
2846
+ return _ref.apply(this, arguments);
2847
+ };
2848
+ }();
2380
2849
  };
2381
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/submitToolOutputs.ts
2382
- var import_dayjs10 = __toESM(require("dayjs"), 1);
2383
- var submitToolOutputs = function(param) {
2850
+ // src/adapters/storage/prismaStorageAdapter/threads/run/index.ts
2851
+ var run = function(param) {
2384
2852
  var prisma = param.prisma, runAdapter = param.runAdapter;
2385
- return /*#__PURE__*/ _async_to_generator(function() {
2386
- var _len, args, _key, _args, threadId, runId, body, tool_outputs, run, data;
2387
- var _arguments = arguments;
2853
+ return {
2854
+ get: get3({
2855
+ prisma: prisma
2856
+ })
2857
+ };
2858
+ };
2859
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/steps/get.ts
2860
+ var import_radash10 = require("radash");
2861
+ var get4 = function(param) {
2862
+ var prisma = param.prisma;
2863
+ return function() {
2864
+ var _ref = _async_to_generator(function(urlString) {
2865
+ var _this, url, _url_pathname_match, threadId, runId, _ref, limit, order, after, runSteps, _id;
2866
+ return _ts_generator(this, function(_state) {
2867
+ switch(_state.label){
2868
+ case 0:
2869
+ url = new URL(urlString);
2870
+ _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp("^/v1/threads/([^/]+)/runs/([^/]+)/steps$")), 4), threadId = _url_pathname_match[1], runId = _url_pathname_match[3];
2871
+ _ref = (0, import_radash10.assign)({
2872
+ limit: "20",
2873
+ order: "desc"
2874
+ }, Object.fromEntries(url.searchParams)), limit = _ref.limit, order = _ref.order, after = _ref.after;
2875
+ return [
2876
+ 4,
2877
+ prisma.runStep.findMany(_object_spread({
2878
+ where: {
2879
+ threadId: threadId,
2880
+ runId: runId
2881
+ },
2882
+ take: parseInt(limit),
2883
+ orderBy: {
2884
+ createdAt: order
2885
+ }
2886
+ }, after ? {
2887
+ skip: 1,
2888
+ cursor: {
2889
+ id: after
2890
+ }
2891
+ } : {}))
2892
+ ];
2893
+ case 1:
2894
+ runSteps = _state.sent();
2895
+ return [
2896
+ 2,
2897
+ new Response(JSON.stringify({
2898
+ data: runSteps.map(function(runStep) {
2899
+ return serializeRunStep({
2900
+ runStep: runStep
2901
+ });
2902
+ }),
2903
+ hasNextPage: function() {
2904
+ return runSteps.length === parseInt(limit);
2905
+ },
2906
+ body: {
2907
+ // @ts-ignore-next-line
2908
+ last_id: (_id = (_this = (0, import_radash10.last)(runSteps)) === null || _this === void 0 ? void 0 : _this.id) !== null && _id !== void 0 ? _id : null
2909
+ }
2910
+ }), {
2911
+ status: 200,
2912
+ headers: {
2913
+ "Content-Type": "application/json"
2914
+ }
2915
+ })
2916
+ ];
2917
+ }
2918
+ });
2919
+ });
2920
+ return function(urlString) {
2921
+ return _ref.apply(this, arguments);
2922
+ };
2923
+ }();
2924
+ };
2925
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/steps/index.ts
2926
+ var steps = function(param) {
2927
+ var prisma = param.prisma;
2928
+ return {
2929
+ get: get4({
2930
+ prisma: prisma
2931
+ })
2932
+ };
2933
+ };
2934
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/submitToolOutputs/post/updateRun.ts
2935
+ var import_dayjs9 = __toESM(require("dayjs"), 1);
2936
+ var updateRun = function() {
2937
+ var _ref = _async_to_generator(function(param) {
2938
+ var prisma, runId, threadId, _param_onThreadRunStepCompleted, onThreadRunStepCompleted, tool_outputs;
2388
2939
  return _ts_generator(this, function(_state) {
2389
- switch(_state.label){
2390
- case 0:
2391
- for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
2392
- args[_key] = _arguments[_key];
2393
- }
2394
- _args = _sliced_to_array(args, 3), threadId = _args[0], runId = _args[1], body = _args[2];
2395
- tool_outputs = body.tool_outputs;
2396
- return [
2397
- 4,
2398
- prisma.$transaction(function() {
2399
- var _ref = _async_to_generator(function(prisma2) {
2400
- var runSteps, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _loop, _iterator, _step, err;
2401
- return _ts_generator(this, function(_state) {
2402
- switch(_state.label){
2403
- case 0:
2404
- return [
2405
- 4,
2406
- prisma2.runStep.findMany({
2407
- where: {
2408
- threadId: threadId,
2409
- runId: runId,
2410
- type: "TOOL_CALLS",
2411
- status: "IN_PROGRESS"
2412
- }
2413
- })
2414
- ];
2415
- case 1:
2416
- runSteps = _state.sent();
2417
- _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
2418
- _state.label = 2;
2419
- case 2:
2420
- _state.trys.push([
2421
- 2,
2422
- 7,
2423
- 8,
2424
- 9
2425
- ]);
2426
- _loop = function() {
2427
- var runStep;
2428
- return _ts_generator(this, function(_state) {
2429
- switch(_state.label){
2430
- case 0:
2431
- runStep = _step.value;
2432
- return [
2433
- 4,
2434
- prisma2.runStep.update({
2435
- where: {
2436
- id: runStep.id
2437
- },
2438
- data: {
2439
- status: "COMPLETED",
2440
- completedAt: (0, import_dayjs10.default)().unix(),
2441
- stepDetails: {
2442
- type: "tool_calls",
2443
- tool_calls: runStep.stepDetails.tool_calls.map(function(toolCall) {
2444
- var toolOutput = tool_outputs.find(function(output) {
2445
- return output.tool_call_id === toolCall.id;
2446
- }) || tool_outputs[0];
2447
- if (!toolOutput) {
2448
- console.dir({
2449
- toolOutput: toolOutput,
2450
- runStep: runStep,
2451
- tool_outputs: tool_outputs,
2452
- runSteps: runSteps
2453
- }, {
2454
- depth: null
2455
- });
2456
- throw new Error("Tool output not found");
2457
- }
2458
- return {
2459
- id: toolCall.id,
2460
- type: toolCall.type,
2461
- function: _object_spread_props(_object_spread({}, toolCall.function), {
2462
- output: toolOutput.output
2463
- })
2464
- };
2465
- })
2466
- }
2467
- }
2468
- })
2469
- ];
2470
- case 1:
2471
- _state.sent();
2472
- return [
2473
- 2
2474
- ];
2475
- }
2476
- });
2477
- };
2478
- _iterator = runSteps[Symbol.iterator]();
2479
- _state.label = 3;
2480
- case 3:
2481
- if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
2482
- 3,
2483
- 6
2484
- ];
2485
- return [
2486
- 5,
2487
- _ts_values(_loop())
2488
- ];
2489
- case 4:
2490
- _state.sent();
2491
- _state.label = 5;
2492
- case 5:
2493
- _iteratorNormalCompletion = true;
2494
- return [
2495
- 3,
2496
- 3
2497
- ];
2498
- case 6:
2499
- return [
2500
- 3,
2501
- 9
2502
- ];
2503
- case 7:
2504
- err = _state.sent();
2505
- _didIteratorError = true;
2506
- _iteratorError = err;
2507
- return [
2508
- 3,
2509
- 9
2510
- ];
2511
- case 8:
2512
- try {
2513
- if (!_iteratorNormalCompletion && _iterator.return != null) {
2514
- _iterator.return();
2515
- }
2516
- } finally{
2517
- if (_didIteratorError) {
2518
- throw _iteratorError;
2519
- }
2940
+ prisma = param.prisma, runId = param.runId, threadId = param.threadId, _param_onThreadRunStepCompleted = param.onThreadRunStepCompleted, onThreadRunStepCompleted = _param_onThreadRunStepCompleted === void 0 ? function() {} : _param_onThreadRunStepCompleted, tool_outputs = param.tool_outputs;
2941
+ return [
2942
+ 2,
2943
+ prisma.$transaction(function() {
2944
+ var _ref = _async_to_generator(function(prisma2) {
2945
+ var runSteps, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _loop, _iterator, _step, err;
2946
+ return _ts_generator(this, function(_state) {
2947
+ switch(_state.label){
2948
+ case 0:
2949
+ return [
2950
+ 4,
2951
+ prisma2.runStep.findMany({
2952
+ where: {
2953
+ threadId: threadId,
2954
+ runId: runId,
2955
+ type: "TOOL_CALLS",
2956
+ status: "IN_PROGRESS"
2957
+ },
2958
+ orderBy: {
2959
+ createdAt: "asc"
2520
2960
  }
2521
- return [
2522
- 7
2523
- ];
2524
- case 9:
2525
- return [
2526
- 2,
2527
- prisma2.run.update({
2528
- where: {
2529
- id: runId
2530
- },
2531
- data: {
2532
- status: "QUEUED"
2533
- }
2534
- })
2535
- ];
2536
- }
2537
- });
2538
- });
2539
- return function(prisma2) {
2540
- return _ref.apply(this, arguments);
2541
- };
2542
- }())
2543
- ];
2544
- case 1:
2545
- run = _state.sent();
2546
- data = serializeRun({
2547
- run: run
2548
- });
2549
- return [
2550
- 4,
2551
- new Promise(function(resolve) {
2552
- return new ReadableStream({
2553
- start: function start(controller) {
2554
- return _async_to_generator(function() {
2961
+ })
2962
+ ];
2963
+ case 1:
2964
+ runSteps = _state.sent();
2965
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
2966
+ _state.label = 2;
2967
+ case 2:
2968
+ _state.trys.push([
2969
+ 2,
2970
+ 7,
2971
+ 8,
2972
+ 9
2973
+ ]);
2974
+ _loop = function() {
2975
+ var runStep, completedRunStep;
2555
2976
  return _ts_generator(this, function(_state) {
2556
2977
  switch(_state.label){
2557
2978
  case 0:
2979
+ runStep = _step.value;
2558
2980
  return [
2559
2981
  4,
2560
- runAdapter({
2561
- run: data,
2562
- onEvent: onEvent({
2563
- controller: controller,
2564
- prisma: prisma
2565
- }),
2566
- // @ts-ignore-next-line
2567
- getMessages: getMessages({
2568
- prisma: prisma,
2569
- run: run
2570
- })
2982
+ prisma2.runStep.update({
2983
+ where: {
2984
+ id: runStep.id
2985
+ },
2986
+ data: {
2987
+ status: "COMPLETED",
2988
+ completedAt: (0, import_dayjs9.default)().unix(),
2989
+ stepDetails: {
2990
+ type: "tool_calls",
2991
+ // @ts-ignore-next-line
2992
+ tool_calls: runStep.stepDetails.tool_calls.map(function(toolCall) {
2993
+ var toolOutput = tool_outputs.find(function(output) {
2994
+ return output.tool_call_id === toolCall.id;
2995
+ }) || tool_outputs[0];
2996
+ if (!toolOutput) {
2997
+ console.dir({
2998
+ toolOutput: toolOutput,
2999
+ runStep: runStep,
3000
+ tool_outputs: tool_outputs,
3001
+ runSteps: runSteps
3002
+ }, {
3003
+ depth: null
3004
+ });
3005
+ throw new Error("Tool output not found");
3006
+ }
3007
+ return {
3008
+ id: toolCall.id,
3009
+ type: toolCall.type,
3010
+ function: _object_spread_props(_object_spread({}, toolCall.function), {
3011
+ output: toolOutput.output
3012
+ })
3013
+ };
3014
+ })
3015
+ }
3016
+ }
2571
3017
  })
2572
3018
  ];
2573
3019
  case 1:
2574
- _state.sent();
2575
- controller.close();
2576
- resolve(void 0);
3020
+ completedRunStep = _state.sent();
3021
+ onThreadRunStepCompleted({
3022
+ runStep: completedRunStep
3023
+ });
2577
3024
  return [
2578
3025
  2
2579
3026
  ];
2580
3027
  }
2581
3028
  });
2582
- })();
2583
- }
2584
- });
2585
- })
2586
- ];
2587
- case 2:
2588
- _state.sent();
2589
- return [
2590
- 2,
2591
- data
2592
- ];
2593
- }
3029
+ };
3030
+ _iterator = runSteps[Symbol.iterator]();
3031
+ _state.label = 3;
3032
+ case 3:
3033
+ if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
3034
+ 3,
3035
+ 6
3036
+ ];
3037
+ return [
3038
+ 5,
3039
+ _ts_values(_loop())
3040
+ ];
3041
+ case 4:
3042
+ _state.sent();
3043
+ _state.label = 5;
3044
+ case 5:
3045
+ _iteratorNormalCompletion = true;
3046
+ return [
3047
+ 3,
3048
+ 3
3049
+ ];
3050
+ case 6:
3051
+ return [
3052
+ 3,
3053
+ 9
3054
+ ];
3055
+ case 7:
3056
+ err = _state.sent();
3057
+ _didIteratorError = true;
3058
+ _iteratorError = err;
3059
+ return [
3060
+ 3,
3061
+ 9
3062
+ ];
3063
+ case 8:
3064
+ try {
3065
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
3066
+ _iterator.return();
3067
+ }
3068
+ } finally{
3069
+ if (_didIteratorError) {
3070
+ throw _iteratorError;
3071
+ }
3072
+ }
3073
+ return [
3074
+ 7
3075
+ ];
3076
+ case 9:
3077
+ return [
3078
+ 2,
3079
+ prisma2.run.update({
3080
+ where: {
3081
+ id: runId
3082
+ },
3083
+ data: {
3084
+ status: "QUEUED"
3085
+ }
3086
+ })
3087
+ ];
3088
+ }
3089
+ });
3090
+ });
3091
+ return function(prisma2) {
3092
+ return _ref.apply(this, arguments);
3093
+ };
3094
+ }())
3095
+ ];
2594
3096
  });
2595
3097
  });
2596
- };
2597
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/submitToolOutputsStream.ts
2598
- var import_dayjs11 = __toESM(require("dayjs"), 1);
2599
- var submitToolOutputsStream = function(param) {
3098
+ return function updateRun(_) {
3099
+ return _ref.apply(this, arguments);
3100
+ };
3101
+ }();
3102
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/submitToolOutputs/post/index.ts
3103
+ var post6 = function(param) {
2600
3104
  var prisma = param.prisma, runAdapter = param.runAdapter;
2601
3105
  return function() {
2602
- for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
2603
- args[_key] = arguments[_key];
2604
- }
2605
- return new ReadableStream({
2606
- start: function start(controller) {
2607
- return _async_to_generator(function() {
2608
- var _args, threadId, runId, body, tool_outputs, run;
2609
- return _ts_generator(this, function(_state) {
2610
- switch(_state.label){
2611
- case 0:
2612
- _args = _sliced_to_array(args, 3), threadId = _args[0], runId = _args[1], body = _args[2];
2613
- tool_outputs = body.tool_outputs;
2614
- return [
2615
- 4,
2616
- prisma.$transaction(function() {
2617
- var _ref = _async_to_generator(function(prisma2) {
2618
- var runSteps, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _loop, _iterator, _step, err;
3106
+ var _ref = _async_to_generator(function(urlString, options) {
3107
+ var url, _url_pathname_match, threadId, runId, body, tool_outputs, stream, readableStream, run2;
3108
+ return _ts_generator(this, function(_state) {
3109
+ switch(_state.label){
3110
+ case 0:
3111
+ url = new URL(urlString);
3112
+ _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp("^/v1/threads/([^/]+)/runs/([^/]+)/submit_tool_outputs$")), 3), threadId = _url_pathname_match[1], runId = _url_pathname_match[2];
3113
+ body = JSON.parse(options.body);
3114
+ tool_outputs = body.tool_outputs, stream = body.stream;
3115
+ if (!stream) return [
3116
+ 3,
3117
+ 1
3118
+ ];
3119
+ readableStream = new ReadableStream({
3120
+ start: function start(controller) {
3121
+ return _async_to_generator(function() {
3122
+ var run2;
3123
+ return _ts_generator(this, function(_state) {
3124
+ switch(_state.label){
3125
+ case 0:
3126
+ return [
3127
+ 4,
3128
+ updateRun({
3129
+ prisma: prisma,
3130
+ runId: runId,
3131
+ threadId: threadId,
3132
+ tool_outputs: tool_outputs,
3133
+ onThreadRunStepCompleted: function() {
3134
+ var _ref = _async_to_generator(function(param) {
3135
+ var runStep;
3136
+ return _ts_generator(this, function(_state) {
3137
+ runStep = param.runStep;
3138
+ controller.enqueue("data: ".concat(JSON.stringify({
3139
+ event: "thread.run.step.completed",
3140
+ data: serializeRunStep({
3141
+ runStep: runStep
3142
+ })
3143
+ }), "\n\n"));
3144
+ return [
3145
+ 2
3146
+ ];
3147
+ });
3148
+ });
3149
+ return function(_) {
3150
+ return _ref.apply(this, arguments);
3151
+ };
3152
+ }()
3153
+ })
3154
+ ];
3155
+ case 1:
3156
+ run2 = _state.sent();
3157
+ return [
3158
+ 4,
3159
+ runAdapter({
3160
+ run: serializeRun({
3161
+ run: run2
3162
+ }),
3163
+ onEvent: onEvent({
3164
+ controller: _object_spread_props(_object_spread({}, controller), {
3165
+ enqueue: function(data) {
3166
+ controller.enqueue("data: ".concat(JSON.stringify(data), "\n\n"));
3167
+ }
3168
+ }),
3169
+ prisma: prisma
3170
+ }),
3171
+ getMessages: getMessages({
3172
+ prisma: prisma,
3173
+ run: run2
3174
+ })
3175
+ })
3176
+ ];
3177
+ case 2:
3178
+ _state.sent();
3179
+ controller.close();
3180
+ return [
3181
+ 2
3182
+ ];
3183
+ }
3184
+ });
3185
+ })();
3186
+ }
3187
+ });
3188
+ return [
3189
+ 2,
3190
+ new Response(readableStream, {
3191
+ headers: {
3192
+ "Content-Type": "text/event-stream"
3193
+ }
3194
+ })
3195
+ ];
3196
+ case 1:
3197
+ return [
3198
+ 4,
3199
+ updateRun({
3200
+ prisma: prisma,
3201
+ runId: runId,
3202
+ threadId: threadId,
3203
+ tool_outputs: tool_outputs
3204
+ })
3205
+ ];
3206
+ case 2:
3207
+ run2 = _state.sent();
3208
+ return [
3209
+ 4,
3210
+ new Promise(function(resolve) {
3211
+ return new ReadableStream({
3212
+ start: function start(controller) {
3213
+ return _async_to_generator(function() {
2619
3214
  return _ts_generator(this, function(_state) {
2620
3215
  switch(_state.label){
2621
3216
  case 0:
2622
3217
  return [
2623
3218
  4,
2624
- prisma2.runStep.findMany({
2625
- where: {
2626
- threadId: threadId,
2627
- runId: runId,
2628
- type: "TOOL_CALLS",
2629
- status: "IN_PROGRESS"
2630
- },
2631
- orderBy: {
2632
- createdAt: "asc"
2633
- }
3219
+ runAdapter({
3220
+ run: serializeRun({
3221
+ run: run2
3222
+ }),
3223
+ onEvent: onEvent({
3224
+ controller: _object_spread_props(_object_spread({}, controller), {
3225
+ enqueue: function(data) {
3226
+ controller.enqueue("data: ".concat(JSON.stringify(data), "\n\n"));
3227
+ }
3228
+ }),
3229
+ prisma: prisma
3230
+ }),
3231
+ getMessages: getMessages({
3232
+ prisma: prisma,
3233
+ run: run2
3234
+ })
2634
3235
  })
2635
3236
  ];
2636
3237
  case 1:
2637
- runSteps = _state.sent();
2638
- _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
2639
- _state.label = 2;
2640
- case 2:
2641
- _state.trys.push([
2642
- 2,
2643
- 7,
2644
- 8,
2645
- 9
2646
- ]);
2647
- _loop = function() {
2648
- var runStep, completedRunStep;
2649
- return _ts_generator(this, function(_state) {
2650
- switch(_state.label){
2651
- case 0:
2652
- runStep = _step.value;
2653
- return [
2654
- 4,
2655
- prisma2.runStep.update({
2656
- where: {
2657
- id: runStep.id
2658
- },
2659
- data: {
2660
- status: "COMPLETED",
2661
- completedAt: (0, import_dayjs11.default)().unix(),
2662
- stepDetails: {
2663
- type: "tool_calls",
2664
- tool_calls: runStep.stepDetails.tool_calls.map(function(toolCall) {
2665
- var toolOutput = tool_outputs.find(function(output) {
2666
- return output.tool_call_id === toolCall.id;
2667
- }) || tool_outputs[0];
2668
- if (!toolOutput) {
2669
- console.dir({
2670
- toolOutput: toolOutput,
2671
- runStep: runStep,
2672
- tool_outputs: tool_outputs,
2673
- runSteps: runSteps
2674
- }, {
2675
- depth: null
2676
- });
2677
- throw new Error("Tool output not found");
2678
- }
2679
- return {
2680
- id: toolCall.id,
2681
- type: toolCall.type,
2682
- function: _object_spread_props(_object_spread({}, toolCall.function), {
2683
- output: toolOutput.output
2684
- })
2685
- };
2686
- })
2687
- }
2688
- }
2689
- })
2690
- ];
2691
- case 1:
2692
- completedRunStep = _state.sent();
2693
- controller.enqueue({
2694
- event: "thread.run.step.completed",
2695
- data: serializeRunStep({
2696
- runStep: completedRunStep
2697
- })
2698
- });
2699
- return [
2700
- 2
2701
- ];
2702
- }
2703
- });
2704
- };
2705
- _iterator = runSteps[Symbol.iterator]();
2706
- _state.label = 3;
2707
- case 3:
2708
- if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
2709
- 3,
2710
- 6
2711
- ];
2712
- return [
2713
- 5,
2714
- _ts_values(_loop())
2715
- ];
2716
- case 4:
2717
3238
  _state.sent();
2718
- _state.label = 5;
2719
- case 5:
2720
- _iteratorNormalCompletion = true;
2721
- return [
2722
- 3,
2723
- 3
2724
- ];
2725
- case 6:
2726
- return [
2727
- 3,
2728
- 9
2729
- ];
2730
- case 7:
2731
- err = _state.sent();
2732
- _didIteratorError = true;
2733
- _iteratorError = err;
2734
- return [
2735
- 3,
2736
- 9
2737
- ];
2738
- case 8:
2739
- try {
2740
- if (!_iteratorNormalCompletion && _iterator.return != null) {
2741
- _iterator.return();
2742
- }
2743
- } finally{
2744
- if (_didIteratorError) {
2745
- throw _iteratorError;
2746
- }
2747
- }
3239
+ controller.close();
3240
+ resolve(void 0);
2748
3241
  return [
2749
- 7
2750
- ];
2751
- case 9:
2752
- return [
2753
- 2,
2754
- prisma2.run.update({
2755
- where: {
2756
- id: runId
2757
- },
2758
- data: {
2759
- status: "QUEUED"
2760
- }
2761
- })
3242
+ 2
2762
3243
  ];
2763
3244
  }
2764
3245
  });
2765
- });
2766
- return function(prisma2) {
2767
- return _ref.apply(this, arguments);
2768
- };
2769
- }())
2770
- ];
2771
- case 1:
2772
- run = _state.sent();
2773
- return [
2774
- 4,
2775
- runAdapter({
2776
- run: serializeRun({
2777
- run: run
2778
- }),
2779
- onEvent: onEvent({
2780
- controller: controller,
2781
- prisma: prisma
2782
- }),
2783
- // @ts-ignore-next-line
2784
- getMessages: getMessages({
2785
- prisma: prisma,
2786
- run: run
2787
- })
2788
- })
2789
- ];
2790
- case 2:
2791
- _state.sent();
2792
- console.log("Stream ended inside cloud storage");
2793
- controller.close();
2794
- return [
2795
- 2
2796
- ];
2797
- }
2798
- });
2799
- })();
2800
- }
2801
- });
2802
- };
2803
- };
2804
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/steps/list.ts
2805
- var import_radash11 = require("radash");
2806
- var list3 = function(param) {
2807
- var prisma = param.prisma;
2808
- return /*#__PURE__*/ _async_to_generator(function() {
2809
- var _len, args, _key, _this, threadId, runId, _args_, _ref, // @ts-ignore-next-line
2810
- limit, // @ts-ignore-next-line
2811
- order, // @ts-ignore-next-line
2812
- after, runSteps, _id;
2813
- var _arguments = arguments;
2814
- return _ts_generator(this, function(_state) {
2815
- switch(_state.label){
2816
- case 0:
2817
- for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
2818
- args[_key] = _arguments[_key];
2819
- }
2820
- threadId = args[0];
2821
- runId = args[1];
2822
- _ref = (0, import_radash11.assign)({
2823
- // @ts-ignore-next-line
2824
- limit: 20,
2825
- order: "desc",
2826
- after: null
2827
- }, (_args_ = args[2]) !== null && _args_ !== void 0 ? _args_ : {}), limit = _ref.limit, order = _ref.order, after = _ref.after;
2828
- return [
2829
- 4,
2830
- prisma.runStep.findMany(_object_spread({
2831
- where: {
2832
- threadId: threadId,
2833
- runId: runId
2834
- },
2835
- take: limit,
2836
- orderBy: {
2837
- createdAt: order
2838
- }
2839
- }, after ? {
2840
- skip: 1,
2841
- cursor: {
2842
- id: after
2843
- }
2844
- } : {}))
2845
- ];
2846
- case 1:
2847
- runSteps = _state.sent();
2848
- return [
2849
- 2,
2850
- {
2851
- data: runSteps.map(function(runStep) {
2852
- return serializeRunStep({
2853
- runStep: runStep
3246
+ })();
3247
+ }
2854
3248
  });
2855
- }),
2856
- hasNextPage: function() {
2857
- return runSteps.length === limit;
2858
- },
2859
- body: {
2860
- last_id: (_id = (_this = (0, import_radash11.last)(runSteps)) === null || _this === void 0 ? void 0 : _this.id) !== null && _id !== void 0 ? _id : null
2861
- }
2862
- }
2863
- ];
2864
- }
3249
+ })
3250
+ ];
3251
+ case 3:
3252
+ _state.sent();
3253
+ return [
3254
+ 2,
3255
+ new Response(JSON.stringify(run2), {
3256
+ status: 200,
3257
+ headers: {
3258
+ "Content-Type": "application/json"
3259
+ }
3260
+ })
3261
+ ];
3262
+ case 4:
3263
+ return [
3264
+ 2
3265
+ ];
3266
+ }
3267
+ });
2865
3268
  });
2866
- });
2867
- };
2868
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/steps/index.ts
2869
- var steps = function(param) {
2870
- var prisma = param.prisma;
2871
- return {
2872
- list: list3({
2873
- prisma: prisma
2874
- })
2875
- };
2876
- };
2877
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/index.ts
2878
- var runs = function(param) {
2879
- var prisma = param.prisma, runAdapter = param.runAdapter;
2880
- return {
2881
- list: list2({
2882
- prisma: prisma
2883
- }),
2884
- create: create3({
2885
- prisma: prisma
2886
- }),
2887
- createAndStream: createAndStream({
2888
- prisma: prisma,
2889
- runAdapter: runAdapter
2890
- }),
2891
- submitToolOutputs: submitToolOutputs({
2892
- prisma: prisma,
2893
- runAdapter: runAdapter
2894
- }),
2895
- submitToolOutputsStream: submitToolOutputsStream({
2896
- prisma: prisma,
2897
- runAdapter: runAdapter
2898
- }),
2899
- steps: steps({
2900
- prisma: prisma
2901
- })
2902
- };
2903
- };
2904
- // src/adapters/storage/prismaStorageAdapter/beta/threads/index.ts
2905
- var threads = function(param) {
2906
- var prisma = param.prisma, runAdapter = param.runAdapter;
2907
- return {
2908
- create: create({
2909
- prisma: prisma
2910
- }),
2911
- messages: messages3({
2912
- prisma: prisma
2913
- }),
2914
- runs: runs({
2915
- prisma: prisma,
2916
- runAdapter: runAdapter
2917
- })
2918
- };
3269
+ return function(urlString, options) {
3270
+ return _ref.apply(this, arguments);
3271
+ };
3272
+ }();
2919
3273
  };
2920
- // src/adapters/storage/prismaStorageAdapter/beta/index.ts
2921
- var beta = function(param) {
3274
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/submitToolOutputs/index.ts
3275
+ var submitToolOutputs = function(param) {
2922
3276
  var prisma = param.prisma, runAdapter = param.runAdapter;
2923
3277
  return {
2924
- threads: threads({
3278
+ post: post6({
2925
3279
  prisma: prisma,
3280
+ // @ts-ignore-next-line
2926
3281
  runAdapter: runAdapter
2927
3282
  })
2928
3283
  };
@@ -2933,7 +3288,24 @@ var prismaStorageAdapter = function(param) {
2933
3288
  return function(param) {
2934
3289
  var runAdapter = param.runAdapter;
2935
3290
  return {
2936
- beta: beta({
3291
+ "^/v1/threads$": threads({
3292
+ prisma: prisma
3293
+ }),
3294
+ "^/v1/threads/([^/]+)/messages$": messages3({
3295
+ prisma: prisma
3296
+ }),
3297
+ "^/v1/threads/([^/]+)/runs$": runs({
3298
+ prisma: prisma,
3299
+ runAdapter: runAdapter
3300
+ }),
3301
+ "^/v1/threads/([^/]+)/runs/([^/]+)$": run({
3302
+ prisma: prisma,
3303
+ runAdapter: runAdapter
3304
+ }),
3305
+ "^/v1/threads/([^/]+)/runs/([^/]+)/steps$": steps({
3306
+ prisma: prisma
3307
+ }),
3308
+ "^/v1/threads/([^/]+)/runs/([^/]+)/submit_tool_outputs$": submitToolOutputs({
2937
3309
  prisma: prisma,
2938
3310
  runAdapter: runAdapter
2939
3311
  })
@@ -2945,7 +3317,9 @@ var prismaStorageAdapter = function(param) {
2945
3317
  anthropicClientAdapter: anthropicClientAdapter,
2946
3318
  anthropicRunAdapter: anthropicRunAdapter,
2947
3319
  completionsRunAdapter: completionsRunAdapter,
3320
+ groqClientAdapter: groqClientAdapter,
2948
3321
  mistralClientAdapter: mistralClientAdapter,
3322
+ openaiClientAdapter: openaiClientAdapter,
2949
3323
  perplexityClientAdapter: perplexityClientAdapter,
2950
3324
  prismaStorageAdapter: prismaStorageAdapter,
2951
3325
  supercompat: supercompat