@pydantic/genai-prices 0.0.49 → 0.0.51

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,51 +1,51 @@
1
1
  #!/usr/bin/env node
2
- import dt from "yargs";
3
- import { format as _t } from "util";
4
- import { resolve as at, normalize as Lt } from "path";
5
- import { readFileSync as ht, writeFile as Mt, statSync as Qt } from "fs";
2
+ import he from "yargs";
3
+ import { format as _e } from "util";
4
+ import { resolve as ae, normalize as Qe } from "path";
5
+ import { readFileSync as ke, writeFile as Ae, statSync as Pe } from "fs";
6
6
  import "assert";
7
- import { fileURLToPath as At } from "url";
8
- function Tt() {
9
- return Pt() ? 0 : 1;
7
+ import { fileURLToPath as Te } from "url";
8
+ function Se() {
9
+ return Ge() ? 0 : 1;
10
10
  }
11
- function Pt() {
12
- return St() && !process.defaultApp;
11
+ function Ge() {
12
+ return Ce() && !process.defaultApp;
13
13
  }
14
- function St() {
14
+ function Ce() {
15
15
  return !!process.versions.electron;
16
16
  }
17
- function Gt(i) {
18
- return i.slice(Tt() + 1);
17
+ function Re(i) {
18
+ return i.slice(Se() + 1);
19
19
  }
20
20
  /**
21
21
  * @license
22
22
  * Copyright (c) 2016, Contributors
23
23
  * SPDX-License-Identifier: ISC
24
24
  */
25
- function K(i) {
25
+ function $(i) {
26
26
  if (i !== i.toLowerCase() && i !== i.toUpperCase() || (i = i.toLowerCase()), i.indexOf("-") === -1 && i.indexOf("_") === -1)
27
27
  return i;
28
28
  {
29
- let m = "", s = !1;
30
- const u = i.match(/^-+/);
31
- for (let k = u ? u[0].length : 0; k < i.length; k++) {
32
- let h = i.charAt(k);
33
- s && (s = !1, h = h.toUpperCase()), k !== 0 && (h === "-" || h === "_") ? s = !0 : h !== "-" && h !== "_" && (m += h);
29
+ let u = "", s = !1;
30
+ const r = i.match(/^-+/);
31
+ for (let _ = r ? r[0].length : 0; _ < i.length; _++) {
32
+ let k = i.charAt(_);
33
+ s && (s = !1, k = k.toUpperCase()), _ !== 0 && (k === "-" || k === "_") ? s = !0 : k !== "-" && k !== "_" && (u += k);
34
34
  }
35
- return m;
35
+ return u;
36
36
  }
37
37
  }
38
- function Ct(i, n) {
39
- const m = i.toLowerCase();
40
- n = n || "-";
38
+ function ze(i, o) {
39
+ const u = i.toLowerCase();
40
+ o = o || "-";
41
41
  let s = "";
42
- for (let u = 0; u < i.length; u++) {
43
- const k = m.charAt(u), h = i.charAt(u);
44
- k !== h && u > 0 ? s += `${n}${m.charAt(u)}` : s += h;
42
+ for (let r = 0; r < i.length; r++) {
43
+ const _ = u.charAt(r), k = i.charAt(r);
44
+ _ !== k && r > 0 ? s += `${o}${u.charAt(r)}` : s += k;
45
45
  }
46
46
  return s;
47
47
  }
48
- function Rt(i) {
48
+ function Ne(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,20 +53,20 @@ function Rt(i) {
53
53
  * Copyright (c) 2016, Contributors
54
54
  * SPDX-License-Identifier: ISC
55
55
  */
56
- function zt(i) {
56
+ function Oe(i) {
57
57
  if (Array.isArray(i))
58
- return i.map((h) => typeof h != "string" ? h + "" : h);
58
+ return i.map((k) => typeof k != "string" ? k + "" : k);
59
59
  i = i.trim();
60
- let n = 0, m = null, s = null, u = null;
61
- const k = [];
62
- for (let h = 0; h < i.length; h++) {
63
- if (m = s, s = i.charAt(h), s === " " && !u) {
64
- m !== " " && n++;
60
+ let o = 0, u = null, s = null, r = null;
61
+ const _ = [];
62
+ for (let k = 0; k < i.length; k++) {
63
+ if (u = s, s = i.charAt(k), s === " " && !r) {
64
+ u !== " " && o++;
65
65
  continue;
66
66
  }
67
- s === u ? u = null : (s === "'" || s === '"') && !u && (u = s), k[n] || (k[n] = ""), k[n] += s;
67
+ s === r ? r = null : (s === "'" || s === '"') && !r && (r = s), _[o] || (_[o] = ""), _[o] += s;
68
68
  }
69
- return k;
69
+ return _;
70
70
  }
71
71
  /**
72
72
  * @license
@@ -83,11 +83,11 @@ var L;
83
83
  * SPDX-License-Identifier: ISC
84
84
  */
85
85
  let T;
86
- class Nt {
87
- constructor(n) {
88
- T = n;
86
+ class De {
87
+ constructor(o) {
88
+ T = o;
89
89
  }
90
- parse(n, m) {
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 Nt {
105
105
  number: void 0,
106
106
  __: void 0,
107
107
  key: void 0
108
- }, m), u = zt(n), k = typeof n == "string", h = Ot(Object.assign(/* @__PURE__ */ Object.create(null), s.alias)), _ = Object.assign({
108
+ }, u), r = Oe(o), _ = typeof o == "string", k = Ee(Object.assign(/* @__PURE__ */ Object.create(null), s.alias)), h = Object.assign({
109
109
  "boolean-negation": !0,
110
110
  "camel-case-expansion": !0,
111
111
  "combine-arrays": !1,
@@ -124,7 +124,7 @@ class Nt {
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), B = s.configObjects || [], Q = s.envPrefix, P = _["populate--"], S = P ? "--" : "_", D = /* @__PURE__ */ Object.create(null), ot = /* @__PURE__ */ Object.create(null), G = s.__ || T.format, r = {
127
+ }, s.configuration), q = Object.assign(/* @__PURE__ */ Object.create(null), s.default), M = s.configObjects || [], B = s.envPrefix, S = h["populate--"], A = S ? "--" : "_", G = /* @__PURE__ */ Object.create(null), oe = /* @__PURE__ */ Object.create(null), C = s.__ || T.format, m = {
128
128
  aliases: /* @__PURE__ */ Object.create(null),
129
129
  arrays: /* @__PURE__ */ Object.create(null),
130
130
  bools: /* @__PURE__ */ Object.create(null),
@@ -136,158 +136,158 @@ class Nt {
136
136
  nargs: /* @__PURE__ */ Object.create(null),
137
137
  coercions: /* @__PURE__ */ Object.create(null),
138
138
  keys: []
139
- }, M = /^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/, W = new RegExp("^--" + _["negation-prefix"] + "(.+)");
140
- [].concat(s.array || []).filter(Boolean).forEach(function(t) {
141
- const a = typeof t == "object" ? t.key : t, c = Object.keys(t).map(function(o) {
139
+ }, Q = /^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/, W = new RegExp("^--" + h["negation-prefix"] + "(.+)");
140
+ [].concat(s.array || []).filter(Boolean).forEach(function(e) {
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
- c && (r[c][a] = !0), r.arrays[a] = !0, r.keys.push(a);
149
- }), [].concat(s.boolean || []).filter(Boolean).forEach(function(t) {
150
- r.bools[t] = !0, r.keys.push(t);
151
- }), [].concat(s.string || []).filter(Boolean).forEach(function(t) {
152
- r.strings[t] = !0, r.keys.push(t);
153
- }), [].concat(s.number || []).filter(Boolean).forEach(function(t) {
154
- r.numbers[t] = !0, r.keys.push(t);
155
- }), [].concat(s.count || []).filter(Boolean).forEach(function(t) {
156
- r.counts[t] = !0, r.keys.push(t);
157
- }), [].concat(s.normalize || []).filter(Boolean).forEach(function(t) {
158
- r.normalize[t] = !0, r.keys.push(t);
159
- }), typeof s.narg == "object" && Object.entries(s.narg).forEach(([t, a]) => {
160
- typeof a == "number" && (r.nargs[t] = a, r.keys.push(t));
161
- }), typeof s.coerce == "object" && Object.entries(s.coerce).forEach(([t, a]) => {
162
- typeof a == "function" && (r.coercions[t] = a, r.keys.push(t));
163
- }), typeof s.config < "u" && (Array.isArray(s.config) || typeof s.config == "string" ? [].concat(s.config).filter(Boolean).forEach(function(t) {
164
- r.configs[t] = !0;
165
- }) : typeof s.config == "object" && Object.entries(s.config).forEach(([t, a]) => {
166
- (typeof a == "boolean" || typeof a == "function") && (r.configs[t] = a);
167
- })), bt(s.key, h, s.default, r.arrays), Object.keys(q).forEach(function(t) {
168
- (r.aliases[t] || []).forEach(function(a) {
169
- q[a] = q[t];
148
+ c && (m[c][a] = !0), m.arrays[a] = !0, m.keys.push(a);
149
+ }), [].concat(s.boolean || []).filter(Boolean).forEach(function(e) {
150
+ m.bools[e] = !0, m.keys.push(e);
151
+ }), [].concat(s.string || []).filter(Boolean).forEach(function(e) {
152
+ m.strings[e] = !0, m.keys.push(e);
153
+ }), [].concat(s.number || []).filter(Boolean).forEach(function(e) {
154
+ m.numbers[e] = !0, m.keys.push(e);
155
+ }), [].concat(s.count || []).filter(Boolean).forEach(function(e) {
156
+ m.counts[e] = !0, m.keys.push(e);
157
+ }), [].concat(s.normalize || []).filter(Boolean).forEach(function(e) {
158
+ m.normalize[e] = !0, m.keys.push(e);
159
+ }), typeof s.narg == "object" && Object.entries(s.narg).forEach(([e, a]) => {
160
+ typeof a == "number" && (m.nargs[e] = a, m.keys.push(e));
161
+ }), typeof s.coerce == "object" && Object.entries(s.coerce).forEach(([e, a]) => {
162
+ typeof a == "function" && (m.coercions[e] = a, m.keys.push(e));
163
+ }), typeof s.config < "u" && (Array.isArray(s.config) || typeof s.config == "string" ? [].concat(s.config).filter(Boolean).forEach(function(e) {
164
+ m.configs[e] = !0;
165
+ }) : typeof s.config == "object" && Object.entries(s.config).forEach(([e, a]) => {
166
+ (typeof a == "boolean" || typeof a == "function") && (m.configs[e] = a);
167
+ })), ve(s.key, k, s.default, m.arrays), Object.keys(q).forEach(function(e) {
168
+ (m.aliases[e] || []).forEach(function(a) {
169
+ q[a] = q[e];
170
170
  });
171
171
  });
172
- let I = null;
173
- yt();
172
+ let y = null;
173
+ Me();
174
174
  let j = [];
175
- const w = Object.assign(/* @__PURE__ */ Object.create(null), { _: [] }), nt = {};
176
- for (let t = 0; t < u.length; t++) {
177
- const a = u[t], c = a.replace(/^-{3,}/, "---");
178
- let o, e, l, p, d, v;
179
- if (a !== "--" && /^-/.test(a) && $(a))
175
+ const w = Object.assign(/* @__PURE__ */ Object.create(null), { _: [] }), ne = {};
176
+ for (let e = 0; e < r.length; e++) {
177
+ const a = r[e], c = a.replace(/^-{3,}/, "---");
178
+ let n, t, l, p, d, v;
179
+ if (a !== "--" && /^-/.test(a) && K(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(/^-.+=/))
185
- p = a.match(/^--?([^=]+)=([\s\S]*)$/), p !== null && Array.isArray(p) && p.length >= 3 && (g(p[1], r.arrays) ? t = F(t, p[1], u, p[2]) : g(p[1], r.nargs) !== !1 ? t = V(t, p[1], u, p[2]) : b(p[1], p[2], !0));
186
- else if (a.match(W) && _["boolean-negation"])
187
- p = a.match(W), p !== null && Array.isArray(p) && p.length >= 2 && (e = p[1], b(e, g(e, r.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 && (e = p[1], g(e, r.arrays) ? t = F(t, e, u) : g(e, r.nargs) !== !1 ? t = V(t, e, u) : (d = u[t + 1], d !== void 0 && (!d.match(/^-/) || d.match(M)) && !g(e, r.bools) && !g(e, r.counts) || /^(true|false)$/.test(d) ? (b(e, d), t++) : b(e, R(e))));
184
+ } else if (a.match(/^--.+=/) || !h["short-option-groups"] && a.match(/^-.+=/))
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) && h["boolean-negation"])
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(/^--.+/) || !h["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))));
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(M))
193
- d = u[t + 1], p = a.match(/^-(.\..+)/), p !== null && Array.isArray(p) && p.length >= 2 && (e = p[1], d !== void 0 && !d.match(/^-/) && !g(e, r.bools) && !g(e, r.counts) ? (b(e, d), t++) : b(e, R(e)));
194
- else if (a.match(/^-[^-]+/) && !a.match(M)) {
195
- l = a.slice(1, -1).split(""), o = !1;
192
+ else if (a.match(/^-.\..+/) && !a.match(Q))
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(""), 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), e = l[x], g(e, r.arrays) ? t = F(t, e, u, v) : g(e, r.nargs) !== !1 ? t = V(t, e, u, v) : b(e, 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 === "-") {
202
202
  b(l[x], d);
203
203
  continue;
204
204
  }
205
- if (/[A-Za-z]/.test(l[x]) && /^-?\d+(\.\d*)?(e-?\d+)?$/.test(d) && g(d, r.bools) === !1) {
206
- b(l[x], d), o = !0;
205
+ if (/[A-Za-z]/.test(l[x]) && /^-?\d+(\.\d*)?(e-?\d+)?$/.test(d) && g(d, m.bools) === !1) {
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
- b(l[x], R(l[x]));
213
+ b(l[x], z(l[x]));
214
214
  }
215
- e = a.slice(-1)[0], !o && e !== "-" && (g(e, r.arrays) ? t = F(t, e, u) : g(e, r.nargs) !== !1 ? t = V(t, e, u) : (d = u[t + 1], d !== void 0 && (!/^(-|--)[^-]/.test(d) || d.match(M)) && !g(e, r.bools) && !g(e, r.counts) || /^(true|false)$/.test(d) ? (b(e, d), t++) : b(e, R(e))));
216
- } else if (a.match(/^-[0-9]$/) && a.match(M) && g(a.slice(1), r.bools))
217
- e = a.slice(1), b(e, R(e));
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(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))
217
+ t = a.slice(1), b(t, z(t));
218
218
  else if (a === "--") {
219
- j = u.slice(t + 1);
219
+ j = r.slice(e + 1);
220
220
  break;
221
- } else if (_["halt-at-non-option"]) {
222
- j = u.slice(t);
221
+ } else if (h["halt-at-non-option"]) {
222
+ j = r.slice(e);
223
223
  break;
224
224
  } else
225
225
  U(a);
226
226
  }
227
- rt(w, !0), rt(w, !1), kt(w), gt(), mt(w, r.aliases, q, !0), qt(w), _["set-placeholder-key"] && ft(w), Object.keys(r.counts).forEach(function(t) {
228
- z(w, t.split(".")) || b(t, 0);
229
- }), P && j.length && (w[S] = []), j.forEach(function(t) {
230
- w[S].push(t);
231
- }), _["camel-case-expansion"] && _["strip-dashed"] && Object.keys(w).filter((t) => t !== "--" && t.includes("-")).forEach((t) => {
232
- delete w[t];
233
- }), _["strip-aliased"] && [].concat(...Object.keys(h).map((t) => h[t])).forEach((t) => {
234
- _["camel-case-expansion"] && t.includes("-") && delete w[t.split(".").map((a) => K(a)).join(".")], delete w[t];
227
+ re(w, !0), re(w, !1), qe(w), fe(), me(w, m.aliases, q, !0), be(w), h["set-placeholder-key"] && we(w), Object.keys(m.counts).forEach(function(e) {
228
+ N(w, e.split(".")) || b(e, 0);
229
+ }), S && j.length && (w[A] = []), j.forEach(function(e) {
230
+ w[A].push(e);
231
+ }), h["camel-case-expansion"] && h["strip-dashed"] && Object.keys(w).filter((e) => e !== "--" && e.includes("-")).forEach((e) => {
232
+ delete w[e];
233
+ }), h["strip-aliased"] && [].concat(...Object.keys(k).map((e) => k[e])).forEach((e) => {
234
+ h["camel-case-expansion"] && e.includes("-") && delete w[e.split(".").map((a) => $(a)).join(".")], delete w[e];
235
235
  });
236
- function U(t) {
237
- const a = H("_", t);
236
+ function U(e) {
237
+ const a = H("_", e);
238
238
  (typeof a == "string" || typeof a == "number") && w._.push(a);
239
239
  }
240
- function V(t, a, c, o) {
241
- let e, l = g(a, r.nargs);
240
+ function V(e, a, c, n) {
241
+ let t, l = g(a, m.nargs);
242
242
  if (l = typeof l != "number" || isNaN(l) ? 1 : l, l === 0)
243
- return A(o) || (I = Error(G("Argument unexpected for: %s", a))), b(a, R(a)), t;
244
- let p = A(o) ? 0 : 1;
245
- if (_["nargs-eats-options"])
246
- c.length - (t + 1) + p < l && (I = Error(G("Not enough arguments following: %s", a))), p = l;
243
+ return P(n) || (y = Error(C("Argument unexpected for: %s", a))), b(a, z(a)), e;
244
+ let p = P(n) ? 0 : 1;
245
+ if (h["nargs-eats-options"])
246
+ c.length - (e + 1) + p < l && (y = Error(C("Not enough arguments following: %s", a))), p = l;
247
247
  else {
248
- for (e = t + 1; e < c.length && (!c[e].match(/^-[^0-9]/) || c[e].match(M) || $(c[e])); e++)
248
+ for (t = e + 1; t < c.length && (!c[t].match(/^-[^0-9]/) || c[t].match(Q) || K(c[t])); t++)
249
249
  p++;
250
- p < l && (I = Error(G("Not enough arguments following: %s", a)));
250
+ p < l && (y = Error(C("Not enough arguments following: %s", a)));
251
251
  }
252
252
  let d = Math.min(p, l);
253
- for (!A(o) && d > 0 && (b(a, o), d--), e = t + 1; e < d + t + 1; e++)
254
- b(a, c[e]);
255
- return t + d;
253
+ for (!P(n) && d > 0 && (b(a, n), d--), t = e + 1; t < d + e + 1; t++)
254
+ b(a, c[t]);
255
+ return e + d;
256
256
  }
257
- function F(t, a, c, o) {
258
- let e = [], l = o || c[t + 1];
259
- const p = g(a, r.nargs);
260
- if (g(a, r.bools) && !/^(true|false)$/.test(l))
261
- e.push(!0);
262
- else if (A(l) || A(o) && /^-/.test(l) && !M.test(l) && !$(l)) {
257
+ function F(e, a, c, n) {
258
+ let t = [], l = n || c[e + 1];
259
+ const p = g(a, m.nargs);
260
+ if (g(a, m.bools) && !/^(true|false)$/.test(l))
261
+ t.push(!0);
262
+ else if (P(l) || P(n) && /^-/.test(l) && !Q.test(l) && !K(l)) {
263
263
  if (q[a] !== void 0) {
264
264
  const d = q[a];
265
- e = Array.isArray(d) ? d : [d];
265
+ t = Array.isArray(d) ? d : [d];
266
266
  }
267
267
  } else {
268
- A(o) || e.push(Y(a, o, !0));
269
- for (let d = t + 1; d < c.length && !(!_["greedy-arrays"] && e.length > 0 || p && typeof p == "number" && e.length >= p || (l = c[d], /^-/.test(l) && !M.test(l) && !$(l))); d++)
270
- t = d, e.push(Y(a, l, k));
268
+ P(n) || t.push(Y(a, n, !0));
269
+ for (let d = e + 1; d < c.length && !(!h["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, _));
271
271
  }
272
- return typeof p == "number" && (p && e.length < p || isNaN(p) && e.length === 0) && (I = Error(G("Not enough arguments following: %s", a))), b(a, e), t;
272
+ return typeof p == "number" && (p && t.length < p || isNaN(p) && t.length === 0) && (y = Error(C("Not enough arguments following: %s", a))), b(a, t), e;
273
273
  }
274
- function b(t, a, c = k) {
275
- if (/-/.test(t) && _["camel-case-expansion"]) {
276
- const l = t.split(".").map(function(p) {
277
- return K(p);
274
+ function b(e, a, c = _) {
275
+ if (/-/.test(e) && h["camel-case-expansion"]) {
276
+ const l = e.split(".").map(function(p) {
277
+ return $(p);
278
278
  }).join(".");
279
- st(t, l);
279
+ se(e, l);
280
280
  }
281
- const o = Y(t, a, c), e = t.split(".");
282
- N(w, e, o), r.aliases[t] && r.aliases[t].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
- N(w, p, o);
285
- }), e.length > 1 && _["dot-notation"] && (r.aliases[e[0]] || []).forEach(function(l) {
284
+ O(w, p, n);
285
+ }), t.length > 1 && h["dot-notation"] && (m.aliases[t[0]] || []).forEach(function(l) {
286
286
  let p = l.split(".");
287
- const d = [].concat(e);
288
- d.shift(), p = p.concat(d), (r.aliases[t] || []).includes(p.join(".")) || N(w, p, o);
289
- }), g(t, r.normalize) && !g(t, r.arrays) && [t].concat(r.aliases[t] || []).forEach(function(p) {
290
- Object.defineProperty(nt, p, {
287
+ const d = [].concat(t);
288
+ d.shift(), p = p.concat(d), (m.aliases[e] || []).includes(p.join(".")) || O(w, p, n);
289
+ }), g(e, m.normalize) && !g(e, m.arrays) && [e].concat(m.aliases[e] || []).forEach(function(p) {
290
+ Object.defineProperty(ne, p, {
291
291
  enumerable: !0,
292
292
  get() {
293
293
  return a;
@@ -298,233 +298,233 @@ class Nt {
298
298
  });
299
299
  });
300
300
  }
301
- function st(t, a) {
302
- r.aliases[t] && r.aliases[t].length || (r.aliases[t] = [a], D[a] = !0), r.aliases[a] && r.aliases[a].length || st(a, t);
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);
303
303
  }
304
- function Y(t, a, c) {
305
- c && (a = Et(a)), (g(t, r.bools) || g(t, r.counts)) && typeof a == "string" && (a = a === "true");
306
- let o = Array.isArray(a) ? a.map(function(e) {
307
- return H(t, e);
308
- }) : H(t, a);
309
- return g(t, r.counts) && (A(o) || typeof o == "boolean") && (o = Z()), g(t, r.normalize) && g(t, r.arrays) && (Array.isArray(a) ? o = a.map((e) => T.normalize(e)) : o = T.normalize(a)), o;
304
+ function Y(e, a, c) {
305
+ c && (a = je(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 H(e, t);
308
+ }) : H(e, a);
309
+ return g(e, m.counts) && (P(n) || typeof n == "boolean") && (n = Z()), g(e, m.normalize) && g(e, m.arrays) && (Array.isArray(a) ? n = a.map((t) => T.normalize(t)) : n = T.normalize(a)), n;
310
310
  }
311
- function H(t, a) {
312
- return !_["parse-positional-numbers"] && t === "_" || !g(t, r.strings) && !g(t, r.bools) && !Array.isArray(a) && (Rt(a) && _["parse-numbers"] && Number.isSafeInteger(Math.floor(parseFloat(`${a}`))) || !A(a) && g(t, r.numbers)) && (a = Number(a)), a;
311
+ function H(e, a) {
312
+ return !h["parse-positional-numbers"] && e === "_" || !g(e, m.strings) && !g(e, m.bools) && !Array.isArray(a) && (Ne(a) && h["parse-numbers"] && Number.isSafeInteger(Math.floor(parseFloat(`${a}`))) || !P(a) && g(e, m.numbers)) && (a = Number(a)), a;
313
313
  }
314
- function kt(t) {
314
+ function qe(e) {
315
315
  const a = /* @__PURE__ */ Object.create(null);
316
- mt(a, r.aliases, q), Object.keys(r.configs).forEach(function(c) {
317
- const o = t[c] || a[c];
318
- if (o)
316
+ me(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
- let e = null;
321
- const l = T.resolve(T.cwd(), o), p = r.configs[c];
320
+ let t = null;
321
+ const l = T.resolve(T.cwd(), n), p = m.configs[c];
322
322
  if (typeof p == "function") {
323
323
  try {
324
- e = p(l);
324
+ t = p(l);
325
325
  } catch (d) {
326
- e = d;
326
+ t = d;
327
327
  }
328
- if (e instanceof Error) {
329
- I = e;
328
+ if (t instanceof Error) {
329
+ y = t;
330
330
  return;
331
331
  }
332
332
  } else
333
- e = T.require(l);
334
- J(e);
335
- } catch (e) {
336
- e.name === "PermissionDenied" ? I = e : t[c] && (I = Error(G("Invalid JSON config file: %s", o)));
333
+ t = T.require(l);
334
+ J(t);
335
+ } catch (t) {
336
+ t.name === "PermissionDenied" ? y = t : e[c] && (y = Error(C("Invalid JSON config file: %s", n)));
337
337
  }
338
338
  });
339
339
  }
340
- function J(t, a) {
341
- Object.keys(t).forEach(function(c) {
342
- const o = t[c], e = a ? a + "." + c : c;
343
- typeof o == "object" && o !== null && !Array.isArray(o) && _["dot-notation"] ? J(o, e) : (!z(w, e.split(".")) || g(e, r.arrays) && _["combine-arrays"]) && b(e, o);
340
+ function J(e, a) {
341
+ Object.keys(e).forEach(function(c) {
342
+ const n = e[c], t = a ? a + "." + c : c;
343
+ typeof n == "object" && n !== null && !Array.isArray(n) && h["dot-notation"] ? J(n, t) : (!N(w, t.split(".")) || g(t, m.arrays) && h["combine-arrays"]) && b(t, n);
344
344
  });
345
345
  }
346
- function gt() {
347
- typeof B < "u" && B.forEach(function(t) {
348
- J(t);
346
+ function fe() {
347
+ typeof M < "u" && M.forEach(function(e) {
348
+ J(e);
349
349
  });
350
350
  }
351
- function rt(t, a) {
352
- if (typeof Q > "u")
351
+ function re(e, a) {
352
+ if (typeof B > "u")
353
353
  return;
354
- const c = typeof Q == "string" ? Q : "", o = T.env();
355
- Object.keys(o).forEach(function(e) {
356
- if (c === "" || e.lastIndexOf(c, 0) === 0) {
357
- const l = e.split("__").map(function(p, d) {
358
- return d === 0 && (p = p.substring(c.length)), K(p);
354
+ const c = typeof B == "string" ? B : "", n = T.env();
355
+ Object.keys(n).forEach(function(t) {
356
+ if (c === "" || t.lastIndexOf(c, 0) === 0) {
357
+ const l = t.split("__").map(function(p, d) {
358
+ return d === 0 && (p = p.substring(c.length)), $(p);
359
359
  });
360
- (a && r.configs[l.join(".")] || !a) && !z(t, l) && b(l.join("."), o[e]);
360
+ (a && m.configs[l.join(".")] || !a) && !N(e, l) && b(l.join("."), n[t]);
361
361
  }
362
362
  });
363
363
  }
364
- function qt(t) {
364
+ function be(e) {
365
365
  let a;
366
366
  const c = /* @__PURE__ */ new Set();
367
- Object.keys(t).forEach(function(o) {
368
- if (!c.has(o) && (a = g(o, r.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 e = H(o, a(t[o]));
371
- [].concat(r.aliases[o] || [], o).forEach((l) => {
372
- c.add(l), t[l] = e;
370
+ const t = H(n, a(e[n]));
371
+ [].concat(m.aliases[n] || [], n).forEach((l) => {
372
+ c.add(l), e[l] = t;
373
373
  });
374
- } catch (e) {
375
- I = e;
374
+ } catch (t) {
375
+ y = t;
376
376
  }
377
377
  });
378
378
  }
379
- function ft(t) {
380
- return r.keys.forEach((a) => {
381
- ~a.indexOf(".") || typeof t[a] > "u" && (t[a] = void 0);
382
- }), t;
379
+ function we(e) {
380
+ return m.keys.forEach((a) => {
381
+ ~a.indexOf(".") || typeof e[a] > "u" && (e[a] = void 0);
382
+ }), e;
383
383
  }
384
- function mt(t, a, c, o = !1) {
385
- Object.keys(c).forEach(function(e) {
386
- z(t, e.split(".")) || (N(t, e.split("."), c[e]), o && (ot[e] = !0), (a[e] || []).forEach(function(l) {
387
- z(t, l.split(".")) || N(t, l.split("."), c[e]);
384
+ function me(e, a, c, n = !1) {
385
+ Object.keys(c).forEach(function(t) {
386
+ N(e, t.split(".")) || (O(e, t.split("."), c[t]), n && (oe[t] = !0), (a[t] || []).forEach(function(l) {
387
+ N(e, l.split(".")) || O(e, l.split("."), c[t]);
388
388
  }));
389
389
  });
390
390
  }
391
- function z(t, a) {
392
- let c = t;
393
- _["dot-notation"] || (a = [a.join(".")]), a.slice(0, -1).forEach(function(e) {
394
- c = c[e] || {};
391
+ function N(e, a) {
392
+ let c = e;
393
+ h["dot-notation"] || (a = [a.join(".")]), a.slice(0, -1).forEach(function(t) {
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
- function N(t, a, c) {
400
- let o = t;
401
- _["dot-notation"] || (a = [a.join(".")]), a.slice(0, -1).forEach(function(v) {
402
- v = ct(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];
399
+ function O(e, a, c) {
400
+ let n = e;
401
+ h["dot-notation"] || (a = [a.join(".")]), a.slice(0, -1).forEach(function(v) {
402
+ v = ce(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 e = ct(a[a.length - 1]), l = g(a.join("."), r.arrays), p = Array.isArray(c);
405
- let d = _["duplicate-arguments-array"];
406
- !d && g(e, r.nargs) && (d = !0, (!A(o[e]) && r.nargs[e] === 1 || Array.isArray(o[e]) && o[e].length === r.nargs[e]) && (o[e] = void 0)), c === Z() ? o[e] = Z(o[e]) : Array.isArray(o[e]) ? d && l && p ? o[e] = _["flatten-duplicate-arrays"] ? o[e].concat(c) : (Array.isArray(o[e][0]) ? o[e] : [o[e]]).concat([c]) : !d && !!l == !!p ? o[e] = c : o[e] = o[e].concat([c]) : o[e] === void 0 && l ? o[e] = p ? c : [c] : d && !(o[e] === void 0 || g(e, r.counts) || g(e, r.bools)) ? o[e] = [o[e], c] : o[e] = c;
404
+ const t = ce(a[a.length - 1]), l = g(a.join("."), m.arrays), p = Array.isArray(c);
405
+ let d = h["duplicate-arguments-array"];
406
+ !d && g(t, m.nargs) && (d = !0, (!P(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] = h["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 bt(...t) {
409
- t.forEach(function(a) {
408
+ function ve(...e) {
409
+ e.forEach(function(a) {
410
410
  Object.keys(a || {}).forEach(function(c) {
411
- r.aliases[c] || (r.aliases[c] = [].concat(h[c] || []), r.aliases[c].concat(c).forEach(function(o) {
412
- if (/-/.test(o) && _["camel-case-expansion"]) {
413
- const e = K(o);
414
- e !== c && r.aliases[c].indexOf(e) === -1 && (r.aliases[c].push(e), D[e] = !0);
415
- }
416
- }), r.aliases[c].concat(c).forEach(function(o) {
417
- if (o.length > 1 && /[A-Z]/.test(o) && _["camel-case-expansion"]) {
418
- const e = Ct(o, "-");
419
- e !== c && r.aliases[c].indexOf(e) === -1 && (r.aliases[c].push(e), D[e] = !0);
420
- }
421
- }), r.aliases[c].forEach(function(o) {
422
- r.aliases[o] = [c].concat(r.aliases[c].filter(function(e) {
423
- return o !== e;
411
+ m.aliases[c] || (m.aliases[c] = [].concat(k[c] || []), m.aliases[c].concat(c).forEach(function(n) {
412
+ if (/-/.test(n) && h["camel-case-expansion"]) {
413
+ const t = $(n);
414
+ t !== c && m.aliases[c].indexOf(t) === -1 && (m.aliases[c].push(t), G[t] = !0);
415
+ }
416
+ }), m.aliases[c].concat(c).forEach(function(n) {
417
+ if (n.length > 1 && /[A-Z]/.test(n) && h["camel-case-expansion"]) {
418
+ const t = ze(n, "-");
419
+ t !== c && m.aliases[c].indexOf(t) === -1 && (m.aliases[c].push(t), G[t] = !0);
420
+ }
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
- function g(t, a) {
430
- const c = [].concat(r.aliases[t] || [], t), o = Object.keys(a), e = c.find((l) => o.includes(l));
431
- return e ? a[e] : !1;
429
+ function g(e, a) {
430
+ const c = [].concat(m.aliases[e] || [], e), n = Object.keys(a), t = c.find((l) => n.includes(l));
431
+ return t ? a[t] : !1;
432
432
  }
433
- function ut(t) {
434
- const a = Object.keys(r);
435
- return [].concat(a.map((o) => r[o])).some(function(o) {
436
- return Array.isArray(o) ? o.includes(t) : o[t];
433
+ function ue(e) {
434
+ const a = Object.keys(m);
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 wt(t, ...a) {
440
- return [].concat(...a).some(function(o) {
441
- const e = t.match(o);
442
- return e && ut(e[1]);
439
+ function xe(e, ...a) {
440
+ return [].concat(...a).some(function(n) {
441
+ const t = e.match(n);
442
+ return t && ue(t[1]);
443
443
  });
444
444
  }
445
- function vt(t) {
446
- if (t.match(M) || !t.match(/^-[^-]+/))
445
+ function Be(e) {
446
+ if (e.match(Q) || !e.match(/^-[^-]+/))
447
447
  return !1;
448
448
  let a = !0, c;
449
- const o = t.slice(1).split("");
450
- for (let e = 0; e < o.length; e++) {
451
- if (c = t.slice(e + 2), !ut(o[e])) {
449
+ const n = e.slice(1).split("");
450
+ for (let t = 0; t < n.length; t++) {
451
+ if (c = e.slice(t + 2), !ue(n[t])) {
452
452
  a = !1;
453
453
  break;
454
454
  }
455
- if (o[e + 1] && o[e + 1] === "=" || c === "-" || /[A-Za-z]/.test(o[e]) && /^-?\d+(\.\d*)?(e-?\d+)?$/.test(c) || o[e + 1] && o[e + 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 $(t) {
461
- return _["unknown-options-as-args"] && xt(t);
460
+ function K(e) {
461
+ return h["unknown-options-as-args"] && ye(e);
462
462
  }
463
- function xt(t) {
464
- return t = t.replace(/^-{3,}/, "--"), t.match(M) || vt(t) ? !1 : !wt(t, /^-+([^=]+?)=[\s\S]*$/, W, /^-+([^=]+?)$/, /^-+([^=]+?)-$/, /^-+([^=]+?\d+)$/, /^-+([^=]+?)\W+.*$/);
463
+ function ye(e) {
464
+ return e = e.replace(/^-{3,}/, "--"), e.match(Q) || Be(e) ? !1 : !xe(e, /^-+([^=]+?)=[\s\S]*$/, W, /^-+([^=]+?)$/, /^-+([^=]+?)-$/, /^-+([^=]+?\d+)$/, /^-+([^=]+?)\W+.*$/);
465
465
  }
466
- function R(t) {
467
- return !g(t, r.bools) && !g(t, r.counts) && `${t}` in q ? q[t] : Bt(It(t));
466
+ function z(e) {
467
+ return !g(e, m.bools) && !g(e, m.counts) && `${e}` in q ? q[e] : Ie(Le(e));
468
468
  }
469
- function Bt(t) {
469
+ function Ie(e) {
470
470
  return {
471
471
  [L.BOOLEAN]: !0,
472
472
  [L.STRING]: "",
473
473
  [L.NUMBER]: void 0,
474
474
  [L.ARRAY]: []
475
- }[t];
475
+ }[e];
476
476
  }
477
- function It(t) {
477
+ function Le(e) {
478
478
  let a = L.BOOLEAN;
479
- return g(t, r.strings) ? a = L.STRING : g(t, r.numbers) ? a = L.NUMBER : g(t, r.bools) ? a = L.BOOLEAN : g(t, r.arrays) && (a = L.ARRAY), a;
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;
480
480
  }
481
- function A(t) {
482
- return t === void 0;
481
+ function P(e) {
482
+ return e === void 0;
483
483
  }
484
- function yt() {
485
- Object.keys(r.counts).find((t) => g(t, r.arrays) ? (I = Error(G("Invalid configuration: %s, opts.count excludes opts.array.", t)), !0) : g(t, r.nargs) ? (I = Error(G("Invalid configuration: %s, opts.count excludes opts.narg.", t)), !0) : !1);
484
+ function Me() {
485
+ Object.keys(m.counts).find((e) => g(e, m.arrays) ? (y = Error(C("Invalid configuration: %s, opts.count excludes opts.array.", e)), !0) : g(e, m.nargs) ? (y = Error(C("Invalid configuration: %s, opts.count excludes opts.narg.", e)), !0) : !1);
486
486
  }
487
487
  return {
488
- aliases: Object.assign({}, r.aliases),
489
- argv: Object.assign(nt, w),
490
- configuration: _,
491
- defaulted: Object.assign({}, ot),
492
- error: I,
493
- newAliases: Object.assign({}, D)
488
+ aliases: Object.assign({}, m.aliases),
489
+ argv: Object.assign(ne, w),
490
+ configuration: h,
491
+ defaulted: Object.assign({}, oe),
492
+ error: y,
493
+ newAliases: Object.assign({}, G)
494
494
  };
495
495
  }
496
496
  }
497
- function Ot(i) {
498
- const n = [], m = /* @__PURE__ */ Object.create(null);
497
+ function Ee(i) {
498
+ const o = [], u = /* @__PURE__ */ Object.create(null);
499
499
  let s = !0;
500
- for (Object.keys(i).forEach(function(u) {
501
- n.push([].concat(i[u], u));
500
+ for (Object.keys(i).forEach(function(r) {
501
+ o.push([].concat(i[r], r));
502
502
  }); s; ) {
503
503
  s = !1;
504
- for (let u = 0; u < n.length; u++)
505
- for (let k = u + 1; k < n.length; k++)
506
- if (n[u].filter(function(_) {
507
- return n[k].indexOf(_) !== -1;
504
+ for (let r = 0; r < o.length; r++)
505
+ for (let _ = r + 1; _ < o.length; _++)
506
+ if (o[r].filter(function(h) {
507
+ return o[_].indexOf(h) !== -1;
508
508
  }).length) {
509
- n[u] = n[u].concat(n[k]), n.splice(k, 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(u) {
514
- u = u.filter(function(h, _, q) {
515
- return q.indexOf(h) === _;
513
+ return o.forEach(function(r) {
514
+ r = r.filter(function(k, h, q) {
515
+ return q.indexOf(k) === h;
516
516
  });
517
- const k = u.pop();
518
- k !== void 0 && typeof k == "string" && (m[k] = u);
519
- }), m;
517
+ const _ = r.pop();
518
+ _ !== void 0 && typeof _ == "string" && (u[_] = r);
519
+ }), u;
520
520
  }
521
521
  function Z(i) {
522
522
  return i !== void 0 ? i + 1 : 1;
523
523
  }
524
- function ct(i) {
524
+ function ce(i) {
525
525
  return i === "__proto__" ? "___proto___" : i;
526
526
  }
527
- function Et(i) {
527
+ function je(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
  /**
@@ -535,154 +535,154 @@ function Et(i) {
535
535
  * Copyright (c) 2016, Contributors
536
536
  * SPDX-License-Identifier: ISC
537
537
  */
538
- var X, tt, et;
539
- const pt = process && process.env && process.env.YARGS_MIN_NODE_VERSION ? Number(process.env.YARGS_MIN_NODE_VERSION) : 12, lt = (tt = (X = process == null ? void 0 : process.versions) === null || X === void 0 ? void 0 : X.node) !== null && tt !== void 0 ? tt : (et = process == null ? void 0 : process.version) === null || et === void 0 ? void 0 : et.slice(1);
540
- if (lt && Number(lt.match(/^([^.]+)/)[1]) < pt)
541
- throw Error(`yargs parser supports a minimum Node.js version of ${pt}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`);
542
- const Dt = process ? process.env : {};
543
- new Nt({
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 Ve = process ? process.env : {};
543
+ new De({
544
544
  cwd: process.cwd,
545
- env: () => Dt,
546
- format: _t,
547
- normalize: Lt,
548
- resolve: at,
545
+ env: () => Ve,
546
+ format: _e,
547
+ normalize: Qe,
548
+ resolve: ae,
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(ht(i, "utf8"));
555
+ return JSON.parse(ke(i, "utf8"));
556
556
  throw Error("only .json config files are supported in ESM");
557
557
  }
558
558
  });
559
- const jt = {
559
+ const Fe = {
560
560
  fs: {
561
- readFileSync: ht,
562
- writeFile: Mt
561
+ readFileSync: ke,
562
+ writeFile: Ae
563
563
  },
564
- format: _t,
565
- resolve: at,
564
+ format: _e,
565
+ resolve: ae,
566
566
  exists: (i) => {
567
567
  try {
568
- return Qt(i).isFile();
568
+ return Pe(i).isFile();
569
569
  } catch {
570
570
  return !1;
571
571
  }
572
572
  }
573
573
  };
574
- let y;
575
- class Vt {
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 I;
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 m = 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() {
586
- }, this.cache[this.locale] || this._readLocaleFile(), !this.cache[this.locale][m] && this.updateFiles ? (this.cache[this.locale][m] = m, this._enqueueWrite({
585
+ return typeof o[o.length - 1] == "function" && (s = o.pop()), s = s || function() {
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][m] || m].concat(n));
590
+ })) : s(), I.format.apply(I.format, [this.cache[this.locale][u] || u].concat(o));
591
591
  }
592
592
  __n() {
593
- const n = Array.prototype.slice.call(arguments), m = n.shift(), s = n.shift(), u = n.shift();
594
- let k = 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" && (k = n.pop()), this.cache[this.locale] || this._readLocaleFile();
597
- let h = u === 1 ? m : s;
598
- this.cache[this.locale][m] && (h = this.cache[this.locale][m][u === 1 ? "one" : "other"]), !this.cache[this.locale][m] && this.updateFiles ? (this.cache[this.locale][m] = {
599
- one: m,
596
+ typeof o[o.length - 1] == "function" && (_ = o.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] = {
599
+ one: u,
600
600
  other: s
601
601
  }, this._enqueueWrite({
602
602
  directory: this.directory,
603
603
  locale: this.locale,
604
- cb: k
605
- })) : k();
606
- const _ = [h];
607
- return ~h.indexOf("%d") && _.push(u), y.format.apply(y.format, _.concat(n));
604
+ cb: _
605
+ })) : _();
606
+ const h = [k];
607
+ return ~k.indexOf("%d") && h.push(r), I.format.apply(I.format, h.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 m in n)
618
- Object.prototype.hasOwnProperty.call(n, m) && (this.cache[this.locale][m] = n[m]);
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, ...m) {
620
+ _taggedLiteral(o, ...u) {
621
621
  let s = "";
622
- return n.forEach(function(u, k) {
623
- const h = m[k + 1];
624
- s += u, typeof h < "u" && (s += "%s");
625
- }), this.__.apply(this, [s].concat([].slice.call(m, 1)));
622
+ return o.forEach(function(r, _) {
623
+ const k = u[_ + 1];
624
+ s += r, typeof k < "u" && (s += "%s");
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, m = this.writeQueue[0], s = m.directory, u = m.locale, k = m.cb, h = this._resolveLocaleFile(s, u), _ = JSON.stringify(this.cache[u], null, 2);
632
- y.fs.writeFile(h, _, "utf-8", function(q) {
633
- n.writeQueue.shift(), n.writeQueue.length > 0 && n._processWriteQueue(), k(q);
631
+ const o = this, u = this.writeQueue[0], s = u.directory, r = u.locale, _ = u.cb, k = this._resolveLocaleFile(s, r), h = JSON.stringify(this.cache[r], null, 2);
632
+ I.fs.writeFile(k, h, "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 = {};
638
- const m = this._resolveLocaleFile(this.directory, this.locale);
637
+ let o = {};
638
+ const u = this._resolveLocaleFile(this.directory, this.locale);
639
639
  try {
640
- y.fs.readFileSync && (n = JSON.parse(y.fs.readFileSync(m, "utf-8")));
640
+ I.fs.readFileSync && (o = JSON.parse(I.fs.readFileSync(u, "utf-8")));
641
641
  } catch (s) {
642
- if (s instanceof SyntaxError && (s.message = "syntax error in " + m), s.code === "ENOENT")
643
- n = {};
642
+ if (s instanceof SyntaxError && (s.message = "syntax error in " + u), s.code === "ENOENT")
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, m) {
650
- let s = y.resolve(n, "./", m + ".json");
651
- if (this.fallbackToLanguage && !this._fileExistsSync(s) && ~m.lastIndexOf("_")) {
652
- const u = y.resolve(n, "./", m.split("_")[0] + ".json");
653
- this._fileExistsSync(u) && (s = u);
649
+ _resolveLocaleFile(o, u) {
650
+ let s = I.resolve(o, "./", u + ".json");
651
+ if (this.fallbackToLanguage && !this._fileExistsSync(s) && ~u.lastIndexOf("_")) {
652
+ const r = I.resolve(o, "./", u.split("_")[0] + ".json");
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 I.exists(o);
659
659
  }
660
660
  }
661
- function Ft(i, n) {
662
- y = n;
663
- const m = new Vt(i);
661
+ function Ke(i, o) {
662
+ I = o;
663
+ const u = new He(i);
664
664
  return {
665
- __: m.__.bind(m),
666
- __n: m.__n.bind(m),
667
- setLocale: m.setLocale.bind(m),
668
- getLocale: m.getLocale.bind(m),
669
- updateLocale: m.updateLocale.bind(m),
670
- locale: m.locale
665
+ __: u.__.bind(u),
666
+ __n: u.__n.bind(u),
667
+ setLocale: u.setLocale.bind(u),
668
+ getLocale: u.getLocale.bind(u),
669
+ updateLocale: u.updateLocale.bind(u),
670
+ locale: u.locale
671
671
  };
672
672
  }
673
- const Ht = (i) => Ft(i, jt);
674
- let O;
673
+ const $e = (i) => Ke(i, Fe);
674
+ let D;
675
675
  try {
676
- O = At(import.meta.url);
676
+ D = Te(import.meta.url);
677
677
  } catch {
678
- O = process.cwd();
678
+ D = process.cwd();
679
679
  }
680
- const $t = O.substring(0, O.lastIndexOf("node_modules"));
681
- $t || process.cwd(), process.cwd, process.exit, process.nextTick, typeof process.stdout.columns < "u" && process.stdout.columns, Ht({
682
- directory: at(O, "../../../locales"),
680
+ const We = D.substring(0, D.lastIndexOf("node_modules"));
681
+ We || process.cwd(), process.cwd, process.exit, process.nextTick, typeof process.stdout.columns < "u" && process.stdout.columns, $e({
682
+ directory: ae(D, "../../../locales"),
683
683
  updateFiles: !1
684
684
  });
685
- const it = [
685
+ const ie = [
686
686
  {
687
687
  id: "anthropic",
688
688
  name: "Anthropic",
@@ -2088,6 +2088,7 @@ const it = [
2088
2088
  ]
2089
2089
  }
2090
2090
  ],
2091
+ fallback_model_providers: ["openai", "anthropic"],
2091
2092
  models: [
2092
2093
  {
2093
2094
  id: "ada",
@@ -2168,464 +2169,6 @@ const it = [
2168
2169
  input_mtok: 2
2169
2170
  }
2170
2171
  },
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"
2500
- },
2501
- {
2502
- equals: "gpt-4o-mini-0718"
2503
- },
2504
- {
2505
- starts_with: "gpt-4o-mini-audio"
2506
- }
2507
- ]
2508
- },
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
- 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
2544
- }
2545
- },
2546
- {
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.",
2550
- match: {
2551
- or: [
2552
- {
2553
- equals: "gpt-5"
2554
- },
2555
- {
2556
- equals: "gpt-5-2025-08-07"
2557
- }
2558
- ]
2559
- },
2560
- context_window: 4e5,
2561
- prices: {
2562
- input_mtok: 1.25,
2563
- cache_read_mtok: 0.125,
2564
- output_mtok: 10
2565
- }
2566
- },
2567
- {
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.",
2571
- match: {
2572
- or: [
2573
- {
2574
- equals: "gpt-5-mini"
2575
- },
2576
- {
2577
- equals: "gpt-5-mini-2025-08-07"
2578
- }
2579
- ]
2580
- },
2581
- context_window: 4e5,
2582
- prices: {
2583
- input_mtok: 0.25,
2584
- cache_read_mtok: 0.025,
2585
- output_mtok: 2
2586
- }
2587
- },
2588
- {
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.",
2592
- match: {
2593
- or: [
2594
- {
2595
- equals: "gpt-5-nano"
2596
- },
2597
- {
2598
- equals: "gpt-5-nano-2025-04-14"
2599
- }
2600
- ]
2601
- },
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
- prices: {
2625
- input_mtok: 10,
2626
- output_mtok: 30
2627
- }
2628
- },
2629
2172
  {
2630
2173
  id: "mai-ds-r1:free",
2631
2174
  name: "MAI DS R1 (free)",
@@ -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
  },
@@ -3922,6 +3469,51 @@ Compared to other leading proprietary and open-weights models Command A delivers
3922
3469
  }
3923
3470
  }
3924
3471
  },
3472
+ {
3473
+ id: "gemini-3-flash-preview",
3474
+ name: "Gemini 3 Flash Preview",
3475
+ description: "Google's ultra-fast frontier model optimized for speed and efficiency. Delivers state-of-the-art performance while maintaining low latency and cost, with improved reasoning and coding capabilities.",
3476
+ match: {
3477
+ or: [
3478
+ {
3479
+ equals: "gemini-3-flash-preview"
3480
+ },
3481
+ {
3482
+ starts_with: "gemini-3-flash-preview-"
3483
+ }
3484
+ ]
3485
+ },
3486
+ context_window: 1e6,
3487
+ price_comments: "See https://ai.google.dev/gemini-api/docs/pricing. Standard pricing shown; Batch API offers 50% discount on input/output.",
3488
+ prices: {
3489
+ input_mtok: 0.5,
3490
+ cache_read_mtok: 0.05,
3491
+ output_mtok: 3,
3492
+ input_audio_mtok: 1,
3493
+ cache_audio_read_mtok: 0.1
3494
+ }
3495
+ },
3496
+ {
3497
+ id: "gemini-3-pro-image-preview",
3498
+ name: "Gemini 3 Pro Image Preview",
3499
+ description: "Google's image generation model optimized for high-quality image generation. Supports 1K/2K and 4K resolution outputs with flexible pricing based on image dimensions.",
3500
+ match: {
3501
+ or: [
3502
+ {
3503
+ starts_with: "gemini-3-pro-image-preview"
3504
+ },
3505
+ {
3506
+ equals: "gemini-3-pro-image-preview"
3507
+ }
3508
+ ]
3509
+ },
3510
+ context_window: 1e6,
3511
+ price_comments: "See https://ai.google.dev/gemini-api/docs/pricing#gemini-3-pro-image. Image output is priced at $120 per 1M tokens, with each 1K/2K image = 1120 tokens = $0.134/image and each 4K image = 2000 tokens = $0.24/image.",
3512
+ prices: {
3513
+ input_mtok: 2,
3514
+ output_mtok: 120
3515
+ }
3516
+ },
3925
3517
  {
3926
3518
  id: "gemini-3-pro-preview",
3927
3519
  name: "Gemini 3 Pro Preview",
@@ -3932,7 +3524,7 @@ Compared to other leading proprietary and open-weights models Command A delivers
3932
3524
  starts_with: "gemini-3-pro-preview"
3933
3525
  },
3934
3526
  {
3935
- starts_with: "gemini-3-pro-image-preview"
3527
+ equals: "gemini-3-pro-text-preview"
3936
3528
  }
3937
3529
  ]
3938
3530
  },
@@ -8775,18 +8367,6 @@ Compared to other leading proprietary and open-weights models Command A delivers
8775
8367
  output_mtok: 0.6
8776
8368
  }
8777
8369
  },
8778
- {
8779
- id: "mistral-small",
8780
- name: "Mistral Small",
8781
- 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.",
8782
- match: {
8783
- starts_with: "mistral-small"
8784
- },
8785
- prices: {
8786
- input_mtok: 0.2,
8787
- output_mtok: 0.6
8788
- }
8789
- },
8790
8370
  {
8791
8371
  id: "mistral-small-24b-instruct-2501",
8792
8372
  name: "Mistral Small 3",
@@ -10184,9 +9764,6 @@ Compared to other leading proprietary and open-weights models Command A delivers
10184
9764
  {
10185
9765
  equals: "gpt-5.2-pro-2025-12-11"
10186
9766
  },
10187
- {
10188
- equals: "gpt-5-2"
10189
- },
10190
9767
  {
10191
9768
  equals: "gpt-5-2-pro-2025-12-11"
10192
9769
  }
@@ -10903,6 +10480,96 @@ Compared to other leading proprietary and open-weights models Command A delivers
10903
10480
  output_mtok: 15
10904
10481
  }
10905
10482
  },
10483
+ {
10484
+ id: "anthropic/claude-haiku-4.5",
10485
+ match: {
10486
+ or: [
10487
+ {
10488
+ equals: "anthropic/claude-haiku-4.5"
10489
+ },
10490
+ {
10491
+ equals: "anthropic/claude-haiku-4.5:beta"
10492
+ }
10493
+ ]
10494
+ },
10495
+ prices: {
10496
+ input_mtok: 1,
10497
+ cache_write_mtok: 1.25,
10498
+ cache_read_mtok: 0.1,
10499
+ output_mtok: 5
10500
+ }
10501
+ },
10502
+ {
10503
+ id: "anthropic/claude-opus-4.5",
10504
+ match: {
10505
+ or: [
10506
+ {
10507
+ equals: "anthropic/claude-opus-4.5"
10508
+ },
10509
+ {
10510
+ equals: "anthropic/claude-opus-4.5:beta"
10511
+ }
10512
+ ]
10513
+ },
10514
+ prices: {
10515
+ input_mtok: 5,
10516
+ cache_write_mtok: 6.25,
10517
+ cache_read_mtok: 0.5,
10518
+ output_mtok: 25
10519
+ }
10520
+ },
10521
+ {
10522
+ id: "anthropic/claude-sonnet-4.5",
10523
+ match: {
10524
+ or: [
10525
+ {
10526
+ equals: "anthropic/claude-sonnet-4.5"
10527
+ },
10528
+ {
10529
+ equals: "anthropic/claude-sonnet-4.5:beta"
10530
+ }
10531
+ ]
10532
+ },
10533
+ context_window: 1e6,
10534
+ prices: {
10535
+ input_mtok: {
10536
+ base: 3,
10537
+ tiers: [
10538
+ {
10539
+ start: 2e5,
10540
+ price: 6
10541
+ }
10542
+ ]
10543
+ },
10544
+ cache_write_mtok: {
10545
+ base: 3.75,
10546
+ tiers: [
10547
+ {
10548
+ start: 2e5,
10549
+ price: 7.5
10550
+ }
10551
+ ]
10552
+ },
10553
+ cache_read_mtok: {
10554
+ base: 0.3,
10555
+ tiers: [
10556
+ {
10557
+ start: 2e5,
10558
+ price: 0.6
10559
+ }
10560
+ ]
10561
+ },
10562
+ output_mtok: {
10563
+ base: 15,
10564
+ tiers: [
10565
+ {
10566
+ start: 2e5,
10567
+ price: 22.5
10568
+ }
10569
+ ]
10570
+ }
10571
+ }
10572
+ },
10906
10573
  {
10907
10574
  id: "anubis-pro-105b-v1",
10908
10575
  name: "Anubis Pro 105B V1",
@@ -18221,104 +17888,181 @@ Compared to other leading proprietary and open-weights models Command A delivers
18221
17888
  cache_read_mtok: 0.75,
18222
17889
  output_mtok: 15
18223
17890
  }
17891
+ },
17892
+ {
17893
+ id: "grok-4-1-fast-non-reasoning",
17894
+ name: "Grok 4.1 Fast Non-Reasoning",
17895
+ description: "A frontier multimodal model optimized specifically for high-performance agentic tool calling.",
17896
+ match: {
17897
+ or: [
17898
+ {
17899
+ equals: "grok-4-1-fast-non-reasoning"
17900
+ },
17901
+ {
17902
+ equals: "grok-4-1-fast-non-reasoning-latest"
17903
+ }
17904
+ ]
17905
+ },
17906
+ context_window: 2e6,
17907
+ prices: {
17908
+ input_mtok: 0.2,
17909
+ cache_read_mtok: 0.05,
17910
+ output_mtok: 0.5
17911
+ }
17912
+ },
17913
+ {
17914
+ id: "grok-4-1-fast-reasoning",
17915
+ name: "Grok 4.1 Fast Reasoning",
17916
+ description: "A frontier multimodal model optimized specifically for high-performance agentic tool calling.",
17917
+ match: {
17918
+ or: [
17919
+ {
17920
+ equals: "grok-4-1-fast"
17921
+ },
17922
+ {
17923
+ equals: "grok-4-1-fast-reasoning"
17924
+ },
17925
+ {
17926
+ equals: "grok-4-1-fast-reasoning-latest"
17927
+ }
17928
+ ]
17929
+ },
17930
+ context_window: 2e6,
17931
+ prices: {
17932
+ input_mtok: 0.2,
17933
+ cache_read_mtok: 0.05,
17934
+ output_mtok: 0.5
17935
+ }
17936
+ },
17937
+ {
17938
+ id: "grok-code-fast-1",
17939
+ name: "Grok Code Fast 1",
17940
+ description: "A speedy and economical reasoning model that excels at agentic coding.",
17941
+ match: {
17942
+ or: [
17943
+ {
17944
+ equals: "grok-code-fast"
17945
+ },
17946
+ {
17947
+ equals: "grok-code-fast-1"
17948
+ },
17949
+ {
17950
+ equals: "grok-code-fast-1-0825"
17951
+ }
17952
+ ]
17953
+ },
17954
+ context_window: 256e3,
17955
+ prices: {
17956
+ input_mtok: 0.2,
17957
+ cache_read_mtok: 0.02,
17958
+ output_mtok: 1.5
17959
+ }
18224
17960
  }
18225
17961
  ]
18226
17962
  }
18227
17963
  ];
18228
- function Kt(i, n) {
18229
- if (n <= 0) return 0;
18230
- let m = 0;
18231
- const s = [...i.tiers].sort((h, _) => h.start - _.start), u = s[0]?.start ?? n, k = Math.min(n, u);
18232
- m += k * i.base / 1e6;
18233
- for (let h = 0; h < s.length; h++) {
18234
- const _ = s[h], q = s[h + 1]?.start ?? 1 / 0, B = Math.max(0, Math.min(n, q) - _.start);
18235
- B > 0 && (m += B * _.price / 1e6);
18236
- }
18237
- return m;
17964
+ function Ue(i, o, u) {
17965
+ if (o <= 0) return 0;
17966
+ let s = i.base;
17967
+ for (const r of i.tiers)
17968
+ u > r.start && (s = r.price);
17969
+ return s * o / 1e6;
18238
17970
  }
18239
- function C(i, n, m) {
18240
- return i === void 0 || n === void 0 ? 0 : typeof i == "number" ? i * n / 1e6 : Kt(i, n);
17971
+ function R(i, o, u, s) {
17972
+ return i === void 0 || o === void 0 ? 0 : typeof i == "number" ? i * o / 1e6 : Ue(i, o, s);
18241
17973
  }
18242
- function Wt(i, n) {
18243
- let m = 0, s = 0;
18244
- const u = i.cache_read_tokens ?? 0, k = i.cache_write_tokens ?? 0, h = i.cache_audio_read_tokens ?? 0, _ = i.output_audio_tokens ?? 0;
18245
- let q = i.input_audio_tokens ?? 0;
18246
- if (q -= h, q < 0)
17974
+ function Ye(i, o) {
17975
+ let u = 0, s = 0;
17976
+ const r = i.input_tokens ?? 0, _ = i.cache_read_tokens ?? 0, k = i.cache_write_tokens ?? 0, h = i.cache_audio_read_tokens ?? 0, q = i.output_audio_tokens ?? 0;
17977
+ let M = i.input_audio_tokens ?? 0;
17978
+ if (M -= h, M < 0)
18247
17979
  throw new Error("cache_audio_read_tokens cannot be greater than input_audio_tokens");
18248
17980
  let B = i.input_tokens ?? 0;
18249
- if (B -= u, B -= k, B -= q, B < 0)
17981
+ if (B -= _, B -= k, B -= M, B < 0)
18250
17982
  throw new Error("Uncached text input tokens cannot be negative");
18251
- let Q = u;
18252
- if (Q -= h, Q < 0)
17983
+ let S = _;
17984
+ if (S -= h, S < 0)
18253
17985
  throw new Error("cache_audio_read_tokens cannot be greater than cache_read_tokens");
18254
- m += C(n.input_mtok, B), m += C(n.cache_read_mtok, Q), m += C(n.cache_write_mtok, k), m += C(n.input_audio_mtok, q), m += C(n.cache_audio_read_mtok, h);
18255
- let P = i.output_tokens ?? 0;
18256
- if (P -= _, P < 0)
17986
+ u += R(o.input_mtok, B, "input_mtok", r), u += R(o.cache_read_mtok, S, "cache_read_mtok", r), u += R(o.cache_write_mtok, k, "cache_write_mtok", r), u += R(o.input_audio_mtok, M, "input_audio_mtok", r), u += R(o.cache_audio_read_mtok, h, "cache_audio_read_mtok", r);
17987
+ let A = i.output_tokens ?? 0;
17988
+ if (A -= q, A < 0)
18257
17989
  throw new Error("output_audio_tokens cannot be greater than output_tokens");
18258
- s += C(n.output_mtok, P), s += C(n.output_audio_mtok, i.output_audio_tokens);
18259
- let S = m + s;
18260
- return n.requests_kcount !== void 0 && (S += n.requests_kcount / 1e3), {
18261
- input_price: m,
17990
+ s += R(o.output_mtok, A, "output_mtok", r), s += R(o.output_audio_mtok, i.output_audio_tokens, "output_audio_mtok", r);
17991
+ let G = u + s;
17992
+ return o.requests_kcount !== void 0 && (G += o.requests_kcount / 1e3), {
17993
+ input_price: u,
18262
17994
  output_price: s,
18263
- total_price: S
17995
+ total_price: G
18264
17996
  };
18265
17997
  }
18266
- function Ut(i, n) {
17998
+ function Je(i, o) {
18267
17999
  if (!Array.isArray(i.prices))
18268
18000
  return i.prices;
18269
- for (let m = i.prices.length - 1; m >= 0; m--) {
18270
- const s = i.prices[m], u = s.constraint;
18271
- if (u === void 0)
18001
+ for (let u = i.prices.length - 1; u >= 0; u--) {
18002
+ const s = i.prices[u], r = s.constraint;
18003
+ if (r === void 0)
18272
18004
  return s.prices;
18273
- if (u.type === "start_date") {
18274
- if (n >= new Date(u.start_date))
18005
+ if (r.type === "start_date") {
18006
+ if (o >= new Date(r.start_date))
18275
18007
  return s.prices;
18276
18008
  } else {
18277
- const k = n.toISOString().slice(11, 19), h = u.start_time, _ = u.end_time;
18278
- if (_ < h) {
18279
- if (k >= h || k < _)
18009
+ const _ = o.toISOString().slice(11, 19), k = r.start_time, h = r.end_time;
18010
+ if (h < k) {
18011
+ if (_ >= k || _ < h)
18280
18012
  return s.prices;
18281
- } else if (k >= h && k < _)
18013
+ } else if (_ >= k && _ < h)
18282
18014
  return s.prices;
18283
18015
  }
18284
18016
  }
18285
18017
  return i.prices[0].prices;
18286
18018
  }
18287
- function E(i, n) {
18288
- return "or" in i ? i.or.some((m) => E(m, n)) : "and" in i ? i.and.every((m) => E(m, 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;
18019
+ function E(i, o) {
18020
+ 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;
18289
18021
  }
18290
- function Yt(i, n) {
18291
- const m = n.toLowerCase().trim(), s = i.find((u) => u.id === m);
18292
- return s || i.find((u) => u.provider_match && E(u.provider_match, m));
18022
+ function Ze(i, o) {
18023
+ const u = o.toLowerCase().trim(), s = i.find((r) => r.id === u);
18024
+ return s || i.find((r) => r.provider_match && E(r.provider_match, u));
18293
18025
  }
18294
- function Jt(i, { modelId: n, providerApiUrl: m, providerId: s }) {
18026
+ function Xe(i, { modelId: o, providerApiUrl: u, providerId: s }) {
18295
18027
  if (s)
18296
- return Yt(i, s);
18297
- if (m)
18298
- return i.find((u) => new RegExp(u.api_pattern).test(m));
18299
- if (n)
18300
- return i.find((u) => u.model_match && E(u.model_match, n));
18028
+ return Ze(i, s);
18029
+ if (u)
18030
+ return i.find((r) => new RegExp(r.api_pattern).test(u));
18031
+ if (o)
18032
+ return i.find((r) => r.model_match && E(r.model_match, o));
18033
+ }
18034
+ function et(i, o) {
18035
+ return i.find((u) => E(u.match, o));
18301
18036
  }
18302
- function Zt(i, n) {
18303
- return i.find((m) => E(m.match, n));
18037
+ function ge(i, o, u) {
18038
+ const s = et(i.models, o);
18039
+ if (s) return s;
18040
+ if (i.fallback_model_providers && u)
18041
+ for (const r of i.fallback_model_providers) {
18042
+ const _ = u.find((k) => k.id === r);
18043
+ if (_) {
18044
+ const k = ge(_, o);
18045
+ if (k) return k;
18046
+ }
18047
+ }
18304
18048
  }
18305
- let Xt = it;
18306
- Promise.resolve(it);
18307
- function te(i, n, m) {
18308
- const s = n.toLowerCase().trim(), u = m?.provider ?? Jt(Xt, { modelId: s, providerApiUrl: m?.providerApiUrl, providerId: m?.providerId });
18309
- if (!u) return null;
18310
- const k = Zt(u.models, s);
18311
- if (!k) return null;
18312
- const h = m?.timestamp ?? /* @__PURE__ */ new Date(), _ = Ut(k, h), q = Wt(i, _);
18049
+ let de = ie;
18050
+ Promise.resolve(ie);
18051
+ function tt(i, o, u) {
18052
+ const s = o.toLowerCase().trim(), r = u?.provider ?? Xe(de, { modelId: s, providerApiUrl: u?.providerApiUrl, providerId: u?.providerId });
18053
+ if (!r) return null;
18054
+ const _ = ge(r, s, de);
18055
+ if (!_) return null;
18056
+ const k = u?.timestamp ?? /* @__PURE__ */ new Date(), h = Je(_, k), q = Ye(i, h);
18313
18057
  return {
18314
18058
  auto_update_timestamp: void 0,
18315
- model: k,
18316
- model_price: _,
18317
- provider: u,
18059
+ model: _,
18060
+ model_price: h,
18061
+ provider: r,
18318
18062
  ...q
18319
18063
  };
18320
18064
  }
18321
- const f = dt(Gt(process.argv)).scriptName("genai-prices").command(
18065
+ const f = he(Re(process.argv)).scriptName("genai-prices").command(
18322
18066
  "list [provider]",
18323
18067
  "List providers and models",
18324
18068
  (i) => i.positional("provider", { describe: "Provider ID to filter", type: "string" })
@@ -18327,25 +18071,25 @@ const f = dt(Gt(process.argv)).scriptName("genai-prices").command(
18327
18071
  "Calculate price",
18328
18072
  (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" })
18329
18073
  ).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();
18330
- function ee() {
18074
+ function at() {
18331
18075
  if (f._[0] === "list") {
18332
- const m = it;
18076
+ const u = ie;
18333
18077
  if (f.provider) {
18334
- const s = m.find((u) => u.id === f.provider);
18078
+ const s = u.find((r) => r.id === f.provider);
18335
18079
  s || (console.error(`Provider ${f.provider} not found.`), process.exit(1)), console.log(`${s.name}: (${s.models.length} models)`);
18336
- for (const u of s.models)
18337
- console.log(` ${s.id}:${u.id}${u.name ? ": " + u.name : ""}`);
18080
+ for (const r of s.models)
18081
+ console.log(` ${s.id}:${r.id}${r.name ? ": " + r.name : ""}`);
18338
18082
  } else
18339
- for (const s of m) {
18083
+ for (const s of u) {
18340
18084
  console.log(`${s.name}: (${s.models.length} models)`);
18341
- for (const u of s.models)
18342
- console.log(` ${s.id}:${u.id}${u.name ? ": " + u.name : ""}`);
18085
+ for (const r of s.models)
18086
+ console.log(` ${s.id}:${r.id}${r.name ? ": " + r.name : ""}`);
18343
18087
  }
18344
18088
  process.exit(0);
18345
18089
  }
18346
- const n = f._[0] === "calc" ? Array.isArray(f.model) ? f.model : [f.model] : f._.filter((m) => typeof m == "string");
18347
- if (n.length > 0) {
18348
- const m = {
18090
+ const o = f._[0] === "calc" ? Array.isArray(f.model) ? f.model : [f.model] : f._.filter((u) => typeof u == "string");
18091
+ if (o.length > 0) {
18092
+ const u = {
18349
18093
  cache_audio_read_tokens: f["cache-audio-read-tokens"] !== void 0 ? Number(f["cache-audio-read-tokens"]) : void 0,
18350
18094
  cache_read_tokens: f["cache-read-tokens"] !== void 0 ? Number(f["cache-read-tokens"]) : void 0,
18351
18095
  cache_write_tokens: f["cache-write-tokens"] !== void 0 ? Number(f["cache-write-tokens"]) : void 0,
@@ -18355,34 +18099,34 @@ function ee() {
18355
18099
  output_tokens: f["output-tokens"] !== void 0 ? Number(f["output-tokens"]) : void 0,
18356
18100
  requests: f.requests !== void 0 ? Number(f.requests) : void 0
18357
18101
  }, s = f.timestamp ? new Date(String(f.timestamp)) : void 0;
18358
- let u = !1;
18359
- for (const k of n) {
18360
- let h, _ = k;
18361
- _.includes(":") && ([h, _] = _.split(":", 2));
18102
+ let r = !1;
18103
+ for (const _ of o) {
18104
+ let k, h = _;
18105
+ h.includes(":") && ([k, h] = h.split(":", 2));
18362
18106
  try {
18363
- const q = te(m, _, { providerId: h, timestamp: s });
18107
+ const q = tt(u, h, { providerId: k, timestamp: s });
18364
18108
  if (!q) {
18365
- u = !0, console.error(`No price found for model ${k}`);
18109
+ r = !0, console.error(`No price found for model ${_}`);
18366
18110
  continue;
18367
18111
  }
18368
- const B = q.model.context_window, Q = [
18112
+ const M = q.model.context_window, B = [
18369
18113
  ["Provider", q.provider.name],
18370
18114
  ["Model", q.model.name ?? q.model.id],
18371
18115
  ["Model Prices", JSON.stringify(q.model_price)],
18372
- ["Context Window", B !== void 0 ? B.toLocaleString() : void 0],
18116
+ ["Context Window", M !== void 0 ? M.toLocaleString() : void 0],
18373
18117
  ["Total Price", `$${q.total_price}`],
18374
18118
  ["Input Price", `$${q.input_price}`],
18375
18119
  ["Output Price", `$${q.output_price}`]
18376
18120
  ];
18377
- for (const [P, S] of Q)
18378
- S !== void 0 && console.log(`${P.padStart(14)}: ${S}`);
18121
+ for (const [S, A] of B)
18122
+ A !== void 0 && console.log(`${S.padStart(14)}: ${A}`);
18379
18123
  console.log("");
18380
18124
  } catch (q) {
18381
- u = !0, q instanceof Error && console.error(`Error for model ${k}:`, q.message);
18125
+ r = !0, q instanceof Error && console.error(`Error for model ${_}:`, q.message);
18382
18126
  }
18383
18127
  }
18384
- process.exit(u ? 1 : 0);
18128
+ process.exit(r ? 1 : 0);
18385
18129
  }
18386
- dt().showHelp(), process.exit(1);
18130
+ he().showHelp(), process.exit(1);
18387
18131
  }
18388
- ee();
18132
+ at();