supercompat 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs ADDED
@@ -0,0 +1,2352 @@
1
+ "use strict";
2
+ function _array_like_to_array(arr, len) {
3
+ if (len == null || len > arr.length) len = arr.length;
4
+ for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
5
+ return arr2;
6
+ }
7
+ function _array_with_holes(arr) {
8
+ if (Array.isArray(arr)) return arr;
9
+ }
10
+ function _array_without_holes(arr) {
11
+ if (Array.isArray(arr)) return _array_like_to_array(arr);
12
+ }
13
+ function _async_iterator(iterable) {
14
+ var method, async, sync, retry = 2;
15
+ for("undefined" != typeof Symbol && (async = Symbol.asyncIterator, sync = Symbol.iterator); retry--;){
16
+ if (async && null != (method = iterable[async])) return method.call(iterable);
17
+ if (sync && null != (method = iterable[sync])) return new AsyncFromSyncIterator(method.call(iterable));
18
+ async = "@@asyncIterator", sync = "@@iterator";
19
+ }
20
+ throw new TypeError("Object is not async iterable");
21
+ }
22
+ function AsyncFromSyncIterator(s) {
23
+ function AsyncFromSyncIteratorContinuation(r) {
24
+ if (Object(r) !== r) return Promise.reject(new TypeError(r + " is not an object."));
25
+ var done = r.done;
26
+ return Promise.resolve(r.value).then(function(value) {
27
+ return {
28
+ value: value,
29
+ done: done
30
+ };
31
+ });
32
+ }
33
+ return AsyncFromSyncIterator = function(s) {
34
+ this.s = s, this.n = s.next;
35
+ }, AsyncFromSyncIterator.prototype = {
36
+ s: null,
37
+ n: null,
38
+ next: function() {
39
+ return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments));
40
+ },
41
+ return: function(value) {
42
+ var ret = this.s.return;
43
+ return void 0 === ret ? Promise.resolve({
44
+ value: value,
45
+ done: !0
46
+ }) : AsyncFromSyncIteratorContinuation(ret.apply(this.s, arguments));
47
+ },
48
+ throw: function(value) {
49
+ var thr = this.s.return;
50
+ return void 0 === thr ? Promise.reject(value) : AsyncFromSyncIteratorContinuation(thr.apply(this.s, arguments));
51
+ }
52
+ }, new AsyncFromSyncIterator(s);
53
+ }
54
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
55
+ try {
56
+ var info = gen[key](arg);
57
+ var value = info.value;
58
+ } catch (error) {
59
+ reject(error);
60
+ return;
61
+ }
62
+ if (info.done) {
63
+ resolve(value);
64
+ } else {
65
+ Promise.resolve(value).then(_next, _throw);
66
+ }
67
+ }
68
+ function _async_to_generator(fn) {
69
+ return function() {
70
+ var self = this, args = arguments;
71
+ return new Promise(function(resolve, reject) {
72
+ var gen = fn.apply(self, args);
73
+ function _next(value) {
74
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
75
+ }
76
+ function _throw(err) {
77
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
78
+ }
79
+ _next(undefined);
80
+ });
81
+ };
82
+ }
83
+ function _define_property(obj, key, value) {
84
+ if (key in obj) {
85
+ Object.defineProperty(obj, key, {
86
+ value: value,
87
+ enumerable: true,
88
+ configurable: true,
89
+ writable: true
90
+ });
91
+ } else {
92
+ obj[key] = value;
93
+ }
94
+ return obj;
95
+ }
96
+ function _iterable_to_array(iter) {
97
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
98
+ }
99
+ function _iterable_to_array_limit(arr, i) {
100
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
101
+ if (_i == null) return;
102
+ var _arr = [];
103
+ var _n = true;
104
+ var _d = false;
105
+ var _s, _e;
106
+ try {
107
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
108
+ _arr.push(_s.value);
109
+ if (i && _arr.length === i) break;
110
+ }
111
+ } catch (err) {
112
+ _d = true;
113
+ _e = err;
114
+ } finally{
115
+ try {
116
+ if (!_n && _i["return"] != null) _i["return"]();
117
+ } finally{
118
+ if (_d) throw _e;
119
+ }
120
+ }
121
+ return _arr;
122
+ }
123
+ function _non_iterable_rest() {
124
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
125
+ }
126
+ function _non_iterable_spread() {
127
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
128
+ }
129
+ function _object_spread(target) {
130
+ for(var i = 1; i < arguments.length; i++){
131
+ var source = arguments[i] != null ? arguments[i] : {};
132
+ var ownKeys = Object.keys(source);
133
+ if (typeof Object.getOwnPropertySymbols === "function") {
134
+ ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
135
+ return Object.getOwnPropertyDescriptor(source, sym).enumerable;
136
+ }));
137
+ }
138
+ ownKeys.forEach(function(key) {
139
+ _define_property(target, key, source[key]);
140
+ });
141
+ }
142
+ return target;
143
+ }
144
+ function ownKeys(object, enumerableOnly) {
145
+ var keys = Object.keys(object);
146
+ if (Object.getOwnPropertySymbols) {
147
+ var symbols = Object.getOwnPropertySymbols(object);
148
+ if (enumerableOnly) {
149
+ symbols = symbols.filter(function(sym) {
150
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
151
+ });
152
+ }
153
+ keys.push.apply(keys, symbols);
154
+ }
155
+ return keys;
156
+ }
157
+ function _object_spread_props(target, source) {
158
+ source = source != null ? source : {};
159
+ if (Object.getOwnPropertyDescriptors) {
160
+ Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
161
+ } else {
162
+ ownKeys(Object(source)).forEach(function(key) {
163
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
164
+ });
165
+ }
166
+ return target;
167
+ }
168
+ function _sliced_to_array(arr, i) {
169
+ return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
170
+ }
171
+ function _to_array(arr) {
172
+ return _array_with_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_rest();
173
+ }
174
+ function _to_consumable_array(arr) {
175
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
176
+ }
177
+ function _unsupported_iterable_to_array(o, minLen) {
178
+ if (!o) return;
179
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
180
+ var n = Object.prototype.toString.call(o).slice(8, -1);
181
+ if (n === "Object" && o.constructor) n = o.constructor.name;
182
+ if (n === "Map" || n === "Set") return Array.from(n);
183
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
184
+ }
185
+ function _ts_generator(thisArg, body) {
186
+ var f, y, t, g, _ = {
187
+ label: 0,
188
+ sent: function() {
189
+ if (t[0] & 1) throw t[1];
190
+ return t[1];
191
+ },
192
+ trys: [],
193
+ ops: []
194
+ };
195
+ return g = {
196
+ next: verb(0),
197
+ "throw": verb(1),
198
+ "return": verb(2)
199
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
200
+ return this;
201
+ }), g;
202
+ function verb(n) {
203
+ return function(v) {
204
+ return step([
205
+ n,
206
+ v
207
+ ]);
208
+ };
209
+ }
210
+ function step(op) {
211
+ if (f) throw new TypeError("Generator is already executing.");
212
+ while(_)try {
213
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
214
+ if (y = 0, t) op = [
215
+ op[0] & 2,
216
+ t.value
217
+ ];
218
+ switch(op[0]){
219
+ case 0:
220
+ case 1:
221
+ t = op;
222
+ break;
223
+ case 4:
224
+ _.label++;
225
+ return {
226
+ value: op[1],
227
+ done: false
228
+ };
229
+ case 5:
230
+ _.label++;
231
+ y = op[1];
232
+ op = [
233
+ 0
234
+ ];
235
+ continue;
236
+ case 7:
237
+ op = _.ops.pop();
238
+ _.trys.pop();
239
+ continue;
240
+ default:
241
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
242
+ _ = 0;
243
+ continue;
244
+ }
245
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
246
+ _.label = op[1];
247
+ break;
248
+ }
249
+ if (op[0] === 6 && _.label < t[1]) {
250
+ _.label = t[1];
251
+ t = op;
252
+ break;
253
+ }
254
+ if (t && _.label < t[2]) {
255
+ _.label = t[2];
256
+ _.ops.push(op);
257
+ break;
258
+ }
259
+ if (t[2]) _.ops.pop();
260
+ _.trys.pop();
261
+ continue;
262
+ }
263
+ op = body.call(thisArg, _);
264
+ } catch (e) {
265
+ op = [
266
+ 6,
267
+ e
268
+ ];
269
+ y = 0;
270
+ } finally{
271
+ f = t = 0;
272
+ }
273
+ if (op[0] & 5) throw op[1];
274
+ return {
275
+ value: op[0] ? op[1] : void 0,
276
+ done: true
277
+ };
278
+ }
279
+ }
280
+ function _ts_values(o) {
281
+ var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
282
+ if (m) return m.call(o);
283
+ if (o && typeof o.length === "number") return {
284
+ next: function() {
285
+ if (o && i >= o.length) o = void 0;
286
+ return {
287
+ value: o && o[i++],
288
+ done: !o
289
+ };
290
+ }
291
+ };
292
+ throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
293
+ }
294
+ var _mistral, _mistral1;
295
+ var __create = Object.create;
296
+ var __defProp = Object.defineProperty;
297
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
298
+ var __getOwnPropNames = Object.getOwnPropertyNames;
299
+ var __getProtoOf = Object.getPrototypeOf;
300
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
301
+ var __export = function(target, all) {
302
+ for(var name in all)__defProp(target, name, {
303
+ get: all[name],
304
+ enumerable: true
305
+ });
306
+ };
307
+ var __copyProps = function(to, from, except, desc) {
308
+ if (from && typeof from === "object" || typeof from === "function") {
309
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
310
+ try {
311
+ var _loop = function() {
312
+ var key = _step.value;
313
+ if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
314
+ get: function() {
315
+ return from[key];
316
+ },
317
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
318
+ });
319
+ };
320
+ for(var _iterator = __getOwnPropNames(from)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true)_loop();
321
+ } catch (err) {
322
+ _didIteratorError = true;
323
+ _iteratorError = err;
324
+ } finally{
325
+ try {
326
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
327
+ _iterator.return();
328
+ }
329
+ } finally{
330
+ if (_didIteratorError) {
331
+ throw _iteratorError;
332
+ }
333
+ }
334
+ }
335
+ }
336
+ return to;
337
+ };
338
+ var __toESM = function(mod, isNodeMode, target) {
339
+ return target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(// If the importer is in node compatibility mode or this is not an ESM
340
+ // file that has been converted to a CommonJS file using a Babel-
341
+ // compatible transform (i.e. "__esModule" has not been set), then set
342
+ // "default" to the CommonJS "module.exports" for node compatibility.
343
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
344
+ value: mod,
345
+ enumerable: true
346
+ }) : target, mod);
347
+ };
348
+ var __toCommonJS = function(mod) {
349
+ return __copyProps(__defProp({}, "__esModule", {
350
+ value: true
351
+ }), mod);
352
+ };
353
+ // src/index.ts
354
+ var src_exports = {};
355
+ __export(src_exports, {
356
+ completionsRunAdapter: function() {
357
+ return completionsRunAdapter;
358
+ },
359
+ mistralClientAdapter: function() {
360
+ return mistralClientAdapter;
361
+ },
362
+ perplexityClientAdapter: function() {
363
+ return perplexityClientAdapter;
364
+ },
365
+ prismaStorageAdapter: function() {
366
+ return prismaStorageAdapter;
367
+ },
368
+ supercompat: function() {
369
+ return supercompat;
370
+ }
371
+ });
372
+ module.exports = __toCommonJS(src_exports);
373
+ // src/supercompat.ts
374
+ var import_radash = require("radash");
375
+ var supercompat = function(param) {
376
+ var client = param.client, storage = param.storage, runAdapter = param.runAdapter;
377
+ return (0, import_radash.assign)(client, storage({
378
+ runAdapter: (0, import_radash.partob)(runAdapter, {
379
+ client: client
380
+ })
381
+ }));
382
+ };
383
+ // src/adapters/client/mistralClientAdapter/index.ts
384
+ var mistralClientAdapter = function(param) {
385
+ var mistral = param.mistral;
386
+ return {
387
+ chat: {
388
+ completions: {
389
+ // @ts-ignore-next-line
390
+ create: function() {
391
+ for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
392
+ args[_key] = arguments[_key];
393
+ }
394
+ return(// @ts-ignore-next-line
395
+ args[0].stream ? (_mistral = mistral).chatStream.apply(_mistral, _to_consumable_array(args)) : (_mistral1 = mistral).chat.apply(_mistral1, _to_consumable_array(args)));
396
+ }
397
+ }
398
+ }
399
+ };
400
+ };
401
+ // src/adapters/client/perplexityClientAdapter/index.ts
402
+ var agentSideRoles = [
403
+ "assistant",
404
+ "system"
405
+ ];
406
+ var perplexityClientAdapter = function(param) {
407
+ var perplexity = param.perplexity;
408
+ return {
409
+ chat: {
410
+ completions: {
411
+ create: function() {
412
+ for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
413
+ args[_key] = arguments[_key];
414
+ }
415
+ var _perplexity_chat_completions;
416
+ var _args = _to_array(args), firstArg = _args[0], restArgs = _args.slice(1);
417
+ var messages3 = [];
418
+ firstArg.messages.forEach(function(message, index) {
419
+ messages3.push(message);
420
+ var nextMessage = firstArg.messages[index + 1];
421
+ if (!nextMessage) return;
422
+ if (message.role === "user" && nextMessage.role === "user") {
423
+ messages3.push({
424
+ role: "assistant",
425
+ content: ""
426
+ });
427
+ } else if (agentSideRoles.includes(message.role) && agentSideRoles.includes(nextMessage.role)) {
428
+ messages3.push({
429
+ role: "user",
430
+ content: ""
431
+ });
432
+ }
433
+ });
434
+ return (_perplexity_chat_completions = perplexity.chat.completions).create.apply(_perplexity_chat_completions, [
435
+ _object_spread_props(_object_spread({}, firstArg), {
436
+ messages: messages3
437
+ })
438
+ ].concat(_to_consumable_array(restArgs)));
439
+ }
440
+ }
441
+ }
442
+ };
443
+ };
444
+ // src/adapters/run/completionsRunAdapter/index.ts
445
+ var import_lodash = __toESM(require("lodash"), 1);
446
+ var import_radash3 = require("radash");
447
+ var import_dayjs = __toESM(require("dayjs"), 1);
448
+ // src/adapters/run/completionsRunAdapter/messages.ts
449
+ var import_radash2 = require("radash");
450
+ // src/adapters/run/completionsRunAdapter/serializeMessage.ts
451
+ var serializeToolCalls = function(param) {
452
+ var runStep = param.runStep;
453
+ if (runStep.step_details.type !== "tool_calls") return [];
454
+ var functionToolCalls = runStep.step_details.tool_calls.filter(function(tc) {
455
+ return tc.type === "function";
456
+ });
457
+ return functionToolCalls.map(function(toolCall) {
458
+ return {
459
+ tool_call_id: toolCall.id,
460
+ role: "tool",
461
+ name: toolCall.function.name,
462
+ content: toolCall.function.output
463
+ };
464
+ });
465
+ };
466
+ var serializeMessageWithContent = function(param) {
467
+ var message = param.message;
468
+ var _message_metadata;
469
+ return _object_spread({
470
+ role: message.role,
471
+ content: serializeContent({
472
+ content: message.content
473
+ })
474
+ }, (message === null || message === void 0 ? void 0 : (_message_metadata = message.metadata) === null || _message_metadata === void 0 ? void 0 : _message_metadata.toolCalls) ? {
475
+ tool_calls: message.metadata.toolCalls
476
+ } : {});
477
+ };
478
+ var serializeContent = function(param) {
479
+ var content = param.content;
480
+ return content.map(function(content2) {
481
+ return content2.text.value;
482
+ }).join("\n");
483
+ };
484
+ var serializeMessage = function(param) {
485
+ var message = param.message;
486
+ console.log("serializing msg");
487
+ console.dir({
488
+ message: message
489
+ }, {
490
+ depth: null
491
+ });
492
+ var result = [
493
+ serializeMessageWithContent({
494
+ message: message
495
+ })
496
+ ];
497
+ if (!message.run) return result;
498
+ var toolCallsRunSteps = message.run.runSteps.filter(function(runStep) {
499
+ return runStep.type === "tool_calls";
500
+ });
501
+ toolCallsRunSteps.forEach(function(runStep) {
502
+ var _result;
503
+ (_result = result).push.apply(_result, _to_consumable_array(serializeToolCalls({
504
+ runStep: runStep
505
+ })));
506
+ });
507
+ console.dir({
508
+ result: result
509
+ }, {
510
+ depth: null
511
+ });
512
+ return result;
513
+ };
514
+ // src/adapters/run/completionsRunAdapter/messages.ts
515
+ var messages = function() {
516
+ var _ref = _async_to_generator(function(param) {
517
+ var run, getMessages2, _, _1, _2;
518
+ return _ts_generator(this, function(_state) {
519
+ switch(_state.label){
520
+ case 0:
521
+ run = param.run, getMessages2 = param.getMessages;
522
+ _1 = (_ = _to_consumable_array(run.instructions ? [
523
+ {
524
+ role: "system",
525
+ content: run.instructions
526
+ }
527
+ ] : [])).concat;
528
+ _2 = (0, import_radash2.flat);
529
+ return [
530
+ 4,
531
+ getMessages2()
532
+ ];
533
+ case 1:
534
+ return [
535
+ 2,
536
+ _1.apply(_, [
537
+ _to_consumable_array.apply(void 0, [
538
+ _2.apply(void 0, [
539
+ _state.sent().map(function(message) {
540
+ return serializeMessage({
541
+ message: message
542
+ });
543
+ })
544
+ ])
545
+ ])
546
+ ])
547
+ ];
548
+ }
549
+ });
550
+ });
551
+ return function messages(_) {
552
+ return _ref.apply(this, arguments);
553
+ };
554
+ }();
555
+ // src/adapters/run/completionsRunAdapter/index.ts
556
+ var updatedToolCall = function(param) {
557
+ var toolCall = param.toolCall, delta = param.delta;
558
+ if (!toolCall) return (0, import_radash3.omit)(delta, [
559
+ "index"
560
+ ]);
561
+ var result = import_lodash.default.cloneDeep(toolCall);
562
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
563
+ try {
564
+ for(var _iterator = Object.entries(delta.function)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
565
+ var _step_value = _sliced_to_array(_step.value, 2), key = _step_value[0], value = _step_value[1];
566
+ var _result_function_key;
567
+ result.function[key] = "".concat((_result_function_key = result.function[key]) !== null && _result_function_key !== void 0 ? _result_function_key : "").concat(value);
568
+ }
569
+ } catch (err) {
570
+ _didIteratorError = true;
571
+ _iteratorError = err;
572
+ } finally{
573
+ try {
574
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
575
+ _iterator.return();
576
+ }
577
+ } finally{
578
+ if (_didIteratorError) {
579
+ throw _iteratorError;
580
+ }
581
+ }
582
+ }
583
+ return result;
584
+ };
585
+ var toolCallsData = function(param) {
586
+ var prevToolCalls = param.prevToolCalls, delta = param.delta;
587
+ if (!prevToolCalls) {
588
+ return delta.tool_calls.map(function(tc) {
589
+ return _object_spread({
590
+ id: (0, import_radash3.uid)(24),
591
+ type: "function"
592
+ }, (0, import_radash3.omit)(tc, [
593
+ "index"
594
+ ]));
595
+ });
596
+ }
597
+ var newToolCalls = import_lodash.default.cloneDeep(prevToolCalls);
598
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
599
+ try {
600
+ for(var _iterator = delta.tool_calls[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
601
+ var runStepDelta = _step.value;
602
+ newToolCalls[runStepDelta.index] = updatedToolCall({
603
+ toolCall: newToolCalls[runStepDelta.index],
604
+ delta: runStepDelta
605
+ });
606
+ }
607
+ } catch (err) {
608
+ _didIteratorError = true;
609
+ _iteratorError = err;
610
+ } finally{
611
+ try {
612
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
613
+ _iterator.return();
614
+ }
615
+ } finally{
616
+ if (_didIteratorError) {
617
+ throw _iteratorError;
618
+ }
619
+ }
620
+ }
621
+ return newToolCalls;
622
+ };
623
+ var completionsRunAdapter = function() {
624
+ var _ref = _async_to_generator(function(param) {
625
+ var client, run, onEvent2, getMessages2, opts, _tmp, providerResponse, e, message, toolCallsRunStep, currentContent, currentToolCalls, _iteratorAbruptCompletion, _didIteratorError, _iteratorError, _iterator, _step, _value, chunk, delta, _delta_content, err;
626
+ return _ts_generator(this, function(_state) {
627
+ switch(_state.label){
628
+ case 0:
629
+ client = param.client, run = param.run, onEvent2 = param.onEvent, getMessages2 = param.getMessages;
630
+ if (run.status !== "queued") return [
631
+ 2
632
+ ];
633
+ onEvent2({
634
+ event: "thread.run.in_progress",
635
+ data: _object_spread_props(_object_spread({}, run), {
636
+ status: "in_progress"
637
+ })
638
+ });
639
+ _tmp = {};
640
+ return [
641
+ 4,
642
+ messages({
643
+ run: run,
644
+ getMessages: getMessages2
645
+ })
646
+ ];
647
+ case 1:
648
+ opts = _object_spread.apply(void 0, [
649
+ (_tmp.messages = _state.sent(), _tmp.model = run.model, _tmp.stream = true, _tmp),
650
+ (0, import_radash3.isEmpty)(run.tools) ? {} : {
651
+ tools: run.tools
652
+ }
653
+ ]);
654
+ console.dir({
655
+ opts: opts
656
+ }, {
657
+ depth: null
658
+ });
659
+ _state.label = 2;
660
+ case 2:
661
+ _state.trys.push([
662
+ 2,
663
+ 4,
664
+ ,
665
+ 5
666
+ ]);
667
+ return [
668
+ 4,
669
+ client.chat.completions.create(opts)
670
+ ];
671
+ case 3:
672
+ providerResponse = _state.sent();
673
+ return [
674
+ 3,
675
+ 5
676
+ ];
677
+ case 4:
678
+ e = _state.sent();
679
+ console.error(e);
680
+ return [
681
+ 2,
682
+ onEvent2({
683
+ event: "thread.run.failed",
684
+ data: _object_spread_props(_object_spread({}, run), {
685
+ failed_at: (0, import_dayjs.default)().unix(),
686
+ status: "in_progress",
687
+ last_error: e.message
688
+ })
689
+ })
690
+ ];
691
+ case 5:
692
+ return [
693
+ 4,
694
+ onEvent2({
695
+ event: "thread.message.created",
696
+ data: {
697
+ id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
698
+ object: "thread.message",
699
+ completed_at: null,
700
+ run_id: run.id,
701
+ created_at: (0, import_dayjs.default)().unix(),
702
+ assistant_id: run.assistant_id,
703
+ incomplete_at: null,
704
+ incomplete_details: null,
705
+ metadata: {},
706
+ file_ids: [],
707
+ thread_id: run.thread_id,
708
+ content: [
709
+ {
710
+ text: {
711
+ value: "",
712
+ annotations: []
713
+ },
714
+ type: "text"
715
+ }
716
+ ],
717
+ role: "assistant",
718
+ status: "in_progress"
719
+ }
720
+ })
721
+ ];
722
+ case 6:
723
+ message = _state.sent();
724
+ onEvent2({
725
+ event: "thread.run.step.created",
726
+ data: {
727
+ id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
728
+ object: "thread.run.step",
729
+ run_id: run.id,
730
+ assistant_id: run.assistant_id,
731
+ thread_id: run.thread_id,
732
+ type: "message_creation",
733
+ status: "completed",
734
+ completed_at: (0, import_dayjs.default)().unix(),
735
+ created_at: (0, import_dayjs.default)().unix(),
736
+ expired_at: null,
737
+ last_error: null,
738
+ metadata: {},
739
+ failed_at: null,
740
+ cancelled_at: null,
741
+ usage: null,
742
+ step_details: {
743
+ type: "message_creation",
744
+ message_creation: {
745
+ message_id: message.id
746
+ }
747
+ }
748
+ }
749
+ });
750
+ currentContent = "";
751
+ console.dir({
752
+ providerResponse: providerResponse
753
+ }, {
754
+ depth: null
755
+ });
756
+ _iteratorAbruptCompletion = false, _didIteratorError = false;
757
+ _state.label = 7;
758
+ case 7:
759
+ _state.trys.push([
760
+ 7,
761
+ 15,
762
+ 16,
763
+ 21
764
+ ]);
765
+ _iterator = _async_iterator(providerResponse);
766
+ _state.label = 8;
767
+ case 8:
768
+ return [
769
+ 4,
770
+ _iterator.next()
771
+ ];
772
+ case 9:
773
+ if (!(_iteratorAbruptCompletion = !(_step = _state.sent()).done)) return [
774
+ 3,
775
+ 14
776
+ ];
777
+ _value = _step.value;
778
+ chunk = _value;
779
+ delta = chunk.choices[0].delta;
780
+ if (delta.content) {
781
+ ;
782
+ currentContent = "".concat(currentContent).concat((_delta_content = delta.content) !== null && _delta_content !== void 0 ? _delta_content : "");
783
+ }
784
+ if (!delta.tool_calls) return [
785
+ 3,
786
+ 12
787
+ ];
788
+ if (!!toolCallsRunStep) return [
789
+ 3,
790
+ 11
791
+ ];
792
+ return [
793
+ 4,
794
+ onEvent2({
795
+ event: "thread.run.step.created",
796
+ data: {
797
+ id: "THERE_IS_A_BUG_IN_SUPERCOMPAT_IF_YOU_SEE_THIS_ID",
798
+ object: "thread.run.step",
799
+ run_id: run.id,
800
+ assistant_id: run.assistant_id,
801
+ thread_id: run.thread_id,
802
+ type: "tool_calls",
803
+ status: "in_progress",
804
+ completed_at: null,
805
+ created_at: (0, import_dayjs.default)().unix(),
806
+ expired_at: null,
807
+ last_error: null,
808
+ metadata: {},
809
+ failed_at: null,
810
+ cancelled_at: null,
811
+ usage: null,
812
+ step_details: {
813
+ type: "tool_calls",
814
+ tool_calls: []
815
+ }
816
+ }
817
+ })
818
+ ];
819
+ case 10:
820
+ toolCallsRunStep = _state.sent();
821
+ _state.label = 11;
822
+ case 11:
823
+ onEvent2({
824
+ event: "thread.run.step.delta",
825
+ data: {
826
+ object: "thread.run.step.delta",
827
+ run_id: run.id,
828
+ id: toolCallsRunStep.id,
829
+ delta: {
830
+ step_details: {
831
+ type: "tool_calls",
832
+ tool_calls: delta.tool_calls.map(function(tc) {
833
+ return _object_spread({
834
+ id: (0, import_radash3.uid)(24),
835
+ type: "function"
836
+ }, tc);
837
+ })
838
+ }
839
+ }
840
+ }
841
+ });
842
+ currentToolCalls = toolCallsData({
843
+ prevToolCalls: currentToolCalls,
844
+ delta: delta
845
+ });
846
+ _state.label = 12;
847
+ case 12:
848
+ if (delta.content) {
849
+ onEvent2({
850
+ event: "thread.message.delta",
851
+ data: {
852
+ id: message.id,
853
+ delta: {
854
+ content: [
855
+ {
856
+ type: "text",
857
+ index: 0,
858
+ text: {
859
+ value: delta.content
860
+ }
861
+ }
862
+ ]
863
+ }
864
+ }
865
+ });
866
+ }
867
+ _state.label = 13;
868
+ case 13:
869
+ _iteratorAbruptCompletion = false;
870
+ return [
871
+ 3,
872
+ 8
873
+ ];
874
+ case 14:
875
+ return [
876
+ 3,
877
+ 21
878
+ ];
879
+ case 15:
880
+ err = _state.sent();
881
+ _didIteratorError = true;
882
+ _iteratorError = err;
883
+ return [
884
+ 3,
885
+ 21
886
+ ];
887
+ case 16:
888
+ _state.trys.push([
889
+ 16,
890
+ ,
891
+ 19,
892
+ 20
893
+ ]);
894
+ if (!(_iteratorAbruptCompletion && _iterator.return != null)) return [
895
+ 3,
896
+ 18
897
+ ];
898
+ return [
899
+ 4,
900
+ _iterator.return()
901
+ ];
902
+ case 17:
903
+ _state.sent();
904
+ _state.label = 18;
905
+ case 18:
906
+ return [
907
+ 3,
908
+ 20
909
+ ];
910
+ case 19:
911
+ if (_didIteratorError) {
912
+ throw _iteratorError;
913
+ }
914
+ return [
915
+ 7
916
+ ];
917
+ case 20:
918
+ return [
919
+ 7
920
+ ];
921
+ case 21:
922
+ return [
923
+ 4,
924
+ onEvent2({
925
+ event: "thread.message.completed",
926
+ data: _object_spread_props(_object_spread({}, message), {
927
+ status: "completed",
928
+ content: [
929
+ {
930
+ text: {
931
+ value: currentContent,
932
+ annotations: []
933
+ },
934
+ type: "text"
935
+ }
936
+ ],
937
+ tool_calls: currentToolCalls
938
+ })
939
+ })
940
+ ];
941
+ case 22:
942
+ message = _state.sent();
943
+ if ((0, import_radash3.isEmpty)(message.toolCalls)) {
944
+ return [
945
+ 2,
946
+ onEvent2({
947
+ event: "thread.run.completed",
948
+ data: _object_spread_props(_object_spread({}, run), {
949
+ status: "completed",
950
+ completed_at: (0, import_dayjs.default)().unix()
951
+ })
952
+ })
953
+ ];
954
+ }
955
+ return [
956
+ 2,
957
+ onEvent2({
958
+ event: "thread.run.requires_action",
959
+ data: _object_spread_props(_object_spread({}, run), {
960
+ status: "requires_action",
961
+ required_action: {
962
+ type: "submit_tool_outputs",
963
+ submit_tool_outputs: {
964
+ tool_calls: message.toolCalls
965
+ }
966
+ }
967
+ })
968
+ })
969
+ ];
970
+ }
971
+ });
972
+ });
973
+ return function completionsRunAdapter(_) {
974
+ return _ref.apply(this, arguments);
975
+ };
976
+ }();
977
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/create.ts
978
+ var import_dayjs3 = __toESM(require("dayjs"), 1);
979
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/serializeThread.ts
980
+ var import_dayjs2 = __toESM(require("dayjs"), 1);
981
+ var serializeThread = function(param) {
982
+ var thread = param.thread;
983
+ return {
984
+ id: thread.id,
985
+ object: "thread",
986
+ created_at: (0, import_dayjs2.default)(thread.createdAt).unix(),
987
+ metadata: thread.metadata
988
+ };
989
+ };
990
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/create.ts
991
+ var create = function(param) {
992
+ var prisma = param.prisma;
993
+ return /*#__PURE__*/ _async_to_generator(function() {
994
+ var _len, args, _key, _args_, _args__body, messages3, metadata, initialCreatedAt, thread;
995
+ var _arguments = arguments;
996
+ return _ts_generator(this, function(_state) {
997
+ switch(_state.label){
998
+ case 0:
999
+ for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1000
+ args[_key] = _arguments[_key];
1001
+ }
1002
+ _args_ = args[0], _args__body = _args_.// @ts-ignore-next-line
1003
+ body, messages3 = _args__body.messages, metadata = _args__body.metadata;
1004
+ initialCreatedAt = (0, import_dayjs3.default)().subtract(messages3.length, "seconds").format();
1005
+ return [
1006
+ 4,
1007
+ prisma.thread.create({
1008
+ data: {
1009
+ assistantId: metadata.superinterfaceAssistantId,
1010
+ metadata: metadata,
1011
+ messages: {
1012
+ create: messages3.map(function(message, index) {
1013
+ return {
1014
+ role: message.role,
1015
+ content: [
1016
+ {
1017
+ type: "text",
1018
+ text: {
1019
+ annotations: [],
1020
+ value: message.content
1021
+ }
1022
+ }
1023
+ ],
1024
+ fileIds: message.file_ids,
1025
+ metadata: message.metadata,
1026
+ createdAt: (0, import_dayjs3.default)(initialCreatedAt).add(index, "seconds").toDate()
1027
+ };
1028
+ })
1029
+ }
1030
+ }
1031
+ })
1032
+ ];
1033
+ case 1:
1034
+ thread = _state.sent();
1035
+ return [
1036
+ 2,
1037
+ serializeThread({
1038
+ thread: thread
1039
+ })
1040
+ ];
1041
+ }
1042
+ });
1043
+ });
1044
+ };
1045
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/messages/list.ts
1046
+ var import_radash5 = require("radash");
1047
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/messages/serializeMessage.ts
1048
+ var import_dayjs4 = __toESM(require("dayjs"), 1);
1049
+ var import_radash4 = require("radash");
1050
+ var serializeMessage2 = function(param) {
1051
+ var message = param.message;
1052
+ var _message_metadata;
1053
+ return {
1054
+ id: message.id,
1055
+ object: "thread.message",
1056
+ created_at: (0, import_dayjs4.default)(message.createdAt).unix(),
1057
+ thread_id: message.threadId,
1058
+ completed_at: message.completedAt ? (0, import_dayjs4.default)(message.completedAt).unix() : null,
1059
+ incomplete_at: message.incompleteAt ? (0, import_dayjs4.default)(message.incompleteAt).unix() : null,
1060
+ incomplete_details: message.incompleteDetails,
1061
+ role: message.role.toLowerCase(),
1062
+ content: message.content,
1063
+ assistant_id: message.assistantId,
1064
+ run_id: message.runId,
1065
+ file_ids: message.fileIds,
1066
+ status: message.status.toLowerCase(),
1067
+ metadata: (0, import_radash4.assign)((_message_metadata = message.metadata) !== null && _message_metadata !== void 0 ? _message_metadata : {}, {
1068
+ toolCalls: message.toolCalls
1069
+ })
1070
+ };
1071
+ };
1072
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/messages/list.ts
1073
+ var list = function(param) {
1074
+ var prisma = param.prisma;
1075
+ return /*#__PURE__*/ _async_to_generator(function() {
1076
+ var _len, args, _key, _this, threadId, _args_, _ref, // @ts-ignore-next-line
1077
+ limit, // @ts-ignore-next-line
1078
+ order, messages3, _id;
1079
+ var _arguments = arguments;
1080
+ return _ts_generator(this, function(_state) {
1081
+ switch(_state.label){
1082
+ case 0:
1083
+ for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1084
+ args[_key] = _arguments[_key];
1085
+ }
1086
+ threadId = args[0];
1087
+ _ref = (0, import_radash5.assign)({
1088
+ // @ts-ignore-next-line
1089
+ limit: 20,
1090
+ order: "desc"
1091
+ }, (_args_ = args[1]) !== null && _args_ !== void 0 ? _args_ : {}), limit = _ref.limit, order = _ref.order;
1092
+ return [
1093
+ 4,
1094
+ prisma.message.findMany({
1095
+ where: {
1096
+ threadId: threadId
1097
+ },
1098
+ take: limit,
1099
+ orderBy: {
1100
+ createdAt: order
1101
+ }
1102
+ })
1103
+ ];
1104
+ case 1:
1105
+ messages3 = _state.sent();
1106
+ return [
1107
+ 2,
1108
+ {
1109
+ data: messages3.map(function(message) {
1110
+ return serializeMessage2({
1111
+ message: message
1112
+ });
1113
+ }),
1114
+ hasNextPage: function() {
1115
+ return false;
1116
+ },
1117
+ body: {
1118
+ last_id: (_id = (_this = (0, import_radash5.last)(messages3)) === null || _this === void 0 ? void 0 : _this.id) !== null && _id !== void 0 ? _id : null
1119
+ }
1120
+ }
1121
+ ];
1122
+ }
1123
+ });
1124
+ });
1125
+ };
1126
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/messages/create.ts
1127
+ var messageContentBlocks = function(param) {
1128
+ var content = param.content;
1129
+ return [
1130
+ {
1131
+ type: "text",
1132
+ text: {
1133
+ value: content !== null && content !== void 0 ? content : "",
1134
+ annotations: []
1135
+ }
1136
+ }
1137
+ ];
1138
+ };
1139
+ var create2 = function(param) {
1140
+ var prisma = param.prisma;
1141
+ return /*#__PURE__*/ _async_to_generator(function() {
1142
+ var _len, args, _key, threadId, content, message;
1143
+ var _arguments = arguments;
1144
+ return _ts_generator(this, function(_state) {
1145
+ switch(_state.label){
1146
+ case 0:
1147
+ for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1148
+ args[_key] = _arguments[_key];
1149
+ }
1150
+ threadId = args[0];
1151
+ content = args[1].content;
1152
+ return [
1153
+ 4,
1154
+ prisma.message.create({
1155
+ data: {
1156
+ threadId: threadId,
1157
+ content: messageContentBlocks({
1158
+ content: content
1159
+ }),
1160
+ role: "USER"
1161
+ }
1162
+ })
1163
+ ];
1164
+ case 1:
1165
+ message = _state.sent();
1166
+ return [
1167
+ 2,
1168
+ serializeMessage2({
1169
+ message: message
1170
+ })
1171
+ ];
1172
+ }
1173
+ });
1174
+ });
1175
+ };
1176
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/messages/index.ts
1177
+ var messages2 = function(param) {
1178
+ var prisma = param.prisma;
1179
+ return {
1180
+ list: list({
1181
+ prisma: prisma
1182
+ }),
1183
+ create: create2({
1184
+ prisma: prisma
1185
+ })
1186
+ };
1187
+ };
1188
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/list.ts
1189
+ var import_radash6 = require("radash");
1190
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/serializeRun.ts
1191
+ var import_dayjs5 = __toESM(require("dayjs"), 1);
1192
+ var serializeRun = function(param) {
1193
+ var run = param.run;
1194
+ return {
1195
+ id: run.id,
1196
+ object: "thread.run",
1197
+ created_at: (0, import_dayjs5.default)(run.createdAt).unix(),
1198
+ thread_id: run.threadId,
1199
+ assistant_id: run.assistantId,
1200
+ status: run.status.toLowerCase(),
1201
+ required_action: run.requiredAction,
1202
+ last_error: run.lastError,
1203
+ expires_at: (0, import_dayjs5.default)(run.expiresAt).unix(),
1204
+ started_at: run.startedAt ? (0, import_dayjs5.default)(run.startedAt).unix() : null,
1205
+ cancelled_at: run.cancelledAt ? (0, import_dayjs5.default)(run.cancelledAt).unix() : null,
1206
+ failed_at: run.failedAt ? (0, import_dayjs5.default)(run.failedAt).unix() : null,
1207
+ completed_at: run.completedAt ? (0, import_dayjs5.default)(run.completedAt).unix() : null,
1208
+ model: run.model,
1209
+ instructions: run.instructions,
1210
+ // @ts-ignore-next-line
1211
+ tools: run.tools,
1212
+ file_ids: run.fileIds,
1213
+ metadata: run.metadata,
1214
+ usage: run.usage
1215
+ };
1216
+ };
1217
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/list.ts
1218
+ var list2 = function(param) {
1219
+ var prisma = param.prisma;
1220
+ return /*#__PURE__*/ _async_to_generator(function() {
1221
+ var _len, args, _key, _this, threadId, _args_, _ref, // @ts-ignore-next-line
1222
+ limit, // @ts-ignore-next-line
1223
+ order, runs2, _id;
1224
+ var _arguments = arguments;
1225
+ return _ts_generator(this, function(_state) {
1226
+ switch(_state.label){
1227
+ case 0:
1228
+ for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1229
+ args[_key] = _arguments[_key];
1230
+ }
1231
+ threadId = args[0];
1232
+ _ref = (0, import_radash6.assign)({
1233
+ // @ts-ignore-next-line
1234
+ limit: 20,
1235
+ order: "desc"
1236
+ }, (_args_ = args[1]) !== null && _args_ !== void 0 ? _args_ : {}), limit = _ref.limit, order = _ref.order;
1237
+ return [
1238
+ 4,
1239
+ prisma.run.findMany({
1240
+ where: {
1241
+ threadId: threadId
1242
+ },
1243
+ take: limit,
1244
+ orderBy: {
1245
+ createdAt: order
1246
+ }
1247
+ })
1248
+ ];
1249
+ case 1:
1250
+ runs2 = _state.sent();
1251
+ return [
1252
+ 2,
1253
+ {
1254
+ data: runs2.map(function(run) {
1255
+ return serializeRun({
1256
+ run: run
1257
+ });
1258
+ }),
1259
+ hasNextPage: function() {
1260
+ return false;
1261
+ },
1262
+ body: {
1263
+ last_id: (_id = (_this = (0, import_radash6.last)(runs2)) === null || _this === void 0 ? void 0 : _this.id) !== null && _id !== void 0 ? _id : null
1264
+ }
1265
+ }
1266
+ ];
1267
+ }
1268
+ });
1269
+ });
1270
+ };
1271
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/create.ts
1272
+ var import_dayjs6 = __toESM(require("dayjs"), 1);
1273
+ var import_radash7 = require("radash");
1274
+ var create3 = function(param) {
1275
+ var prisma = param.prisma;
1276
+ return /*#__PURE__*/ _async_to_generator(function() {
1277
+ var _len, args, _key, threadId, assistant_id, assistant, _ref, model, instructions, // additional_instructions,
1278
+ tools, metadata, run;
1279
+ var _arguments = arguments;
1280
+ return _ts_generator(this, function(_state) {
1281
+ switch(_state.label){
1282
+ case 0:
1283
+ for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1284
+ args[_key] = _arguments[_key];
1285
+ }
1286
+ threadId = args[0];
1287
+ assistant_id = args[1].assistant_id;
1288
+ return [
1289
+ 4,
1290
+ prisma.assistant.findUnique({
1291
+ where: {
1292
+ id: assistant_id
1293
+ }
1294
+ })
1295
+ ];
1296
+ case 1:
1297
+ assistant = _state.sent();
1298
+ if (!assistant) {
1299
+ throw new Error("Assistant not found");
1300
+ }
1301
+ _ref = (0, import_radash7.assign)({
1302
+ model: assistant.modelSlug,
1303
+ instructions: "",
1304
+ additional_instructions: null
1305
+ }, args[1]), model = _ref.model, instructions = _ref.instructions, tools = _ref.tools, metadata = _ref.metadata;
1306
+ return [
1307
+ 4,
1308
+ prisma.run.create({
1309
+ data: {
1310
+ status: "QUEUED",
1311
+ expiresAt: (0, import_dayjs6.default)().add(1, "hour").unix(),
1312
+ // @ts-ignore-next-line
1313
+ model: model,
1314
+ // @ts-ignore-next-line
1315
+ instructions: instructions,
1316
+ // @ts-ignore-next-line
1317
+ tools: tools,
1318
+ // @ts-ignore-next-line
1319
+ metadata: metadata,
1320
+ thread: {
1321
+ connect: {
1322
+ id: threadId
1323
+ }
1324
+ },
1325
+ assistant: {
1326
+ connect: {
1327
+ id: assistant_id
1328
+ }
1329
+ }
1330
+ }
1331
+ })
1332
+ ];
1333
+ case 2:
1334
+ run = _state.sent();
1335
+ return [
1336
+ 2,
1337
+ serializeRun({
1338
+ run: run
1339
+ })
1340
+ ];
1341
+ }
1342
+ });
1343
+ });
1344
+ };
1345
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/createAndStream.ts
1346
+ var import_radash8 = require("radash");
1347
+ var import_dayjs8 = __toESM(require("dayjs"), 1);
1348
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadRunInProgress.ts
1349
+ var threadRunInProgress = function(param) {
1350
+ var prisma = param.prisma, event = param.event, controller = param.controller;
1351
+ controller.enqueue(event);
1352
+ return prisma.run.update({
1353
+ where: {
1354
+ id: event.data.id
1355
+ },
1356
+ data: {
1357
+ status: "IN_PROGRESS" /* IN_PROGRESS */
1358
+ }
1359
+ });
1360
+ };
1361
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadRunFailed.ts
1362
+ var threadRunFailed = function(param) {
1363
+ var prisma = param.prisma, event = param.event, controller = param.controller;
1364
+ controller.enqueue(event);
1365
+ return prisma.run.update({
1366
+ where: {
1367
+ id: event.data.id
1368
+ },
1369
+ data: {
1370
+ status: "FAILED" /* FAILED */ ,
1371
+ failedAt: event.data.failed_at,
1372
+ lastError: event.data.last_error
1373
+ }
1374
+ });
1375
+ };
1376
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadRunCompleted.ts
1377
+ var threadRunCompleted = function(param) {
1378
+ var prisma = param.prisma, event = param.event, controller = param.controller;
1379
+ controller.enqueue(event);
1380
+ return prisma.run.update({
1381
+ where: {
1382
+ id: event.data.id
1383
+ },
1384
+ data: {
1385
+ status: "COMPLETED" /* COMPLETED */ ,
1386
+ requiredAction: void 0
1387
+ }
1388
+ });
1389
+ };
1390
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadRunRequiresAction.ts
1391
+ var threadRunRequiresAction = function(param) {
1392
+ var prisma = param.prisma, event = param.event, controller = param.controller;
1393
+ controller.enqueue(event);
1394
+ return prisma.run.update({
1395
+ where: {
1396
+ id: event.data.id
1397
+ },
1398
+ data: {
1399
+ status: RunStatus.REQUIRES_ACTION,
1400
+ requiredAction: event.data.required_action
1401
+ }
1402
+ });
1403
+ };
1404
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/steps/serializeRunStep.ts
1405
+ var import_dayjs7 = __toESM(require("dayjs"), 1);
1406
+ var serializeRunStep = function(param) {
1407
+ var runStep = param.runStep;
1408
+ return {
1409
+ id: runStep.id,
1410
+ object: "thread.run.step",
1411
+ created_at: (0, import_dayjs7.default)(runStep.createdAt).unix(),
1412
+ assistant_id: runStep.assistantId,
1413
+ thread_id: runStep.threadId,
1414
+ run_id: runStep.runId,
1415
+ type: runStep.type.toLowerCase(),
1416
+ status: runStep.status.toLowerCase(),
1417
+ // @ts-ignore-next-line
1418
+ step_details: runStep.stepDetails,
1419
+ last_error: runStep.lastError,
1420
+ expired_at: runStep.expiredAt ? (0, import_dayjs7.default)(runStep.expiredAt).unix() : null,
1421
+ cancelled_at: runStep.cancelledAt ? (0, import_dayjs7.default)(runStep.cancelledAt).unix() : null,
1422
+ failed_at: runStep.failedAt ? (0, import_dayjs7.default)(runStep.failedAt).unix() : null,
1423
+ completed_at: runStep.completedAt ? (0, import_dayjs7.default)(runStep.completedAt).unix() : null,
1424
+ metadata: runStep.metadata,
1425
+ usage: runStep.usage
1426
+ };
1427
+ };
1428
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadRunStepCreated.ts
1429
+ var type = function(event) {
1430
+ if (event.data.type === "message_creation") return "MESSAGE_CREATION" /* MESSAGE_CREATION */ ;
1431
+ if (event.data.type === "tool_calls") return "TOOL_CALLS" /* TOOL_CALLS */ ;
1432
+ throw new Error("Unknown type: ".concat(event.data.type));
1433
+ };
1434
+ var status = function(event) {
1435
+ if (event.data.status === "in_progress") return "IN_PROGRESS" /* IN_PROGRESS */ ;
1436
+ if (event.data.status === "cancelled") return "CANCELLED" /* CANCELLED */ ;
1437
+ if (event.data.status === "completed") return "COMPLETED" /* COMPLETED */ ;
1438
+ if (event.data.status === "failed") return "FAILED" /* FAILED */ ;
1439
+ if (event.data.status === "expired") return "EXPIRED" /* EXPIRED */ ;
1440
+ throw new Error("Unknown status: ".concat(event.data.status));
1441
+ };
1442
+ var threadRunStepCreated = function() {
1443
+ var _ref = _async_to_generator(function(param) {
1444
+ var prisma, event, controller, runStep, serializedRunStep;
1445
+ return _ts_generator(this, function(_state) {
1446
+ switch(_state.label){
1447
+ case 0:
1448
+ prisma = param.prisma, event = param.event, controller = param.controller;
1449
+ return [
1450
+ 4,
1451
+ prisma.runStep.create({
1452
+ data: {
1453
+ runId: event.data.run_id,
1454
+ assistantId: event.data.assistant_id,
1455
+ threadId: event.data.thread_id,
1456
+ type: type(event),
1457
+ status: status(event),
1458
+ stepDetails: event.data.step_details,
1459
+ completedAt: event.data.completed_at
1460
+ }
1461
+ })
1462
+ ];
1463
+ case 1:
1464
+ runStep = _state.sent();
1465
+ serializedRunStep = serializeRunStep({
1466
+ runStep: runStep
1467
+ });
1468
+ controller.enqueue(_object_spread_props(_object_spread({}, event), {
1469
+ data: serializedRunStep
1470
+ }));
1471
+ return [
1472
+ 2,
1473
+ serializedRunStep
1474
+ ];
1475
+ }
1476
+ });
1477
+ });
1478
+ return function threadRunStepCreated(_) {
1479
+ return _ref.apply(this, arguments);
1480
+ };
1481
+ }();
1482
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadRunStepDelta.ts
1483
+ var threadRunStepDelta = function(param) {
1484
+ var event = param.event, controller = param.controller;
1485
+ return controller.enqueue(event);
1486
+ };
1487
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadMessageCreated.ts
1488
+ var status2 = function(event) {
1489
+ if (event.data.status === "completed") return "COMPLETED" /* COMPLETED */ ;
1490
+ if (event.data.status === "in_progress") return "IN_PROGRESS" /* IN_PROGRESS */ ;
1491
+ if (event.data.status === "incomplete") return "INCOMPLETE" /* INCOMPLETE */ ;
1492
+ throw new Error("Unknown status: ".concat(event.data.status));
1493
+ };
1494
+ var threadMessageCreated = function() {
1495
+ var _ref = _async_to_generator(function(param) {
1496
+ var prisma, event, controller, message, serializedMessage;
1497
+ return _ts_generator(this, function(_state) {
1498
+ switch(_state.label){
1499
+ case 0:
1500
+ prisma = param.prisma, event = param.event, controller = param.controller;
1501
+ return [
1502
+ 4,
1503
+ prisma.message.create({
1504
+ data: {
1505
+ threadId: event.data.thread_id,
1506
+ content: event.data.content,
1507
+ role: event.data.role === "assistant" ? "ASSISTANT" : "USER",
1508
+ assistantId: event.data.assistant_id,
1509
+ runId: event.data.run_id,
1510
+ status: status2(event)
1511
+ }
1512
+ })
1513
+ ];
1514
+ case 1:
1515
+ message = _state.sent();
1516
+ serializedMessage = serializeMessage2({
1517
+ message: message
1518
+ });
1519
+ controller.enqueue(_object_spread_props(_object_spread({}, event), {
1520
+ data: serializedMessage
1521
+ }));
1522
+ return [
1523
+ 2,
1524
+ serializedMessage
1525
+ ];
1526
+ }
1527
+ });
1528
+ });
1529
+ return function threadMessageCreated(_) {
1530
+ return _ref.apply(this, arguments);
1531
+ };
1532
+ }();
1533
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadMessageDelta.ts
1534
+ var threadMessageDelta = function(param) {
1535
+ var event = param.event, controller = param.controller;
1536
+ return controller.enqueue(event);
1537
+ };
1538
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/threadMessageCompleted.ts
1539
+ var threadMessageCompleted = function() {
1540
+ var _ref = _async_to_generator(function(param) {
1541
+ var prisma, event, controller, latestRunStep;
1542
+ return _ts_generator(this, function(_state) {
1543
+ switch(_state.label){
1544
+ case 0:
1545
+ prisma = param.prisma, event = param.event, controller = param.controller;
1546
+ controller.enqueue(event);
1547
+ if (!event.data.tool_calls) return [
1548
+ 3,
1549
+ 3
1550
+ ];
1551
+ return [
1552
+ 4,
1553
+ prisma.runStep.findFirst({
1554
+ where: {
1555
+ threadId: event.data.thread_id,
1556
+ type: "TOOL_CALLS" /* TOOL_CALLS */
1557
+ },
1558
+ orderBy: {
1559
+ createdAt: "desc"
1560
+ }
1561
+ })
1562
+ ];
1563
+ case 1:
1564
+ latestRunStep = _state.sent();
1565
+ if (!latestRunStep) {
1566
+ throw new Error("No run step found");
1567
+ }
1568
+ return [
1569
+ 4,
1570
+ prisma.runStep.update({
1571
+ where: {
1572
+ id: latestRunStep.id
1573
+ },
1574
+ data: {
1575
+ stepDetails: {
1576
+ type: "tool_calls",
1577
+ tool_calls: event.data.tool_calls
1578
+ }
1579
+ }
1580
+ })
1581
+ ];
1582
+ case 2:
1583
+ _state.sent();
1584
+ _state.label = 3;
1585
+ case 3:
1586
+ return [
1587
+ 2,
1588
+ prisma.message.update({
1589
+ where: {
1590
+ id: event.data.id
1591
+ },
1592
+ data: _object_spread({
1593
+ status: "COMPLETED" /* COMPLETED */
1594
+ }, event.data.content ? {
1595
+ content: event.data.content
1596
+ } : {}, event.data.tool_calls ? {
1597
+ toolCalls: event.data.tool_calls
1598
+ } : {})
1599
+ })
1600
+ ];
1601
+ }
1602
+ });
1603
+ });
1604
+ return function threadMessageCompleted(_) {
1605
+ return _ref.apply(this, arguments);
1606
+ };
1607
+ }();
1608
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/handlers/index.ts
1609
+ var handlers = {
1610
+ "thread.run.in_progress": threadRunInProgress,
1611
+ "thread.run.failed": threadRunFailed,
1612
+ "thread.run.completed": threadRunCompleted,
1613
+ "thread.run.requires_action": threadRunRequiresAction,
1614
+ "thread.run.step.created": threadRunStepCreated,
1615
+ "thread.run.step.delta": threadRunStepDelta,
1616
+ "thread.message.created": threadMessageCreated,
1617
+ "thread.message.delta": threadMessageDelta,
1618
+ "thread.message.completed": threadMessageCompleted
1619
+ };
1620
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/onEvent/index.ts
1621
+ var onEvent = function(param) {
1622
+ var prisma = param.prisma, controller = param.controller;
1623
+ return function(event) {
1624
+ var handler = handlers[event.event];
1625
+ if (!handler) {
1626
+ console.log("No handler for event", event);
1627
+ return;
1628
+ }
1629
+ return handler({
1630
+ prisma: prisma,
1631
+ controller: controller,
1632
+ event: event
1633
+ });
1634
+ };
1635
+ };
1636
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/getMessages.ts
1637
+ var getMessages = function(param) {
1638
+ var prisma = param.prisma, run = param.run;
1639
+ return /*#__PURE__*/ _async_to_generator(function() {
1640
+ var messages3;
1641
+ return _ts_generator(this, function(_state) {
1642
+ switch(_state.label){
1643
+ case 0:
1644
+ return [
1645
+ 4,
1646
+ prisma.message.findMany({
1647
+ where: {
1648
+ threadId: run.threadId
1649
+ },
1650
+ include: {
1651
+ run: {
1652
+ include: {
1653
+ runSteps: true
1654
+ }
1655
+ }
1656
+ },
1657
+ take: -10,
1658
+ orderBy: {
1659
+ createdAt: "asc"
1660
+ }
1661
+ })
1662
+ ];
1663
+ case 1:
1664
+ messages3 = _state.sent();
1665
+ return [
1666
+ 2,
1667
+ messages3.map(function(message) {
1668
+ return _object_spread_props(_object_spread({}, serializeMessage2({
1669
+ message: message
1670
+ })), {
1671
+ run: message.run ? _object_spread_props(_object_spread({}, serializeRun({
1672
+ run: message.run
1673
+ })), {
1674
+ runSteps: message.run.runSteps.map(function(runStep) {
1675
+ return serializeRunStep({
1676
+ runStep: runStep
1677
+ });
1678
+ })
1679
+ }) : null
1680
+ });
1681
+ })
1682
+ ];
1683
+ }
1684
+ });
1685
+ });
1686
+ };
1687
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/createAndStream.ts
1688
+ var createAndStream = function(param) {
1689
+ var prisma = param.prisma, runAdapter = param.runAdapter;
1690
+ return function() {
1691
+ for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1692
+ args[_key] = arguments[_key];
1693
+ }
1694
+ return new ReadableStream({
1695
+ start: function start(controller) {
1696
+ return _async_to_generator(function() {
1697
+ var threadId, assistant_id, assistant, _ref, model, instructions, // additional_instructions,
1698
+ tools, metadata, run, data;
1699
+ return _ts_generator(this, function(_state) {
1700
+ switch(_state.label){
1701
+ case 0:
1702
+ threadId = args[0];
1703
+ assistant_id = args[1].assistant_id;
1704
+ return [
1705
+ 4,
1706
+ prisma.assistant.findUnique({
1707
+ where: {
1708
+ id: assistant_id
1709
+ }
1710
+ })
1711
+ ];
1712
+ case 1:
1713
+ assistant = _state.sent();
1714
+ if (!assistant) {
1715
+ throw new Error("Assistant not found");
1716
+ }
1717
+ _ref = (0, import_radash8.assign)({
1718
+ model: assistant.modelSlug,
1719
+ instructions: "",
1720
+ additional_instructions: null
1721
+ }, args[1]), model = _ref.model, instructions = _ref.instructions, tools = _ref.tools, metadata = _ref.metadata;
1722
+ return [
1723
+ 4,
1724
+ prisma.run.create({
1725
+ data: {
1726
+ status: "QUEUED",
1727
+ expiresAt: (0, import_dayjs8.default)().add(1, "hour").unix(),
1728
+ // @ts-ignore-next-line
1729
+ model: model,
1730
+ // @ts-ignore-next-line
1731
+ instructions: instructions,
1732
+ // @ts-ignore-next-line
1733
+ tools: tools,
1734
+ // @ts-ignore-next-line
1735
+ metadata: metadata,
1736
+ thread: {
1737
+ connect: {
1738
+ id: threadId
1739
+ }
1740
+ },
1741
+ assistant: {
1742
+ connect: {
1743
+ id: assistant_id
1744
+ }
1745
+ }
1746
+ }
1747
+ })
1748
+ ];
1749
+ case 2:
1750
+ run = _state.sent();
1751
+ data = serializeRun({
1752
+ run: run
1753
+ });
1754
+ controller.enqueue({
1755
+ event: "thread.run.created",
1756
+ data: data
1757
+ });
1758
+ console.log("createAndStream", {
1759
+ getMessages: getMessages
1760
+ });
1761
+ return [
1762
+ 4,
1763
+ runAdapter({
1764
+ run: data,
1765
+ onEvent: onEvent({
1766
+ controller: controller,
1767
+ prisma: prisma
1768
+ }),
1769
+ getMessages: getMessages({
1770
+ prisma: prisma,
1771
+ run: run
1772
+ })
1773
+ })
1774
+ ];
1775
+ case 3:
1776
+ _state.sent();
1777
+ console.log("Stream ended inside cloud storage");
1778
+ controller.close();
1779
+ return [
1780
+ 2
1781
+ ];
1782
+ }
1783
+ });
1784
+ })();
1785
+ }
1786
+ });
1787
+ };
1788
+ };
1789
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/submitToolOutputs.ts
1790
+ var import_dayjs9 = __toESM(require("dayjs"), 1);
1791
+ var submitToolOutputs = function(param) {
1792
+ var prisma = param.prisma, runAdapter = param.runAdapter;
1793
+ return /*#__PURE__*/ _async_to_generator(function() {
1794
+ var _len, args, _key, _args, threadId, runId, body, tool_outputs, run, data;
1795
+ var _arguments = arguments;
1796
+ return _ts_generator(this, function(_state) {
1797
+ switch(_state.label){
1798
+ case 0:
1799
+ for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
1800
+ args[_key] = _arguments[_key];
1801
+ }
1802
+ _args = _sliced_to_array(args, 3), threadId = _args[0], runId = _args[1], body = _args[2];
1803
+ tool_outputs = body.tool_outputs;
1804
+ return [
1805
+ 4,
1806
+ prisma.$transaction(function() {
1807
+ var _ref = _async_to_generator(function(prisma2) {
1808
+ var runSteps, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _loop, _iterator, _step, err;
1809
+ return _ts_generator(this, function(_state) {
1810
+ switch(_state.label){
1811
+ case 0:
1812
+ return [
1813
+ 4,
1814
+ prisma2.runStep.findMany({
1815
+ where: {
1816
+ threadId: threadId,
1817
+ runId: runId,
1818
+ type: "TOOL_CALLS",
1819
+ status: "IN_PROGRESS"
1820
+ }
1821
+ })
1822
+ ];
1823
+ case 1:
1824
+ runSteps = _state.sent();
1825
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
1826
+ _state.label = 2;
1827
+ case 2:
1828
+ _state.trys.push([
1829
+ 2,
1830
+ 7,
1831
+ 8,
1832
+ 9
1833
+ ]);
1834
+ _loop = function() {
1835
+ var runStep;
1836
+ return _ts_generator(this, function(_state) {
1837
+ switch(_state.label){
1838
+ case 0:
1839
+ runStep = _step.value;
1840
+ return [
1841
+ 4,
1842
+ prisma2.runStep.update({
1843
+ where: {
1844
+ id: runStep.id
1845
+ },
1846
+ data: {
1847
+ status: "COMPLETED",
1848
+ completedAt: (0, import_dayjs9.default)().unix(),
1849
+ stepDetails: {
1850
+ type: "tool_calls",
1851
+ tool_calls: runStep.stepDetails.tool_calls.map(function(toolCall) {
1852
+ var toolOutput = tool_outputs.find(function(output) {
1853
+ return output.tool_call_id === toolCall.id;
1854
+ }) || tool_outputs[0];
1855
+ if (!toolOutput) {
1856
+ console.dir({
1857
+ toolOutput: toolOutput,
1858
+ runStep: runStep,
1859
+ tool_outputs: tool_outputs,
1860
+ runSteps: runSteps
1861
+ }, {
1862
+ depth: null
1863
+ });
1864
+ throw new Error("Tool output not found");
1865
+ }
1866
+ return {
1867
+ id: toolCall.id,
1868
+ type: toolCall.type,
1869
+ function: _object_spread_props(_object_spread({}, toolCall.function), {
1870
+ output: toolOutput.output
1871
+ })
1872
+ };
1873
+ })
1874
+ }
1875
+ }
1876
+ })
1877
+ ];
1878
+ case 1:
1879
+ _state.sent();
1880
+ return [
1881
+ 2
1882
+ ];
1883
+ }
1884
+ });
1885
+ };
1886
+ _iterator = runSteps[Symbol.iterator]();
1887
+ _state.label = 3;
1888
+ case 3:
1889
+ if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
1890
+ 3,
1891
+ 6
1892
+ ];
1893
+ return [
1894
+ 5,
1895
+ _ts_values(_loop())
1896
+ ];
1897
+ case 4:
1898
+ _state.sent();
1899
+ _state.label = 5;
1900
+ case 5:
1901
+ _iteratorNormalCompletion = true;
1902
+ return [
1903
+ 3,
1904
+ 3
1905
+ ];
1906
+ case 6:
1907
+ return [
1908
+ 3,
1909
+ 9
1910
+ ];
1911
+ case 7:
1912
+ err = _state.sent();
1913
+ _didIteratorError = true;
1914
+ _iteratorError = err;
1915
+ return [
1916
+ 3,
1917
+ 9
1918
+ ];
1919
+ case 8:
1920
+ try {
1921
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
1922
+ _iterator.return();
1923
+ }
1924
+ } finally{
1925
+ if (_didIteratorError) {
1926
+ throw _iteratorError;
1927
+ }
1928
+ }
1929
+ return [
1930
+ 7
1931
+ ];
1932
+ case 9:
1933
+ return [
1934
+ 2,
1935
+ prisma2.run.update({
1936
+ where: {
1937
+ id: runId
1938
+ },
1939
+ data: {
1940
+ status: "QUEUED"
1941
+ }
1942
+ })
1943
+ ];
1944
+ }
1945
+ });
1946
+ });
1947
+ return function(prisma2) {
1948
+ return _ref.apply(this, arguments);
1949
+ };
1950
+ }())
1951
+ ];
1952
+ case 1:
1953
+ run = _state.sent();
1954
+ data = serializeRun({
1955
+ run: run
1956
+ });
1957
+ return [
1958
+ 4,
1959
+ new Promise(function(resolve) {
1960
+ return new ReadableStream({
1961
+ start: function start(controller) {
1962
+ return _async_to_generator(function() {
1963
+ return _ts_generator(this, function(_state) {
1964
+ switch(_state.label){
1965
+ case 0:
1966
+ return [
1967
+ 4,
1968
+ runAdapter({
1969
+ run: data,
1970
+ onEvent: onEvent({
1971
+ controller: controller,
1972
+ prisma: prisma
1973
+ }),
1974
+ // @ts-ignore-next-line
1975
+ getMessages: getMessages({
1976
+ prisma: prisma,
1977
+ run: run
1978
+ })
1979
+ })
1980
+ ];
1981
+ case 1:
1982
+ _state.sent();
1983
+ controller.close();
1984
+ resolve(void 0);
1985
+ return [
1986
+ 2
1987
+ ];
1988
+ }
1989
+ });
1990
+ })();
1991
+ }
1992
+ });
1993
+ })
1994
+ ];
1995
+ case 2:
1996
+ _state.sent();
1997
+ return [
1998
+ 2,
1999
+ data
2000
+ ];
2001
+ }
2002
+ });
2003
+ });
2004
+ };
2005
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/submitToolOutputsStream.ts
2006
+ var import_dayjs10 = __toESM(require("dayjs"), 1);
2007
+ var submitToolOutputsStream = function(param) {
2008
+ var prisma = param.prisma, runAdapter = param.runAdapter;
2009
+ return function() {
2010
+ for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
2011
+ args[_key] = arguments[_key];
2012
+ }
2013
+ return new ReadableStream({
2014
+ start: function start(controller) {
2015
+ return _async_to_generator(function() {
2016
+ var _args, threadId, runId, body, tool_outputs, run;
2017
+ return _ts_generator(this, function(_state) {
2018
+ switch(_state.label){
2019
+ case 0:
2020
+ _args = _sliced_to_array(args, 3), threadId = _args[0], runId = _args[1], body = _args[2];
2021
+ tool_outputs = body.tool_outputs;
2022
+ return [
2023
+ 4,
2024
+ prisma.$transaction(function() {
2025
+ var _ref = _async_to_generator(function(prisma2) {
2026
+ var runSteps, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _loop, _iterator, _step, err;
2027
+ return _ts_generator(this, function(_state) {
2028
+ switch(_state.label){
2029
+ case 0:
2030
+ return [
2031
+ 4,
2032
+ prisma2.runStep.findMany({
2033
+ where: {
2034
+ threadId: threadId,
2035
+ runId: runId,
2036
+ type: "TOOL_CALLS",
2037
+ status: "IN_PROGRESS"
2038
+ },
2039
+ orderBy: {
2040
+ createdAt: "asc"
2041
+ }
2042
+ })
2043
+ ];
2044
+ case 1:
2045
+ runSteps = _state.sent();
2046
+ _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
2047
+ _state.label = 2;
2048
+ case 2:
2049
+ _state.trys.push([
2050
+ 2,
2051
+ 7,
2052
+ 8,
2053
+ 9
2054
+ ]);
2055
+ _loop = function() {
2056
+ var runStep, completedRunStep;
2057
+ return _ts_generator(this, function(_state) {
2058
+ switch(_state.label){
2059
+ case 0:
2060
+ runStep = _step.value;
2061
+ return [
2062
+ 4,
2063
+ prisma2.runStep.update({
2064
+ where: {
2065
+ id: runStep.id
2066
+ },
2067
+ data: {
2068
+ status: "COMPLETED",
2069
+ completedAt: (0, import_dayjs10.default)().unix(),
2070
+ stepDetails: {
2071
+ type: "tool_calls",
2072
+ tool_calls: runStep.stepDetails.tool_calls.map(function(toolCall) {
2073
+ var toolOutput = tool_outputs.find(function(output) {
2074
+ return output.tool_call_id === toolCall.id;
2075
+ }) || tool_outputs[0];
2076
+ if (!toolOutput) {
2077
+ console.dir({
2078
+ toolOutput: toolOutput,
2079
+ runStep: runStep,
2080
+ tool_outputs: tool_outputs,
2081
+ runSteps: runSteps
2082
+ }, {
2083
+ depth: null
2084
+ });
2085
+ throw new Error("Tool output not found");
2086
+ }
2087
+ return {
2088
+ id: toolCall.id,
2089
+ type: toolCall.type,
2090
+ function: _object_spread_props(_object_spread({}, toolCall.function), {
2091
+ output: toolOutput.output
2092
+ })
2093
+ };
2094
+ })
2095
+ }
2096
+ }
2097
+ })
2098
+ ];
2099
+ case 1:
2100
+ completedRunStep = _state.sent();
2101
+ controller.enqueue({
2102
+ event: "thread.run.step.completed",
2103
+ data: serializeRunStep({
2104
+ runStep: completedRunStep
2105
+ })
2106
+ });
2107
+ return [
2108
+ 2
2109
+ ];
2110
+ }
2111
+ });
2112
+ };
2113
+ _iterator = runSteps[Symbol.iterator]();
2114
+ _state.label = 3;
2115
+ case 3:
2116
+ if (!!(_iteratorNormalCompletion = (_step = _iterator.next()).done)) return [
2117
+ 3,
2118
+ 6
2119
+ ];
2120
+ return [
2121
+ 5,
2122
+ _ts_values(_loop())
2123
+ ];
2124
+ case 4:
2125
+ _state.sent();
2126
+ _state.label = 5;
2127
+ case 5:
2128
+ _iteratorNormalCompletion = true;
2129
+ return [
2130
+ 3,
2131
+ 3
2132
+ ];
2133
+ case 6:
2134
+ return [
2135
+ 3,
2136
+ 9
2137
+ ];
2138
+ case 7:
2139
+ err = _state.sent();
2140
+ _didIteratorError = true;
2141
+ _iteratorError = err;
2142
+ return [
2143
+ 3,
2144
+ 9
2145
+ ];
2146
+ case 8:
2147
+ try {
2148
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
2149
+ _iterator.return();
2150
+ }
2151
+ } finally{
2152
+ if (_didIteratorError) {
2153
+ throw _iteratorError;
2154
+ }
2155
+ }
2156
+ return [
2157
+ 7
2158
+ ];
2159
+ case 9:
2160
+ return [
2161
+ 2,
2162
+ prisma2.run.update({
2163
+ where: {
2164
+ id: runId
2165
+ },
2166
+ data: {
2167
+ status: "QUEUED"
2168
+ }
2169
+ })
2170
+ ];
2171
+ }
2172
+ });
2173
+ });
2174
+ return function(prisma2) {
2175
+ return _ref.apply(this, arguments);
2176
+ };
2177
+ }())
2178
+ ];
2179
+ case 1:
2180
+ run = _state.sent();
2181
+ return [
2182
+ 4,
2183
+ runAdapter({
2184
+ run: serializeRun({
2185
+ run: run
2186
+ }),
2187
+ onEvent: onEvent({
2188
+ controller: controller,
2189
+ prisma: prisma
2190
+ }),
2191
+ // @ts-ignore-next-line
2192
+ getMessages: getMessages({
2193
+ prisma: prisma,
2194
+ run: run
2195
+ })
2196
+ })
2197
+ ];
2198
+ case 2:
2199
+ _state.sent();
2200
+ console.log("Stream ended inside cloud storage");
2201
+ controller.close();
2202
+ return [
2203
+ 2
2204
+ ];
2205
+ }
2206
+ });
2207
+ })();
2208
+ }
2209
+ });
2210
+ };
2211
+ };
2212
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/steps/list.ts
2213
+ var import_radash9 = require("radash");
2214
+ var list3 = function(param) {
2215
+ var prisma = param.prisma;
2216
+ return /*#__PURE__*/ _async_to_generator(function() {
2217
+ var _len, args, _key, _this, threadId, runId, _args_, _ref, // @ts-ignore-next-line
2218
+ limit, // @ts-ignore-next-line
2219
+ order, runSteps, _id;
2220
+ var _arguments = arguments;
2221
+ return _ts_generator(this, function(_state) {
2222
+ switch(_state.label){
2223
+ case 0:
2224
+ for(_len = _arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
2225
+ args[_key] = _arguments[_key];
2226
+ }
2227
+ threadId = args[0];
2228
+ runId = args[1];
2229
+ _ref = (0, import_radash9.assign)({
2230
+ // @ts-ignore-next-line
2231
+ limit: 20,
2232
+ order: "desc"
2233
+ }, (_args_ = args[2]) !== null && _args_ !== void 0 ? _args_ : {}), limit = _ref.limit, order = _ref.order;
2234
+ return [
2235
+ 4,
2236
+ prisma.runStep.findMany({
2237
+ where: {
2238
+ threadId: threadId,
2239
+ runId: runId
2240
+ },
2241
+ take: limit,
2242
+ orderBy: {
2243
+ createdAt: order
2244
+ }
2245
+ })
2246
+ ];
2247
+ case 1:
2248
+ runSteps = _state.sent();
2249
+ return [
2250
+ 2,
2251
+ {
2252
+ data: runSteps.map(function(runStep) {
2253
+ return serializeRunStep({
2254
+ runStep: runStep
2255
+ });
2256
+ }),
2257
+ hasNextPage: function() {
2258
+ return false;
2259
+ },
2260
+ body: {
2261
+ last_id: (_id = (_this = (0, import_radash9.last)(runSteps)) === null || _this === void 0 ? void 0 : _this.id) !== null && _id !== void 0 ? _id : null
2262
+ }
2263
+ }
2264
+ ];
2265
+ }
2266
+ });
2267
+ });
2268
+ };
2269
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/steps/index.ts
2270
+ var steps = function(param) {
2271
+ var prisma = param.prisma;
2272
+ return {
2273
+ list: list3({
2274
+ prisma: prisma
2275
+ })
2276
+ };
2277
+ };
2278
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/runs/index.ts
2279
+ var runs = function(param) {
2280
+ var prisma = param.prisma, runAdapter = param.runAdapter;
2281
+ return {
2282
+ list: list2({
2283
+ prisma: prisma
2284
+ }),
2285
+ create: create3({
2286
+ prisma: prisma
2287
+ }),
2288
+ createAndStream: createAndStream({
2289
+ prisma: prisma,
2290
+ runAdapter: runAdapter
2291
+ }),
2292
+ submitToolOutputs: submitToolOutputs({
2293
+ prisma: prisma,
2294
+ runAdapter: runAdapter
2295
+ }),
2296
+ submitToolOutputsStream: submitToolOutputsStream({
2297
+ prisma: prisma,
2298
+ runAdapter: runAdapter
2299
+ }),
2300
+ steps: steps({
2301
+ prisma: prisma
2302
+ })
2303
+ };
2304
+ };
2305
+ // src/adapters/storage/prismaStorageAdapter/beta/threads/index.ts
2306
+ var threads = function(param) {
2307
+ var prisma = param.prisma, runAdapter = param.runAdapter;
2308
+ return {
2309
+ create: create({
2310
+ prisma: prisma
2311
+ }),
2312
+ messages: messages2({
2313
+ prisma: prisma
2314
+ }),
2315
+ runs: runs({
2316
+ prisma: prisma,
2317
+ runAdapter: runAdapter
2318
+ })
2319
+ };
2320
+ };
2321
+ // src/adapters/storage/prismaStorageAdapter/beta/index.ts
2322
+ var beta = function(param) {
2323
+ var prisma = param.prisma, runAdapter = param.runAdapter;
2324
+ return {
2325
+ threads: threads({
2326
+ prisma: prisma,
2327
+ runAdapter: runAdapter
2328
+ })
2329
+ };
2330
+ };
2331
+ // src/adapters/storage/prismaStorageAdapter/index.ts
2332
+ var prismaStorageAdapter = function(param) {
2333
+ var prisma = param.prisma;
2334
+ return function(param) {
2335
+ var runAdapter = param.runAdapter;
2336
+ return {
2337
+ beta: beta({
2338
+ prisma: prisma,
2339
+ runAdapter: runAdapter
2340
+ })
2341
+ };
2342
+ };
2343
+ };
2344
+ // Annotate the CommonJS export names for ESM import in node:
2345
+ 0 && (module.exports = {
2346
+ completionsRunAdapter: completionsRunAdapter,
2347
+ mistralClientAdapter: mistralClientAdapter,
2348
+ perplexityClientAdapter: perplexityClientAdapter,
2349
+ prismaStorageAdapter: prismaStorageAdapter,
2350
+ supercompat: supercompat
2351
+ });
2352
+ //# sourceMappingURL=index.cjs.map