supercompat 1.5.1 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -168,9 +168,6 @@ function _object_spread_props(target, source) {
168
168
  function _sliced_to_array(arr, i) {
169
169
  return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
170
170
  }
171
- function _to_array(arr) {
172
- return _array_with_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_rest();
173
- }
174
171
  function _to_consumable_array(arr) {
175
172
  return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
176
173
  }
@@ -291,9 +288,10 @@ function _ts_values(o) {
291
288
  };
292
289
  throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
293
290
  }
294
- var _mistral, _mistral1;
291
+ import OpenAI from "openai";
292
+ // src/supercompatFetch/requestHandlers.ts
295
293
  import { assign, partob } from "radash";
296
- var supercompat = function(param) {
294
+ var requestHandlers = function(param) {
297
295
  var client = param.client, storage = param.storage, runAdapter = param.runAdapter;
298
296
  return assign(client, storage({
299
297
  runAdapter: partob(runAdapter, {
@@ -301,338 +299,179 @@ var supercompat = function(param) {
301
299
  })
302
300
  }));
303
301
  };
304
- // src/adapters/client/mistralClientAdapter/index.ts
305
- var mistralClientAdapter = function(param) {
306
- var mistral = param.mistral;
307
- return {
308
- chat: {
309
- completions: {
310
- // @ts-ignore-next-line
311
- create: function() {
312
- for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
313
- args[_key] = arguments[_key];
314
- }
315
- return(// @ts-ignore-next-line
316
- args[0].stream ? (_mistral = mistral).chatStream.apply(_mistral, _to_consumable_array(args)) : (_mistral1 = mistral).chat.apply(_mistral1, _to_consumable_array(args)));
317
- }
318
- }
302
+ // src/supercompatFetch/findRequestHandler.ts
303
+ var findRequestHandler = function(param) {
304
+ var url = param.url, requestHandlers2 = param.requestHandlers;
305
+ var pathname = new URL(url).pathname;
306
+ for(var key in requestHandlers2){
307
+ var regex = new RegExp(key);
308
+ if (regex.test(pathname)) {
309
+ return requestHandlers2[key];
319
310
  }
320
- };
311
+ }
321
312
  };
322
- // src/adapters/client/perplexityClientAdapter/index.ts
323
- var agentSideRoles = [
324
- "assistant",
325
- "system"
326
- ];
327
- var perplexityClientAdapter = function(param) {
328
- var perplexity = param.perplexity;
329
- return {
330
- chat: {
331
- completions: {
332
- create: function() {
333
- for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
334
- args[_key] = arguments[_key];
335
- }
336
- var _perplexity_chat_completions;
337
- var _args = _to_array(args), firstArg = _args[0], restArgs = _args.slice(1);
338
- var messages4 = [];
339
- firstArg.messages.forEach(function(message, index) {
340
- messages4.push(message);
341
- var nextMessage = firstArg.messages[index + 1];
342
- if (!nextMessage) return;
343
- if (message.role === "user" && nextMessage.role === "user") {
344
- messages4.push({
345
- role: "assistant",
346
- content: ""
347
- });
348
- } else if (agentSideRoles.includes(message.role) && agentSideRoles.includes(nextMessage.role)) {
349
- messages4.push({
350
- role: "user",
351
- content: ""
352
- });
353
- }
354
- });
355
- return (_perplexity_chat_completions = perplexity.chat.completions).create.apply(_perplexity_chat_completions, [
356
- _object_spread_props(_object_spread({}, firstArg), {
357
- messages: messages4
358
- })
359
- ].concat(_to_consumable_array(restArgs)));
360
- }
361
- }
313
+ // src/supercompatFetch/index.ts
314
+ var supercompatFetch = function(param) {
315
+ var client = param.client, storage = param.storage, runAdapter = param.runAdapter;
316
+ var requestHandlers2 = requestHandlers({
317
+ client: client,
318
+ storage: storage,
319
+ runAdapter: runAdapter
320
+ });
321
+ return function() {
322
+ for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
323
+ args[_key] = arguments[_key];
362
324
  }
363
- };
364
- };
365
- // src/adapters/client/anthropicClientAdapter/index.ts
366
- var anthropicClientAdapter = function(param) {
367
- var anthropic = param.anthropic;
368
- return {
369
- chat: {
370
- completions: {
371
- create: function() {
372
- for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
373
- args[_key] = arguments[_key];
374
- }
375
- var _args = _to_array(args), firstArg = _args[0], secondArg = _args[1], restArgs = _args.slice(2);
376
- var messages4 = firstArg.messages;
377
- console.dir({
378
- messages: messages4
379
- }, {
380
- depth: null
381
- });
382
- if (firstArg.messages[0].role != "user") {
383
- messages4.unshift({
384
- role: "user",
385
- content: "-"
386
- });
387
- }
388
- var resultFirstArg = _object_spread_props(_object_spread({}, firstArg), {
389
- messages: messages4
390
- });
391
- var _secondArg_headers;
392
- var resultSecondArg = _object_spread_props(_object_spread({}, secondArg), {
393
- headers: _object_spread_props(_object_spread({}, (_secondArg_headers = secondArg === null || secondArg === void 0 ? void 0 : secondArg.headers) !== null && _secondArg_headers !== void 0 ? _secondArg_headers : {}), {
394
- "anthropic-beta": "tools-2024-04-04"
395
- })
396
- });
397
- if (args[0].stream) {
398
- var _anthropic_messages;
399
- return (_anthropic_messages = anthropic.messages).stream.apply(_anthropic_messages, [
400
- resultFirstArg,
401
- resultSecondArg
402
- ].concat(_to_consumable_array(restArgs)));
403
- } else {
404
- var _anthropic_messages1;
405
- return (_anthropic_messages1 = anthropic.messages).create.apply(_anthropic_messages1, [
406
- resultFirstArg,
407
- resultSecondArg
408
- ].concat(_to_consumable_array(restArgs)));
409
- }
410
- }
411
- }
325
+ var _args = _sliced_to_array(args, 2), url = _args[0], options = _args[1];
326
+ var pathHandler = findRequestHandler({
327
+ url: url,
328
+ requestHandlers: requestHandlers2
329
+ });
330
+ if (!pathHandler) {
331
+ return fetch.apply(void 0, _to_consumable_array(args));
412
332
  }
333
+ var requestHandler = pathHandler[options === null || options === void 0 ? void 0 : options.method];
334
+ if (!requestHandler) {
335
+ return fetch.apply(void 0, _to_consumable_array(args));
336
+ }
337
+ return requestHandler.apply(void 0, _to_consumable_array(args));
413
338
  };
414
339
  };
415
- // src/adapters/run/completionsRunAdapter/index.ts
416
- import _ from "lodash";
417
- import { uid, omit, isEmpty } from "radash";
418
- import dayjs from "dayjs";
419
- // src/adapters/run/completionsRunAdapter/messages/index.ts
420
- import { flat } from "radash";
421
- // src/adapters/run/completionsRunAdapter/messages/serializeMessage.ts
422
- var serializeToolCall = function(param) {
423
- var toolCall = param.toolCall;
424
- var _toolCall_function_output;
425
- return {
426
- tool_call_id: toolCall.id,
427
- role: "tool",
428
- name: toolCall.function.name,
429
- content: (_toolCall_function_output = toolCall.function.output) !== null && _toolCall_function_output !== void 0 ? _toolCall_function_output : ""
430
- };
431
- };
432
- var serializeMessageWithContent = function(param) {
433
- var message = param.message;
434
- var _message_metadata;
435
- return _object_spread({
436
- role: message.role,
437
- content: serializeContent({
438
- content: message.content
439
- })
440
- }, (message === null || message === void 0 ? void 0 : (_message_metadata = message.metadata) === null || _message_metadata === void 0 ? void 0 : _message_metadata.toolCalls) ? {
441
- tool_calls: message.metadata.toolCalls
442
- } : {});
443
- };
444
- var serializeContent = function(param) {
445
- var content = param.content;
446
- return content.map(function(content2) {
447
- return content2.text.value;
448
- }).join("\n");
449
- };
450
- var serializeMessage = function(param) {
451
- var message = param.message;
452
- var _message_metadata;
453
- var result = [
454
- serializeMessageWithContent({
455
- message: message
340
+ // src/supercompat.ts
341
+ var supercompat = function(param) {
342
+ var client = param.client, storage = param.storage, runAdapter = param.runAdapter;
343
+ return new OpenAI({
344
+ apiKey: "SUPERCOMPAT_PLACEHOLDER_OPENAI_KEY",
345
+ fetch: supercompatFetch({
346
+ client: client,
347
+ storage: storage,
348
+ runAdapter: runAdapter
456
349
  })
457
- ];
458
- var run = message.run;
459
- if (!run) return result;
460
- var messageToolCalls = ((_message_metadata = message.metadata) === null || _message_metadata === void 0 ? void 0 : _message_metadata.toolCalls) || [];
461
- messageToolCalls.forEach(function(tc) {
462
- var runStep = run.runSteps.find(function(rs) {
463
- if (rs.type !== "tool_calls") return false;
464
- return rs.step_details.tool_calls.some(function(rsTc) {
465
- if (rsTc.type !== "function") return false;
466
- return rsTc.id === tc.id;
467
- });
468
- });
469
- if (!runStep) return;
470
- var toolCall = runStep.step_details.tool_calls.find(function(rsTc) {
471
- if (rsTc.type !== "function") return false;
472
- return rsTc.id === tc.id;
473
- });
474
- result.push(serializeToolCall({
475
- toolCall: toolCall
476
- }));
477
- });
478
- return result;
479
- };
480
- // src/adapters/run/completionsRunAdapter/messages/index.ts
481
- var messages = function() {
482
- var _ref = _async_to_generator(function(param) {
483
- var run, getMessages2, messagesHistoryLength, _, _1;
484
- return _ts_generator(this, function(_state) {
485
- switch(_state.label){
486
- case 0:
487
- run = param.run, getMessages2 = param.getMessages, messagesHistoryLength = param.messagesHistoryLength;
488
- _1 = (_ = _to_consumable_array(run.instructions ? [
489
- {
490
- role: "system",
491
- content: run.instructions
492
- }
493
- ] : [])).concat;
494
- return [
495
- 4,
496
- getMessages2({
497
- messagesHistoryLength: messagesHistoryLength
498
- })
499
- ];
500
- case 1:
501
- return [
502
- 2,
503
- _1.apply(_, [
504
- _to_consumable_array.apply(void 0, [
505
- flat.apply(void 0, [
506
- _state.sent().map(function(message) {
507
- return serializeMessage({
508
- message: message
509
- });
510
- })
511
- ])
512
- ])
513
- ])
514
- ];
515
- }
516
- });
517
350
  });
518
- return function messages(_) {
519
- return _ref.apply(this, arguments);
520
- };
521
- }();
522
- // src/adapters/run/completionsRunAdapter/index.ts
523
- var updatedToolCall = function(param) {
524
- var toolCall = param.toolCall, delta = param.delta;
525
- if (!toolCall) return omit(delta, [
526
- "index"
527
- ]);
528
- var result = _.cloneDeep(toolCall);
529
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
530
- try {
531
- for(var _iterator = Object.entries(delta.function)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
532
- var _step_value = _sliced_to_array(_step.value, 2), key = _step_value[0], value = _step_value[1];
533
- var _result_function_key;
534
- result.function[key] = "".concat((_result_function_key = result.function[key]) !== null && _result_function_key !== void 0 ? _result_function_key : "").concat(value);
535
- }
536
- } catch (err) {
537
- _didIteratorError = true;
538
- _iteratorError = err;
539
- } finally{
540
- try {
541
- if (!_iteratorNormalCompletion && _iterator.return != null) {
542
- _iterator.return();
543
- }
544
- } finally{
545
- if (_didIteratorError) {
546
- throw _iteratorError;
547
- }
548
- }
549
- }
550
- return result;
551
- };
552
- var toolCallsData = function(param) {
553
- var prevToolCalls = param.prevToolCalls, delta = param.delta;
554
- if (!prevToolCalls) {
555
- return delta.tool_calls.map(function(tc) {
556
- return _object_spread({
557
- id: uid(24),
558
- type: "function"
559
- }, omit(tc, [
560
- "index"
561
- ]));
562
- });
563
- }
564
- var newToolCalls = _.cloneDeep(prevToolCalls);
565
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
566
- try {
567
- for(var _iterator = delta.tool_calls[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
568
- var runStepDelta = _step.value;
569
- newToolCalls[runStepDelta.index] = updatedToolCall({
570
- toolCall: newToolCalls[runStepDelta.index],
571
- delta: runStepDelta
572
- });
573
- }
574
- } catch (err) {
575
- _didIteratorError = true;
576
- _iteratorError = err;
577
- } finally{
578
- try {
579
- if (!_iteratorNormalCompletion && _iterator.return != null) {
580
- _iterator.return();
581
- }
582
- } finally{
583
- if (_didIteratorError) {
584
- throw _iteratorError;
585
- }
586
- }
587
- }
588
- return newToolCalls;
589
351
  };
590
- var completionsRunAdapter = function(param) {
591
- 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;
352
+ // src/adapters/client/groqClientAdapter/completions/post.ts
353
+ var post = function(param) {
354
+ var groq = param.groq;
592
355
  return function() {
593
- var _ref = _async_to_generator(function(param) {
594
- 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;
356
+ var _ref = _async_to_generator(function(_url, options) {
357
+ var body, response, stream, data, error;
595
358
  return _ts_generator(this, function(_state) {
596
359
  switch(_state.label){
597
360
  case 0:
598
- client = param.client, run = param.run, onEvent2 = param.onEvent, getMessages2 = param.getMessages, responseFormat = param.responseFormat;
599
- if (run.status !== "queued") return [
361
+ body = JSON.parse(options.body);
362
+ if (!body.stream) return [
363
+ 3,
600
364
  2
601
365
  ];
602
- onEvent2({
603
- event: "thread.run.in_progress",
604
- data: _object_spread_props(_object_spread({}, run), {
605
- status: "in_progress"
606
- })
607
- });
608
- _tmp = {};
609
366
  return [
610
367
  4,
611
- messages({
612
- run: run,
613
- getMessages: getMessages2,
614
- messagesHistoryLength: messagesHistoryLength
615
- })
368
+ groq.chat.completions.create(body)
616
369
  ];
617
370
  case 1:
618
- opts = _object_spread.apply(void 0, [
619
- (_tmp.messages = _state.sent(), _tmp.model = run.model, _tmp.stream = true, _tmp),
620
- responseFormat ? {
621
- response_format: responseFormat
622
- } : {},
623
- maxTokens ? {
624
- max_tokens: maxTokens
625
- } : {},
626
- isEmpty(run.tools) ? {} : {
627
- tools: run.tools
371
+ response = _state.sent();
372
+ stream = new ReadableStream({
373
+ start: function start(controller) {
374
+ return _async_to_generator(function() {
375
+ var _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, chunk, err;
376
+ return _ts_generator(this, function(_state) {
377
+ switch(_state.label){
378
+ case 0:
379
+ _iteratorAbruptCompletion = false, _didIteratorError = false;
380
+ _state.label = 1;
381
+ case 1:
382
+ _state.trys.push([
383
+ 1,
384
+ 6,
385
+ 7,
386
+ 12
387
+ ]);
388
+ _iterator = _async_iterator(response);
389
+ _state.label = 2;
390
+ case 2:
391
+ return [
392
+ 4,
393
+ _iterator.next()
394
+ ];
395
+ case 3:
396
+ if (!(_iteratorAbruptCompletion = !(_step = _state.sent()).done)) return [
397
+ 3,
398
+ 5
399
+ ];
400
+ _value = _step.value;
401
+ chunk = _value;
402
+ controller.enqueue("data: ".concat(JSON.stringify(chunk), "\n\n"));
403
+ _state.label = 4;
404
+ case 4:
405
+ _iteratorAbruptCompletion = false;
406
+ return [
407
+ 3,
408
+ 2
409
+ ];
410
+ case 5:
411
+ return [
412
+ 3,
413
+ 12
414
+ ];
415
+ case 6:
416
+ err = _state.sent();
417
+ _didIteratorError = true;
418
+ _iteratorError = err;
419
+ return [
420
+ 3,
421
+ 12
422
+ ];
423
+ case 7:
424
+ _state.trys.push([
425
+ 7,
426
+ ,
427
+ 10,
428
+ 11
429
+ ]);
430
+ if (!(_iteratorAbruptCompletion && _iterator.return != null)) return [
431
+ 3,
432
+ 9
433
+ ];
434
+ return [
435
+ 4,
436
+ _iterator.return()
437
+ ];
438
+ case 8:
439
+ _state.sent();
440
+ _state.label = 9;
441
+ case 9:
442
+ return [
443
+ 3,
444
+ 11
445
+ ];
446
+ case 10:
447
+ if (_didIteratorError) {
448
+ throw _iteratorError;
449
+ }
450
+ return [
451
+ 7
452
+ ];
453
+ case 11:
454
+ return [
455
+ 7
456
+ ];
457
+ case 12:
458
+ controller.close();
459
+ return [
460
+ 2
461
+ ];
462
+ }
463
+ });
464
+ })();
628
465
  }
629
- ]);
630
- console.dir({
631
- opts: opts
632
- }, {
633
- depth: null
634
466
  });
635
- _state.label = 2;
467
+ return [
468
+ 2,
469
+ new Response(stream, {
470
+ headers: {
471
+ "Content-Type": "text/event-stream"
472
+ }
473
+ })
474
+ ];
636
475
  case 2:
637
476
  _state.trys.push([
638
477
  2,
@@ -642,367 +481,1031 @@ var completionsRunAdapter = function(param) {
642
481
  ]);
643
482
  return [
644
483
  4,
645
- client.chat.completions.create(opts)
484
+ groq.chat.completions.create(body)
646
485
  ];
647
486
  case 3:
648
- providerResponse = _state.sent();
487
+ data = _state.sent();
649
488
  return [
650
- 3,
651
- 5
489
+ 2,
490
+ new Response(JSON.stringify({
491
+ data: data
492
+ }), {
493
+ status: 200,
494
+ headers: {
495
+ "Content-Type": "application/json"
496
+ }
497
+ })
652
498
  ];
653
499
  case 4:
654
- e = _state.sent();
655
- console.error(e);
500
+ error = _state.sent();
656
501
  return [
657
502
  2,
658
- onEvent2({
659
- event: "thread.run.failed",
660
- data: _object_spread_props(_object_spread({}, run), {
661
- failed_at: dayjs().unix(),
662
- status: "in_progress",
663
- last_error: e.message
664
- })
503
+ new Response(JSON.stringify({
504
+ error: error
505
+ }), {
506
+ status: 500,
507
+ headers: {
508
+ "Content-Type": "application/json"
509
+ }
665
510
  })
666
511
  ];
667
512
  case 5:
668
513
  return [
669
- 4,
670
- onEvent2({
671
- event: "thread.message.created",
672
- data: {
673
- id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
674
- object: "thread.message",
675
- completed_at: null,
676
- run_id: run.id,
677
- created_at: dayjs().unix(),
678
- assistant_id: run.assistant_id,
679
- incomplete_at: null,
680
- incomplete_details: null,
681
- metadata: {},
682
- attachments: [],
683
- thread_id: run.thread_id,
684
- content: [
685
- {
686
- text: {
687
- value: "",
688
- annotations: []
689
- },
690
- type: "text"
514
+ 2
515
+ ];
516
+ }
517
+ });
518
+ });
519
+ return function(_url, options) {
520
+ return _ref.apply(this, arguments);
521
+ };
522
+ }();
523
+ };
524
+ // src/adapters/client/groqClientAdapter/completions/index.ts
525
+ var completions = function(param) {
526
+ var groq = param.groq;
527
+ return {
528
+ post: post({
529
+ groq: groq
530
+ })
531
+ };
532
+ };
533
+ // src/adapters/client/groqClientAdapter/index.ts
534
+ var groqClientAdapter = function(param) {
535
+ var groq = param.groq;
536
+ return {
537
+ "^/v1/chat/completions$": completions({
538
+ groq: groq
539
+ })
540
+ };
541
+ };
542
+ // src/adapters/client/openaiClientAdapter/completions/post.ts
543
+ var post2 = function(param) {
544
+ var openai = param.openai;
545
+ return function() {
546
+ var _ref = _async_to_generator(function(_url, options) {
547
+ var body, response, stream, data, error;
548
+ return _ts_generator(this, function(_state) {
549
+ switch(_state.label){
550
+ case 0:
551
+ body = JSON.parse(options.body);
552
+ if (!body.stream) return [
553
+ 3,
554
+ 2
555
+ ];
556
+ return [
557
+ 4,
558
+ openai.chat.completions.create(body)
559
+ ];
560
+ case 1:
561
+ response = _state.sent();
562
+ stream = new ReadableStream({
563
+ start: function start(controller) {
564
+ return _async_to_generator(function() {
565
+ var _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, chunk, err;
566
+ return _ts_generator(this, function(_state) {
567
+ switch(_state.label){
568
+ case 0:
569
+ _iteratorAbruptCompletion = false, _didIteratorError = false;
570
+ _state.label = 1;
571
+ case 1:
572
+ _state.trys.push([
573
+ 1,
574
+ 6,
575
+ 7,
576
+ 12
577
+ ]);
578
+ _iterator = _async_iterator(response);
579
+ _state.label = 2;
580
+ case 2:
581
+ return [
582
+ 4,
583
+ _iterator.next()
584
+ ];
585
+ case 3:
586
+ if (!(_iteratorAbruptCompletion = !(_step = _state.sent()).done)) return [
587
+ 3,
588
+ 5
589
+ ];
590
+ _value = _step.value;
591
+ chunk = _value;
592
+ controller.enqueue("data: ".concat(JSON.stringify(chunk), "\n\n"));
593
+ _state.label = 4;
594
+ case 4:
595
+ _iteratorAbruptCompletion = false;
596
+ return [
597
+ 3,
598
+ 2
599
+ ];
600
+ case 5:
601
+ return [
602
+ 3,
603
+ 12
604
+ ];
605
+ case 6:
606
+ err = _state.sent();
607
+ _didIteratorError = true;
608
+ _iteratorError = err;
609
+ return [
610
+ 3,
611
+ 12
612
+ ];
613
+ case 7:
614
+ _state.trys.push([
615
+ 7,
616
+ ,
617
+ 10,
618
+ 11
619
+ ]);
620
+ if (!(_iteratorAbruptCompletion && _iterator.return != null)) return [
621
+ 3,
622
+ 9
623
+ ];
624
+ return [
625
+ 4,
626
+ _iterator.return()
627
+ ];
628
+ case 8:
629
+ _state.sent();
630
+ _state.label = 9;
631
+ case 9:
632
+ return [
633
+ 3,
634
+ 11
635
+ ];
636
+ case 10:
637
+ if (_didIteratorError) {
638
+ throw _iteratorError;
639
+ }
640
+ return [
641
+ 7
642
+ ];
643
+ case 11:
644
+ return [
645
+ 7
646
+ ];
647
+ case 12:
648
+ controller.close();
649
+ return [
650
+ 2
651
+ ];
691
652
  }
692
- ],
693
- role: "assistant",
694
- status: "in_progress"
653
+ });
654
+ })();
655
+ }
656
+ });
657
+ return [
658
+ 2,
659
+ new Response(stream, {
660
+ headers: {
661
+ "Content-Type": "text/event-stream"
695
662
  }
696
663
  })
697
664
  ];
698
- case 6:
699
- message = _state.sent();
700
- onEvent2({
701
- event: "thread.run.step.created",
702
- data: {
703
- id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
704
- object: "thread.run.step",
705
- run_id: run.id,
706
- assistant_id: run.assistant_id,
707
- thread_id: run.thread_id,
708
- type: "message_creation",
709
- status: "completed",
710
- completed_at: dayjs().unix(),
711
- created_at: dayjs().unix(),
712
- expired_at: null,
713
- last_error: null,
714
- metadata: {},
715
- failed_at: null,
716
- cancelled_at: null,
717
- usage: null,
718
- step_details: {
719
- type: "message_creation",
720
- message_creation: {
721
- message_id: message.id
722
- }
723
- }
724
- }
725
- });
726
- currentContent = "";
727
- console.dir({
728
- providerResponse: providerResponse
729
- }, {
730
- depth: null
731
- });
732
- _iteratorAbruptCompletion = false, _didIteratorError = false;
733
- _state.label = 7;
734
- case 7:
665
+ case 2:
735
666
  _state.trys.push([
736
- 7,
737
- 15,
738
- 16,
739
- 21
667
+ 2,
668
+ 4,
669
+ ,
670
+ 5
740
671
  ]);
741
- _iterator = _async_iterator(providerResponse);
742
- _state.label = 8;
743
- case 8:
744
672
  return [
745
673
  4,
746
- _iterator.next()
674
+ openai.chat.completions.create(body)
747
675
  ];
748
- case 9:
749
- if (!(_iteratorAbruptCompletion = !(_step = _state.sent()).done)) return [
750
- 3,
751
- 14
676
+ case 3:
677
+ data = _state.sent();
678
+ return [
679
+ 2,
680
+ new Response(JSON.stringify({
681
+ data: data
682
+ }), {
683
+ status: 200,
684
+ headers: {
685
+ "Content-Type": "application/json"
686
+ }
687
+ })
752
688
  ];
753
- _value = _step.value;
754
- chunk = _value;
755
- delta = chunk.choices[0].delta;
756
- if (delta.content) {
757
- ;
758
- currentContent = "".concat(currentContent).concat((_delta_content = delta.content) !== null && _delta_content !== void 0 ? _delta_content : "");
759
- }
760
- if (!delta.tool_calls) return [
761
- 3,
762
- 12
689
+ case 4:
690
+ error = _state.sent();
691
+ return [
692
+ 2,
693
+ new Response(JSON.stringify({
694
+ error: error
695
+ }), {
696
+ status: 500,
697
+ headers: {
698
+ "Content-Type": "application/json"
699
+ }
700
+ })
763
701
  ];
764
- if (!!toolCallsRunStep) return [
702
+ case 5:
703
+ return [
704
+ 2
705
+ ];
706
+ }
707
+ });
708
+ });
709
+ return function(_url, options) {
710
+ return _ref.apply(this, arguments);
711
+ };
712
+ }();
713
+ };
714
+ // src/adapters/client/openaiClientAdapter/completions/index.ts
715
+ var completions2 = function(param) {
716
+ var openai = param.openai;
717
+ return {
718
+ post: post2({
719
+ openai: openai
720
+ })
721
+ };
722
+ };
723
+ // src/adapters/client/openaiClientAdapter/index.ts
724
+ var openaiClientAdapter = function(param) {
725
+ var openai = param.openai;
726
+ return {
727
+ "^/v1/chat/completions$": completions2({
728
+ openai: openai
729
+ })
730
+ };
731
+ };
732
+ // src/adapters/client/mistralClientAdapter/completions/post.ts
733
+ var post3 = function(param) {
734
+ var mistral = param.mistral;
735
+ return function() {
736
+ var _ref = _async_to_generator(function(_url, options) {
737
+ var body, response, stream, data, error;
738
+ return _ts_generator(this, function(_state) {
739
+ switch(_state.label){
740
+ case 0:
741
+ body = JSON.parse(options.body);
742
+ if (!body.stream) return [
765
743
  3,
766
- 11
744
+ 2
767
745
  ];
768
746
  return [
769
747
  4,
770
- onEvent2({
771
- event: "thread.run.step.created",
772
- data: {
773
- id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
774
- object: "thread.run.step",
775
- run_id: run.id,
776
- assistant_id: run.assistant_id,
777
- thread_id: run.thread_id,
778
- type: "tool_calls",
779
- status: "in_progress",
780
- completed_at: null,
781
- created_at: dayjs().unix(),
782
- expired_at: null,
783
- last_error: null,
784
- metadata: {},
785
- failed_at: null,
786
- cancelled_at: null,
787
- usage: null,
788
- step_details: {
789
- type: "tool_calls",
790
- tool_calls: []
791
- }
748
+ mistral.chatStream(body)
749
+ ];
750
+ case 1:
751
+ response = _state.sent();
752
+ stream = new ReadableStream({
753
+ start: function start(controller) {
754
+ return _async_to_generator(function() {
755
+ var _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, chunk, err;
756
+ return _ts_generator(this, function(_state) {
757
+ switch(_state.label){
758
+ case 0:
759
+ _iteratorAbruptCompletion = false, _didIteratorError = false;
760
+ _state.label = 1;
761
+ case 1:
762
+ _state.trys.push([
763
+ 1,
764
+ 6,
765
+ 7,
766
+ 12
767
+ ]);
768
+ _iterator = _async_iterator(response);
769
+ _state.label = 2;
770
+ case 2:
771
+ return [
772
+ 4,
773
+ _iterator.next()
774
+ ];
775
+ case 3:
776
+ if (!(_iteratorAbruptCompletion = !(_step = _state.sent()).done)) return [
777
+ 3,
778
+ 5
779
+ ];
780
+ _value = _step.value;
781
+ chunk = _value;
782
+ controller.enqueue("data: ".concat(JSON.stringify(chunk), "\n\n"));
783
+ _state.label = 4;
784
+ case 4:
785
+ _iteratorAbruptCompletion = false;
786
+ return [
787
+ 3,
788
+ 2
789
+ ];
790
+ case 5:
791
+ return [
792
+ 3,
793
+ 12
794
+ ];
795
+ case 6:
796
+ err = _state.sent();
797
+ _didIteratorError = true;
798
+ _iteratorError = err;
799
+ return [
800
+ 3,
801
+ 12
802
+ ];
803
+ case 7:
804
+ _state.trys.push([
805
+ 7,
806
+ ,
807
+ 10,
808
+ 11
809
+ ]);
810
+ if (!(_iteratorAbruptCompletion && _iterator.return != null)) return [
811
+ 3,
812
+ 9
813
+ ];
814
+ return [
815
+ 4,
816
+ _iterator.return()
817
+ ];
818
+ case 8:
819
+ _state.sent();
820
+ _state.label = 9;
821
+ case 9:
822
+ return [
823
+ 3,
824
+ 11
825
+ ];
826
+ case 10:
827
+ if (_didIteratorError) {
828
+ throw _iteratorError;
829
+ }
830
+ return [
831
+ 7
832
+ ];
833
+ case 11:
834
+ return [
835
+ 7
836
+ ];
837
+ case 12:
838
+ controller.close();
839
+ return [
840
+ 2
841
+ ];
842
+ }
843
+ });
844
+ })();
845
+ }
846
+ });
847
+ return [
848
+ 2,
849
+ new Response(stream, {
850
+ headers: {
851
+ "Content-Type": "text/event-stream"
792
852
  }
793
853
  })
794
854
  ];
795
- case 10:
796
- toolCallsRunStep = _state.sent();
797
- _state.label = 11;
798
- case 11:
799
- onEvent2({
800
- event: "thread.run.step.delta",
801
- data: {
802
- object: "thread.run.step.delta",
803
- run_id: run.id,
804
- id: toolCallsRunStep.id,
805
- delta: {
806
- step_details: {
807
- type: "tool_calls",
808
- tool_calls: delta.tool_calls.map(function(tc) {
809
- return _object_spread({
810
- id: uid(24),
811
- type: "function"
812
- }, tc);
813
- })
814
- }
855
+ case 2:
856
+ _state.trys.push([
857
+ 2,
858
+ 4,
859
+ ,
860
+ 5
861
+ ]);
862
+ return [
863
+ 4,
864
+ mistral.chat(body)
865
+ ];
866
+ case 3:
867
+ data = _state.sent();
868
+ return [
869
+ 2,
870
+ new Response(JSON.stringify({
871
+ data: data
872
+ }), {
873
+ status: 200,
874
+ headers: {
875
+ "Content-Type": "application/json"
815
876
  }
877
+ })
878
+ ];
879
+ case 4:
880
+ error = _state.sent();
881
+ return [
882
+ 2,
883
+ new Response(JSON.stringify({
884
+ error: error
885
+ }), {
886
+ status: 500,
887
+ headers: {
888
+ "Content-Type": "application/json"
889
+ }
890
+ })
891
+ ];
892
+ case 5:
893
+ return [
894
+ 2
895
+ ];
896
+ }
897
+ });
898
+ });
899
+ return function(_url, options) {
900
+ return _ref.apply(this, arguments);
901
+ };
902
+ }();
903
+ };
904
+ // src/adapters/client/mistralClientAdapter/completions/index.ts
905
+ var completions3 = function(param) {
906
+ var mistral = param.mistral;
907
+ return {
908
+ post: post3({
909
+ mistral: mistral
910
+ })
911
+ };
912
+ };
913
+ // src/adapters/client/mistralClientAdapter/index.ts
914
+ var mistralClientAdapter = function(param) {
915
+ var mistral = param.mistral;
916
+ return {
917
+ "^/v1/chat/completions$": completions3({
918
+ mistral: mistral
919
+ })
920
+ };
921
+ };
922
+ // src/adapters/client/perplexityClientAdapter/completions/post.ts
923
+ var agentSideRoles = [
924
+ "assistant",
925
+ "system"
926
+ ];
927
+ var post4 = function(param) {
928
+ var perplexity = param.perplexity;
929
+ return function() {
930
+ var _ref = _async_to_generator(function(_url, options) {
931
+ var body, messages3, response, stream, data, error;
932
+ return _ts_generator(this, function(_state) {
933
+ switch(_state.label){
934
+ case 0:
935
+ body = JSON.parse(options.body);
936
+ messages3 = [];
937
+ body.messages.forEach(function(message, index) {
938
+ messages3.push(message);
939
+ var nextMessage = body.messages[index + 1];
940
+ if (!nextMessage) return;
941
+ if (message.role === "user" && nextMessage.role === "user") {
942
+ messages3.push({
943
+ role: "assistant",
944
+ content: ""
945
+ });
946
+ } else if (agentSideRoles.includes(message.role) && agentSideRoles.includes(nextMessage.role)) {
947
+ messages3.push({
948
+ role: "user",
949
+ content: ""
950
+ });
816
951
  }
817
952
  });
818
- currentToolCalls = toolCallsData({
819
- prevToolCalls: currentToolCalls,
820
- delta: delta
821
- });
822
- _state.label = 12;
823
- case 12:
824
- if (delta.content) {
825
- onEvent2({
826
- event: "thread.message.delta",
827
- data: {
828
- id: message.id,
829
- delta: {
830
- content: [
831
- {
832
- type: "text",
833
- index: 0,
834
- text: {
835
- value: delta.content
953
+ if (!body.stream) return [
954
+ 3,
955
+ 2
956
+ ];
957
+ return [
958
+ 4,
959
+ perplexity.chat.completions.create(body)
960
+ ];
961
+ case 1:
962
+ response = _state.sent();
963
+ stream = new ReadableStream({
964
+ start: function start(controller) {
965
+ return _async_to_generator(function() {
966
+ var _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, chunk, err;
967
+ return _ts_generator(this, function(_state) {
968
+ switch(_state.label){
969
+ case 0:
970
+ _iteratorAbruptCompletion = false, _didIteratorError = false;
971
+ _state.label = 1;
972
+ case 1:
973
+ _state.trys.push([
974
+ 1,
975
+ 6,
976
+ 7,
977
+ 12
978
+ ]);
979
+ _iterator = _async_iterator(response);
980
+ _state.label = 2;
981
+ case 2:
982
+ return [
983
+ 4,
984
+ _iterator.next()
985
+ ];
986
+ case 3:
987
+ if (!(_iteratorAbruptCompletion = !(_step = _state.sent()).done)) return [
988
+ 3,
989
+ 5
990
+ ];
991
+ _value = _step.value;
992
+ chunk = _value;
993
+ controller.enqueue("data: ".concat(JSON.stringify(chunk), "\n\n"));
994
+ _state.label = 4;
995
+ case 4:
996
+ _iteratorAbruptCompletion = false;
997
+ return [
998
+ 3,
999
+ 2
1000
+ ];
1001
+ case 5:
1002
+ return [
1003
+ 3,
1004
+ 12
1005
+ ];
1006
+ case 6:
1007
+ err = _state.sent();
1008
+ _didIteratorError = true;
1009
+ _iteratorError = err;
1010
+ return [
1011
+ 3,
1012
+ 12
1013
+ ];
1014
+ case 7:
1015
+ _state.trys.push([
1016
+ 7,
1017
+ ,
1018
+ 10,
1019
+ 11
1020
+ ]);
1021
+ if (!(_iteratorAbruptCompletion && _iterator.return != null)) return [
1022
+ 3,
1023
+ 9
1024
+ ];
1025
+ return [
1026
+ 4,
1027
+ _iterator.return()
1028
+ ];
1029
+ case 8:
1030
+ _state.sent();
1031
+ _state.label = 9;
1032
+ case 9:
1033
+ return [
1034
+ 3,
1035
+ 11
1036
+ ];
1037
+ case 10:
1038
+ if (_didIteratorError) {
1039
+ throw _iteratorError;
836
1040
  }
837
- }
838
- ]
839
- }
1041
+ return [
1042
+ 7
1043
+ ];
1044
+ case 11:
1045
+ return [
1046
+ 7
1047
+ ];
1048
+ case 12:
1049
+ controller.close();
1050
+ return [
1051
+ 2
1052
+ ];
1053
+ }
1054
+ });
1055
+ })();
1056
+ }
1057
+ });
1058
+ return [
1059
+ 2,
1060
+ new Response(stream, {
1061
+ headers: {
1062
+ "Content-Type": "text/event-stream"
1063
+ }
1064
+ })
1065
+ ];
1066
+ case 2:
1067
+ _state.trys.push([
1068
+ 2,
1069
+ 4,
1070
+ ,
1071
+ 5
1072
+ ]);
1073
+ return [
1074
+ 4,
1075
+ perplexity.chat.completions.create(body)
1076
+ ];
1077
+ case 3:
1078
+ data = _state.sent();
1079
+ return [
1080
+ 2,
1081
+ new Response(JSON.stringify({
1082
+ data: data
1083
+ }), {
1084
+ status: 200,
1085
+ headers: {
1086
+ "Content-Type": "application/json"
1087
+ }
1088
+ })
1089
+ ];
1090
+ case 4:
1091
+ error = _state.sent();
1092
+ return [
1093
+ 2,
1094
+ new Response(JSON.stringify({
1095
+ error: error
1096
+ }), {
1097
+ status: 500,
1098
+ headers: {
1099
+ "Content-Type": "application/json"
840
1100
  }
1101
+ })
1102
+ ];
1103
+ case 5:
1104
+ return [
1105
+ 2
1106
+ ];
1107
+ }
1108
+ });
1109
+ });
1110
+ return function(_url, options) {
1111
+ return _ref.apply(this, arguments);
1112
+ };
1113
+ }();
1114
+ };
1115
+ // src/adapters/client/perplexityClientAdapter/completions/index.ts
1116
+ var completions4 = function(param) {
1117
+ var perplexity = param.perplexity;
1118
+ return {
1119
+ post: post4({
1120
+ perplexity: perplexity
1121
+ })
1122
+ };
1123
+ };
1124
+ // src/adapters/client/perplexityClientAdapter/index.ts
1125
+ var perplexityClientAdapter = function(param) {
1126
+ var perplexity = param.perplexity;
1127
+ return {
1128
+ "^/v1/chat/completions$": completions4({
1129
+ perplexity: perplexity
1130
+ })
1131
+ };
1132
+ };
1133
+ // src/adapters/client/anthropicClientAdapter/completions/post.ts
1134
+ import { uid, fork, omit, isEmpty } from "radash";
1135
+ // src/adapters/client/anthropicClientAdapter/completions/serializeTools.ts
1136
+ var serializeTools = function(param) {
1137
+ var tools = param.tools;
1138
+ return tools.map(function(tool) {
1139
+ if (tool.type === "function") {
1140
+ return {
1141
+ name: tool.function.name,
1142
+ description: tool.function.description,
1143
+ input_schema: tool.function.parameters
1144
+ };
1145
+ }
1146
+ return tool;
1147
+ });
1148
+ };
1149
+ // src/adapters/client/anthropicClientAdapter/completions/serializeMessages/serializeMessage.ts
1150
+ var serializeMessage = function(param) {
1151
+ var message = param.message;
1152
+ if (message.role === "user") {
1153
+ return {
1154
+ role: "user",
1155
+ content: message.content
1156
+ };
1157
+ } else if (message.role === "assistant") {
1158
+ var _message_tool_calls;
1159
+ return {
1160
+ role: "assistant",
1161
+ content: [
1162
+ {
1163
+ type: "text",
1164
+ text: message.content
1165
+ }
1166
+ ].concat(_to_consumable_array(((_message_tool_calls = message.tool_calls) !== null && _message_tool_calls !== void 0 ? _message_tool_calls : []).map(function(toolCall) {
1167
+ return {
1168
+ type: "tool_use",
1169
+ id: toolCall.id,
1170
+ name: toolCall.function.name,
1171
+ input: JSON.parse(toolCall.function.arguments)
1172
+ };
1173
+ })))
1174
+ };
1175
+ } else if (message.role === "tool") {
1176
+ return {
1177
+ role: "user",
1178
+ content: [
1179
+ {
1180
+ type: "tool_result",
1181
+ tool_use_id: message.tool_call_id,
1182
+ content: message.content
1183
+ }
1184
+ ]
1185
+ };
1186
+ }
1187
+ };
1188
+ // src/adapters/client/anthropicClientAdapter/completions/serializeMessages/index.ts
1189
+ var serializeMessages = function(param) {
1190
+ var messages3 = param.messages;
1191
+ return messages3.map(function(message) {
1192
+ return serializeMessage({
1193
+ message: message
1194
+ });
1195
+ });
1196
+ };
1197
+ // src/adapters/client/anthropicClientAdapter/completions/post.ts
1198
+ var post5 = function(param) {
1199
+ var anthropic = param.anthropic;
1200
+ return function() {
1201
+ var _ref = _async_to_generator(function(_url, options) {
1202
+ var body, messages3, _fork, systemMessages, otherMessages, system, resultOptions, response, stream, data, error;
1203
+ return _ts_generator(this, function(_state) {
1204
+ switch(_state.label){
1205
+ case 0:
1206
+ body = JSON.parse(options.body);
1207
+ messages3 = body.messages;
1208
+ _fork = _sliced_to_array(fork(messages3, function(message) {
1209
+ return message.role === "system";
1210
+ }), 2), systemMessages = _fork[0], otherMessages = _fork[1];
1211
+ system = systemMessages.map(function(message) {
1212
+ return message.content;
1213
+ }).join("\n");
1214
+ if (otherMessages[0] && otherMessages[0].role != "user") {
1215
+ otherMessages.unshift({
1216
+ role: "user",
1217
+ content: "-"
841
1218
  });
842
1219
  }
843
- _state.label = 13;
844
- case 13:
845
- _iteratorAbruptCompletion = false;
846
- return [
1220
+ resultOptions = _object_spread_props(_object_spread({}, omit(body, [
1221
+ "response_format"
1222
+ ])), {
1223
+ stream: body.stream ? isEmpty(body.tools) : false,
1224
+ system: system,
1225
+ messages: serializeMessages({
1226
+ messages: otherMessages
1227
+ }),
1228
+ max_tokens: 4096,
1229
+ tools: serializeTools({
1230
+ tools: body.tools
1231
+ })
1232
+ });
1233
+ if (!body.stream) return [
847
1234
  3,
848
- 8
1235
+ 2
849
1236
  ];
850
- case 14:
851
1237
  return [
852
- 3,
853
- 21
1238
+ 4,
1239
+ anthropic.messages.stream(resultOptions)
854
1240
  ];
855
- case 15:
856
- err = _state.sent();
857
- _didIteratorError = true;
858
- _iteratorError = err;
1241
+ case 1:
1242
+ response = _state.sent();
1243
+ stream = new ReadableStream({
1244
+ start: function start(controller) {
1245
+ return _async_to_generator(function() {
1246
+ var _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, chunk, delta, messageDelta, delta1, messageDelta1, messageDelta2, err;
1247
+ return _ts_generator(this, function(_state) {
1248
+ switch(_state.label){
1249
+ case 0:
1250
+ _iteratorAbruptCompletion = false, _didIteratorError = false;
1251
+ _state.label = 1;
1252
+ case 1:
1253
+ _state.trys.push([
1254
+ 1,
1255
+ 6,
1256
+ 7,
1257
+ 12
1258
+ ]);
1259
+ _iterator = _async_iterator(response);
1260
+ _state.label = 2;
1261
+ case 2:
1262
+ return [
1263
+ 4,
1264
+ _iterator.next()
1265
+ ];
1266
+ case 3:
1267
+ if (!(_iteratorAbruptCompletion = !(_step = _state.sent()).done)) return [
1268
+ 3,
1269
+ 5
1270
+ ];
1271
+ _value = _step.value;
1272
+ chunk = _value;
1273
+ if (chunk.type === "content_block_delta") {
1274
+ delta = chunk.delta.type === "input_json_delta" ? {
1275
+ tool_calls: [
1276
+ {
1277
+ index: 0,
1278
+ function: {
1279
+ arguments: chunk.delta.partial_json
1280
+ }
1281
+ }
1282
+ ]
1283
+ } : {
1284
+ content: chunk.delta.text
1285
+ };
1286
+ messageDelta = {
1287
+ id: "chatcmpl-".concat(uid(29)),
1288
+ object: "chat.completion.chunk",
1289
+ choices: [
1290
+ {
1291
+ index: chunk.index,
1292
+ delta: delta
1293
+ }
1294
+ ]
1295
+ };
1296
+ controller.enqueue("data: ".concat(JSON.stringify(messageDelta), "\n\n"));
1297
+ } else if (chunk.type === "content_block_start") {
1298
+ delta1 = chunk.content_block.type === "tool_use" ? {
1299
+ content: null,
1300
+ tool_calls: [
1301
+ {
1302
+ index: 0,
1303
+ id: chunk.content_block.id,
1304
+ type: "function",
1305
+ function: {
1306
+ name: chunk.content_block.name,
1307
+ arguments: ""
1308
+ }
1309
+ }
1310
+ ]
1311
+ } : {
1312
+ content: chunk.content_block.text
1313
+ };
1314
+ messageDelta1 = {
1315
+ id: "chatcmpl-".concat(uid(29)),
1316
+ object: "chat.completion.chunk",
1317
+ choices: [
1318
+ {
1319
+ index: chunk.index,
1320
+ delta: delta1
1321
+ }
1322
+ ]
1323
+ };
1324
+ controller.enqueue("data: ".concat(JSON.stringify(messageDelta1), "\n\n"));
1325
+ } else if (chunk.type === "message_start") {
1326
+ messageDelta2 = {
1327
+ id: "chatcmpl-".concat(uid(29)),
1328
+ object: "chat.completion.chunk",
1329
+ choices: [
1330
+ {
1331
+ index: 0,
1332
+ delta: {
1333
+ content: ""
1334
+ }
1335
+ }
1336
+ ]
1337
+ };
1338
+ controller.enqueue("data: ".concat(JSON.stringify(messageDelta2), "\n\n"));
1339
+ }
1340
+ _state.label = 4;
1341
+ case 4:
1342
+ _iteratorAbruptCompletion = false;
1343
+ return [
1344
+ 3,
1345
+ 2
1346
+ ];
1347
+ case 5:
1348
+ return [
1349
+ 3,
1350
+ 12
1351
+ ];
1352
+ case 6:
1353
+ err = _state.sent();
1354
+ _didIteratorError = true;
1355
+ _iteratorError = err;
1356
+ return [
1357
+ 3,
1358
+ 12
1359
+ ];
1360
+ case 7:
1361
+ _state.trys.push([
1362
+ 7,
1363
+ ,
1364
+ 10,
1365
+ 11
1366
+ ]);
1367
+ if (!(_iteratorAbruptCompletion && _iterator.return != null)) return [
1368
+ 3,
1369
+ 9
1370
+ ];
1371
+ return [
1372
+ 4,
1373
+ _iterator.return()
1374
+ ];
1375
+ case 8:
1376
+ _state.sent();
1377
+ _state.label = 9;
1378
+ case 9:
1379
+ return [
1380
+ 3,
1381
+ 11
1382
+ ];
1383
+ case 10:
1384
+ if (_didIteratorError) {
1385
+ throw _iteratorError;
1386
+ }
1387
+ return [
1388
+ 7
1389
+ ];
1390
+ case 11:
1391
+ return [
1392
+ 7
1393
+ ];
1394
+ case 12:
1395
+ controller.close();
1396
+ return [
1397
+ 2
1398
+ ];
1399
+ }
1400
+ });
1401
+ })();
1402
+ }
1403
+ });
859
1404
  return [
860
- 3,
861
- 21
1405
+ 2,
1406
+ new Response(stream, {
1407
+ headers: {
1408
+ "Content-Type": "text/event-stream"
1409
+ }
1410
+ })
862
1411
  ];
863
- case 16:
1412
+ case 2:
864
1413
  _state.trys.push([
865
- 16,
1414
+ 2,
1415
+ 4,
866
1416
  ,
867
- 19,
868
- 20
1417
+ 5
869
1418
  ]);
870
- if (!(_iteratorAbruptCompletion && _iterator.return != null)) return [
871
- 3,
872
- 18
873
- ];
874
1419
  return [
875
1420
  4,
876
- _iterator.return()
877
- ];
878
- case 17:
879
- _state.sent();
880
- _state.label = 18;
881
- case 18:
882
- return [
883
- 3,
884
- 20
885
- ];
886
- case 19:
887
- if (_didIteratorError) {
888
- throw _iteratorError;
889
- }
890
- return [
891
- 7
892
- ];
893
- case 20:
894
- return [
895
- 7
1421
+ anthropic.messages.create(resultOptions)
896
1422
  ];
897
- case 21:
1423
+ case 3:
1424
+ data = _state.sent();
898
1425
  return [
899
- 4,
900
- onEvent2({
901
- event: "thread.message.completed",
902
- data: _object_spread_props(_object_spread({}, message), {
903
- status: "completed",
904
- content: [
905
- {
906
- text: {
907
- value: currentContent,
908
- annotations: []
909
- },
910
- type: "text"
911
- }
912
- ],
913
- tool_calls: currentToolCalls
914
- })
1426
+ 2,
1427
+ new Response(JSON.stringify({
1428
+ data: data
1429
+ }), {
1430
+ status: 200,
1431
+ headers: {
1432
+ "Content-Type": "application/json"
1433
+ }
915
1434
  })
916
1435
  ];
917
- case 22:
918
- message = _state.sent();
919
- if (isEmpty(message.toolCalls)) {
920
- return [
921
- 2,
922
- onEvent2({
923
- event: "thread.run.completed",
924
- data: _object_spread_props(_object_spread({}, run), {
925
- status: "completed",
926
- completed_at: dayjs().unix()
927
- })
928
- })
929
- ];
930
- }
1436
+ case 4:
1437
+ error = _state.sent();
931
1438
  return [
932
1439
  2,
933
- onEvent2({
934
- event: "thread.run.requires_action",
935
- data: _object_spread_props(_object_spread({}, run), {
936
- status: "requires_action",
937
- required_action: {
938
- type: "submit_tool_outputs",
939
- submit_tool_outputs: {
940
- tool_calls: message.toolCalls
941
- }
942
- }
943
- })
1440
+ new Response(JSON.stringify({
1441
+ error: error
1442
+ }), {
1443
+ status: 500,
1444
+ headers: {
1445
+ "Content-Type": "application/json"
1446
+ }
944
1447
  })
945
1448
  ];
1449
+ case 5:
1450
+ return [
1451
+ 2
1452
+ ];
946
1453
  }
947
1454
  });
948
1455
  });
949
- return function(_) {
1456
+ return function(_url, options) {
950
1457
  return _ref.apply(this, arguments);
951
1458
  };
952
1459
  }();
953
1460
  };
954
- // src/adapters/run/anthropicRunAdapter/index.ts
955
- import _2 from "lodash";
956
- import { uid as uid2, omit as omit2, isEmpty as isEmpty2 } from "radash";
957
- import dayjs2 from "dayjs";
958
- // src/adapters/run/anthropicRunAdapter/messages/index.ts
959
- import { flat as flat2 } from "radash";
960
- // src/adapters/run/anthropicRunAdapter/messages/serializeMessage.ts
961
- var serializeToolCall2 = function(param) {
962
- var toolCall = param.toolCall;
963
- var _toolCall_function_output;
1461
+ // src/adapters/client/anthropicClientAdapter/completions/index.ts
1462
+ var completions5 = function(param) {
1463
+ var anthropic = param.anthropic;
964
1464
  return {
965
- role: "user",
966
- content: [
967
- {
968
- type: "tool_result",
969
- tool_use_id: toolCall.id,
970
- content: (_toolCall_function_output = toolCall.function.output) !== null && _toolCall_function_output !== void 0 ? _toolCall_function_output : ""
971
- }
972
- ]
1465
+ post: post5({
1466
+ anthropic: anthropic
1467
+ })
1468
+ };
1469
+ };
1470
+ // src/adapters/client/anthropicClientAdapter/index.ts
1471
+ var anthropicClientAdapter = function(param) {
1472
+ var anthropic = param.anthropic;
1473
+ return {
1474
+ "^/v1/chat/completions$": completions5({
1475
+ anthropic: anthropic
1476
+ })
973
1477
  };
974
1478
  };
975
- var serializeInputToolCall = function(param) {
1479
+ // src/adapters/run/completionsRunAdapter/index.ts
1480
+ import _ from "lodash";
1481
+ import { uid as uid2, omit as omit2, isEmpty as isEmpty2 } from "radash";
1482
+ import dayjs from "dayjs";
1483
+ // src/adapters/run/completionsRunAdapter/messages/index.ts
1484
+ import { flat } from "radash";
1485
+ // src/adapters/run/completionsRunAdapter/messages/serializeMessage.ts
1486
+ var serializeToolCall = function(param) {
976
1487
  var toolCall = param.toolCall;
1488
+ var _toolCall_function_output;
977
1489
  return {
978
- type: "tool_use",
979
- id: toolCall.id,
1490
+ tool_call_id: toolCall.id,
1491
+ role: "tool",
980
1492
  name: toolCall.function.name,
981
- input: JSON.parse(toolCall.function.arguments)
1493
+ content: (_toolCall_function_output = toolCall.function.output) !== null && _toolCall_function_output !== void 0 ? _toolCall_function_output : ""
982
1494
  };
983
1495
  };
984
- var serializeMessageWithContent2 = function(param) {
1496
+ var serializeMessageWithContent = function(param) {
985
1497
  var message = param.message;
986
1498
  var _message_metadata;
987
- var _message_metadata_toolCalls;
988
- return {
1499
+ return _object_spread({
989
1500
  role: message.role,
990
- content: [
991
- {
992
- type: "text",
993
- text: serializeContent2({
994
- content: message.content
995
- })
996
- }
997
- ].concat(// @ts-ignore-next-line
998
- _to_consumable_array(((_message_metadata_toolCalls = message === null || message === void 0 ? void 0 : (_message_metadata = message.metadata) === null || _message_metadata === void 0 ? void 0 : _message_metadata.toolCalls) !== null && _message_metadata_toolCalls !== void 0 ? _message_metadata_toolCalls : []).map(function(toolCall) {
999
- return serializeInputToolCall({
1000
- toolCall: toolCall
1001
- });
1002
- })))
1003
- };
1501
+ content: serializeContent({
1502
+ content: message.content
1503
+ })
1504
+ }, (message === null || message === void 0 ? void 0 : (_message_metadata = message.metadata) === null || _message_metadata === void 0 ? void 0 : _message_metadata.toolCalls) ? {
1505
+ tool_calls: message.metadata.toolCalls
1506
+ } : {});
1004
1507
  };
1005
- var serializeContent2 = function(param) {
1508
+ var serializeContent = function(param) {
1006
1509
  var content = param.content;
1007
1510
  return content.map(function(content2) {
1008
1511
  return content2.text.value;
@@ -1011,21 +1514,16 @@ var serializeContent2 = function(param) {
1011
1514
  var serializeMessage2 = function(param) {
1012
1515
  var message = param.message;
1013
1516
  var _message_metadata;
1014
- console.dir({
1015
- message: message
1016
- }, {
1017
- depth: null
1018
- });
1019
1517
  var result = [
1020
- serializeMessageWithContent2({
1518
+ serializeMessageWithContent({
1021
1519
  message: message
1022
1520
  })
1023
1521
  ];
1024
- var run = message.run;
1025
- if (!run) return result;
1522
+ var run2 = message.run;
1523
+ if (!run2) return result;
1026
1524
  var messageToolCalls = ((_message_metadata = message.metadata) === null || _message_metadata === void 0 ? void 0 : _message_metadata.toolCalls) || [];
1027
1525
  messageToolCalls.forEach(function(tc) {
1028
- var runStep = run.runSteps.find(function(rs) {
1526
+ var runStep = run2.runSteps.find(function(rs) {
1029
1527
  if (rs.type !== "tool_calls") return false;
1030
1528
  return rs.step_details.tool_calls.some(function(rsTc) {
1031
1529
  if (rsTc.type !== "function") return false;
@@ -1037,101 +1535,158 @@ var serializeMessage2 = function(param) {
1037
1535
  if (rsTc.type !== "function") return false;
1038
1536
  return rsTc.id === tc.id;
1039
1537
  });
1040
- result.push(serializeToolCall2({
1538
+ result.push(serializeToolCall({
1041
1539
  toolCall: toolCall
1042
1540
  }));
1043
1541
  });
1044
1542
  return result;
1045
1543
  };
1046
- // src/adapters/run/anthropicRunAdapter/messages/index.ts
1047
- var messages2 = function() {
1544
+ // src/adapters/run/completionsRunAdapter/messages/index.ts
1545
+ var messages = function() {
1048
1546
  var _ref = _async_to_generator(function(param) {
1049
- var run, getMessages2, messagesHistoryLength;
1547
+ var run2, getMessages2, _, _1;
1050
1548
  return _ts_generator(this, function(_state) {
1051
1549
  switch(_state.label){
1052
1550
  case 0:
1053
- run = param.run, getMessages2 = param.getMessages, messagesHistoryLength = param.messagesHistoryLength;
1551
+ run2 = param.run, getMessages2 = param.getMessages;
1552
+ _1 = (_ = _to_consumable_array(run2.instructions ? [
1553
+ {
1554
+ role: "system",
1555
+ content: run2.instructions
1556
+ }
1557
+ ] : [])).concat;
1054
1558
  return [
1055
1559
  4,
1056
- getMessages2({
1057
- messagesHistoryLength: messagesHistoryLength
1058
- })
1560
+ getMessages2()
1059
1561
  ];
1060
1562
  case 1:
1061
1563
  return [
1062
1564
  2,
1063
- flat2.apply(void 0, [
1064
- _state.sent().map(function(message) {
1065
- return serializeMessage2({
1066
- message: message
1067
- });
1068
- })
1565
+ _1.apply(_, [
1566
+ _to_consumable_array.apply(void 0, [
1567
+ flat.apply(void 0, [
1568
+ _state.sent().map(function(message) {
1569
+ return serializeMessage2({
1570
+ message: message
1571
+ });
1572
+ })
1573
+ ])
1574
+ ])
1069
1575
  ])
1070
1576
  ];
1071
1577
  }
1072
1578
  });
1073
1579
  });
1074
- return function messages2(_) {
1580
+ return function messages(_) {
1075
1581
  return _ref.apply(this, arguments);
1076
1582
  };
1077
1583
  }();
1078
- // src/adapters/run/anthropicRunAdapter/serializeTools.ts
1079
- var serializeTools = function(param) {
1080
- var run = param.run;
1081
- return run.tools.map(function(tool) {
1082
- if (tool.type === "function") {
1083
- return {
1084
- name: tool.function.name,
1085
- description: tool.function.description,
1086
- input_schema: tool.function.parameters
1087
- };
1584
+ // src/adapters/run/completionsRunAdapter/index.ts
1585
+ var updatedToolCall = function(param) {
1586
+ var toolCall = param.toolCall, delta = param.delta;
1587
+ if (!toolCall) return omit2(delta, [
1588
+ "index"
1589
+ ]);
1590
+ var result = _.cloneDeep(toolCall);
1591
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
1592
+ try {
1593
+ for(var _iterator = Object.entries(delta.function)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
1594
+ var _step_value = _sliced_to_array(_step.value, 2), key = _step_value[0], value = _step_value[1];
1595
+ var _result_function_key;
1596
+ result.function[key] = "".concat((_result_function_key = result.function[key]) !== null && _result_function_key !== void 0 ? _result_function_key : "").concat(value);
1088
1597
  }
1089
- return tool;
1090
- });
1598
+ } catch (err) {
1599
+ _didIteratorError = true;
1600
+ _iteratorError = err;
1601
+ } finally{
1602
+ try {
1603
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
1604
+ _iterator.return();
1605
+ }
1606
+ } finally{
1607
+ if (_didIteratorError) {
1608
+ throw _iteratorError;
1609
+ }
1610
+ }
1611
+ }
1612
+ return result;
1613
+ };
1614
+ var toolCallsData = function(param) {
1615
+ var prevToolCalls = param.prevToolCalls, delta = param.delta;
1616
+ if (!prevToolCalls) {
1617
+ return delta.tool_calls.map(function(tc) {
1618
+ return _object_spread({
1619
+ id: uid2(24),
1620
+ type: "function"
1621
+ }, omit2(tc, [
1622
+ "index"
1623
+ ]));
1624
+ });
1625
+ }
1626
+ var newToolCalls = _.cloneDeep(prevToolCalls);
1627
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
1628
+ try {
1629
+ for(var _iterator = delta.tool_calls[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
1630
+ var runStepDelta = _step.value;
1631
+ newToolCalls[runStepDelta.index] = updatedToolCall({
1632
+ toolCall: newToolCalls[runStepDelta.index],
1633
+ delta: runStepDelta
1634
+ });
1635
+ }
1636
+ } catch (err) {
1637
+ _didIteratorError = true;
1638
+ _iteratorError = err;
1639
+ } finally{
1640
+ try {
1641
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
1642
+ _iterator.return();
1643
+ }
1644
+ } finally{
1645
+ if (_didIteratorError) {
1646
+ throw _iteratorError;
1647
+ }
1648
+ }
1649
+ }
1650
+ return newToolCalls;
1091
1651
  };
1092
- // src/adapters/run/anthropicRunAdapter/index.ts
1093
- var anthropicRunAdapter = function(param) {
1094
- 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;
1652
+ var completionsRunAdapter = function() {
1095
1653
  return function() {
1096
1654
  var _ref = _async_to_generator(function(param) {
1097
- 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;
1655
+ 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;
1098
1656
  return _ts_generator(this, function(_state) {
1099
1657
  switch(_state.label){
1100
1658
  case 0:
1101
- client = param.client, run = param.run, onEvent2 = param.onEvent, getMessages2 = param.getMessages;
1102
- if (run.status !== "queued") return [
1659
+ clientAdapter = param.client, run2 = param.run, onEvent2 = param.onEvent, getMessages2 = param.getMessages;
1660
+ if (run2.status !== "queued") return [
1103
1661
  2
1104
1662
  ];
1663
+ client = supercompat({
1664
+ client: clientAdapter,
1665
+ storage: function() {},
1666
+ // @ts-ignore-next-line
1667
+ runAdapter: {}
1668
+ });
1105
1669
  onEvent2({
1106
1670
  event: "thread.run.in_progress",
1107
- data: _object_spread_props(_object_spread({}, run), {
1671
+ data: _object_spread_props(_object_spread({}, run2), {
1108
1672
  status: "in_progress"
1109
1673
  })
1110
1674
  });
1111
- isStream = isEmpty2(run.tools);
1112
1675
  _tmp = {};
1113
1676
  return [
1114
1677
  4,
1115
- messages2({
1116
- run: run,
1117
- getMessages: getMessages2,
1118
- messagesHistoryLength: messagesHistoryLength
1678
+ messages({
1679
+ run: run2,
1680
+ getMessages: getMessages2
1119
1681
  })
1120
1682
  ];
1121
1683
  case 1:
1122
1684
  opts = _object_spread.apply(void 0, [
1123
- (_tmp.messages = _state.sent(), _tmp.stream = isStream, _tmp.model = run.model, _tmp.max_tokens = maxTokens, _tmp),
1124
- isEmpty2(run.tools) ? {} : {
1125
- tools: serializeTools({
1126
- run: run
1127
- })
1685
+ (_tmp.messages = _state.sent(), _tmp.model = run2.model, _tmp.stream = true, _tmp.response_format = run2.response_format, _tmp),
1686
+ isEmpty2(run2.tools) ? {} : {
1687
+ tools: run2.tools
1128
1688
  }
1129
1689
  ]);
1130
- console.dir({
1131
- opts: opts
1132
- }, {
1133
- depth: null
1134
- });
1135
1690
  _state.label = 2;
1136
1691
  case 2:
1137
1692
  _state.trys.push([
@@ -1152,13 +1707,14 @@ var anthropicRunAdapter = function(param) {
1152
1707
  ];
1153
1708
  case 4:
1154
1709
  e = _state.sent();
1710
+ console.log("error", e);
1155
1711
  console.error(e);
1156
1712
  return [
1157
1713
  2,
1158
1714
  onEvent2({
1159
1715
  event: "thread.run.failed",
1160
- data: _object_spread_props(_object_spread({}, run), {
1161
- failed_at: dayjs2().unix(),
1716
+ data: _object_spread_props(_object_spread({}, run2), {
1717
+ failed_at: dayjs().unix(),
1162
1718
  status: "in_progress",
1163
1719
  last_error: e.message
1164
1720
  })
@@ -1173,14 +1729,14 @@ var anthropicRunAdapter = function(param) {
1173
1729
  id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
1174
1730
  object: "thread.message",
1175
1731
  completed_at: null,
1176
- run_id: run.id,
1177
- created_at: dayjs2().unix(),
1178
- assistant_id: run.assistant_id,
1732
+ run_id: run2.id,
1733
+ created_at: dayjs().unix(),
1734
+ assistant_id: run2.assistant_id,
1179
1735
  incomplete_at: null,
1180
1736
  incomplete_details: null,
1181
1737
  metadata: {},
1182
1738
  attachments: [],
1183
- thread_id: run.thread_id,
1739
+ thread_id: run2.thread_id,
1184
1740
  content: [
1185
1741
  {
1186
1742
  text: {
@@ -1202,13 +1758,13 @@ var anthropicRunAdapter = function(param) {
1202
1758
  data: {
1203
1759
  id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
1204
1760
  object: "thread.run.step",
1205
- run_id: run.id,
1206
- assistant_id: run.assistant_id,
1207
- thread_id: run.thread_id,
1761
+ run_id: run2.id,
1762
+ assistant_id: run2.assistant_id,
1763
+ thread_id: run2.thread_id,
1208
1764
  type: "message_creation",
1209
1765
  status: "completed",
1210
- completed_at: dayjs2().unix(),
1211
- created_at: dayjs2().unix(),
1766
+ completed_at: dayjs().unix(),
1767
+ created_at: dayjs().unix(),
1212
1768
  expired_at: null,
1213
1769
  last_error: null,
1214
1770
  metadata: {},
@@ -1224,23 +1780,14 @@ var anthropicRunAdapter = function(param) {
1224
1780
  }
1225
1781
  });
1226
1782
  currentContent = "";
1227
- console.dir({
1228
- providerResponse: providerResponse
1229
- }, {
1230
- depth: null
1231
- });
1232
- if (!isStream) return [
1233
- 3,
1234
- 19
1235
- ];
1236
1783
  _iteratorAbruptCompletion = false, _didIteratorError = false;
1237
1784
  _state.label = 7;
1238
1785
  case 7:
1239
1786
  _state.trys.push([
1240
1787
  7,
1241
- 12,
1242
- 13,
1243
- 18
1788
+ 15,
1789
+ 16,
1790
+ 21
1244
1791
  ]);
1245
1792
  _iterator = _async_iterator(providerResponse);
1246
1793
  _state.label = 8;
@@ -1252,13 +1799,80 @@ var anthropicRunAdapter = function(param) {
1252
1799
  case 9:
1253
1800
  if (!(_iteratorAbruptCompletion = !(_step = _state.sent()).done)) return [
1254
1801
  3,
1255
- 11
1802
+ 14
1256
1803
  ];
1257
1804
  _value = _step.value;
1258
- messageStreamEvent = _value;
1259
- if (messageStreamEvent.type === "content_block_delta") {
1805
+ chunk = _value;
1806
+ delta = chunk.choices[0].delta;
1807
+ if (delta.content) {
1260
1808
  ;
1261
- currentContent = "".concat(currentContent).concat((_messageStreamEvent_delta_text = messageStreamEvent.delta.text) !== null && _messageStreamEvent_delta_text !== void 0 ? _messageStreamEvent_delta_text : "");
1809
+ currentContent = "".concat(currentContent).concat((_delta_content = delta.content) !== null && _delta_content !== void 0 ? _delta_content : "");
1810
+ }
1811
+ if (!delta.tool_calls) return [
1812
+ 3,
1813
+ 12
1814
+ ];
1815
+ if (!!toolCallsRunStep) return [
1816
+ 3,
1817
+ 11
1818
+ ];
1819
+ return [
1820
+ 4,
1821
+ onEvent2({
1822
+ event: "thread.run.step.created",
1823
+ data: {
1824
+ id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
1825
+ object: "thread.run.step",
1826
+ run_id: run2.id,
1827
+ assistant_id: run2.assistant_id,
1828
+ thread_id: run2.thread_id,
1829
+ type: "tool_calls",
1830
+ status: "in_progress",
1831
+ completed_at: null,
1832
+ created_at: dayjs().unix(),
1833
+ expired_at: null,
1834
+ last_error: null,
1835
+ metadata: {},
1836
+ failed_at: null,
1837
+ cancelled_at: null,
1838
+ usage: null,
1839
+ step_details: {
1840
+ type: "tool_calls",
1841
+ tool_calls: []
1842
+ }
1843
+ }
1844
+ })
1845
+ ];
1846
+ case 10:
1847
+ toolCallsRunStep = _state.sent();
1848
+ _state.label = 11;
1849
+ case 11:
1850
+ onEvent2({
1851
+ event: "thread.run.step.delta",
1852
+ data: {
1853
+ object: "thread.run.step.delta",
1854
+ run_id: run2.id,
1855
+ id: toolCallsRunStep.id,
1856
+ delta: {
1857
+ step_details: {
1858
+ type: "tool_calls",
1859
+ tool_calls: delta.tool_calls.map(function(tc) {
1860
+ return _object_spread({
1861
+ id: uid2(24),
1862
+ type: "function"
1863
+ }, tc);
1864
+ })
1865
+ }
1866
+ }
1867
+ }
1868
+ });
1869
+ currentToolCalls = toolCallsData({
1870
+ prevToolCalls: currentToolCalls,
1871
+ delta: delta
1872
+ });
1873
+ _state.label = 12;
1874
+ case 12:
1875
+ if (delta.content) {
1262
1876
  onEvent2({
1263
1877
  event: "thread.message.delta",
1264
1878
  data: {
@@ -1269,8 +1883,7 @@ var anthropicRunAdapter = function(param) {
1269
1883
  type: "text",
1270
1884
  index: 0,
1271
1885
  text: {
1272
- // @ts-ignore-next-line
1273
- value: messageStreamEvent.delta.text
1886
+ value: delta.content
1274
1887
  }
1275
1888
  }
1276
1889
  ]
@@ -1278,119 +1891,60 @@ var anthropicRunAdapter = function(param) {
1278
1891
  }
1279
1892
  });
1280
1893
  }
1281
- _state.label = 10;
1282
- case 10:
1894
+ _state.label = 13;
1895
+ case 13:
1283
1896
  _iteratorAbruptCompletion = false;
1284
1897
  return [
1285
1898
  3,
1286
1899
  8
1287
1900
  ];
1288
- case 11:
1901
+ case 14:
1289
1902
  return [
1290
1903
  3,
1291
- 18
1904
+ 21
1292
1905
  ];
1293
- case 12:
1906
+ case 15:
1294
1907
  err = _state.sent();
1295
1908
  _didIteratorError = true;
1296
1909
  _iteratorError = err;
1297
1910
  return [
1298
1911
  3,
1299
- 18
1912
+ 21
1300
1913
  ];
1301
- case 13:
1914
+ case 16:
1302
1915
  _state.trys.push([
1303
- 13,
1304
- ,
1305
1916
  16,
1306
- 17
1917
+ ,
1918
+ 19,
1919
+ 20
1307
1920
  ]);
1308
1921
  if (!(_iteratorAbruptCompletion && _iterator.return != null)) return [
1309
1922
  3,
1310
- 15
1923
+ 18
1311
1924
  ];
1312
1925
  return [
1313
1926
  4,
1314
1927
  _iterator.return()
1315
1928
  ];
1316
- case 14:
1929
+ case 17:
1317
1930
  _state.sent();
1318
- _state.label = 15;
1319
- case 15:
1931
+ _state.label = 18;
1932
+ case 18:
1320
1933
  return [
1321
1934
  3,
1322
- 17
1935
+ 20
1323
1936
  ];
1324
- case 16:
1937
+ case 19:
1325
1938
  if (_didIteratorError) {
1326
1939
  throw _iteratorError;
1327
1940
  }
1328
1941
  return [
1329
1942
  7
1330
1943
  ];
1331
- case 17:
1944
+ case 20:
1332
1945
  return [
1333
1946
  7
1334
1947
  ];
1335
- case 18:
1336
- return [
1337
- 3,
1338
- 21
1339
- ];
1340
- case 19:
1341
- textContentBlock = providerResponse.content.filter(function(c) {
1342
- return c.type === "text";
1343
- })[0];
1344
- if (textContentBlock) {
1345
- currentContent = textContentBlock.text;
1346
- }
1347
- toolUseBlocks = providerResponse.content.filter(function(c) {
1348
- return c.type === "tool_use";
1349
- });
1350
- if (!!isEmpty2(toolUseBlocks)) return [
1351
- 3,
1352
- 21
1353
- ];
1354
- currentToolCalls = toolUseBlocks.map(function(tc) {
1355
- return {
1356
- id: tc.id,
1357
- type: "function",
1358
- function: {
1359
- name: tc.name,
1360
- arguments: JSON.stringify(tc.input)
1361
- }
1362
- };
1363
- });
1364
- return [
1365
- 4,
1366
- onEvent2({
1367
- event: "thread.run.step.created",
1368
- data: {
1369
- id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
1370
- object: "thread.run.step",
1371
- run_id: run.id,
1372
- assistant_id: run.assistant_id,
1373
- thread_id: run.thread_id,
1374
- type: "tool_calls",
1375
- status: "in_progress",
1376
- completed_at: null,
1377
- created_at: dayjs2().unix(),
1378
- expired_at: null,
1379
- last_error: null,
1380
- metadata: {},
1381
- failed_at: null,
1382
- cancelled_at: null,
1383
- usage: null,
1384
- step_details: {
1385
- type: "tool_calls",
1386
- tool_calls: currentToolCalls
1387
- }
1388
- }
1389
- })
1390
- ];
1391
- case 20:
1392
- toolCallsRunStep = _state.sent();
1393
- _state.label = 21;
1394
1948
  case 21:
1395
1949
  return [
1396
1950
  4,
@@ -1418,9 +1972,9 @@ var anthropicRunAdapter = function(param) {
1418
1972
  2,
1419
1973
  onEvent2({
1420
1974
  event: "thread.run.completed",
1421
- data: _object_spread_props(_object_spread({}, run), {
1975
+ data: _object_spread_props(_object_spread({}, run2), {
1422
1976
  status: "completed",
1423
- completed_at: dayjs2().unix()
1977
+ completed_at: dayjs().unix()
1424
1978
  })
1425
1979
  })
1426
1980
  ];
@@ -1429,7 +1983,7 @@ var anthropicRunAdapter = function(param) {
1429
1983
  2,
1430
1984
  onEvent2({
1431
1985
  event: "thread.run.requires_action",
1432
- data: _object_spread_props(_object_spread({}, run), {
1986
+ data: _object_spread_props(_object_spread({}, run2), {
1433
1987
  status: "requires_action",
1434
1988
  required_action: {
1435
1989
  type: "submit_tool_outputs",
@@ -1448,26 +2002,26 @@ var anthropicRunAdapter = function(param) {
1448
2002
  };
1449
2003
  }();
1450
2004
  };
1451
- // src/adapters/storage/prismaStorageAdapter/beta/threads/create.ts
1452
- import dayjs4 from "dayjs";
1453
- // src/adapters/storage/prismaStorageAdapter/beta/threads/serializeThread.ts
2005
+ // src/adapters/storage/prismaStorageAdapter/threads/post.ts
1454
2006
  import dayjs3 from "dayjs";
2007
+ // src/adapters/storage/prismaStorageAdapter/threads/serializeThread.ts
2008
+ import dayjs2 from "dayjs";
1455
2009
  var serializeThread = function(param) {
1456
2010
  var thread = param.thread;
1457
2011
  return {
1458
2012
  id: thread.id,
1459
2013
  object: "thread",
1460
- created_at: dayjs3(thread.createdAt).unix(),
2014
+ created_at: dayjs2(thread.createdAt).unix(),
1461
2015
  metadata: thread.metadata,
1462
2016
  // TODO
1463
2017
  tool_resources: null
1464
2018
  };
1465
2019
  };
1466
- // src/adapters/storage/prismaStorageAdapter/beta/threads/create.ts
1467
- var create = function(param) {
2020
+ // src/adapters/storage/prismaStorageAdapter/threads/post.ts
2021
+ var post6 = function(param) {
1468
2022
  var prisma = param.prisma;
1469
2023
  return /*#__PURE__*/ _async_to_generator(function() {
1470
- var _len, args, _key, _args_, _args__body, messages4, metadata, initialCreatedAt, thread;
2024
+ var _len, args, _key, body, messages3, metadata, initialCreatedAt, thread;
1471
2025
  var _arguments = arguments;
1472
2026
  return _ts_generator(this, function(_state) {
1473
2027
  switch(_state.label){
@@ -1475,21 +2029,24 @@ var create = function(param) {
1475
2029
  for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1476
2030
  args[_key] = _arguments[_key];
1477
2031
  }
1478
- _args_ = args[0], _args__body = _args_.// @ts-ignore-next-line
1479
- body, messages4 = _args__body.messages, metadata = _args__body.metadata;
1480
- initialCreatedAt = dayjs4().subtract(messages4.length, "seconds").format();
2032
+ body = JSON.parse(args[1].body);
2033
+ messages3 = body.messages || [];
2034
+ metadata = body.metadata || {};
2035
+ initialCreatedAt = dayjs3().subtract(messages3.length, "seconds").format();
1481
2036
  return [
1482
2037
  4,
1483
2038
  prisma.thread.create({
1484
- data: {
1485
- metadata: metadata,
2039
+ data: _object_spread_props(_object_spread({
2040
+ metadata: metadata
2041
+ }, metadata.assistantId ? {
1486
2042
  assistant: {
1487
2043
  connect: {
1488
- id: metadata.superinterfaceAssistantId
2044
+ id: metadata.assistantId
1489
2045
  }
1490
- },
2046
+ }
2047
+ } : {}), {
1491
2048
  messages: {
1492
- create: messages4.map(function(message, index) {
2049
+ create: messages3.map(function(message, index) {
1493
2050
  return {
1494
2051
  role: message.role === "user" ? "USER" : "ASSISTANT",
1495
2052
  content: [
@@ -1503,29 +2060,41 @@ var create = function(param) {
1503
2060
  ],
1504
2061
  attachments: message.attachments,
1505
2062
  metadata: message.metadata,
1506
- createdAt: dayjs4(initialCreatedAt).add(index, "seconds").toDate()
2063
+ createdAt: dayjs3(initialCreatedAt).add(index, "seconds").toDate()
1507
2064
  };
1508
2065
  })
1509
2066
  }
1510
- }
2067
+ })
1511
2068
  })
1512
2069
  ];
1513
2070
  case 1:
1514
2071
  thread = _state.sent();
1515
2072
  return [
1516
2073
  2,
1517
- serializeThread({
2074
+ new Response(JSON.stringify(serializeThread({
1518
2075
  thread: thread
2076
+ })), {
2077
+ status: 200,
2078
+ headers: {
2079
+ "Content-Type": "application/json"
2080
+ }
1519
2081
  })
1520
2082
  ];
1521
2083
  }
1522
2084
  });
1523
2085
  });
1524
2086
  };
1525
- // src/adapters/storage/prismaStorageAdapter/beta/threads/messages/list.ts
1526
- import { assign as assign3, last } from "radash";
1527
- // src/adapters/storage/prismaStorageAdapter/beta/threads/messages/serializeMessage.ts
1528
- import dayjs5 from "dayjs";
2087
+ // src/adapters/storage/prismaStorageAdapter/threads/index.ts
2088
+ var threads = function(param) {
2089
+ var prisma = param.prisma;
2090
+ return {
2091
+ post: post6({
2092
+ prisma: prisma
2093
+ })
2094
+ };
2095
+ };
2096
+ // src/adapters/storage/prismaStorageAdapter/threads/messages/serializeMessage.ts
2097
+ import dayjs4 from "dayjs";
1529
2098
  import { assign as assign2 } from "radash";
1530
2099
  var serializeMessage3 = function(param) {
1531
2100
  var message = param.message;
@@ -1533,10 +2102,10 @@ var serializeMessage3 = function(param) {
1533
2102
  return {
1534
2103
  id: message.id,
1535
2104
  object: "thread.message",
1536
- created_at: dayjs5(message.createdAt).unix(),
2105
+ created_at: dayjs4(message.createdAt).unix(),
1537
2106
  thread_id: message.threadId,
1538
- completed_at: message.completedAt ? dayjs5(message.completedAt).unix() : null,
1539
- incomplete_at: message.incompleteAt ? dayjs5(message.incompleteAt).unix() : null,
2107
+ completed_at: message.completedAt ? dayjs4(message.completedAt).unix() : null,
2108
+ incomplete_at: message.incompleteAt ? dayjs4(message.incompleteAt).unix() : null,
1540
2109
  incomplete_details: message.incompleteDetails,
1541
2110
  role: message.role.toLowerCase(),
1542
2111
  content: message.content,
@@ -1549,68 +2118,7 @@ var serializeMessage3 = function(param) {
1549
2118
  } : {})
1550
2119
  };
1551
2120
  };
1552
- // src/adapters/storage/prismaStorageAdapter/beta/threads/messages/list.ts
1553
- var list = function(param) {
1554
- var prisma = param.prisma;
1555
- return /*#__PURE__*/ _async_to_generator(function() {
1556
- var _len, args, _key, _last, threadId, _args_, _assign3, // @ts-ignore-next-line
1557
- limit, // @ts-ignore-next-line
1558
- order, // @ts-ignore-next-line
1559
- after, messages4, _last_id;
1560
- var _arguments = arguments;
1561
- return _ts_generator(this, function(_state) {
1562
- switch(_state.label){
1563
- case 0:
1564
- for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1565
- args[_key] = _arguments[_key];
1566
- }
1567
- threadId = args[0];
1568
- _assign3 = assign3({
1569
- // @ts-ignore-next-line
1570
- limit: 20,
1571
- order: "desc",
1572
- after: null
1573
- }, (_args_ = args[1]) !== null && _args_ !== void 0 ? _args_ : {}), limit = _assign3.limit, order = _assign3.order, after = _assign3.after;
1574
- return [
1575
- 4,
1576
- prisma.message.findMany(_object_spread({
1577
- where: {
1578
- threadId: threadId
1579
- },
1580
- take: limit,
1581
- orderBy: {
1582
- createdAt: order
1583
- }
1584
- }, after ? {
1585
- skip: 1,
1586
- cursor: {
1587
- id: after
1588
- }
1589
- } : {}))
1590
- ];
1591
- case 1:
1592
- messages4 = _state.sent();
1593
- return [
1594
- 2,
1595
- {
1596
- data: messages4.map(function(message) {
1597
- return serializeMessage3({
1598
- message: message
1599
- });
1600
- }),
1601
- hasNextPage: function() {
1602
- return messages4.length === limit;
1603
- },
1604
- body: {
1605
- last_id: (_last_id = (_last = last(messages4)) === null || _last === void 0 ? void 0 : _last.id) !== null && _last_id !== void 0 ? _last_id : null
1606
- }
1607
- }
1608
- ];
1609
- }
1610
- });
1611
- });
1612
- };
1613
- // src/adapters/storage/prismaStorageAdapter/beta/threads/messages/create.ts
2121
+ // src/adapters/storage/prismaStorageAdapter/threads/messages/post.ts
1614
2122
  var messageContentBlocks = function(param) {
1615
2123
  var content = param.content;
1616
2124
  return [
@@ -1623,230 +2131,234 @@ var messageContentBlocks = function(param) {
1623
2131
  }
1624
2132
  ];
1625
2133
  };
1626
- var create2 = function(param) {
2134
+ var post7 = function(param) {
1627
2135
  var prisma = param.prisma;
1628
- return /*#__PURE__*/ _async_to_generator(function() {
1629
- var _len, args, _key, threadId, content, message;
1630
- var _arguments = arguments;
1631
- return _ts_generator(this, function(_state) {
1632
- switch(_state.label){
1633
- case 0:
1634
- for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1635
- args[_key] = _arguments[_key];
1636
- }
1637
- threadId = args[0];
1638
- content = args[1].content;
1639
- return [
1640
- 4,
1641
- prisma.message.create({
1642
- data: {
1643
- threadId: threadId,
1644
- content: messageContentBlocks({
1645
- content: content
1646
- }),
1647
- role: "USER"
1648
- }
1649
- })
1650
- ];
1651
- case 1:
1652
- message = _state.sent();
1653
- return [
1654
- 2,
1655
- serializeMessage3({
1656
- message: message
1657
- })
1658
- ];
1659
- }
2136
+ return function() {
2137
+ var _ref = _async_to_generator(function(urlString, options) {
2138
+ var url, _url_pathname_match, threadId, body, role, content, message;
2139
+ return _ts_generator(this, function(_state) {
2140
+ switch(_state.label){
2141
+ case 0:
2142
+ url = new URL(urlString);
2143
+ _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp("^/v1/threads/([^/]+)/messages$")), 2), threadId = _url_pathname_match[1];
2144
+ body = JSON.parse(options.body);
2145
+ role = body.role, content = body.content;
2146
+ return [
2147
+ 4,
2148
+ prisma.message.create({
2149
+ data: {
2150
+ threadId: threadId,
2151
+ content: messageContentBlocks({
2152
+ content: content
2153
+ }),
2154
+ role: role === "user" ? "USER" : "ASSISTANT"
2155
+ }
2156
+ })
2157
+ ];
2158
+ case 1:
2159
+ message = _state.sent();
2160
+ return [
2161
+ 2,
2162
+ new Response(JSON.stringify(serializeMessage3({
2163
+ message: message
2164
+ })), {
2165
+ status: 200,
2166
+ headers: {
2167
+ "Content-Type": "application/json"
2168
+ }
2169
+ })
2170
+ ];
2171
+ }
2172
+ });
2173
+ });
2174
+ return function(urlString, options) {
2175
+ return _ref.apply(this, arguments);
2176
+ };
2177
+ }();
2178
+ };
2179
+ // src/adapters/storage/prismaStorageAdapter/threads/messages/get.ts
2180
+ import { assign as assign3, last } from "radash";
2181
+ var get = function(param) {
2182
+ var prisma = param.prisma;
2183
+ return function() {
2184
+ var _ref = _async_to_generator(function(urlString) {
2185
+ var _last, url, _url_pathname_match, threadId, _assign3, limit, order, after, messages3, _last_id;
2186
+ return _ts_generator(this, function(_state) {
2187
+ switch(_state.label){
2188
+ case 0:
2189
+ url = new URL(urlString);
2190
+ _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp("^/v1/threads/([^/]+)/messages$")), 2), threadId = _url_pathname_match[1];
2191
+ _assign3 = assign3({
2192
+ limit: "20",
2193
+ order: "desc"
2194
+ }, Object.fromEntries(url.searchParams)), limit = _assign3.limit, order = _assign3.order, after = _assign3.after;
2195
+ return [
2196
+ 4,
2197
+ prisma.message.findMany(_object_spread({
2198
+ where: {
2199
+ threadId: threadId
2200
+ },
2201
+ take: parseInt(limit),
2202
+ orderBy: {
2203
+ createdAt: order
2204
+ }
2205
+ }, after ? {
2206
+ skip: 1,
2207
+ cursor: {
2208
+ id: after
2209
+ }
2210
+ } : {}))
2211
+ ];
2212
+ case 1:
2213
+ messages3 = _state.sent();
2214
+ return [
2215
+ 2,
2216
+ new Response(JSON.stringify({
2217
+ data: messages3.map(function(message) {
2218
+ return serializeMessage3({
2219
+ message: message
2220
+ });
2221
+ }),
2222
+ hasNextPage: function() {
2223
+ return messages3.length === parseInt(limit);
2224
+ },
2225
+ body: {
2226
+ last_id: (_last_id = (_last = last(messages3)) === null || _last === void 0 ? void 0 : _last.id) !== null && _last_id !== void 0 ? _last_id : null
2227
+ }
2228
+ }), {
2229
+ status: 200,
2230
+ headers: {
2231
+ "Content-Type": "application/json"
2232
+ }
2233
+ })
2234
+ ];
2235
+ }
2236
+ });
1660
2237
  });
1661
- });
2238
+ return function(urlString) {
2239
+ return _ref.apply(this, arguments);
2240
+ };
2241
+ }();
1662
2242
  };
1663
- // src/adapters/storage/prismaStorageAdapter/beta/threads/messages/index.ts
1664
- var messages3 = function(param) {
2243
+ // src/adapters/storage/prismaStorageAdapter/threads/messages/index.ts
2244
+ var messages2 = function(param) {
1665
2245
  var prisma = param.prisma;
1666
2246
  return {
1667
- list: list({
2247
+ post: post7({
1668
2248
  prisma: prisma
1669
2249
  }),
1670
- create: create2({
2250
+ get: get({
1671
2251
  prisma: prisma
1672
2252
  })
1673
2253
  };
1674
2254
  };
1675
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/list.ts
2255
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/get.ts
1676
2256
  import { assign as assign4, last as last2 } from "radash";
1677
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/serializeRun.ts
1678
- import dayjs6 from "dayjs";
2257
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/serializeRun.ts
2258
+ import dayjs5 from "dayjs";
1679
2259
  var serializeRun = function(param) {
1680
- var run = param.run;
2260
+ var run2 = param.run;
1681
2261
  return {
1682
- id: run.id,
2262
+ id: run2.id,
1683
2263
  object: "thread.run",
1684
- created_at: dayjs6(run.createdAt).unix(),
1685
- thread_id: run.threadId,
1686
- assistant_id: run.assistantId,
1687
- status: run.status.toLowerCase(),
1688
- required_action: run.requiredAction,
1689
- last_error: run.lastError,
1690
- expires_at: dayjs6(run.expiresAt).unix(),
1691
- started_at: run.startedAt ? dayjs6(run.startedAt).unix() : null,
1692
- cancelled_at: run.cancelledAt ? dayjs6(run.cancelledAt).unix() : null,
1693
- failed_at: run.failedAt ? dayjs6(run.failedAt).unix() : null,
1694
- completed_at: run.completedAt ? dayjs6(run.completedAt).unix() : null,
1695
- model: run.model,
1696
- instructions: run.instructions,
1697
- tools: run.tools,
1698
- metadata: run.metadata,
1699
- usage: run.usage,
2264
+ created_at: dayjs5(run2.createdAt).unix(),
2265
+ thread_id: run2.threadId,
2266
+ assistant_id: run2.assistantId,
2267
+ status: run2.status.toLowerCase(),
2268
+ required_action: run2.requiredAction,
2269
+ last_error: run2.lastError,
2270
+ expires_at: dayjs5(run2.expiresAt).unix(),
2271
+ started_at: run2.startedAt ? dayjs5(run2.startedAt).unix() : null,
2272
+ cancelled_at: run2.cancelledAt ? dayjs5(run2.cancelledAt).unix() : null,
2273
+ failed_at: run2.failedAt ? dayjs5(run2.failedAt).unix() : null,
2274
+ completed_at: run2.completedAt ? dayjs5(run2.completedAt).unix() : null,
2275
+ model: run2.model,
2276
+ instructions: run2.instructions,
2277
+ tools: run2.tools,
2278
+ metadata: run2.metadata,
2279
+ usage: run2.usage,
2280
+ truncation_strategy: {
2281
+ type: "auto"
2282
+ },
2283
+ response_format: {
2284
+ type: "text"
2285
+ },
1700
2286
  // TODO
1701
2287
  incomplete_details: null,
1702
2288
  max_completion_tokens: null,
1703
2289
  max_prompt_tokens: null,
1704
- response_format: "auto",
1705
2290
  tool_choice: "auto",
1706
- truncation_strategy: {
1707
- type: "auto",
1708
- last_messages: null
1709
- }
2291
+ parallel_tool_calls: true
1710
2292
  };
1711
2293
  };
1712
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/list.ts
1713
- var list2 = function(param) {
1714
- var prisma = param.prisma;
1715
- return /*#__PURE__*/ _async_to_generator(function() {
1716
- var _len, args, _key, _last2, threadId, _args_, _assign4, // @ts-ignore-next-line
1717
- limit, // @ts-ignore-next-line
1718
- order, // @ts-ignore-next-line
1719
- after, runs2, _last2_id;
1720
- var _arguments = arguments;
1721
- return _ts_generator(this, function(_state) {
1722
- switch(_state.label){
1723
- case 0:
1724
- for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1725
- args[_key] = _arguments[_key];
1726
- }
1727
- threadId = args[0];
1728
- _assign4 = assign4({
1729
- // @ts-ignore-next-line
1730
- limit: 20,
1731
- order: "desc"
1732
- }, (_args_ = args[1]) !== null && _args_ !== void 0 ? _args_ : {}), limit = _assign4.limit, order = _assign4.order, after = _assign4.after;
1733
- return [
1734
- 4,
1735
- prisma.run.findMany(_object_spread({
1736
- where: {
1737
- threadId: threadId
1738
- },
1739
- take: limit,
1740
- orderBy: {
1741
- createdAt: order
1742
- }
1743
- }, after ? {
1744
- skip: 1,
1745
- cursor: {
1746
- id: after
1747
- }
1748
- } : {}))
1749
- ];
1750
- case 1:
1751
- runs2 = _state.sent();
1752
- return [
1753
- 2,
1754
- {
1755
- data: runs2.map(function(run) {
1756
- return serializeRun({
1757
- run: run
1758
- });
1759
- }),
1760
- hasNextPage: function() {
1761
- return runs2.length === limit;
1762
- },
1763
- body: {
1764
- last_id: (_last2_id = (_last2 = last2(runs2)) === null || _last2 === void 0 ? void 0 : _last2.id) !== null && _last2_id !== void 0 ? _last2_id : null
1765
- }
1766
- }
1767
- ];
1768
- }
1769
- });
1770
- });
1771
- };
1772
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/create.ts
1773
- import dayjs7 from "dayjs";
1774
- import { assign as assign5 } from "radash";
1775
- var create3 = function(param) {
2294
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/get.ts
2295
+ var get2 = function(param) {
1776
2296
  var prisma = param.prisma;
1777
- return /*#__PURE__*/ _async_to_generator(function() {
1778
- var _len, args, _key, threadId, assistant_id, assistant, _assign5, model, instructions, // additional_instructions,
1779
- tools, metadata, run;
1780
- var _arguments = arguments;
1781
- return _ts_generator(this, function(_state) {
1782
- switch(_state.label){
1783
- case 0:
1784
- for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1785
- args[_key] = _arguments[_key];
1786
- }
1787
- threadId = args[0];
1788
- assistant_id = args[1].assistant_id;
1789
- return [
1790
- 4,
1791
- prisma.assistant.findUnique({
1792
- where: {
1793
- id: assistant_id
1794
- }
1795
- })
1796
- ];
1797
- case 1:
1798
- assistant = _state.sent();
1799
- if (!assistant) {
1800
- throw new Error("Assistant not found");
1801
- }
1802
- _assign5 = assign5({
1803
- model: assistant.modelSlug,
1804
- instructions: "",
1805
- additional_instructions: null
1806
- }, args[1]), model = _assign5.model, instructions = _assign5.instructions, tools = _assign5.tools, metadata = _assign5.metadata;
1807
- return [
1808
- 4,
1809
- prisma.run.create({
1810
- data: {
1811
- status: "QUEUED",
1812
- expiresAt: dayjs7().add(1, "hour").unix(),
1813
- // @ts-ignore-next-line
1814
- model: model,
1815
- // @ts-ignore-next-line
1816
- instructions: instructions,
1817
- // @ts-ignore-next-line
1818
- tools: tools,
1819
- // @ts-ignore-next-line
1820
- metadata: metadata,
1821
- thread: {
1822
- connect: {
1823
- id: threadId
1824
- }
2297
+ return function() {
2298
+ var _ref = _async_to_generator(function(urlString) {
2299
+ var _last2, url, _url_pathname_match, threadId, _assign4, limit, order, after, runs2, _last2_id;
2300
+ return _ts_generator(this, function(_state) {
2301
+ switch(_state.label){
2302
+ case 0:
2303
+ url = new URL(urlString);
2304
+ _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp("^/v1/threads/([^/]+)/runs$")), 2), threadId = _url_pathname_match[1];
2305
+ _assign4 = assign4({
2306
+ limit: "20",
2307
+ order: "desc"
2308
+ }, Object.fromEntries(url.searchParams)), limit = _assign4.limit, order = _assign4.order, after = _assign4.after;
2309
+ return [
2310
+ 4,
2311
+ prisma.run.findMany(_object_spread({
2312
+ where: {
2313
+ threadId: threadId
1825
2314
  },
1826
- assistant: {
1827
- connect: {
1828
- id: assistant_id
1829
- }
2315
+ take: parseInt(limit),
2316
+ orderBy: {
2317
+ createdAt: order
1830
2318
  }
1831
- }
1832
- })
1833
- ];
1834
- case 2:
1835
- run = _state.sent();
1836
- return [
1837
- 2,
1838
- serializeRun({
1839
- run: run
1840
- })
1841
- ];
1842
- }
2319
+ }, after ? {
2320
+ skip: 1,
2321
+ cursor: {
2322
+ id: after
2323
+ }
2324
+ } : {}))
2325
+ ];
2326
+ case 1:
2327
+ runs2 = _state.sent();
2328
+ return [
2329
+ 2,
2330
+ new Response(JSON.stringify({
2331
+ data: runs2.map(function(run2) {
2332
+ return serializeRun({
2333
+ run: run2
2334
+ });
2335
+ }),
2336
+ hasNextPage: function() {
2337
+ return runs2.length === parseInt(limit);
2338
+ },
2339
+ body: {
2340
+ // @ts-ignore-next-line
2341
+ last_id: (_last2_id = (_last2 = last2(runs2)) === null || _last2 === void 0 ? void 0 : _last2.id) !== null && _last2_id !== void 0 ? _last2_id : null
2342
+ }
2343
+ }), {
2344
+ status: 200,
2345
+ headers: {
2346
+ "Content-Type": "application/json"
2347
+ }
2348
+ })
2349
+ ];
2350
+ }
2351
+ });
1843
2352
  });
1844
- });
2353
+ return function(urlString) {
2354
+ return _ref.apply(this, arguments);
2355
+ };
2356
+ }();
1845
2357
  };
1846
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/createAndStream.ts
1847
- import { assign as assign6 } from "radash";
1848
- import dayjs9 from "dayjs";
1849
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadRunInProgress.ts
2358
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/post.ts
2359
+ import dayjs7 from "dayjs";
2360
+ import { assign as assign5 } from "radash";
2361
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/onEvent/handlers/threadRunInProgress.ts
1850
2362
  var threadRunInProgress = function(param) {
1851
2363
  var prisma = param.prisma, event = param.event, controller = param.controller;
1852
2364
  controller.enqueue(event);
@@ -1859,7 +2371,7 @@ var threadRunInProgress = function(param) {
1859
2371
  }
1860
2372
  });
1861
2373
  };
1862
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadRunFailed.ts
2374
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/onEvent/handlers/threadRunFailed.ts
1863
2375
  var threadRunFailed = function(param) {
1864
2376
  var prisma = param.prisma, event = param.event, controller = param.controller;
1865
2377
  controller.enqueue(event);
@@ -1874,7 +2386,7 @@ var threadRunFailed = function(param) {
1874
2386
  }
1875
2387
  });
1876
2388
  };
1877
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadRunCompleted.ts
2389
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/onEvent/handlers/threadRunCompleted.ts
1878
2390
  var threadRunCompleted = function(param) {
1879
2391
  var prisma = param.prisma, event = param.event, controller = param.controller;
1880
2392
  controller.enqueue(event);
@@ -1888,7 +2400,7 @@ var threadRunCompleted = function(param) {
1888
2400
  }
1889
2401
  });
1890
2402
  };
1891
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadRunRequiresAction.ts
2403
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/onEvent/handlers/threadRunRequiresAction.ts
1892
2404
  var threadRunRequiresAction = function(param) {
1893
2405
  var prisma = param.prisma, event = param.event, controller = param.controller;
1894
2406
  controller.enqueue(event);
@@ -1902,14 +2414,14 @@ var threadRunRequiresAction = function(param) {
1902
2414
  }
1903
2415
  });
1904
2416
  };
1905
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/steps/serializeRunStep.ts
1906
- import dayjs8 from "dayjs";
2417
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/steps/serializeRunStep.ts
2418
+ import dayjs6 from "dayjs";
1907
2419
  var serializeRunStep = function(param) {
1908
2420
  var runStep = param.runStep;
1909
2421
  return {
1910
2422
  id: runStep.id,
1911
2423
  object: "thread.run.step",
1912
- created_at: dayjs8(runStep.createdAt).unix(),
2424
+ created_at: dayjs6(runStep.createdAt).unix(),
1913
2425
  assistant_id: runStep.assistantId,
1914
2426
  thread_id: runStep.threadId,
1915
2427
  run_id: runStep.runId,
@@ -1918,15 +2430,15 @@ var serializeRunStep = function(param) {
1918
2430
  // @ts-ignore-next-line
1919
2431
  step_details: runStep.stepDetails,
1920
2432
  last_error: runStep.lastError,
1921
- expired_at: runStep.expiredAt ? dayjs8(runStep.expiredAt).unix() : null,
1922
- cancelled_at: runStep.cancelledAt ? dayjs8(runStep.cancelledAt).unix() : null,
1923
- failed_at: runStep.failedAt ? dayjs8(runStep.failedAt).unix() : null,
1924
- completed_at: runStep.completedAt ? dayjs8(runStep.completedAt).unix() : null,
2433
+ expired_at: runStep.expiredAt ? dayjs6(runStep.expiredAt).unix() : null,
2434
+ cancelled_at: runStep.cancelledAt ? dayjs6(runStep.cancelledAt).unix() : null,
2435
+ failed_at: runStep.failedAt ? dayjs6(runStep.failedAt).unix() : null,
2436
+ completed_at: runStep.completedAt ? dayjs6(runStep.completedAt).unix() : null,
1925
2437
  metadata: runStep.metadata,
1926
2438
  usage: runStep.usage
1927
2439
  };
1928
2440
  };
1929
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadRunStepCreated.ts
2441
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/onEvent/handlers/threadRunStepCreated.ts
1930
2442
  var type = function(event) {
1931
2443
  if (event.data.type === "message_creation") return "MESSAGE_CREATION" /* MESSAGE_CREATION */ ;
1932
2444
  if (event.data.type === "tool_calls") return "TOOL_CALLS" /* TOOL_CALLS */ ;
@@ -1980,12 +2492,12 @@ var threadRunStepCreated = function() {
1980
2492
  return _ref.apply(this, arguments);
1981
2493
  };
1982
2494
  }();
1983
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadRunStepDelta.ts
2495
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/onEvent/handlers/threadRunStepDelta.ts
1984
2496
  var threadRunStepDelta = function(param) {
1985
2497
  var event = param.event, controller = param.controller;
1986
2498
  return controller.enqueue(event);
1987
2499
  };
1988
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadMessageCreated.ts
2500
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/onEvent/handlers/threadMessageCreated.ts
1989
2501
  var status2 = function(event) {
1990
2502
  if (event.data.status === "completed") return "COMPLETED" /* COMPLETED */ ;
1991
2503
  if (event.data.status === "in_progress") return "IN_PROGRESS" /* IN_PROGRESS */ ;
@@ -2031,12 +2543,12 @@ var threadMessageCreated = function() {
2031
2543
  return _ref.apply(this, arguments);
2032
2544
  };
2033
2545
  }();
2034
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadMessageDelta.ts
2546
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/onEvent/handlers/threadMessageDelta.ts
2035
2547
  var threadMessageDelta = function(param) {
2036
2548
  var event = param.event, controller = param.controller;
2037
2549
  return controller.enqueue(event);
2038
2550
  };
2039
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadMessageCompleted.ts
2551
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/onEvent/handlers/threadMessageCompleted.ts
2040
2552
  var threadMessageCompleted = function() {
2041
2553
  var _ref = _async_to_generator(function(param) {
2042
2554
  var prisma, event, controller, latestRunStep;
@@ -2106,7 +2618,7 @@ var threadMessageCompleted = function() {
2106
2618
  return _ref.apply(this, arguments);
2107
2619
  };
2108
2620
  }();
2109
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/index.ts
2621
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/onEvent/handlers/index.ts
2110
2622
  var handlers = {
2111
2623
  "thread.run.in_progress": threadRunInProgress,
2112
2624
  "thread.run.failed": threadRunFailed,
@@ -2118,7 +2630,7 @@ var handlers = {
2118
2630
  "thread.message.delta": threadMessageDelta,
2119
2631
  "thread.message.completed": threadMessageCompleted
2120
2632
  };
2121
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/index.ts
2633
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/onEvent/index.ts
2122
2634
  var onEvent = function(param) {
2123
2635
  var prisma = param.prisma, controller = param.controller;
2124
2636
  return function(event) {
@@ -2134,708 +2646,694 @@ var onEvent = function(param) {
2134
2646
  });
2135
2647
  };
2136
2648
  };
2137
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/getMessages.ts
2649
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/getMessages.ts
2650
+ var getTake = function(param) {
2651
+ var run2 = param.run;
2652
+ if (run2.truncationStrategy.type === "auto") {
2653
+ return null;
2654
+ }
2655
+ if (run2.truncationStrategy.type === "last_messages") {
2656
+ if (!run2.truncationStrategy.last_messages) {
2657
+ throw new Error("Truncation strategy last_messages is required");
2658
+ }
2659
+ return -run2.truncationStrategy.last_messages;
2660
+ }
2661
+ throw new Error("Unsupported truncation strategy type: ".concat(run2.truncationStrategy.type));
2662
+ };
2138
2663
  var getMessages = function(param) {
2139
- var prisma = param.prisma, run = param.run;
2664
+ var prisma = param.prisma, run2 = param.run;
2665
+ return /*#__PURE__*/ _async_to_generator(function() {
2666
+ var take, messages3;
2667
+ return _ts_generator(this, function(_state) {
2668
+ switch(_state.label){
2669
+ case 0:
2670
+ take = getTake({
2671
+ run: run2
2672
+ });
2673
+ return [
2674
+ 4,
2675
+ prisma.message.findMany(_object_spread({
2676
+ where: {
2677
+ threadId: run2.threadId
2678
+ },
2679
+ include: {
2680
+ run: {
2681
+ include: {
2682
+ runSteps: true
2683
+ }
2684
+ }
2685
+ },
2686
+ orderBy: {
2687
+ createdAt: "asc"
2688
+ }
2689
+ }, take ? {
2690
+ take: take
2691
+ } : {}))
2692
+ ];
2693
+ case 1:
2694
+ messages3 = _state.sent();
2695
+ return [
2696
+ 2,
2697
+ messages3.map(function(message) {
2698
+ return _object_spread_props(_object_spread({}, serializeMessage3({
2699
+ message: message
2700
+ })), {
2701
+ run: message.run ? _object_spread_props(_object_spread({}, serializeRun({
2702
+ run: message.run
2703
+ })), {
2704
+ runSteps: message.run.runSteps.map(function(runStep) {
2705
+ return serializeRunStep({
2706
+ runStep: runStep
2707
+ });
2708
+ })
2709
+ }) : null
2710
+ });
2711
+ })
2712
+ ];
2713
+ }
2714
+ });
2715
+ });
2716
+ };
2717
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/post.ts
2718
+ var post8 = function(param) {
2719
+ var prisma = param.prisma, runAdapter = param.runAdapter;
2140
2720
  return function() {
2141
- var _ref = _async_to_generator(function(param) {
2142
- var messagesHistoryLength, messages4;
2721
+ var _ref = _async_to_generator(function(urlString, options) {
2722
+ var url, _url_pathname_match, threadId, body, assistant_id, stream, assistant, _assign5, model, instructions, // additional_instructions,
2723
+ tools, metadata, response_format, truncation_strategy, run2, data, readableStream;
2143
2724
  return _ts_generator(this, function(_state) {
2144
2725
  switch(_state.label){
2145
2726
  case 0:
2146
- messagesHistoryLength = param.messagesHistoryLength;
2727
+ url = new URL(urlString);
2728
+ _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp("^/v1/threads/([^/]+)/runs$")), 2), threadId = _url_pathname_match[1];
2729
+ body = JSON.parse(options.body);
2730
+ assistant_id = body.assistant_id, stream = body.stream;
2147
2731
  return [
2148
2732
  4,
2149
- prisma.message.findMany({
2733
+ prisma.assistant.findUnique({
2150
2734
  where: {
2151
- threadId: run.threadId
2152
- },
2153
- include: {
2154
- run: {
2155
- include: {
2156
- runSteps: true
2735
+ id: assistant_id
2736
+ }
2737
+ })
2738
+ ];
2739
+ case 1:
2740
+ assistant = _state.sent();
2741
+ if (!assistant) {
2742
+ throw new Error("Assistant not found");
2743
+ }
2744
+ _assign5 = assign5({
2745
+ model: assistant.modelSlug,
2746
+ instructions: "",
2747
+ additional_instructions: null,
2748
+ truncation_strategy: {
2749
+ type: "auto"
2750
+ },
2751
+ response_format: {
2752
+ type: "text"
2753
+ }
2754
+ }, body), model = _assign5.model, instructions = _assign5.instructions, tools = _assign5.tools, metadata = _assign5.metadata, response_format = _assign5.response_format, truncation_strategy = _assign5.truncation_strategy;
2755
+ return [
2756
+ 4,
2757
+ prisma.run.create({
2758
+ data: {
2759
+ status: "QUEUED",
2760
+ expiresAt: dayjs7().add(1, "hour").unix(),
2761
+ model: model,
2762
+ instructions: instructions,
2763
+ tools: tools,
2764
+ metadata: metadata,
2765
+ thread: {
2766
+ connect: {
2767
+ id: threadId
2768
+ }
2769
+ },
2770
+ assistant: {
2771
+ connect: {
2772
+ id: assistant_id
2773
+ }
2774
+ },
2775
+ truncationStrategy: truncation_strategy,
2776
+ responseFormat: response_format
2777
+ }
2778
+ })
2779
+ ];
2780
+ case 2:
2781
+ run2 = _state.sent();
2782
+ data = serializeRun({
2783
+ run: run2
2784
+ });
2785
+ readableStream = new ReadableStream({
2786
+ start: function start(controller) {
2787
+ return _async_to_generator(function() {
2788
+ return _ts_generator(this, function(_state) {
2789
+ switch(_state.label){
2790
+ case 0:
2791
+ return [
2792
+ 4,
2793
+ runAdapter({
2794
+ run: data,
2795
+ onEvent: onEvent({
2796
+ controller: _object_spread_props(_object_spread({}, controller), {
2797
+ enqueue: function(data2) {
2798
+ controller.enqueue("data: ".concat(JSON.stringify(data2), "\n\n"));
2799
+ }
2800
+ }),
2801
+ prisma: prisma
2802
+ }),
2803
+ getMessages: getMessages({
2804
+ prisma: prisma,
2805
+ run: run2
2806
+ })
2807
+ })
2808
+ ];
2809
+ case 1:
2810
+ _state.sent();
2811
+ controller.close();
2812
+ return [
2813
+ 2
2814
+ ];
2157
2815
  }
2816
+ });
2817
+ })();
2818
+ }
2819
+ });
2820
+ if (stream) {
2821
+ return [
2822
+ 2,
2823
+ new Response(readableStream, {
2824
+ headers: {
2825
+ "Content-Type": "text/event-stream"
2158
2826
  }
2159
- },
2160
- take: -messagesHistoryLength,
2161
- orderBy: {
2162
- createdAt: "asc"
2827
+ })
2828
+ ];
2829
+ } else {
2830
+ return [
2831
+ 2,
2832
+ new Response(JSON.stringify(data), {
2833
+ status: 200,
2834
+ headers: {
2835
+ "Content-Type": "application/json"
2836
+ }
2837
+ })
2838
+ ];
2839
+ }
2840
+ return [
2841
+ 2
2842
+ ];
2843
+ }
2844
+ });
2845
+ });
2846
+ return function(urlString, options) {
2847
+ return _ref.apply(this, arguments);
2848
+ };
2849
+ }();
2850
+ };
2851
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/index.ts
2852
+ var runs = function(param) {
2853
+ var prisma = param.prisma, runAdapter = param.runAdapter;
2854
+ return {
2855
+ get: get2({
2856
+ prisma: prisma
2857
+ }),
2858
+ post: post8({
2859
+ prisma: prisma,
2860
+ runAdapter: runAdapter
2861
+ })
2862
+ };
2863
+ };
2864
+ // src/adapters/storage/prismaStorageAdapter/threads/run/get.ts
2865
+ var get3 = function(param) {
2866
+ var prisma = param.prisma;
2867
+ return function() {
2868
+ var _ref = _async_to_generator(function(urlString) {
2869
+ var url, _url_pathname_match, threadId, runId, run2;
2870
+ return _ts_generator(this, function(_state) {
2871
+ switch(_state.label){
2872
+ case 0:
2873
+ url = new URL(urlString);
2874
+ _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];
2875
+ return [
2876
+ 4,
2877
+ prisma.run.findUnique({
2878
+ where: {
2879
+ id: runId,
2880
+ threadId: threadId
2163
2881
  }
2164
2882
  })
2165
2883
  ];
2166
2884
  case 1:
2167
- messages4 = _state.sent();
2885
+ run2 = _state.sent();
2168
2886
  return [
2169
2887
  2,
2170
- messages4.map(function(message) {
2171
- return _object_spread_props(_object_spread({}, serializeMessage3({
2172
- message: message
2173
- })), {
2174
- run: message.run ? _object_spread_props(_object_spread({}, serializeRun({
2175
- run: message.run
2176
- })), {
2177
- runSteps: message.run.runSteps.map(function(runStep) {
2178
- return serializeRunStep({
2179
- runStep: runStep
2180
- });
2181
- })
2182
- }) : null
2183
- });
2888
+ new Response(JSON.stringify(serializeRun({
2889
+ run: run2
2890
+ })), {
2891
+ status: 200,
2892
+ headers: {
2893
+ "Content-Type": "application/json",
2894
+ "openai-poll-after-ms": "5000"
2895
+ }
2896
+ })
2897
+ ];
2898
+ }
2899
+ });
2900
+ });
2901
+ return function(urlString) {
2902
+ return _ref.apply(this, arguments);
2903
+ };
2904
+ }();
2905
+ };
2906
+ // src/adapters/storage/prismaStorageAdapter/threads/run/index.ts
2907
+ var run = function(param) {
2908
+ var prisma = param.prisma, runAdapter = param.runAdapter;
2909
+ return {
2910
+ get: get3({
2911
+ prisma: prisma
2912
+ })
2913
+ };
2914
+ };
2915
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/steps/get.ts
2916
+ import { assign as assign6, last as last3 } from "radash";
2917
+ var get4 = function(param) {
2918
+ var prisma = param.prisma;
2919
+ return function() {
2920
+ var _ref = _async_to_generator(function(urlString) {
2921
+ var _last3, url, _url_pathname_match, threadId, runId, _assign6, limit, order, after, runSteps, _last3_id;
2922
+ return _ts_generator(this, function(_state) {
2923
+ switch(_state.label){
2924
+ case 0:
2925
+ url = new URL(urlString);
2926
+ _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];
2927
+ _assign6 = assign6({
2928
+ limit: "20",
2929
+ order: "desc"
2930
+ }, Object.fromEntries(url.searchParams)), limit = _assign6.limit, order = _assign6.order, after = _assign6.after;
2931
+ return [
2932
+ 4,
2933
+ prisma.runStep.findMany(_object_spread({
2934
+ where: {
2935
+ threadId: threadId,
2936
+ runId: runId
2937
+ },
2938
+ take: parseInt(limit),
2939
+ orderBy: {
2940
+ createdAt: order
2941
+ }
2942
+ }, after ? {
2943
+ skip: 1,
2944
+ cursor: {
2945
+ id: after
2946
+ }
2947
+ } : {}))
2948
+ ];
2949
+ case 1:
2950
+ runSteps = _state.sent();
2951
+ return [
2952
+ 2,
2953
+ new Response(JSON.stringify({
2954
+ data: runSteps.map(function(runStep) {
2955
+ return serializeRunStep({
2956
+ runStep: runStep
2957
+ });
2958
+ }),
2959
+ hasNextPage: function() {
2960
+ return runSteps.length === parseInt(limit);
2961
+ },
2962
+ body: {
2963
+ // @ts-ignore-next-line
2964
+ last_id: (_last3_id = (_last3 = last3(runSteps)) === null || _last3 === void 0 ? void 0 : _last3.id) !== null && _last3_id !== void 0 ? _last3_id : null
2965
+ }
2966
+ }), {
2967
+ status: 200,
2968
+ headers: {
2969
+ "Content-Type": "application/json"
2970
+ }
2184
2971
  })
2185
2972
  ];
2186
2973
  }
2187
2974
  });
2188
2975
  });
2189
- return function(_) {
2976
+ return function(urlString) {
2190
2977
  return _ref.apply(this, arguments);
2191
2978
  };
2192
2979
  }();
2193
2980
  };
2194
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/createAndStream.ts
2195
- var createAndStream = function(param) {
2196
- var prisma = param.prisma, runAdapter = param.runAdapter;
2197
- return function() {
2198
- for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
2199
- args[_key] = arguments[_key];
2200
- }
2201
- return new ReadableStream({
2202
- start: function start(controller) {
2203
- return _async_to_generator(function() {
2204
- var threadId, assistant_id, assistant, _assign6, model, instructions, // additional_instructions,
2205
- tools, metadata, response_format, run, data;
2206
- return _ts_generator(this, function(_state) {
2207
- switch(_state.label){
2208
- case 0:
2209
- threadId = args[0];
2210
- assistant_id = args[1].assistant_id;
2211
- return [
2212
- 4,
2213
- prisma.assistant.findUnique({
2214
- where: {
2215
- id: assistant_id
2216
- }
2217
- })
2218
- ];
2219
- case 1:
2220
- assistant = _state.sent();
2221
- if (!assistant) {
2222
- throw new Error("Assistant not found");
2223
- }
2224
- _assign6 = assign6({
2225
- model: assistant.modelSlug,
2226
- instructions: "",
2227
- additional_instructions: null
2228
- }, args[1]), model = _assign6.model, instructions = _assign6.instructions, tools = _assign6.tools, metadata = _assign6.metadata, response_format = _assign6.response_format;
2229
- return [
2230
- 4,
2231
- prisma.run.create({
2232
- data: {
2233
- status: "QUEUED",
2234
- expiresAt: dayjs9().add(1, "hour").unix(),
2235
- // @ts-ignore-next-line
2236
- model: model,
2237
- // @ts-ignore-next-line
2238
- instructions: instructions,
2239
- // @ts-ignore-next-line
2240
- tools: tools,
2241
- // @ts-ignore-next-line
2242
- metadata: metadata,
2243
- thread: {
2244
- connect: {
2245
- id: threadId
2246
- }
2247
- },
2248
- assistant: {
2249
- connect: {
2250
- id: assistant_id
2251
- }
2252
- }
2253
- }
2254
- })
2255
- ];
2256
- case 2:
2257
- run = _state.sent();
2258
- data = serializeRun({
2259
- run: run
2260
- });
2261
- controller.enqueue({
2262
- event: "thread.run.created",
2263
- data: data
2264
- });
2265
- return [
2266
- 4,
2267
- runAdapter({
2268
- run: data,
2269
- onEvent: onEvent({
2270
- controller: controller,
2271
- prisma: prisma
2272
- }),
2273
- getMessages: getMessages({
2274
- prisma: prisma,
2275
- run: run
2276
- }),
2277
- responseFormat: response_format
2278
- })
2279
- ];
2280
- case 3:
2281
- _state.sent();
2282
- console.log("Stream ended inside cloud storage");
2283
- controller.close();
2284
- return [
2285
- 2
2286
- ];
2287
- }
2288
- });
2289
- })();
2290
- }
2291
- });
2981
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/steps/index.ts
2982
+ var steps = function(param) {
2983
+ var prisma = param.prisma;
2984
+ return {
2985
+ get: get4({
2986
+ prisma: prisma
2987
+ })
2292
2988
  };
2293
2989
  };
2294
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/submitToolOutputs.ts
2295
- import dayjs10 from "dayjs";
2296
- var submitToolOutputs = function(param) {
2297
- var prisma = param.prisma, runAdapter = param.runAdapter;
2298
- return /*#__PURE__*/ _async_to_generator(function() {
2299
- var _len, args, _key, _args, threadId, runId, body, tool_outputs, run, data;
2300
- var _arguments = arguments;
2990
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/submitToolOutputs/post/updateRun.ts
2991
+ import dayjs8 from "dayjs";
2992
+ var updateRun = function() {
2993
+ var _ref = _async_to_generator(function(param) {
2994
+ var prisma, runId, threadId, _param_onThreadRunStepCompleted, onThreadRunStepCompleted, tool_outputs;
2301
2995
  return _ts_generator(this, function(_state) {
2302
- switch(_state.label){
2303
- case 0:
2304
- for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
2305
- args[_key] = _arguments[_key];
2306
- }
2307
- _args = _sliced_to_array(args, 3), threadId = _args[0], runId = _args[1], body = _args[2];
2308
- tool_outputs = body.tool_outputs;
2309
- return [
2310
- 4,
2311
- prisma.$transaction(function() {
2312
- var _ref = _async_to_generator(function(prisma2) {
2313
- var runSteps, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _loop, _iterator, _step, err;
2314
- return _ts_generator(this, function(_state) {
2315
- switch(_state.label){
2316
- case 0:
2317
- return [
2318
- 4,
2319
- prisma2.runStep.findMany({
2320
- where: {
2321
- threadId: threadId,
2322
- runId: runId,
2323
- type: "TOOL_CALLS",
2324
- status: "IN_PROGRESS"
2325
- }
2326
- })
2327
- ];
2328
- case 1:
2329
- runSteps = _state.sent();
2330
- _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
2331
- _state.label = 2;
2332
- case 2:
2333
- _state.trys.push([
2334
- 2,
2335
- 7,
2336
- 8,
2337
- 9
2338
- ]);
2339
- _loop = function() {
2340
- var runStep;
2341
- return _ts_generator(this, function(_state) {
2342
- switch(_state.label){
2343
- case 0:
2344
- runStep = _step.value;
2345
- return [
2346
- 4,
2347
- prisma2.runStep.update({
2348
- where: {
2349
- id: runStep.id
2350
- },
2351
- data: {
2352
- status: "COMPLETED",
2353
- completedAt: dayjs10().unix(),
2354
- stepDetails: {
2355
- type: "tool_calls",
2356
- tool_calls: runStep.stepDetails.tool_calls.map(function(toolCall) {
2357
- var toolOutput = tool_outputs.find(function(output) {
2358
- return output.tool_call_id === toolCall.id;
2359
- }) || tool_outputs[0];
2360
- if (!toolOutput) {
2361
- console.dir({
2362
- toolOutput: toolOutput,
2363
- runStep: runStep,
2364
- tool_outputs: tool_outputs,
2365
- runSteps: runSteps
2366
- }, {
2367
- depth: null
2368
- });
2369
- throw new Error("Tool output not found");
2370
- }
2371
- return {
2372
- id: toolCall.id,
2373
- type: toolCall.type,
2374
- function: _object_spread_props(_object_spread({}, toolCall.function), {
2375
- output: toolOutput.output
2376
- })
2377
- };
2378
- })
2379
- }
2380
- }
2381
- })
2382
- ];
2383
- case 1:
2384
- _state.sent();
2385
- return [
2386
- 2
2387
- ];
2388
- }
2389
- });
2390
- };
2391
- _iterator = runSteps[Symbol.iterator]();
2392
- _state.label = 3;
2393
- case 3:
2394
- if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
2395
- 3,
2396
- 6
2397
- ];
2398
- return [
2399
- 5,
2400
- _ts_values(_loop())
2401
- ];
2402
- case 4:
2403
- _state.sent();
2404
- _state.label = 5;
2405
- case 5:
2406
- _iteratorNormalCompletion = true;
2407
- return [
2408
- 3,
2409
- 3
2410
- ];
2411
- case 6:
2412
- return [
2413
- 3,
2414
- 9
2415
- ];
2416
- case 7:
2417
- err = _state.sent();
2418
- _didIteratorError = true;
2419
- _iteratorError = err;
2420
- return [
2421
- 3,
2422
- 9
2423
- ];
2424
- case 8:
2425
- try {
2426
- if (!_iteratorNormalCompletion && _iterator.return != null) {
2427
- _iterator.return();
2428
- }
2429
- } finally{
2430
- if (_didIteratorError) {
2431
- throw _iteratorError;
2432
- }
2996
+ 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;
2997
+ return [
2998
+ 2,
2999
+ prisma.$transaction(function() {
3000
+ var _ref = _async_to_generator(function(prisma2) {
3001
+ var runSteps, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _loop, _iterator, _step, err;
3002
+ return _ts_generator(this, function(_state) {
3003
+ switch(_state.label){
3004
+ case 0:
3005
+ return [
3006
+ 4,
3007
+ prisma2.runStep.findMany({
3008
+ where: {
3009
+ threadId: threadId,
3010
+ runId: runId,
3011
+ type: "TOOL_CALLS",
3012
+ status: "IN_PROGRESS"
3013
+ },
3014
+ orderBy: {
3015
+ createdAt: "asc"
2433
3016
  }
2434
- return [
2435
- 7
2436
- ];
2437
- case 9:
2438
- return [
2439
- 2,
2440
- prisma2.run.update({
2441
- where: {
2442
- id: runId
2443
- },
2444
- data: {
2445
- status: "QUEUED"
2446
- }
2447
- })
2448
- ];
2449
- }
2450
- });
2451
- });
2452
- return function(prisma2) {
2453
- return _ref.apply(this, arguments);
2454
- };
2455
- }())
2456
- ];
2457
- case 1:
2458
- run = _state.sent();
2459
- data = serializeRun({
2460
- run: run
2461
- });
2462
- return [
2463
- 4,
2464
- new Promise(function(resolve) {
2465
- return new ReadableStream({
2466
- start: function start(controller) {
2467
- return _async_to_generator(function() {
3017
+ })
3018
+ ];
3019
+ case 1:
3020
+ runSteps = _state.sent();
3021
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
3022
+ _state.label = 2;
3023
+ case 2:
3024
+ _state.trys.push([
3025
+ 2,
3026
+ 7,
3027
+ 8,
3028
+ 9
3029
+ ]);
3030
+ _loop = function() {
3031
+ var runStep, completedRunStep;
2468
3032
  return _ts_generator(this, function(_state) {
2469
3033
  switch(_state.label){
2470
3034
  case 0:
3035
+ runStep = _step.value;
2471
3036
  return [
2472
3037
  4,
2473
- runAdapter({
2474
- run: data,
2475
- onEvent: onEvent({
2476
- controller: controller,
2477
- prisma: prisma
2478
- }),
2479
- // @ts-ignore-next-line
2480
- getMessages: getMessages({
2481
- prisma: prisma,
2482
- run: run
2483
- })
3038
+ prisma2.runStep.update({
3039
+ where: {
3040
+ id: runStep.id
3041
+ },
3042
+ data: {
3043
+ status: "COMPLETED",
3044
+ completedAt: dayjs8().unix(),
3045
+ stepDetails: {
3046
+ type: "tool_calls",
3047
+ // @ts-ignore-next-line
3048
+ tool_calls: runStep.stepDetails.tool_calls.map(function(toolCall) {
3049
+ var toolOutput = tool_outputs.find(function(output) {
3050
+ return output.tool_call_id === toolCall.id;
3051
+ }) || tool_outputs[0];
3052
+ if (!toolOutput) {
3053
+ console.dir({
3054
+ toolOutput: toolOutput,
3055
+ runStep: runStep,
3056
+ tool_outputs: tool_outputs,
3057
+ runSteps: runSteps
3058
+ }, {
3059
+ depth: null
3060
+ });
3061
+ throw new Error("Tool output not found");
3062
+ }
3063
+ return {
3064
+ id: toolCall.id,
3065
+ type: toolCall.type,
3066
+ function: _object_spread_props(_object_spread({}, toolCall.function), {
3067
+ output: toolOutput.output
3068
+ })
3069
+ };
3070
+ })
3071
+ }
3072
+ }
2484
3073
  })
2485
3074
  ];
2486
3075
  case 1:
2487
- _state.sent();
2488
- controller.close();
2489
- resolve(void 0);
3076
+ completedRunStep = _state.sent();
3077
+ onThreadRunStepCompleted({
3078
+ runStep: completedRunStep
3079
+ });
2490
3080
  return [
2491
3081
  2
2492
3082
  ];
2493
3083
  }
2494
3084
  });
2495
- })();
2496
- }
2497
- });
2498
- })
2499
- ];
2500
- case 2:
2501
- _state.sent();
2502
- return [
2503
- 2,
2504
- data
2505
- ];
2506
- }
3085
+ };
3086
+ _iterator = runSteps[Symbol.iterator]();
3087
+ _state.label = 3;
3088
+ case 3:
3089
+ if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
3090
+ 3,
3091
+ 6
3092
+ ];
3093
+ return [
3094
+ 5,
3095
+ _ts_values(_loop())
3096
+ ];
3097
+ case 4:
3098
+ _state.sent();
3099
+ _state.label = 5;
3100
+ case 5:
3101
+ _iteratorNormalCompletion = true;
3102
+ return [
3103
+ 3,
3104
+ 3
3105
+ ];
3106
+ case 6:
3107
+ return [
3108
+ 3,
3109
+ 9
3110
+ ];
3111
+ case 7:
3112
+ err = _state.sent();
3113
+ _didIteratorError = true;
3114
+ _iteratorError = err;
3115
+ return [
3116
+ 3,
3117
+ 9
3118
+ ];
3119
+ case 8:
3120
+ try {
3121
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
3122
+ _iterator.return();
3123
+ }
3124
+ } finally{
3125
+ if (_didIteratorError) {
3126
+ throw _iteratorError;
3127
+ }
3128
+ }
3129
+ return [
3130
+ 7
3131
+ ];
3132
+ case 9:
3133
+ return [
3134
+ 2,
3135
+ prisma2.run.update({
3136
+ where: {
3137
+ id: runId
3138
+ },
3139
+ data: {
3140
+ status: "QUEUED"
3141
+ }
3142
+ })
3143
+ ];
3144
+ }
3145
+ });
3146
+ });
3147
+ return function(prisma2) {
3148
+ return _ref.apply(this, arguments);
3149
+ };
3150
+ }())
3151
+ ];
2507
3152
  });
2508
3153
  });
2509
- };
2510
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/submitToolOutputsStream.ts
2511
- import dayjs11 from "dayjs";
2512
- var submitToolOutputsStream = function(param) {
3154
+ return function updateRun(_) {
3155
+ return _ref.apply(this, arguments);
3156
+ };
3157
+ }();
3158
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/submitToolOutputs/post/index.ts
3159
+ var post9 = function(param) {
2513
3160
  var prisma = param.prisma, runAdapter = param.runAdapter;
2514
3161
  return function() {
2515
- for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
2516
- args[_key] = arguments[_key];
2517
- }
2518
- return new ReadableStream({
2519
- start: function start(controller) {
2520
- return _async_to_generator(function() {
2521
- var _args, threadId, runId, body, tool_outputs, run;
2522
- return _ts_generator(this, function(_state) {
2523
- switch(_state.label){
2524
- case 0:
2525
- _args = _sliced_to_array(args, 3), threadId = _args[0], runId = _args[1], body = _args[2];
2526
- tool_outputs = body.tool_outputs;
2527
- return [
2528
- 4,
2529
- prisma.$transaction(function() {
2530
- var _ref = _async_to_generator(function(prisma2) {
2531
- var runSteps, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _loop, _iterator, _step, err;
3162
+ var _ref = _async_to_generator(function(urlString, options) {
3163
+ var url, _url_pathname_match, threadId, runId, body, tool_outputs, stream, readableStream, run2;
3164
+ return _ts_generator(this, function(_state) {
3165
+ switch(_state.label){
3166
+ case 0:
3167
+ url = new URL(urlString);
3168
+ _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];
3169
+ body = JSON.parse(options.body);
3170
+ tool_outputs = body.tool_outputs, stream = body.stream;
3171
+ if (!stream) return [
3172
+ 3,
3173
+ 1
3174
+ ];
3175
+ readableStream = new ReadableStream({
3176
+ start: function start(controller) {
3177
+ return _async_to_generator(function() {
3178
+ var run2;
3179
+ return _ts_generator(this, function(_state) {
3180
+ switch(_state.label){
3181
+ case 0:
3182
+ return [
3183
+ 4,
3184
+ updateRun({
3185
+ prisma: prisma,
3186
+ runId: runId,
3187
+ threadId: threadId,
3188
+ tool_outputs: tool_outputs,
3189
+ onThreadRunStepCompleted: function() {
3190
+ var _ref = _async_to_generator(function(param) {
3191
+ var runStep;
3192
+ return _ts_generator(this, function(_state) {
3193
+ runStep = param.runStep;
3194
+ controller.enqueue("data: ".concat(JSON.stringify({
3195
+ event: "thread.run.step.completed",
3196
+ data: serializeRunStep({
3197
+ runStep: runStep
3198
+ })
3199
+ }), "\n\n"));
3200
+ return [
3201
+ 2
3202
+ ];
3203
+ });
3204
+ });
3205
+ return function(_) {
3206
+ return _ref.apply(this, arguments);
3207
+ };
3208
+ }()
3209
+ })
3210
+ ];
3211
+ case 1:
3212
+ run2 = _state.sent();
3213
+ return [
3214
+ 4,
3215
+ runAdapter({
3216
+ run: serializeRun({
3217
+ run: run2
3218
+ }),
3219
+ onEvent: onEvent({
3220
+ controller: _object_spread_props(_object_spread({}, controller), {
3221
+ enqueue: function(data) {
3222
+ controller.enqueue("data: ".concat(JSON.stringify(data), "\n\n"));
3223
+ }
3224
+ }),
3225
+ prisma: prisma
3226
+ }),
3227
+ getMessages: getMessages({
3228
+ prisma: prisma,
3229
+ run: run2
3230
+ })
3231
+ })
3232
+ ];
3233
+ case 2:
3234
+ _state.sent();
3235
+ controller.close();
3236
+ return [
3237
+ 2
3238
+ ];
3239
+ }
3240
+ });
3241
+ })();
3242
+ }
3243
+ });
3244
+ return [
3245
+ 2,
3246
+ new Response(readableStream, {
3247
+ headers: {
3248
+ "Content-Type": "text/event-stream"
3249
+ }
3250
+ })
3251
+ ];
3252
+ case 1:
3253
+ return [
3254
+ 4,
3255
+ updateRun({
3256
+ prisma: prisma,
3257
+ runId: runId,
3258
+ threadId: threadId,
3259
+ tool_outputs: tool_outputs
3260
+ })
3261
+ ];
3262
+ case 2:
3263
+ run2 = _state.sent();
3264
+ return [
3265
+ 4,
3266
+ new Promise(function(resolve) {
3267
+ return new ReadableStream({
3268
+ start: function start(controller) {
3269
+ return _async_to_generator(function() {
2532
3270
  return _ts_generator(this, function(_state) {
2533
3271
  switch(_state.label){
2534
3272
  case 0:
2535
3273
  return [
2536
3274
  4,
2537
- prisma2.runStep.findMany({
2538
- where: {
2539
- threadId: threadId,
2540
- runId: runId,
2541
- type: "TOOL_CALLS",
2542
- status: "IN_PROGRESS"
2543
- },
2544
- orderBy: {
2545
- createdAt: "asc"
2546
- }
3275
+ runAdapter({
3276
+ run: serializeRun({
3277
+ run: run2
3278
+ }),
3279
+ onEvent: onEvent({
3280
+ controller: _object_spread_props(_object_spread({}, controller), {
3281
+ enqueue: function(data) {
3282
+ controller.enqueue("data: ".concat(JSON.stringify(data), "\n\n"));
3283
+ }
3284
+ }),
3285
+ prisma: prisma
3286
+ }),
3287
+ getMessages: getMessages({
3288
+ prisma: prisma,
3289
+ run: run2
3290
+ })
2547
3291
  })
2548
3292
  ];
2549
3293
  case 1:
2550
- runSteps = _state.sent();
2551
- _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
2552
- _state.label = 2;
2553
- case 2:
2554
- _state.trys.push([
2555
- 2,
2556
- 7,
2557
- 8,
2558
- 9
2559
- ]);
2560
- _loop = function() {
2561
- var runStep, completedRunStep;
2562
- return _ts_generator(this, function(_state) {
2563
- switch(_state.label){
2564
- case 0:
2565
- runStep = _step.value;
2566
- return [
2567
- 4,
2568
- prisma2.runStep.update({
2569
- where: {
2570
- id: runStep.id
2571
- },
2572
- data: {
2573
- status: "COMPLETED",
2574
- completedAt: dayjs11().unix(),
2575
- stepDetails: {
2576
- type: "tool_calls",
2577
- tool_calls: runStep.stepDetails.tool_calls.map(function(toolCall) {
2578
- var toolOutput = tool_outputs.find(function(output) {
2579
- return output.tool_call_id === toolCall.id;
2580
- }) || tool_outputs[0];
2581
- if (!toolOutput) {
2582
- console.dir({
2583
- toolOutput: toolOutput,
2584
- runStep: runStep,
2585
- tool_outputs: tool_outputs,
2586
- runSteps: runSteps
2587
- }, {
2588
- depth: null
2589
- });
2590
- throw new Error("Tool output not found");
2591
- }
2592
- return {
2593
- id: toolCall.id,
2594
- type: toolCall.type,
2595
- function: _object_spread_props(_object_spread({}, toolCall.function), {
2596
- output: toolOutput.output
2597
- })
2598
- };
2599
- })
2600
- }
2601
- }
2602
- })
2603
- ];
2604
- case 1:
2605
- completedRunStep = _state.sent();
2606
- controller.enqueue({
2607
- event: "thread.run.step.completed",
2608
- data: serializeRunStep({
2609
- runStep: completedRunStep
2610
- })
2611
- });
2612
- return [
2613
- 2
2614
- ];
2615
- }
2616
- });
2617
- };
2618
- _iterator = runSteps[Symbol.iterator]();
2619
- _state.label = 3;
2620
- case 3:
2621
- if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
2622
- 3,
2623
- 6
2624
- ];
2625
- return [
2626
- 5,
2627
- _ts_values(_loop())
2628
- ];
2629
- case 4:
2630
3294
  _state.sent();
2631
- _state.label = 5;
2632
- case 5:
2633
- _iteratorNormalCompletion = true;
2634
- return [
2635
- 3,
2636
- 3
2637
- ];
2638
- case 6:
2639
- return [
2640
- 3,
2641
- 9
2642
- ];
2643
- case 7:
2644
- err = _state.sent();
2645
- _didIteratorError = true;
2646
- _iteratorError = err;
2647
- return [
2648
- 3,
2649
- 9
2650
- ];
2651
- case 8:
2652
- try {
2653
- if (!_iteratorNormalCompletion && _iterator.return != null) {
2654
- _iterator.return();
2655
- }
2656
- } finally{
2657
- if (_didIteratorError) {
2658
- throw _iteratorError;
2659
- }
2660
- }
2661
- return [
2662
- 7
2663
- ];
2664
- case 9:
3295
+ controller.close();
3296
+ resolve(void 0);
2665
3297
  return [
2666
- 2,
2667
- prisma2.run.update({
2668
- where: {
2669
- id: runId
2670
- },
2671
- data: {
2672
- status: "QUEUED"
2673
- }
2674
- })
3298
+ 2
2675
3299
  ];
2676
3300
  }
2677
3301
  });
2678
- });
2679
- return function(prisma2) {
2680
- return _ref.apply(this, arguments);
2681
- };
2682
- }())
2683
- ];
2684
- case 1:
2685
- run = _state.sent();
2686
- return [
2687
- 4,
2688
- runAdapter({
2689
- run: serializeRun({
2690
- run: run
2691
- }),
2692
- onEvent: onEvent({
2693
- controller: controller,
2694
- prisma: prisma
2695
- }),
2696
- // @ts-ignore-next-line
2697
- getMessages: getMessages({
2698
- prisma: prisma,
2699
- run: run
2700
- })
2701
- })
2702
- ];
2703
- case 2:
2704
- _state.sent();
2705
- console.log("Stream ended inside cloud storage");
2706
- controller.close();
2707
- return [
2708
- 2
2709
- ];
2710
- }
2711
- });
2712
- })();
2713
- }
2714
- });
2715
- };
2716
- };
2717
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/steps/list.ts
2718
- import { assign as assign7, last as last3 } from "radash";
2719
- var list3 = function(param) {
2720
- var prisma = param.prisma;
2721
- return /*#__PURE__*/ _async_to_generator(function() {
2722
- var _len, args, _key, _last3, threadId, runId, _args_, _assign7, // @ts-ignore-next-line
2723
- limit, // @ts-ignore-next-line
2724
- order, // @ts-ignore-next-line
2725
- after, runSteps, _last3_id;
2726
- var _arguments = arguments;
2727
- return _ts_generator(this, function(_state) {
2728
- switch(_state.label){
2729
- case 0:
2730
- for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
2731
- args[_key] = _arguments[_key];
2732
- }
2733
- threadId = args[0];
2734
- runId = args[1];
2735
- _assign7 = assign7({
2736
- // @ts-ignore-next-line
2737
- limit: 20,
2738
- order: "desc",
2739
- after: null
2740
- }, (_args_ = args[2]) !== null && _args_ !== void 0 ? _args_ : {}), limit = _assign7.limit, order = _assign7.order, after = _assign7.after;
2741
- return [
2742
- 4,
2743
- prisma.runStep.findMany(_object_spread({
2744
- where: {
2745
- threadId: threadId,
2746
- runId: runId
2747
- },
2748
- take: limit,
2749
- orderBy: {
2750
- createdAt: order
2751
- }
2752
- }, after ? {
2753
- skip: 1,
2754
- cursor: {
2755
- id: after
2756
- }
2757
- } : {}))
2758
- ];
2759
- case 1:
2760
- runSteps = _state.sent();
2761
- return [
2762
- 2,
2763
- {
2764
- data: runSteps.map(function(runStep) {
2765
- return serializeRunStep({
2766
- runStep: runStep
3302
+ })();
3303
+ }
2767
3304
  });
2768
- }),
2769
- hasNextPage: function() {
2770
- return runSteps.length === limit;
2771
- },
2772
- body: {
2773
- last_id: (_last3_id = (_last3 = last3(runSteps)) === null || _last3 === void 0 ? void 0 : _last3.id) !== null && _last3_id !== void 0 ? _last3_id : null
2774
- }
2775
- }
2776
- ];
2777
- }
3305
+ })
3306
+ ];
3307
+ case 3:
3308
+ _state.sent();
3309
+ return [
3310
+ 2,
3311
+ new Response(JSON.stringify(run2), {
3312
+ status: 200,
3313
+ headers: {
3314
+ "Content-Type": "application/json"
3315
+ }
3316
+ })
3317
+ ];
3318
+ case 4:
3319
+ return [
3320
+ 2
3321
+ ];
3322
+ }
3323
+ });
2778
3324
  });
2779
- });
2780
- };
2781
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/steps/index.ts
2782
- var steps = function(param) {
2783
- var prisma = param.prisma;
2784
- return {
2785
- list: list3({
2786
- prisma: prisma
2787
- })
2788
- };
2789
- };
2790
- // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/index.ts
2791
- var runs = function(param) {
2792
- var prisma = param.prisma, runAdapter = param.runAdapter;
2793
- return {
2794
- list: list2({
2795
- prisma: prisma
2796
- }),
2797
- create: create3({
2798
- prisma: prisma
2799
- }),
2800
- createAndStream: createAndStream({
2801
- prisma: prisma,
2802
- runAdapter: runAdapter
2803
- }),
2804
- submitToolOutputs: submitToolOutputs({
2805
- prisma: prisma,
2806
- runAdapter: runAdapter
2807
- }),
2808
- submitToolOutputsStream: submitToolOutputsStream({
2809
- prisma: prisma,
2810
- runAdapter: runAdapter
2811
- }),
2812
- steps: steps({
2813
- prisma: prisma
2814
- })
2815
- };
2816
- };
2817
- // src/adapters/storage/prismaStorageAdapter/beta/threads/index.ts
2818
- var threads = function(param) {
2819
- var prisma = param.prisma, runAdapter = param.runAdapter;
2820
- return {
2821
- create: create({
2822
- prisma: prisma
2823
- }),
2824
- messages: messages3({
2825
- prisma: prisma
2826
- }),
2827
- runs: runs({
2828
- prisma: prisma,
2829
- runAdapter: runAdapter
2830
- })
2831
- };
3325
+ return function(urlString, options) {
3326
+ return _ref.apply(this, arguments);
3327
+ };
3328
+ }();
2832
3329
  };
2833
- // src/adapters/storage/prismaStorageAdapter/beta/index.ts
2834
- var beta = function(param) {
3330
+ // src/adapters/storage/prismaStorageAdapter/threads/runs/submitToolOutputs/index.ts
3331
+ var submitToolOutputs = function(param) {
2835
3332
  var prisma = param.prisma, runAdapter = param.runAdapter;
2836
3333
  return {
2837
- threads: threads({
3334
+ post: post9({
2838
3335
  prisma: prisma,
3336
+ // @ts-ignore-next-line
2839
3337
  runAdapter: runAdapter
2840
3338
  })
2841
3339
  };
@@ -2846,12 +3344,29 @@ var prismaStorageAdapter = function(param) {
2846
3344
  return function(param) {
2847
3345
  var runAdapter = param.runAdapter;
2848
3346
  return {
2849
- beta: beta({
3347
+ "^/v1/threads$": threads({
3348
+ prisma: prisma
3349
+ }),
3350
+ "^/v1/threads/([^/]+)/messages$": messages2({
3351
+ prisma: prisma
3352
+ }),
3353
+ "^/v1/threads/([^/]+)/runs$": runs({
3354
+ prisma: prisma,
3355
+ runAdapter: runAdapter
3356
+ }),
3357
+ "^/v1/threads/([^/]+)/runs/([^/]+)$": run({
3358
+ prisma: prisma,
3359
+ runAdapter: runAdapter
3360
+ }),
3361
+ "^/v1/threads/([^/]+)/runs/([^/]+)/steps$": steps({
3362
+ prisma: prisma
3363
+ }),
3364
+ "^/v1/threads/([^/]+)/runs/([^/]+)/submit_tool_outputs$": submitToolOutputs({
2850
3365
  prisma: prisma,
2851
3366
  runAdapter: runAdapter
2852
3367
  })
2853
3368
  };
2854
3369
  };
2855
3370
  };
2856
- export { anthropicClientAdapter, anthropicRunAdapter, completionsRunAdapter, mistralClientAdapter, perplexityClientAdapter, prismaStorageAdapter, supercompat };
3371
+ export { anthropicClientAdapter, completionsRunAdapter, groqClientAdapter, mistralClientAdapter, openaiClientAdapter, perplexityClientAdapter, prismaStorageAdapter, supercompat };
2857
3372
  //# sourceMappingURL=index.js.map