@pydantic/genai-prices 0.0.54 → 0.0.55

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
@@ -172,7 +172,7 @@ class Ee {
172
172
  let M = null;
173
173
  Qe();
174
174
  let j = [];
175
- const b = Object.assign(/* @__PURE__ */ Object.create(null), { _: [] }), se = {};
175
+ const w = Object.assign(/* @__PURE__ */ Object.create(null), { _: [] }), se = {};
176
176
  for (let e = 0; e < r.length; e++) {
177
177
  const a = r[e], c = a.replace(/^-{3,}/, "---");
178
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]) : w(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]) : b(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], w(t, g(t, m.arrays) ? [!1] : !1));
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
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) ? (w(t, d), e++) : w(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) ? (b(t, d), e++) : b(t, z(t))));
190
190
  else if (a.match(/^-.\..+=/))
191
- p = a.match(/^-([^=]+)=([\s\S]*)$/), p !== null && Array.isArray(p) && p.length >= 3 && w(p[1], p[2]);
191
+ p = a.match(/^-([^=]+)=([\s\S]*)$/), p !== null && Array.isArray(p) && p.length >= 3 && b(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) ? (w(t, d), e++) : w(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) ? (b(t, d), e++) : b(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) : w(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) : b(t, v), n = !0;
199
199
  break;
200
200
  }
201
201
  if (d === "-") {
202
- w(l[x], d);
202
+ b(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
- w(l[x], d), n = !0;
206
+ b(l[x], d), n = !0;
207
207
  break;
208
208
  }
209
209
  if (l[x + 1] && l[x + 1].match(/\W/)) {
210
- w(l[x], d), n = !0;
210
+ b(l[x], d), n = !0;
211
211
  break;
212
212
  } else
213
- w(l[x], z(l[x]));
213
+ b(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) ? (w(t, d), e++) : w(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) ? (b(t, d), e++) : b(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), w(t, z(t));
217
+ t = a.slice(1), b(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(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];
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
+ O(w, e.split(".")) || b(e, 0);
229
+ }), y && 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];
233
233
  }), k["strip-aliased"] && [].concat(...Object.keys(h).map((e) => h[e])).forEach((e) => {
234
- k["camel-case-expansion"] && e.includes("-") && delete b[e.split(".").map((a) => $(a)).join(".")], delete b[e];
234
+ k["camel-case-expansion"] && e.includes("-") && delete w[e.split(".").map((a) => $(a)).join(".")], delete w[e];
235
235
  });
236
236
  function U(e) {
237
237
  const a = H("_", e);
238
- (typeof a == "string" || typeof a == "number") && b._.push(a);
238
+ (typeof a == "string" || typeof a == "number") && w._.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(G("Argument unexpected for: %s", a))), w(a, z(a)), e;
243
+ return T(n) || (M = Error(G("Argument unexpected for: %s", a))), b(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(G("Not enough arguments following: %s", a))), p = l;
@@ -250,8 +250,8 @@ class Ee {
250
250
  p < l && (M = Error(G("Not enough arguments following: %s", a)));
251
251
  }
252
252
  let d = Math.min(p, l);
253
- for (!T(n) && d > 0 && (w(a, n), d--), t = e + 1; t < d + e + 1; t++)
254
- w(a, c[t]);
253
+ for (!T(n) && d > 0 && (b(a, n), d--), t = e + 1; t < d + e + 1; t++)
254
+ b(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) && !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(G("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))), b(a, t), e;
273
273
  }
274
- function w(e, a, c = _) {
274
+ function b(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
- D(b, t, n), m.aliases[e] && m.aliases[e].forEach(function(l) {
282
+ D(w, t, n), m.aliases[e] && m.aliases[e].forEach(function(l) {
283
283
  const p = l.split(".");
284
- D(b, p, n);
284
+ D(w, 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(".")) || D(b, p, n);
288
+ d.shift(), p = p.concat(d), (m.aliases[e] || []).includes(p.join(".")) || D(w, 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,
@@ -340,10 +340,10 @@ 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) : (!O(b, t.split(".")) || g(t, m.arrays) && k["combine-arrays"]) && w(t, n);
343
+ typeof n == "object" && n !== null && !Array.isArray(n) && k["dot-notation"] ? J(n, t) : (!O(w, t.split(".")) || g(t, m.arrays) && k["combine-arrays"]) && b(t, n);
344
344
  });
345
345
  }
346
- function we() {
346
+ function be() {
347
347
  typeof I < "u" && I.forEach(function(e) {
348
348
  J(e);
349
349
  });
@@ -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) && !O(e, l) && w(l.join("."), n[t]);
360
+ (a && m.configs[l.join(".")] || !a) && !O(e, l) && b(l.join("."), n[t]);
361
361
  }
362
362
  });
363
363
  }
364
- function be(e) {
364
+ function we(e) {
365
365
  let a;
366
366
  const c = /* @__PURE__ */ new Set();
367
367
  Object.keys(e).forEach(function(n) {
@@ -486,7 +486,7 @@ class Ee {
486
486
  }
487
487
  return {
488
488
  aliases: Object.assign({}, m.aliases),
489
- argv: Object.assign(se, b),
489
+ argv: Object.assign(se, w),
490
490
  configuration: k,
491
491
  defaulted: Object.assign({}, ne),
492
492
  error: M,
@@ -1435,7 +1435,7 @@ const oe = [
1435
1435
  {
1436
1436
  id: "global.anthropic.claude-haiku-4-5-20251001-v1:0",
1437
1437
  match: {
1438
- starts_with: "global.anthropic.claude-haiku-4-5-20251001-v1"
1438
+ contains: "global.anthropic.claude-haiku-4-5-20251001-v1"
1439
1439
  },
1440
1440
  prices: {
1441
1441
  input_mtok: 1,
@@ -1444,10 +1444,66 @@ const oe = [
1444
1444
  output_mtok: 5
1445
1445
  }
1446
1446
  },
1447
+ {
1448
+ id: "global.anthropic.claude-opus-4-5-v1:0",
1449
+ match: {
1450
+ contains: "global.anthropic.claude-opus-4-5"
1451
+ },
1452
+ prices: {
1453
+ input_mtok: 5,
1454
+ cache_write_mtok: 6.25,
1455
+ cache_read_mtok: 0.5,
1456
+ output_mtok: 25
1457
+ }
1458
+ },
1459
+ {
1460
+ id: "global.anthropic.claude-opus-4-6-v1:0",
1461
+ match: {
1462
+ contains: "global.anthropic.claude-opus-4-6"
1463
+ },
1464
+ prices: {
1465
+ input_mtok: {
1466
+ base: 5,
1467
+ tiers: [
1468
+ {
1469
+ start: 2e5,
1470
+ price: 10
1471
+ }
1472
+ ]
1473
+ },
1474
+ cache_write_mtok: {
1475
+ base: 6.25,
1476
+ tiers: [
1477
+ {
1478
+ start: 2e5,
1479
+ price: 12.5
1480
+ }
1481
+ ]
1482
+ },
1483
+ cache_read_mtok: {
1484
+ base: 0.5,
1485
+ tiers: [
1486
+ {
1487
+ start: 2e5,
1488
+ price: 1
1489
+ }
1490
+ ]
1491
+ },
1492
+ output_mtok: {
1493
+ base: 25,
1494
+ tiers: [
1495
+ {
1496
+ start: 2e5,
1497
+ price: 37.5
1498
+ }
1499
+ ]
1500
+ }
1501
+ }
1502
+ },
1447
1503
  {
1448
1504
  id: "global.anthropic.claude-sonnet-4-20250514-v1:0",
1449
1505
  match: {
1450
- starts_with: "global.anthropic.claude-sonnet-4-20250514-v1"
1506
+ contains: "global.anthropic.claude-sonnet-4-20250514-v1"
1451
1507
  },
1452
1508
  prices: {
1453
1509
  input_mtok: 3,
@@ -1459,7 +1515,7 @@ const oe = [
1459
1515
  {
1460
1516
  id: "global.anthropic.claude-sonnet-4-5-20250929-v1:0",
1461
1517
  match: {
1462
- starts_with: "global.anthropic.claude-sonnet-4-5-20250929-v1"
1518
+ contains: "global.anthropic.claude-sonnet-4-5-20250929-v1"
1463
1519
  },
1464
1520
  prices: {
1465
1521
  input_mtok: 3,
@@ -1468,6 +1524,50 @@ const oe = [
1468
1524
  output_mtok: 15
1469
1525
  }
1470
1526
  },
1527
+ {
1528
+ id: "global.anthropic.claude-sonnet-4-6-v1:0",
1529
+ match: {
1530
+ contains: "global.anthropic.claude-sonnet-4-6"
1531
+ },
1532
+ prices: {
1533
+ input_mtok: {
1534
+ base: 3,
1535
+ tiers: [
1536
+ {
1537
+ start: 2e5,
1538
+ price: 6
1539
+ }
1540
+ ]
1541
+ },
1542
+ cache_write_mtok: {
1543
+ base: 3.75,
1544
+ tiers: [
1545
+ {
1546
+ start: 2e5,
1547
+ price: 7.5
1548
+ }
1549
+ ]
1550
+ },
1551
+ cache_read_mtok: {
1552
+ base: 0.3,
1553
+ tiers: [
1554
+ {
1555
+ start: 2e5,
1556
+ price: 0.6
1557
+ }
1558
+ ]
1559
+ },
1560
+ output_mtok: {
1561
+ base: 15,
1562
+ tiers: [
1563
+ {
1564
+ start: 2e5,
1565
+ price: 22.5
1566
+ }
1567
+ ]
1568
+ }
1569
+ }
1570
+ },
1471
1571
  {
1472
1572
  id: "meta.llama3-1-70b-instruct-v1:0",
1473
1573
  name: "Llama 3.1 70B Instruct",
@@ -1704,22 +1804,22 @@ const oe = [
1704
1804
  match: {
1705
1805
  or: [
1706
1806
  {
1707
- starts_with: "us.anthropic.claude-3-5-haiku-20241022-v1"
1807
+ contains: "us.anthropic.claude-3-5-haiku-20241022-v1"
1708
1808
  },
1709
1809
  {
1710
- starts_with: "au.anthropic.claude-3-5-haiku-20241022-v1"
1810
+ contains: "au.anthropic.claude-3-5-haiku-20241022-v1"
1711
1811
  },
1712
1812
  {
1713
- starts_with: "apac.anthropic.claude-3-5-haiku-20241022-v1"
1813
+ contains: "apac.anthropic.claude-3-5-haiku-20241022-v1"
1714
1814
  },
1715
1815
  {
1716
- starts_with: "eu.anthropic.claude-3-5-haiku-20241022-v1"
1816
+ contains: "eu.anthropic.claude-3-5-haiku-20241022-v1"
1717
1817
  },
1718
1818
  {
1719
- starts_with: "us-gov.anthropic.claude-3-5-haiku-20241022-v1"
1819
+ contains: "us-gov.anthropic.claude-3-5-haiku-20241022-v1"
1720
1820
  },
1721
1821
  {
1722
- starts_with: "jp.anthropic.claude-3-5-haiku-20241022-v1"
1822
+ contains: "jp.anthropic.claude-3-5-haiku-20241022-v1"
1723
1823
  }
1724
1824
  ]
1725
1825
  },
@@ -1735,22 +1835,22 @@ const oe = [
1735
1835
  match: {
1736
1836
  or: [
1737
1837
  {
1738
- starts_with: "us.anthropic.claude-3-5-sonnet-20240620-v1"
1838
+ contains: "us.anthropic.claude-3-5-sonnet-20240620-v1"
1739
1839
  },
1740
1840
  {
1741
- starts_with: "au.anthropic.claude-3-5-sonnet-20240620-v1"
1841
+ contains: "au.anthropic.claude-3-5-sonnet-20240620-v1"
1742
1842
  },
1743
1843
  {
1744
- starts_with: "apac.anthropic.claude-3-5-sonnet-20240620-v1"
1844
+ contains: "apac.anthropic.claude-3-5-sonnet-20240620-v1"
1745
1845
  },
1746
1846
  {
1747
- starts_with: "eu.anthropic.claude-3-5-sonnet-20240620-v1"
1847
+ contains: "eu.anthropic.claude-3-5-sonnet-20240620-v1"
1748
1848
  },
1749
1849
  {
1750
- starts_with: "us-gov.anthropic.claude-3-5-sonnet-20240620-v1"
1850
+ contains: "us-gov.anthropic.claude-3-5-sonnet-20240620-v1"
1751
1851
  },
1752
1852
  {
1753
- starts_with: "jp.anthropic.claude-3-5-sonnet-20240620-v1"
1853
+ contains: "jp.anthropic.claude-3-5-sonnet-20240620-v1"
1754
1854
  }
1755
1855
  ]
1756
1856
  },
@@ -1766,22 +1866,22 @@ const oe = [
1766
1866
  match: {
1767
1867
  or: [
1768
1868
  {
1769
- starts_with: "us.anthropic.claude-3-5-sonnet-20241022-v2"
1869
+ contains: "us.anthropic.claude-3-5-sonnet-20241022-v2"
1770
1870
  },
1771
1871
  {
1772
- starts_with: "au.anthropic.claude-3-5-sonnet-20241022-v2"
1872
+ contains: "au.anthropic.claude-3-5-sonnet-20241022-v2"
1773
1873
  },
1774
1874
  {
1775
- starts_with: "apac.anthropic.claude-3-5-sonnet-20241022-v2"
1875
+ contains: "apac.anthropic.claude-3-5-sonnet-20241022-v2"
1776
1876
  },
1777
1877
  {
1778
- starts_with: "eu.anthropic.claude-3-5-sonnet-20241022-v2"
1878
+ contains: "eu.anthropic.claude-3-5-sonnet-20241022-v2"
1779
1879
  },
1780
1880
  {
1781
- starts_with: "us-gov.anthropic.claude-3-5-sonnet-20241022-v2"
1881
+ contains: "us-gov.anthropic.claude-3-5-sonnet-20241022-v2"
1782
1882
  },
1783
1883
  {
1784
- starts_with: "jp.anthropic.claude-3-5-sonnet-20241022-v2"
1884
+ contains: "jp.anthropic.claude-3-5-sonnet-20241022-v2"
1785
1885
  }
1786
1886
  ]
1787
1887
  },
@@ -1797,22 +1897,22 @@ const oe = [
1797
1897
  match: {
1798
1898
  or: [
1799
1899
  {
1800
- starts_with: "us.anthropic.claude-3-7-sonnet-20250219-v1"
1900
+ contains: "us.anthropic.claude-3-7-sonnet-20250219-v1"
1801
1901
  },
1802
1902
  {
1803
- starts_with: "au.anthropic.claude-3-7-sonnet-20250219-v1"
1903
+ contains: "au.anthropic.claude-3-7-sonnet-20250219-v1"
1804
1904
  },
1805
1905
  {
1806
- starts_with: "apac.anthropic.claude-3-7-sonnet-20250219-v1"
1906
+ contains: "apac.anthropic.claude-3-7-sonnet-20250219-v1"
1807
1907
  },
1808
1908
  {
1809
- starts_with: "eu.anthropic.claude-3-7-sonnet-20250219-v1"
1909
+ contains: "eu.anthropic.claude-3-7-sonnet-20250219-v1"
1810
1910
  },
1811
1911
  {
1812
- starts_with: "us-gov.anthropic.claude-3-7-sonnet-20250219-v1"
1912
+ contains: "us-gov.anthropic.claude-3-7-sonnet-20250219-v1"
1813
1913
  },
1814
1914
  {
1815
- starts_with: "jp.anthropic.claude-3-7-sonnet-20250219-v1"
1915
+ contains: "jp.anthropic.claude-3-7-sonnet-20250219-v1"
1816
1916
  }
1817
1917
  ]
1818
1918
  },
@@ -1828,22 +1928,22 @@ const oe = [
1828
1928
  match: {
1829
1929
  or: [
1830
1930
  {
1831
- starts_with: "us.anthropic.claude-3-haiku-20240307-v1"
1931
+ contains: "us.anthropic.claude-3-haiku-20240307-v1"
1832
1932
  },
1833
1933
  {
1834
- starts_with: "au.anthropic.claude-3-haiku-20240307-v1"
1934
+ contains: "au.anthropic.claude-3-haiku-20240307-v1"
1835
1935
  },
1836
1936
  {
1837
- starts_with: "apac.anthropic.claude-3-haiku-20240307-v1"
1937
+ contains: "apac.anthropic.claude-3-haiku-20240307-v1"
1838
1938
  },
1839
1939
  {
1840
- starts_with: "eu.anthropic.claude-3-haiku-20240307-v1"
1940
+ contains: "eu.anthropic.claude-3-haiku-20240307-v1"
1841
1941
  },
1842
1942
  {
1843
- starts_with: "us-gov.anthropic.claude-3-haiku-20240307-v1"
1943
+ contains: "us-gov.anthropic.claude-3-haiku-20240307-v1"
1844
1944
  },
1845
1945
  {
1846
- starts_with: "jp.anthropic.claude-3-haiku-20240307-v1"
1946
+ contains: "jp.anthropic.claude-3-haiku-20240307-v1"
1847
1947
  }
1848
1948
  ]
1849
1949
  },
@@ -1857,22 +1957,22 @@ const oe = [
1857
1957
  match: {
1858
1958
  or: [
1859
1959
  {
1860
- starts_with: "us.anthropic.claude-3-opus-20240229-v1"
1960
+ contains: "us.anthropic.claude-3-opus-20240229-v1"
1861
1961
  },
1862
1962
  {
1863
- starts_with: "au.anthropic.claude-3-opus-20240229-v1"
1963
+ contains: "au.anthropic.claude-3-opus-20240229-v1"
1864
1964
  },
1865
1965
  {
1866
- starts_with: "apac.anthropic.claude-3-opus-20240229-v1"
1966
+ contains: "apac.anthropic.claude-3-opus-20240229-v1"
1867
1967
  },
1868
1968
  {
1869
- starts_with: "eu.anthropic.claude-3-opus-20240229-v1"
1969
+ contains: "eu.anthropic.claude-3-opus-20240229-v1"
1870
1970
  },
1871
1971
  {
1872
- starts_with: "us-gov.anthropic.claude-3-opus-20240229-v1"
1972
+ contains: "us-gov.anthropic.claude-3-opus-20240229-v1"
1873
1973
  },
1874
1974
  {
1875
- starts_with: "jp.anthropic.claude-3-opus-20240229-v1"
1975
+ contains: "jp.anthropic.claude-3-opus-20240229-v1"
1876
1976
  }
1877
1977
  ]
1878
1978
  },
@@ -1886,22 +1986,22 @@ const oe = [
1886
1986
  match: {
1887
1987
  or: [
1888
1988
  {
1889
- starts_with: "us.anthropic.claude-3-sonnet-20240229-v1"
1989
+ contains: "us.anthropic.claude-3-sonnet-20240229-v1"
1890
1990
  },
1891
1991
  {
1892
- starts_with: "au.anthropic.claude-3-sonnet-20240229-v1"
1992
+ contains: "au.anthropic.claude-3-sonnet-20240229-v1"
1893
1993
  },
1894
1994
  {
1895
- starts_with: "apac.anthropic.claude-3-sonnet-20240229-v1"
1995
+ contains: "apac.anthropic.claude-3-sonnet-20240229-v1"
1896
1996
  },
1897
1997
  {
1898
- starts_with: "eu.anthropic.claude-3-sonnet-20240229-v1"
1998
+ contains: "eu.anthropic.claude-3-sonnet-20240229-v1"
1899
1999
  },
1900
2000
  {
1901
- starts_with: "us-gov.anthropic.claude-3-sonnet-20240229-v1"
2001
+ contains: "us-gov.anthropic.claude-3-sonnet-20240229-v1"
1902
2002
  },
1903
2003
  {
1904
- starts_with: "jp.anthropic.claude-3-sonnet-20240229-v1"
2004
+ contains: "jp.anthropic.claude-3-sonnet-20240229-v1"
1905
2005
  }
1906
2006
  ]
1907
2007
  },
@@ -1917,22 +2017,22 @@ const oe = [
1917
2017
  match: {
1918
2018
  or: [
1919
2019
  {
1920
- starts_with: "us.anthropic.claude-haiku-4-5-20251001-v1"
2020
+ contains: "us.anthropic.claude-haiku-4-5-20251001-v1"
1921
2021
  },
1922
2022
  {
1923
- starts_with: "au.anthropic.claude-haiku-4-5-20251001-v1"
2023
+ contains: "au.anthropic.claude-haiku-4-5-20251001-v1"
1924
2024
  },
1925
2025
  {
1926
- starts_with: "apac.anthropic.claude-haiku-4-5-20251001-v1"
2026
+ contains: "apac.anthropic.claude-haiku-4-5-20251001-v1"
1927
2027
  },
1928
2028
  {
1929
- starts_with: "eu.anthropic.claude-haiku-4-5-20251001-v1"
2029
+ contains: "eu.anthropic.claude-haiku-4-5-20251001-v1"
1930
2030
  },
1931
2031
  {
1932
- starts_with: "us-gov.anthropic.claude-haiku-4-5-20251001-v1"
2032
+ contains: "us-gov.anthropic.claude-haiku-4-5-20251001-v1"
1933
2033
  },
1934
2034
  {
1935
- starts_with: "jp.anthropic.claude-haiku-4-5-20251001-v1"
2035
+ contains: "jp.anthropic.claude-haiku-4-5-20251001-v1"
1936
2036
  }
1937
2037
  ]
1938
2038
  },
@@ -1948,22 +2048,22 @@ const oe = [
1948
2048
  match: {
1949
2049
  or: [
1950
2050
  {
1951
- starts_with: "us.anthropic.claude-opus-4-1-20250805-v1"
2051
+ contains: "us.anthropic.claude-opus-4-1-20250805-v1"
1952
2052
  },
1953
2053
  {
1954
- starts_with: "au.anthropic.claude-opus-4-1-20250805-v1"
2054
+ contains: "au.anthropic.claude-opus-4-1-20250805-v1"
1955
2055
  },
1956
2056
  {
1957
- starts_with: "apac.anthropic.claude-opus-4-1-20250805-v1"
2057
+ contains: "apac.anthropic.claude-opus-4-1-20250805-v1"
1958
2058
  },
1959
2059
  {
1960
- starts_with: "eu.anthropic.claude-opus-4-1-20250805-v1"
2060
+ contains: "eu.anthropic.claude-opus-4-1-20250805-v1"
1961
2061
  },
1962
2062
  {
1963
- starts_with: "us-gov.anthropic.claude-opus-4-1-20250805-v1"
2063
+ contains: "us-gov.anthropic.claude-opus-4-1-20250805-v1"
1964
2064
  },
1965
2065
  {
1966
- starts_with: "jp.anthropic.claude-opus-4-1-20250805-v1"
2066
+ contains: "jp.anthropic.claude-opus-4-1-20250805-v1"
1967
2067
  }
1968
2068
  ]
1969
2069
  },
@@ -1979,22 +2079,22 @@ const oe = [
1979
2079
  match: {
1980
2080
  or: [
1981
2081
  {
1982
- starts_with: "us.anthropic.claude-opus-4-20250514-v1"
2082
+ contains: "us.anthropic.claude-opus-4-20250514-v1"
1983
2083
  },
1984
2084
  {
1985
- starts_with: "au.anthropic.claude-opus-4-20250514-v1"
2085
+ contains: "au.anthropic.claude-opus-4-20250514-v1"
1986
2086
  },
1987
2087
  {
1988
- starts_with: "apac.anthropic.claude-opus-4-20250514-v1"
2088
+ contains: "apac.anthropic.claude-opus-4-20250514-v1"
1989
2089
  },
1990
2090
  {
1991
- starts_with: "eu.anthropic.claude-opus-4-20250514-v1"
2091
+ contains: "eu.anthropic.claude-opus-4-20250514-v1"
1992
2092
  },
1993
2093
  {
1994
- starts_with: "us-gov.anthropic.claude-opus-4-20250514-v1"
2094
+ contains: "us-gov.anthropic.claude-opus-4-20250514-v1"
1995
2095
  },
1996
2096
  {
1997
- starts_with: "jp.anthropic.claude-opus-4-20250514-v1"
2097
+ contains: "jp.anthropic.claude-opus-4-20250514-v1"
1998
2098
  }
1999
2099
  ]
2000
2100
  },
@@ -2005,27 +2105,121 @@ const oe = [
2005
2105
  output_mtok: 75
2006
2106
  }
2007
2107
  },
2108
+ {
2109
+ id: "regional.anthropic.claude-opus-4-5-v1:0",
2110
+ match: {
2111
+ or: [
2112
+ {
2113
+ contains: "us.anthropic.claude-opus-4-5"
2114
+ },
2115
+ {
2116
+ contains: "au.anthropic.claude-opus-4-5"
2117
+ },
2118
+ {
2119
+ contains: "apac.anthropic.claude-opus-4-5"
2120
+ },
2121
+ {
2122
+ contains: "eu.anthropic.claude-opus-4-5"
2123
+ },
2124
+ {
2125
+ contains: "us-gov.anthropic.claude-opus-4-5"
2126
+ },
2127
+ {
2128
+ contains: "jp.anthropic.claude-opus-4-5"
2129
+ }
2130
+ ]
2131
+ },
2132
+ prices: {
2133
+ input_mtok: 5.5,
2134
+ cache_write_mtok: 6.875,
2135
+ cache_read_mtok: 0.55,
2136
+ output_mtok: 27.5
2137
+ }
2138
+ },
2139
+ {
2140
+ id: "regional.anthropic.claude-opus-4-6-v1:0",
2141
+ match: {
2142
+ or: [
2143
+ {
2144
+ contains: "us.anthropic.claude-opus-4-6"
2145
+ },
2146
+ {
2147
+ contains: "au.anthropic.claude-opus-4-6"
2148
+ },
2149
+ {
2150
+ contains: "apac.anthropic.claude-opus-4-6"
2151
+ },
2152
+ {
2153
+ contains: "eu.anthropic.claude-opus-4-6"
2154
+ },
2155
+ {
2156
+ contains: "us-gov.anthropic.claude-opus-4-6"
2157
+ },
2158
+ {
2159
+ contains: "jp.anthropic.claude-opus-4-6"
2160
+ }
2161
+ ]
2162
+ },
2163
+ prices: {
2164
+ input_mtok: {
2165
+ base: 5.5,
2166
+ tiers: [
2167
+ {
2168
+ start: 2e5,
2169
+ price: 11
2170
+ }
2171
+ ]
2172
+ },
2173
+ cache_write_mtok: {
2174
+ base: 6.875,
2175
+ tiers: [
2176
+ {
2177
+ start: 2e5,
2178
+ price: 13.75
2179
+ }
2180
+ ]
2181
+ },
2182
+ cache_read_mtok: {
2183
+ base: 0.55,
2184
+ tiers: [
2185
+ {
2186
+ start: 2e5,
2187
+ price: 1.1
2188
+ }
2189
+ ]
2190
+ },
2191
+ output_mtok: {
2192
+ base: 27.5,
2193
+ tiers: [
2194
+ {
2195
+ start: 2e5,
2196
+ price: 41.25
2197
+ }
2198
+ ]
2199
+ }
2200
+ }
2201
+ },
2008
2202
  {
2009
2203
  id: "regional.anthropic.claude-sonnet-4-20250514-v1:0",
2010
2204
  match: {
2011
2205
  or: [
2012
2206
  {
2013
- starts_with: "us.anthropic.claude-sonnet-4-20250514-v1"
2207
+ contains: "us.anthropic.claude-sonnet-4-20250514-v1"
2014
2208
  },
2015
2209
  {
2016
- starts_with: "au.anthropic.claude-sonnet-4-20250514-v1"
2210
+ contains: "au.anthropic.claude-sonnet-4-20250514-v1"
2017
2211
  },
2018
2212
  {
2019
- starts_with: "apac.anthropic.claude-sonnet-4-20250514-v1"
2213
+ contains: "apac.anthropic.claude-sonnet-4-20250514-v1"
2020
2214
  },
2021
2215
  {
2022
- starts_with: "eu.anthropic.claude-sonnet-4-20250514-v1"
2216
+ contains: "eu.anthropic.claude-sonnet-4-20250514-v1"
2023
2217
  },
2024
2218
  {
2025
- starts_with: "us-gov.anthropic.claude-sonnet-4-20250514-v1"
2219
+ contains: "us-gov.anthropic.claude-sonnet-4-20250514-v1"
2026
2220
  },
2027
2221
  {
2028
- starts_with: "jp.anthropic.claude-sonnet-4-20250514-v1"
2222
+ contains: "jp.anthropic.claude-sonnet-4-20250514-v1"
2029
2223
  }
2030
2224
  ]
2031
2225
  },
@@ -2041,22 +2235,22 @@ const oe = [
2041
2235
  match: {
2042
2236
  or: [
2043
2237
  {
2044
- starts_with: "us.anthropic.claude-sonnet-4-5-20250929-v1"
2238
+ contains: "us.anthropic.claude-sonnet-4-5-20250929-v1"
2045
2239
  },
2046
2240
  {
2047
- starts_with: "au.anthropic.claude-sonnet-4-5-20250929-v1"
2241
+ contains: "au.anthropic.claude-sonnet-4-5-20250929-v1"
2048
2242
  },
2049
2243
  {
2050
- starts_with: "apac.anthropic.claude-sonnet-4-5-20250929-v1"
2244
+ contains: "apac.anthropic.claude-sonnet-4-5-20250929-v1"
2051
2245
  },
2052
2246
  {
2053
- starts_with: "eu.anthropic.claude-sonnet-4-5-20250929-v1"
2247
+ contains: "eu.anthropic.claude-sonnet-4-5-20250929-v1"
2054
2248
  },
2055
2249
  {
2056
- starts_with: "us-gov.anthropic.claude-sonnet-4-5-20250929-v1"
2250
+ contains: "us-gov.anthropic.claude-sonnet-4-5-20250929-v1"
2057
2251
  },
2058
2252
  {
2059
- starts_with: "jp.anthropic.claude-sonnet-4-5-20250929-v1"
2253
+ contains: "jp.anthropic.claude-sonnet-4-5-20250929-v1"
2060
2254
  }
2061
2255
  ]
2062
2256
  },
@@ -2066,6 +2260,69 @@ const oe = [
2066
2260
  cache_read_mtok: 0.33,
2067
2261
  output_mtok: 16.5
2068
2262
  }
2263
+ },
2264
+ {
2265
+ id: "regional.anthropic.claude-sonnet-4-6-v1:0",
2266
+ match: {
2267
+ or: [
2268
+ {
2269
+ contains: "us.anthropic.claude-sonnet-4-6"
2270
+ },
2271
+ {
2272
+ contains: "au.anthropic.claude-sonnet-4-6"
2273
+ },
2274
+ {
2275
+ contains: "apac.anthropic.claude-sonnet-4-6"
2276
+ },
2277
+ {
2278
+ contains: "eu.anthropic.claude-sonnet-4-6"
2279
+ },
2280
+ {
2281
+ contains: "us-gov.anthropic.claude-sonnet-4-6"
2282
+ },
2283
+ {
2284
+ contains: "jp.anthropic.claude-sonnet-4-6"
2285
+ }
2286
+ ]
2287
+ },
2288
+ prices: {
2289
+ input_mtok: {
2290
+ base: 3.3,
2291
+ tiers: [
2292
+ {
2293
+ start: 2e5,
2294
+ price: 6.6
2295
+ }
2296
+ ]
2297
+ },
2298
+ cache_write_mtok: {
2299
+ base: 4.125,
2300
+ tiers: [
2301
+ {
2302
+ start: 2e5,
2303
+ price: 8.25
2304
+ }
2305
+ ]
2306
+ },
2307
+ cache_read_mtok: {
2308
+ base: 0.33,
2309
+ tiers: [
2310
+ {
2311
+ start: 2e5,
2312
+ price: 0.66
2313
+ }
2314
+ ]
2315
+ },
2316
+ output_mtok: {
2317
+ base: 16.5,
2318
+ tiers: [
2319
+ {
2320
+ start: 2e5,
2321
+ price: 24.75
2322
+ }
2323
+ ]
2324
+ }
2325
+ }
2069
2326
  }
2070
2327
  ]
2071
2328
  },
@@ -3800,6 +4057,43 @@ Compared to other leading proprietary and open-weights models Command A delivers
3800
4057
  }
3801
4058
  }
3802
4059
  },
4060
+ {
4061
+ id: "gemini-3.1-pro-preview",
4062
+ name: "Gemini 3.1 Pro Preview",
4063
+ description: "The latest performance, intelligence, and usability improvements to the best model family in the world for multimodal understanding, agentic capabilities, and vibe-coding.",
4064
+ match: {
4065
+ starts_with: "gemini-3.1-pro-preview"
4066
+ },
4067
+ prices: {
4068
+ input_mtok: {
4069
+ base: 2,
4070
+ tiers: [
4071
+ {
4072
+ start: 2e5,
4073
+ price: 4
4074
+ }
4075
+ ]
4076
+ },
4077
+ cache_read_mtok: {
4078
+ base: 0.2,
4079
+ tiers: [
4080
+ {
4081
+ start: 2e5,
4082
+ price: 0.4
4083
+ }
4084
+ ]
4085
+ },
4086
+ output_mtok: {
4087
+ base: 12,
4088
+ tiers: [
4089
+ {
4090
+ start: 2e5,
4091
+ price: 18
4092
+ }
4093
+ ]
4094
+ }
4095
+ }
4096
+ },
3803
4097
  {
3804
4098
  id: "gemini-embedding-001",
3805
4099
  match: {