supercompat 3.1.0-beta.5 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -462,21 +462,53 @@ var findRequestHandler = function(param) {
462
462
  }
463
463
  };
464
464
  // 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
465
+ var originalFetch = /*#__PURE__*/ function() {
466
+ var _ref = _async_to_generator(function(param) {
467
+ var args, client, _client_client, _args, url, options, clientHeaders, newOptions;
468
+ return _ts_generator(this, function(_state) {
469
+ switch(_state.label){
470
+ case 0:
471
+ args = param.args, client = param.client;
472
+ if (!((_client_client = client.client) === null || _client_client === void 0 ? void 0 : _client_client.fetch)) return [
473
+ 3,
474
+ 2
475
+ ];
476
+ _args = _sliced_to_array(args, 2), url = _args[0], options = _args[1];
477
+ return [
478
+ 4,
479
+ client.client.buildHeaders({
480
+ options: {},
481
+ method: args[1].method.toLowerCase(),
482
+ bodyHeaders: args[1].headers,
483
+ retryCount: 0
484
+ })
485
+ ];
486
+ case 1:
487
+ clientHeaders = _state.sent();
488
+ clientHeaders.set("Authorization", "Bearer ".concat(client.client.apiKey));
489
+ newOptions = _object_spread_props(_object_spread({}, options), {
490
+ headers: clientHeaders
491
+ });
492
+ return [
493
+ 2,
494
+ client.client.fetch(url, newOptions)
495
+ ];
496
+ case 2:
497
+ return [
498
+ 2,
499
+ fetch.apply(void 0, _to_consumable_array(args))
500
+ ];
501
+ case 3:
502
+ return [
503
+ 2
504
+ ];
505
+ }
472
506
  });
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
- };
507
+ });
508
+ return function originalFetch(_) {
509
+ return _ref.apply(this, arguments);
510
+ };
511
+ }();
480
512
  // src/supercompatFetch/index.ts
481
513
  var supercompatFetch = function(param) {
482
514
  var client = param.client, storage = param.storage, runAdapter = param.runAdapter;
@@ -3288,11 +3320,11 @@ var serializeMessage3 = function(param) {
3288
3320
  message: message
3289
3321
  })
3290
3322
  ];
3291
- var run4 = message.run;
3292
- if (!run4) return result;
3323
+ var run3 = message.run;
3324
+ if (!run3) return result;
3293
3325
  var messageToolCalls = ((_message_metadata = message.metadata) === null || _message_metadata === void 0 ? void 0 : _message_metadata.toolCalls) || [];
3294
3326
  messageToolCalls.forEach(function(tc) {
3295
- var runStep = run4.runSteps.find(function(rs) {
3327
+ var runStep = run3.runSteps.find(function(rs) {
3296
3328
  if (rs.type !== "tool_calls") return false;
3297
3329
  return rs.step_details.tool_calls.some(function(rsTc) {
3298
3330
  if (rsTc.type !== "function") return false;
@@ -3313,15 +3345,15 @@ var serializeMessage3 = function(param) {
3313
3345
  // src/adapters/run/completionsRunAdapter/messages/index.ts
3314
3346
  var messages = /*#__PURE__*/ function() {
3315
3347
  var _ref = _async_to_generator(function(param) {
3316
- var run4, getMessages2, _, _1, _2;
3348
+ var run3, getMessages2, _, _1, _2;
3317
3349
  return _ts_generator(this, function(_state) {
3318
3350
  switch(_state.label){
3319
3351
  case 0:
3320
- run4 = param.run, getMessages2 = param.getMessages;
3321
- _1 = (_ = _to_consumable_array(run4.instructions ? [
3352
+ run3 = param.run, getMessages2 = param.getMessages;
3353
+ _1 = (_ = _to_consumable_array(run3.instructions ? [
3322
3354
  {
3323
3355
  role: "system",
3324
- content: run4.instructions
3356
+ content: run3.instructions
3325
3357
  }
3326
3358
  ] : [])).concat;
3327
3359
  _2 = (0, import_radash5.flat);
@@ -3422,12 +3454,12 @@ var toolCallsData = function(param) {
3422
3454
  var completionsRunAdapter = function() {
3423
3455
  return /*#__PURE__*/ function() {
3424
3456
  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;
3457
+ var clientAdapter, run3, 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
3458
  return _ts_generator(this, function(_state) {
3427
3459
  switch(_state.label){
3428
3460
  case 0:
3429
- clientAdapter = param.client, run4 = param.run, onEvent2 = param.onEvent, getMessages2 = param.getMessages;
3430
- if (run4.status !== "queued") return [
3461
+ clientAdapter = param.client, run3 = param.run, onEvent2 = param.onEvent, getMessages2 = param.getMessages;
3462
+ if (run3.status !== "queued") return [
3431
3463
  2
3432
3464
  ];
3433
3465
  client = supercompat({
@@ -3435,7 +3467,7 @@ var completionsRunAdapter = function() {
3435
3467
  });
3436
3468
  onEvent2({
3437
3469
  event: "thread.run.in_progress",
3438
- data: _object_spread_props(_object_spread({}, run4), {
3470
+ data: _object_spread_props(_object_spread({}, run3), {
3439
3471
  status: "in_progress"
3440
3472
  })
3441
3473
  });
@@ -3443,15 +3475,15 @@ var completionsRunAdapter = function() {
3443
3475
  return [
3444
3476
  4,
3445
3477
  messages({
3446
- run: run4,
3478
+ run: run3,
3447
3479
  getMessages: getMessages2
3448
3480
  })
3449
3481
  ];
3450
3482
  case 1:
3451
3483
  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
3484
+ (_tmp.messages = _state.sent(), _tmp.model = run3.model, _tmp.stream = true, _tmp.response_format = run3.response_format, _tmp),
3485
+ (0, import_radash6.isEmpty)(run3.tools) ? {} : {
3486
+ tools: run3.tools
3455
3487
  }
3456
3488
  ]);
3457
3489
  _state.label = 2;
@@ -3479,7 +3511,7 @@ var completionsRunAdapter = function() {
3479
3511
  2,
3480
3512
  onEvent2({
3481
3513
  event: "thread.run.failed",
3482
- data: _object_spread_props(_object_spread({}, run4), {
3514
+ data: _object_spread_props(_object_spread({}, run3), {
3483
3515
  failed_at: (0, import_dayjs.default)().unix(),
3484
3516
  status: "in_progress",
3485
3517
  last_error: {
@@ -3498,14 +3530,14 @@ var completionsRunAdapter = function() {
3498
3530
  id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
3499
3531
  object: "thread.message",
3500
3532
  completed_at: null,
3501
- run_id: run4.id,
3533
+ run_id: run3.id,
3502
3534
  created_at: (0, import_dayjs.default)().unix(),
3503
- assistant_id: run4.assistant_id,
3535
+ assistant_id: run3.assistant_id,
3504
3536
  incomplete_at: null,
3505
3537
  incomplete_details: null,
3506
3538
  metadata: {},
3507
3539
  attachments: [],
3508
- thread_id: run4.thread_id,
3540
+ thread_id: run3.thread_id,
3509
3541
  content: [
3510
3542
  {
3511
3543
  text: {
@@ -3527,9 +3559,9 @@ var completionsRunAdapter = function() {
3527
3559
  data: {
3528
3560
  id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
3529
3561
  object: "thread.run.step",
3530
- run_id: run4.id,
3531
- assistant_id: run4.assistant_id,
3532
- thread_id: run4.thread_id,
3562
+ run_id: run3.id,
3563
+ assistant_id: run3.assistant_id,
3564
+ thread_id: run3.thread_id,
3533
3565
  type: "message_creation",
3534
3566
  status: "completed",
3535
3567
  completed_at: (0, import_dayjs.default)().unix(),
@@ -3598,9 +3630,9 @@ var completionsRunAdapter = function() {
3598
3630
  data: {
3599
3631
  id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
3600
3632
  object: "thread.run.step",
3601
- run_id: run4.id,
3602
- assistant_id: run4.assistant_id,
3603
- thread_id: run4.thread_id,
3633
+ run_id: run3.id,
3634
+ assistant_id: run3.assistant_id,
3635
+ thread_id: run3.thread_id,
3604
3636
  type: "tool_calls",
3605
3637
  status: "in_progress",
3606
3638
  completed_at: null,
@@ -3626,7 +3658,7 @@ var completionsRunAdapter = function() {
3626
3658
  event: "thread.run.step.delta",
3627
3659
  data: {
3628
3660
  object: "thread.run.step.delta",
3629
- run_id: run4.id,
3661
+ run_id: run3.id,
3630
3662
  id: toolCallsRunStep.id,
3631
3663
  delta: {
3632
3664
  step_details: {
@@ -3747,7 +3779,7 @@ var completionsRunAdapter = function() {
3747
3779
  2,
3748
3780
  onEvent2({
3749
3781
  event: "thread.run.completed",
3750
- data: _object_spread_props(_object_spread({}, run4), {
3782
+ data: _object_spread_props(_object_spread({}, run3), {
3751
3783
  status: "completed",
3752
3784
  completed_at: (0, import_dayjs.default)().unix()
3753
3785
  })
@@ -3758,7 +3790,7 @@ var completionsRunAdapter = function() {
3758
3790
  2,
3759
3791
  onEvent2({
3760
3792
  event: "thread.run.requires_action",
3761
- data: _object_spread_props(_object_spread({}, run4), {
3793
+ data: _object_spread_props(_object_spread({}, run3), {
3762
3794
  status: "requires_action",
3763
3795
  required_action: {
3764
3796
  type: "submit_tool_outputs",
@@ -4059,26 +4091,26 @@ var import_radash10 = require("radash");
4059
4091
  // src/adapters/storage/prismaStorageAdapter/threads/runs/serializeRun.ts
4060
4092
  var import_dayjs5 = __toESM(require("dayjs"), 1);
4061
4093
  var serializeRun = function(param) {
4062
- var run4 = param.run;
4094
+ var run3 = param.run;
4063
4095
  return {
4064
- id: run4.id,
4096
+ id: run3.id,
4065
4097
  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,
4098
+ created_at: (0, import_dayjs5.default)(run3.createdAt).unix(),
4099
+ thread_id: run3.threadId,
4100
+ assistant_id: run3.assistantId,
4101
+ status: run3.status.toLowerCase(),
4102
+ required_action: run3.requiredAction,
4103
+ last_error: run3.lastError,
4104
+ expires_at: (0, import_dayjs5.default)(run3.expiresAt).unix(),
4105
+ started_at: run3.startedAt ? (0, import_dayjs5.default)(run3.startedAt).unix() : null,
4106
+ cancelled_at: run3.cancelledAt ? (0, import_dayjs5.default)(run3.cancelledAt).unix() : null,
4107
+ failed_at: run3.failedAt ? (0, import_dayjs5.default)(run3.failedAt).unix() : null,
4108
+ completed_at: run3.completedAt ? (0, import_dayjs5.default)(run3.completedAt).unix() : null,
4109
+ model: run3.model,
4110
+ instructions: run3.instructions,
4111
+ tools: run3.tools,
4112
+ metadata: run3.metadata,
4113
+ usage: run3.usage,
4082
4114
  truncation_strategy: {
4083
4115
  type: "auto"
4084
4116
  },
@@ -4132,9 +4164,9 @@ var get11 = function(param) {
4132
4164
  return [
4133
4165
  2,
4134
4166
  new Response(JSON.stringify({
4135
- data: runs3.map(function(run4) {
4167
+ data: runs3.map(function(run3) {
4136
4168
  return serializeRun({
4137
- run: run4
4169
+ run: run3
4138
4170
  });
4139
4171
  }),
4140
4172
  has_more: runsPlusOne.length > pageSize,
@@ -4447,33 +4479,33 @@ var onEvent = function(param) {
4447
4479
  };
4448
4480
  // src/adapters/storage/prismaStorageAdapter/threads/runs/getMessages.ts
4449
4481
  var getTake = function(param) {
4450
- var run4 = param.run;
4451
- if (run4.truncationStrategy.type === "auto") {
4482
+ var run3 = param.run;
4483
+ if (run3.truncationStrategy.type === "auto") {
4452
4484
  return null;
4453
4485
  }
4454
- if (run4.truncationStrategy.type === "last_messages") {
4455
- if (!run4.truncationStrategy.last_messages) {
4486
+ if (run3.truncationStrategy.type === "last_messages") {
4487
+ if (!run3.truncationStrategy.last_messages) {
4456
4488
  throw new Error("Truncation strategy last_messages is required");
4457
4489
  }
4458
- return -run4.truncationStrategy.last_messages;
4490
+ return -run3.truncationStrategy.last_messages;
4459
4491
  }
4460
- throw new Error("Unsupported truncation strategy type: ".concat(run4.truncationStrategy.type));
4492
+ throw new Error("Unsupported truncation strategy type: ".concat(run3.truncationStrategy.type));
4461
4493
  };
4462
4494
  var getMessages = function(param) {
4463
- var prisma = param.prisma, run4 = param.run;
4495
+ var prisma = param.prisma, run3 = param.run;
4464
4496
  return /*#__PURE__*/ _async_to_generator(function() {
4465
4497
  var take, messages4;
4466
4498
  return _ts_generator(this, function(_state) {
4467
4499
  switch(_state.label){
4468
4500
  case 0:
4469
4501
  take = getTake({
4470
- run: run4
4502
+ run: run3
4471
4503
  });
4472
4504
  return [
4473
4505
  4,
4474
4506
  prisma.message.findMany(_object_spread({
4475
4507
  where: {
4476
- threadId: run4.threadId
4508
+ threadId: run3.threadId
4477
4509
  },
4478
4510
  include: {
4479
4511
  run: {
@@ -4519,7 +4551,7 @@ var post12 = function(param) {
4519
4551
  return /*#__PURE__*/ function() {
4520
4552
  var _ref = _async_to_generator(function(urlString, options) {
4521
4553
  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;
4554
+ tools, metadata, response_format, truncation_strategy, run3, data, readableStream;
4523
4555
  return _ts_generator(this, function(_state) {
4524
4556
  switch(_state.label){
4525
4557
  case 0:
@@ -4577,9 +4609,9 @@ var post12 = function(param) {
4577
4609
  })
4578
4610
  ];
4579
4611
  case 2:
4580
- run4 = _state.sent();
4612
+ run3 = _state.sent();
4581
4613
  data = serializeRun({
4582
- run: run4
4614
+ run: run3
4583
4615
  });
4584
4616
  readableStream = new ReadableStream({
4585
4617
  start: function start(controller) {
@@ -4608,7 +4640,7 @@ var post12 = function(param) {
4608
4640
  }),
4609
4641
  getMessages: getMessages({
4610
4642
  prisma: prisma,
4611
- run: run4
4643
+ run: run3
4612
4644
  })
4613
4645
  })
4614
4646
  ];
@@ -4631,7 +4663,7 @@ var post12 = function(param) {
4631
4663
  })({
4632
4664
  event: "thread.run.failed",
4633
4665
  data: {
4634
- id: run4.id,
4666
+ id: run3.id,
4635
4667
  failed_at: (0, import_dayjs7.default)().unix(),
4636
4668
  last_error: {
4637
4669
  code: "server_error",
@@ -4702,7 +4734,7 @@ var get12 = function(param) {
4702
4734
  var prisma = param.prisma;
4703
4735
  return /*#__PURE__*/ function() {
4704
4736
  var _ref = _async_to_generator(function(urlString) {
4705
- var url, _url_pathname_match, threadId, runId, run4;
4737
+ var url, _url_pathname_match, threadId, runId, run3;
4706
4738
  return _ts_generator(this, function(_state) {
4707
4739
  switch(_state.label){
4708
4740
  case 0:
@@ -4718,11 +4750,11 @@ var get12 = function(param) {
4718
4750
  })
4719
4751
  ];
4720
4752
  case 1:
4721
- run4 = _state.sent();
4753
+ run3 = _state.sent();
4722
4754
  return [
4723
4755
  2,
4724
4756
  new Response(JSON.stringify(serializeRun({
4725
- run: run4
4757
+ run: run3
4726
4758
  })), {
4727
4759
  status: 200,
4728
4760
  headers: {
@@ -4740,7 +4772,7 @@ var get12 = function(param) {
4740
4772
  }();
4741
4773
  };
4742
4774
  // src/adapters/storage/prismaStorageAdapter/threads/run/index.ts
4743
- var run2 = function(param) {
4775
+ var run = function(param) {
4744
4776
  var prisma = param.prisma, runAdapter = param.runAdapter;
4745
4777
  return {
4746
4778
  get: get12({
@@ -4993,7 +5025,7 @@ var post13 = function(param) {
4993
5025
  var prisma = param.prisma, runAdapter = param.runAdapter;
4994
5026
  return /*#__PURE__*/ function() {
4995
5027
  var _ref = _async_to_generator(function(urlString, options) {
4996
- var url, _url_pathname_match, threadId, runId, body, tool_outputs, stream, readableStream, run4;
5028
+ var url, _url_pathname_match, threadId, runId, body, tool_outputs, stream, readableStream, run3;
4997
5029
  return _ts_generator(this, function(_state) {
4998
5030
  switch(_state.label){
4999
5031
  case 0:
@@ -5008,7 +5040,7 @@ var post13 = function(param) {
5008
5040
  readableStream = new ReadableStream({
5009
5041
  start: function start(controller) {
5010
5042
  return _async_to_generator(function() {
5011
- var run4;
5043
+ var run3;
5012
5044
  return _ts_generator(this, function(_state) {
5013
5045
  switch(_state.label){
5014
5046
  case 0:
@@ -5042,12 +5074,12 @@ var post13 = function(param) {
5042
5074
  })
5043
5075
  ];
5044
5076
  case 1:
5045
- run4 = _state.sent();
5077
+ run3 = _state.sent();
5046
5078
  return [
5047
5079
  4,
5048
5080
  runAdapter({
5049
5081
  run: serializeRun({
5050
- run: run4
5082
+ run: run3
5051
5083
  }),
5052
5084
  onEvent: onEvent({
5053
5085
  controller: _object_spread_props(_object_spread({}, controller), {
@@ -5059,7 +5091,7 @@ var post13 = function(param) {
5059
5091
  }),
5060
5092
  getMessages: getMessages({
5061
5093
  prisma: prisma,
5062
- run: run4
5094
+ run: run3
5063
5095
  })
5064
5096
  })
5065
5097
  ];
@@ -5093,7 +5125,7 @@ var post13 = function(param) {
5093
5125
  })
5094
5126
  ];
5095
5127
  case 2:
5096
- run4 = _state.sent();
5128
+ run3 = _state.sent();
5097
5129
  return [
5098
5130
  4,
5099
5131
  new Promise(function(resolve) {
@@ -5107,7 +5139,7 @@ var post13 = function(param) {
5107
5139
  4,
5108
5140
  runAdapter({
5109
5141
  run: serializeRun({
5110
- run: run4
5142
+ run: run3
5111
5143
  }),
5112
5144
  onEvent: onEvent({
5113
5145
  controller: _object_spread_props(_object_spread({}, controller), {
@@ -5119,7 +5151,7 @@ var post13 = function(param) {
5119
5151
  }),
5120
5152
  getMessages: getMessages({
5121
5153
  prisma: prisma,
5122
- run: run4
5154
+ run: run3
5123
5155
  })
5124
5156
  })
5125
5157
  ];
@@ -5141,7 +5173,7 @@ var post13 = function(param) {
5141
5173
  _state.sent();
5142
5174
  return [
5143
5175
  2,
5144
- new Response(JSON.stringify(run4), {
5176
+ new Response(JSON.stringify(run3), {
5145
5177
  status: 200,
5146
5178
  headers: {
5147
5179
  "Content-Type": "application/json"
@@ -5250,7 +5282,7 @@ var prismaStorageAdapter = function(param) {
5250
5282
  })), _define_property(_obj, runsRegexp, runs({
5251
5283
  prisma: prisma,
5252
5284
  runAdapter: runAdapter
5253
- })), _define_property(_obj, runRegexp, run2({
5285
+ })), _define_property(_obj, runRegexp, run({
5254
5286
  prisma: prisma,
5255
5287
  runAdapter: runAdapter
5256
5288
  })), _define_property(_obj, stepsRegexp, steps({
@@ -5263,13 +5295,12 @@ var prismaStorageAdapter = function(param) {
5263
5295
  };
5264
5296
  };
5265
5297
  // src/adapters/storage/responsesStorageAdapter/threads/serializeThread.ts
5266
- var import_dayjs10 = __toESM(require("dayjs"), 1);
5267
5298
  var serializeThread2 = function(param) {
5268
5299
  var conversation = param.conversation;
5269
5300
  return {
5270
5301
  id: conversation.id,
5271
5302
  object: "thread",
5272
- created_at: (0, import_dayjs10.default)(conversation.created_at).unix(),
5303
+ created_at: conversation.created_at,
5273
5304
  metadata: conversation.metadata,
5274
5305
  // TODO
5275
5306
  tool_resources: null
@@ -5336,10 +5367,9 @@ var threads2 = function(param) {
5336
5367
  };
5337
5368
  };
5338
5369
  // src/adapters/storage/responsesStorageAdapter/threads/messages/post.ts
5339
- var import_dayjs12 = __toESM(require("dayjs"), 1);
5370
+ var import_dayjs10 = __toESM(require("dayjs"), 1);
5340
5371
  var import_radash14 = require("radash");
5341
- // src/adapters/storage/responsesStorageAdapter/threads/messages/serializeMessage.ts
5342
- var import_dayjs11 = __toESM(require("dayjs"), 1);
5372
+ // src/lib/items/serializeItemAsMessage.ts
5343
5373
  var import_radash13 = require("radash");
5344
5374
  var serializeContent2 = function(param) {
5345
5375
  var item = param.item;
@@ -5371,14 +5401,16 @@ var serializeAttachments = function(param) {
5371
5401
  };
5372
5402
  var serializeMetadata = function(param) {
5373
5403
  var item = param.item;
5374
- return {};
5404
+ return {
5405
+ item: JSON.stringify(item)
5406
+ };
5375
5407
  };
5376
- var serializeMessage5 = function(param) {
5377
- var item = param.item, initialCreatedAt = param.initialCreatedAt, index = param.index, threadId = param.threadId;
5408
+ var serializeItemAsMessage = function(param) {
5409
+ 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
5410
  return {
5379
5411
  id: item.id || (0, import_radash13.uid)(24),
5380
5412
  object: "thread.message",
5381
- created_at: (0, import_dayjs11.default)(initialCreatedAt).add(index, "seconds").unix(),
5413
+ created_at: createdAt,
5382
5414
  thread_id: threadId,
5383
5415
  completed_at: null,
5384
5416
  incomplete_at: null,
@@ -5387,18 +5419,19 @@ var serializeMessage5 = function(param) {
5387
5419
  content: serializeContent2({
5388
5420
  item: item
5389
5421
  }),
5390
- assistant_id: null,
5391
- run_id: null,
5422
+ assistant_id: item.role === "assistant" ? openaiAssistant.id : null,
5423
+ run_id: runId,
5392
5424
  attachments: serializeAttachments({
5393
5425
  item: item
5394
5426
  }),
5395
- status: typeof item.status === "string" ? item.status : "completed",
5427
+ status: typeof item.status === "string" ? item.status : status3,
5396
5428
  metadata: serializeMetadata({
5397
5429
  item: item
5398
5430
  })
5399
5431
  };
5400
5432
  };
5401
5433
  // src/adapters/storage/responsesStorageAdapter/threads/messages/post.ts
5434
+ var import_radash15 = require("radash");
5402
5435
  var messageContentBlocks2 = function(param) {
5403
5436
  var content = param.content;
5404
5437
  if ((0, import_radash14.isArray)(content)) {
@@ -5439,48 +5472,39 @@ var messageContentBlocks2 = function(param) {
5439
5472
  ];
5440
5473
  };
5441
5474
  var post16 = function(param) {
5442
- var openai = param.openai;
5475
+ var openai = param.openai, openaiAssistant = param.openaiAssistant, createResponseItems = param.createResponseItems;
5443
5476
  return /*#__PURE__*/ function() {
5444
5477
  var _ref = _async_to_generator(function(urlString, options) {
5445
- var url, _url_pathname_match, threadId, body, role, content, metadata, items;
5478
+ var url, _url_pathname_match, threadId, body, role, content, metadata, item;
5446
5479
  return _ts_generator(this, function(_state) {
5447
- switch(_state.label){
5448
- case 0:
5449
- url = new URL(urlString);
5450
- _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp(messagesRegexp)), 2), threadId = _url_pathname_match[1];
5451
- body = JSON.parse(options.body);
5452
- role = body.role, content = body.content, metadata = body.metadata;
5453
- return [
5454
- 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
- })
5466
- ];
5467
- case 1:
5468
- items = _state.sent();
5469
- return [
5470
- 2,
5471
- new Response(JSON.stringify(serializeMessage5({
5472
- item: items.data[0],
5473
- threadId: threadId,
5474
- initialCreatedAt: (0, import_dayjs12.default)().subtract(1, "seconds").format(),
5475
- index: 0
5476
- })), {
5477
- status: 200,
5478
- headers: {
5479
- "Content-Type": "application/json"
5480
- }
5481
- })
5482
- ];
5483
- }
5480
+ url = new URL(urlString);
5481
+ _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp(messagesRegexp)), 2), threadId = _url_pathname_match[1];
5482
+ body = JSON.parse(options.body);
5483
+ role = body.role, content = body.content, metadata = body.metadata;
5484
+ item = {
5485
+ id: "msg_".concat((0, import_radash15.uid)(24)),
5486
+ status: "in_progress",
5487
+ type: "message",
5488
+ role: role,
5489
+ content: messageContentBlocks2({
5490
+ content: content
5491
+ })
5492
+ };
5493
+ createResponseItems.push(item);
5494
+ return [
5495
+ 2,
5496
+ new Response(JSON.stringify(serializeItemAsMessage({
5497
+ item: item,
5498
+ threadId: threadId,
5499
+ openaiAssistant: openaiAssistant,
5500
+ createdAt: (0, import_dayjs10.default)().unix()
5501
+ })), {
5502
+ status: 200,
5503
+ headers: {
5504
+ "Content-Type": "application/json"
5505
+ }
5506
+ })
5507
+ ];
5484
5508
  });
5485
5509
  });
5486
5510
  return function(urlString, options) {
@@ -5489,42 +5513,105 @@ var post16 = function(param) {
5489
5513
  }();
5490
5514
  };
5491
5515
  // src/adapters/storage/responsesStorageAdapter/threads/messages/get.ts
5492
- var import_radash15 = require("radash");
5493
- var import_dayjs13 = __toESM(require("dayjs"), 1);
5516
+ var import_radash16 = require("radash");
5517
+ // src/lib/items/responseId.ts
5518
+ function responseId(param) {
5519
+ var conversation = param.conversation, itemId = param.itemId;
5520
+ if (!conversation.metadata) return null;
5521
+ var metadata = conversation.metadata;
5522
+ var keys = Object.keys(metadata).map(function(k) {
5523
+ var m = /^responseItemsMap(\d+)$/.exec(k);
5524
+ return m ? {
5525
+ key: k,
5526
+ idx: Number(m[1])
5527
+ } : null;
5528
+ }).filter(function(x) {
5529
+ return !!x;
5530
+ }).sort(function(a, b) {
5531
+ return a.idx - b.idx;
5532
+ });
5533
+ for(var i = keys.length - 1; i >= 0; i--){
5534
+ var raw = metadata[keys[i].key];
5535
+ if (!raw || raw === "[]") continue;
5536
+ var arr = [];
5537
+ try {
5538
+ arr = JSON.parse(raw);
5539
+ if (!Array.isArray(arr)) continue;
5540
+ } catch (e) {
5541
+ continue;
5542
+ }
5543
+ for(var j = arr.length - 1; j >= 0; j--){
5544
+ var _entry_itemIds;
5545
+ var entry = arr[j];
5546
+ if (entry === null || entry === void 0 ? void 0 : (_entry_itemIds = entry.itemIds) === null || _entry_itemIds === void 0 ? void 0 : _entry_itemIds.includes(itemId)) {
5547
+ return entry.responseId || null;
5548
+ }
5549
+ }
5550
+ }
5551
+ return null;
5552
+ }
5553
+ // src/adapters/storage/responsesStorageAdapter/threads/messages/get.ts
5494
5554
  var get14 = function(param) {
5495
- var openai = param.openai;
5555
+ var openai = param.openai, openaiAssistant = param.openaiAssistant;
5496
5556
  return /*#__PURE__*/ function() {
5497
5557
  var _ref = _async_to_generator(function(urlString) {
5498
- var url, _url_pathname_match, threadId, _ref, limit, order, after, items, initialCreatedAt;
5558
+ var url, _url_pathname_match, threadId, _ref, limit, order, after, conversation, sortOrder, items, itemsWithRunIds, responseMap, timestampedItems;
5499
5559
  return _ts_generator(this, function(_state) {
5500
5560
  switch(_state.label){
5501
5561
  case 0:
5502
5562
  url = new URL(urlString);
5503
5563
  _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp(messagesRegexp)), 2), threadId = _url_pathname_match[1];
5504
- _ref = (0, import_radash15.assign)({
5564
+ _ref = (0, import_radash16.assign)({
5505
5565
  limit: "20",
5506
5566
  order: "desc"
5507
5567
  }, Object.fromEntries(url.searchParams)), limit = _ref.limit, order = _ref.order, after = _ref.after;
5568
+ return [
5569
+ 4,
5570
+ openai.conversations.retrieve(threadId)
5571
+ ];
5572
+ case 1:
5573
+ conversation = _state.sent();
5574
+ sortOrder = order === "asc" ? "asc" : "desc";
5508
5575
  return [
5509
5576
  4,
5510
5577
  openai.conversations.items.list(threadId, {
5511
- limit: parseInt(limit),
5578
+ limit: parseInt(limit, 10),
5512
5579
  after: after,
5513
- order: order
5580
+ order: sortOrder
5514
5581
  })
5515
5582
  ];
5516
- case 1:
5583
+ case 2:
5517
5584
  items = _state.sent();
5518
- initialCreatedAt = (0, import_dayjs13.default)().subtract(items.data.length, "seconds").format();
5585
+ itemsWithRunIds = mapItemsWithRunIds({
5586
+ conversation: conversation,
5587
+ items: items.data
5588
+ });
5589
+ return [
5590
+ 4,
5591
+ fetchResponsesForItems({
5592
+ openai: openai,
5593
+ items: itemsWithRunIds
5594
+ })
5595
+ ];
5596
+ case 3:
5597
+ responseMap = _state.sent();
5598
+ timestampedItems = assignTimestamps({
5599
+ items: itemsWithRunIds,
5600
+ responseMap: responseMap,
5601
+ sortOrder: sortOrder,
5602
+ conversationCreatedAt: conversation.created_at
5603
+ });
5519
5604
  return [
5520
5605
  2,
5521
5606
  new Response(JSON.stringify({
5522
- data: items.data.map(function(item, index) {
5523
- return serializeMessage5({
5607
+ data: timestampedItems.map(function(param) {
5608
+ var item = param.item, runId = param.runId, assignedTimestamp = param.assignedTimestamp;
5609
+ return serializeItemAsMessage({
5524
5610
  item: item,
5525
- initialCreatedAt: initialCreatedAt,
5526
- index: index,
5527
- threadId: threadId
5611
+ threadId: threadId,
5612
+ openaiAssistant: openaiAssistant,
5613
+ createdAt: assignedTimestamp,
5614
+ runId: runId
5528
5615
  });
5529
5616
  }),
5530
5617
  has_more: items.has_more,
@@ -5544,20 +5631,147 @@ var get14 = function(param) {
5544
5631
  };
5545
5632
  }();
5546
5633
  };
5634
+ var mapItemsWithRunIds = function(param) {
5635
+ var conversation = param.conversation, items = param.items;
5636
+ return items.map(function(item) {
5637
+ return {
5638
+ item: item,
5639
+ runId: item.id ? responseId({
5640
+ conversation: conversation,
5641
+ itemId: item.id
5642
+ }) : null
5643
+ };
5644
+ });
5645
+ };
5646
+ var fetchResponsesForItems = /*#__PURE__*/ function() {
5647
+ var _ref = _async_to_generator(function(param) {
5648
+ var openai, items, responseIds, results, map;
5649
+ return _ts_generator(this, function(_state) {
5650
+ switch(_state.label){
5651
+ case 0:
5652
+ openai = param.openai, items = param.items;
5653
+ responseIds = Array.from(new Set(items.map(function(param) {
5654
+ var runId = param.runId;
5655
+ return runId;
5656
+ }).filter(function(id) {
5657
+ return Boolean(id);
5658
+ })));
5659
+ return [
5660
+ 4,
5661
+ Promise.allSettled(responseIds.map(function(id) {
5662
+ return openai.responses.retrieve(id);
5663
+ }))
5664
+ ];
5665
+ case 1:
5666
+ results = _state.sent();
5667
+ map = /* @__PURE__ */ new Map();
5668
+ results.forEach(function(result, index) {
5669
+ if (result.status === "fulfilled") {
5670
+ map.set(responseIds[index], result.value);
5671
+ }
5672
+ });
5673
+ return [
5674
+ 2,
5675
+ map
5676
+ ];
5677
+ }
5678
+ });
5679
+ });
5680
+ return function fetchResponsesForItems(_) {
5681
+ return _ref.apply(this, arguments);
5682
+ };
5683
+ }();
5684
+ var assignTimestamps = function(param) {
5685
+ var items = param.items, responseMap = param.responseMap, sortOrder = param.sortOrder, conversationCreatedAt = param.conversationCreatedAt;
5686
+ var itemsWithTimestamps = items.map(function(entry) {
5687
+ var _responseMap_get;
5688
+ var _responseMap_get_created_at;
5689
+ return _object_spread_props(_object_spread({}, entry), {
5690
+ 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,
5691
+ assignedTimestamp: 0
5692
+ });
5693
+ });
5694
+ var fallbackTimestampForIndex = function(index) {
5695
+ return sortOrder === "asc" ? conversationCreatedAt + index : conversationCreatedAt + (itemsWithTimestamps.length - index);
5696
+ };
5697
+ var findNextKnownTimestamp = function(startIndex) {
5698
+ for(var i = startIndex; i < itemsWithTimestamps.length; i += 1){
5699
+ var candidate = itemsWithTimestamps[i];
5700
+ if (candidate.timestamp != null) {
5701
+ return {
5702
+ index: i,
5703
+ timestamp: candidate.timestamp
5704
+ };
5705
+ }
5706
+ }
5707
+ return null;
5708
+ };
5709
+ if (sortOrder === "asc") {
5710
+ var lastAssigned = null;
5711
+ itemsWithTimestamps.forEach(function(entry, index) {
5712
+ var nextValue = entry.timestamp;
5713
+ if (nextValue == null) {
5714
+ if (lastAssigned != null) {
5715
+ nextValue = lastAssigned + 1;
5716
+ } else {
5717
+ var nextKnown = findNextKnownTimestamp(index + 1);
5718
+ if (nextKnown) {
5719
+ var gap = nextKnown.index - index;
5720
+ nextValue = nextKnown.timestamp - gap;
5721
+ } else {
5722
+ nextValue = fallbackTimestampForIndex(index);
5723
+ }
5724
+ }
5725
+ }
5726
+ if (lastAssigned != null && nextValue <= lastAssigned) {
5727
+ nextValue = lastAssigned + 1;
5728
+ }
5729
+ entry.assignedTimestamp = nextValue;
5730
+ lastAssigned = nextValue;
5731
+ });
5732
+ } else {
5733
+ var lastAssigned1 = null;
5734
+ itemsWithTimestamps.forEach(function(entry, index) {
5735
+ var nextValue = entry.timestamp;
5736
+ if (nextValue == null) {
5737
+ if (lastAssigned1 != null) {
5738
+ nextValue = lastAssigned1 - 1;
5739
+ } else {
5740
+ var nextKnown = findNextKnownTimestamp(index + 1);
5741
+ if (nextKnown) {
5742
+ var gap = nextKnown.index - index;
5743
+ nextValue = nextKnown.timestamp + gap;
5744
+ } else {
5745
+ nextValue = fallbackTimestampForIndex(index);
5746
+ }
5747
+ }
5748
+ }
5749
+ if (lastAssigned1 != null && nextValue >= lastAssigned1) {
5750
+ nextValue = lastAssigned1 - 1;
5751
+ }
5752
+ entry.assignedTimestamp = nextValue;
5753
+ lastAssigned1 = nextValue;
5754
+ });
5755
+ }
5756
+ return itemsWithTimestamps;
5757
+ };
5547
5758
  // src/adapters/storage/responsesStorageAdapter/threads/messages/index.ts
5548
5759
  var messages3 = function(param) {
5549
- var openai = param.openai;
5760
+ var openai = param.openai, openaiAssistant = param.openaiAssistant, createResponseItems = param.createResponseItems;
5550
5761
  return {
5551
5762
  post: post16({
5552
- openai: openai
5763
+ openai: openai,
5764
+ openaiAssistant: openaiAssistant,
5765
+ createResponseItems: createResponseItems
5553
5766
  }),
5554
5767
  get: get14({
5555
- openai: openai
5768
+ openai: openai,
5769
+ openaiAssistant: openaiAssistant
5556
5770
  })
5557
5771
  };
5558
5772
  };
5559
5773
  // src/adapters/storage/responsesStorageAdapter/threads/runs/get.ts
5560
- var import_radash16 = require("radash");
5774
+ var import_radash17 = require("radash");
5561
5775
  var get15 = function(param) {
5562
5776
  var prisma = param.prisma;
5563
5777
  return /*#__PURE__*/ function() {
@@ -5566,12 +5780,24 @@ var get15 = function(param) {
5566
5780
  return _ts_generator(this, function(_state) {
5567
5781
  url = new URL(urlString);
5568
5782
  _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp(runsRegexp)), 2), threadId = _url_pathname_match[1];
5569
- _ref = (0, import_radash16.assign)({
5783
+ _ref = (0, import_radash17.assign)({
5570
5784
  limit: "20",
5571
5785
  order: "desc"
5572
5786
  }, Object.fromEntries(url.searchParams)), limit = _ref.limit, order = _ref.order, after = _ref.after;
5573
5787
  pageSize = parseInt(limit, 10);
5574
- throw new Error("Not implemented");
5788
+ return [
5789
+ 2,
5790
+ new Response(JSON.stringify({
5791
+ data: [],
5792
+ has_more: false,
5793
+ last_id: null
5794
+ }), {
5795
+ status: 200,
5796
+ headers: {
5797
+ "Content-Type": "application/json"
5798
+ }
5799
+ })
5800
+ ];
5575
5801
  });
5576
5802
  });
5577
5803
  return function(urlString) {
@@ -5580,39 +5806,101 @@ var get15 = function(param) {
5580
5806
  }();
5581
5807
  };
5582
5808
  // src/adapters/storage/responsesStorageAdapter/threads/runs/post.ts
5583
- var import_radash17 = require("radash");
5584
- var import_dayjs15 = __toESM(require("dayjs"), 1);
5585
5809
  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) {
5810
+ var import_dayjs11 = __toESM(require("dayjs"), 1);
5811
+ var import_radash19 = require("radash");
5812
+ // src/lib/responses/serializeResponseAsRun.ts
5813
+ var serializeStatus = function(param) {
5814
+ var response = param.response;
5815
+ var _response_status;
5816
+ if (response.error) return "failed";
5817
+ var _response_status_toLowerCase;
5818
+ 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";
5819
+ };
5820
+ var serializeUsage = function(param) {
5589
5821
  var response = param.response;
5822
+ var _response_usage, _response_usage1, _response_usage2;
5823
+ var _response_usage_input_tokens, _response_usage_output_tokens, _response_usage_total_tokens;
5824
+ return {
5825
+ 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,
5826
+ 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,
5827
+ 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
5828
+ };
5829
+ };
5830
+ var findPendingToolCalls = function(param) {
5831
+ var response = param.response;
5832
+ var _response_output;
5833
+ var toolCalls = ((_response_output = response.output) !== null && _response_output !== void 0 ? _response_output : []).filter(function(item) {
5834
+ return item.type === "function_call";
5835
+ });
5836
+ if (toolCalls.length === 0) return [];
5837
+ var _response_output1;
5838
+ var completedCallIds = new Set(((_response_output1 = response.output) !== null && _response_output1 !== void 0 ? _response_output1 : []).filter(function(item) {
5839
+ return item.type === "function_call_output";
5840
+ }).map(function(item) {
5841
+ return item.call_id;
5842
+ }).filter(function(id) {
5843
+ return Boolean(id);
5844
+ }));
5845
+ return toolCalls.filter(function(call) {
5846
+ return !completedCallIds.has(call.call_id);
5847
+ });
5848
+ };
5849
+ var serializeToolCalls = function(param) {
5850
+ var toolCalls = param.toolCalls;
5851
+ return toolCalls.map(function(toolCall) {
5852
+ return {
5853
+ id: toolCall.call_id,
5854
+ type: "function",
5855
+ function: {
5856
+ name: toolCall.name,
5857
+ arguments: toolCall.arguments
5858
+ }
5859
+ };
5860
+ });
5861
+ };
5862
+ var serializeResponseAsRun = function(param) {
5863
+ var response = param.response, assistantId = param.assistantId;
5864
+ var pendingToolCalls = findPendingToolCalls({
5865
+ response: response
5866
+ });
5867
+ var status3 = pendingToolCalls.length > 0 ? "requires_action" : serializeStatus({
5868
+ response: response
5869
+ });
5590
5870
  return {
5591
- id: run.id,
5871
+ id: response.id,
5592
5872
  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,
5873
+ created_at: response.created_at,
5874
+ thread_id: response.conversation.id,
5875
+ assistant_id: assistantId,
5876
+ status: status3,
5877
+ required_action: pendingToolCalls.length > 0 ? {
5878
+ type: "submit_tool_outputs",
5879
+ submit_tool_outputs: {
5880
+ tool_calls: serializeToolCalls({
5881
+ toolCalls: pendingToolCalls
5882
+ })
5883
+ }
5884
+ } : null,
5885
+ last_error: response.error,
5886
+ expires_at: response.created_at,
5887
+ started_at: response.created_at,
5888
+ cancelled_at: null,
5889
+ failed_at: response.error ? response.created_at : null,
5890
+ completed_at: status3 === "completed" ? response.created_at : null,
5891
+ model: response.model,
5892
+ instructions: "",
5893
+ tools: [],
5894
+ metadata: response.metadata,
5895
+ usage: serializeUsage({
5896
+ response: response
5897
+ }),
5609
5898
  truncation_strategy: {
5610
5899
  type: "auto"
5611
5900
  },
5612
5901
  response_format: {
5613
5902
  type: "text"
5614
5903
  },
5615
- // TODO
5616
5904
  incomplete_details: null,
5617
5905
  max_completion_tokens: null,
5618
5906
  max_prompt_tokens: null,
@@ -5620,78 +5908,342 @@ var serializeRun2 = function(param) {
5620
5908
  parallel_tool_calls: true
5621
5909
  };
5622
5910
  };
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"
5911
+ // src/lib/responses/saveResponseItemsToConversationMetadata.ts
5912
+ var BUCKET_PREFIX = "responseItemsMap";
5913
+ var MAX_BUCKETS = 16;
5914
+ var MAX_VALUE_LENGTH = 512;
5915
+ function parseBucket(param) {
5916
+ var value = param.value;
5917
+ if (!value || value === "[]") return [];
5918
+ try {
5919
+ var arr = JSON.parse(value);
5920
+ return Array.isArray(arr) ? arr : [];
5921
+ } catch (e) {
5922
+ return [];
5644
5923
  }
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:
5685
- response = _state.sent();
5686
- readableStream = new ReadableStream({
5687
- start: function start(controller) {
5688
- return _async_to_generator(function() {
5689
- var error, _error_cause, _error_message, _error_cause_message, event;
5690
- return _ts_generator(this, function(_state) {
5691
- switch(_state.label){
5692
- case 0:
5693
- _state.trys.push([
5694
- 0,
5924
+ }
5925
+ function serializeBucket(param) {
5926
+ var entries = param.entries;
5927
+ return JSON.stringify(entries);
5928
+ }
5929
+ function bucketKey(param) {
5930
+ var index = param.index;
5931
+ return "".concat(BUCKET_PREFIX).concat(index);
5932
+ }
5933
+ function listBucketIndices(param) {
5934
+ var metadata = param.metadata;
5935
+ return Object.keys(metadata).map(function(k) {
5936
+ var m = new RegExp("^".concat(BUCKET_PREFIX, "(\\d+)$")).exec(k);
5937
+ return m ? Number(m[1]) : -1;
5938
+ }).filter(function(i) {
5939
+ return i >= 0;
5940
+ }).sort(function(a, b) {
5941
+ return a - b;
5942
+ });
5943
+ }
5944
+ function parseAllPairs(param) {
5945
+ var metadata = param.metadata;
5946
+ var indices = listBucketIndices({
5947
+ metadata: metadata
5948
+ });
5949
+ var pairs = [];
5950
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
5951
+ try {
5952
+ for(var _iterator = indices[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
5953
+ var idx = _step.value;
5954
+ var key = bucketKey({
5955
+ index: idx
5956
+ });
5957
+ var entries = parseBucket({
5958
+ value: metadata[key]
5959
+ });
5960
+ var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
5961
+ try {
5962
+ for(var _iterator1 = entries[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
5963
+ var e = _step1.value;
5964
+ var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = undefined;
5965
+ try {
5966
+ for(var _iterator2 = e.itemIds[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true){
5967
+ var iid = _step2.value;
5968
+ pairs.push({
5969
+ responseId: e.responseId,
5970
+ itemId: iid
5971
+ });
5972
+ }
5973
+ } catch (err) {
5974
+ _didIteratorError2 = true;
5975
+ _iteratorError2 = err;
5976
+ } finally{
5977
+ try {
5978
+ if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
5979
+ _iterator2.return();
5980
+ }
5981
+ } finally{
5982
+ if (_didIteratorError2) {
5983
+ throw _iteratorError2;
5984
+ }
5985
+ }
5986
+ }
5987
+ }
5988
+ } catch (err) {
5989
+ _didIteratorError1 = true;
5990
+ _iteratorError1 = err;
5991
+ } finally{
5992
+ try {
5993
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
5994
+ _iterator1.return();
5995
+ }
5996
+ } finally{
5997
+ if (_didIteratorError1) {
5998
+ throw _iteratorError1;
5999
+ }
6000
+ }
6001
+ }
6002
+ }
6003
+ } catch (err) {
6004
+ _didIteratorError = true;
6005
+ _iteratorError = err;
6006
+ } finally{
6007
+ try {
6008
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
6009
+ _iterator.return();
6010
+ }
6011
+ } finally{
6012
+ if (_didIteratorError) {
6013
+ throw _iteratorError;
6014
+ }
6015
+ }
6016
+ }
6017
+ return pairs;
6018
+ }
6019
+ function tryPackPairs(param) {
6020
+ var baseMetadata = param.baseMetadata, pairs = param.pairs;
6021
+ var newBuckets = [];
6022
+ var currentEntries = [];
6023
+ var flush = function() {
6024
+ newBuckets.push(serializeBucket({
6025
+ entries: currentEntries
6026
+ }));
6027
+ currentEntries = [];
6028
+ };
6029
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
6030
+ try {
6031
+ for(var _iterator = pairs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
6032
+ var _step_value = _step.value, responseId2 = _step_value.responseId, itemId = _step_value.itemId;
6033
+ var next = currentEntries.map(function(e) {
6034
+ return {
6035
+ responseId: e.responseId,
6036
+ itemIds: _to_consumable_array(e.itemIds)
6037
+ };
6038
+ });
6039
+ var last6 = next[next.length - 1];
6040
+ if (last6 && last6.responseId === responseId2) {
6041
+ last6.itemIds.push(itemId);
6042
+ } else {
6043
+ next.push({
6044
+ responseId: responseId2,
6045
+ itemIds: [
6046
+ itemId
6047
+ ]
6048
+ });
6049
+ }
6050
+ var candidate = serializeBucket({
6051
+ entries: next
6052
+ });
6053
+ if (candidate.length <= MAX_VALUE_LENGTH) {
6054
+ currentEntries = next;
6055
+ continue;
6056
+ }
6057
+ flush();
6058
+ if (newBuckets.length >= MAX_BUCKETS) {
6059
+ return {
6060
+ success: false,
6061
+ newMetadata: baseMetadata
6062
+ };
6063
+ }
6064
+ currentEntries = [
6065
+ {
6066
+ responseId: responseId2,
6067
+ itemIds: [
6068
+ itemId
6069
+ ]
6070
+ }
6071
+ ];
6072
+ }
6073
+ } catch (err) {
6074
+ _didIteratorError = true;
6075
+ _iteratorError = err;
6076
+ } finally{
6077
+ try {
6078
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
6079
+ _iterator.return();
6080
+ }
6081
+ } finally{
6082
+ if (_didIteratorError) {
6083
+ throw _iteratorError;
6084
+ }
6085
+ }
6086
+ }
6087
+ if (currentEntries.length > 0) flush();
6088
+ var result = {};
6089
+ var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
6090
+ try {
6091
+ for(var _iterator1 = Object.entries(baseMetadata)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
6092
+ var _step_value1 = _sliced_to_array(_step1.value, 2), k = _step_value1[0], v = _step_value1[1];
6093
+ if (!k.startsWith(BUCKET_PREFIX)) result[k] = v;
6094
+ }
6095
+ } catch (err) {
6096
+ _didIteratorError1 = true;
6097
+ _iteratorError1 = err;
6098
+ } finally{
6099
+ try {
6100
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
6101
+ _iterator1.return();
6102
+ }
6103
+ } finally{
6104
+ if (_didIteratorError1) {
6105
+ throw _iteratorError1;
6106
+ }
6107
+ }
6108
+ }
6109
+ newBuckets.forEach(function(val, i) {
6110
+ if (val && val !== "[]") result[bucketKey({
6111
+ index: i
6112
+ })] = val;
6113
+ });
6114
+ return {
6115
+ success: true,
6116
+ newMetadata: result
6117
+ };
6118
+ }
6119
+ function appendItemIdsToConversationMetadata(param) {
6120
+ var metadata = param.metadata, responseId2 = param.responseId, itemIds = param.itemIds;
6121
+ var base = _object_spread({}, metadata || {});
6122
+ var existing = parseAllPairs({
6123
+ metadata: base
6124
+ });
6125
+ var nextPairs = existing.concat(itemIds.map(function(id) {
6126
+ return {
6127
+ responseId: responseId2,
6128
+ itemId: id
6129
+ };
6130
+ }));
6131
+ var working = nextPairs;
6132
+ while(true){
6133
+ var _tryPackPairs = tryPackPairs({
6134
+ baseMetadata: base,
6135
+ pairs: working
6136
+ }), success = _tryPackPairs.success, newMetadata = _tryPackPairs.newMetadata;
6137
+ if (success) return newMetadata;
6138
+ if (working.length === 0) {
6139
+ throw new Error("responseItemsMap: cannot pack even a single item into 16 buckets");
6140
+ }
6141
+ working = working.slice(1);
6142
+ }
6143
+ }
6144
+ function saveResponseItemsToConversationMetadata(_) {
6145
+ return _saveResponseItemsToConversationMetadata.apply(this, arguments);
6146
+ }
6147
+ function _saveResponseItemsToConversationMetadata() {
6148
+ _saveResponseItemsToConversationMetadata = _async_to_generator(function(param) {
6149
+ var openai, threadId, responseId2, itemIds, conversation, updated;
6150
+ return _ts_generator(this, function(_state) {
6151
+ switch(_state.label){
6152
+ case 0:
6153
+ openai = param.openai, threadId = param.threadId, responseId2 = param.responseId, itemIds = param.itemIds;
6154
+ return [
6155
+ 4,
6156
+ openai.conversations.retrieve(threadId)
6157
+ ];
6158
+ case 1:
6159
+ conversation = _state.sent();
6160
+ updated = appendItemIdsToConversationMetadata({
6161
+ metadata: conversation.metadata,
6162
+ responseId: responseId2,
6163
+ itemIds: itemIds
6164
+ });
6165
+ return [
6166
+ 4,
6167
+ openai.conversations.update(threadId, {
6168
+ metadata: updated
6169
+ })
6170
+ ];
6171
+ case 2:
6172
+ _state.sent();
6173
+ return [
6174
+ 2
6175
+ ];
6176
+ }
6177
+ });
6178
+ });
6179
+ return _saveResponseItemsToConversationMetadata.apply(this, arguments);
6180
+ }
6181
+ // src/adapters/storage/responsesStorageAdapter/threads/runs/post.ts
6182
+ var serializeTools2 = function(param) {
6183
+ var tools = param.tools;
6184
+ if (!(tools === null || tools === void 0 ? void 0 : tools.length)) return {};
6185
+ return {
6186
+ tools: tools.map(function(tool) {
6187
+ return _object_spread({
6188
+ type: tool.type
6189
+ }, tool[tool.type] || {});
6190
+ })
6191
+ };
6192
+ };
6193
+ var defaultAssistant = {
6194
+ model: "",
6195
+ instructions: "",
6196
+ additional_instructions: null,
6197
+ truncation_strategy: {
6198
+ type: "auto"
6199
+ },
6200
+ response_format: {
6201
+ type: "text"
6202
+ }
6203
+ };
6204
+ var post17 = function(param) {
6205
+ var openai = param.openai, openaiAssistant = param.openaiAssistant, runAdapter = param.runAdapter, createResponseItems = param.createResponseItems;
6206
+ return /*#__PURE__*/ function() {
6207
+ var _ref = _async_to_generator(function(urlString, options) {
6208
+ var url, _url_pathname_match, threadId, body, assistant_id, stream, _ref, model, instructions, // additional_instructions,
6209
+ tools, metadata, response_format, truncation_strategy, response, readableStream, _response_output, itemIds, data;
6210
+ return _ts_generator(this, function(_state) {
6211
+ switch(_state.label){
6212
+ case 0:
6213
+ url = new URL(urlString);
6214
+ _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp(runsRegexp)), 2), threadId = _url_pathname_match[1];
6215
+ body = JSON.parse(options.body);
6216
+ assistant_id = body.assistant_id, stream = body.stream;
6217
+ _ref = (0, import_radash19.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;
6218
+ return [
6219
+ 4,
6220
+ openai.responses.create(_object_spread_props(_object_spread({
6221
+ conversation: threadId,
6222
+ instructions: instructions,
6223
+ model: model,
6224
+ metadata: metadata,
6225
+ stream: stream
6226
+ }, serializeTools2({
6227
+ tools: tools
6228
+ })), {
6229
+ truncation: truncation_strategy.type,
6230
+ text: {
6231
+ format: response_format
6232
+ },
6233
+ input: createResponseItems
6234
+ }))
6235
+ ];
6236
+ case 1:
6237
+ response = _state.sent();
6238
+ readableStream = new ReadableStream({
6239
+ start: function start(controller) {
6240
+ return _async_to_generator(function() {
6241
+ var error, _error_cause, _error_message, _error_cause_message, event;
6242
+ return _ts_generator(this, function(_state) {
6243
+ switch(_state.label){
6244
+ case 0:
6245
+ _state.trys.push([
6246
+ 0,
5695
6247
  2,
5696
6248
  ,
5697
6249
  3
@@ -5699,6 +6251,7 @@ var post17 = function(param) {
5699
6251
  return [
5700
6252
  4,
5701
6253
  runAdapter({
6254
+ threadId: threadId,
5702
6255
  response: response,
5703
6256
  onEvent: /*#__PURE__*/ function() {
5704
6257
  var _ref = _async_to_generator(function(event) {
@@ -5727,8 +6280,8 @@ var post17 = function(param) {
5727
6280
  event = {
5728
6281
  event: "thread.run.failed",
5729
6282
  data: {
5730
- id: (0, import_radash17.uid)(24),
5731
- failed_at: (0, import_dayjs15.default)().unix(),
6283
+ id: (0, import_radash18.uid)(24),
6284
+ failed_at: (0, import_dayjs11.default)().unix(),
5732
6285
  last_error: {
5733
6286
  code: "server_error",
5734
6287
  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 +6303,55 @@ var post17 = function(param) {
5750
6303
  })();
5751
6304
  }
5752
6305
  });
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
- }
6306
+ if (!stream) return [
6307
+ 3,
6308
+ 2
6309
+ ];
6310
+ return [
6311
+ 2,
6312
+ new Response(readableStream, {
6313
+ headers: {
6314
+ "Content-Type": "text/event-stream"
6315
+ }
6316
+ })
6317
+ ];
6318
+ case 2:
6319
+ itemIds = ((_response_output = response.output) !== null && _response_output !== void 0 ? _response_output : []).filter(function(o) {
6320
+ return o.id;
6321
+ }).map(function(o) {
6322
+ return o.id;
6323
+ });
6324
+ if (!(itemIds.length > 0)) return [
6325
+ 3,
6326
+ 4
6327
+ ];
6328
+ return [
6329
+ 4,
6330
+ saveResponseItemsToConversationMetadata({
6331
+ openai: openai,
6332
+ threadId: threadId,
6333
+ responseId: response.id,
6334
+ itemIds: itemIds
6335
+ })
6336
+ ];
6337
+ case 3:
6338
+ _state.sent();
6339
+ _state.label = 4;
6340
+ case 4:
6341
+ data = serializeResponseAsRun({
6342
+ response: response,
6343
+ assistantId: assistant_id
6344
+ });
6345
+ return [
6346
+ 2,
6347
+ new Response(JSON.stringify(data), {
6348
+ status: 200,
6349
+ headers: {
6350
+ "Content-Type": "application/json"
6351
+ }
6352
+ })
6353
+ ];
6354
+ case 5:
5776
6355
  return [
5777
6356
  2
5778
6357
  ];
@@ -5786,7 +6365,7 @@ var post17 = function(param) {
5786
6365
  };
5787
6366
  // src/adapters/storage/responsesStorageAdapter/threads/runs/index.ts
5788
6367
  var runs2 = function(param) {
5789
- var openai = param.openai, openaiAssistant = param.openaiAssistant, runAdapter = param.runAdapter;
6368
+ var openai = param.openai, openaiAssistant = param.openaiAssistant, runAdapter = param.runAdapter, createResponseItems = param.createResponseItems;
5790
6369
  return {
5791
6370
  get: get15({
5792
6371
  openai: openai
@@ -5794,71 +6373,375 @@ var runs2 = function(param) {
5794
6373
  post: post17({
5795
6374
  openai: openai,
5796
6375
  openaiAssistant: openaiAssistant,
6376
+ createResponseItems: createResponseItems,
5797
6377
  runAdapter: runAdapter
5798
6378
  })
5799
6379
  };
5800
6380
  };
5801
6381
  // src/adapters/storage/responsesStorageAdapter/threads/run/get.ts
5802
6382
  var get16 = function(param) {
5803
- var openai = param.openai;
6383
+ var openai = param.openai, openaiAssistant = param.openaiAssistant;
5804
6384
  return /*#__PURE__*/ function() {
5805
6385
  var _ref = _async_to_generator(function(urlString) {
5806
- var url, _url_pathname_match, threadId, runId;
6386
+ var url, _url_pathname_match, _threadId, runId, response, data;
5807
6387
  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");
6388
+ switch(_state.label){
6389
+ case 0:
6390
+ url = new URL(urlString);
6391
+ _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp(runRegexp)), 3), _threadId = _url_pathname_match[1], runId = _url_pathname_match[2];
6392
+ return [
6393
+ 4,
6394
+ openai.responses.retrieve(runId)
6395
+ ];
6396
+ case 1:
6397
+ response = _state.sent();
6398
+ data = serializeResponseAsRun({
6399
+ response: response,
6400
+ assistantId: openaiAssistant.id
6401
+ });
6402
+ return [
6403
+ 2,
6404
+ new Response(JSON.stringify(data), {
6405
+ status: 200,
6406
+ headers: {
6407
+ "Content-Type": "application/json",
6408
+ "openai-poll-after-ms": "5000"
6409
+ }
6410
+ })
6411
+ ];
6412
+ }
5811
6413
  });
5812
6414
  });
5813
- return function(urlString) {
5814
- return _ref.apply(this, arguments);
5815
- };
5816
- }();
5817
- };
5818
- // src/adapters/storage/responsesStorageAdapter/threads/run/index.ts
5819
- var run3 = function(param) {
5820
- var openai = param.openai, runAdapter = param.runAdapter;
5821
- return {
5822
- get: get16({
5823
- openai: openai
5824
- })
5825
- };
5826
- };
6415
+ return function(urlString) {
6416
+ return _ref.apply(this, arguments);
6417
+ };
6418
+ }();
6419
+ };
6420
+ // src/adapters/storage/responsesStorageAdapter/threads/run/index.ts
6421
+ var run2 = function(param) {
6422
+ var openai = param.openai, openaiAssistant = param.openaiAssistant, runAdapter = param.runAdapter;
6423
+ return {
6424
+ get: get16({
6425
+ openai: openai,
6426
+ openaiAssistant: openaiAssistant
6427
+ })
6428
+ };
6429
+ };
6430
+ function pMap(iterable, mapper) {
6431
+ return _pMap.apply(this, arguments);
6432
+ }
6433
+ function _pMap() {
6434
+ _pMap = // ../../node_modules/p-map/index.js
6435
+ _async_to_generator(function(iterable, mapper) {
6436
+ var _ref, _ref_concurrency, concurrency, _ref_stopOnError, stopOnError, signal;
6437
+ var _arguments = arguments;
6438
+ return _ts_generator(this, function(_state) {
6439
+ _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;
6440
+ return [
6441
+ 2,
6442
+ new Promise(function(resolve_, reject_) {
6443
+ if (iterable[Symbol.iterator] === void 0 && iterable[Symbol.asyncIterator] === void 0) {
6444
+ throw new TypeError("Expected `input` to be either an `Iterable` or `AsyncIterable`, got (".concat(typeof iterable === "undefined" ? "undefined" : _type_of(iterable), ")"));
6445
+ }
6446
+ if (typeof mapper !== "function") {
6447
+ throw new TypeError("Mapper function is required");
6448
+ }
6449
+ if (!(Number.isSafeInteger(concurrency) && concurrency >= 1 || concurrency === Number.POSITIVE_INFINITY)) {
6450
+ 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), ")"));
6451
+ }
6452
+ var result = [];
6453
+ var errors = [];
6454
+ var skippedIndexesMap = /* @__PURE__ */ new Map();
6455
+ var isRejected = false;
6456
+ var isResolved = false;
6457
+ var isIterableDone = false;
6458
+ var resolvingCount = 0;
6459
+ var currentIndex = 0;
6460
+ var iterator = iterable[Symbol.iterator] === void 0 ? iterable[Symbol.asyncIterator]() : iterable[Symbol.iterator]();
6461
+ var signalListener = function() {
6462
+ reject(signal.reason);
6463
+ };
6464
+ var cleanup = function() {
6465
+ signal === null || signal === void 0 ? void 0 : signal.removeEventListener("abort", signalListener);
6466
+ };
6467
+ var resolve = function(value) {
6468
+ resolve_(value);
6469
+ cleanup();
6470
+ };
6471
+ var reject = function(reason) {
6472
+ isRejected = true;
6473
+ isResolved = true;
6474
+ reject_(reason);
6475
+ cleanup();
6476
+ };
6477
+ if (signal) {
6478
+ if (signal.aborted) {
6479
+ reject(signal.reason);
6480
+ }
6481
+ signal.addEventListener("abort", signalListener, {
6482
+ once: true
6483
+ });
6484
+ }
6485
+ var next = /*#__PURE__*/ function() {
6486
+ var _ref = _async_to_generator(function() {
6487
+ var nextItem, index, pureResult, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, _step_value, index2, value;
6488
+ return _ts_generator(this, function(_state) {
6489
+ switch(_state.label){
6490
+ case 0:
6491
+ if (isResolved) {
6492
+ return [
6493
+ 2
6494
+ ];
6495
+ }
6496
+ return [
6497
+ 4,
6498
+ iterator.next()
6499
+ ];
6500
+ case 1:
6501
+ nextItem = _state.sent();
6502
+ index = currentIndex;
6503
+ currentIndex++;
6504
+ if (nextItem.done) {
6505
+ isIterableDone = true;
6506
+ if (resolvingCount === 0 && !isResolved) {
6507
+ if (!stopOnError && errors.length > 0) {
6508
+ reject(new AggregateError(errors));
6509
+ return [
6510
+ 2
6511
+ ];
6512
+ }
6513
+ isResolved = true;
6514
+ if (skippedIndexesMap.size === 0) {
6515
+ resolve(result);
6516
+ return [
6517
+ 2
6518
+ ];
6519
+ }
6520
+ pureResult = [];
6521
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
6522
+ try {
6523
+ for(_iterator = result.entries()[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
6524
+ _step_value = _sliced_to_array(_step.value, 2), index2 = _step_value[0], value = _step_value[1];
6525
+ if (skippedIndexesMap.get(index2) === pMapSkip) {
6526
+ continue;
6527
+ }
6528
+ pureResult.push(value);
6529
+ }
6530
+ } catch (err) {
6531
+ _didIteratorError = true;
6532
+ _iteratorError = err;
6533
+ } finally{
6534
+ try {
6535
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
6536
+ _iterator.return();
6537
+ }
6538
+ } finally{
6539
+ if (_didIteratorError) {
6540
+ throw _iteratorError;
6541
+ }
6542
+ }
6543
+ }
6544
+ resolve(pureResult);
6545
+ }
6546
+ return [
6547
+ 2
6548
+ ];
6549
+ }
6550
+ resolvingCount++;
6551
+ _async_to_generator(function() {
6552
+ var element, value, error, error2;
6553
+ return _ts_generator(this, function(_state) {
6554
+ switch(_state.label){
6555
+ case 0:
6556
+ _state.trys.push([
6557
+ 0,
6558
+ 4,
6559
+ ,
6560
+ 10
6561
+ ]);
6562
+ return [
6563
+ 4,
6564
+ nextItem.value
6565
+ ];
6566
+ case 1:
6567
+ element = _state.sent();
6568
+ if (isResolved) {
6569
+ return [
6570
+ 2
6571
+ ];
6572
+ }
6573
+ return [
6574
+ 4,
6575
+ mapper(element, index)
6576
+ ];
6577
+ case 2:
6578
+ value = _state.sent();
6579
+ if (value === pMapSkip) {
6580
+ skippedIndexesMap.set(index, value);
6581
+ }
6582
+ result[index] = value;
6583
+ resolvingCount--;
6584
+ return [
6585
+ 4,
6586
+ next()
6587
+ ];
6588
+ case 3:
6589
+ _state.sent();
6590
+ return [
6591
+ 3,
6592
+ 10
6593
+ ];
6594
+ case 4:
6595
+ error = _state.sent();
6596
+ if (!stopOnError) return [
6597
+ 3,
6598
+ 5
6599
+ ];
6600
+ reject(error);
6601
+ return [
6602
+ 3,
6603
+ 9
6604
+ ];
6605
+ case 5:
6606
+ errors.push(error);
6607
+ resolvingCount--;
6608
+ _state.label = 6;
6609
+ case 6:
6610
+ _state.trys.push([
6611
+ 6,
6612
+ 8,
6613
+ ,
6614
+ 9
6615
+ ]);
6616
+ return [
6617
+ 4,
6618
+ next()
6619
+ ];
6620
+ case 7:
6621
+ _state.sent();
6622
+ return [
6623
+ 3,
6624
+ 9
6625
+ ];
6626
+ case 8:
6627
+ error2 = _state.sent();
6628
+ reject(error2);
6629
+ return [
6630
+ 3,
6631
+ 9
6632
+ ];
6633
+ case 9:
6634
+ return [
6635
+ 3,
6636
+ 10
6637
+ ];
6638
+ case 10:
6639
+ return [
6640
+ 2
6641
+ ];
6642
+ }
6643
+ });
6644
+ })();
6645
+ return [
6646
+ 2
6647
+ ];
6648
+ }
6649
+ });
6650
+ });
6651
+ return function next() {
6652
+ return _ref.apply(this, arguments);
6653
+ };
6654
+ }();
6655
+ _async_to_generator(function() {
6656
+ var index, error;
6657
+ return _ts_generator(this, function(_state) {
6658
+ switch(_state.label){
6659
+ case 0:
6660
+ index = 0;
6661
+ _state.label = 1;
6662
+ case 1:
6663
+ if (!(index < concurrency)) return [
6664
+ 3,
6665
+ 7
6666
+ ];
6667
+ _state.label = 2;
6668
+ case 2:
6669
+ _state.trys.push([
6670
+ 2,
6671
+ 4,
6672
+ ,
6673
+ 5
6674
+ ]);
6675
+ return [
6676
+ 4,
6677
+ next()
6678
+ ];
6679
+ case 3:
6680
+ _state.sent();
6681
+ return [
6682
+ 3,
6683
+ 5
6684
+ ];
6685
+ case 4:
6686
+ error = _state.sent();
6687
+ reject(error);
6688
+ return [
6689
+ 3,
6690
+ 7
6691
+ ];
6692
+ case 5:
6693
+ if (isIterableDone || isRejected) {
6694
+ return [
6695
+ 3,
6696
+ 7
6697
+ ];
6698
+ }
6699
+ _state.label = 6;
6700
+ case 6:
6701
+ index++;
6702
+ return [
6703
+ 3,
6704
+ 1
6705
+ ];
6706
+ case 7:
6707
+ return [
6708
+ 2
6709
+ ];
6710
+ }
6711
+ });
6712
+ })();
6713
+ })
6714
+ ];
6715
+ });
6716
+ });
6717
+ return _pMap.apply(this, arguments);
6718
+ }
6719
+ var pMapSkip = Symbol("skip");
5827
6720
  // src/adapters/storage/responsesStorageAdapter/threads/runs/steps/get.ts
6721
+ var import_radash21 = require("radash");
6722
+ // src/lib/items/serializeItemAsRunStep.ts
6723
+ var import_dayjs12 = __toESM(require("dayjs"), 1);
5828
6724
  var import_radash20 = require("radash");
5829
- // src/adapters/storage/responsesStorageAdapter/threads/runs/steps/serializeRunStep.ts
5830
- var import_dayjs16 = __toESM(require("dayjs"), 1);
5831
- 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));
5843
- var itemId = typeof item.id === "string" ? item.id : "item_".concat((0, import_radash19.uid)(18));
6725
+ function serializeItemAsRunStep(param) {
6726
+ 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_radash20.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;
6727
+ var itemId = typeof item.id === "string" ? item.id : "item_".concat((0, import_radash20.uid)(18));
5844
6728
  var base = {
5845
6729
  id: itemId,
5846
- // <- always string
5847
6730
  object: "thread.run.step",
5848
- created_at: now,
5849
- assistant_id: assistantId,
6731
+ created_at: (0, import_dayjs12.default)().unix(),
6732
+ assistant_id: openaiAssistant.id,
5850
6733
  thread_id: threadId,
5851
6734
  run_id: runId,
5852
- status: "completed",
6735
+ status: status3,
5853
6736
  last_error: null,
5854
6737
  expired_at: null,
5855
6738
  cancelled_at: null,
5856
6739
  failed_at: null,
5857
- completed_at: now,
6740
+ completed_at: completedAt,
5858
6741
  metadata: {},
5859
6742
  usage: null
5860
6743
  };
5861
- if (isConvMessage(item)) {
6744
+ if (item.type === "message") {
5862
6745
  return _object_spread_props(_object_spread({}, base), {
5863
6746
  type: "message_creation",
5864
6747
  step_details: {
@@ -5874,16 +6757,17 @@ function serializeRunStep2(param) {
5874
6757
  } : {}
5875
6758
  });
5876
6759
  }
5877
- if (isConvFn(item)) {
5878
- var fn = item;
6760
+ if (item.type === "function_call") {
6761
+ var functionCallOutput = items.find(function(i) {
6762
+ return i.type === "function_call_output" && i.call_id === item.call_id;
6763
+ });
5879
6764
  var toolCall = {
5880
- // prefer itemId; if your client also exposes a separate call_id, you could fall back to it
5881
- id: itemId,
6765
+ id: item.call_id,
5882
6766
  type: "function",
5883
6767
  function: {
5884
- name: fn.name,
5885
- arguments: fn.arguments,
5886
- output: null
6768
+ name: item.name,
6769
+ arguments: item.arguments,
6770
+ output: functionCallOutput ? functionCallOutput.output : null
5887
6771
  }
5888
6772
  };
5889
6773
  return _object_spread_props(_object_spread({}, base), {
@@ -5903,44 +6787,105 @@ function serializeRunStep2(param) {
5903
6787
  message_creation: {
5904
6788
  message_id: itemId
5905
6789
  }
6790
+ },
6791
+ metadata: {
6792
+ item: JSON.stringify(item)
5906
6793
  }
5907
6794
  });
5908
6795
  }
5909
6796
  // src/adapters/storage/responsesStorageAdapter/threads/runs/steps/get.ts
5910
6797
  var get17 = function(param) {
5911
- var openai = param.openai;
6798
+ var openai = param.openai, openaiAssistant = param.openaiAssistant;
5912
6799
  return /*#__PURE__*/ function() {
5913
6800
  var _ref = _async_to_generator(function(urlString) {
5914
- var _this, url, _url_pathname_match, threadId, runId, _ref, limit, order, after, items, _id;
6801
+ var _this, url, _url_pathname_match, threadId, runId, response, functionCalls, functionCallOutputsResponses, functionCallOutputs, nonFcItems, data, _id;
5915
6802
  return _ts_generator(this, function(_state) {
5916
6803
  switch(_state.label){
5917
6804
  case 0:
5918
6805
  url = new URL(urlString);
5919
6806
  _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
6807
  return [
5925
6808
  4,
5926
- openai.conversations.items.list(threadId, {
5927
- limit: parseInt(limit),
5928
- after: after,
5929
- order: order
5930
- })
6809
+ openai.responses.retrieve(runId)
5931
6810
  ];
5932
6811
  case 1:
5933
- items = _state.sent();
6812
+ response = _state.sent();
6813
+ functionCalls = response.output.filter(function(item) {
6814
+ return item.type === "function_call";
6815
+ });
6816
+ return [
6817
+ 4,
6818
+ pMap(functionCalls, /*#__PURE__*/ function() {
6819
+ var _ref = _async_to_generator(function(functionCall) {
6820
+ var items;
6821
+ return _ts_generator(this, function(_state) {
6822
+ switch(_state.label){
6823
+ case 0:
6824
+ return [
6825
+ 4,
6826
+ openai.conversations.items.list(threadId, {
6827
+ after: functionCall.id,
6828
+ order: "asc"
6829
+ })
6830
+ ];
6831
+ case 1:
6832
+ items = _state.sent();
6833
+ return [
6834
+ 2,
6835
+ items.data.find(function(item) {
6836
+ return item.type === "function_call_output" && item.call_id === functionCall.call_id;
6837
+ })
6838
+ ];
6839
+ }
6840
+ });
6841
+ });
6842
+ return function(functionCall) {
6843
+ return _ref.apply(this, arguments);
6844
+ };
6845
+ }())
6846
+ ];
6847
+ case 2:
6848
+ functionCallOutputsResponses = _state.sent();
6849
+ functionCallOutputs = functionCallOutputsResponses.filter(Boolean);
6850
+ nonFcItems = response.output.filter(function(item) {
6851
+ return item.type !== "function_call";
6852
+ });
6853
+ data = response.output.flatMap(function(item) {
6854
+ var step = serializeItemAsRunStep({
6855
+ item: item,
6856
+ items: functionCallOutputs,
6857
+ threadId: threadId,
6858
+ openaiAssistant: openaiAssistant,
6859
+ runId: response.id
6860
+ });
6861
+ if (item.type === "function_call") {
6862
+ var synthCreation = {
6863
+ id: "mc".concat(item.id),
6864
+ run_id: response.id,
6865
+ status: "completed",
6866
+ completed_at: step.created_at,
6867
+ step_details: {
6868
+ type: "message_creation",
6869
+ message_creation: {
6870
+ message_id: item.id
6871
+ }
6872
+ }
6873
+ };
6874
+ return [
6875
+ synthCreation,
6876
+ step
6877
+ ];
6878
+ }
6879
+ return [
6880
+ step
6881
+ ];
6882
+ });
5934
6883
  return [
5935
6884
  2,
5936
6885
  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
6886
+ data: data,
6887
+ has_more: false,
6888
+ last_id: (_id = (_this = (0, import_radash21.last)(response.output)) === null || _this === void 0 ? void 0 : _this.id) !== null && _id !== void 0 ? _id : null
5944
6889
  }), {
5945
6890
  status: 200,
5946
6891
  headers: {
@@ -5958,10 +6903,11 @@ var get17 = function(param) {
5958
6903
  };
5959
6904
  // src/adapters/storage/responsesStorageAdapter/threads/runs/steps/index.ts
5960
6905
  var steps2 = function(param) {
5961
- var openai = param.openai;
6906
+ var openai = param.openai, openaiAssistant = param.openaiAssistant;
5962
6907
  return {
5963
6908
  get: get17({
5964
- openai: openai
6909
+ openai: openai,
6910
+ openaiAssistant: openaiAssistant
5965
6911
  })
5966
6912
  };
5967
6913
  };
@@ -5977,7 +6923,7 @@ var serializeTools3 = function(param) {
5977
6923
  })
5978
6924
  };
5979
6925
  };
5980
- var serializeInput = function(param) {
6926
+ var getFunctionCallOutputItems = function(param) {
5981
6927
  var tool_outputs = param.tool_outputs;
5982
6928
  return tool_outputs.map(function(toolOutput) {
5983
6929
  return {
@@ -5991,7 +6937,7 @@ var post18 = function(param) {
5991
6937
  var openai = param.openai, openaiAssistant = param.openaiAssistant, runAdapter = param.runAdapter;
5992
6938
  return /*#__PURE__*/ function() {
5993
6939
  var _ref = _async_to_generator(function(urlString, options) {
5994
- var url, _url_pathname_match, threadId, runId, body, tool_outputs, stream, response, readableStream;
6940
+ var url, _url_pathname_match, threadId, runId, body, tool_outputs, stream, functionCallOutputItems, previousResponse, response, readableStream;
5995
6941
  return _ts_generator(this, function(_state) {
5996
6942
  switch(_state.label){
5997
6943
  case 0:
@@ -5999,18 +6945,20 @@ var post18 = function(param) {
5999
6945
  _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp(submitToolOutputsRegexp)), 3), threadId = _url_pathname_match[1], runId = _url_pathname_match[2];
6000
6946
  body = JSON.parse(options.body);
6001
6947
  tool_outputs = body.tool_outputs, stream = body.stream;
6002
- console.dir({
6003
- body: body
6004
- }, {
6005
- depth: null
6948
+ functionCallOutputItems = getFunctionCallOutputItems({
6949
+ tool_outputs: tool_outputs
6006
6950
  });
6951
+ return [
6952
+ 4,
6953
+ openai.responses.retrieve(runId)
6954
+ ];
6955
+ case 1:
6956
+ previousResponse = _state.sent();
6007
6957
  return [
6008
6958
  4,
6009
6959
  openai.responses.create(_object_spread({
6010
6960
  conversation: threadId,
6011
- input: serializeInput({
6012
- tool_outputs: tool_outputs
6013
- }),
6961
+ input: functionCallOutputItems,
6014
6962
  instructions: openaiAssistant.instructions,
6015
6963
  model: openaiAssistant.model,
6016
6964
  // metadata,
@@ -6019,7 +6967,7 @@ var post18 = function(param) {
6019
6967
  tools: openaiAssistant.tools
6020
6968
  })))
6021
6969
  ];
6022
- case 1:
6970
+ case 2:
6023
6971
  response = _state.sent();
6024
6972
  readableStream = new ReadableStream({
6025
6973
  start: function start(controller) {
@@ -6027,11 +6975,29 @@ var post18 = function(param) {
6027
6975
  return _ts_generator(this, function(_state) {
6028
6976
  switch(_state.label){
6029
6977
  case 0:
6978
+ functionCallOutputItems.forEach(function(item) {
6979
+ var functionCallItem = previousResponse.output.find(function(i) {
6980
+ return i.type === "function_call" && i.call_id === item.call_id;
6981
+ });
6982
+ if (!functionCallItem) {
6983
+ return;
6984
+ }
6985
+ controller.enqueue("data: ".concat(JSON.stringify({
6986
+ event: "thread.run.step.completed",
6987
+ data: serializeItemAsRunStep({
6988
+ item: functionCallItem,
6989
+ items: functionCallOutputItems,
6990
+ threadId: threadId,
6991
+ openaiAssistant: openaiAssistant,
6992
+ runId: runId
6993
+ })
6994
+ }), "\n\n"));
6995
+ });
6030
6996
  return [
6031
6997
  4,
6032
6998
  runAdapter({
6999
+ threadId: threadId,
6033
7000
  response: response,
6034
- // run: serializeRun({ run }),
6035
7001
  onEvent: /*#__PURE__*/ function() {
6036
7002
  var _ref = _async_to_generator(function(event) {
6037
7003
  return _ts_generator(this, function(_state) {
@@ -6086,57 +7052,100 @@ var submitToolOutputs2 = function(param) {
6086
7052
  })
6087
7053
  };
6088
7054
  };
6089
- // src/adapters/storage/responsesStorageAdapter/assistants/post.ts
6090
- var post19 = function(param) {
6091
- var openai = param.openai;
7055
+ // src/adapters/storage/responsesStorageAdapter/assistants/get.ts
7056
+ var get18 = function(param) {
7057
+ var openaiAssistant = param.openaiAssistant;
6092
7058
  return /*#__PURE__*/ function() {
6093
- var _ref = _async_to_generator(function(_url, options) {
6094
- var body, model, instructions;
7059
+ var _ref = _async_to_generator(function(urlString) {
6095
7060
  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");
7061
+ return [
7062
+ 2,
7063
+ new Response(JSON.stringify({
7064
+ data: [
7065
+ openaiAssistant
7066
+ ],
7067
+ has_more: false,
7068
+ last_id: openaiAssistant.id
7069
+ }), {
7070
+ status: 200,
7071
+ headers: {
7072
+ "Content-Type": "application/json"
7073
+ }
7074
+ })
7075
+ ];
6099
7076
  });
6100
7077
  });
6101
- return function(_url, options) {
7078
+ return function(urlString) {
6102
7079
  return _ref.apply(this, arguments);
6103
7080
  };
6104
7081
  }();
6105
7082
  };
7083
+ // src/adapters/storage/responsesStorageAdapter/assistants/post.ts
7084
+ var post19 = function(param) {
7085
+ var _openaiAssistant = param.openaiAssistant;
7086
+ return /*#__PURE__*/ _async_to_generator(function() {
7087
+ return _ts_generator(this, function(_state) {
7088
+ return [
7089
+ 2,
7090
+ new Response(JSON.stringify({
7091
+ error: {
7092
+ message: "Assistant creation is not implemented for the Responses storage adapter.",
7093
+ type: "not_implemented"
7094
+ }
7095
+ }), {
7096
+ status: 501,
7097
+ headers: {
7098
+ "Content-Type": "application/json"
7099
+ }
7100
+ })
7101
+ ];
7102
+ });
7103
+ });
7104
+ };
6106
7105
  // src/adapters/storage/responsesStorageAdapter/assistants/index.ts
6107
7106
  var assistants2 = function(param) {
6108
- var openai = param.openai;
7107
+ var openai = param.openai, openaiAssistant = param.openaiAssistant;
6109
7108
  return {
7109
+ get: get18({
7110
+ openaiAssistant: openaiAssistant
7111
+ }),
6110
7112
  post: post19({
6111
- openai: openai
7113
+ openaiAssistant: openaiAssistant
6112
7114
  })
6113
7115
  };
6114
7116
  };
6115
7117
  // src/adapters/storage/responsesStorageAdapter/index.ts
6116
7118
  var responsesStorageAdapter = function(param) {
6117
7119
  var openai = param.openai, openaiAssistant = param.openaiAssistant;
7120
+ var createResponseItems = [];
6118
7121
  return function(param) {
6119
7122
  var runAdapter = param.runAdapter;
6120
7123
  var _obj;
6121
7124
  return {
6122
7125
  requestHandlers: (_obj = {
6123
- "^/(?:v1/|openai/)?assistants$": assistants2({
6124
- openai: openai
7126
+ "^/(?:v1|/?openai)/assistants$": assistants2({
7127
+ openai: openai,
7128
+ openaiAssistant: openaiAssistant
6125
7129
  }),
6126
7130
  "^/(?:v1|/?openai)/threads$": threads2({
6127
7131
  openai: openai
6128
7132
  })
6129
7133
  }, _define_property(_obj, messagesRegexp, messages3({
6130
- openai: openai
7134
+ openai: openai,
7135
+ openaiAssistant: openaiAssistant,
7136
+ createResponseItems: createResponseItems
6131
7137
  })), _define_property(_obj, runsRegexp, runs2({
6132
7138
  openai: openai,
6133
7139
  openaiAssistant: openaiAssistant,
6134
- runAdapter: runAdapter
6135
- })), _define_property(_obj, runRegexp, run3({
7140
+ runAdapter: runAdapter,
7141
+ createResponseItems: createResponseItems
7142
+ })), _define_property(_obj, runRegexp, run2({
6136
7143
  openai: openai,
7144
+ openaiAssistant: openaiAssistant,
6137
7145
  runAdapter: runAdapter
6138
7146
  })), _define_property(_obj, stepsRegexp, steps2({
6139
- openai: openai
7147
+ openai: openai,
7148
+ openaiAssistant: openaiAssistant
6140
7149
  })), _define_property(_obj, submitToolOutputsRegexp, submitToolOutputs2({
6141
7150
  openai: openai,
6142
7151
  openaiAssistant: openaiAssistant,
@@ -6146,462 +7155,238 @@ var responsesStorageAdapter = function(param) {
6146
7155
  };
6147
7156
  };
6148
7157
  // src/adapters/run/responsesRunAdapter/index.ts
6149
- var import_dayjs17 = __toESM(require("dayjs"), 1);
6150
- 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;
6155
- return _ts_generator(this, function(_state) {
6156
- switch(_state.label){
6157
- 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
- })
6202
- ];
6203
- case 1:
6204
- _state.sent();
6205
- return [
6206
- 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
- })
6219
- ];
6220
- case 2:
6221
- _state.sent();
6222
- return [
6223
- 4,
6224
- onEvent2({
6225
- event: "thread.message.created",
6226
- data: msg
6227
- })
6228
- ];
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:
7158
+ var import_dayjs13 = __toESM(require("dayjs"), 1);
7159
+ var import_radash22 = require("radash");
7160
+ var serializeToolCalls2 = function(param) {
7161
+ var toolCalls = param.toolCalls;
7162
+ return toolCalls.map(function(toolCall) {
7163
+ return {
7164
+ id: toolCall.call_id,
7165
+ type: "function",
7166
+ function: {
7167
+ name: toolCall.name,
7168
+ arguments: toolCall.arguments
7169
+ }
7170
+ };
7171
+ });
7172
+ };
7173
+ var responsesRunAdapter = function(param) {
7174
+ var openai = param.openai, openaiAssistant = param.openaiAssistant;
7175
+ return /*#__PURE__*/ function() {
7176
+ var _ref = _async_to_generator(function(param) {
7177
+ var threadId, response, onEvent2, responseCreatedResponse, toolCalls, itemIds, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, event, _, toolCalls2, toolCall, err, e;
7178
+ return _ts_generator(this, function(_state) {
7179
+ switch(_state.label){
7180
+ case 0:
7181
+ threadId = param.threadId, response = param.response, onEvent2 = param.onEvent;
7182
+ responseCreatedResponse = null;
7183
+ toolCalls = {};
7184
+ itemIds = [];
7185
+ _state.label = 1;
7186
+ case 1:
6424
7187
  _state.trys.push([
6425
- 4,
6426
- 41,
6427
- ,
6428
- 43
7188
+ 1,
7189
+ 42,
7190
+ 44,
7191
+ 47
6429
7192
  ]);
6430
7193
  _iteratorAbruptCompletion = false, _didIteratorError = false;
6431
- _state.label = 5;
6432
- case 5:
7194
+ _state.label = 2;
7195
+ case 2:
6433
7196
  _state.trys.push([
6434
- 5,
6435
- 34,
7197
+ 2,
6436
7198
  35,
6437
- 40
7199
+ 36,
7200
+ 41
6438
7201
  ]);
6439
7202
  _iterator = _async_iterator(response);
6440
- _state.label = 6;
6441
- case 6:
7203
+ _state.label = 3;
7204
+ case 3:
6442
7205
  return [
6443
7206
  4,
6444
7207
  _iterator.next()
6445
7208
  ];
6446
- case 7:
7209
+ case 4:
6447
7210
  if (!(_iteratorAbruptCompletion = !(_step = _state.sent()).done)) return [
6448
7211
  3,
6449
- 33
7212
+ 34
6450
7213
  ];
6451
7214
  _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){
7215
+ event = _value;
7216
+ _ = event.type;
7217
+ switch(_){
6456
7218
  case "response.created":
6457
7219
  return [
6458
7220
  3,
6459
- 8
7221
+ 5
6460
7222
  ];
6461
7223
  case "response.in_progress":
6462
7224
  return [
6463
7225
  3,
6464
- 8
7226
+ 7
6465
7227
  ];
6466
7228
  case "response.completed":
6467
7229
  return [
6468
7230
  3,
6469
7231
  9
6470
7232
  ];
6471
- case "response.error":
7233
+ case "response.failed":
6472
7234
  return [
6473
7235
  3,
6474
- 16
7236
+ 14
6475
7237
  ];
6476
7238
  case "response.output_text.delta":
6477
7239
  return [
6478
7240
  3,
6479
- 18
6480
- ];
6481
- case "response.output_text.done":
6482
- return [
6483
- 3,
6484
- 20
7241
+ 16
6485
7242
  ];
6486
7243
  case "response.output_item.added":
6487
7244
  return [
6488
7245
  3,
6489
- 23
7246
+ 18
6490
7247
  ];
6491
7248
  case "response.output_item.done":
6492
7249
  return [
6493
7250
  3,
6494
- 26
7251
+ 24
6495
7252
  ];
6496
7253
  case "response.function_call_arguments.delta":
6497
- return [
6498
- 3,
6499
- 27
6500
- ];
6501
- case "response.function_call_arguments.done":
6502
7254
  return [
6503
7255
  3,
6504
7256
  30
6505
7257
  ];
6506
7258
  }
6507
- return [
6508
- 3,
6509
- 31
6510
- ];
6511
- case 8:
6512
7259
  return [
6513
7260
  3,
6514
7261
  32
6515
7262
  ];
6516
- case 9:
7263
+ case 5:
7264
+ responseCreatedResponse = event.response;
6517
7265
  return [
6518
7266
  4,
6519
7267
  onEvent2({
6520
- event: "thread.message.completed",
6521
- data: _object_spread_props(_object_spread({}, msg), {
6522
- status: "completed"
7268
+ event: "thread.run.created",
7269
+ data: serializeResponseAsRun({
7270
+ response: event.response,
7271
+ assistantId: openaiAssistant.id
6523
7272
  })
6524
7273
  })
6525
7274
  ];
6526
- case 10:
7275
+ case 6:
6527
7276
  _state.sent();
6528
- if (!sawToolCalls) return [
7277
+ return [
6529
7278
  3,
6530
- 13
7279
+ 33
6531
7280
  ];
7281
+ case 7:
6532
7282
  return [
6533
7283
  4,
6534
- completeToolCallsStep()
7284
+ onEvent2({
7285
+ event: "thread.run.in_progress",
7286
+ data: serializeResponseAsRun({
7287
+ response: event.response,
7288
+ assistantId: openaiAssistant.id
7289
+ })
7290
+ })
6535
7291
  ];
6536
- case 11:
7292
+ case 8:
6537
7293
  _state.sent();
6538
- finalCalls = callOrder.map(function(cid) {
6539
- return callsById.get(cid);
6540
- }).filter(Boolean);
7294
+ return [
7295
+ 3,
7296
+ 33
7297
+ ];
7298
+ case 9:
7299
+ itemIds = event.response.output.filter(function(o) {
7300
+ return o.id;
7301
+ }).map(function(o) {
7302
+ return o.id;
7303
+ });
7304
+ toolCalls2 = event.response.output.filter(function(o) {
7305
+ return o.type === "function_call";
7306
+ });
7307
+ if (!(toolCalls2.length > 0)) return [
7308
+ 3,
7309
+ 11
7310
+ ];
6541
7311
  return [
6542
7312
  4,
6543
7313
  onEvent2({
6544
7314
  event: "thread.run.requires_action",
6545
- data: {
6546
- id: runId,
6547
- object: "thread.run",
6548
- thread_id: threadId,
6549
- assistant_id: asstId,
7315
+ data: _object_spread({}, serializeResponseAsRun({
7316
+ response: event.response,
7317
+ assistantId: openaiAssistant.id
7318
+ }), {
6550
7319
  status: "requires_action",
6551
7320
  required_action: {
6552
7321
  type: "submit_tool_outputs",
6553
7322
  submit_tool_outputs: {
6554
- // IMPORTANT: these must be keyed by stable call_id
6555
- tool_calls: finalCalls
7323
+ tool_calls: serializeToolCalls2({
7324
+ toolCalls: toolCalls2
7325
+ })
6556
7326
  }
6557
7327
  }
6558
- }
7328
+ })
6559
7329
  })
6560
7330
  ];
6561
- case 12:
7331
+ case 10:
6562
7332
  _state.sent();
6563
7333
  return [
6564
7334
  3,
6565
- 15
7335
+ 13
6566
7336
  ];
6567
- case 13:
7337
+ case 11:
6568
7338
  return [
6569
7339
  4,
6570
7340
  onEvent2({
6571
7341
  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
- }
7342
+ data: serializeResponseAsRun({
7343
+ response: event.response,
7344
+ assistantId: openaiAssistant.id
7345
+ })
6580
7346
  })
6581
7347
  ];
6582
- case 14:
7348
+ case 12:
6583
7349
  _state.sent();
6584
- _state.label = 15;
7350
+ _state.label = 13;
7351
+ case 13:
7352
+ return [
7353
+ 3,
7354
+ 33
7355
+ ];
7356
+ case 14:
7357
+ return [
7358
+ 4,
7359
+ onEvent2({
7360
+ event: "thread.run.failed",
7361
+ data: serializeResponseAsRun({
7362
+ response: event.response,
7363
+ assistantId: openaiAssistant.id
7364
+ })
7365
+ })
7366
+ ];
6585
7367
  case 15:
7368
+ _state.sent();
6586
7369
  return [
6587
7370
  3,
6588
- 32
7371
+ 33
6589
7372
  ];
6590
7373
  case 16:
6591
7374
  return [
6592
7375
  4,
6593
7376
  onEvent2({
6594
- event: "thread.run.failed",
7377
+ event: "thread.message.delta",
6595
7378
  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"
7379
+ id: event.item_id,
7380
+ delta: {
7381
+ content: [
7382
+ {
7383
+ type: "text",
7384
+ index: event.output_index - 1,
7385
+ text: {
7386
+ value: event.delta
7387
+ }
7388
+ }
7389
+ ]
6605
7390
  }
6606
7391
  }
6607
7392
  })
@@ -6610,195 +7395,259 @@ var responsesRunAdapter = function() {
6610
7395
  _state.sent();
6611
7396
  return [
6612
7397
  3,
6613
- 32
7398
+ 33
6614
7399
  ];
6615
7400
  case 18:
6616
- delta = typeof (evt === null || evt === void 0 ? void 0 : evt.delta) === "string" ? evt.delta : "";
7401
+ if (!(event.item.type === "message")) return [
7402
+ 3,
7403
+ 21
7404
+ ];
6617
7405
  return [
6618
7406
  4,
6619
- emitTextDelta(delta)
7407
+ onEvent2({
7408
+ event: "thread.run.step.created",
7409
+ data: serializeItemAsRunStep({
7410
+ item: event.item,
7411
+ items: [],
7412
+ threadId: threadId,
7413
+ openaiAssistant: openaiAssistant,
7414
+ runId: responseCreatedResponse.id,
7415
+ status: "in_progress",
7416
+ completedAt: null
7417
+ })
7418
+ })
6620
7419
  ];
6621
7420
  case 19:
6622
7421
  _state.sent();
6623
7422
  return [
6624
- 3,
6625
- 32
7423
+ 4,
7424
+ onEvent2({
7425
+ event: "thread.message.created",
7426
+ data: serializeItemAsMessage({
7427
+ item: event.item,
7428
+ threadId: threadId,
7429
+ openaiAssistant: openaiAssistant,
7430
+ createdAt: (0, import_dayjs13.default)().unix(),
7431
+ runId: responseCreatedResponse.id,
7432
+ status: "in_progress"
7433
+ })
7434
+ })
6626
7435
  ];
6627
7436
  case 20:
6628
- finalText = typeof (evt === null || evt === void 0 ? void 0 : evt.text) === "string" ? evt.text : "";
6629
- if (!finalText) return [
7437
+ _state.sent();
7438
+ return [
7439
+ 3,
7440
+ 23
7441
+ ];
7442
+ case 21:
7443
+ if (!(event.item.type === "function_call")) return [
6630
7444
  3,
6631
- 22
7445
+ 23
6632
7446
  ];
7447
+ toolCalls[event.item.id] = event.item;
6633
7448
  return [
6634
7449
  4,
6635
- emitTextDelta(finalText)
7450
+ onEvent2({
7451
+ event: "thread.run.step.created",
7452
+ data: serializeItemAsRunStep({
7453
+ item: event.item,
7454
+ items: [],
7455
+ threadId: threadId,
7456
+ openaiAssistant: openaiAssistant,
7457
+ runId: responseCreatedResponse.id
7458
+ })
7459
+ })
6636
7460
  ];
6637
- case 21:
6638
- _state.sent();
6639
- _state.label = 22;
6640
7461
  case 22:
6641
- return [
6642
- 3,
6643
- 32
6644
- ];
7462
+ _state.sent();
7463
+ _state.label = 23;
6645
7464
  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 [
7465
+ if (event.item.id) itemIds.push(event.item.id);
7466
+ return [
6648
7467
  3,
6649
- 25
7468
+ 33
6650
7469
  ];
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 [
7470
+ case 24:
7471
+ if (!(event.item.type === "message")) return [
6655
7472
  3,
6656
- 25
7473
+ 27
6657
7474
  ];
6658
- itemToCallId.set(itemId, callId);
6659
- getOrCreateToolCall(callId, name);
6660
7475
  return [
6661
7476
  4,
6662
- ensureToolCallsStep()
7477
+ onEvent2({
7478
+ event: "thread.run.step.completed",
7479
+ data: serializeItemAsRunStep({
7480
+ item: event.item,
7481
+ items: [],
7482
+ threadId: threadId,
7483
+ openaiAssistant: openaiAssistant,
7484
+ runId: responseCreatedResponse.id
7485
+ })
7486
+ })
6663
7487
  ];
6664
- case 24:
6665
- _state.sent();
6666
- sawToolCalls = true;
6667
- _state.label = 25;
6668
7488
  case 25:
7489
+ _state.sent();
6669
7490
  return [
6670
- 3,
6671
- 32
7491
+ 4,
7492
+ onEvent2({
7493
+ event: "thread.message.completed",
7494
+ data: serializeItemAsMessage({
7495
+ item: event.item,
7496
+ threadId: threadId,
7497
+ openaiAssistant: openaiAssistant,
7498
+ createdAt: (0, import_dayjs13.default)().unix(),
7499
+ runId: responseCreatedResponse.id
7500
+ })
7501
+ })
6672
7502
  ];
6673
7503
  case 26:
7504
+ _state.sent();
6674
7505
  return [
6675
7506
  3,
6676
- 32
7507
+ 29
6677
7508
  ];
6678
7509
  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 [
7510
+ if (!(event.item.type === "function_call")) return [
6683
7511
  3,
6684
- 32
7512
+ 29
6685
7513
  ];
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
- }
7514
+ toolCalls[event.item.id] = event.item;
6701
7515
  return [
6702
7516
  4,
6703
- ensureToolCallsStep()
7517
+ onEvent2({
7518
+ event: "thread.run.step.in_progress",
7519
+ data: serializeItemAsRunStep({
7520
+ item: event.item,
7521
+ items: [],
7522
+ threadId: threadId,
7523
+ openaiAssistant: openaiAssistant,
7524
+ runId: responseCreatedResponse.id
7525
+ })
7526
+ })
6704
7527
  ];
6705
7528
  case 28:
6706
7529
  _state.sent();
6707
- sawToolCalls = true;
6708
- return [
6709
- 4,
6710
- emitToolArgsDelta(effectiveCallId, tc.function.name, argsDelta)
6711
- ];
7530
+ _state.label = 29;
6712
7531
  case 29:
6713
- _state.sent();
6714
7532
  return [
6715
7533
  3,
6716
- 32
7534
+ 33
6717
7535
  ];
6718
7536
  case 30:
6719
- {
6720
- return [
6721
- 3,
6722
- 32
6723
- ];
6724
- }
6725
- _state.label = 31;
7537
+ toolCall = toolCalls[event.item_id];
7538
+ if (!toolCall) return [
7539
+ 3,
7540
+ 33
7541
+ ];
7542
+ return [
7543
+ 4,
7544
+ onEvent2({
7545
+ event: "thread.run.step.delta",
7546
+ data: {
7547
+ id: event.item_id,
7548
+ object: "thread.run.step.delta",
7549
+ delta: {
7550
+ step_details: {
7551
+ type: "tool_calls",
7552
+ tool_calls: [
7553
+ {
7554
+ id: toolCall.call_id,
7555
+ type: "function",
7556
+ index: event.output_index,
7557
+ function: {
7558
+ name: toolCall.name,
7559
+ arguments: event.delta,
7560
+ output: null
7561
+ }
7562
+ }
7563
+ ]
7564
+ }
7565
+ }
7566
+ }
7567
+ })
7568
+ ];
6726
7569
  case 31:
7570
+ _state.sent();
6727
7571
  return [
6728
7572
  3,
6729
- 32
7573
+ 33
6730
7574
  ];
6731
7575
  case 32:
6732
- _iteratorAbruptCompletion = false;
6733
7576
  return [
6734
7577
  3,
6735
- 6
7578
+ 33
6736
7579
  ];
6737
7580
  case 33:
7581
+ _iteratorAbruptCompletion = false;
6738
7582
  return [
6739
7583
  3,
6740
- 40
7584
+ 3
6741
7585
  ];
6742
7586
  case 34:
7587
+ return [
7588
+ 3,
7589
+ 41
7590
+ ];
7591
+ case 35:
6743
7592
  err = _state.sent();
6744
7593
  _didIteratorError = true;
6745
7594
  _iteratorError = err;
6746
7595
  return [
6747
7596
  3,
6748
- 40
7597
+ 41
6749
7598
  ];
6750
- case 35:
7599
+ case 36:
6751
7600
  _state.trys.push([
6752
- 35,
7601
+ 36,
6753
7602
  ,
6754
- 38,
6755
- 39
7603
+ 39,
7604
+ 40
6756
7605
  ]);
6757
7606
  if (!(_iteratorAbruptCompletion && _iterator.return != null)) return [
6758
7607
  3,
6759
- 37
7608
+ 38
6760
7609
  ];
6761
7610
  return [
6762
7611
  4,
6763
7612
  _iterator.return()
6764
7613
  ];
6765
- case 36:
6766
- _state.sent();
6767
- _state.label = 37;
6768
7614
  case 37:
7615
+ _state.sent();
7616
+ _state.label = 38;
7617
+ case 38:
6769
7618
  return [
6770
7619
  3,
6771
- 39
7620
+ 40
6772
7621
  ];
6773
- case 38:
7622
+ case 39:
6774
7623
  if (_didIteratorError) {
6775
7624
  throw _iteratorError;
6776
7625
  }
6777
7626
  return [
6778
7627
  7
6779
7628
  ];
6780
- case 39:
7629
+ case 40:
6781
7630
  return [
6782
7631
  7
6783
7632
  ];
6784
- case 40:
7633
+ case 41:
6785
7634
  return [
6786
7635
  3,
6787
- 43
7636
+ 47
6788
7637
  ];
6789
- case 41:
7638
+ case 42:
6790
7639
  e = _state.sent();
6791
7640
  return [
6792
7641
  4,
6793
7642
  onEvent2({
6794
7643
  event: "thread.run.failed",
6795
7644
  data: {
6796
- id: runId,
7645
+ id: (responseCreatedResponse === null || responseCreatedResponse === void 0 ? void 0 : responseCreatedResponse.id) || "run_".concat((0, import_radash22.uid)(18)),
6797
7646
  object: "thread.run",
6798
7647
  thread_id: threadId,
6799
- assistant_id: asstId,
7648
+ assistant_id: openaiAssistant.id,
6800
7649
  status: "failed",
6801
- failed_at: (0, import_dayjs17.default)().unix(),
7650
+ failed_at: (0, import_dayjs13.default)().unix(),
6802
7651
  last_error: {
6803
7652
  code: "server_error",
6804
7653
  message: String((e === null || e === void 0 ? void 0 : e.message) || e || "Unknown error")
@@ -6806,13 +7655,34 @@ var responsesRunAdapter = function() {
6806
7655
  }
6807
7656
  })
6808
7657
  ];
6809
- case 42:
7658
+ case 43:
6810
7659
  _state.sent();
6811
7660
  return [
6812
7661
  3,
6813
- 43
7662
+ 47
6814
7663
  ];
6815
- case 43:
7664
+ case 44:
7665
+ if (!((responseCreatedResponse === null || responseCreatedResponse === void 0 ? void 0 : responseCreatedResponse.id) && itemIds.length > 0)) return [
7666
+ 3,
7667
+ 46
7668
+ ];
7669
+ return [
7670
+ 4,
7671
+ saveResponseItemsToConversationMetadata({
7672
+ openai: openai,
7673
+ threadId: threadId,
7674
+ responseId: responseCreatedResponse.id,
7675
+ itemIds: itemIds
7676
+ })
7677
+ ];
7678
+ case 45:
7679
+ _state.sent();
7680
+ _state.label = 46;
7681
+ case 46:
7682
+ return [
7683
+ 7
7684
+ ];
7685
+ case 47:
6816
7686
  return [
6817
7687
  2
6818
7688
  ];