@pydantic/genai-prices 0.0.52 → 0.0.53

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,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import _e from "yargs";
3
3
  import { format as ke } from "util";
4
- import { resolve as ie, normalize as Ae } from "path";
4
+ import { resolve as ie, normalize as Qe } from "path";
5
5
  import { readFileSync as ge, writeFile as Pe, statSync as Te } from "fs";
6
6
  import "assert";
7
7
  import { fileURLToPath as Se } from "url";
@@ -35,7 +35,7 @@ function $(i) {
35
35
  return u;
36
36
  }
37
37
  }
38
- function Ne(i, o) {
38
+ function Oe(i, o) {
39
39
  const u = i.toLowerCase();
40
40
  o = o || "-";
41
41
  let s = "";
@@ -45,7 +45,7 @@ function Ne(i, o) {
45
45
  }
46
46
  return s;
47
47
  }
48
- function Oe(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,7 +53,7 @@ function Oe(i) {
53
53
  * Copyright (c) 2016, Contributors
54
54
  * SPDX-License-Identifier: ISC
55
55
  */
56
- function De(i) {
56
+ function Ee(i) {
57
57
  if (Array.isArray(i))
58
58
  return i.map((h) => typeof h != "string" ? h + "" : h);
59
59
  i = i.trim();
@@ -73,17 +73,17 @@ function De(i) {
73
73
  * Copyright (c) 2016, Contributors
74
74
  * SPDX-License-Identifier: ISC
75
75
  */
76
- var A;
76
+ var Q;
77
77
  (function(i) {
78
78
  i.BOOLEAN = "boolean", i.STRING = "string", i.NUMBER = "number", i.ARRAY = "array";
79
- })(A || (A = {}));
79
+ })(Q || (Q = {}));
80
80
  /**
81
81
  * @license
82
82
  * Copyright (c) 2016, Contributors
83
83
  * SPDX-License-Identifier: ISC
84
84
  */
85
85
  let S;
86
- class Ee {
86
+ class De {
87
87
  constructor(o) {
88
88
  S = o;
89
89
  }
@@ -105,7 +105,7 @@ class Ee {
105
105
  number: void 0,
106
106
  __: void 0,
107
107
  key: void 0
108
- }, u), r = De(o), _ = typeof o == "string", h = je(Object.assign(/* @__PURE__ */ Object.create(null), s.alias)), k = Object.assign({
108
+ }, u), r = Ee(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 Ee {
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), 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 = {
127
+ }, s.configuration), q = Object.assign(/* @__PURE__ */ Object.create(null), s.default), I = s.configObjects || [], B = s.envPrefix, y = k["populate--"], L = y ? "--" : "_", 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),
@@ -170,9 +170,9 @@ class Ee {
170
170
  });
171
171
  });
172
172
  let M = null;
173
- Qe();
173
+ Ae();
174
174
  let j = [];
175
- const w = Object.assign(/* @__PURE__ */ Object.create(null), { _: [] }), se = {};
175
+ const b = 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
178
  let n, t, l, p, d, v;
@@ -182,39 +182,39 @@ class Ee {
182
182
  U(a);
183
183
  continue;
184
184
  } else if (a.match(/^--.+=/) || !k["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));
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]) : w(p[1], p[2], !0));
186
186
  else if (a.match(W) && k["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));
187
+ p = a.match(W), p !== null && Array.isArray(p) && p.length >= 2 && (t = p[1], w(t, g(t, m.arrays) ? [!1] : !1));
188
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))));
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) ? (w(t, d), e++) : w(t, z(t))));
190
190
  else if (a.match(/^-.\..+=/))
191
- p = a.match(/^-([^=]+)=([\s\S]*)$/), p !== null && Array.isArray(p) && p.length >= 3 && b(p[1], p[2]);
191
+ p = a.match(/^-([^=]+)=([\s\S]*)$/), p !== null && Array.isArray(p) && p.length >= 3 && w(p[1], p[2]);
192
192
  else if (a.match(/^-.\..+/) && !a.match(P))
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)));
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) ? (w(t, d), e++) : w(t, z(t)));
194
194
  else if (a.match(/^-[^-]+/) && !a.match(P)) {
195
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), n = !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) : w(t, v), n = !0;
199
199
  break;
200
200
  }
201
201
  if (d === "-") {
202
- b(l[x], d);
202
+ w(l[x], d);
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), n = !0;
206
+ w(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), n = !0;
210
+ w(l[x], d), n = !0;
211
211
  break;
212
212
  } else
213
- b(l[x], z(l[x]));
213
+ w(l[x], z(l[x]));
214
214
  }
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))));
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) ? (w(t, d), e++) : w(t, z(t))));
216
216
  } else if (a.match(/^-[0-9]$/) && a.match(P) && g(a.slice(1), m.bools))
217
- t = a.slice(1), b(t, z(t));
217
+ t = a.slice(1), w(t, z(t));
218
218
  else if (a === "--") {
219
219
  j = r.slice(e + 1);
220
220
  break;
@@ -224,23 +224,23 @@ class Ee {
224
224
  } else
225
225
  U(a);
226
226
  }
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
- N(w, e.split(".")) || b(e, 0);
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
- delete w[e];
227
+ me(b, !0), me(b, !1), fe(b), we(), ue(b, m.aliases, q, !0), be(b), k["set-placeholder-key"] && ve(b), Object.keys(m.counts).forEach(function(e) {
228
+ O(b, e.split(".")) || w(e, 0);
229
+ }), y && j.length && (b[L] = []), j.forEach(function(e) {
230
+ b[L].push(e);
231
+ }), k["camel-case-expansion"] && k["strip-dashed"] && Object.keys(b).filter((e) => e !== "--" && e.includes("-")).forEach((e) => {
232
+ delete b[e];
233
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];
234
+ k["camel-case-expansion"] && e.includes("-") && delete b[e.split(".").map((a) => $(a)).join(".")], delete b[e];
235
235
  });
236
236
  function U(e) {
237
237
  const a = K("_", e);
238
- (typeof a == "string" || typeof a == "number") && w._.push(a);
238
+ (typeof a == "string" || typeof a == "number") && b._.push(a);
239
239
  }
240
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 T(n) || (M = Error(C("Argument unexpected for: %s", a))), b(a, z(a)), e;
243
+ return T(n) || (M = Error(C("Argument unexpected for: %s", a))), w(a, z(a)), e;
244
244
  let p = T(n) ? 0 : 1;
245
245
  if (k["nargs-eats-options"])
246
246
  c.length - (e + 1) + p < l && (M = Error(C("Not enough arguments following: %s", a))), p = l;
@@ -250,8 +250,8 @@ class Ee {
250
250
  p < l && (M = Error(C("Not enough arguments following: %s", a)));
251
251
  }
252
252
  let d = Math.min(p, l);
253
- for (!T(n) && d > 0 && (b(a, n), d--), t = e + 1; t < d + e + 1; t++)
254
- b(a, c[t]);
253
+ for (!T(n) && d > 0 && (w(a, n), d--), t = e + 1; t < d + e + 1; t++)
254
+ w(a, c[t]);
255
255
  return e + d;
256
256
  }
257
257
  function F(e, a, c, n) {
@@ -269,9 +269,9 @@ class Ee {
269
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
270
  e = d, t.push(Y(a, l, _));
271
271
  }
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;
272
+ return typeof p == "number" && (p && t.length < p || isNaN(p) && t.length === 0) && (M = Error(C("Not enough arguments following: %s", a))), w(a, t), e;
273
273
  }
274
- function b(e, a, c = _) {
274
+ function w(e, a, c = _) {
275
275
  if (/-/.test(e) && k["camel-case-expansion"]) {
276
276
  const l = e.split(".").map(function(p) {
277
277
  return $(p);
@@ -279,13 +279,13 @@ class Ee {
279
279
  re(e, l);
280
280
  }
281
281
  const n = Y(e, a, c), t = e.split(".");
282
- O(w, t, n), m.aliases[e] && m.aliases[e].forEach(function(l) {
282
+ N(b, t, n), m.aliases[e] && m.aliases[e].forEach(function(l) {
283
283
  const p = l.split(".");
284
- O(w, p, n);
284
+ N(b, p, n);
285
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, n);
288
+ d.shift(), p = p.concat(d), (m.aliases[e] || []).includes(p.join(".")) || N(b, p, n);
289
289
  }), g(e, m.normalize) && !g(e, m.arrays) && [e].concat(m.aliases[e] || []).forEach(function(p) {
290
290
  Object.defineProperty(se, p, {
291
291
  enumerable: !0,
@@ -309,7 +309,7 @@ class Ee {
309
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
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;
312
+ return !k["parse-positional-numbers"] && e === "_" || !g(e, m.strings) && !g(e, m.bools) && !Array.isArray(a) && (Ne(a) && k["parse-numbers"] && Number.isSafeInteger(Math.floor(parseFloat(`${a}`))) || !T(a) && g(e, m.numbers)) && (a = Number(a)), a;
313
313
  }
314
314
  function fe(e) {
315
315
  const a = /* @__PURE__ */ Object.create(null);
@@ -340,11 +340,11 @@ class Ee {
340
340
  function J(e, a) {
341
341
  Object.keys(e).forEach(function(c) {
342
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);
343
+ typeof n == "object" && n !== null && !Array.isArray(n) && k["dot-notation"] ? J(n, t) : (!O(b, t.split(".")) || g(t, m.arrays) && k["combine-arrays"]) && w(t, n);
344
344
  });
345
345
  }
346
- function be() {
347
- typeof y < "u" && y.forEach(function(e) {
346
+ function we() {
347
+ typeof I < "u" && I.forEach(function(e) {
348
348
  J(e);
349
349
  });
350
350
  }
@@ -357,11 +357,11 @@ class Ee {
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("."), n[t]);
360
+ (a && m.configs[l.join(".")] || !a) && !O(e, l) && w(l.join("."), n[t]);
361
361
  }
362
362
  });
363
363
  }
364
- function we(e) {
364
+ function be(e) {
365
365
  let a;
366
366
  const c = /* @__PURE__ */ new Set();
367
367
  Object.keys(e).forEach(function(n) {
@@ -383,12 +383,12 @@ class Ee {
383
383
  }
384
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]), n && (ne[t] = !0), (a[t] || []).forEach(function(l) {
387
- N(e, l.split(".")) || O(e, l.split("."), c[t]);
386
+ O(e, t.split(".")) || (N(e, t.split("."), c[t]), n && (ne[t] = !0), (a[t] || []).forEach(function(l) {
387
+ O(e, l.split(".")) || N(e, l.split("."), c[t]);
388
388
  }));
389
389
  });
390
390
  }
391
- function N(e, a) {
391
+ function O(e, a) {
392
392
  let c = e;
393
393
  k["dot-notation"] || (a = [a.join(".")]), a.slice(0, -1).forEach(function(t) {
394
394
  c = c[t] || {};
@@ -396,7 +396,7 @@ class Ee {
396
396
  const n = a[a.length - 1];
397
397
  return typeof c != "object" ? !1 : n in c;
398
398
  }
399
- function O(e, a, c) {
399
+ function N(e, a, c) {
400
400
  let n = e;
401
401
  k["dot-notation"] || (a = [a.join(".")]), a.slice(0, -1).forEach(function(v) {
402
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];
@@ -415,7 +415,7 @@ class Ee {
415
415
  }
416
416
  }), m.aliases[c].concat(c).forEach(function(n) {
417
417
  if (n.length > 1 && /[A-Z]/.test(n) && k["camel-case-expansion"]) {
418
- const t = Ne(n, "-");
418
+ const t = Oe(n, "-");
419
419
  t !== c && m.aliases[c].indexOf(t) === -1 && (m.aliases[c].push(t), G[t] = !0);
420
420
  }
421
421
  }), m.aliases[c].forEach(function(n) {
@@ -442,7 +442,7 @@ class Ee {
442
442
  return t && ce(t[1]);
443
443
  });
444
444
  }
445
- function ye(e) {
445
+ function Ie(e) {
446
446
  if (e.match(P) || !e.match(/^-[^-]+/))
447
447
  return !1;
448
448
  let a = !0, c;
@@ -458,35 +458,35 @@ class Ee {
458
458
  return a;
459
459
  }
460
460
  function H(e) {
461
- return k["unknown-options-as-args"] && Ie(e);
461
+ return k["unknown-options-as-args"] && ye(e);
462
462
  }
463
- function Ie(e) {
464
- return e = e.replace(/^-{3,}/, "--"), e.match(P) || ye(e) ? !1 : !Be(e, /^-+([^=]+?)=[\s\S]*$/, W, /^-+([^=]+?)$/, /^-+([^=]+?)-$/, /^-+([^=]+?\d+)$/, /^-+([^=]+?)\W+.*$/);
463
+ function ye(e) {
464
+ return e = e.replace(/^-{3,}/, "--"), e.match(P) || Ie(e) ? !1 : !Be(e, /^-+([^=]+?)=[\s\S]*$/, W, /^-+([^=]+?)$/, /^-+([^=]+?)-$/, /^-+([^=]+?\d+)$/, /^-+([^=]+?)\W+.*$/);
465
465
  }
466
466
  function z(e) {
467
467
  return !g(e, m.bools) && !g(e, m.counts) && `${e}` in q ? q[e] : Le(Me(e));
468
468
  }
469
469
  function Le(e) {
470
470
  return {
471
- [A.BOOLEAN]: !0,
472
- [A.STRING]: "",
473
- [A.NUMBER]: void 0,
474
- [A.ARRAY]: []
471
+ [Q.BOOLEAN]: !0,
472
+ [Q.STRING]: "",
473
+ [Q.NUMBER]: void 0,
474
+ [Q.ARRAY]: []
475
475
  }[e];
476
476
  }
477
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;
478
+ let a = Q.BOOLEAN;
479
+ return g(e, m.strings) ? a = Q.STRING : g(e, m.numbers) ? a = Q.NUMBER : g(e, m.bools) ? a = Q.BOOLEAN : g(e, m.arrays) && (a = Q.ARRAY), a;
480
480
  }
481
481
  function T(e) {
482
482
  return e === void 0;
483
483
  }
484
- function Qe() {
484
+ function Ae() {
485
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(se, w),
489
+ argv: Object.assign(se, b),
490
490
  configuration: k,
491
491
  defaulted: Object.assign({}, ne),
492
492
  error: M,
@@ -540,11 +540,11 @@ const le = process && process.env && process.env.YARGS_MIN_NODE_VERSION ? Number
540
540
  if (de && Number(de.match(/^([^.]+)/)[1]) < le)
541
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
542
  const Fe = process ? process.env : {};
543
- new Ee({
543
+ new De({
544
544
  cwd: process.cwd,
545
545
  env: () => Fe,
546
546
  format: ke,
547
- normalize: Ae,
547
+ normalize: Qe,
548
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:
@@ -571,7 +571,7 @@ const Ke = {
571
571
  }
572
572
  }
573
573
  };
574
- let Q;
574
+ let A;
575
575
  class He {
576
576
  constructor(o) {
577
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 = [];
@@ -587,7 +587,7 @@ class He {
587
587
  directory: this.directory,
588
588
  locale: this.locale,
589
589
  cb: s
590
- })) : s(), Q.format.apply(Q.format, [this.cache[this.locale][u] || u].concat(o));
590
+ })) : s(), A.format.apply(A.format, [this.cache[this.locale][u] || u].concat(o));
591
591
  }
592
592
  __n() {
593
593
  const o = Array.prototype.slice.call(arguments), u = o.shift(), s = o.shift(), r = o.shift();
@@ -604,7 +604,7 @@ class He {
604
604
  cb: _
605
605
  })) : _();
606
606
  const k = [h];
607
- return ~h.indexOf("%d") && k.push(r), Q.format.apply(Q.format, k.concat(o));
607
+ return ~h.indexOf("%d") && k.push(r), A.format.apply(A.format, k.concat(o));
608
608
  }
609
609
  setLocale(o) {
610
610
  this.locale = o;
@@ -629,7 +629,7 @@ class He {
629
629
  }
630
630
  _processWriteQueue() {
631
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) {
632
+ A.fs.writeFile(h, k, "utf-8", function(q) {
633
633
  o.writeQueue.shift(), o.writeQueue.length > 0 && o._processWriteQueue(), _(q);
634
634
  });
635
635
  }
@@ -637,7 +637,7 @@ class He {
637
637
  let o = {};
638
638
  const u = this._resolveLocaleFile(this.directory, this.locale);
639
639
  try {
640
- Q.fs.readFileSync && (o = JSON.parse(Q.fs.readFileSync(u, "utf-8")));
640
+ A.fs.readFileSync && (o = JSON.parse(A.fs.readFileSync(u, "utf-8")));
641
641
  } catch (s) {
642
642
  if (s instanceof SyntaxError && (s.message = "syntax error in " + u), s.code === "ENOENT")
643
643
  o = {};
@@ -647,19 +647,19 @@ class He {
647
647
  this.cache[this.locale] = o;
648
648
  }
649
649
  _resolveLocaleFile(o, u) {
650
- let s = Q.resolve(o, "./", u + ".json");
650
+ let s = A.resolve(o, "./", u + ".json");
651
651
  if (this.fallbackToLanguage && !this._fileExistsSync(s) && ~u.lastIndexOf("_")) {
652
- const r = Q.resolve(o, "./", u.split("_")[0] + ".json");
652
+ const r = A.resolve(o, "./", u.split("_")[0] + ".json");
653
653
  this._fileExistsSync(r) && (s = r);
654
654
  }
655
655
  return s;
656
656
  }
657
657
  _fileExistsSync(o) {
658
- return Q.exists(o);
658
+ return A.exists(o);
659
659
  }
660
660
  }
661
661
  function $e(i, o) {
662
- Q = o;
662
+ A = o;
663
663
  const u = new He(i);
664
664
  return {
665
665
  __: u.__.bind(u),
@@ -671,15 +671,15 @@ function $e(i, o) {
671
671
  };
672
672
  }
673
673
  const We = (i) => $e(i, Ke);
674
- let D;
674
+ let E;
675
675
  try {
676
- D = Se(import.meta.url);
676
+ E = Se(import.meta.url);
677
677
  } catch {
678
- D = process.cwd();
678
+ E = process.cwd();
679
679
  }
680
- const Ue = D.substring(0, D.lastIndexOf("node_modules"));
680
+ const Ue = E.substring(0, E.lastIndexOf("node_modules"));
681
681
  Ue || process.cwd(), process.cwd, process.exit, process.nextTick, typeof process.stdout.columns < "u" && process.stdout.columns, We({
682
- directory: ie(D, "../../../locales"),
682
+ directory: ie(E, "../../../locales"),
683
683
  updateFiles: !1
684
684
  });
685
685
  const oe = [
@@ -1022,6 +1022,66 @@ const oe = [
1022
1022
  output_mtok: 25
1023
1023
  }
1024
1024
  },
1025
+ {
1026
+ id: "claude-opus-4-6",
1027
+ name: "Claude Opus 4.6",
1028
+ description: "Most intelligent model with adaptive thinking and 1M context beta",
1029
+ match: {
1030
+ or: [
1031
+ {
1032
+ starts_with: "claude-opus-4-6"
1033
+ },
1034
+ {
1035
+ starts_with: "claude-opus-4.6"
1036
+ },
1037
+ {
1038
+ starts_with: "claude-4-6-opus"
1039
+ },
1040
+ {
1041
+ starts_with: "claude-4.6-opus"
1042
+ }
1043
+ ]
1044
+ },
1045
+ context_window: 2e5,
1046
+ prices: {
1047
+ input_mtok: {
1048
+ base: 5,
1049
+ tiers: [
1050
+ {
1051
+ start: 2e5,
1052
+ price: 10
1053
+ }
1054
+ ]
1055
+ },
1056
+ cache_write_mtok: {
1057
+ base: 6.25,
1058
+ tiers: [
1059
+ {
1060
+ start: 2e5,
1061
+ price: 12.5
1062
+ }
1063
+ ]
1064
+ },
1065
+ cache_read_mtok: {
1066
+ base: 0.5,
1067
+ tiers: [
1068
+ {
1069
+ start: 2e5,
1070
+ price: 1
1071
+ }
1072
+ ]
1073
+ },
1074
+ output_mtok: {
1075
+ base: 25,
1076
+ tiers: [
1077
+ {
1078
+ start: 2e5,
1079
+ price: 37.5
1080
+ }
1081
+ ]
1082
+ }
1083
+ }
1084
+ },
1025
1085
  {
1026
1086
  id: "claude-sonnet-4-0",
1027
1087
  name: "Claude Sonnet 4",
@@ -2856,6 +2916,20 @@ Compared to other leading proprietary and open-weights models Command A delivers
2856
2916
  output_mtok: 0.9
2857
2917
  }
2858
2918
  },
2919
+ {
2920
+ id: "deepseek-v3p2",
2921
+ name: "Deepseek V3.2",
2922
+ description: "Model from Deepseek that harmonizes high computational efficiency with superior reasoning and agent performance. 675B parameter MoE model.",
2923
+ match: {
2924
+ equals: "accounts/fireworks/models/deepseek-v3p2"
2925
+ },
2926
+ context_window: 163840,
2927
+ prices: {
2928
+ input_mtok: 0.56,
2929
+ cache_read_mtok: 0.28,
2930
+ output_mtok: 1.68
2931
+ }
2932
+ },
2859
2933
  {
2860
2934
  id: "gemma-3-27b-it",
2861
2935
  name: "Gemma 3 27B Instruct",
@@ -2869,6 +2943,61 @@ Compared to other leading proprietary and open-weights models Command A delivers
2869
2943
  output_mtok: 0.1
2870
2944
  }
2871
2945
  },
2946
+ {
2947
+ id: "glm-4p7",
2948
+ name: "GLM-4.7",
2949
+ description: "Next-generation general-purpose model from Z.ai optimized for coding, reasoning, and agentic workflows. 352B parameter MoE model with advanced thinking controls.",
2950
+ match: {
2951
+ equals: "accounts/fireworks/models/glm-4p7"
2952
+ },
2953
+ context_window: 202752,
2954
+ prices: {
2955
+ input_mtok: 0.6,
2956
+ output_mtok: 2.2
2957
+ }
2958
+ },
2959
+ {
2960
+ id: "gpt-oss-120b",
2961
+ name: "OpenAI gpt-oss-120b",
2962
+ description: "OpenAI's open-weight 117B parameter MoE model designed for production, general purpose, high reasoning use-cases. Features powerful reasoning, agentic tasks, and versatile developer use cases.",
2963
+ match: {
2964
+ equals: "accounts/fireworks/models/gpt-oss-120b"
2965
+ },
2966
+ context_window: 131072,
2967
+ prices: {
2968
+ input_mtok: 0.15,
2969
+ cache_read_mtok: 0.07,
2970
+ output_mtok: 0.6
2971
+ }
2972
+ },
2973
+ {
2974
+ id: "gpt-oss-20b",
2975
+ name: "OpenAI gpt-oss-20b",
2976
+ description: "OpenAI's open-weight 21.5B parameter model designed for powerful reasoning, agentic tasks, and versatile developer use cases. Optimized for lower latency and local or specialized tasks.",
2977
+ match: {
2978
+ equals: "accounts/fireworks/models/gpt-oss-20b"
2979
+ },
2980
+ context_window: 131072,
2981
+ prices: {
2982
+ input_mtok: 0.07,
2983
+ cache_read_mtok: 0.04,
2984
+ output_mtok: 0.3
2985
+ }
2986
+ },
2987
+ {
2988
+ id: "kimi-k2p5",
2989
+ name: "Kimi K2.5",
2990
+ description: "Moonshot AI's flagship agentic model. Unifies vision and text, thinking and non-thinking modes, and single-agent and multi-agent execution into one model. 1T parameter MoE model.",
2991
+ match: {
2992
+ equals: "accounts/fireworks/models/kimi-k2p5"
2993
+ },
2994
+ context_window: 262144,
2995
+ prices: {
2996
+ input_mtok: 0.6,
2997
+ cache_read_mtok: 0.1,
2998
+ output_mtok: 3
2999
+ }
3000
+ },
2872
3001
  {
2873
3002
  id: "llama-v3p1-8b-instruct",
2874
3003
  name: "Llama 3.1 8B Instruct",
@@ -2896,6 +3025,19 @@ Compared to other leading proprietary and open-weights models Command A delivers
2896
3025
  output_mtok: 0.88
2897
3026
  }
2898
3027
  },
3028
+ {
3029
+ id: "minimax-m2p1",
3030
+ name: "MiniMax-M2.1",
3031
+ description: "Built for strong real-world performance across complex, multi-language, and agent-driven workflows. 228B parameter model with robust support for systems, backend, web, mobile, and office-style tasks.",
3032
+ match: {
3033
+ equals: "accounts/fireworks/models/minimax-m2p1"
3034
+ },
3035
+ context_window: 204800,
3036
+ prices: {
3037
+ input_mtok: 0.3,
3038
+ output_mtok: 1.2
3039
+ }
3040
+ },
2899
3041
  {
2900
3042
  id: "qwen2p5-vl-72b-instruct",
2901
3043
  name: "Qwen2.5-VL 72B Instruct",
@@ -3168,7 +3310,16 @@ Compared to other leading proprietary and open-weights models Command A delivers
3168
3310
  contains: "claude-4-opus"
3169
3311
  },
3170
3312
  {
3171
- contains: "claude-opus-4"
3313
+ contains: "claude-opus-4@"
3314
+ },
3315
+ {
3316
+ contains: "claude-opus-4-0"
3317
+ },
3318
+ {
3319
+ contains: "claude-opus-4-1"
3320
+ },
3321
+ {
3322
+ equals: "claude-opus-4"
3172
3323
  }
3173
3324
  ]
3174
3325
  },
@@ -3200,6 +3351,64 @@ Compared to other leading proprietary and open-weights models Command A delivers
3200
3351
  output_mtok: 15
3201
3352
  }
3202
3353
  },
3354
+ {
3355
+ id: "claude-opus-4-6",
3356
+ match: {
3357
+ or: [
3358
+ {
3359
+ contains: "claude-4-6-opus"
3360
+ },
3361
+ {
3362
+ contains: "claude-opus-4-6"
3363
+ },
3364
+ {
3365
+ contains: "claude-4.6-opus"
3366
+ },
3367
+ {
3368
+ contains: "claude-opus-4.6"
3369
+ }
3370
+ ]
3371
+ },
3372
+ context_window: 2e5,
3373
+ prices: {
3374
+ input_mtok: {
3375
+ base: 5,
3376
+ tiers: [
3377
+ {
3378
+ start: 2e5,
3379
+ price: 10
3380
+ }
3381
+ ]
3382
+ },
3383
+ cache_write_mtok: {
3384
+ base: 6.25,
3385
+ tiers: [
3386
+ {
3387
+ start: 2e5,
3388
+ price: 12.5
3389
+ }
3390
+ ]
3391
+ },
3392
+ cache_read_mtok: {
3393
+ base: 0.5,
3394
+ tiers: [
3395
+ {
3396
+ start: 2e5,
3397
+ price: 1
3398
+ }
3399
+ ]
3400
+ },
3401
+ output_mtok: {
3402
+ base: 25,
3403
+ tiers: [
3404
+ {
3405
+ start: 2e5,
3406
+ price: 37.5
3407
+ }
3408
+ ]
3409
+ }
3410
+ }
3411
+ },
3203
3412
  {
3204
3413
  id: "gemini-1.0-pro-vision-001",
3205
3414
  name: "gemini 1.0 pro vision",
@@ -9673,6 +9882,12 @@ Compared to other leading proprietary and open-weights models Command A delivers
9673
9882
  {
9674
9883
  equals: "gpt-5.1-codex"
9675
9884
  },
9885
+ {
9886
+ equals: "gpt-5.1-codex-max"
9887
+ },
9888
+ {
9889
+ equals: "gpt-5.1-chat"
9890
+ },
9676
9891
  {
9677
9892
  equals: "gpt-5.1-chat-latest"
9678
9893
  },
@@ -9685,6 +9900,12 @@ Compared to other leading proprietary and open-weights models Command A delivers
9685
9900
  {
9686
9901
  equals: "gpt-5-1-codex"
9687
9902
  },
9903
+ {
9904
+ equals: "gpt-5-1-codex-max"
9905
+ },
9906
+ {
9907
+ equals: "gpt-5-1-chat"
9908
+ },
9688
9909
  {
9689
9910
  equals: "gpt-5-1-chat-latest"
9690
9911
  }
@@ -9741,6 +9962,15 @@ Compared to other leading proprietary and open-weights models Command A delivers
9741
9962
  {
9742
9963
  equals: "gpt-5-2-2025-12-11"
9743
9964
  },
9965
+ {
9966
+ equals: "gpt-5.2-chat"
9967
+ },
9968
+ {
9969
+ equals: "gpt-5.2-chat-latest"
9970
+ },
9971
+ {
9972
+ equals: "gpt-5-2-chat"
9973
+ },
9744
9974
  {
9745
9975
  equals: "gpt-5-2-chat-latest"
9746
9976
  },
@@ -10524,6 +10754,57 @@ Compared to other leading proprietary and open-weights models Command A delivers
10524
10754
  output_mtok: 25
10525
10755
  }
10526
10756
  },
10757
+ {
10758
+ id: "anthropic/claude-opus-4.6",
10759
+ match: {
10760
+ or: [
10761
+ {
10762
+ equals: "anthropic/claude-opus-4.6"
10763
+ },
10764
+ {
10765
+ equals: "anthropic/claude-opus-4.6:beta"
10766
+ }
10767
+ ]
10768
+ },
10769
+ prices: {
10770
+ input_mtok: {
10771
+ base: 5,
10772
+ tiers: [
10773
+ {
10774
+ start: 2e5,
10775
+ price: 10
10776
+ }
10777
+ ]
10778
+ },
10779
+ cache_write_mtok: {
10780
+ base: 6.25,
10781
+ tiers: [
10782
+ {
10783
+ start: 2e5,
10784
+ price: 12.5
10785
+ }
10786
+ ]
10787
+ },
10788
+ cache_read_mtok: {
10789
+ base: 0.5,
10790
+ tiers: [
10791
+ {
10792
+ start: 2e5,
10793
+ price: 1
10794
+ }
10795
+ ]
10796
+ },
10797
+ output_mtok: {
10798
+ base: 25,
10799
+ tiers: [
10800
+ {
10801
+ start: 2e5,
10802
+ price: 37.5
10803
+ }
10804
+ ]
10805
+ }
10806
+ }
10807
+ },
10527
10808
  {
10528
10809
  id: "anthropic/claude-sonnet-4.5",
10529
10810
  match: {
@@ -15665,10 +15946,10 @@ Compared to other leading proprietary and open-weights models Command A delivers
15665
15946
  prices: {}
15666
15947
  },
15667
15948
  {
15668
- id: "qwen/qwen3-max-thinking",
15669
- name: "Qwen 3 Max Thinking",
15949
+ id: "qwen/qwen3-max",
15950
+ name: "Qwen 3 Max",
15670
15951
  match: {
15671
- equals: "qwen/qwen3-max-thinking"
15952
+ equals: "qwen/qwen3-max"
15672
15953
  },
15673
15954
  prices: {
15674
15955
  input_mtok: 1.2,
@@ -18047,16 +18328,16 @@ function R(i, o, u, s) {
18047
18328
  function Je(i, o) {
18048
18329
  let u = 0, s = 0;
18049
18330
  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)
18331
+ let I = i.input_audio_tokens ?? 0;
18332
+ if (I -= k, I < 0)
18052
18333
  throw new Error("cache_audio_read_tokens cannot be greater than input_audio_tokens");
18053
18334
  let B = i.input_tokens ?? 0;
18054
- if (B -= _, B -= h, B -= y, B < 0)
18335
+ if (B -= _, B -= h, B -= I, B < 0)
18055
18336
  throw new Error("Uncached text input tokens cannot be negative");
18056
- let I = _;
18057
- if (I -= k, I < 0)
18337
+ let y = _;
18338
+ if (y -= k, y < 0)
18058
18339
  throw new Error("cache_audio_read_tokens cannot be greater than cache_read_tokens");
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);
18340
+ u += R(o.input_mtok, B, "input_mtok", r), u += R(o.cache_read_mtok, y, "cache_read_mtok", r), u += R(o.cache_write_mtok, h, "cache_write_mtok", r), u += R(o.input_audio_mtok, I, "input_audio_mtok", r), u += R(o.cache_audio_read_mtok, k, "cache_audio_read_mtok", r);
18060
18341
  let L = i.output_tokens ?? 0;
18061
18342
  if (L -= q, L < 0)
18062
18343
  throw new Error("output_audio_tokens cannot be greater than output_tokens");
@@ -18089,12 +18370,12 @@ function Ze(i, o) {
18089
18370
  }
18090
18371
  return i.prices[0].prices;
18091
18372
  }
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;
18373
+ function D(i, o) {
18374
+ return "or" in i ? i.or.some((u) => D(u, o)) : "and" in i ? i.and.every((u) => D(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;
18094
18375
  }
18095
18376
  function Xe(i, o) {
18096
18377
  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));
18378
+ return s || i.find((r) => r.provider_match && D(r.provider_match, u));
18098
18379
  }
18099
18380
  function he(i, { modelId: o, providerApiUrl: u, providerId: s }) {
18100
18381
  if (s) {
@@ -18105,10 +18386,10 @@ function he(i, { modelId: o, providerApiUrl: u, providerId: s }) {
18105
18386
  if (u)
18106
18387
  return i.find((r) => new RegExp(r.api_pattern).test(u));
18107
18388
  if (o)
18108
- return i.find((r) => r.model_match && E(r.model_match, o));
18389
+ return i.find((r) => r.model_match && D(r.model_match, o));
18109
18390
  }
18110
18391
  function et(i, o) {
18111
- return i.find((u) => E(u.match, o));
18392
+ return i.find((u) => D(u.match, o));
18112
18393
  }
18113
18394
  function qe(i, o, u) {
18114
18395
  const s = et(i.models, o);
@@ -18127,20 +18408,20 @@ Promise.resolve(oe);
18127
18408
  function tt(i, o, u) {
18128
18409
  let s = o.toLowerCase().trim(), r = u?.providerId;
18129
18410
  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);
18411
+ const B = s.indexOf("/"), y = s.slice(0, B), L = s.slice(B + 1);
18412
+ y && L && he(ae, { providerId: y }) && (r = y, s = L);
18132
18413
  }
18133
18414
  const _ = u?.provider ?? he(ae, { modelId: s, providerApiUrl: u?.providerApiUrl, providerId: r });
18134
18415
  if (!_) return null;
18135
18416
  const h = qe(_, s, ae);
18136
18417
  if (!h) return null;
18137
- const k = u?.timestamp ?? /* @__PURE__ */ new Date(), q = Ze(h, k), y = Je(i, q);
18418
+ const k = u?.timestamp ?? /* @__PURE__ */ new Date(), q = Ze(h, k), I = Je(i, q);
18138
18419
  return {
18139
18420
  auto_update_timestamp: void 0,
18140
18421
  model: h,
18141
18422
  model_price: q,
18142
18423
  provider: _,
18143
- ...y
18424
+ ...I
18144
18425
  };
18145
18426
  }
18146
18427
  const f = _e(ze(process.argv)).scriptName("genai-prices").command(
@@ -18190,17 +18471,17 @@ function at() {
18190
18471
  r = !0, console.error(`No price found for model ${_}`);
18191
18472
  continue;
18192
18473
  }
18193
- const y = q.model.context_window, B = [
18474
+ const I = q.model.context_window, B = [
18194
18475
  ["Provider", q.provider.name],
18195
18476
  ["Model", q.model.name ?? q.model.id],
18196
18477
  ["Model Prices", JSON.stringify(q.model_price)],
18197
- ["Context Window", y !== void 0 ? y.toLocaleString() : void 0],
18478
+ ["Context Window", I !== void 0 ? I.toLocaleString() : void 0],
18198
18479
  ["Total Price", `$${q.total_price}`],
18199
18480
  ["Input Price", `$${q.input_price}`],
18200
18481
  ["Output Price", `$${q.output_price}`]
18201
18482
  ];
18202
- for (const [I, L] of B)
18203
- L !== void 0 && console.log(`${I.padStart(14)}: ${L}`);
18483
+ for (const [y, L] of B)
18484
+ L !== void 0 && console.log(`${y.padStart(14)}: ${L}`);
18204
18485
  console.log("");
18205
18486
  } catch (q) {
18206
18487
  r = !0, q instanceof Error && console.error(`Error for model ${_}:`, q.message);