@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/dist/cli.js CHANGED
@@ -1,21 +1,21 @@
1
1
  #!/usr/bin/env node
2
- import de from "yargs";
3
- import { format as _e } from "util";
4
- import { resolve as ae, normalize as Le } from "path";
5
- import { readFileSync as he, writeFile as Me, statSync as Qe } from "fs";
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 Ae } from "url";
8
- function Pe() {
9
- return Te() ? 0 : 1;
7
+ import { fileURLToPath as Se } from "url";
8
+ function Ge() {
9
+ return Ce() ? 0 : 1;
10
10
  }
11
- function Te() {
12
- return Se() && !process.defaultApp;
11
+ function Ce() {
12
+ return Re() && !process.defaultApp;
13
13
  }
14
- function Se() {
14
+ function Re() {
15
15
  return !!process.versions.electron;
16
16
  }
17
- function Ge(i) {
18
- return i.slice(Pe() + 1);
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 h = r ? r[0].length : 0; h < i.length; h++) {
32
- let k = i.charAt(h);
33
- s && (s = !1, k = k.toUpperCase()), h !== 0 && (k === "-" || k === "_") ? s = !0 : k !== "-" && k !== "_" && (u += k);
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 Ce(i, n) {
38
+ function Ne(i, o) {
39
39
  const u = i.toLowerCase();
40
- n = n || "-";
40
+ o = o || "-";
41
41
  let s = "";
42
42
  for (let r = 0; r < i.length; r++) {
43
- const h = u.charAt(r), k = i.charAt(r);
44
- h !== k && r > 0 ? s += `${n}${u.charAt(r)}` : s += k;
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 Re(i) {
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 ze(i) {
56
+ function De(i) {
57
57
  if (Array.isArray(i))
58
- return i.map((k) => typeof k != "string" ? k + "" : k);
58
+ return i.map((h) => typeof h != "string" ? h + "" : h);
59
59
  i = i.trim();
60
- let n = 0, u = null, s = null, r = null;
61
- const h = [];
62
- for (let k = 0; k < i.length; k++) {
63
- if (u = s, s = i.charAt(k), s === " " && !r) {
64
- u !== " " && n++;
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), h[n] || (h[n] = ""), h[n] += s;
67
+ s === r ? r = null : (s === "'" || s === '"') && !r && (r = s), _[o] || (_[o] = ""), _[o] += s;
68
68
  }
69
- return h;
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 L;
76
+ var A;
77
77
  (function(i) {
78
78
  i.BOOLEAN = "boolean", i.STRING = "string", i.NUMBER = "number", i.ARRAY = "array";
79
- })(L || (L = {}));
79
+ })(A || (A = {}));
80
80
  /**
81
81
  * @license
82
82
  * Copyright (c) 2016, Contributors
83
83
  * SPDX-License-Identifier: ISC
84
84
  */
85
- let T;
86
- class Ne {
87
- constructor(n) {
88
- T = n;
85
+ let S;
86
+ class Ee {
87
+ constructor(o) {
88
+ S = o;
89
89
  }
90
- parse(n, u) {
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 = ze(n), h = typeof n == "string", k = Oe(Object.assign(/* @__PURE__ */ Object.create(null), s.alias)), _ = Object.assign({
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), M = s.configObjects || [], B = s.envPrefix, S = _["populate--"], A = S ? "--" : "_", G = /* @__PURE__ */ Object.create(null), oe = /* @__PURE__ */ Object.create(null), C = s.__ || T.format, m = {
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
- }, Q = /^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/, W = new RegExp("^--" + _["negation-prefix"] + "(.+)");
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(o) {
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
- }[o];
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
- })), be(s.key, k, s.default, m.arrays), Object.keys(q).forEach(function(e) {
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 I = null;
173
- ye();
172
+ let M = null;
173
+ Qe();
174
174
  let j = [];
175
- const w = Object.assign(/* @__PURE__ */ Object.create(null), { _: [] }), ne = {};
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 o, t, l, p, d, v;
179
- if (a !== "--" && /^-/.test(a) && K(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(/^--.+=/) || !_["short-option-groups"] && 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) && _["boolean-negation"])
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(/^--.+/) || !_["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(Q)) && !g(t, m.bools) && !g(t, m.counts) || /^(true|false)$/.test(d) ? (b(t, d), e++) : b(t, z(t))));
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(Q))
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(Q)) {
195
- l = a.slice(1, -1).split(""), o = !1;
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), o = !0;
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), o = !0;
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), o = !0;
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], !o && 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(Q)) && !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(Q) && g(a.slice(1), m.bools))
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 (_["halt-at-non-option"]) {
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
- re(w, !0), re(w, !1), ke(w), ge(), me(w, m.aliases, q, !0), qe(w), _["set-placeholder-key"] && fe(w), Object.keys(m.counts).forEach(function(e) {
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
- }), S && j.length && (w[A] = []), j.forEach(function(e) {
230
- w[A].push(e);
231
- }), _["camel-case-expansion"] && _["strip-dashed"] && Object.keys(w).filter((e) => e !== "--" && e.includes("-")).forEach((e) => {
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
- }), _["strip-aliased"] && [].concat(...Object.keys(k).map((e) => k[e])).forEach((e) => {
234
- _["camel-case-expansion"] && e.includes("-") && delete w[e.split(".").map((a) => $(a)).join(".")], delete w[e];
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 = H("_", e);
237
+ const a = K("_", e);
238
238
  (typeof a == "string" || typeof a == "number") && w._.push(a);
239
239
  }
240
- function V(e, a, c, o) {
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 P(o) || (I = Error(C("Argument unexpected for: %s", a))), b(a, z(a)), e;
244
- let p = P(o) ? 0 : 1;
245
- if (_["nargs-eats-options"])
246
- c.length - (e + 1) + p < l && (I = Error(C("Not enough arguments following: %s", a))), 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(Q) || K(c[t])); t++)
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 && (I = Error(C("Not enough arguments following: %s", a)));
250
+ p < l && (M = Error(C("Not enough arguments following: %s", a)));
251
251
  }
252
252
  let d = Math.min(p, l);
253
- for (!P(o) && d > 0 && (b(a, o), d--), t = e + 1; t < d + e + 1; t++)
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, o) {
258
- let t = [], l = o || c[e + 1];
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 (P(l) || P(o) && /^-/.test(l) && !Q.test(l) && !K(l)) {
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
- P(o) || t.push(Y(a, o, !0));
269
- for (let d = e + 1; d < c.length && !(!_["greedy-arrays"] && t.length > 0 || p && typeof p == "number" && t.length >= p || (l = c[d], /^-/.test(l) && !Q.test(l) && !K(l))); d++)
270
- e = d, t.push(Y(a, l, h));
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) && (I = Error(C("Not enough arguments following: %s", a))), b(a, t), e;
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 = h) {
275
- if (/-/.test(e) && _["camel-case-expansion"]) {
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
- se(e, l);
279
+ re(e, l);
280
280
  }
281
- const o = Y(e, a, c), t = e.split(".");
282
- O(w, t, o), m.aliases[e] && m.aliases[e].forEach(function(l) {
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, o);
285
- }), t.length > 1 && _["dot-notation"] && (m.aliases[t[0]] || []).forEach(function(l) {
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, o);
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(ne, p, {
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" ? T.normalize(d) : d;
296
+ a = typeof d == "string" ? S.normalize(d) : d;
297
297
  }
298
298
  });
299
299
  });
300
300
  }
301
- function se(e, a) {
302
- m.aliases[e] && m.aliases[e].length || (m.aliases[e] = [a], G[a] = !0), m.aliases[a] && m.aliases[a].length || se(a, e);
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 = Ee(a)), (g(e, m.bools) || g(e, m.counts)) && typeof a == "string" && (a = a === "true");
306
- let o = Array.isArray(a) ? a.map(function(t) {
307
- return H(e, t);
308
- }) : H(e, a);
309
- return g(e, m.counts) && (P(o) || typeof o == "boolean") && (o = Z()), g(e, m.normalize) && g(e, m.arrays) && (Array.isArray(a) ? o = a.map((t) => T.normalize(t)) : o = T.normalize(a)), o;
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 H(e, a) {
312
- return !_["parse-positional-numbers"] && e === "_" || !g(e, m.strings) && !g(e, m.bools) && !Array.isArray(a) && (Re(a) && _["parse-numbers"] && Number.isSafeInteger(Math.floor(parseFloat(`${a}`))) || !P(a) && g(e, m.numbers)) && (a = Number(a)), a;
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 ke(e) {
314
+ function fe(e) {
315
315
  const a = /* @__PURE__ */ Object.create(null);
316
- me(a, m.aliases, q), Object.keys(m.configs).forEach(function(c) {
317
- const o = e[c] || a[c];
318
- if (o)
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 = T.resolve(T.cwd(), o), p = m.configs[c];
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
- I = t;
329
+ M = t;
330
330
  return;
331
331
  }
332
332
  } else
333
- t = T.require(l);
333
+ t = S.require(l);
334
334
  J(t);
335
335
  } catch (t) {
336
- t.name === "PermissionDenied" ? I = t : e[c] && (I = Error(C("Invalid JSON config file: %s", o)));
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 o = e[c], t = a ? a + "." + c : c;
343
- typeof o == "object" && o !== null && !Array.isArray(o) && _["dot-notation"] ? J(o, t) : (!N(w, t.split(".")) || g(t, m.arrays) && _["combine-arrays"]) && b(t, o);
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 ge() {
347
- typeof M < "u" && M.forEach(function(e) {
346
+ function be() {
347
+ typeof y < "u" && y.forEach(function(e) {
348
348
  J(e);
349
349
  });
350
350
  }
351
- function re(e, a) {
351
+ function me(e, a) {
352
352
  if (typeof B > "u")
353
353
  return;
354
- const c = typeof B == "string" ? B : "", o = T.env();
355
- Object.keys(o).forEach(function(t) {
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("."), o[t]);
360
+ (a && m.configs[l.join(".")] || !a) && !N(e, l) && b(l.join("."), n[t]);
361
361
  }
362
362
  });
363
363
  }
364
- function qe(e) {
364
+ function we(e) {
365
365
  let a;
366
366
  const c = /* @__PURE__ */ new Set();
367
- Object.keys(e).forEach(function(o) {
368
- if (!c.has(o) && (a = g(o, m.coercions), typeof a == "function"))
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 = H(o, a(e[o]));
371
- [].concat(m.aliases[o] || [], o).forEach((l) => {
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
- I = t;
375
+ M = t;
376
376
  }
377
377
  });
378
378
  }
379
- function fe(e) {
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 me(e, a, c, o = !1) {
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]), o && (oe[t] = !0), (a[t] || []).forEach(function(l) {
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
- _["dot-notation"] || (a = [a.join(".")]), a.slice(0, -1).forEach(function(t) {
393
+ k["dot-notation"] || (a = [a.join(".")]), a.slice(0, -1).forEach(function(t) {
394
394
  c = c[t] || {};
395
395
  });
396
- const o = a[a.length - 1];
397
- return typeof c != "object" ? !1 : o in c;
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 o = e;
401
- _["dot-notation"] || (a = [a.join(".")]), a.slice(0, -1).forEach(function(v) {
402
- v = ce(v), typeof o == "object" && o[v] === void 0 && (o[v] = {}), typeof o[v] != "object" || Array.isArray(o[v]) ? (Array.isArray(o[v]) ? o[v].push({}) : o[v] = [o[v], {}], o = o[v][o[v].length - 1]) : o = o[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 = ce(a[a.length - 1]), l = g(a.join("."), m.arrays), p = Array.isArray(c);
405
- let d = _["duplicate-arguments-array"];
406
- !d && g(t, m.nargs) && (d = !0, (!P(o[t]) && m.nargs[t] === 1 || Array.isArray(o[t]) && o[t].length === m.nargs[t]) && (o[t] = void 0)), c === Z() ? o[t] = Z(o[t]) : Array.isArray(o[t]) ? d && l && p ? o[t] = _["flatten-duplicate-arrays"] ? o[t].concat(c) : (Array.isArray(o[t][0]) ? o[t] : [o[t]]).concat([c]) : !d && !!l == !!p ? o[t] = c : o[t] = o[t].concat([c]) : o[t] === void 0 && l ? o[t] = p ? c : [c] : d && !(o[t] === void 0 || g(t, m.counts) || g(t, m.bools)) ? o[t] = [o[t], c] : o[t] = c;
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 be(...e) {
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(k[c] || []), m.aliases[c].concat(c).forEach(function(o) {
412
- if (/-/.test(o) && _["camel-case-expansion"]) {
413
- const t = $(o);
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(o) {
417
- if (o.length > 1 && /[A-Z]/.test(o) && _["camel-case-expansion"]) {
418
- const t = Ce(o, "-");
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(o) {
422
- m.aliases[o] = [c].concat(m.aliases[c].filter(function(t) {
423
- return o !== t;
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), o = Object.keys(a), t = c.find((l) => o.includes(l));
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 ue(e) {
433
+ function ce(e) {
434
434
  const a = Object.keys(m);
435
- return [].concat(a.map((o) => m[o])).some(function(o) {
436
- return Array.isArray(o) ? o.includes(e) : o[e];
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 we(e, ...a) {
440
- return [].concat(...a).some(function(o) {
441
- const t = e.match(o);
442
- return t && ue(t[1]);
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 ve(e) {
446
- if (e.match(Q) || !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 o = e.slice(1).split("");
450
- for (let t = 0; t < o.length; t++) {
451
- if (c = e.slice(t + 2), !ue(o[t])) {
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 (o[t + 1] && o[t + 1] === "=" || c === "-" || /[A-Za-z]/.test(o[t]) && /^-?\d+(\.\d*)?(e-?\d+)?$/.test(c) || o[t + 1] && o[t + 1].match(/\W/))
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 K(e) {
461
- return _["unknown-options-as-args"] && xe(e);
460
+ function H(e) {
461
+ return k["unknown-options-as-args"] && Ie(e);
462
462
  }
463
- function xe(e) {
464
- return e = e.replace(/^-{3,}/, "--"), e.match(Q) || ve(e) ? !1 : !we(e, /^-+([^=]+?)=[\s\S]*$/, W, /^-+([^=]+?)$/, /^-+([^=]+?)-$/, /^-+([^=]+?\d+)$/, /^-+([^=]+?)\W+.*$/);
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] : Be(Ie(e));
467
+ return !g(e, m.bools) && !g(e, m.counts) && `${e}` in q ? q[e] : Le(Me(e));
468
468
  }
469
- function Be(e) {
469
+ function Le(e) {
470
470
  return {
471
- [L.BOOLEAN]: !0,
472
- [L.STRING]: "",
473
- [L.NUMBER]: void 0,
474
- [L.ARRAY]: []
471
+ [A.BOOLEAN]: !0,
472
+ [A.STRING]: "",
473
+ [A.NUMBER]: void 0,
474
+ [A.ARRAY]: []
475
475
  }[e];
476
476
  }
477
- function Ie(e) {
478
- let a = L.BOOLEAN;
479
- return g(e, m.strings) ? a = L.STRING : g(e, m.numbers) ? a = L.NUMBER : g(e, m.bools) ? a = L.BOOLEAN : g(e, m.arrays) && (a = L.ARRAY), 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 P(e) {
481
+ function T(e) {
482
482
  return e === void 0;
483
483
  }
484
- function ye() {
485
- Object.keys(m.counts).find((e) => g(e, m.arrays) ? (I = Error(C("Invalid configuration: %s, opts.count excludes opts.array.", e)), !0) : g(e, m.nargs) ? (I = Error(C("Invalid configuration: %s, opts.count excludes opts.narg.", e)), !0) : !1);
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(ne, w),
490
- configuration: _,
491
- defaulted: Object.assign({}, oe),
492
- error: I,
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 Oe(i) {
498
- const n = [], u = /* @__PURE__ */ Object.create(null);
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
- n.push([].concat(i[r], r));
501
+ o.push([].concat(i[r], r));
502
502
  }); s; ) {
503
503
  s = !1;
504
- for (let r = 0; r < n.length; r++)
505
- for (let h = r + 1; h < n.length; h++)
506
- if (n[r].filter(function(_) {
507
- return n[h].indexOf(_) !== -1;
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
- n[r] = n[r].concat(n[h]), n.splice(h, 1), s = !0;
509
+ o[r] = o[r].concat(o[_]), o.splice(_, 1), s = !0;
510
510
  break;
511
511
  }
512
512
  }
513
- return n.forEach(function(r) {
514
- r = r.filter(function(k, _, q) {
515
- return q.indexOf(k) === _;
513
+ return o.forEach(function(r) {
514
+ r = r.filter(function(h, k, q) {
515
+ return q.indexOf(h) === k;
516
516
  });
517
- const h = r.pop();
518
- h !== void 0 && typeof h == "string" && (u[h] = r);
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 ce(i) {
524
+ function pe(i) {
525
525
  return i === "__proto__" ? "___proto___" : i;
526
526
  }
527
- function Ee(i) {
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 pe = process && process.env && process.env.YARGS_MIN_NODE_VERSION ? Number(process.env.YARGS_MIN_NODE_VERSION) : 12, le = (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 (le && Number(le.match(/^([^.]+)/)[1]) < pe)
541
- throw Error(`yargs parser supports a minimum Node.js version of ${pe}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`);
542
- const De = process ? process.env : {};
543
- new Ne({
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: () => De,
546
- format: _e,
547
- normalize: Le,
548
- resolve: ae,
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(he(i, "utf8"));
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 je = {
559
+ const Ke = {
560
560
  fs: {
561
- readFileSync: he,
562
- writeFile: Me
561
+ readFileSync: ge,
562
+ writeFile: Pe
563
563
  },
564
- format: _e,
565
- resolve: ae,
564
+ format: ke,
565
+ resolve: ie,
566
566
  exists: (i) => {
567
567
  try {
568
- return Qe(i).isFile();
568
+ return Te(i).isFile();
569
569
  } catch {
570
570
  return !1;
571
571
  }
572
572
  }
573
573
  };
574
- let y;
575
- class Ve {
576
- constructor(n) {
577
- n = n || {}, this.directory = n.directory || "./locales", this.updateFiles = typeof n.updateFiles == "boolean" ? n.updateFiles : !0, this.locale = n.locale || "en", this.fallbackToLanguage = typeof n.fallbackToLanguage == "boolean" ? n.fallbackToLanguage : !0, this.cache = /* @__PURE__ */ Object.create(null), this.writeQueue = [];
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
- __(...n) {
579
+ __(...o) {
580
580
  if (typeof arguments[0] != "string")
581
581
  return this._taggedLiteral(arguments[0], ...arguments);
582
- const u = n.shift();
582
+ const u = o.shift();
583
583
  let s = function() {
584
584
  };
585
- return typeof n[n.length - 1] == "function" && (s = n.pop()), s = s || function() {
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(), y.format.apply(y.format, [this.cache[this.locale][u] || u].concat(n));
590
+ })) : s(), Q.format.apply(Q.format, [this.cache[this.locale][u] || u].concat(o));
591
591
  }
592
592
  __n() {
593
- const n = Array.prototype.slice.call(arguments), u = n.shift(), s = n.shift(), r = n.shift();
594
- let h = function() {
593
+ const o = Array.prototype.slice.call(arguments), u = o.shift(), s = o.shift(), r = o.shift();
594
+ let _ = function() {
595
595
  };
596
- typeof n[n.length - 1] == "function" && (h = n.pop()), this.cache[this.locale] || this._readLocaleFile();
597
- let k = r === 1 ? u : s;
598
- this.cache[this.locale][u] && (k = this.cache[this.locale][u][r === 1 ? "one" : "other"]), !this.cache[this.locale][u] && this.updateFiles ? (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: h
605
- })) : h();
606
- const _ = [k];
607
- return ~k.indexOf("%d") && _.push(r), y.format.apply(y.format, _.concat(n));
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(n) {
610
- this.locale = n;
609
+ setLocale(o) {
610
+ this.locale = o;
611
611
  }
612
612
  getLocale() {
613
613
  return this.locale;
614
614
  }
615
- updateLocale(n) {
615
+ updateLocale(o) {
616
616
  this.cache[this.locale] || this._readLocaleFile();
617
- for (const u in n)
618
- Object.prototype.hasOwnProperty.call(n, u) && (this.cache[this.locale][u] = n[u]);
617
+ for (const u in o)
618
+ Object.prototype.hasOwnProperty.call(o, u) && (this.cache[this.locale][u] = o[u]);
619
619
  }
620
- _taggedLiteral(n, ...u) {
620
+ _taggedLiteral(o, ...u) {
621
621
  let s = "";
622
- return n.forEach(function(r, h) {
623
- const k = u[h + 1];
624
- s += r, typeof k < "u" && (s += "%s");
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(n) {
628
- this.writeQueue.push(n), this.writeQueue.length === 1 && this._processWriteQueue();
627
+ _enqueueWrite(o) {
628
+ this.writeQueue.push(o), this.writeQueue.length === 1 && this._processWriteQueue();
629
629
  }
630
630
  _processWriteQueue() {
631
- const n = this, u = this.writeQueue[0], s = u.directory, r = u.locale, h = u.cb, k = this._resolveLocaleFile(s, r), _ = JSON.stringify(this.cache[r], null, 2);
632
- y.fs.writeFile(k, _, "utf-8", function(q) {
633
- n.writeQueue.shift(), n.writeQueue.length > 0 && n._processWriteQueue(), h(q);
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 n = {};
637
+ let o = {};
638
638
  const u = this._resolveLocaleFile(this.directory, this.locale);
639
639
  try {
640
- y.fs.readFileSync && (n = JSON.parse(y.fs.readFileSync(u, "utf-8")));
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
- n = {};
643
+ o = {};
644
644
  else
645
645
  throw s;
646
646
  }
647
- this.cache[this.locale] = n;
647
+ this.cache[this.locale] = o;
648
648
  }
649
- _resolveLocaleFile(n, u) {
650
- let s = y.resolve(n, "./", u + ".json");
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 = y.resolve(n, "./", u.split("_")[0] + ".json");
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(n) {
658
- return y.exists(n);
657
+ _fileExistsSync(o) {
658
+ return Q.exists(o);
659
659
  }
660
660
  }
661
- function Fe(i, n) {
662
- y = n;
663
- const u = new Ve(i);
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 He = (i) => Fe(i, je);
674
- let E;
673
+ const We = (i) => $e(i, Ke);
674
+ let D;
675
675
  try {
676
- E = Ae(import.meta.url);
676
+ D = Se(import.meta.url);
677
677
  } catch {
678
- E = process.cwd();
678
+ D = process.cwd();
679
679
  }
680
- const Ke = E.substring(0, E.lastIndexOf("node_modules"));
681
- Ke || process.cwd(), process.cwd, process.exit, process.nextTick, typeof process.stdout.columns < "u" && process.stdout.columns, He({
682
- directory: ae(E, "../../../locales"),
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 ie = [
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: "gpt-4o-mini-0718"
2104
+ equals: "text-embedding-ada-002"
2503
2105
  },
2504
2106
  {
2505
- starts_with: "gpt-4o-mini-audio"
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.6,
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: "gpt-5",
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: "gpt-5"
2120
+ equals: "babbage"
2554
2121
  },
2555
2122
  {
2556
- equals: "gpt-5-2025-08-07"
2123
+ equals: "babbage-002"
2557
2124
  }
2558
2125
  ]
2559
2126
  },
2560
- context_window: 4e5,
2561
2127
  prices: {
2562
- input_mtok: 1.25,
2563
- cache_read_mtok: 0.125,
2564
- output_mtok: 10
2128
+ input_mtok: 0.4
2565
2129
  }
2566
2130
  },
2567
2131
  {
2568
- id: "gpt-5-mini",
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: "gpt-5-mini"
2136
+ equals: "curie"
2575
2137
  },
2576
2138
  {
2577
- equals: "gpt-5-mini-2025-08-07"
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: 0.25,
2584
- cache_read_mtok: 0.025,
2585
- output_mtok: 2
2147
+ input_mtok: 2
2586
2148
  }
2587
2149
  },
2588
2150
  {
2589
- id: "gpt-5-nano",
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: "gpt-5-nano"
2155
+ equals: "davinci"
2156
+ },
2157
+ {
2158
+ equals: "davinci-002"
2159
+ },
2160
+ {
2161
+ equals: "text-davinci"
2596
2162
  },
2597
2163
  {
2598
- equals: "gpt-5-nano-2025-04-14"
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: 10,
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
- contains: "gemini-2.0-flash"
3291
+ ends_with: "gemini-2.0-flash"
3292
+ },
3293
+ {
3294
+ contains: "gemini-2.0-flash-0"
3748
3295
  },
3749
3296
  {
3750
- equals: "gemini-2.0-flash-lite-001"
3297
+ contains: "gemini-2.0-flash-exp"
3751
3298
  },
3752
3299
  {
3753
- equals: "gemini-2.0-flash-001"
3300
+ contains: "gemini-2.0-flash-thinking"
3754
3301
  },
3755
3302
  {
3756
- equals: "gemini-2.0-flash-exp:free"
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 $e(i, n, u) {
18343
- if (n <= 0) return 0;
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 * n / 1e6;
18042
+ return s * o / 1e6;
18348
18043
  }
18349
- function R(i, n, u, s) {
18350
- return i === void 0 || n === void 0 ? 0 : typeof i == "number" ? i * n / 1e6 : $e(i, n, s);
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 We(i, n) {
18047
+ function Je(i, o) {
18353
18048
  let u = 0, s = 0;
18354
- const r = i.input_tokens ?? 0, h = i.cache_read_tokens ?? 0, k = i.cache_write_tokens ?? 0, _ = i.cache_audio_read_tokens ?? 0, q = i.output_audio_tokens ?? 0;
18355
- let M = i.input_audio_tokens ?? 0;
18356
- if (M -= _, M < 0)
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 -= h, B -= k, B -= M, B < 0)
18054
+ if (B -= _, B -= h, B -= y, B < 0)
18360
18055
  throw new Error("Uncached text input tokens cannot be negative");
18361
- let S = h;
18362
- if (S -= _, S < 0)
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(n.input_mtok, B, "input_mtok", r), u += R(n.cache_read_mtok, S, "cache_read_mtok", r), u += R(n.cache_write_mtok, k, "cache_write_mtok", r), u += R(n.input_audio_mtok, M, "input_audio_mtok", r), u += R(n.cache_audio_read_mtok, _, "cache_audio_read_mtok", r);
18365
- let A = i.output_tokens ?? 0;
18366
- if (A -= q, A < 0)
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(n.output_mtok, A, "output_mtok", r), s += R(n.output_audio_mtok, i.output_audio_tokens, "output_audio_mtok", 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 n.requests_kcount !== void 0 && (G += n.requests_kcount / 1e3), {
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 Ue(i, n) {
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 (n >= new Date(r.start_date))
18079
+ if (o >= new Date(r.start_date))
18385
18080
  return s.prices;
18386
18081
  } else {
18387
- const h = n.toISOString().slice(11, 19), k = r.start_time, _ = r.end_time;
18388
- if (_ < k) {
18389
- if (h >= k || h < _)
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 (h >= k && h < _)
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 D(i, n) {
18398
- return "or" in i ? i.or.some((u) => D(u, n)) : "and" in i ? i.and.every((u) => D(u, n)) : "equals" in i ? n === i.equals : "starts_with" in i ? n.startsWith(i.starts_with) : "ends_with" in i ? n.endsWith(i.ends_with) : "contains" in i ? n.includes(i.contains) : "regex" in i ? new RegExp(i.regex).test(n) : !1;
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 Ye(i, n) {
18401
- const u = n.toLowerCase().trim(), s = i.find((r) => r.id === u);
18402
- return s || i.find((r) => r.provider_match && D(r.provider_match, u));
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 Je(i, { modelId: n, providerApiUrl: u, providerId: s }) {
18405
- if (s)
18406
- return Ye(i, s);
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 (n)
18410
- return i.find((r) => r.model_match && D(r.model_match, n));
18107
+ if (o)
18108
+ return i.find((r) => r.model_match && E(r.model_match, o));
18411
18109
  }
18412
- function Ze(i, n) {
18413
- return i.find((u) => D(u.match, n));
18110
+ function et(i, o) {
18111
+ return i.find((u) => E(u.match, o));
18414
18112
  }
18415
- let Xe = ie;
18416
- Promise.resolve(ie);
18417
- function et(i, n, u) {
18418
- const s = n.toLowerCase().trim(), r = u?.provider ?? Je(Xe, { modelId: s, providerApiUrl: u?.providerApiUrl, providerId: u?.providerId });
18419
- if (!r) return null;
18420
- const h = Ze(r.models, s);
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(), _ = Ue(h, k), q = We(i, _);
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: r,
18428
- ...q
18141
+ model_price: q,
18142
+ provider: _,
18143
+ ...y
18429
18144
  };
18430
18145
  }
18431
- const f = de(Ge(process.argv)).scriptName("genai-prices").command(
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 tt() {
18155
+ function at() {
18441
18156
  if (f._[0] === "list") {
18442
- const u = ie;
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 n = f._[0] === "calc" ? Array.isArray(f.model) ? f.model : [f.model] : f._.filter((u) => typeof u == "string");
18457
- if (n.length > 0) {
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 h of n) {
18470
- let k, _ = h;
18471
- _.includes(":") && ([k, _] = _.split(":", 2));
18184
+ for (const _ of o) {
18185
+ let h, k = _;
18186
+ k.includes(":") && ([h, k] = k.split(":", 2));
18472
18187
  try {
18473
- const q = et(u, _, { providerId: k, timestamp: s });
18188
+ const q = tt(u, k, { providerId: h, timestamp: s });
18474
18189
  if (!q) {
18475
- r = !0, console.error(`No price found for model ${h}`);
18190
+ r = !0, console.error(`No price found for model ${_}`);
18476
18191
  continue;
18477
18192
  }
18478
- const M = q.model.context_window, B = [
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", M !== void 0 ? M.toLocaleString() : void 0],
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 [S, A] of B)
18488
- A !== void 0 && console.log(`${S.padStart(14)}: ${A}`);
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 ${h}:`, q.message);
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
- de().showHelp(), process.exit(1);
18211
+ _e().showHelp(), process.exit(1);
18497
18212
  }
18498
- tt();
18213
+ at();