supercompat 1.5.1 → 2.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.
@@ -1,7 +1,67 @@
1
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 _iterable_to_array(iter) {
14
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
15
+ }
16
+ function _iterable_to_array_limit(arr, i) {
17
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
18
+ if (_i == null) return;
19
+ var _arr = [];
20
+ var _n = true;
21
+ var _d = false;
22
+ var _s, _e;
23
+ try {
24
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
25
+ _arr.push(_s.value);
26
+ if (i && _arr.length === i) break;
27
+ }
28
+ } catch (err) {
29
+ _d = true;
30
+ _e = err;
31
+ } finally{
32
+ try {
33
+ if (!_n && _i["return"] != null) _i["return"]();
34
+ } finally{
35
+ if (_d) throw _e;
36
+ }
37
+ }
38
+ return _arr;
39
+ }
40
+ function _non_iterable_rest() {
41
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
42
+ }
43
+ function _non_iterable_spread() {
44
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
45
+ }
46
+ function _sliced_to_array(arr, i) {
47
+ return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
48
+ }
49
+ function _to_consumable_array(arr) {
50
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
51
+ }
52
+ function _unsupported_iterable_to_array(o, minLen) {
53
+ if (!o) return;
54
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
55
+ var n = Object.prototype.toString.call(o).slice(8, -1);
56
+ if (n === "Object" && o.constructor) n = o.constructor.name;
57
+ if (n === "Map" || n === "Set") return Array.from(n);
58
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
59
+ }
60
+ var __create = Object.create;
2
61
  var __defProp = Object.defineProperty;
3
62
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
63
  var __getOwnPropNames = Object.getOwnPropertyNames;
64
+ var __getProtoOf = Object.getPrototypeOf;
5
65
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
66
  var __export = function(target, all) {
7
67
  for(var name in all)__defProp(target, name, {
@@ -40,6 +100,16 @@ var __copyProps = function(to, from, except, desc) {
40
100
  }
41
101
  return to;
42
102
  };
103
+ var __toESM = function(mod, isNodeMode, target) {
104
+ return target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(// If the importer is in node compatibility mode or this is not an ESM
105
+ // file that has been converted to a CommonJS file using a Babel-
106
+ // compatible transform (i.e. "__esModule" has not been set), then set
107
+ // "default" to the CommonJS "module.exports" for node compatibility.
108
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
109
+ value: mod,
110
+ enumerable: true
111
+ }) : target, mod);
112
+ };
43
113
  var __toCommonJS = function(mod) {
44
114
  return __copyProps(__defProp({}, "__esModule", {
45
115
  value: true
@@ -53,8 +123,10 @@ __export(supercompat_exports, {
53
123
  }
54
124
  });
55
125
  module.exports = __toCommonJS(supercompat_exports);
126
+ var import_openai = __toESM(require("openai"), 1);
127
+ // src/supercompatFetch/requestHandlers.ts
56
128
  var import_radash = require("radash");
57
- var supercompat = function(param) {
129
+ var requestHandlers = function(param) {
58
130
  var client = param.client, storage = param.storage, runAdapter = param.runAdapter;
59
131
  return (0, import_radash.assign)(client, storage({
60
132
  runAdapter: (0, import_radash.partob)(runAdapter, {
@@ -62,6 +134,56 @@ var supercompat = function(param) {
62
134
  })
63
135
  }));
64
136
  };
137
+ // src/supercompatFetch/findRequestHandler.ts
138
+ var findRequestHandler = function(param) {
139
+ var url = param.url, requestHandlers2 = param.requestHandlers;
140
+ var pathname = new URL(url).pathname;
141
+ for(var key in requestHandlers2){
142
+ var regex = new RegExp(key);
143
+ if (regex.test(pathname)) {
144
+ return requestHandlers2[key];
145
+ }
146
+ }
147
+ };
148
+ // src/supercompatFetch/index.ts
149
+ var supercompatFetch = function(param) {
150
+ var client = param.client, storage = param.storage, runAdapter = param.runAdapter;
151
+ var requestHandlers2 = requestHandlers({
152
+ client: client,
153
+ storage: storage,
154
+ runAdapter: runAdapter
155
+ });
156
+ return function() {
157
+ for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
158
+ args[_key] = arguments[_key];
159
+ }
160
+ var _args = _sliced_to_array(args, 2), url = _args[0], options = _args[1];
161
+ var pathHandler = findRequestHandler({
162
+ url: url,
163
+ requestHandlers: requestHandlers2
164
+ });
165
+ if (!pathHandler) {
166
+ return fetch.apply(void 0, _to_consumable_array(args));
167
+ }
168
+ var requestHandler = pathHandler[options === null || options === void 0 ? void 0 : options.method];
169
+ if (!requestHandler) {
170
+ return fetch.apply(void 0, _to_consumable_array(args));
171
+ }
172
+ return requestHandler.apply(void 0, _to_consumable_array(args));
173
+ };
174
+ };
175
+ // src/supercompat.ts
176
+ var supercompat = function(param) {
177
+ var client = param.client, storage = param.storage, runAdapter = param.runAdapter;
178
+ return new import_openai.default({
179
+ apiKey: "SUPERCOMPAT_PLACEHOLDER_OPENAI_KEY",
180
+ fetch: supercompatFetch({
181
+ client: client,
182
+ storage: storage,
183
+ runAdapter: runAdapter
184
+ })
185
+ });
186
+ };
65
187
  // Annotate the CommonJS export names for ESM import in node:
66
188
  0 && (module.exports = {
67
189
  supercompat: supercompat
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/supercompat.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,oBAA+B;AAGxB,IAAM,cAAc,CAAC;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AACF,UAKE;AAAA,EACE;AAAA,EACA,QAAQ;AAAA,IACN,gBAAY,sBAAO,YAAY,EAAE,OAAO,CAAC;AAAA,EAC3C,CAAC;AACH","sourcesContent":["import OpenAI from 'openai'\nimport { assign, partob } from 'radash'\nimport { RunAdapter, StorageAdapterArgs } from '@/types'\n\nexport const supercompat = ({\n client,\n storage,\n runAdapter,\n}: {\n client: OpenAI\n storage: (arg0: StorageAdapterArgs) => OpenAI\n runAdapter: RunAdapter\n}) => (\n assign(\n client,\n storage({\n runAdapter: partob(runAdapter, { client }),\n }),\n )\n)\n"]}
1
+ {"version":3,"sources":["../src/supercompat.ts","../src/supercompatFetch/requestHandlers.ts","../src/supercompatFetch/findRequestHandler.ts","../src/supercompatFetch/index.ts"],"names":["requestHandlers","OpenAI"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAmB;;;ACCnB,oBAA+B;AAGxB,IAAM,kBAAkB,CAAC;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AACF,UAKE;AAAA,EACE;AAAA,EACA,QAAQ;AAAA,IACN,gBAAY,sBAAO,YAAY,EAAE,OAAO,CAAC;AAAA,EAC3C,CAAC;AACH;;;AClBK,IAAM,qBAAqB,CAAC;AAAA,EACjC;AAAA,EACA,iBAAAA;AACF,MAGM;AACJ,QAAM,WAAW,IAAI,IAAI,GAAG,EAAE;AAE9B,aAAW,OAAOA,kBAAiB;AACjC,UAAM,QAAQ,IAAI,OAAO,GAAG;AAE5B,QAAI,MAAM,KAAK,QAAQ,GAAG;AACxB,aAAOA,iBAAgB,GAAG;AAAA,IAC5B;AAAA,EACF;AACF;;;ACNO,IAAM,mBAAmB,CAAC;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AACF,MAAY;AACV,QAAMA,mBAAkB,gBAAmB;AAAA,IACzC;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,SAAO,IAAI,SAAgB;AACzB,UAAM,CAAC,KAAK,OAAO,IAAI;AAEvB,UAAM,cAAc,mBAAmB;AAAA,MACrC;AAAA,MACA,iBAAAA;AAAA,IACF,CAAC;AAED,QAAI,CAAC,aAAa;AAEhB,aAAO,MAAM,GAAG,IAAI;AAAA,IACtB;AAEA,UAAM,iBAAiB,YAAY,SAAS,MAAM;AAElD,QAAI,CAAC,gBAAgB;AAEnB,aAAO,MAAM,GAAG,IAAI;AAAA,IACtB;AAEA,WAAO,eAAe,GAAG,IAAI;AAAA,EAC/B;AACF;;;AHxCO,IAAM,cAAc,CAAC;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AACF,MACE,IAAI,cAAAC,QAAO;AAAA,EACT,QAAQ;AAAA,EACR,OAAO,iBAAiB;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH,CAAC","sourcesContent":["import OpenAI from 'openai'\nimport { supercompatFetch, type Args } from './supercompatFetch'\n\nexport const supercompat = ({\n client,\n storage,\n runAdapter,\n}: Args) => (\n new OpenAI({\n apiKey: 'SUPERCOMPAT_PLACEHOLDER_OPENAI_KEY',\n fetch: supercompatFetch({\n client,\n storage,\n runAdapter,\n }),\n })\n)\n","import OpenAI from 'openai'\nimport { assign, partob } from 'radash'\nimport { RunAdapter, StorageAdapterArgs } from '@/types'\n\nexport const requestHandlers = ({\n client,\n storage,\n runAdapter,\n}: {\n client: OpenAI\n storage: (arg0: StorageAdapterArgs) => OpenAI\n runAdapter: RunAdapter\n}) => (\n assign(\n client,\n storage({\n runAdapter: partob(runAdapter, { client }),\n }),\n )\n)\n","export const findRequestHandler = ({\n url,\n requestHandlers,\n}: {\n url: string\n requestHandlers: any\n}) => {\n const pathname = new URL(url).pathname\n\n for (const key in requestHandlers) {\n const regex = new RegExp(key)\n\n if (regex.test(pathname)) {\n return requestHandlers[key]\n }\n }\n}\n","import { RunAdapter, StorageAdapterArgs } from '@/types'\nimport { requestHandlers as getRequestHandlers } from './requestHandlers'\nimport { findRequestHandler } from './findRequestHandler'\n\nexport type Args = {\n client: any\n storage: (arg0: StorageAdapterArgs) => any\n runAdapter: RunAdapter\n}\n\nexport const supercompatFetch = ({\n client,\n storage,\n runAdapter,\n}: Args) => {\n const requestHandlers = getRequestHandlers({\n client,\n storage,\n runAdapter,\n })\n\n return (...args: any[]) => {\n const [url, options] = args\n\n const pathHandler = findRequestHandler({\n url,\n requestHandlers,\n })\n\n if (!pathHandler) {\n // @ts-ignore-next-line\n return fetch(...args)\n }\n\n const requestHandler = pathHandler[options?.method]\n\n if (!requestHandler) {\n // @ts-ignore-next-line\n return fetch(...args)\n }\n\n return requestHandler(...args)\n }\n}\n"]}
@@ -1,10 +1,12 @@
1
1
  import OpenAI from 'openai';
2
2
  import { StorageAdapterArgs, RunAdapter } from './types/index.cjs';
3
3
 
4
- declare const supercompat: ({ client, storage, runAdapter, }: {
5
- client: OpenAI;
6
- storage: (arg0: StorageAdapterArgs) => OpenAI;
4
+ type Args = {
5
+ client: any;
6
+ storage: (arg0: StorageAdapterArgs) => any;
7
7
  runAdapter: RunAdapter;
8
- }) => OpenAI;
8
+ };
9
+
10
+ declare const supercompat: ({ client, storage, runAdapter, }: Args) => OpenAI;
9
11
 
10
12
  export { supercompat };
@@ -1,10 +1,12 @@
1
1
  import OpenAI from 'openai';
2
2
  import { StorageAdapterArgs, RunAdapter } from './types/index.js';
3
3
 
4
- declare const supercompat: ({ client, storage, runAdapter, }: {
5
- client: OpenAI;
6
- storage: (arg0: StorageAdapterArgs) => OpenAI;
4
+ type Args = {
5
+ client: any;
6
+ storage: (arg0: StorageAdapterArgs) => any;
7
7
  runAdapter: RunAdapter;
8
- }) => OpenAI;
8
+ };
9
+
10
+ declare const supercompat: ({ client, storage, runAdapter, }: Args) => OpenAI;
9
11
 
10
12
  export { supercompat };
@@ -1,6 +1,66 @@
1
1
  // src/supercompat.ts
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 _iterable_to_array(iter) {
14
+ if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
15
+ }
16
+ function _iterable_to_array_limit(arr, i) {
17
+ var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
18
+ if (_i == null) return;
19
+ var _arr = [];
20
+ var _n = true;
21
+ var _d = false;
22
+ var _s, _e;
23
+ try {
24
+ for(_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true){
25
+ _arr.push(_s.value);
26
+ if (i && _arr.length === i) break;
27
+ }
28
+ } catch (err) {
29
+ _d = true;
30
+ _e = err;
31
+ } finally{
32
+ try {
33
+ if (!_n && _i["return"] != null) _i["return"]();
34
+ } finally{
35
+ if (_d) throw _e;
36
+ }
37
+ }
38
+ return _arr;
39
+ }
40
+ function _non_iterable_rest() {
41
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
42
+ }
43
+ function _non_iterable_spread() {
44
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
45
+ }
46
+ function _sliced_to_array(arr, i) {
47
+ return _array_with_holes(arr) || _iterable_to_array_limit(arr, i) || _unsupported_iterable_to_array(arr, i) || _non_iterable_rest();
48
+ }
49
+ function _to_consumable_array(arr) {
50
+ return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
51
+ }
52
+ function _unsupported_iterable_to_array(o, minLen) {
53
+ if (!o) return;
54
+ if (typeof o === "string") return _array_like_to_array(o, minLen);
55
+ var n = Object.prototype.toString.call(o).slice(8, -1);
56
+ if (n === "Object" && o.constructor) n = o.constructor.name;
57
+ if (n === "Map" || n === "Set") return Array.from(n);
58
+ if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
59
+ }
60
+ import OpenAI from "openai";
61
+ // src/supercompatFetch/requestHandlers.ts
2
62
  import { assign, partob } from "radash";
3
- var supercompat = function(param) {
63
+ var requestHandlers = function(param) {
4
64
  var client = param.client, storage = param.storage, runAdapter = param.runAdapter;
5
65
  return assign(client, storage({
6
66
  runAdapter: partob(runAdapter, {
@@ -8,5 +68,55 @@ var supercompat = function(param) {
8
68
  })
9
69
  }));
10
70
  };
71
+ // src/supercompatFetch/findRequestHandler.ts
72
+ var findRequestHandler = function(param) {
73
+ var url = param.url, requestHandlers2 = param.requestHandlers;
74
+ var pathname = new URL(url).pathname;
75
+ for(var key in requestHandlers2){
76
+ var regex = new RegExp(key);
77
+ if (regex.test(pathname)) {
78
+ return requestHandlers2[key];
79
+ }
80
+ }
81
+ };
82
+ // src/supercompatFetch/index.ts
83
+ var supercompatFetch = function(param) {
84
+ var client = param.client, storage = param.storage, runAdapter = param.runAdapter;
85
+ var requestHandlers2 = requestHandlers({
86
+ client: client,
87
+ storage: storage,
88
+ runAdapter: runAdapter
89
+ });
90
+ return function() {
91
+ for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){
92
+ args[_key] = arguments[_key];
93
+ }
94
+ var _args = _sliced_to_array(args, 2), url = _args[0], options = _args[1];
95
+ var pathHandler = findRequestHandler({
96
+ url: url,
97
+ requestHandlers: requestHandlers2
98
+ });
99
+ if (!pathHandler) {
100
+ return fetch.apply(void 0, _to_consumable_array(args));
101
+ }
102
+ var requestHandler = pathHandler[options === null || options === void 0 ? void 0 : options.method];
103
+ if (!requestHandler) {
104
+ return fetch.apply(void 0, _to_consumable_array(args));
105
+ }
106
+ return requestHandler.apply(void 0, _to_consumable_array(args));
107
+ };
108
+ };
109
+ // src/supercompat.ts
110
+ var supercompat = function(param) {
111
+ var client = param.client, storage = param.storage, runAdapter = param.runAdapter;
112
+ return new OpenAI({
113
+ apiKey: "SUPERCOMPAT_PLACEHOLDER_OPENAI_KEY",
114
+ fetch: supercompatFetch({
115
+ client: client,
116
+ storage: storage,
117
+ runAdapter: runAdapter
118
+ })
119
+ });
120
+ };
11
121
  export { supercompat };
12
122
  //# sourceMappingURL=supercompat.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/supercompat.ts"],"names":[],"mappings":";AACA,SAAS,QAAQ,cAAc;AAGxB,IAAM,cAAc,CAAC;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AACF,MAKE;AAAA,EACE;AAAA,EACA,QAAQ;AAAA,IACN,YAAY,OAAO,YAAY,EAAE,OAAO,CAAC;AAAA,EAC3C,CAAC;AACH","sourcesContent":["import OpenAI from 'openai'\nimport { assign, partob } from 'radash'\nimport { RunAdapter, StorageAdapterArgs } from '@/types'\n\nexport const supercompat = ({\n client,\n storage,\n runAdapter,\n}: {\n client: OpenAI\n storage: (arg0: StorageAdapterArgs) => OpenAI\n runAdapter: RunAdapter\n}) => (\n assign(\n client,\n storage({\n runAdapter: partob(runAdapter, { client }),\n }),\n )\n)\n"]}
1
+ {"version":3,"sources":["../src/supercompat.ts","../src/supercompatFetch/requestHandlers.ts","../src/supercompatFetch/findRequestHandler.ts","../src/supercompatFetch/index.ts"],"names":["requestHandlers"],"mappings":";AAAA,OAAO,YAAY;;;ACCnB,SAAS,QAAQ,cAAc;AAGxB,IAAM,kBAAkB,CAAC;AAAA,EAC9B;AAAA,EACA;AAAA,EACA;AACF,MAKE;AAAA,EACE;AAAA,EACA,QAAQ;AAAA,IACN,YAAY,OAAO,YAAY,EAAE,OAAO,CAAC;AAAA,EAC3C,CAAC;AACH;;;AClBK,IAAM,qBAAqB,CAAC;AAAA,EACjC;AAAA,EACA,iBAAAA;AACF,MAGM;AACJ,QAAM,WAAW,IAAI,IAAI,GAAG,EAAE;AAE9B,aAAW,OAAOA,kBAAiB;AACjC,UAAM,QAAQ,IAAI,OAAO,GAAG;AAE5B,QAAI,MAAM,KAAK,QAAQ,GAAG;AACxB,aAAOA,iBAAgB,GAAG;AAAA,IAC5B;AAAA,EACF;AACF;;;ACNO,IAAM,mBAAmB,CAAC;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AACF,MAAY;AACV,QAAMA,mBAAkB,gBAAmB;AAAA,IACzC;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AAED,SAAO,IAAI,SAAgB;AACzB,UAAM,CAAC,KAAK,OAAO,IAAI;AAEvB,UAAM,cAAc,mBAAmB;AAAA,MACrC;AAAA,MACA,iBAAAA;AAAA,IACF,CAAC;AAED,QAAI,CAAC,aAAa;AAEhB,aAAO,MAAM,GAAG,IAAI;AAAA,IACtB;AAEA,UAAM,iBAAiB,YAAY,SAAS,MAAM;AAElD,QAAI,CAAC,gBAAgB;AAEnB,aAAO,MAAM,GAAG,IAAI;AAAA,IACtB;AAEA,WAAO,eAAe,GAAG,IAAI;AAAA,EAC/B;AACF;;;AHxCO,IAAM,cAAc,CAAC;AAAA,EAC1B;AAAA,EACA;AAAA,EACA;AACF,MACE,IAAI,OAAO;AAAA,EACT,QAAQ;AAAA,EACR,OAAO,iBAAiB;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACH,CAAC","sourcesContent":["import OpenAI from 'openai'\nimport { supercompatFetch, type Args } from './supercompatFetch'\n\nexport const supercompat = ({\n client,\n storage,\n runAdapter,\n}: Args) => (\n new OpenAI({\n apiKey: 'SUPERCOMPAT_PLACEHOLDER_OPENAI_KEY',\n fetch: supercompatFetch({\n client,\n storage,\n runAdapter,\n }),\n })\n)\n","import OpenAI from 'openai'\nimport { assign, partob } from 'radash'\nimport { RunAdapter, StorageAdapterArgs } from '@/types'\n\nexport const requestHandlers = ({\n client,\n storage,\n runAdapter,\n}: {\n client: OpenAI\n storage: (arg0: StorageAdapterArgs) => OpenAI\n runAdapter: RunAdapter\n}) => (\n assign(\n client,\n storage({\n runAdapter: partob(runAdapter, { client }),\n }),\n )\n)\n","export const findRequestHandler = ({\n url,\n requestHandlers,\n}: {\n url: string\n requestHandlers: any\n}) => {\n const pathname = new URL(url).pathname\n\n for (const key in requestHandlers) {\n const regex = new RegExp(key)\n\n if (regex.test(pathname)) {\n return requestHandlers[key]\n }\n }\n}\n","import { RunAdapter, StorageAdapterArgs } from '@/types'\nimport { requestHandlers as getRequestHandlers } from './requestHandlers'\nimport { findRequestHandler } from './findRequestHandler'\n\nexport type Args = {\n client: any\n storage: (arg0: StorageAdapterArgs) => any\n runAdapter: RunAdapter\n}\n\nexport const supercompatFetch = ({\n client,\n storage,\n runAdapter,\n}: Args) => {\n const requestHandlers = getRequestHandlers({\n client,\n storage,\n runAdapter,\n })\n\n return (...args: any[]) => {\n const [url, options] = args\n\n const pathHandler = findRequestHandler({\n url,\n requestHandlers,\n })\n\n if (!pathHandler) {\n // @ts-ignore-next-line\n return fetch(...args)\n }\n\n const requestHandler = pathHandler[options?.method]\n\n if (!requestHandler) {\n // @ts-ignore-next-line\n return fetch(...args)\n }\n\n return requestHandler(...args)\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA","sourcesContent":["import type OpenAI from 'openai'\n\nexport type MessageWithRun = OpenAI.Beta.Threads.Message & {\n run: (OpenAI.Beta.Threads.Run & {\n runSteps: OpenAI.Beta.Threads.Runs.RunStep[]\n }) | null\n}\n\nexport type RunAdapter = ({\n client,\n run,\n onEvent,\n getMessages,\n}: {\n client: OpenAI\n run: OpenAI.Beta.Threads.Run\n onEvent: (event: OpenAI.Beta.AssistantStreamEvent) => Promise<any>\n getMessages: () => Promise<MessageWithRun[]>\n}) => Promise<void>\n\nexport type StorageAdapterArgs = {\n runAdapter: RunAdapter\n}\n"]}
1
+ {"version":3,"sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA","sourcesContent":["import type OpenAI from 'openai'\n\nexport type MessageWithRun = OpenAI.Beta.Threads.Message & {\n run: (OpenAI.Beta.Threads.Run & {\n runSteps: OpenAI.Beta.Threads.Runs.RunStep[]\n }) | null\n}\n\nexport type RunAdapter = ({\n client,\n run,\n onEvent,\n getMessages,\n}: {\n client: OpenAI\n run: OpenAI.Beta.Threads.Run\n onEvent: (event: OpenAI.Beta.AssistantStreamEvent) => Promise<any>\n getMessages: () => Promise<MessageWithRun[]>\n}) => Promise<void>\n\nexport type RunAdapterPartobClient = (args: Omit<Parameters<RunAdapter>[0], 'client'>) => ReturnType<RunAdapter>\n\nexport type StorageAdapterArgs = {\n runAdapter: RunAdapter\n}\n"]}
@@ -11,8 +11,9 @@ type RunAdapter = ({ client, run, onEvent, getMessages, }: {
11
11
  onEvent: (event: OpenAI.Beta.AssistantStreamEvent) => Promise<any>;
12
12
  getMessages: () => Promise<MessageWithRun[]>;
13
13
  }) => Promise<void>;
14
+ type RunAdapterPartobClient = (args: Omit<Parameters<RunAdapter>[0], 'client'>) => ReturnType<RunAdapter>;
14
15
  type StorageAdapterArgs = {
15
16
  runAdapter: RunAdapter;
16
17
  };
17
18
 
18
- export type { MessageWithRun, RunAdapter, StorageAdapterArgs };
19
+ export type { MessageWithRun, RunAdapter, RunAdapterPartobClient, StorageAdapterArgs };
@@ -11,8 +11,9 @@ type RunAdapter = ({ client, run, onEvent, getMessages, }: {
11
11
  onEvent: (event: OpenAI.Beta.AssistantStreamEvent) => Promise<any>;
12
12
  getMessages: () => Promise<MessageWithRun[]>;
13
13
  }) => Promise<void>;
14
+ type RunAdapterPartobClient = (args: Omit<Parameters<RunAdapter>[0], 'client'>) => ReturnType<RunAdapter>;
14
15
  type StorageAdapterArgs = {
15
16
  runAdapter: RunAdapter;
16
17
  };
17
18
 
18
- export type { MessageWithRun, RunAdapter, StorageAdapterArgs };
19
+ export type { MessageWithRun, RunAdapter, RunAdapterPartobClient, StorageAdapterArgs };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/types/prisma.ts"],"names":["RunStatus","MessageRole","MessageStatus","RunStepType","RunStepStatus"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,IAAK,YAAL,kBAAKA,eAAL;AACL,EAAAA,WAAA,YAAS;AACT,EAAAA,WAAA,iBAAc;AACd,EAAAA,WAAA,qBAAkB;AAClB,EAAAA,WAAA,gBAAa;AACb,EAAAA,WAAA,eAAY;AACZ,EAAAA,WAAA,YAAS;AACT,EAAAA,WAAA,eAAY;AACZ,EAAAA,WAAA,aAAU;AARA,SAAAA;AAAA,GAAA;AAiCL,IAAK,cAAL,kBAAKC,iBAAL;AACL,EAAAA,aAAA,UAAO;AACP,EAAAA,aAAA,eAAY;AAFF,SAAAA;AAAA,GAAA;AAKL,IAAK,gBAAL,kBAAKC,mBAAL;AACL,EAAAA,eAAA,iBAAc;AACd,EAAAA,eAAA,gBAAa;AACb,EAAAA,eAAA,eAAY;AAHF,SAAAA;AAAA,GAAA;AAwBL,IAAK,cAAL,kBAAKC,iBAAL;AACL,EAAAA,aAAA,sBAAmB;AACnB,EAAAA,aAAA,gBAAa;AAFH,SAAAA;AAAA,GAAA;AAKL,IAAK,gBAAL,kBAAKC,mBAAL;AACL,EAAAA,eAAA,iBAAc;AACd,EAAAA,eAAA,eAAY;AACZ,EAAAA,eAAA,YAAS;AACT,EAAAA,eAAA,eAAY;AACZ,EAAAA,eAAA,aAAU;AALA,SAAAA;AAAA,GAAA","sourcesContent":["export enum RunStatus {\n QUEUED = \"QUEUED\",\n IN_PROGRESS = \"IN_PROGRESS\",\n REQUIRES_ACTION = \"REQUIRES_ACTION\",\n CANCELLING = \"CANCELLING\",\n CANCELLED = \"CANCELLED\",\n FAILED = \"FAILED\",\n COMPLETED = \"COMPLETED\",\n EXPIRED = \"EXPIRED\",\n}\n\nexport type Run = {\n id: string\n threadId: string\n assistantId: string\n status: RunStatus\n requiredAction?: JSON\n lastError?: JSON\n expiresAt: number\n startedAt?: number\n cancelledAt?: number\n failedAt?: number\n completedAt?: number\n model: string\n instructions: string\n tools: JSON[]\n fileIds: string[]\n metadata?: JSON\n usage?: JSON\n createdAt: string\n updatedAt: string\n}\n\nexport enum MessageRole {\n USER = \"USER\",\n ASSISTANT = \"ASSISTANT\",\n}\n\nexport enum MessageStatus {\n IN_PROGRESS = \"IN_PROGRESS\",\n INCOMPLETE = \"INCOMPLETE\",\n COMPLETED = \"COMPLETED\",\n}\n\nexport type Message = {\n id: string\n threadId: string\n role: MessageRole\n content: JSON[]\n status: MessageStatus\n assistantId?: string\n runId?: string\n completedAt?: string\n incompleteAt?: string\n incompleteDetails?: JSON\n fileIds: string[]\n metadata?: JSON\n toolCalls?: JSON\n createdAt: string\n updatedAt: string\n}\n\nexport enum RunStepType {\n MESSAGE_CREATION = \"MESSAGE_CREATION\",\n TOOL_CALLS = \"TOOL_CALLS\",\n}\n\nexport enum RunStepStatus {\n IN_PROGRESS = \"IN_PROGRESS\",\n CANCELLED = \"CANCELLED\",\n FAILED = \"FAILED\",\n COMPLETED = \"COMPLETED\",\n EXPIRED = \"EXPIRED\",\n}\n\nexport type RunStep = {\n id: string\n threadId: string\n assistantId: string\n runId: string\n type: RunStepType\n status: RunStepStatus\n stepDetails: JSON\n lastError?: JSON\n expiredAt?: number\n cancelledAt?: number\n failedAt?: number\n completedAt?: number\n metadata?: JSON\n usage?: JSON\n createdAt: string\n updatedAt: string\n}\n\nexport type MessageWithRun = Message & {\n run: (Run & {\n runSteps: RunStep[]\n }) | null\n}\n"]}
1
+ {"version":3,"sources":["../../src/types/prisma.ts"],"names":["RunStatus","MessageRole","MessageStatus","RunStepType","RunStepStatus"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,IAAK,YAAL,kBAAKA,eAAL;AACL,EAAAA,WAAA,YAAS;AACT,EAAAA,WAAA,iBAAc;AACd,EAAAA,WAAA,qBAAkB;AAClB,EAAAA,WAAA,gBAAa;AACb,EAAAA,WAAA,eAAY;AACZ,EAAAA,WAAA,YAAS;AACT,EAAAA,WAAA,eAAY;AACZ,EAAAA,WAAA,aAAU;AARA,SAAAA;AAAA,GAAA;AAmCL,IAAK,cAAL,kBAAKC,iBAAL;AACL,EAAAA,aAAA,UAAO;AACP,EAAAA,aAAA,eAAY;AAFF,SAAAA;AAAA,GAAA;AAKL,IAAK,gBAAL,kBAAKC,mBAAL;AACL,EAAAA,eAAA,iBAAc;AACd,EAAAA,eAAA,gBAAa;AACb,EAAAA,eAAA,eAAY;AAHF,SAAAA;AAAA,GAAA;AAwBL,IAAK,cAAL,kBAAKC,iBAAL;AACL,EAAAA,aAAA,sBAAmB;AACnB,EAAAA,aAAA,gBAAa;AAFH,SAAAA;AAAA,GAAA;AAKL,IAAK,gBAAL,kBAAKC,mBAAL;AACL,EAAAA,eAAA,iBAAc;AACd,EAAAA,eAAA,eAAY;AACZ,EAAAA,eAAA,YAAS;AACT,EAAAA,eAAA,eAAY;AACZ,EAAAA,eAAA,aAAU;AALA,SAAAA;AAAA,GAAA","sourcesContent":["export enum RunStatus {\n QUEUED = \"QUEUED\",\n IN_PROGRESS = \"IN_PROGRESS\",\n REQUIRES_ACTION = \"REQUIRES_ACTION\",\n CANCELLING = \"CANCELLING\",\n CANCELLED = \"CANCELLED\",\n FAILED = \"FAILED\",\n COMPLETED = \"COMPLETED\",\n EXPIRED = \"EXPIRED\",\n}\n\nexport type Run = {\n id: string\n threadId: string\n assistantId: string\n status: RunStatus\n requiredAction?: JSON\n lastError?: JSON\n expiresAt: number\n startedAt?: number\n cancelledAt?: number\n failedAt?: number\n completedAt?: number\n model: string\n instructions: string\n tools: JSON[]\n fileIds: string[]\n metadata?: JSON\n usage?: JSON\n truncationStrategy: JSON\n responseFormat: JSON\n createdAt: string\n updatedAt: string\n}\n\nexport enum MessageRole {\n USER = \"USER\",\n ASSISTANT = \"ASSISTANT\",\n}\n\nexport enum MessageStatus {\n IN_PROGRESS = \"IN_PROGRESS\",\n INCOMPLETE = \"INCOMPLETE\",\n COMPLETED = \"COMPLETED\",\n}\n\nexport type Message = {\n id: string\n threadId: string\n role: MessageRole\n content: JSON[]\n status: MessageStatus\n assistantId?: string\n runId?: string\n completedAt?: string\n incompleteAt?: string\n incompleteDetails?: JSON\n fileIds: string[]\n metadata?: JSON\n toolCalls?: JSON\n createdAt: string\n updatedAt: string\n}\n\nexport enum RunStepType {\n MESSAGE_CREATION = \"MESSAGE_CREATION\",\n TOOL_CALLS = \"TOOL_CALLS\",\n}\n\nexport enum RunStepStatus {\n IN_PROGRESS = \"IN_PROGRESS\",\n CANCELLED = \"CANCELLED\",\n FAILED = \"FAILED\",\n COMPLETED = \"COMPLETED\",\n EXPIRED = \"EXPIRED\",\n}\n\nexport type RunStep = {\n id: string\n threadId: string\n assistantId: string\n runId: string\n type: RunStepType\n status: RunStepStatus\n stepDetails: JSON\n lastError?: JSON\n expiredAt?: number\n cancelledAt?: number\n failedAt?: number\n completedAt?: number\n metadata?: JSON\n usage?: JSON\n createdAt: string\n updatedAt: string\n}\n\nexport type MessageWithRun = Message & {\n run: (Run & {\n runSteps: RunStep[]\n }) | null\n}\n"]}
@@ -26,6 +26,8 @@ type Run = {
26
26
  fileIds: string[];
27
27
  metadata?: JSON;
28
28
  usage?: JSON;
29
+ truncationStrategy: JSON;
30
+ responseFormat: JSON;
29
31
  createdAt: string;
30
32
  updatedAt: string;
31
33
  };
@@ -26,6 +26,8 @@ type Run = {
26
26
  fileIds: string[];
27
27
  metadata?: JSON;
28
28
  usage?: JSON;
29
+ truncationStrategy: JSON;
30
+ responseFormat: JSON;
29
31
  createdAt: string;
30
32
  updatedAt: string;
31
33
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/types/prisma.ts"],"names":["RunStatus","MessageRole","MessageStatus","RunStepType","RunStepStatus"],"mappings":";AAAO,IAAK,YAAL,kBAAKA,eAAL;AACL,EAAAA,WAAA,YAAS;AACT,EAAAA,WAAA,iBAAc;AACd,EAAAA,WAAA,qBAAkB;AAClB,EAAAA,WAAA,gBAAa;AACb,EAAAA,WAAA,eAAY;AACZ,EAAAA,WAAA,YAAS;AACT,EAAAA,WAAA,eAAY;AACZ,EAAAA,WAAA,aAAU;AARA,SAAAA;AAAA,GAAA;AAiCL,IAAK,cAAL,kBAAKC,iBAAL;AACL,EAAAA,aAAA,UAAO;AACP,EAAAA,aAAA,eAAY;AAFF,SAAAA;AAAA,GAAA;AAKL,IAAK,gBAAL,kBAAKC,mBAAL;AACL,EAAAA,eAAA,iBAAc;AACd,EAAAA,eAAA,gBAAa;AACb,EAAAA,eAAA,eAAY;AAHF,SAAAA;AAAA,GAAA;AAwBL,IAAK,cAAL,kBAAKC,iBAAL;AACL,EAAAA,aAAA,sBAAmB;AACnB,EAAAA,aAAA,gBAAa;AAFH,SAAAA;AAAA,GAAA;AAKL,IAAK,gBAAL,kBAAKC,mBAAL;AACL,EAAAA,eAAA,iBAAc;AACd,EAAAA,eAAA,eAAY;AACZ,EAAAA,eAAA,YAAS;AACT,EAAAA,eAAA,eAAY;AACZ,EAAAA,eAAA,aAAU;AALA,SAAAA;AAAA,GAAA","sourcesContent":["export enum RunStatus {\n QUEUED = \"QUEUED\",\n IN_PROGRESS = \"IN_PROGRESS\",\n REQUIRES_ACTION = \"REQUIRES_ACTION\",\n CANCELLING = \"CANCELLING\",\n CANCELLED = \"CANCELLED\",\n FAILED = \"FAILED\",\n COMPLETED = \"COMPLETED\",\n EXPIRED = \"EXPIRED\",\n}\n\nexport type Run = {\n id: string\n threadId: string\n assistantId: string\n status: RunStatus\n requiredAction?: JSON\n lastError?: JSON\n expiresAt: number\n startedAt?: number\n cancelledAt?: number\n failedAt?: number\n completedAt?: number\n model: string\n instructions: string\n tools: JSON[]\n fileIds: string[]\n metadata?: JSON\n usage?: JSON\n createdAt: string\n updatedAt: string\n}\n\nexport enum MessageRole {\n USER = \"USER\",\n ASSISTANT = \"ASSISTANT\",\n}\n\nexport enum MessageStatus {\n IN_PROGRESS = \"IN_PROGRESS\",\n INCOMPLETE = \"INCOMPLETE\",\n COMPLETED = \"COMPLETED\",\n}\n\nexport type Message = {\n id: string\n threadId: string\n role: MessageRole\n content: JSON[]\n status: MessageStatus\n assistantId?: string\n runId?: string\n completedAt?: string\n incompleteAt?: string\n incompleteDetails?: JSON\n fileIds: string[]\n metadata?: JSON\n toolCalls?: JSON\n createdAt: string\n updatedAt: string\n}\n\nexport enum RunStepType {\n MESSAGE_CREATION = \"MESSAGE_CREATION\",\n TOOL_CALLS = \"TOOL_CALLS\",\n}\n\nexport enum RunStepStatus {\n IN_PROGRESS = \"IN_PROGRESS\",\n CANCELLED = \"CANCELLED\",\n FAILED = \"FAILED\",\n COMPLETED = \"COMPLETED\",\n EXPIRED = \"EXPIRED\",\n}\n\nexport type RunStep = {\n id: string\n threadId: string\n assistantId: string\n runId: string\n type: RunStepType\n status: RunStepStatus\n stepDetails: JSON\n lastError?: JSON\n expiredAt?: number\n cancelledAt?: number\n failedAt?: number\n completedAt?: number\n metadata?: JSON\n usage?: JSON\n createdAt: string\n updatedAt: string\n}\n\nexport type MessageWithRun = Message & {\n run: (Run & {\n runSteps: RunStep[]\n }) | null\n}\n"]}
1
+ {"version":3,"sources":["../../src/types/prisma.ts"],"names":["RunStatus","MessageRole","MessageStatus","RunStepType","RunStepStatus"],"mappings":";AAAO,IAAK,YAAL,kBAAKA,eAAL;AACL,EAAAA,WAAA,YAAS;AACT,EAAAA,WAAA,iBAAc;AACd,EAAAA,WAAA,qBAAkB;AAClB,EAAAA,WAAA,gBAAa;AACb,EAAAA,WAAA,eAAY;AACZ,EAAAA,WAAA,YAAS;AACT,EAAAA,WAAA,eAAY;AACZ,EAAAA,WAAA,aAAU;AARA,SAAAA;AAAA,GAAA;AAmCL,IAAK,cAAL,kBAAKC,iBAAL;AACL,EAAAA,aAAA,UAAO;AACP,EAAAA,aAAA,eAAY;AAFF,SAAAA;AAAA,GAAA;AAKL,IAAK,gBAAL,kBAAKC,mBAAL;AACL,EAAAA,eAAA,iBAAc;AACd,EAAAA,eAAA,gBAAa;AACb,EAAAA,eAAA,eAAY;AAHF,SAAAA;AAAA,GAAA;AAwBL,IAAK,cAAL,kBAAKC,iBAAL;AACL,EAAAA,aAAA,sBAAmB;AACnB,EAAAA,aAAA,gBAAa;AAFH,SAAAA;AAAA,GAAA;AAKL,IAAK,gBAAL,kBAAKC,mBAAL;AACL,EAAAA,eAAA,iBAAc;AACd,EAAAA,eAAA,eAAY;AACZ,EAAAA,eAAA,YAAS;AACT,EAAAA,eAAA,eAAY;AACZ,EAAAA,eAAA,aAAU;AALA,SAAAA;AAAA,GAAA","sourcesContent":["export enum RunStatus {\n QUEUED = \"QUEUED\",\n IN_PROGRESS = \"IN_PROGRESS\",\n REQUIRES_ACTION = \"REQUIRES_ACTION\",\n CANCELLING = \"CANCELLING\",\n CANCELLED = \"CANCELLED\",\n FAILED = \"FAILED\",\n COMPLETED = \"COMPLETED\",\n EXPIRED = \"EXPIRED\",\n}\n\nexport type Run = {\n id: string\n threadId: string\n assistantId: string\n status: RunStatus\n requiredAction?: JSON\n lastError?: JSON\n expiresAt: number\n startedAt?: number\n cancelledAt?: number\n failedAt?: number\n completedAt?: number\n model: string\n instructions: string\n tools: JSON[]\n fileIds: string[]\n metadata?: JSON\n usage?: JSON\n truncationStrategy: JSON\n responseFormat: JSON\n createdAt: string\n updatedAt: string\n}\n\nexport enum MessageRole {\n USER = \"USER\",\n ASSISTANT = \"ASSISTANT\",\n}\n\nexport enum MessageStatus {\n IN_PROGRESS = \"IN_PROGRESS\",\n INCOMPLETE = \"INCOMPLETE\",\n COMPLETED = \"COMPLETED\",\n}\n\nexport type Message = {\n id: string\n threadId: string\n role: MessageRole\n content: JSON[]\n status: MessageStatus\n assistantId?: string\n runId?: string\n completedAt?: string\n incompleteAt?: string\n incompleteDetails?: JSON\n fileIds: string[]\n metadata?: JSON\n toolCalls?: JSON\n createdAt: string\n updatedAt: string\n}\n\nexport enum RunStepType {\n MESSAGE_CREATION = \"MESSAGE_CREATION\",\n TOOL_CALLS = \"TOOL_CALLS\",\n}\n\nexport enum RunStepStatus {\n IN_PROGRESS = \"IN_PROGRESS\",\n CANCELLED = \"CANCELLED\",\n FAILED = \"FAILED\",\n COMPLETED = \"COMPLETED\",\n EXPIRED = \"EXPIRED\",\n}\n\nexport type RunStep = {\n id: string\n threadId: string\n assistantId: string\n runId: string\n type: RunStepType\n status: RunStepStatus\n stepDetails: JSON\n lastError?: JSON\n expiredAt?: number\n cancelledAt?: number\n failedAt?: number\n completedAt?: number\n metadata?: JSON\n usage?: JSON\n createdAt: string\n updatedAt: string\n}\n\nexport type MessageWithRun = Message & {\n run: (Run & {\n runSteps: RunStep[]\n }) | null\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "supercompat",
3
- "version": "1.5.1",
3
+ "version": "2.0.0",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -20,15 +20,18 @@
20
20
  },
21
21
  "dependencies": {
22
22
  "dayjs": "^1.11.11",
23
+ "deepmerge-ts": "^7.0.3",
23
24
  "lodash": "^4.17.21",
24
- "radash": "^12.1.0"
25
+ "openai": "^4.52.0",
26
+ "radash": "^12.1.0",
27
+ "ts-deepmerge": "^7.0.0"
25
28
  },
26
29
  "devDependencies": {
27
- "@anthropic-ai/sdk": "^0.21.1",
28
- "@mistralai/mistralai": "^0.3.0",
29
- "@prisma/client": "^5.14.0",
30
- "@types/lodash": "^4.17.4",
31
- "openai": "^4.47.1",
32
- "tsup": "^8.0.2"
30
+ "@anthropic-ai/sdk": "^0.24.0",
31
+ "@mistralai/mistralai": "^0.5.0",
32
+ "@prisma/client": "^5.15.1",
33
+ "@types/lodash": "^4.17.5",
34
+ "groq-sdk": "^0.5.0",
35
+ "tsup": "^8.1.0"
33
36
  }
34
37
  }