supercompat 3.1.0-beta.5 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -435,10 +435,16 @@ var storageRequestHandlers = function(param) {
435
435
  var storage = param.storage, runAdapter = param.runAdapter, client = param.client;
436
436
  if (!storage) return {};
437
437
  if (!runAdapter) return {};
438
+ var wrappedClient = supercompat({
439
+ client: client
440
+ });
438
441
  var result = storage({
439
- runAdapter: (0, import_radash.partob)(runAdapter, {
440
- client: client
441
- })
442
+ runAdapter: _object_spread_props(_object_spread({}, runAdapter), {
443
+ handleRun: (0, import_radash.partob)(runAdapter.handleRun, {
444
+ client: wrappedClient
445
+ })
446
+ }),
447
+ client: wrappedClient
442
448
  });
443
449
  return result.requestHandlers;
444
450
  };
@@ -462,21 +468,53 @@ var findRequestHandler = function(param) {
462
468
  }
463
469
  };
464
470
  // src/supercompatFetch/originalFetch.ts
465
- var originalFetch = function(param) {
466
- var args = param.args, client = param.client;
467
- var _client_client;
468
- if ((_client_client = client.client) === null || _client_client === void 0 ? void 0 : _client_client.fetch) {
469
- var _args = _sliced_to_array(args, 2), url = _args[0], options = _args[1];
470
- var headers = _object_spread_props(_object_spread({}, options.headers), {
471
- authorization: client.client.defaultHeaders().Authorization
471
+ var originalFetch = /*#__PURE__*/ function() {
472
+ var _ref = _async_to_generator(function(param) {
473
+ var args, client, _client_client, _args, url, options, clientHeaders, newOptions;
474
+ return _ts_generator(this, function(_state) {
475
+ switch(_state.label){
476
+ case 0:
477
+ args = param.args, client = param.client;
478
+ if (!((_client_client = client.client) === null || _client_client === void 0 ? void 0 : _client_client.fetch)) return [
479
+ 3,
480
+ 2
481
+ ];
482
+ _args = _sliced_to_array(args, 2), url = _args[0], options = _args[1];
483
+ return [
484
+ 4,
485
+ client.client.buildHeaders({
486
+ options: {},
487
+ method: args[1].method.toLowerCase(),
488
+ bodyHeaders: args[1].headers,
489
+ retryCount: 0
490
+ })
491
+ ];
492
+ case 1:
493
+ clientHeaders = _state.sent();
494
+ clientHeaders.set("Authorization", "Bearer ".concat(client.client.apiKey));
495
+ newOptions = _object_spread_props(_object_spread({}, options), {
496
+ headers: clientHeaders
497
+ });
498
+ return [
499
+ 2,
500
+ client.client.fetch(url, newOptions)
501
+ ];
502
+ case 2:
503
+ return [
504
+ 2,
505
+ fetch.apply(void 0, _to_consumable_array(args))
506
+ ];
507
+ case 3:
508
+ return [
509
+ 2
510
+ ];
511
+ }
472
512
  });
473
- return client.client.fetch(url, _object_spread_props(_object_spread({}, options), {
474
- headers: headers
475
- }));
476
- } else {
477
- return fetch.apply(void 0, _to_consumable_array(args));
478
- }
479
- };
513
+ });
514
+ return function originalFetch(_) {
515
+ return _ref.apply(this, arguments);
516
+ };
517
+ }();
480
518
  // src/supercompatFetch/index.ts
481
519
  var supercompatFetch = function(param) {
482
520
  var client = param.client, storage = param.storage, runAdapter = param.runAdapter;
@@ -3288,11 +3326,11 @@ var serializeMessage3 = function(param) {
3288
3326
  message: message
3289
3327
  })
3290
3328
  ];
3291
- var run4 = message.run;
3292
- if (!run4) return result;
3329
+ var run3 = message.run;
3330
+ if (!run3) return result;
3293
3331
  var messageToolCalls = ((_message_metadata = message.metadata) === null || _message_metadata === void 0 ? void 0 : _message_metadata.toolCalls) || [];
3294
3332
  messageToolCalls.forEach(function(tc) {
3295
- var runStep = run4.runSteps.find(function(rs) {
3333
+ var runStep = run3.runSteps.find(function(rs) {
3296
3334
  if (rs.type !== "tool_calls") return false;
3297
3335
  return rs.step_details.tool_calls.some(function(rsTc) {
3298
3336
  if (rsTc.type !== "function") return false;
@@ -3313,15 +3351,15 @@ var serializeMessage3 = function(param) {
3313
3351
  // src/adapters/run/completionsRunAdapter/messages/index.ts
3314
3352
  var messages = /*#__PURE__*/ function() {
3315
3353
  var _ref = _async_to_generator(function(param) {
3316
- var run4, getMessages2, _, _1, _2;
3354
+ var run3, getMessages2, _, _1, _2;
3317
3355
  return _ts_generator(this, function(_state) {
3318
3356
  switch(_state.label){
3319
3357
  case 0:
3320
- run4 = param.run, getMessages2 = param.getMessages;
3321
- _1 = (_ = _to_consumable_array(run4.instructions ? [
3358
+ run3 = param.run, getMessages2 = param.getMessages;
3359
+ _1 = (_ = _to_consumable_array(run3.instructions ? [
3322
3360
  {
3323
3361
  role: "system",
3324
- content: run4.instructions
3362
+ content: run3.instructions
3325
3363
  }
3326
3364
  ] : [])).concat;
3327
3365
  _2 = (0, import_radash5.flat);
@@ -3420,190 +3458,117 @@ var toolCallsData = function(param) {
3420
3458
  return newToolCalls;
3421
3459
  };
3422
3460
  var completionsRunAdapter = function() {
3423
- return /*#__PURE__*/ function() {
3424
- var _ref = _async_to_generator(function(param) {
3425
- var clientAdapter, run4, onEvent2, getMessages2, client, opts, _tmp, providerResponse, e, _e_cause, _e_message, _e_cause_message, message, toolCallsRunStep, currentContent, currentToolCalls, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, chunk, _chunk_choices, choices, choice, delta, _delta_content, err;
3426
- return _ts_generator(this, function(_state) {
3427
- switch(_state.label){
3428
- case 0:
3429
- clientAdapter = param.client, run4 = param.run, onEvent2 = param.onEvent, getMessages2 = param.getMessages;
3430
- if (run4.status !== "queued") return [
3431
- 2
3432
- ];
3433
- client = supercompat({
3434
- client: clientAdapter
3435
- });
3436
- onEvent2({
3437
- event: "thread.run.in_progress",
3438
- data: _object_spread_props(_object_spread({}, run4), {
3439
- status: "in_progress"
3440
- })
3441
- });
3442
- _tmp = {};
3443
- return [
3444
- 4,
3445
- messages({
3446
- run: run4,
3447
- getMessages: getMessages2
3448
- })
3449
- ];
3450
- case 1:
3451
- opts = _object_spread.apply(void 0, [
3452
- (_tmp.messages = _state.sent(), _tmp.model = run4.model, _tmp.stream = true, _tmp.response_format = run4.response_format, _tmp),
3453
- (0, import_radash6.isEmpty)(run4.tools) ? {} : {
3454
- tools: run4.tools
3455
- }
3456
- ]);
3457
- _state.label = 2;
3458
- case 2:
3459
- _state.trys.push([
3460
- 2,
3461
- 4,
3462
- ,
3463
- 5
3464
- ]);
3465
- return [
3466
- 4,
3467
- client.chat.completions.create(opts)
3468
- ];
3469
- case 3:
3470
- providerResponse = _state.sent();
3471
- return [
3472
- 3,
3473
- 5
3474
- ];
3475
- case 4:
3476
- e = _state.sent();
3477
- console.error(e);
3478
- return [
3479
- 2,
3480
- onEvent2({
3481
- event: "thread.run.failed",
3482
- data: _object_spread_props(_object_spread({}, run4), {
3483
- failed_at: (0, import_dayjs.default)().unix(),
3484
- status: "in_progress",
3485
- last_error: {
3486
- code: "server_error",
3487
- message: "".concat((_e_message = e === null || e === void 0 ? void 0 : e.message) !== null && _e_message !== void 0 ? _e_message : "", " ").concat((_e_cause_message = e === null || e === void 0 ? void 0 : (_e_cause = e.cause) === null || _e_cause === void 0 ? void 0 : _e_cause.message) !== null && _e_cause_message !== void 0 ? _e_cause_message : "")
3488
- }
3489
- })
3490
- })
3491
- ];
3492
- case 5:
3493
- return [
3494
- 4,
3461
+ return {
3462
+ handleRun: /*#__PURE__*/ function() {
3463
+ var _ref = _async_to_generator(function(param) {
3464
+ var client, run3, onEvent2, getMessages2, opts, _tmp, providerResponse, e, _e_cause, _e_message, _e_cause_message, message, toolCallsRunStep, currentContent, currentToolCalls, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, chunk, _chunk_choices, choices, choice, delta, _delta_content, err;
3465
+ return _ts_generator(this, function(_state) {
3466
+ switch(_state.label){
3467
+ case 0:
3468
+ client = param.client, run3 = param.run, onEvent2 = param.onEvent, getMessages2 = param.getMessages;
3469
+ if (run3.status !== "queued") return [
3470
+ 2
3471
+ ];
3495
3472
  onEvent2({
3496
- event: "thread.message.created",
3497
- data: {
3498
- id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
3499
- object: "thread.message",
3500
- completed_at: null,
3501
- run_id: run4.id,
3502
- created_at: (0, import_dayjs.default)().unix(),
3503
- assistant_id: run4.assistant_id,
3504
- incomplete_at: null,
3505
- incomplete_details: null,
3506
- metadata: {},
3507
- attachments: [],
3508
- thread_id: run4.thread_id,
3509
- content: [
3510
- {
3511
- text: {
3512
- value: "",
3513
- annotations: []
3514
- },
3515
- type: "text"
3516
- }
3517
- ],
3518
- role: "assistant",
3473
+ event: "thread.run.in_progress",
3474
+ data: _object_spread_props(_object_spread({}, run3), {
3519
3475
  status: "in_progress"
3476
+ })
3477
+ });
3478
+ _tmp = {};
3479
+ return [
3480
+ 4,
3481
+ messages({
3482
+ run: run3,
3483
+ getMessages: getMessages2
3484
+ })
3485
+ ];
3486
+ case 1:
3487
+ opts = _object_spread.apply(void 0, [
3488
+ (_tmp.messages = _state.sent(), _tmp.model = run3.model, _tmp.stream = true, _tmp.response_format = run3.response_format, _tmp),
3489
+ (0, import_radash6.isEmpty)(run3.tools) ? {} : {
3490
+ tools: run3.tools
3520
3491
  }
3521
- })
3522
- ];
3523
- case 6:
3524
- message = _state.sent();
3525
- onEvent2({
3526
- event: "thread.run.step.created",
3527
- data: {
3528
- id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
3529
- object: "thread.run.step",
3530
- run_id: run4.id,
3531
- assistant_id: run4.assistant_id,
3532
- thread_id: run4.thread_id,
3533
- type: "message_creation",
3534
- status: "completed",
3535
- completed_at: (0, import_dayjs.default)().unix(),
3536
- created_at: (0, import_dayjs.default)().unix(),
3537
- expired_at: null,
3538
- last_error: null,
3539
- metadata: {},
3540
- failed_at: null,
3541
- cancelled_at: null,
3542
- usage: null,
3543
- step_details: {
3544
- type: "message_creation",
3545
- message_creation: {
3546
- message_id: message.id
3492
+ ]);
3493
+ _state.label = 2;
3494
+ case 2:
3495
+ _state.trys.push([
3496
+ 2,
3497
+ 4,
3498
+ ,
3499
+ 5
3500
+ ]);
3501
+ return [
3502
+ 4,
3503
+ client.chat.completions.create(opts)
3504
+ ];
3505
+ case 3:
3506
+ providerResponse = _state.sent();
3507
+ return [
3508
+ 3,
3509
+ 5
3510
+ ];
3511
+ case 4:
3512
+ e = _state.sent();
3513
+ console.error(e);
3514
+ return [
3515
+ 2,
3516
+ onEvent2({
3517
+ event: "thread.run.failed",
3518
+ data: _object_spread_props(_object_spread({}, run3), {
3519
+ failed_at: (0, import_dayjs.default)().unix(),
3520
+ status: "in_progress",
3521
+ last_error: {
3522
+ code: "server_error",
3523
+ message: "".concat((_e_message = e === null || e === void 0 ? void 0 : e.message) !== null && _e_message !== void 0 ? _e_message : "", " ").concat((_e_cause_message = e === null || e === void 0 ? void 0 : (_e_cause = e.cause) === null || _e_cause === void 0 ? void 0 : _e_cause.message) !== null && _e_cause_message !== void 0 ? _e_cause_message : "")
3524
+ }
3525
+ })
3526
+ })
3527
+ ];
3528
+ case 5:
3529
+ return [
3530
+ 4,
3531
+ onEvent2({
3532
+ event: "thread.message.created",
3533
+ data: {
3534
+ id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
3535
+ object: "thread.message",
3536
+ completed_at: null,
3537
+ run_id: run3.id,
3538
+ created_at: (0, import_dayjs.default)().unix(),
3539
+ assistant_id: run3.assistant_id,
3540
+ incomplete_at: null,
3541
+ incomplete_details: null,
3542
+ metadata: {},
3543
+ attachments: [],
3544
+ thread_id: run3.thread_id,
3545
+ content: [
3546
+ {
3547
+ text: {
3548
+ value: "",
3549
+ annotations: []
3550
+ },
3551
+ type: "text"
3552
+ }
3553
+ ],
3554
+ role: "assistant",
3555
+ status: "in_progress"
3547
3556
  }
3548
- }
3549
- }
3550
- });
3551
- currentContent = "";
3552
- _iteratorAbruptCompletion = false, _didIteratorError = false;
3553
- _state.label = 7;
3554
- case 7:
3555
- _state.trys.push([
3556
- 7,
3557
- 15,
3558
- 16,
3559
- 21
3560
- ]);
3561
- _iterator = _async_iterator(providerResponse);
3562
- _state.label = 8;
3563
- case 8:
3564
- return [
3565
- 4,
3566
- _iterator.next()
3567
- ];
3568
- case 9:
3569
- if (!(_iteratorAbruptCompletion = !(_step = _state.sent()).done)) return [
3570
- 3,
3571
- 14
3572
- ];
3573
- _value = _step.value;
3574
- chunk = _value;
3575
- choices = (_chunk_choices = chunk.choices) !== null && _chunk_choices !== void 0 ? _chunk_choices : [];
3576
- choice = choices[0];
3577
- if (!choice) return [
3578
- 3,
3579
- 13
3580
- ];
3581
- delta = choice.delta;
3582
- if (delta.content) {
3583
- ;
3584
- currentContent = "".concat(currentContent).concat((_delta_content = delta.content) !== null && _delta_content !== void 0 ? _delta_content : "");
3585
- }
3586
- if (!delta.tool_calls) return [
3587
- 3,
3588
- 12
3589
- ];
3590
- if (!!toolCallsRunStep) return [
3591
- 3,
3592
- 11
3593
- ];
3594
- return [
3595
- 4,
3557
+ })
3558
+ ];
3559
+ case 6:
3560
+ message = _state.sent();
3596
3561
  onEvent2({
3597
3562
  event: "thread.run.step.created",
3598
3563
  data: {
3599
3564
  id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
3600
3565
  object: "thread.run.step",
3601
- run_id: run4.id,
3602
- assistant_id: run4.assistant_id,
3603
- thread_id: run4.thread_id,
3604
- type: "tool_calls",
3605
- status: "in_progress",
3606
- completed_at: null,
3566
+ run_id: run3.id,
3567
+ assistant_id: run3.assistant_id,
3568
+ thread_id: run3.thread_id,
3569
+ type: "message_creation",
3570
+ status: "completed",
3571
+ completed_at: (0, import_dayjs.default)().unix(),
3607
3572
  created_at: (0, import_dayjs.default)().unix(),
3608
3573
  expired_at: null,
3609
3574
  last_error: null,
@@ -3612,170 +3577,242 @@ var completionsRunAdapter = function() {
3612
3577
  cancelled_at: null,
3613
3578
  usage: null,
3614
3579
  step_details: {
3615
- type: "tool_calls",
3616
- tool_calls: []
3580
+ type: "message_creation",
3581
+ message_creation: {
3582
+ message_id: message.id
3583
+ }
3617
3584
  }
3618
3585
  }
3619
- })
3620
- ];
3621
- case 10:
3622
- toolCallsRunStep = _state.sent();
3623
- _state.label = 11;
3624
- case 11:
3625
- onEvent2({
3626
- event: "thread.run.step.delta",
3627
- data: {
3628
- object: "thread.run.step.delta",
3629
- run_id: run4.id,
3630
- id: toolCallsRunStep.id,
3631
- delta: {
3632
- step_details: {
3586
+ });
3587
+ currentContent = "";
3588
+ _iteratorAbruptCompletion = false, _didIteratorError = false;
3589
+ _state.label = 7;
3590
+ case 7:
3591
+ _state.trys.push([
3592
+ 7,
3593
+ 15,
3594
+ 16,
3595
+ 21
3596
+ ]);
3597
+ _iterator = _async_iterator(providerResponse);
3598
+ _state.label = 8;
3599
+ case 8:
3600
+ return [
3601
+ 4,
3602
+ _iterator.next()
3603
+ ];
3604
+ case 9:
3605
+ if (!(_iteratorAbruptCompletion = !(_step = _state.sent()).done)) return [
3606
+ 3,
3607
+ 14
3608
+ ];
3609
+ _value = _step.value;
3610
+ chunk = _value;
3611
+ choices = (_chunk_choices = chunk.choices) !== null && _chunk_choices !== void 0 ? _chunk_choices : [];
3612
+ choice = choices[0];
3613
+ if (!choice) return [
3614
+ 3,
3615
+ 13
3616
+ ];
3617
+ delta = choice.delta;
3618
+ if (delta.content) {
3619
+ ;
3620
+ currentContent = "".concat(currentContent).concat((_delta_content = delta.content) !== null && _delta_content !== void 0 ? _delta_content : "");
3621
+ }
3622
+ if (!delta.tool_calls) return [
3623
+ 3,
3624
+ 12
3625
+ ];
3626
+ if (!!toolCallsRunStep) return [
3627
+ 3,
3628
+ 11
3629
+ ];
3630
+ return [
3631
+ 4,
3632
+ onEvent2({
3633
+ event: "thread.run.step.created",
3634
+ data: {
3635
+ id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
3636
+ object: "thread.run.step",
3637
+ run_id: run3.id,
3638
+ assistant_id: run3.assistant_id,
3639
+ thread_id: run3.thread_id,
3633
3640
  type: "tool_calls",
3634
- tool_calls: delta.tool_calls.map(function(tc) {
3635
- return _object_spread({
3636
- id: (0, import_radash6.uid)(24),
3637
- type: "function"
3638
- }, tc);
3639
- })
3641
+ status: "in_progress",
3642
+ completed_at: null,
3643
+ created_at: (0, import_dayjs.default)().unix(),
3644
+ expired_at: null,
3645
+ last_error: null,
3646
+ metadata: {},
3647
+ failed_at: null,
3648
+ cancelled_at: null,
3649
+ usage: null,
3650
+ step_details: {
3651
+ type: "tool_calls",
3652
+ tool_calls: []
3653
+ }
3640
3654
  }
3641
- }
3642
- }
3643
- });
3644
- currentToolCalls = toolCallsData({
3645
- prevToolCalls: currentToolCalls,
3646
- delta: delta
3647
- });
3648
- _state.label = 12;
3649
- case 12:
3650
- if (delta.content) {
3655
+ })
3656
+ ];
3657
+ case 10:
3658
+ toolCallsRunStep = _state.sent();
3659
+ _state.label = 11;
3660
+ case 11:
3651
3661
  onEvent2({
3652
- event: "thread.message.delta",
3662
+ event: "thread.run.step.delta",
3653
3663
  data: {
3654
- id: message.id,
3664
+ object: "thread.run.step.delta",
3665
+ run_id: run3.id,
3666
+ id: toolCallsRunStep.id,
3655
3667
  delta: {
3656
- content: [
3657
- {
3658
- type: "text",
3659
- index: 0,
3660
- text: {
3661
- value: delta.content
3662
- }
3663
- }
3664
- ]
3668
+ step_details: {
3669
+ type: "tool_calls",
3670
+ tool_calls: delta.tool_calls.map(function(tc) {
3671
+ return _object_spread({
3672
+ id: (0, import_radash6.uid)(24),
3673
+ type: "function"
3674
+ }, tc);
3675
+ })
3676
+ }
3665
3677
  }
3666
3678
  }
3667
3679
  });
3668
- }
3669
- _state.label = 13;
3670
- case 13:
3671
- _iteratorAbruptCompletion = false;
3672
- return [
3673
- 3,
3674
- 8
3675
- ];
3676
- case 14:
3677
- return [
3678
- 3,
3679
- 21
3680
- ];
3681
- case 15:
3682
- err = _state.sent();
3683
- _didIteratorError = true;
3684
- _iteratorError = err;
3685
- return [
3686
- 3,
3687
- 21
3688
- ];
3689
- case 16:
3690
- _state.trys.push([
3691
- 16,
3692
- ,
3693
- 19,
3694
- 20
3695
- ]);
3696
- if (!(_iteratorAbruptCompletion && _iterator.return != null)) return [
3697
- 3,
3698
- 18
3699
- ];
3700
- return [
3701
- 4,
3702
- _iterator.return()
3703
- ];
3704
- case 17:
3705
- _state.sent();
3706
- _state.label = 18;
3707
- case 18:
3708
- return [
3709
- 3,
3710
- 20
3711
- ];
3712
- case 19:
3713
- if (_didIteratorError) {
3714
- throw _iteratorError;
3715
- }
3716
- return [
3717
- 7
3718
- ];
3719
- case 20:
3720
- return [
3721
- 7
3722
- ];
3723
- case 21:
3724
- return [
3725
- 4,
3726
- onEvent2({
3727
- event: "thread.message.completed",
3728
- data: _object_spread_props(_object_spread({}, message), {
3729
- status: "completed",
3730
- content: [
3731
- {
3732
- text: {
3733
- value: currentContent,
3734
- annotations: []
3735
- },
3736
- type: "text"
3737
- }
3738
- ],
3739
- tool_calls: currentToolCalls
3740
- })
3741
- })
3742
- ];
3743
- case 22:
3744
- message = _state.sent();
3745
- if ((0, import_radash6.isEmpty)(message.toolCalls)) {
3746
- return [
3747
- 2,
3680
+ currentToolCalls = toolCallsData({
3681
+ prevToolCalls: currentToolCalls,
3682
+ delta: delta
3683
+ });
3684
+ _state.label = 12;
3685
+ case 12:
3686
+ if (delta.content) {
3748
3687
  onEvent2({
3749
- event: "thread.run.completed",
3750
- data: _object_spread_props(_object_spread({}, run4), {
3751
- status: "completed",
3752
- completed_at: (0, import_dayjs.default)().unix()
3753
- })
3688
+ event: "thread.message.delta",
3689
+ data: {
3690
+ id: message.id,
3691
+ delta: {
3692
+ content: [
3693
+ {
3694
+ type: "text",
3695
+ index: 0,
3696
+ text: {
3697
+ value: delta.content
3698
+ }
3699
+ }
3700
+ ]
3701
+ }
3702
+ }
3703
+ });
3704
+ }
3705
+ _state.label = 13;
3706
+ case 13:
3707
+ _iteratorAbruptCompletion = false;
3708
+ return [
3709
+ 3,
3710
+ 8
3711
+ ];
3712
+ case 14:
3713
+ return [
3714
+ 3,
3715
+ 21
3716
+ ];
3717
+ case 15:
3718
+ err = _state.sent();
3719
+ _didIteratorError = true;
3720
+ _iteratorError = err;
3721
+ return [
3722
+ 3,
3723
+ 21
3724
+ ];
3725
+ case 16:
3726
+ _state.trys.push([
3727
+ 16,
3728
+ ,
3729
+ 19,
3730
+ 20
3731
+ ]);
3732
+ if (!(_iteratorAbruptCompletion && _iterator.return != null)) return [
3733
+ 3,
3734
+ 18
3735
+ ];
3736
+ return [
3737
+ 4,
3738
+ _iterator.return()
3739
+ ];
3740
+ case 17:
3741
+ _state.sent();
3742
+ _state.label = 18;
3743
+ case 18:
3744
+ return [
3745
+ 3,
3746
+ 20
3747
+ ];
3748
+ case 19:
3749
+ if (_didIteratorError) {
3750
+ throw _iteratorError;
3751
+ }
3752
+ return [
3753
+ 7
3754
+ ];
3755
+ case 20:
3756
+ return [
3757
+ 7
3758
+ ];
3759
+ case 21:
3760
+ return [
3761
+ 4,
3762
+ onEvent2({
3763
+ event: "thread.message.completed",
3764
+ data: _object_spread_props(_object_spread({}, message), {
3765
+ status: "completed",
3766
+ content: [
3767
+ {
3768
+ text: {
3769
+ value: currentContent,
3770
+ annotations: []
3771
+ },
3772
+ type: "text"
3773
+ }
3774
+ ],
3775
+ tool_calls: currentToolCalls
3776
+ })
3754
3777
  })
3755
3778
  ];
3756
- }
3757
- return [
3758
- 2,
3759
- onEvent2({
3760
- event: "thread.run.requires_action",
3761
- data: _object_spread_props(_object_spread({}, run4), {
3762
- status: "requires_action",
3763
- required_action: {
3764
- type: "submit_tool_outputs",
3765
- submit_tool_outputs: {
3766
- tool_calls: message.toolCalls
3779
+ case 22:
3780
+ message = _state.sent();
3781
+ if ((0, import_radash6.isEmpty)(message.toolCalls)) {
3782
+ return [
3783
+ 2,
3784
+ onEvent2({
3785
+ event: "thread.run.completed",
3786
+ data: _object_spread_props(_object_spread({}, run3), {
3787
+ status: "completed",
3788
+ completed_at: (0, import_dayjs.default)().unix()
3789
+ })
3790
+ })
3791
+ ];
3792
+ }
3793
+ return [
3794
+ 2,
3795
+ onEvent2({
3796
+ event: "thread.run.requires_action",
3797
+ data: _object_spread_props(_object_spread({}, run3), {
3798
+ status: "requires_action",
3799
+ required_action: {
3800
+ type: "submit_tool_outputs",
3801
+ submit_tool_outputs: {
3802
+ tool_calls: message.toolCalls
3803
+ }
3767
3804
  }
3768
- }
3805
+ })
3769
3806
  })
3770
- })
3771
- ];
3772
- }
3807
+ ];
3808
+ }
3809
+ });
3773
3810
  });
3774
- });
3775
- return function(_) {
3776
- return _ref.apply(this, arguments);
3777
- };
3778
- }();
3811
+ return function(_) {
3812
+ return _ref.apply(this, arguments);
3813
+ };
3814
+ }()
3815
+ };
3779
3816
  };
3780
3817
  // src/lib/messages/messagesRegexp.ts
3781
3818
  var messagesRegexp = "^/(?:v1|/?openai)/threads/([^/]+)/messages$";
@@ -4059,26 +4096,26 @@ var import_radash10 = require("radash");
4059
4096
  // src/adapters/storage/prismaStorageAdapter/threads/runs/serializeRun.ts
4060
4097
  var import_dayjs5 = __toESM(require("dayjs"), 1);
4061
4098
  var serializeRun = function(param) {
4062
- var run4 = param.run;
4099
+ var run3 = param.run;
4063
4100
  return {
4064
- id: run4.id,
4101
+ id: run3.id,
4065
4102
  object: "thread.run",
4066
- created_at: (0, import_dayjs5.default)(run4.createdAt).unix(),
4067
- thread_id: run4.threadId,
4068
- assistant_id: run4.assistantId,
4069
- status: run4.status.toLowerCase(),
4070
- required_action: run4.requiredAction,
4071
- last_error: run4.lastError,
4072
- expires_at: (0, import_dayjs5.default)(run4.expiresAt).unix(),
4073
- started_at: run4.startedAt ? (0, import_dayjs5.default)(run4.startedAt).unix() : null,
4074
- cancelled_at: run4.cancelledAt ? (0, import_dayjs5.default)(run4.cancelledAt).unix() : null,
4075
- failed_at: run4.failedAt ? (0, import_dayjs5.default)(run4.failedAt).unix() : null,
4076
- completed_at: run4.completedAt ? (0, import_dayjs5.default)(run4.completedAt).unix() : null,
4077
- model: run4.model,
4078
- instructions: run4.instructions,
4079
- tools: run4.tools,
4080
- metadata: run4.metadata,
4081
- usage: run4.usage,
4103
+ created_at: (0, import_dayjs5.default)(run3.createdAt).unix(),
4104
+ thread_id: run3.threadId,
4105
+ assistant_id: run3.assistantId,
4106
+ status: run3.status.toLowerCase(),
4107
+ required_action: run3.requiredAction,
4108
+ last_error: run3.lastError,
4109
+ expires_at: (0, import_dayjs5.default)(run3.expiresAt).unix(),
4110
+ started_at: run3.startedAt ? (0, import_dayjs5.default)(run3.startedAt).unix() : null,
4111
+ cancelled_at: run3.cancelledAt ? (0, import_dayjs5.default)(run3.cancelledAt).unix() : null,
4112
+ failed_at: run3.failedAt ? (0, import_dayjs5.default)(run3.failedAt).unix() : null,
4113
+ completed_at: run3.completedAt ? (0, import_dayjs5.default)(run3.completedAt).unix() : null,
4114
+ model: run3.model,
4115
+ instructions: run3.instructions,
4116
+ tools: run3.tools,
4117
+ metadata: run3.metadata,
4118
+ usage: run3.usage,
4082
4119
  truncation_strategy: {
4083
4120
  type: "auto"
4084
4121
  },
@@ -4132,9 +4169,9 @@ var get11 = function(param) {
4132
4169
  return [
4133
4170
  2,
4134
4171
  new Response(JSON.stringify({
4135
- data: runs3.map(function(run4) {
4172
+ data: runs3.map(function(run3) {
4136
4173
  return serializeRun({
4137
- run: run4
4174
+ run: run3
4138
4175
  });
4139
4176
  }),
4140
4177
  has_more: runsPlusOne.length > pageSize,
@@ -4447,33 +4484,33 @@ var onEvent = function(param) {
4447
4484
  };
4448
4485
  // src/adapters/storage/prismaStorageAdapter/threads/runs/getMessages.ts
4449
4486
  var getTake = function(param) {
4450
- var run4 = param.run;
4451
- if (run4.truncationStrategy.type === "auto") {
4487
+ var run3 = param.run;
4488
+ if (run3.truncationStrategy.type === "auto") {
4452
4489
  return null;
4453
4490
  }
4454
- if (run4.truncationStrategy.type === "last_messages") {
4455
- if (!run4.truncationStrategy.last_messages) {
4491
+ if (run3.truncationStrategy.type === "last_messages") {
4492
+ if (!run3.truncationStrategy.last_messages) {
4456
4493
  throw new Error("Truncation strategy last_messages is required");
4457
4494
  }
4458
- return -run4.truncationStrategy.last_messages;
4495
+ return -run3.truncationStrategy.last_messages;
4459
4496
  }
4460
- throw new Error("Unsupported truncation strategy type: ".concat(run4.truncationStrategy.type));
4497
+ throw new Error("Unsupported truncation strategy type: ".concat(run3.truncationStrategy.type));
4461
4498
  };
4462
4499
  var getMessages = function(param) {
4463
- var prisma = param.prisma, run4 = param.run;
4500
+ var prisma = param.prisma, run3 = param.run;
4464
4501
  return /*#__PURE__*/ _async_to_generator(function() {
4465
4502
  var take, messages4;
4466
4503
  return _ts_generator(this, function(_state) {
4467
4504
  switch(_state.label){
4468
4505
  case 0:
4469
4506
  take = getTake({
4470
- run: run4
4507
+ run: run3
4471
4508
  });
4472
4509
  return [
4473
4510
  4,
4474
4511
  prisma.message.findMany(_object_spread({
4475
4512
  where: {
4476
- threadId: run4.threadId
4513
+ threadId: run3.threadId
4477
4514
  },
4478
4515
  include: {
4479
4516
  run: {
@@ -4519,7 +4556,7 @@ var post12 = function(param) {
4519
4556
  return /*#__PURE__*/ function() {
4520
4557
  var _ref = _async_to_generator(function(urlString, options) {
4521
4558
  var url, _url_pathname_match, threadId, body, assistant_id, stream, assistant, _ref, model, instructions, // additional_instructions,
4522
- tools, metadata, response_format, truncation_strategy, run4, data, readableStream;
4559
+ tools, metadata, response_format, truncation_strategy, run3, data, readableStream;
4523
4560
  return _ts_generator(this, function(_state) {
4524
4561
  switch(_state.label){
4525
4562
  case 0:
@@ -4577,9 +4614,9 @@ var post12 = function(param) {
4577
4614
  })
4578
4615
  ];
4579
4616
  case 2:
4580
- run4 = _state.sent();
4617
+ run3 = _state.sent();
4581
4618
  data = serializeRun({
4582
- run: run4
4619
+ run: run3
4583
4620
  });
4584
4621
  readableStream = new ReadableStream({
4585
4622
  start: function start(controller) {
@@ -4596,7 +4633,7 @@ var post12 = function(param) {
4596
4633
  ]);
4597
4634
  return [
4598
4635
  4,
4599
- runAdapter({
4636
+ runAdapter.handleRun({
4600
4637
  run: data,
4601
4638
  onEvent: onEvent({
4602
4639
  controller: _object_spread_props(_object_spread({}, controller), {
@@ -4608,7 +4645,7 @@ var post12 = function(param) {
4608
4645
  }),
4609
4646
  getMessages: getMessages({
4610
4647
  prisma: prisma,
4611
- run: run4
4648
+ run: run3
4612
4649
  })
4613
4650
  })
4614
4651
  ];
@@ -4631,7 +4668,7 @@ var post12 = function(param) {
4631
4668
  })({
4632
4669
  event: "thread.run.failed",
4633
4670
  data: {
4634
- id: run4.id,
4671
+ id: run3.id,
4635
4672
  failed_at: (0, import_dayjs7.default)().unix(),
4636
4673
  last_error: {
4637
4674
  code: "server_error",
@@ -4702,7 +4739,7 @@ var get12 = function(param) {
4702
4739
  var prisma = param.prisma;
4703
4740
  return /*#__PURE__*/ function() {
4704
4741
  var _ref = _async_to_generator(function(urlString) {
4705
- var url, _url_pathname_match, threadId, runId, run4;
4742
+ var url, _url_pathname_match, threadId, runId, run3;
4706
4743
  return _ts_generator(this, function(_state) {
4707
4744
  switch(_state.label){
4708
4745
  case 0:
@@ -4718,11 +4755,11 @@ var get12 = function(param) {
4718
4755
  })
4719
4756
  ];
4720
4757
  case 1:
4721
- run4 = _state.sent();
4758
+ run3 = _state.sent();
4722
4759
  return [
4723
4760
  2,
4724
4761
  new Response(JSON.stringify(serializeRun({
4725
- run: run4
4762
+ run: run3
4726
4763
  })), {
4727
4764
  status: 200,
4728
4765
  headers: {
@@ -4740,7 +4777,7 @@ var get12 = function(param) {
4740
4777
  }();
4741
4778
  };
4742
4779
  // src/adapters/storage/prismaStorageAdapter/threads/run/index.ts
4743
- var run2 = function(param) {
4780
+ var run = function(param) {
4744
4781
  var prisma = param.prisma, runAdapter = param.runAdapter;
4745
4782
  return {
4746
4783
  get: get12({
@@ -4993,7 +5030,7 @@ var post13 = function(param) {
4993
5030
  var prisma = param.prisma, runAdapter = param.runAdapter;
4994
5031
  return /*#__PURE__*/ function() {
4995
5032
  var _ref = _async_to_generator(function(urlString, options) {
4996
- var url, _url_pathname_match, threadId, runId, body, tool_outputs, stream, readableStream, run4;
5033
+ var url, _url_pathname_match, threadId, runId, body, tool_outputs, stream, readableStream, run3;
4997
5034
  return _ts_generator(this, function(_state) {
4998
5035
  switch(_state.label){
4999
5036
  case 0:
@@ -5008,7 +5045,7 @@ var post13 = function(param) {
5008
5045
  readableStream = new ReadableStream({
5009
5046
  start: function start(controller) {
5010
5047
  return _async_to_generator(function() {
5011
- var run4;
5048
+ var run3;
5012
5049
  return _ts_generator(this, function(_state) {
5013
5050
  switch(_state.label){
5014
5051
  case 0:
@@ -5042,12 +5079,12 @@ var post13 = function(param) {
5042
5079
  })
5043
5080
  ];
5044
5081
  case 1:
5045
- run4 = _state.sent();
5082
+ run3 = _state.sent();
5046
5083
  return [
5047
5084
  4,
5048
- runAdapter({
5085
+ runAdapter.handleRun({
5049
5086
  run: serializeRun({
5050
- run: run4
5087
+ run: run3
5051
5088
  }),
5052
5089
  onEvent: onEvent({
5053
5090
  controller: _object_spread_props(_object_spread({}, controller), {
@@ -5059,7 +5096,7 @@ var post13 = function(param) {
5059
5096
  }),
5060
5097
  getMessages: getMessages({
5061
5098
  prisma: prisma,
5062
- run: run4
5099
+ run: run3
5063
5100
  })
5064
5101
  })
5065
5102
  ];
@@ -5093,7 +5130,7 @@ var post13 = function(param) {
5093
5130
  })
5094
5131
  ];
5095
5132
  case 2:
5096
- run4 = _state.sent();
5133
+ run3 = _state.sent();
5097
5134
  return [
5098
5135
  4,
5099
5136
  new Promise(function(resolve) {
@@ -5105,9 +5142,9 @@ var post13 = function(param) {
5105
5142
  case 0:
5106
5143
  return [
5107
5144
  4,
5108
- runAdapter({
5145
+ runAdapter.handleRun({
5109
5146
  run: serializeRun({
5110
- run: run4
5147
+ run: run3
5111
5148
  }),
5112
5149
  onEvent: onEvent({
5113
5150
  controller: _object_spread_props(_object_spread({}, controller), {
@@ -5119,7 +5156,7 @@ var post13 = function(param) {
5119
5156
  }),
5120
5157
  getMessages: getMessages({
5121
5158
  prisma: prisma,
5122
- run: run4
5159
+ run: run3
5123
5160
  })
5124
5161
  })
5125
5162
  ];
@@ -5141,7 +5178,7 @@ var post13 = function(param) {
5141
5178
  _state.sent();
5142
5179
  return [
5143
5180
  2,
5144
- new Response(JSON.stringify(run4), {
5181
+ new Response(JSON.stringify(run3), {
5145
5182
  status: 200,
5146
5183
  headers: {
5147
5184
  "Content-Type": "application/json"
@@ -5250,7 +5287,7 @@ var prismaStorageAdapter = function(param) {
5250
5287
  })), _define_property(_obj, runsRegexp, runs({
5251
5288
  prisma: prisma,
5252
5289
  runAdapter: runAdapter
5253
- })), _define_property(_obj, runRegexp, run2({
5290
+ })), _define_property(_obj, runRegexp, run({
5254
5291
  prisma: prisma,
5255
5292
  runAdapter: runAdapter
5256
5293
  })), _define_property(_obj, stepsRegexp, steps({
@@ -5263,13 +5300,12 @@ var prismaStorageAdapter = function(param) {
5263
5300
  };
5264
5301
  };
5265
5302
  // src/adapters/storage/responsesStorageAdapter/threads/serializeThread.ts
5266
- var import_dayjs10 = __toESM(require("dayjs"), 1);
5267
5303
  var serializeThread2 = function(param) {
5268
5304
  var conversation = param.conversation;
5269
5305
  return {
5270
5306
  id: conversation.id,
5271
5307
  object: "thread",
5272
- created_at: (0, import_dayjs10.default)(conversation.created_at).unix(),
5308
+ created_at: conversation.created_at,
5273
5309
  metadata: conversation.metadata,
5274
5310
  // TODO
5275
5311
  tool_resources: null
@@ -5277,7 +5313,7 @@ var serializeThread2 = function(param) {
5277
5313
  };
5278
5314
  // src/adapters/storage/responsesStorageAdapter/threads/post.ts
5279
5315
  var post15 = function(param) {
5280
- var openai = param.openai;
5316
+ var client = param.client;
5281
5317
  return /*#__PURE__*/ function() {
5282
5318
  var _ref = _async_to_generator(function(urlString, options) {
5283
5319
  var body, messages4, metadata, conversation;
@@ -5289,7 +5325,7 @@ var post15 = function(param) {
5289
5325
  metadata = body.metadata || {};
5290
5326
  return [
5291
5327
  4,
5292
- openai.conversations.create({
5328
+ client.conversations.create({
5293
5329
  metadata: metadata,
5294
5330
  items: messages4.map(function(message) {
5295
5331
  return {
@@ -5328,18 +5364,17 @@ var post15 = function(param) {
5328
5364
  };
5329
5365
  // src/adapters/storage/responsesStorageAdapter/threads/index.ts
5330
5366
  var threads2 = function(param) {
5331
- var openai = param.openai;
5367
+ var client = param.client;
5332
5368
  return {
5333
5369
  post: post15({
5334
- openai: openai
5370
+ client: client
5335
5371
  })
5336
5372
  };
5337
5373
  };
5338
5374
  // src/adapters/storage/responsesStorageAdapter/threads/messages/post.ts
5339
- var import_dayjs12 = __toESM(require("dayjs"), 1);
5375
+ var import_dayjs10 = __toESM(require("dayjs"), 1);
5340
5376
  var import_radash14 = require("radash");
5341
- // src/adapters/storage/responsesStorageAdapter/threads/messages/serializeMessage.ts
5342
- var import_dayjs11 = __toESM(require("dayjs"), 1);
5377
+ // src/lib/items/serializeItemAsMessage.ts
5343
5378
  var import_radash13 = require("radash");
5344
5379
  var serializeContent2 = function(param) {
5345
5380
  var item = param.item;
@@ -5371,14 +5406,16 @@ var serializeAttachments = function(param) {
5371
5406
  };
5372
5407
  var serializeMetadata = function(param) {
5373
5408
  var item = param.item;
5374
- return {};
5409
+ return {
5410
+ item: JSON.stringify(item)
5411
+ };
5375
5412
  };
5376
- var serializeMessage5 = function(param) {
5377
- var item = param.item, initialCreatedAt = param.initialCreatedAt, index = param.index, threadId = param.threadId;
5413
+ var serializeItemAsMessage = function(param) {
5414
+ var item = param.item, threadId = param.threadId, openaiAssistant = param.openaiAssistant, createdAt = param.createdAt, _param_runId = param.runId, runId = _param_runId === void 0 ? null : _param_runId, tmp = param.status, status3 = tmp === void 0 ? "completed" : tmp;
5378
5415
  return {
5379
5416
  id: item.id || (0, import_radash13.uid)(24),
5380
5417
  object: "thread.message",
5381
- created_at: (0, import_dayjs11.default)(initialCreatedAt).add(index, "seconds").unix(),
5418
+ created_at: createdAt,
5382
5419
  thread_id: threadId,
5383
5420
  completed_at: null,
5384
5421
  incomplete_at: null,
@@ -5387,18 +5424,19 @@ var serializeMessage5 = function(param) {
5387
5424
  content: serializeContent2({
5388
5425
  item: item
5389
5426
  }),
5390
- assistant_id: null,
5391
- run_id: null,
5427
+ assistant_id: item.role === "assistant" ? openaiAssistant.id : null,
5428
+ run_id: runId,
5392
5429
  attachments: serializeAttachments({
5393
5430
  item: item
5394
5431
  }),
5395
- status: typeof item.status === "string" ? item.status : "completed",
5432
+ status: typeof item.status === "string" ? item.status : status3,
5396
5433
  metadata: serializeMetadata({
5397
5434
  item: item
5398
5435
  })
5399
5436
  };
5400
5437
  };
5401
5438
  // src/adapters/storage/responsesStorageAdapter/threads/messages/post.ts
5439
+ var import_radash15 = require("radash");
5402
5440
  var messageContentBlocks2 = function(param) {
5403
5441
  var content = param.content;
5404
5442
  if ((0, import_radash14.isArray)(content)) {
@@ -5439,10 +5477,10 @@ var messageContentBlocks2 = function(param) {
5439
5477
  ];
5440
5478
  };
5441
5479
  var post16 = function(param) {
5442
- var openai = param.openai;
5480
+ var runAdapter = param.runAdapter, createResponseItems = param.createResponseItems;
5443
5481
  return /*#__PURE__*/ function() {
5444
5482
  var _ref = _async_to_generator(function(urlString, options) {
5445
- var url, _url_pathname_match, threadId, body, role, content, metadata, items;
5483
+ var url, _url_pathname_match, threadId, body, role, content, metadata, item, openaiAssistant;
5446
5484
  return _ts_generator(this, function(_state) {
5447
5485
  switch(_state.label){
5448
5486
  case 0:
@@ -5450,29 +5488,29 @@ var post16 = function(param) {
5450
5488
  _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp(messagesRegexp)), 2), threadId = _url_pathname_match[1];
5451
5489
  body = JSON.parse(options.body);
5452
5490
  role = body.role, content = body.content, metadata = body.metadata;
5491
+ item = {
5492
+ id: "msg_".concat((0, import_radash15.uid)(24)),
5493
+ status: "in_progress",
5494
+ type: "message",
5495
+ role: role,
5496
+ content: messageContentBlocks2({
5497
+ content: content
5498
+ })
5499
+ };
5500
+ createResponseItems.push(item);
5453
5501
  return [
5454
5502
  4,
5455
- openai.conversations.items.create(threadId, {
5456
- items: [
5457
- {
5458
- type: "message",
5459
- role: role,
5460
- content: messageContentBlocks2({
5461
- content: content
5462
- })
5463
- }
5464
- ]
5465
- })
5503
+ runAdapter.getOpenaiAssistant()
5466
5504
  ];
5467
5505
  case 1:
5468
- items = _state.sent();
5506
+ openaiAssistant = _state.sent();
5469
5507
  return [
5470
5508
  2,
5471
- new Response(JSON.stringify(serializeMessage5({
5472
- item: items.data[0],
5509
+ new Response(JSON.stringify(serializeItemAsMessage({
5510
+ item: item,
5473
5511
  threadId: threadId,
5474
- initialCreatedAt: (0, import_dayjs12.default)().subtract(1, "seconds").format(),
5475
- index: 0
5512
+ openaiAssistant: openaiAssistant,
5513
+ createdAt: (0, import_dayjs10.default)().unix()
5476
5514
  })), {
5477
5515
  status: 200,
5478
5516
  headers: {
@@ -5489,42 +5527,111 @@ var post16 = function(param) {
5489
5527
  }();
5490
5528
  };
5491
5529
  // src/adapters/storage/responsesStorageAdapter/threads/messages/get.ts
5492
- var import_radash15 = require("radash");
5493
- var import_dayjs13 = __toESM(require("dayjs"), 1);
5530
+ var import_radash16 = require("radash");
5531
+ // src/lib/items/responseId.ts
5532
+ function responseId(param) {
5533
+ var conversation = param.conversation, itemId = param.itemId;
5534
+ if (!conversation.metadata) return null;
5535
+ var metadata = conversation.metadata;
5536
+ var keys = Object.keys(metadata).map(function(k) {
5537
+ var m = /^responseItemsMap(\d+)$/.exec(k);
5538
+ return m ? {
5539
+ key: k,
5540
+ idx: Number(m[1])
5541
+ } : null;
5542
+ }).filter(function(x) {
5543
+ return !!x;
5544
+ }).sort(function(a, b) {
5545
+ return a.idx - b.idx;
5546
+ });
5547
+ for(var i = keys.length - 1; i >= 0; i--){
5548
+ var raw = metadata[keys[i].key];
5549
+ if (!raw || raw === "[]") continue;
5550
+ var arr = [];
5551
+ try {
5552
+ arr = JSON.parse(raw);
5553
+ if (!Array.isArray(arr)) continue;
5554
+ } catch (e) {
5555
+ continue;
5556
+ }
5557
+ for(var j = arr.length - 1; j >= 0; j--){
5558
+ var _entry_itemIds;
5559
+ var entry = arr[j];
5560
+ if (entry === null || entry === void 0 ? void 0 : (_entry_itemIds = entry.itemIds) === null || _entry_itemIds === void 0 ? void 0 : _entry_itemIds.includes(itemId)) {
5561
+ return entry.responseId || null;
5562
+ }
5563
+ }
5564
+ }
5565
+ return null;
5566
+ }
5567
+ // src/adapters/storage/responsesStorageAdapter/threads/messages/get.ts
5494
5568
  var get14 = function(param) {
5495
- var openai = param.openai;
5569
+ var client = param.client, runAdapter = param.runAdapter;
5496
5570
  return /*#__PURE__*/ function() {
5497
5571
  var _ref = _async_to_generator(function(urlString) {
5498
- var url, _url_pathname_match, threadId, _ref, limit, order, after, items, initialCreatedAt;
5572
+ var url, _url_pathname_match, threadId, _ref, limit, order, after, conversation, sortOrder, items, itemsWithRunIds, responseMap, timestampedItems, openaiAssistant;
5499
5573
  return _ts_generator(this, function(_state) {
5500
5574
  switch(_state.label){
5501
5575
  case 0:
5502
5576
  url = new URL(urlString);
5503
5577
  _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp(messagesRegexp)), 2), threadId = _url_pathname_match[1];
5504
- _ref = (0, import_radash15.assign)({
5578
+ _ref = (0, import_radash16.assign)({
5505
5579
  limit: "20",
5506
5580
  order: "desc"
5507
5581
  }, Object.fromEntries(url.searchParams)), limit = _ref.limit, order = _ref.order, after = _ref.after;
5508
5582
  return [
5509
5583
  4,
5510
- openai.conversations.items.list(threadId, {
5511
- limit: parseInt(limit),
5584
+ client.conversations.retrieve(threadId)
5585
+ ];
5586
+ case 1:
5587
+ conversation = _state.sent();
5588
+ sortOrder = order === "asc" ? "asc" : "desc";
5589
+ return [
5590
+ 4,
5591
+ client.conversations.items.list(threadId, {
5592
+ limit: parseInt(limit, 10),
5512
5593
  after: after,
5513
- order: order
5594
+ order: sortOrder
5514
5595
  })
5515
5596
  ];
5516
- case 1:
5597
+ case 2:
5517
5598
  items = _state.sent();
5518
- initialCreatedAt = (0, import_dayjs13.default)().subtract(items.data.length, "seconds").format();
5599
+ itemsWithRunIds = mapItemsWithRunIds({
5600
+ conversation: conversation,
5601
+ items: items.data
5602
+ });
5603
+ return [
5604
+ 4,
5605
+ fetchResponsesForItems({
5606
+ client: client,
5607
+ items: itemsWithRunIds
5608
+ })
5609
+ ];
5610
+ case 3:
5611
+ responseMap = _state.sent();
5612
+ timestampedItems = assignTimestamps({
5613
+ items: itemsWithRunIds,
5614
+ responseMap: responseMap,
5615
+ sortOrder: sortOrder,
5616
+ conversationCreatedAt: conversation.created_at
5617
+ });
5618
+ return [
5619
+ 4,
5620
+ runAdapter.getOpenaiAssistant()
5621
+ ];
5622
+ case 4:
5623
+ openaiAssistant = _state.sent();
5519
5624
  return [
5520
5625
  2,
5521
5626
  new Response(JSON.stringify({
5522
- data: items.data.map(function(item, index) {
5523
- return serializeMessage5({
5627
+ data: timestampedItems.map(function(param) {
5628
+ var item = param.item, runId = param.runId, assignedTimestamp = param.assignedTimestamp;
5629
+ return serializeItemAsMessage({
5524
5630
  item: item,
5525
- initialCreatedAt: initialCreatedAt,
5526
- index: index,
5527
- threadId: threadId
5631
+ threadId: threadId,
5632
+ openaiAssistant: openaiAssistant,
5633
+ createdAt: assignedTimestamp,
5634
+ runId: runId
5528
5635
  });
5529
5636
  }),
5530
5637
  has_more: items.has_more,
@@ -5544,34 +5651,162 @@ var get14 = function(param) {
5544
5651
  };
5545
5652
  }();
5546
5653
  };
5654
+ var mapItemsWithRunIds = function(param) {
5655
+ var conversation = param.conversation, items = param.items;
5656
+ return items.map(function(item) {
5657
+ return {
5658
+ item: item,
5659
+ runId: item.id ? responseId({
5660
+ conversation: conversation,
5661
+ itemId: item.id
5662
+ }) : null
5663
+ };
5664
+ });
5665
+ };
5666
+ var fetchResponsesForItems = /*#__PURE__*/ function() {
5667
+ var _ref = _async_to_generator(function(param) {
5668
+ var client, items, responseIds, results, map;
5669
+ return _ts_generator(this, function(_state) {
5670
+ switch(_state.label){
5671
+ case 0:
5672
+ client = param.client, items = param.items;
5673
+ responseIds = Array.from(new Set(items.map(function(param) {
5674
+ var runId = param.runId;
5675
+ return runId;
5676
+ }).filter(function(id) {
5677
+ return Boolean(id);
5678
+ })));
5679
+ return [
5680
+ 4,
5681
+ Promise.allSettled(responseIds.map(function(id) {
5682
+ return client.responses.retrieve(id);
5683
+ }))
5684
+ ];
5685
+ case 1:
5686
+ results = _state.sent();
5687
+ map = /* @__PURE__ */ new Map();
5688
+ results.forEach(function(result, index) {
5689
+ if (result.status === "fulfilled") {
5690
+ map.set(responseIds[index], result.value);
5691
+ }
5692
+ });
5693
+ return [
5694
+ 2,
5695
+ map
5696
+ ];
5697
+ }
5698
+ });
5699
+ });
5700
+ return function fetchResponsesForItems(_) {
5701
+ return _ref.apply(this, arguments);
5702
+ };
5703
+ }();
5704
+ var assignTimestamps = function(param) {
5705
+ var items = param.items, responseMap = param.responseMap, sortOrder = param.sortOrder, conversationCreatedAt = param.conversationCreatedAt;
5706
+ var itemsWithTimestamps = items.map(function(entry) {
5707
+ var _responseMap_get;
5708
+ var _responseMap_get_created_at;
5709
+ return _object_spread_props(_object_spread({}, entry), {
5710
+ timestamp: entry.runId ? (_responseMap_get_created_at = (_responseMap_get = responseMap.get(entry.runId)) === null || _responseMap_get === void 0 ? void 0 : _responseMap_get.created_at) !== null && _responseMap_get_created_at !== void 0 ? _responseMap_get_created_at : null : null,
5711
+ assignedTimestamp: 0
5712
+ });
5713
+ });
5714
+ var fallbackTimestampForIndex = function(index) {
5715
+ return sortOrder === "asc" ? conversationCreatedAt + index : conversationCreatedAt + (itemsWithTimestamps.length - index);
5716
+ };
5717
+ var findNextKnownTimestamp = function(startIndex) {
5718
+ for(var i = startIndex; i < itemsWithTimestamps.length; i += 1){
5719
+ var candidate = itemsWithTimestamps[i];
5720
+ if (candidate.timestamp != null) {
5721
+ return {
5722
+ index: i,
5723
+ timestamp: candidate.timestamp
5724
+ };
5725
+ }
5726
+ }
5727
+ return null;
5728
+ };
5729
+ if (sortOrder === "asc") {
5730
+ var lastAssigned = null;
5731
+ itemsWithTimestamps.forEach(function(entry, index) {
5732
+ var nextValue = entry.timestamp;
5733
+ if (nextValue == null) {
5734
+ if (lastAssigned != null) {
5735
+ nextValue = lastAssigned + 1;
5736
+ } else {
5737
+ var nextKnown = findNextKnownTimestamp(index + 1);
5738
+ if (nextKnown) {
5739
+ var gap = nextKnown.index - index;
5740
+ nextValue = nextKnown.timestamp - gap;
5741
+ } else {
5742
+ nextValue = fallbackTimestampForIndex(index);
5743
+ }
5744
+ }
5745
+ }
5746
+ if (lastAssigned != null && nextValue <= lastAssigned) {
5747
+ nextValue = lastAssigned + 1;
5748
+ }
5749
+ entry.assignedTimestamp = nextValue;
5750
+ lastAssigned = nextValue;
5751
+ });
5752
+ } else {
5753
+ var lastAssigned1 = null;
5754
+ itemsWithTimestamps.forEach(function(entry, index) {
5755
+ var nextValue = entry.timestamp;
5756
+ if (nextValue == null) {
5757
+ if (lastAssigned1 != null) {
5758
+ nextValue = lastAssigned1 - 1;
5759
+ } else {
5760
+ var nextKnown = findNextKnownTimestamp(index + 1);
5761
+ if (nextKnown) {
5762
+ var gap = nextKnown.index - index;
5763
+ nextValue = nextKnown.timestamp + gap;
5764
+ } else {
5765
+ nextValue = fallbackTimestampForIndex(index);
5766
+ }
5767
+ }
5768
+ }
5769
+ if (lastAssigned1 != null && nextValue >= lastAssigned1) {
5770
+ nextValue = lastAssigned1 - 1;
5771
+ }
5772
+ entry.assignedTimestamp = nextValue;
5773
+ lastAssigned1 = nextValue;
5774
+ });
5775
+ }
5776
+ return itemsWithTimestamps;
5777
+ };
5547
5778
  // src/adapters/storage/responsesStorageAdapter/threads/messages/index.ts
5548
5779
  var messages3 = function(param) {
5549
- var openai = param.openai;
5780
+ var client = param.client, runAdapter = param.runAdapter, createResponseItems = param.createResponseItems;
5550
5781
  return {
5551
5782
  post: post16({
5552
- openai: openai
5783
+ runAdapter: runAdapter,
5784
+ createResponseItems: createResponseItems
5553
5785
  }),
5554
5786
  get: get14({
5555
- openai: openai
5787
+ client: client,
5788
+ runAdapter: runAdapter
5556
5789
  })
5557
5790
  };
5558
5791
  };
5559
5792
  // src/adapters/storage/responsesStorageAdapter/threads/runs/get.ts
5560
- var import_radash16 = require("radash");
5561
- var get15 = function(param) {
5562
- var prisma = param.prisma;
5793
+ var get15 = function() {
5563
5794
  return /*#__PURE__*/ function() {
5564
5795
  var _ref = _async_to_generator(function(urlString) {
5565
- var url, _url_pathname_match, threadId, _ref, limit, order, after, pageSize;
5566
5796
  return _ts_generator(this, function(_state) {
5567
- url = new URL(urlString);
5568
- _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp(runsRegexp)), 2), threadId = _url_pathname_match[1];
5569
- _ref = (0, import_radash16.assign)({
5570
- limit: "20",
5571
- order: "desc"
5572
- }, Object.fromEntries(url.searchParams)), limit = _ref.limit, order = _ref.order, after = _ref.after;
5573
- pageSize = parseInt(limit, 10);
5574
- throw new Error("Not implemented");
5797
+ return [
5798
+ 2,
5799
+ new Response(JSON.stringify({
5800
+ data: [],
5801
+ has_more: false,
5802
+ last_id: null
5803
+ }), {
5804
+ status: 200,
5805
+ headers: {
5806
+ "Content-Type": "application/json"
5807
+ }
5808
+ })
5809
+ ];
5575
5810
  });
5576
5811
  });
5577
5812
  return function(urlString) {
@@ -5581,38 +5816,100 @@ var get15 = function(param) {
5581
5816
  };
5582
5817
  // src/adapters/storage/responsesStorageAdapter/threads/runs/post.ts
5583
5818
  var import_radash17 = require("radash");
5584
- var import_dayjs15 = __toESM(require("dayjs"), 1);
5819
+ var import_dayjs11 = __toESM(require("dayjs"), 1);
5585
5820
  var import_radash18 = require("radash");
5586
- // src/adapters/storage/responsesStorageAdapter/threads/runs/serializeRun.ts
5587
- var import_dayjs14 = __toESM(require("dayjs"), 1);
5588
- var serializeRun2 = function(param) {
5821
+ // src/lib/responses/serializeResponseAsRun.ts
5822
+ var serializeStatus = function(param) {
5823
+ var response = param.response;
5824
+ var _response_status;
5825
+ if (response.error) return "failed";
5826
+ var _response_status_toLowerCase;
5827
+ return (_response_status_toLowerCase = (_response_status = response.status) === null || _response_status === void 0 ? void 0 : _response_status.toLowerCase()) !== null && _response_status_toLowerCase !== void 0 ? _response_status_toLowerCase : "completed";
5828
+ };
5829
+ var serializeUsage = function(param) {
5830
+ var response = param.response;
5831
+ var _response_usage, _response_usage1, _response_usage2;
5832
+ var _response_usage_input_tokens, _response_usage_output_tokens, _response_usage_total_tokens;
5833
+ return {
5834
+ prompt_tokens: (_response_usage_input_tokens = (_response_usage = response.usage) === null || _response_usage === void 0 ? void 0 : _response_usage.input_tokens) !== null && _response_usage_input_tokens !== void 0 ? _response_usage_input_tokens : 0,
5835
+ completion_tokens: (_response_usage_output_tokens = (_response_usage1 = response.usage) === null || _response_usage1 === void 0 ? void 0 : _response_usage1.output_tokens) !== null && _response_usage_output_tokens !== void 0 ? _response_usage_output_tokens : 0,
5836
+ total_tokens: (_response_usage_total_tokens = (_response_usage2 = response.usage) === null || _response_usage2 === void 0 ? void 0 : _response_usage2.total_tokens) !== null && _response_usage_total_tokens !== void 0 ? _response_usage_total_tokens : 0
5837
+ };
5838
+ };
5839
+ var findPendingToolCalls = function(param) {
5589
5840
  var response = param.response;
5841
+ var _response_output;
5842
+ var toolCalls = ((_response_output = response.output) !== null && _response_output !== void 0 ? _response_output : []).filter(function(item) {
5843
+ return item.type === "function_call";
5844
+ });
5845
+ if (toolCalls.length === 0) return [];
5846
+ var _response_output1;
5847
+ var completedCallIds = new Set(((_response_output1 = response.output) !== null && _response_output1 !== void 0 ? _response_output1 : []).filter(function(item) {
5848
+ return item.type === "function_call_output";
5849
+ }).map(function(item) {
5850
+ return item.call_id;
5851
+ }).filter(function(id) {
5852
+ return Boolean(id);
5853
+ }));
5854
+ return toolCalls.filter(function(call) {
5855
+ return !completedCallIds.has(call.call_id);
5856
+ });
5857
+ };
5858
+ var serializeToolCalls = function(param) {
5859
+ var toolCalls = param.toolCalls;
5860
+ return toolCalls.map(function(toolCall) {
5861
+ return {
5862
+ id: toolCall.call_id,
5863
+ type: "function",
5864
+ function: {
5865
+ name: toolCall.name,
5866
+ arguments: toolCall.arguments
5867
+ }
5868
+ };
5869
+ });
5870
+ };
5871
+ var serializeResponseAsRun = function(param) {
5872
+ var response = param.response, assistantId = param.assistantId;
5873
+ var pendingToolCalls = findPendingToolCalls({
5874
+ response: response
5875
+ });
5876
+ var status3 = pendingToolCalls.length > 0 ? "requires_action" : serializeStatus({
5877
+ response: response
5878
+ });
5590
5879
  return {
5591
- id: run.id,
5880
+ id: response.id,
5592
5881
  object: "thread.run",
5593
- created_at: (0, import_dayjs14.default)(run.createdAt).unix(),
5594
- thread_id: run.threadId,
5595
- assistant_id: run.assistantId,
5596
- status: run.status.toLowerCase(),
5597
- required_action: run.requiredAction,
5598
- last_error: run.lastError,
5599
- expires_at: (0, import_dayjs14.default)(run.expiresAt).unix(),
5600
- started_at: run.startedAt ? (0, import_dayjs14.default)(run.startedAt).unix() : null,
5601
- cancelled_at: run.cancelledAt ? (0, import_dayjs14.default)(run.cancelledAt).unix() : null,
5602
- failed_at: run.failedAt ? (0, import_dayjs14.default)(run.failedAt).unix() : null,
5603
- completed_at: run.completedAt ? (0, import_dayjs14.default)(run.completedAt).unix() : null,
5604
- model: run.model,
5605
- instructions: run.instructions,
5606
- tools: run.tools,
5607
- metadata: run.metadata,
5608
- usage: run.usage,
5882
+ created_at: response.created_at,
5883
+ thread_id: response.conversation.id,
5884
+ assistant_id: assistantId,
5885
+ status: status3,
5886
+ required_action: pendingToolCalls.length > 0 ? {
5887
+ type: "submit_tool_outputs",
5888
+ submit_tool_outputs: {
5889
+ tool_calls: serializeToolCalls({
5890
+ toolCalls: pendingToolCalls
5891
+ })
5892
+ }
5893
+ } : null,
5894
+ last_error: response.error,
5895
+ expires_at: response.created_at,
5896
+ started_at: response.created_at,
5897
+ cancelled_at: null,
5898
+ failed_at: response.error ? response.created_at : null,
5899
+ completed_at: status3 === "completed" ? response.created_at : null,
5900
+ model: response.model,
5901
+ instructions: "",
5902
+ tools: [],
5903
+ metadata: response.metadata,
5904
+ usage: serializeUsage({
5905
+ response: response
5906
+ }),
5609
5907
  truncation_strategy: {
5610
5908
  type: "auto"
5611
5909
  },
5612
5910
  response_format: {
5613
5911
  type: "text"
5614
5912
  },
5615
- // TODO
5616
5913
  incomplete_details: null,
5617
5914
  max_completion_tokens: null,
5618
5915
  max_prompt_tokens: null,
@@ -5620,68 +5917,347 @@ var serializeRun2 = function(param) {
5620
5917
  parallel_tool_calls: true
5621
5918
  };
5622
5919
  };
5623
- // src/adapters/storage/responsesStorageAdapter/threads/runs/post.ts
5624
- var serializeTools2 = function(param) {
5625
- var tools = param.tools;
5626
- if (!(tools === null || tools === void 0 ? void 0 : tools.length)) return {};
5627
- return {
5628
- tools: tools.map(function(tool) {
5629
- return _object_spread({
5630
- type: tool.type
5631
- }, tool[tool.type] || {});
5632
- })
5633
- };
5634
- };
5635
- var defaultAssistant = {
5636
- model: "",
5637
- instructions: "",
5638
- additional_instructions: null,
5639
- truncation_strategy: {
5640
- type: "auto"
5641
- },
5642
- response_format: {
5643
- type: "text"
5920
+ // src/lib/responses/saveResponseItemsToConversationMetadata.ts
5921
+ var BUCKET_PREFIX = "responseItemsMap";
5922
+ var MAX_BUCKETS = 16;
5923
+ var MAX_VALUE_LENGTH = 512;
5924
+ function parseBucket(param) {
5925
+ var value = param.value;
5926
+ if (!value || value === "[]") return [];
5927
+ try {
5928
+ var arr = JSON.parse(value);
5929
+ return Array.isArray(arr) ? arr : [];
5930
+ } catch (e) {
5931
+ return [];
5644
5932
  }
5645
- };
5646
- var post17 = function(param) {
5647
- var openai = param.openai, openaiAssistant = param.openaiAssistant, runAdapter = param.runAdapter;
5648
- return /*#__PURE__*/ function() {
5649
- var _ref = _async_to_generator(function(urlString, options) {
5650
- var url, _url_pathname_match, threadId, body, assistant_id, stream, _ref, model, instructions, // additional_instructions,
5651
- tools, metadata, response_format, truncation_strategy, response, readableStream, data;
5652
- return _ts_generator(this, function(_state) {
5653
- switch(_state.label){
5654
- case 0:
5655
- url = new URL(urlString);
5656
- _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp(runsRegexp)), 2), threadId = _url_pathname_match[1];
5657
- body = JSON.parse(options.body);
5658
- assistant_id = body.assistant_id, stream = body.stream;
5659
- console.dir({
5660
- runsPort: true,
5661
- body: body
5662
- }, {
5663
- depth: null
5664
- });
5665
- _ref = (0, import_radash18.assign)(_object_spread({}, defaultAssistant, openaiAssistant), body), model = _ref.model, instructions = _ref.instructions, tools = _ref.tools, metadata = _ref.metadata, response_format = _ref.response_format, truncation_strategy = _ref.truncation_strategy;
5666
- return [
5667
- 4,
5668
- openai.responses.create(_object_spread_props(_object_spread({
5669
- conversation: threadId,
5670
- instructions: instructions,
5671
- model: model,
5672
- metadata: metadata,
5673
- stream: stream
5674
- }, serializeTools2({
5675
- tools: tools
5676
- })), {
5677
- truncation: truncation_strategy.type,
5678
- text: {
5679
- format: response_format
5680
- },
5681
- input: ""
5682
- }))
5683
- ];
5684
- case 1:
5933
+ }
5934
+ function serializeBucket(param) {
5935
+ var entries = param.entries;
5936
+ return JSON.stringify(entries);
5937
+ }
5938
+ function bucketKey(param) {
5939
+ var index = param.index;
5940
+ return "".concat(BUCKET_PREFIX).concat(index);
5941
+ }
5942
+ function listBucketIndices(param) {
5943
+ var metadata = param.metadata;
5944
+ return Object.keys(metadata).map(function(k) {
5945
+ var m = new RegExp("^".concat(BUCKET_PREFIX, "(\\d+)$")).exec(k);
5946
+ return m ? Number(m[1]) : -1;
5947
+ }).filter(function(i) {
5948
+ return i >= 0;
5949
+ }).sort(function(a, b) {
5950
+ return a - b;
5951
+ });
5952
+ }
5953
+ function parseAllPairs(param) {
5954
+ var metadata = param.metadata;
5955
+ var indices = listBucketIndices({
5956
+ metadata: metadata
5957
+ });
5958
+ var pairs = [];
5959
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
5960
+ try {
5961
+ for(var _iterator = indices[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
5962
+ var idx = _step.value;
5963
+ var key = bucketKey({
5964
+ index: idx
5965
+ });
5966
+ var entries = parseBucket({
5967
+ value: metadata[key]
5968
+ });
5969
+ var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
5970
+ try {
5971
+ for(var _iterator1 = entries[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
5972
+ var e = _step1.value;
5973
+ var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = undefined;
5974
+ try {
5975
+ for(var _iterator2 = e.itemIds[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true){
5976
+ var iid = _step2.value;
5977
+ pairs.push({
5978
+ responseId: e.responseId,
5979
+ itemId: iid
5980
+ });
5981
+ }
5982
+ } catch (err) {
5983
+ _didIteratorError2 = true;
5984
+ _iteratorError2 = err;
5985
+ } finally{
5986
+ try {
5987
+ if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
5988
+ _iterator2.return();
5989
+ }
5990
+ } finally{
5991
+ if (_didIteratorError2) {
5992
+ throw _iteratorError2;
5993
+ }
5994
+ }
5995
+ }
5996
+ }
5997
+ } catch (err) {
5998
+ _didIteratorError1 = true;
5999
+ _iteratorError1 = err;
6000
+ } finally{
6001
+ try {
6002
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
6003
+ _iterator1.return();
6004
+ }
6005
+ } finally{
6006
+ if (_didIteratorError1) {
6007
+ throw _iteratorError1;
6008
+ }
6009
+ }
6010
+ }
6011
+ }
6012
+ } catch (err) {
6013
+ _didIteratorError = true;
6014
+ _iteratorError = err;
6015
+ } finally{
6016
+ try {
6017
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
6018
+ _iterator.return();
6019
+ }
6020
+ } finally{
6021
+ if (_didIteratorError) {
6022
+ throw _iteratorError;
6023
+ }
6024
+ }
6025
+ }
6026
+ return pairs;
6027
+ }
6028
+ function tryPackPairs(param) {
6029
+ var baseMetadata = param.baseMetadata, pairs = param.pairs;
6030
+ var newBuckets = [];
6031
+ var currentEntries = [];
6032
+ var flush = function() {
6033
+ newBuckets.push(serializeBucket({
6034
+ entries: currentEntries
6035
+ }));
6036
+ currentEntries = [];
6037
+ };
6038
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
6039
+ try {
6040
+ for(var _iterator = pairs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
6041
+ var _step_value = _step.value, responseId2 = _step_value.responseId, itemId = _step_value.itemId;
6042
+ var next = currentEntries.map(function(e) {
6043
+ return {
6044
+ responseId: e.responseId,
6045
+ itemIds: _to_consumable_array(e.itemIds)
6046
+ };
6047
+ });
6048
+ var last5 = next[next.length - 1];
6049
+ if (last5 && last5.responseId === responseId2) {
6050
+ last5.itemIds.push(itemId);
6051
+ } else {
6052
+ next.push({
6053
+ responseId: responseId2,
6054
+ itemIds: [
6055
+ itemId
6056
+ ]
6057
+ });
6058
+ }
6059
+ var candidate = serializeBucket({
6060
+ entries: next
6061
+ });
6062
+ if (candidate.length <= MAX_VALUE_LENGTH) {
6063
+ currentEntries = next;
6064
+ continue;
6065
+ }
6066
+ flush();
6067
+ if (newBuckets.length >= MAX_BUCKETS) {
6068
+ return {
6069
+ success: false,
6070
+ newMetadata: baseMetadata
6071
+ };
6072
+ }
6073
+ currentEntries = [
6074
+ {
6075
+ responseId: responseId2,
6076
+ itemIds: [
6077
+ itemId
6078
+ ]
6079
+ }
6080
+ ];
6081
+ }
6082
+ } catch (err) {
6083
+ _didIteratorError = true;
6084
+ _iteratorError = err;
6085
+ } finally{
6086
+ try {
6087
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
6088
+ _iterator.return();
6089
+ }
6090
+ } finally{
6091
+ if (_didIteratorError) {
6092
+ throw _iteratorError;
6093
+ }
6094
+ }
6095
+ }
6096
+ if (currentEntries.length > 0) flush();
6097
+ var result = {};
6098
+ var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
6099
+ try {
6100
+ for(var _iterator1 = Object.entries(baseMetadata)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
6101
+ var _step_value1 = _sliced_to_array(_step1.value, 2), k = _step_value1[0], v = _step_value1[1];
6102
+ if (!k.startsWith(BUCKET_PREFIX)) result[k] = v;
6103
+ }
6104
+ } catch (err) {
6105
+ _didIteratorError1 = true;
6106
+ _iteratorError1 = err;
6107
+ } finally{
6108
+ try {
6109
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
6110
+ _iterator1.return();
6111
+ }
6112
+ } finally{
6113
+ if (_didIteratorError1) {
6114
+ throw _iteratorError1;
6115
+ }
6116
+ }
6117
+ }
6118
+ newBuckets.forEach(function(val, i) {
6119
+ if (val && val !== "[]") result[bucketKey({
6120
+ index: i
6121
+ })] = val;
6122
+ });
6123
+ return {
6124
+ success: true,
6125
+ newMetadata: result
6126
+ };
6127
+ }
6128
+ function appendItemIdsToConversationMetadata(param) {
6129
+ var metadata = param.metadata, responseId2 = param.responseId, itemIds = param.itemIds;
6130
+ var base = _object_spread({}, metadata || {});
6131
+ var existing = parseAllPairs({
6132
+ metadata: base
6133
+ });
6134
+ var nextPairs = existing.concat(itemIds.map(function(id) {
6135
+ return {
6136
+ responseId: responseId2,
6137
+ itemId: id
6138
+ };
6139
+ }));
6140
+ var working = nextPairs;
6141
+ while(true){
6142
+ var _tryPackPairs = tryPackPairs({
6143
+ baseMetadata: base,
6144
+ pairs: working
6145
+ }), success = _tryPackPairs.success, newMetadata = _tryPackPairs.newMetadata;
6146
+ if (success) return newMetadata;
6147
+ if (working.length === 0) {
6148
+ throw new Error("responseItemsMap: cannot pack even a single item into 16 buckets");
6149
+ }
6150
+ working = working.slice(1);
6151
+ }
6152
+ }
6153
+ function saveResponseItemsToConversationMetadata(_) {
6154
+ return _saveResponseItemsToConversationMetadata.apply(this, arguments);
6155
+ }
6156
+ function _saveResponseItemsToConversationMetadata() {
6157
+ _saveResponseItemsToConversationMetadata = _async_to_generator(function(param) {
6158
+ var client, threadId, responseId2, itemIds, conversation, updated;
6159
+ return _ts_generator(this, function(_state) {
6160
+ switch(_state.label){
6161
+ case 0:
6162
+ client = param.client, threadId = param.threadId, responseId2 = param.responseId, itemIds = param.itemIds;
6163
+ return [
6164
+ 4,
6165
+ client.conversations.retrieve(threadId)
6166
+ ];
6167
+ case 1:
6168
+ conversation = _state.sent();
6169
+ updated = appendItemIdsToConversationMetadata({
6170
+ metadata: conversation.metadata,
6171
+ responseId: responseId2,
6172
+ itemIds: itemIds
6173
+ });
6174
+ return [
6175
+ 4,
6176
+ client.conversations.update(threadId, {
6177
+ metadata: updated
6178
+ })
6179
+ ];
6180
+ case 2:
6181
+ _state.sent();
6182
+ return [
6183
+ 2
6184
+ ];
6185
+ }
6186
+ });
6187
+ });
6188
+ return _saveResponseItemsToConversationMetadata.apply(this, arguments);
6189
+ }
6190
+ // src/adapters/storage/responsesStorageAdapter/threads/runs/post.ts
6191
+ var serializeTools2 = function(param) {
6192
+ var tools = param.tools;
6193
+ if (!(tools === null || tools === void 0 ? void 0 : tools.length)) return {};
6194
+ return {
6195
+ tools: tools.map(function(tool) {
6196
+ return _object_spread({
6197
+ type: tool.type
6198
+ }, tool[tool.type] || {});
6199
+ })
6200
+ };
6201
+ };
6202
+ var defaultAssistant = {
6203
+ model: "",
6204
+ instructions: "",
6205
+ additional_instructions: null,
6206
+ truncation_strategy: {
6207
+ type: "auto"
6208
+ },
6209
+ response_format: {
6210
+ type: "text"
6211
+ }
6212
+ };
6213
+ var post17 = function(param) {
6214
+ var client = param.client, runAdapter = param.runAdapter, createResponseItems = param.createResponseItems;
6215
+ return /*#__PURE__*/ function() {
6216
+ var _ref = _async_to_generator(function(urlString, options) {
6217
+ var url, _url_pathname_match, threadId, body, assistant_id, stream, _ref, model, instructions, // additional_instructions,
6218
+ tools, metadata, response_format, truncation_strategy, _, _tmp, response, readableStream, _response_output, itemIds, data;
6219
+ return _ts_generator(this, function(_state) {
6220
+ switch(_state.label){
6221
+ case 0:
6222
+ url = new URL(urlString);
6223
+ _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp(runsRegexp)), 2), threadId = _url_pathname_match[1];
6224
+ body = JSON.parse(options.body);
6225
+ assistant_id = body.assistant_id, stream = body.stream;
6226
+ _ = (0, import_radash18.assign);
6227
+ _tmp = [
6228
+ {},
6229
+ defaultAssistant
6230
+ ];
6231
+ return [
6232
+ 4,
6233
+ runAdapter.getOpenaiAssistant()
6234
+ ];
6235
+ case 1:
6236
+ _ref = _.apply(void 0, [
6237
+ _object_spread.apply(void 0, _tmp.concat([
6238
+ _state.sent()
6239
+ ])),
6240
+ body
6241
+ ]), model = _ref.model, instructions = _ref.instructions, tools = _ref.tools, metadata = _ref.metadata, response_format = _ref.response_format, truncation_strategy = _ref.truncation_strategy;
6242
+ return [
6243
+ 4,
6244
+ client.responses.create(_object_spread_props(_object_spread({
6245
+ conversation: threadId,
6246
+ instructions: instructions,
6247
+ model: model,
6248
+ metadata: metadata,
6249
+ stream: stream
6250
+ }, serializeTools2({
6251
+ tools: tools
6252
+ })), {
6253
+ truncation: truncation_strategy.type,
6254
+ text: {
6255
+ format: response_format
6256
+ },
6257
+ input: createResponseItems
6258
+ }))
6259
+ ];
6260
+ case 2:
5685
6261
  response = _state.sent();
5686
6262
  readableStream = new ReadableStream({
5687
6263
  start: function start(controller) {
@@ -5698,7 +6274,8 @@ var post17 = function(param) {
5698
6274
  ]);
5699
6275
  return [
5700
6276
  4,
5701
- runAdapter({
6277
+ runAdapter.handleRun({
6278
+ threadId: threadId,
5702
6279
  response: response,
5703
6280
  onEvent: /*#__PURE__*/ function() {
5704
6281
  var _ref = _async_to_generator(function(event) {
@@ -5728,7 +6305,7 @@ var post17 = function(param) {
5728
6305
  event: "thread.run.failed",
5729
6306
  data: {
5730
6307
  id: (0, import_radash17.uid)(24),
5731
- failed_at: (0, import_dayjs15.default)().unix(),
6308
+ failed_at: (0, import_dayjs11.default)().unix(),
5732
6309
  last_error: {
5733
6310
  code: "server_error",
5734
6311
  message: "".concat((_error_message = error === null || error === void 0 ? void 0 : error.message) !== null && _error_message !== void 0 ? _error_message : "", " ").concat((_error_cause_message = error === null || error === void 0 ? void 0 : (_error_cause = error.cause) === null || _error_cause === void 0 ? void 0 : _error_cause.message) !== null && _error_cause_message !== void 0 ? _error_cause_message : "")
@@ -5750,29 +6327,55 @@ var post17 = function(param) {
5750
6327
  })();
5751
6328
  }
5752
6329
  });
5753
- if (stream) {
5754
- return [
5755
- 2,
5756
- new Response(readableStream, {
5757
- headers: {
5758
- "Content-Type": "text/event-stream"
5759
- }
5760
- })
5761
- ];
5762
- } else {
5763
- data = serializeRun2({
5764
- response: response
5765
- });
5766
- return [
5767
- 2,
5768
- new Response(JSON.stringify(data), {
5769
- status: 200,
5770
- headers: {
5771
- "Content-Type": "application/json"
5772
- }
5773
- })
5774
- ];
5775
- }
6330
+ if (!stream) return [
6331
+ 3,
6332
+ 3
6333
+ ];
6334
+ return [
6335
+ 2,
6336
+ new Response(readableStream, {
6337
+ headers: {
6338
+ "Content-Type": "text/event-stream"
6339
+ }
6340
+ })
6341
+ ];
6342
+ case 3:
6343
+ itemIds = ((_response_output = response.output) !== null && _response_output !== void 0 ? _response_output : []).filter(function(o) {
6344
+ return o.id;
6345
+ }).map(function(o) {
6346
+ return o.id;
6347
+ });
6348
+ if (!(itemIds.length > 0)) return [
6349
+ 3,
6350
+ 5
6351
+ ];
6352
+ return [
6353
+ 4,
6354
+ saveResponseItemsToConversationMetadata({
6355
+ client: client,
6356
+ threadId: threadId,
6357
+ responseId: response.id,
6358
+ itemIds: itemIds
6359
+ })
6360
+ ];
6361
+ case 4:
6362
+ _state.sent();
6363
+ _state.label = 5;
6364
+ case 5:
6365
+ data = serializeResponseAsRun({
6366
+ response: response,
6367
+ assistantId: assistant_id
6368
+ });
6369
+ return [
6370
+ 2,
6371
+ new Response(JSON.stringify(data), {
6372
+ status: 200,
6373
+ headers: {
6374
+ "Content-Type": "application/json"
6375
+ }
6376
+ })
6377
+ ];
6378
+ case 6:
5776
6379
  return [
5777
6380
  2
5778
6381
  ];
@@ -5786,28 +6389,55 @@ var post17 = function(param) {
5786
6389
  };
5787
6390
  // src/adapters/storage/responsesStorageAdapter/threads/runs/index.ts
5788
6391
  var runs2 = function(param) {
5789
- var openai = param.openai, openaiAssistant = param.openaiAssistant, runAdapter = param.runAdapter;
6392
+ var client = param.client, runAdapter = param.runAdapter, createResponseItems = param.createResponseItems;
5790
6393
  return {
5791
- get: get15({
5792
- openai: openai
5793
- }),
6394
+ get: get15(),
5794
6395
  post: post17({
5795
- openai: openai,
5796
- openaiAssistant: openaiAssistant,
6396
+ client: client,
6397
+ createResponseItems: createResponseItems,
5797
6398
  runAdapter: runAdapter
5798
6399
  })
5799
6400
  };
5800
6401
  };
5801
6402
  // src/adapters/storage/responsesStorageAdapter/threads/run/get.ts
5802
6403
  var get16 = function(param) {
5803
- var openai = param.openai;
6404
+ var client = param.client, runAdapter = param.runAdapter;
5804
6405
  return /*#__PURE__*/ function() {
5805
6406
  var _ref = _async_to_generator(function(urlString) {
5806
- var url, _url_pathname_match, threadId, runId;
6407
+ var url, _url_pathname_match, _threadId, runId, response, data, _tmp;
5807
6408
  return _ts_generator(this, function(_state) {
5808
- url = new URL(urlString);
5809
- _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp(runRegexp)), 3), threadId = _url_pathname_match[1], runId = _url_pathname_match[2];
5810
- throw new Error("Not implemented");
6409
+ switch(_state.label){
6410
+ case 0:
6411
+ url = new URL(urlString);
6412
+ _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp(runRegexp)), 3), _threadId = _url_pathname_match[1], runId = _url_pathname_match[2];
6413
+ return [
6414
+ 4,
6415
+ client.responses.retrieve(runId)
6416
+ ];
6417
+ case 1:
6418
+ response = _state.sent();
6419
+ _tmp = {
6420
+ response: response
6421
+ };
6422
+ return [
6423
+ 4,
6424
+ runAdapter.getOpenaiAssistant()
6425
+ ];
6426
+ case 2:
6427
+ data = serializeResponseAsRun.apply(void 0, [
6428
+ (_tmp.assistantId = _state.sent().id, _tmp)
6429
+ ]);
6430
+ return [
6431
+ 2,
6432
+ new Response(JSON.stringify(data), {
6433
+ status: 200,
6434
+ headers: {
6435
+ "Content-Type": "application/json",
6436
+ "openai-poll-after-ms": "5000"
6437
+ }
6438
+ })
6439
+ ];
6440
+ }
5811
6441
  });
5812
6442
  });
5813
6443
  return function(urlString) {
@@ -5816,49 +6446,330 @@ var get16 = function(param) {
5816
6446
  }();
5817
6447
  };
5818
6448
  // src/adapters/storage/responsesStorageAdapter/threads/run/index.ts
5819
- var run3 = function(param) {
5820
- var openai = param.openai, runAdapter = param.runAdapter;
6449
+ var run2 = function(param) {
6450
+ var client = param.client, runAdapter = param.runAdapter;
5821
6451
  return {
5822
6452
  get: get16({
5823
- openai: openai
6453
+ client: client,
6454
+ runAdapter: runAdapter
5824
6455
  })
5825
6456
  };
5826
6457
  };
6458
+ function pMap(iterable, mapper) {
6459
+ return _pMap.apply(this, arguments);
6460
+ }
6461
+ function _pMap() {
6462
+ _pMap = // ../../node_modules/p-map/index.js
6463
+ _async_to_generator(function(iterable, mapper) {
6464
+ var _ref, _ref_concurrency, concurrency, _ref_stopOnError, stopOnError, signal;
6465
+ var _arguments = arguments;
6466
+ return _ts_generator(this, function(_state) {
6467
+ _ref = _arguments.length > 2 && _arguments[2] !== void 0 ? _arguments[2] : {}, _ref_concurrency = _ref.concurrency, concurrency = _ref_concurrency === void 0 ? Number.POSITIVE_INFINITY : _ref_concurrency, _ref_stopOnError = _ref.stopOnError, stopOnError = _ref_stopOnError === void 0 ? true : _ref_stopOnError, signal = _ref.signal;
6468
+ return [
6469
+ 2,
6470
+ new Promise(function(resolve_, reject_) {
6471
+ if (iterable[Symbol.iterator] === void 0 && iterable[Symbol.asyncIterator] === void 0) {
6472
+ throw new TypeError("Expected `input` to be either an `Iterable` or `AsyncIterable`, got (".concat(typeof iterable === "undefined" ? "undefined" : _type_of(iterable), ")"));
6473
+ }
6474
+ if (typeof mapper !== "function") {
6475
+ throw new TypeError("Mapper function is required");
6476
+ }
6477
+ if (!(Number.isSafeInteger(concurrency) && concurrency >= 1 || concurrency === Number.POSITIVE_INFINITY)) {
6478
+ throw new TypeError("Expected `concurrency` to be an integer from 1 and up or `Infinity`, got `".concat(concurrency, "` (").concat(typeof concurrency === "undefined" ? "undefined" : _type_of(concurrency), ")"));
6479
+ }
6480
+ var result = [];
6481
+ var errors = [];
6482
+ var skippedIndexesMap = /* @__PURE__ */ new Map();
6483
+ var isRejected = false;
6484
+ var isResolved = false;
6485
+ var isIterableDone = false;
6486
+ var resolvingCount = 0;
6487
+ var currentIndex = 0;
6488
+ var iterator = iterable[Symbol.iterator] === void 0 ? iterable[Symbol.asyncIterator]() : iterable[Symbol.iterator]();
6489
+ var signalListener = function() {
6490
+ reject(signal.reason);
6491
+ };
6492
+ var cleanup = function() {
6493
+ signal === null || signal === void 0 ? void 0 : signal.removeEventListener("abort", signalListener);
6494
+ };
6495
+ var resolve = function(value) {
6496
+ resolve_(value);
6497
+ cleanup();
6498
+ };
6499
+ var reject = function(reason) {
6500
+ isRejected = true;
6501
+ isResolved = true;
6502
+ reject_(reason);
6503
+ cleanup();
6504
+ };
6505
+ if (signal) {
6506
+ if (signal.aborted) {
6507
+ reject(signal.reason);
6508
+ }
6509
+ signal.addEventListener("abort", signalListener, {
6510
+ once: true
6511
+ });
6512
+ }
6513
+ var next = /*#__PURE__*/ function() {
6514
+ var _ref = _async_to_generator(function() {
6515
+ var nextItem, index, pureResult, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, _step_value, index2, value;
6516
+ return _ts_generator(this, function(_state) {
6517
+ switch(_state.label){
6518
+ case 0:
6519
+ if (isResolved) {
6520
+ return [
6521
+ 2
6522
+ ];
6523
+ }
6524
+ return [
6525
+ 4,
6526
+ iterator.next()
6527
+ ];
6528
+ case 1:
6529
+ nextItem = _state.sent();
6530
+ index = currentIndex;
6531
+ currentIndex++;
6532
+ if (nextItem.done) {
6533
+ isIterableDone = true;
6534
+ if (resolvingCount === 0 && !isResolved) {
6535
+ if (!stopOnError && errors.length > 0) {
6536
+ reject(new AggregateError(errors));
6537
+ return [
6538
+ 2
6539
+ ];
6540
+ }
6541
+ isResolved = true;
6542
+ if (skippedIndexesMap.size === 0) {
6543
+ resolve(result);
6544
+ return [
6545
+ 2
6546
+ ];
6547
+ }
6548
+ pureResult = [];
6549
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
6550
+ try {
6551
+ for(_iterator = result.entries()[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
6552
+ _step_value = _sliced_to_array(_step.value, 2), index2 = _step_value[0], value = _step_value[1];
6553
+ if (skippedIndexesMap.get(index2) === pMapSkip) {
6554
+ continue;
6555
+ }
6556
+ pureResult.push(value);
6557
+ }
6558
+ } catch (err) {
6559
+ _didIteratorError = true;
6560
+ _iteratorError = err;
6561
+ } finally{
6562
+ try {
6563
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
6564
+ _iterator.return();
6565
+ }
6566
+ } finally{
6567
+ if (_didIteratorError) {
6568
+ throw _iteratorError;
6569
+ }
6570
+ }
6571
+ }
6572
+ resolve(pureResult);
6573
+ }
6574
+ return [
6575
+ 2
6576
+ ];
6577
+ }
6578
+ resolvingCount++;
6579
+ _async_to_generator(function() {
6580
+ var element, value, error, error2;
6581
+ return _ts_generator(this, function(_state) {
6582
+ switch(_state.label){
6583
+ case 0:
6584
+ _state.trys.push([
6585
+ 0,
6586
+ 4,
6587
+ ,
6588
+ 10
6589
+ ]);
6590
+ return [
6591
+ 4,
6592
+ nextItem.value
6593
+ ];
6594
+ case 1:
6595
+ element = _state.sent();
6596
+ if (isResolved) {
6597
+ return [
6598
+ 2
6599
+ ];
6600
+ }
6601
+ return [
6602
+ 4,
6603
+ mapper(element, index)
6604
+ ];
6605
+ case 2:
6606
+ value = _state.sent();
6607
+ if (value === pMapSkip) {
6608
+ skippedIndexesMap.set(index, value);
6609
+ }
6610
+ result[index] = value;
6611
+ resolvingCount--;
6612
+ return [
6613
+ 4,
6614
+ next()
6615
+ ];
6616
+ case 3:
6617
+ _state.sent();
6618
+ return [
6619
+ 3,
6620
+ 10
6621
+ ];
6622
+ case 4:
6623
+ error = _state.sent();
6624
+ if (!stopOnError) return [
6625
+ 3,
6626
+ 5
6627
+ ];
6628
+ reject(error);
6629
+ return [
6630
+ 3,
6631
+ 9
6632
+ ];
6633
+ case 5:
6634
+ errors.push(error);
6635
+ resolvingCount--;
6636
+ _state.label = 6;
6637
+ case 6:
6638
+ _state.trys.push([
6639
+ 6,
6640
+ 8,
6641
+ ,
6642
+ 9
6643
+ ]);
6644
+ return [
6645
+ 4,
6646
+ next()
6647
+ ];
6648
+ case 7:
6649
+ _state.sent();
6650
+ return [
6651
+ 3,
6652
+ 9
6653
+ ];
6654
+ case 8:
6655
+ error2 = _state.sent();
6656
+ reject(error2);
6657
+ return [
6658
+ 3,
6659
+ 9
6660
+ ];
6661
+ case 9:
6662
+ return [
6663
+ 3,
6664
+ 10
6665
+ ];
6666
+ case 10:
6667
+ return [
6668
+ 2
6669
+ ];
6670
+ }
6671
+ });
6672
+ })();
6673
+ return [
6674
+ 2
6675
+ ];
6676
+ }
6677
+ });
6678
+ });
6679
+ return function next() {
6680
+ return _ref.apply(this, arguments);
6681
+ };
6682
+ }();
6683
+ _async_to_generator(function() {
6684
+ var index, error;
6685
+ return _ts_generator(this, function(_state) {
6686
+ switch(_state.label){
6687
+ case 0:
6688
+ index = 0;
6689
+ _state.label = 1;
6690
+ case 1:
6691
+ if (!(index < concurrency)) return [
6692
+ 3,
6693
+ 7
6694
+ ];
6695
+ _state.label = 2;
6696
+ case 2:
6697
+ _state.trys.push([
6698
+ 2,
6699
+ 4,
6700
+ ,
6701
+ 5
6702
+ ]);
6703
+ return [
6704
+ 4,
6705
+ next()
6706
+ ];
6707
+ case 3:
6708
+ _state.sent();
6709
+ return [
6710
+ 3,
6711
+ 5
6712
+ ];
6713
+ case 4:
6714
+ error = _state.sent();
6715
+ reject(error);
6716
+ return [
6717
+ 3,
6718
+ 7
6719
+ ];
6720
+ case 5:
6721
+ if (isIterableDone || isRejected) {
6722
+ return [
6723
+ 3,
6724
+ 7
6725
+ ];
6726
+ }
6727
+ _state.label = 6;
6728
+ case 6:
6729
+ index++;
6730
+ return [
6731
+ 3,
6732
+ 1
6733
+ ];
6734
+ case 7:
6735
+ return [
6736
+ 2
6737
+ ];
6738
+ }
6739
+ });
6740
+ })();
6741
+ })
6742
+ ];
6743
+ });
6744
+ });
6745
+ return _pMap.apply(this, arguments);
6746
+ }
6747
+ var pMapSkip = Symbol("skip");
5827
6748
  // src/adapters/storage/responsesStorageAdapter/threads/runs/steps/get.ts
5828
6749
  var import_radash20 = require("radash");
5829
- // src/adapters/storage/responsesStorageAdapter/threads/runs/steps/serializeRunStep.ts
5830
- var import_dayjs16 = __toESM(require("dayjs"), 1);
6750
+ // src/lib/items/serializeItemAsRunStep.ts
6751
+ var import_dayjs12 = __toESM(require("dayjs"), 1);
5831
6752
  var import_radash19 = require("radash");
5832
- var isConvMessage = function(i) {
5833
- return "type" in i && i.type === "message";
5834
- };
5835
- var isConvFn = function(i) {
5836
- return "type" in i && i.type === "function_call";
5837
- };
5838
- function serializeRunStep2(param) {
5839
- var item = param.item, threadId = param.threadId;
5840
- var now = (0, import_dayjs16.default)().unix();
5841
- var assistantId = "asst_".concat((0, import_radash19.uid)(24));
5842
- var runId = "run_".concat((0, import_radash19.uid)(24));
6753
+ function serializeItemAsRunStep(param) {
6754
+ var item = param.item, items = param.items, threadId = param.threadId, openaiAssistant = param.openaiAssistant, _param_runId = param.runId, runId = _param_runId === void 0 ? "run_".concat((0, import_radash19.uid)(24)) : _param_runId, tmp = param.status, status3 = tmp === void 0 ? "completed" : tmp, _param_completedAt = param.completedAt, completedAt = _param_completedAt === void 0 ? (0, import_dayjs12.default)().unix() : _param_completedAt;
5843
6755
  var itemId = typeof item.id === "string" ? item.id : "item_".concat((0, import_radash19.uid)(18));
5844
6756
  var base = {
5845
6757
  id: itemId,
5846
- // <- always string
5847
6758
  object: "thread.run.step",
5848
- created_at: now,
5849
- assistant_id: assistantId,
6759
+ created_at: (0, import_dayjs12.default)().unix(),
6760
+ assistant_id: openaiAssistant.id,
5850
6761
  thread_id: threadId,
5851
6762
  run_id: runId,
5852
- status: "completed",
6763
+ status: status3,
5853
6764
  last_error: null,
5854
6765
  expired_at: null,
5855
6766
  cancelled_at: null,
5856
6767
  failed_at: null,
5857
- completed_at: now,
6768
+ completed_at: completedAt,
5858
6769
  metadata: {},
5859
6770
  usage: null
5860
6771
  };
5861
- if (isConvMessage(item)) {
6772
+ if (item.type === "message") {
5862
6773
  return _object_spread_props(_object_spread({}, base), {
5863
6774
  type: "message_creation",
5864
6775
  step_details: {
@@ -5874,16 +6785,17 @@ function serializeRunStep2(param) {
5874
6785
  } : {}
5875
6786
  });
5876
6787
  }
5877
- if (isConvFn(item)) {
5878
- var fn = item;
6788
+ if (item.type === "function_call") {
6789
+ var functionCallOutput = items.find(function(i) {
6790
+ return i.type === "function_call_output" && i.call_id === item.call_id;
6791
+ });
5879
6792
  var toolCall = {
5880
- // prefer itemId; if your client also exposes a separate call_id, you could fall back to it
5881
- id: itemId,
6793
+ id: item.call_id,
5882
6794
  type: "function",
5883
6795
  function: {
5884
- name: fn.name,
5885
- arguments: fn.arguments,
5886
- output: null
6796
+ name: item.name,
6797
+ arguments: item.arguments,
6798
+ output: functionCallOutput ? functionCallOutput.output : null
5887
6799
  }
5888
6800
  };
5889
6801
  return _object_spread_props(_object_spread({}, base), {
@@ -5903,44 +6815,108 @@ function serializeRunStep2(param) {
5903
6815
  message_creation: {
5904
6816
  message_id: itemId
5905
6817
  }
6818
+ },
6819
+ metadata: {
6820
+ item: JSON.stringify(item)
5906
6821
  }
5907
6822
  });
5908
6823
  }
5909
6824
  // src/adapters/storage/responsesStorageAdapter/threads/runs/steps/get.ts
5910
6825
  var get17 = function(param) {
5911
- var openai = param.openai;
6826
+ var client = param.client, runAdapter = param.runAdapter;
5912
6827
  return /*#__PURE__*/ function() {
5913
6828
  var _ref = _async_to_generator(function(urlString) {
5914
- var _this, url, _url_pathname_match, threadId, runId, _ref, limit, order, after, items, _id;
6829
+ var _this, url, _url_pathname_match, threadId, runId, response, functionCalls, functionCallOutputsResponses, functionCallOutputs, openaiAssistant, data, _id;
5915
6830
  return _ts_generator(this, function(_state) {
5916
6831
  switch(_state.label){
5917
6832
  case 0:
5918
6833
  url = new URL(urlString);
5919
6834
  _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp(stepsRegexp)), 3), threadId = _url_pathname_match[1], runId = _url_pathname_match[2];
5920
- _ref = (0, import_radash20.assign)({
5921
- limit: "20",
5922
- order: "desc"
5923
- }, Object.fromEntries(url.searchParams)), limit = _ref.limit, order = _ref.order, after = _ref.after;
5924
6835
  return [
5925
6836
  4,
5926
- openai.conversations.items.list(threadId, {
5927
- limit: parseInt(limit),
5928
- after: after,
5929
- order: order
5930
- })
6837
+ client.responses.retrieve(runId)
6838
+ ];
6839
+ case 1:
6840
+ response = _state.sent();
6841
+ functionCalls = response.output.filter(function(item) {
6842
+ return item.type === "function_call";
6843
+ });
6844
+ return [
6845
+ 4,
6846
+ pMap(functionCalls, /*#__PURE__*/ function() {
6847
+ var _ref = _async_to_generator(function(functionCall) {
6848
+ var items;
6849
+ return _ts_generator(this, function(_state) {
6850
+ switch(_state.label){
6851
+ case 0:
6852
+ return [
6853
+ 4,
6854
+ client.conversations.items.list(threadId, {
6855
+ after: functionCall.id,
6856
+ order: "asc"
6857
+ })
6858
+ ];
6859
+ case 1:
6860
+ items = _state.sent();
6861
+ return [
6862
+ 2,
6863
+ items.data.find(function(item) {
6864
+ return item.type === "function_call_output" && item.call_id === functionCall.call_id;
6865
+ })
6866
+ ];
6867
+ }
6868
+ });
6869
+ });
6870
+ return function(functionCall) {
6871
+ return _ref.apply(this, arguments);
6872
+ };
6873
+ }())
6874
+ ];
6875
+ case 2:
6876
+ functionCallOutputsResponses = _state.sent();
6877
+ functionCallOutputs = functionCallOutputsResponses.filter(Boolean);
6878
+ return [
6879
+ 4,
6880
+ runAdapter.getOpenaiAssistant()
5931
6881
  ];
5932
- case 1:
5933
- items = _state.sent();
6882
+ case 3:
6883
+ openaiAssistant = _state.sent();
6884
+ data = response.output.flatMap(function(item) {
6885
+ var step = serializeItemAsRunStep({
6886
+ item: item,
6887
+ items: functionCallOutputs,
6888
+ threadId: threadId,
6889
+ openaiAssistant: openaiAssistant,
6890
+ runId: response.id
6891
+ });
6892
+ if (item.type === "function_call") {
6893
+ var synthCreation = {
6894
+ id: "mc".concat(item.id),
6895
+ run_id: response.id,
6896
+ status: "completed",
6897
+ completed_at: step.created_at,
6898
+ step_details: {
6899
+ type: "message_creation",
6900
+ message_creation: {
6901
+ message_id: item.id
6902
+ }
6903
+ }
6904
+ };
6905
+ return [
6906
+ synthCreation,
6907
+ step
6908
+ ];
6909
+ }
6910
+ return [
6911
+ step
6912
+ ];
6913
+ });
5934
6914
  return [
5935
6915
  2,
5936
6916
  new Response(JSON.stringify({
5937
- data: items.data.map(function(item) {
5938
- return serializeRunStep2({
5939
- item: item
5940
- });
5941
- }),
5942
- has_more: items.has_more,
5943
- last_id: (_id = (_this = (0, import_radash20.last)(items.data)) === null || _this === void 0 ? void 0 : _this.id) !== null && _id !== void 0 ? _id : null
6917
+ data: data,
6918
+ has_more: false,
6919
+ last_id: (_id = (_this = (0, import_radash20.last)(response.output)) === null || _this === void 0 ? void 0 : _this.id) !== null && _id !== void 0 ? _id : null
5944
6920
  }), {
5945
6921
  status: 200,
5946
6922
  headers: {
@@ -5958,10 +6934,11 @@ var get17 = function(param) {
5958
6934
  };
5959
6935
  // src/adapters/storage/responsesStorageAdapter/threads/runs/steps/index.ts
5960
6936
  var steps2 = function(param) {
5961
- var openai = param.openai;
6937
+ var client = param.client, runAdapter = param.runAdapter;
5962
6938
  return {
5963
6939
  get: get17({
5964
- openai: openai
6940
+ client: client,
6941
+ runAdapter: runAdapter
5965
6942
  })
5966
6943
  };
5967
6944
  };
@@ -5977,7 +6954,7 @@ var serializeTools3 = function(param) {
5977
6954
  })
5978
6955
  };
5979
6956
  };
5980
- var serializeInput = function(param) {
6957
+ var getFunctionCallOutputItems = function(param) {
5981
6958
  var tool_outputs = param.tool_outputs;
5982
6959
  return tool_outputs.map(function(toolOutput) {
5983
6960
  return {
@@ -5988,10 +6965,10 @@ var serializeInput = function(param) {
5988
6965
  });
5989
6966
  };
5990
6967
  var post18 = function(param) {
5991
- var openai = param.openai, openaiAssistant = param.openaiAssistant, runAdapter = param.runAdapter;
6968
+ var client = param.client, runAdapter = param.runAdapter;
5992
6969
  return /*#__PURE__*/ function() {
5993
6970
  var _ref = _async_to_generator(function(urlString, options) {
5994
- var url, _url_pathname_match, threadId, runId, body, tool_outputs, stream, response, readableStream;
6971
+ var url, _url_pathname_match, threadId, runId, body, tool_outputs, stream, functionCallOutputItems, previousResponse, openaiAssistant, response, readableStream;
5995
6972
  return _ts_generator(this, function(_state) {
5996
6973
  switch(_state.label){
5997
6974
  case 0:
@@ -5999,18 +6976,26 @@ var post18 = function(param) {
5999
6976
  _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp(submitToolOutputsRegexp)), 3), threadId = _url_pathname_match[1], runId = _url_pathname_match[2];
6000
6977
  body = JSON.parse(options.body);
6001
6978
  tool_outputs = body.tool_outputs, stream = body.stream;
6002
- console.dir({
6003
- body: body
6004
- }, {
6005
- depth: null
6979
+ functionCallOutputItems = getFunctionCallOutputItems({
6980
+ tool_outputs: tool_outputs
6006
6981
  });
6007
6982
  return [
6008
6983
  4,
6009
- openai.responses.create(_object_spread({
6984
+ client.responses.retrieve(runId)
6985
+ ];
6986
+ case 1:
6987
+ previousResponse = _state.sent();
6988
+ return [
6989
+ 4,
6990
+ runAdapter.getOpenaiAssistant()
6991
+ ];
6992
+ case 2:
6993
+ openaiAssistant = _state.sent();
6994
+ return [
6995
+ 4,
6996
+ client.responses.create(_object_spread({
6010
6997
  conversation: threadId,
6011
- input: serializeInput({
6012
- tool_outputs: tool_outputs
6013
- }),
6998
+ input: functionCallOutputItems,
6014
6999
  instructions: openaiAssistant.instructions,
6015
7000
  model: openaiAssistant.model,
6016
7001
  // metadata,
@@ -6019,7 +7004,7 @@ var post18 = function(param) {
6019
7004
  tools: openaiAssistant.tools
6020
7005
  })))
6021
7006
  ];
6022
- case 1:
7007
+ case 3:
6023
7008
  response = _state.sent();
6024
7009
  readableStream = new ReadableStream({
6025
7010
  start: function start(controller) {
@@ -6027,11 +7012,29 @@ var post18 = function(param) {
6027
7012
  return _ts_generator(this, function(_state) {
6028
7013
  switch(_state.label){
6029
7014
  case 0:
7015
+ functionCallOutputItems.forEach(function(item) {
7016
+ var functionCallItem = previousResponse.output.find(function(i) {
7017
+ return i.type === "function_call" && i.call_id === item.call_id;
7018
+ });
7019
+ if (!functionCallItem) {
7020
+ return;
7021
+ }
7022
+ controller.enqueue("data: ".concat(JSON.stringify({
7023
+ event: "thread.run.step.completed",
7024
+ data: serializeItemAsRunStep({
7025
+ item: functionCallItem,
7026
+ items: functionCallOutputItems,
7027
+ threadId: threadId,
7028
+ openaiAssistant: openaiAssistant,
7029
+ runId: runId
7030
+ })
7031
+ }), "\n\n"));
7032
+ });
6030
7033
  return [
6031
7034
  4,
6032
- runAdapter({
7035
+ runAdapter.handleRun({
7036
+ threadId: threadId,
6033
7037
  response: response,
6034
- // run: serializeRun({ run }),
6035
7038
  onEvent: /*#__PURE__*/ function() {
6036
7039
  var _ref = _async_to_generator(function(event) {
6037
7040
  return _ts_generator(this, function(_state) {
@@ -6076,387 +7079,220 @@ var post18 = function(param) {
6076
7079
  };
6077
7080
  // src/adapters/storage/responsesStorageAdapter/threads/runs/submitToolOutputs/index.ts
6078
7081
  var submitToolOutputs2 = function(param) {
6079
- var openai = param.openai, openaiAssistant = param.openaiAssistant, runAdapter = param.runAdapter;
7082
+ var client = param.client, runAdapter = param.runAdapter;
6080
7083
  return {
6081
7084
  post: post18({
6082
- openai: openai,
6083
- openaiAssistant: openaiAssistant,
6084
- // @ts-ignore-next-line
7085
+ client: client,
6085
7086
  runAdapter: runAdapter
6086
7087
  })
6087
7088
  };
6088
7089
  };
6089
- // src/adapters/storage/responsesStorageAdapter/assistants/post.ts
6090
- var post19 = function(param) {
6091
- var openai = param.openai;
7090
+ // src/adapters/storage/responsesStorageAdapter/assistants/get.ts
7091
+ var get18 = function(param) {
7092
+ var runAdapter = param.runAdapter;
6092
7093
  return /*#__PURE__*/ function() {
6093
- var _ref = _async_to_generator(function(_url, options) {
6094
- var body, model, instructions;
7094
+ var _ref = _async_to_generator(function(urlString) {
7095
+ var _, _1, _tmp;
6095
7096
  return _ts_generator(this, function(_state) {
6096
- body = JSON.parse(options.body);
6097
- model = body.model, instructions = body.instructions;
6098
- throw new Error("Not implemented");
7097
+ switch(_state.label){
7098
+ case 0:
7099
+ _ = Response.bind;
7100
+ _1 = JSON.stringify;
7101
+ _tmp = {};
7102
+ return [
7103
+ 4,
7104
+ runAdapter.getOpenaiAssistant()
7105
+ ];
7106
+ case 1:
7107
+ _tmp.data = [
7108
+ _state.sent()
7109
+ ], _tmp.has_more = false;
7110
+ return [
7111
+ 4,
7112
+ runAdapter.getOpenaiAssistant()
7113
+ ];
7114
+ case 2:
7115
+ return [
7116
+ 2,
7117
+ new (_.apply(Response, [
7118
+ void 0,
7119
+ _1.apply(JSON, [
7120
+ (_tmp.last_id = _state.sent().id, _tmp)
7121
+ ]),
7122
+ {
7123
+ status: 200,
7124
+ headers: {
7125
+ "Content-Type": "application/json"
7126
+ }
7127
+ }
7128
+ ]))
7129
+ ];
7130
+ }
6099
7131
  });
6100
7132
  });
6101
- return function(_url, options) {
7133
+ return function(urlString) {
6102
7134
  return _ref.apply(this, arguments);
6103
7135
  };
6104
7136
  }();
6105
7137
  };
7138
+ // src/adapters/storage/responsesStorageAdapter/assistants/post.ts
7139
+ var post19 = function() {
7140
+ return /*#__PURE__*/ _async_to_generator(function() {
7141
+ return _ts_generator(this, function(_state) {
7142
+ return [
7143
+ 2,
7144
+ new Response(JSON.stringify({
7145
+ error: {
7146
+ message: "Assistant creation is not implemented for the Responses storage adapter.",
7147
+ type: "not_implemented"
7148
+ }
7149
+ }), {
7150
+ status: 501,
7151
+ headers: {
7152
+ "Content-Type": "application/json"
7153
+ }
7154
+ })
7155
+ ];
7156
+ });
7157
+ });
7158
+ };
6106
7159
  // src/adapters/storage/responsesStorageAdapter/assistants/index.ts
6107
7160
  var assistants2 = function(param) {
6108
- var openai = param.openai;
7161
+ var runAdapter = param.runAdapter;
6109
7162
  return {
6110
- post: post19({
6111
- openai: openai
6112
- })
7163
+ get: get18({
7164
+ runAdapter: runAdapter
7165
+ }),
7166
+ post: post19()
6113
7167
  };
6114
7168
  };
6115
7169
  // src/adapters/storage/responsesStorageAdapter/index.ts
6116
- var responsesStorageAdapter = function(param) {
6117
- var openai = param.openai, openaiAssistant = param.openaiAssistant;
7170
+ var responsesStorageAdapter = function() {
7171
+ var createResponseItems = [];
6118
7172
  return function(param) {
6119
- var runAdapter = param.runAdapter;
7173
+ var runAdapter = param.runAdapter, client = param.client;
6120
7174
  var _obj;
6121
7175
  return {
6122
7176
  requestHandlers: (_obj = {
6123
- "^/(?:v1/|openai/)?assistants$": assistants2({
6124
- openai: openai
7177
+ "^/(?:v1|/?openai)/assistants$": assistants2({
7178
+ runAdapter: runAdapter
6125
7179
  }),
6126
7180
  "^/(?:v1|/?openai)/threads$": threads2({
6127
- openai: openai
7181
+ client: client
6128
7182
  })
6129
7183
  }, _define_property(_obj, messagesRegexp, messages3({
6130
- openai: openai
7184
+ client: client,
7185
+ runAdapter: runAdapter,
7186
+ createResponseItems: createResponseItems
6131
7187
  })), _define_property(_obj, runsRegexp, runs2({
6132
- openai: openai,
6133
- openaiAssistant: openaiAssistant,
6134
- runAdapter: runAdapter
6135
- })), _define_property(_obj, runRegexp, run3({
6136
- openai: openai,
7188
+ client: client,
7189
+ runAdapter: runAdapter,
7190
+ createResponseItems: createResponseItems
7191
+ })), _define_property(_obj, runRegexp, run2({
7192
+ client: client,
6137
7193
  runAdapter: runAdapter
6138
7194
  })), _define_property(_obj, stepsRegexp, steps2({
6139
- openai: openai
7195
+ client: client,
7196
+ runAdapter: runAdapter
6140
7197
  })), _define_property(_obj, submitToolOutputsRegexp, submitToolOutputs2({
6141
- openai: openai,
6142
- openaiAssistant: openaiAssistant,
7198
+ client: client,
6143
7199
  runAdapter: runAdapter
6144
7200
  })), _obj)
6145
7201
  };
6146
7202
  };
6147
7203
  };
6148
7204
  // src/adapters/run/responsesRunAdapter/index.ts
6149
- var import_dayjs17 = __toESM(require("dayjs"), 1);
7205
+ var import_dayjs13 = __toESM(require("dayjs"), 1);
6150
7206
  var import_radash21 = require("radash");
6151
- var responsesRunAdapter = function() {
6152
- return /*#__PURE__*/ function() {
6153
- var _ref = _async_to_generator(function(param) {
6154
- var response, onEvent2, now, runId, threadId, asstId, model, msg, itemToCallId, callsById, callOrder, toolCallsStepId, sawToolCalls, ensureToolCallsStep, emitTextDelta, getOrCreateToolCall, emitToolArgsDelta, completeToolCallsStep, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, evt, _evt_response, t, finalCalls, _evt_error, _evt_error1, delta, finalText, item, itemId, callId, name, itemId1, argsDelta, maybeName, callId1, fallbackCallId, effectiveCallId, tc, err, e;
7207
+ var serializeToolCalls2 = function(param) {
7208
+ var toolCalls = param.toolCalls;
7209
+ return toolCalls.map(function(toolCall) {
7210
+ return {
7211
+ id: toolCall.call_id,
7212
+ type: "function",
7213
+ function: {
7214
+ name: toolCall.name,
7215
+ arguments: toolCall.arguments
7216
+ }
7217
+ };
7218
+ });
7219
+ };
7220
+ var responsesRunAdapter = function(param) {
7221
+ var getDirectOpenaiAssistant = param.getOpenaiAssistant;
7222
+ var cachedOpenaiAssistant = null;
7223
+ var getOpenaiAssistant = /*#__PURE__*/ function() {
7224
+ var _ref = _async_to_generator(function() {
6155
7225
  return _ts_generator(this, function(_state) {
6156
7226
  switch(_state.label){
6157
7227
  case 0:
6158
- response = param.response, onEvent2 = param.onEvent;
6159
- now = (0, import_dayjs17.default)().unix();
6160
- runId = "run_".concat((0, import_radash21.uid)(18));
6161
- threadId = "thread_".concat((0, import_radash21.uid)(18));
6162
- asstId = "asst_".concat((0, import_radash21.uid)(18));
6163
- model = "unknown";
6164
- msg = {
6165
- id: "msg_".concat((0, import_radash21.uid)(18)),
6166
- object: "thread.message",
6167
- role: "assistant",
6168
- thread_id: threadId,
6169
- run_id: runId,
6170
- assistant_id: asstId,
6171
- created_at: now,
6172
- status: "in_progress",
6173
- content: [
6174
- {
6175
- type: "text",
6176
- text: {
6177
- value: "",
6178
- annotations: []
6179
- }
6180
- }
6181
- ]
6182
- };
6183
- itemToCallId = /* @__PURE__ */ new Map();
6184
- callsById = /* @__PURE__ */ new Map();
6185
- callOrder = [];
6186
- toolCallsStepId = null;
6187
- sawToolCalls = false;
6188
- return [
6189
- 4,
6190
- onEvent2({
6191
- event: "thread.run.created",
6192
- data: {
6193
- id: runId,
6194
- object: "thread.run",
6195
- thread_id: threadId,
6196
- assistant_id: asstId,
6197
- created_at: now,
6198
- status: "queued",
6199
- model: model
6200
- }
6201
- })
7228
+ if (cachedOpenaiAssistant) return [
7229
+ 2,
7230
+ cachedOpenaiAssistant
6202
7231
  ];
6203
- case 1:
6204
- _state.sent();
6205
7232
  return [
6206
7233
  4,
6207
- onEvent2({
6208
- event: "thread.run.in_progress",
6209
- data: {
6210
- id: runId,
6211
- object: "thread.run",
6212
- thread_id: threadId,
6213
- assistant_id: asstId,
6214
- created_at: now,
6215
- status: "in_progress",
6216
- model: model
6217
- }
6218
- })
7234
+ getDirectOpenaiAssistant()
6219
7235
  ];
6220
- case 2:
6221
- _state.sent();
7236
+ case 1:
7237
+ cachedOpenaiAssistant = _state.sent();
6222
7238
  return [
6223
- 4,
6224
- onEvent2({
6225
- event: "thread.message.created",
6226
- data: msg
6227
- })
7239
+ 2,
7240
+ cachedOpenaiAssistant
6228
7241
  ];
6229
- case 3:
6230
- _state.sent();
6231
- ensureToolCallsStep = /*#__PURE__*/ function() {
6232
- var _ref = _async_to_generator(function() {
6233
- return _ts_generator(this, function(_state) {
6234
- switch(_state.label){
6235
- case 0:
6236
- if (toolCallsStepId) return [
6237
- 2
6238
- ];
6239
- toolCallsStepId = "step_".concat((0, import_radash21.uid)(18));
6240
- return [
6241
- 4,
6242
- onEvent2({
6243
- event: "thread.run.step.created",
6244
- data: {
6245
- id: toolCallsStepId,
6246
- object: "thread.run.step",
6247
- run_id: runId,
6248
- assistant_id: asstId,
6249
- thread_id: threadId,
6250
- type: "tool_calls",
6251
- status: "in_progress",
6252
- created_at: (0, import_dayjs17.default)().unix(),
6253
- completed_at: null,
6254
- step_details: {
6255
- type: "tool_calls",
6256
- tool_calls: []
6257
- }
6258
- }
6259
- })
6260
- ];
6261
- case 1:
6262
- _state.sent();
6263
- return [
6264
- 2
6265
- ];
6266
- }
6267
- });
6268
- });
6269
- return function ensureToolCallsStep() {
6270
- return _ref.apply(this, arguments);
6271
- };
6272
- }();
6273
- emitTextDelta = /*#__PURE__*/ function() {
6274
- var _ref = _async_to_generator(function(chunk) {
6275
- return _ts_generator(this, function(_state) {
6276
- switch(_state.label){
6277
- case 0:
6278
- if (!chunk) return [
6279
- 2
6280
- ];
6281
- return [
6282
- 4,
6283
- onEvent2({
6284
- event: "thread.message.delta",
6285
- data: {
6286
- id: msg.id,
6287
- delta: {
6288
- content: [
6289
- {
6290
- type: "text",
6291
- index: 0,
6292
- text: {
6293
- value: chunk
6294
- }
6295
- }
6296
- ]
6297
- }
6298
- }
6299
- })
6300
- ];
6301
- case 1:
6302
- _state.sent();
6303
- msg.content[0].text.value += chunk;
6304
- return [
6305
- 2
6306
- ];
6307
- }
6308
- });
6309
- });
6310
- return function emitTextDelta(chunk) {
6311
- return _ref.apply(this, arguments);
6312
- };
6313
- }();
6314
- getOrCreateToolCall = function(callId, name) {
6315
- var tc = callsById.get(callId);
6316
- if (!tc) {
6317
- tc = {
6318
- id: callId,
6319
- type: "function",
6320
- function: {
6321
- name: name || "unknown_function",
6322
- arguments: ""
6323
- }
6324
- };
6325
- callsById.set(callId, tc);
6326
- callOrder.push(callId);
6327
- } else if (name && tc.function.name === "unknown_function") {
6328
- tc.function.name = name;
6329
- }
6330
- return tc;
6331
- };
6332
- emitToolArgsDelta = /*#__PURE__*/ function() {
6333
- var _ref = _async_to_generator(function(callId, name, argsDelta) {
6334
- return _ts_generator(this, function(_state) {
6335
- switch(_state.label){
6336
- case 0:
6337
- if (!toolCallsStepId) return [
6338
- 2
6339
- ];
6340
- return [
6341
- 4,
6342
- onEvent2({
6343
- event: "thread.run.step.delta",
6344
- data: {
6345
- object: "thread.run.step.delta",
6346
- run_id: runId,
6347
- id: toolCallsStepId,
6348
- delta: {
6349
- step_details: {
6350
- type: "tool_calls",
6351
- tool_calls: [
6352
- {
6353
- id: callId,
6354
- // IMPORTANT: stable call_id in deltas too
6355
- type: "function",
6356
- function: {
6357
- name: name,
6358
- arguments: argsDelta || ""
6359
- }
6360
- }
6361
- ]
6362
- }
6363
- }
6364
- }
6365
- })
6366
- ];
6367
- case 1:
6368
- _state.sent();
6369
- return [
6370
- 2
6371
- ];
6372
- }
6373
- });
6374
- });
6375
- return function emitToolArgsDelta(callId, name, argsDelta) {
6376
- return _ref.apply(this, arguments);
6377
- };
6378
- }();
6379
- completeToolCallsStep = /*#__PURE__*/ function() {
6380
- var _ref = _async_to_generator(function() {
6381
- return _ts_generator(this, function(_state) {
6382
- switch(_state.label){
6383
- case 0:
6384
- if (!toolCallsStepId) return [
6385
- 2
6386
- ];
6387
- return [
6388
- 4,
6389
- onEvent2({
6390
- event: "thread.run.step.completed",
6391
- data: {
6392
- id: toolCallsStepId,
6393
- object: "thread.run.step",
6394
- run_id: runId,
6395
- assistant_id: asstId,
6396
- thread_id: threadId,
6397
- type: "tool_calls",
6398
- status: "completed",
6399
- created_at: now,
6400
- completed_at: (0, import_dayjs17.default)().unix(),
6401
- step_details: {
6402
- type: "tool_calls",
6403
- tool_calls: callOrder.map(function(cid) {
6404
- return callsById.get(cid);
6405
- })
6406
- }
6407
- }
6408
- })
6409
- ];
6410
- case 1:
6411
- _state.sent();
6412
- return [
6413
- 2
6414
- ];
6415
- }
6416
- });
6417
- });
6418
- return function completeToolCallsStep() {
6419
- return _ref.apply(this, arguments);
6420
- };
6421
- }();
6422
- _state.label = 4;
6423
- case 4:
7242
+ }
7243
+ });
7244
+ });
7245
+ return function getOpenaiAssistant() {
7246
+ return _ref.apply(this, arguments);
7247
+ };
7248
+ }();
7249
+ var handleRun = /*#__PURE__*/ function() {
7250
+ var _ref = _async_to_generator(function(param) {
7251
+ var client, threadId, response, onEvent2, responseCreatedResponse, toolCalls, itemIds, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, event, _, _tmp, _tmp1, _tmp2, _tmp3, toolCalls2, _tmp4, _tmp5, _tmp6, _tmp7, _tmp8, _tmp9, _tmp10, _tmp11, _tmp12, _tmp13, _tmp14, _tmp15, _tmp16, _tmp17, _tmp18, _tmp19, _tmp20, _tmp21, _tmp22, toolCall, err, e, _tmp23, _tmp24;
7252
+ return _ts_generator(this, function(_state) {
7253
+ switch(_state.label){
7254
+ case 0:
7255
+ client = param.client, threadId = param.threadId, response = param.response, onEvent2 = param.onEvent;
7256
+ responseCreatedResponse = null;
7257
+ toolCalls = {};
7258
+ itemIds = [];
7259
+ _state.label = 1;
7260
+ case 1:
6424
7261
  _state.trys.push([
6425
- 4,
6426
- 41,
6427
- ,
6428
- 43
7262
+ 1,
7263
+ 53,
7264
+ 56,
7265
+ 59
6429
7266
  ]);
6430
7267
  _iteratorAbruptCompletion = false, _didIteratorError = false;
6431
- _state.label = 5;
6432
- case 5:
7268
+ _state.label = 2;
7269
+ case 2:
6433
7270
  _state.trys.push([
6434
- 5,
6435
- 34,
6436
- 35,
6437
- 40
7271
+ 2,
7272
+ 46,
7273
+ 47,
7274
+ 52
6438
7275
  ]);
6439
7276
  _iterator = _async_iterator(response);
6440
- _state.label = 6;
6441
- case 6:
7277
+ _state.label = 3;
7278
+ case 3:
6442
7279
  return [
6443
7280
  4,
6444
7281
  _iterator.next()
6445
7282
  ];
6446
- case 7:
7283
+ case 4:
6447
7284
  if (!(_iteratorAbruptCompletion = !(_step = _state.sent()).done)) return [
6448
7285
  3,
6449
- 33
7286
+ 45
6450
7287
  ];
6451
7288
  _value = _step.value;
6452
- evt = _value;
6453
- t = evt === null || evt === void 0 ? void 0 : evt.type;
6454
- if (evt === null || evt === void 0 ? void 0 : (_evt_response = evt.response) === null || _evt_response === void 0 ? void 0 : _evt_response.model) model = evt.response.model;
6455
- switch(t){
7289
+ event = _value;
7290
+ _ = event.type;
7291
+ switch(_){
6456
7292
  case "response.created":
6457
7293
  return [
6458
7294
  3,
6459
- 8
7295
+ 5
6460
7296
  ];
6461
7297
  case "response.in_progress":
6462
7298
  return [
@@ -6466,363 +7302,573 @@ var responsesRunAdapter = function() {
6466
7302
  case "response.completed":
6467
7303
  return [
6468
7304
  3,
6469
- 9
6470
- ];
6471
- case "response.error":
6472
- return [
6473
- 3,
6474
- 16
7305
+ 11
6475
7306
  ];
6476
- case "response.output_text.delta":
7307
+ case "response.failed":
6477
7308
  return [
6478
7309
  3,
6479
7310
  18
6480
7311
  ];
6481
- case "response.output_text.done":
7312
+ case "response.output_text.delta":
6482
7313
  return [
6483
7314
  3,
6484
- 20
7315
+ 21
6485
7316
  ];
6486
7317
  case "response.output_item.added":
6487
7318
  return [
6488
7319
  3,
6489
7320
  23
6490
7321
  ];
6491
- case "response.output_item.done":
6492
- return [
6493
- 3,
6494
- 26
6495
- ];
6496
- case "response.function_call_arguments.delta":
7322
+ case "response.output_item.done":
6497
7323
  return [
6498
7324
  3,
6499
- 27
7325
+ 32
6500
7326
  ];
6501
- case "response.function_call_arguments.done":
7327
+ case "response.function_call_arguments.delta":
6502
7328
  return [
6503
7329
  3,
6504
- 30
7330
+ 41
6505
7331
  ];
6506
7332
  }
6507
7333
  return [
6508
7334
  3,
6509
- 31
7335
+ 43
6510
7336
  ];
6511
- case 8:
7337
+ case 5:
7338
+ responseCreatedResponse = event.response;
7339
+ _tmp = {
7340
+ event: "thread.run.created"
7341
+ };
7342
+ _tmp1 = {
7343
+ response: event.response
7344
+ };
7345
+ return [
7346
+ 4,
7347
+ getOpenaiAssistant()
7348
+ ];
7349
+ case 6:
7350
+ return [
7351
+ 4,
7352
+ onEvent2.apply(void 0, [
7353
+ (_tmp.data = serializeResponseAsRun.apply(void 0, [
7354
+ (_tmp1.assistantId = _state.sent().id, _tmp1)
7355
+ ]), _tmp)
7356
+ ])
7357
+ ];
7358
+ case 7:
7359
+ _state.sent();
6512
7360
  return [
6513
7361
  3,
6514
- 32
7362
+ 44
7363
+ ];
7364
+ case 8:
7365
+ _tmp2 = {
7366
+ event: "thread.run.in_progress"
7367
+ };
7368
+ _tmp3 = {
7369
+ response: event.response
7370
+ };
7371
+ return [
7372
+ 4,
7373
+ getOpenaiAssistant()
6515
7374
  ];
6516
7375
  case 9:
6517
7376
  return [
6518
7377
  4,
6519
- onEvent2({
6520
- event: "thread.message.completed",
6521
- data: _object_spread_props(_object_spread({}, msg), {
6522
- status: "completed"
6523
- })
6524
- })
7378
+ onEvent2.apply(void 0, [
7379
+ (_tmp2.data = serializeResponseAsRun.apply(void 0, [
7380
+ (_tmp3.assistantId = _state.sent().id, _tmp3)
7381
+ ]), _tmp2)
7382
+ ])
6525
7383
  ];
6526
7384
  case 10:
6527
7385
  _state.sent();
6528
- if (!sawToolCalls) return [
7386
+ return [
7387
+ 3,
7388
+ 44
7389
+ ];
7390
+ case 11:
7391
+ itemIds = event.response.output.filter(function(o) {
7392
+ return o.id;
7393
+ }).map(function(o) {
7394
+ return o.id;
7395
+ });
7396
+ toolCalls2 = event.response.output.filter(function(o) {
7397
+ return o.type === "function_call";
7398
+ });
7399
+ if (!(toolCalls2.length > 0)) return [
6529
7400
  3,
6530
- 13
7401
+ 14
7402
+ ];
7403
+ _tmp4 = {
7404
+ event: "thread.run.requires_action"
7405
+ };
7406
+ _tmp5 = [
7407
+ {}
6531
7408
  ];
7409
+ _tmp6 = {
7410
+ response: event.response
7411
+ };
6532
7412
  return [
6533
7413
  4,
6534
- completeToolCallsStep()
7414
+ getOpenaiAssistant()
6535
7415
  ];
6536
- case 11:
6537
- _state.sent();
6538
- finalCalls = callOrder.map(function(cid) {
6539
- return callsById.get(cid);
6540
- }).filter(Boolean);
7416
+ case 12:
6541
7417
  return [
6542
7418
  4,
6543
- onEvent2({
6544
- event: "thread.run.requires_action",
6545
- data: {
6546
- id: runId,
6547
- object: "thread.run",
6548
- thread_id: threadId,
6549
- assistant_id: asstId,
6550
- status: "requires_action",
6551
- required_action: {
6552
- type: "submit_tool_outputs",
6553
- submit_tool_outputs: {
6554
- // IMPORTANT: these must be keyed by stable call_id
6555
- tool_calls: finalCalls
7419
+ onEvent2.apply(void 0, [
7420
+ (_tmp4.data = _object_spread.apply(void 0, _tmp5.concat([
7421
+ serializeResponseAsRun.apply(void 0, [
7422
+ (_tmp6.assistantId = _state.sent().id, _tmp6)
7423
+ ]),
7424
+ {
7425
+ status: "requires_action",
7426
+ required_action: {
7427
+ type: "submit_tool_outputs",
7428
+ submit_tool_outputs: {
7429
+ tool_calls: serializeToolCalls2({
7430
+ toolCalls: toolCalls2
7431
+ })
7432
+ }
6556
7433
  }
6557
7434
  }
6558
- }
6559
- })
7435
+ ])), _tmp4)
7436
+ ])
6560
7437
  ];
6561
- case 12:
7438
+ case 13:
6562
7439
  _state.sent();
6563
7440
  return [
6564
7441
  3,
6565
- 15
7442
+ 17
6566
7443
  ];
6567
- case 13:
7444
+ case 14:
7445
+ _tmp7 = {
7446
+ event: "thread.run.completed"
7447
+ };
7448
+ _tmp8 = {
7449
+ response: event.response
7450
+ };
6568
7451
  return [
6569
7452
  4,
6570
- onEvent2({
6571
- event: "thread.run.completed",
6572
- data: {
6573
- id: runId,
6574
- object: "thread.run",
6575
- thread_id: threadId,
6576
- assistant_id: asstId,
6577
- status: "completed",
6578
- completed_at: (0, import_dayjs17.default)().unix()
6579
- }
6580
- })
7453
+ getOpenaiAssistant()
6581
7454
  ];
6582
- case 14:
6583
- _state.sent();
6584
- _state.label = 15;
6585
7455
  case 15:
6586
7456
  return [
6587
- 3,
6588
- 32
7457
+ 4,
7458
+ onEvent2.apply(void 0, [
7459
+ (_tmp7.data = serializeResponseAsRun.apply(void 0, [
7460
+ (_tmp8.assistantId = _state.sent().id, _tmp8)
7461
+ ]), _tmp7)
7462
+ ])
6589
7463
  ];
6590
7464
  case 16:
7465
+ _state.sent();
7466
+ _state.label = 17;
7467
+ case 17:
7468
+ return [
7469
+ 3,
7470
+ 44
7471
+ ];
7472
+ case 18:
7473
+ _tmp9 = {
7474
+ event: "thread.run.failed"
7475
+ };
7476
+ _tmp10 = {
7477
+ response: event.response
7478
+ };
7479
+ return [
7480
+ 4,
7481
+ getOpenaiAssistant()
7482
+ ];
7483
+ case 19:
7484
+ return [
7485
+ 4,
7486
+ onEvent2.apply(void 0, [
7487
+ (_tmp9.data = serializeResponseAsRun.apply(void 0, [
7488
+ (_tmp10.assistantId = _state.sent().id, _tmp10)
7489
+ ]), _tmp9)
7490
+ ])
7491
+ ];
7492
+ case 20:
7493
+ _state.sent();
7494
+ return [
7495
+ 3,
7496
+ 44
7497
+ ];
7498
+ case 21:
6591
7499
  return [
6592
7500
  4,
6593
7501
  onEvent2({
6594
- event: "thread.run.failed",
7502
+ event: "thread.message.delta",
6595
7503
  data: {
6596
- id: runId,
6597
- object: "thread.run",
6598
- thread_id: threadId,
6599
- assistant_id: asstId,
6600
- status: "failed",
6601
- failed_at: (0, import_dayjs17.default)().unix(),
6602
- last_error: {
6603
- code: (evt === null || evt === void 0 ? void 0 : (_evt_error = evt.error) === null || _evt_error === void 0 ? void 0 : _evt_error.code) || "server_error",
6604
- message: (evt === null || evt === void 0 ? void 0 : (_evt_error1 = evt.error) === null || _evt_error1 === void 0 ? void 0 : _evt_error1.message) || "Unknown error"
7504
+ id: event.item_id,
7505
+ delta: {
7506
+ content: [
7507
+ {
7508
+ type: "text",
7509
+ index: event.output_index - 1,
7510
+ text: {
7511
+ value: event.delta
7512
+ }
7513
+ }
7514
+ ]
6605
7515
  }
6606
7516
  }
6607
7517
  })
6608
7518
  ];
6609
- case 17:
7519
+ case 22:
6610
7520
  _state.sent();
6611
7521
  return [
6612
7522
  3,
6613
- 32
7523
+ 44
6614
7524
  ];
6615
- case 18:
6616
- delta = typeof (evt === null || evt === void 0 ? void 0 : evt.delta) === "string" ? evt.delta : "";
7525
+ case 23:
7526
+ if (!(event.item.type === "message")) return [
7527
+ 3,
7528
+ 28
7529
+ ];
7530
+ _tmp11 = {
7531
+ event: "thread.run.step.created"
7532
+ };
7533
+ _tmp12 = {
7534
+ item: event.item,
7535
+ items: [],
7536
+ threadId: threadId
7537
+ };
6617
7538
  return [
6618
7539
  4,
6619
- emitTextDelta(delta)
7540
+ getOpenaiAssistant()
6620
7541
  ];
6621
- case 19:
7542
+ case 24:
7543
+ return [
7544
+ 4,
7545
+ onEvent2.apply(void 0, [
7546
+ (_tmp11.data = serializeItemAsRunStep.apply(void 0, [
7547
+ (_tmp12.openaiAssistant = _state.sent(), _tmp12.runId = responseCreatedResponse.id, _tmp12.status = "in_progress", _tmp12.completedAt = null, _tmp12)
7548
+ ]), _tmp11)
7549
+ ])
7550
+ ];
7551
+ case 25:
7552
+ _state.sent();
7553
+ _tmp13 = {
7554
+ event: "thread.message.created"
7555
+ };
7556
+ _tmp14 = {
7557
+ item: event.item,
7558
+ threadId: threadId
7559
+ };
7560
+ return [
7561
+ 4,
7562
+ getOpenaiAssistant()
7563
+ ];
7564
+ case 26:
7565
+ return [
7566
+ 4,
7567
+ onEvent2.apply(void 0, [
7568
+ (_tmp13.data = serializeItemAsMessage.apply(void 0, [
7569
+ (_tmp14.openaiAssistant = _state.sent(), _tmp14.createdAt = (0, import_dayjs13.default)().unix(), _tmp14.runId = responseCreatedResponse.id, _tmp14.status = "in_progress", _tmp14)
7570
+ ]), _tmp13)
7571
+ ])
7572
+ ];
7573
+ case 27:
6622
7574
  _state.sent();
6623
7575
  return [
6624
7576
  3,
6625
- 32
7577
+ 31
6626
7578
  ];
6627
- case 20:
6628
- finalText = typeof (evt === null || evt === void 0 ? void 0 : evt.text) === "string" ? evt.text : "";
6629
- if (!finalText) return [
7579
+ case 28:
7580
+ if (!(event.item.type === "function_call")) return [
6630
7581
  3,
6631
- 22
7582
+ 31
6632
7583
  ];
7584
+ toolCalls[event.item.id] = event.item;
7585
+ _tmp15 = {
7586
+ event: "thread.run.step.created"
7587
+ };
7588
+ _tmp16 = {
7589
+ item: event.item,
7590
+ items: [],
7591
+ threadId: threadId
7592
+ };
6633
7593
  return [
6634
7594
  4,
6635
- emitTextDelta(finalText)
7595
+ getOpenaiAssistant()
6636
7596
  ];
6637
- case 21:
7597
+ case 29:
7598
+ return [
7599
+ 4,
7600
+ onEvent2.apply(void 0, [
7601
+ (_tmp15.data = serializeItemAsRunStep.apply(void 0, [
7602
+ (_tmp16.openaiAssistant = _state.sent(), _tmp16.runId = responseCreatedResponse.id, _tmp16)
7603
+ ]), _tmp15)
7604
+ ])
7605
+ ];
7606
+ case 30:
6638
7607
  _state.sent();
6639
- _state.label = 22;
6640
- case 22:
7608
+ _state.label = 31;
7609
+ case 31:
7610
+ if (event.item.id) itemIds.push(event.item.id);
6641
7611
  return [
6642
7612
  3,
6643
- 32
7613
+ 44
6644
7614
  ];
6645
- case 23:
6646
- item = evt === null || evt === void 0 ? void 0 : evt.item;
6647
- if (!((item === null || item === void 0 ? void 0 : item.type) === "function_call")) return [
7615
+ case 32:
7616
+ if (!(event.item.type === "message")) return [
6648
7617
  3,
6649
- 25
7618
+ 37
6650
7619
  ];
6651
- itemId = item === null || item === void 0 ? void 0 : item.id;
6652
- callId = item === null || item === void 0 ? void 0 : item.call_id;
6653
- name = item === null || item === void 0 ? void 0 : item.name;
6654
- if (!(itemId && callId)) return [
6655
- 3,
6656
- 25
7620
+ _tmp17 = {
7621
+ event: "thread.run.step.completed"
7622
+ };
7623
+ _tmp18 = {
7624
+ item: event.item,
7625
+ items: [],
7626
+ threadId: threadId
7627
+ };
7628
+ return [
7629
+ 4,
7630
+ getOpenaiAssistant()
6657
7631
  ];
6658
- itemToCallId.set(itemId, callId);
6659
- getOrCreateToolCall(callId, name);
7632
+ case 33:
6660
7633
  return [
6661
7634
  4,
6662
- ensureToolCallsStep()
7635
+ onEvent2.apply(void 0, [
7636
+ (_tmp17.data = serializeItemAsRunStep.apply(void 0, [
7637
+ (_tmp18.openaiAssistant = _state.sent(), _tmp18.runId = responseCreatedResponse.id, _tmp18)
7638
+ ]), _tmp17)
7639
+ ])
6663
7640
  ];
6664
- case 24:
7641
+ case 34:
6665
7642
  _state.sent();
6666
- sawToolCalls = true;
6667
- _state.label = 25;
6668
- case 25:
7643
+ _tmp19 = {
7644
+ event: "thread.message.completed"
7645
+ };
7646
+ _tmp20 = {
7647
+ item: event.item,
7648
+ threadId: threadId
7649
+ };
6669
7650
  return [
6670
- 3,
6671
- 32
7651
+ 4,
7652
+ getOpenaiAssistant()
6672
7653
  ];
6673
- case 26:
7654
+ case 35:
7655
+ return [
7656
+ 4,
7657
+ onEvent2.apply(void 0, [
7658
+ (_tmp19.data = serializeItemAsMessage.apply(void 0, [
7659
+ (_tmp20.openaiAssistant = _state.sent(), _tmp20.createdAt = (0, import_dayjs13.default)().unix(), _tmp20.runId = responseCreatedResponse.id, _tmp20)
7660
+ ]), _tmp19)
7661
+ ])
7662
+ ];
7663
+ case 36:
7664
+ _state.sent();
6674
7665
  return [
6675
7666
  3,
6676
- 32
7667
+ 40
6677
7668
  ];
6678
- case 27:
6679
- itemId1 = evt === null || evt === void 0 ? void 0 : evt.item_id;
6680
- argsDelta = typeof (evt === null || evt === void 0 ? void 0 : evt.delta) === "string" ? evt.delta : "";
6681
- maybeName = typeof (evt === null || evt === void 0 ? void 0 : evt.name) === "string" ? evt.name : void 0;
6682
- if (!itemId1) return [
7669
+ case 37:
7670
+ if (!(event.item.type === "function_call")) return [
6683
7671
  3,
6684
- 32
7672
+ 40
6685
7673
  ];
6686
- callId1 = itemToCallId.get(itemId1);
6687
- if (!callId1) {
6688
- fallbackCallId = evt === null || evt === void 0 ? void 0 : evt.call_id;
6689
- if (!fallbackCallId) return [
6690
- 3,
6691
- 32
6692
- ];
6693
- itemToCallId.set(itemId1, fallbackCallId);
6694
- }
6695
- effectiveCallId = itemToCallId.get(itemId1);
6696
- tc = getOrCreateToolCall(effectiveCallId, maybeName);
6697
- tc.function.arguments += argsDelta;
6698
- if (maybeName && tc.function.name === "unknown_function") {
6699
- tc.function.name = maybeName;
6700
- }
7674
+ toolCalls[event.item.id] = event.item;
7675
+ _tmp21 = {
7676
+ event: "thread.run.step.in_progress"
7677
+ };
7678
+ _tmp22 = {
7679
+ item: event.item,
7680
+ items: [],
7681
+ threadId: threadId
7682
+ };
6701
7683
  return [
6702
7684
  4,
6703
- ensureToolCallsStep()
7685
+ getOpenaiAssistant()
6704
7686
  ];
6705
- case 28:
7687
+ case 38:
7688
+ return [
7689
+ 4,
7690
+ onEvent2.apply(void 0, [
7691
+ (_tmp21.data = serializeItemAsRunStep.apply(void 0, [
7692
+ (_tmp22.openaiAssistant = _state.sent(), _tmp22.runId = responseCreatedResponse.id, _tmp22)
7693
+ ]), _tmp21)
7694
+ ])
7695
+ ];
7696
+ case 39:
6706
7697
  _state.sent();
6707
- sawToolCalls = true;
7698
+ _state.label = 40;
7699
+ case 40:
7700
+ return [
7701
+ 3,
7702
+ 44
7703
+ ];
7704
+ case 41:
7705
+ toolCall = toolCalls[event.item_id];
7706
+ if (!toolCall) return [
7707
+ 3,
7708
+ 44
7709
+ ];
6708
7710
  return [
6709
7711
  4,
6710
- emitToolArgsDelta(effectiveCallId, tc.function.name, argsDelta)
7712
+ onEvent2({
7713
+ event: "thread.run.step.delta",
7714
+ data: {
7715
+ id: event.item_id,
7716
+ object: "thread.run.step.delta",
7717
+ delta: {
7718
+ step_details: {
7719
+ type: "tool_calls",
7720
+ tool_calls: [
7721
+ {
7722
+ id: toolCall.call_id,
7723
+ type: "function",
7724
+ index: event.output_index,
7725
+ function: {
7726
+ name: toolCall.name,
7727
+ arguments: event.delta,
7728
+ output: null
7729
+ }
7730
+ }
7731
+ ]
7732
+ }
7733
+ }
7734
+ }
7735
+ })
6711
7736
  ];
6712
- case 29:
7737
+ case 42:
6713
7738
  _state.sent();
6714
7739
  return [
6715
7740
  3,
6716
- 32
7741
+ 44
6717
7742
  ];
6718
- case 30:
6719
- {
6720
- return [
6721
- 3,
6722
- 32
6723
- ];
6724
- }
6725
- _state.label = 31;
6726
- case 31:
7743
+ case 43:
6727
7744
  return [
6728
7745
  3,
6729
- 32
7746
+ 44
6730
7747
  ];
6731
- case 32:
7748
+ case 44:
6732
7749
  _iteratorAbruptCompletion = false;
6733
7750
  return [
6734
7751
  3,
6735
- 6
7752
+ 3
6736
7753
  ];
6737
- case 33:
7754
+ case 45:
6738
7755
  return [
6739
7756
  3,
6740
- 40
7757
+ 52
6741
7758
  ];
6742
- case 34:
7759
+ case 46:
6743
7760
  err = _state.sent();
6744
7761
  _didIteratorError = true;
6745
7762
  _iteratorError = err;
6746
7763
  return [
6747
7764
  3,
6748
- 40
7765
+ 52
6749
7766
  ];
6750
- case 35:
7767
+ case 47:
6751
7768
  _state.trys.push([
6752
- 35,
7769
+ 47,
6753
7770
  ,
6754
- 38,
6755
- 39
7771
+ 50,
7772
+ 51
6756
7773
  ]);
6757
7774
  if (!(_iteratorAbruptCompletion && _iterator.return != null)) return [
6758
7775
  3,
6759
- 37
7776
+ 49
6760
7777
  ];
6761
7778
  return [
6762
7779
  4,
6763
7780
  _iterator.return()
6764
7781
  ];
6765
- case 36:
7782
+ case 48:
6766
7783
  _state.sent();
6767
- _state.label = 37;
6768
- case 37:
7784
+ _state.label = 49;
7785
+ case 49:
6769
7786
  return [
6770
7787
  3,
6771
- 39
7788
+ 51
6772
7789
  ];
6773
- case 38:
7790
+ case 50:
6774
7791
  if (_didIteratorError) {
6775
7792
  throw _iteratorError;
6776
7793
  }
6777
7794
  return [
6778
7795
  7
6779
7796
  ];
6780
- case 39:
7797
+ case 51:
6781
7798
  return [
6782
7799
  7
6783
7800
  ];
6784
- case 40:
7801
+ case 52:
6785
7802
  return [
6786
7803
  3,
6787
- 43
7804
+ 59
6788
7805
  ];
6789
- case 41:
7806
+ case 53:
6790
7807
  e = _state.sent();
7808
+ _tmp23 = {
7809
+ event: "thread.run.failed"
7810
+ };
7811
+ _tmp24 = {
7812
+ id: (responseCreatedResponse === null || responseCreatedResponse === void 0 ? void 0 : responseCreatedResponse.id) || "run_".concat((0, import_radash21.uid)(18)),
7813
+ object: "thread.run",
7814
+ thread_id: threadId
7815
+ };
6791
7816
  return [
6792
7817
  4,
6793
- onEvent2({
6794
- event: "thread.run.failed",
6795
- data: {
6796
- id: runId,
6797
- object: "thread.run",
6798
- thread_id: threadId,
6799
- assistant_id: asstId,
6800
- status: "failed",
6801
- failed_at: (0, import_dayjs17.default)().unix(),
6802
- last_error: {
6803
- code: "server_error",
6804
- message: String((e === null || e === void 0 ? void 0 : e.message) || e || "Unknown error")
6805
- }
6806
- }
6807
- })
7818
+ getOpenaiAssistant()
6808
7819
  ];
6809
- case 42:
7820
+ case 54:
7821
+ return [
7822
+ 4,
7823
+ onEvent2.apply(void 0, [
7824
+ (_tmp23.data = (_tmp24.assistant_id = _state.sent().id, _tmp24.status = "failed", _tmp24.failed_at = (0, import_dayjs13.default)().unix(), _tmp24.last_error = {
7825
+ code: "server_error",
7826
+ message: String((e === null || e === void 0 ? void 0 : e.message) || e || "Unknown error")
7827
+ }, _tmp24), _tmp23)
7828
+ ])
7829
+ ];
7830
+ case 55:
6810
7831
  _state.sent();
6811
7832
  return [
6812
7833
  3,
6813
- 43
7834
+ 59
6814
7835
  ];
6815
- case 43:
7836
+ case 56:
7837
+ if (!((responseCreatedResponse === null || responseCreatedResponse === void 0 ? void 0 : responseCreatedResponse.id) && itemIds.length > 0)) return [
7838
+ 3,
7839
+ 58
7840
+ ];
7841
+ return [
7842
+ 4,
7843
+ saveResponseItemsToConversationMetadata({
7844
+ client: client,
7845
+ threadId: threadId,
7846
+ responseId: responseCreatedResponse.id,
7847
+ itemIds: itemIds
7848
+ })
7849
+ ];
7850
+ case 57:
7851
+ _state.sent();
7852
+ _state.label = 58;
7853
+ case 58:
7854
+ return [
7855
+ 7
7856
+ ];
7857
+ case 59:
6816
7858
  return [
6817
7859
  2
6818
7860
  ];
6819
7861
  }
6820
7862
  });
6821
7863
  });
6822
- return function(_) {
7864
+ return function handleRun(_) {
6823
7865
  return _ref.apply(this, arguments);
6824
7866
  };
6825
7867
  }();
7868
+ return {
7869
+ handleRun: handleRun,
7870
+ getOpenaiAssistant: getOpenaiAssistant
7871
+ };
6826
7872
  };
6827
7873
  // Annotate the CommonJS export names for ESM import in node:
6828
7874
  0 && (module.exports = {