@pydantic/genai-prices 0.0.46 → 0.0.48

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,28 +1,28 @@
1
1
  #!/usr/bin/env node
2
- import dt from "yargs";
3
- import { format as ht } from "util";
4
- import { resolve as at, normalize as Lt } from "path";
5
- import { readFileSync as _t, writeFile as Mt, statSync as At } from "fs";
2
+ import de from "yargs";
3
+ import { format as he } from "util";
4
+ import { resolve as ae, normalize as Le } from "path";
5
+ import { readFileSync as _e, writeFile as Me, statSync as Ae } from "fs";
6
6
  import "assert";
7
- import { fileURLToPath as Qt } from "url";
8
- function Pt() {
9
- return St() ? 0 : 1;
7
+ import { fileURLToPath as Qe } from "url";
8
+ function Te() {
9
+ return Pe() ? 0 : 1;
10
10
  }
11
- function St() {
12
- return Tt() && !process.defaultApp;
11
+ function Pe() {
12
+ return Se() && !process.defaultApp;
13
13
  }
14
- function Tt() {
14
+ function Se() {
15
15
  return !!process.versions.electron;
16
16
  }
17
- function Gt(i) {
18
- return i.slice(Pt() + 1);
17
+ function Ge(i) {
18
+ return i.slice(Te() + 1);
19
19
  }
20
20
  /**
21
21
  * @license
22
22
  * Copyright (c) 2016, Contributors
23
23
  * SPDX-License-Identifier: ISC
24
24
  */
25
- function $(i) {
25
+ function K(i) {
26
26
  if (i !== i.toLowerCase() && i !== i.toUpperCase() || (i = i.toLowerCase()), i.indexOf("-") === -1 && i.indexOf("_") === -1)
27
27
  return i;
28
28
  {
@@ -35,7 +35,7 @@ function $(i) {
35
35
  return m;
36
36
  }
37
37
  }
38
- function Rt(i, n) {
38
+ function Ce(i, n) {
39
39
  const m = i.toLowerCase();
40
40
  n = n || "-";
41
41
  let s = "";
@@ -45,7 +45,7 @@ function Rt(i, n) {
45
45
  }
46
46
  return s;
47
47
  }
48
- function Ct(i) {
48
+ function Re(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 Ct(i) {
53
53
  * Copyright (c) 2016, Contributors
54
54
  * SPDX-License-Identifier: ISC
55
55
  */
56
- function Et(i) {
56
+ function ze(i) {
57
57
  if (Array.isArray(i))
58
58
  return i.map((_) => typeof _ != "string" ? _ + "" : _);
59
59
  i = i.trim();
@@ -82,10 +82,10 @@ var L;
82
82
  * Copyright (c) 2016, Contributors
83
83
  * SPDX-License-Identifier: ISC
84
84
  */
85
- let P;
86
- class Ot {
85
+ let T;
86
+ class Oe {
87
87
  constructor(n) {
88
- P = n;
88
+ T = n;
89
89
  }
90
90
  parse(n, m) {
91
91
  const s = Object.assign({
@@ -105,7 +105,7 @@ class Ot {
105
105
  number: void 0,
106
106
  __: void 0,
107
107
  key: void 0
108
- }, m), u = Et(n), k = typeof n == "string", _ = Dt(Object.assign(/* @__PURE__ */ Object.create(null), s.alias)), h = Object.assign({
108
+ }, m), u = ze(n), k = typeof n == "string", _ = Ne(Object.assign(/* @__PURE__ */ Object.create(null), s.alias)), h = Object.assign({
109
109
  "boolean-negation": !0,
110
110
  "camel-case-expansion": !0,
111
111
  "combine-arrays": !1,
@@ -124,7 +124,7 @@ class Ot {
124
124
  "strip-aliased": !1,
125
125
  "strip-dashed": !1,
126
126
  "unknown-options-as-args": !1
127
- }, s.configuration), f = Object.assign(/* @__PURE__ */ Object.create(null), s.default), B = s.configObjects || [], A = s.envPrefix, S = h["populate--"], T = S ? "--" : "_", z = /* @__PURE__ */ Object.create(null), ot = /* @__PURE__ */ Object.create(null), G = s.__ || P.format, r = {
127
+ }, s.configuration), q = Object.assign(/* @__PURE__ */ Object.create(null), s.default), B = s.configObjects || [], A = s.envPrefix, P = h["populate--"], S = P ? "--" : "_", D = /* @__PURE__ */ Object.create(null), oe = /* @__PURE__ */ Object.create(null), G = s.__ || T.format, r = {
128
128
  aliases: /* @__PURE__ */ Object.create(null),
129
129
  arrays: /* @__PURE__ */ Object.create(null),
130
130
  bools: /* @__PURE__ */ Object.create(null),
@@ -137,8 +137,8 @@ class Ot {
137
137
  coercions: /* @__PURE__ */ Object.create(null),
138
138
  keys: []
139
139
  }, M = /^-([0-9]+(\.[0-9]+)?|\.[0-9]+)$/, W = new RegExp("^--" + h["negation-prefix"] + "(.+)");
140
- [].concat(s.array || []).filter(Boolean).forEach(function(t) {
141
- const a = typeof t == "object" ? t.key : t, c = Object.keys(t).map(function(o) {
140
+ [].concat(s.array || []).filter(Boolean).forEach(function(e) {
141
+ const a = typeof e == "object" ? e.key : e, c = Object.keys(e).map(function(o) {
142
142
  return {
143
143
  boolean: "bools",
144
144
  string: "strings",
@@ -146,355 +146,355 @@ class Ot {
146
146
  }[o];
147
147
  }).filter(Boolean).pop();
148
148
  c && (r[c][a] = !0), r.arrays[a] = !0, r.keys.push(a);
149
- }), [].concat(s.boolean || []).filter(Boolean).forEach(function(t) {
150
- r.bools[t] = !0, r.keys.push(t);
151
- }), [].concat(s.string || []).filter(Boolean).forEach(function(t) {
152
- r.strings[t] = !0, r.keys.push(t);
153
- }), [].concat(s.number || []).filter(Boolean).forEach(function(t) {
154
- r.numbers[t] = !0, r.keys.push(t);
155
- }), [].concat(s.count || []).filter(Boolean).forEach(function(t) {
156
- r.counts[t] = !0, r.keys.push(t);
157
- }), [].concat(s.normalize || []).filter(Boolean).forEach(function(t) {
158
- r.normalize[t] = !0, r.keys.push(t);
159
- }), typeof s.narg == "object" && Object.entries(s.narg).forEach(([t, a]) => {
160
- typeof a == "number" && (r.nargs[t] = a, r.keys.push(t));
161
- }), typeof s.coerce == "object" && Object.entries(s.coerce).forEach(([t, a]) => {
162
- typeof a == "function" && (r.coercions[t] = a, r.keys.push(t));
163
- }), typeof s.config < "u" && (Array.isArray(s.config) || typeof s.config == "string" ? [].concat(s.config).filter(Boolean).forEach(function(t) {
164
- r.configs[t] = !0;
165
- }) : typeof s.config == "object" && Object.entries(s.config).forEach(([t, a]) => {
166
- (typeof a == "boolean" || typeof a == "function") && (r.configs[t] = a);
167
- })), wt(s.key, _, s.default, r.arrays), Object.keys(f).forEach(function(t) {
168
- (r.aliases[t] || []).forEach(function(a) {
169
- f[a] = f[t];
149
+ }), [].concat(s.boolean || []).filter(Boolean).forEach(function(e) {
150
+ r.bools[e] = !0, r.keys.push(e);
151
+ }), [].concat(s.string || []).filter(Boolean).forEach(function(e) {
152
+ r.strings[e] = !0, r.keys.push(e);
153
+ }), [].concat(s.number || []).filter(Boolean).forEach(function(e) {
154
+ r.numbers[e] = !0, r.keys.push(e);
155
+ }), [].concat(s.count || []).filter(Boolean).forEach(function(e) {
156
+ r.counts[e] = !0, r.keys.push(e);
157
+ }), [].concat(s.normalize || []).filter(Boolean).forEach(function(e) {
158
+ r.normalize[e] = !0, r.keys.push(e);
159
+ }), typeof s.narg == "object" && Object.entries(s.narg).forEach(([e, a]) => {
160
+ typeof a == "number" && (r.nargs[e] = a, r.keys.push(e));
161
+ }), typeof s.coerce == "object" && Object.entries(s.coerce).forEach(([e, a]) => {
162
+ typeof a == "function" && (r.coercions[e] = a, r.keys.push(e));
163
+ }), typeof s.config < "u" && (Array.isArray(s.config) || typeof s.config == "string" ? [].concat(s.config).filter(Boolean).forEach(function(e) {
164
+ r.configs[e] = !0;
165
+ }) : typeof s.config == "object" && Object.entries(s.config).forEach(([e, a]) => {
166
+ (typeof a == "boolean" || typeof a == "function") && (r.configs[e] = a);
167
+ })), be(s.key, _, s.default, r.arrays), Object.keys(q).forEach(function(e) {
168
+ (r.aliases[e] || []).forEach(function(a) {
169
+ q[a] = q[e];
170
170
  });
171
171
  });
172
172
  let y = null;
173
- It();
173
+ Ie();
174
174
  let j = [];
175
- const q = Object.assign(/* @__PURE__ */ Object.create(null), { _: [] }), nt = {};
176
- for (let t = 0; t < u.length; t++) {
177
- const a = u[t], c = a.replace(/^-{3,}/, "---");
178
- let o, e, l, p, d, v;
179
- if (a !== "--" && /^-/.test(a) && K(a))
175
+ const w = Object.assign(/* @__PURE__ */ Object.create(null), { _: [] }), ne = {};
176
+ for (let e = 0; e < u.length; e++) {
177
+ const a = u[e], c = a.replace(/^-{3,}/, "---");
178
+ let o, t, l, p, d, v;
179
+ if (a !== "--" && /^-/.test(a) && $(a))
180
180
  U(a);
181
181
  else if (c.match(/^---+(=|$)/)) {
182
182
  U(a);
183
183
  continue;
184
184
  } else if (a.match(/^--.+=/) || !h["short-option-groups"] && a.match(/^-.+=/))
185
- p = a.match(/^--?([^=]+)=([\s\S]*)$/), p !== null && Array.isArray(p) && p.length >= 3 && (g(p[1], r.arrays) ? t = V(t, p[1], u, p[2]) : g(p[1], r.nargs) !== !1 ? t = F(t, p[1], u, 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], r.arrays) ? e = F(e, p[1], u, p[2]) : g(p[1], r.nargs) !== !1 ? e = V(e, p[1], u, p[2]) : b(p[1], p[2], !0));
186
186
  else if (a.match(W) && h["boolean-negation"])
187
- p = a.match(W), p !== null && Array.isArray(p) && p.length >= 2 && (e = p[1], w(e, g(e, r.arrays) ? [!1] : !1));
187
+ p = a.match(W), p !== null && Array.isArray(p) && p.length >= 2 && (t = p[1], b(t, g(t, r.arrays) ? [!1] : !1));
188
188
  else if (a.match(/^--.+/) || !h["short-option-groups"] && a.match(/^-[^-]+/))
189
- p = a.match(/^--?(.+)/), p !== null && Array.isArray(p) && p.length >= 2 && (e = p[1], g(e, r.arrays) ? t = V(t, e, u) : g(e, r.nargs) !== !1 ? t = F(t, e, u) : (d = u[t + 1], d !== void 0 && (!d.match(/^-/) || d.match(M)) && !g(e, r.bools) && !g(e, r.counts) || /^(true|false)$/.test(d) ? (w(e, d), t++) : w(e, C(e))));
189
+ p = a.match(/^--?(.+)/), p !== null && Array.isArray(p) && p.length >= 2 && (t = p[1], g(t, r.arrays) ? e = F(e, t, u) : g(t, r.nargs) !== !1 ? e = V(e, t, u) : (d = u[e + 1], d !== void 0 && (!d.match(/^-/) || d.match(M)) && !g(t, r.bools) && !g(t, r.counts) || /^(true|false)$/.test(d) ? (b(t, d), e++) : b(t, R(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(M))
193
- d = u[t + 1], p = a.match(/^-(.\..+)/), p !== null && Array.isArray(p) && p.length >= 2 && (e = p[1], d !== void 0 && !d.match(/^-/) && !g(e, r.bools) && !g(e, r.counts) ? (w(e, d), t++) : w(e, C(e)));
193
+ d = u[e + 1], p = a.match(/^-(.\..+)/), p !== null && Array.isArray(p) && p.length >= 2 && (t = p[1], d !== void 0 && !d.match(/^-/) && !g(t, r.bools) && !g(t, r.counts) ? (b(t, d), e++) : b(t, R(t)));
194
194
  else if (a.match(/^-[^-]+/) && !a.match(M)) {
195
195
  l = a.slice(1, -1).split(""), o = !1;
196
196
  for (let x = 0; x < l.length; x++) {
197
197
  if (d = a.slice(x + 2), l[x + 1] && l[x + 1] === "=") {
198
- v = a.slice(x + 3), e = l[x], g(e, r.arrays) ? t = V(t, e, u, v) : g(e, r.nargs) !== !1 ? t = F(t, e, u, v) : w(e, v), o = !0;
198
+ v = a.slice(x + 3), t = l[x], g(t, r.arrays) ? e = F(e, t, u, v) : g(t, r.nargs) !== !1 ? e = V(e, t, u, v) : b(t, v), o = !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, r.bools) === !1) {
206
- w(l[x], d), o = !0;
206
+ b(l[x], d), o = !0;
207
207
  break;
208
208
  }
209
209
  if (l[x + 1] && l[x + 1].match(/\W/)) {
210
- w(l[x], d), o = !0;
210
+ b(l[x], d), o = !0;
211
211
  break;
212
212
  } else
213
- w(l[x], C(l[x]));
213
+ b(l[x], R(l[x]));
214
214
  }
215
- e = a.slice(-1)[0], !o && e !== "-" && (g(e, r.arrays) ? t = V(t, e, u) : g(e, r.nargs) !== !1 ? t = F(t, e, u) : (d = u[t + 1], d !== void 0 && (!/^(-|--)[^-]/.test(d) || d.match(M)) && !g(e, r.bools) && !g(e, r.counts) || /^(true|false)$/.test(d) ? (w(e, d), t++) : w(e, C(e))));
215
+ t = a.slice(-1)[0], !o && t !== "-" && (g(t, r.arrays) ? e = F(e, t, u) : g(t, r.nargs) !== !1 ? e = V(e, t, u) : (d = u[e + 1], d !== void 0 && (!/^(-|--)[^-]/.test(d) || d.match(M)) && !g(t, r.bools) && !g(t, r.counts) || /^(true|false)$/.test(d) ? (b(t, d), e++) : b(t, R(t))));
216
216
  } else if (a.match(/^-[0-9]$/) && a.match(M) && g(a.slice(1), r.bools))
217
- e = a.slice(1), w(e, C(e));
217
+ t = a.slice(1), b(t, R(t));
218
218
  else if (a === "--") {
219
- j = u.slice(t + 1);
219
+ j = u.slice(e + 1);
220
220
  break;
221
221
  } else if (h["halt-at-non-option"]) {
222
- j = u.slice(t);
222
+ j = u.slice(e);
223
223
  break;
224
224
  } else
225
225
  U(a);
226
226
  }
227
- rt(q, !0), rt(q, !1), kt(q), gt(), mt(q, r.aliases, f, !0), ft(q), h["set-placeholder-key"] && bt(q), Object.keys(r.counts).forEach(function(t) {
228
- E(q, t.split(".")) || w(t, 0);
229
- }), S && j.length && (q[T] = []), j.forEach(function(t) {
230
- q[T].push(t);
231
- }), h["camel-case-expansion"] && h["strip-dashed"] && Object.keys(q).filter((t) => t !== "--" && t.includes("-")).forEach((t) => {
232
- delete q[t];
233
- }), h["strip-aliased"] && [].concat(...Object.keys(_).map((t) => _[t])).forEach((t) => {
234
- h["camel-case-expansion"] && t.includes("-") && delete q[t.split(".").map((a) => $(a)).join(".")], delete q[t];
227
+ re(w, !0), re(w, !1), ke(w), ge(), me(w, r.aliases, q, !0), qe(w), h["set-placeholder-key"] && fe(w), Object.keys(r.counts).forEach(function(e) {
228
+ z(w, e.split(".")) || b(e, 0);
229
+ }), P && j.length && (w[S] = []), j.forEach(function(e) {
230
+ w[S].push(e);
231
+ }), h["camel-case-expansion"] && h["strip-dashed"] && Object.keys(w).filter((e) => e !== "--" && e.includes("-")).forEach((e) => {
232
+ delete w[e];
233
+ }), h["strip-aliased"] && [].concat(...Object.keys(_).map((e) => _[e])).forEach((e) => {
234
+ h["camel-case-expansion"] && e.includes("-") && delete w[e.split(".").map((a) => K(a)).join(".")], delete w[e];
235
235
  });
236
- function U(t) {
237
- const a = H("_", t);
238
- (typeof a == "string" || typeof a == "number") && q._.push(a);
236
+ function U(e) {
237
+ const a = H("_", e);
238
+ (typeof a == "string" || typeof a == "number") && w._.push(a);
239
239
  }
240
- function F(t, a, c, o) {
241
- let e, l = g(a, r.nargs);
240
+ function V(e, a, c, o) {
241
+ let t, l = g(a, r.nargs);
242
242
  if (l = typeof l != "number" || isNaN(l) ? 1 : l, l === 0)
243
- return Q(o) || (y = Error(G("Argument unexpected for: %s", a))), w(a, C(a)), t;
243
+ return Q(o) || (y = Error(G("Argument unexpected for: %s", a))), b(a, R(a)), e;
244
244
  let p = Q(o) ? 0 : 1;
245
245
  if (h["nargs-eats-options"])
246
- c.length - (t + 1) + p < l && (y = Error(G("Not enough arguments following: %s", a))), p = l;
246
+ c.length - (e + 1) + p < l && (y = Error(G("Not enough arguments following: %s", a))), p = l;
247
247
  else {
248
- for (e = t + 1; e < c.length && (!c[e].match(/^-[^0-9]/) || c[e].match(M) || K(c[e])); e++)
248
+ for (t = e + 1; t < c.length && (!c[t].match(/^-[^0-9]/) || c[t].match(M) || $(c[t])); t++)
249
249
  p++;
250
250
  p < l && (y = Error(G("Not enough arguments following: %s", a)));
251
251
  }
252
252
  let d = Math.min(p, l);
253
- for (!Q(o) && d > 0 && (w(a, o), d--), e = t + 1; e < d + t + 1; e++)
254
- w(a, c[e]);
255
- return t + d;
253
+ for (!Q(o) && d > 0 && (b(a, o), d--), t = e + 1; t < d + e + 1; t++)
254
+ b(a, c[t]);
255
+ return e + d;
256
256
  }
257
- function V(t, a, c, o) {
258
- let e = [], l = o || c[t + 1];
257
+ function F(e, a, c, o) {
258
+ let t = [], l = o || c[e + 1];
259
259
  const p = g(a, r.nargs);
260
260
  if (g(a, r.bools) && !/^(true|false)$/.test(l))
261
- e.push(!0);
262
- else if (Q(l) || Q(o) && /^-/.test(l) && !M.test(l) && !K(l)) {
263
- if (f[a] !== void 0) {
264
- const d = f[a];
265
- e = Array.isArray(d) ? d : [d];
261
+ t.push(!0);
262
+ else if (Q(l) || Q(o) && /^-/.test(l) && !M.test(l) && !$(l)) {
263
+ if (q[a] !== void 0) {
264
+ const d = q[a];
265
+ t = Array.isArray(d) ? d : [d];
266
266
  }
267
267
  } else {
268
- Q(o) || e.push(Y(a, o, !0));
269
- for (let d = t + 1; d < c.length && !(!h["greedy-arrays"] && e.length > 0 || p && typeof p == "number" && e.length >= p || (l = c[d], /^-/.test(l) && !M.test(l) && !K(l))); d++)
270
- t = d, e.push(Y(a, l, k));
268
+ Q(o) || t.push(Y(a, o, !0));
269
+ for (let d = e + 1; d < c.length && !(!h["greedy-arrays"] && t.length > 0 || p && typeof p == "number" && t.length >= p || (l = c[d], /^-/.test(l) && !M.test(l) && !$(l))); d++)
270
+ e = d, t.push(Y(a, l, k));
271
271
  }
272
- return typeof p == "number" && (p && e.length < p || isNaN(p) && e.length === 0) && (y = Error(G("Not enough arguments following: %s", a))), w(a, e), t;
272
+ return typeof p == "number" && (p && t.length < p || isNaN(p) && t.length === 0) && (y = Error(G("Not enough arguments following: %s", a))), b(a, t), e;
273
273
  }
274
- function w(t, a, c = k) {
275
- if (/-/.test(t) && h["camel-case-expansion"]) {
276
- const l = t.split(".").map(function(p) {
277
- return $(p);
274
+ function b(e, a, c = k) {
275
+ if (/-/.test(e) && h["camel-case-expansion"]) {
276
+ const l = e.split(".").map(function(p) {
277
+ return K(p);
278
278
  }).join(".");
279
- st(t, l);
279
+ se(e, l);
280
280
  }
281
- const o = Y(t, a, c), e = t.split(".");
282
- O(q, e, o), r.aliases[t] && r.aliases[t].forEach(function(l) {
281
+ const o = Y(e, a, c), t = e.split(".");
282
+ O(w, t, o), r.aliases[e] && r.aliases[e].forEach(function(l) {
283
283
  const p = l.split(".");
284
- O(q, p, o);
285
- }), e.length > 1 && h["dot-notation"] && (r.aliases[e[0]] || []).forEach(function(l) {
284
+ O(w, p, o);
285
+ }), t.length > 1 && h["dot-notation"] && (r.aliases[t[0]] || []).forEach(function(l) {
286
286
  let p = l.split(".");
287
- const d = [].concat(e);
288
- d.shift(), p = p.concat(d), (r.aliases[t] || []).includes(p.join(".")) || O(q, p, o);
289
- }), g(t, r.normalize) && !g(t, r.arrays) && [t].concat(r.aliases[t] || []).forEach(function(p) {
290
- Object.defineProperty(nt, p, {
287
+ const d = [].concat(t);
288
+ d.shift(), p = p.concat(d), (r.aliases[e] || []).includes(p.join(".")) || O(w, p, o);
289
+ }), g(e, r.normalize) && !g(e, r.arrays) && [e].concat(r.aliases[e] || []).forEach(function(p) {
290
+ Object.defineProperty(ne, p, {
291
291
  enumerable: !0,
292
292
  get() {
293
293
  return a;
294
294
  },
295
295
  set(d) {
296
- a = typeof d == "string" ? P.normalize(d) : d;
296
+ a = typeof d == "string" ? T.normalize(d) : d;
297
297
  }
298
298
  });
299
299
  });
300
300
  }
301
- function st(t, a) {
302
- r.aliases[t] && r.aliases[t].length || (r.aliases[t] = [a], z[a] = !0), r.aliases[a] && r.aliases[a].length || st(a, t);
301
+ function se(e, a) {
302
+ r.aliases[e] && r.aliases[e].length || (r.aliases[e] = [a], D[a] = !0), r.aliases[a] && r.aliases[a].length || se(a, e);
303
303
  }
304
- function Y(t, a, c) {
305
- c && (a = Nt(a)), (g(t, r.bools) || g(t, r.counts)) && typeof a == "string" && (a = a === "true");
306
- let o = Array.isArray(a) ? a.map(function(e) {
307
- return H(t, e);
308
- }) : H(t, a);
309
- return g(t, r.counts) && (Q(o) || typeof o == "boolean") && (o = Z()), g(t, r.normalize) && g(t, r.arrays) && (Array.isArray(a) ? o = a.map((e) => P.normalize(e)) : o = P.normalize(a)), o;
304
+ function Y(e, a, c) {
305
+ c && (a = Ee(a)), (g(e, r.bools) || g(e, r.counts)) && typeof a == "string" && (a = a === "true");
306
+ let o = Array.isArray(a) ? a.map(function(t) {
307
+ return H(e, t);
308
+ }) : H(e, a);
309
+ return g(e, r.counts) && (Q(o) || typeof o == "boolean") && (o = Z()), g(e, r.normalize) && g(e, r.arrays) && (Array.isArray(a) ? o = a.map((t) => T.normalize(t)) : o = T.normalize(a)), o;
310
310
  }
311
- function H(t, a) {
312
- return !h["parse-positional-numbers"] && t === "_" || !g(t, r.strings) && !g(t, r.bools) && !Array.isArray(a) && (Ct(a) && h["parse-numbers"] && Number.isSafeInteger(Math.floor(parseFloat(`${a}`))) || !Q(a) && g(t, r.numbers)) && (a = Number(a)), a;
311
+ function H(e, a) {
312
+ return !h["parse-positional-numbers"] && e === "_" || !g(e, r.strings) && !g(e, r.bools) && !Array.isArray(a) && (Re(a) && h["parse-numbers"] && Number.isSafeInteger(Math.floor(parseFloat(`${a}`))) || !Q(a) && g(e, r.numbers)) && (a = Number(a)), a;
313
313
  }
314
- function kt(t) {
314
+ function ke(e) {
315
315
  const a = /* @__PURE__ */ Object.create(null);
316
- mt(a, r.aliases, f), Object.keys(r.configs).forEach(function(c) {
317
- const o = t[c] || a[c];
316
+ me(a, r.aliases, q), Object.keys(r.configs).forEach(function(c) {
317
+ const o = e[c] || a[c];
318
318
  if (o)
319
319
  try {
320
- let e = null;
321
- const l = P.resolve(P.cwd(), o), p = r.configs[c];
320
+ let t = null;
321
+ const l = T.resolve(T.cwd(), o), p = r.configs[c];
322
322
  if (typeof p == "function") {
323
323
  try {
324
- e = p(l);
324
+ t = p(l);
325
325
  } catch (d) {
326
- e = d;
326
+ t = d;
327
327
  }
328
- if (e instanceof Error) {
329
- y = e;
328
+ if (t instanceof Error) {
329
+ y = t;
330
330
  return;
331
331
  }
332
332
  } else
333
- e = P.require(l);
334
- J(e);
335
- } catch (e) {
336
- e.name === "PermissionDenied" ? y = e : t[c] && (y = Error(G("Invalid JSON config file: %s", o)));
333
+ t = T.require(l);
334
+ J(t);
335
+ } catch (t) {
336
+ t.name === "PermissionDenied" ? y = t : e[c] && (y = Error(G("Invalid JSON config file: %s", o)));
337
337
  }
338
338
  });
339
339
  }
340
- function J(t, a) {
341
- Object.keys(t).forEach(function(c) {
342
- const o = t[c], e = a ? a + "." + c : c;
343
- typeof o == "object" && o !== null && !Array.isArray(o) && h["dot-notation"] ? J(o, e) : (!E(q, e.split(".")) || g(e, r.arrays) && h["combine-arrays"]) && w(e, o);
340
+ function J(e, a) {
341
+ Object.keys(e).forEach(function(c) {
342
+ const o = e[c], t = a ? a + "." + c : c;
343
+ typeof o == "object" && o !== null && !Array.isArray(o) && h["dot-notation"] ? J(o, t) : (!z(w, t.split(".")) || g(t, r.arrays) && h["combine-arrays"]) && b(t, o);
344
344
  });
345
345
  }
346
- function gt() {
347
- typeof B < "u" && B.forEach(function(t) {
348
- J(t);
346
+ function ge() {
347
+ typeof B < "u" && B.forEach(function(e) {
348
+ J(e);
349
349
  });
350
350
  }
351
- function rt(t, a) {
351
+ function re(e, a) {
352
352
  if (typeof A > "u")
353
353
  return;
354
- const c = typeof A == "string" ? A : "", o = P.env();
355
- Object.keys(o).forEach(function(e) {
356
- if (c === "" || e.lastIndexOf(c, 0) === 0) {
357
- const l = e.split("__").map(function(p, d) {
358
- return d === 0 && (p = p.substring(c.length)), $(p);
354
+ const c = typeof A == "string" ? A : "", o = T.env();
355
+ Object.keys(o).forEach(function(t) {
356
+ if (c === "" || t.lastIndexOf(c, 0) === 0) {
357
+ const l = t.split("__").map(function(p, d) {
358
+ return d === 0 && (p = p.substring(c.length)), K(p);
359
359
  });
360
- (a && r.configs[l.join(".")] || !a) && !E(t, l) && w(l.join("."), o[e]);
360
+ (a && r.configs[l.join(".")] || !a) && !z(e, l) && b(l.join("."), o[t]);
361
361
  }
362
362
  });
363
363
  }
364
- function ft(t) {
364
+ function qe(e) {
365
365
  let a;
366
366
  const c = /* @__PURE__ */ new Set();
367
- Object.keys(t).forEach(function(o) {
367
+ Object.keys(e).forEach(function(o) {
368
368
  if (!c.has(o) && (a = g(o, r.coercions), typeof a == "function"))
369
369
  try {
370
- const e = H(o, a(t[o]));
370
+ const t = H(o, a(e[o]));
371
371
  [].concat(r.aliases[o] || [], o).forEach((l) => {
372
- c.add(l), t[l] = e;
372
+ c.add(l), e[l] = t;
373
373
  });
374
- } catch (e) {
375
- y = e;
374
+ } catch (t) {
375
+ y = t;
376
376
  }
377
377
  });
378
378
  }
379
- function bt(t) {
379
+ function fe(e) {
380
380
  return r.keys.forEach((a) => {
381
- ~a.indexOf(".") || typeof t[a] > "u" && (t[a] = void 0);
382
- }), t;
381
+ ~a.indexOf(".") || typeof e[a] > "u" && (e[a] = void 0);
382
+ }), e;
383
383
  }
384
- function mt(t, a, c, o = !1) {
385
- Object.keys(c).forEach(function(e) {
386
- E(t, e.split(".")) || (O(t, e.split("."), c[e]), o && (ot[e] = !0), (a[e] || []).forEach(function(l) {
387
- E(t, l.split(".")) || O(t, l.split("."), c[e]);
384
+ function me(e, a, c, o = !1) {
385
+ Object.keys(c).forEach(function(t) {
386
+ z(e, t.split(".")) || (O(e, t.split("."), c[t]), o && (oe[t] = !0), (a[t] || []).forEach(function(l) {
387
+ z(e, l.split(".")) || O(e, l.split("."), c[t]);
388
388
  }));
389
389
  });
390
390
  }
391
- function E(t, a) {
392
- let c = t;
393
- h["dot-notation"] || (a = [a.join(".")]), a.slice(0, -1).forEach(function(e) {
394
- c = c[e] || {};
391
+ function z(e, a) {
392
+ let c = e;
393
+ h["dot-notation"] || (a = [a.join(".")]), a.slice(0, -1).forEach(function(t) {
394
+ c = c[t] || {};
395
395
  });
396
396
  const o = a[a.length - 1];
397
397
  return typeof c != "object" ? !1 : o in c;
398
398
  }
399
- function O(t, a, c) {
400
- let o = t;
399
+ function O(e, a, c) {
400
+ let o = e;
401
401
  h["dot-notation"] || (a = [a.join(".")]), a.slice(0, -1).forEach(function(v) {
402
- v = ct(v), typeof o == "object" && o[v] === void 0 && (o[v] = {}), typeof o[v] != "object" || Array.isArray(o[v]) ? (Array.isArray(o[v]) ? o[v].push({}) : o[v] = [o[v], {}], o = o[v][o[v].length - 1]) : o = o[v];
402
+ v = ce(v), typeof o == "object" && o[v] === void 0 && (o[v] = {}), typeof o[v] != "object" || Array.isArray(o[v]) ? (Array.isArray(o[v]) ? o[v].push({}) : o[v] = [o[v], {}], o = o[v][o[v].length - 1]) : o = o[v];
403
403
  });
404
- const e = ct(a[a.length - 1]), l = g(a.join("."), r.arrays), p = Array.isArray(c);
404
+ const t = ce(a[a.length - 1]), l = g(a.join("."), r.arrays), p = Array.isArray(c);
405
405
  let d = h["duplicate-arguments-array"];
406
- !d && g(e, r.nargs) && (d = !0, (!Q(o[e]) && r.nargs[e] === 1 || Array.isArray(o[e]) && o[e].length === r.nargs[e]) && (o[e] = void 0)), c === Z() ? o[e] = Z(o[e]) : Array.isArray(o[e]) ? d && l && p ? o[e] = h["flatten-duplicate-arrays"] ? o[e].concat(c) : (Array.isArray(o[e][0]) ? o[e] : [o[e]]).concat([c]) : !d && !!l == !!p ? o[e] = c : o[e] = o[e].concat([c]) : o[e] === void 0 && l ? o[e] = p ? c : [c] : d && !(o[e] === void 0 || g(e, r.counts) || g(e, r.bools)) ? o[e] = [o[e], c] : o[e] = c;
406
+ !d && g(t, r.nargs) && (d = !0, (!Q(o[t]) && r.nargs[t] === 1 || Array.isArray(o[t]) && o[t].length === r.nargs[t]) && (o[t] = void 0)), c === Z() ? o[t] = Z(o[t]) : Array.isArray(o[t]) ? d && l && p ? o[t] = h["flatten-duplicate-arrays"] ? o[t].concat(c) : (Array.isArray(o[t][0]) ? o[t] : [o[t]]).concat([c]) : !d && !!l == !!p ? o[t] = c : o[t] = o[t].concat([c]) : o[t] === void 0 && l ? o[t] = p ? c : [c] : d && !(o[t] === void 0 || g(t, r.counts) || g(t, r.bools)) ? o[t] = [o[t], c] : o[t] = c;
407
407
  }
408
- function wt(...t) {
409
- t.forEach(function(a) {
408
+ function be(...e) {
409
+ e.forEach(function(a) {
410
410
  Object.keys(a || {}).forEach(function(c) {
411
411
  r.aliases[c] || (r.aliases[c] = [].concat(_[c] || []), r.aliases[c].concat(c).forEach(function(o) {
412
412
  if (/-/.test(o) && h["camel-case-expansion"]) {
413
- const e = $(o);
414
- e !== c && r.aliases[c].indexOf(e) === -1 && (r.aliases[c].push(e), z[e] = !0);
413
+ const t = K(o);
414
+ t !== c && r.aliases[c].indexOf(t) === -1 && (r.aliases[c].push(t), D[t] = !0);
415
415
  }
416
416
  }), r.aliases[c].concat(c).forEach(function(o) {
417
417
  if (o.length > 1 && /[A-Z]/.test(o) && h["camel-case-expansion"]) {
418
- const e = Rt(o, "-");
419
- e !== c && r.aliases[c].indexOf(e) === -1 && (r.aliases[c].push(e), z[e] = !0);
418
+ const t = Ce(o, "-");
419
+ t !== c && r.aliases[c].indexOf(t) === -1 && (r.aliases[c].push(t), D[t] = !0);
420
420
  }
421
421
  }), r.aliases[c].forEach(function(o) {
422
- r.aliases[o] = [c].concat(r.aliases[c].filter(function(e) {
423
- return o !== e;
422
+ r.aliases[o] = [c].concat(r.aliases[c].filter(function(t) {
423
+ return o !== t;
424
424
  }));
425
425
  }));
426
426
  });
427
427
  });
428
428
  }
429
- function g(t, a) {
430
- const c = [].concat(r.aliases[t] || [], t), o = Object.keys(a), e = c.find((l) => o.includes(l));
431
- return e ? a[e] : !1;
429
+ function g(e, a) {
430
+ const c = [].concat(r.aliases[e] || [], e), o = Object.keys(a), t = c.find((l) => o.includes(l));
431
+ return t ? a[t] : !1;
432
432
  }
433
- function ut(t) {
433
+ function ue(e) {
434
434
  const a = Object.keys(r);
435
435
  return [].concat(a.map((o) => r[o])).some(function(o) {
436
- return Array.isArray(o) ? o.includes(t) : o[t];
436
+ return Array.isArray(o) ? o.includes(e) : o[e];
437
437
  });
438
438
  }
439
- function qt(t, ...a) {
439
+ function we(e, ...a) {
440
440
  return [].concat(...a).some(function(o) {
441
- const e = t.match(o);
442
- return e && ut(e[1]);
441
+ const t = e.match(o);
442
+ return t && ue(t[1]);
443
443
  });
444
444
  }
445
- function vt(t) {
446
- if (t.match(M) || !t.match(/^-[^-]+/))
445
+ function ve(e) {
446
+ if (e.match(M) || !e.match(/^-[^-]+/))
447
447
  return !1;
448
448
  let a = !0, c;
449
- const o = t.slice(1).split("");
450
- for (let e = 0; e < o.length; e++) {
451
- if (c = t.slice(e + 2), !ut(o[e])) {
449
+ const o = e.slice(1).split("");
450
+ for (let t = 0; t < o.length; t++) {
451
+ if (c = e.slice(t + 2), !ue(o[t])) {
452
452
  a = !1;
453
453
  break;
454
454
  }
455
- if (o[e + 1] && o[e + 1] === "=" || c === "-" || /[A-Za-z]/.test(o[e]) && /^-?\d+(\.\d*)?(e-?\d+)?$/.test(c) || o[e + 1] && o[e + 1].match(/\W/))
455
+ if (o[t + 1] && o[t + 1] === "=" || c === "-" || /[A-Za-z]/.test(o[t]) && /^-?\d+(\.\d*)?(e-?\d+)?$/.test(c) || o[t + 1] && o[t + 1].match(/\W/))
456
456
  break;
457
457
  }
458
458
  return a;
459
459
  }
460
- function K(t) {
461
- return h["unknown-options-as-args"] && xt(t);
460
+ function $(e) {
461
+ return h["unknown-options-as-args"] && xe(e);
462
462
  }
463
- function xt(t) {
464
- return t = t.replace(/^-{3,}/, "--"), t.match(M) || vt(t) ? !1 : !qt(t, /^-+([^=]+?)=[\s\S]*$/, W, /^-+([^=]+?)$/, /^-+([^=]+?)-$/, /^-+([^=]+?\d+)$/, /^-+([^=]+?)\W+.*$/);
463
+ function xe(e) {
464
+ return e = e.replace(/^-{3,}/, "--"), e.match(M) || ve(e) ? !1 : !we(e, /^-+([^=]+?)=[\s\S]*$/, W, /^-+([^=]+?)$/, /^-+([^=]+?)-$/, /^-+([^=]+?\d+)$/, /^-+([^=]+?)\W+.*$/);
465
465
  }
466
- function C(t) {
467
- return !g(t, r.bools) && !g(t, r.counts) && `${t}` in f ? f[t] : Bt(yt(t));
466
+ function R(e) {
467
+ return !g(e, r.bools) && !g(e, r.counts) && `${e}` in q ? q[e] : Be(ye(e));
468
468
  }
469
- function Bt(t) {
469
+ function Be(e) {
470
470
  return {
471
471
  [L.BOOLEAN]: !0,
472
472
  [L.STRING]: "",
473
473
  [L.NUMBER]: void 0,
474
474
  [L.ARRAY]: []
475
- }[t];
475
+ }[e];
476
476
  }
477
- function yt(t) {
477
+ function ye(e) {
478
478
  let a = L.BOOLEAN;
479
- return g(t, r.strings) ? a = L.STRING : g(t, r.numbers) ? a = L.NUMBER : g(t, r.bools) ? a = L.BOOLEAN : g(t, r.arrays) && (a = L.ARRAY), a;
479
+ return g(e, r.strings) ? a = L.STRING : g(e, r.numbers) ? a = L.NUMBER : g(e, r.bools) ? a = L.BOOLEAN : g(e, r.arrays) && (a = L.ARRAY), a;
480
480
  }
481
- function Q(t) {
482
- return t === void 0;
481
+ function Q(e) {
482
+ return e === void 0;
483
483
  }
484
- function It() {
485
- Object.keys(r.counts).find((t) => g(t, r.arrays) ? (y = Error(G("Invalid configuration: %s, opts.count excludes opts.array.", t)), !0) : g(t, r.nargs) ? (y = Error(G("Invalid configuration: %s, opts.count excludes opts.narg.", t)), !0) : !1);
484
+ function Ie() {
485
+ Object.keys(r.counts).find((e) => g(e, r.arrays) ? (y = Error(G("Invalid configuration: %s, opts.count excludes opts.array.", e)), !0) : g(e, r.nargs) ? (y = Error(G("Invalid configuration: %s, opts.count excludes opts.narg.", e)), !0) : !1);
486
486
  }
487
487
  return {
488
488
  aliases: Object.assign({}, r.aliases),
489
- argv: Object.assign(nt, q),
489
+ argv: Object.assign(ne, w),
490
490
  configuration: h,
491
- defaulted: Object.assign({}, ot),
491
+ defaulted: Object.assign({}, oe),
492
492
  error: y,
493
- newAliases: Object.assign({}, z)
493
+ newAliases: Object.assign({}, D)
494
494
  };
495
495
  }
496
496
  }
497
- function Dt(i) {
497
+ function Ne(i) {
498
498
  const n = [], m = /* @__PURE__ */ Object.create(null);
499
499
  let s = !0;
500
500
  for (Object.keys(i).forEach(function(u) {
@@ -511,8 +511,8 @@ function Dt(i) {
511
511
  }
512
512
  }
513
513
  return n.forEach(function(u) {
514
- u = u.filter(function(_, h, f) {
515
- return f.indexOf(_) === h;
514
+ u = u.filter(function(_, h, q) {
515
+ return q.indexOf(_) === h;
516
516
  });
517
517
  const k = u.pop();
518
518
  k !== void 0 && typeof k == "string" && (m[k] = u);
@@ -521,10 +521,10 @@ function Dt(i) {
521
521
  function Z(i) {
522
522
  return i !== void 0 ? i + 1 : 1;
523
523
  }
524
- function ct(i) {
524
+ function ce(i) {
525
525
  return i === "__proto__" ? "___proto___" : i;
526
526
  }
527
- function Nt(i) {
527
+ function Ee(i) {
528
528
  return typeof i == "string" && (i[0] === "'" || i[0] === '"') && i[i.length - 1] === i[0] ? i.substring(1, i.length - 1) : i;
529
529
  }
530
530
  /**
@@ -535,44 +535,44 @@ function Nt(i) {
535
535
  * Copyright (c) 2016, Contributors
536
536
  * SPDX-License-Identifier: ISC
537
537
  */
538
- var X, tt, et;
539
- const pt = process && process.env && process.env.YARGS_MIN_NODE_VERSION ? Number(process.env.YARGS_MIN_NODE_VERSION) : 12, lt = (tt = (X = process == null ? void 0 : process.versions) === null || X === void 0 ? void 0 : X.node) !== null && tt !== void 0 ? tt : (et = process == null ? void 0 : process.version) === null || et === void 0 ? void 0 : et.slice(1);
540
- if (lt && Number(lt.match(/^([^.]+)/)[1]) < pt)
541
- throw Error(`yargs parser supports a minimum Node.js version of ${pt}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`);
542
- const zt = process ? process.env : {};
543
- new Ot({
538
+ var X, ee, te;
539
+ const pe = process && process.env && process.env.YARGS_MIN_NODE_VERSION ? Number(process.env.YARGS_MIN_NODE_VERSION) : 12, le = (ee = (X = process == null ? void 0 : process.versions) === null || X === void 0 ? void 0 : X.node) !== null && ee !== void 0 ? ee : (te = process == null ? void 0 : process.version) === null || te === void 0 ? void 0 : te.slice(1);
540
+ if (le && Number(le.match(/^([^.]+)/)[1]) < pe)
541
+ throw Error(`yargs parser supports a minimum Node.js version of ${pe}. Read our version support policy: https://github.com/yargs/yargs-parser#supported-nodejs-versions`);
542
+ const De = process ? process.env : {};
543
+ new Oe({
544
544
  cwd: process.cwd,
545
- env: () => zt,
546
- format: ht,
547
- normalize: Lt,
548
- resolve: at,
545
+ env: () => De,
546
+ format: he,
547
+ normalize: Le,
548
+ resolve: ae,
549
549
  // TODO: figure out a way to combine ESM and CJS coverage, such that
550
550
  // we can exercise all the lines below:
551
551
  require: (i) => {
552
552
  if (typeof require < "u")
553
553
  return require(i);
554
554
  if (i.match(/\.json$/))
555
- return JSON.parse(_t(i, "utf8"));
555
+ return JSON.parse(_e(i, "utf8"));
556
556
  throw Error("only .json config files are supported in ESM");
557
557
  }
558
558
  });
559
- const jt = {
559
+ const je = {
560
560
  fs: {
561
- readFileSync: _t,
562
- writeFile: Mt
561
+ readFileSync: _e,
562
+ writeFile: Me
563
563
  },
564
- format: ht,
565
- resolve: at,
564
+ format: he,
565
+ resolve: ae,
566
566
  exists: (i) => {
567
567
  try {
568
- return At(i).isFile();
568
+ return Ae(i).isFile();
569
569
  } catch {
570
570
  return !1;
571
571
  }
572
572
  }
573
573
  };
574
574
  let I;
575
- class Ft {
575
+ class Ve {
576
576
  constructor(n) {
577
577
  n = n || {}, this.directory = n.directory || "./locales", this.updateFiles = typeof n.updateFiles == "boolean" ? n.updateFiles : !0, this.locale = n.locale || "en", this.fallbackToLanguage = typeof n.fallbackToLanguage == "boolean" ? n.fallbackToLanguage : !0, this.cache = /* @__PURE__ */ Object.create(null), this.writeQueue = [];
578
578
  }
@@ -629,8 +629,8 @@ class Ft {
629
629
  }
630
630
  _processWriteQueue() {
631
631
  const n = this, m = this.writeQueue[0], s = m.directory, u = m.locale, k = m.cb, _ = this._resolveLocaleFile(s, u), h = JSON.stringify(this.cache[u], null, 2);
632
- I.fs.writeFile(_, h, "utf-8", function(f) {
633
- n.writeQueue.shift(), n.writeQueue.length > 0 && n._processWriteQueue(), k(f);
632
+ I.fs.writeFile(_, h, "utf-8", function(q) {
633
+ n.writeQueue.shift(), n.writeQueue.length > 0 && n._processWriteQueue(), k(q);
634
634
  });
635
635
  }
636
636
  _readLocaleFile() {
@@ -658,9 +658,9 @@ class Ft {
658
658
  return I.exists(n);
659
659
  }
660
660
  }
661
- function Vt(i, n) {
661
+ function Fe(i, n) {
662
662
  I = n;
663
- const m = new Ft(i);
663
+ const m = new Ve(i);
664
664
  return {
665
665
  __: m.__.bind(m),
666
666
  __n: m.__n.bind(m),
@@ -670,19 +670,19 @@ function Vt(i, n) {
670
670
  locale: m.locale
671
671
  };
672
672
  }
673
- const Ht = (i) => Vt(i, jt);
674
- let D;
673
+ const He = (i) => Fe(i, je);
674
+ let N;
675
675
  try {
676
- D = Qt(import.meta.url);
676
+ N = Qe(import.meta.url);
677
677
  } catch {
678
- D = process.cwd();
678
+ N = process.cwd();
679
679
  }
680
- const Kt = D.substring(0, D.lastIndexOf("node_modules"));
681
- Kt || process.cwd(), process.cwd, process.exit, process.nextTick, typeof process.stdout.columns < "u" && process.stdout.columns, Ht({
682
- directory: at(D, "../../../locales"),
680
+ const $e = N.substring(0, N.lastIndexOf("node_modules"));
681
+ $e || process.cwd(), process.cwd, process.exit, process.nextTick, typeof process.stdout.columns < "u" && process.stdout.columns, He({
682
+ directory: ae(N, "../../../locales"),
683
683
  updateFiles: !1
684
684
  });
685
- const it = [
685
+ const ie = [
686
686
  {
687
687
  id: "anthropic",
688
688
  name: "Anthropic",
@@ -1238,7 +1238,7 @@ const it = [
1238
1238
  name: "Nova Lite",
1239
1239
  description: "Amazon Nova Lite 1.0 is a very low-cost multimodal model from Amazon that focused on fast processing of image, video, and text inputs to generate text output. Amazon Nova Lite can handle real-time customer interactions, document analysis, and visual question-answering tasks with high accuracy.",
1240
1240
  match: {
1241
- contains: "nova-lite"
1241
+ contains: "amazon.nova-lite-v1"
1242
1242
  },
1243
1243
  prices: {
1244
1244
  input_mtok: 0.06,
@@ -1251,7 +1251,7 @@ const it = [
1251
1251
  name: "Nova Micro",
1252
1252
  description: "Amazon Nova Micro 1.0 is a text-only model that delivers the lowest latency responses in the Amazon Nova family of models at a very low cost. With a context length of 128K tokens and optimized for speed and cost, Amazon Nova Micro excels at tasks such as text summarization, translation, content classification, interactive chat, and brainstorming. It has simple mathematical reasoning and coding abilities.",
1253
1253
  match: {
1254
- contains: "nova-micro"
1254
+ contains: "amazon.nova-micro-v1"
1255
1255
  },
1256
1256
  prices: {
1257
1257
  input_mtok: 0.035,
@@ -1263,7 +1263,7 @@ const it = [
1263
1263
  id: "amazon.nova-premier-v1:0",
1264
1264
  name: "Nova Premier",
1265
1265
  match: {
1266
- contains: "nova-premier"
1266
+ contains: "amazon.nova-premier-v1"
1267
1267
  },
1268
1268
  prices: {
1269
1269
  input_mtok: 2.5,
@@ -1276,7 +1276,7 @@ const it = [
1276
1276
  name: "Nova Pro",
1277
1277
  description: "Amazon Nova Pro 1.0 is a capable multimodal model from Amazon focused on providing a combination of accuracy, speed, and cost for a wide range of tasks. As of December 2024, it achieves state-of-the-art performance on key benchmarks including visual question answering (TextVQA) and video understanding (VATEX).",
1278
1278
  match: {
1279
- contains: "nova-pro"
1279
+ contains: "amazon.nova-pro-v1"
1280
1280
  },
1281
1281
  prices: {
1282
1282
  input_mtok: 0.8,
@@ -1288,7 +1288,7 @@ const it = [
1288
1288
  id: "amazon.nova-sonic-v1:0",
1289
1289
  name: "Nova Sonic",
1290
1290
  match: {
1291
- contains: "nova-sonic"
1291
+ contains: "amazon.nova-sonic-v1"
1292
1292
  },
1293
1293
  prices: {
1294
1294
  input_mtok: 0.06,
@@ -1301,7 +1301,7 @@ const it = [
1301
1301
  id: "amazon.titan-embed-text-v1",
1302
1302
  name: "Titan Embeddings G1 - Text",
1303
1303
  match: {
1304
- contains: "titan-embed-text"
1304
+ contains: "amazon.titan-embed-text-v1"
1305
1305
  },
1306
1306
  prices: {
1307
1307
  input_mtok: 0.1
@@ -1333,7 +1333,7 @@ const it = [
1333
1333
  id: "deepseek.r1-v1:0",
1334
1334
  name: "DeepSeek-R1",
1335
1335
  match: {
1336
- contains: "r1"
1336
+ contains: "deepseek.r1-v1"
1337
1337
  },
1338
1338
  prices: {
1339
1339
  input_mtok: 1.35,
@@ -1380,7 +1380,7 @@ const it = [
1380
1380
  id: "meta.llama3-1-70b-instruct-v1:0",
1381
1381
  name: "Llama 3.1 70B Instruct",
1382
1382
  match: {
1383
- contains: "llama3-1-70b-instruct"
1383
+ contains: "meta.llama3-1-70b-instruct-v1"
1384
1384
  },
1385
1385
  prices: {
1386
1386
  input_mtok: 0.72,
@@ -1391,7 +1391,7 @@ const it = [
1391
1391
  id: "meta.llama3-1-8b-instruct-v1:0",
1392
1392
  name: "Llama 3.1 8B Instruct",
1393
1393
  match: {
1394
- contains: "llama3-1-8b-instruct"
1394
+ contains: "meta.llama3-1-8b-instruct-v1"
1395
1395
  },
1396
1396
  prices: {
1397
1397
  input_mtok: 0.22,
@@ -1402,7 +1402,7 @@ const it = [
1402
1402
  id: "meta.llama3-2-11b-instruct-v1:0",
1403
1403
  name: "Llama 3.2 11B Instruct",
1404
1404
  match: {
1405
- contains: "llama3-2-11b-instruct"
1405
+ contains: "meta.llama3-2-11b-instruct-v1"
1406
1406
  },
1407
1407
  prices: {
1408
1408
  input_mtok: 0.16,
@@ -1413,7 +1413,7 @@ const it = [
1413
1413
  id: "meta.llama3-2-1b-instruct-v1:0",
1414
1414
  name: "Llama 3.2 1B Instruct",
1415
1415
  match: {
1416
- contains: "llama3-2-1b-instruct"
1416
+ contains: "meta.llama3-2-1b-instruct-v1"
1417
1417
  },
1418
1418
  prices: {
1419
1419
  input_mtok: 0.1,
@@ -1424,7 +1424,7 @@ const it = [
1424
1424
  id: "meta.llama3-2-3b-instruct-v1:0",
1425
1425
  name: "Llama 3.2 3B Instruct",
1426
1426
  match: {
1427
- contains: "llama3-2-3b-instruct"
1427
+ contains: "meta.llama3-2-3b-instruct-v1"
1428
1428
  },
1429
1429
  prices: {
1430
1430
  input_mtok: 0.15,
@@ -1435,7 +1435,7 @@ const it = [
1435
1435
  id: "meta.llama3-2-90b-instruct-v1:0",
1436
1436
  name: "Llama 3.2 90B Instruct",
1437
1437
  match: {
1438
- contains: "llama3-2-90b-instruct"
1438
+ contains: "meta.llama3-2-90b-instruct-v1"
1439
1439
  },
1440
1440
  prices: {
1441
1441
  input_mtok: 0.72,
@@ -1446,7 +1446,7 @@ const it = [
1446
1446
  id: "meta.llama3-3-70b-instruct-v1:0",
1447
1447
  name: "Llama 3.3 70B Instruct",
1448
1448
  match: {
1449
- contains: "llama3-3-70b-instruct"
1449
+ contains: "meta.llama3-3-70b-instruct-v1"
1450
1450
  },
1451
1451
  prices: {
1452
1452
  input_mtok: 0.72,
@@ -1457,7 +1457,7 @@ const it = [
1457
1457
  id: "meta.llama3-70b-instruct-v1:0",
1458
1458
  name: "Llama 3 70B Instruct",
1459
1459
  match: {
1460
- contains: "llama3-70b-instruct"
1460
+ contains: "meta.llama3-70b-instruct-v1"
1461
1461
  },
1462
1462
  prices: {
1463
1463
  input_mtok: 2.65,
@@ -1468,7 +1468,7 @@ const it = [
1468
1468
  id: "meta.llama3-8b-instruct-v1:0",
1469
1469
  name: "Llama 3 8B Instruct",
1470
1470
  match: {
1471
- contains: "llama3-8b-instruct"
1471
+ contains: "meta.llama3-8b-instruct-v1"
1472
1472
  },
1473
1473
  prices: {
1474
1474
  input_mtok: 0.3,
@@ -1479,7 +1479,7 @@ const it = [
1479
1479
  id: "meta.llama4-maverick-17b-instruct-v1:0",
1480
1480
  name: "Llama 4 Maverick 17B Instruct",
1481
1481
  match: {
1482
- contains: "llama4-maverick-17b-instruct"
1482
+ contains: "meta.llama4-maverick-17b-instruct-v1"
1483
1483
  },
1484
1484
  prices: {
1485
1485
  input_mtok: 0.24,
@@ -1490,7 +1490,7 @@ const it = [
1490
1490
  id: "meta.llama4-scout-17b-instruct-v1:0",
1491
1491
  name: "Llama 4 Scout 17B Instruct",
1492
1492
  match: {
1493
- contains: "llama4-scout-17b-instruct"
1493
+ contains: "meta.llama4-scout-17b-instruct-v1"
1494
1494
  },
1495
1495
  prices: {
1496
1496
  input_mtok: 0.17,
@@ -1501,7 +1501,7 @@ const it = [
1501
1501
  id: "mistral.mistral-7b-instruct-v0:2",
1502
1502
  name: "Mistral 7B Instruct",
1503
1503
  match: {
1504
- contains: "mistral-7b-instruct"
1504
+ contains: "mistral.mistral-7b-instruct-v0"
1505
1505
  },
1506
1506
  prices: {
1507
1507
  input_mtok: 0.15,
@@ -1512,7 +1512,7 @@ const it = [
1512
1512
  id: "mistral.mistral-large-2402-v1:0",
1513
1513
  name: "Mistral Large (24.02)",
1514
1514
  match: {
1515
- contains: "mistral-large-2402"
1515
+ contains: "mistral.mistral-large-2402-v1"
1516
1516
  },
1517
1517
  prices: {
1518
1518
  input_mtok: 4,
@@ -1523,7 +1523,7 @@ const it = [
1523
1523
  id: "mistral.mistral-small-2402-v1:0",
1524
1524
  name: "Mistral Small (24.02)",
1525
1525
  match: {
1526
- contains: "mistral-small-2402"
1526
+ contains: "mistral.mistral-small-2402-v1"
1527
1527
  },
1528
1528
  prices: {
1529
1529
  input_mtok: 1,
@@ -1534,7 +1534,7 @@ const it = [
1534
1534
  id: "mistral.mixtral-8x7b-instruct-v0:1",
1535
1535
  name: "Mixtral 8x7B Instruct",
1536
1536
  match: {
1537
- contains: "mixtral-8x7b-instruct"
1537
+ contains: "mistral.mixtral-8x7b-instruct-v0"
1538
1538
  },
1539
1539
  prices: {
1540
1540
  input_mtok: 0.45,
@@ -1545,7 +1545,7 @@ const it = [
1545
1545
  id: "mistral.pixtral-large-2502-v1:0",
1546
1546
  name: "Pixtral Large (25.02)",
1547
1547
  match: {
1548
- contains: "pixtral-large-2502"
1548
+ contains: "mistral.pixtral-large-2502-v1"
1549
1549
  },
1550
1550
  prices: {
1551
1551
  input_mtok: 2,
@@ -1556,7 +1556,7 @@ const it = [
1556
1556
  id: "openai.gpt-oss-120b-1:0",
1557
1557
  name: "gpt-oss-120b",
1558
1558
  match: {
1559
- contains: "gpt-oss-120b"
1559
+ contains: "openai.gpt-oss-120b-1"
1560
1560
  },
1561
1561
  prices: {
1562
1562
  input_mtok: 0.15,
@@ -1567,7 +1567,7 @@ const it = [
1567
1567
  id: "openai.gpt-oss-20b-1:0",
1568
1568
  name: "gpt-oss-20b",
1569
1569
  match: {
1570
- contains: "gpt-oss-20b"
1570
+ contains: "openai.gpt-oss-20b-1"
1571
1571
  },
1572
1572
  prices: {
1573
1573
  input_mtok: 0.07,
@@ -1578,7 +1578,7 @@ const it = [
1578
1578
  id: "qwen.qwen3-32b-v1:0",
1579
1579
  name: "Qwen3 32B (dense)",
1580
1580
  match: {
1581
- contains: "qwen3-32b"
1581
+ contains: "qwen.qwen3-32b-v1"
1582
1582
  },
1583
1583
  prices: {
1584
1584
  input_mtok: 0.15,
@@ -1589,7 +1589,7 @@ const it = [
1589
1589
  id: "qwen.qwen3-coder-30b-a3b-v1:0",
1590
1590
  name: "Qwen3-Coder-30B-A3B-Instruct",
1591
1591
  match: {
1592
- contains: "qwen3-coder-30b-a3b"
1592
+ contains: "qwen.qwen3-coder-30b-a3b-v1"
1593
1593
  },
1594
1594
  prices: {
1595
1595
  input_mtok: 0.15,
@@ -2968,6 +2968,15 @@ const it = [
2968
2968
  input_mtok: 0.4,
2969
2969
  output_mtok: 0.8
2970
2970
  }
2971
+ },
2972
+ {
2973
+ id: "qwen-3-coder-480b",
2974
+ name: "qwen-3-coder-480b",
2975
+ match: {
2976
+ equals: "qwen-3-coder-480b"
2977
+ },
2978
+ price_comments: "Seems to be no longer available on cerebras, here to help with tests",
2979
+ prices: {}
2971
2980
  }
2972
2981
  ]
2973
2982
  },
@@ -2999,6 +3008,18 @@ const it = [
2999
3008
  required: !0
3000
3009
  }
3001
3010
  ]
3011
+ },
3012
+ {
3013
+ api_flavor: "embeddings",
3014
+ root: ["meta", "billed_units"],
3015
+ model_path: "model",
3016
+ mappings: [
3017
+ {
3018
+ path: "input_tokens",
3019
+ dest: "input_tokens",
3020
+ required: !0
3021
+ }
3022
+ ]
3002
3023
  }
3003
3024
  ],
3004
3025
  models: [
@@ -3083,6 +3104,18 @@ Compared to other leading proprietary and open-weights models Command A delivers
3083
3104
  input_mtok: 0.0375,
3084
3105
  output_mtok: 0.15
3085
3106
  }
3107
+ },
3108
+ {
3109
+ id: "embed-v4.0",
3110
+ name: "Embed v4.0",
3111
+ description: "Embed v4.0 is a state-of-the-art embedding model designed for precise retrieval across noisy, multilingual, and multimodal data.",
3112
+ match: {
3113
+ equals: "embed-v4.0"
3114
+ },
3115
+ context_window: 128e3,
3116
+ prices: {
3117
+ input_mtok: 0.12
3118
+ }
3086
3119
  }
3087
3120
  ]
3088
3121
  },
@@ -3473,6 +3506,38 @@ Compared to other leading proprietary and open-weights models Command A delivers
3473
3506
  required: !0
3474
3507
  }
3475
3508
  ]
3509
+ },
3510
+ {
3511
+ api_flavor: "chat",
3512
+ root: "usage",
3513
+ model_path: "model",
3514
+ mappings: [
3515
+ {
3516
+ path: "prompt_tokens",
3517
+ dest: "input_tokens",
3518
+ required: !0
3519
+ },
3520
+ {
3521
+ path: ["prompt_tokens_details", "cached_tokens"],
3522
+ dest: "cache_read_tokens",
3523
+ required: !1
3524
+ },
3525
+ {
3526
+ path: ["prompt_tokens_details", "audio_tokens"],
3527
+ dest: "input_audio_tokens",
3528
+ required: !1
3529
+ },
3530
+ {
3531
+ path: ["completion_tokens_details", "audio_tokens"],
3532
+ dest: "output_audio_tokens",
3533
+ required: !1
3534
+ },
3535
+ {
3536
+ path: "completion_tokens",
3537
+ dest: "output_tokens",
3538
+ required: !0
3539
+ }
3540
+ ]
3476
3541
  }
3477
3542
  ],
3478
3543
  models: [
@@ -3851,7 +3916,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
3851
3916
  name: "Gemini 3 Pro Preview",
3852
3917
  description: "The best model in the world for multimodal understanding, and our most powerful agentic and vibe-coding model yet.",
3853
3918
  match: {
3854
- starts_with: "gemini-3-pro-preview"
3919
+ or: [
3920
+ {
3921
+ starts_with: "gemini-3-pro-preview"
3922
+ },
3923
+ {
3924
+ starts_with: "gemini-3-pro-image-preview"
3925
+ }
3926
+ ]
3855
3927
  },
3856
3928
  prices: {
3857
3929
  input_mtok: {
@@ -4495,7 +4567,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
4495
4567
  id: "Qwen/Qwen3-235B-A22B-Instruct-2507",
4496
4568
  name: "Qwen3-235B-A22B-Instruct-2507",
4497
4569
  match: {
4498
- equals: "qwen/qwen3-235b-a22b-instruct-2507"
4570
+ or: [
4571
+ {
4572
+ equals: "qwen/qwen3-235b-a22b-instruct-2507"
4573
+ },
4574
+ {
4575
+ equals: "qwen/qwen3-235b-a22b-instruct-2507-fast"
4576
+ }
4577
+ ]
4499
4578
  },
4500
4579
  prices: {
4501
4580
  input_mtok: 0.6,
@@ -4506,7 +4585,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
4506
4585
  id: "Qwen/Qwen3-32B",
4507
4586
  name: "Qwen3-32B",
4508
4587
  match: {
4509
- equals: "qwen/qwen3-32b"
4588
+ or: [
4589
+ {
4590
+ equals: "qwen/qwen3-32b"
4591
+ },
4592
+ {
4593
+ equals: "qwen/qwen3-32b-fast"
4594
+ }
4595
+ ]
4510
4596
  },
4511
4597
  prices: {
4512
4598
  input_mtok: 0.4,
@@ -4517,7 +4603,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
4517
4603
  id: "meta-llama/Llama-3.1-8B-Instruct",
4518
4604
  name: "Llama-3.1-8B-Instruct",
4519
4605
  match: {
4520
- equals: "meta-llama/llama-3.1-8b-instruct"
4606
+ or: [
4607
+ {
4608
+ equals: "meta-llama/llama-3.1-8b-instruct"
4609
+ },
4610
+ {
4611
+ equals: "meta-llama/llama-3.1-8b-instruct-fast"
4612
+ }
4613
+ ]
4521
4614
  },
4522
4615
  prices: {
4523
4616
  input_mtok: 0.1,
@@ -4528,7 +4621,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
4528
4621
  id: "meta-llama/Llama-3.3-70B-Instruct",
4529
4622
  name: "Llama-3.3-70B-Instruct",
4530
4623
  match: {
4531
- equals: "meta-llama/llama-3.3-70b-instruct"
4624
+ or: [
4625
+ {
4626
+ equals: "meta-llama/llama-3.3-70b-instruct"
4627
+ },
4628
+ {
4629
+ equals: "meta-llama/llama-3.3-70b-instruct-fast"
4630
+ }
4631
+ ]
4532
4632
  },
4533
4633
  prices: {
4534
4634
  input_mtok: 0.85,
@@ -4539,7 +4639,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
4539
4639
  id: "openai/gpt-oss-120b",
4540
4640
  name: "gpt-oss-120b",
4541
4641
  match: {
4542
- equals: "openai/gpt-oss-120b"
4642
+ or: [
4643
+ {
4644
+ equals: "openai/gpt-oss-120b"
4645
+ },
4646
+ {
4647
+ equals: "openai/gpt-oss-120b-fast"
4648
+ }
4649
+ ]
4543
4650
  },
4544
4651
  prices: {
4545
4652
  input_mtok: 0.25,
@@ -4602,7 +4709,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
4602
4709
  id: "Qwen/Qwen2.5-VL-32B-Instruct",
4603
4710
  name: "Qwen2.5-VL-32B-Instruct",
4604
4711
  match: {
4605
- equals: "qwen/qwen2.5-vl-32b-instruct"
4712
+ or: [
4713
+ {
4714
+ equals: "qwen/qwen2.5-vl-32b-instruct"
4715
+ },
4716
+ {
4717
+ equals: "qwen/qwen2.5-vl-32b-instruct-fast"
4718
+ }
4719
+ ]
4606
4720
  },
4607
4721
  context_window: 128e3,
4608
4722
  prices: {
@@ -4618,8 +4732,20 @@ Compared to other leading proprietary and open-weights models Command A delivers
4618
4732
  {
4619
4733
  equals: "qwen/qwen3-235b-a22b"
4620
4734
  },
4735
+ {
4736
+ equals: "qwen/qwen3-235b-a22b-fast"
4737
+ },
4621
4738
  {
4622
4739
  equals: "qwen/qwen3-235b-a22b-instruct-2507"
4740
+ },
4741
+ {
4742
+ equals: "qwen/qwen3-235b-a22b-instruct-2507-fast"
4743
+ },
4744
+ {
4745
+ equals: "qwen/qwen3-235b-a22b-thinking-2507"
4746
+ },
4747
+ {
4748
+ equals: "qwen/qwen3-235b-a22b-thinking-2507-fast"
4623
4749
  }
4624
4750
  ]
4625
4751
  },
@@ -4633,7 +4759,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
4633
4759
  id: "Qwen/Qwen3-30B-A3B",
4634
4760
  name: "Qwen3-30B-A3B",
4635
4761
  match: {
4636
- equals: "qwen/qwen3-30b-a3b"
4762
+ or: [
4763
+ {
4764
+ equals: "qwen/qwen3-30b-a3b"
4765
+ },
4766
+ {
4767
+ equals: "qwen/qwen3-30b-a3b-fast"
4768
+ }
4769
+ ]
4637
4770
  },
4638
4771
  context_window: 131072,
4639
4772
  prices: {
@@ -4645,7 +4778,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
4645
4778
  id: "Qwen/Qwen3-Coder-480B-A35B-Instruct",
4646
4779
  name: "Qwen3-Coder-480B-A35B-Instruct",
4647
4780
  match: {
4648
- equals: "qwen/qwen3-coder-480b-a35b-instruct"
4781
+ or: [
4782
+ {
4783
+ equals: "qwen/qwen3-coder-480b-a35b-instruct"
4784
+ },
4785
+ {
4786
+ equals: "qwen/qwen3-coder-480b-a35b-instruct-fast"
4787
+ }
4788
+ ]
4649
4789
  },
4650
4790
  context_window: 262144,
4651
4791
  prices: {
@@ -4657,7 +4797,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
4657
4797
  id: "SentientAGI/Dobby-Unhinged-Llama-3.3-70B",
4658
4798
  name: "Dobby-Unhinged-Llama-3.3-70B",
4659
4799
  match: {
4660
- equals: "sentientagi/dobby-unhinged-llama-3.3-70b"
4800
+ or: [
4801
+ {
4802
+ equals: "sentientagi/dobby-unhinged-llama-3.3-70b"
4803
+ },
4804
+ {
4805
+ equals: "sentientagi/dobby-unhinged-llama-3.3-70b-fast"
4806
+ }
4807
+ ]
4661
4808
  },
4662
4809
  context_window: 131072,
4663
4810
  prices: {
@@ -4665,23 +4812,18 @@ Compared to other leading proprietary and open-weights models Command A delivers
4665
4812
  output_mtok: 0.9
4666
4813
  }
4667
4814
  },
4668
- {
4669
- id: "deepseek-ai/DeepSeek-R1-0528",
4670
- name: "DeepSeek-R1-0528",
4671
- match: {
4672
- equals: "deepseek-ai/deepseek-r1-0528"
4673
- },
4674
- context_window: 163840,
4675
- prices: {
4676
- input_mtok: 3,
4677
- output_mtok: 8
4678
- }
4679
- },
4680
4815
  {
4681
4816
  id: "deepseek-ai/DeepSeek-V3-0324",
4682
4817
  name: "DeepSeek-V3-0324",
4683
4818
  match: {
4684
- equals: "deepseek-ai/deepseek-v3-0324"
4819
+ or: [
4820
+ {
4821
+ equals: "deepseek-ai/deepseek-v3-0324"
4822
+ },
4823
+ {
4824
+ equals: "deepseek-ai/deepseek-v3-0324-fast"
4825
+ }
4826
+ ]
4685
4827
  },
4686
4828
  context_window: 163840,
4687
4829
  prices: {
@@ -4689,47 +4831,18 @@ Compared to other leading proprietary and open-weights models Command A delivers
4689
4831
  output_mtok: 0.9
4690
4832
  }
4691
4833
  },
4692
- {
4693
- id: "meta-llama/Llama-3.1-405B-Instruct",
4694
- name: "Llama-3.1-405B-Instruct",
4695
- match: {
4696
- equals: "meta-llama/llama-3.1-405b-instruct"
4697
- },
4698
- context_window: 131072,
4699
- prices: {
4700
- input_mtok: 3,
4701
- output_mtok: 3
4702
- }
4703
- },
4704
- {
4705
- id: "meta-llama/Llama-3.1-70B-Instruct",
4706
- name: "Llama-3.1-70B-Instruct",
4707
- match: {
4708
- equals: "meta-llama/llama-3.1-70b-instruct"
4709
- },
4710
- context_window: 131072,
4711
- prices: {
4712
- input_mtok: 0.9,
4713
- output_mtok: 0.9
4714
- }
4715
- },
4716
- {
4717
- id: "meta-llama/Llama-3.1-8B-Instruct",
4718
- name: "Llama-3.1-8B-Instruct",
4719
- match: {
4720
- equals: "meta-llama/llama-3.1-8b-instruct"
4721
- },
4722
- context_window: 131072,
4723
- prices: {
4724
- input_mtok: 0.2,
4725
- output_mtok: 0.2
4726
- }
4727
- },
4728
4834
  {
4729
4835
  id: "meta-llama/Llama-3.3-70B-Instruct",
4730
4836
  name: "Llama-3.3-70B-Instruct",
4731
4837
  match: {
4732
- equals: "meta-llama/llama-3.3-70b-instruct"
4838
+ or: [
4839
+ {
4840
+ equals: "meta-llama/llama-3.3-70b-instruct"
4841
+ },
4842
+ {
4843
+ equals: "meta-llama/llama-3.3-70b-instruct-fast"
4844
+ }
4845
+ ]
4733
4846
  },
4734
4847
  context_window: 131072,
4735
4848
  prices: {
@@ -4737,47 +4850,18 @@ Compared to other leading proprietary and open-weights models Command A delivers
4737
4850
  output_mtok: 0.9
4738
4851
  }
4739
4852
  },
4740
- {
4741
- id: "meta-llama/Llama-4-Maverick-17B-128E-Instruct",
4742
- name: "Llama-4-Maverick-17B-128E-Instruct",
4743
- match: {
4744
- equals: "meta-llama/llama-4-maverick-17b-128e-instruct"
4745
- },
4746
- context_window: 1048576,
4747
- prices: {
4748
- input_mtok: 0.22,
4749
- output_mtok: 0.88
4750
- }
4751
- },
4752
- {
4753
- id: "meta-llama/Llama-4-Scout-17B-16E-Instruct",
4754
- name: "Llama-4-Scout-17B-16E-Instruct",
4755
- match: {
4756
- equals: "meta-llama/llama-4-scout-17b-16e-instruct"
4757
- },
4758
- context_window: 1048576,
4759
- prices: {
4760
- input_mtok: 0.15,
4761
- output_mtok: 0.6
4762
- }
4763
- },
4764
- {
4765
- id: "moonshotai/Kimi-K2-Instruct",
4766
- name: "Kimi-K2-Instruct",
4767
- match: {
4768
- equals: "moonshotai/kimi-k2-instruct"
4769
- },
4770
- context_window: 131072,
4771
- prices: {
4772
- input_mtok: 0.6,
4773
- output_mtok: 2.5
4774
- }
4775
- },
4776
4853
  {
4777
4854
  id: "openai/gpt-oss-120b",
4778
4855
  name: "gpt-oss-120b",
4779
4856
  match: {
4780
- equals: "openai/gpt-oss-120b"
4857
+ or: [
4858
+ {
4859
+ equals: "openai/gpt-oss-120b"
4860
+ },
4861
+ {
4862
+ equals: "openai/gpt-oss-120b-fast"
4863
+ }
4864
+ ]
4781
4865
  },
4782
4866
  context_window: 131072,
4783
4867
  prices: {
@@ -4789,7 +4873,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
4789
4873
  id: "openai/gpt-oss-20b",
4790
4874
  name: "gpt-oss-20b",
4791
4875
  match: {
4792
- equals: "openai/gpt-oss-20b"
4876
+ or: [
4877
+ {
4878
+ equals: "openai/gpt-oss-20b"
4879
+ },
4880
+ {
4881
+ equals: "openai/gpt-oss-20b-fast"
4882
+ }
4883
+ ]
4793
4884
  },
4794
4885
  context_window: 131072,
4795
4886
  prices: {
@@ -4801,7 +4892,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
4801
4892
  id: "zai-org/GLM-4.5",
4802
4893
  name: "GLM-4.5",
4803
4894
  match: {
4804
- equals: "zai-org/glm-4.5"
4895
+ or: [
4896
+ {
4897
+ equals: "zai-org/glm-4.5"
4898
+ },
4899
+ {
4900
+ equals: "zai-org/glm-4.5-fast"
4901
+ }
4902
+ ]
4805
4903
  },
4806
4904
  context_window: 131072,
4807
4905
  prices: {
@@ -4865,7 +4963,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
4865
4963
  id: "Qwen/Qwen3-32B",
4866
4964
  name: "Qwen3-32B",
4867
4965
  match: {
4868
- equals: "qwen/qwen3-32b"
4966
+ or: [
4967
+ {
4968
+ equals: "qwen/qwen3-32b"
4969
+ },
4970
+ {
4971
+ equals: "qwen/qwen3-32b-fast"
4972
+ }
4973
+ ]
4869
4974
  },
4870
4975
  context_window: 131072,
4871
4976
  prices: {
@@ -4877,7 +4982,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
4877
4982
  id: "meta-llama/Llama-3.3-70B-Instruct",
4878
4983
  name: "Llama-3.3-70B-Instruct",
4879
4984
  match: {
4880
- equals: "meta-llama/llama-3.3-70b-instruct"
4985
+ or: [
4986
+ {
4987
+ equals: "meta-llama/llama-3.3-70b-instruct"
4988
+ },
4989
+ {
4990
+ equals: "meta-llama/llama-3.3-70b-instruct-fast"
4991
+ }
4992
+ ]
4881
4993
  },
4882
4994
  context_window: 131072,
4883
4995
  prices: {
@@ -4886,46 +4998,17 @@ Compared to other leading proprietary and open-weights models Command A delivers
4886
4998
  }
4887
4999
  },
4888
5000
  {
4889
- id: "meta-llama/Llama-4-Maverick-17B-128E-Instruct",
4890
- name: "Llama-4-Maverick-17B-128E-Instruct",
5001
+ id: "openai/gpt-oss-120b",
5002
+ name: "gpt-oss-120b",
4891
5003
  match: {
4892
- equals: "meta-llama/llama-4-maverick-17b-128e-instruct"
4893
- },
4894
- context_window: 131072,
4895
- prices: {
4896
- input_mtok: 0.2,
4897
- output_mtok: 0.6
4898
- }
4899
- },
4900
- {
4901
- id: "meta-llama/Llama-4-Scout-17B-16E-Instruct",
4902
- name: "Llama-4-Scout-17B-16E-Instruct",
4903
- match: {
4904
- equals: "meta-llama/llama-4-scout-17b-16e-instruct"
4905
- },
4906
- context_window: 131072,
4907
- prices: {
4908
- input_mtok: 0.11,
4909
- output_mtok: 0.34
4910
- }
4911
- },
4912
- {
4913
- id: "meta-llama/Llama-Guard-4-12B",
4914
- name: "Llama-Guard-4-12B",
4915
- match: {
4916
- equals: "meta-llama/llama-guard-4-12b"
4917
- },
4918
- context_window: 131072,
4919
- prices: {
4920
- input_mtok: 0.2,
4921
- output_mtok: 0.2
4922
- }
4923
- },
4924
- {
4925
- id: "openai/gpt-oss-120b",
4926
- name: "gpt-oss-120b",
4927
- match: {
4928
- equals: "openai/gpt-oss-120b"
5004
+ or: [
5005
+ {
5006
+ equals: "openai/gpt-oss-120b"
5007
+ },
5008
+ {
5009
+ equals: "openai/gpt-oss-120b-fast"
5010
+ }
5011
+ ]
4929
5012
  },
4930
5013
  context_window: 131072,
4931
5014
  prices: {
@@ -4937,7 +5020,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
4937
5020
  id: "openai/gpt-oss-20b",
4938
5021
  name: "gpt-oss-20b",
4939
5022
  match: {
4940
- equals: "openai/gpt-oss-20b"
5023
+ or: [
5024
+ {
5025
+ equals: "openai/gpt-oss-20b"
5026
+ },
5027
+ {
5028
+ equals: "openai/gpt-oss-20b-fast"
5029
+ }
5030
+ ]
4941
5031
  },
4942
5032
  context_window: 131072,
4943
5033
  prices: {
@@ -5001,7 +5091,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5001
5091
  id: "Qwen/QwQ-32B",
5002
5092
  name: "QwQ-32B",
5003
5093
  match: {
5004
- equals: "qwen/qwq-32b"
5094
+ or: [
5095
+ {
5096
+ equals: "qwen/qwq-32b"
5097
+ },
5098
+ {
5099
+ equals: "qwen/qwq-32b-fast"
5100
+ }
5101
+ ]
5005
5102
  },
5006
5103
  context_window: 131072,
5007
5104
  prices: {
@@ -5013,7 +5110,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5013
5110
  id: "Qwen/Qwen2.5-72B-Instruct",
5014
5111
  name: "Qwen2.5-72B-Instruct",
5015
5112
  match: {
5016
- equals: "qwen/qwen2.5-72b-instruct"
5113
+ or: [
5114
+ {
5115
+ equals: "qwen/qwen2.5-72b-instruct"
5116
+ },
5117
+ {
5118
+ equals: "qwen/qwen2.5-72b-instruct-fast"
5119
+ }
5120
+ ]
5017
5121
  },
5018
5122
  context_window: 131072,
5019
5123
  prices: {
@@ -5025,7 +5129,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5025
5129
  id: "Qwen/Qwen2.5-Coder-32B-Instruct",
5026
5130
  name: "Qwen2.5-Coder-32B-Instruct",
5027
5131
  match: {
5028
- equals: "qwen/qwen2.5-coder-32b-instruct"
5132
+ or: [
5133
+ {
5134
+ equals: "qwen/qwen2.5-coder-32b-instruct"
5135
+ },
5136
+ {
5137
+ equals: "qwen/qwen2.5-coder-32b-instruct-fast"
5138
+ }
5139
+ ]
5029
5140
  },
5030
5141
  context_window: 32768,
5031
5142
  prices: {
@@ -5037,7 +5148,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5037
5148
  id: "Qwen/Qwen2.5-VL-72B-Instruct",
5038
5149
  name: "Qwen2.5-VL-72B-Instruct",
5039
5150
  match: {
5040
- equals: "qwen/qwen2.5-vl-72b-instruct"
5151
+ or: [
5152
+ {
5153
+ equals: "qwen/qwen2.5-vl-72b-instruct"
5154
+ },
5155
+ {
5156
+ equals: "qwen/qwen2.5-vl-72b-instruct-fast"
5157
+ }
5158
+ ]
5041
5159
  },
5042
5160
  context_window: 32768,
5043
5161
  prices: {
@@ -5049,7 +5167,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5049
5167
  id: "Qwen/Qwen2.5-VL-7B-Instruct",
5050
5168
  name: "Qwen2.5-VL-7B-Instruct",
5051
5169
  match: {
5052
- equals: "qwen/qwen2.5-vl-7b-instruct"
5170
+ or: [
5171
+ {
5172
+ equals: "qwen/qwen2.5-vl-7b-instruct"
5173
+ },
5174
+ {
5175
+ equals: "qwen/qwen2.5-vl-7b-instruct-fast"
5176
+ }
5177
+ ]
5053
5178
  },
5054
5179
  context_window: 32768,
5055
5180
  prices: {
@@ -5061,7 +5186,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5061
5186
  id: "Qwen/Qwen3-235B-A22B-Instruct-2507",
5062
5187
  name: "Qwen3-235B-A22B-Instruct-2507",
5063
5188
  match: {
5064
- equals: "qwen/qwen3-235b-a22b-instruct-2507"
5189
+ or: [
5190
+ {
5191
+ equals: "qwen/qwen3-235b-a22b-instruct-2507"
5192
+ },
5193
+ {
5194
+ equals: "qwen/qwen3-235b-a22b-instruct-2507-fast"
5195
+ }
5196
+ ]
5065
5197
  },
5066
5198
  context_window: 262144,
5067
5199
  prices: {
@@ -5073,7 +5205,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5073
5205
  id: "Qwen/Qwen3-Coder-480B-A35B-Instruct",
5074
5206
  name: "Qwen3-Coder-480B-A35B-Instruct",
5075
5207
  match: {
5076
- equals: "qwen/qwen3-coder-480b-a35b-instruct"
5208
+ or: [
5209
+ {
5210
+ equals: "qwen/qwen3-coder-480b-a35b-instruct"
5211
+ },
5212
+ {
5213
+ equals: "qwen/qwen3-coder-480b-a35b-instruct-fast"
5214
+ }
5215
+ ]
5077
5216
  },
5078
5217
  context_window: 262144,
5079
5218
  prices: {
@@ -5085,7 +5224,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5085
5224
  id: "Qwen/Qwen3-Next-80B-A3B-Instruct",
5086
5225
  name: "Qwen3-Next-80B-A3B-Instruct",
5087
5226
  match: {
5088
- equals: "qwen/qwen3-next-80b-a3b-instruct"
5227
+ or: [
5228
+ {
5229
+ equals: "qwen/qwen3-next-80b-a3b-instruct"
5230
+ },
5231
+ {
5232
+ equals: "qwen/qwen3-next-80b-a3b-instruct-fast"
5233
+ }
5234
+ ]
5089
5235
  },
5090
5236
  context_window: 262144,
5091
5237
  prices: {
@@ -5097,7 +5243,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5097
5243
  id: "Qwen/Qwen3-Next-80B-A3B-Thinking",
5098
5244
  name: "Qwen3-Next-80B-A3B-Thinking",
5099
5245
  match: {
5100
- equals: "qwen/qwen3-next-80b-a3b-thinking"
5246
+ or: [
5247
+ {
5248
+ equals: "qwen/qwen3-next-80b-a3b-thinking"
5249
+ },
5250
+ {
5251
+ equals: "qwen/qwen3-next-80b-a3b-thinking-fast"
5252
+ }
5253
+ ]
5101
5254
  },
5102
5255
  context_window: 262144,
5103
5256
  prices: {
@@ -5109,7 +5262,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5109
5262
  id: "deepseek-ai/DeepSeek-R1",
5110
5263
  name: "DeepSeek-R1",
5111
5264
  match: {
5112
- equals: "deepseek-ai/deepseek-r1"
5265
+ or: [
5266
+ {
5267
+ equals: "deepseek-ai/deepseek-r1"
5268
+ },
5269
+ {
5270
+ equals: "deepseek-ai/deepseek-r1-fast"
5271
+ }
5272
+ ]
5113
5273
  },
5114
5274
  context_window: 163840,
5115
5275
  prices: {
@@ -5121,7 +5281,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5121
5281
  id: "deepseek-ai/DeepSeek-R1-0528",
5122
5282
  name: "DeepSeek-R1-0528",
5123
5283
  match: {
5124
- equals: "deepseek-ai/deepseek-r1-0528"
5284
+ or: [
5285
+ {
5286
+ equals: "deepseek-ai/deepseek-r1-0528"
5287
+ },
5288
+ {
5289
+ equals: "deepseek-ai/deepseek-r1-0528-fast"
5290
+ }
5291
+ ]
5125
5292
  },
5126
5293
  context_window: 163840,
5127
5294
  prices: {
@@ -5133,7 +5300,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5133
5300
  id: "deepseek-ai/DeepSeek-V3-0324",
5134
5301
  name: "DeepSeek-V3-0324",
5135
5302
  match: {
5136
- equals: "deepseek-ai/deepseek-v3-0324"
5303
+ or: [
5304
+ {
5305
+ equals: "deepseek-ai/deepseek-v3-0324"
5306
+ },
5307
+ {
5308
+ equals: "deepseek-ai/deepseek-v3-0324-fast"
5309
+ }
5310
+ ]
5137
5311
  },
5138
5312
  context_window: 163840,
5139
5313
  prices: {
@@ -5141,23 +5315,18 @@ Compared to other leading proprietary and open-weights models Command A delivers
5141
5315
  output_mtok: 1.25
5142
5316
  }
5143
5317
  },
5144
- {
5145
- id: "meta-llama/Llama-3.1-70B-Instruct",
5146
- name: "Llama-3.1-70B-Instruct",
5147
- match: {
5148
- equals: "meta-llama/llama-3.1-70b-instruct"
5149
- },
5150
- context_window: 131072,
5151
- prices: {
5152
- input_mtok: 0.4,
5153
- output_mtok: 0.4
5154
- }
5155
- },
5156
5318
  {
5157
5319
  id: "meta-llama/Llama-3.1-8B-Instruct",
5158
5320
  name: "Llama-3.1-8B-Instruct",
5159
5321
  match: {
5160
- equals: "meta-llama/llama-3.1-8b-instruct"
5322
+ or: [
5323
+ {
5324
+ equals: "meta-llama/llama-3.1-8b-instruct"
5325
+ },
5326
+ {
5327
+ equals: "meta-llama/llama-3.1-8b-instruct-fast"
5328
+ }
5329
+ ]
5161
5330
  },
5162
5331
  context_window: 131072,
5163
5332
  prices: {
@@ -5169,7 +5338,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5169
5338
  id: "meta-llama/Llama-3.2-3B-Instruct",
5170
5339
  name: "Llama-3.2-3B-Instruct",
5171
5340
  match: {
5172
- equals: "meta-llama/llama-3.2-3b-instruct"
5341
+ or: [
5342
+ {
5343
+ equals: "meta-llama/llama-3.2-3b-instruct"
5344
+ },
5345
+ {
5346
+ equals: "meta-llama/llama-3.2-3b-instruct-fast"
5347
+ }
5348
+ ]
5173
5349
  },
5174
5350
  context_window: 131072,
5175
5351
  prices: {
@@ -5181,7 +5357,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5181
5357
  id: "meta-llama/Llama-3.3-70B-Instruct",
5182
5358
  name: "Llama-3.3-70B-Instruct",
5183
5359
  match: {
5184
- equals: "meta-llama/llama-3.3-70b-instruct"
5360
+ or: [
5361
+ {
5362
+ equals: "meta-llama/llama-3.3-70b-instruct"
5363
+ },
5364
+ {
5365
+ equals: "meta-llama/llama-3.3-70b-instruct-fast"
5366
+ }
5367
+ ]
5185
5368
  },
5186
5369
  context_window: 131072,
5187
5370
  prices: {
@@ -5193,7 +5376,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5193
5376
  id: "meta-llama/Meta-Llama-3-70B-Instruct",
5194
5377
  name: "Meta-Llama-3-70B-Instruct",
5195
5378
  match: {
5196
- equals: "meta-llama/meta-llama-3-70b-instruct"
5379
+ or: [
5380
+ {
5381
+ equals: "meta-llama/meta-llama-3-70b-instruct"
5382
+ },
5383
+ {
5384
+ equals: "meta-llama/meta-llama-3-70b-instruct-fast"
5385
+ }
5386
+ ]
5197
5387
  },
5198
5388
  context_window: 8192,
5199
5389
  prices: {
@@ -5205,7 +5395,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5205
5395
  id: "openai/gpt-oss-120b",
5206
5396
  name: "gpt-oss-120b",
5207
5397
  match: {
5208
- equals: "openai/gpt-oss-120b"
5398
+ or: [
5399
+ {
5400
+ equals: "openai/gpt-oss-120b"
5401
+ },
5402
+ {
5403
+ equals: "openai/gpt-oss-120b-fast"
5404
+ }
5405
+ ]
5209
5406
  },
5210
5407
  context_window: 131072,
5211
5408
  prices: {
@@ -5217,7 +5414,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5217
5414
  id: "openai/gpt-oss-20b",
5218
5415
  name: "gpt-oss-20b",
5219
5416
  match: {
5220
- equals: "openai/gpt-oss-20b"
5417
+ or: [
5418
+ {
5419
+ equals: "openai/gpt-oss-20b"
5420
+ },
5421
+ {
5422
+ equals: "openai/gpt-oss-20b-fast"
5423
+ }
5424
+ ]
5221
5425
  },
5222
5426
  context_window: 131072,
5223
5427
  prices: {
@@ -5281,7 +5485,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5281
5485
  id: "NousResearch/Hermes-4-405B",
5282
5486
  name: "Hermes-4-405B",
5283
5487
  match: {
5284
- equals: "nousresearch/hermes-4-405b"
5488
+ or: [
5489
+ {
5490
+ equals: "nousresearch/hermes-4-405b"
5491
+ },
5492
+ {
5493
+ equals: "nousresearch/hermes-4-405b-fast"
5494
+ }
5495
+ ]
5285
5496
  },
5286
5497
  context_window: 131072,
5287
5498
  prices: {
@@ -5293,7 +5504,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5293
5504
  id: "NousResearch/Hermes-4-70B",
5294
5505
  name: "Hermes-4-70B",
5295
5506
  match: {
5296
- equals: "nousresearch/hermes-4-70b"
5507
+ or: [
5508
+ {
5509
+ equals: "nousresearch/hermes-4-70b"
5510
+ },
5511
+ {
5512
+ equals: "nousresearch/hermes-4-70b-fast"
5513
+ }
5514
+ ]
5297
5515
  },
5298
5516
  context_window: 131072,
5299
5517
  prices: {
@@ -5301,11 +5519,37 @@ Compared to other leading proprietary and open-weights models Command A delivers
5301
5519
  output_mtok: 0.4
5302
5520
  }
5303
5521
  },
5522
+ {
5523
+ id: "PrimeIntellect/INTELLECT-3-FP8",
5524
+ name: "INTELLECT-3-FP8",
5525
+ match: {
5526
+ or: [
5527
+ {
5528
+ equals: "primeintellect/intellect-3-fp8"
5529
+ },
5530
+ {
5531
+ equals: "primeintellect/intellect-3-fp8-fast"
5532
+ }
5533
+ ]
5534
+ },
5535
+ context_window: 131072,
5536
+ prices: {
5537
+ input_mtok: 0.2,
5538
+ output_mtok: 1.1
5539
+ }
5540
+ },
5304
5541
  {
5305
5542
  id: "Qwen/Qwen2.5-Coder-7B",
5306
5543
  name: "Qwen2.5-Coder-7B",
5307
5544
  match: {
5308
- equals: "qwen/qwen2.5-coder-7b"
5545
+ or: [
5546
+ {
5547
+ equals: "qwen/qwen2.5-coder-7b"
5548
+ },
5549
+ {
5550
+ equals: "qwen/qwen2.5-coder-7b-fast"
5551
+ }
5552
+ ]
5309
5553
  },
5310
5554
  context_window: 32768,
5311
5555
  prices: {
@@ -5317,7 +5561,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5317
5561
  id: "Qwen/Qwen2.5-VL-72B-Instruct",
5318
5562
  name: "Qwen2.5-VL-72B-Instruct",
5319
5563
  match: {
5320
- equals: "qwen/qwen2.5-vl-72b-instruct"
5564
+ or: [
5565
+ {
5566
+ equals: "qwen/qwen2.5-vl-72b-instruct"
5567
+ },
5568
+ {
5569
+ equals: "qwen/qwen2.5-vl-72b-instruct-fast"
5570
+ }
5571
+ ]
5321
5572
  },
5322
5573
  context_window: 32e3,
5323
5574
  prices: {
@@ -5329,7 +5580,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5329
5580
  id: "Qwen/Qwen3-235B-A22B-Instruct-2507",
5330
5581
  name: "Qwen3-235B-A22B-Instruct-2507",
5331
5582
  match: {
5332
- equals: "qwen/qwen3-235b-a22b-instruct-2507"
5583
+ or: [
5584
+ {
5585
+ equals: "qwen/qwen3-235b-a22b-instruct-2507"
5586
+ },
5587
+ {
5588
+ equals: "qwen/qwen3-235b-a22b-instruct-2507-fast"
5589
+ }
5590
+ ]
5333
5591
  },
5334
5592
  context_window: 262144,
5335
5593
  prices: {
@@ -5337,11 +5595,37 @@ Compared to other leading proprietary and open-weights models Command A delivers
5337
5595
  output_mtok: 0.6
5338
5596
  }
5339
5597
  },
5598
+ {
5599
+ id: "Qwen/Qwen3-235B-A22B-Thinking-2507",
5600
+ name: "Qwen3-235B-A22B-Thinking-2507",
5601
+ match: {
5602
+ or: [
5603
+ {
5604
+ equals: "qwen/qwen3-235b-a22b-thinking-2507"
5605
+ },
5606
+ {
5607
+ equals: "qwen/qwen3-235b-a22b-thinking-2507-fast"
5608
+ }
5609
+ ]
5610
+ },
5611
+ context_window: 262144,
5612
+ prices: {
5613
+ input_mtok: 0.2,
5614
+ output_mtok: 0.8
5615
+ }
5616
+ },
5340
5617
  {
5341
5618
  id: "Qwen/Qwen3-30B-A3B-Instruct-2507",
5342
5619
  name: "Qwen3-30B-A3B-Instruct-2507",
5343
5620
  match: {
5344
- equals: "qwen/qwen3-30b-a3b-instruct-2507"
5621
+ or: [
5622
+ {
5623
+ equals: "qwen/qwen3-30b-a3b-instruct-2507"
5624
+ },
5625
+ {
5626
+ equals: "qwen/qwen3-30b-a3b-instruct-2507-fast"
5627
+ }
5628
+ ]
5345
5629
  },
5346
5630
  context_window: 262144,
5347
5631
  prices: {
@@ -5353,7 +5637,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5353
5637
  id: "Qwen/Qwen3-30B-A3B-Thinking-2507",
5354
5638
  name: "Qwen3-30B-A3B-Thinking-2507",
5355
5639
  match: {
5356
- equals: "qwen/qwen3-30b-a3b-thinking-2507"
5640
+ or: [
5641
+ {
5642
+ equals: "qwen/qwen3-30b-a3b-thinking-2507"
5643
+ },
5644
+ {
5645
+ equals: "qwen/qwen3-30b-a3b-thinking-2507-fast"
5646
+ }
5647
+ ]
5357
5648
  },
5358
5649
  context_window: 262144,
5359
5650
  prices: {
@@ -5365,7 +5656,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5365
5656
  id: "Qwen/Qwen3-32B",
5366
5657
  name: "Qwen3-32B",
5367
5658
  match: {
5368
- equals: "qwen/qwen3-32b"
5659
+ or: [
5660
+ {
5661
+ equals: "qwen/qwen3-32b"
5662
+ },
5663
+ {
5664
+ equals: "qwen/qwen3-32b-fast"
5665
+ }
5666
+ ]
5369
5667
  },
5370
5668
  context_window: 40960,
5371
5669
  prices: {
@@ -5377,7 +5675,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5377
5675
  id: "Qwen/Qwen3-Coder-30B-A3B-Instruct",
5378
5676
  name: "Qwen3-Coder-30B-A3B-Instruct",
5379
5677
  match: {
5380
- equals: "qwen/qwen3-coder-30b-a3b-instruct"
5678
+ or: [
5679
+ {
5680
+ equals: "qwen/qwen3-coder-30b-a3b-instruct"
5681
+ },
5682
+ {
5683
+ equals: "qwen/qwen3-coder-30b-a3b-instruct-fast"
5684
+ }
5685
+ ]
5381
5686
  },
5382
5687
  context_window: 262144,
5383
5688
  prices: {
@@ -5389,7 +5694,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5389
5694
  id: "Qwen/Qwen3-Coder-480B-A35B-Instruct",
5390
5695
  name: "Qwen3-Coder-480B-A35B-Instruct",
5391
5696
  match: {
5392
- equals: "qwen/qwen3-coder-480b-a35b-instruct"
5697
+ or: [
5698
+ {
5699
+ equals: "qwen/qwen3-coder-480b-a35b-instruct"
5700
+ },
5701
+ {
5702
+ equals: "qwen/qwen3-coder-480b-a35b-instruct-fast"
5703
+ }
5704
+ ]
5393
5705
  },
5394
5706
  context_window: 262144,
5395
5707
  prices: {
@@ -5401,7 +5713,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5401
5713
  id: "deepseek-ai/DeepSeek-R1-0528",
5402
5714
  name: "DeepSeek-R1-0528",
5403
5715
  match: {
5404
- equals: "deepseek-ai/deepseek-r1-0528"
5716
+ or: [
5717
+ {
5718
+ equals: "deepseek-ai/deepseek-r1-0528"
5719
+ },
5720
+ {
5721
+ equals: "deepseek-ai/deepseek-r1-0528-fast"
5722
+ }
5723
+ ]
5405
5724
  },
5406
5725
  context_window: 163840,
5407
5726
  prices: {
@@ -5413,7 +5732,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5413
5732
  id: "deepseek-ai/DeepSeek-V3-0324",
5414
5733
  name: "DeepSeek-V3-0324",
5415
5734
  match: {
5416
- equals: "deepseek-ai/deepseek-v3-0324"
5735
+ or: [
5736
+ {
5737
+ equals: "deepseek-ai/deepseek-v3-0324"
5738
+ },
5739
+ {
5740
+ equals: "deepseek-ai/deepseek-v3-0324-fast"
5741
+ }
5742
+ ]
5417
5743
  },
5418
5744
  context_window: 32768,
5419
5745
  prices: {
@@ -5425,7 +5751,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5425
5751
  id: "google/gemma-2-2b-it",
5426
5752
  name: "gemma-2-2b-it",
5427
5753
  match: {
5428
- equals: "google/gemma-2-2b-it"
5754
+ or: [
5755
+ {
5756
+ equals: "google/gemma-2-2b-it"
5757
+ },
5758
+ {
5759
+ equals: "google/gemma-2-2b-it-fast"
5760
+ }
5761
+ ]
5429
5762
  },
5430
5763
  context_window: 8192,
5431
5764
  prices: {
@@ -5437,7 +5770,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5437
5770
  id: "google/gemma-2-9b-it",
5438
5771
  name: "gemma-2-9b-it",
5439
5772
  match: {
5440
- equals: "google/gemma-2-9b-it"
5773
+ or: [
5774
+ {
5775
+ equals: "google/gemma-2-9b-it"
5776
+ },
5777
+ {
5778
+ equals: "google/gemma-2-9b-it-fast"
5779
+ }
5780
+ ]
5441
5781
  },
5442
5782
  context_window: 8192,
5443
5783
  prices: {
@@ -5449,7 +5789,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5449
5789
  id: "google/gemma-3-27b-it",
5450
5790
  name: "gemma-3-27b-it",
5451
5791
  match: {
5452
- equals: "google/gemma-3-27b-it"
5792
+ or: [
5793
+ {
5794
+ equals: "google/gemma-3-27b-it"
5795
+ },
5796
+ {
5797
+ equals: "google/gemma-3-27b-it-fast"
5798
+ }
5799
+ ]
5453
5800
  },
5454
5801
  context_window: 11e4,
5455
5802
  prices: {
@@ -5461,7 +5808,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5461
5808
  id: "meta-llama/Llama-3.1-8B-Instruct",
5462
5809
  name: "Llama-3.1-8B-Instruct",
5463
5810
  match: {
5464
- equals: "meta-llama/llama-3.1-8b-instruct"
5811
+ or: [
5812
+ {
5813
+ equals: "meta-llama/llama-3.1-8b-instruct"
5814
+ },
5815
+ {
5816
+ equals: "meta-llama/llama-3.1-8b-instruct-fast"
5817
+ }
5818
+ ]
5465
5819
  },
5466
5820
  context_window: 131072,
5467
5821
  prices: {
@@ -5473,7 +5827,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5473
5827
  id: "meta-llama/Llama-3.3-70B-Instruct",
5474
5828
  name: "Llama-3.3-70B-Instruct",
5475
5829
  match: {
5476
- equals: "meta-llama/llama-3.3-70b-instruct"
5830
+ or: [
5831
+ {
5832
+ equals: "meta-llama/llama-3.3-70b-instruct"
5833
+ },
5834
+ {
5835
+ equals: "meta-llama/llama-3.3-70b-instruct-fast"
5836
+ }
5837
+ ]
5477
5838
  },
5478
5839
  context_window: 131072,
5479
5840
  prices: {
@@ -5485,7 +5846,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5485
5846
  id: "moonshotai/Kimi-K2-Instruct",
5486
5847
  name: "Kimi-K2-Instruct",
5487
5848
  match: {
5488
- equals: "moonshotai/kimi-k2-instruct"
5849
+ or: [
5850
+ {
5851
+ equals: "moonshotai/kimi-k2-instruct"
5852
+ },
5853
+ {
5854
+ equals: "moonshotai/kimi-k2-instruct-fast"
5855
+ }
5856
+ ]
5489
5857
  },
5490
5858
  context_window: 131072,
5491
5859
  prices: {
@@ -5493,23 +5861,75 @@ Compared to other leading proprietary and open-weights models Command A delivers
5493
5861
  output_mtok: 2.4
5494
5862
  }
5495
5863
  },
5864
+ {
5865
+ id: "moonshotai/Kimi-K2-Thinking",
5866
+ name: "Kimi-K2-Thinking",
5867
+ match: {
5868
+ or: [
5869
+ {
5870
+ equals: "moonshotai/kimi-k2-thinking"
5871
+ },
5872
+ {
5873
+ equals: "moonshotai/kimi-k2-thinking-fast"
5874
+ }
5875
+ ]
5876
+ },
5877
+ context_window: 262144,
5878
+ prices: {
5879
+ input_mtok: 0.6,
5880
+ output_mtok: 2.5
5881
+ }
5882
+ },
5496
5883
  {
5497
5884
  id: "nvidia/Llama-3_1-Nemotron-Ultra-253B-v1",
5498
5885
  name: "Llama-3_1-Nemotron-Ultra-253B-v1",
5499
5886
  match: {
5500
- equals: "nvidia/llama-3_1-nemotron-ultra-253b-v1"
5887
+ or: [
5888
+ {
5889
+ equals: "nvidia/llama-3_1-nemotron-ultra-253b-v1"
5890
+ },
5891
+ {
5892
+ equals: "nvidia/llama-3_1-nemotron-ultra-253b-v1-fast"
5893
+ }
5894
+ ]
5895
+ },
5896
+ context_window: 131072,
5897
+ prices: {
5898
+ input_mtok: 0.6,
5899
+ output_mtok: 1.8
5900
+ }
5901
+ },
5902
+ {
5903
+ id: "nvidia/NVIDIA-Nemotron-Nano-12B-v2",
5904
+ name: "NVIDIA-Nemotron-Nano-12B-v2",
5905
+ match: {
5906
+ or: [
5907
+ {
5908
+ equals: "nvidia/nvidia-nemotron-nano-12b-v2"
5909
+ },
5910
+ {
5911
+ equals: "nvidia/nvidia-nemotron-nano-12b-v2-fast"
5912
+ }
5913
+ ]
5501
5914
  },
5502
5915
  context_window: 131072,
5503
5916
  prices: {
5504
- input_mtok: 0.6,
5505
- output_mtok: 1.8
5917
+ input_mtok: 0.07,
5918
+ output_mtok: 0.2
5506
5919
  }
5507
5920
  },
5508
5921
  {
5509
5922
  id: "openai/gpt-oss-120b",
5510
5923
  name: "gpt-oss-120b",
5511
5924
  match: {
5512
- equals: "openai/gpt-oss-120b"
5925
+ or: [
5926
+ {
5927
+ equals: "openai/gpt-oss-120b"
5928
+ },
5929
+ {
5930
+ equals: "openai/gpt-oss-120b-fast"
5931
+ }
5932
+ ]
5513
5933
  },
5514
5934
  context_window: 131072,
5515
5935
  prices: {
@@ -5521,7 +5941,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5521
5941
  id: "openai/gpt-oss-20b",
5522
5942
  name: "gpt-oss-20b",
5523
5943
  match: {
5524
- equals: "openai/gpt-oss-20b"
5944
+ or: [
5945
+ {
5946
+ equals: "openai/gpt-oss-20b"
5947
+ },
5948
+ {
5949
+ equals: "openai/gpt-oss-20b-fast"
5950
+ }
5951
+ ]
5525
5952
  },
5526
5953
  context_window: 131072,
5527
5954
  prices: {
@@ -5533,7 +5960,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5533
5960
  id: "zai-org/GLM-4.5",
5534
5961
  name: "GLM-4.5",
5535
5962
  match: {
5536
- equals: "zai-org/glm-4.5"
5963
+ or: [
5964
+ {
5965
+ equals: "zai-org/glm-4.5"
5966
+ },
5967
+ {
5968
+ equals: "zai-org/glm-4.5-fast"
5969
+ }
5970
+ ]
5537
5971
  },
5538
5972
  context_window: 131072,
5539
5973
  prices: {
@@ -5545,7 +5979,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5545
5979
  id: "zai-org/GLM-4.5-Air",
5546
5980
  name: "GLM-4.5-Air",
5547
5981
  match: {
5548
- equals: "zai-org/glm-4.5-air"
5982
+ or: [
5983
+ {
5984
+ equals: "zai-org/glm-4.5-air"
5985
+ },
5986
+ {
5987
+ equals: "zai-org/glm-4.5-air-fast"
5988
+ }
5989
+ ]
5549
5990
  },
5550
5991
  context_window: 131072,
5551
5992
  prices: {
@@ -5609,7 +6050,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5609
6050
  id: "MiniMaxAI/MiniMax-M1-80k",
5610
6051
  name: "MiniMax-M1-80k",
5611
6052
  match: {
5612
- equals: "minimaxai/minimax-m1-80k"
6053
+ or: [
6054
+ {
6055
+ equals: "minimaxai/minimax-m1-80k"
6056
+ },
6057
+ {
6058
+ equals: "minimaxai/minimax-m1-80k-fast"
6059
+ }
6060
+ ]
5613
6061
  },
5614
6062
  context_window: 1e6,
5615
6063
  prices: {
@@ -5621,19 +6069,33 @@ Compared to other leading proprietary and open-weights models Command A delivers
5621
6069
  id: "MiniMaxAI/MiniMax-M2",
5622
6070
  name: "MiniMax-M2",
5623
6071
  match: {
5624
- equals: "minimaxai/minimax-m2"
6072
+ or: [
6073
+ {
6074
+ equals: "minimaxai/minimax-m2"
6075
+ },
6076
+ {
6077
+ equals: "minimaxai/minimax-m2-fast"
6078
+ }
6079
+ ]
5625
6080
  },
5626
6081
  context_window: 204800,
5627
6082
  prices: {
5628
- input_mtok: 0.24,
5629
- output_mtok: 0.96
6083
+ input_mtok: 0.3,
6084
+ output_mtok: 1.2
5630
6085
  }
5631
6086
  },
5632
6087
  {
5633
6088
  id: "NousResearch/Hermes-2-Pro-Llama-3-8B",
5634
6089
  name: "Hermes-2-Pro-Llama-3-8B",
5635
6090
  match: {
5636
- equals: "nousresearch/hermes-2-pro-llama-3-8b"
6091
+ or: [
6092
+ {
6093
+ equals: "nousresearch/hermes-2-pro-llama-3-8b"
6094
+ },
6095
+ {
6096
+ equals: "nousresearch/hermes-2-pro-llama-3-8b-fast"
6097
+ }
6098
+ ]
5637
6099
  },
5638
6100
  context_window: 8192,
5639
6101
  prices: {
@@ -5645,7 +6107,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5645
6107
  id: "Qwen/Qwen2.5-72B-Instruct",
5646
6108
  name: "Qwen2.5-72B-Instruct",
5647
6109
  match: {
5648
- equals: "qwen/qwen2.5-72b-instruct"
6110
+ or: [
6111
+ {
6112
+ equals: "qwen/qwen2.5-72b-instruct"
6113
+ },
6114
+ {
6115
+ equals: "qwen/qwen2.5-72b-instruct-fast"
6116
+ }
6117
+ ]
5649
6118
  },
5650
6119
  context_window: 32e3,
5651
6120
  prices: {
@@ -5657,7 +6126,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5657
6126
  id: "Qwen/Qwen3-235B-A22B",
5658
6127
  name: "Qwen3-235B-A22B",
5659
6128
  match: {
5660
- equals: "qwen/qwen3-235b-a22b"
6129
+ or: [
6130
+ {
6131
+ equals: "qwen/qwen3-235b-a22b"
6132
+ },
6133
+ {
6134
+ equals: "qwen/qwen3-235b-a22b-fast"
6135
+ }
6136
+ ]
5661
6137
  },
5662
6138
  context_window: 40960,
5663
6139
  prices: {
@@ -5669,7 +6145,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5669
6145
  id: "Qwen/Qwen3-235B-A22B-Instruct-2507",
5670
6146
  name: "Qwen3-235B-A22B-Instruct-2507",
5671
6147
  match: {
5672
- equals: "qwen/qwen3-235b-a22b-instruct-2507"
6148
+ or: [
6149
+ {
6150
+ equals: "qwen/qwen3-235b-a22b-instruct-2507"
6151
+ },
6152
+ {
6153
+ equals: "qwen/qwen3-235b-a22b-instruct-2507-fast"
6154
+ }
6155
+ ]
5673
6156
  },
5674
6157
  context_window: 131072,
5675
6158
  prices: {
@@ -5681,7 +6164,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5681
6164
  id: "Qwen/Qwen3-235B-A22B-Thinking-2507",
5682
6165
  name: "Qwen3-235B-A22B-Thinking-2507",
5683
6166
  match: {
5684
- equals: "qwen/qwen3-235b-a22b-thinking-2507"
6167
+ or: [
6168
+ {
6169
+ equals: "qwen/qwen3-235b-a22b-thinking-2507"
6170
+ },
6171
+ {
6172
+ equals: "qwen/qwen3-235b-a22b-thinking-2507-fast"
6173
+ }
6174
+ ]
5685
6175
  },
5686
6176
  context_window: 131072,
5687
6177
  prices: {
@@ -5693,7 +6183,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5693
6183
  id: "Qwen/Qwen3-30B-A3B",
5694
6184
  name: "Qwen3-30B-A3B",
5695
6185
  match: {
5696
- equals: "qwen/qwen3-30b-a3b"
6186
+ or: [
6187
+ {
6188
+ equals: "qwen/qwen3-30b-a3b"
6189
+ },
6190
+ {
6191
+ equals: "qwen/qwen3-30b-a3b-fast"
6192
+ }
6193
+ ]
5697
6194
  },
5698
6195
  context_window: 40960,
5699
6196
  prices: {
@@ -5705,7 +6202,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5705
6202
  id: "Qwen/Qwen3-32B",
5706
6203
  name: "Qwen3-32B",
5707
6204
  match: {
5708
- equals: "qwen/qwen3-32b"
6205
+ or: [
6206
+ {
6207
+ equals: "qwen/qwen3-32b"
6208
+ },
6209
+ {
6210
+ equals: "qwen/qwen3-32b-fast"
6211
+ }
6212
+ ]
5709
6213
  },
5710
6214
  context_window: 40960,
5711
6215
  prices: {
@@ -5717,19 +6221,33 @@ Compared to other leading proprietary and open-weights models Command A delivers
5717
6221
  id: "Qwen/Qwen3-Coder-480B-A35B-Instruct",
5718
6222
  name: "Qwen3-Coder-480B-A35B-Instruct",
5719
6223
  match: {
5720
- equals: "qwen/qwen3-coder-480b-a35b-instruct"
6224
+ or: [
6225
+ {
6226
+ equals: "qwen/qwen3-coder-480b-a35b-instruct"
6227
+ },
6228
+ {
6229
+ equals: "qwen/qwen3-coder-480b-a35b-instruct-fast"
6230
+ }
6231
+ ]
5721
6232
  },
5722
6233
  context_window: 262144,
5723
6234
  prices: {
5724
- input_mtok: 0.232,
5725
- output_mtok: 0.96
6235
+ input_mtok: 0.29,
6236
+ output_mtok: 1.2
5726
6237
  }
5727
6238
  },
5728
6239
  {
5729
6240
  id: "Qwen/Qwen3-Next-80B-A3B-Instruct",
5730
6241
  name: "Qwen3-Next-80B-A3B-Instruct",
5731
6242
  match: {
5732
- equals: "qwen/qwen3-next-80b-a3b-instruct"
6243
+ or: [
6244
+ {
6245
+ equals: "qwen/qwen3-next-80b-a3b-instruct"
6246
+ },
6247
+ {
6248
+ equals: "qwen/qwen3-next-80b-a3b-instruct-fast"
6249
+ }
6250
+ ]
5733
6251
  },
5734
6252
  context_window: 131072,
5735
6253
  prices: {
@@ -5741,7 +6259,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5741
6259
  id: "Qwen/Qwen3-Next-80B-A3B-Thinking",
5742
6260
  name: "Qwen3-Next-80B-A3B-Thinking",
5743
6261
  match: {
5744
- equals: "qwen/qwen3-next-80b-a3b-thinking"
6262
+ or: [
6263
+ {
6264
+ equals: "qwen/qwen3-next-80b-a3b-thinking"
6265
+ },
6266
+ {
6267
+ equals: "qwen/qwen3-next-80b-a3b-thinking-fast"
6268
+ }
6269
+ ]
5745
6270
  },
5746
6271
  context_window: 131072,
5747
6272
  prices: {
@@ -5753,7 +6278,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5753
6278
  id: "Qwen/Qwen3-VL-235B-A22B-Instruct",
5754
6279
  name: "Qwen3-VL-235B-A22B-Instruct",
5755
6280
  match: {
5756
- equals: "qwen/qwen3-vl-235b-a22b-instruct"
6281
+ or: [
6282
+ {
6283
+ equals: "qwen/qwen3-vl-235b-a22b-instruct"
6284
+ },
6285
+ {
6286
+ equals: "qwen/qwen3-vl-235b-a22b-instruct-fast"
6287
+ }
6288
+ ]
5757
6289
  },
5758
6290
  context_window: 131072,
5759
6291
  prices: {
@@ -5765,7 +6297,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5765
6297
  id: "Qwen/Qwen3-VL-235B-A22B-Thinking",
5766
6298
  name: "Qwen3-VL-235B-A22B-Thinking",
5767
6299
  match: {
5768
- equals: "qwen/qwen3-vl-235b-a22b-thinking"
6300
+ or: [
6301
+ {
6302
+ equals: "qwen/qwen3-vl-235b-a22b-thinking"
6303
+ },
6304
+ {
6305
+ equals: "qwen/qwen3-vl-235b-a22b-thinking-fast"
6306
+ }
6307
+ ]
5769
6308
  },
5770
6309
  context_window: 131072,
5771
6310
  prices: {
@@ -5777,7 +6316,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5777
6316
  id: "Qwen/Qwen3-VL-30B-A3B-Instruct",
5778
6317
  name: "Qwen3-VL-30B-A3B-Instruct",
5779
6318
  match: {
5780
- equals: "qwen/qwen3-vl-30b-a3b-instruct"
6319
+ or: [
6320
+ {
6321
+ equals: "qwen/qwen3-vl-30b-a3b-instruct"
6322
+ },
6323
+ {
6324
+ equals: "qwen/qwen3-vl-30b-a3b-instruct-fast"
6325
+ }
6326
+ ]
5781
6327
  },
5782
6328
  context_window: 131072,
5783
6329
  prices: {
@@ -5789,7 +6335,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5789
6335
  id: "Qwen/Qwen3-VL-30B-A3B-Thinking",
5790
6336
  name: "Qwen3-VL-30B-A3B-Thinking",
5791
6337
  match: {
5792
- equals: "qwen/qwen3-vl-30b-a3b-thinking"
6338
+ or: [
6339
+ {
6340
+ equals: "qwen/qwen3-vl-30b-a3b-thinking"
6341
+ },
6342
+ {
6343
+ equals: "qwen/qwen3-vl-30b-a3b-thinking-fast"
6344
+ }
6345
+ ]
5793
6346
  },
5794
6347
  context_window: 131072,
5795
6348
  prices: {
@@ -5801,7 +6354,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5801
6354
  id: "Qwen/Qwen3-VL-8B-Instruct",
5802
6355
  name: "Qwen3-VL-8B-Instruct",
5803
6356
  match: {
5804
- equals: "qwen/qwen3-vl-8b-instruct"
6357
+ or: [
6358
+ {
6359
+ equals: "qwen/qwen3-vl-8b-instruct"
6360
+ },
6361
+ {
6362
+ equals: "qwen/qwen3-vl-8b-instruct-fast"
6363
+ }
6364
+ ]
5805
6365
  },
5806
6366
  context_window: 131072,
5807
6367
  prices: {
@@ -5813,7 +6373,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5813
6373
  id: "Sao10K/L3-70B-Euryale-v2.1",
5814
6374
  name: "L3-70B-Euryale-v2.1",
5815
6375
  match: {
5816
- equals: "sao10k/l3-70b-euryale-v2.1"
6376
+ or: [
6377
+ {
6378
+ equals: "sao10k/l3-70b-euryale-v2.1"
6379
+ },
6380
+ {
6381
+ equals: "sao10k/l3-70b-euryale-v2.1-fast"
6382
+ }
6383
+ ]
5817
6384
  },
5818
6385
  context_window: 8192,
5819
6386
  prices: {
@@ -5825,7 +6392,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5825
6392
  id: "Sao10K/L3-8B-Lunaris-v1",
5826
6393
  name: "L3-8B-Lunaris-v1",
5827
6394
  match: {
5828
- equals: "sao10k/l3-8b-lunaris-v1"
6395
+ or: [
6396
+ {
6397
+ equals: "sao10k/l3-8b-lunaris-v1"
6398
+ },
6399
+ {
6400
+ equals: "sao10k/l3-8b-lunaris-v1-fast"
6401
+ }
6402
+ ]
5829
6403
  },
5830
6404
  context_window: 8192,
5831
6405
  prices: {
@@ -5837,7 +6411,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5837
6411
  id: "Sao10K/L3-8B-Stheno-v3.2",
5838
6412
  name: "L3-8B-Stheno-v3.2",
5839
6413
  match: {
5840
- equals: "sao10k/l3-8b-stheno-v3.2"
6414
+ or: [
6415
+ {
6416
+ equals: "sao10k/l3-8b-stheno-v3.2"
6417
+ },
6418
+ {
6419
+ equals: "sao10k/l3-8b-stheno-v3.2-fast"
6420
+ }
6421
+ ]
5841
6422
  },
5842
6423
  context_window: 8192,
5843
6424
  prices: {
@@ -5849,7 +6430,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5849
6430
  id: "alpindale/WizardLM-2-8x22B",
5850
6431
  name: "WizardLM-2-8x22B",
5851
6432
  match: {
5852
- equals: "alpindale/wizardlm-2-8x22b"
6433
+ or: [
6434
+ {
6435
+ equals: "alpindale/wizardlm-2-8x22b"
6436
+ },
6437
+ {
6438
+ equals: "alpindale/wizardlm-2-8x22b-fast"
6439
+ }
6440
+ ]
5853
6441
  },
5854
6442
  context_window: 65535,
5855
6443
  prices: {
@@ -5861,7 +6449,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5861
6449
  id: "baichuan-inc/Baichuan-M2-32B",
5862
6450
  name: "Baichuan-M2-32B",
5863
6451
  match: {
5864
- equals: "baichuan-inc/baichuan-m2-32b"
6452
+ or: [
6453
+ {
6454
+ equals: "baichuan-inc/baichuan-m2-32b"
6455
+ },
6456
+ {
6457
+ equals: "baichuan-inc/baichuan-m2-32b-fast"
6458
+ }
6459
+ ]
5865
6460
  },
5866
6461
  context_window: 131072,
5867
6462
  prices: {
@@ -5873,7 +6468,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5873
6468
  id: "baidu/ERNIE-4.5-21B-A3B-PT",
5874
6469
  name: "ERNIE-4.5-21B-A3B-PT",
5875
6470
  match: {
5876
- equals: "baidu/ernie-4.5-21b-a3b-pt"
6471
+ or: [
6472
+ {
6473
+ equals: "baidu/ernie-4.5-21b-a3b-pt"
6474
+ },
6475
+ {
6476
+ equals: "baidu/ernie-4.5-21b-a3b-pt-fast"
6477
+ }
6478
+ ]
5877
6479
  },
5878
6480
  context_window: 12e4,
5879
6481
  prices: {
@@ -5885,7 +6487,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5885
6487
  id: "baidu/ERNIE-4.5-300B-A47B-Base-PT",
5886
6488
  name: "ERNIE-4.5-300B-A47B-Base-PT",
5887
6489
  match: {
5888
- equals: "baidu/ernie-4.5-300b-a47b-base-pt"
6490
+ or: [
6491
+ {
6492
+ equals: "baidu/ernie-4.5-300b-a47b-base-pt"
6493
+ },
6494
+ {
6495
+ equals: "baidu/ernie-4.5-300b-a47b-base-pt-fast"
6496
+ }
6497
+ ]
5889
6498
  },
5890
6499
  context_window: 123e3,
5891
6500
  prices: {
@@ -5897,7 +6506,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5897
6506
  id: "baidu/ERNIE-4.5-VL-28B-A3B-PT",
5898
6507
  name: "ERNIE-4.5-VL-28B-A3B-PT",
5899
6508
  match: {
5900
- equals: "baidu/ernie-4.5-vl-28b-a3b-pt"
6509
+ or: [
6510
+ {
6511
+ equals: "baidu/ernie-4.5-vl-28b-a3b-pt"
6512
+ },
6513
+ {
6514
+ equals: "baidu/ernie-4.5-vl-28b-a3b-pt-fast"
6515
+ }
6516
+ ]
5901
6517
  },
5902
6518
  context_window: 3e4,
5903
6519
  prices: {
@@ -5909,7 +6525,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5909
6525
  id: "baidu/ERNIE-4.5-VL-424B-A47B-Base-PT",
5910
6526
  name: "ERNIE-4.5-VL-424B-A47B-Base-PT",
5911
6527
  match: {
5912
- equals: "baidu/ernie-4.5-vl-424b-a47b-base-pt"
6528
+ or: [
6529
+ {
6530
+ equals: "baidu/ernie-4.5-vl-424b-a47b-base-pt"
6531
+ },
6532
+ {
6533
+ equals: "baidu/ernie-4.5-vl-424b-a47b-base-pt-fast"
6534
+ }
6535
+ ]
5913
6536
  },
5914
6537
  context_window: 123e3,
5915
6538
  prices: {
@@ -5921,7 +6544,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5921
6544
  id: "deepseek-ai/DeepSeek-Prover-V2-671B",
5922
6545
  name: "DeepSeek-Prover-V2-671B",
5923
6546
  match: {
5924
- equals: "deepseek-ai/deepseek-prover-v2-671b"
6547
+ or: [
6548
+ {
6549
+ equals: "deepseek-ai/deepseek-prover-v2-671b"
6550
+ },
6551
+ {
6552
+ equals: "deepseek-ai/deepseek-prover-v2-671b-fast"
6553
+ }
6554
+ ]
5925
6555
  },
5926
6556
  context_window: 16e4,
5927
6557
  prices: {
@@ -5937,8 +6567,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5937
6567
  {
5938
6568
  equals: "deepseek-ai/deepseek-r1"
5939
6569
  },
6570
+ {
6571
+ equals: "deepseek-ai/deepseek-r1-fast"
6572
+ },
5940
6573
  {
5941
6574
  equals: "deepseek-ai/deepseek-r1-0528"
6575
+ },
6576
+ {
6577
+ equals: "deepseek-ai/deepseek-r1-0528-fast"
5942
6578
  }
5943
6579
  ]
5944
6580
  },
@@ -5952,7 +6588,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5952
6588
  id: "deepseek-ai/DeepSeek-R1-0528-Qwen3-8B",
5953
6589
  name: "DeepSeek-R1-0528-Qwen3-8B",
5954
6590
  match: {
5955
- equals: "deepseek-ai/deepseek-r1-0528-qwen3-8b"
6591
+ or: [
6592
+ {
6593
+ equals: "deepseek-ai/deepseek-r1-0528-qwen3-8b"
6594
+ },
6595
+ {
6596
+ equals: "deepseek-ai/deepseek-r1-0528-qwen3-8b-fast"
6597
+ }
6598
+ ]
5956
6599
  },
5957
6600
  context_window: 128e3,
5958
6601
  prices: {
@@ -5964,7 +6607,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5964
6607
  id: "deepseek-ai/DeepSeek-R1-Distill-Llama-70B",
5965
6608
  name: "DeepSeek-R1-Distill-Llama-70B",
5966
6609
  match: {
5967
- equals: "deepseek-ai/deepseek-r1-distill-llama-70b"
6610
+ or: [
6611
+ {
6612
+ equals: "deepseek-ai/deepseek-r1-distill-llama-70b"
6613
+ },
6614
+ {
6615
+ equals: "deepseek-ai/deepseek-r1-distill-llama-70b-fast"
6616
+ }
6617
+ ]
5968
6618
  },
5969
6619
  context_window: 8192,
5970
6620
  prices: {
@@ -5976,7 +6626,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5976
6626
  id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B",
5977
6627
  name: "DeepSeek-R1-Distill-Qwen-14B",
5978
6628
  match: {
5979
- equals: "deepseek-ai/deepseek-r1-distill-qwen-14b"
6629
+ or: [
6630
+ {
6631
+ equals: "deepseek-ai/deepseek-r1-distill-qwen-14b"
6632
+ },
6633
+ {
6634
+ equals: "deepseek-ai/deepseek-r1-distill-qwen-14b-fast"
6635
+ }
6636
+ ]
5980
6637
  },
5981
6638
  context_window: 32768,
5982
6639
  prices: {
@@ -5988,7 +6645,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
5988
6645
  id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B",
5989
6646
  name: "DeepSeek-R1-Distill-Qwen-32B",
5990
6647
  match: {
5991
- equals: "deepseek-ai/deepseek-r1-distill-qwen-32b"
6648
+ or: [
6649
+ {
6650
+ equals: "deepseek-ai/deepseek-r1-distill-qwen-32b"
6651
+ },
6652
+ {
6653
+ equals: "deepseek-ai/deepseek-r1-distill-qwen-32b-fast"
6654
+ }
6655
+ ]
5992
6656
  },
5993
6657
  context_window: 64e3,
5994
6658
  prices: {
@@ -6000,7 +6664,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6000
6664
  id: "deepseek-ai/DeepSeek-V3",
6001
6665
  name: "DeepSeek-V3",
6002
6666
  match: {
6003
- equals: "deepseek-ai/deepseek-v3"
6667
+ or: [
6668
+ {
6669
+ equals: "deepseek-ai/deepseek-v3"
6670
+ },
6671
+ {
6672
+ equals: "deepseek-ai/deepseek-v3-fast"
6673
+ }
6674
+ ]
6004
6675
  },
6005
6676
  context_window: 64e3,
6006
6677
  prices: {
@@ -6012,7 +6683,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6012
6683
  id: "deepseek-ai/DeepSeek-V3-0324",
6013
6684
  name: "DeepSeek-V3-0324",
6014
6685
  match: {
6015
- equals: "deepseek-ai/deepseek-v3-0324"
6686
+ or: [
6687
+ {
6688
+ equals: "deepseek-ai/deepseek-v3-0324"
6689
+ },
6690
+ {
6691
+ equals: "deepseek-ai/deepseek-v3-0324-fast"
6692
+ }
6693
+ ]
6016
6694
  },
6017
6695
  context_window: 163840,
6018
6696
  prices: {
@@ -6028,8 +6706,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6028
6706
  {
6029
6707
  equals: "deepseek-ai/deepseek-v3.1"
6030
6708
  },
6709
+ {
6710
+ equals: "deepseek-ai/deepseek-v3.1-fast"
6711
+ },
6031
6712
  {
6032
6713
  equals: "deepseek-ai/deepseek-v3.1-terminus"
6714
+ },
6715
+ {
6716
+ equals: "deepseek-ai/deepseek-v3.1-terminus-fast"
6033
6717
  }
6034
6718
  ]
6035
6719
  },
@@ -6043,7 +6727,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6043
6727
  id: "deepseek-ai/DeepSeek-V3.2-Exp",
6044
6728
  name: "DeepSeek-V3.2-Exp",
6045
6729
  match: {
6046
- equals: "deepseek-ai/deepseek-v3.2-exp"
6730
+ or: [
6731
+ {
6732
+ equals: "deepseek-ai/deepseek-v3.2-exp"
6733
+ },
6734
+ {
6735
+ equals: "deepseek-ai/deepseek-v3.2-exp-fast"
6736
+ }
6737
+ ]
6047
6738
  },
6048
6739
  context_window: 163840,
6049
6740
  prices: {
@@ -6055,7 +6746,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6055
6746
  id: "meta-llama/Llama-3.1-8B-Instruct",
6056
6747
  name: "Llama-3.1-8B-Instruct",
6057
6748
  match: {
6058
- equals: "meta-llama/llama-3.1-8b-instruct"
6749
+ or: [
6750
+ {
6751
+ equals: "meta-llama/llama-3.1-8b-instruct"
6752
+ },
6753
+ {
6754
+ equals: "meta-llama/llama-3.1-8b-instruct-fast"
6755
+ }
6756
+ ]
6059
6757
  },
6060
6758
  context_window: 16384,
6061
6759
  prices: {
@@ -6067,7 +6765,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6067
6765
  id: "meta-llama/Llama-3.2-3B-Instruct",
6068
6766
  name: "Llama-3.2-3B-Instruct",
6069
6767
  match: {
6070
- equals: "meta-llama/llama-3.2-3b-instruct"
6768
+ or: [
6769
+ {
6770
+ equals: "meta-llama/llama-3.2-3b-instruct"
6771
+ },
6772
+ {
6773
+ equals: "meta-llama/llama-3.2-3b-instruct-fast"
6774
+ }
6775
+ ]
6071
6776
  },
6072
6777
  context_window: 32768,
6073
6778
  prices: {
@@ -6079,7 +6784,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6079
6784
  id: "meta-llama/Llama-3.3-70B-Instruct",
6080
6785
  name: "Llama-3.3-70B-Instruct",
6081
6786
  match: {
6082
- equals: "meta-llama/llama-3.3-70b-instruct"
6787
+ or: [
6788
+ {
6789
+ equals: "meta-llama/llama-3.3-70b-instruct"
6790
+ },
6791
+ {
6792
+ equals: "meta-llama/llama-3.3-70b-instruct-fast"
6793
+ }
6794
+ ]
6083
6795
  },
6084
6796
  context_window: 131072,
6085
6797
  prices: {
@@ -6087,35 +6799,18 @@ Compared to other leading proprietary and open-weights models Command A delivers
6087
6799
  output_mtok: 0.312
6088
6800
  }
6089
6801
  },
6090
- {
6091
- id: "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",
6092
- name: "Llama-4-Maverick-17B-128E-Instruct-FP8",
6093
- match: {
6094
- equals: "meta-llama/llama-4-maverick-17b-128e-instruct-fp8"
6095
- },
6096
- context_window: 1048576,
6097
- prices: {
6098
- input_mtok: 0.136,
6099
- output_mtok: 0.68
6100
- }
6101
- },
6102
- {
6103
- id: "meta-llama/Llama-4-Scout-17B-16E-Instruct",
6104
- name: "Llama-4-Scout-17B-16E-Instruct",
6105
- match: {
6106
- equals: "meta-llama/llama-4-scout-17b-16e-instruct"
6107
- },
6108
- context_window: 131072,
6109
- prices: {
6110
- input_mtok: 0.08,
6111
- output_mtok: 0.4
6112
- }
6113
- },
6114
6802
  {
6115
6803
  id: "meta-llama/Meta-Llama-3-70B-Instruct",
6116
6804
  name: "Meta-Llama-3-70B-Instruct",
6117
6805
  match: {
6118
- equals: "meta-llama/meta-llama-3-70b-instruct"
6806
+ or: [
6807
+ {
6808
+ equals: "meta-llama/meta-llama-3-70b-instruct"
6809
+ },
6810
+ {
6811
+ equals: "meta-llama/meta-llama-3-70b-instruct-fast"
6812
+ }
6813
+ ]
6119
6814
  },
6120
6815
  context_window: 8192,
6121
6816
  prices: {
@@ -6127,7 +6822,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6127
6822
  id: "meta-llama/Meta-Llama-3-8B-Instruct",
6128
6823
  name: "Meta-Llama-3-8B-Instruct",
6129
6824
  match: {
6130
- equals: "meta-llama/meta-llama-3-8b-instruct"
6825
+ or: [
6826
+ {
6827
+ equals: "meta-llama/meta-llama-3-8b-instruct"
6828
+ },
6829
+ {
6830
+ equals: "meta-llama/meta-llama-3-8b-instruct-fast"
6831
+ }
6832
+ ]
6131
6833
  },
6132
6834
  context_window: 8192,
6133
6835
  prices: {
@@ -6139,7 +6841,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6139
6841
  id: "moonshotai/Kimi-K2-Instruct",
6140
6842
  name: "Kimi-K2-Instruct",
6141
6843
  match: {
6142
- equals: "moonshotai/kimi-k2-instruct"
6844
+ or: [
6845
+ {
6846
+ equals: "moonshotai/kimi-k2-instruct"
6847
+ },
6848
+ {
6849
+ equals: "moonshotai/kimi-k2-instruct-fast"
6850
+ }
6851
+ ]
6143
6852
  },
6144
6853
  context_window: 131072,
6145
6854
  prices: {
@@ -6151,7 +6860,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6151
6860
  id: "moonshotai/Kimi-K2-Instruct-0905",
6152
6861
  name: "Kimi-K2-Instruct-0905",
6153
6862
  match: {
6154
- equals: "moonshotai/kimi-k2-instruct-0905"
6863
+ or: [
6864
+ {
6865
+ equals: "moonshotai/kimi-k2-instruct-0905"
6866
+ },
6867
+ {
6868
+ equals: "moonshotai/kimi-k2-instruct-0905-fast"
6869
+ }
6870
+ ]
6155
6871
  },
6156
6872
  context_window: 262144,
6157
6873
  prices: {
@@ -6163,7 +6879,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6163
6879
  id: "moonshotai/Kimi-K2-Thinking",
6164
6880
  name: "Kimi-K2-Thinking",
6165
6881
  match: {
6166
- equals: "moonshotai/kimi-k2-thinking"
6882
+ or: [
6883
+ {
6884
+ equals: "moonshotai/kimi-k2-thinking"
6885
+ },
6886
+ {
6887
+ equals: "moonshotai/kimi-k2-thinking-fast"
6888
+ }
6889
+ ]
6167
6890
  },
6168
6891
  context_window: 262144,
6169
6892
  prices: {
@@ -6175,7 +6898,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6175
6898
  id: "openai/gpt-oss-120b",
6176
6899
  name: "gpt-oss-120b",
6177
6900
  match: {
6178
- equals: "openai/gpt-oss-120b"
6901
+ or: [
6902
+ {
6903
+ equals: "openai/gpt-oss-120b"
6904
+ },
6905
+ {
6906
+ equals: "openai/gpt-oss-120b-fast"
6907
+ }
6908
+ ]
6179
6909
  },
6180
6910
  context_window: 131072,
6181
6911
  prices: {
@@ -6187,7 +6917,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6187
6917
  id: "openai/gpt-oss-20b",
6188
6918
  name: "gpt-oss-20b",
6189
6919
  match: {
6190
- equals: "openai/gpt-oss-20b"
6920
+ or: [
6921
+ {
6922
+ equals: "openai/gpt-oss-20b"
6923
+ },
6924
+ {
6925
+ equals: "openai/gpt-oss-20b-fast"
6926
+ }
6927
+ ]
6191
6928
  },
6192
6929
  context_window: 131072,
6193
6930
  prices: {
@@ -6199,7 +6936,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6199
6936
  id: "zai-org/GLM-4-32B-0414",
6200
6937
  name: "GLM-4-32B-0414",
6201
6938
  match: {
6202
- equals: "zai-org/glm-4-32b-0414"
6939
+ or: [
6940
+ {
6941
+ equals: "zai-org/glm-4-32b-0414"
6942
+ },
6943
+ {
6944
+ equals: "zai-org/glm-4-32b-0414-fast"
6945
+ }
6946
+ ]
6203
6947
  },
6204
6948
  context_window: 32e3,
6205
6949
  prices: {
@@ -6211,7 +6955,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6211
6955
  id: "zai-org/GLM-4.1V-9B-Thinking",
6212
6956
  name: "GLM-4.1V-9B-Thinking",
6213
6957
  match: {
6214
- equals: "zai-org/glm-4.1v-9b-thinking"
6958
+ or: [
6959
+ {
6960
+ equals: "zai-org/glm-4.1v-9b-thinking"
6961
+ },
6962
+ {
6963
+ equals: "zai-org/glm-4.1v-9b-thinking-fast"
6964
+ }
6965
+ ]
6215
6966
  },
6216
6967
  context_window: 65536,
6217
6968
  prices: {
@@ -6223,7 +6974,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6223
6974
  id: "zai-org/GLM-4.5",
6224
6975
  name: "GLM-4.5",
6225
6976
  match: {
6226
- equals: "zai-org/glm-4.5"
6977
+ or: [
6978
+ {
6979
+ equals: "zai-org/glm-4.5"
6980
+ },
6981
+ {
6982
+ equals: "zai-org/glm-4.5-fast"
6983
+ }
6984
+ ]
6227
6985
  },
6228
6986
  context_window: 131072,
6229
6987
  prices: {
@@ -6235,7 +6993,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6235
6993
  id: "zai-org/GLM-4.5-Air",
6236
6994
  name: "GLM-4.5-Air",
6237
6995
  match: {
6238
- equals: "zai-org/glm-4.5-air"
6996
+ or: [
6997
+ {
6998
+ equals: "zai-org/glm-4.5-air"
6999
+ },
7000
+ {
7001
+ equals: "zai-org/glm-4.5-air-fast"
7002
+ }
7003
+ ]
6239
7004
  },
6240
7005
  context_window: 131072,
6241
7006
  prices: {
@@ -6247,7 +7012,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6247
7012
  id: "zai-org/GLM-4.5V",
6248
7013
  name: "GLM-4.5V",
6249
7014
  match: {
6250
- equals: "zai-org/glm-4.5v"
7015
+ or: [
7016
+ {
7017
+ equals: "zai-org/glm-4.5v"
7018
+ },
7019
+ {
7020
+ equals: "zai-org/glm-4.5v-fast"
7021
+ }
7022
+ ]
6251
7023
  },
6252
7024
  context_window: 65536,
6253
7025
  prices: {
@@ -6259,11 +7031,18 @@ Compared to other leading proprietary and open-weights models Command A delivers
6259
7031
  id: "zai-org/GLM-4.6",
6260
7032
  name: "GLM-4.6",
6261
7033
  match: {
6262
- equals: "zai-org/glm-4.6"
7034
+ or: [
7035
+ {
7036
+ equals: "zai-org/glm-4.6"
7037
+ },
7038
+ {
7039
+ equals: "zai-org/glm-4.6-fast"
7040
+ }
7041
+ ]
6263
7042
  },
6264
7043
  context_window: 204800,
6265
7044
  prices: {
6266
- input_mtok: 0.48,
7045
+ input_mtok: 0.44,
6267
7046
  output_mtok: 1.76
6268
7047
  }
6269
7048
  }
@@ -6323,7 +7102,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6323
7102
  id: "Qwen/QwQ-32B",
6324
7103
  name: "QwQ-32B",
6325
7104
  match: {
6326
- equals: "qwen/qwq-32b"
7105
+ or: [
7106
+ {
7107
+ equals: "qwen/qwq-32b"
7108
+ },
7109
+ {
7110
+ equals: "qwen/qwq-32b-fast"
7111
+ }
7112
+ ]
6327
7113
  },
6328
7114
  context_window: 131072,
6329
7115
  prices: {
@@ -6335,7 +7121,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6335
7121
  id: "Qwen/Qwen2.5-Coder-32B-Instruct",
6336
7122
  name: "Qwen2.5-Coder-32B-Instruct",
6337
7123
  match: {
6338
- equals: "qwen/qwen2.5-coder-32b-instruct"
7124
+ or: [
7125
+ {
7126
+ equals: "qwen/qwen2.5-coder-32b-instruct"
7127
+ },
7128
+ {
7129
+ equals: "qwen/qwen2.5-coder-32b-instruct-fast"
7130
+ }
7131
+ ]
6339
7132
  },
6340
7133
  context_window: 131072,
6341
7134
  prices: {
@@ -6347,7 +7140,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6347
7140
  id: "Qwen/Qwen2.5-Coder-3B-Instruct",
6348
7141
  name: "Qwen2.5-Coder-3B-Instruct",
6349
7142
  match: {
6350
- equals: "qwen/qwen2.5-coder-3b-instruct"
7143
+ or: [
7144
+ {
7145
+ equals: "qwen/qwen2.5-coder-3b-instruct"
7146
+ },
7147
+ {
7148
+ equals: "qwen/qwen2.5-coder-3b-instruct-fast"
7149
+ }
7150
+ ]
6351
7151
  },
6352
7152
  context_window: 32768,
6353
7153
  prices: {
@@ -6359,7 +7159,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6359
7159
  id: "Qwen/Qwen2.5-Coder-7B-Instruct",
6360
7160
  name: "Qwen2.5-Coder-7B-Instruct",
6361
7161
  match: {
6362
- equals: "qwen/qwen2.5-coder-7b-instruct"
7162
+ or: [
7163
+ {
7164
+ equals: "qwen/qwen2.5-coder-7b-instruct"
7165
+ },
7166
+ {
7167
+ equals: "qwen/qwen2.5-coder-7b-instruct-fast"
7168
+ }
7169
+ ]
6363
7170
  },
6364
7171
  context_window: 131072,
6365
7172
  prices: {
@@ -6371,7 +7178,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6371
7178
  id: "Qwen/Qwen3-14B",
6372
7179
  name: "Qwen3-14B",
6373
7180
  match: {
6374
- equals: "qwen/qwen3-14b"
7181
+ or: [
7182
+ {
7183
+ equals: "qwen/qwen3-14b"
7184
+ },
7185
+ {
7186
+ equals: "qwen/qwen3-14b-fast"
7187
+ }
7188
+ ]
6375
7189
  },
6376
7190
  context_window: 40960,
6377
7191
  prices: {
@@ -6387,8 +7201,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6387
7201
  {
6388
7202
  equals: "qwen/qwen3-235b-a22b"
6389
7203
  },
7204
+ {
7205
+ equals: "qwen/qwen3-235b-a22b-fast"
7206
+ },
6390
7207
  {
6391
7208
  equals: "qwen/qwen3-235b-a22b-instruct-2507"
7209
+ },
7210
+ {
7211
+ equals: "qwen/qwen3-235b-a22b-instruct-2507-fast"
6392
7212
  }
6393
7213
  ]
6394
7214
  },
@@ -6402,7 +7222,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6402
7222
  id: "Qwen/Qwen3-32B",
6403
7223
  name: "Qwen3-32B",
6404
7224
  match: {
6405
- equals: "qwen/qwen3-32b"
7225
+ or: [
7226
+ {
7227
+ equals: "qwen/qwen3-32b"
7228
+ },
7229
+ {
7230
+ equals: "qwen/qwen3-32b-fast"
7231
+ }
7232
+ ]
6406
7233
  },
6407
7234
  context_window: 40960,
6408
7235
  prices: {
@@ -6414,7 +7241,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6414
7241
  id: "Qwen/Qwen3-4B-Instruct-2507",
6415
7242
  name: "Qwen3-4B-Instruct-2507",
6416
7243
  match: {
6417
- equals: "qwen/qwen3-4b-instruct-2507"
7244
+ or: [
7245
+ {
7246
+ equals: "qwen/qwen3-4b-instruct-2507"
7247
+ },
7248
+ {
7249
+ equals: "qwen/qwen3-4b-instruct-2507-fast"
7250
+ }
7251
+ ]
6418
7252
  },
6419
7253
  context_window: 262144,
6420
7254
  prices: {
@@ -6426,7 +7260,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6426
7260
  id: "Qwen/Qwen3-4B-Thinking-2507",
6427
7261
  name: "Qwen3-4B-Thinking-2507",
6428
7262
  match: {
6429
- equals: "qwen/qwen3-4b-thinking-2507"
7263
+ or: [
7264
+ {
7265
+ equals: "qwen/qwen3-4b-thinking-2507"
7266
+ },
7267
+ {
7268
+ equals: "qwen/qwen3-4b-thinking-2507-fast"
7269
+ }
7270
+ ]
6430
7271
  },
6431
7272
  context_window: 262144,
6432
7273
  prices: {
@@ -6438,7 +7279,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6438
7279
  id: "Qwen/Qwen3-8B",
6439
7280
  name: "Qwen3-8B",
6440
7281
  match: {
6441
- equals: "qwen/qwen3-8b"
7282
+ or: [
7283
+ {
7284
+ equals: "qwen/qwen3-8b"
7285
+ },
7286
+ {
7287
+ equals: "qwen/qwen3-8b-fast"
7288
+ }
7289
+ ]
6442
7290
  },
6443
7291
  context_window: 40960,
6444
7292
  prices: {
@@ -6450,7 +7298,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6450
7298
  id: "deepseek-ai/DeepSeek-R1-Distill-Llama-70B",
6451
7299
  name: "DeepSeek-R1-Distill-Llama-70B",
6452
7300
  match: {
6453
- equals: "deepseek-ai/deepseek-r1-distill-llama-70b"
7301
+ or: [
7302
+ {
7303
+ equals: "deepseek-ai/deepseek-r1-distill-llama-70b"
7304
+ },
7305
+ {
7306
+ equals: "deepseek-ai/deepseek-r1-distill-llama-70b-fast"
7307
+ }
7308
+ ]
6454
7309
  },
6455
7310
  context_window: 131072,
6456
7311
  prices: {
@@ -6462,7 +7317,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6462
7317
  id: "deepseek-ai/DeepSeek-R1-Distill-Llama-8B",
6463
7318
  name: "DeepSeek-R1-Distill-Llama-8B",
6464
7319
  match: {
6465
- equals: "deepseek-ai/deepseek-r1-distill-llama-8b"
7320
+ or: [
7321
+ {
7322
+ equals: "deepseek-ai/deepseek-r1-distill-llama-8b"
7323
+ },
7324
+ {
7325
+ equals: "deepseek-ai/deepseek-r1-distill-llama-8b-fast"
7326
+ }
7327
+ ]
6466
7328
  },
6467
7329
  context_window: 131072,
6468
7330
  prices: {
@@ -6474,7 +7336,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6474
7336
  id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B",
6475
7337
  name: "DeepSeek-R1-Distill-Qwen-1.5B",
6476
7338
  match: {
6477
- equals: "deepseek-ai/deepseek-r1-distill-qwen-1.5b"
7339
+ or: [
7340
+ {
7341
+ equals: "deepseek-ai/deepseek-r1-distill-qwen-1.5b"
7342
+ },
7343
+ {
7344
+ equals: "deepseek-ai/deepseek-r1-distill-qwen-1.5b-fast"
7345
+ }
7346
+ ]
6478
7347
  },
6479
7348
  context_window: 131072,
6480
7349
  prices: {
@@ -6486,7 +7355,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6486
7355
  id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-14B",
6487
7356
  name: "DeepSeek-R1-Distill-Qwen-14B",
6488
7357
  match: {
6489
- equals: "deepseek-ai/deepseek-r1-distill-qwen-14b"
7358
+ or: [
7359
+ {
7360
+ equals: "deepseek-ai/deepseek-r1-distill-qwen-14b"
7361
+ },
7362
+ {
7363
+ equals: "deepseek-ai/deepseek-r1-distill-qwen-14b-fast"
7364
+ }
7365
+ ]
6490
7366
  },
6491
7367
  context_window: 131072,
6492
7368
  prices: {
@@ -6498,7 +7374,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6498
7374
  id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B",
6499
7375
  name: "DeepSeek-R1-Distill-Qwen-32B",
6500
7376
  match: {
6501
- equals: "deepseek-ai/deepseek-r1-distill-qwen-32b"
7377
+ or: [
7378
+ {
7379
+ equals: "deepseek-ai/deepseek-r1-distill-qwen-32b"
7380
+ },
7381
+ {
7382
+ equals: "deepseek-ai/deepseek-r1-distill-qwen-32b-fast"
7383
+ }
7384
+ ]
6502
7385
  },
6503
7386
  context_window: 131072,
6504
7387
  prices: {
@@ -6510,7 +7393,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6510
7393
  id: "deepseek-ai/DeepSeek-R1-Distill-Qwen-7B",
6511
7394
  name: "DeepSeek-R1-Distill-Qwen-7B",
6512
7395
  match: {
6513
- equals: "deepseek-ai/deepseek-r1-distill-qwen-7b"
7396
+ or: [
7397
+ {
7398
+ equals: "deepseek-ai/deepseek-r1-distill-qwen-7b"
7399
+ },
7400
+ {
7401
+ equals: "deepseek-ai/deepseek-r1-distill-qwen-7b-fast"
7402
+ }
7403
+ ]
6514
7404
  },
6515
7405
  context_window: 131072,
6516
7406
  prices: {
@@ -6522,7 +7412,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6522
7412
  id: "meta-llama/Llama-3.1-8B-Instruct",
6523
7413
  name: "Llama-3.1-8B-Instruct",
6524
7414
  match: {
6525
- equals: "meta-llama/llama-3.1-8b-instruct"
7415
+ or: [
7416
+ {
7417
+ equals: "meta-llama/llama-3.1-8b-instruct"
7418
+ },
7419
+ {
7420
+ equals: "meta-llama/llama-3.1-8b-instruct-fast"
7421
+ }
7422
+ ]
6526
7423
  },
6527
7424
  context_window: 131072,
6528
7425
  prices: {
@@ -6534,31 +7431,33 @@ Compared to other leading proprietary and open-weights models Command A delivers
6534
7431
  id: "meta-llama/Llama-3.3-70B-Instruct",
6535
7432
  name: "Llama-3.3-70B-Instruct",
6536
7433
  match: {
6537
- equals: "meta-llama/llama-3.3-70b-instruct"
7434
+ or: [
7435
+ {
7436
+ equals: "meta-llama/llama-3.3-70b-instruct"
7437
+ },
7438
+ {
7439
+ equals: "meta-llama/llama-3.3-70b-instruct-fast"
7440
+ }
7441
+ ]
6538
7442
  },
6539
7443
  context_window: 131072,
6540
- prices: {
6541
- input_mtok: 0.4,
6542
- output_mtok: 0.4
6543
- }
6544
- },
6545
- {
6546
- id: "meta-llama/Llama-4-Scout-17B-16E-Instruct",
6547
- name: "Llama-4-Scout-17B-16E-Instruct",
6548
- match: {
6549
- equals: "meta-llama/llama-4-scout-17b-16e-instruct"
6550
- },
6551
- context_window: 89e4,
6552
- prices: {
6553
- input_mtok: 0.09,
6554
- output_mtok: 0.29
7444
+ prices: {
7445
+ input_mtok: 0.4,
7446
+ output_mtok: 0.4
6555
7447
  }
6556
7448
  },
6557
7449
  {
6558
7450
  id: "openai/gpt-oss-120b",
6559
7451
  name: "gpt-oss-120b",
6560
7452
  match: {
6561
- equals: "openai/gpt-oss-120b"
7453
+ or: [
7454
+ {
7455
+ equals: "openai/gpt-oss-120b"
7456
+ },
7457
+ {
7458
+ equals: "openai/gpt-oss-120b-fast"
7459
+ }
7460
+ ]
6562
7461
  },
6563
7462
  context_window: 131072,
6564
7463
  prices: {
@@ -6570,7 +7469,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6570
7469
  id: "openai/gpt-oss-20b",
6571
7470
  name: "gpt-oss-20b",
6572
7471
  match: {
6573
- equals: "openai/gpt-oss-20b"
7472
+ or: [
7473
+ {
7474
+ equals: "openai/gpt-oss-20b"
7475
+ },
7476
+ {
7477
+ equals: "openai/gpt-oss-20b-fast"
7478
+ }
7479
+ ]
6574
7480
  },
6575
7481
  context_window: 131072,
6576
7482
  prices: {
@@ -6634,7 +7540,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6634
7540
  id: "aisingapore/Gemma-SEA-LION-v4-27B-IT",
6635
7541
  name: "Gemma-SEA-LION-v4-27B-IT",
6636
7542
  match: {
6637
- equals: "aisingapore/gemma-sea-lion-v4-27b-it"
7543
+ or: [
7544
+ {
7545
+ equals: "aisingapore/gemma-sea-lion-v4-27b-it"
7546
+ },
7547
+ {
7548
+ equals: "aisingapore/gemma-sea-lion-v4-27b-it-fast"
7549
+ }
7550
+ ]
6638
7551
  },
6639
7552
  prices: {}
6640
7553
  },
@@ -6642,7 +7555,29 @@ Compared to other leading proprietary and open-weights models Command A delivers
6642
7555
  id: "aisingapore/Qwen-SEA-LION-v4-32B-IT",
6643
7556
  name: "Qwen-SEA-LION-v4-32B-IT",
6644
7557
  match: {
6645
- equals: "aisingapore/qwen-sea-lion-v4-32b-it"
7558
+ or: [
7559
+ {
7560
+ equals: "aisingapore/qwen-sea-lion-v4-32b-it"
7561
+ },
7562
+ {
7563
+ equals: "aisingapore/qwen-sea-lion-v4-32b-it-fast"
7564
+ }
7565
+ ]
7566
+ },
7567
+ prices: {}
7568
+ },
7569
+ {
7570
+ id: "allenai/Olmo-3-32B-Think",
7571
+ name: "Olmo-3-32B-Think",
7572
+ match: {
7573
+ or: [
7574
+ {
7575
+ equals: "allenai/olmo-3-32b-think"
7576
+ },
7577
+ {
7578
+ equals: "allenai/olmo-3-32b-think-fast"
7579
+ }
7580
+ ]
6646
7581
  },
6647
7582
  prices: {}
6648
7583
  },
@@ -6650,15 +7585,29 @@ Compared to other leading proprietary and open-weights models Command A delivers
6650
7585
  id: "allenai/Olmo-3-7B-Instruct",
6651
7586
  name: "Olmo-3-7B-Instruct",
6652
7587
  match: {
6653
- equals: "allenai/olmo-3-7b-instruct"
7588
+ or: [
7589
+ {
7590
+ equals: "allenai/olmo-3-7b-instruct"
7591
+ },
7592
+ {
7593
+ equals: "allenai/olmo-3-7b-instruct-fast"
7594
+ }
7595
+ ]
6654
7596
  },
6655
7597
  prices: {}
6656
7598
  },
6657
7599
  {
6658
- id: "swiss-ai/Apertus-70B-Instruct-2509",
6659
- name: "Apertus-70B-Instruct-2509",
7600
+ id: "allenai/Olmo-3-7B-Think",
7601
+ name: "Olmo-3-7B-Think",
6660
7602
  match: {
6661
- equals: "swiss-ai/apertus-70b-instruct-2509"
7603
+ or: [
7604
+ {
7605
+ equals: "allenai/olmo-3-7b-think"
7606
+ },
7607
+ {
7608
+ equals: "allenai/olmo-3-7b-think-fast"
7609
+ }
7610
+ ]
6662
7611
  },
6663
7612
  prices: {}
6664
7613
  },
@@ -6666,7 +7615,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6666
7615
  id: "swiss-ai/Apertus-8B-Instruct-2509",
6667
7616
  name: "Apertus-8B-Instruct-2509",
6668
7617
  match: {
6669
- equals: "swiss-ai/apertus-8b-instruct-2509"
7618
+ or: [
7619
+ {
7620
+ equals: "swiss-ai/apertus-8b-instruct-2509"
7621
+ },
7622
+ {
7623
+ equals: "swiss-ai/apertus-8b-instruct-2509-fast"
7624
+ }
7625
+ ]
6670
7626
  },
6671
7627
  prices: {}
6672
7628
  }
@@ -6726,7 +7682,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6726
7682
  id: "Qwen/Qwen3-32B",
6727
7683
  name: "Qwen3-32B",
6728
7684
  match: {
6729
- equals: "qwen/qwen3-32b"
7685
+ or: [
7686
+ {
7687
+ equals: "qwen/qwen3-32b"
7688
+ },
7689
+ {
7690
+ equals: "qwen/qwen3-32b-fast"
7691
+ }
7692
+ ]
6730
7693
  },
6731
7694
  context_window: 32768,
6732
7695
  prices: {
@@ -6738,7 +7701,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6738
7701
  id: "deepseek-ai/DeepSeek-R1-0528",
6739
7702
  name: "DeepSeek-R1-0528",
6740
7703
  match: {
6741
- equals: "deepseek-ai/deepseek-r1-0528"
7704
+ or: [
7705
+ {
7706
+ equals: "deepseek-ai/deepseek-r1-0528"
7707
+ },
7708
+ {
7709
+ equals: "deepseek-ai/deepseek-r1-0528-fast"
7710
+ }
7711
+ ]
6742
7712
  },
6743
7713
  context_window: 131072,
6744
7714
  prices: {
@@ -6750,7 +7720,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6750
7720
  id: "deepseek-ai/DeepSeek-R1-Distill-Llama-70B",
6751
7721
  name: "DeepSeek-R1-Distill-Llama-70B",
6752
7722
  match: {
6753
- equals: "deepseek-ai/deepseek-r1-distill-llama-70b"
7723
+ or: [
7724
+ {
7725
+ equals: "deepseek-ai/deepseek-r1-distill-llama-70b"
7726
+ },
7727
+ {
7728
+ equals: "deepseek-ai/deepseek-r1-distill-llama-70b-fast"
7729
+ }
7730
+ ]
6754
7731
  },
6755
7732
  context_window: 131072,
6756
7733
  prices: {
@@ -6758,23 +7735,18 @@ Compared to other leading proprietary and open-weights models Command A delivers
6758
7735
  output_mtok: 1.4
6759
7736
  }
6760
7737
  },
6761
- {
6762
- id: "deepseek-ai/DeepSeek-V3-0324",
6763
- name: "DeepSeek-V3-0324",
6764
- match: {
6765
- equals: "deepseek-ai/deepseek-v3-0324"
6766
- },
6767
- context_window: 131072,
6768
- prices: {
6769
- input_mtok: 3,
6770
- output_mtok: 4.5
6771
- }
6772
- },
6773
7738
  {
6774
7739
  id: "meta-llama/Llama-3.1-8B-Instruct",
6775
7740
  name: "Llama-3.1-8B-Instruct",
6776
7741
  match: {
6777
- equals: "meta-llama/llama-3.1-8b-instruct"
7742
+ or: [
7743
+ {
7744
+ equals: "meta-llama/llama-3.1-8b-instruct"
7745
+ },
7746
+ {
7747
+ equals: "meta-llama/llama-3.1-8b-instruct-fast"
7748
+ }
7749
+ ]
6778
7750
  },
6779
7751
  context_window: 16384,
6780
7752
  prices: {
@@ -6786,7 +7758,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6786
7758
  id: "meta-llama/Llama-3.3-70B-Instruct",
6787
7759
  name: "Llama-3.3-70B-Instruct",
6788
7760
  match: {
6789
- equals: "meta-llama/llama-3.3-70b-instruct"
7761
+ or: [
7762
+ {
7763
+ equals: "meta-llama/llama-3.3-70b-instruct"
7764
+ },
7765
+ {
7766
+ equals: "meta-llama/llama-3.3-70b-instruct-fast"
7767
+ }
7768
+ ]
6790
7769
  },
6791
7770
  context_window: 131072,
6792
7771
  prices: {
@@ -6795,22 +7774,36 @@ Compared to other leading proprietary and open-weights models Command A delivers
6795
7774
  }
6796
7775
  },
6797
7776
  {
6798
- id: "meta-llama/Llama-4-Maverick-17B-128E-Instruct",
6799
- name: "Llama-4-Maverick-17B-128E-Instruct",
7777
+ id: "openai/gpt-oss-120b",
7778
+ name: "gpt-oss-120b",
6800
7779
  match: {
6801
- equals: "meta-llama/llama-4-maverick-17b-128e-instruct"
7780
+ or: [
7781
+ {
7782
+ equals: "openai/gpt-oss-120b"
7783
+ },
7784
+ {
7785
+ equals: "openai/gpt-oss-120b-fast"
7786
+ }
7787
+ ]
6802
7788
  },
6803
7789
  context_window: 131072,
6804
7790
  prices: {
6805
- input_mtok: 0.63,
6806
- output_mtok: 1.8
7791
+ input_mtok: 0.22,
7792
+ output_mtok: 0.59
6807
7793
  }
6808
7794
  },
6809
7795
  {
6810
7796
  id: "tokyotech-llm/Llama-3.3-Swallow-70B-Instruct-v0.4",
6811
7797
  name: "Llama-3.3-Swallow-70B-Instruct-v0.4",
6812
7798
  match: {
6813
- equals: "tokyotech-llm/llama-3.3-swallow-70b-instruct-v0.4"
7799
+ or: [
7800
+ {
7801
+ equals: "tokyotech-llm/llama-3.3-swallow-70b-instruct-v0.4"
7802
+ },
7803
+ {
7804
+ equals: "tokyotech-llm/llama-3.3-swallow-70b-instruct-v0.4-fast"
7805
+ }
7806
+ ]
6814
7807
  },
6815
7808
  context_window: 131072,
6816
7809
  prices: {
@@ -6874,7 +7867,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6874
7867
  id: "Qwen/Qwen2.5-72B-Instruct",
6875
7868
  name: "Qwen2.5-72B-Instruct",
6876
7869
  match: {
6877
- equals: "qwen/qwen2.5-72b-instruct"
7870
+ or: [
7871
+ {
7872
+ equals: "qwen/qwen2.5-72b-instruct"
7873
+ },
7874
+ {
7875
+ equals: "qwen/qwen2.5-72b-instruct-fast"
7876
+ }
7877
+ ]
6878
7878
  },
6879
7879
  context_window: 131072,
6880
7880
  prices: {
@@ -6886,7 +7886,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6886
7886
  id: "Qwen/Qwen2.5-7B-Instruct",
6887
7887
  name: "Qwen2.5-7B-Instruct",
6888
7888
  match: {
6889
- equals: "qwen/qwen2.5-7b-instruct"
7889
+ or: [
7890
+ {
7891
+ equals: "qwen/qwen2.5-7b-instruct"
7892
+ },
7893
+ {
7894
+ equals: "qwen/qwen2.5-7b-instruct-fast"
7895
+ }
7896
+ ]
6890
7897
  },
6891
7898
  context_window: 32768,
6892
7899
  prices: {
@@ -6902,11 +7909,20 @@ Compared to other leading proprietary and open-weights models Command A delivers
6902
7909
  {
6903
7910
  equals: "qwen/qwen3-235b-a22b"
6904
7911
  },
7912
+ {
7913
+ equals: "qwen/qwen3-235b-a22b-fast"
7914
+ },
6905
7915
  {
6906
7916
  equals: "qwen/qwen3-235b-a22b-fp8"
6907
7917
  },
7918
+ {
7919
+ equals: "qwen/qwen3-235b-a22b-fp8-fast"
7920
+ },
6908
7921
  {
6909
7922
  equals: "qwen/qwen3-235b-a22b-instruct-2507"
7923
+ },
7924
+ {
7925
+ equals: "qwen/qwen3-235b-a22b-instruct-2507-fast"
6910
7926
  }
6911
7927
  ]
6912
7928
  },
@@ -6924,8 +7940,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6924
7940
  {
6925
7941
  equals: "qwen/qwen3-coder-480b-a35b-instruct"
6926
7942
  },
7943
+ {
7944
+ equals: "qwen/qwen3-coder-480b-a35b-instruct-fast"
7945
+ },
6927
7946
  {
6928
7947
  equals: "qwen/qwen3-coder-480b-a35b-instruct-fp8"
7948
+ },
7949
+ {
7950
+ equals: "qwen/qwen3-coder-480b-a35b-instruct-fp8-fast"
6929
7951
  }
6930
7952
  ]
6931
7953
  },
@@ -6939,7 +7961,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6939
7961
  id: "Qwen/Qwen3-Next-80B-A3B-Instruct",
6940
7962
  name: "Qwen3-Next-80B-A3B-Instruct",
6941
7963
  match: {
6942
- equals: "qwen/qwen3-next-80b-a3b-instruct"
7964
+ or: [
7965
+ {
7966
+ equals: "qwen/qwen3-next-80b-a3b-instruct"
7967
+ },
7968
+ {
7969
+ equals: "qwen/qwen3-next-80b-a3b-instruct-fast"
7970
+ }
7971
+ ]
6943
7972
  },
6944
7973
  context_window: 262144,
6945
7974
  prices: {
@@ -6951,7 +7980,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6951
7980
  id: "Qwen/Qwen3-Next-80B-A3B-Thinking",
6952
7981
  name: "Qwen3-Next-80B-A3B-Thinking",
6953
7982
  match: {
6954
- equals: "qwen/qwen3-next-80b-a3b-thinking"
7983
+ or: [
7984
+ {
7985
+ equals: "qwen/qwen3-next-80b-a3b-thinking"
7986
+ },
7987
+ {
7988
+ equals: "qwen/qwen3-next-80b-a3b-thinking-fast"
7989
+ }
7990
+ ]
6955
7991
  },
6956
7992
  context_window: 262144,
6957
7993
  prices: {
@@ -6967,8 +8003,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
6967
8003
  {
6968
8004
  equals: "deepcogito/cogito-671b-v2.1"
6969
8005
  },
8006
+ {
8007
+ equals: "deepcogito/cogito-671b-v2.1-fast"
8008
+ },
6970
8009
  {
6971
8010
  equals: "deepcogito/cogito-671b-v2.1-fp8"
8011
+ },
8012
+ {
8013
+ equals: "deepcogito/cogito-671b-v2.1-fp8-fast"
6972
8014
  }
6973
8015
  ]
6974
8016
  },
@@ -6978,23 +8020,18 @@ Compared to other leading proprietary and open-weights models Command A delivers
6978
8020
  output_mtok: 1.25
6979
8021
  }
6980
8022
  },
6981
- {
6982
- id: "deepcogito/cogito-v2-preview-llama-109B-MoE",
6983
- name: "cogito-v2-preview-llama-109B-MoE",
6984
- match: {
6985
- equals: "deepcogito/cogito-v2-preview-llama-109b-moe"
6986
- },
6987
- context_window: 32767,
6988
- prices: {
6989
- input_mtok: 0.18000000000000002,
6990
- output_mtok: 0.5900000000000001
6991
- }
6992
- },
6993
8023
  {
6994
8024
  id: "deepcogito/cogito-v2-preview-llama-405B",
6995
8025
  name: "cogito-v2-preview-llama-405B",
6996
8026
  match: {
6997
- equals: "deepcogito/cogito-v2-preview-llama-405b"
8027
+ or: [
8028
+ {
8029
+ equals: "deepcogito/cogito-v2-preview-llama-405b"
8030
+ },
8031
+ {
8032
+ equals: "deepcogito/cogito-v2-preview-llama-405b-fast"
8033
+ }
8034
+ ]
6998
8035
  },
6999
8036
  context_window: 32768,
7000
8037
  prices: {
@@ -7006,7 +8043,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
7006
8043
  id: "deepcogito/cogito-v2-preview-llama-70B",
7007
8044
  name: "cogito-v2-preview-llama-70B",
7008
8045
  match: {
7009
- equals: "deepcogito/cogito-v2-preview-llama-70b"
8046
+ or: [
8047
+ {
8048
+ equals: "deepcogito/cogito-v2-preview-llama-70b"
8049
+ },
8050
+ {
8051
+ equals: "deepcogito/cogito-v2-preview-llama-70b-fast"
8052
+ }
8053
+ ]
7010
8054
  },
7011
8055
  context_window: 32768,
7012
8056
  prices: {
@@ -7022,8 +8066,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
7022
8066
  {
7023
8067
  equals: "deepseek-ai/deepseek-r1"
7024
8068
  },
8069
+ {
8070
+ equals: "deepseek-ai/deepseek-r1-fast"
8071
+ },
7025
8072
  {
7026
8073
  equals: "deepseek-ai/deepseek-r1-0528"
8074
+ },
8075
+ {
8076
+ equals: "deepseek-ai/deepseek-r1-0528-fast"
7027
8077
  }
7028
8078
  ]
7029
8079
  },
@@ -7041,8 +8091,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
7041
8091
  {
7042
8092
  equals: "deepseek-ai/deepseek-v3"
7043
8093
  },
8094
+ {
8095
+ equals: "deepseek-ai/deepseek-v3-fast"
8096
+ },
7044
8097
  {
7045
8098
  equals: "deepseek-ai/deepseek-v3-0324"
8099
+ },
8100
+ {
8101
+ equals: "deepseek-ai/deepseek-v3-0324-fast"
7046
8102
  }
7047
8103
  ]
7048
8104
  },
@@ -7056,7 +8112,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
7056
8112
  id: "deepseek-ai/DeepSeek-V3.1",
7057
8113
  name: "DeepSeek-V3.1",
7058
8114
  match: {
7059
- equals: "deepseek-ai/deepseek-v3.1"
8115
+ or: [
8116
+ {
8117
+ equals: "deepseek-ai/deepseek-v3.1"
8118
+ },
8119
+ {
8120
+ equals: "deepseek-ai/deepseek-v3.1-fast"
8121
+ }
8122
+ ]
7060
8123
  },
7061
8124
  context_window: 131072,
7062
8125
  prices: {
@@ -7068,7 +8131,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
7068
8131
  id: "marin-community/marin-8b-instruct",
7069
8132
  name: "marin-8b-instruct",
7070
8133
  match: {
7071
- equals: "marin-community/marin-8b-instruct"
8134
+ or: [
8135
+ {
8136
+ equals: "marin-community/marin-8b-instruct"
8137
+ },
8138
+ {
8139
+ equals: "marin-community/marin-8b-instruct-fast"
8140
+ }
8141
+ ]
7072
8142
  },
7073
8143
  context_window: 4096,
7074
8144
  prices: {
@@ -7080,7 +8150,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
7080
8150
  id: "meta-llama/Llama-3.2-3B-Instruct",
7081
8151
  name: "Llama-3.2-3B-Instruct",
7082
8152
  match: {
7083
- equals: "meta-llama/llama-3.2-3b-instruct"
8153
+ or: [
8154
+ {
8155
+ equals: "meta-llama/llama-3.2-3b-instruct"
8156
+ },
8157
+ {
8158
+ equals: "meta-llama/llama-3.2-3b-instruct-fast"
8159
+ }
8160
+ ]
7084
8161
  },
7085
8162
  context_window: 131072,
7086
8163
  prices: {
@@ -7092,7 +8169,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
7092
8169
  id: "meta-llama/Llama-3.3-70B-Instruct",
7093
8170
  name: "Llama-3.3-70B-Instruct",
7094
8171
  match: {
7095
- equals: "meta-llama/llama-3.3-70b-instruct"
8172
+ or: [
8173
+ {
8174
+ equals: "meta-llama/llama-3.3-70b-instruct"
8175
+ },
8176
+ {
8177
+ equals: "meta-llama/llama-3.3-70b-instruct-fast"
8178
+ }
8179
+ ]
7096
8180
  },
7097
8181
  context_window: 131072,
7098
8182
  prices: {
@@ -7100,35 +8184,18 @@ Compared to other leading proprietary and open-weights models Command A delivers
7100
8184
  output_mtok: 0.88
7101
8185
  }
7102
8186
  },
7103
- {
7104
- id: "meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",
7105
- name: "Llama-4-Maverick-17B-128E-Instruct-FP8",
7106
- match: {
7107
- equals: "meta-llama/llama-4-maverick-17b-128e-instruct-fp8"
7108
- },
7109
- context_window: 1048576,
7110
- prices: {
7111
- input_mtok: 0.27,
7112
- output_mtok: 0.85
7113
- }
7114
- },
7115
- {
7116
- id: "meta-llama/Llama-4-Scout-17B-16E-Instruct",
7117
- name: "Llama-4-Scout-17B-16E-Instruct",
7118
- match: {
7119
- equals: "meta-llama/llama-4-scout-17b-16e-instruct"
7120
- },
7121
- context_window: 1048576,
7122
- prices: {
7123
- input_mtok: 0.18000000000000002,
7124
- output_mtok: 0.5900000000000001
7125
- }
7126
- },
7127
8187
  {
7128
8188
  id: "meta-llama/Meta-Llama-3-70B-Instruct",
7129
8189
  name: "Meta-Llama-3-70B-Instruct",
7130
8190
  match: {
7131
- equals: "meta-llama/meta-llama-3-70b-instruct"
8191
+ or: [
8192
+ {
8193
+ equals: "meta-llama/meta-llama-3-70b-instruct"
8194
+ },
8195
+ {
8196
+ equals: "meta-llama/meta-llama-3-70b-instruct-fast"
8197
+ }
8198
+ ]
7132
8199
  },
7133
8200
  context_window: 8192,
7134
8201
  prices: {
@@ -7144,8 +8211,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
7144
8211
  {
7145
8212
  equals: "moonshotai/kimi-k2-instruct"
7146
8213
  },
8214
+ {
8215
+ equals: "moonshotai/kimi-k2-instruct-fast"
8216
+ },
7147
8217
  {
7148
8218
  equals: "moonshotai/kimi-k2-instruct-0905"
8219
+ },
8220
+ {
8221
+ equals: "moonshotai/kimi-k2-instruct-0905-fast"
7149
8222
  }
7150
8223
  ]
7151
8224
  },
@@ -7159,7 +8232,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
7159
8232
  id: "moonshotai/Kimi-K2-Thinking",
7160
8233
  name: "Kimi-K2-Thinking",
7161
8234
  match: {
7162
- equals: "moonshotai/kimi-k2-thinking"
8235
+ or: [
8236
+ {
8237
+ equals: "moonshotai/kimi-k2-thinking"
8238
+ },
8239
+ {
8240
+ equals: "moonshotai/kimi-k2-thinking-fast"
8241
+ }
8242
+ ]
7163
8243
  },
7164
8244
  context_window: 262144,
7165
8245
  prices: {
@@ -7171,7 +8251,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
7171
8251
  id: "openai/gpt-oss-120b",
7172
8252
  name: "gpt-oss-120b",
7173
8253
  match: {
7174
- equals: "openai/gpt-oss-120b"
8254
+ or: [
8255
+ {
8256
+ equals: "openai/gpt-oss-120b"
8257
+ },
8258
+ {
8259
+ equals: "openai/gpt-oss-120b-fast"
8260
+ }
8261
+ ]
7175
8262
  },
7176
8263
  context_window: 131072,
7177
8264
  prices: {
@@ -7183,7 +8270,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
7183
8270
  id: "openai/gpt-oss-20b",
7184
8271
  name: "gpt-oss-20b",
7185
8272
  match: {
7186
- equals: "openai/gpt-oss-20b"
8273
+ or: [
8274
+ {
8275
+ equals: "openai/gpt-oss-20b"
8276
+ },
8277
+ {
8278
+ equals: "openai/gpt-oss-20b-fast"
8279
+ }
8280
+ ]
7187
8281
  },
7188
8282
  context_window: 131072,
7189
8283
  prices: {
@@ -7195,7 +8289,14 @@ Compared to other leading proprietary and open-weights models Command A delivers
7195
8289
  id: "zai-org/GLM-4.5-Air-FP8",
7196
8290
  name: "GLM-4.5-Air-FP8",
7197
8291
  match: {
7198
- equals: "zai-org/glm-4.5-air-fp8"
8292
+ or: [
8293
+ {
8294
+ equals: "zai-org/glm-4.5-air-fp8"
8295
+ },
8296
+ {
8297
+ equals: "zai-org/glm-4.5-air-fp8-fast"
8298
+ }
8299
+ ]
7199
8300
  },
7200
8301
  context_window: 131072,
7201
8302
  prices: {
@@ -8760,6 +9861,18 @@ Compared to other leading proprietary and open-weights models Command A delivers
8760
9861
  },
8761
9862
  {
8762
9863
  equals: "gpt-5.1-chat-latest"
9864
+ },
9865
+ {
9866
+ equals: "gpt-5-1"
9867
+ },
9868
+ {
9869
+ equals: "gpt-5-1-2025-11-13"
9870
+ },
9871
+ {
9872
+ equals: "gpt-5-1-codex"
9873
+ },
9874
+ {
9875
+ equals: "gpt-5-1-chat-latest"
8763
9876
  }
8764
9877
  ]
8765
9878
  },
@@ -8780,6 +9893,12 @@ Compared to other leading proprietary and open-weights models Command A delivers
8780
9893
  },
8781
9894
  {
8782
9895
  equals: "gpt-5.1-mini"
9896
+ },
9897
+ {
9898
+ equals: "gpt-5-1-codex-mini"
9899
+ },
9900
+ {
9901
+ equals: "gpt-5-1-mini"
8783
9902
  }
8784
9903
  ]
8785
9904
  },
@@ -8790,6 +9909,61 @@ Compared to other leading proprietary and open-weights models Command A delivers
8790
9909
  output_mtok: 2
8791
9910
  }
8792
9911
  },
9912
+ {
9913
+ id: "gpt-5.2",
9914
+ name: "GPT-5.2",
9915
+ description: "The best model for coding and agentic tasks across industries",
9916
+ match: {
9917
+ or: [
9918
+ {
9919
+ equals: "gpt-5.2"
9920
+ },
9921
+ {
9922
+ equals: "gpt-5.2-2025-12-11"
9923
+ },
9924
+ {
9925
+ equals: "gpt-5-2"
9926
+ },
9927
+ {
9928
+ equals: "gpt-5-2-2025-12-11"
9929
+ },
9930
+ {
9931
+ equals: "gpt-5-2-chat-latest"
9932
+ }
9933
+ ]
9934
+ },
9935
+ context_window: 4e5,
9936
+ prices: {
9937
+ input_mtok: 1.75,
9938
+ cache_read_mtok: 0.175,
9939
+ output_mtok: 14
9940
+ }
9941
+ },
9942
+ {
9943
+ id: "gpt-5.2-pro",
9944
+ description: "Version of GPT-5.2 that produces smarter and more precise responses.",
9945
+ match: {
9946
+ or: [
9947
+ {
9948
+ equals: "gpt-5.2-pro"
9949
+ },
9950
+ {
9951
+ equals: "gpt-5.2-pro-2025-12-11"
9952
+ },
9953
+ {
9954
+ equals: "gpt-5-2"
9955
+ },
9956
+ {
9957
+ equals: "gpt-5-2-pro-2025-12-11"
9958
+ }
9959
+ ]
9960
+ },
9961
+ context_window: 4e5,
9962
+ prices: {
9963
+ input_mtok: 21,
9964
+ output_mtok: 168
9965
+ }
9966
+ },
8793
9967
  {
8794
9968
  id: "gpt-realtime",
8795
9969
  match: {
@@ -9065,7 +10239,7 @@ Compared to other leading proprietary and open-weights models Command A delivers
9065
10239
  match: {
9066
10240
  equals: "text-embedding-3-large"
9067
10241
  },
9068
- context_window: 3072,
10242
+ context_window: 8192,
9069
10243
  prices: {
9070
10244
  input_mtok: 0.13
9071
10245
  }
@@ -9077,7 +10251,7 @@ Compared to other leading proprietary and open-weights models Command A delivers
9077
10251
  match: {
9078
10252
  equals: "text-embedding-3-small"
9079
10253
  },
9080
- context_window: 3072,
10254
+ context_window: 8192,
9081
10255
  prices: {
9082
10256
  input_mtok: 0.02
9083
10257
  }
@@ -9099,7 +10273,7 @@ Compared to other leading proprietary and open-weights models Command A delivers
9099
10273
  }
9100
10274
  ]
9101
10275
  },
9102
- context_window: 1536,
10276
+ context_window: 8192,
9103
10277
  prices: {
9104
10278
  input_mtok: 0.1
9105
10279
  }
@@ -13536,6 +14710,17 @@ Compared to other leading proprietary and open-weights models Command A delivers
13536
14710
  output_mtok: 15
13537
14711
  }
13538
14712
  },
14713
+ {
14714
+ id: "openai/codex-mini",
14715
+ match: {
14716
+ equals: "openai/codex-mini"
14717
+ },
14718
+ prices: {
14719
+ input_mtok: 1.5,
14720
+ cache_read_mtok: 0.375,
14721
+ output_mtok: 6
14722
+ }
14723
+ },
13539
14724
  {
13540
14725
  id: "openai/gpt-3.5-turbo",
13541
14726
  match: {
@@ -13709,6 +14894,9 @@ Compared to other leading proprietary and open-weights models Command A delivers
13709
14894
  },
13710
14895
  {
13711
14896
  equals: "openai/gpt-4o-search-preview"
14897
+ },
14898
+ {
14899
+ equals: "openai/gpt-4o-audio-preview"
13712
14900
  }
13713
14901
  ]
13714
14902
  },
@@ -13757,6 +14945,148 @@ Compared to other leading proprietary and open-weights models Command A delivers
13757
14945
  output_mtok: 18
13758
14946
  }
13759
14947
  },
14948
+ {
14949
+ id: "openai/gpt-5",
14950
+ match: {
14951
+ or: [
14952
+ {
14953
+ equals: "openai/gpt-5"
14954
+ },
14955
+ {
14956
+ equals: "openai/gpt-5-chat"
14957
+ },
14958
+ {
14959
+ equals: "openai/gpt-5-codex"
14960
+ },
14961
+ {
14962
+ equals: "openai/gpt-5.1"
14963
+ },
14964
+ {
14965
+ equals: "openai/gpt-5.1-chat"
14966
+ },
14967
+ {
14968
+ equals: "openai/gpt-5.1-codex"
14969
+ }
14970
+ ]
14971
+ },
14972
+ prices: {
14973
+ input_mtok: 1.25,
14974
+ cache_read_mtok: 0.125,
14975
+ output_mtok: 10
14976
+ }
14977
+ },
14978
+ {
14979
+ id: "openai/gpt-5-image",
14980
+ match: {
14981
+ equals: "openai/gpt-5-image"
14982
+ },
14983
+ price_comments: "Image pricing at $0.01/1k images not represented in standard schema",
14984
+ prices: {
14985
+ input_mtok: 10,
14986
+ cache_read_mtok: 1.25,
14987
+ output_mtok: 10
14988
+ }
14989
+ },
14990
+ {
14991
+ id: "openai/gpt-5-image-mini",
14992
+ match: {
14993
+ equals: "openai/gpt-5-image-mini"
14994
+ },
14995
+ price_comments: "Image pricing at $0.0025/1k images not represented in standard schema",
14996
+ prices: {
14997
+ input_mtok: 2.5,
14998
+ cache_read_mtok: 0.25,
14999
+ output_mtok: 2
15000
+ }
15001
+ },
15002
+ {
15003
+ id: "openai/gpt-5-mini",
15004
+ match: {
15005
+ equals: "openai/gpt-5-mini"
15006
+ },
15007
+ prices: {
15008
+ input_mtok: 0.25,
15009
+ cache_read_mtok: 0.025,
15010
+ output_mtok: 2
15011
+ }
15012
+ },
15013
+ {
15014
+ id: "openai/gpt-5-nano",
15015
+ match: {
15016
+ equals: "openai/gpt-5-nano"
15017
+ },
15018
+ prices: {
15019
+ input_mtok: 0.05,
15020
+ cache_read_mtok: 5e-3,
15021
+ output_mtok: 0.4
15022
+ }
15023
+ },
15024
+ {
15025
+ id: "openai/gpt-5-pro",
15026
+ match: {
15027
+ equals: "openai/gpt-5-pro"
15028
+ },
15029
+ prices: {
15030
+ input_mtok: 15,
15031
+ output_mtok: 120
15032
+ }
15033
+ },
15034
+ {
15035
+ id: "openai/gpt-5.1-codex-mini",
15036
+ match: {
15037
+ equals: "openai/gpt-5.1-codex-mini"
15038
+ },
15039
+ prices: {
15040
+ input_mtok: 0.25,
15041
+ cache_read_mtok: 0.025,
15042
+ output_mtok: 2
15043
+ }
15044
+ },
15045
+ {
15046
+ id: "openai/gpt-oss-120b",
15047
+ match: {
15048
+ or: [
15049
+ {
15050
+ equals: "openai/gpt-oss-120b"
15051
+ },
15052
+ {
15053
+ equals: "openai/gpt-oss-120b:exacto"
15054
+ }
15055
+ ]
15056
+ },
15057
+ prices: {
15058
+ input_mtok: 0.04,
15059
+ output_mtok: 0.2
15060
+ }
15061
+ },
15062
+ {
15063
+ id: "openai/gpt-oss-20b",
15064
+ match: {
15065
+ equals: "openai/gpt-oss-20b"
15066
+ },
15067
+ prices: {
15068
+ input_mtok: 0.03,
15069
+ output_mtok: 0.14
15070
+ }
15071
+ },
15072
+ {
15073
+ id: "openai/gpt-oss-20b:free",
15074
+ match: {
15075
+ equals: "openai/gpt-oss-20b:free"
15076
+ },
15077
+ prices: {}
15078
+ },
15079
+ {
15080
+ id: "openai/gpt-oss-safeguard-20b",
15081
+ match: {
15082
+ equals: "openai/gpt-oss-safeguard-20b"
15083
+ },
15084
+ prices: {
15085
+ input_mtok: 0.075,
15086
+ cache_read_mtok: 0.037,
15087
+ output_mtok: 0.3
15088
+ }
15089
+ },
13760
15090
  {
13761
15091
  id: "openai/o1",
13762
15092
  match: {
@@ -13814,6 +15144,18 @@ Compared to other leading proprietary and open-weights models Command A delivers
13814
15144
  output_mtok: 40
13815
15145
  }
13816
15146
  },
15147
+ {
15148
+ id: "openai/o3-deep-research",
15149
+ match: {
15150
+ equals: "openai/o3-deep-research"
15151
+ },
15152
+ price_comments: "Image pricing at $7.65/1k images not represented in standard schema",
15153
+ prices: {
15154
+ input_mtok: 10,
15155
+ cache_read_mtok: 2.5,
15156
+ output_mtok: 40
15157
+ }
15158
+ },
13817
15159
  {
13818
15160
  id: "openai/o3-mini",
13819
15161
  match: {
@@ -13831,6 +15173,17 @@ Compared to other leading proprietary and open-weights models Command A delivers
13831
15173
  output_mtok: 4.4
13832
15174
  }
13833
15175
  },
15176
+ {
15177
+ id: "openai/o3-pro",
15178
+ match: {
15179
+ equals: "openai/o3-pro"
15180
+ },
15181
+ price_comments: "Image pricing at $15.30/1k images not represented in standard schema",
15182
+ prices: {
15183
+ input_mtok: 20,
15184
+ output_mtok: 80
15185
+ }
15186
+ },
13834
15187
  {
13835
15188
  id: "openai/o4-mini",
13836
15189
  match: {
@@ -13848,6 +15201,18 @@ Compared to other leading proprietary and open-weights models Command A delivers
13848
15201
  output_mtok: 4.4
13849
15202
  }
13850
15203
  },
15204
+ {
15205
+ id: "openai/o4-mini-deep-research",
15206
+ match: {
15207
+ equals: "openai/o4-mini-deep-research"
15208
+ },
15209
+ price_comments: "Image pricing at $1.53/1k images not represented in standard schema",
15210
+ prices: {
15211
+ input_mtok: 2,
15212
+ cache_read_mtok: 0.5,
15213
+ output_mtok: 8
15214
+ }
15215
+ },
13851
15216
  {
13852
15217
  id: "openchat/openchat-7b",
13853
15218
  match: {
@@ -15051,6 +16416,42 @@ Compared to other leading proprietary and open-weights models Command A delivers
15051
16416
  output_mtok: 0.5
15052
16417
  }
15053
16418
  },
16419
+ {
16420
+ id: "x-ai/grok-4-fast",
16421
+ match: {
16422
+ equals: "x-ai/grok-4-fast"
16423
+ },
16424
+ context_window: 2e6,
16425
+ prices: {
16426
+ input_mtok: {
16427
+ base: 0.2,
16428
+ tiers: [
16429
+ {
16430
+ start: 128e3,
16431
+ price: 0.4
16432
+ }
16433
+ ]
16434
+ },
16435
+ cache_read_mtok: 0.05,
16436
+ output_mtok: {
16437
+ base: 0.5,
16438
+ tiers: [
16439
+ {
16440
+ start: 128e3,
16441
+ price: 1
16442
+ }
16443
+ ]
16444
+ }
16445
+ }
16446
+ },
16447
+ {
16448
+ id: "x-ai/grok-4.1-fast:free",
16449
+ match: {
16450
+ equals: "x-ai/grok-4.1-fast:free"
16451
+ },
16452
+ context_window: 2e6,
16453
+ prices: {}
16454
+ },
15054
16455
  {
15055
16456
  id: "x-ai/grok-beta",
15056
16457
  match: {
@@ -15061,6 +16462,18 @@ Compared to other leading proprietary and open-weights models Command A delivers
15061
16462
  output_mtok: 15
15062
16463
  }
15063
16464
  },
16465
+ {
16466
+ id: "x-ai/grok-code-fast-1",
16467
+ match: {
16468
+ equals: "x-ai/grok-code-fast-1"
16469
+ },
16470
+ context_window: 256e3,
16471
+ prices: {
16472
+ input_mtok: 0.2,
16473
+ cache_read_mtok: 0.02,
16474
+ output_mtok: 1.5
16475
+ }
16476
+ },
15064
16477
  {
15065
16478
  id: "x-ai/grok-vision-beta",
15066
16479
  match: {
@@ -16232,45 +17645,45 @@ Compared to other leading proprietary and open-weights models Command A delivers
16232
17645
  ]
16233
17646
  }
16234
17647
  ];
16235
- function $t(i, n) {
17648
+ function Ke(i, n) {
16236
17649
  if (n <= 0) return 0;
16237
17650
  let m = 0;
16238
17651
  const s = [...i.tiers].sort((_, h) => _.start - h.start), u = s[0]?.start ?? n, k = Math.min(n, u);
16239
17652
  m += k * i.base / 1e6;
16240
17653
  for (let _ = 0; _ < s.length; _++) {
16241
- const h = s[_], f = s[_ + 1]?.start ?? 1 / 0, B = Math.max(0, Math.min(n, f) - h.start);
17654
+ const h = s[_], q = s[_ + 1]?.start ?? 1 / 0, B = Math.max(0, Math.min(n, q) - h.start);
16242
17655
  B > 0 && (m += B * h.price / 1e6);
16243
17656
  }
16244
17657
  return m;
16245
17658
  }
16246
- function R(i, n, m) {
16247
- return i === void 0 || n === void 0 ? 0 : typeof i == "number" ? i * n / 1e6 : $t(i, n);
17659
+ function C(i, n, m) {
17660
+ return i === void 0 || n === void 0 ? 0 : typeof i == "number" ? i * n / 1e6 : Ke(i, n);
16248
17661
  }
16249
- function Wt(i, n) {
17662
+ function We(i, n) {
16250
17663
  let m = 0, s = 0;
16251
17664
  const u = i.cache_read_tokens ?? 0, k = i.cache_write_tokens ?? 0, _ = i.cache_audio_read_tokens ?? 0, h = i.output_audio_tokens ?? 0;
16252
- let f = i.input_audio_tokens ?? 0;
16253
- if (f -= _, f < 0)
17665
+ let q = i.input_audio_tokens ?? 0;
17666
+ if (q -= _, q < 0)
16254
17667
  throw new Error("cache_audio_read_tokens cannot be greater than input_audio_tokens");
16255
17668
  let B = i.input_tokens ?? 0;
16256
- if (B -= u, B -= k, B -= f, B < 0)
17669
+ if (B -= u, B -= k, B -= q, B < 0)
16257
17670
  throw new Error("Uncached text input tokens cannot be negative");
16258
17671
  let A = u;
16259
17672
  if (A -= _, A < 0)
16260
17673
  throw new Error("cache_audio_read_tokens cannot be greater than cache_read_tokens");
16261
- m += R(n.input_mtok, B), m += R(n.cache_read_mtok, A), m += R(n.cache_write_mtok, k), m += R(n.input_audio_mtok, f), m += R(n.cache_audio_read_mtok, _);
16262
- let S = i.output_tokens ?? 0;
16263
- if (S -= h, S < 0)
17674
+ m += C(n.input_mtok, B), m += C(n.cache_read_mtok, A), m += C(n.cache_write_mtok, k), m += C(n.input_audio_mtok, q), m += C(n.cache_audio_read_mtok, _);
17675
+ let P = i.output_tokens ?? 0;
17676
+ if (P -= h, P < 0)
16264
17677
  throw new Error("output_audio_tokens cannot be greater than output_tokens");
16265
- s += R(n.output_mtok, S), s += R(n.output_audio_mtok, i.output_audio_tokens);
16266
- let T = m + s;
16267
- return n.requests_kcount !== void 0 && (T += n.requests_kcount / 1e3), {
17678
+ s += C(n.output_mtok, P), s += C(n.output_audio_mtok, i.output_audio_tokens);
17679
+ let S = m + s;
17680
+ return n.requests_kcount !== void 0 && (S += n.requests_kcount / 1e3), {
16268
17681
  input_price: m,
16269
17682
  output_price: s,
16270
- total_price: T
17683
+ total_price: S
16271
17684
  };
16272
17685
  }
16273
- function Ut(i, n) {
17686
+ function Ue(i, n) {
16274
17687
  if (!Array.isArray(i.prices))
16275
17688
  return i.prices;
16276
17689
  for (let m = i.prices.length - 1; m >= 0; m--) {
@@ -16291,41 +17704,41 @@ function Ut(i, n) {
16291
17704
  }
16292
17705
  return i.prices[0].prices;
16293
17706
  }
16294
- function N(i, n) {
16295
- return "or" in i ? i.or.some((m) => N(m, n)) : "and" in i ? i.and.every((m) => N(m, n)) : "equals" in i ? n === i.equals : "starts_with" in i ? n.startsWith(i.starts_with) : "ends_with" in i ? n.endsWith(i.ends_with) : "contains" in i ? n.includes(i.contains) : "regex" in i ? new RegExp(i.regex).test(n) : !1;
17707
+ function E(i, n) {
17708
+ return "or" in i ? i.or.some((m) => E(m, n)) : "and" in i ? i.and.every((m) => E(m, n)) : "equals" in i ? n === i.equals : "starts_with" in i ? n.startsWith(i.starts_with) : "ends_with" in i ? n.endsWith(i.ends_with) : "contains" in i ? n.includes(i.contains) : "regex" in i ? new RegExp(i.regex).test(n) : !1;
16296
17709
  }
16297
- function Yt(i, n) {
17710
+ function Ye(i, n) {
16298
17711
  const m = n.toLowerCase().trim(), s = i.find((u) => u.id === m);
16299
- return s || i.find((u) => u.provider_match && N(u.provider_match, m));
17712
+ return s || i.find((u) => u.provider_match && E(u.provider_match, m));
16300
17713
  }
16301
- function Jt(i, { modelId: n, providerApiUrl: m, providerId: s }) {
17714
+ function Je(i, { modelId: n, providerApiUrl: m, providerId: s }) {
16302
17715
  if (s)
16303
- return Yt(i, s);
17716
+ return Ye(i, s);
16304
17717
  if (m)
16305
17718
  return i.find((u) => new RegExp(u.api_pattern).test(m));
16306
17719
  if (n)
16307
- return i.find((u) => u.model_match && N(u.model_match, n));
17720
+ return i.find((u) => u.model_match && E(u.model_match, n));
16308
17721
  }
16309
- function Zt(i, n) {
16310
- return i.find((m) => N(m.match, n));
17722
+ function Ze(i, n) {
17723
+ return i.find((m) => E(m.match, n));
16311
17724
  }
16312
- let Xt = it;
16313
- Promise.resolve(it);
16314
- function te(i, n, m) {
16315
- const s = n.toLowerCase().trim(), u = m?.provider ?? Jt(Xt, { modelId: s, providerApiUrl: m?.providerApiUrl, providerId: m?.providerId });
17725
+ let Xe = ie;
17726
+ Promise.resolve(ie);
17727
+ function et(i, n, m) {
17728
+ const s = n.toLowerCase().trim(), u = m?.provider ?? Je(Xe, { modelId: s, providerApiUrl: m?.providerApiUrl, providerId: m?.providerId });
16316
17729
  if (!u) return null;
16317
- const k = Zt(u.models, s);
17730
+ const k = Ze(u.models, s);
16318
17731
  if (!k) return null;
16319
- const _ = m?.timestamp ?? /* @__PURE__ */ new Date(), h = Ut(k, _), f = Wt(i, h);
17732
+ const _ = m?.timestamp ?? /* @__PURE__ */ new Date(), h = Ue(k, _), q = We(i, h);
16320
17733
  return {
16321
17734
  auto_update_timestamp: void 0,
16322
17735
  model: k,
16323
17736
  model_price: h,
16324
17737
  provider: u,
16325
- ...f
17738
+ ...q
16326
17739
  };
16327
17740
  }
16328
- const b = dt(Gt(process.argv)).scriptName("genai-prices").command(
17741
+ const f = de(Ge(process.argv)).scriptName("genai-prices").command(
16329
17742
  "list [provider]",
16330
17743
  "List providers and models",
16331
17744
  (i) => i.positional("provider", { describe: "Provider ID to filter", type: "string" })
@@ -16334,12 +17747,12 @@ const b = dt(Gt(process.argv)).scriptName("genai-prices").command(
16334
17747
  "Calculate price",
16335
17748
  (i) => i.positional("model", { array: !0, describe: "Model(s) (optionally provider:model)", type: "string" }).option("input-tokens", { type: "number" }).option("cache-write-tokens", { type: "number" }).option("cache-read-tokens", { type: "number" }).option("output-tokens", { type: "number" }).option("input-audio-tokens", { type: "number" }).option("cache-audio-read-tokens", { type: "number" }).option("output-audio-tokens", { type: "number" }).option("requests", { type: "number" }).option("provider", { type: "string" }).option("auto-update", { default: !1, type: "boolean" }).option("timestamp", { describe: "RFC3339 timestamp", type: "string" })
16336
17749
  ).option("auto-update", { describe: "Enable auto-update from GitHub", type: "boolean" }).option("input-tokens", { type: "number" }).option("cache-write-tokens", { type: "number" }).option("cache-read-tokens", { type: "number" }).option("output-tokens", { type: "number" }).option("input-audio-tokens", { type: "number" }).option("cache-audio-read-tokens", { type: "number" }).option("output-audio-tokens", { type: "number" }).option("requests", { type: "number" }).option("provider", { type: "string" }).option("timestamp", { describe: "RFC3339 timestamp", type: "string" }).version("0.1.0").help().parseSync();
16337
- function ee() {
16338
- if (b._[0] === "list") {
16339
- const m = it;
16340
- if (b.provider) {
16341
- const s = m.find((u) => u.id === b.provider);
16342
- s || (console.error(`Provider ${b.provider} not found.`), process.exit(1)), console.log(`${s.name}: (${s.models.length} models)`);
17750
+ function tt() {
17751
+ if (f._[0] === "list") {
17752
+ const m = ie;
17753
+ if (f.provider) {
17754
+ const s = m.find((u) => u.id === f.provider);
17755
+ s || (console.error(`Provider ${f.provider} not found.`), process.exit(1)), console.log(`${s.name}: (${s.models.length} models)`);
16343
17756
  for (const u of s.models)
16344
17757
  console.log(` ${s.id}:${u.id}${u.name ? ": " + u.name : ""}`);
16345
17758
  } else
@@ -16350,46 +17763,46 @@ function ee() {
16350
17763
  }
16351
17764
  process.exit(0);
16352
17765
  }
16353
- const n = b._[0] === "calc" ? Array.isArray(b.model) ? b.model : [b.model] : b._.filter((m) => typeof m == "string");
17766
+ const n = f._[0] === "calc" ? Array.isArray(f.model) ? f.model : [f.model] : f._.filter((m) => typeof m == "string");
16354
17767
  if (n.length > 0) {
16355
17768
  const m = {
16356
- cache_audio_read_tokens: b["cache-audio-read-tokens"] !== void 0 ? Number(b["cache-audio-read-tokens"]) : void 0,
16357
- cache_read_tokens: b["cache-read-tokens"] !== void 0 ? Number(b["cache-read-tokens"]) : void 0,
16358
- cache_write_tokens: b["cache-write-tokens"] !== void 0 ? Number(b["cache-write-tokens"]) : void 0,
16359
- input_audio_tokens: b["input-audio-tokens"] !== void 0 ? Number(b["input-audio-tokens"]) : void 0,
16360
- input_tokens: b["input-tokens"] !== void 0 ? Number(b["input-tokens"]) : void 0,
16361
- output_audio_tokens: b["output-audio-tokens"] !== void 0 ? Number(b["output-audio-tokens"]) : void 0,
16362
- output_tokens: b["output-tokens"] !== void 0 ? Number(b["output-tokens"]) : void 0,
16363
- requests: b.requests !== void 0 ? Number(b.requests) : void 0
16364
- }, s = b.timestamp ? new Date(String(b.timestamp)) : void 0;
17769
+ cache_audio_read_tokens: f["cache-audio-read-tokens"] !== void 0 ? Number(f["cache-audio-read-tokens"]) : void 0,
17770
+ cache_read_tokens: f["cache-read-tokens"] !== void 0 ? Number(f["cache-read-tokens"]) : void 0,
17771
+ cache_write_tokens: f["cache-write-tokens"] !== void 0 ? Number(f["cache-write-tokens"]) : void 0,
17772
+ input_audio_tokens: f["input-audio-tokens"] !== void 0 ? Number(f["input-audio-tokens"]) : void 0,
17773
+ input_tokens: f["input-tokens"] !== void 0 ? Number(f["input-tokens"]) : void 0,
17774
+ output_audio_tokens: f["output-audio-tokens"] !== void 0 ? Number(f["output-audio-tokens"]) : void 0,
17775
+ output_tokens: f["output-tokens"] !== void 0 ? Number(f["output-tokens"]) : void 0,
17776
+ requests: f.requests !== void 0 ? Number(f.requests) : void 0
17777
+ }, s = f.timestamp ? new Date(String(f.timestamp)) : void 0;
16365
17778
  let u = !1;
16366
17779
  for (const k of n) {
16367
17780
  let _, h = k;
16368
17781
  h.includes(":") && ([_, h] = h.split(":", 2));
16369
17782
  try {
16370
- const f = te(m, h, { providerId: _, timestamp: s });
16371
- if (!f) {
17783
+ const q = et(m, h, { providerId: _, timestamp: s });
17784
+ if (!q) {
16372
17785
  u = !0, console.error(`No price found for model ${k}`);
16373
17786
  continue;
16374
17787
  }
16375
- const B = f.model.context_window, A = [
16376
- ["Provider", f.provider.name],
16377
- ["Model", f.model.name ?? f.model.id],
16378
- ["Model Prices", JSON.stringify(f.model_price)],
17788
+ const B = q.model.context_window, A = [
17789
+ ["Provider", q.provider.name],
17790
+ ["Model", q.model.name ?? q.model.id],
17791
+ ["Model Prices", JSON.stringify(q.model_price)],
16379
17792
  ["Context Window", B !== void 0 ? B.toLocaleString() : void 0],
16380
- ["Total Price", `$${f.total_price}`],
16381
- ["Input Price", `$${f.input_price}`],
16382
- ["Output Price", `$${f.output_price}`]
17793
+ ["Total Price", `$${q.total_price}`],
17794
+ ["Input Price", `$${q.input_price}`],
17795
+ ["Output Price", `$${q.output_price}`]
16383
17796
  ];
16384
- for (const [S, T] of A)
16385
- T !== void 0 && console.log(`${S.padStart(14)}: ${T}`);
17797
+ for (const [P, S] of A)
17798
+ S !== void 0 && console.log(`${P.padStart(14)}: ${S}`);
16386
17799
  console.log("");
16387
- } catch (f) {
16388
- u = !0, f instanceof Error && console.error(`Error for model ${k}:`, f.message);
17800
+ } catch (q) {
17801
+ u = !0, q instanceof Error && console.error(`Error for model ${k}:`, q.message);
16389
17802
  }
16390
17803
  }
16391
17804
  process.exit(u ? 1 : 0);
16392
17805
  }
16393
- dt().showHelp(), process.exit(1);
17806
+ de().showHelp(), process.exit(1);
16394
17807
  }
16395
- ee();
17808
+ tt();