supercompat 2.2.4 → 2.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1062,11 +1062,33 @@ var mistralClientAdapter = function(param) {
1062
1062
  }
1063
1063
  };
1064
1064
  };
1065
- // src/adapters/client/perplexityClientAdapter/completions/post.ts
1065
+ // src/lib/messages/alternatingMessages.ts
1066
1066
  var agentSideRoles = [
1067
1067
  "assistant",
1068
1068
  "system"
1069
1069
  ];
1070
+ var alternatingMessages = function(param) {
1071
+ var messages3 = param.messages;
1072
+ var result = [];
1073
+ messages3.forEach(function(message, index) {
1074
+ result.push(message);
1075
+ var nextMessage = messages3[index + 1];
1076
+ if (!nextMessage) return;
1077
+ if (message.role === "user" && nextMessage.role === "user") {
1078
+ result.push({
1079
+ role: "assistant",
1080
+ content: "-"
1081
+ });
1082
+ } else if (agentSideRoles.includes(message.role) && agentSideRoles.includes(nextMessage.role)) {
1083
+ result.push({
1084
+ role: "user",
1085
+ content: "-"
1086
+ });
1087
+ }
1088
+ });
1089
+ return result;
1090
+ };
1091
+ // src/adapters/client/perplexityClientAdapter/completions/post.ts
1070
1092
  var post4 = function(param) {
1071
1093
  var perplexity = param.perplexity;
1072
1094
  return function() {
@@ -1076,22 +1098,8 @@ var post4 = function(param) {
1076
1098
  switch(_state.label){
1077
1099
  case 0:
1078
1100
  body = JSON.parse(options.body);
1079
- messages3 = [];
1080
- body.messages.forEach(function(message, index) {
1081
- messages3.push(message);
1082
- var nextMessage = body.messages[index + 1];
1083
- if (!nextMessage) return;
1084
- if (message.role === "user" && nextMessage.role === "user") {
1085
- messages3.push({
1086
- role: "assistant",
1087
- content: ""
1088
- });
1089
- } else if (agentSideRoles.includes(message.role) && agentSideRoles.includes(nextMessage.role)) {
1090
- messages3.push({
1091
- role: "user",
1092
- content: ""
1093
- });
1094
- }
1101
+ messages3 = alternatingMessages({
1102
+ messages: body.messages
1095
1103
  });
1096
1104
  if (!body.stream) return [
1097
1105
  3,
@@ -1099,7 +1107,9 @@ var post4 = function(param) {
1099
1107
  ];
1100
1108
  return [
1101
1109
  4,
1102
- perplexity.chat.completions.create(body)
1110
+ perplexity.chat.completions.create(_object_spread_props(_object_spread({}, body), {
1111
+ messages: messages3
1112
+ }))
1103
1113
  ];
1104
1114
  case 1:
1105
1115
  response = _state.sent();
@@ -1277,7 +1287,34 @@ var perplexityClientAdapter = function(param) {
1277
1287
  };
1278
1288
  };
1279
1289
  // src/adapters/client/anthropicClientAdapter/completions/post.ts
1290
+ var import_radash3 = require("radash");
1291
+ // src/lib/messages/nonEmptyMessages.ts
1280
1292
  var import_radash2 = require("radash");
1293
+ var nonEmptyMessages = function(param) {
1294
+ var messages3 = param.messages;
1295
+ var result = [];
1296
+ messages3.forEach(function(message) {
1297
+ return result.push(_object_spread_props(_object_spread({}, message), {
1298
+ content: (0, import_radash2.isEmpty)(message.content) ? "-" : message.content
1299
+ }));
1300
+ });
1301
+ return result;
1302
+ };
1303
+ // src/lib/messages/firstUserMessages.ts
1304
+ var firstUserMessages = function(param) {
1305
+ var messages3 = param.messages;
1306
+ var firstMessage = messages3[0];
1307
+ if (!firstMessage) return messages3;
1308
+ if (firstMessage.role !== "user") {
1309
+ return [
1310
+ {
1311
+ role: "user",
1312
+ content: "-"
1313
+ }
1314
+ ].concat(_to_consumable_array(messages3));
1315
+ }
1316
+ return messages3;
1317
+ };
1281
1318
  // src/adapters/client/anthropicClientAdapter/completions/serializeTools.ts
1282
1319
  var serializeTools = function(param) {
1283
1320
  var tools = param.tools;
@@ -1345,31 +1382,32 @@ var post5 = function(param) {
1345
1382
  var anthropic = param.anthropic;
1346
1383
  return function() {
1347
1384
  var _ref = _async_to_generator(function(_url, options) {
1348
- var body, messages3, _ref, systemMessages, otherMessages, system, resultOptions, response, stream, data, error;
1385
+ var body, messages3, _ref, systemMessages, otherMessages, system, chatMessages, resultOptions, response, stream, data, error;
1349
1386
  return _ts_generator(this, function(_state) {
1350
1387
  switch(_state.label){
1351
1388
  case 0:
1352
1389
  body = JSON.parse(options.body);
1353
1390
  messages3 = body.messages;
1354
- _ref = _sliced_to_array((0, import_radash2.fork)(messages3, function(message) {
1391
+ _ref = _sliced_to_array((0, import_radash3.fork)(messages3, function(message) {
1355
1392
  return message.role === "system";
1356
1393
  }), 2), systemMessages = _ref[0], otherMessages = _ref[1];
1357
1394
  system = systemMessages.map(function(message) {
1358
1395
  return message.content;
1359
1396
  }).join("\n");
1360
- if (otherMessages[0] && otherMessages[0].role != "user") {
1361
- otherMessages.unshift({
1362
- role: "user",
1363
- content: "-"
1364
- });
1365
- }
1366
- resultOptions = _object_spread_props(_object_spread({}, (0, import_radash2.omit)(body, [
1397
+ chatMessages = nonEmptyMessages({
1398
+ messages: firstUserMessages({
1399
+ messages: alternatingMessages({
1400
+ messages: otherMessages
1401
+ })
1402
+ })
1403
+ });
1404
+ resultOptions = _object_spread_props(_object_spread({}, (0, import_radash3.omit)(body, [
1367
1405
  "response_format"
1368
1406
  ])), {
1369
- stream: body.stream ? (0, import_radash2.isEmpty)(body.tools) : false,
1407
+ stream: body.stream ? (0, import_radash3.isEmpty)(body.tools) : false,
1370
1408
  system: system,
1371
1409
  messages: serializeMessages({
1372
- messages: otherMessages
1410
+ messages: chatMessages
1373
1411
  }),
1374
1412
  max_tokens: 4096,
1375
1413
  tools: serializeTools({
@@ -1430,7 +1468,7 @@ var post5 = function(param) {
1430
1468
  content: chunk.delta.text
1431
1469
  };
1432
1470
  messageDelta = {
1433
- id: "chatcmpl-".concat((0, import_radash2.uid)(29)),
1471
+ id: "chatcmpl-".concat((0, import_radash3.uid)(29)),
1434
1472
  object: "chat.completion.chunk",
1435
1473
  choices: [
1436
1474
  {
@@ -1458,7 +1496,7 @@ var post5 = function(param) {
1458
1496
  content: chunk.content_block.text
1459
1497
  };
1460
1498
  messageDelta1 = {
1461
- id: "chatcmpl-".concat((0, import_radash2.uid)(29)),
1499
+ id: "chatcmpl-".concat((0, import_radash3.uid)(29)),
1462
1500
  object: "chat.completion.chunk",
1463
1501
  choices: [
1464
1502
  {
@@ -1470,7 +1508,7 @@ var post5 = function(param) {
1470
1508
  controller.enqueue("data: ".concat(JSON.stringify(messageDelta1), "\n\n"));
1471
1509
  } else if (chunk.type === "message_start") {
1472
1510
  messageDelta2 = {
1473
- id: "chatcmpl-".concat((0, import_radash2.uid)(29)),
1511
+ id: "chatcmpl-".concat((0, import_radash3.uid)(29)),
1474
1512
  object: "chat.completion.chunk",
1475
1513
  choices: [
1476
1514
  {
@@ -1627,10 +1665,10 @@ var anthropicClientAdapter = function(param) {
1627
1665
  };
1628
1666
  // src/adapters/run/completionsRunAdapter/index.ts
1629
1667
  var import_lodash = __toESM(require("lodash"), 1);
1630
- var import_radash4 = require("radash");
1668
+ var import_radash5 = require("radash");
1631
1669
  var import_dayjs = __toESM(require("dayjs"), 1);
1632
1670
  // src/adapters/run/completionsRunAdapter/messages/index.ts
1633
- var import_radash3 = require("radash");
1671
+ var import_radash4 = require("radash");
1634
1672
  // src/adapters/run/completionsRunAdapter/messages/serializeMessage.ts
1635
1673
  var serializeToolCall = function(param) {
1636
1674
  var toolCall = param.toolCall;
@@ -1704,7 +1742,7 @@ var messages = function() {
1704
1742
  content: run2.instructions
1705
1743
  }
1706
1744
  ] : [])).concat;
1707
- _2 = (0, import_radash3.flat);
1745
+ _2 = (0, import_radash4.flat);
1708
1746
  return [
1709
1747
  4,
1710
1748
  getMessages2()
@@ -1734,7 +1772,7 @@ var messages = function() {
1734
1772
  // src/adapters/run/completionsRunAdapter/index.ts
1735
1773
  var updatedToolCall = function(param) {
1736
1774
  var toolCall = param.toolCall, delta = param.delta;
1737
- if (!toolCall) return (0, import_radash4.omit)(delta, [
1775
+ if (!toolCall) return (0, import_radash5.omit)(delta, [
1738
1776
  "index"
1739
1777
  ]);
1740
1778
  var result = import_lodash.default.cloneDeep(toolCall);
@@ -1766,9 +1804,9 @@ var toolCallsData = function(param) {
1766
1804
  if (!prevToolCalls) {
1767
1805
  return delta.tool_calls.map(function(tc) {
1768
1806
  return _object_spread({
1769
- id: (0, import_radash4.uid)(24),
1807
+ id: (0, import_radash5.uid)(24),
1770
1808
  type: "function"
1771
- }, (0, import_radash4.omit)(tc, [
1809
+ }, (0, import_radash5.omit)(tc, [
1772
1810
  "index"
1773
1811
  ]));
1774
1812
  });
@@ -1830,7 +1868,7 @@ var completionsRunAdapter = function() {
1830
1868
  case 1:
1831
1869
  opts = _object_spread.apply(void 0, [
1832
1870
  (_tmp.messages = _state.sent(), _tmp.model = run2.model, _tmp.stream = true, _tmp.response_format = run2.response_format, _tmp),
1833
- (0, import_radash4.isEmpty)(run2.tools) ? {} : {
1871
+ (0, import_radash5.isEmpty)(run2.tools) ? {} : {
1834
1872
  tools: run2.tools
1835
1873
  }
1836
1874
  ]);
@@ -2007,7 +2045,7 @@ var completionsRunAdapter = function() {
2007
2045
  type: "tool_calls",
2008
2046
  tool_calls: delta.tool_calls.map(function(tc) {
2009
2047
  return _object_spread({
2010
- id: (0, import_radash4.uid)(24),
2048
+ id: (0, import_radash5.uid)(24),
2011
2049
  type: "function"
2012
2050
  }, tc);
2013
2051
  })
@@ -2116,7 +2154,7 @@ var completionsRunAdapter = function() {
2116
2154
  ];
2117
2155
  case 22:
2118
2156
  message = _state.sent();
2119
- if ((0, import_radash4.isEmpty)(message.toolCalls)) {
2157
+ if ((0, import_radash5.isEmpty)(message.toolCalls)) {
2120
2158
  return [
2121
2159
  2,
2122
2160
  onEvent2({
@@ -2244,7 +2282,7 @@ var threads = function(param) {
2244
2282
  };
2245
2283
  // src/adapters/storage/prismaStorageAdapter/threads/messages/serializeMessage.ts
2246
2284
  var import_dayjs4 = __toESM(require("dayjs"), 1);
2247
- var import_radash5 = require("radash");
2285
+ var import_radash6 = require("radash");
2248
2286
  var serializeMessage3 = function(param) {
2249
2287
  var message = param.message;
2250
2288
  var _message_metadata;
@@ -2262,7 +2300,7 @@ var serializeMessage3 = function(param) {
2262
2300
  run_id: message.runId,
2263
2301
  attachments: message.attachments,
2264
2302
  status: message.status.toLowerCase(),
2265
- metadata: (0, import_radash5.assign)((_message_metadata = message.metadata) !== null && _message_metadata !== void 0 ? _message_metadata : {}, message.toolCalls ? {
2303
+ metadata: (0, import_radash6.assign)((_message_metadata = message.metadata) !== null && _message_metadata !== void 0 ? _message_metadata : {}, message.toolCalls ? {
2266
2304
  toolCalls: message.toolCalls
2267
2305
  } : {})
2268
2306
  };
@@ -2326,7 +2364,7 @@ var post7 = function(param) {
2326
2364
  }();
2327
2365
  };
2328
2366
  // src/adapters/storage/prismaStorageAdapter/threads/messages/get.ts
2329
- var import_radash6 = require("radash");
2367
+ var import_radash7 = require("radash");
2330
2368
  var get = function(param) {
2331
2369
  var prisma = param.prisma;
2332
2370
  return function() {
@@ -2337,7 +2375,7 @@ var get = function(param) {
2337
2375
  case 0:
2338
2376
  url = new URL(urlString);
2339
2377
  _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp("^/v1/threads/([^/]+)/messages$")), 2), threadId = _url_pathname_match[1];
2340
- _ref = (0, import_radash6.assign)({
2378
+ _ref = (0, import_radash7.assign)({
2341
2379
  limit: "20",
2342
2380
  order: "desc"
2343
2381
  }, Object.fromEntries(url.searchParams)), limit = _ref.limit, order = _ref.order, after = _ref.after;
@@ -2372,7 +2410,7 @@ var get = function(param) {
2372
2410
  return messages3.length === parseInt(limit);
2373
2411
  },
2374
2412
  body: {
2375
- last_id: (_id = (_this = (0, import_radash6.last)(messages3)) === null || _this === void 0 ? void 0 : _this.id) !== null && _id !== void 0 ? _id : null
2413
+ last_id: (_id = (_this = (0, import_radash7.last)(messages3)) === null || _this === void 0 ? void 0 : _this.id) !== null && _id !== void 0 ? _id : null
2376
2414
  }
2377
2415
  }), {
2378
2416
  status: 200,
@@ -2402,7 +2440,7 @@ var messages2 = function(param) {
2402
2440
  };
2403
2441
  };
2404
2442
  // src/adapters/storage/prismaStorageAdapter/threads/runs/get.ts
2405
- var import_radash7 = require("radash");
2443
+ var import_radash8 = require("radash");
2406
2444
  // src/adapters/storage/prismaStorageAdapter/threads/runs/serializeRun.ts
2407
2445
  var import_dayjs5 = __toESM(require("dayjs"), 1);
2408
2446
  var serializeRun = function(param) {
@@ -2451,7 +2489,7 @@ var get2 = function(param) {
2451
2489
  case 0:
2452
2490
  url = new URL(urlString);
2453
2491
  _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp("^/v1/threads/([^/]+)/runs$")), 2), threadId = _url_pathname_match[1];
2454
- _ref = (0, import_radash7.assign)({
2492
+ _ref = (0, import_radash8.assign)({
2455
2493
  limit: "20",
2456
2494
  order: "desc"
2457
2495
  }, Object.fromEntries(url.searchParams)), limit = _ref.limit, order = _ref.order, after = _ref.after;
@@ -2487,7 +2525,7 @@ var get2 = function(param) {
2487
2525
  },
2488
2526
  body: {
2489
2527
  // @ts-ignore-next-line
2490
- last_id: (_id = (_this = (0, import_radash7.last)(runs2)) === null || _this === void 0 ? void 0 : _this.id) !== null && _id !== void 0 ? _id : null
2528
+ last_id: (_id = (_this = (0, import_radash8.last)(runs2)) === null || _this === void 0 ? void 0 : _this.id) !== null && _id !== void 0 ? _id : null
2491
2529
  }
2492
2530
  }), {
2493
2531
  status: 200,
@@ -2506,7 +2544,7 @@ var get2 = function(param) {
2506
2544
  };
2507
2545
  // src/adapters/storage/prismaStorageAdapter/threads/runs/post.ts
2508
2546
  var import_dayjs7 = __toESM(require("dayjs"), 1);
2509
- var import_radash8 = require("radash");
2547
+ var import_radash9 = require("radash");
2510
2548
  // src/adapters/storage/prismaStorageAdapter/threads/runs/onEvent/handlers/threadRunInProgress.ts
2511
2549
  var threadRunInProgress = function(param) {
2512
2550
  var prisma = param.prisma, event = param.event, controller = param.controller;
@@ -2890,7 +2928,7 @@ var post8 = function(param) {
2890
2928
  if (!assistant) {
2891
2929
  throw new Error("Assistant not found");
2892
2930
  }
2893
- _ref = (0, import_radash8.assign)({
2931
+ _ref = (0, import_radash9.assign)({
2894
2932
  model: assistant.modelSlug,
2895
2933
  instructions: "",
2896
2934
  additional_instructions: null,
@@ -3099,7 +3137,7 @@ var run = function(param) {
3099
3137
  };
3100
3138
  };
3101
3139
  // src/adapters/storage/prismaStorageAdapter/threads/runs/steps/get.ts
3102
- var import_radash9 = require("radash");
3140
+ var import_radash10 = require("radash");
3103
3141
  var get4 = function(param) {
3104
3142
  var prisma = param.prisma;
3105
3143
  return function() {
@@ -3110,7 +3148,7 @@ var get4 = function(param) {
3110
3148
  case 0:
3111
3149
  url = new URL(urlString);
3112
3150
  _url_pathname_match = _sliced_to_array(url.pathname.match(new RegExp("^/v1/threads/([^/]+)/runs/([^/]+)/steps$")), 4), threadId = _url_pathname_match[1], runId = _url_pathname_match[3];
3113
- _ref = (0, import_radash9.assign)({
3151
+ _ref = (0, import_radash10.assign)({
3114
3152
  limit: "20",
3115
3153
  order: "desc"
3116
3154
  }, Object.fromEntries(url.searchParams)), limit = _ref.limit, order = _ref.order, after = _ref.after;
@@ -3147,7 +3185,7 @@ var get4 = function(param) {
3147
3185
  },
3148
3186
  body: {
3149
3187
  // @ts-ignore-next-line
3150
- last_id: (_id = (_this = (0, import_radash9.last)(runSteps)) === null || _this === void 0 ? void 0 : _this.id) !== null && _id !== void 0 ? _id : null
3188
+ last_id: (_id = (_this = (0, import_radash10.last)(runSteps)) === null || _this === void 0 ? void 0 : _this.id) !== null && _id !== void 0 ? _id : null
3151
3189
  }
3152
3190
  }), {
3153
3191
  status: 200,