supercompat 1.5.0 → 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",
@@ -506,11 +949,12 @@ var import_radash2 = require("radash");
506
949
  // src/adapters/run/completionsRunAdapter/messages/serializeMessage.ts
507
950
  var serializeToolCall = function(param) {
508
951
  var toolCall = param.toolCall;
952
+ var _toolCall_function_output;
509
953
  return {
510
954
  tool_call_id: toolCall.id,
511
955
  role: "tool",
512
956
  name: toolCall.function.name,
513
- content: toolCall.function.output
957
+ content: (_toolCall_function_output = toolCall.function.output) !== null && _toolCall_function_output !== void 0 ? _toolCall_function_output : ""
514
958
  };
515
959
  };
516
960
  var serializeMessageWithContent = function(param) {
@@ -539,11 +983,11 @@ var serializeMessage = function(param) {
539
983
  message: message
540
984
  })
541
985
  ];
542
- var run = message.run;
543
- if (!run) return result;
986
+ var run2 = message.run;
987
+ if (!run2) return result;
544
988
  var messageToolCalls = ((_message_metadata = message.metadata) === null || _message_metadata === void 0 ? void 0 : _message_metadata.toolCalls) || [];
545
989
  messageToolCalls.forEach(function(tc) {
546
- var runStep = run.runSteps.find(function(rs) {
990
+ var runStep = run2.runSteps.find(function(rs) {
547
991
  if (rs.type !== "tool_calls") return false;
548
992
  return rs.step_details.tool_calls.some(function(rsTc) {
549
993
  if (rsTc.type !== "function") return false;
@@ -564,23 +1008,21 @@ var serializeMessage = function(param) {
564
1008
  // src/adapters/run/completionsRunAdapter/messages/index.ts
565
1009
  var messages = function() {
566
1010
  var _ref = _async_to_generator(function(param) {
567
- var run, getMessages2, messagesHistoryLength, _, _1, _2;
1011
+ var run2, getMessages2, _, _1, _2;
568
1012
  return _ts_generator(this, function(_state) {
569
1013
  switch(_state.label){
570
1014
  case 0:
571
- run = param.run, getMessages2 = param.getMessages, messagesHistoryLength = param.messagesHistoryLength;
572
- _1 = (_ = _to_consumable_array(run.instructions ? [
1015
+ run2 = param.run, getMessages2 = param.getMessages;
1016
+ _1 = (_ = _to_consumable_array(run2.instructions ? [
573
1017
  {
574
1018
  role: "system",
575
- content: run.instructions
1019
+ content: run2.instructions
576
1020
  }
577
1021
  ] : [])).concat;
578
1022
  _2 = (0, import_radash2.flat);
579
1023
  return [
580
1024
  4,
581
- getMessages2({
582
- messagesHistoryLength: messagesHistoryLength
583
- })
1025
+ getMessages2()
584
1026
  ];
585
1027
  case 1:
586
1028
  return [
@@ -672,21 +1114,26 @@ var toolCallsData = function(param) {
672
1114
  }
673
1115
  return newToolCalls;
674
1116
  };
675
- var completionsRunAdapter = function(param) {
676
- 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() {
677
1118
  return function() {
678
1119
  var _ref = _async_to_generator(function(param) {
679
- 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;
680
1121
  return _ts_generator(this, function(_state) {
681
1122
  switch(_state.label){
682
1123
  case 0:
683
- client = param.client, run = param.run, onEvent2 = param.onEvent, getMessages2 = param.getMessages, responseFormat = param.responseFormat;
684
- if (run.status !== "queued") return [
1124
+ clientAdapter = param.client, run2 = param.run, onEvent2 = param.onEvent, getMessages2 = param.getMessages;
1125
+ if (run2.status !== "queued") return [
685
1126
  2
686
1127
  ];
1128
+ client = supercompat({
1129
+ client: clientAdapter,
1130
+ storage: function() {},
1131
+ // @ts-ignore-next-line
1132
+ runAdapter: {}
1133
+ });
687
1134
  onEvent2({
688
1135
  event: "thread.run.in_progress",
689
- data: _object_spread_props(_object_spread({}, run), {
1136
+ data: _object_spread_props(_object_spread({}, run2), {
690
1137
  status: "in_progress"
691
1138
  })
692
1139
  });
@@ -694,29 +1141,17 @@ var completionsRunAdapter = function(param) {
694
1141
  return [
695
1142
  4,
696
1143
  messages({
697
- run: run,
698
- getMessages: getMessages2,
699
- messagesHistoryLength: messagesHistoryLength
1144
+ run: run2,
1145
+ getMessages: getMessages2
700
1146
  })
701
1147
  ];
702
1148
  case 1:
703
1149
  opts = _object_spread.apply(void 0, [
704
- (_tmp.messages = _state.sent(), _tmp.model = run.model, _tmp.stream = true, _tmp),
705
- responseFormat ? {
706
- response_format: responseFormat
707
- } : {},
708
- maxTokens ? {
709
- max_tokens: maxTokens
710
- } : {},
711
- (0, import_radash3.isEmpty)(run.tools) ? {} : {
712
- 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
713
1153
  }
714
1154
  ]);
715
- console.dir({
716
- opts: opts
717
- }, {
718
- depth: null
719
- });
720
1155
  _state.label = 2;
721
1156
  case 2:
722
1157
  _state.trys.push([
@@ -737,12 +1172,13 @@ var completionsRunAdapter = function(param) {
737
1172
  ];
738
1173
  case 4:
739
1174
  e = _state.sent();
1175
+ console.log("error", e);
740
1176
  console.error(e);
741
1177
  return [
742
1178
  2,
743
1179
  onEvent2({
744
1180
  event: "thread.run.failed",
745
- data: _object_spread_props(_object_spread({}, run), {
1181
+ data: _object_spread_props(_object_spread({}, run2), {
746
1182
  failed_at: (0, import_dayjs.default)().unix(),
747
1183
  status: "in_progress",
748
1184
  last_error: e.message
@@ -758,14 +1194,14 @@ var completionsRunAdapter = function(param) {
758
1194
  id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
759
1195
  object: "thread.message",
760
1196
  completed_at: null,
761
- run_id: run.id,
1197
+ run_id: run2.id,
762
1198
  created_at: (0, import_dayjs.default)().unix(),
763
- assistant_id: run.assistant_id,
1199
+ assistant_id: run2.assistant_id,
764
1200
  incomplete_at: null,
765
1201
  incomplete_details: null,
766
1202
  metadata: {},
767
1203
  attachments: [],
768
- thread_id: run.thread_id,
1204
+ thread_id: run2.thread_id,
769
1205
  content: [
770
1206
  {
771
1207
  text: {
@@ -787,9 +1223,9 @@ var completionsRunAdapter = function(param) {
787
1223
  data: {
788
1224
  id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
789
1225
  object: "thread.run.step",
790
- run_id: run.id,
791
- assistant_id: run.assistant_id,
792
- thread_id: run.thread_id,
1226
+ run_id: run2.id,
1227
+ assistant_id: run2.assistant_id,
1228
+ thread_id: run2.thread_id,
793
1229
  type: "message_creation",
794
1230
  status: "completed",
795
1231
  completed_at: (0, import_dayjs.default)().unix(),
@@ -809,11 +1245,6 @@ var completionsRunAdapter = function(param) {
809
1245
  }
810
1246
  });
811
1247
  currentContent = "";
812
- console.dir({
813
- providerResponse: providerResponse
814
- }, {
815
- depth: null
816
- });
817
1248
  _iteratorAbruptCompletion = false, _didIteratorError = false;
818
1249
  _state.label = 7;
819
1250
  case 7:
@@ -857,9 +1288,9 @@ var completionsRunAdapter = function(param) {
857
1288
  data: {
858
1289
  id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
859
1290
  object: "thread.run.step",
860
- run_id: run.id,
861
- assistant_id: run.assistant_id,
862
- thread_id: run.thread_id,
1291
+ run_id: run2.id,
1292
+ assistant_id: run2.assistant_id,
1293
+ thread_id: run2.thread_id,
863
1294
  type: "tool_calls",
864
1295
  status: "in_progress",
865
1296
  completed_at: null,
@@ -885,7 +1316,7 @@ var completionsRunAdapter = function(param) {
885
1316
  event: "thread.run.step.delta",
886
1317
  data: {
887
1318
  object: "thread.run.step.delta",
888
- run_id: run.id,
1319
+ run_id: run2.id,
889
1320
  id: toolCallsRunStep.id,
890
1321
  delta: {
891
1322
  step_details: {
@@ -1006,7 +1437,7 @@ var completionsRunAdapter = function(param) {
1006
1437
  2,
1007
1438
  onEvent2({
1008
1439
  event: "thread.run.completed",
1009
- data: _object_spread_props(_object_spread({}, run), {
1440
+ data: _object_spread_props(_object_spread({}, run2), {
1010
1441
  status: "completed",
1011
1442
  completed_at: (0, import_dayjs.default)().unix()
1012
1443
  })
@@ -1017,7 +1448,7 @@ var completionsRunAdapter = function(param) {
1017
1448
  2,
1018
1449
  onEvent2({
1019
1450
  event: "thread.run.requires_action",
1020
- data: _object_spread_props(_object_spread({}, run), {
1451
+ data: _object_spread_props(_object_spread({}, run2), {
1021
1452
  status: "requires_action",
1022
1453
  required_action: {
1023
1454
  type: "submit_tool_outputs",
@@ -1045,13 +1476,14 @@ var import_radash4 = require("radash");
1045
1476
  // src/adapters/run/anthropicRunAdapter/messages/serializeMessage.ts
1046
1477
  var serializeToolCall2 = function(param) {
1047
1478
  var toolCall = param.toolCall;
1479
+ var _toolCall_function_output;
1048
1480
  return {
1049
1481
  role: "user",
1050
1482
  content: [
1051
1483
  {
1052
1484
  type: "tool_result",
1053
1485
  tool_use_id: toolCall.id,
1054
- content: toolCall.function.output
1486
+ content: (_toolCall_function_output = toolCall.function.output) !== null && _toolCall_function_output !== void 0 ? _toolCall_function_output : ""
1055
1487
  }
1056
1488
  ]
1057
1489
  };
@@ -1095,21 +1527,16 @@ var serializeContent2 = function(param) {
1095
1527
  var serializeMessage2 = function(param) {
1096
1528
  var message = param.message;
1097
1529
  var _message_metadata;
1098
- console.dir({
1099
- message: message
1100
- }, {
1101
- depth: null
1102
- });
1103
1530
  var result = [
1104
1531
  serializeMessageWithContent2({
1105
1532
  message: message
1106
1533
  })
1107
1534
  ];
1108
- var run = message.run;
1109
- if (!run) return result;
1535
+ var run2 = message.run;
1536
+ if (!run2) return result;
1110
1537
  var messageToolCalls = ((_message_metadata = message.metadata) === null || _message_metadata === void 0 ? void 0 : _message_metadata.toolCalls) || [];
1111
1538
  messageToolCalls.forEach(function(tc) {
1112
- var runStep = run.runSteps.find(function(rs) {
1539
+ var runStep = run2.runSteps.find(function(rs) {
1113
1540
  if (rs.type !== "tool_calls") return false;
1114
1541
  return rs.step_details.tool_calls.some(function(rsTc) {
1115
1542
  if (rsTc.type !== "function") return false;
@@ -1130,17 +1557,15 @@ var serializeMessage2 = function(param) {
1130
1557
  // src/adapters/run/anthropicRunAdapter/messages/index.ts
1131
1558
  var messages2 = function() {
1132
1559
  var _ref = _async_to_generator(function(param) {
1133
- var run, getMessages2, messagesHistoryLength, _;
1560
+ var run2, getMessages2, _;
1134
1561
  return _ts_generator(this, function(_state) {
1135
1562
  switch(_state.label){
1136
1563
  case 0:
1137
- run = param.run, getMessages2 = param.getMessages, messagesHistoryLength = param.messagesHistoryLength;
1564
+ run2 = param.run, getMessages2 = param.getMessages;
1138
1565
  _ = (0, import_radash4.flat);
1139
1566
  return [
1140
1567
  4,
1141
- getMessages2({
1142
- messagesHistoryLength: messagesHistoryLength
1143
- })
1568
+ getMessages2()
1144
1569
  ];
1145
1570
  case 1:
1146
1571
  return [
@@ -1162,8 +1587,8 @@ var messages2 = function() {
1162
1587
  }();
1163
1588
  // src/adapters/run/anthropicRunAdapter/serializeTools.ts
1164
1589
  var serializeTools = function(param) {
1165
- var run = param.run;
1166
- return run.tools.map(function(tool) {
1590
+ var run2 = param.run;
1591
+ return run2.tools.map(function(tool) {
1167
1592
  if (tool.type === "function") {
1168
1593
  return {
1169
1594
  name: tool.function.name,
@@ -1175,48 +1600,41 @@ var serializeTools = function(param) {
1175
1600
  });
1176
1601
  };
1177
1602
  // src/adapters/run/anthropicRunAdapter/index.ts
1178
- var anthropicRunAdapter = function(param) {
1179
- 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() {
1180
1604
  return function() {
1181
1605
  var _ref = _async_to_generator(function(param) {
1182
- 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;
1183
1607
  return _ts_generator(this, function(_state) {
1184
1608
  switch(_state.label){
1185
1609
  case 0:
1186
- client = param.client, run = param.run, onEvent2 = param.onEvent, getMessages2 = param.getMessages;
1187
- if (run.status !== "queued") return [
1610
+ client = param.client, run2 = param.run, onEvent2 = param.onEvent, getMessages2 = param.getMessages;
1611
+ if (run2.status !== "queued") return [
1188
1612
  2
1189
1613
  ];
1190
1614
  onEvent2({
1191
1615
  event: "thread.run.in_progress",
1192
- data: _object_spread_props(_object_spread({}, run), {
1616
+ data: _object_spread_props(_object_spread({}, run2), {
1193
1617
  status: "in_progress"
1194
1618
  })
1195
1619
  });
1196
- isStream = (0, import_radash5.isEmpty)(run.tools);
1620
+ isStream = (0, import_radash5.isEmpty)(run2.tools);
1197
1621
  _tmp = {};
1198
1622
  return [
1199
1623
  4,
1200
1624
  messages2({
1201
- run: run,
1202
- getMessages: getMessages2,
1203
- messagesHistoryLength: messagesHistoryLength
1625
+ run: run2,
1626
+ getMessages: getMessages2
1204
1627
  })
1205
1628
  ];
1206
1629
  case 1:
1207
1630
  opts = _object_spread.apply(void 0, [
1208
- (_tmp.messages = _state.sent(), _tmp.stream = isStream, _tmp.model = run.model, _tmp.max_tokens = maxTokens, _tmp),
1209
- (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) ? {} : {
1210
1633
  tools: serializeTools({
1211
- run: run
1634
+ run: run2
1212
1635
  })
1213
1636
  }
1214
1637
  ]);
1215
- console.dir({
1216
- opts: opts
1217
- }, {
1218
- depth: null
1219
- });
1220
1638
  _state.label = 2;
1221
1639
  case 2:
1222
1640
  _state.trys.push([
@@ -1242,7 +1660,7 @@ var anthropicRunAdapter = function(param) {
1242
1660
  2,
1243
1661
  onEvent2({
1244
1662
  event: "thread.run.failed",
1245
- data: _object_spread_props(_object_spread({}, run), {
1663
+ data: _object_spread_props(_object_spread({}, run2), {
1246
1664
  failed_at: (0, import_dayjs2.default)().unix(),
1247
1665
  status: "in_progress",
1248
1666
  last_error: e.message
@@ -1258,14 +1676,14 @@ var anthropicRunAdapter = function(param) {
1258
1676
  id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
1259
1677
  object: "thread.message",
1260
1678
  completed_at: null,
1261
- run_id: run.id,
1679
+ run_id: run2.id,
1262
1680
  created_at: (0, import_dayjs2.default)().unix(),
1263
- assistant_id: run.assistant_id,
1681
+ assistant_id: run2.assistant_id,
1264
1682
  incomplete_at: null,
1265
1683
  incomplete_details: null,
1266
1684
  metadata: {},
1267
1685
  attachments: [],
1268
- thread_id: run.thread_id,
1686
+ thread_id: run2.thread_id,
1269
1687
  content: [
1270
1688
  {
1271
1689
  text: {
@@ -1287,9 +1705,9 @@ var anthropicRunAdapter = function(param) {
1287
1705
  data: {
1288
1706
  id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
1289
1707
  object: "thread.run.step",
1290
- run_id: run.id,
1291
- assistant_id: run.assistant_id,
1292
- thread_id: run.thread_id,
1708
+ run_id: run2.id,
1709
+ assistant_id: run2.assistant_id,
1710
+ thread_id: run2.thread_id,
1293
1711
  type: "message_creation",
1294
1712
  status: "completed",
1295
1713
  completed_at: (0, import_dayjs2.default)().unix(),
@@ -1309,11 +1727,6 @@ var anthropicRunAdapter = function(param) {
1309
1727
  }
1310
1728
  });
1311
1729
  currentContent = "";
1312
- console.dir({
1313
- providerResponse: providerResponse
1314
- }, {
1315
- depth: null
1316
- });
1317
1730
  if (!isStream) return [
1318
1731
  3,
1319
1732
  19
@@ -1453,9 +1866,9 @@ var anthropicRunAdapter = function(param) {
1453
1866
  data: {
1454
1867
  id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
1455
1868
  object: "thread.run.step",
1456
- run_id: run.id,
1457
- assistant_id: run.assistant_id,
1458
- thread_id: run.thread_id,
1869
+ run_id: run2.id,
1870
+ assistant_id: run2.assistant_id,
1871
+ thread_id: run2.thread_id,
1459
1872
  type: "tool_calls",
1460
1873
  status: "in_progress",
1461
1874
  completed_at: null,
@@ -1503,7 +1916,7 @@ var anthropicRunAdapter = function(param) {
1503
1916
  2,
1504
1917
  onEvent2({
1505
1918
  event: "thread.run.completed",
1506
- data: _object_spread_props(_object_spread({}, run), {
1919
+ data: _object_spread_props(_object_spread({}, run2), {
1507
1920
  status: "completed",
1508
1921
  completed_at: (0, import_dayjs2.default)().unix()
1509
1922
  })
@@ -1514,7 +1927,7 @@ var anthropicRunAdapter = function(param) {
1514
1927
  2,
1515
1928
  onEvent2({
1516
1929
  event: "thread.run.requires_action",
1517
- data: _object_spread_props(_object_spread({}, run), {
1930
+ data: _object_spread_props(_object_spread({}, run2), {
1518
1931
  status: "requires_action",
1519
1932
  required_action: {
1520
1933
  type: "submit_tool_outputs",
@@ -1533,9 +1946,9 @@ var anthropicRunAdapter = function(param) {
1533
1946
  };
1534
1947
  }();
1535
1948
  };
1536
- // src/adapters/storage/prismaStorageAdapter/beta/threads/create.ts
1949
+ // src/adapters/storage/prismaStorageAdapter/threads/post.ts
1537
1950
  var import_dayjs4 = __toESM(require("dayjs"), 1);
1538
- // src/adapters/storage/prismaStorageAdapter/beta/threads/serializeThread.ts
1951
+ // src/adapters/storage/prismaStorageAdapter/threads/serializeThread.ts
1539
1952
  var import_dayjs3 = __toESM(require("dayjs"), 1);
1540
1953
  var serializeThread = function(param) {
1541
1954
  var thread = param.thread;
@@ -1548,11 +1961,11 @@ var serializeThread = function(param) {
1548
1961
  tool_resources: null
1549
1962
  };
1550
1963
  };
1551
- // src/adapters/storage/prismaStorageAdapter/beta/threads/create.ts
1552
- var create = function(param) {
1964
+ // src/adapters/storage/prismaStorageAdapter/threads/post.ts
1965
+ var post3 = function(param) {
1553
1966
  var prisma = param.prisma;
1554
1967
  return /*#__PURE__*/ _async_to_generator(function() {
1555
- var _len, args, _key, _args_, _args__body, messages4, metadata, initialCreatedAt, thread;
1968
+ var _len, args, _key, body, messages4, metadata, initialCreatedAt, thread;
1556
1969
  var _arguments = arguments;
1557
1970
  return _ts_generator(this, function(_state) {
1558
1971
  switch(_state.label){
@@ -1560,19 +1973,22 @@ var create = function(param) {
1560
1973
  for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1561
1974
  args[_key] = _arguments[_key];
1562
1975
  }
1563
- _args_ = args[0], _args__body = _args_.// @ts-ignore-next-line
1564
- body, messages4 = _args__body.messages, metadata = _args__body.metadata;
1976
+ body = JSON.parse(args[1].body);
1977
+ messages4 = body.messages || [];
1978
+ metadata = body.metadata || {};
1565
1979
  initialCreatedAt = (0, import_dayjs4.default)().subtract(messages4.length, "seconds").format();
1566
1980
  return [
1567
1981
  4,
1568
1982
  prisma.thread.create({
1569
- data: {
1570
- metadata: metadata,
1983
+ data: _object_spread_props(_object_spread({
1984
+ metadata: metadata
1985
+ }, metadata.assistantId ? {
1571
1986
  assistant: {
1572
1987
  connect: {
1573
- id: metadata.superinterfaceAssistantId
1988
+ id: metadata.assistantId
1574
1989
  }
1575
- },
1990
+ }
1991
+ } : {}), {
1576
1992
  messages: {
1577
1993
  create: messages4.map(function(message, index) {
1578
1994
  return {
@@ -1592,24 +2008,36 @@ var create = function(param) {
1592
2008
  };
1593
2009
  })
1594
2010
  }
1595
- }
2011
+ })
1596
2012
  })
1597
2013
  ];
1598
2014
  case 1:
1599
2015
  thread = _state.sent();
1600
2016
  return [
1601
2017
  2,
1602
- serializeThread({
2018
+ new Response(JSON.stringify(serializeThread({
1603
2019
  thread: thread
2020
+ })), {
2021
+ status: 200,
2022
+ headers: {
2023
+ "Content-Type": "application/json"
2024
+ }
1604
2025
  })
1605
2026
  ];
1606
2027
  }
1607
2028
  });
1608
2029
  });
1609
2030
  };
1610
- // src/adapters/storage/prismaStorageAdapter/beta/threads/messages/list.ts
1611
- var import_radash7 = require("radash");
1612
- // 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
1613
2041
  var import_dayjs5 = __toESM(require("dayjs"), 1);
1614
2042
  var import_radash6 = require("radash");
1615
2043
  var serializeMessage3 = function(param) {
@@ -1634,68 +2062,7 @@ var serializeMessage3 = function(param) {
1634
2062
  } : {})
1635
2063
  };
1636
2064
  };
1637
- // src/adapters/storage/prismaStorageAdapter/beta/threads/messages/list.ts
1638
- var list = function(param) {
1639
- var prisma = param.prisma;
1640
- return /*#__PURE__*/ _async_to_generator(function() {
1641
- var _len, args, _key, _this, threadId, _args_, _ref, // @ts-ignore-next-line
1642
- limit, // @ts-ignore-next-line
1643
- order, // @ts-ignore-next-line
1644
- after, messages4, _id;
1645
- var _arguments = arguments;
1646
- return _ts_generator(this, function(_state) {
1647
- switch(_state.label){
1648
- case 0:
1649
- for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1650
- args[_key] = _arguments[_key];
1651
- }
1652
- threadId = args[0];
1653
- _ref = (0, import_radash7.assign)({
1654
- // @ts-ignore-next-line
1655
- limit: 20,
1656
- order: "desc",
1657
- after: null
1658
- }, (_args_ = args[1]) !== null && _args_ !== void 0 ? _args_ : {}), limit = _ref.limit, order = _ref.order, after = _ref.after;
1659
- return [
1660
- 4,
1661
- prisma.message.findMany(_object_spread({
1662
- where: {
1663
- threadId: threadId
1664
- },
1665
- take: limit,
1666
- orderBy: {
1667
- createdAt: order
1668
- }
1669
- }, after ? {
1670
- skip: 1,
1671
- cursor: {
1672
- id: after
1673
- }
1674
- } : {}))
1675
- ];
1676
- case 1:
1677
- messages4 = _state.sent();
1678
- return [
1679
- 2,
1680
- {
1681
- data: messages4.map(function(message) {
1682
- return serializeMessage3({
1683
- message: message
1684
- });
1685
- }),
1686
- hasNextPage: function() {
1687
- return messages4.length === limit;
1688
- },
1689
- body: {
1690
- last_id: (_id = (_this = (0, import_radash7.last)(messages4)) === null || _this === void 0 ? void 0 : _this.id) !== null && _id !== void 0 ? _id : null
1691
- }
1692
- }
1693
- ];
1694
- }
1695
- });
1696
- });
1697
- };
1698
- // src/adapters/storage/prismaStorageAdapter/beta/threads/messages/create.ts
2065
+ // src/adapters/storage/prismaStorageAdapter/threads/messages/post.ts
1699
2066
  var messageContentBlocks = function(param) {
1700
2067
  var content = param.content;
1701
2068
  return [
@@ -1708,230 +2075,234 @@ var messageContentBlocks = function(param) {
1708
2075
  }
1709
2076
  ];
1710
2077
  };
1711
- var create2 = function(param) {
2078
+ var post4 = function(param) {
1712
2079
  var prisma = param.prisma;
1713
- return /*#__PURE__*/ _async_to_generator(function() {
1714
- var _len, args, _key, threadId, content, message;
1715
- var _arguments = arguments;
1716
- return _ts_generator(this, function(_state) {
1717
- switch(_state.label){
1718
- case 0:
1719
- for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1720
- args[_key] = _arguments[_key];
1721
- }
1722
- threadId = args[0];
1723
- content = args[1].content;
1724
- return [
1725
- 4,
1726
- prisma.message.create({
1727
- data: {
1728
- threadId: threadId,
1729
- content: messageContentBlocks({
1730
- content: content
1731
- }),
1732
- role: "USER"
1733
- }
1734
- })
1735
- ];
1736
- case 1:
1737
- message = _state.sent();
1738
- return [
1739
- 2,
1740
- serializeMessage3({
1741
- message: message
1742
- })
1743
- ];
1744
- }
1745
- });
1746
- });
1747
- };
1748
- // src/adapters/storage/prismaStorageAdapter/beta/threads/messages/index.ts
1749
- 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) {
1750
2189
  var prisma = param.prisma;
1751
2190
  return {
1752
- list: list({
2191
+ post: post4({
1753
2192
  prisma: prisma
1754
2193
  }),
1755
- create: create2({
2194
+ get: get({
1756
2195
  prisma: prisma
1757
2196
  })
1758
2197
  };
1759
2198
  };
1760
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/list.ts
2199
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/get.ts
1761
2200
  var import_radash8 = require("radash");
1762
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/serializeRun.ts
2201
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/serializeRun.ts
1763
2202
  var import_dayjs6 = __toESM(require("dayjs"), 1);
1764
2203
  var serializeRun = function(param) {
1765
- var run = param.run;
2204
+ var run2 = param.run;
1766
2205
  return {
1767
- id: run.id,
2206
+ id: run2.id,
1768
2207
  object: "thread.run",
1769
- created_at: (0, import_dayjs6.default)(run.createdAt).unix(),
1770
- thread_id: run.threadId,
1771
- assistant_id: run.assistantId,
1772
- status: run.status.toLowerCase(),
1773
- required_action: run.requiredAction,
1774
- last_error: run.lastError,
1775
- expires_at: (0, import_dayjs6.default)(run.expiresAt).unix(),
1776
- started_at: run.startedAt ? (0, import_dayjs6.default)(run.startedAt).unix() : null,
1777
- cancelled_at: run.cancelledAt ? (0, import_dayjs6.default)(run.cancelledAt).unix() : null,
1778
- failed_at: run.failedAt ? (0, import_dayjs6.default)(run.failedAt).unix() : null,
1779
- completed_at: run.completedAt ? (0, import_dayjs6.default)(run.completedAt).unix() : null,
1780
- model: run.model,
1781
- instructions: run.instructions,
1782
- tools: run.tools,
1783
- metadata: run.metadata,
1784
- 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
+ },
1785
2230
  // TODO
1786
2231
  incomplete_details: null,
1787
2232
  max_completion_tokens: null,
1788
2233
  max_prompt_tokens: null,
1789
- response_format: "auto",
1790
2234
  tool_choice: "auto",
1791
- truncation_strategy: {
1792
- type: "auto",
1793
- last_messages: null
1794
- }
2235
+ parallel_tool_calls: true
1795
2236
  };
1796
2237
  };
1797
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/list.ts
1798
- var list2 = function(param) {
1799
- var prisma = param.prisma;
1800
- return /*#__PURE__*/ _async_to_generator(function() {
1801
- var _len, args, _key, _this, threadId, _args_, _ref, // @ts-ignore-next-line
1802
- limit, // @ts-ignore-next-line
1803
- order, // @ts-ignore-next-line
1804
- after, runs2, _id;
1805
- var _arguments = arguments;
1806
- return _ts_generator(this, function(_state) {
1807
- switch(_state.label){
1808
- case 0:
1809
- for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1810
- args[_key] = _arguments[_key];
1811
- }
1812
- threadId = args[0];
1813
- _ref = (0, import_radash8.assign)({
1814
- // @ts-ignore-next-line
1815
- limit: 20,
1816
- order: "desc"
1817
- }, (_args_ = args[1]) !== null && _args_ !== void 0 ? _args_ : {}), limit = _ref.limit, order = _ref.order, after = _ref.after;
1818
- return [
1819
- 4,
1820
- prisma.run.findMany(_object_spread({
1821
- where: {
1822
- threadId: threadId
1823
- },
1824
- take: limit,
1825
- orderBy: {
1826
- createdAt: order
1827
- }
1828
- }, after ? {
1829
- skip: 1,
1830
- cursor: {
1831
- id: after
1832
- }
1833
- } : {}))
1834
- ];
1835
- case 1:
1836
- runs2 = _state.sent();
1837
- return [
1838
- 2,
1839
- {
1840
- data: runs2.map(function(run) {
1841
- return serializeRun({
1842
- run: run
1843
- });
1844
- }),
1845
- hasNextPage: function() {
1846
- return runs2.length === limit;
1847
- },
1848
- body: {
1849
- last_id: (_id = (_this = (0, import_radash8.last)(runs2)) === null || _this === void 0 ? void 0 : _this.id) !== null && _id !== void 0 ? _id : null
1850
- }
1851
- }
1852
- ];
1853
- }
1854
- });
1855
- });
1856
- };
1857
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/create.ts
1858
- var import_dayjs7 = __toESM(require("dayjs"), 1);
1859
- var import_radash9 = require("radash");
1860
- var create3 = function(param) {
2238
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/get.ts
2239
+ var get2 = function(param) {
1861
2240
  var prisma = param.prisma;
1862
- return /*#__PURE__*/ _async_to_generator(function() {
1863
- var _len, args, _key, threadId, assistant_id, assistant, _ref, model, instructions, // additional_instructions,
1864
- tools, metadata, run;
1865
- var _arguments = arguments;
1866
- return _ts_generator(this, function(_state) {
1867
- switch(_state.label){
1868
- case 0:
1869
- for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1870
- args[_key] = _arguments[_key];
1871
- }
1872
- threadId = args[0];
1873
- assistant_id = args[1].assistant_id;
1874
- return [
1875
- 4,
1876
- prisma.assistant.findUnique({
1877
- where: {
1878
- id: assistant_id
1879
- }
1880
- })
1881
- ];
1882
- case 1:
1883
- assistant = _state.sent();
1884
- if (!assistant) {
1885
- throw new Error("Assistant not found");
1886
- }
1887
- _ref = (0, import_radash9.assign)({
1888
- model: assistant.modelSlug,
1889
- instructions: "",
1890
- additional_instructions: null
1891
- }, args[1]), model = _ref.model, instructions = _ref.instructions, tools = _ref.tools, metadata = _ref.metadata;
1892
- return [
1893
- 4,
1894
- prisma.run.create({
1895
- data: {
1896
- status: "QUEUED",
1897
- expiresAt: (0, import_dayjs7.default)().add(1, "hour").unix(),
1898
- // @ts-ignore-next-line
1899
- model: model,
1900
- // @ts-ignore-next-line
1901
- instructions: instructions,
1902
- // @ts-ignore-next-line
1903
- tools: tools,
1904
- // @ts-ignore-next-line
1905
- metadata: metadata,
1906
- thread: {
1907
- connect: {
1908
- id: threadId
1909
- }
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
1910
2258
  },
1911
- assistant: {
1912
- connect: {
1913
- id: assistant_id
1914
- }
2259
+ take: parseInt(limit),
2260
+ orderBy: {
2261
+ createdAt: order
1915
2262
  }
1916
- }
1917
- })
1918
- ];
1919
- case 2:
1920
- run = _state.sent();
1921
- return [
1922
- 2,
1923
- serializeRun({
1924
- run: run
1925
- })
1926
- ];
1927
- }
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
+ });
1928
2296
  });
1929
- });
2297
+ return function(urlString) {
2298
+ return _ref.apply(this, arguments);
2299
+ };
2300
+ }();
1930
2301
  };
1931
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/createAndStream.ts
1932
- var import_radash10 = require("radash");
1933
- var import_dayjs9 = __toESM(require("dayjs"), 1);
1934
- // 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
1935
2306
  var threadRunInProgress = function(param) {
1936
2307
  var prisma = param.prisma, event = param.event, controller = param.controller;
1937
2308
  controller.enqueue(event);
@@ -1944,7 +2315,7 @@ var threadRunInProgress = function(param) {
1944
2315
  }
1945
2316
  });
1946
2317
  };
1947
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadRunFailed.ts
2318
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/onEvent/handlers/threadRunFailed.ts
1948
2319
  var threadRunFailed = function(param) {
1949
2320
  var prisma = param.prisma, event = param.event, controller = param.controller;
1950
2321
  controller.enqueue(event);
@@ -1959,7 +2330,7 @@ var threadRunFailed = function(param) {
1959
2330
  }
1960
2331
  });
1961
2332
  };
1962
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadRunCompleted.ts
2333
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/onEvent/handlers/threadRunCompleted.ts
1963
2334
  var threadRunCompleted = function(param) {
1964
2335
  var prisma = param.prisma, event = param.event, controller = param.controller;
1965
2336
  controller.enqueue(event);
@@ -1973,7 +2344,7 @@ var threadRunCompleted = function(param) {
1973
2344
  }
1974
2345
  });
1975
2346
  };
1976
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadRunRequiresAction.ts
2347
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/onEvent/handlers/threadRunRequiresAction.ts
1977
2348
  var threadRunRequiresAction = function(param) {
1978
2349
  var prisma = param.prisma, event = param.event, controller = param.controller;
1979
2350
  controller.enqueue(event);
@@ -1987,14 +2358,14 @@ var threadRunRequiresAction = function(param) {
1987
2358
  }
1988
2359
  });
1989
2360
  };
1990
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/steps/serializeRunStep.ts
1991
- 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);
1992
2363
  var serializeRunStep = function(param) {
1993
2364
  var runStep = param.runStep;
1994
2365
  return {
1995
2366
  id: runStep.id,
1996
2367
  object: "thread.run.step",
1997
- created_at: (0, import_dayjs8.default)(runStep.createdAt).unix(),
2368
+ created_at: (0, import_dayjs7.default)(runStep.createdAt).unix(),
1998
2369
  assistant_id: runStep.assistantId,
1999
2370
  thread_id: runStep.threadId,
2000
2371
  run_id: runStep.runId,
@@ -2003,15 +2374,15 @@ var serializeRunStep = function(param) {
2003
2374
  // @ts-ignore-next-line
2004
2375
  step_details: runStep.stepDetails,
2005
2376
  last_error: runStep.lastError,
2006
- expired_at: runStep.expiredAt ? (0, import_dayjs8.default)(runStep.expiredAt).unix() : null,
2007
- cancelled_at: runStep.cancelledAt ? (0, import_dayjs8.default)(runStep.cancelledAt).unix() : null,
2008
- failed_at: runStep.failedAt ? (0, import_dayjs8.default)(runStep.failedAt).unix() : null,
2009
- 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,
2010
2381
  metadata: runStep.metadata,
2011
2382
  usage: runStep.usage
2012
2383
  };
2013
2384
  };
2014
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadRunStepCreated.ts
2385
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/onEvent/handlers/threadRunStepCreated.ts
2015
2386
  var type = function(event) {
2016
2387
  if (event.data.type === "message_creation") return "MESSAGE_CREATION" /* MESSAGE_CREATION */ ;
2017
2388
  if (event.data.type === "tool_calls") return "TOOL_CALLS" /* TOOL_CALLS */ ;
@@ -2065,12 +2436,12 @@ var threadRunStepCreated = function() {
2065
2436
  return _ref.apply(this, arguments);
2066
2437
  };
2067
2438
  }();
2068
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadRunStepDelta.ts
2439
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/onEvent/handlers/threadRunStepDelta.ts
2069
2440
  var threadRunStepDelta = function(param) {
2070
2441
  var event = param.event, controller = param.controller;
2071
2442
  return controller.enqueue(event);
2072
2443
  };
2073
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadMessageCreated.ts
2444
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/onEvent/handlers/threadMessageCreated.ts
2074
2445
  var status2 = function(event) {
2075
2446
  if (event.data.status === "completed") return "COMPLETED" /* COMPLETED */ ;
2076
2447
  if (event.data.status === "in_progress") return "IN_PROGRESS" /* IN_PROGRESS */ ;
@@ -2116,12 +2487,12 @@ var threadMessageCreated = function() {
2116
2487
  return _ref.apply(this, arguments);
2117
2488
  };
2118
2489
  }();
2119
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadMessageDelta.ts
2490
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/onEvent/handlers/threadMessageDelta.ts
2120
2491
  var threadMessageDelta = function(param) {
2121
2492
  var event = param.event, controller = param.controller;
2122
2493
  return controller.enqueue(event);
2123
2494
  };
2124
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadMessageCompleted.ts
2495
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/onEvent/handlers/threadMessageCompleted.ts
2125
2496
  var threadMessageCompleted = function() {
2126
2497
  var _ref = _async_to_generator(function(param) {
2127
2498
  var prisma, event, controller, latestRunStep;
@@ -2191,7 +2562,7 @@ var threadMessageCompleted = function() {
2191
2562
  return _ref.apply(this, arguments);
2192
2563
  };
2193
2564
  }();
2194
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/index.ts
2565
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/onEvent/handlers/index.ts
2195
2566
  var handlers = {
2196
2567
  "thread.run.in_progress": threadRunInProgress,
2197
2568
  "thread.run.failed": threadRunFailed,
@@ -2203,7 +2574,7 @@ var handlers = {
2203
2574
  "thread.message.delta": threadMessageDelta,
2204
2575
  "thread.message.completed": threadMessageCompleted
2205
2576
  };
2206
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/index.ts
2577
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/onEvent/index.ts
2207
2578
  var onEvent = function(param) {
2208
2579
  var prisma = param.prisma, controller = param.controller;
2209
2580
  return function(event) {
@@ -2219,708 +2590,694 @@ var onEvent = function(param) {
2219
2590
  });
2220
2591
  };
2221
2592
  };
2222
- // 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
+ };
2223
2607
  var getMessages = function(param) {
2224
- 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;
2225
2664
  return function() {
2226
- var _ref = _async_to_generator(function(param) {
2227
- 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;
2228
2668
  return _ts_generator(this, function(_state) {
2229
2669
  switch(_state.label){
2230
2670
  case 0:
2231
- 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;
2232
2675
  return [
2233
2676
  4,
2234
- prisma.message.findMany({
2677
+ prisma.assistant.findUnique({
2235
2678
  where: {
2236
- threadId: run.threadId
2237
- },
2238
- include: {
2239
- run: {
2240
- include: {
2241
- runSteps: true
2242
- }
2243
- }
2244
- },
2245
- take: -messagesHistoryLength,
2246
- orderBy: {
2247
- createdAt: "asc"
2679
+ id: assistant_id
2248
2680
  }
2249
2681
  })
2250
2682
  ];
2251
2683
  case 1:
2252
- 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;
2253
2699
  return [
2254
- 2,
2255
- messages4.map(function(message) {
2256
- return _object_spread_props(_object_spread({}, serializeMessage3({
2257
- message: message
2258
- })), {
2259
- run: message.run ? _object_spread_props(_object_spread({}, serializeRun({
2260
- run: message.run
2261
- })), {
2262
- runSteps: message.run.runSteps.map(function(runStep) {
2263
- return serializeRunStep({
2264
- runStep: runStep
2265
- });
2266
- })
2267
- }) : null
2268
- });
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
+ }
2269
2722
  })
2270
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
+ ];
2271
2787
  }
2272
2788
  });
2273
2789
  });
2274
- return function(_) {
2790
+ return function(urlString, options) {
2275
2791
  return _ref.apply(this, arguments);
2276
2792
  };
2277
2793
  }();
2278
2794
  };
2279
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/createAndStream.ts
2280
- var createAndStream = function(param) {
2795
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/index.ts
2796
+ var runs = function(param) {
2281
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;
2282
2811
  return function() {
2283
- for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
2284
- args[_key] = arguments[_key];
2285
- }
2286
- return new ReadableStream({
2287
- start: function start(controller) {
2288
- return _async_to_generator(function() {
2289
- var threadId, assistant_id, assistant, _ref, model, instructions, // additional_instructions,
2290
- tools, metadata, response_format, run, data;
2291
- return _ts_generator(this, function(_state) {
2292
- switch(_state.label){
2293
- case 0:
2294
- threadId = args[0];
2295
- assistant_id = args[1].assistant_id;
2296
- return [
2297
- 4,
2298
- prisma.assistant.findUnique({
2299
- where: {
2300
- id: assistant_id
2301
- }
2302
- })
2303
- ];
2304
- case 1:
2305
- assistant = _state.sent();
2306
- if (!assistant) {
2307
- throw new Error("Assistant not found");
2308
- }
2309
- _ref = (0, import_radash10.assign)({
2310
- model: assistant.modelSlug,
2311
- instructions: "",
2312
- additional_instructions: null
2313
- }, args[1]), model = _ref.model, instructions = _ref.instructions, tools = _ref.tools, metadata = _ref.metadata, response_format = _ref.response_format;
2314
- return [
2315
- 4,
2316
- prisma.run.create({
2317
- data: {
2318
- status: "QUEUED",
2319
- expiresAt: (0, import_dayjs9.default)().add(1, "hour").unix(),
2320
- // @ts-ignore-next-line
2321
- model: model,
2322
- // @ts-ignore-next-line
2323
- instructions: instructions,
2324
- // @ts-ignore-next-line
2325
- tools: tools,
2326
- // @ts-ignore-next-line
2327
- metadata: metadata,
2328
- thread: {
2329
- connect: {
2330
- id: threadId
2331
- }
2332
- },
2333
- assistant: {
2334
- connect: {
2335
- id: assistant_id
2336
- }
2337
- }
2338
- }
2339
- })
2340
- ];
2341
- case 2:
2342
- run = _state.sent();
2343
- data = serializeRun({
2344
- run: run
2345
- });
2346
- controller.enqueue({
2347
- event: "thread.run.created",
2348
- data: data
2349
- });
2350
- return [
2351
- 4,
2352
- runAdapter({
2353
- run: data,
2354
- onEvent: onEvent({
2355
- controller: controller,
2356
- prisma: prisma
2357
- }),
2358
- getMessages: getMessages({
2359
- prisma: prisma,
2360
- run: run
2361
- }),
2362
- responseFormat: response_format
2363
- })
2364
- ];
2365
- case 3:
2366
- _state.sent();
2367
- console.log("Stream ended inside cloud storage");
2368
- controller.close();
2369
- return [
2370
- 2
2371
- ];
2372
- }
2373
- });
2374
- })();
2375
- }
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
+ });
2376
2844
  });
2377
- };
2845
+ return function(urlString) {
2846
+ return _ref.apply(this, arguments);
2847
+ };
2848
+ }();
2378
2849
  };
2379
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/submitToolOutputs.ts
2380
- var import_dayjs10 = __toESM(require("dayjs"), 1);
2381
- var submitToolOutputs = function(param) {
2850
+ // src/adapters/storage/prismaStorageAdapter/threads/run/index.ts
2851
+ var run = function(param) {
2382
2852
  var prisma = param.prisma, runAdapter = param.runAdapter;
2383
- return /*#__PURE__*/ _async_to_generator(function() {
2384
- var _len, args, _key, _args, threadId, runId, body, tool_outputs, run, data;
2385
- 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;
2386
2939
  return _ts_generator(this, function(_state) {
2387
- switch(_state.label){
2388
- case 0:
2389
- for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
2390
- args[_key] = _arguments[_key];
2391
- }
2392
- _args = _sliced_to_array(args, 3), threadId = _args[0], runId = _args[1], body = _args[2];
2393
- tool_outputs = body.tool_outputs;
2394
- return [
2395
- 4,
2396
- prisma.$transaction(function() {
2397
- var _ref = _async_to_generator(function(prisma2) {
2398
- var runSteps, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _loop, _iterator, _step, err;
2399
- return _ts_generator(this, function(_state) {
2400
- switch(_state.label){
2401
- case 0:
2402
- return [
2403
- 4,
2404
- prisma2.runStep.findMany({
2405
- where: {
2406
- threadId: threadId,
2407
- runId: runId,
2408
- type: "TOOL_CALLS",
2409
- status: "IN_PROGRESS"
2410
- }
2411
- })
2412
- ];
2413
- case 1:
2414
- runSteps = _state.sent();
2415
- _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
2416
- _state.label = 2;
2417
- case 2:
2418
- _state.trys.push([
2419
- 2,
2420
- 7,
2421
- 8,
2422
- 9
2423
- ]);
2424
- _loop = function() {
2425
- var runStep;
2426
- return _ts_generator(this, function(_state) {
2427
- switch(_state.label){
2428
- case 0:
2429
- runStep = _step.value;
2430
- return [
2431
- 4,
2432
- prisma2.runStep.update({
2433
- where: {
2434
- id: runStep.id
2435
- },
2436
- data: {
2437
- status: "COMPLETED",
2438
- completedAt: (0, import_dayjs10.default)().unix(),
2439
- stepDetails: {
2440
- type: "tool_calls",
2441
- tool_calls: runStep.stepDetails.tool_calls.map(function(toolCall) {
2442
- var toolOutput = tool_outputs.find(function(output) {
2443
- return output.tool_call_id === toolCall.id;
2444
- }) || tool_outputs[0];
2445
- if (!toolOutput) {
2446
- console.dir({
2447
- toolOutput: toolOutput,
2448
- runStep: runStep,
2449
- tool_outputs: tool_outputs,
2450
- runSteps: runSteps
2451
- }, {
2452
- depth: null
2453
- });
2454
- throw new Error("Tool output not found");
2455
- }
2456
- return {
2457
- id: toolCall.id,
2458
- type: toolCall.type,
2459
- function: _object_spread_props(_object_spread({}, toolCall.function), {
2460
- output: toolOutput.output
2461
- })
2462
- };
2463
- })
2464
- }
2465
- }
2466
- })
2467
- ];
2468
- case 1:
2469
- _state.sent();
2470
- return [
2471
- 2
2472
- ];
2473
- }
2474
- });
2475
- };
2476
- _iterator = runSteps[Symbol.iterator]();
2477
- _state.label = 3;
2478
- case 3:
2479
- if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
2480
- 3,
2481
- 6
2482
- ];
2483
- return [
2484
- 5,
2485
- _ts_values(_loop())
2486
- ];
2487
- case 4:
2488
- _state.sent();
2489
- _state.label = 5;
2490
- case 5:
2491
- _iteratorNormalCompletion = true;
2492
- return [
2493
- 3,
2494
- 3
2495
- ];
2496
- case 6:
2497
- return [
2498
- 3,
2499
- 9
2500
- ];
2501
- case 7:
2502
- err = _state.sent();
2503
- _didIteratorError = true;
2504
- _iteratorError = err;
2505
- return [
2506
- 3,
2507
- 9
2508
- ];
2509
- case 8:
2510
- try {
2511
- if (!_iteratorNormalCompletion && _iterator.return != null) {
2512
- _iterator.return();
2513
- }
2514
- } finally{
2515
- if (_didIteratorError) {
2516
- throw _iteratorError;
2517
- }
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"
2518
2960
  }
2519
- return [
2520
- 7
2521
- ];
2522
- case 9:
2523
- return [
2524
- 2,
2525
- prisma2.run.update({
2526
- where: {
2527
- id: runId
2528
- },
2529
- data: {
2530
- status: "QUEUED"
2531
- }
2532
- })
2533
- ];
2534
- }
2535
- });
2536
- });
2537
- return function(prisma2) {
2538
- return _ref.apply(this, arguments);
2539
- };
2540
- }())
2541
- ];
2542
- case 1:
2543
- run = _state.sent();
2544
- data = serializeRun({
2545
- run: run
2546
- });
2547
- return [
2548
- 4,
2549
- new Promise(function(resolve) {
2550
- return new ReadableStream({
2551
- start: function start(controller) {
2552
- 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;
2553
2976
  return _ts_generator(this, function(_state) {
2554
2977
  switch(_state.label){
2555
2978
  case 0:
2979
+ runStep = _step.value;
2556
2980
  return [
2557
2981
  4,
2558
- runAdapter({
2559
- run: data,
2560
- onEvent: onEvent({
2561
- controller: controller,
2562
- prisma: prisma
2563
- }),
2564
- // @ts-ignore-next-line
2565
- getMessages: getMessages({
2566
- prisma: prisma,
2567
- run: run
2568
- })
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
+ }
2569
3017
  })
2570
3018
  ];
2571
3019
  case 1:
2572
- _state.sent();
2573
- controller.close();
2574
- resolve(void 0);
3020
+ completedRunStep = _state.sent();
3021
+ onThreadRunStepCompleted({
3022
+ runStep: completedRunStep
3023
+ });
2575
3024
  return [
2576
3025
  2
2577
3026
  ];
2578
3027
  }
2579
3028
  });
2580
- })();
2581
- }
2582
- });
2583
- })
2584
- ];
2585
- case 2:
2586
- _state.sent();
2587
- return [
2588
- 2,
2589
- data
2590
- ];
2591
- }
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
+ ];
2592
3096
  });
2593
3097
  });
2594
- };
2595
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/submitToolOutputsStream.ts
2596
- var import_dayjs11 = __toESM(require("dayjs"), 1);
2597
- 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) {
2598
3104
  var prisma = param.prisma, runAdapter = param.runAdapter;
2599
3105
  return function() {
2600
- for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
2601
- args[_key] = arguments[_key];
2602
- }
2603
- return new ReadableStream({
2604
- start: function start(controller) {
2605
- return _async_to_generator(function() {
2606
- var _args, threadId, runId, body, tool_outputs, run;
2607
- return _ts_generator(this, function(_state) {
2608
- switch(_state.label){
2609
- case 0:
2610
- _args = _sliced_to_array(args, 3), threadId = _args[0], runId = _args[1], body = _args[2];
2611
- tool_outputs = body.tool_outputs;
2612
- return [
2613
- 4,
2614
- prisma.$transaction(function() {
2615
- var _ref = _async_to_generator(function(prisma2) {
2616
- 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() {
2617
3214
  return _ts_generator(this, function(_state) {
2618
3215
  switch(_state.label){
2619
3216
  case 0:
2620
3217
  return [
2621
3218
  4,
2622
- prisma2.runStep.findMany({
2623
- where: {
2624
- threadId: threadId,
2625
- runId: runId,
2626
- type: "TOOL_CALLS",
2627
- status: "IN_PROGRESS"
2628
- },
2629
- orderBy: {
2630
- createdAt: "asc"
2631
- }
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
+ })
2632
3235
  })
2633
3236
  ];
2634
3237
  case 1:
2635
- runSteps = _state.sent();
2636
- _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
2637
- _state.label = 2;
2638
- case 2:
2639
- _state.trys.push([
2640
- 2,
2641
- 7,
2642
- 8,
2643
- 9
2644
- ]);
2645
- _loop = function() {
2646
- var runStep, completedRunStep;
2647
- return _ts_generator(this, function(_state) {
2648
- switch(_state.label){
2649
- case 0:
2650
- runStep = _step.value;
2651
- return [
2652
- 4,
2653
- prisma2.runStep.update({
2654
- where: {
2655
- id: runStep.id
2656
- },
2657
- data: {
2658
- status: "COMPLETED",
2659
- completedAt: (0, import_dayjs11.default)().unix(),
2660
- stepDetails: {
2661
- type: "tool_calls",
2662
- tool_calls: runStep.stepDetails.tool_calls.map(function(toolCall) {
2663
- var toolOutput = tool_outputs.find(function(output) {
2664
- return output.tool_call_id === toolCall.id;
2665
- }) || tool_outputs[0];
2666
- if (!toolOutput) {
2667
- console.dir({
2668
- toolOutput: toolOutput,
2669
- runStep: runStep,
2670
- tool_outputs: tool_outputs,
2671
- runSteps: runSteps
2672
- }, {
2673
- depth: null
2674
- });
2675
- throw new Error("Tool output not found");
2676
- }
2677
- return {
2678
- id: toolCall.id,
2679
- type: toolCall.type,
2680
- function: _object_spread_props(_object_spread({}, toolCall.function), {
2681
- output: toolOutput.output
2682
- })
2683
- };
2684
- })
2685
- }
2686
- }
2687
- })
2688
- ];
2689
- case 1:
2690
- completedRunStep = _state.sent();
2691
- controller.enqueue({
2692
- event: "thread.run.step.completed",
2693
- data: serializeRunStep({
2694
- runStep: completedRunStep
2695
- })
2696
- });
2697
- return [
2698
- 2
2699
- ];
2700
- }
2701
- });
2702
- };
2703
- _iterator = runSteps[Symbol.iterator]();
2704
- _state.label = 3;
2705
- case 3:
2706
- if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
2707
- 3,
2708
- 6
2709
- ];
2710
- return [
2711
- 5,
2712
- _ts_values(_loop())
2713
- ];
2714
- case 4:
2715
3238
  _state.sent();
2716
- _state.label = 5;
2717
- case 5:
2718
- _iteratorNormalCompletion = true;
2719
- return [
2720
- 3,
2721
- 3
2722
- ];
2723
- case 6:
2724
- return [
2725
- 3,
2726
- 9
2727
- ];
2728
- case 7:
2729
- err = _state.sent();
2730
- _didIteratorError = true;
2731
- _iteratorError = err;
2732
- return [
2733
- 3,
2734
- 9
2735
- ];
2736
- case 8:
2737
- try {
2738
- if (!_iteratorNormalCompletion && _iterator.return != null) {
2739
- _iterator.return();
2740
- }
2741
- } finally{
2742
- if (_didIteratorError) {
2743
- throw _iteratorError;
2744
- }
2745
- }
3239
+ controller.close();
3240
+ resolve(void 0);
2746
3241
  return [
2747
- 7
2748
- ];
2749
- case 9:
2750
- return [
2751
- 2,
2752
- prisma2.run.update({
2753
- where: {
2754
- id: runId
2755
- },
2756
- data: {
2757
- status: "QUEUED"
2758
- }
2759
- })
3242
+ 2
2760
3243
  ];
2761
3244
  }
2762
3245
  });
2763
- });
2764
- return function(prisma2) {
2765
- return _ref.apply(this, arguments);
2766
- };
2767
- }())
2768
- ];
2769
- case 1:
2770
- run = _state.sent();
2771
- return [
2772
- 4,
2773
- runAdapter({
2774
- run: serializeRun({
2775
- run: run
2776
- }),
2777
- onEvent: onEvent({
2778
- controller: controller,
2779
- prisma: prisma
2780
- }),
2781
- // @ts-ignore-next-line
2782
- getMessages: getMessages({
2783
- prisma: prisma,
2784
- run: run
2785
- })
2786
- })
2787
- ];
2788
- case 2:
2789
- _state.sent();
2790
- console.log("Stream ended inside cloud storage");
2791
- controller.close();
2792
- return [
2793
- 2
2794
- ];
2795
- }
2796
- });
2797
- })();
2798
- }
2799
- });
2800
- };
2801
- };
2802
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/steps/list.ts
2803
- var import_radash11 = require("radash");
2804
- var list3 = function(param) {
2805
- var prisma = param.prisma;
2806
- return /*#__PURE__*/ _async_to_generator(function() {
2807
- var _len, args, _key, _this, threadId, runId, _args_, _ref, // @ts-ignore-next-line
2808
- limit, // @ts-ignore-next-line
2809
- order, // @ts-ignore-next-line
2810
- after, runSteps, _id;
2811
- var _arguments = arguments;
2812
- return _ts_generator(this, function(_state) {
2813
- switch(_state.label){
2814
- case 0:
2815
- for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
2816
- args[_key] = _arguments[_key];
2817
- }
2818
- threadId = args[0];
2819
- runId = args[1];
2820
- _ref = (0, import_radash11.assign)({
2821
- // @ts-ignore-next-line
2822
- limit: 20,
2823
- order: "desc",
2824
- after: null
2825
- }, (_args_ = args[2]) !== null && _args_ !== void 0 ? _args_ : {}), limit = _ref.limit, order = _ref.order, after = _ref.after;
2826
- return [
2827
- 4,
2828
- prisma.runStep.findMany(_object_spread({
2829
- where: {
2830
- threadId: threadId,
2831
- runId: runId
2832
- },
2833
- take: limit,
2834
- orderBy: {
2835
- createdAt: order
2836
- }
2837
- }, after ? {
2838
- skip: 1,
2839
- cursor: {
2840
- id: after
2841
- }
2842
- } : {}))
2843
- ];
2844
- case 1:
2845
- runSteps = _state.sent();
2846
- return [
2847
- 2,
2848
- {
2849
- data: runSteps.map(function(runStep) {
2850
- return serializeRunStep({
2851
- runStep: runStep
3246
+ })();
3247
+ }
2852
3248
  });
2853
- }),
2854
- hasNextPage: function() {
2855
- return runSteps.length === limit;
2856
- },
2857
- body: {
2858
- last_id: (_id = (_this = (0, import_radash11.last)(runSteps)) === null || _this === void 0 ? void 0 : _this.id) !== null && _id !== void 0 ? _id : null
2859
- }
2860
- }
2861
- ];
2862
- }
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
+ });
2863
3268
  });
2864
- });
2865
- };
2866
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/steps/index.ts
2867
- var steps = function(param) {
2868
- var prisma = param.prisma;
2869
- return {
2870
- list: list3({
2871
- prisma: prisma
2872
- })
2873
- };
2874
- };
2875
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/index.ts
2876
- var runs = function(param) {
2877
- var prisma = param.prisma, runAdapter = param.runAdapter;
2878
- return {
2879
- list: list2({
2880
- prisma: prisma
2881
- }),
2882
- create: create3({
2883
- prisma: prisma
2884
- }),
2885
- createAndStream: createAndStream({
2886
- prisma: prisma,
2887
- runAdapter: runAdapter
2888
- }),
2889
- submitToolOutputs: submitToolOutputs({
2890
- prisma: prisma,
2891
- runAdapter: runAdapter
2892
- }),
2893
- submitToolOutputsStream: submitToolOutputsStream({
2894
- prisma: prisma,
2895
- runAdapter: runAdapter
2896
- }),
2897
- steps: steps({
2898
- prisma: prisma
2899
- })
2900
- };
2901
- };
2902
- // src/adapters/storage/prismaStorageAdapter/beta/threads/index.ts
2903
- var threads = function(param) {
2904
- var prisma = param.prisma, runAdapter = param.runAdapter;
2905
- return {
2906
- create: create({
2907
- prisma: prisma
2908
- }),
2909
- messages: messages3({
2910
- prisma: prisma
2911
- }),
2912
- runs: runs({
2913
- prisma: prisma,
2914
- runAdapter: runAdapter
2915
- })
2916
- };
3269
+ return function(urlString, options) {
3270
+ return _ref.apply(this, arguments);
3271
+ };
3272
+ }();
2917
3273
  };
2918
- // src/adapters/storage/prismaStorageAdapter/beta/index.ts
2919
- var beta = function(param) {
3274
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/submitToolOutputs/index.ts
3275
+ var submitToolOutputs = function(param) {
2920
3276
  var prisma = param.prisma, runAdapter = param.runAdapter;
2921
3277
  return {
2922
- threads: threads({
3278
+ post: post6({
2923
3279
  prisma: prisma,
3280
+ // @ts-ignore-next-line
2924
3281
  runAdapter: runAdapter
2925
3282
  })
2926
3283
  };
@@ -2931,7 +3288,24 @@ var prismaStorageAdapter = function(param) {
2931
3288
  return function(param) {
2932
3289
  var runAdapter = param.runAdapter;
2933
3290
  return {
2934
- 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({
2935
3309
  prisma: prisma,
2936
3310
  runAdapter: runAdapter
2937
3311
  })
@@ -2943,7 +3317,9 @@ var prismaStorageAdapter = function(param) {
2943
3317
  anthropicClientAdapter: anthropicClientAdapter,
2944
3318
  anthropicRunAdapter: anthropicRunAdapter,
2945
3319
  completionsRunAdapter: completionsRunAdapter,
3320
+ groqClientAdapter: groqClientAdapter,
2946
3321
  mistralClientAdapter: mistralClientAdapter,
3322
+ openaiClientAdapter: openaiClientAdapter,
2947
3323
  perplexityClientAdapter: perplexityClientAdapter,
2948
3324
  prismaStorageAdapter: prismaStorageAdapter,
2949
3325
  supercompat: supercompat