@pydantic/genai-prices 0.0.53 → 0.0.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -1,21 +1,21 @@
1
1
  #!/usr/bin/env node
2
2
  import _e from "yargs";
3
3
  import { format as ke } from "util";
4
- import { resolve as ie, normalize as Qe } from "path";
4
+ import { resolve as ie, normalize as Ae } 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";
8
- function Ge() {
9
- return Ce() ? 0 : 1;
10
- }
11
8
  function Ce() {
9
+ return Ge() ? 0 : 1;
10
+ }
11
+ function Ge() {
12
12
  return Re() && !process.defaultApp;
13
13
  }
14
14
  function Re() {
15
15
  return !!process.versions.electron;
16
16
  }
17
17
  function ze(i) {
18
- return i.slice(Ge() + 1);
18
+ return i.slice(Ce() + 1);
19
19
  }
20
20
  /**
21
21
  * @license
@@ -45,7 +45,7 @@ function Oe(i, o) {
45
45
  }
46
46
  return s;
47
47
  }
48
- function Ne(i) {
48
+ function De(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 Ne(i) {
53
53
  * Copyright (c) 2016, Contributors
54
54
  * SPDX-License-Identifier: ISC
55
55
  */
56
- function Ee(i) {
56
+ function Ne(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 Ee(i) {
73
73
  * Copyright (c) 2016, Contributors
74
74
  * SPDX-License-Identifier: ISC
75
75
  */
76
- var Q;
76
+ var A;
77
77
  (function(i) {
78
78
  i.BOOLEAN = "boolean", i.STRING = "string", i.NUMBER = "number", i.ARRAY = "array";
79
- })(Q || (Q = {}));
79
+ })(A || (A = {}));
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 De {
86
+ class Ee {
87
87
  constructor(o) {
88
88
  S = o;
89
89
  }
@@ -105,7 +105,7 @@ class De {
105
105
  number: void 0,
106
106
  __: void 0,
107
107
  key: void 0
108
- }, u), r = Ee(o), _ = typeof o == "string", h = je(Object.assign(/* @__PURE__ */ Object.create(null), s.alias)), k = Object.assign({
108
+ }, u), r = Ne(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 De {
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), 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 = {
127
+ }, s.configuration), q = Object.assign(/* @__PURE__ */ Object.create(null), s.default), I = s.configObjects || [], B = s.envPrefix, y = k["populate--"], L = y ? "--" : "_", C = /* @__PURE__ */ Object.create(null), ne = /* @__PURE__ */ Object.create(null), G = 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,13 +170,13 @@ class De {
170
170
  });
171
171
  });
172
172
  let M = null;
173
- Ae();
173
+ Qe();
174
174
  let j = [];
175
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;
179
- if (a !== "--" && /^-/.test(a) && H(a))
179
+ if (a !== "--" && /^-/.test(a) && K(a))
180
180
  U(a);
181
181
  else if (c.match(/^---+(=|$)/)) {
182
182
  U(a);
@@ -234,20 +234,20 @@ class De {
234
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
- const a = K("_", e);
237
+ const a = H("_", e);
238
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))), w(a, z(a)), e;
243
+ return T(n) || (M = Error(G("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
- c.length - (e + 1) + p < l && (M = Error(C("Not enough arguments following: %s", a))), p = l;
246
+ c.length - (e + 1) + p < l && (M = Error(G("Not enough arguments following: %s", a))), p = l;
247
247
  else {
248
- for (t = e + 1; t < c.length && (!c[t].match(/^-[^0-9]/) || c[t].match(P) || H(c[t])); t++)
248
+ for (t = e + 1; t < c.length && (!c[t].match(/^-[^0-9]/) || c[t].match(P) || K(c[t])); t++)
249
249
  p++;
250
- p < l && (M = Error(C("Not enough arguments following: %s", a)));
250
+ p < l && (M = Error(G("Not enough arguments following: %s", a)));
251
251
  }
252
252
  let d = Math.min(p, l);
253
253
  for (!T(n) && d > 0 && (w(a, n), d--), t = e + 1; t < d + e + 1; t++)
@@ -259,17 +259,17 @@ class De {
259
259
  const p = g(a, m.nargs);
260
260
  if (g(a, m.bools) && !/^(true|false)$/.test(l))
261
261
  t.push(!0);
262
- else if (T(l) || T(n) && /^-/.test(l) && !P.test(l) && !H(l)) {
262
+ else if (T(l) || T(n) && /^-/.test(l) && !P.test(l) && !K(l)) {
263
263
  if (q[a] !== void 0) {
264
264
  const d = q[a];
265
265
  t = Array.isArray(d) ? d : [d];
266
266
  }
267
267
  } else {
268
268
  T(n) || t.push(Y(a, n, !0));
269
- for (let d = e + 1; d < c.length && !(!k["greedy-arrays"] && t.length > 0 || p && typeof p == "number" && t.length >= p || (l = c[d], /^-/.test(l) && !P.test(l) && !H(l))); d++)
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) && !K(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))), w(a, t), e;
272
+ return typeof p == "number" && (p && t.length < p || isNaN(p) && t.length === 0) && (M = Error(G("Not enough arguments following: %s", a))), w(a, t), e;
273
273
  }
274
274
  function w(e, a, c = _) {
275
275
  if (/-/.test(e) && k["camel-case-expansion"]) {
@@ -279,13 +279,13 @@ class De {
279
279
  re(e, l);
280
280
  }
281
281
  const n = Y(e, a, c), t = e.split(".");
282
- N(b, t, n), m.aliases[e] && m.aliases[e].forEach(function(l) {
282
+ D(b, t, n), m.aliases[e] && m.aliases[e].forEach(function(l) {
283
283
  const p = l.split(".");
284
- N(b, p, n);
284
+ D(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(".")) || N(b, p, n);
288
+ d.shift(), p = p.concat(d), (m.aliases[e] || []).includes(p.join(".")) || D(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,
@@ -299,17 +299,17 @@ class De {
299
299
  });
300
300
  }
301
301
  function re(e, a) {
302
- m.aliases[e] && m.aliases[e].length || (m.aliases[e] = [a], G[a] = !0), m.aliases[a] && m.aliases[a].length || re(a, e);
302
+ m.aliases[e] && m.aliases[e].length || (m.aliases[e] = [a], C[a] = !0), m.aliases[a] && m.aliases[a].length || re(a, e);
303
303
  }
304
304
  function Y(e, a, c) {
305
305
  c && (a = Ve(a)), (g(e, m.bools) || g(e, m.counts)) && typeof a == "string" && (a = a === "true");
306
306
  let n = Array.isArray(a) ? a.map(function(t) {
307
- return K(e, t);
308
- }) : K(e, a);
307
+ return H(e, t);
308
+ }) : H(e, a);
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
- function K(e, 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;
311
+ function H(e, a) {
312
+ return !k["parse-positional-numbers"] && e === "_" || !g(e, m.strings) && !g(e, m.bools) && !Array.isArray(a) && (De(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);
@@ -333,7 +333,7 @@ class De {
333
333
  t = S.require(l);
334
334
  J(t);
335
335
  } catch (t) {
336
- t.name === "PermissionDenied" ? M = t : e[c] && (M = Error(C("Invalid JSON config file: %s", n)));
336
+ t.name === "PermissionDenied" ? M = t : e[c] && (M = Error(G("Invalid JSON config file: %s", n)));
337
337
  }
338
338
  });
339
339
  }
@@ -367,7 +367,7 @@ class De {
367
367
  Object.keys(e).forEach(function(n) {
368
368
  if (!c.has(n) && (a = g(n, m.coercions), typeof a == "function"))
369
369
  try {
370
- const t = K(n, a(e[n]));
370
+ const t = H(n, a(e[n]));
371
371
  [].concat(m.aliases[n] || [], n).forEach((l) => {
372
372
  c.add(l), e[l] = t;
373
373
  });
@@ -383,8 +383,8 @@ class De {
383
383
  }
384
384
  function ue(e, a, c, n = !1) {
385
385
  Object.keys(c).forEach(function(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]);
386
+ O(e, t.split(".")) || (D(e, t.split("."), c[t]), n && (ne[t] = !0), (a[t] || []).forEach(function(l) {
387
+ O(e, l.split(".")) || D(e, l.split("."), c[t]);
388
388
  }));
389
389
  });
390
390
  }
@@ -396,7 +396,7 @@ class De {
396
396
  const n = a[a.length - 1];
397
397
  return typeof c != "object" ? !1 : n in c;
398
398
  }
399
- function N(e, a, c) {
399
+ function D(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];
@@ -411,12 +411,12 @@ class De {
411
411
  m.aliases[c] || (m.aliases[c] = [].concat(h[c] || []), m.aliases[c].concat(c).forEach(function(n) {
412
412
  if (/-/.test(n) && k["camel-case-expansion"]) {
413
413
  const t = $(n);
414
- t !== c && m.aliases[c].indexOf(t) === -1 && (m.aliases[c].push(t), G[t] = !0);
414
+ t !== c && m.aliases[c].indexOf(t) === -1 && (m.aliases[c].push(t), C[t] = !0);
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
418
  const t = Oe(n, "-");
419
- t !== c && m.aliases[c].indexOf(t) === -1 && (m.aliases[c].push(t), G[t] = !0);
419
+ t !== c && m.aliases[c].indexOf(t) === -1 && (m.aliases[c].push(t), C[t] = !0);
420
420
  }
421
421
  }), m.aliases[c].forEach(function(n) {
422
422
  m.aliases[n] = [c].concat(m.aliases[c].filter(function(t) {
@@ -457,7 +457,7 @@ class De {
457
457
  }
458
458
  return a;
459
459
  }
460
- function H(e) {
460
+ function K(e) {
461
461
  return k["unknown-options-as-args"] && ye(e);
462
462
  }
463
463
  function ye(e) {
@@ -468,21 +468,21 @@ class De {
468
468
  }
469
469
  function Le(e) {
470
470
  return {
471
- [Q.BOOLEAN]: !0,
472
- [Q.STRING]: "",
473
- [Q.NUMBER]: void 0,
474
- [Q.ARRAY]: []
471
+ [A.BOOLEAN]: !0,
472
+ [A.STRING]: "",
473
+ [A.NUMBER]: void 0,
474
+ [A.ARRAY]: []
475
475
  }[e];
476
476
  }
477
477
  function Me(e) {
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;
478
+ let a = A.BOOLEAN;
479
+ return g(e, m.strings) ? a = A.STRING : g(e, m.numbers) ? a = A.NUMBER : g(e, m.bools) ? a = A.BOOLEAN : g(e, m.arrays) && (a = A.ARRAY), a;
480
480
  }
481
481
  function T(e) {
482
482
  return e === void 0;
483
483
  }
484
- function Ae() {
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);
484
+ function Qe() {
485
+ Object.keys(m.counts).find((e) => g(e, m.arrays) ? (M = Error(G("Invalid configuration: %s, opts.count excludes opts.array.", e)), !0) : g(e, m.nargs) ? (M = Error(G("Invalid configuration: %s, opts.count excludes opts.narg.", e)), !0) : !1);
486
486
  }
487
487
  return {
488
488
  aliases: Object.assign({}, m.aliases),
@@ -490,7 +490,7 @@ class De {
490
490
  configuration: k,
491
491
  defaulted: Object.assign({}, ne),
492
492
  error: M,
493
- newAliases: Object.assign({}, G)
493
+ newAliases: Object.assign({}, C)
494
494
  };
495
495
  }
496
496
  }
@@ -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 De({
543
+ new Ee({
544
544
  cwd: process.cwd,
545
545
  env: () => Fe,
546
546
  format: ke,
547
- normalize: Qe,
547
+ normalize: Ae,
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:
@@ -556,7 +556,7 @@ new De({
556
556
  throw Error("only .json config files are supported in ESM");
557
557
  }
558
558
  });
559
- const Ke = {
559
+ const He = {
560
560
  fs: {
561
561
  readFileSync: ge,
562
562
  writeFile: Pe
@@ -571,8 +571,8 @@ const Ke = {
571
571
  }
572
572
  }
573
573
  };
574
- let A;
575
- class He {
574
+ let Q;
575
+ class Ke {
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 = [];
578
578
  }
@@ -587,7 +587,7 @@ class He {
587
587
  directory: this.directory,
588
588
  locale: this.locale,
589
589
  cb: s
590
- })) : s(), A.format.apply(A.format, [this.cache[this.locale][u] || u].concat(o));
590
+ })) : s(), Q.format.apply(Q.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), A.format.apply(A.format, k.concat(o));
607
+ return ~h.indexOf("%d") && k.push(r), Q.format.apply(Q.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
- A.fs.writeFile(h, k, "utf-8", function(q) {
632
+ Q.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
- A.fs.readFileSync && (o = JSON.parse(A.fs.readFileSync(u, "utf-8")));
640
+ Q.fs.readFileSync && (o = JSON.parse(Q.fs.readFileSync(u, "utf-8")));
641
641
  } catch (s) {
642
642
  if (s instanceof SyntaxError && (s.message = "syntax error in " + u), s.code === "ENOENT")
643
643
  o = {};
@@ -647,20 +647,20 @@ class He {
647
647
  this.cache[this.locale] = o;
648
648
  }
649
649
  _resolveLocaleFile(o, u) {
650
- let s = A.resolve(o, "./", u + ".json");
650
+ let s = Q.resolve(o, "./", u + ".json");
651
651
  if (this.fallbackToLanguage && !this._fileExistsSync(s) && ~u.lastIndexOf("_")) {
652
- const r = A.resolve(o, "./", u.split("_")[0] + ".json");
652
+ const r = Q.resolve(o, "./", u.split("_")[0] + ".json");
653
653
  this._fileExistsSync(r) && (s = r);
654
654
  }
655
655
  return s;
656
656
  }
657
657
  _fileExistsSync(o) {
658
- return A.exists(o);
658
+ return Q.exists(o);
659
659
  }
660
660
  }
661
661
  function $e(i, o) {
662
- A = o;
663
- const u = new He(i);
662
+ Q = o;
663
+ const u = new Ke(i);
664
664
  return {
665
665
  __: u.__.bind(u),
666
666
  __n: u.__n.bind(u),
@@ -670,16 +670,16 @@ function $e(i, o) {
670
670
  locale: u.locale
671
671
  };
672
672
  }
673
- const We = (i) => $e(i, Ke);
674
- let E;
673
+ const We = (i) => $e(i, He);
674
+ let N;
675
675
  try {
676
- E = Se(import.meta.url);
676
+ N = Se(import.meta.url);
677
677
  } catch {
678
- E = process.cwd();
678
+ N = process.cwd();
679
679
  }
680
- const Ue = E.substring(0, E.lastIndexOf("node_modules"));
680
+ const Ue = N.substring(0, N.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(E, "../../../locales"),
682
+ directory: ie(N, "../../../locales"),
683
683
  updateFiles: !1
684
684
  });
685
685
  const oe = [
@@ -922,28 +922,6 @@ const oe = [
922
922
  output_mtok: 5
923
923
  }
924
924
  },
925
- {
926
- id: "claude-instant-1",
927
- description: "Retired, here to match price sources",
928
- match: {
929
- equals: "claude-instant-1"
930
- },
931
- prices: {
932
- input_mtok: 1.63,
933
- output_mtok: 55.1
934
- }
935
- },
936
- {
937
- id: "claude-instant-1.2",
938
- description: "Retired, here to match price sources",
939
- match: {
940
- equals: "claude-instant-1.2"
941
- },
942
- prices: {
943
- input_mtok: 1.63,
944
- output_mtok: 5.51
945
- }
946
- },
947
925
  {
948
926
  id: "claude-opus-4-0",
949
927
  name: "Claude Opus 4",
@@ -1025,7 +1003,7 @@ const oe = [
1025
1003
  {
1026
1004
  id: "claude-opus-4-6",
1027
1005
  name: "Claude Opus 4.6",
1028
- description: "Most intelligent model with adaptive thinking and 1M context beta",
1006
+ description: "Our most intelligent model for building agents and coding",
1029
1007
  match: {
1030
1008
  or: [
1031
1009
  {
@@ -1116,7 +1094,7 @@ const oe = [
1116
1094
  {
1117
1095
  id: "claude-sonnet-4-5",
1118
1096
  name: "Claude Sonnet 4.5",
1119
- description: "Most intelligent model for building agents and coding",
1097
+ description: "Our best combination of speed and intelligence",
1120
1098
  match: {
1121
1099
  or: [
1122
1100
  {
@@ -1167,6 +1145,60 @@ const oe = [
1167
1145
  }
1168
1146
  }
1169
1147
  },
1148
+ {
1149
+ id: "claude-sonnet-4-6",
1150
+ name: "Claude Sonnet 4.6",
1151
+ description: "Our best combination of speed and intelligence",
1152
+ match: {
1153
+ or: [
1154
+ {
1155
+ starts_with: "claude-sonnet-4-6"
1156
+ },
1157
+ {
1158
+ starts_with: "claude-sonnet-4.6"
1159
+ }
1160
+ ]
1161
+ },
1162
+ context_window: 1e6,
1163
+ prices: {
1164
+ input_mtok: {
1165
+ base: 3,
1166
+ tiers: [
1167
+ {
1168
+ start: 2e5,
1169
+ price: 6
1170
+ }
1171
+ ]
1172
+ },
1173
+ cache_write_mtok: {
1174
+ base: 3.75,
1175
+ tiers: [
1176
+ {
1177
+ start: 2e5,
1178
+ price: 7.5
1179
+ }
1180
+ ]
1181
+ },
1182
+ cache_read_mtok: {
1183
+ base: 0.3,
1184
+ tiers: [
1185
+ {
1186
+ start: 2e5,
1187
+ price: 0.6
1188
+ }
1189
+ ]
1190
+ },
1191
+ output_mtok: {
1192
+ base: 15,
1193
+ tiers: [
1194
+ {
1195
+ start: 2e5,
1196
+ price: 22.5
1197
+ }
1198
+ ]
1199
+ }
1200
+ }
1201
+ },
1170
1202
  {
1171
1203
  id: "claude-v1",
1172
1204
  description: "Retired, here to match price sources",
@@ -3638,7 +3670,8 @@ Compared to other leading proprietary and open-weights models Command A delivers
3638
3670
  prices: {
3639
3671
  input_mtok: 0.15,
3640
3672
  output_mtok: 0.6
3641
- }
3673
+ },
3674
+ deprecated: !0
3642
3675
  },
3643
3676
  {
3644
3677
  id: "gemini-2.5-pro",
@@ -4586,6 +4619,25 @@ Compared to other leading proprietary and open-weights models Command A delivers
4586
4619
  output_mtok: 0.6
4587
4620
  }
4588
4621
  },
4622
+ {
4623
+ id: "Qwen/Qwen3-Coder-480B-A35B-Instruct",
4624
+ name: "Qwen3-Coder-480B-A35B-Instruct",
4625
+ match: {
4626
+ or: [
4627
+ {
4628
+ equals: "qwen/qwen3-coder-480b-a35b-instruct"
4629
+ },
4630
+ {
4631
+ equals: "qwen/qwen3-coder-480b-a35b-instruct-fast"
4632
+ }
4633
+ ]
4634
+ },
4635
+ context_window: 262144,
4636
+ prices: {
4637
+ input_mtok: 0.45,
4638
+ output_mtok: 1.8
4639
+ }
4640
+ },
4589
4641
  {
4590
4642
  id: "deepseek-ai/DeepSeek-R1-0528",
4591
4643
  name: "DeepSeek-R1-0528",
@@ -4662,25 +4714,6 @@ Compared to other leading proprietary and open-weights models Command A delivers
4662
4714
  output_mtok: 0.6
4663
4715
  }
4664
4716
  },
4665
- {
4666
- id: "openai/gpt-oss-20b",
4667
- name: "gpt-oss-20b",
4668
- match: {
4669
- or: [
4670
- {
4671
- equals: "openai/gpt-oss-20b"
4672
- },
4673
- {
4674
- equals: "openai/gpt-oss-20b-fast"
4675
- }
4676
- ]
4677
- },
4678
- context_window: 131072,
4679
- prices: {
4680
- input_mtok: 0.05,
4681
- output_mtok: 0.2
4682
- }
4683
- },
4684
4717
  {
4685
4718
  id: "zai-org/GLM-4.5",
4686
4719
  name: "GLM-4.5",
@@ -4808,25 +4841,6 @@ Compared to other leading proprietary and open-weights models Command A delivers
4808
4841
  input_mtok: 0.15,
4809
4842
  output_mtok: 0.75
4810
4843
  }
4811
- },
4812
- {
4813
- id: "openai/gpt-oss-20b",
4814
- name: "gpt-oss-20b",
4815
- match: {
4816
- or: [
4817
- {
4818
- equals: "openai/gpt-oss-20b"
4819
- },
4820
- {
4821
- equals: "openai/gpt-oss-20b-fast"
4822
- }
4823
- ]
4824
- },
4825
- context_window: 131072,
4826
- prices: {
4827
- input_mtok: 0.1,
4828
- output_mtok: 0.5
4829
- }
4830
4844
  }
4831
4845
  ]
4832
4846
  },
@@ -5202,25 +5216,6 @@ Compared to other leading proprietary and open-weights models Command A delivers
5202
5216
  input_mtok: 0.3,
5203
5217
  output_mtok: 0.3
5204
5218
  }
5205
- },
5206
- {
5207
- id: "openai/gpt-oss-20b",
5208
- name: "gpt-oss-20b",
5209
- match: {
5210
- or: [
5211
- {
5212
- equals: "openai/gpt-oss-20b"
5213
- },
5214
- {
5215
- equals: "openai/gpt-oss-20b-fast"
5216
- }
5217
- ]
5218
- },
5219
- context_window: 131072,
5220
- prices: {
5221
- input_mtok: 0.1,
5222
- output_mtok: 0.1
5223
- }
5224
5219
  }
5225
5220
  ]
5226
5221
  },
@@ -5730,25 +5725,6 @@ Compared to other leading proprietary and open-weights models Command A delivers
5730
5725
  output_mtok: 0.6
5731
5726
  }
5732
5727
  },
5733
- {
5734
- id: "openai/gpt-oss-20b",
5735
- name: "gpt-oss-20b",
5736
- match: {
5737
- or: [
5738
- {
5739
- equals: "openai/gpt-oss-20b"
5740
- },
5741
- {
5742
- equals: "openai/gpt-oss-20b-fast"
5743
- }
5744
- ]
5745
- },
5746
- context_window: 131072,
5747
- prices: {
5748
- input_mtok: 0.05,
5749
- output_mtok: 0.2
5750
- }
5751
- },
5752
5728
  {
5753
5729
  id: "zai-org/GLM-4.5",
5754
5730
  name: "GLM-4.5",
@@ -6219,6 +6195,25 @@ Compared to other leading proprietary and open-weights models Command A delivers
6219
6195
  output_mtok: 0.05
6220
6196
  }
6221
6197
  },
6198
+ {
6199
+ id: "XiaomiMiMo/MiMo-V2-Flash",
6200
+ name: "MiMo-V2-Flash",
6201
+ match: {
6202
+ or: [
6203
+ {
6204
+ equals: "xiaomimimo/mimo-v2-flash"
6205
+ },
6206
+ {
6207
+ equals: "xiaomimimo/mimo-v2-flash-fast"
6208
+ }
6209
+ ]
6210
+ },
6211
+ context_window: 262144,
6212
+ prices: {
6213
+ input_mtok: 0.098,
6214
+ output_mtok: 0.293
6215
+ }
6216
+ },
6222
6217
  {
6223
6218
  id: "alpindale/WizardLM-2-8x22B",
6224
6219
  name: "WizardLM-2-8x22B",
@@ -6396,6 +6391,25 @@ Compared to other leading proprietary and open-weights models Command A delivers
6396
6391
  output_mtok: 0.072
6397
6392
  }
6398
6393
  },
6394
+ {
6395
+ id: "deepseek-ai/DeepSeek-R1-Distill-Llama-70B",
6396
+ name: "DeepSeek-R1-Distill-Llama-70B",
6397
+ match: {
6398
+ or: [
6399
+ {
6400
+ equals: "deepseek-ai/deepseek-r1-distill-llama-70b"
6401
+ },
6402
+ {
6403
+ equals: "deepseek-ai/deepseek-r1-distill-llama-70b-fast"
6404
+ }
6405
+ ]
6406
+ },
6407
+ context_window: 8192,
6408
+ prices: {
6409
+ input_mtok: 0.64,
6410
+ output_mtok: 0.64
6411
+ }
6412
+ },
6399
6413
  {
6400
6414
  id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B",
6401
6415
  name: "DeepSeek-R1-Distill-Qwen-14B",
@@ -6649,25 +6663,6 @@ Compared to other leading proprietary and open-weights models Command A delivers
6649
6663
  output_mtok: 1.84
6650
6664
  }
6651
6665
  },
6652
- {
6653
- id: "moonshotai/Kimi-K2-Instruct-0905",
6654
- name: "Kimi-K2-Instruct-0905",
6655
- match: {
6656
- or: [
6657
- {
6658
- equals: "moonshotai/kimi-k2-instruct-0905"
6659
- },
6660
- {
6661
- equals: "moonshotai/kimi-k2-instruct-0905-fast"
6662
- }
6663
- ]
6664
- },
6665
- context_window: 262144,
6666
- prices: {
6667
- input_mtok: 0.48,
6668
- output_mtok: 2
6669
- }
6670
- },
6671
6666
  {
6672
6667
  id: "moonshotai/Kimi-K2-Thinking",
6673
6668
  name: "Kimi-K2-Thinking",
@@ -6706,25 +6701,6 @@ Compared to other leading proprietary and open-weights models Command A delivers
6706
6701
  output_mtok: 0.2
6707
6702
  }
6708
6703
  },
6709
- {
6710
- id: "openai/gpt-oss-20b",
6711
- name: "gpt-oss-20b",
6712
- match: {
6713
- or: [
6714
- {
6715
- equals: "openai/gpt-oss-20b"
6716
- },
6717
- {
6718
- equals: "openai/gpt-oss-20b-fast"
6719
- }
6720
- ]
6721
- },
6722
- context_window: 131072,
6723
- prices: {
6724
- input_mtok: 0.032,
6725
- output_mtok: 0.12
6726
- }
6727
- },
6728
6704
  {
6729
6705
  id: "zai-org/AutoGLM-Phone-9B-Multilingual",
6730
6706
  name: "AutoGLM-Phone-9B-Multilingual",
@@ -7276,25 +7252,6 @@ Compared to other leading proprietary and open-weights models Command A delivers
7276
7252
  input_mtok: 0.1,
7277
7253
  output_mtok: 0.4
7278
7254
  }
7279
- },
7280
- {
7281
- id: "openai/gpt-oss-20b",
7282
- name: "gpt-oss-20b",
7283
- match: {
7284
- or: [
7285
- {
7286
- equals: "openai/gpt-oss-20b"
7287
- },
7288
- {
7289
- equals: "openai/gpt-oss-20b-fast"
7290
- }
7291
- ]
7292
- },
7293
- context_window: 131072,
7294
- prices: {
7295
- input_mtok: 0.05,
7296
- output_mtok: 0.2
7297
- }
7298
7255
  }
7299
7256
  ]
7300
7257
  },
@@ -7367,6 +7324,25 @@ Compared to other leading proprietary and open-weights models Command A delivers
7367
7324
  output_mtok: 1.01
7368
7325
  }
7369
7326
  },
7327
+ {
7328
+ id: "Qwen/Qwen3-32B",
7329
+ name: "Qwen3-32B",
7330
+ match: {
7331
+ or: [
7332
+ {
7333
+ equals: "qwen/qwen3-32b"
7334
+ },
7335
+ {
7336
+ equals: "qwen/qwen3-32b-fast"
7337
+ }
7338
+ ]
7339
+ },
7340
+ context_window: 32768,
7341
+ prices: {
7342
+ input_mtok: 0.09,
7343
+ output_mtok: 0.25
7344
+ }
7345
+ },
7370
7346
  {
7371
7347
  id: "Qwen/Qwen3-Coder-30B-A3B-Instruct",
7372
7348
  name: "Qwen3-Coder-30B-A3B-Instruct",
@@ -7385,6 +7361,82 @@ Compared to other leading proprietary and open-weights models Command A delivers
7385
7361
  input_mtok: 0.07,
7386
7362
  output_mtok: 0.26
7387
7363
  }
7364
+ },
7365
+ {
7366
+ id: "deepseek-ai/DeepSeek-R1-Distill-Llama-70B",
7367
+ name: "DeepSeek-R1-Distill-Llama-70B",
7368
+ match: {
7369
+ or: [
7370
+ {
7371
+ equals: "deepseek-ai/deepseek-r1-distill-llama-70b"
7372
+ },
7373
+ {
7374
+ equals: "deepseek-ai/deepseek-r1-distill-llama-70b-fast"
7375
+ }
7376
+ ]
7377
+ },
7378
+ context_window: 131072,
7379
+ prices: {
7380
+ input_mtok: 0.74,
7381
+ output_mtok: 0.74
7382
+ }
7383
+ },
7384
+ {
7385
+ id: "meta-llama/Llama-3.1-8B-Instruct",
7386
+ name: "Llama-3.1-8B-Instruct",
7387
+ match: {
7388
+ or: [
7389
+ {
7390
+ equals: "meta-llama/llama-3.1-8b-instruct"
7391
+ },
7392
+ {
7393
+ equals: "meta-llama/llama-3.1-8b-instruct-fast"
7394
+ }
7395
+ ]
7396
+ },
7397
+ context_window: 131072,
7398
+ prices: {
7399
+ input_mtok: 0.11,
7400
+ output_mtok: 0.11
7401
+ }
7402
+ },
7403
+ {
7404
+ id: "meta-llama/Llama-3.3-70B-Instruct",
7405
+ name: "Llama-3.3-70B-Instruct",
7406
+ match: {
7407
+ or: [
7408
+ {
7409
+ equals: "meta-llama/llama-3.3-70b-instruct"
7410
+ },
7411
+ {
7412
+ equals: "meta-llama/llama-3.3-70b-instruct-fast"
7413
+ }
7414
+ ]
7415
+ },
7416
+ context_window: 131072,
7417
+ prices: {
7418
+ input_mtok: 0.74,
7419
+ output_mtok: 0.74
7420
+ }
7421
+ },
7422
+ {
7423
+ id: "openai/gpt-oss-120b",
7424
+ name: "gpt-oss-120b",
7425
+ match: {
7426
+ or: [
7427
+ {
7428
+ equals: "openai/gpt-oss-120b"
7429
+ },
7430
+ {
7431
+ equals: "openai/gpt-oss-120b-fast"
7432
+ }
7433
+ ]
7434
+ },
7435
+ context_window: 131072,
7436
+ prices: {
7437
+ input_mtok: 0.09,
7438
+ output_mtok: 0.47
7439
+ }
7388
7440
  }
7389
7441
  ]
7390
7442
  },
@@ -8301,25 +8353,6 @@ Compared to other leading proprietary and open-weights models Command A delivers
8301
8353
  output_mtok: 0.6
8302
8354
  }
8303
8355
  },
8304
- {
8305
- id: "openai/gpt-oss-20b",
8306
- name: "gpt-oss-20b",
8307
- match: {
8308
- or: [
8309
- {
8310
- equals: "openai/gpt-oss-20b"
8311
- },
8312
- {
8313
- equals: "openai/gpt-oss-20b-fast"
8314
- }
8315
- ]
8316
- },
8317
- context_window: 131072,
8318
- prices: {
8319
- input_mtok: 0.05,
8320
- output_mtok: 0.2
8321
- }
8322
- },
8323
8356
  {
8324
8357
  id: "zai-org/GLM-4.5-Air-FP8",
8325
8358
  name: "GLM-4.5-Air-FP8",
@@ -8620,7 +8653,8 @@ Compared to other leading proprietary and open-weights models Command A delivers
8620
8653
  prices: {
8621
8654
  input_mtok: 0.25,
8622
8655
  output_mtok: 0.25
8623
- }
8656
+ },
8657
+ deprecated: !0
8624
8658
  },
8625
8659
  {
8626
8660
  id: "mixtral-8x22b-instruct",
@@ -16779,24 +16813,6 @@ Compared to other leading proprietary and open-weights models Command A delivers
16779
16813
  }
16780
16814
  ],
16781
16815
  models: [
16782
- {
16783
- id: "BGE-M3",
16784
- name: "BGE-M3",
16785
- match: {
16786
- or: [
16787
- {
16788
- equals: "BGE-M3"
16789
- },
16790
- {
16791
- equals: "bge-m3"
16792
- }
16793
- ]
16794
- },
16795
- context_window: 8192,
16796
- prices: {
16797
- input_mtok: 0.01
16798
- }
16799
- },
16800
16816
  {
16801
16817
  id: "DeepSeek-R1-Distill-Llama-70B",
16802
16818
  name: "DeepSeek-R1-Distill-Llama-70B",
@@ -17036,6 +17052,17 @@ Compared to other leading proprietary and open-weights models Command A delivers
17036
17052
  input_mtok: 0.01
17037
17053
  }
17038
17054
  },
17055
+ {
17056
+ id: "bge-m3",
17057
+ name: "bge-m3",
17058
+ match: {
17059
+ equals: "bge-m3"
17060
+ },
17061
+ context_window: 8192,
17062
+ prices: {
17063
+ input_mtok: 0.01
17064
+ }
17065
+ },
17039
17066
  {
17040
17067
  id: "bge-multilingual-gemma2",
17041
17068
  name: "bge-multilingual-gemma2",
@@ -18053,7 +18080,8 @@ Compared to other leading proprietary and open-weights models Command A delivers
18053
18080
  prices: {
18054
18081
  input_mtok: 2,
18055
18082
  output_mtok: 10
18056
- }
18083
+ },
18084
+ deprecated: !0
18057
18085
  },
18058
18086
  {
18059
18087
  id: "grok-2-vision-1212",
@@ -18342,11 +18370,11 @@ function Je(i, o) {
18342
18370
  if (L -= q, L < 0)
18343
18371
  throw new Error("output_audio_tokens cannot be greater than output_tokens");
18344
18372
  s += R(o.output_mtok, L, "output_mtok", r), s += R(o.output_audio_mtok, i.output_audio_tokens, "output_audio_mtok", r);
18345
- let G = u + s;
18346
- return o.requests_kcount !== void 0 && (G += o.requests_kcount / 1e3), {
18373
+ let C = u + s;
18374
+ return o.requests_kcount !== void 0 && (C += o.requests_kcount / 1e3), {
18347
18375
  input_price: u,
18348
18376
  output_price: s,
18349
- total_price: G
18377
+ total_price: C
18350
18378
  };
18351
18379
  }
18352
18380
  function Ze(i, o) {
@@ -18370,12 +18398,12 @@ function Ze(i, o) {
18370
18398
  }
18371
18399
  return i.prices[0].prices;
18372
18400
  }
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;
18401
+ function E(i, o) {
18402
+ 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;
18375
18403
  }
18376
18404
  function Xe(i, o) {
18377
18405
  const u = o.toLowerCase().trim(), s = i.find((r) => r.id === u);
18378
- return s || i.find((r) => r.provider_match && D(r.provider_match, u));
18406
+ return s || i.find((r) => r.provider_match && E(r.provider_match, u));
18379
18407
  }
18380
18408
  function he(i, { modelId: o, providerApiUrl: u, providerId: s }) {
18381
18409
  if (s) {
@@ -18386,10 +18414,10 @@ function he(i, { modelId: o, providerApiUrl: u, providerId: s }) {
18386
18414
  if (u)
18387
18415
  return i.find((r) => new RegExp(r.api_pattern).test(u));
18388
18416
  if (o)
18389
- return i.find((r) => r.model_match && D(r.model_match, o));
18417
+ return i.find((r) => r.model_match && E(r.model_match, o));
18390
18418
  }
18391
18419
  function et(i, o) {
18392
- return i.find((u) => D(u.match, o));
18420
+ return i.find((u) => E(u.match, o));
18393
18421
  }
18394
18422
  function qe(i, o, u) {
18395
18423
  const s = et(i.models, o);