supercompat 3.1.0-beta.5 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -198,6 +198,10 @@ function _sliced_to_array(arr, i) {
198
198
  function _to_consumable_array(arr) {
199
199
  return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
200
200
  }
201
+ function _type_of(obj) {
202
+ "@swc/helpers - typeof";
203
+ return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
204
+ }
201
205
  function _unsupported_iterable_to_array(o, minLen) {
202
206
  if (!o) return;
203
207
  if (typeof o === "string") return _array_like_to_array(o, minLen);
@@ -322,10 +326,16 @@ var storageRequestHandlers = function(param) {
322
326
  var storage = param.storage, runAdapter = param.runAdapter, client = param.client;
323
327
  if (!storage) return {};
324
328
  if (!runAdapter) return {};
329
+ var wrappedClient = supercompat({
330
+ client: client
331
+ });
325
332
  var result = storage({
326
- runAdapter: partob(runAdapter, {
327
- client: client
328
- })
333
+ runAdapter: _object_spread_props(_object_spread({}, runAdapter), {
334
+ handleRun: partob(runAdapter.handleRun, {
335
+ client: wrappedClient
336
+ })
337
+ }),
338
+ client: wrappedClient
329
339
  });
330
340
  return result.requestHandlers;
331
341
  };
@@ -349,21 +359,53 @@ var findRequestHandler = function(param) {
349
359
  }
350
360
  };
351
361
  // src/supercompatFetch/originalFetch.ts
352
- var originalFetch = function(param) {
353
- var args = param.args, client = param.client;
354
- var _client_client;
355
- if ((_client_client = client.client) === null || _client_client === void 0 ? void 0 : _client_client.fetch) {
356
- var _args = _sliced_to_array(args, 2), url = _args[0], options = _args[1];
357
- var headers = _object_spread_props(_object_spread({}, options.headers), {
358
- authorization: client.client.defaultHeaders().Authorization
362
+ var originalFetch = /*#__PURE__*/ function() {
363
+ var _ref = _async_to_generator(function(param) {
364
+ var args, client, _client_client, _args, url, options, clientHeaders, newOptions;
365
+ return _ts_generator(this, function(_state) {
366
+ switch(_state.label){
367
+ case 0:
368
+ args = param.args, client = param.client;
369
+ if (!((_client_client = client.client) === null || _client_client === void 0 ? void 0 : _client_client.fetch)) return [
370
+ 3,
371
+ 2
372
+ ];
373
+ _args = _sliced_to_array(args, 2), url = _args[0], options = _args[1];
374
+ return [
375
+ 4,
376
+ client.client.buildHeaders({
377
+ options: {},
378
+ method: args[1].method.toLowerCase(),
379
+ bodyHeaders: args[1].headers,
380
+ retryCount: 0
381
+ })
382
+ ];
383
+ case 1:
384
+ clientHeaders = _state.sent();
385
+ clientHeaders.set("Authorization", "Bearer ".concat(client.client.apiKey));
386
+ newOptions = _object_spread_props(_object_spread({}, options), {
387
+ headers: clientHeaders
388
+ });
389
+ return [
390
+ 2,
391
+ client.client.fetch(url, newOptions)
392
+ ];
393
+ case 2:
394
+ return [
395
+ 2,
396
+ fetch.apply(void 0, _to_consumable_array(args))
397
+ ];
398
+ case 3:
399
+ return [
400
+ 2
401
+ ];
402
+ }
359
403
  });
360
- return client.client.fetch(url, _object_spread_props(_object_spread({}, options), {
361
- headers: headers
362
- }));
363
- } else {
364
- return fetch.apply(void 0, _to_consumable_array(args));
365
- }
366
- };
404
+ });
405
+ return function originalFetch(_) {
406
+ return _ref.apply(this, arguments);
407
+ };
408
+ }();
367
409
  // src/supercompatFetch/index.ts
368
410
  var supercompatFetch = function(param) {
369
411
  var client = param.client, storage = param.storage, runAdapter = param.runAdapter;
@@ -3175,11 +3217,11 @@ var serializeMessage3 = function(param) {
3175
3217
  message: message
3176
3218
  })
3177
3219
  ];
3178
- var run4 = message.run;
3179
- if (!run4) return result;
3220
+ var run3 = message.run;
3221
+ if (!run3) return result;
3180
3222
  var messageToolCalls = ((_message_metadata = message.metadata) === null || _message_metadata === void 0 ? void 0 : _message_metadata.toolCalls) || [];
3181
3223
  messageToolCalls.forEach(function(tc) {
3182
- var runStep = run4.runSteps.find(function(rs) {
3224
+ var runStep = run3.runSteps.find(function(rs) {
3183
3225
  if (rs.type !== "tool_calls") return false;
3184
3226
  return rs.step_details.tool_calls.some(function(rsTc) {
3185
3227
  if (rsTc.type !== "function") return false;
@@ -3200,15 +3242,15 @@ var serializeMessage3 = function(param) {
3200
3242
  // src/adapters/run/completionsRunAdapter/messages/index.ts
3201
3243
  var messages = /*#__PURE__*/ function() {
3202
3244
  var _ref = _async_to_generator(function(param) {
3203
- var run4, getMessages2, _, _1;
3245
+ var run3, getMessages2, _, _1;
3204
3246
  return _ts_generator(this, function(_state) {
3205
3247
  switch(_state.label){
3206
3248
  case 0:
3207
- run4 = param.run, getMessages2 = param.getMessages;
3208
- _1 = (_ = _to_consumable_array(run4.instructions ? [
3249
+ run3 = param.run, getMessages2 = param.getMessages;
3250
+ _1 = (_ = _to_consumable_array(run3.instructions ? [
3209
3251
  {
3210
3252
  role: "system",
3211
- content: run4.instructions
3253
+ content: run3.instructions
3212
3254
  }
3213
3255
  ] : [])).concat;
3214
3256
  return [
@@ -3306,190 +3348,117 @@ var toolCallsData = function(param) {
3306
3348
  return newToolCalls;
3307
3349
  };
3308
3350
  var completionsRunAdapter = function() {
3309
- return /*#__PURE__*/ function() {
3310
- var _ref = _async_to_generator(function(param) {
3311
- 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;
3312
- return _ts_generator(this, function(_state) {
3313
- switch(_state.label){
3314
- case 0:
3315
- clientAdapter = param.client, run4 = param.run, onEvent2 = param.onEvent, getMessages2 = param.getMessages;
3316
- if (run4.status !== "queued") return [
3317
- 2
3318
- ];
3319
- client = supercompat({
3320
- client: clientAdapter
3321
- });
3322
- onEvent2({
3323
- event: "thread.run.in_progress",
3324
- data: _object_spread_props(_object_spread({}, run4), {
3325
- status: "in_progress"
3326
- })
3327
- });
3328
- _tmp = {};
3329
- return [
3330
- 4,
3331
- messages({
3332
- run: run4,
3333
- getMessages: getMessages2
3334
- })
3335
- ];
3336
- case 1:
3337
- opts = _object_spread.apply(void 0, [
3338
- (_tmp.messages = _state.sent(), _tmp.model = run4.model, _tmp.stream = true, _tmp.response_format = run4.response_format, _tmp),
3339
- isEmpty2(run4.tools) ? {} : {
3340
- tools: run4.tools
3341
- }
3342
- ]);
3343
- _state.label = 2;
3344
- case 2:
3345
- _state.trys.push([
3346
- 2,
3347
- 4,
3348
- ,
3349
- 5
3350
- ]);
3351
- return [
3352
- 4,
3353
- client.chat.completions.create(opts)
3354
- ];
3355
- case 3:
3356
- providerResponse = _state.sent();
3357
- return [
3358
- 3,
3359
- 5
3360
- ];
3361
- case 4:
3362
- e = _state.sent();
3363
- console.error(e);
3364
- return [
3365
- 2,
3366
- onEvent2({
3367
- event: "thread.run.failed",
3368
- data: _object_spread_props(_object_spread({}, run4), {
3369
- failed_at: dayjs().unix(),
3370
- status: "in_progress",
3371
- last_error: {
3372
- code: "server_error",
3373
- message: "".concat((_e_message = e === null || e === void 0 ? void 0 : e.message) !== null && _e_message !== void 0 ? _e_message : "", " ").concat((_e_cause_message = e === null || e === void 0 ? void 0 : (_e_cause = e.cause) === null || _e_cause === void 0 ? void 0 : _e_cause.message) !== null && _e_cause_message !== void 0 ? _e_cause_message : "")
3374
- }
3375
- })
3376
- })
3377
- ];
3378
- case 5:
3379
- return [
3380
- 4,
3351
+ return {
3352
+ handleRun: /*#__PURE__*/ function() {
3353
+ var _ref = _async_to_generator(function(param) {
3354
+ var client, run3, onEvent2, getMessages2, opts, _tmp, providerResponse, e, _e_cause, _e_message, _e_cause_message, message, toolCallsRunStep, currentContent, currentToolCalls, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, chunk, _chunk_choices, choices, choice, delta, _delta_content, err;
3355
+ return _ts_generator(this, function(_state) {
3356
+ switch(_state.label){
3357
+ case 0:
3358
+ client = param.client, run3 = param.run, onEvent2 = param.onEvent, getMessages2 = param.getMessages;
3359
+ if (run3.status !== "queued") return [
3360
+ 2
3361
+ ];
3381
3362
  onEvent2({
3382
- event: "thread.message.created",
3383
- data: {
3384
- id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
3385
- object: "thread.message",
3386
- completed_at: null,
3387
- run_id: run4.id,
3388
- created_at: dayjs().unix(),
3389
- assistant_id: run4.assistant_id,
3390
- incomplete_at: null,
3391
- incomplete_details: null,
3392
- metadata: {},
3393
- attachments: [],
3394
- thread_id: run4.thread_id,
3395
- content: [
3396
- {
3397
- text: {
3398
- value: "",
3399
- annotations: []
3400
- },
3401
- type: "text"
3402
- }
3403
- ],
3404
- role: "assistant",
3363
+ event: "thread.run.in_progress",
3364
+ data: _object_spread_props(_object_spread({}, run3), {
3405
3365
  status: "in_progress"
3366
+ })
3367
+ });
3368
+ _tmp = {};
3369
+ return [
3370
+ 4,
3371
+ messages({
3372
+ run: run3,
3373
+ getMessages: getMessages2
3374
+ })
3375
+ ];
3376
+ case 1:
3377
+ opts = _object_spread.apply(void 0, [
3378
+ (_tmp.messages = _state.sent(), _tmp.model = run3.model, _tmp.stream = true, _tmp.response_format = run3.response_format, _tmp),
3379
+ isEmpty2(run3.tools) ? {} : {
3380
+ tools: run3.tools
3406
3381
  }
3407
- })
3408
- ];
3409
- case 6:
3410
- message = _state.sent();
3411
- onEvent2({
3412
- event: "thread.run.step.created",
3413
- data: {
3414
- id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
3415
- object: "thread.run.step",
3416
- run_id: run4.id,
3417
- assistant_id: run4.assistant_id,
3418
- thread_id: run4.thread_id,
3419
- type: "message_creation",
3420
- status: "completed",
3421
- completed_at: dayjs().unix(),
3422
- created_at: dayjs().unix(),
3423
- expired_at: null,
3424
- last_error: null,
3425
- metadata: {},
3426
- failed_at: null,
3427
- cancelled_at: null,
3428
- usage: null,
3429
- step_details: {
3430
- type: "message_creation",
3431
- message_creation: {
3432
- message_id: message.id
3382
+ ]);
3383
+ _state.label = 2;
3384
+ case 2:
3385
+ _state.trys.push([
3386
+ 2,
3387
+ 4,
3388
+ ,
3389
+ 5
3390
+ ]);
3391
+ return [
3392
+ 4,
3393
+ client.chat.completions.create(opts)
3394
+ ];
3395
+ case 3:
3396
+ providerResponse = _state.sent();
3397
+ return [
3398
+ 3,
3399
+ 5
3400
+ ];
3401
+ case 4:
3402
+ e = _state.sent();
3403
+ console.error(e);
3404
+ return [
3405
+ 2,
3406
+ onEvent2({
3407
+ event: "thread.run.failed",
3408
+ data: _object_spread_props(_object_spread({}, run3), {
3409
+ failed_at: dayjs().unix(),
3410
+ status: "in_progress",
3411
+ last_error: {
3412
+ code: "server_error",
3413
+ message: "".concat((_e_message = e === null || e === void 0 ? void 0 : e.message) !== null && _e_message !== void 0 ? _e_message : "", " ").concat((_e_cause_message = e === null || e === void 0 ? void 0 : (_e_cause = e.cause) === null || _e_cause === void 0 ? void 0 : _e_cause.message) !== null && _e_cause_message !== void 0 ? _e_cause_message : "")
3414
+ }
3415
+ })
3416
+ })
3417
+ ];
3418
+ case 5:
3419
+ return [
3420
+ 4,
3421
+ onEvent2({
3422
+ event: "thread.message.created",
3423
+ data: {
3424
+ id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
3425
+ object: "thread.message",
3426
+ completed_at: null,
3427
+ run_id: run3.id,
3428
+ created_at: dayjs().unix(),
3429
+ assistant_id: run3.assistant_id,
3430
+ incomplete_at: null,
3431
+ incomplete_details: null,
3432
+ metadata: {},
3433
+ attachments: [],
3434
+ thread_id: run3.thread_id,
3435
+ content: [
3436
+ {
3437
+ text: {
3438
+ value: "",
3439
+ annotations: []
3440
+ },
3441
+ type: "text"
3442
+ }
3443
+ ],
3444
+ role: "assistant",
3445
+ status: "in_progress"
3433
3446
  }
3434
- }
3435
- }
3436
- });
3437
- currentContent = "";
3438
- _iteratorAbruptCompletion = false, _didIteratorError = false;
3439
- _state.label = 7;
3440
- case 7:
3441
- _state.trys.push([
3442
- 7,
3443
- 15,
3444
- 16,
3445
- 21
3446
- ]);
3447
- _iterator = _async_iterator(providerResponse);
3448
- _state.label = 8;
3449
- case 8:
3450
- return [
3451
- 4,
3452
- _iterator.next()
3453
- ];
3454
- case 9:
3455
- if (!(_iteratorAbruptCompletion = !(_step = _state.sent()).done)) return [
3456
- 3,
3457
- 14
3458
- ];
3459
- _value = _step.value;
3460
- chunk = _value;
3461
- choices = (_chunk_choices = chunk.choices) !== null && _chunk_choices !== void 0 ? _chunk_choices : [];
3462
- choice = choices[0];
3463
- if (!choice) return [
3464
- 3,
3465
- 13
3466
- ];
3467
- delta = choice.delta;
3468
- if (delta.content) {
3469
- ;
3470
- currentContent = "".concat(currentContent).concat((_delta_content = delta.content) !== null && _delta_content !== void 0 ? _delta_content : "");
3471
- }
3472
- if (!delta.tool_calls) return [
3473
- 3,
3474
- 12
3475
- ];
3476
- if (!!toolCallsRunStep) return [
3477
- 3,
3478
- 11
3479
- ];
3480
- return [
3481
- 4,
3447
+ })
3448
+ ];
3449
+ case 6:
3450
+ message = _state.sent();
3482
3451
  onEvent2({
3483
3452
  event: "thread.run.step.created",
3484
3453
  data: {
3485
3454
  id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
3486
3455
  object: "thread.run.step",
3487
- run_id: run4.id,
3488
- assistant_id: run4.assistant_id,
3489
- thread_id: run4.thread_id,
3490
- type: "tool_calls",
3491
- status: "in_progress",
3492
- completed_at: null,
3456
+ run_id: run3.id,
3457
+ assistant_id: run3.assistant_id,
3458
+ thread_id: run3.thread_id,
3459
+ type: "message_creation",
3460
+ status: "completed",
3461
+ completed_at: dayjs().unix(),
3493
3462
  created_at: dayjs().unix(),
3494
3463
  expired_at: null,
3495
3464
  last_error: null,
@@ -3498,170 +3467,242 @@ var completionsRunAdapter = function() {
3498
3467
  cancelled_at: null,
3499
3468
  usage: null,
3500
3469
  step_details: {
3501
- type: "tool_calls",
3502
- tool_calls: []
3470
+ type: "message_creation",
3471
+ message_creation: {
3472
+ message_id: message.id
3473
+ }
3503
3474
  }
3504
3475
  }
3505
- })
3506
- ];
3507
- case 10:
3508
- toolCallsRunStep = _state.sent();
3509
- _state.label = 11;
3510
- case 11:
3511
- onEvent2({
3512
- event: "thread.run.step.delta",
3513
- data: {
3514
- object: "thread.run.step.delta",
3515
- run_id: run4.id,
3516
- id: toolCallsRunStep.id,
3517
- delta: {
3518
- step_details: {
3476
+ });
3477
+ currentContent = "";
3478
+ _iteratorAbruptCompletion = false, _didIteratorError = false;
3479
+ _state.label = 7;
3480
+ case 7:
3481
+ _state.trys.push([
3482
+ 7,
3483
+ 15,
3484
+ 16,
3485
+ 21
3486
+ ]);
3487
+ _iterator = _async_iterator(providerResponse);
3488
+ _state.label = 8;
3489
+ case 8:
3490
+ return [
3491
+ 4,
3492
+ _iterator.next()
3493
+ ];
3494
+ case 9:
3495
+ if (!(_iteratorAbruptCompletion = !(_step = _state.sent()).done)) return [
3496
+ 3,
3497
+ 14
3498
+ ];
3499
+ _value = _step.value;
3500
+ chunk = _value;
3501
+ choices = (_chunk_choices = chunk.choices) !== null && _chunk_choices !== void 0 ? _chunk_choices : [];
3502
+ choice = choices[0];
3503
+ if (!choice) return [
3504
+ 3,
3505
+ 13
3506
+ ];
3507
+ delta = choice.delta;
3508
+ if (delta.content) {
3509
+ ;
3510
+ currentContent = "".concat(currentContent).concat((_delta_content = delta.content) !== null && _delta_content !== void 0 ? _delta_content : "");
3511
+ }
3512
+ if (!delta.tool_calls) return [
3513
+ 3,
3514
+ 12
3515
+ ];
3516
+ if (!!toolCallsRunStep) return [
3517
+ 3,
3518
+ 11
3519
+ ];
3520
+ return [
3521
+ 4,
3522
+ onEvent2({
3523
+ event: "thread.run.step.created",
3524
+ data: {
3525
+ id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
3526
+ object: "thread.run.step",
3527
+ run_id: run3.id,
3528
+ assistant_id: run3.assistant_id,
3529
+ thread_id: run3.thread_id,
3519
3530
  type: "tool_calls",
3520
- tool_calls: delta.tool_calls.map(function(tc) {
3521
- return _object_spread({
3522
- id: uid2(24),
3523
- type: "function"
3524
- }, tc);
3525
- })
3531
+ status: "in_progress",
3532
+ completed_at: null,
3533
+ created_at: dayjs().unix(),
3534
+ expired_at: null,
3535
+ last_error: null,
3536
+ metadata: {},
3537
+ failed_at: null,
3538
+ cancelled_at: null,
3539
+ usage: null,
3540
+ step_details: {
3541
+ type: "tool_calls",
3542
+ tool_calls: []
3543
+ }
3526
3544
  }
3527
- }
3528
- }
3529
- });
3530
- currentToolCalls = toolCallsData({
3531
- prevToolCalls: currentToolCalls,
3532
- delta: delta
3533
- });
3534
- _state.label = 12;
3535
- case 12:
3536
- if (delta.content) {
3545
+ })
3546
+ ];
3547
+ case 10:
3548
+ toolCallsRunStep = _state.sent();
3549
+ _state.label = 11;
3550
+ case 11:
3537
3551
  onEvent2({
3538
- event: "thread.message.delta",
3552
+ event: "thread.run.step.delta",
3539
3553
  data: {
3540
- id: message.id,
3554
+ object: "thread.run.step.delta",
3555
+ run_id: run3.id,
3556
+ id: toolCallsRunStep.id,
3541
3557
  delta: {
3542
- content: [
3543
- {
3544
- type: "text",
3545
- index: 0,
3546
- text: {
3547
- value: delta.content
3548
- }
3549
- }
3550
- ]
3558
+ step_details: {
3559
+ type: "tool_calls",
3560
+ tool_calls: delta.tool_calls.map(function(tc) {
3561
+ return _object_spread({
3562
+ id: uid2(24),
3563
+ type: "function"
3564
+ }, tc);
3565
+ })
3566
+ }
3551
3567
  }
3552
3568
  }
3553
3569
  });
3554
- }
3555
- _state.label = 13;
3556
- case 13:
3557
- _iteratorAbruptCompletion = false;
3558
- return [
3559
- 3,
3560
- 8
3561
- ];
3562
- case 14:
3563
- return [
3564
- 3,
3565
- 21
3566
- ];
3567
- case 15:
3568
- err = _state.sent();
3569
- _didIteratorError = true;
3570
- _iteratorError = err;
3571
- return [
3572
- 3,
3573
- 21
3574
- ];
3575
- case 16:
3576
- _state.trys.push([
3577
- 16,
3578
- ,
3579
- 19,
3580
- 20
3581
- ]);
3582
- if (!(_iteratorAbruptCompletion && _iterator.return != null)) return [
3583
- 3,
3584
- 18
3585
- ];
3586
- return [
3587
- 4,
3588
- _iterator.return()
3589
- ];
3590
- case 17:
3591
- _state.sent();
3592
- _state.label = 18;
3593
- case 18:
3594
- return [
3595
- 3,
3596
- 20
3597
- ];
3598
- case 19:
3599
- if (_didIteratorError) {
3600
- throw _iteratorError;
3601
- }
3602
- return [
3603
- 7
3604
- ];
3605
- case 20:
3606
- return [
3607
- 7
3608
- ];
3609
- case 21:
3610
- return [
3611
- 4,
3612
- onEvent2({
3613
- event: "thread.message.completed",
3614
- data: _object_spread_props(_object_spread({}, message), {
3615
- status: "completed",
3616
- content: [
3617
- {
3618
- text: {
3619
- value: currentContent,
3620
- annotations: []
3621
- },
3622
- type: "text"
3623
- }
3624
- ],
3625
- tool_calls: currentToolCalls
3626
- })
3627
- })
3628
- ];
3629
- case 22:
3630
- message = _state.sent();
3631
- if (isEmpty2(message.toolCalls)) {
3632
- return [
3633
- 2,
3570
+ currentToolCalls = toolCallsData({
3571
+ prevToolCalls: currentToolCalls,
3572
+ delta: delta
3573
+ });
3574
+ _state.label = 12;
3575
+ case 12:
3576
+ if (delta.content) {
3634
3577
  onEvent2({
3635
- event: "thread.run.completed",
3636
- data: _object_spread_props(_object_spread({}, run4), {
3637
- status: "completed",
3638
- completed_at: dayjs().unix()
3578
+ event: "thread.message.delta",
3579
+ data: {
3580
+ id: message.id,
3581
+ delta: {
3582
+ content: [
3583
+ {
3584
+ type: "text",
3585
+ index: 0,
3586
+ text: {
3587
+ value: delta.content
3588
+ }
3589
+ }
3590
+ ]
3591
+ }
3592
+ }
3593
+ });
3594
+ }
3595
+ _state.label = 13;
3596
+ case 13:
3597
+ _iteratorAbruptCompletion = false;
3598
+ return [
3599
+ 3,
3600
+ 8
3601
+ ];
3602
+ case 14:
3603
+ return [
3604
+ 3,
3605
+ 21
3606
+ ];
3607
+ case 15:
3608
+ err = _state.sent();
3609
+ _didIteratorError = true;
3610
+ _iteratorError = err;
3611
+ return [
3612
+ 3,
3613
+ 21
3614
+ ];
3615
+ case 16:
3616
+ _state.trys.push([
3617
+ 16,
3618
+ ,
3619
+ 19,
3620
+ 20
3621
+ ]);
3622
+ if (!(_iteratorAbruptCompletion && _iterator.return != null)) return [
3623
+ 3,
3624
+ 18
3625
+ ];
3626
+ return [
3627
+ 4,
3628
+ _iterator.return()
3629
+ ];
3630
+ case 17:
3631
+ _state.sent();
3632
+ _state.label = 18;
3633
+ case 18:
3634
+ return [
3635
+ 3,
3636
+ 20
3637
+ ];
3638
+ case 19:
3639
+ if (_didIteratorError) {
3640
+ throw _iteratorError;
3641
+ }
3642
+ return [
3643
+ 7
3644
+ ];
3645
+ case 20:
3646
+ return [
3647
+ 7
3648
+ ];
3649
+ case 21:
3650
+ return [
3651
+ 4,
3652
+ onEvent2({
3653
+ event: "thread.message.completed",
3654
+ data: _object_spread_props(_object_spread({}, message), {
3655
+ status: "completed",
3656
+ content: [
3657
+ {
3658
+ text: {
3659
+ value: currentContent,
3660
+ annotations: []
3661
+ },
3662
+ type: "text"
3663
+ }
3664
+ ],
3665
+ tool_calls: currentToolCalls
3639
3666
  })
3640
3667
  })
3641
3668
  ];
3642
- }
3643
- return [
3644
- 2,
3645
- onEvent2({
3646
- event: "thread.run.requires_action",
3647
- data: _object_spread_props(_object_spread({}, run4), {
3648
- status: "requires_action",
3649
- required_action: {
3650
- type: "submit_tool_outputs",
3651
- submit_tool_outputs: {
3652
- tool_calls: message.toolCalls
3669
+ case 22:
3670
+ message = _state.sent();
3671
+ if (isEmpty2(message.toolCalls)) {
3672
+ return [
3673
+ 2,
3674
+ onEvent2({
3675
+ event: "thread.run.completed",
3676
+ data: _object_spread_props(_object_spread({}, run3), {
3677
+ status: "completed",
3678
+ completed_at: dayjs().unix()
3679
+ })
3680
+ })
3681
+ ];
3682
+ }
3683
+ return [
3684
+ 2,
3685
+ onEvent2({
3686
+ event: "thread.run.requires_action",
3687
+ data: _object_spread_props(_object_spread({}, run3), {
3688
+ status: "requires_action",
3689
+ required_action: {
3690
+ type: "submit_tool_outputs",
3691
+ submit_tool_outputs: {
3692
+ tool_calls: message.toolCalls
3693
+ }
3653
3694
  }
3654
- }
3695
+ })
3655
3696
  })
3656
- })
3657
- ];
3658
- }
3697
+ ];
3698
+ }
3699
+ });
3659
3700
  });
3660
- });
3661
- return function(_) {
3662
- return _ref.apply(this, arguments);
3663
- };
3664
- }();
3701
+ return function(_) {
3702
+ return _ref.apply(this, arguments);
3703
+ };
3704
+ }()
3705
+ };
3665
3706
  };
3666
3707
  // src/lib/messages/messagesRegexp.ts
3667
3708
  var messagesRegexp = "^/(?:v1|/?openai)/threads/([^/]+)/messages$";
@@ -3945,26 +3986,26 @@ import { assign as assign4 } from "radash";
3945
3986
  // src/adapters/storage/prismaStorageAdapter/threads/runs/serializeRun.ts
3946
3987
  import dayjs5 from "dayjs";
3947
3988
  var serializeRun = function(param) {
3948
- var run4 = param.run;
3989
+ var run3 = param.run;
3949
3990
  return {
3950
- id: run4.id,
3991
+ id: run3.id,
3951
3992
  object: "thread.run",
3952
- created_at: dayjs5(run4.createdAt).unix(),
3953
- thread_id: run4.threadId,
3954
- assistant_id: run4.assistantId,
3955
- status: run4.status.toLowerCase(),
3956
- required_action: run4.requiredAction,
3957
- last_error: run4.lastError,
3958
- expires_at: dayjs5(run4.expiresAt).unix(),
3959
- started_at: run4.startedAt ? dayjs5(run4.startedAt).unix() : null,
3960
- cancelled_at: run4.cancelledAt ? dayjs5(run4.cancelledAt).unix() : null,
3961
- failed_at: run4.failedAt ? dayjs5(run4.failedAt).unix() : null,
3962
- completed_at: run4.completedAt ? dayjs5(run4.completedAt).unix() : null,
3963
- model: run4.model,
3964
- instructions: run4.instructions,
3965
- tools: run4.tools,
3966
- metadata: run4.metadata,
3967
- usage: run4.usage,
3993
+ created_at: dayjs5(run3.createdAt).unix(),
3994
+ thread_id: run3.threadId,
3995
+ assistant_id: run3.assistantId,
3996
+ status: run3.status.toLowerCase(),
3997
+ required_action: run3.requiredAction,
3998
+ last_error: run3.lastError,
3999
+ expires_at: dayjs5(run3.expiresAt).unix(),
4000
+ started_at: run3.startedAt ? dayjs5(run3.startedAt).unix() : null,
4001
+ cancelled_at: run3.cancelledAt ? dayjs5(run3.cancelledAt).unix() : null,
4002
+ failed_at: run3.failedAt ? dayjs5(run3.failedAt).unix() : null,
4003
+ completed_at: run3.completedAt ? dayjs5(run3.completedAt).unix() : null,
4004
+ model: run3.model,
4005
+ instructions: run3.instructions,
4006
+ tools: run3.tools,
4007
+ metadata: run3.metadata,
4008
+ usage: run3.usage,
3968
4009
  truncation_strategy: {
3969
4010
  type: "auto"
3970
4011
  },
@@ -4018,9 +4059,9 @@ var get11 = function(param) {
4018
4059
  return [
4019
4060
  2,
4020
4061
  new Response(JSON.stringify({
4021
- data: runs3.map(function(run4) {
4062
+ data: runs3.map(function(run3) {
4022
4063
  return serializeRun({
4023
- run: run4
4064
+ run: run3
4024
4065
  });
4025
4066
  }),
4026
4067
  has_more: runsPlusOne.length > pageSize,
@@ -4333,33 +4374,33 @@ var onEvent = function(param) {
4333
4374
  };
4334
4375
  // src/adapters/storage/prismaStorageAdapter/threads/runs/getMessages.ts
4335
4376
  var getTake = function(param) {
4336
- var run4 = param.run;
4337
- if (run4.truncationStrategy.type === "auto") {
4377
+ var run3 = param.run;
4378
+ if (run3.truncationStrategy.type === "auto") {
4338
4379
  return null;
4339
4380
  }
4340
- if (run4.truncationStrategy.type === "last_messages") {
4341
- if (!run4.truncationStrategy.last_messages) {
4381
+ if (run3.truncationStrategy.type === "last_messages") {
4382
+ if (!run3.truncationStrategy.last_messages) {
4342
4383
  throw new Error("Truncation strategy last_messages is required");
4343
4384
  }
4344
- return -run4.truncationStrategy.last_messages;
4385
+ return -run3.truncationStrategy.last_messages;
4345
4386
  }
4346
- throw new Error("Unsupported truncation strategy type: ".concat(run4.truncationStrategy.type));
4387
+ throw new Error("Unsupported truncation strategy type: ".concat(run3.truncationStrategy.type));
4347
4388
  };
4348
4389
  var getMessages = function(param) {
4349
- var prisma = param.prisma, run4 = param.run;
4390
+ var prisma = param.prisma, run3 = param.run;
4350
4391
  return /*#__PURE__*/ _async_to_generator(function() {
4351
4392
  var take, messages4;
4352
4393
  return _ts_generator(this, function(_state) {
4353
4394
  switch(_state.label){
4354
4395
  case 0:
4355
4396
  take = getTake({
4356
- run: run4
4397
+ run: run3
4357
4398
  });
4358
4399
  return [
4359
4400
  4,
4360
4401
  prisma.message.findMany(_object_spread({
4361
4402
  where: {
4362
- threadId: run4.threadId
4403
+ threadId: run3.threadId
4363
4404
  },
4364
4405
  include: {
4365
4406
  run: {
@@ -4405,7 +4446,7 @@ var post12 = function(param) {
4405
4446
  return /*#__PURE__*/ function() {
4406
4447
  var _ref = _async_to_generator(function(urlString, options) {
4407
4448
  var url, _url_pathname_match, threadId, body, assistant_id, stream, assistant, _assign5, model, instructions, // additional_instructions,
4408
- tools, metadata, response_format, truncation_strategy, run4, data, readableStream;
4449
+ tools, metadata, response_format, truncation_strategy, run3, data, readableStream;
4409
4450
  return _ts_generator(this, function(_state) {
4410
4451
  switch(_state.label){
4411
4452
  case 0:
@@ -4463,9 +4504,9 @@ var post12 = function(param) {
4463
4504
  })
4464
4505
  ];
4465
4506
  case 2:
4466
- run4 = _state.sent();
4507
+ run3 = _state.sent();
4467
4508
  data = serializeRun({
4468
- run: run4
4509
+ run: run3
4469
4510
  });
4470
4511
  readableStream = new ReadableStream({
4471
4512
  start: function start(controller) {
@@ -4482,7 +4523,7 @@ var post12 = function(param) {
4482
4523
  ]);
4483
4524
  return [
4484
4525
  4,
4485
- runAdapter({
4526
+ runAdapter.handleRun({
4486
4527
  run: data,
4487
4528
  onEvent: onEvent({
4488
4529
  controller: _object_spread_props(_object_spread({}, controller), {
@@ -4494,7 +4535,7 @@ var post12 = function(param) {
4494
4535
  }),
4495
4536
  getMessages: getMessages({
4496
4537
  prisma: prisma,
4497
- run: run4
4538
+ run: run3
4498
4539
  })
4499
4540
  })
4500
4541
  ];
@@ -4517,7 +4558,7 @@ var post12 = function(param) {
4517
4558
  })({
4518
4559
  event: "thread.run.failed",
4519
4560
  data: {
4520
- id: run4.id,
4561
+ id: run3.id,
4521
4562
  failed_at: dayjs7().unix(),
4522
4563
  last_error: {
4523
4564
  code: "server_error",
@@ -4588,7 +4629,7 @@ var get12 = function(param) {
4588
4629
  var prisma = param.prisma;
4589
4630
  return /*#__PURE__*/ function() {
4590
4631
  var _ref = _async_to_generator(function(urlString) {
4591
- var url, _url_pathname_match, threadId, runId, run4;
4632
+ var url, _url_pathname_match, threadId, runId, run3;
4592
4633
  return _ts_generator(this, function(_state) {
4593
4634
  switch(_state.label){
4594
4635
  case 0:
@@ -4604,11 +4645,11 @@ var get12 = function(param) {
4604
4645
  })
4605
4646
  ];
4606
4647
  case 1:
4607
- run4 = _state.sent();
4648
+ run3 = _state.sent();
4608
4649
  return [
4609
4650
  2,
4610
4651
  new Response(JSON.stringify(serializeRun({
4611
- run: run4
4652
+ run: run3
4612
4653
  })), {
4613
4654
  status: 200,
4614
4655
  headers: {
@@ -4626,7 +4667,7 @@ var get12 = function(param) {
4626
4667
  }();
4627
4668
  };
4628
4669
  // src/adapters/storage/prismaStorageAdapter/threads/run/index.ts
4629
- var run2 = function(param) {
4670
+ var run = function(param) {
4630
4671
  var prisma = param.prisma, runAdapter = param.runAdapter;
4631
4672
  return {
4632
4673
  get: get12({
@@ -4879,7 +4920,7 @@ var post13 = function(param) {
4879
4920
  var prisma = param.prisma, runAdapter = param.runAdapter;
4880
4921
  return /*#__PURE__*/ function() {
4881
4922
  var _ref = _async_to_generator(function(urlString, options) {
4882
- var url, _url_pathname_match, threadId, runId, body, tool_outputs, stream, readableStream, run4;
4923
+ var url, _url_pathname_match, threadId, runId, body, tool_outputs, stream, readableStream, run3;
4883
4924
  return _ts_generator(this, function(_state) {
4884
4925
  switch(_state.label){
4885
4926
  case 0:
@@ -4894,7 +4935,7 @@ var post13 = function(param) {
4894
4935
  readableStream = new ReadableStream({
4895
4936
  start: function start(controller) {
4896
4937
  return _async_to_generator(function() {
4897
- var run4;
4938
+ var run3;
4898
4939
  return _ts_generator(this, function(_state) {
4899
4940
  switch(_state.label){
4900
4941
  case 0:
@@ -4928,12 +4969,12 @@ var post13 = function(param) {
4928
4969
  })
4929
4970
  ];
4930
4971
  case 1:
4931
- run4 = _state.sent();
4972
+ run3 = _state.sent();
4932
4973
  return [
4933
4974
  4,
4934
- runAdapter({
4975
+ runAdapter.handleRun({
4935
4976
  run: serializeRun({
4936
- run: run4
4977
+ run: run3
4937
4978
  }),
4938
4979
  onEvent: onEvent({
4939
4980
  controller: _object_spread_props(_object_spread({}, controller), {
@@ -4945,7 +4986,7 @@ var post13 = function(param) {
4945
4986
  }),
4946
4987
  getMessages: getMessages({
4947
4988
  prisma: prisma,
4948
- run: run4
4989
+ run: run3
4949
4990
  })
4950
4991
  })
4951
4992
  ];
@@ -4979,7 +5020,7 @@ var post13 = function(param) {
4979
5020
  })
4980
5021
  ];
4981
5022
  case 2:
4982
- run4 = _state.sent();
5023
+ run3 = _state.sent();
4983
5024
  return [
4984
5025
  4,
4985
5026
  new Promise(function(resolve) {
@@ -4991,9 +5032,9 @@ var post13 = function(param) {
4991
5032
  case 0:
4992
5033
  return [
4993
5034
  4,
4994
- runAdapter({
5035
+ runAdapter.handleRun({
4995
5036
  run: serializeRun({
4996
- run: run4
5037
+ run: run3
4997
5038
  }),
4998
5039
  onEvent: onEvent({
4999
5040
  controller: _object_spread_props(_object_spread({}, controller), {
@@ -5005,7 +5046,7 @@ var post13 = function(param) {
5005
5046
  }),
5006
5047
  getMessages: getMessages({
5007
5048
  prisma: prisma,
5008
- run: run4
5049
+ run: run3
5009
5050
  })
5010
5051
  })
5011
5052
  ];
@@ -5027,7 +5068,7 @@ var post13 = function(param) {
5027
5068
  _state.sent();
5028
5069
  return [
5029
5070
  2,
5030
- new Response(JSON.stringify(run4), {
5071
+ new Response(JSON.stringify(run3), {
5031
5072
  status: 200,
5032
5073
  headers: {
5033
5074
  "Content-Type": "application/json"
@@ -5136,7 +5177,7 @@ var prismaStorageAdapter = function(param) {
5136
5177
  })), _define_property(_obj, runsRegexp, runs({
5137
5178
  prisma: prisma,
5138
5179
  runAdapter: runAdapter
5139
- })), _define_property(_obj, runRegexp, run2({
5180
+ })), _define_property(_obj, runRegexp, run({
5140
5181
  prisma: prisma,
5141
5182
  runAdapter: runAdapter
5142
5183
  })), _define_property(_obj, stepsRegexp, steps({
@@ -5149,13 +5190,12 @@ var prismaStorageAdapter = function(param) {
5149
5190
  };
5150
5191
  };
5151
5192
  // src/adapters/storage/responsesStorageAdapter/threads/serializeThread.ts
5152
- import dayjs10 from "dayjs";
5153
5193
  var serializeThread2 = function(param) {
5154
5194
  var conversation = param.conversation;
5155
5195
  return {
5156
5196
  id: conversation.id,
5157
5197
  object: "thread",
5158
- created_at: dayjs10(conversation.created_at).unix(),
5198
+ created_at: conversation.created_at,
5159
5199
  metadata: conversation.metadata,
5160
5200
  // TODO
5161
5201
  tool_resources: null
@@ -5163,7 +5203,7 @@ var serializeThread2 = function(param) {
5163
5203
  };
5164
5204
  // src/adapters/storage/responsesStorageAdapter/threads/post.ts
5165
5205
  var post15 = function(param) {
5166
- var openai = param.openai;
5206
+ var client = param.client;
5167
5207
  return /*#__PURE__*/ function() {
5168
5208
  var _ref = _async_to_generator(function(urlString, options) {
5169
5209
  var body, messages4, metadata, conversation;
@@ -5175,7 +5215,7 @@ var post15 = function(param) {
5175
5215
  metadata = body.metadata || {};
5176
5216
  return [
5177
5217
  4,
5178
- openai.conversations.create({
5218
+ client.conversations.create({
5179
5219
  metadata: metadata,
5180
5220
  items: messages4.map(function(message) {
5181
5221
  return {
@@ -5214,18 +5254,17 @@ var post15 = function(param) {
5214
5254
  };
5215
5255
  // src/adapters/storage/responsesStorageAdapter/threads/index.ts
5216
5256
  var threads2 = function(param) {
5217
- var openai = param.openai;
5257
+ var client = param.client;
5218
5258
  return {
5219
5259
  post: post15({
5220
- openai: openai
5260
+ client: client
5221
5261
  })
5222
5262
  };
5223
5263
  };
5224
5264
  // src/adapters/storage/responsesStorageAdapter/threads/messages/post.ts
5225
- import dayjs12 from "dayjs";
5265
+ import dayjs10 from "dayjs";
5226
5266
  import { isArray as isArray3 } from "radash";
5227
- // src/adapters/storage/responsesStorageAdapter/threads/messages/serializeMessage.ts
5228
- import dayjs11 from "dayjs";
5267
+ // src/lib/items/serializeItemAsMessage.ts
5229
5268
  import { uid as uid3 } from "radash";
5230
5269
  var serializeContent2 = function(param) {
5231
5270
  var item = param.item;
@@ -5257,14 +5296,16 @@ var serializeAttachments = function(param) {
5257
5296
  };
5258
5297
  var serializeMetadata = function(param) {
5259
5298
  var item = param.item;
5260
- return {};
5299
+ return {
5300
+ item: JSON.stringify(item)
5301
+ };
5261
5302
  };
5262
- var serializeMessage5 = function(param) {
5263
- var item = param.item, initialCreatedAt = param.initialCreatedAt, index = param.index, threadId = param.threadId;
5303
+ var serializeItemAsMessage = function(param) {
5304
+ 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;
5264
5305
  return {
5265
5306
  id: item.id || uid3(24),
5266
5307
  object: "thread.message",
5267
- created_at: dayjs11(initialCreatedAt).add(index, "seconds").unix(),
5308
+ created_at: createdAt,
5268
5309
  thread_id: threadId,
5269
5310
  completed_at: null,
5270
5311
  incomplete_at: null,
@@ -5273,18 +5314,19 @@ var serializeMessage5 = function(param) {
5273
5314
  content: serializeContent2({
5274
5315
  item: item
5275
5316
  }),
5276
- assistant_id: null,
5277
- run_id: null,
5317
+ assistant_id: item.role === "assistant" ? openaiAssistant.id : null,
5318
+ run_id: runId,
5278
5319
  attachments: serializeAttachments({
5279
5320
  item: item
5280
5321
  }),
5281
- status: typeof item.status === "string" ? item.status : "completed",
5322
+ status: typeof item.status === "string" ? item.status : status3,
5282
5323
  metadata: serializeMetadata({
5283
5324
  item: item
5284
5325
  })
5285
5326
  };
5286
5327
  };
5287
5328
  // src/adapters/storage/responsesStorageAdapter/threads/messages/post.ts
5329
+ import { uid as uid4 } from "radash";
5288
5330
  var messageContentBlocks2 = function(param) {
5289
5331
  var content = param.content;
5290
5332
  if (isArray3(content)) {
@@ -5325,10 +5367,10 @@ var messageContentBlocks2 = function(param) {
5325
5367
  ];
5326
5368
  };
5327
5369
  var post16 = function(param) {
5328
- var openai = param.openai;
5370
+ var runAdapter = param.runAdapter, createResponseItems = param.createResponseItems;
5329
5371
  return /*#__PURE__*/ function() {
5330
5372
  var _ref = _async_to_generator(function(urlString, options) {
5331
- var url, _url_pathname_match, threadId, body, role, content, metadata, items;
5373
+ var url, _url_pathname_match, threadId, body, role, content, metadata, item, openaiAssistant;
5332
5374
  return _ts_generator(this, function(_state) {
5333
5375
  switch(_state.label){
5334
5376
  case 0:
@@ -5336,29 +5378,29 @@ var post16 = function(param) {
5336
5378
  _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp(messagesRegexp)), 2), threadId = _url_pathname_match[1];
5337
5379
  body = JSON.parse(options.body);
5338
5380
  role = body.role, content = body.content, metadata = body.metadata;
5381
+ item = {
5382
+ id: "msg_".concat(uid4(24)),
5383
+ status: "in_progress",
5384
+ type: "message",
5385
+ role: role,
5386
+ content: messageContentBlocks2({
5387
+ content: content
5388
+ })
5389
+ };
5390
+ createResponseItems.push(item);
5339
5391
  return [
5340
5392
  4,
5341
- openai.conversations.items.create(threadId, {
5342
- items: [
5343
- {
5344
- type: "message",
5345
- role: role,
5346
- content: messageContentBlocks2({
5347
- content: content
5348
- })
5349
- }
5350
- ]
5351
- })
5393
+ runAdapter.getOpenaiAssistant()
5352
5394
  ];
5353
5395
  case 1:
5354
- items = _state.sent();
5396
+ openaiAssistant = _state.sent();
5355
5397
  return [
5356
5398
  2,
5357
- new Response(JSON.stringify(serializeMessage5({
5358
- item: items.data[0],
5399
+ new Response(JSON.stringify(serializeItemAsMessage({
5400
+ item: item,
5359
5401
  threadId: threadId,
5360
- initialCreatedAt: dayjs12().subtract(1, "seconds").format(),
5361
- index: 0
5402
+ openaiAssistant: openaiAssistant,
5403
+ createdAt: dayjs10().unix()
5362
5404
  })), {
5363
5405
  status: 200,
5364
5406
  headers: {
@@ -5376,12 +5418,48 @@ var post16 = function(param) {
5376
5418
  };
5377
5419
  // src/adapters/storage/responsesStorageAdapter/threads/messages/get.ts
5378
5420
  import { assign as assign7 } from "radash";
5379
- import dayjs13 from "dayjs";
5421
+ // src/lib/items/responseId.ts
5422
+ function responseId(param) {
5423
+ var conversation = param.conversation, itemId = param.itemId;
5424
+ if (!conversation.metadata) return null;
5425
+ var metadata = conversation.metadata;
5426
+ var keys = Object.keys(metadata).map(function(k) {
5427
+ var m = /^responseItemsMap(\d+)$/.exec(k);
5428
+ return m ? {
5429
+ key: k,
5430
+ idx: Number(m[1])
5431
+ } : null;
5432
+ }).filter(function(x) {
5433
+ return !!x;
5434
+ }).sort(function(a, b) {
5435
+ return a.idx - b.idx;
5436
+ });
5437
+ for(var i = keys.length - 1; i >= 0; i--){
5438
+ var raw = metadata[keys[i].key];
5439
+ if (!raw || raw === "[]") continue;
5440
+ var arr = [];
5441
+ try {
5442
+ arr = JSON.parse(raw);
5443
+ if (!Array.isArray(arr)) continue;
5444
+ } catch (e) {
5445
+ continue;
5446
+ }
5447
+ for(var j = arr.length - 1; j >= 0; j--){
5448
+ var _entry_itemIds;
5449
+ var entry = arr[j];
5450
+ if (entry === null || entry === void 0 ? void 0 : (_entry_itemIds = entry.itemIds) === null || _entry_itemIds === void 0 ? void 0 : _entry_itemIds.includes(itemId)) {
5451
+ return entry.responseId || null;
5452
+ }
5453
+ }
5454
+ }
5455
+ return null;
5456
+ }
5457
+ // src/adapters/storage/responsesStorageAdapter/threads/messages/get.ts
5380
5458
  var get14 = function(param) {
5381
- var openai = param.openai;
5459
+ var client = param.client, runAdapter = param.runAdapter;
5382
5460
  return /*#__PURE__*/ function() {
5383
5461
  var _ref = _async_to_generator(function(urlString) {
5384
- var url, _url_pathname_match, threadId, _assign7, limit, order, after, items, initialCreatedAt;
5462
+ var url, _url_pathname_match, threadId, _assign7, limit, order, after, conversation, sortOrder, items, itemsWithRunIds, responseMap, timestampedItems, openaiAssistant;
5385
5463
  return _ts_generator(this, function(_state) {
5386
5464
  switch(_state.label){
5387
5465
  case 0:
@@ -5393,24 +5471,57 @@ var get14 = function(param) {
5393
5471
  }, Object.fromEntries(url.searchParams)), limit = _assign7.limit, order = _assign7.order, after = _assign7.after;
5394
5472
  return [
5395
5473
  4,
5396
- openai.conversations.items.list(threadId, {
5397
- limit: parseInt(limit),
5474
+ client.conversations.retrieve(threadId)
5475
+ ];
5476
+ case 1:
5477
+ conversation = _state.sent();
5478
+ sortOrder = order === "asc" ? "asc" : "desc";
5479
+ return [
5480
+ 4,
5481
+ client.conversations.items.list(threadId, {
5482
+ limit: parseInt(limit, 10),
5398
5483
  after: after,
5399
- order: order
5484
+ order: sortOrder
5400
5485
  })
5401
5486
  ];
5402
- case 1:
5487
+ case 2:
5403
5488
  items = _state.sent();
5404
- initialCreatedAt = dayjs13().subtract(items.data.length, "seconds").format();
5489
+ itemsWithRunIds = mapItemsWithRunIds({
5490
+ conversation: conversation,
5491
+ items: items.data
5492
+ });
5493
+ return [
5494
+ 4,
5495
+ fetchResponsesForItems({
5496
+ client: client,
5497
+ items: itemsWithRunIds
5498
+ })
5499
+ ];
5500
+ case 3:
5501
+ responseMap = _state.sent();
5502
+ timestampedItems = assignTimestamps({
5503
+ items: itemsWithRunIds,
5504
+ responseMap: responseMap,
5505
+ sortOrder: sortOrder,
5506
+ conversationCreatedAt: conversation.created_at
5507
+ });
5508
+ return [
5509
+ 4,
5510
+ runAdapter.getOpenaiAssistant()
5511
+ ];
5512
+ case 4:
5513
+ openaiAssistant = _state.sent();
5405
5514
  return [
5406
5515
  2,
5407
5516
  new Response(JSON.stringify({
5408
- data: items.data.map(function(item, index) {
5409
- return serializeMessage5({
5517
+ data: timestampedItems.map(function(param) {
5518
+ var item = param.item, runId = param.runId, assignedTimestamp = param.assignedTimestamp;
5519
+ return serializeItemAsMessage({
5410
5520
  item: item,
5411
- initialCreatedAt: initialCreatedAt,
5412
- index: index,
5413
- threadId: threadId
5521
+ threadId: threadId,
5522
+ openaiAssistant: openaiAssistant,
5523
+ createdAt: assignedTimestamp,
5524
+ runId: runId
5414
5525
  });
5415
5526
  }),
5416
5527
  has_more: items.has_more,
@@ -5430,34 +5541,162 @@ var get14 = function(param) {
5430
5541
  };
5431
5542
  }();
5432
5543
  };
5544
+ var mapItemsWithRunIds = function(param) {
5545
+ var conversation = param.conversation, items = param.items;
5546
+ return items.map(function(item) {
5547
+ return {
5548
+ item: item,
5549
+ runId: item.id ? responseId({
5550
+ conversation: conversation,
5551
+ itemId: item.id
5552
+ }) : null
5553
+ };
5554
+ });
5555
+ };
5556
+ var fetchResponsesForItems = /*#__PURE__*/ function() {
5557
+ var _ref = _async_to_generator(function(param) {
5558
+ var client, items, responseIds, results, map;
5559
+ return _ts_generator(this, function(_state) {
5560
+ switch(_state.label){
5561
+ case 0:
5562
+ client = param.client, items = param.items;
5563
+ responseIds = Array.from(new Set(items.map(function(param) {
5564
+ var runId = param.runId;
5565
+ return runId;
5566
+ }).filter(function(id) {
5567
+ return Boolean(id);
5568
+ })));
5569
+ return [
5570
+ 4,
5571
+ Promise.allSettled(responseIds.map(function(id) {
5572
+ return client.responses.retrieve(id);
5573
+ }))
5574
+ ];
5575
+ case 1:
5576
+ results = _state.sent();
5577
+ map = /* @__PURE__ */ new Map();
5578
+ results.forEach(function(result, index) {
5579
+ if (result.status === "fulfilled") {
5580
+ map.set(responseIds[index], result.value);
5581
+ }
5582
+ });
5583
+ return [
5584
+ 2,
5585
+ map
5586
+ ];
5587
+ }
5588
+ });
5589
+ });
5590
+ return function fetchResponsesForItems(_) {
5591
+ return _ref.apply(this, arguments);
5592
+ };
5593
+ }();
5594
+ var assignTimestamps = function(param) {
5595
+ var items = param.items, responseMap = param.responseMap, sortOrder = param.sortOrder, conversationCreatedAt = param.conversationCreatedAt;
5596
+ var itemsWithTimestamps = items.map(function(entry) {
5597
+ var _responseMap_get;
5598
+ var _responseMap_get_created_at;
5599
+ return _object_spread_props(_object_spread({}, entry), {
5600
+ 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,
5601
+ assignedTimestamp: 0
5602
+ });
5603
+ });
5604
+ var fallbackTimestampForIndex = function(index) {
5605
+ return sortOrder === "asc" ? conversationCreatedAt + index : conversationCreatedAt + (itemsWithTimestamps.length - index);
5606
+ };
5607
+ var findNextKnownTimestamp = function(startIndex) {
5608
+ for(var i = startIndex; i < itemsWithTimestamps.length; i += 1){
5609
+ var candidate = itemsWithTimestamps[i];
5610
+ if (candidate.timestamp != null) {
5611
+ return {
5612
+ index: i,
5613
+ timestamp: candidate.timestamp
5614
+ };
5615
+ }
5616
+ }
5617
+ return null;
5618
+ };
5619
+ if (sortOrder === "asc") {
5620
+ var lastAssigned = null;
5621
+ itemsWithTimestamps.forEach(function(entry, index) {
5622
+ var nextValue = entry.timestamp;
5623
+ if (nextValue == null) {
5624
+ if (lastAssigned != null) {
5625
+ nextValue = lastAssigned + 1;
5626
+ } else {
5627
+ var nextKnown = findNextKnownTimestamp(index + 1);
5628
+ if (nextKnown) {
5629
+ var gap = nextKnown.index - index;
5630
+ nextValue = nextKnown.timestamp - gap;
5631
+ } else {
5632
+ nextValue = fallbackTimestampForIndex(index);
5633
+ }
5634
+ }
5635
+ }
5636
+ if (lastAssigned != null && nextValue <= lastAssigned) {
5637
+ nextValue = lastAssigned + 1;
5638
+ }
5639
+ entry.assignedTimestamp = nextValue;
5640
+ lastAssigned = nextValue;
5641
+ });
5642
+ } else {
5643
+ var lastAssigned1 = null;
5644
+ itemsWithTimestamps.forEach(function(entry, index) {
5645
+ var nextValue = entry.timestamp;
5646
+ if (nextValue == null) {
5647
+ if (lastAssigned1 != null) {
5648
+ nextValue = lastAssigned1 - 1;
5649
+ } else {
5650
+ var nextKnown = findNextKnownTimestamp(index + 1);
5651
+ if (nextKnown) {
5652
+ var gap = nextKnown.index - index;
5653
+ nextValue = nextKnown.timestamp + gap;
5654
+ } else {
5655
+ nextValue = fallbackTimestampForIndex(index);
5656
+ }
5657
+ }
5658
+ }
5659
+ if (lastAssigned1 != null && nextValue >= lastAssigned1) {
5660
+ nextValue = lastAssigned1 - 1;
5661
+ }
5662
+ entry.assignedTimestamp = nextValue;
5663
+ lastAssigned1 = nextValue;
5664
+ });
5665
+ }
5666
+ return itemsWithTimestamps;
5667
+ };
5433
5668
  // src/adapters/storage/responsesStorageAdapter/threads/messages/index.ts
5434
5669
  var messages3 = function(param) {
5435
- var openai = param.openai;
5670
+ var client = param.client, runAdapter = param.runAdapter, createResponseItems = param.createResponseItems;
5436
5671
  return {
5437
5672
  post: post16({
5438
- openai: openai
5673
+ runAdapter: runAdapter,
5674
+ createResponseItems: createResponseItems
5439
5675
  }),
5440
5676
  get: get14({
5441
- openai: openai
5677
+ client: client,
5678
+ runAdapter: runAdapter
5442
5679
  })
5443
5680
  };
5444
5681
  };
5445
5682
  // src/adapters/storage/responsesStorageAdapter/threads/runs/get.ts
5446
- import { assign as assign8 } from "radash";
5447
- var get15 = function(param) {
5448
- var prisma = param.prisma;
5683
+ var get15 = function() {
5449
5684
  return /*#__PURE__*/ function() {
5450
5685
  var _ref = _async_to_generator(function(urlString) {
5451
- var url, _url_pathname_match, threadId, _assign8, limit, order, after, pageSize;
5452
5686
  return _ts_generator(this, function(_state) {
5453
- url = new URL(urlString);
5454
- _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp(runsRegexp)), 2), threadId = _url_pathname_match[1];
5455
- _assign8 = assign8({
5456
- limit: "20",
5457
- order: "desc"
5458
- }, Object.fromEntries(url.searchParams)), limit = _assign8.limit, order = _assign8.order, after = _assign8.after;
5459
- pageSize = parseInt(limit, 10);
5460
- throw new Error("Not implemented");
5687
+ return [
5688
+ 2,
5689
+ new Response(JSON.stringify({
5690
+ data: [],
5691
+ has_more: false,
5692
+ last_id: null
5693
+ }), {
5694
+ status: 200,
5695
+ headers: {
5696
+ "Content-Type": "application/json"
5697
+ }
5698
+ })
5699
+ ];
5461
5700
  });
5462
5701
  });
5463
5702
  return function(urlString) {
@@ -5466,39 +5705,101 @@ var get15 = function(param) {
5466
5705
  }();
5467
5706
  };
5468
5707
  // src/adapters/storage/responsesStorageAdapter/threads/runs/post.ts
5469
- import { uid as uid4 } from "radash";
5470
- import dayjs15 from "dayjs";
5471
- import { assign as assign9 } from "radash";
5472
- // src/adapters/storage/responsesStorageAdapter/threads/runs/serializeRun.ts
5473
- import dayjs14 from "dayjs";
5474
- var serializeRun2 = function(param) {
5708
+ import { uid as uid5 } from "radash";
5709
+ import dayjs11 from "dayjs";
5710
+ import { assign as assign8 } from "radash";
5711
+ // src/lib/responses/serializeResponseAsRun.ts
5712
+ var serializeStatus = function(param) {
5713
+ var response = param.response;
5714
+ var _response_status;
5715
+ if (response.error) return "failed";
5716
+ var _response_status_toLowerCase;
5717
+ 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";
5718
+ };
5719
+ var serializeUsage = function(param) {
5720
+ var response = param.response;
5721
+ var _response_usage, _response_usage1, _response_usage2;
5722
+ var _response_usage_input_tokens, _response_usage_output_tokens, _response_usage_total_tokens;
5723
+ return {
5724
+ 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,
5725
+ 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,
5726
+ 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
5727
+ };
5728
+ };
5729
+ var findPendingToolCalls = function(param) {
5475
5730
  var response = param.response;
5731
+ var _response_output;
5732
+ var toolCalls = ((_response_output = response.output) !== null && _response_output !== void 0 ? _response_output : []).filter(function(item) {
5733
+ return item.type === "function_call";
5734
+ });
5735
+ if (toolCalls.length === 0) return [];
5736
+ var _response_output1;
5737
+ var completedCallIds = new Set(((_response_output1 = response.output) !== null && _response_output1 !== void 0 ? _response_output1 : []).filter(function(item) {
5738
+ return item.type === "function_call_output";
5739
+ }).map(function(item) {
5740
+ return item.call_id;
5741
+ }).filter(function(id) {
5742
+ return Boolean(id);
5743
+ }));
5744
+ return toolCalls.filter(function(call) {
5745
+ return !completedCallIds.has(call.call_id);
5746
+ });
5747
+ };
5748
+ var serializeToolCalls = function(param) {
5749
+ var toolCalls = param.toolCalls;
5750
+ return toolCalls.map(function(toolCall) {
5751
+ return {
5752
+ id: toolCall.call_id,
5753
+ type: "function",
5754
+ function: {
5755
+ name: toolCall.name,
5756
+ arguments: toolCall.arguments
5757
+ }
5758
+ };
5759
+ });
5760
+ };
5761
+ var serializeResponseAsRun = function(param) {
5762
+ var response = param.response, assistantId = param.assistantId;
5763
+ var pendingToolCalls = findPendingToolCalls({
5764
+ response: response
5765
+ });
5766
+ var status3 = pendingToolCalls.length > 0 ? "requires_action" : serializeStatus({
5767
+ response: response
5768
+ });
5476
5769
  return {
5477
- id: run.id,
5770
+ id: response.id,
5478
5771
  object: "thread.run",
5479
- created_at: dayjs14(run.createdAt).unix(),
5480
- thread_id: run.threadId,
5481
- assistant_id: run.assistantId,
5482
- status: run.status.toLowerCase(),
5483
- required_action: run.requiredAction,
5484
- last_error: run.lastError,
5485
- expires_at: dayjs14(run.expiresAt).unix(),
5486
- started_at: run.startedAt ? dayjs14(run.startedAt).unix() : null,
5487
- cancelled_at: run.cancelledAt ? dayjs14(run.cancelledAt).unix() : null,
5488
- failed_at: run.failedAt ? dayjs14(run.failedAt).unix() : null,
5489
- completed_at: run.completedAt ? dayjs14(run.completedAt).unix() : null,
5490
- model: run.model,
5491
- instructions: run.instructions,
5492
- tools: run.tools,
5493
- metadata: run.metadata,
5494
- usage: run.usage,
5772
+ created_at: response.created_at,
5773
+ thread_id: response.conversation.id,
5774
+ assistant_id: assistantId,
5775
+ status: status3,
5776
+ required_action: pendingToolCalls.length > 0 ? {
5777
+ type: "submit_tool_outputs",
5778
+ submit_tool_outputs: {
5779
+ tool_calls: serializeToolCalls({
5780
+ toolCalls: pendingToolCalls
5781
+ })
5782
+ }
5783
+ } : null,
5784
+ last_error: response.error,
5785
+ expires_at: response.created_at,
5786
+ started_at: response.created_at,
5787
+ cancelled_at: null,
5788
+ failed_at: response.error ? response.created_at : null,
5789
+ completed_at: status3 === "completed" ? response.created_at : null,
5790
+ model: response.model,
5791
+ instructions: "",
5792
+ tools: [],
5793
+ metadata: response.metadata,
5794
+ usage: serializeUsage({
5795
+ response: response
5796
+ }),
5495
5797
  truncation_strategy: {
5496
5798
  type: "auto"
5497
5799
  },
5498
5800
  response_format: {
5499
5801
  type: "text"
5500
5802
  },
5501
- // TODO
5502
5803
  incomplete_details: null,
5503
5804
  max_completion_tokens: null,
5504
5805
  max_prompt_tokens: null,
@@ -5506,69 +5807,347 @@ var serializeRun2 = function(param) {
5506
5807
  parallel_tool_calls: true
5507
5808
  };
5508
5809
  };
5509
- // src/adapters/storage/responsesStorageAdapter/threads/runs/post.ts
5510
- var serializeTools2 = function(param) {
5511
- var tools = param.tools;
5512
- if (!(tools === null || tools === void 0 ? void 0 : tools.length)) return {};
5513
- return {
5514
- tools: tools.map(function(tool) {
5515
- return _object_spread({
5516
- type: tool.type
5517
- }, tool[tool.type] || {});
5518
- })
5519
- };
5520
- };
5521
- var defaultAssistant = {
5522
- model: "",
5523
- instructions: "",
5524
- additional_instructions: null,
5525
- truncation_strategy: {
5526
- type: "auto"
5527
- },
5528
- response_format: {
5529
- type: "text"
5810
+ // src/lib/responses/saveResponseItemsToConversationMetadata.ts
5811
+ var BUCKET_PREFIX = "responseItemsMap";
5812
+ var MAX_BUCKETS = 16;
5813
+ var MAX_VALUE_LENGTH = 512;
5814
+ function parseBucket(param) {
5815
+ var value = param.value;
5816
+ if (!value || value === "[]") return [];
5817
+ try {
5818
+ var arr = JSON.parse(value);
5819
+ return Array.isArray(arr) ? arr : [];
5820
+ } catch (e) {
5821
+ return [];
5530
5822
  }
5531
- };
5532
- var post17 = function(param) {
5533
- var openai = param.openai, openaiAssistant = param.openaiAssistant, runAdapter = param.runAdapter;
5534
- return /*#__PURE__*/ function() {
5535
- var _ref = _async_to_generator(function(urlString, options) {
5536
- var url, _url_pathname_match, threadId, body, assistant_id, stream, _assign9, model, instructions, // additional_instructions,
5537
- tools, metadata, response_format, truncation_strategy, response, readableStream, data;
5538
- return _ts_generator(this, function(_state) {
5539
- switch(_state.label){
5540
- case 0:
5541
- url = new URL(urlString);
5542
- _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp(runsRegexp)), 2), threadId = _url_pathname_match[1];
5543
- body = JSON.parse(options.body);
5544
- assistant_id = body.assistant_id, stream = body.stream;
5545
- console.dir({
5546
- runsPort: true,
5547
- body: body
5548
- }, {
5549
- depth: null
5550
- });
5551
- _assign9 = assign9(_object_spread({}, defaultAssistant, openaiAssistant), body), model = _assign9.model, instructions = _assign9.instructions, tools = _assign9.tools, metadata = _assign9.metadata, response_format = _assign9.response_format, truncation_strategy = _assign9.truncation_strategy;
5552
- return [
5553
- 4,
5554
- openai.responses.create(_object_spread_props(_object_spread({
5555
- conversation: threadId,
5556
- instructions: instructions,
5557
- model: model,
5558
- metadata: metadata,
5559
- stream: stream
5560
- }, serializeTools2({
5561
- tools: tools
5562
- })), {
5563
- truncation: truncation_strategy.type,
5564
- text: {
5565
- format: response_format
5566
- },
5567
- input: ""
5568
- }))
5569
- ];
5570
- case 1:
5571
- response = _state.sent();
5823
+ }
5824
+ function serializeBucket(param) {
5825
+ var entries = param.entries;
5826
+ return JSON.stringify(entries);
5827
+ }
5828
+ function bucketKey(param) {
5829
+ var index = param.index;
5830
+ return "".concat(BUCKET_PREFIX).concat(index);
5831
+ }
5832
+ function listBucketIndices(param) {
5833
+ var metadata = param.metadata;
5834
+ return Object.keys(metadata).map(function(k) {
5835
+ var m = new RegExp("^".concat(BUCKET_PREFIX, "(\\d+)$")).exec(k);
5836
+ return m ? Number(m[1]) : -1;
5837
+ }).filter(function(i) {
5838
+ return i >= 0;
5839
+ }).sort(function(a, b) {
5840
+ return a - b;
5841
+ });
5842
+ }
5843
+ function parseAllPairs(param) {
5844
+ var metadata = param.metadata;
5845
+ var indices = listBucketIndices({
5846
+ metadata: metadata
5847
+ });
5848
+ var pairs = [];
5849
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
5850
+ try {
5851
+ for(var _iterator = indices[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
5852
+ var idx = _step.value;
5853
+ var key = bucketKey({
5854
+ index: idx
5855
+ });
5856
+ var entries = parseBucket({
5857
+ value: metadata[key]
5858
+ });
5859
+ var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
5860
+ try {
5861
+ for(var _iterator1 = entries[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
5862
+ var e = _step1.value;
5863
+ var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = undefined;
5864
+ try {
5865
+ for(var _iterator2 = e.itemIds[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true){
5866
+ var iid = _step2.value;
5867
+ pairs.push({
5868
+ responseId: e.responseId,
5869
+ itemId: iid
5870
+ });
5871
+ }
5872
+ } catch (err) {
5873
+ _didIteratorError2 = true;
5874
+ _iteratorError2 = err;
5875
+ } finally{
5876
+ try {
5877
+ if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
5878
+ _iterator2.return();
5879
+ }
5880
+ } finally{
5881
+ if (_didIteratorError2) {
5882
+ throw _iteratorError2;
5883
+ }
5884
+ }
5885
+ }
5886
+ }
5887
+ } catch (err) {
5888
+ _didIteratorError1 = true;
5889
+ _iteratorError1 = err;
5890
+ } finally{
5891
+ try {
5892
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
5893
+ _iterator1.return();
5894
+ }
5895
+ } finally{
5896
+ if (_didIteratorError1) {
5897
+ throw _iteratorError1;
5898
+ }
5899
+ }
5900
+ }
5901
+ }
5902
+ } catch (err) {
5903
+ _didIteratorError = true;
5904
+ _iteratorError = err;
5905
+ } finally{
5906
+ try {
5907
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
5908
+ _iterator.return();
5909
+ }
5910
+ } finally{
5911
+ if (_didIteratorError) {
5912
+ throw _iteratorError;
5913
+ }
5914
+ }
5915
+ }
5916
+ return pairs;
5917
+ }
5918
+ function tryPackPairs(param) {
5919
+ var baseMetadata = param.baseMetadata, pairs = param.pairs;
5920
+ var newBuckets = [];
5921
+ var currentEntries = [];
5922
+ var flush = function() {
5923
+ newBuckets.push(serializeBucket({
5924
+ entries: currentEntries
5925
+ }));
5926
+ currentEntries = [];
5927
+ };
5928
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
5929
+ try {
5930
+ for(var _iterator = pairs[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
5931
+ var _step_value = _step.value, responseId2 = _step_value.responseId, itemId = _step_value.itemId;
5932
+ var next = currentEntries.map(function(e) {
5933
+ return {
5934
+ responseId: e.responseId,
5935
+ itemIds: _to_consumable_array(e.itemIds)
5936
+ };
5937
+ });
5938
+ var last5 = next[next.length - 1];
5939
+ if (last5 && last5.responseId === responseId2) {
5940
+ last5.itemIds.push(itemId);
5941
+ } else {
5942
+ next.push({
5943
+ responseId: responseId2,
5944
+ itemIds: [
5945
+ itemId
5946
+ ]
5947
+ });
5948
+ }
5949
+ var candidate = serializeBucket({
5950
+ entries: next
5951
+ });
5952
+ if (candidate.length <= MAX_VALUE_LENGTH) {
5953
+ currentEntries = next;
5954
+ continue;
5955
+ }
5956
+ flush();
5957
+ if (newBuckets.length >= MAX_BUCKETS) {
5958
+ return {
5959
+ success: false,
5960
+ newMetadata: baseMetadata
5961
+ };
5962
+ }
5963
+ currentEntries = [
5964
+ {
5965
+ responseId: responseId2,
5966
+ itemIds: [
5967
+ itemId
5968
+ ]
5969
+ }
5970
+ ];
5971
+ }
5972
+ } catch (err) {
5973
+ _didIteratorError = true;
5974
+ _iteratorError = err;
5975
+ } finally{
5976
+ try {
5977
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
5978
+ _iterator.return();
5979
+ }
5980
+ } finally{
5981
+ if (_didIteratorError) {
5982
+ throw _iteratorError;
5983
+ }
5984
+ }
5985
+ }
5986
+ if (currentEntries.length > 0) flush();
5987
+ var result = {};
5988
+ var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = undefined;
5989
+ try {
5990
+ for(var _iterator1 = Object.entries(baseMetadata)[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true){
5991
+ var _step_value1 = _sliced_to_array(_step1.value, 2), k = _step_value1[0], v = _step_value1[1];
5992
+ if (!k.startsWith(BUCKET_PREFIX)) result[k] = v;
5993
+ }
5994
+ } catch (err) {
5995
+ _didIteratorError1 = true;
5996
+ _iteratorError1 = err;
5997
+ } finally{
5998
+ try {
5999
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
6000
+ _iterator1.return();
6001
+ }
6002
+ } finally{
6003
+ if (_didIteratorError1) {
6004
+ throw _iteratorError1;
6005
+ }
6006
+ }
6007
+ }
6008
+ newBuckets.forEach(function(val, i) {
6009
+ if (val && val !== "[]") result[bucketKey({
6010
+ index: i
6011
+ })] = val;
6012
+ });
6013
+ return {
6014
+ success: true,
6015
+ newMetadata: result
6016
+ };
6017
+ }
6018
+ function appendItemIdsToConversationMetadata(param) {
6019
+ var metadata = param.metadata, responseId2 = param.responseId, itemIds = param.itemIds;
6020
+ var base = _object_spread({}, metadata || {});
6021
+ var existing = parseAllPairs({
6022
+ metadata: base
6023
+ });
6024
+ var nextPairs = existing.concat(itemIds.map(function(id) {
6025
+ return {
6026
+ responseId: responseId2,
6027
+ itemId: id
6028
+ };
6029
+ }));
6030
+ var working = nextPairs;
6031
+ while(true){
6032
+ var _tryPackPairs = tryPackPairs({
6033
+ baseMetadata: base,
6034
+ pairs: working
6035
+ }), success = _tryPackPairs.success, newMetadata = _tryPackPairs.newMetadata;
6036
+ if (success) return newMetadata;
6037
+ if (working.length === 0) {
6038
+ throw new Error("responseItemsMap: cannot pack even a single item into 16 buckets");
6039
+ }
6040
+ working = working.slice(1);
6041
+ }
6042
+ }
6043
+ function saveResponseItemsToConversationMetadata(_) {
6044
+ return _saveResponseItemsToConversationMetadata.apply(this, arguments);
6045
+ }
6046
+ function _saveResponseItemsToConversationMetadata() {
6047
+ _saveResponseItemsToConversationMetadata = _async_to_generator(function(param) {
6048
+ var client, threadId, responseId2, itemIds, conversation, updated;
6049
+ return _ts_generator(this, function(_state) {
6050
+ switch(_state.label){
6051
+ case 0:
6052
+ client = param.client, threadId = param.threadId, responseId2 = param.responseId, itemIds = param.itemIds;
6053
+ return [
6054
+ 4,
6055
+ client.conversations.retrieve(threadId)
6056
+ ];
6057
+ case 1:
6058
+ conversation = _state.sent();
6059
+ updated = appendItemIdsToConversationMetadata({
6060
+ metadata: conversation.metadata,
6061
+ responseId: responseId2,
6062
+ itemIds: itemIds
6063
+ });
6064
+ return [
6065
+ 4,
6066
+ client.conversations.update(threadId, {
6067
+ metadata: updated
6068
+ })
6069
+ ];
6070
+ case 2:
6071
+ _state.sent();
6072
+ return [
6073
+ 2
6074
+ ];
6075
+ }
6076
+ });
6077
+ });
6078
+ return _saveResponseItemsToConversationMetadata.apply(this, arguments);
6079
+ }
6080
+ // src/adapters/storage/responsesStorageAdapter/threads/runs/post.ts
6081
+ var serializeTools2 = function(param) {
6082
+ var tools = param.tools;
6083
+ if (!(tools === null || tools === void 0 ? void 0 : tools.length)) return {};
6084
+ return {
6085
+ tools: tools.map(function(tool) {
6086
+ return _object_spread({
6087
+ type: tool.type
6088
+ }, tool[tool.type] || {});
6089
+ })
6090
+ };
6091
+ };
6092
+ var defaultAssistant = {
6093
+ model: "",
6094
+ instructions: "",
6095
+ additional_instructions: null,
6096
+ truncation_strategy: {
6097
+ type: "auto"
6098
+ },
6099
+ response_format: {
6100
+ type: "text"
6101
+ }
6102
+ };
6103
+ var post17 = function(param) {
6104
+ var client = param.client, runAdapter = param.runAdapter, createResponseItems = param.createResponseItems;
6105
+ return /*#__PURE__*/ function() {
6106
+ var _ref = _async_to_generator(function(urlString, options) {
6107
+ var url, _url_pathname_match, threadId, body, assistant_id, stream, _assign8, model, instructions, // additional_instructions,
6108
+ tools, metadata, response_format, truncation_strategy, _tmp, response, readableStream, _response_output, itemIds, data;
6109
+ return _ts_generator(this, function(_state) {
6110
+ switch(_state.label){
6111
+ case 0:
6112
+ url = new URL(urlString);
6113
+ _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp(runsRegexp)), 2), threadId = _url_pathname_match[1];
6114
+ body = JSON.parse(options.body);
6115
+ assistant_id = body.assistant_id, stream = body.stream;
6116
+ _tmp = [
6117
+ {},
6118
+ defaultAssistant
6119
+ ];
6120
+ return [
6121
+ 4,
6122
+ runAdapter.getOpenaiAssistant()
6123
+ ];
6124
+ case 1:
6125
+ _assign8 = assign8.apply(void 0, [
6126
+ _object_spread.apply(void 0, _tmp.concat([
6127
+ _state.sent()
6128
+ ])),
6129
+ body
6130
+ ]), model = _assign8.model, instructions = _assign8.instructions, tools = _assign8.tools, metadata = _assign8.metadata, response_format = _assign8.response_format, truncation_strategy = _assign8.truncation_strategy;
6131
+ return [
6132
+ 4,
6133
+ client.responses.create(_object_spread_props(_object_spread({
6134
+ conversation: threadId,
6135
+ instructions: instructions,
6136
+ model: model,
6137
+ metadata: metadata,
6138
+ stream: stream
6139
+ }, serializeTools2({
6140
+ tools: tools
6141
+ })), {
6142
+ truncation: truncation_strategy.type,
6143
+ text: {
6144
+ format: response_format
6145
+ },
6146
+ input: createResponseItems
6147
+ }))
6148
+ ];
6149
+ case 2:
6150
+ response = _state.sent();
5572
6151
  readableStream = new ReadableStream({
5573
6152
  start: function start(controller) {
5574
6153
  return _async_to_generator(function() {
@@ -5584,7 +6163,8 @@ var post17 = function(param) {
5584
6163
  ]);
5585
6164
  return [
5586
6165
  4,
5587
- runAdapter({
6166
+ runAdapter.handleRun({
6167
+ threadId: threadId,
5588
6168
  response: response,
5589
6169
  onEvent: /*#__PURE__*/ function() {
5590
6170
  var _ref = _async_to_generator(function(event) {
@@ -5613,8 +6193,8 @@ var post17 = function(param) {
5613
6193
  event = {
5614
6194
  event: "thread.run.failed",
5615
6195
  data: {
5616
- id: uid4(24),
5617
- failed_at: dayjs15().unix(),
6196
+ id: uid5(24),
6197
+ failed_at: dayjs11().unix(),
5618
6198
  last_error: {
5619
6199
  code: "server_error",
5620
6200
  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 : "")
@@ -5636,29 +6216,55 @@ var post17 = function(param) {
5636
6216
  })();
5637
6217
  }
5638
6218
  });
5639
- if (stream) {
5640
- return [
5641
- 2,
5642
- new Response(readableStream, {
5643
- headers: {
5644
- "Content-Type": "text/event-stream"
5645
- }
5646
- })
5647
- ];
5648
- } else {
5649
- data = serializeRun2({
5650
- response: response
5651
- });
5652
- return [
5653
- 2,
5654
- new Response(JSON.stringify(data), {
5655
- status: 200,
5656
- headers: {
5657
- "Content-Type": "application/json"
5658
- }
5659
- })
5660
- ];
5661
- }
6219
+ if (!stream) return [
6220
+ 3,
6221
+ 3
6222
+ ];
6223
+ return [
6224
+ 2,
6225
+ new Response(readableStream, {
6226
+ headers: {
6227
+ "Content-Type": "text/event-stream"
6228
+ }
6229
+ })
6230
+ ];
6231
+ case 3:
6232
+ itemIds = ((_response_output = response.output) !== null && _response_output !== void 0 ? _response_output : []).filter(function(o) {
6233
+ return o.id;
6234
+ }).map(function(o) {
6235
+ return o.id;
6236
+ });
6237
+ if (!(itemIds.length > 0)) return [
6238
+ 3,
6239
+ 5
6240
+ ];
6241
+ return [
6242
+ 4,
6243
+ saveResponseItemsToConversationMetadata({
6244
+ client: client,
6245
+ threadId: threadId,
6246
+ responseId: response.id,
6247
+ itemIds: itemIds
6248
+ })
6249
+ ];
6250
+ case 4:
6251
+ _state.sent();
6252
+ _state.label = 5;
6253
+ case 5:
6254
+ data = serializeResponseAsRun({
6255
+ response: response,
6256
+ assistantId: assistant_id
6257
+ });
6258
+ return [
6259
+ 2,
6260
+ new Response(JSON.stringify(data), {
6261
+ status: 200,
6262
+ headers: {
6263
+ "Content-Type": "application/json"
6264
+ }
6265
+ })
6266
+ ];
6267
+ case 6:
5662
6268
  return [
5663
6269
  2
5664
6270
  ];
@@ -5672,28 +6278,55 @@ var post17 = function(param) {
5672
6278
  };
5673
6279
  // src/adapters/storage/responsesStorageAdapter/threads/runs/index.ts
5674
6280
  var runs2 = function(param) {
5675
- var openai = param.openai, openaiAssistant = param.openaiAssistant, runAdapter = param.runAdapter;
6281
+ var client = param.client, runAdapter = param.runAdapter, createResponseItems = param.createResponseItems;
5676
6282
  return {
5677
- get: get15({
5678
- openai: openai
5679
- }),
6283
+ get: get15(),
5680
6284
  post: post17({
5681
- openai: openai,
5682
- openaiAssistant: openaiAssistant,
6285
+ client: client,
6286
+ createResponseItems: createResponseItems,
5683
6287
  runAdapter: runAdapter
5684
6288
  })
5685
6289
  };
5686
6290
  };
5687
6291
  // src/adapters/storage/responsesStorageAdapter/threads/run/get.ts
5688
6292
  var get16 = function(param) {
5689
- var openai = param.openai;
6293
+ var client = param.client, runAdapter = param.runAdapter;
5690
6294
  return /*#__PURE__*/ function() {
5691
6295
  var _ref = _async_to_generator(function(urlString) {
5692
- var url, _url_pathname_match, threadId, runId;
6296
+ var url, _url_pathname_match, _threadId, runId, response, data, _tmp;
5693
6297
  return _ts_generator(this, function(_state) {
5694
- url = new URL(urlString);
5695
- _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp(runRegexp)), 3), threadId = _url_pathname_match[1], runId = _url_pathname_match[2];
5696
- throw new Error("Not implemented");
6298
+ switch(_state.label){
6299
+ case 0:
6300
+ url = new URL(urlString);
6301
+ _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp(runRegexp)), 3), _threadId = _url_pathname_match[1], runId = _url_pathname_match[2];
6302
+ return [
6303
+ 4,
6304
+ client.responses.retrieve(runId)
6305
+ ];
6306
+ case 1:
6307
+ response = _state.sent();
6308
+ _tmp = {
6309
+ response: response
6310
+ };
6311
+ return [
6312
+ 4,
6313
+ runAdapter.getOpenaiAssistant()
6314
+ ];
6315
+ case 2:
6316
+ data = serializeResponseAsRun.apply(void 0, [
6317
+ (_tmp.assistantId = _state.sent().id, _tmp)
6318
+ ]);
6319
+ return [
6320
+ 2,
6321
+ new Response(JSON.stringify(data), {
6322
+ status: 200,
6323
+ headers: {
6324
+ "Content-Type": "application/json",
6325
+ "openai-poll-after-ms": "5000"
6326
+ }
6327
+ })
6328
+ ];
6329
+ }
5697
6330
  });
5698
6331
  });
5699
6332
  return function(urlString) {
@@ -5702,49 +6335,330 @@ var get16 = function(param) {
5702
6335
  }();
5703
6336
  };
5704
6337
  // src/adapters/storage/responsesStorageAdapter/threads/run/index.ts
5705
- var run3 = function(param) {
5706
- var openai = param.openai, runAdapter = param.runAdapter;
6338
+ var run2 = function(param) {
6339
+ var client = param.client, runAdapter = param.runAdapter;
5707
6340
  return {
5708
6341
  get: get16({
5709
- openai: openai
6342
+ client: client,
6343
+ runAdapter: runAdapter
5710
6344
  })
5711
6345
  };
5712
6346
  };
6347
+ function pMap(iterable, mapper) {
6348
+ return _pMap.apply(this, arguments);
6349
+ }
6350
+ function _pMap() {
6351
+ _pMap = // ../../node_modules/p-map/index.js
6352
+ _async_to_generator(function(iterable, mapper) {
6353
+ var _ref, _ref_concurrency, concurrency, _ref_stopOnError, stopOnError, signal;
6354
+ var _arguments = arguments;
6355
+ return _ts_generator(this, function(_state) {
6356
+ _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;
6357
+ return [
6358
+ 2,
6359
+ new Promise(function(resolve_, reject_) {
6360
+ if (iterable[Symbol.iterator] === void 0 && iterable[Symbol.asyncIterator] === void 0) {
6361
+ throw new TypeError("Expected `input` to be either an `Iterable` or `AsyncIterable`, got (".concat(typeof iterable === "undefined" ? "undefined" : _type_of(iterable), ")"));
6362
+ }
6363
+ if (typeof mapper !== "function") {
6364
+ throw new TypeError("Mapper function is required");
6365
+ }
6366
+ if (!(Number.isSafeInteger(concurrency) && concurrency >= 1 || concurrency === Number.POSITIVE_INFINITY)) {
6367
+ 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), ")"));
6368
+ }
6369
+ var result = [];
6370
+ var errors = [];
6371
+ var skippedIndexesMap = /* @__PURE__ */ new Map();
6372
+ var isRejected = false;
6373
+ var isResolved = false;
6374
+ var isIterableDone = false;
6375
+ var resolvingCount = 0;
6376
+ var currentIndex = 0;
6377
+ var iterator = iterable[Symbol.iterator] === void 0 ? iterable[Symbol.asyncIterator]() : iterable[Symbol.iterator]();
6378
+ var signalListener = function() {
6379
+ reject(signal.reason);
6380
+ };
6381
+ var cleanup = function() {
6382
+ signal === null || signal === void 0 ? void 0 : signal.removeEventListener("abort", signalListener);
6383
+ };
6384
+ var resolve = function(value) {
6385
+ resolve_(value);
6386
+ cleanup();
6387
+ };
6388
+ var reject = function(reason) {
6389
+ isRejected = true;
6390
+ isResolved = true;
6391
+ reject_(reason);
6392
+ cleanup();
6393
+ };
6394
+ if (signal) {
6395
+ if (signal.aborted) {
6396
+ reject(signal.reason);
6397
+ }
6398
+ signal.addEventListener("abort", signalListener, {
6399
+ once: true
6400
+ });
6401
+ }
6402
+ var next = /*#__PURE__*/ function() {
6403
+ var _ref = _async_to_generator(function() {
6404
+ var nextItem, index, pureResult, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, _step_value, index2, value;
6405
+ return _ts_generator(this, function(_state) {
6406
+ switch(_state.label){
6407
+ case 0:
6408
+ if (isResolved) {
6409
+ return [
6410
+ 2
6411
+ ];
6412
+ }
6413
+ return [
6414
+ 4,
6415
+ iterator.next()
6416
+ ];
6417
+ case 1:
6418
+ nextItem = _state.sent();
6419
+ index = currentIndex;
6420
+ currentIndex++;
6421
+ if (nextItem.done) {
6422
+ isIterableDone = true;
6423
+ if (resolvingCount === 0 && !isResolved) {
6424
+ if (!stopOnError && errors.length > 0) {
6425
+ reject(new AggregateError(errors));
6426
+ return [
6427
+ 2
6428
+ ];
6429
+ }
6430
+ isResolved = true;
6431
+ if (skippedIndexesMap.size === 0) {
6432
+ resolve(result);
6433
+ return [
6434
+ 2
6435
+ ];
6436
+ }
6437
+ pureResult = [];
6438
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
6439
+ try {
6440
+ for(_iterator = result.entries()[Symbol.iterator](); !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
6441
+ _step_value = _sliced_to_array(_step.value, 2), index2 = _step_value[0], value = _step_value[1];
6442
+ if (skippedIndexesMap.get(index2) === pMapSkip) {
6443
+ continue;
6444
+ }
6445
+ pureResult.push(value);
6446
+ }
6447
+ } catch (err) {
6448
+ _didIteratorError = true;
6449
+ _iteratorError = err;
6450
+ } finally{
6451
+ try {
6452
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
6453
+ _iterator.return();
6454
+ }
6455
+ } finally{
6456
+ if (_didIteratorError) {
6457
+ throw _iteratorError;
6458
+ }
6459
+ }
6460
+ }
6461
+ resolve(pureResult);
6462
+ }
6463
+ return [
6464
+ 2
6465
+ ];
6466
+ }
6467
+ resolvingCount++;
6468
+ _async_to_generator(function() {
6469
+ var element, value, error, error2;
6470
+ return _ts_generator(this, function(_state) {
6471
+ switch(_state.label){
6472
+ case 0:
6473
+ _state.trys.push([
6474
+ 0,
6475
+ 4,
6476
+ ,
6477
+ 10
6478
+ ]);
6479
+ return [
6480
+ 4,
6481
+ nextItem.value
6482
+ ];
6483
+ case 1:
6484
+ element = _state.sent();
6485
+ if (isResolved) {
6486
+ return [
6487
+ 2
6488
+ ];
6489
+ }
6490
+ return [
6491
+ 4,
6492
+ mapper(element, index)
6493
+ ];
6494
+ case 2:
6495
+ value = _state.sent();
6496
+ if (value === pMapSkip) {
6497
+ skippedIndexesMap.set(index, value);
6498
+ }
6499
+ result[index] = value;
6500
+ resolvingCount--;
6501
+ return [
6502
+ 4,
6503
+ next()
6504
+ ];
6505
+ case 3:
6506
+ _state.sent();
6507
+ return [
6508
+ 3,
6509
+ 10
6510
+ ];
6511
+ case 4:
6512
+ error = _state.sent();
6513
+ if (!stopOnError) return [
6514
+ 3,
6515
+ 5
6516
+ ];
6517
+ reject(error);
6518
+ return [
6519
+ 3,
6520
+ 9
6521
+ ];
6522
+ case 5:
6523
+ errors.push(error);
6524
+ resolvingCount--;
6525
+ _state.label = 6;
6526
+ case 6:
6527
+ _state.trys.push([
6528
+ 6,
6529
+ 8,
6530
+ ,
6531
+ 9
6532
+ ]);
6533
+ return [
6534
+ 4,
6535
+ next()
6536
+ ];
6537
+ case 7:
6538
+ _state.sent();
6539
+ return [
6540
+ 3,
6541
+ 9
6542
+ ];
6543
+ case 8:
6544
+ error2 = _state.sent();
6545
+ reject(error2);
6546
+ return [
6547
+ 3,
6548
+ 9
6549
+ ];
6550
+ case 9:
6551
+ return [
6552
+ 3,
6553
+ 10
6554
+ ];
6555
+ case 10:
6556
+ return [
6557
+ 2
6558
+ ];
6559
+ }
6560
+ });
6561
+ })();
6562
+ return [
6563
+ 2
6564
+ ];
6565
+ }
6566
+ });
6567
+ });
6568
+ return function next() {
6569
+ return _ref.apply(this, arguments);
6570
+ };
6571
+ }();
6572
+ _async_to_generator(function() {
6573
+ var index, error;
6574
+ return _ts_generator(this, function(_state) {
6575
+ switch(_state.label){
6576
+ case 0:
6577
+ index = 0;
6578
+ _state.label = 1;
6579
+ case 1:
6580
+ if (!(index < concurrency)) return [
6581
+ 3,
6582
+ 7
6583
+ ];
6584
+ _state.label = 2;
6585
+ case 2:
6586
+ _state.trys.push([
6587
+ 2,
6588
+ 4,
6589
+ ,
6590
+ 5
6591
+ ]);
6592
+ return [
6593
+ 4,
6594
+ next()
6595
+ ];
6596
+ case 3:
6597
+ _state.sent();
6598
+ return [
6599
+ 3,
6600
+ 5
6601
+ ];
6602
+ case 4:
6603
+ error = _state.sent();
6604
+ reject(error);
6605
+ return [
6606
+ 3,
6607
+ 7
6608
+ ];
6609
+ case 5:
6610
+ if (isIterableDone || isRejected) {
6611
+ return [
6612
+ 3,
6613
+ 7
6614
+ ];
6615
+ }
6616
+ _state.label = 6;
6617
+ case 6:
6618
+ index++;
6619
+ return [
6620
+ 3,
6621
+ 1
6622
+ ];
6623
+ case 7:
6624
+ return [
6625
+ 2
6626
+ ];
6627
+ }
6628
+ });
6629
+ })();
6630
+ })
6631
+ ];
6632
+ });
6633
+ });
6634
+ return _pMap.apply(this, arguments);
6635
+ }
6636
+ var pMapSkip = Symbol("skip");
5713
6637
  // src/adapters/storage/responsesStorageAdapter/threads/runs/steps/get.ts
5714
- import { assign as assign10, last as last5 } from "radash";
5715
- // src/adapters/storage/responsesStorageAdapter/threads/runs/steps/serializeRunStep.ts
5716
- import dayjs16 from "dayjs";
5717
- import { uid as uid5 } from "radash";
5718
- var isConvMessage = function(i) {
5719
- return "type" in i && i.type === "message";
5720
- };
5721
- var isConvFn = function(i) {
5722
- return "type" in i && i.type === "function_call";
5723
- };
5724
- function serializeRunStep2(param) {
5725
- var item = param.item, threadId = param.threadId;
5726
- var now = dayjs16().unix();
5727
- var assistantId = "asst_".concat(uid5(24));
5728
- var runId = "run_".concat(uid5(24));
5729
- var itemId = typeof item.id === "string" ? item.id : "item_".concat(uid5(18));
6638
+ import { last as last4 } from "radash";
6639
+ // src/lib/items/serializeItemAsRunStep.ts
6640
+ import dayjs12 from "dayjs";
6641
+ import { uid as uid6 } from "radash";
6642
+ function serializeItemAsRunStep(param) {
6643
+ var item = param.item, items = param.items, threadId = param.threadId, openaiAssistant = param.openaiAssistant, _param_runId = param.runId, runId = _param_runId === void 0 ? "run_".concat(uid6(24)) : _param_runId, tmp = param.status, status3 = tmp === void 0 ? "completed" : tmp, _param_completedAt = param.completedAt, completedAt = _param_completedAt === void 0 ? dayjs12().unix() : _param_completedAt;
6644
+ var itemId = typeof item.id === "string" ? item.id : "item_".concat(uid6(18));
5730
6645
  var base = {
5731
6646
  id: itemId,
5732
- // <- always string
5733
6647
  object: "thread.run.step",
5734
- created_at: now,
5735
- assistant_id: assistantId,
6648
+ created_at: dayjs12().unix(),
6649
+ assistant_id: openaiAssistant.id,
5736
6650
  thread_id: threadId,
5737
6651
  run_id: runId,
5738
- status: "completed",
6652
+ status: status3,
5739
6653
  last_error: null,
5740
6654
  expired_at: null,
5741
6655
  cancelled_at: null,
5742
6656
  failed_at: null,
5743
- completed_at: now,
6657
+ completed_at: completedAt,
5744
6658
  metadata: {},
5745
6659
  usage: null
5746
6660
  };
5747
- if (isConvMessage(item)) {
6661
+ if (item.type === "message") {
5748
6662
  return _object_spread_props(_object_spread({}, base), {
5749
6663
  type: "message_creation",
5750
6664
  step_details: {
@@ -5760,16 +6674,17 @@ function serializeRunStep2(param) {
5760
6674
  } : {}
5761
6675
  });
5762
6676
  }
5763
- if (isConvFn(item)) {
5764
- var fn = item;
6677
+ if (item.type === "function_call") {
6678
+ var functionCallOutput = items.find(function(i) {
6679
+ return i.type === "function_call_output" && i.call_id === item.call_id;
6680
+ });
5765
6681
  var toolCall = {
5766
- // prefer itemId; if your client also exposes a separate call_id, you could fall back to it
5767
- id: itemId,
6682
+ id: item.call_id,
5768
6683
  type: "function",
5769
6684
  function: {
5770
- name: fn.name,
5771
- arguments: fn.arguments,
5772
- output: null
6685
+ name: item.name,
6686
+ arguments: item.arguments,
6687
+ output: functionCallOutput ? functionCallOutput.output : null
5773
6688
  }
5774
6689
  };
5775
6690
  return _object_spread_props(_object_spread({}, base), {
@@ -5789,44 +6704,108 @@ function serializeRunStep2(param) {
5789
6704
  message_creation: {
5790
6705
  message_id: itemId
5791
6706
  }
6707
+ },
6708
+ metadata: {
6709
+ item: JSON.stringify(item)
5792
6710
  }
5793
6711
  });
5794
6712
  }
5795
6713
  // src/adapters/storage/responsesStorageAdapter/threads/runs/steps/get.ts
5796
6714
  var get17 = function(param) {
5797
- var openai = param.openai;
6715
+ var client = param.client, runAdapter = param.runAdapter;
5798
6716
  return /*#__PURE__*/ function() {
5799
6717
  var _ref = _async_to_generator(function(urlString) {
5800
- var _last5, url, _url_pathname_match, threadId, runId, _assign10, limit, order, after, items, _last5_id;
6718
+ var _last4, url, _url_pathname_match, threadId, runId, response, functionCalls, functionCallOutputsResponses, functionCallOutputs, openaiAssistant, data, _last4_id;
5801
6719
  return _ts_generator(this, function(_state) {
5802
6720
  switch(_state.label){
5803
6721
  case 0:
5804
6722
  url = new URL(urlString);
5805
6723
  _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp(stepsRegexp)), 3), threadId = _url_pathname_match[1], runId = _url_pathname_match[2];
5806
- _assign10 = assign10({
5807
- limit: "20",
5808
- order: "desc"
5809
- }, Object.fromEntries(url.searchParams)), limit = _assign10.limit, order = _assign10.order, after = _assign10.after;
5810
6724
  return [
5811
6725
  4,
5812
- openai.conversations.items.list(threadId, {
5813
- limit: parseInt(limit),
5814
- after: after,
5815
- order: order
5816
- })
6726
+ client.responses.retrieve(runId)
6727
+ ];
6728
+ case 1:
6729
+ response = _state.sent();
6730
+ functionCalls = response.output.filter(function(item) {
6731
+ return item.type === "function_call";
6732
+ });
6733
+ return [
6734
+ 4,
6735
+ pMap(functionCalls, /*#__PURE__*/ function() {
6736
+ var _ref = _async_to_generator(function(functionCall) {
6737
+ var items;
6738
+ return _ts_generator(this, function(_state) {
6739
+ switch(_state.label){
6740
+ case 0:
6741
+ return [
6742
+ 4,
6743
+ client.conversations.items.list(threadId, {
6744
+ after: functionCall.id,
6745
+ order: "asc"
6746
+ })
6747
+ ];
6748
+ case 1:
6749
+ items = _state.sent();
6750
+ return [
6751
+ 2,
6752
+ items.data.find(function(item) {
6753
+ return item.type === "function_call_output" && item.call_id === functionCall.call_id;
6754
+ })
6755
+ ];
6756
+ }
6757
+ });
6758
+ });
6759
+ return function(functionCall) {
6760
+ return _ref.apply(this, arguments);
6761
+ };
6762
+ }())
6763
+ ];
6764
+ case 2:
6765
+ functionCallOutputsResponses = _state.sent();
6766
+ functionCallOutputs = functionCallOutputsResponses.filter(Boolean);
6767
+ return [
6768
+ 4,
6769
+ runAdapter.getOpenaiAssistant()
5817
6770
  ];
5818
- case 1:
5819
- items = _state.sent();
6771
+ case 3:
6772
+ openaiAssistant = _state.sent();
6773
+ data = response.output.flatMap(function(item) {
6774
+ var step = serializeItemAsRunStep({
6775
+ item: item,
6776
+ items: functionCallOutputs,
6777
+ threadId: threadId,
6778
+ openaiAssistant: openaiAssistant,
6779
+ runId: response.id
6780
+ });
6781
+ if (item.type === "function_call") {
6782
+ var synthCreation = {
6783
+ id: "mc".concat(item.id),
6784
+ run_id: response.id,
6785
+ status: "completed",
6786
+ completed_at: step.created_at,
6787
+ step_details: {
6788
+ type: "message_creation",
6789
+ message_creation: {
6790
+ message_id: item.id
6791
+ }
6792
+ }
6793
+ };
6794
+ return [
6795
+ synthCreation,
6796
+ step
6797
+ ];
6798
+ }
6799
+ return [
6800
+ step
6801
+ ];
6802
+ });
5820
6803
  return [
5821
6804
  2,
5822
6805
  new Response(JSON.stringify({
5823
- data: items.data.map(function(item) {
5824
- return serializeRunStep2({
5825
- item: item
5826
- });
5827
- }),
5828
- has_more: items.has_more,
5829
- last_id: (_last5_id = (_last5 = last5(items.data)) === null || _last5 === void 0 ? void 0 : _last5.id) !== null && _last5_id !== void 0 ? _last5_id : null
6806
+ data: data,
6807
+ has_more: false,
6808
+ last_id: (_last4_id = (_last4 = last4(response.output)) === null || _last4 === void 0 ? void 0 : _last4.id) !== null && _last4_id !== void 0 ? _last4_id : null
5830
6809
  }), {
5831
6810
  status: 200,
5832
6811
  headers: {
@@ -5844,10 +6823,11 @@ var get17 = function(param) {
5844
6823
  };
5845
6824
  // src/adapters/storage/responsesStorageAdapter/threads/runs/steps/index.ts
5846
6825
  var steps2 = function(param) {
5847
- var openai = param.openai;
6826
+ var client = param.client, runAdapter = param.runAdapter;
5848
6827
  return {
5849
6828
  get: get17({
5850
- openai: openai
6829
+ client: client,
6830
+ runAdapter: runAdapter
5851
6831
  })
5852
6832
  };
5853
6833
  };
@@ -5863,7 +6843,7 @@ var serializeTools3 = function(param) {
5863
6843
  })
5864
6844
  };
5865
6845
  };
5866
- var serializeInput = function(param) {
6846
+ var getFunctionCallOutputItems = function(param) {
5867
6847
  var tool_outputs = param.tool_outputs;
5868
6848
  return tool_outputs.map(function(toolOutput) {
5869
6849
  return {
@@ -5874,10 +6854,10 @@ var serializeInput = function(param) {
5874
6854
  });
5875
6855
  };
5876
6856
  var post18 = function(param) {
5877
- var openai = param.openai, openaiAssistant = param.openaiAssistant, runAdapter = param.runAdapter;
6857
+ var client = param.client, runAdapter = param.runAdapter;
5878
6858
  return /*#__PURE__*/ function() {
5879
6859
  var _ref = _async_to_generator(function(urlString, options) {
5880
- var url, _url_pathname_match, threadId, runId, body, tool_outputs, stream, response, readableStream;
6860
+ var url, _url_pathname_match, threadId, runId, body, tool_outputs, stream, functionCallOutputItems, previousResponse, openaiAssistant, response, readableStream;
5881
6861
  return _ts_generator(this, function(_state) {
5882
6862
  switch(_state.label){
5883
6863
  case 0:
@@ -5885,18 +6865,26 @@ var post18 = function(param) {
5885
6865
  _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp(submitToolOutputsRegexp)), 3), threadId = _url_pathname_match[1], runId = _url_pathname_match[2];
5886
6866
  body = JSON.parse(options.body);
5887
6867
  tool_outputs = body.tool_outputs, stream = body.stream;
5888
- console.dir({
5889
- body: body
5890
- }, {
5891
- depth: null
6868
+ functionCallOutputItems = getFunctionCallOutputItems({
6869
+ tool_outputs: tool_outputs
5892
6870
  });
5893
6871
  return [
5894
6872
  4,
5895
- openai.responses.create(_object_spread({
6873
+ client.responses.retrieve(runId)
6874
+ ];
6875
+ case 1:
6876
+ previousResponse = _state.sent();
6877
+ return [
6878
+ 4,
6879
+ runAdapter.getOpenaiAssistant()
6880
+ ];
6881
+ case 2:
6882
+ openaiAssistant = _state.sent();
6883
+ return [
6884
+ 4,
6885
+ client.responses.create(_object_spread({
5896
6886
  conversation: threadId,
5897
- input: serializeInput({
5898
- tool_outputs: tool_outputs
5899
- }),
6887
+ input: functionCallOutputItems,
5900
6888
  instructions: openaiAssistant.instructions,
5901
6889
  model: openaiAssistant.model,
5902
6890
  // metadata,
@@ -5905,7 +6893,7 @@ var post18 = function(param) {
5905
6893
  tools: openaiAssistant.tools
5906
6894
  })))
5907
6895
  ];
5908
- case 1:
6896
+ case 3:
5909
6897
  response = _state.sent();
5910
6898
  readableStream = new ReadableStream({
5911
6899
  start: function start(controller) {
@@ -5913,11 +6901,29 @@ var post18 = function(param) {
5913
6901
  return _ts_generator(this, function(_state) {
5914
6902
  switch(_state.label){
5915
6903
  case 0:
6904
+ functionCallOutputItems.forEach(function(item) {
6905
+ var functionCallItem = previousResponse.output.find(function(i) {
6906
+ return i.type === "function_call" && i.call_id === item.call_id;
6907
+ });
6908
+ if (!functionCallItem) {
6909
+ return;
6910
+ }
6911
+ controller.enqueue("data: ".concat(JSON.stringify({
6912
+ event: "thread.run.step.completed",
6913
+ data: serializeItemAsRunStep({
6914
+ item: functionCallItem,
6915
+ items: functionCallOutputItems,
6916
+ threadId: threadId,
6917
+ openaiAssistant: openaiAssistant,
6918
+ runId: runId
6919
+ })
6920
+ }), "\n\n"));
6921
+ });
5916
6922
  return [
5917
6923
  4,
5918
- runAdapter({
6924
+ runAdapter.handleRun({
6925
+ threadId: threadId,
5919
6926
  response: response,
5920
- // run: serializeRun({ run }),
5921
6927
  onEvent: /*#__PURE__*/ function() {
5922
6928
  var _ref = _async_to_generator(function(event) {
5923
6929
  return _ts_generator(this, function(_state) {
@@ -5962,387 +6968,220 @@ var post18 = function(param) {
5962
6968
  };
5963
6969
  // src/adapters/storage/responsesStorageAdapter/threads/runs/submitToolOutputs/index.ts
5964
6970
  var submitToolOutputs2 = function(param) {
5965
- var openai = param.openai, openaiAssistant = param.openaiAssistant, runAdapter = param.runAdapter;
6971
+ var client = param.client, runAdapter = param.runAdapter;
5966
6972
  return {
5967
6973
  post: post18({
5968
- openai: openai,
5969
- openaiAssistant: openaiAssistant,
5970
- // @ts-ignore-next-line
6974
+ client: client,
5971
6975
  runAdapter: runAdapter
5972
6976
  })
5973
6977
  };
5974
6978
  };
5975
- // src/adapters/storage/responsesStorageAdapter/assistants/post.ts
5976
- var post19 = function(param) {
5977
- var openai = param.openai;
6979
+ // src/adapters/storage/responsesStorageAdapter/assistants/get.ts
6980
+ var get18 = function(param) {
6981
+ var runAdapter = param.runAdapter;
5978
6982
  return /*#__PURE__*/ function() {
5979
- var _ref = _async_to_generator(function(_url, options) {
5980
- var body, model, instructions;
6983
+ var _ref = _async_to_generator(function(urlString) {
6984
+ var _, _1, _tmp;
5981
6985
  return _ts_generator(this, function(_state) {
5982
- body = JSON.parse(options.body);
5983
- model = body.model, instructions = body.instructions;
5984
- throw new Error("Not implemented");
6986
+ switch(_state.label){
6987
+ case 0:
6988
+ _ = Response.bind;
6989
+ _1 = JSON.stringify;
6990
+ _tmp = {};
6991
+ return [
6992
+ 4,
6993
+ runAdapter.getOpenaiAssistant()
6994
+ ];
6995
+ case 1:
6996
+ _tmp.data = [
6997
+ _state.sent()
6998
+ ], _tmp.has_more = false;
6999
+ return [
7000
+ 4,
7001
+ runAdapter.getOpenaiAssistant()
7002
+ ];
7003
+ case 2:
7004
+ return [
7005
+ 2,
7006
+ new (_.apply(Response, [
7007
+ void 0,
7008
+ _1.apply(JSON, [
7009
+ (_tmp.last_id = _state.sent().id, _tmp)
7010
+ ]),
7011
+ {
7012
+ status: 200,
7013
+ headers: {
7014
+ "Content-Type": "application/json"
7015
+ }
7016
+ }
7017
+ ]))
7018
+ ];
7019
+ }
5985
7020
  });
5986
7021
  });
5987
- return function(_url, options) {
7022
+ return function(urlString) {
5988
7023
  return _ref.apply(this, arguments);
5989
7024
  };
5990
7025
  }();
5991
7026
  };
7027
+ // src/adapters/storage/responsesStorageAdapter/assistants/post.ts
7028
+ var post19 = function() {
7029
+ return /*#__PURE__*/ _async_to_generator(function() {
7030
+ return _ts_generator(this, function(_state) {
7031
+ return [
7032
+ 2,
7033
+ new Response(JSON.stringify({
7034
+ error: {
7035
+ message: "Assistant creation is not implemented for the Responses storage adapter.",
7036
+ type: "not_implemented"
7037
+ }
7038
+ }), {
7039
+ status: 501,
7040
+ headers: {
7041
+ "Content-Type": "application/json"
7042
+ }
7043
+ })
7044
+ ];
7045
+ });
7046
+ });
7047
+ };
5992
7048
  // src/adapters/storage/responsesStorageAdapter/assistants/index.ts
5993
7049
  var assistants2 = function(param) {
5994
- var openai = param.openai;
7050
+ var runAdapter = param.runAdapter;
5995
7051
  return {
5996
- post: post19({
5997
- openai: openai
5998
- })
7052
+ get: get18({
7053
+ runAdapter: runAdapter
7054
+ }),
7055
+ post: post19()
5999
7056
  };
6000
7057
  };
6001
7058
  // src/adapters/storage/responsesStorageAdapter/index.ts
6002
- var responsesStorageAdapter = function(param) {
6003
- var openai = param.openai, openaiAssistant = param.openaiAssistant;
7059
+ var responsesStorageAdapter = function() {
7060
+ var createResponseItems = [];
6004
7061
  return function(param) {
6005
- var runAdapter = param.runAdapter;
7062
+ var runAdapter = param.runAdapter, client = param.client;
6006
7063
  var _obj;
6007
7064
  return {
6008
7065
  requestHandlers: (_obj = {
6009
- "^/(?:v1/|openai/)?assistants$": assistants2({
6010
- openai: openai
7066
+ "^/(?:v1|/?openai)/assistants$": assistants2({
7067
+ runAdapter: runAdapter
6011
7068
  }),
6012
7069
  "^/(?:v1|/?openai)/threads$": threads2({
6013
- openai: openai
7070
+ client: client
6014
7071
  })
6015
7072
  }, _define_property(_obj, messagesRegexp, messages3({
6016
- openai: openai
7073
+ client: client,
7074
+ runAdapter: runAdapter,
7075
+ createResponseItems: createResponseItems
6017
7076
  })), _define_property(_obj, runsRegexp, runs2({
6018
- openai: openai,
6019
- openaiAssistant: openaiAssistant,
6020
- runAdapter: runAdapter
6021
- })), _define_property(_obj, runRegexp, run3({
6022
- openai: openai,
7077
+ client: client,
7078
+ runAdapter: runAdapter,
7079
+ createResponseItems: createResponseItems
7080
+ })), _define_property(_obj, runRegexp, run2({
7081
+ client: client,
6023
7082
  runAdapter: runAdapter
6024
7083
  })), _define_property(_obj, stepsRegexp, steps2({
6025
- openai: openai
7084
+ client: client,
7085
+ runAdapter: runAdapter
6026
7086
  })), _define_property(_obj, submitToolOutputsRegexp, submitToolOutputs2({
6027
- openai: openai,
6028
- openaiAssistant: openaiAssistant,
7087
+ client: client,
6029
7088
  runAdapter: runAdapter
6030
7089
  })), _obj)
6031
7090
  };
6032
7091
  };
6033
7092
  };
6034
7093
  // src/adapters/run/responsesRunAdapter/index.ts
6035
- import dayjs17 from "dayjs";
6036
- import { uid as uid6 } from "radash";
6037
- var responsesRunAdapter = function() {
6038
- return /*#__PURE__*/ function() {
6039
- var _ref = _async_to_generator(function(param) {
6040
- 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;
7094
+ import dayjs13 from "dayjs";
7095
+ import { uid as uid7 } from "radash";
7096
+ var serializeToolCalls2 = function(param) {
7097
+ var toolCalls = param.toolCalls;
7098
+ return toolCalls.map(function(toolCall) {
7099
+ return {
7100
+ id: toolCall.call_id,
7101
+ type: "function",
7102
+ function: {
7103
+ name: toolCall.name,
7104
+ arguments: toolCall.arguments
7105
+ }
7106
+ };
7107
+ });
7108
+ };
7109
+ var responsesRunAdapter = function(param) {
7110
+ var getDirectOpenaiAssistant = param.getOpenaiAssistant;
7111
+ var cachedOpenaiAssistant = null;
7112
+ var getOpenaiAssistant = /*#__PURE__*/ function() {
7113
+ var _ref = _async_to_generator(function() {
6041
7114
  return _ts_generator(this, function(_state) {
6042
7115
  switch(_state.label){
6043
7116
  case 0:
6044
- response = param.response, onEvent2 = param.onEvent;
6045
- now = dayjs17().unix();
6046
- runId = "run_".concat(uid6(18));
6047
- threadId = "thread_".concat(uid6(18));
6048
- asstId = "asst_".concat(uid6(18));
6049
- model = "unknown";
6050
- msg = {
6051
- id: "msg_".concat(uid6(18)),
6052
- object: "thread.message",
6053
- role: "assistant",
6054
- thread_id: threadId,
6055
- run_id: runId,
6056
- assistant_id: asstId,
6057
- created_at: now,
6058
- status: "in_progress",
6059
- content: [
6060
- {
6061
- type: "text",
6062
- text: {
6063
- value: "",
6064
- annotations: []
6065
- }
6066
- }
6067
- ]
6068
- };
6069
- itemToCallId = /* @__PURE__ */ new Map();
6070
- callsById = /* @__PURE__ */ new Map();
6071
- callOrder = [];
6072
- toolCallsStepId = null;
6073
- sawToolCalls = false;
6074
- return [
6075
- 4,
6076
- onEvent2({
6077
- event: "thread.run.created",
6078
- data: {
6079
- id: runId,
6080
- object: "thread.run",
6081
- thread_id: threadId,
6082
- assistant_id: asstId,
6083
- created_at: now,
6084
- status: "queued",
6085
- model: model
6086
- }
6087
- })
7117
+ if (cachedOpenaiAssistant) return [
7118
+ 2,
7119
+ cachedOpenaiAssistant
6088
7120
  ];
6089
- case 1:
6090
- _state.sent();
6091
7121
  return [
6092
7122
  4,
6093
- onEvent2({
6094
- event: "thread.run.in_progress",
6095
- data: {
6096
- id: runId,
6097
- object: "thread.run",
6098
- thread_id: threadId,
6099
- assistant_id: asstId,
6100
- created_at: now,
6101
- status: "in_progress",
6102
- model: model
6103
- }
6104
- })
7123
+ getDirectOpenaiAssistant()
6105
7124
  ];
6106
- case 2:
6107
- _state.sent();
7125
+ case 1:
7126
+ cachedOpenaiAssistant = _state.sent();
6108
7127
  return [
6109
- 4,
6110
- onEvent2({
6111
- event: "thread.message.created",
6112
- data: msg
6113
- })
7128
+ 2,
7129
+ cachedOpenaiAssistant
6114
7130
  ];
6115
- case 3:
6116
- _state.sent();
6117
- ensureToolCallsStep = /*#__PURE__*/ function() {
6118
- var _ref = _async_to_generator(function() {
6119
- return _ts_generator(this, function(_state) {
6120
- switch(_state.label){
6121
- case 0:
6122
- if (toolCallsStepId) return [
6123
- 2
6124
- ];
6125
- toolCallsStepId = "step_".concat(uid6(18));
6126
- return [
6127
- 4,
6128
- onEvent2({
6129
- event: "thread.run.step.created",
6130
- data: {
6131
- id: toolCallsStepId,
6132
- object: "thread.run.step",
6133
- run_id: runId,
6134
- assistant_id: asstId,
6135
- thread_id: threadId,
6136
- type: "tool_calls",
6137
- status: "in_progress",
6138
- created_at: dayjs17().unix(),
6139
- completed_at: null,
6140
- step_details: {
6141
- type: "tool_calls",
6142
- tool_calls: []
6143
- }
6144
- }
6145
- })
6146
- ];
6147
- case 1:
6148
- _state.sent();
6149
- return [
6150
- 2
6151
- ];
6152
- }
6153
- });
6154
- });
6155
- return function ensureToolCallsStep() {
6156
- return _ref.apply(this, arguments);
6157
- };
6158
- }();
6159
- emitTextDelta = /*#__PURE__*/ function() {
6160
- var _ref = _async_to_generator(function(chunk) {
6161
- return _ts_generator(this, function(_state) {
6162
- switch(_state.label){
6163
- case 0:
6164
- if (!chunk) return [
6165
- 2
6166
- ];
6167
- return [
6168
- 4,
6169
- onEvent2({
6170
- event: "thread.message.delta",
6171
- data: {
6172
- id: msg.id,
6173
- delta: {
6174
- content: [
6175
- {
6176
- type: "text",
6177
- index: 0,
6178
- text: {
6179
- value: chunk
6180
- }
6181
- }
6182
- ]
6183
- }
6184
- }
6185
- })
6186
- ];
6187
- case 1:
6188
- _state.sent();
6189
- msg.content[0].text.value += chunk;
6190
- return [
6191
- 2
6192
- ];
6193
- }
6194
- });
6195
- });
6196
- return function emitTextDelta(chunk) {
6197
- return _ref.apply(this, arguments);
6198
- };
6199
- }();
6200
- getOrCreateToolCall = function(callId, name) {
6201
- var tc = callsById.get(callId);
6202
- if (!tc) {
6203
- tc = {
6204
- id: callId,
6205
- type: "function",
6206
- function: {
6207
- name: name || "unknown_function",
6208
- arguments: ""
6209
- }
6210
- };
6211
- callsById.set(callId, tc);
6212
- callOrder.push(callId);
6213
- } else if (name && tc.function.name === "unknown_function") {
6214
- tc.function.name = name;
6215
- }
6216
- return tc;
6217
- };
6218
- emitToolArgsDelta = /*#__PURE__*/ function() {
6219
- var _ref = _async_to_generator(function(callId, name, argsDelta) {
6220
- return _ts_generator(this, function(_state) {
6221
- switch(_state.label){
6222
- case 0:
6223
- if (!toolCallsStepId) return [
6224
- 2
6225
- ];
6226
- return [
6227
- 4,
6228
- onEvent2({
6229
- event: "thread.run.step.delta",
6230
- data: {
6231
- object: "thread.run.step.delta",
6232
- run_id: runId,
6233
- id: toolCallsStepId,
6234
- delta: {
6235
- step_details: {
6236
- type: "tool_calls",
6237
- tool_calls: [
6238
- {
6239
- id: callId,
6240
- // IMPORTANT: stable call_id in deltas too
6241
- type: "function",
6242
- function: {
6243
- name: name,
6244
- arguments: argsDelta || ""
6245
- }
6246
- }
6247
- ]
6248
- }
6249
- }
6250
- }
6251
- })
6252
- ];
6253
- case 1:
6254
- _state.sent();
6255
- return [
6256
- 2
6257
- ];
6258
- }
6259
- });
6260
- });
6261
- return function emitToolArgsDelta(callId, name, argsDelta) {
6262
- return _ref.apply(this, arguments);
6263
- };
6264
- }();
6265
- completeToolCallsStep = /*#__PURE__*/ function() {
6266
- var _ref = _async_to_generator(function() {
6267
- return _ts_generator(this, function(_state) {
6268
- switch(_state.label){
6269
- case 0:
6270
- if (!toolCallsStepId) return [
6271
- 2
6272
- ];
6273
- return [
6274
- 4,
6275
- onEvent2({
6276
- event: "thread.run.step.completed",
6277
- data: {
6278
- id: toolCallsStepId,
6279
- object: "thread.run.step",
6280
- run_id: runId,
6281
- assistant_id: asstId,
6282
- thread_id: threadId,
6283
- type: "tool_calls",
6284
- status: "completed",
6285
- created_at: now,
6286
- completed_at: dayjs17().unix(),
6287
- step_details: {
6288
- type: "tool_calls",
6289
- tool_calls: callOrder.map(function(cid) {
6290
- return callsById.get(cid);
6291
- })
6292
- }
6293
- }
6294
- })
6295
- ];
6296
- case 1:
6297
- _state.sent();
6298
- return [
6299
- 2
6300
- ];
6301
- }
6302
- });
6303
- });
6304
- return function completeToolCallsStep() {
6305
- return _ref.apply(this, arguments);
6306
- };
6307
- }();
6308
- _state.label = 4;
6309
- case 4:
7131
+ }
7132
+ });
7133
+ });
7134
+ return function getOpenaiAssistant() {
7135
+ return _ref.apply(this, arguments);
7136
+ };
7137
+ }();
7138
+ var handleRun = /*#__PURE__*/ function() {
7139
+ var _ref = _async_to_generator(function(param) {
7140
+ var client, threadId, response, onEvent2, responseCreatedResponse, toolCalls, itemIds, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, event, _, _tmp, _tmp1, _tmp2, _tmp3, toolCalls2, _tmp4, _tmp5, _tmp6, _tmp7, _tmp8, _tmp9, _tmp10, _tmp11, _tmp12, _tmp13, _tmp14, _tmp15, _tmp16, _tmp17, _tmp18, _tmp19, _tmp20, _tmp21, _tmp22, toolCall, err, e, _tmp23, _tmp24;
7141
+ return _ts_generator(this, function(_state) {
7142
+ switch(_state.label){
7143
+ case 0:
7144
+ client = param.client, threadId = param.threadId, response = param.response, onEvent2 = param.onEvent;
7145
+ responseCreatedResponse = null;
7146
+ toolCalls = {};
7147
+ itemIds = [];
7148
+ _state.label = 1;
7149
+ case 1:
6310
7150
  _state.trys.push([
6311
- 4,
6312
- 41,
6313
- ,
6314
- 43
7151
+ 1,
7152
+ 53,
7153
+ 56,
7154
+ 59
6315
7155
  ]);
6316
7156
  _iteratorAbruptCompletion = false, _didIteratorError = false;
6317
- _state.label = 5;
6318
- case 5:
7157
+ _state.label = 2;
7158
+ case 2:
6319
7159
  _state.trys.push([
6320
- 5,
6321
- 34,
6322
- 35,
6323
- 40
7160
+ 2,
7161
+ 46,
7162
+ 47,
7163
+ 52
6324
7164
  ]);
6325
7165
  _iterator = _async_iterator(response);
6326
- _state.label = 6;
6327
- case 6:
7166
+ _state.label = 3;
7167
+ case 3:
6328
7168
  return [
6329
7169
  4,
6330
7170
  _iterator.next()
6331
7171
  ];
6332
- case 7:
7172
+ case 4:
6333
7173
  if (!(_iteratorAbruptCompletion = !(_step = _state.sent()).done)) return [
6334
7174
  3,
6335
- 33
7175
+ 45
6336
7176
  ];
6337
7177
  _value = _step.value;
6338
- evt = _value;
6339
- t = evt === null || evt === void 0 ? void 0 : evt.type;
6340
- 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;
6341
- switch(t){
7178
+ event = _value;
7179
+ _ = event.type;
7180
+ switch(_){
6342
7181
  case "response.created":
6343
7182
  return [
6344
7183
  3,
6345
- 8
7184
+ 5
6346
7185
  ];
6347
7186
  case "response.in_progress":
6348
7187
  return [
@@ -6352,363 +7191,573 @@ var responsesRunAdapter = function() {
6352
7191
  case "response.completed":
6353
7192
  return [
6354
7193
  3,
6355
- 9
6356
- ];
6357
- case "response.error":
6358
- return [
6359
- 3,
6360
- 16
7194
+ 11
6361
7195
  ];
6362
- case "response.output_text.delta":
7196
+ case "response.failed":
6363
7197
  return [
6364
7198
  3,
6365
7199
  18
6366
7200
  ];
6367
- case "response.output_text.done":
7201
+ case "response.output_text.delta":
6368
7202
  return [
6369
7203
  3,
6370
- 20
7204
+ 21
6371
7205
  ];
6372
7206
  case "response.output_item.added":
6373
7207
  return [
6374
7208
  3,
6375
7209
  23
6376
7210
  ];
6377
- case "response.output_item.done":
6378
- return [
6379
- 3,
6380
- 26
6381
- ];
6382
- case "response.function_call_arguments.delta":
7211
+ case "response.output_item.done":
6383
7212
  return [
6384
7213
  3,
6385
- 27
7214
+ 32
6386
7215
  ];
6387
- case "response.function_call_arguments.done":
7216
+ case "response.function_call_arguments.delta":
6388
7217
  return [
6389
7218
  3,
6390
- 30
7219
+ 41
6391
7220
  ];
6392
7221
  }
6393
7222
  return [
6394
7223
  3,
6395
- 31
7224
+ 43
6396
7225
  ];
6397
- case 8:
7226
+ case 5:
7227
+ responseCreatedResponse = event.response;
7228
+ _tmp = {
7229
+ event: "thread.run.created"
7230
+ };
7231
+ _tmp1 = {
7232
+ response: event.response
7233
+ };
7234
+ return [
7235
+ 4,
7236
+ getOpenaiAssistant()
7237
+ ];
7238
+ case 6:
7239
+ return [
7240
+ 4,
7241
+ onEvent2.apply(void 0, [
7242
+ (_tmp.data = serializeResponseAsRun.apply(void 0, [
7243
+ (_tmp1.assistantId = _state.sent().id, _tmp1)
7244
+ ]), _tmp)
7245
+ ])
7246
+ ];
7247
+ case 7:
7248
+ _state.sent();
6398
7249
  return [
6399
7250
  3,
6400
- 32
7251
+ 44
7252
+ ];
7253
+ case 8:
7254
+ _tmp2 = {
7255
+ event: "thread.run.in_progress"
7256
+ };
7257
+ _tmp3 = {
7258
+ response: event.response
7259
+ };
7260
+ return [
7261
+ 4,
7262
+ getOpenaiAssistant()
6401
7263
  ];
6402
7264
  case 9:
6403
7265
  return [
6404
7266
  4,
6405
- onEvent2({
6406
- event: "thread.message.completed",
6407
- data: _object_spread_props(_object_spread({}, msg), {
6408
- status: "completed"
6409
- })
6410
- })
7267
+ onEvent2.apply(void 0, [
7268
+ (_tmp2.data = serializeResponseAsRun.apply(void 0, [
7269
+ (_tmp3.assistantId = _state.sent().id, _tmp3)
7270
+ ]), _tmp2)
7271
+ ])
6411
7272
  ];
6412
7273
  case 10:
6413
7274
  _state.sent();
6414
- if (!sawToolCalls) return [
7275
+ return [
7276
+ 3,
7277
+ 44
7278
+ ];
7279
+ case 11:
7280
+ itemIds = event.response.output.filter(function(o) {
7281
+ return o.id;
7282
+ }).map(function(o) {
7283
+ return o.id;
7284
+ });
7285
+ toolCalls2 = event.response.output.filter(function(o) {
7286
+ return o.type === "function_call";
7287
+ });
7288
+ if (!(toolCalls2.length > 0)) return [
6415
7289
  3,
6416
- 13
7290
+ 14
7291
+ ];
7292
+ _tmp4 = {
7293
+ event: "thread.run.requires_action"
7294
+ };
7295
+ _tmp5 = [
7296
+ {}
6417
7297
  ];
7298
+ _tmp6 = {
7299
+ response: event.response
7300
+ };
6418
7301
  return [
6419
7302
  4,
6420
- completeToolCallsStep()
7303
+ getOpenaiAssistant()
6421
7304
  ];
6422
- case 11:
6423
- _state.sent();
6424
- finalCalls = callOrder.map(function(cid) {
6425
- return callsById.get(cid);
6426
- }).filter(Boolean);
7305
+ case 12:
6427
7306
  return [
6428
7307
  4,
6429
- onEvent2({
6430
- event: "thread.run.requires_action",
6431
- data: {
6432
- id: runId,
6433
- object: "thread.run",
6434
- thread_id: threadId,
6435
- assistant_id: asstId,
6436
- status: "requires_action",
6437
- required_action: {
6438
- type: "submit_tool_outputs",
6439
- submit_tool_outputs: {
6440
- // IMPORTANT: these must be keyed by stable call_id
6441
- tool_calls: finalCalls
7308
+ onEvent2.apply(void 0, [
7309
+ (_tmp4.data = _object_spread.apply(void 0, _tmp5.concat([
7310
+ serializeResponseAsRun.apply(void 0, [
7311
+ (_tmp6.assistantId = _state.sent().id, _tmp6)
7312
+ ]),
7313
+ {
7314
+ status: "requires_action",
7315
+ required_action: {
7316
+ type: "submit_tool_outputs",
7317
+ submit_tool_outputs: {
7318
+ tool_calls: serializeToolCalls2({
7319
+ toolCalls: toolCalls2
7320
+ })
7321
+ }
6442
7322
  }
6443
7323
  }
6444
- }
6445
- })
7324
+ ])), _tmp4)
7325
+ ])
6446
7326
  ];
6447
- case 12:
7327
+ case 13:
6448
7328
  _state.sent();
6449
7329
  return [
6450
7330
  3,
6451
- 15
7331
+ 17
6452
7332
  ];
6453
- case 13:
7333
+ case 14:
7334
+ _tmp7 = {
7335
+ event: "thread.run.completed"
7336
+ };
7337
+ _tmp8 = {
7338
+ response: event.response
7339
+ };
6454
7340
  return [
6455
7341
  4,
6456
- onEvent2({
6457
- event: "thread.run.completed",
6458
- data: {
6459
- id: runId,
6460
- object: "thread.run",
6461
- thread_id: threadId,
6462
- assistant_id: asstId,
6463
- status: "completed",
6464
- completed_at: dayjs17().unix()
6465
- }
6466
- })
7342
+ getOpenaiAssistant()
6467
7343
  ];
6468
- case 14:
6469
- _state.sent();
6470
- _state.label = 15;
6471
7344
  case 15:
6472
7345
  return [
6473
- 3,
6474
- 32
7346
+ 4,
7347
+ onEvent2.apply(void 0, [
7348
+ (_tmp7.data = serializeResponseAsRun.apply(void 0, [
7349
+ (_tmp8.assistantId = _state.sent().id, _tmp8)
7350
+ ]), _tmp7)
7351
+ ])
6475
7352
  ];
6476
7353
  case 16:
7354
+ _state.sent();
7355
+ _state.label = 17;
7356
+ case 17:
7357
+ return [
7358
+ 3,
7359
+ 44
7360
+ ];
7361
+ case 18:
7362
+ _tmp9 = {
7363
+ event: "thread.run.failed"
7364
+ };
7365
+ _tmp10 = {
7366
+ response: event.response
7367
+ };
7368
+ return [
7369
+ 4,
7370
+ getOpenaiAssistant()
7371
+ ];
7372
+ case 19:
7373
+ return [
7374
+ 4,
7375
+ onEvent2.apply(void 0, [
7376
+ (_tmp9.data = serializeResponseAsRun.apply(void 0, [
7377
+ (_tmp10.assistantId = _state.sent().id, _tmp10)
7378
+ ]), _tmp9)
7379
+ ])
7380
+ ];
7381
+ case 20:
7382
+ _state.sent();
7383
+ return [
7384
+ 3,
7385
+ 44
7386
+ ];
7387
+ case 21:
6477
7388
  return [
6478
7389
  4,
6479
7390
  onEvent2({
6480
- event: "thread.run.failed",
7391
+ event: "thread.message.delta",
6481
7392
  data: {
6482
- id: runId,
6483
- object: "thread.run",
6484
- thread_id: threadId,
6485
- assistant_id: asstId,
6486
- status: "failed",
6487
- failed_at: dayjs17().unix(),
6488
- last_error: {
6489
- code: (evt === null || evt === void 0 ? void 0 : (_evt_error = evt.error) === null || _evt_error === void 0 ? void 0 : _evt_error.code) || "server_error",
6490
- message: (evt === null || evt === void 0 ? void 0 : (_evt_error1 = evt.error) === null || _evt_error1 === void 0 ? void 0 : _evt_error1.message) || "Unknown error"
7393
+ id: event.item_id,
7394
+ delta: {
7395
+ content: [
7396
+ {
7397
+ type: "text",
7398
+ index: event.output_index - 1,
7399
+ text: {
7400
+ value: event.delta
7401
+ }
7402
+ }
7403
+ ]
6491
7404
  }
6492
7405
  }
6493
7406
  })
6494
7407
  ];
6495
- case 17:
7408
+ case 22:
6496
7409
  _state.sent();
6497
7410
  return [
6498
7411
  3,
6499
- 32
7412
+ 44
6500
7413
  ];
6501
- case 18:
6502
- delta = typeof (evt === null || evt === void 0 ? void 0 : evt.delta) === "string" ? evt.delta : "";
7414
+ case 23:
7415
+ if (!(event.item.type === "message")) return [
7416
+ 3,
7417
+ 28
7418
+ ];
7419
+ _tmp11 = {
7420
+ event: "thread.run.step.created"
7421
+ };
7422
+ _tmp12 = {
7423
+ item: event.item,
7424
+ items: [],
7425
+ threadId: threadId
7426
+ };
6503
7427
  return [
6504
7428
  4,
6505
- emitTextDelta(delta)
7429
+ getOpenaiAssistant()
6506
7430
  ];
6507
- case 19:
7431
+ case 24:
7432
+ return [
7433
+ 4,
7434
+ onEvent2.apply(void 0, [
7435
+ (_tmp11.data = serializeItemAsRunStep.apply(void 0, [
7436
+ (_tmp12.openaiAssistant = _state.sent(), _tmp12.runId = responseCreatedResponse.id, _tmp12.status = "in_progress", _tmp12.completedAt = null, _tmp12)
7437
+ ]), _tmp11)
7438
+ ])
7439
+ ];
7440
+ case 25:
7441
+ _state.sent();
7442
+ _tmp13 = {
7443
+ event: "thread.message.created"
7444
+ };
7445
+ _tmp14 = {
7446
+ item: event.item,
7447
+ threadId: threadId
7448
+ };
7449
+ return [
7450
+ 4,
7451
+ getOpenaiAssistant()
7452
+ ];
7453
+ case 26:
7454
+ return [
7455
+ 4,
7456
+ onEvent2.apply(void 0, [
7457
+ (_tmp13.data = serializeItemAsMessage.apply(void 0, [
7458
+ (_tmp14.openaiAssistant = _state.sent(), _tmp14.createdAt = dayjs13().unix(), _tmp14.runId = responseCreatedResponse.id, _tmp14.status = "in_progress", _tmp14)
7459
+ ]), _tmp13)
7460
+ ])
7461
+ ];
7462
+ case 27:
6508
7463
  _state.sent();
6509
7464
  return [
6510
7465
  3,
6511
- 32
7466
+ 31
6512
7467
  ];
6513
- case 20:
6514
- finalText = typeof (evt === null || evt === void 0 ? void 0 : evt.text) === "string" ? evt.text : "";
6515
- if (!finalText) return [
7468
+ case 28:
7469
+ if (!(event.item.type === "function_call")) return [
6516
7470
  3,
6517
- 22
7471
+ 31
6518
7472
  ];
7473
+ toolCalls[event.item.id] = event.item;
7474
+ _tmp15 = {
7475
+ event: "thread.run.step.created"
7476
+ };
7477
+ _tmp16 = {
7478
+ item: event.item,
7479
+ items: [],
7480
+ threadId: threadId
7481
+ };
6519
7482
  return [
6520
7483
  4,
6521
- emitTextDelta(finalText)
7484
+ getOpenaiAssistant()
6522
7485
  ];
6523
- case 21:
7486
+ case 29:
7487
+ return [
7488
+ 4,
7489
+ onEvent2.apply(void 0, [
7490
+ (_tmp15.data = serializeItemAsRunStep.apply(void 0, [
7491
+ (_tmp16.openaiAssistant = _state.sent(), _tmp16.runId = responseCreatedResponse.id, _tmp16)
7492
+ ]), _tmp15)
7493
+ ])
7494
+ ];
7495
+ case 30:
6524
7496
  _state.sent();
6525
- _state.label = 22;
6526
- case 22:
7497
+ _state.label = 31;
7498
+ case 31:
7499
+ if (event.item.id) itemIds.push(event.item.id);
6527
7500
  return [
6528
7501
  3,
6529
- 32
7502
+ 44
6530
7503
  ];
6531
- case 23:
6532
- item = evt === null || evt === void 0 ? void 0 : evt.item;
6533
- if (!((item === null || item === void 0 ? void 0 : item.type) === "function_call")) return [
7504
+ case 32:
7505
+ if (!(event.item.type === "message")) return [
6534
7506
  3,
6535
- 25
7507
+ 37
6536
7508
  ];
6537
- itemId = item === null || item === void 0 ? void 0 : item.id;
6538
- callId = item === null || item === void 0 ? void 0 : item.call_id;
6539
- name = item === null || item === void 0 ? void 0 : item.name;
6540
- if (!(itemId && callId)) return [
6541
- 3,
6542
- 25
7509
+ _tmp17 = {
7510
+ event: "thread.run.step.completed"
7511
+ };
7512
+ _tmp18 = {
7513
+ item: event.item,
7514
+ items: [],
7515
+ threadId: threadId
7516
+ };
7517
+ return [
7518
+ 4,
7519
+ getOpenaiAssistant()
6543
7520
  ];
6544
- itemToCallId.set(itemId, callId);
6545
- getOrCreateToolCall(callId, name);
7521
+ case 33:
6546
7522
  return [
6547
7523
  4,
6548
- ensureToolCallsStep()
7524
+ onEvent2.apply(void 0, [
7525
+ (_tmp17.data = serializeItemAsRunStep.apply(void 0, [
7526
+ (_tmp18.openaiAssistant = _state.sent(), _tmp18.runId = responseCreatedResponse.id, _tmp18)
7527
+ ]), _tmp17)
7528
+ ])
6549
7529
  ];
6550
- case 24:
7530
+ case 34:
6551
7531
  _state.sent();
6552
- sawToolCalls = true;
6553
- _state.label = 25;
6554
- case 25:
7532
+ _tmp19 = {
7533
+ event: "thread.message.completed"
7534
+ };
7535
+ _tmp20 = {
7536
+ item: event.item,
7537
+ threadId: threadId
7538
+ };
6555
7539
  return [
6556
- 3,
6557
- 32
7540
+ 4,
7541
+ getOpenaiAssistant()
6558
7542
  ];
6559
- case 26:
7543
+ case 35:
7544
+ return [
7545
+ 4,
7546
+ onEvent2.apply(void 0, [
7547
+ (_tmp19.data = serializeItemAsMessage.apply(void 0, [
7548
+ (_tmp20.openaiAssistant = _state.sent(), _tmp20.createdAt = dayjs13().unix(), _tmp20.runId = responseCreatedResponse.id, _tmp20)
7549
+ ]), _tmp19)
7550
+ ])
7551
+ ];
7552
+ case 36:
7553
+ _state.sent();
6560
7554
  return [
6561
7555
  3,
6562
- 32
7556
+ 40
6563
7557
  ];
6564
- case 27:
6565
- itemId1 = evt === null || evt === void 0 ? void 0 : evt.item_id;
6566
- argsDelta = typeof (evt === null || evt === void 0 ? void 0 : evt.delta) === "string" ? evt.delta : "";
6567
- maybeName = typeof (evt === null || evt === void 0 ? void 0 : evt.name) === "string" ? evt.name : void 0;
6568
- if (!itemId1) return [
7558
+ case 37:
7559
+ if (!(event.item.type === "function_call")) return [
6569
7560
  3,
6570
- 32
7561
+ 40
6571
7562
  ];
6572
- callId1 = itemToCallId.get(itemId1);
6573
- if (!callId1) {
6574
- fallbackCallId = evt === null || evt === void 0 ? void 0 : evt.call_id;
6575
- if (!fallbackCallId) return [
6576
- 3,
6577
- 32
6578
- ];
6579
- itemToCallId.set(itemId1, fallbackCallId);
6580
- }
6581
- effectiveCallId = itemToCallId.get(itemId1);
6582
- tc = getOrCreateToolCall(effectiveCallId, maybeName);
6583
- tc.function.arguments += argsDelta;
6584
- if (maybeName && tc.function.name === "unknown_function") {
6585
- tc.function.name = maybeName;
6586
- }
7563
+ toolCalls[event.item.id] = event.item;
7564
+ _tmp21 = {
7565
+ event: "thread.run.step.in_progress"
7566
+ };
7567
+ _tmp22 = {
7568
+ item: event.item,
7569
+ items: [],
7570
+ threadId: threadId
7571
+ };
6587
7572
  return [
6588
7573
  4,
6589
- ensureToolCallsStep()
7574
+ getOpenaiAssistant()
6590
7575
  ];
6591
- case 28:
7576
+ case 38:
7577
+ return [
7578
+ 4,
7579
+ onEvent2.apply(void 0, [
7580
+ (_tmp21.data = serializeItemAsRunStep.apply(void 0, [
7581
+ (_tmp22.openaiAssistant = _state.sent(), _tmp22.runId = responseCreatedResponse.id, _tmp22)
7582
+ ]), _tmp21)
7583
+ ])
7584
+ ];
7585
+ case 39:
6592
7586
  _state.sent();
6593
- sawToolCalls = true;
7587
+ _state.label = 40;
7588
+ case 40:
7589
+ return [
7590
+ 3,
7591
+ 44
7592
+ ];
7593
+ case 41:
7594
+ toolCall = toolCalls[event.item_id];
7595
+ if (!toolCall) return [
7596
+ 3,
7597
+ 44
7598
+ ];
6594
7599
  return [
6595
7600
  4,
6596
- emitToolArgsDelta(effectiveCallId, tc.function.name, argsDelta)
7601
+ onEvent2({
7602
+ event: "thread.run.step.delta",
7603
+ data: {
7604
+ id: event.item_id,
7605
+ object: "thread.run.step.delta",
7606
+ delta: {
7607
+ step_details: {
7608
+ type: "tool_calls",
7609
+ tool_calls: [
7610
+ {
7611
+ id: toolCall.call_id,
7612
+ type: "function",
7613
+ index: event.output_index,
7614
+ function: {
7615
+ name: toolCall.name,
7616
+ arguments: event.delta,
7617
+ output: null
7618
+ }
7619
+ }
7620
+ ]
7621
+ }
7622
+ }
7623
+ }
7624
+ })
6597
7625
  ];
6598
- case 29:
7626
+ case 42:
6599
7627
  _state.sent();
6600
7628
  return [
6601
7629
  3,
6602
- 32
7630
+ 44
6603
7631
  ];
6604
- case 30:
6605
- {
6606
- return [
6607
- 3,
6608
- 32
6609
- ];
6610
- }
6611
- _state.label = 31;
6612
- case 31:
7632
+ case 43:
6613
7633
  return [
6614
7634
  3,
6615
- 32
7635
+ 44
6616
7636
  ];
6617
- case 32:
7637
+ case 44:
6618
7638
  _iteratorAbruptCompletion = false;
6619
7639
  return [
6620
7640
  3,
6621
- 6
7641
+ 3
6622
7642
  ];
6623
- case 33:
7643
+ case 45:
6624
7644
  return [
6625
7645
  3,
6626
- 40
7646
+ 52
6627
7647
  ];
6628
- case 34:
7648
+ case 46:
6629
7649
  err = _state.sent();
6630
7650
  _didIteratorError = true;
6631
7651
  _iteratorError = err;
6632
7652
  return [
6633
7653
  3,
6634
- 40
7654
+ 52
6635
7655
  ];
6636
- case 35:
7656
+ case 47:
6637
7657
  _state.trys.push([
6638
- 35,
7658
+ 47,
6639
7659
  ,
6640
- 38,
6641
- 39
7660
+ 50,
7661
+ 51
6642
7662
  ]);
6643
7663
  if (!(_iteratorAbruptCompletion && _iterator.return != null)) return [
6644
7664
  3,
6645
- 37
7665
+ 49
6646
7666
  ];
6647
7667
  return [
6648
7668
  4,
6649
7669
  _iterator.return()
6650
7670
  ];
6651
- case 36:
7671
+ case 48:
6652
7672
  _state.sent();
6653
- _state.label = 37;
6654
- case 37:
7673
+ _state.label = 49;
7674
+ case 49:
6655
7675
  return [
6656
7676
  3,
6657
- 39
7677
+ 51
6658
7678
  ];
6659
- case 38:
7679
+ case 50:
6660
7680
  if (_didIteratorError) {
6661
7681
  throw _iteratorError;
6662
7682
  }
6663
7683
  return [
6664
7684
  7
6665
7685
  ];
6666
- case 39:
7686
+ case 51:
6667
7687
  return [
6668
7688
  7
6669
7689
  ];
6670
- case 40:
7690
+ case 52:
6671
7691
  return [
6672
7692
  3,
6673
- 43
7693
+ 59
6674
7694
  ];
6675
- case 41:
7695
+ case 53:
6676
7696
  e = _state.sent();
7697
+ _tmp23 = {
7698
+ event: "thread.run.failed"
7699
+ };
7700
+ _tmp24 = {
7701
+ id: (responseCreatedResponse === null || responseCreatedResponse === void 0 ? void 0 : responseCreatedResponse.id) || "run_".concat(uid7(18)),
7702
+ object: "thread.run",
7703
+ thread_id: threadId
7704
+ };
6677
7705
  return [
6678
7706
  4,
6679
- onEvent2({
6680
- event: "thread.run.failed",
6681
- data: {
6682
- id: runId,
6683
- object: "thread.run",
6684
- thread_id: threadId,
6685
- assistant_id: asstId,
6686
- status: "failed",
6687
- failed_at: dayjs17().unix(),
6688
- last_error: {
6689
- code: "server_error",
6690
- message: String((e === null || e === void 0 ? void 0 : e.message) || e || "Unknown error")
6691
- }
6692
- }
6693
- })
7707
+ getOpenaiAssistant()
6694
7708
  ];
6695
- case 42:
7709
+ case 54:
7710
+ return [
7711
+ 4,
7712
+ onEvent2.apply(void 0, [
7713
+ (_tmp23.data = (_tmp24.assistant_id = _state.sent().id, _tmp24.status = "failed", _tmp24.failed_at = dayjs13().unix(), _tmp24.last_error = {
7714
+ code: "server_error",
7715
+ message: String((e === null || e === void 0 ? void 0 : e.message) || e || "Unknown error")
7716
+ }, _tmp24), _tmp23)
7717
+ ])
7718
+ ];
7719
+ case 55:
6696
7720
  _state.sent();
6697
7721
  return [
6698
7722
  3,
6699
- 43
7723
+ 59
6700
7724
  ];
6701
- case 43:
7725
+ case 56:
7726
+ if (!((responseCreatedResponse === null || responseCreatedResponse === void 0 ? void 0 : responseCreatedResponse.id) && itemIds.length > 0)) return [
7727
+ 3,
7728
+ 58
7729
+ ];
7730
+ return [
7731
+ 4,
7732
+ saveResponseItemsToConversationMetadata({
7733
+ client: client,
7734
+ threadId: threadId,
7735
+ responseId: responseCreatedResponse.id,
7736
+ itemIds: itemIds
7737
+ })
7738
+ ];
7739
+ case 57:
7740
+ _state.sent();
7741
+ _state.label = 58;
7742
+ case 58:
7743
+ return [
7744
+ 7
7745
+ ];
7746
+ case 59:
6702
7747
  return [
6703
7748
  2
6704
7749
  ];
6705
7750
  }
6706
7751
  });
6707
7752
  });
6708
- return function(_) {
7753
+ return function handleRun(_) {
6709
7754
  return _ref.apply(this, arguments);
6710
7755
  };
6711
7756
  }();
7757
+ return {
7758
+ handleRun: handleRun,
7759
+ getOpenaiAssistant: getOpenaiAssistant
7760
+ };
6712
7761
  };
6713
7762
  export { anthropicClientAdapter, azureOpenaiClientAdapter, completionsRunAdapter, googleClientAdapter, groqClientAdapter, humirisClientAdapter, mistralClientAdapter, ollamaClientAdapter, openaiClientAdapter, perplexityClientAdapter, prismaStorageAdapter, responsesRunAdapter, responsesStorageAdapter, supercompat, togetherClientAdapter };
6714
7763
  //# sourceMappingURL=index.js.map