@pydantic/genai-prices 0.0.50 → 0.0.52
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/README.md +38 -0
- package/dist/cli.js +540 -825
- package/dist/index.cjs +5 -5
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +329 -614
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import
|
|
3
|
-
import { format as
|
|
4
|
-
import { resolve as
|
|
5
|
-
import { readFileSync as
|
|
2
|
+
import _e from "yargs";
|
|
3
|
+
import { format as ke } from "util";
|
|
4
|
+
import { resolve as ie, normalize as Ae } from "path";
|
|
5
|
+
import { readFileSync as ge, writeFile as Pe, statSync as Te } from "fs";
|
|
6
6
|
import "assert";
|
|
7
|
-
import { fileURLToPath as
|
|
8
|
-
function
|
|
9
|
-
return
|
|
7
|
+
import { fileURLToPath as Se } from "url";
|
|
8
|
+
function Ge() {
|
|
9
|
+
return Ce() ? 0 : 1;
|
|
10
10
|
}
|
|
11
|
-
function
|
|
12
|
-
return
|
|
11
|
+
function Ce() {
|
|
12
|
+
return Re() && !process.defaultApp;
|
|
13
13
|
}
|
|
14
|
-
function
|
|
14
|
+
function Re() {
|
|
15
15
|
return !!process.versions.electron;
|
|
16
16
|
}
|
|
17
|
-
function
|
|
18
|
-
return i.slice(
|
|
17
|
+
function ze(i) {
|
|
18
|
+
return i.slice(Ge() + 1);
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
21
|
* @license
|
|
@@ -28,24 +28,24 @@ function $(i) {
|
|
|
28
28
|
{
|
|
29
29
|
let u = "", s = !1;
|
|
30
30
|
const r = i.match(/^-+/);
|
|
31
|
-
for (let
|
|
32
|
-
let
|
|
33
|
-
s && (s = !1,
|
|
31
|
+
for (let _ = r ? r[0].length : 0; _ < i.length; _++) {
|
|
32
|
+
let h = i.charAt(_);
|
|
33
|
+
s && (s = !1, h = h.toUpperCase()), _ !== 0 && (h === "-" || h === "_") ? s = !0 : h !== "-" && h !== "_" && (u += h);
|
|
34
34
|
}
|
|
35
35
|
return u;
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
-
function
|
|
38
|
+
function Ne(i, o) {
|
|
39
39
|
const u = i.toLowerCase();
|
|
40
|
-
|
|
40
|
+
o = o || "-";
|
|
41
41
|
let s = "";
|
|
42
42
|
for (let r = 0; r < i.length; r++) {
|
|
43
|
-
const
|
|
44
|
-
|
|
43
|
+
const _ = u.charAt(r), h = i.charAt(r);
|
|
44
|
+
_ !== h && r > 0 ? s += `${o}${u.charAt(r)}` : s += h;
|
|
45
45
|
}
|
|
46
46
|
return s;
|
|
47
47
|
}
|
|
48
|
-
function
|
|
48
|
+
function Oe(i) {
|
|
49
49
|
return i == null ? !1 : typeof i == "number" || /^0x[0-9a-f]+$/i.test(i) ? !0 : /^0[^.]/.test(i) ? !1 : /^[-]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(i);
|
|
50
50
|
}
|
|
51
51
|
/**
|
|
@@ -53,41 +53,41 @@ function Re(i) {
|
|
|
53
53
|
* Copyright (c) 2016, Contributors
|
|
54
54
|
* SPDX-License-Identifier: ISC
|
|
55
55
|
*/
|
|
56
|
-
function
|
|
56
|
+
function De(i) {
|
|
57
57
|
if (Array.isArray(i))
|
|
58
|
-
return i.map((
|
|
58
|
+
return i.map((h) => typeof h != "string" ? h + "" : h);
|
|
59
59
|
i = i.trim();
|
|
60
|
-
let
|
|
61
|
-
const
|
|
62
|
-
for (let
|
|
63
|
-
if (u = s, s = i.charAt(
|
|
64
|
-
u !== " " &&
|
|
60
|
+
let o = 0, u = null, s = null, r = null;
|
|
61
|
+
const _ = [];
|
|
62
|
+
for (let h = 0; h < i.length; h++) {
|
|
63
|
+
if (u = s, s = i.charAt(h), s === " " && !r) {
|
|
64
|
+
u !== " " && o++;
|
|
65
65
|
continue;
|
|
66
66
|
}
|
|
67
|
-
s === r ? r = null : (s === "'" || s === '"') && !r && (r = s),
|
|
67
|
+
s === r ? r = null : (s === "'" || s === '"') && !r && (r = s), _[o] || (_[o] = ""), _[o] += s;
|
|
68
68
|
}
|
|
69
|
-
return
|
|
69
|
+
return _;
|
|
70
70
|
}
|
|
71
71
|
/**
|
|
72
72
|
* @license
|
|
73
73
|
* Copyright (c) 2016, Contributors
|
|
74
74
|
* SPDX-License-Identifier: ISC
|
|
75
75
|
*/
|
|
76
|
-
var
|
|
76
|
+
var A;
|
|
77
77
|
(function(i) {
|
|
78
78
|
i.BOOLEAN = "boolean", i.STRING = "string", i.NUMBER = "number", i.ARRAY = "array";
|
|
79
|
-
})(
|
|
79
|
+
})(A || (A = {}));
|
|
80
80
|
/**
|
|
81
81
|
* @license
|
|
82
82
|
* Copyright (c) 2016, Contributors
|
|
83
83
|
* SPDX-License-Identifier: ISC
|
|
84
84
|
*/
|
|
85
|
-
let
|
|
86
|
-
class
|
|
87
|
-
constructor(
|
|
88
|
-
|
|
85
|
+
let S;
|
|
86
|
+
class Ee {
|
|
87
|
+
constructor(o) {
|
|
88
|
+
S = o;
|
|
89
89
|
}
|
|
90
|
-
parse(
|
|
90
|
+
parse(o, u) {
|
|
91
91
|
const s = Object.assign({
|
|
92
92
|
alias: void 0,
|
|
93
93
|
array: void 0,
|
|
@@ -105,7 +105,7 @@ class Ne {
|
|
|
105
105
|
number: void 0,
|
|
106
106
|
__: void 0,
|
|
107
107
|
key: void 0
|
|
108
|
-
}, u), r =
|
|
108
|
+
}, u), r = De(o), _ = typeof o == "string", h = je(Object.assign(/* @__PURE__ */ Object.create(null), s.alias)), k = Object.assign({
|
|
109
109
|
"boolean-negation": !0,
|
|
110
110
|
"camel-case-expansion": !0,
|
|
111
111
|
"combine-arrays": !1,
|
|
@@ -124,7 +124,7 @@ class Ne {
|
|
|
124
124
|
"strip-aliased": !1,
|
|
125
125
|
"strip-dashed": !1,
|
|
126
126
|
"unknown-options-as-args": !1
|
|
127
|
-
}, s.configuration), q = Object.assign(/* @__PURE__ */ Object.create(null), s.default),
|
|
127
|
+
}, s.configuration), q = Object.assign(/* @__PURE__ */ Object.create(null), s.default), y = s.configObjects || [], B = s.envPrefix, I = k["populate--"], L = I ? "--" : "_", G = /* @__PURE__ */ Object.create(null), ne = /* @__PURE__ */ Object.create(null), C = s.__ || S.format, m = {
|
|
128
128
|
aliases: /* @__PURE__ */ Object.create(null),
|
|
129
129
|
arrays: /* @__PURE__ */ Object.create(null),
|
|
130
130
|
bools: /* @__PURE__ */ Object.create(null),
|
|
@@ -136,14 +136,14 @@ class Ne {
|
|
|
136
136
|
nargs: /* @__PURE__ */ Object.create(null),
|
|
137
137
|
coercions: /* @__PURE__ */ Object.create(null),
|
|
138
138
|
keys: []
|
|
139
|
-
},
|
|
139
|
+
}, P = /^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/, W = new RegExp("^--" + k["negation-prefix"] + "(.+)");
|
|
140
140
|
[].concat(s.array || []).filter(Boolean).forEach(function(e) {
|
|
141
|
-
const a = typeof e == "object" ? e.key : e, c = Object.keys(e).map(function(
|
|
141
|
+
const a = typeof e == "object" ? e.key : e, c = Object.keys(e).map(function(n) {
|
|
142
142
|
return {
|
|
143
143
|
boolean: "bools",
|
|
144
144
|
string: "strings",
|
|
145
145
|
number: "numbers"
|
|
146
|
-
}[
|
|
146
|
+
}[n];
|
|
147
147
|
}).filter(Boolean).pop();
|
|
148
148
|
c && (m[c][a] = !0), m.arrays[a] = !0, m.keys.push(a);
|
|
149
149
|
}), [].concat(s.boolean || []).filter(Boolean).forEach(function(e) {
|
|
@@ -164,38 +164,38 @@ class Ne {
|
|
|
164
164
|
m.configs[e] = !0;
|
|
165
165
|
}) : typeof s.config == "object" && Object.entries(s.config).forEach(([e, a]) => {
|
|
166
166
|
(typeof a == "boolean" || typeof a == "function") && (m.configs[e] = a);
|
|
167
|
-
})),
|
|
167
|
+
})), xe(s.key, h, s.default, m.arrays), Object.keys(q).forEach(function(e) {
|
|
168
168
|
(m.aliases[e] || []).forEach(function(a) {
|
|
169
169
|
q[a] = q[e];
|
|
170
170
|
});
|
|
171
171
|
});
|
|
172
|
-
let
|
|
173
|
-
|
|
172
|
+
let M = null;
|
|
173
|
+
Qe();
|
|
174
174
|
let j = [];
|
|
175
|
-
const w = Object.assign(/* @__PURE__ */ Object.create(null), { _: [] }),
|
|
175
|
+
const w = Object.assign(/* @__PURE__ */ Object.create(null), { _: [] }), se = {};
|
|
176
176
|
for (let e = 0; e < r.length; e++) {
|
|
177
177
|
const a = r[e], c = a.replace(/^-{3,}/, "---");
|
|
178
|
-
let
|
|
179
|
-
if (a !== "--" && /^-/.test(a) &&
|
|
178
|
+
let n, t, l, p, d, v;
|
|
179
|
+
if (a !== "--" && /^-/.test(a) && H(a))
|
|
180
180
|
U(a);
|
|
181
181
|
else if (c.match(/^---+(=|$)/)) {
|
|
182
182
|
U(a);
|
|
183
183
|
continue;
|
|
184
|
-
} else if (a.match(/^--.+=/) || !
|
|
184
|
+
} else if (a.match(/^--.+=/) || !k["short-option-groups"] && a.match(/^-.+=/))
|
|
185
185
|
p = a.match(/^--?([^=]+)=([\s\S]*)$/), p !== null && Array.isArray(p) && p.length >= 3 && (g(p[1], m.arrays) ? e = F(e, p[1], r, p[2]) : g(p[1], m.nargs) !== !1 ? e = V(e, p[1], r, p[2]) : b(p[1], p[2], !0));
|
|
186
|
-
else if (a.match(W) &&
|
|
186
|
+
else if (a.match(W) && k["boolean-negation"])
|
|
187
187
|
p = a.match(W), p !== null && Array.isArray(p) && p.length >= 2 && (t = p[1], b(t, g(t, m.arrays) ? [!1] : !1));
|
|
188
|
-
else if (a.match(/^--.+/) || !
|
|
189
|
-
p = a.match(/^--?(.+)/), p !== null && Array.isArray(p) && p.length >= 2 && (t = p[1], g(t, m.arrays) ? e = F(e, t, r) : g(t, m.nargs) !== !1 ? e = V(e, t, r) : (d = r[e + 1], d !== void 0 && (!d.match(/^-/) || d.match(
|
|
188
|
+
else if (a.match(/^--.+/) || !k["short-option-groups"] && a.match(/^-[^-]+/))
|
|
189
|
+
p = a.match(/^--?(.+)/), p !== null && Array.isArray(p) && p.length >= 2 && (t = p[1], g(t, m.arrays) ? e = F(e, t, r) : g(t, m.nargs) !== !1 ? e = V(e, t, r) : (d = r[e + 1], d !== void 0 && (!d.match(/^-/) || d.match(P)) && !g(t, m.bools) && !g(t, m.counts) || /^(true|false)$/.test(d) ? (b(t, d), e++) : b(t, z(t))));
|
|
190
190
|
else if (a.match(/^-.\..+=/))
|
|
191
191
|
p = a.match(/^-([^=]+)=([\s\S]*)$/), p !== null && Array.isArray(p) && p.length >= 3 && b(p[1], p[2]);
|
|
192
|
-
else if (a.match(/^-.\..+/) && !a.match(
|
|
192
|
+
else if (a.match(/^-.\..+/) && !a.match(P))
|
|
193
193
|
d = r[e + 1], p = a.match(/^-(.\..+)/), p !== null && Array.isArray(p) && p.length >= 2 && (t = p[1], d !== void 0 && !d.match(/^-/) && !g(t, m.bools) && !g(t, m.counts) ? (b(t, d), e++) : b(t, z(t)));
|
|
194
|
-
else if (a.match(/^-[^-]+/) && !a.match(
|
|
195
|
-
l = a.slice(1, -1).split(""),
|
|
194
|
+
else if (a.match(/^-[^-]+/) && !a.match(P)) {
|
|
195
|
+
l = a.slice(1, -1).split(""), n = !1;
|
|
196
196
|
for (let x = 0; x < l.length; x++) {
|
|
197
197
|
if (d = a.slice(x + 2), l[x + 1] && l[x + 1] === "=") {
|
|
198
|
-
v = a.slice(x + 3), t = l[x], g(t, m.arrays) ? e = F(e, t, r, v) : g(t, m.nargs) !== !1 ? e = V(e, t, r, v) : b(t, v),
|
|
198
|
+
v = a.slice(x + 3), t = l[x], g(t, m.arrays) ? e = F(e, t, r, v) : g(t, m.nargs) !== !1 ? e = V(e, t, r, v) : b(t, v), n = !0;
|
|
199
199
|
break;
|
|
200
200
|
}
|
|
201
201
|
if (d === "-") {
|
|
@@ -203,122 +203,122 @@ class Ne {
|
|
|
203
203
|
continue;
|
|
204
204
|
}
|
|
205
205
|
if (/[A-Za-z]/.test(l[x]) && /^-?\d+(\.\d*)?(e-?\d+)?$/.test(d) && g(d, m.bools) === !1) {
|
|
206
|
-
b(l[x], d),
|
|
206
|
+
b(l[x], d), n = !0;
|
|
207
207
|
break;
|
|
208
208
|
}
|
|
209
209
|
if (l[x + 1] && l[x + 1].match(/\W/)) {
|
|
210
|
-
b(l[x], d),
|
|
210
|
+
b(l[x], d), n = !0;
|
|
211
211
|
break;
|
|
212
212
|
} else
|
|
213
213
|
b(l[x], z(l[x]));
|
|
214
214
|
}
|
|
215
|
-
t = a.slice(-1)[0], !
|
|
216
|
-
} else if (a.match(/^-[0-9]$/) && a.match(
|
|
215
|
+
t = a.slice(-1)[0], !n && t !== "-" && (g(t, m.arrays) ? e = F(e, t, r) : g(t, m.nargs) !== !1 ? e = V(e, t, r) : (d = r[e + 1], d !== void 0 && (!/^(-|--)[^-]/.test(d) || d.match(P)) && !g(t, m.bools) && !g(t, m.counts) || /^(true|false)$/.test(d) ? (b(t, d), e++) : b(t, z(t))));
|
|
216
|
+
} else if (a.match(/^-[0-9]$/) && a.match(P) && g(a.slice(1), m.bools))
|
|
217
217
|
t = a.slice(1), b(t, z(t));
|
|
218
218
|
else if (a === "--") {
|
|
219
219
|
j = r.slice(e + 1);
|
|
220
220
|
break;
|
|
221
|
-
} else if (
|
|
221
|
+
} else if (k["halt-at-non-option"]) {
|
|
222
222
|
j = r.slice(e);
|
|
223
223
|
break;
|
|
224
224
|
} else
|
|
225
225
|
U(a);
|
|
226
226
|
}
|
|
227
|
-
|
|
227
|
+
me(w, !0), me(w, !1), fe(w), be(), ue(w, m.aliases, q, !0), we(w), k["set-placeholder-key"] && ve(w), Object.keys(m.counts).forEach(function(e) {
|
|
228
228
|
N(w, e.split(".")) || b(e, 0);
|
|
229
|
-
}),
|
|
230
|
-
w[
|
|
231
|
-
}),
|
|
229
|
+
}), I && j.length && (w[L] = []), j.forEach(function(e) {
|
|
230
|
+
w[L].push(e);
|
|
231
|
+
}), k["camel-case-expansion"] && k["strip-dashed"] && Object.keys(w).filter((e) => e !== "--" && e.includes("-")).forEach((e) => {
|
|
232
232
|
delete w[e];
|
|
233
|
-
}),
|
|
234
|
-
|
|
233
|
+
}), k["strip-aliased"] && [].concat(...Object.keys(h).map((e) => h[e])).forEach((e) => {
|
|
234
|
+
k["camel-case-expansion"] && e.includes("-") && delete w[e.split(".").map((a) => $(a)).join(".")], delete w[e];
|
|
235
235
|
});
|
|
236
236
|
function U(e) {
|
|
237
|
-
const a =
|
|
237
|
+
const a = K("_", e);
|
|
238
238
|
(typeof a == "string" || typeof a == "number") && w._.push(a);
|
|
239
239
|
}
|
|
240
|
-
function V(e, a, c,
|
|
240
|
+
function V(e, a, c, n) {
|
|
241
241
|
let t, l = g(a, m.nargs);
|
|
242
242
|
if (l = typeof l != "number" || isNaN(l) ? 1 : l, l === 0)
|
|
243
|
-
return
|
|
244
|
-
let p =
|
|
245
|
-
if (
|
|
246
|
-
c.length - (e + 1) + p < l && (
|
|
243
|
+
return T(n) || (M = Error(C("Argument unexpected for: %s", a))), b(a, z(a)), e;
|
|
244
|
+
let p = T(n) ? 0 : 1;
|
|
245
|
+
if (k["nargs-eats-options"])
|
|
246
|
+
c.length - (e + 1) + p < l && (M = Error(C("Not enough arguments following: %s", a))), p = l;
|
|
247
247
|
else {
|
|
248
|
-
for (t = e + 1; t < c.length && (!c[t].match(/^-[^0-9]/) || c[t].match(
|
|
248
|
+
for (t = e + 1; t < c.length && (!c[t].match(/^-[^0-9]/) || c[t].match(P) || H(c[t])); t++)
|
|
249
249
|
p++;
|
|
250
|
-
p < l && (
|
|
250
|
+
p < l && (M = Error(C("Not enough arguments following: %s", a)));
|
|
251
251
|
}
|
|
252
252
|
let d = Math.min(p, l);
|
|
253
|
-
for (!
|
|
253
|
+
for (!T(n) && d > 0 && (b(a, n), d--), t = e + 1; t < d + e + 1; t++)
|
|
254
254
|
b(a, c[t]);
|
|
255
255
|
return e + d;
|
|
256
256
|
}
|
|
257
|
-
function F(e, a, c,
|
|
258
|
-
let t = [], l =
|
|
257
|
+
function F(e, a, c, n) {
|
|
258
|
+
let t = [], l = n || c[e + 1];
|
|
259
259
|
const p = g(a, m.nargs);
|
|
260
260
|
if (g(a, m.bools) && !/^(true|false)$/.test(l))
|
|
261
261
|
t.push(!0);
|
|
262
|
-
else if (
|
|
262
|
+
else if (T(l) || T(n) && /^-/.test(l) && !P.test(l) && !H(l)) {
|
|
263
263
|
if (q[a] !== void 0) {
|
|
264
264
|
const d = q[a];
|
|
265
265
|
t = Array.isArray(d) ? d : [d];
|
|
266
266
|
}
|
|
267
267
|
} else {
|
|
268
|
-
|
|
269
|
-
for (let d = e + 1; d < c.length && !(!
|
|
270
|
-
e = d, t.push(Y(a, l,
|
|
268
|
+
T(n) || t.push(Y(a, n, !0));
|
|
269
|
+
for (let d = e + 1; d < c.length && !(!k["greedy-arrays"] && t.length > 0 || p && typeof p == "number" && t.length >= p || (l = c[d], /^-/.test(l) && !P.test(l) && !H(l))); d++)
|
|
270
|
+
e = d, t.push(Y(a, l, _));
|
|
271
271
|
}
|
|
272
|
-
return typeof p == "number" && (p && t.length < p || isNaN(p) && t.length === 0) && (
|
|
272
|
+
return typeof p == "number" && (p && t.length < p || isNaN(p) && t.length === 0) && (M = Error(C("Not enough arguments following: %s", a))), b(a, t), e;
|
|
273
273
|
}
|
|
274
|
-
function b(e, a, c =
|
|
275
|
-
if (/-/.test(e) &&
|
|
274
|
+
function b(e, a, c = _) {
|
|
275
|
+
if (/-/.test(e) && k["camel-case-expansion"]) {
|
|
276
276
|
const l = e.split(".").map(function(p) {
|
|
277
277
|
return $(p);
|
|
278
278
|
}).join(".");
|
|
279
|
-
|
|
279
|
+
re(e, l);
|
|
280
280
|
}
|
|
281
|
-
const
|
|
282
|
-
O(w, t,
|
|
281
|
+
const n = Y(e, a, c), t = e.split(".");
|
|
282
|
+
O(w, t, n), m.aliases[e] && m.aliases[e].forEach(function(l) {
|
|
283
283
|
const p = l.split(".");
|
|
284
|
-
O(w, p,
|
|
285
|
-
}), t.length > 1 &&
|
|
284
|
+
O(w, p, n);
|
|
285
|
+
}), t.length > 1 && k["dot-notation"] && (m.aliases[t[0]] || []).forEach(function(l) {
|
|
286
286
|
let p = l.split(".");
|
|
287
287
|
const d = [].concat(t);
|
|
288
|
-
d.shift(), p = p.concat(d), (m.aliases[e] || []).includes(p.join(".")) || O(w, p,
|
|
288
|
+
d.shift(), p = p.concat(d), (m.aliases[e] || []).includes(p.join(".")) || O(w, p, n);
|
|
289
289
|
}), g(e, m.normalize) && !g(e, m.arrays) && [e].concat(m.aliases[e] || []).forEach(function(p) {
|
|
290
|
-
Object.defineProperty(
|
|
290
|
+
Object.defineProperty(se, p, {
|
|
291
291
|
enumerable: !0,
|
|
292
292
|
get() {
|
|
293
293
|
return a;
|
|
294
294
|
},
|
|
295
295
|
set(d) {
|
|
296
|
-
a = typeof d == "string" ?
|
|
296
|
+
a = typeof d == "string" ? S.normalize(d) : d;
|
|
297
297
|
}
|
|
298
298
|
});
|
|
299
299
|
});
|
|
300
300
|
}
|
|
301
|
-
function
|
|
302
|
-
m.aliases[e] && m.aliases[e].length || (m.aliases[e] = [a], G[a] = !0), m.aliases[a] && m.aliases[a].length ||
|
|
301
|
+
function re(e, a) {
|
|
302
|
+
m.aliases[e] && m.aliases[e].length || (m.aliases[e] = [a], G[a] = !0), m.aliases[a] && m.aliases[a].length || re(a, e);
|
|
303
303
|
}
|
|
304
304
|
function Y(e, a, c) {
|
|
305
|
-
c && (a =
|
|
306
|
-
let
|
|
307
|
-
return
|
|
308
|
-
}) :
|
|
309
|
-
return g(e, m.counts) && (
|
|
305
|
+
c && (a = Ve(a)), (g(e, m.bools) || g(e, m.counts)) && typeof a == "string" && (a = a === "true");
|
|
306
|
+
let n = Array.isArray(a) ? a.map(function(t) {
|
|
307
|
+
return K(e, t);
|
|
308
|
+
}) : K(e, a);
|
|
309
|
+
return g(e, m.counts) && (T(n) || typeof n == "boolean") && (n = Z()), g(e, m.normalize) && g(e, m.arrays) && (Array.isArray(a) ? n = a.map((t) => S.normalize(t)) : n = S.normalize(a)), n;
|
|
310
310
|
}
|
|
311
|
-
function
|
|
312
|
-
return !
|
|
311
|
+
function K(e, a) {
|
|
312
|
+
return !k["parse-positional-numbers"] && e === "_" || !g(e, m.strings) && !g(e, m.bools) && !Array.isArray(a) && (Oe(a) && k["parse-numbers"] && Number.isSafeInteger(Math.floor(parseFloat(`${a}`))) || !T(a) && g(e, m.numbers)) && (a = Number(a)), a;
|
|
313
313
|
}
|
|
314
|
-
function
|
|
314
|
+
function fe(e) {
|
|
315
315
|
const a = /* @__PURE__ */ Object.create(null);
|
|
316
|
-
|
|
317
|
-
const
|
|
318
|
-
if (
|
|
316
|
+
ue(a, m.aliases, q), Object.keys(m.configs).forEach(function(c) {
|
|
317
|
+
const n = e[c] || a[c];
|
|
318
|
+
if (n)
|
|
319
319
|
try {
|
|
320
320
|
let t = null;
|
|
321
|
-
const l =
|
|
321
|
+
const l = S.resolve(S.cwd(), n), p = m.configs[c];
|
|
322
322
|
if (typeof p == "function") {
|
|
323
323
|
try {
|
|
324
324
|
t = p(l);
|
|
@@ -326,205 +326,205 @@ class Ne {
|
|
|
326
326
|
t = d;
|
|
327
327
|
}
|
|
328
328
|
if (t instanceof Error) {
|
|
329
|
-
|
|
329
|
+
M = t;
|
|
330
330
|
return;
|
|
331
331
|
}
|
|
332
332
|
} else
|
|
333
|
-
t =
|
|
333
|
+
t = S.require(l);
|
|
334
334
|
J(t);
|
|
335
335
|
} catch (t) {
|
|
336
|
-
t.name === "PermissionDenied" ?
|
|
336
|
+
t.name === "PermissionDenied" ? M = t : e[c] && (M = Error(C("Invalid JSON config file: %s", n)));
|
|
337
337
|
}
|
|
338
338
|
});
|
|
339
339
|
}
|
|
340
340
|
function J(e, a) {
|
|
341
341
|
Object.keys(e).forEach(function(c) {
|
|
342
|
-
const
|
|
343
|
-
typeof
|
|
342
|
+
const n = e[c], t = a ? a + "." + c : c;
|
|
343
|
+
typeof n == "object" && n !== null && !Array.isArray(n) && k["dot-notation"] ? J(n, t) : (!N(w, t.split(".")) || g(t, m.arrays) && k["combine-arrays"]) && b(t, n);
|
|
344
344
|
});
|
|
345
345
|
}
|
|
346
|
-
function
|
|
347
|
-
typeof
|
|
346
|
+
function be() {
|
|
347
|
+
typeof y < "u" && y.forEach(function(e) {
|
|
348
348
|
J(e);
|
|
349
349
|
});
|
|
350
350
|
}
|
|
351
|
-
function
|
|
351
|
+
function me(e, a) {
|
|
352
352
|
if (typeof B > "u")
|
|
353
353
|
return;
|
|
354
|
-
const c = typeof B == "string" ? B : "",
|
|
355
|
-
Object.keys(
|
|
354
|
+
const c = typeof B == "string" ? B : "", n = S.env();
|
|
355
|
+
Object.keys(n).forEach(function(t) {
|
|
356
356
|
if (c === "" || t.lastIndexOf(c, 0) === 0) {
|
|
357
357
|
const l = t.split("__").map(function(p, d) {
|
|
358
358
|
return d === 0 && (p = p.substring(c.length)), $(p);
|
|
359
359
|
});
|
|
360
|
-
(a && m.configs[l.join(".")] || !a) && !N(e, l) && b(l.join("."),
|
|
360
|
+
(a && m.configs[l.join(".")] || !a) && !N(e, l) && b(l.join("."), n[t]);
|
|
361
361
|
}
|
|
362
362
|
});
|
|
363
363
|
}
|
|
364
|
-
function
|
|
364
|
+
function we(e) {
|
|
365
365
|
let a;
|
|
366
366
|
const c = /* @__PURE__ */ new Set();
|
|
367
|
-
Object.keys(e).forEach(function(
|
|
368
|
-
if (!c.has(
|
|
367
|
+
Object.keys(e).forEach(function(n) {
|
|
368
|
+
if (!c.has(n) && (a = g(n, m.coercions), typeof a == "function"))
|
|
369
369
|
try {
|
|
370
|
-
const t =
|
|
371
|
-
[].concat(m.aliases[
|
|
370
|
+
const t = K(n, a(e[n]));
|
|
371
|
+
[].concat(m.aliases[n] || [], n).forEach((l) => {
|
|
372
372
|
c.add(l), e[l] = t;
|
|
373
373
|
});
|
|
374
374
|
} catch (t) {
|
|
375
|
-
|
|
375
|
+
M = t;
|
|
376
376
|
}
|
|
377
377
|
});
|
|
378
378
|
}
|
|
379
|
-
function
|
|
379
|
+
function ve(e) {
|
|
380
380
|
return m.keys.forEach((a) => {
|
|
381
381
|
~a.indexOf(".") || typeof e[a] > "u" && (e[a] = void 0);
|
|
382
382
|
}), e;
|
|
383
383
|
}
|
|
384
|
-
function
|
|
384
|
+
function ue(e, a, c, n = !1) {
|
|
385
385
|
Object.keys(c).forEach(function(t) {
|
|
386
|
-
N(e, t.split(".")) || (O(e, t.split("."), c[t]),
|
|
386
|
+
N(e, t.split(".")) || (O(e, t.split("."), c[t]), n && (ne[t] = !0), (a[t] || []).forEach(function(l) {
|
|
387
387
|
N(e, l.split(".")) || O(e, l.split("."), c[t]);
|
|
388
388
|
}));
|
|
389
389
|
});
|
|
390
390
|
}
|
|
391
391
|
function N(e, a) {
|
|
392
392
|
let c = e;
|
|
393
|
-
|
|
393
|
+
k["dot-notation"] || (a = [a.join(".")]), a.slice(0, -1).forEach(function(t) {
|
|
394
394
|
c = c[t] || {};
|
|
395
395
|
});
|
|
396
|
-
const
|
|
397
|
-
return typeof c != "object" ? !1 :
|
|
396
|
+
const n = a[a.length - 1];
|
|
397
|
+
return typeof c != "object" ? !1 : n in c;
|
|
398
398
|
}
|
|
399
399
|
function O(e, a, c) {
|
|
400
|
-
let
|
|
401
|
-
|
|
402
|
-
v =
|
|
400
|
+
let n = e;
|
|
401
|
+
k["dot-notation"] || (a = [a.join(".")]), a.slice(0, -1).forEach(function(v) {
|
|
402
|
+
v = pe(v), typeof n == "object" && n[v] === void 0 && (n[v] = {}), typeof n[v] != "object" || Array.isArray(n[v]) ? (Array.isArray(n[v]) ? n[v].push({}) : n[v] = [n[v], {}], n = n[v][n[v].length - 1]) : n = n[v];
|
|
403
403
|
});
|
|
404
|
-
const t =
|
|
405
|
-
let d =
|
|
406
|
-
!d && g(t, m.nargs) && (d = !0, (!
|
|
404
|
+
const t = pe(a[a.length - 1]), l = g(a.join("."), m.arrays), p = Array.isArray(c);
|
|
405
|
+
let d = k["duplicate-arguments-array"];
|
|
406
|
+
!d && g(t, m.nargs) && (d = !0, (!T(n[t]) && m.nargs[t] === 1 || Array.isArray(n[t]) && n[t].length === m.nargs[t]) && (n[t] = void 0)), c === Z() ? n[t] = Z(n[t]) : Array.isArray(n[t]) ? d && l && p ? n[t] = k["flatten-duplicate-arrays"] ? n[t].concat(c) : (Array.isArray(n[t][0]) ? n[t] : [n[t]]).concat([c]) : !d && !!l == !!p ? n[t] = c : n[t] = n[t].concat([c]) : n[t] === void 0 && l ? n[t] = p ? c : [c] : d && !(n[t] === void 0 || g(t, m.counts) || g(t, m.bools)) ? n[t] = [n[t], c] : n[t] = c;
|
|
407
407
|
}
|
|
408
|
-
function
|
|
408
|
+
function xe(...e) {
|
|
409
409
|
e.forEach(function(a) {
|
|
410
410
|
Object.keys(a || {}).forEach(function(c) {
|
|
411
|
-
m.aliases[c] || (m.aliases[c] = [].concat(
|
|
412
|
-
if (/-/.test(
|
|
413
|
-
const t = $(
|
|
411
|
+
m.aliases[c] || (m.aliases[c] = [].concat(h[c] || []), m.aliases[c].concat(c).forEach(function(n) {
|
|
412
|
+
if (/-/.test(n) && k["camel-case-expansion"]) {
|
|
413
|
+
const t = $(n);
|
|
414
414
|
t !== c && m.aliases[c].indexOf(t) === -1 && (m.aliases[c].push(t), G[t] = !0);
|
|
415
415
|
}
|
|
416
|
-
}), m.aliases[c].concat(c).forEach(function(
|
|
417
|
-
if (
|
|
418
|
-
const t =
|
|
416
|
+
}), m.aliases[c].concat(c).forEach(function(n) {
|
|
417
|
+
if (n.length > 1 && /[A-Z]/.test(n) && k["camel-case-expansion"]) {
|
|
418
|
+
const t = Ne(n, "-");
|
|
419
419
|
t !== c && m.aliases[c].indexOf(t) === -1 && (m.aliases[c].push(t), G[t] = !0);
|
|
420
420
|
}
|
|
421
|
-
}), m.aliases[c].forEach(function(
|
|
422
|
-
m.aliases[
|
|
423
|
-
return
|
|
421
|
+
}), m.aliases[c].forEach(function(n) {
|
|
422
|
+
m.aliases[n] = [c].concat(m.aliases[c].filter(function(t) {
|
|
423
|
+
return n !== t;
|
|
424
424
|
}));
|
|
425
425
|
}));
|
|
426
426
|
});
|
|
427
427
|
});
|
|
428
428
|
}
|
|
429
429
|
function g(e, a) {
|
|
430
|
-
const c = [].concat(m.aliases[e] || [], e),
|
|
430
|
+
const c = [].concat(m.aliases[e] || [], e), n = Object.keys(a), t = c.find((l) => n.includes(l));
|
|
431
431
|
return t ? a[t] : !1;
|
|
432
432
|
}
|
|
433
|
-
function
|
|
433
|
+
function ce(e) {
|
|
434
434
|
const a = Object.keys(m);
|
|
435
|
-
return [].concat(a.map((
|
|
436
|
-
return Array.isArray(
|
|
435
|
+
return [].concat(a.map((n) => m[n])).some(function(n) {
|
|
436
|
+
return Array.isArray(n) ? n.includes(e) : n[e];
|
|
437
437
|
});
|
|
438
438
|
}
|
|
439
|
-
function
|
|
440
|
-
return [].concat(...a).some(function(
|
|
441
|
-
const t = e.match(
|
|
442
|
-
return t &&
|
|
439
|
+
function Be(e, ...a) {
|
|
440
|
+
return [].concat(...a).some(function(n) {
|
|
441
|
+
const t = e.match(n);
|
|
442
|
+
return t && ce(t[1]);
|
|
443
443
|
});
|
|
444
444
|
}
|
|
445
|
-
function
|
|
446
|
-
if (e.match(
|
|
445
|
+
function ye(e) {
|
|
446
|
+
if (e.match(P) || !e.match(/^-[^-]+/))
|
|
447
447
|
return !1;
|
|
448
448
|
let a = !0, c;
|
|
449
|
-
const
|
|
450
|
-
for (let t = 0; t <
|
|
451
|
-
if (c = e.slice(t + 2), !
|
|
449
|
+
const n = e.slice(1).split("");
|
|
450
|
+
for (let t = 0; t < n.length; t++) {
|
|
451
|
+
if (c = e.slice(t + 2), !ce(n[t])) {
|
|
452
452
|
a = !1;
|
|
453
453
|
break;
|
|
454
454
|
}
|
|
455
|
-
if (
|
|
455
|
+
if (n[t + 1] && n[t + 1] === "=" || c === "-" || /[A-Za-z]/.test(n[t]) && /^-?\d+(\.\d*)?(e-?\d+)?$/.test(c) || n[t + 1] && n[t + 1].match(/\W/))
|
|
456
456
|
break;
|
|
457
457
|
}
|
|
458
458
|
return a;
|
|
459
459
|
}
|
|
460
|
-
function
|
|
461
|
-
return
|
|
460
|
+
function H(e) {
|
|
461
|
+
return k["unknown-options-as-args"] && Ie(e);
|
|
462
462
|
}
|
|
463
|
-
function
|
|
464
|
-
return e = e.replace(/^-{3,}/, "--"), e.match(
|
|
463
|
+
function Ie(e) {
|
|
464
|
+
return e = e.replace(/^-{3,}/, "--"), e.match(P) || ye(e) ? !1 : !Be(e, /^-+([^=]+?)=[\s\S]*$/, W, /^-+([^=]+?)$/, /^-+([^=]+?)-$/, /^-+([^=]+?\d+)$/, /^-+([^=]+?)\W+.*$/);
|
|
465
465
|
}
|
|
466
466
|
function z(e) {
|
|
467
|
-
return !g(e, m.bools) && !g(e, m.counts) && `${e}` in q ? q[e] :
|
|
467
|
+
return !g(e, m.bools) && !g(e, m.counts) && `${e}` in q ? q[e] : Le(Me(e));
|
|
468
468
|
}
|
|
469
|
-
function
|
|
469
|
+
function Le(e) {
|
|
470
470
|
return {
|
|
471
|
-
[
|
|
472
|
-
[
|
|
473
|
-
[
|
|
474
|
-
[
|
|
471
|
+
[A.BOOLEAN]: !0,
|
|
472
|
+
[A.STRING]: "",
|
|
473
|
+
[A.NUMBER]: void 0,
|
|
474
|
+
[A.ARRAY]: []
|
|
475
475
|
}[e];
|
|
476
476
|
}
|
|
477
|
-
function
|
|
478
|
-
let a =
|
|
479
|
-
return g(e, m.strings) ? a =
|
|
477
|
+
function Me(e) {
|
|
478
|
+
let a = A.BOOLEAN;
|
|
479
|
+
return g(e, m.strings) ? a = A.STRING : g(e, m.numbers) ? a = A.NUMBER : g(e, m.bools) ? a = A.BOOLEAN : g(e, m.arrays) && (a = A.ARRAY), a;
|
|
480
480
|
}
|
|
481
|
-
function
|
|
481
|
+
function T(e) {
|
|
482
482
|
return e === void 0;
|
|
483
483
|
}
|
|
484
|
-
function
|
|
485
|
-
Object.keys(m.counts).find((e) => g(e, m.arrays) ? (
|
|
484
|
+
function Qe() {
|
|
485
|
+
Object.keys(m.counts).find((e) => g(e, m.arrays) ? (M = Error(C("Invalid configuration: %s, opts.count excludes opts.array.", e)), !0) : g(e, m.nargs) ? (M = Error(C("Invalid configuration: %s, opts.count excludes opts.narg.", e)), !0) : !1);
|
|
486
486
|
}
|
|
487
487
|
return {
|
|
488
488
|
aliases: Object.assign({}, m.aliases),
|
|
489
|
-
argv: Object.assign(
|
|
490
|
-
configuration:
|
|
491
|
-
defaulted: Object.assign({},
|
|
492
|
-
error:
|
|
489
|
+
argv: Object.assign(se, w),
|
|
490
|
+
configuration: k,
|
|
491
|
+
defaulted: Object.assign({}, ne),
|
|
492
|
+
error: M,
|
|
493
493
|
newAliases: Object.assign({}, G)
|
|
494
494
|
};
|
|
495
495
|
}
|
|
496
496
|
}
|
|
497
|
-
function
|
|
498
|
-
const
|
|
497
|
+
function je(i) {
|
|
498
|
+
const o = [], u = /* @__PURE__ */ Object.create(null);
|
|
499
499
|
let s = !0;
|
|
500
500
|
for (Object.keys(i).forEach(function(r) {
|
|
501
|
-
|
|
501
|
+
o.push([].concat(i[r], r));
|
|
502
502
|
}); s; ) {
|
|
503
503
|
s = !1;
|
|
504
|
-
for (let r = 0; r <
|
|
505
|
-
for (let
|
|
506
|
-
if (
|
|
507
|
-
return
|
|
504
|
+
for (let r = 0; r < o.length; r++)
|
|
505
|
+
for (let _ = r + 1; _ < o.length; _++)
|
|
506
|
+
if (o[r].filter(function(k) {
|
|
507
|
+
return o[_].indexOf(k) !== -1;
|
|
508
508
|
}).length) {
|
|
509
|
-
|
|
509
|
+
o[r] = o[r].concat(o[_]), o.splice(_, 1), s = !0;
|
|
510
510
|
break;
|
|
511
511
|
}
|
|
512
512
|
}
|
|
513
|
-
return
|
|
514
|
-
r = r.filter(function(
|
|
515
|
-
return q.indexOf(
|
|
513
|
+
return o.forEach(function(r) {
|
|
514
|
+
r = r.filter(function(h, k, q) {
|
|
515
|
+
return q.indexOf(h) === k;
|
|
516
516
|
});
|
|
517
|
-
const
|
|
518
|
-
|
|
517
|
+
const _ = r.pop();
|
|
518
|
+
_ !== void 0 && typeof _ == "string" && (u[_] = r);
|
|
519
519
|
}), u;
|
|
520
520
|
}
|
|
521
521
|
function Z(i) {
|
|
522
522
|
return i !== void 0 ? i + 1 : 1;
|
|
523
523
|
}
|
|
524
|
-
function
|
|
524
|
+
function pe(i) {
|
|
525
525
|
return i === "__proto__" ? "___proto___" : i;
|
|
526
526
|
}
|
|
527
|
-
function
|
|
527
|
+
function Ve(i) {
|
|
528
528
|
return typeof i == "string" && (i[0] === "'" || i[0] === '"') && i[i.length - 1] === i[0] ? i.substring(1, i.length - 1) : i;
|
|
529
529
|
}
|
|
530
530
|
/**
|
|
@@ -536,131 +536,131 @@ function Ee(i) {
|
|
|
536
536
|
* SPDX-License-Identifier: ISC
|
|
537
537
|
*/
|
|
538
538
|
var X, ee, te;
|
|
539
|
-
const
|
|
540
|
-
if (
|
|
541
|
-
throw Error(`yargs parser supports a minimum Node.js version of ${
|
|
542
|
-
const
|
|
543
|
-
new
|
|
539
|
+
const le = process && process.env && process.env.YARGS_MIN_NODE_VERSION ? Number(process.env.YARGS_MIN_NODE_VERSION) : 12, de = (ee = (X = process == null ? void 0 : process.versions) === null || X === void 0 ? void 0 : X.node) !== null && ee !== void 0 ? ee : (te = process == null ? void 0 : process.version) === null || te === void 0 ? void 0 : te.slice(1);
|
|
540
|
+
if (de && Number(de.match(/^([^.]+)/)[1]) < le)
|
|
541
|
+
throw Error(`yargs parser supports a minimum Node.js version of ${le}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`);
|
|
542
|
+
const Fe = process ? process.env : {};
|
|
543
|
+
new Ee({
|
|
544
544
|
cwd: process.cwd,
|
|
545
|
-
env: () =>
|
|
546
|
-
format:
|
|
547
|
-
normalize:
|
|
548
|
-
resolve:
|
|
545
|
+
env: () => Fe,
|
|
546
|
+
format: ke,
|
|
547
|
+
normalize: Ae,
|
|
548
|
+
resolve: ie,
|
|
549
549
|
// TODO: figure out a way to combine ESM and CJS coverage, such that
|
|
550
550
|
// we can exercise all the lines below:
|
|
551
551
|
require: (i) => {
|
|
552
552
|
if (typeof require < "u")
|
|
553
553
|
return require(i);
|
|
554
554
|
if (i.match(/\.json$/))
|
|
555
|
-
return JSON.parse(
|
|
555
|
+
return JSON.parse(ge(i, "utf8"));
|
|
556
556
|
throw Error("only .json config files are supported in ESM");
|
|
557
557
|
}
|
|
558
558
|
});
|
|
559
|
-
const
|
|
559
|
+
const Ke = {
|
|
560
560
|
fs: {
|
|
561
|
-
readFileSync:
|
|
562
|
-
writeFile:
|
|
561
|
+
readFileSync: ge,
|
|
562
|
+
writeFile: Pe
|
|
563
563
|
},
|
|
564
|
-
format:
|
|
565
|
-
resolve:
|
|
564
|
+
format: ke,
|
|
565
|
+
resolve: ie,
|
|
566
566
|
exists: (i) => {
|
|
567
567
|
try {
|
|
568
|
-
return
|
|
568
|
+
return Te(i).isFile();
|
|
569
569
|
} catch {
|
|
570
570
|
return !1;
|
|
571
571
|
}
|
|
572
572
|
}
|
|
573
573
|
};
|
|
574
|
-
let
|
|
575
|
-
class
|
|
576
|
-
constructor(
|
|
577
|
-
|
|
574
|
+
let Q;
|
|
575
|
+
class He {
|
|
576
|
+
constructor(o) {
|
|
577
|
+
o = o || {}, this.directory = o.directory || "./locales", this.updateFiles = typeof o.updateFiles == "boolean" ? o.updateFiles : !0, this.locale = o.locale || "en", this.fallbackToLanguage = typeof o.fallbackToLanguage == "boolean" ? o.fallbackToLanguage : !0, this.cache = /* @__PURE__ */ Object.create(null), this.writeQueue = [];
|
|
578
578
|
}
|
|
579
|
-
__(...
|
|
579
|
+
__(...o) {
|
|
580
580
|
if (typeof arguments[0] != "string")
|
|
581
581
|
return this._taggedLiteral(arguments[0], ...arguments);
|
|
582
|
-
const u =
|
|
582
|
+
const u = o.shift();
|
|
583
583
|
let s = function() {
|
|
584
584
|
};
|
|
585
|
-
return typeof
|
|
585
|
+
return typeof o[o.length - 1] == "function" && (s = o.pop()), s = s || function() {
|
|
586
586
|
}, this.cache[this.locale] || this._readLocaleFile(), !this.cache[this.locale][u] && this.updateFiles ? (this.cache[this.locale][u] = u, this._enqueueWrite({
|
|
587
587
|
directory: this.directory,
|
|
588
588
|
locale: this.locale,
|
|
589
589
|
cb: s
|
|
590
|
-
})) : s(),
|
|
590
|
+
})) : s(), Q.format.apply(Q.format, [this.cache[this.locale][u] || u].concat(o));
|
|
591
591
|
}
|
|
592
592
|
__n() {
|
|
593
|
-
const
|
|
594
|
-
let
|
|
593
|
+
const o = Array.prototype.slice.call(arguments), u = o.shift(), s = o.shift(), r = o.shift();
|
|
594
|
+
let _ = function() {
|
|
595
595
|
};
|
|
596
|
-
typeof
|
|
597
|
-
let
|
|
598
|
-
this.cache[this.locale][u] && (
|
|
596
|
+
typeof o[o.length - 1] == "function" && (_ = o.pop()), this.cache[this.locale] || this._readLocaleFile();
|
|
597
|
+
let h = r === 1 ? u : s;
|
|
598
|
+
this.cache[this.locale][u] && (h = this.cache[this.locale][u][r === 1 ? "one" : "other"]), !this.cache[this.locale][u] && this.updateFiles ? (this.cache[this.locale][u] = {
|
|
599
599
|
one: u,
|
|
600
600
|
other: s
|
|
601
601
|
}, this._enqueueWrite({
|
|
602
602
|
directory: this.directory,
|
|
603
603
|
locale: this.locale,
|
|
604
|
-
cb:
|
|
605
|
-
})) :
|
|
606
|
-
const
|
|
607
|
-
return ~
|
|
604
|
+
cb: _
|
|
605
|
+
})) : _();
|
|
606
|
+
const k = [h];
|
|
607
|
+
return ~h.indexOf("%d") && k.push(r), Q.format.apply(Q.format, k.concat(o));
|
|
608
608
|
}
|
|
609
|
-
setLocale(
|
|
610
|
-
this.locale =
|
|
609
|
+
setLocale(o) {
|
|
610
|
+
this.locale = o;
|
|
611
611
|
}
|
|
612
612
|
getLocale() {
|
|
613
613
|
return this.locale;
|
|
614
614
|
}
|
|
615
|
-
updateLocale(
|
|
615
|
+
updateLocale(o) {
|
|
616
616
|
this.cache[this.locale] || this._readLocaleFile();
|
|
617
|
-
for (const u in
|
|
618
|
-
Object.prototype.hasOwnProperty.call(
|
|
617
|
+
for (const u in o)
|
|
618
|
+
Object.prototype.hasOwnProperty.call(o, u) && (this.cache[this.locale][u] = o[u]);
|
|
619
619
|
}
|
|
620
|
-
_taggedLiteral(
|
|
620
|
+
_taggedLiteral(o, ...u) {
|
|
621
621
|
let s = "";
|
|
622
|
-
return
|
|
623
|
-
const
|
|
624
|
-
s += r, typeof
|
|
622
|
+
return o.forEach(function(r, _) {
|
|
623
|
+
const h = u[_ + 1];
|
|
624
|
+
s += r, typeof h < "u" && (s += "%s");
|
|
625
625
|
}), this.__.apply(this, [s].concat([].slice.call(u, 1)));
|
|
626
626
|
}
|
|
627
|
-
_enqueueWrite(
|
|
628
|
-
this.writeQueue.push(
|
|
627
|
+
_enqueueWrite(o) {
|
|
628
|
+
this.writeQueue.push(o), this.writeQueue.length === 1 && this._processWriteQueue();
|
|
629
629
|
}
|
|
630
630
|
_processWriteQueue() {
|
|
631
|
-
const
|
|
632
|
-
|
|
633
|
-
|
|
631
|
+
const o = this, u = this.writeQueue[0], s = u.directory, r = u.locale, _ = u.cb, h = this._resolveLocaleFile(s, r), k = JSON.stringify(this.cache[r], null, 2);
|
|
632
|
+
Q.fs.writeFile(h, k, "utf-8", function(q) {
|
|
633
|
+
o.writeQueue.shift(), o.writeQueue.length > 0 && o._processWriteQueue(), _(q);
|
|
634
634
|
});
|
|
635
635
|
}
|
|
636
636
|
_readLocaleFile() {
|
|
637
|
-
let
|
|
637
|
+
let o = {};
|
|
638
638
|
const u = this._resolveLocaleFile(this.directory, this.locale);
|
|
639
639
|
try {
|
|
640
|
-
|
|
640
|
+
Q.fs.readFileSync && (o = JSON.parse(Q.fs.readFileSync(u, "utf-8")));
|
|
641
641
|
} catch (s) {
|
|
642
642
|
if (s instanceof SyntaxError && (s.message = "syntax error in " + u), s.code === "ENOENT")
|
|
643
|
-
|
|
643
|
+
o = {};
|
|
644
644
|
else
|
|
645
645
|
throw s;
|
|
646
646
|
}
|
|
647
|
-
this.cache[this.locale] =
|
|
647
|
+
this.cache[this.locale] = o;
|
|
648
648
|
}
|
|
649
|
-
_resolveLocaleFile(
|
|
650
|
-
let s =
|
|
649
|
+
_resolveLocaleFile(o, u) {
|
|
650
|
+
let s = Q.resolve(o, "./", u + ".json");
|
|
651
651
|
if (this.fallbackToLanguage && !this._fileExistsSync(s) && ~u.lastIndexOf("_")) {
|
|
652
|
-
const r =
|
|
652
|
+
const r = Q.resolve(o, "./", u.split("_")[0] + ".json");
|
|
653
653
|
this._fileExistsSync(r) && (s = r);
|
|
654
654
|
}
|
|
655
655
|
return s;
|
|
656
656
|
}
|
|
657
|
-
_fileExistsSync(
|
|
658
|
-
return
|
|
657
|
+
_fileExistsSync(o) {
|
|
658
|
+
return Q.exists(o);
|
|
659
659
|
}
|
|
660
660
|
}
|
|
661
|
-
function
|
|
662
|
-
|
|
663
|
-
const u = new
|
|
661
|
+
function $e(i, o) {
|
|
662
|
+
Q = o;
|
|
663
|
+
const u = new He(i);
|
|
664
664
|
return {
|
|
665
665
|
__: u.__.bind(u),
|
|
666
666
|
__n: u.__n.bind(u),
|
|
@@ -670,19 +670,19 @@ function Fe(i, n) {
|
|
|
670
670
|
locale: u.locale
|
|
671
671
|
};
|
|
672
672
|
}
|
|
673
|
-
const
|
|
674
|
-
let
|
|
673
|
+
const We = (i) => $e(i, Ke);
|
|
674
|
+
let D;
|
|
675
675
|
try {
|
|
676
|
-
|
|
676
|
+
D = Se(import.meta.url);
|
|
677
677
|
} catch {
|
|
678
|
-
|
|
678
|
+
D = process.cwd();
|
|
679
679
|
}
|
|
680
|
-
const
|
|
681
|
-
|
|
682
|
-
directory:
|
|
680
|
+
const Ue = D.substring(0, D.lastIndexOf("node_modules"));
|
|
681
|
+
Ue || process.cwd(), process.cwd, process.exit, process.nextTick, typeof process.stdout.columns < "u" && process.stdout.columns, We({
|
|
682
|
+
directory: ie(D, "../../../locales"),
|
|
683
683
|
updateFiles: !1
|
|
684
684
|
});
|
|
685
|
-
const
|
|
685
|
+
const oe = [
|
|
686
686
|
{
|
|
687
687
|
id: "anthropic",
|
|
688
688
|
name: "Anthropic",
|
|
@@ -2088,6 +2088,7 @@ const ie = [
|
|
|
2088
2088
|
]
|
|
2089
2089
|
}
|
|
2090
2090
|
],
|
|
2091
|
+
fallback_model_providers: ["openai", "anthropic"],
|
|
2091
2092
|
models: [
|
|
2092
2093
|
{
|
|
2093
2094
|
id: "ada",
|
|
@@ -2097,533 +2098,75 @@ const ie = [
|
|
|
2097
2098
|
equals: "ada"
|
|
2098
2099
|
},
|
|
2099
2100
|
{
|
|
2100
|
-
equals: "text-embedding-ada"
|
|
2101
|
-
},
|
|
2102
|
-
{
|
|
2103
|
-
equals: "text-embedding-ada-002"
|
|
2104
|
-
},
|
|
2105
|
-
{
|
|
2106
|
-
equals: "text-embedding-ada-002-v2"
|
|
2107
|
-
}
|
|
2108
|
-
]
|
|
2109
|
-
},
|
|
2110
|
-
prices: {
|
|
2111
|
-
input_mtok: 0.1
|
|
2112
|
-
}
|
|
2113
|
-
},
|
|
2114
|
-
{
|
|
2115
|
-
id: "babbage",
|
|
2116
|
-
match: {
|
|
2117
|
-
or: [
|
|
2118
|
-
{
|
|
2119
|
-
equals: "babbage"
|
|
2120
|
-
},
|
|
2121
|
-
{
|
|
2122
|
-
equals: "babbage-002"
|
|
2123
|
-
}
|
|
2124
|
-
]
|
|
2125
|
-
},
|
|
2126
|
-
prices: {
|
|
2127
|
-
input_mtok: 0.4
|
|
2128
|
-
}
|
|
2129
|
-
},
|
|
2130
|
-
{
|
|
2131
|
-
id: "curie",
|
|
2132
|
-
match: {
|
|
2133
|
-
or: [
|
|
2134
|
-
{
|
|
2135
|
-
equals: "curie"
|
|
2136
|
-
},
|
|
2137
|
-
{
|
|
2138
|
-
equals: "text-curie"
|
|
2139
|
-
},
|
|
2140
|
-
{
|
|
2141
|
-
equals: "text-curie-001"
|
|
2142
|
-
}
|
|
2143
|
-
]
|
|
2144
|
-
},
|
|
2145
|
-
prices: {
|
|
2146
|
-
input_mtok: 2
|
|
2147
|
-
}
|
|
2148
|
-
},
|
|
2149
|
-
{
|
|
2150
|
-
id: "davinci",
|
|
2151
|
-
match: {
|
|
2152
|
-
or: [
|
|
2153
|
-
{
|
|
2154
|
-
equals: "davinci"
|
|
2155
|
-
},
|
|
2156
|
-
{
|
|
2157
|
-
equals: "davinci-002"
|
|
2158
|
-
},
|
|
2159
|
-
{
|
|
2160
|
-
equals: "text-davinci"
|
|
2161
|
-
},
|
|
2162
|
-
{
|
|
2163
|
-
equals: "text-davinci-002"
|
|
2164
|
-
}
|
|
2165
|
-
]
|
|
2166
|
-
},
|
|
2167
|
-
prices: {
|
|
2168
|
-
input_mtok: 2
|
|
2169
|
-
}
|
|
2170
|
-
},
|
|
2171
|
-
{
|
|
2172
|
-
id: "gpt-3.5-turbo",
|
|
2173
|
-
match: {
|
|
2174
|
-
or: [
|
|
2175
|
-
{
|
|
2176
|
-
equals: "gpt-3.5-turbo"
|
|
2177
|
-
},
|
|
2178
|
-
{
|
|
2179
|
-
equals: "gpt-3.5-turbo-0301"
|
|
2180
|
-
},
|
|
2181
|
-
{
|
|
2182
|
-
equals: "gpt-3.5-turbo-0613"
|
|
2183
|
-
},
|
|
2184
|
-
{
|
|
2185
|
-
equals: "gpt-3.5-turbo-instruct"
|
|
2186
|
-
},
|
|
2187
|
-
{
|
|
2188
|
-
equals: "gpt-3.5-turbo-instruct-0914"
|
|
2189
|
-
}
|
|
2190
|
-
]
|
|
2191
|
-
},
|
|
2192
|
-
prices: {
|
|
2193
|
-
input_mtok: 1.5,
|
|
2194
|
-
output_mtok: 2
|
|
2195
|
-
}
|
|
2196
|
-
},
|
|
2197
|
-
{
|
|
2198
|
-
id: "gpt-3.5-turbo-0125",
|
|
2199
|
-
match: {
|
|
2200
|
-
equals: "gpt-3.5-turbo-0125"
|
|
2201
|
-
},
|
|
2202
|
-
prices: {
|
|
2203
|
-
input_mtok: 0.5,
|
|
2204
|
-
output_mtok: 1.5
|
|
2205
|
-
}
|
|
2206
|
-
},
|
|
2207
|
-
{
|
|
2208
|
-
id: "gpt-3.5-turbo-1106",
|
|
2209
|
-
match: {
|
|
2210
|
-
equals: "gpt-3.5-turbo-1106"
|
|
2211
|
-
},
|
|
2212
|
-
prices: {
|
|
2213
|
-
input_mtok: 1,
|
|
2214
|
-
output_mtok: 2
|
|
2215
|
-
}
|
|
2216
|
-
},
|
|
2217
|
-
{
|
|
2218
|
-
id: "gpt-3.5-turbo-16k-0613",
|
|
2219
|
-
match: {
|
|
2220
|
-
equals: "gpt-3.5-turbo-16k-0613"
|
|
2221
|
-
},
|
|
2222
|
-
prices: {
|
|
2223
|
-
input_mtok: 3,
|
|
2224
|
-
output_mtok: 4
|
|
2225
|
-
}
|
|
2226
|
-
},
|
|
2227
|
-
{
|
|
2228
|
-
id: "gpt-35-16k",
|
|
2229
|
-
match: {
|
|
2230
|
-
equals: "gpt-35-16k"
|
|
2231
|
-
},
|
|
2232
|
-
prices: {
|
|
2233
|
-
input_mtok: 3,
|
|
2234
|
-
output_mtok: 4
|
|
2235
|
-
}
|
|
2236
|
-
},
|
|
2237
|
-
{
|
|
2238
|
-
id: "gpt-35-turbo",
|
|
2239
|
-
match: {
|
|
2240
|
-
or: [
|
|
2241
|
-
{
|
|
2242
|
-
equals: "gpt-35-turbo"
|
|
2243
|
-
},
|
|
2244
|
-
{
|
|
2245
|
-
equals: "gpt-35-turbo-0613"
|
|
2246
|
-
},
|
|
2247
|
-
{
|
|
2248
|
-
equals: "gpt-35-turbo-1106"
|
|
2249
|
-
}
|
|
2250
|
-
]
|
|
2251
|
-
},
|
|
2252
|
-
prices: {
|
|
2253
|
-
input_mtok: 1.5,
|
|
2254
|
-
output_mtok: 2
|
|
2255
|
-
}
|
|
2256
|
-
},
|
|
2257
|
-
{
|
|
2258
|
-
id: "gpt-35-turbo-16k",
|
|
2259
|
-
match: {
|
|
2260
|
-
or: [
|
|
2261
|
-
{
|
|
2262
|
-
equals: "gpt-35-turbo-16k"
|
|
2263
|
-
},
|
|
2264
|
-
{
|
|
2265
|
-
equals: "gpt-35-turbo-16k-0613"
|
|
2266
|
-
}
|
|
2267
|
-
]
|
|
2268
|
-
},
|
|
2269
|
-
prices: {
|
|
2270
|
-
input_mtok: 3,
|
|
2271
|
-
output_mtok: 4
|
|
2272
|
-
}
|
|
2273
|
-
},
|
|
2274
|
-
{
|
|
2275
|
-
id: "gpt-4",
|
|
2276
|
-
match: {
|
|
2277
|
-
or: [
|
|
2278
|
-
{
|
|
2279
|
-
equals: "gpt-4"
|
|
2280
|
-
},
|
|
2281
|
-
{
|
|
2282
|
-
equals: "gpt-4-0314"
|
|
2283
|
-
},
|
|
2284
|
-
{
|
|
2285
|
-
equals: "gpt-4-0613"
|
|
2286
|
-
}
|
|
2287
|
-
]
|
|
2288
|
-
},
|
|
2289
|
-
prices: {
|
|
2290
|
-
input_mtok: 30,
|
|
2291
|
-
output_mtok: 60
|
|
2292
|
-
}
|
|
2293
|
-
},
|
|
2294
|
-
{
|
|
2295
|
-
id: "gpt-4-0125-preview",
|
|
2296
|
-
match: {
|
|
2297
|
-
equals: "gpt-4-0125-preview"
|
|
2298
|
-
},
|
|
2299
|
-
prices: {
|
|
2300
|
-
input_mtok: 10,
|
|
2301
|
-
output_mtok: 30
|
|
2302
|
-
}
|
|
2303
|
-
},
|
|
2304
|
-
{
|
|
2305
|
-
id: "gpt-4-1106-preview",
|
|
2306
|
-
match: {
|
|
2307
|
-
equals: "gpt-4-1106-preview"
|
|
2308
|
-
},
|
|
2309
|
-
prices: {
|
|
2310
|
-
input_mtok: 10,
|
|
2311
|
-
output_mtok: 30
|
|
2312
|
-
}
|
|
2313
|
-
},
|
|
2314
|
-
{
|
|
2315
|
-
id: "gpt-4-1106-vision-preview",
|
|
2316
|
-
match: {
|
|
2317
|
-
equals: "gpt-4-1106-vision-preview"
|
|
2318
|
-
},
|
|
2319
|
-
prices: {
|
|
2320
|
-
input_mtok: 10,
|
|
2321
|
-
output_mtok: 30
|
|
2322
|
-
}
|
|
2323
|
-
},
|
|
2324
|
-
{
|
|
2325
|
-
id: "gpt-4-32k",
|
|
2326
|
-
match: {
|
|
2327
|
-
or: [
|
|
2328
|
-
{
|
|
2329
|
-
equals: "gpt-4-32k"
|
|
2330
|
-
},
|
|
2331
|
-
{
|
|
2332
|
-
equals: "gpt-4-32k-0314"
|
|
2333
|
-
},
|
|
2334
|
-
{
|
|
2335
|
-
equals: "gpt-4-32k-0613"
|
|
2336
|
-
}
|
|
2337
|
-
]
|
|
2338
|
-
},
|
|
2339
|
-
prices: {
|
|
2340
|
-
input_mtok: 60,
|
|
2341
|
-
output_mtok: 120
|
|
2342
|
-
}
|
|
2343
|
-
},
|
|
2344
|
-
{
|
|
2345
|
-
id: "gpt-4-preview-1106",
|
|
2346
|
-
match: {
|
|
2347
|
-
equals: "gpt-4-preview-1106"
|
|
2348
|
-
},
|
|
2349
|
-
prices: {
|
|
2350
|
-
input_mtok: 10,
|
|
2351
|
-
output_mtok: 30
|
|
2352
|
-
}
|
|
2353
|
-
},
|
|
2354
|
-
{
|
|
2355
|
-
id: "gpt-4-turbo",
|
|
2356
|
-
match: {
|
|
2357
|
-
or: [
|
|
2358
|
-
{
|
|
2359
|
-
equals: "gpt-4-turbo"
|
|
2360
|
-
},
|
|
2361
|
-
{
|
|
2362
|
-
equals: "gpt-4-turbo-0125-preview"
|
|
2363
|
-
},
|
|
2364
|
-
{
|
|
2365
|
-
equals: "gpt-4-turbo-2024-04-09"
|
|
2366
|
-
},
|
|
2367
|
-
{
|
|
2368
|
-
equals: "gpt-4-turbo-preview"
|
|
2369
|
-
}
|
|
2370
|
-
]
|
|
2371
|
-
},
|
|
2372
|
-
prices: {
|
|
2373
|
-
input_mtok: 10,
|
|
2374
|
-
output_mtok: 30
|
|
2375
|
-
}
|
|
2376
|
-
},
|
|
2377
|
-
{
|
|
2378
|
-
id: "gpt-4-vision",
|
|
2379
|
-
match: {
|
|
2380
|
-
or: [
|
|
2381
|
-
{
|
|
2382
|
-
equals: "gpt-4-vision"
|
|
2383
|
-
},
|
|
2384
|
-
{
|
|
2385
|
-
equals: "gpt-4-vision-preview"
|
|
2386
|
-
}
|
|
2387
|
-
]
|
|
2388
|
-
},
|
|
2389
|
-
prices: {
|
|
2390
|
-
input_mtok: 10,
|
|
2391
|
-
output_mtok: 30
|
|
2392
|
-
}
|
|
2393
|
-
},
|
|
2394
|
-
{
|
|
2395
|
-
id: "gpt-4.1",
|
|
2396
|
-
match: {
|
|
2397
|
-
or: [
|
|
2398
|
-
{
|
|
2399
|
-
equals: "gpt-4.1"
|
|
2400
|
-
},
|
|
2401
|
-
{
|
|
2402
|
-
equals: "gpt-4.1-2025-04-14"
|
|
2403
|
-
}
|
|
2404
|
-
]
|
|
2405
|
-
},
|
|
2406
|
-
prices: {
|
|
2407
|
-
input_mtok: 2,
|
|
2408
|
-
cache_read_mtok: 0.5,
|
|
2409
|
-
output_mtok: 8
|
|
2410
|
-
}
|
|
2411
|
-
},
|
|
2412
|
-
{
|
|
2413
|
-
id: "gpt-4.1-mini",
|
|
2414
|
-
match: {
|
|
2415
|
-
or: [
|
|
2416
|
-
{
|
|
2417
|
-
equals: "gpt-4.1-mini"
|
|
2418
|
-
},
|
|
2419
|
-
{
|
|
2420
|
-
equals: "gpt-4.1-mini-2025-04-14"
|
|
2421
|
-
}
|
|
2422
|
-
]
|
|
2423
|
-
},
|
|
2424
|
-
prices: {
|
|
2425
|
-
input_mtok: 0.4,
|
|
2426
|
-
cache_read_mtok: 0.1,
|
|
2427
|
-
output_mtok: 1.6
|
|
2428
|
-
}
|
|
2429
|
-
},
|
|
2430
|
-
{
|
|
2431
|
-
id: "gpt-4.1-nano",
|
|
2432
|
-
match: {
|
|
2433
|
-
or: [
|
|
2434
|
-
{
|
|
2435
|
-
equals: "gpt-4.1-nano"
|
|
2436
|
-
},
|
|
2437
|
-
{
|
|
2438
|
-
equals: "gpt-4.1-nano-2025-04-14"
|
|
2439
|
-
}
|
|
2440
|
-
]
|
|
2441
|
-
},
|
|
2442
|
-
prices: {
|
|
2443
|
-
input_mtok: 0.1,
|
|
2444
|
-
cache_read_mtok: 0.03,
|
|
2445
|
-
output_mtok: 0.4
|
|
2446
|
-
}
|
|
2447
|
-
},
|
|
2448
|
-
{
|
|
2449
|
-
id: "gpt-4o-2024-0513",
|
|
2450
|
-
match: {
|
|
2451
|
-
or: [
|
|
2452
|
-
{
|
|
2453
|
-
equals: "gpt-4o-2024-05-13"
|
|
2454
|
-
},
|
|
2455
|
-
{
|
|
2456
|
-
equals: "gpt-4o-2024-0513"
|
|
2457
|
-
}
|
|
2458
|
-
]
|
|
2459
|
-
},
|
|
2460
|
-
prices: {
|
|
2461
|
-
input_mtok: 5,
|
|
2462
|
-
output_mtok: 15
|
|
2463
|
-
}
|
|
2464
|
-
},
|
|
2465
|
-
{
|
|
2466
|
-
id: "gpt-4o-2024-08-06",
|
|
2467
|
-
match: {
|
|
2468
|
-
equals: "gpt-4o-2024-08-06"
|
|
2469
|
-
},
|
|
2470
|
-
prices: {
|
|
2471
|
-
input_mtok: 2.5,
|
|
2472
|
-
cache_read_mtok: 1.25,
|
|
2473
|
-
output_mtok: 10
|
|
2474
|
-
}
|
|
2475
|
-
},
|
|
2476
|
-
{
|
|
2477
|
-
id: "gpt-4o-2024-1120",
|
|
2478
|
-
match: {
|
|
2479
|
-
or: [
|
|
2480
|
-
{
|
|
2481
|
-
equals: "gpt-4o-2024-1120"
|
|
2482
|
-
},
|
|
2483
|
-
{
|
|
2484
|
-
equals: "gpt-4o-2024-11-20"
|
|
2485
|
-
}
|
|
2486
|
-
]
|
|
2487
|
-
},
|
|
2488
|
-
prices: {
|
|
2489
|
-
input_mtok: 2.5,
|
|
2490
|
-
cache_read_mtok: 1.25,
|
|
2491
|
-
output_mtok: 10
|
|
2492
|
-
}
|
|
2493
|
-
},
|
|
2494
|
-
{
|
|
2495
|
-
id: "gpt-4o-mini",
|
|
2496
|
-
match: {
|
|
2497
|
-
or: [
|
|
2498
|
-
{
|
|
2499
|
-
equals: "gpt-4o-mini"
|
|
2101
|
+
equals: "text-embedding-ada"
|
|
2500
2102
|
},
|
|
2501
2103
|
{
|
|
2502
|
-
equals: "
|
|
2104
|
+
equals: "text-embedding-ada-002"
|
|
2503
2105
|
},
|
|
2504
2106
|
{
|
|
2505
|
-
|
|
2107
|
+
equals: "text-embedding-ada-002-v2"
|
|
2506
2108
|
}
|
|
2507
2109
|
]
|
|
2508
2110
|
},
|
|
2509
|
-
context_window: 128e3,
|
|
2510
|
-
prices: {
|
|
2511
|
-
input_mtok: 0.15,
|
|
2512
|
-
cache_read_mtok: 0.075,
|
|
2513
|
-
output_mtok: 0.6,
|
|
2514
|
-
input_audio_mtok: 10,
|
|
2515
|
-
output_audio_mtok: 20
|
|
2516
|
-
}
|
|
2517
|
-
},
|
|
2518
|
-
{
|
|
2519
|
-
id: "gpt-4o-mini-realtime",
|
|
2520
|
-
match: {
|
|
2521
|
-
starts_with: "gpt-4o-mini-realtime"
|
|
2522
|
-
},
|
|
2523
2111
|
prices: {
|
|
2524
|
-
input_mtok: 0.
|
|
2525
|
-
cache_read_mtok: 0.3,
|
|
2526
|
-
output_mtok: 2.4,
|
|
2527
|
-
input_audio_mtok: 10,
|
|
2528
|
-
cache_audio_read_mtok: 0.3,
|
|
2529
|
-
output_audio_mtok: 20
|
|
2530
|
-
}
|
|
2531
|
-
},
|
|
2532
|
-
{
|
|
2533
|
-
id: "gpt-4o-realtime",
|
|
2534
|
-
match: {
|
|
2535
|
-
starts_with: "gpt-4o-realtime"
|
|
2536
|
-
},
|
|
2537
|
-
prices: {
|
|
2538
|
-
input_mtok: 5,
|
|
2539
|
-
cache_read_mtok: 2.5,
|
|
2540
|
-
output_mtok: 20,
|
|
2541
|
-
input_audio_mtok: 40,
|
|
2542
|
-
cache_audio_read_mtok: 2.5,
|
|
2543
|
-
output_audio_mtok: 80
|
|
2112
|
+
input_mtok: 0.1
|
|
2544
2113
|
}
|
|
2545
2114
|
},
|
|
2546
2115
|
{
|
|
2547
|
-
id: "
|
|
2548
|
-
name: "GPT-5",
|
|
2549
|
-
description: "GPT-5 is OpenAI's flagship model for coding, reasoning, and agentic tasks across domains.",
|
|
2116
|
+
id: "babbage",
|
|
2550
2117
|
match: {
|
|
2551
2118
|
or: [
|
|
2552
2119
|
{
|
|
2553
|
-
equals: "
|
|
2120
|
+
equals: "babbage"
|
|
2554
2121
|
},
|
|
2555
2122
|
{
|
|
2556
|
-
equals: "
|
|
2123
|
+
equals: "babbage-002"
|
|
2557
2124
|
}
|
|
2558
2125
|
]
|
|
2559
2126
|
},
|
|
2560
|
-
context_window: 4e5,
|
|
2561
2127
|
prices: {
|
|
2562
|
-
input_mtok:
|
|
2563
|
-
cache_read_mtok: 0.125,
|
|
2564
|
-
output_mtok: 10
|
|
2128
|
+
input_mtok: 0.4
|
|
2565
2129
|
}
|
|
2566
2130
|
},
|
|
2567
2131
|
{
|
|
2568
|
-
id: "
|
|
2569
|
-
name: "GPT-5 mini",
|
|
2570
|
-
description: "GPT-5 mini is a faster, more cost-efficient version of GPT-5. It's great for well-defined tasks and precise prompts.",
|
|
2132
|
+
id: "curie",
|
|
2571
2133
|
match: {
|
|
2572
2134
|
or: [
|
|
2573
2135
|
{
|
|
2574
|
-
equals: "
|
|
2136
|
+
equals: "curie"
|
|
2575
2137
|
},
|
|
2576
2138
|
{
|
|
2577
|
-
equals: "
|
|
2139
|
+
equals: "text-curie"
|
|
2140
|
+
},
|
|
2141
|
+
{
|
|
2142
|
+
equals: "text-curie-001"
|
|
2578
2143
|
}
|
|
2579
2144
|
]
|
|
2580
2145
|
},
|
|
2581
|
-
context_window: 4e5,
|
|
2582
2146
|
prices: {
|
|
2583
|
-
input_mtok:
|
|
2584
|
-
cache_read_mtok: 0.025,
|
|
2585
|
-
output_mtok: 2
|
|
2147
|
+
input_mtok: 2
|
|
2586
2148
|
}
|
|
2587
2149
|
},
|
|
2588
2150
|
{
|
|
2589
|
-
id: "
|
|
2590
|
-
name: "GPT-5 nano",
|
|
2591
|
-
description: "GPT-5 Nano is OpenAI's fastest, cheapest version of GPT-5. It's great for summarization and classification tasks.",
|
|
2151
|
+
id: "davinci",
|
|
2592
2152
|
match: {
|
|
2593
2153
|
or: [
|
|
2594
2154
|
{
|
|
2595
|
-
equals: "
|
|
2155
|
+
equals: "davinci"
|
|
2156
|
+
},
|
|
2157
|
+
{
|
|
2158
|
+
equals: "davinci-002"
|
|
2159
|
+
},
|
|
2160
|
+
{
|
|
2161
|
+
equals: "text-davinci"
|
|
2596
2162
|
},
|
|
2597
2163
|
{
|
|
2598
|
-
equals: "
|
|
2164
|
+
equals: "text-davinci-002"
|
|
2599
2165
|
}
|
|
2600
2166
|
]
|
|
2601
2167
|
},
|
|
2602
|
-
context_window: 4e5,
|
|
2603
|
-
prices: {
|
|
2604
|
-
input_mtok: 0.05,
|
|
2605
|
-
cache_read_mtok: 5e-3,
|
|
2606
|
-
output_mtok: 0.4
|
|
2607
|
-
}
|
|
2608
|
-
},
|
|
2609
|
-
{
|
|
2610
|
-
id: "gpt35",
|
|
2611
|
-
match: {
|
|
2612
|
-
equals: "gpt35"
|
|
2613
|
-
},
|
|
2614
|
-
prices: {
|
|
2615
|
-
input_mtok: 1.5,
|
|
2616
|
-
output_mtok: 2
|
|
2617
|
-
}
|
|
2618
|
-
},
|
|
2619
|
-
{
|
|
2620
|
-
id: "gpt4-turbo-preview",
|
|
2621
|
-
match: {
|
|
2622
|
-
equals: "gpt4-turbo-preview"
|
|
2623
|
-
},
|
|
2624
2168
|
prices: {
|
|
2625
|
-
input_mtok:
|
|
2626
|
-
output_mtok: 30
|
|
2169
|
+
input_mtok: 2
|
|
2627
2170
|
}
|
|
2628
2171
|
},
|
|
2629
2172
|
{
|
|
@@ -3551,6 +3094,7 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
3551
3094
|
]
|
|
3552
3095
|
}
|
|
3553
3096
|
],
|
|
3097
|
+
fallback_model_providers: ["anthropic"],
|
|
3554
3098
|
models: [
|
|
3555
3099
|
{
|
|
3556
3100
|
id: "claude-3-5-haiku",
|
|
@@ -3744,16 +3288,19 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
3744
3288
|
match: {
|
|
3745
3289
|
or: [
|
|
3746
3290
|
{
|
|
3747
|
-
|
|
3291
|
+
ends_with: "gemini-2.0-flash"
|
|
3292
|
+
},
|
|
3293
|
+
{
|
|
3294
|
+
contains: "gemini-2.0-flash-0"
|
|
3748
3295
|
},
|
|
3749
3296
|
{
|
|
3750
|
-
|
|
3297
|
+
contains: "gemini-2.0-flash-exp"
|
|
3751
3298
|
},
|
|
3752
3299
|
{
|
|
3753
|
-
|
|
3300
|
+
contains: "gemini-2.0-flash-thinking"
|
|
3754
3301
|
},
|
|
3755
3302
|
{
|
|
3756
|
-
|
|
3303
|
+
contains: "gemini-2.0-flash-latest"
|
|
3757
3304
|
}
|
|
3758
3305
|
]
|
|
3759
3306
|
},
|
|
@@ -8820,18 +8367,6 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
8820
8367
|
output_mtok: 0.6
|
|
8821
8368
|
}
|
|
8822
8369
|
},
|
|
8823
|
-
{
|
|
8824
|
-
id: "mistral-small",
|
|
8825
|
-
name: "Mistral Small",
|
|
8826
|
-
description: "With 22 billion parameters, Mistral Small v24.09 offers a convenient mid-point between (Mistral NeMo 12B)[/mistralai/mistral-nemo] and (Mistral Large 2)[/mistralai/mistral-large], providing a cost-effective solution that can be deployed across various platforms and environments. It has better reasoning, exhibits more capabilities, can produce and reason about code, and is multiligual, supporting English, French, German, Italian, and Spanish.",
|
|
8827
|
-
match: {
|
|
8828
|
-
starts_with: "mistral-small"
|
|
8829
|
-
},
|
|
8830
|
-
prices: {
|
|
8831
|
-
input_mtok: 0.2,
|
|
8832
|
-
output_mtok: 0.6
|
|
8833
|
-
}
|
|
8834
|
-
},
|
|
8835
8370
|
{
|
|
8836
8371
|
id: "mistral-small-24b-instruct-2501",
|
|
8837
8372
|
name: "Mistral Small 3",
|
|
@@ -10208,6 +9743,12 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
10208
9743
|
},
|
|
10209
9744
|
{
|
|
10210
9745
|
equals: "gpt-5-2-chat-latest"
|
|
9746
|
+
},
|
|
9747
|
+
{
|
|
9748
|
+
equals: "gpt-5.2-codex"
|
|
9749
|
+
},
|
|
9750
|
+
{
|
|
9751
|
+
equals: "gpt-5-2-codex"
|
|
10211
9752
|
}
|
|
10212
9753
|
]
|
|
10213
9754
|
},
|
|
@@ -10229,9 +9770,6 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
10229
9770
|
{
|
|
10230
9771
|
equals: "gpt-5.2-pro-2025-12-11"
|
|
10231
9772
|
},
|
|
10232
|
-
{
|
|
10233
|
-
equals: "gpt-5-2"
|
|
10234
|
-
},
|
|
10235
9773
|
{
|
|
10236
9774
|
equals: "gpt-5-2-pro-2025-12-11"
|
|
10237
9775
|
}
|
|
@@ -10948,6 +10486,96 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
10948
10486
|
output_mtok: 15
|
|
10949
10487
|
}
|
|
10950
10488
|
},
|
|
10489
|
+
{
|
|
10490
|
+
id: "anthropic/claude-haiku-4.5",
|
|
10491
|
+
match: {
|
|
10492
|
+
or: [
|
|
10493
|
+
{
|
|
10494
|
+
equals: "anthropic/claude-haiku-4.5"
|
|
10495
|
+
},
|
|
10496
|
+
{
|
|
10497
|
+
equals: "anthropic/claude-haiku-4.5:beta"
|
|
10498
|
+
}
|
|
10499
|
+
]
|
|
10500
|
+
},
|
|
10501
|
+
prices: {
|
|
10502
|
+
input_mtok: 1,
|
|
10503
|
+
cache_write_mtok: 1.25,
|
|
10504
|
+
cache_read_mtok: 0.1,
|
|
10505
|
+
output_mtok: 5
|
|
10506
|
+
}
|
|
10507
|
+
},
|
|
10508
|
+
{
|
|
10509
|
+
id: "anthropic/claude-opus-4.5",
|
|
10510
|
+
match: {
|
|
10511
|
+
or: [
|
|
10512
|
+
{
|
|
10513
|
+
equals: "anthropic/claude-opus-4.5"
|
|
10514
|
+
},
|
|
10515
|
+
{
|
|
10516
|
+
equals: "anthropic/claude-opus-4.5:beta"
|
|
10517
|
+
}
|
|
10518
|
+
]
|
|
10519
|
+
},
|
|
10520
|
+
prices: {
|
|
10521
|
+
input_mtok: 5,
|
|
10522
|
+
cache_write_mtok: 6.25,
|
|
10523
|
+
cache_read_mtok: 0.5,
|
|
10524
|
+
output_mtok: 25
|
|
10525
|
+
}
|
|
10526
|
+
},
|
|
10527
|
+
{
|
|
10528
|
+
id: "anthropic/claude-sonnet-4.5",
|
|
10529
|
+
match: {
|
|
10530
|
+
or: [
|
|
10531
|
+
{
|
|
10532
|
+
equals: "anthropic/claude-sonnet-4.5"
|
|
10533
|
+
},
|
|
10534
|
+
{
|
|
10535
|
+
equals: "anthropic/claude-sonnet-4.5:beta"
|
|
10536
|
+
}
|
|
10537
|
+
]
|
|
10538
|
+
},
|
|
10539
|
+
context_window: 1e6,
|
|
10540
|
+
prices: {
|
|
10541
|
+
input_mtok: {
|
|
10542
|
+
base: 3,
|
|
10543
|
+
tiers: [
|
|
10544
|
+
{
|
|
10545
|
+
start: 2e5,
|
|
10546
|
+
price: 6
|
|
10547
|
+
}
|
|
10548
|
+
]
|
|
10549
|
+
},
|
|
10550
|
+
cache_write_mtok: {
|
|
10551
|
+
base: 3.75,
|
|
10552
|
+
tiers: [
|
|
10553
|
+
{
|
|
10554
|
+
start: 2e5,
|
|
10555
|
+
price: 7.5
|
|
10556
|
+
}
|
|
10557
|
+
]
|
|
10558
|
+
},
|
|
10559
|
+
cache_read_mtok: {
|
|
10560
|
+
base: 0.3,
|
|
10561
|
+
tiers: [
|
|
10562
|
+
{
|
|
10563
|
+
start: 2e5,
|
|
10564
|
+
price: 0.6
|
|
10565
|
+
}
|
|
10566
|
+
]
|
|
10567
|
+
},
|
|
10568
|
+
output_mtok: {
|
|
10569
|
+
base: 15,
|
|
10570
|
+
tiers: [
|
|
10571
|
+
{
|
|
10572
|
+
start: 2e5,
|
|
10573
|
+
price: 22.5
|
|
10574
|
+
}
|
|
10575
|
+
]
|
|
10576
|
+
}
|
|
10577
|
+
}
|
|
10578
|
+
},
|
|
10951
10579
|
{
|
|
10952
10580
|
id: "anubis-pro-105b-v1",
|
|
10953
10581
|
name: "Anubis Pro 105B V1",
|
|
@@ -14599,6 +14227,17 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
14599
14227
|
output_mtok: 1.2
|
|
14600
14228
|
}
|
|
14601
14229
|
},
|
|
14230
|
+
{
|
|
14231
|
+
id: "moonshotai/kimi-k2.5",
|
|
14232
|
+
name: "Kimi K2.5",
|
|
14233
|
+
match: {
|
|
14234
|
+
equals: "moonshotai/kimi-k2.5"
|
|
14235
|
+
},
|
|
14236
|
+
prices: {
|
|
14237
|
+
input_mtok: 0.6,
|
|
14238
|
+
output_mtok: 3
|
|
14239
|
+
}
|
|
14240
|
+
},
|
|
14602
14241
|
{
|
|
14603
14242
|
id: "moonshotai/kimi-vl-a3b-thinking:free",
|
|
14604
14243
|
match: {
|
|
@@ -16025,6 +15664,17 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
16025
15664
|
},
|
|
16026
15665
|
prices: {}
|
|
16027
15666
|
},
|
|
15667
|
+
{
|
|
15668
|
+
id: "qwen/qwen3-max-thinking",
|
|
15669
|
+
name: "Qwen 3 Max Thinking",
|
|
15670
|
+
match: {
|
|
15671
|
+
equals: "qwen/qwen3-max-thinking"
|
|
15672
|
+
},
|
|
15673
|
+
prices: {
|
|
15674
|
+
input_mtok: 1.2,
|
|
15675
|
+
output_mtok: 6
|
|
15676
|
+
}
|
|
15677
|
+
},
|
|
16028
15678
|
{
|
|
16029
15679
|
id: "qwen/qwq-32b",
|
|
16030
15680
|
match: {
|
|
@@ -18312,6 +17962,51 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
18312
17962
|
output_mtok: 0.5
|
|
18313
17963
|
}
|
|
18314
17964
|
},
|
|
17965
|
+
{
|
|
17966
|
+
id: "grok-4-fast-non-reasoning",
|
|
17967
|
+
name: "Grok 4 Fast Non-Reasoning",
|
|
17968
|
+
description: "A frontier multimodal model optimized specifically for high-performance agentic tool calling.",
|
|
17969
|
+
match: {
|
|
17970
|
+
or: [
|
|
17971
|
+
{
|
|
17972
|
+
equals: "grok-4-fast-non-reasoning"
|
|
17973
|
+
},
|
|
17974
|
+
{
|
|
17975
|
+
equals: "grok-4-fast-non-reasoning-latest"
|
|
17976
|
+
}
|
|
17977
|
+
]
|
|
17978
|
+
},
|
|
17979
|
+
context_window: 2e6,
|
|
17980
|
+
prices: {
|
|
17981
|
+
input_mtok: 0.2,
|
|
17982
|
+
cache_read_mtok: 0.05,
|
|
17983
|
+
output_mtok: 0.5
|
|
17984
|
+
}
|
|
17985
|
+
},
|
|
17986
|
+
{
|
|
17987
|
+
id: "grok-4-fast-reasoning",
|
|
17988
|
+
name: "Grok 4 Fast Reasoning",
|
|
17989
|
+
description: "A frontier multimodal model optimized specifically for high-performance agentic tool calling.",
|
|
17990
|
+
match: {
|
|
17991
|
+
or: [
|
|
17992
|
+
{
|
|
17993
|
+
equals: "grok-4-fast"
|
|
17994
|
+
},
|
|
17995
|
+
{
|
|
17996
|
+
equals: "grok-4-fast-reasoning"
|
|
17997
|
+
},
|
|
17998
|
+
{
|
|
17999
|
+
equals: "grok-4-fast-reasoning-latest"
|
|
18000
|
+
}
|
|
18001
|
+
]
|
|
18002
|
+
},
|
|
18003
|
+
context_window: 2e6,
|
|
18004
|
+
prices: {
|
|
18005
|
+
input_mtok: 0.2,
|
|
18006
|
+
cache_read_mtok: 0.05,
|
|
18007
|
+
output_mtok: 0.5
|
|
18008
|
+
}
|
|
18009
|
+
},
|
|
18315
18010
|
{
|
|
18316
18011
|
id: "grok-code-fast-1",
|
|
18317
18012
|
name: "Grok Code Fast 1",
|
|
@@ -18339,41 +18034,41 @@ Compared to other leading proprietary and open-weights models Command A delivers
|
|
|
18339
18034
|
]
|
|
18340
18035
|
}
|
|
18341
18036
|
];
|
|
18342
|
-
function
|
|
18343
|
-
if (
|
|
18037
|
+
function Ye(i, o, u) {
|
|
18038
|
+
if (o <= 0) return 0;
|
|
18344
18039
|
let s = i.base;
|
|
18345
18040
|
for (const r of i.tiers)
|
|
18346
18041
|
u > r.start && (s = r.price);
|
|
18347
|
-
return s *
|
|
18042
|
+
return s * o / 1e6;
|
|
18348
18043
|
}
|
|
18349
|
-
function R(i,
|
|
18350
|
-
return i === void 0 ||
|
|
18044
|
+
function R(i, o, u, s) {
|
|
18045
|
+
return i === void 0 || o === void 0 ? 0 : typeof i == "number" ? i * o / 1e6 : Ye(i, o, s);
|
|
18351
18046
|
}
|
|
18352
|
-
function
|
|
18047
|
+
function Je(i, o) {
|
|
18353
18048
|
let u = 0, s = 0;
|
|
18354
|
-
const r = i.input_tokens ?? 0,
|
|
18355
|
-
let
|
|
18356
|
-
if (
|
|
18049
|
+
const r = i.input_tokens ?? 0, _ = i.cache_read_tokens ?? 0, h = i.cache_write_tokens ?? 0, k = i.cache_audio_read_tokens ?? 0, q = i.output_audio_tokens ?? 0;
|
|
18050
|
+
let y = i.input_audio_tokens ?? 0;
|
|
18051
|
+
if (y -= k, y < 0)
|
|
18357
18052
|
throw new Error("cache_audio_read_tokens cannot be greater than input_audio_tokens");
|
|
18358
18053
|
let B = i.input_tokens ?? 0;
|
|
18359
|
-
if (B -=
|
|
18054
|
+
if (B -= _, B -= h, B -= y, B < 0)
|
|
18360
18055
|
throw new Error("Uncached text input tokens cannot be negative");
|
|
18361
|
-
let
|
|
18362
|
-
if (
|
|
18056
|
+
let I = _;
|
|
18057
|
+
if (I -= k, I < 0)
|
|
18363
18058
|
throw new Error("cache_audio_read_tokens cannot be greater than cache_read_tokens");
|
|
18364
|
-
u += R(
|
|
18365
|
-
let
|
|
18366
|
-
if (
|
|
18059
|
+
u += R(o.input_mtok, B, "input_mtok", r), u += R(o.cache_read_mtok, I, "cache_read_mtok", r), u += R(o.cache_write_mtok, h, "cache_write_mtok", r), u += R(o.input_audio_mtok, y, "input_audio_mtok", r), u += R(o.cache_audio_read_mtok, k, "cache_audio_read_mtok", r);
|
|
18060
|
+
let L = i.output_tokens ?? 0;
|
|
18061
|
+
if (L -= q, L < 0)
|
|
18367
18062
|
throw new Error("output_audio_tokens cannot be greater than output_tokens");
|
|
18368
|
-
s += R(
|
|
18063
|
+
s += R(o.output_mtok, L, "output_mtok", r), s += R(o.output_audio_mtok, i.output_audio_tokens, "output_audio_mtok", r);
|
|
18369
18064
|
let G = u + s;
|
|
18370
|
-
return
|
|
18065
|
+
return o.requests_kcount !== void 0 && (G += o.requests_kcount / 1e3), {
|
|
18371
18066
|
input_price: u,
|
|
18372
18067
|
output_price: s,
|
|
18373
18068
|
total_price: G
|
|
18374
18069
|
};
|
|
18375
18070
|
}
|
|
18376
|
-
function
|
|
18071
|
+
function Ze(i, o) {
|
|
18377
18072
|
if (!Array.isArray(i.prices))
|
|
18378
18073
|
return i.prices;
|
|
18379
18074
|
for (let u = i.prices.length - 1; u >= 0; u--) {
|
|
@@ -18381,54 +18076,74 @@ function Ue(i, n) {
|
|
|
18381
18076
|
if (r === void 0)
|
|
18382
18077
|
return s.prices;
|
|
18383
18078
|
if (r.type === "start_date") {
|
|
18384
|
-
if (
|
|
18079
|
+
if (o >= new Date(r.start_date))
|
|
18385
18080
|
return s.prices;
|
|
18386
18081
|
} else {
|
|
18387
|
-
const
|
|
18388
|
-
if (
|
|
18389
|
-
if (
|
|
18082
|
+
const _ = o.toISOString().slice(11, 19), h = r.start_time, k = r.end_time;
|
|
18083
|
+
if (k < h) {
|
|
18084
|
+
if (_ >= h || _ < k)
|
|
18390
18085
|
return s.prices;
|
|
18391
|
-
} else if (
|
|
18086
|
+
} else if (_ >= h && _ < k)
|
|
18392
18087
|
return s.prices;
|
|
18393
18088
|
}
|
|
18394
18089
|
}
|
|
18395
18090
|
return i.prices[0].prices;
|
|
18396
18091
|
}
|
|
18397
|
-
function
|
|
18398
|
-
return "or" in i ? i.or.some((u) =>
|
|
18092
|
+
function E(i, o) {
|
|
18093
|
+
return "or" in i ? i.or.some((u) => E(u, o)) : "and" in i ? i.and.every((u) => E(u, o)) : "equals" in i ? o === i.equals : "starts_with" in i ? o.startsWith(i.starts_with) : "ends_with" in i ? o.endsWith(i.ends_with) : "contains" in i ? o.includes(i.contains) : "regex" in i ? new RegExp(i.regex).test(o) : !1;
|
|
18399
18094
|
}
|
|
18400
|
-
function
|
|
18401
|
-
const u =
|
|
18402
|
-
return s || i.find((r) => r.provider_match &&
|
|
18095
|
+
function Xe(i, o) {
|
|
18096
|
+
const u = o.toLowerCase().trim(), s = i.find((r) => r.id === u);
|
|
18097
|
+
return s || i.find((r) => r.provider_match && E(r.provider_match, u));
|
|
18403
18098
|
}
|
|
18404
|
-
function
|
|
18405
|
-
if (s)
|
|
18406
|
-
|
|
18099
|
+
function he(i, { modelId: o, providerApiUrl: u, providerId: s }) {
|
|
18100
|
+
if (s) {
|
|
18101
|
+
const r = Xe(i, s);
|
|
18102
|
+
if (r || s.toLowerCase() !== "litellm")
|
|
18103
|
+
return r;
|
|
18104
|
+
}
|
|
18407
18105
|
if (u)
|
|
18408
18106
|
return i.find((r) => new RegExp(r.api_pattern).test(u));
|
|
18409
|
-
if (
|
|
18410
|
-
return i.find((r) => r.model_match &&
|
|
18107
|
+
if (o)
|
|
18108
|
+
return i.find((r) => r.model_match && E(r.model_match, o));
|
|
18411
18109
|
}
|
|
18412
|
-
function
|
|
18413
|
-
return i.find((u) =>
|
|
18110
|
+
function et(i, o) {
|
|
18111
|
+
return i.find((u) => E(u.match, o));
|
|
18414
18112
|
}
|
|
18415
|
-
|
|
18416
|
-
|
|
18417
|
-
|
|
18418
|
-
|
|
18419
|
-
|
|
18420
|
-
|
|
18113
|
+
function qe(i, o, u) {
|
|
18114
|
+
const s = et(i.models, o);
|
|
18115
|
+
if (s) return s;
|
|
18116
|
+
if (i.fallback_model_providers && u)
|
|
18117
|
+
for (const r of i.fallback_model_providers) {
|
|
18118
|
+
const _ = u.find((h) => h.id === r);
|
|
18119
|
+
if (_) {
|
|
18120
|
+
const h = qe(_, o);
|
|
18121
|
+
if (h) return h;
|
|
18122
|
+
}
|
|
18123
|
+
}
|
|
18124
|
+
}
|
|
18125
|
+
let ae = oe;
|
|
18126
|
+
Promise.resolve(oe);
|
|
18127
|
+
function tt(i, o, u) {
|
|
18128
|
+
let s = o.toLowerCase().trim(), r = u?.providerId;
|
|
18129
|
+
if (r && r.toLowerCase() === "litellm" && s.includes("/")) {
|
|
18130
|
+
const B = s.indexOf("/"), I = s.slice(0, B), L = s.slice(B + 1);
|
|
18131
|
+
I && L && he(ae, { providerId: I }) && (r = I, s = L);
|
|
18132
|
+
}
|
|
18133
|
+
const _ = u?.provider ?? he(ae, { modelId: s, providerApiUrl: u?.providerApiUrl, providerId: r });
|
|
18134
|
+
if (!_) return null;
|
|
18135
|
+
const h = qe(_, s, ae);
|
|
18421
18136
|
if (!h) return null;
|
|
18422
|
-
const k = u?.timestamp ?? /* @__PURE__ */ new Date(),
|
|
18137
|
+
const k = u?.timestamp ?? /* @__PURE__ */ new Date(), q = Ze(h, k), y = Je(i, q);
|
|
18423
18138
|
return {
|
|
18424
18139
|
auto_update_timestamp: void 0,
|
|
18425
18140
|
model: h,
|
|
18426
|
-
model_price:
|
|
18427
|
-
provider:
|
|
18428
|
-
...
|
|
18141
|
+
model_price: q,
|
|
18142
|
+
provider: _,
|
|
18143
|
+
...y
|
|
18429
18144
|
};
|
|
18430
18145
|
}
|
|
18431
|
-
const f =
|
|
18146
|
+
const f = _e(ze(process.argv)).scriptName("genai-prices").command(
|
|
18432
18147
|
"list [provider]",
|
|
18433
18148
|
"List providers and models",
|
|
18434
18149
|
(i) => i.positional("provider", { describe: "Provider ID to filter", type: "string" })
|
|
@@ -18437,9 +18152,9 @@ const f = de(Ge(process.argv)).scriptName("genai-prices").command(
|
|
|
18437
18152
|
"Calculate price",
|
|
18438
18153
|
(i) => i.positional("model", { array: !0, describe: "Model(s) (optionally provider:model)", type: "string" }).option("input-tokens", { type: "number" }).option("cache-write-tokens", { type: "number" }).option("cache-read-tokens", { type: "number" }).option("output-tokens", { type: "number" }).option("input-audio-tokens", { type: "number" }).option("cache-audio-read-tokens", { type: "number" }).option("output-audio-tokens", { type: "number" }).option("requests", { type: "number" }).option("provider", { type: "string" }).option("auto-update", { default: !1, type: "boolean" }).option("timestamp", { describe: "RFC3339 timestamp", type: "string" })
|
|
18439
18154
|
).option("auto-update", { describe: "Enable auto-update from GitHub", type: "boolean" }).option("input-tokens", { type: "number" }).option("cache-write-tokens", { type: "number" }).option("cache-read-tokens", { type: "number" }).option("output-tokens", { type: "number" }).option("input-audio-tokens", { type: "number" }).option("cache-audio-read-tokens", { type: "number" }).option("output-audio-tokens", { type: "number" }).option("requests", { type: "number" }).option("provider", { type: "string" }).option("timestamp", { describe: "RFC3339 timestamp", type: "string" }).version("0.1.0").help().parseSync();
|
|
18440
|
-
function
|
|
18155
|
+
function at() {
|
|
18441
18156
|
if (f._[0] === "list") {
|
|
18442
|
-
const u =
|
|
18157
|
+
const u = oe;
|
|
18443
18158
|
if (f.provider) {
|
|
18444
18159
|
const s = u.find((r) => r.id === f.provider);
|
|
18445
18160
|
s || (console.error(`Provider ${f.provider} not found.`), process.exit(1)), console.log(`${s.name}: (${s.models.length} models)`);
|
|
@@ -18453,8 +18168,8 @@ function tt() {
|
|
|
18453
18168
|
}
|
|
18454
18169
|
process.exit(0);
|
|
18455
18170
|
}
|
|
18456
|
-
const
|
|
18457
|
-
if (
|
|
18171
|
+
const o = f._[0] === "calc" ? Array.isArray(f.model) ? f.model : [f.model] : f._.filter((u) => typeof u == "string");
|
|
18172
|
+
if (o.length > 0) {
|
|
18458
18173
|
const u = {
|
|
18459
18174
|
cache_audio_read_tokens: f["cache-audio-read-tokens"] !== void 0 ? Number(f["cache-audio-read-tokens"]) : void 0,
|
|
18460
18175
|
cache_read_tokens: f["cache-read-tokens"] !== void 0 ? Number(f["cache-read-tokens"]) : void 0,
|
|
@@ -18466,33 +18181,33 @@ function tt() {
|
|
|
18466
18181
|
requests: f.requests !== void 0 ? Number(f.requests) : void 0
|
|
18467
18182
|
}, s = f.timestamp ? new Date(String(f.timestamp)) : void 0;
|
|
18468
18183
|
let r = !1;
|
|
18469
|
-
for (const
|
|
18470
|
-
let
|
|
18471
|
-
|
|
18184
|
+
for (const _ of o) {
|
|
18185
|
+
let h, k = _;
|
|
18186
|
+
k.includes(":") && ([h, k] = k.split(":", 2));
|
|
18472
18187
|
try {
|
|
18473
|
-
const q =
|
|
18188
|
+
const q = tt(u, k, { providerId: h, timestamp: s });
|
|
18474
18189
|
if (!q) {
|
|
18475
|
-
r = !0, console.error(`No price found for model ${
|
|
18190
|
+
r = !0, console.error(`No price found for model ${_}`);
|
|
18476
18191
|
continue;
|
|
18477
18192
|
}
|
|
18478
|
-
const
|
|
18193
|
+
const y = q.model.context_window, B = [
|
|
18479
18194
|
["Provider", q.provider.name],
|
|
18480
18195
|
["Model", q.model.name ?? q.model.id],
|
|
18481
18196
|
["Model Prices", JSON.stringify(q.model_price)],
|
|
18482
|
-
["Context Window",
|
|
18197
|
+
["Context Window", y !== void 0 ? y.toLocaleString() : void 0],
|
|
18483
18198
|
["Total Price", `$${q.total_price}`],
|
|
18484
18199
|
["Input Price", `$${q.input_price}`],
|
|
18485
18200
|
["Output Price", `$${q.output_price}`]
|
|
18486
18201
|
];
|
|
18487
|
-
for (const [
|
|
18488
|
-
|
|
18202
|
+
for (const [I, L] of B)
|
|
18203
|
+
L !== void 0 && console.log(`${I.padStart(14)}: ${L}`);
|
|
18489
18204
|
console.log("");
|
|
18490
18205
|
} catch (q) {
|
|
18491
|
-
r = !0, q instanceof Error && console.error(`Error for model ${
|
|
18206
|
+
r = !0, q instanceof Error && console.error(`Error for model ${_}:`, q.message);
|
|
18492
18207
|
}
|
|
18493
18208
|
}
|
|
18494
18209
|
process.exit(r ? 1 : 0);
|
|
18495
18210
|
}
|
|
18496
|
-
|
|
18211
|
+
_e().showHelp(), process.exit(1);
|
|
18497
18212
|
}
|
|
18498
|
-
|
|
18213
|
+
at();
|