ada-agent 0.1.0 → 0.3.0

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.
Files changed (36) hide show
  1. package/README.md +262 -256
  2. package/docs/architecture.md +38 -14
  3. package/docs/cloudflare.md +81 -0
  4. package/docs/connectors.md +2 -1
  5. package/docs/integrations.md +4 -1
  6. package/package.json +4 -2
  7. package/skills/aesthetic-direction/SKILL.md +24 -24
  8. package/skills/color-palette/SKILL.md +24 -24
  9. package/skills/component-library/SKILL.md +23 -23
  10. package/skills/dark-mode/SKILL.md +24 -24
  11. package/skills/dashboard-ui/SKILL.md +23 -23
  12. package/skills/design-system/SKILL.md +24 -24
  13. package/skills/design-tokens/SKILL.md +24 -24
  14. package/skills/empty-states/SKILL.md +23 -23
  15. package/skills/hero-section/SKILL.md +23 -23
  16. package/skills/micro-interactions/SKILL.md +23 -23
  17. package/skills/motion-design/SKILL.md +23 -23
  18. package/skills/page-transitions/SKILL.md +23 -23
  19. package/skills/pricing-page/SKILL.md +23 -23
  20. package/skills/scroll-animation/SKILL.md +23 -23
  21. package/skills/skeleton-loader/SKILL.md +23 -23
  22. package/skills/tailwind-theme/SKILL.md +24 -24
  23. package/skills/typography/SKILL.md +24 -24
  24. package/skills/ui-polish/SKILL.md +24 -24
  25. package/skills/ui-review/SKILL.md +24 -24
  26. package/skills/web-fonts/SKILL.md +24 -24
  27. package/src/client/autostart.ts +93 -0
  28. package/src/client/catalog.json +1 -0
  29. package/src/client/cli.ts +23 -1
  30. package/src/client/models-dev.ts +57 -3
  31. package/src/selfcheck.ts +404 -364
  32. package/src/server/config.ts +7 -0
  33. package/src/server/providers/openai-compat.ts +4 -2
  34. package/src/server/providers/registry.ts +1 -0
  35. package/src/server/router.ts +5 -1
  36. package/src/shared/types.ts +1 -0
@@ -0,0 +1,93 @@
1
+ // Auto-start the ada backend if it isn't reachable. So new users running `ada` for the first time
2
+ // don't have to also remember "start ada-server in another terminal." If the configured backend URL
3
+ // is remote (not localhost), we DON'T spawn anything — the user clearly meant to point at a remote.
4
+ // The spawned child is killed when this process exits.
5
+
6
+ import { spawn } from "node:child_process";
7
+ import { resolve } from "node:path";
8
+ import { fileURLToPath } from "node:url";
9
+
10
+ const LOCAL_HOSTS = new Set(["localhost", "127.0.0.1", "0.0.0.0", "::1", "[::1]"]);
11
+
12
+ /** True if the backend URL points at this machine — the only case we auto-spawn for. */
13
+ export function isLocalBackend(backendUrl: string): boolean {
14
+ try {
15
+ return LOCAL_HOSTS.has(new URL(backendUrl).hostname);
16
+ } catch {
17
+ return false;
18
+ }
19
+ }
20
+
21
+ /** Probe the backend's /health. The URL passed in is `<base>/v1`; /health is at the base, not /v1. */
22
+ export function healthUrl(backendUrl: string): string {
23
+ try {
24
+ const u = new URL(backendUrl);
25
+ u.pathname = "/health";
26
+ u.search = "";
27
+ return u.toString();
28
+ } catch {
29
+ return `${backendUrl.replace(/\/+$/, "").replace(/\/v\d+$/, "")}/health`;
30
+ }
31
+ }
32
+
33
+ async function probe(url: string, timeoutMs = 800): Promise<boolean> {
34
+ try {
35
+ const res = await fetch(url, { signal: AbortSignal.timeout(timeoutMs) });
36
+ return res.ok;
37
+ } catch {
38
+ return false;
39
+ }
40
+ }
41
+
42
+ /** Resolved path to bin/ada-server.mjs (sibling of bin/ada.mjs, packaged in the npm tarball). */
43
+ function serverBin(): string {
44
+ return resolve(fileURLToPath(import.meta.url), "..", "..", "..", "bin", "ada-server.mjs");
45
+ }
46
+
47
+ /**
48
+ * If the backend isn't responding (and the URL is local), spawn `ada-server` as a child process and
49
+ * wait up to `waitMs` for /health to come up. Returns `"running"` if already alive, `"started"` if
50
+ * we spawned it, `"remote"` if the URL is remote (skipped), or `"failed"` if it didn't come up in
51
+ * time. Sets `process.on(...)` handlers so the child dies with us.
52
+ */
53
+ export async function ensureBackend(backendUrl: string, opts?: { quiet?: boolean; waitMs?: number }): Promise<"running" | "started" | "remote" | "failed"> {
54
+ const probeUrl = healthUrl(backendUrl);
55
+ if (await probe(probeUrl)) return "running";
56
+ if (!isLocalBackend(backendUrl)) return "remote";
57
+
58
+ if (!opts?.quiet) process.stderr.write("\x1b[2mstarting ada-server…\x1b[0m ");
59
+ const child = spawn(process.execPath, [serverBin()], { stdio: ["ignore", "ignore", "ignore"], detached: false });
60
+ child.unref(); // don't keep parent alive once parent's own work finishes
61
+ const killChild = (): void => {
62
+ try {
63
+ if (!child.killed) child.kill();
64
+ } catch {
65
+ /* ignore */
66
+ }
67
+ };
68
+ process.once("exit", killChild);
69
+ process.once("SIGINT", () => {
70
+ killChild();
71
+ process.exit(130);
72
+ });
73
+ process.once("SIGTERM", () => {
74
+ killChild();
75
+ process.exit(143);
76
+ });
77
+ child.once("error", () => {
78
+ /* surfaced via the probe loop's timeout */
79
+ });
80
+
81
+ const deadline = Date.now() + (opts?.waitMs ?? 5000);
82
+ while (Date.now() < deadline) {
83
+ await new Promise((r) => setTimeout(r, 150));
84
+ if (await probe(probeUrl, 400)) {
85
+ if (!opts?.quiet) process.stderr.write("\x1b[32mok\x1b[0m\n");
86
+ return "started";
87
+ }
88
+ if (child.exitCode != null) break; // child died — no point waiting more
89
+ }
90
+ if (!opts?.quiet) process.stderr.write("\x1b[31mfailed\x1b[0m\n");
91
+ killChild();
92
+ return "failed";
93
+ }
@@ -0,0 +1 @@
1
+ {"_note":"GENERATED from models.dev — do not edit by hand; run `npm run catalog:refresh`","providers":{"anthropic":{"name":"Anthropic","npm":"@ai-sdk/anthropic","models":{"claude-opus-4-5":{"name":"Claude Opus 4.5 (latest)","context":200000,"output":64000,"in":5,"out":25,"reasoning":true,"cacheRead":0.5,"toolCall":true},"claude-haiku-4-5-20251001":{"name":"Claude Haiku 4.5","context":200000,"output":64000,"in":1,"out":5,"reasoning":true,"cacheRead":0.1,"toolCall":true},"claude-opus-4-0":{"name":"Claude Opus 4 (latest)","context":200000,"output":32000,"in":15,"out":75,"reasoning":true,"cacheRead":1.5,"toolCall":true},"claude-3-opus-20240229":{"name":"Claude Opus 3","context":200000,"output":4096,"in":15,"out":75,"reasoning":false,"cacheRead":1.5,"toolCall":true},"claude-opus-4-1-20250805":{"name":"Claude Opus 4.1","context":200000,"output":32000,"in":15,"out":75,"reasoning":true,"cacheRead":1.5,"toolCall":true},"claude-sonnet-4-5":{"name":"Claude Sonnet 4.5 (latest)","context":200000,"output":64000,"in":3,"out":15,"reasoning":true,"cacheRead":0.3,"toolCall":true},"claude-opus-4-7":{"name":"Claude Opus 4.7","context":1000000,"output":128000,"in":5,"out":25,"reasoning":true,"cacheRead":0.5,"toolCall":true},"claude-opus-4-5-20251101":{"name":"Claude Opus 4.5","context":200000,"output":64000,"in":5,"out":25,"reasoning":true,"cacheRead":0.5,"toolCall":true},"claude-3-5-sonnet-20241022":{"name":"Claude Sonnet 3.5 v2","context":200000,"output":8192,"in":3,"out":15,"reasoning":false,"cacheRead":0.3,"toolCall":true},"claude-opus-4-8":{"name":"Claude Opus 4.8","context":1000000,"output":128000,"in":5,"out":25,"reasoning":true,"cacheRead":0.5,"toolCall":true},"claude-opus-4-20250514":{"name":"Claude Opus 4","context":200000,"output":32000,"in":15,"out":75,"reasoning":true,"cacheRead":1.5,"toolCall":true},"claude-3-5-sonnet-20240620":{"name":"Claude Sonnet 3.5","context":200000,"output":8192,"in":3,"out":15,"reasoning":false,"cacheRead":0.3,"toolCall":true},"claude-sonnet-4-20250514":{"name":"Claude Sonnet 4","context":200000,"output":64000,"in":3,"out":15,"reasoning":true,"cacheRead":0.3,"toolCall":true},"claude-opus-4-1":{"name":"Claude Opus 4.1 (latest)","context":200000,"output":32000,"in":15,"out":75,"reasoning":true,"cacheRead":1.5,"toolCall":true},"claude-3-haiku-20240307":{"name":"Claude Haiku 3","context":200000,"output":4096,"in":0.25,"out":1.25,"reasoning":false,"cacheRead":0.03,"toolCall":true},"claude-fable-5":{"name":"Claude Fable 5","context":1000000,"output":128000,"in":10,"out":50,"reasoning":true,"cacheRead":1,"toolCall":true},"claude-sonnet-4-0":{"name":"Claude Sonnet 4 (latest)","context":200000,"output":64000,"in":3,"out":15,"reasoning":true,"cacheRead":0.3,"toolCall":true},"claude-3-7-sonnet-20250219":{"name":"Claude Sonnet 3.7","context":200000,"output":64000,"in":3,"out":15,"reasoning":true,"cacheRead":0.3,"toolCall":true},"claude-haiku-4-5":{"name":"Claude Haiku 4.5 (latest)","context":200000,"output":64000,"in":1,"out":5,"reasoning":true,"cacheRead":0.1,"toolCall":true},"claude-opus-4-6":{"name":"Claude Opus 4.6","context":1000000,"output":128000,"in":5,"out":25,"reasoning":true,"cacheRead":0.5,"toolCall":true},"claude-sonnet-4-5-20250929":{"name":"Claude Sonnet 4.5","context":200000,"output":64000,"in":3,"out":15,"reasoning":true,"cacheRead":0.3,"toolCall":true},"claude-3-sonnet-20240229":{"name":"Claude Sonnet 3","context":200000,"output":4096,"in":3,"out":15,"reasoning":false,"cacheRead":0.3,"toolCall":true},"claude-sonnet-4-6":{"name":"Claude Sonnet 4.6","context":1000000,"output":64000,"in":3,"out":15,"reasoning":true,"cacheRead":0.3,"toolCall":true}}},"openai":{"name":"OpenAI","npm":"@ai-sdk/openai","models":{"o3":{"name":"o3","context":200000,"output":100000,"in":2,"out":8,"reasoning":true,"cacheRead":0.5,"toolCall":true},"text-embedding-3-large":{"name":"text-embedding-3-large","context":8191,"output":3072,"in":0.13,"out":0,"reasoning":false,"toolCall":false},"gpt-5.2-pro":{"name":"GPT-5.2 Pro","context":400000,"output":128000,"in":21,"out":168,"reasoning":true,"toolCall":true},"gpt-5":{"name":"GPT-5","context":400000,"output":128000,"in":1.25,"out":10,"reasoning":true,"cacheRead":0.125,"toolCall":true},"gpt-3.5-turbo":{"name":"GPT-3.5-turbo","context":16385,"output":4096,"in":0.5,"out":1.5,"reasoning":false,"cacheRead":0,"toolCall":false},"gpt-5-pro":{"name":"GPT-5 Pro","context":400000,"output":272000,"in":15,"out":120,"reasoning":true,"toolCall":true},"gpt-4o":{"name":"GPT-4o","context":128000,"output":16384,"in":2.5,"out":10,"reasoning":false,"cacheRead":1.25,"toolCall":true},"gpt-4":{"name":"GPT-4","context":8192,"output":8192,"in":30,"out":60,"reasoning":false,"toolCall":true},"o4-mini":{"name":"o4-mini","context":200000,"output":100000,"in":1.1,"out":4.4,"reasoning":true,"cacheRead":0.275,"toolCall":true},"o3-pro":{"name":"o3-pro","context":200000,"output":100000,"in":20,"out":80,"reasoning":true,"toolCall":true},"chatgpt-image-latest":{"name":"chatgpt-image-latest","context":0,"output":0,"in":null,"out":null,"reasoning":false,"toolCall":false},"gpt-4o-2024-05-13":{"name":"GPT-4o (2024-05-13)","context":128000,"output":4096,"in":5,"out":15,"reasoning":false,"toolCall":true},"gpt-5.4-nano":{"name":"GPT-5.4 nano","context":400000,"output":128000,"in":0.2,"out":1.25,"reasoning":true,"cacheRead":0.02,"toolCall":true},"gpt-5-chat-latest":{"name":"GPT-5 Chat (latest)","context":400000,"output":128000,"in":1.25,"out":10,"reasoning":true,"cacheRead":0.125,"toolCall":false},"gpt-5.1-codex":{"name":"GPT-5.1 Codex","context":400000,"output":128000,"in":1.25,"out":10,"reasoning":true,"cacheRead":0.125,"toolCall":true},"gpt-5.3-codex-spark":{"name":"GPT-5.3 Codex Spark","context":128000,"output":32000,"in":1.75,"out":14,"reasoning":true,"cacheRead":0.175,"toolCall":true},"gpt-5.1-codex-max":{"name":"GPT-5.1 Codex Max","context":400000,"output":128000,"in":1.25,"out":10,"reasoning":true,"cacheRead":0.125,"toolCall":true},"gpt-5.3-chat-latest":{"name":"GPT-5.3 Chat (latest)","context":128000,"output":16384,"in":1.75,"out":14,"reasoning":false,"cacheRead":0.175,"toolCall":true},"gpt-4o-2024-08-06":{"name":"GPT-4o (2024-08-06)","context":128000,"output":16384,"in":2.5,"out":10,"reasoning":false,"cacheRead":1.25,"toolCall":true},"text-embedding-ada-002":{"name":"text-embedding-ada-002","context":8192,"output":1536,"in":0.1,"out":0,"reasoning":false,"toolCall":false},"o3-mini":{"name":"o3-mini","context":200000,"output":100000,"in":1.1,"out":4.4,"reasoning":true,"cacheRead":0.55,"toolCall":true},"gpt-5.2":{"name":"GPT-5.2","context":400000,"output":128000,"in":1.75,"out":14,"reasoning":true,"cacheRead":0.175,"toolCall":true},"gpt-5.3-codex":{"name":"GPT-5.3 Codex","context":400000,"output":128000,"in":1.75,"out":14,"reasoning":true,"cacheRead":0.175,"toolCall":true},"text-embedding-3-small":{"name":"text-embedding-3-small","context":8191,"output":1536,"in":0.02,"out":0,"reasoning":false,"toolCall":false},"gpt-5.1-codex-mini":{"name":"GPT-5.1 Codex mini","context":400000,"output":128000,"in":0.25,"out":2,"reasoning":true,"cacheRead":0.025,"toolCall":true},"gpt-5.1-chat-latest":{"name":"GPT-5.1 Chat","context":128000,"output":16384,"in":1.25,"out":10,"reasoning":true,"cacheRead":0.125,"toolCall":true},"gpt-5.2-chat-latest":{"name":"GPT-5.2 Chat","context":128000,"output":16384,"in":1.75,"out":14,"reasoning":true,"cacheRead":0.175,"toolCall":true},"o4-mini-deep-research":{"name":"o4-mini-deep-research","context":200000,"output":100000,"in":2,"out":8,"reasoning":true,"cacheRead":0.5,"toolCall":true},"gpt-image-1.5":{"name":"gpt-image-1.5","context":0,"output":0,"in":null,"out":null,"reasoning":false,"toolCall":false},"gpt-4.1-nano":{"name":"GPT-4.1 nano","context":1047576,"output":32768,"in":0.1,"out":0.4,"reasoning":false,"cacheRead":0.025,"toolCall":true},"gpt-4o-2024-11-20":{"name":"GPT-4o (2024-11-20)","context":128000,"output":16384,"in":2.5,"out":10,"reasoning":false,"cacheRead":1.25,"toolCall":true},"o1":{"name":"o1","context":200000,"output":100000,"in":15,"out":60,"reasoning":true,"cacheRead":7.5,"toolCall":true},"o1-pro":{"name":"o1-pro","context":200000,"output":100000,"in":150,"out":600,"reasoning":true,"toolCall":true},"gpt-5.4":{"name":"GPT-5.4","context":1050000,"output":128000,"in":2.5,"out":15,"reasoning":true,"cacheRead":0.25,"toolCall":true},"gpt-5.4-mini":{"name":"GPT-5.4 mini","context":400000,"output":128000,"in":0.75,"out":4.5,"reasoning":true,"cacheRead":0.075,"toolCall":true},"gpt-4.1":{"name":"GPT-4.1","context":1047576,"output":32768,"in":2,"out":8,"reasoning":false,"cacheRead":0.5,"toolCall":true},"o3-deep-research":{"name":"o3-deep-research","context":200000,"output":100000,"in":10,"out":40,"reasoning":true,"cacheRead":2.5,"toolCall":true},"gpt-5-mini":{"name":"GPT-5 Mini","context":400000,"output":128000,"in":0.25,"out":2,"reasoning":true,"cacheRead":0.025,"toolCall":true},"gpt-image-1":{"name":"gpt-image-1","context":0,"output":0,"in":null,"out":null,"reasoning":false,"toolCall":false},"gpt-4.1-mini":{"name":"GPT-4.1 mini","context":1047576,"output":32768,"in":0.4,"out":1.6,"reasoning":false,"cacheRead":0.1,"toolCall":true},"gpt-4-turbo":{"name":"GPT-4 Turbo","context":128000,"output":4096,"in":10,"out":30,"reasoning":false,"toolCall":true},"gpt-image-1-mini":{"name":"gpt-image-1-mini","context":0,"output":0,"in":null,"out":null,"reasoning":false,"toolCall":false},"gpt-5-nano":{"name":"GPT-5 Nano","context":400000,"output":128000,"in":0.05,"out":0.4,"reasoning":true,"cacheRead":0.005,"toolCall":true},"gpt-5.4-pro":{"name":"GPT-5.4 Pro","context":1050000,"output":128000,"in":30,"out":180,"reasoning":true,"toolCall":true},"gpt-5.5-pro":{"name":"GPT-5.5 Pro","context":1050000,"output":128000,"in":30,"out":180,"reasoning":true,"toolCall":true},"gpt-4o-mini":{"name":"GPT-4o mini","context":128000,"output":16384,"in":0.15,"out":0.6,"reasoning":false,"cacheRead":0.075,"toolCall":true},"gpt-5-codex":{"name":"GPT-5-Codex","context":400000,"output":128000,"in":1.25,"out":10,"reasoning":true,"cacheRead":0.125,"toolCall":true},"gpt-5.2-codex":{"name":"GPT-5.2 Codex","context":400000,"output":128000,"in":1.75,"out":14,"reasoning":true,"cacheRead":0.175,"toolCall":true},"gpt-image-2":{"name":"gpt-image-2","context":0,"output":0,"in":5,"out":30,"reasoning":false,"cacheRead":1.25,"toolCall":false},"gpt-5.1":{"name":"GPT-5.1","context":400000,"output":128000,"in":1.25,"out":10,"reasoning":true,"cacheRead":0.125,"toolCall":true},"gpt-5.5":{"name":"GPT-5.5","context":1050000,"output":128000,"in":5,"out":30,"reasoning":true,"cacheRead":0.5,"toolCall":true}}},"google":{"name":"Google","npm":"@ai-sdk/google","models":{"gemini-3.1-flash-lite":{"name":"Gemini 3.1 Flash Lite","context":1048576,"output":65536,"in":0.25,"out":1.5,"reasoning":true,"cacheRead":0.025,"toolCall":true},"gemini-2.5-flash-preview-tts":{"name":"Gemini 2.5 Flash Preview TTS","context":8192,"output":16384,"in":0.5,"out":10,"reasoning":false,"toolCall":false},"gemini-2.5-pro":{"name":"Gemini 2.5 Pro","context":1048576,"output":65536,"in":1.25,"out":10,"reasoning":true,"cacheRead":0.125,"toolCall":true},"gemini-2.5-flash":{"name":"Gemini 2.5 Flash","context":1048576,"output":65536,"in":0.3,"out":2.5,"reasoning":true,"cacheRead":0.03,"toolCall":true},"gemini-3.5-flash":{"name":"Gemini 3.5 Flash","context":1048576,"output":65536,"in":1.5,"out":9,"reasoning":true,"cacheRead":0.15,"toolCall":true},"gemma-4-31b-it":{"name":"Gemma 4 31B IT","context":262144,"output":32768,"in":null,"out":null,"reasoning":true,"toolCall":true},"gemini-2.0-flash":{"name":"Gemini 2.0 Flash","context":1048576,"output":8192,"in":0.1,"out":0.4,"reasoning":false,"cacheRead":0.025,"toolCall":true},"gemini-embedding-001":{"name":"Gemini Embedding 001","context":2048,"output":1,"in":0.15,"out":0,"reasoning":false,"toolCall":false},"gemini-3.1-pro-preview-customtools":{"name":"Gemini 3.1 Pro Preview Custom Tools","context":1048576,"output":65536,"in":2,"out":12,"reasoning":true,"cacheRead":0.2,"toolCall":true},"gemini-flash-lite-latest":{"name":"Gemini Flash-Lite Latest","context":1048576,"output":65536,"in":0.1,"out":0.4,"reasoning":true,"cacheRead":0.025,"toolCall":true},"gemini-3-pro-image-preview":{"name":"Nano Banana Pro","context":131072,"output":32768,"in":2,"out":120,"reasoning":true,"toolCall":false},"gemini-2.5-flash-image":{"name":"Nano Banana","context":32768,"output":32768,"in":0.3,"out":30,"reasoning":true,"cacheRead":0.075,"toolCall":false},"gemini-2.5-flash-lite":{"name":"Gemini 2.5 Flash-Lite","context":1048576,"output":65536,"in":0.1,"out":0.4,"reasoning":true,"cacheRead":0.01,"toolCall":true},"gemini-3.1-flash-image-preview":{"name":"Nano Banana 2","context":65536,"output":65536,"in":0.5,"out":60,"reasoning":true,"toolCall":false},"gemini-3.1-pro-preview":{"name":"Gemini 3.1 Pro Preview","context":1048576,"output":65536,"in":2,"out":12,"reasoning":true,"cacheRead":0.2,"toolCall":true},"gemma-4-26b-a4b-it":{"name":"Gemma 4 26B A4B IT","context":262144,"output":32768,"in":null,"out":null,"reasoning":true,"toolCall":true},"gemini-3-pro-preview":{"name":"Gemini 3 Pro Preview","context":1048576,"output":65536,"in":2,"out":12,"reasoning":true,"cacheRead":0.2,"toolCall":true},"gemini-3-flash-preview":{"name":"Gemini 3 Flash Preview","context":1048576,"output":65536,"in":0.5,"out":3,"reasoning":true,"cacheRead":0.05,"toolCall":true},"gemini-2.5-pro-preview-tts":{"name":"Gemini 2.5 Pro Preview TTS","context":8192,"output":16384,"in":1,"out":20,"reasoning":false,"toolCall":false},"gemini-flash-latest":{"name":"Gemini Flash Latest","context":1048576,"output":65536,"in":0.3,"out":2.5,"reasoning":true,"cacheRead":0.075,"toolCall":true},"gemini-3.1-flash-lite-preview":{"name":"Gemini 3.1 Flash Lite Preview","context":1048576,"output":65536,"in":0.25,"out":1.5,"reasoning":true,"cacheRead":0.025,"toolCall":true},"gemini-2.0-flash-lite":{"name":"Gemini 2.0 Flash-Lite","context":1048576,"output":8192,"in":0.075,"out":0.3,"reasoning":false,"toolCall":true}}},"cloudflare-workers-ai":{"name":"Cloudflare Workers AI","npm":"@ai-sdk/openai-compatible","models":{"@cf/ibm-granite/granite-4.0-h-micro":{"name":"Granite 4.0 H Micro","context":131000,"output":131000,"in":0.017,"out":0.112,"reasoning":false,"toolCall":true},"@cf/moonshotai/kimi-k2.7-code":{"name":"Kimi K2.7 Code","context":262144,"output":262144,"in":0.95,"out":4,"reasoning":true,"cacheRead":0.19,"toolCall":true},"@cf/moonshotai/kimi-k2.6":{"name":"Kimi K2.6","context":262144,"output":256000,"in":0.95,"out":4,"reasoning":true,"cacheRead":0.16,"toolCall":true},"@cf/google/gemma-4-26b-a4b-it":{"name":"Gemma 4 26B A4B IT","context":256000,"output":16384,"in":0.1,"out":0.3,"reasoning":true,"toolCall":true},"@cf/openai/gpt-oss-120b":{"name":"GPT OSS 120B","context":128000,"output":16384,"in":0.35,"out":0.75,"reasoning":true,"toolCall":true},"@cf/openai/gpt-oss-20b":{"name":"GPT OSS 20B","context":128000,"output":16384,"in":0.2,"out":0.3,"reasoning":true,"toolCall":true},"@cf/mistralai/mistral-small-3.1-24b-instruct":{"name":"Mistral Small 3.1 24B Instruct","context":128000,"output":128000,"in":0.351,"out":0.555,"reasoning":false,"toolCall":true},"@cf/nvidia/nemotron-3-120b-a12b":{"name":"Nemotron 3 Super 120B","context":256000,"output":256000,"in":0.5,"out":1.5,"reasoning":true,"toolCall":true},"@cf/zai-org/glm-5.2":{"name":"Glm 5.2","context":262144,"output":262144,"in":1.4,"out":4.4,"reasoning":true,"cacheRead":0.26,"toolCall":true},"@cf/zai-org/glm-4.7-flash":{"name":"GLM-4.7-Flash","context":131072,"output":131072,"in":0.0605,"out":0.4,"reasoning":true,"toolCall":true},"@cf/deepseek-ai/deepseek-r1-distill-qwen-32b":{"name":"Deepseek R1 Distill Qwen 32B","context":80000,"output":80000,"in":0.497,"out":4.881,"reasoning":true,"toolCall":false},"@cf/qwen/qwen3-30b-a3b-fp8":{"name":"Qwen3 30B A3b fp8","context":32768,"output":32768,"in":0.0509,"out":0.335,"reasoning":true,"toolCall":true},"@cf/qwen/qwen2.5-coder-32b-instruct":{"name":"Qwen2.5 Coder 32B Instruct","context":32768,"output":32768,"in":0.66,"out":1,"reasoning":false,"toolCall":false},"@cf/qwen/qwq-32b":{"name":"Qwq 32B","context":24000,"output":24000,"in":0.66,"out":1,"reasoning":true,"toolCall":false},"@cf/meta/llama-3.2-1b-instruct":{"name":"Llama 3.2 1B Instruct","context":60000,"output":60000,"in":0.027,"out":0.201,"reasoning":false,"toolCall":false},"@cf/meta/llama-3.2-11b-vision-instruct":{"name":"Llama 3.2 11B Vision Instruct","context":128000,"output":128000,"in":0.0485,"out":0.676,"reasoning":false,"toolCall":false},"@cf/meta/llama-4-scout-17b-16e-instruct":{"name":"Llama 4 Scout 17B 16E Instruct","context":131000,"output":16384,"in":0.27,"out":0.85,"reasoning":false,"toolCall":true},"@cf/meta/llama-guard-3-8b":{"name":"Llama Guard 3 8B","context":131072,"output":131072,"in":0.484,"out":0.03,"reasoning":false,"toolCall":false},"@cf/meta/llama-3.3-70b-instruct-fp8-fast":{"name":"Llama 3.3 70B Instruct fp8 Fast","context":24000,"output":24000,"in":0.293,"out":2.253,"reasoning":false,"toolCall":true},"@cf/meta/llama-3.1-8b-instruct-fp8":{"name":"Llama 3.1 8B Instruct fp8","context":32000,"output":32000,"in":0.152,"out":0.287,"reasoning":false,"toolCall":false},"@cf/meta/llama-3.2-3b-instruct":{"name":"Llama 3.2 3B Instruct","context":80000,"output":80000,"in":0.0509,"out":0.335,"reasoning":false,"toolCall":false},"@cf/aisingapore/gemma-sea-lion-v4-27b-it":{"name":"Gemma Sea Lion V4 27B It","context":128000,"output":128000,"in":0.351,"out":0.555,"reasoning":false,"toolCall":false}}},"cloudflare-ai-gateway":{"name":"Cloudflare AI Gateway","npm":"ai-gateway-provider","models":{"workers-ai/@cf/baai/bge-m3":{"name":"BGE M3","context":128000,"output":16384,"in":0.012,"out":0,"reasoning":false,"toolCall":false},"workers-ai/@cf/baai/bge-small-en-v1.5":{"name":"BGE Small EN v1.5","context":128000,"output":16384,"in":0.02,"out":0,"reasoning":false,"toolCall":false},"workers-ai/@cf/baai/bge-reranker-base":{"name":"BGE Reranker Base","context":128000,"output":16384,"in":0.0031,"out":0,"reasoning":false,"toolCall":false},"workers-ai/@cf/baai/bge-base-en-v1.5":{"name":"BGE Base EN v1.5","context":128000,"output":16384,"in":0.067,"out":0,"reasoning":false,"toolCall":false},"workers-ai/@cf/baai/bge-large-en-v1.5":{"name":"BGE Large EN v1.5","context":128000,"output":16384,"in":0.2,"out":0,"reasoning":false,"toolCall":false},"workers-ai/@cf/ai4bharat/indictrans2-en-indic-1B":{"name":"IndicTrans2 EN-Indic 1B","context":128000,"output":16384,"in":0.34,"out":0.34,"reasoning":false,"toolCall":false},"workers-ai/@cf/ibm-granite/granite-4.0-h-micro":{"name":"IBM Granite 4.0 H Micro","context":128000,"output":16384,"in":0.017,"out":0.11,"reasoning":false,"toolCall":false},"workers-ai/@cf/huggingface/distilbert-sst-2-int8":{"name":"DistilBERT SST-2 INT8","context":128000,"output":16384,"in":0.026,"out":0,"reasoning":false,"toolCall":false},"workers-ai/@cf/moonshotai/kimi-k2.5":{"name":"Kimi K2.5","context":256000,"output":256000,"in":0.6,"out":3,"reasoning":true,"cacheRead":0.1,"toolCall":true},"workers-ai/@cf/moonshotai/kimi-k2.6":{"name":"Kimi K2.6","context":256000,"output":256000,"in":0.95,"out":4,"reasoning":true,"cacheRead":0.16,"toolCall":true},"workers-ai/@cf/mistral/mistral-7b-instruct-v0.1":{"name":"Mistral 7B Instruct v0.1","context":128000,"output":16384,"in":0.11,"out":0.19,"reasoning":false,"toolCall":false},"workers-ai/@cf/google/gemma-3-12b-it":{"name":"Gemma 3 12B IT","context":128000,"output":16384,"in":0.35,"out":0.56,"reasoning":false,"toolCall":false},"workers-ai/@cf/myshell-ai/melotts":{"name":"MyShell MeloTTS","context":128000,"output":16384,"in":0,"out":0,"reasoning":false,"toolCall":false},"workers-ai/@cf/openai/gpt-oss-120b":{"name":"GPT OSS 120B","context":128000,"output":16384,"in":0.35,"out":0.75,"reasoning":false,"toolCall":false},"workers-ai/@cf/openai/gpt-oss-20b":{"name":"GPT OSS 20B","context":128000,"output":16384,"in":0.2,"out":0.3,"reasoning":false,"toolCall":false},"workers-ai/@cf/mistralai/mistral-small-3.1-24b-instruct":{"name":"Mistral Small 3.1 24B Instruct","context":128000,"output":16384,"in":0.35,"out":0.56,"reasoning":false,"toolCall":false},"workers-ai/@cf/nvidia/nemotron-3-120b-a12b":{"name":"Nemotron 3 Super 120B","context":256000,"output":256000,"in":0.5,"out":1.5,"reasoning":true,"toolCall":true},"workers-ai/@cf/pfnet/plamo-embedding-1b":{"name":"PLaMo Embedding 1B","context":128000,"output":16384,"in":0.019,"out":0,"reasoning":false,"toolCall":false},"workers-ai/@cf/deepgram/aura-2-es":{"name":"Deepgram Aura 2 (ES)","context":128000,"output":16384,"in":0,"out":0,"reasoning":false,"toolCall":false},"workers-ai/@cf/deepgram/aura-2-en":{"name":"Deepgram Aura 2 (EN)","context":128000,"output":16384,"in":0,"out":0,"reasoning":false,"toolCall":false},"workers-ai/@cf/deepgram/nova-3":{"name":"Deepgram Nova 3","context":128000,"output":16384,"in":0,"out":0,"reasoning":false,"toolCall":false},"workers-ai/@cf/zai-org/glm-4.7-flash":{"name":"GLM-4.7-Flash","context":131072,"output":131072,"in":0.06,"out":0.4,"reasoning":true,"toolCall":true},"workers-ai/@cf/deepseek-ai/deepseek-r1-distill-qwen-32b":{"name":"DeepSeek R1 Distill Qwen 32B","context":128000,"output":16384,"in":0.5,"out":4.88,"reasoning":false,"toolCall":false},"workers-ai/@cf/qwen/qwen3-embedding-0.6b":{"name":"Qwen3 Embedding 0.6B","context":128000,"output":16384,"in":0.012,"out":0,"reasoning":false,"toolCall":false},"workers-ai/@cf/qwen/qwen3-30b-a3b-fp8":{"name":"Qwen3 30B A3B FP8","context":128000,"output":16384,"in":0.051,"out":0.34,"reasoning":false,"toolCall":false},"workers-ai/@cf/qwen/qwen2.5-coder-32b-instruct":{"name":"Qwen 2.5 Coder 32B Instruct","context":128000,"output":16384,"in":0.66,"out":1,"reasoning":false,"toolCall":false},"workers-ai/@cf/qwen/qwq-32b":{"name":"QwQ 32B","context":128000,"output":16384,"in":0.66,"out":1,"reasoning":false,"toolCall":false},"workers-ai/@cf/pipecat-ai/smart-turn-v2":{"name":"Pipecat Smart Turn v2","context":128000,"output":16384,"in":0,"out":0,"reasoning":false,"toolCall":false},"workers-ai/@cf/meta/llama-3.1-8b-instruct":{"name":"Llama 3.1 8B Instruct","context":128000,"output":16384,"in":0.28,"out":0.8299999999999998,"reasoning":false,"toolCall":false},"workers-ai/@cf/meta/m2m100-1.2b":{"name":"M2M100 1.2B","context":128000,"output":16384,"in":0.34,"out":0.34,"reasoning":false,"toolCall":false},"workers-ai/@cf/meta/llama-3.2-1b-instruct":{"name":"Llama 3.2 1B Instruct","context":128000,"output":16384,"in":0.027,"out":0.2,"reasoning":false,"toolCall":false},"workers-ai/@cf/meta/llama-3.2-11b-vision-instruct":{"name":"Llama 3.2 11B Vision Instruct","context":128000,"output":16384,"in":0.049,"out":0.68,"reasoning":false,"toolCall":false},"workers-ai/@cf/meta/llama-4-scout-17b-16e-instruct":{"name":"Llama 4 Scout 17B 16E Instruct","context":128000,"output":16384,"in":0.27,"out":0.85,"reasoning":false,"toolCall":false},"workers-ai/@cf/meta/llama-guard-3-8b":{"name":"Llama Guard 3 8B","context":128000,"output":16384,"in":0.48,"out":0.03,"reasoning":false,"toolCall":false},"workers-ai/@cf/meta/llama-3-8b-instruct-awq":{"name":"Llama 3 8B Instruct AWQ","context":128000,"output":16384,"in":0.12,"out":0.27,"reasoning":false,"toolCall":false},"workers-ai/@cf/meta/llama-3.1-8b-instruct-awq":{"name":"Llama 3.1 8B Instruct AWQ","context":128000,"output":16384,"in":0.12,"out":0.27,"reasoning":false,"toolCall":false},"workers-ai/@cf/meta/llama-3.3-70b-instruct-fp8-fast":{"name":"Llama 3.3 70B Instruct FP8 Fast","context":128000,"output":16384,"in":0.29,"out":2.25,"reasoning":false,"toolCall":false},"workers-ai/@cf/meta/llama-3-8b-instruct":{"name":"Llama 3 8B Instruct","context":128000,"output":16384,"in":0.28,"out":0.83,"reasoning":false,"toolCall":false},"workers-ai/@cf/meta/llama-3.1-8b-instruct-fp8":{"name":"Llama 3.1 8B Instruct FP8","context":128000,"output":16384,"in":0.15,"out":0.29,"reasoning":false,"toolCall":false},"workers-ai/@cf/meta/llama-2-7b-chat-fp16":{"name":"Llama 2 7B Chat FP16","context":128000,"output":16384,"in":0.56,"out":6.67,"reasoning":false,"toolCall":false},"workers-ai/@cf/meta/llama-3.2-3b-instruct":{"name":"Llama 3.2 3B Instruct","context":128000,"output":16384,"in":0.051,"out":0.34,"reasoning":false,"toolCall":false},"workers-ai/@cf/facebook/bart-large-cnn":{"name":"BART Large CNN","context":128000,"output":16384,"in":0,"out":0,"reasoning":false,"toolCall":false},"workers-ai/@cf/aisingapore/gemma-sea-lion-v4-27b-it":{"name":"Gemma SEA-LION v4 27B IT","context":128000,"output":16384,"in":0.35,"out":0.56,"reasoning":false,"toolCall":false},"openai/o3":{"name":"o3","context":200000,"output":100000,"in":2,"out":8,"reasoning":true,"cacheRead":0.5,"toolCall":true},"openai/gpt-3.5-turbo":{"name":"GPT-3.5-turbo","context":16385,"output":4096,"in":0.5,"out":1.5,"reasoning":false,"cacheRead":1.25,"toolCall":false},"openai/gpt-4o":{"name":"GPT-4o","context":128000,"output":16384,"in":2.5,"out":10,"reasoning":false,"cacheRead":1.25,"toolCall":true},"openai/gpt-4":{"name":"GPT-4","context":8192,"output":8192,"in":30,"out":60,"reasoning":false,"toolCall":true},"openai/o4-mini":{"name":"o4-mini","context":200000,"output":100000,"in":1.1,"out":4.4,"reasoning":true,"cacheRead":0.28,"toolCall":true},"openai/o3-pro":{"name":"o3-pro","context":200000,"output":100000,"in":20,"out":80,"reasoning":true,"toolCall":true},"openai/gpt-5.1-codex":{"name":"GPT-5.1 Codex","context":400000,"output":128000,"in":1.25,"out":10,"reasoning":true,"cacheRead":0.125,"toolCall":true},"openai/o3-mini":{"name":"o3-mini","context":200000,"output":100000,"in":1.1,"out":4.4,"reasoning":true,"cacheRead":0.55,"toolCall":true},"openai/gpt-5.2":{"name":"GPT-5.2","context":400000,"output":128000,"in":1.75,"out":14,"reasoning":true,"cacheRead":0.175,"toolCall":true},"openai/gpt-5.3-codex":{"name":"GPT-5.3 Codex","context":400000,"output":128000,"in":1.75,"out":14,"reasoning":true,"cacheRead":0.175,"toolCall":true},"openai/o1":{"name":"o1","context":200000,"output":100000,"in":15,"out":60,"reasoning":true,"cacheRead":7.5,"toolCall":true},"openai/gpt-5.4":{"name":"GPT-5.4","context":1050000,"output":128000,"in":2.5,"out":15,"reasoning":true,"cacheRead":0.25,"toolCall":true},"openai/gpt-4-turbo":{"name":"GPT-4 Turbo","context":128000,"output":4096,"in":10,"out":30,"reasoning":false,"toolCall":true},"openai/gpt-4o-mini":{"name":"GPT-4o mini","context":128000,"output":16384,"in":0.15,"out":0.6,"reasoning":false,"cacheRead":0.08,"toolCall":true},"openai/gpt-5.2-codex":{"name":"GPT-5.2 Codex","context":400000,"output":128000,"in":1.75,"out":14,"reasoning":true,"cacheRead":0.175,"toolCall":true},"openai/gpt-5.1":{"name":"GPT-5.1","context":400000,"output":128000,"in":1.25,"out":10,"reasoning":true,"cacheRead":0.13,"toolCall":true},"openai/gpt-5.5":{"name":"GPT-5.5","context":1050000,"output":128000,"in":5,"out":30,"reasoning":true,"cacheRead":0.5,"toolCall":true},"anthropic/claude-3.5-haiku":{"name":"Claude Haiku 3.5 (latest)","context":200000,"output":8192,"in":0.8,"out":4,"reasoning":false,"cacheRead":0.08,"toolCall":true},"anthropic/claude-3.5-sonnet":{"name":"Claude Sonnet 3.5 v2","context":200000,"output":8192,"in":3,"out":15,"reasoning":false,"cacheRead":0.3,"toolCall":true},"anthropic/claude-sonnet-4":{"name":"Claude Sonnet 4 (latest)","context":200000,"output":64000,"in":3,"out":15,"reasoning":true,"cacheRead":0.3,"toolCall":true},"anthropic/claude-opus-4-5":{"name":"Claude Opus 4.5 (latest)","context":200000,"output":64000,"in":5,"out":25,"reasoning":true,"cacheRead":0.5,"toolCall":true},"anthropic/claude-sonnet-4-5":{"name":"Claude Sonnet 4.5 (latest)","context":200000,"output":64000,"in":3,"out":15,"reasoning":true,"cacheRead":0.3,"toolCall":true},"anthropic/claude-opus-4-7":{"name":"Claude Opus 4.7","context":1000000,"output":128000,"in":5,"out":25,"reasoning":true,"cacheRead":0.5,"toolCall":true},"anthropic/claude-3-sonnet":{"name":"Claude Sonnet 3","context":200000,"output":4096,"in":3,"out":15,"reasoning":false,"cacheRead":0.3,"toolCall":true},"anthropic/claude-opus-4-8":{"name":"Claude Opus 4.8","context":1000000,"output":128000,"in":5,"out":25,"reasoning":true,"cacheRead":0.5,"toolCall":true},"anthropic/claude-3-opus":{"name":"Claude Opus 3","context":200000,"output":4096,"in":15,"out":75,"reasoning":false,"cacheRead":1.5,"toolCall":true},"anthropic/claude-3-5-haiku":{"name":"Claude Haiku 3.5 (latest)","context":200000,"output":8192,"in":0.8,"out":4,"reasoning":false,"cacheRead":0.08,"toolCall":true},"anthropic/claude-opus-4-1":{"name":"Claude Opus 4.1 (latest)","context":200000,"output":32000,"in":15,"out":75,"reasoning":true,"cacheRead":1.5,"toolCall":true},"anthropic/claude-fable-5":{"name":"Claude Fable 5","context":1000000,"output":128000,"in":10,"out":50,"reasoning":true,"cacheRead":1,"toolCall":true},"anthropic/claude-haiku-4-5":{"name":"Claude Haiku 4.5 (latest)","context":200000,"output":64000,"in":1,"out":5,"reasoning":true,"cacheRead":0.1,"toolCall":true},"anthropic/claude-opus-4-6":{"name":"Claude Opus 4.6 (latest)","context":1000000,"output":128000,"in":5,"out":25,"reasoning":true,"cacheRead":0.5,"toolCall":true},"anthropic/claude-3-haiku":{"name":"Claude Haiku 3","context":200000,"output":4096,"in":0.25,"out":1.25,"reasoning":false,"cacheRead":0.03,"toolCall":true},"anthropic/claude-sonnet-4-6":{"name":"Claude Sonnet 4.6","context":1000000,"output":64000,"in":3,"out":15,"reasoning":true,"cacheRead":0.3,"toolCall":true},"anthropic/claude-opus-4":{"name":"Claude Opus 4 (latest)","context":200000,"output":32000,"in":15,"out":75,"reasoning":true,"cacheRead":1.5,"toolCall":true}}},"deepseek":{"name":"DeepSeek","npm":"@ai-sdk/openai-compatible","models":{"deepseek-v4-flash":{"name":"DeepSeek V4 Flash","context":1000000,"output":384000,"in":0.14,"out":0.28,"reasoning":true,"cacheRead":0.0028,"toolCall":true},"deepseek-v4-pro":{"name":"DeepSeek V4 Pro","context":1000000,"output":384000,"in":0.435,"out":0.87,"reasoning":true,"cacheRead":0.003625,"toolCall":true},"deepseek-reasoner":{"name":"DeepSeek Reasoner","context":1000000,"output":384000,"in":0.14,"out":0.28,"reasoning":true,"cacheRead":0.0028,"toolCall":true},"deepseek-chat":{"name":"DeepSeek Chat","context":1000000,"output":384000,"in":0.14,"out":0.28,"reasoning":false,"cacheRead":0.0028,"toolCall":true}}},"xai":{"name":"xAI","npm":"@ai-sdk/xai","models":{"grok-4.20-multi-agent-0309":{"name":"Grok 4.20 Multi-Agent","context":1000000,"output":30000,"in":1.25,"out":2.5,"reasoning":true,"cacheRead":0.2,"toolCall":false},"grok-4.20-0309-non-reasoning":{"name":"Grok 4.20 (Non-Reasoning)","context":1000000,"output":30000,"in":1.25,"out":2.5,"reasoning":false,"cacheRead":0.2,"toolCall":true},"grok-4.3":{"name":"Grok 4.3","context":1000000,"output":30000,"in":1.25,"out":2.5,"reasoning":true,"cacheRead":0.2,"toolCall":true},"grok-imagine-image-quality":{"name":"Grok Imagine Image Quality","context":8000,"output":0,"in":null,"out":null,"reasoning":false,"toolCall":false},"grok-imagine-video":{"name":"Grok Imagine Video","context":1024,"output":0,"in":null,"out":null,"reasoning":false,"toolCall":false},"grok-4.20-0309-reasoning":{"name":"Grok 4.20 (Reasoning)","context":1000000,"output":30000,"in":1.25,"out":2.5,"reasoning":true,"cacheRead":0.2,"toolCall":true},"grok-imagine-image":{"name":"Grok Imagine Image","context":8000,"output":0,"in":null,"out":null,"reasoning":false,"toolCall":false},"grok-build-0.1":{"name":"Grok Build 0.1","context":256000,"output":256000,"in":1,"out":2,"reasoning":true,"cacheRead":0.2,"toolCall":true}}},"mistral":{"name":"Mistral","npm":"@ai-sdk/mistral","models":{"codestral-latest":{"name":"Codestral (latest)","context":256000,"output":4096,"in":0.3,"out":0.9,"reasoning":false,"toolCall":true},"mistral-large-latest":{"name":"Mistral Large (latest)","context":262144,"output":262144,"in":0.5,"out":1.5,"reasoning":false,"toolCall":true},"open-mistral-7b":{"name":"Mistral 7B","context":8000,"output":8000,"in":0.25,"out":0.25,"reasoning":false,"toolCall":true},"devstral-small-2507":{"name":"Devstral Small","context":128000,"output":128000,"in":0.1,"out":0.3,"reasoning":false,"toolCall":true},"ministral-3b-latest":{"name":"Ministral 3B (latest)","context":128000,"output":128000,"in":0.04,"out":0.04,"reasoning":false,"toolCall":true},"pixtral-large-latest":{"name":"Pixtral Large (latest)","context":128000,"output":128000,"in":2,"out":6,"reasoning":false,"toolCall":true},"mistral-nemo":{"name":"Mistral Nemo","context":128000,"output":128000,"in":0.15,"out":0.15,"reasoning":false,"toolCall":true},"mistral-embed":{"name":"Mistral Embed","context":8000,"output":3072,"in":0.1,"out":0,"reasoning":false,"toolCall":false},"mistral-small-2506":{"name":"Mistral Small 3.2","context":128000,"output":16384,"in":0.1,"out":0.3,"reasoning":false,"toolCall":true},"ministral-8b-latest":{"name":"Ministral 8B (latest)","context":128000,"output":128000,"in":0.1,"out":0.1,"reasoning":false,"toolCall":true},"open-mixtral-8x22b":{"name":"Mixtral 8x22B","context":64000,"output":64000,"in":2,"out":6,"reasoning":false,"toolCall":true},"mistral-medium-latest":{"name":"Mistral Medium (latest)","context":262144,"output":262144,"in":0.4,"out":2,"reasoning":false,"toolCall":true},"devstral-small-2505":{"name":"Devstral Small 2505","context":128000,"output":128000,"in":0.1,"out":0.3,"reasoning":false,"toolCall":true},"magistral-small":{"name":"Magistral Small","context":128000,"output":128000,"in":0.5,"out":1.5,"reasoning":true,"toolCall":true},"mistral-medium-2604":{"name":"Mistral Medium 3.5","context":262144,"output":262144,"in":1.5,"out":7.5,"reasoning":true,"toolCall":true},"mistral-small-latest":{"name":"Mistral Small (latest)","context":256000,"output":256000,"in":0.15,"out":0.6,"reasoning":true,"toolCall":true},"open-mixtral-8x7b":{"name":"Mixtral 8x7B","context":32000,"output":32000,"in":0.7,"out":0.7,"reasoning":false,"toolCall":true},"devstral-latest":{"name":"Devstral 2","context":262144,"output":262144,"in":0.4,"out":2,"reasoning":false,"toolCall":true},"mistral-small-2603":{"name":"Mistral Small 4","context":256000,"output":256000,"in":0.15,"out":0.6,"reasoning":true,"toolCall":true},"mistral-medium-2505":{"name":"Mistral Medium 3","context":131072,"output":131072,"in":0.4,"out":2,"reasoning":false,"toolCall":true},"mistral-large-2411":{"name":"Mistral Large 2.1","context":131072,"output":16384,"in":2,"out":6,"reasoning":false,"toolCall":true},"mistral-medium-2508":{"name":"Mistral Medium 3.1","context":262144,"output":262144,"in":0.4,"out":2,"reasoning":false,"toolCall":true},"open-mistral-nemo":{"name":"Open Mistral Nemo","context":128000,"output":128000,"in":0.15,"out":0.15,"reasoning":false,"toolCall":true},"magistral-medium-latest":{"name":"Magistral Medium (latest)","context":128000,"output":16384,"in":2,"out":5,"reasoning":true,"toolCall":true},"devstral-medium-latest":{"name":"Devstral 2 (latest)","context":262144,"output":262144,"in":0.4,"out":2,"reasoning":false,"toolCall":true},"devstral-2512":{"name":"Devstral 2","context":262144,"output":262144,"in":0.4,"out":2,"reasoning":false,"toolCall":true},"labs-devstral-small-2512":{"name":"Devstral Small 2","context":256000,"output":256000,"in":0,"out":0,"reasoning":false,"toolCall":true},"pixtral-12b":{"name":"Pixtral 12B","context":128000,"output":128000,"in":0.15,"out":0.15,"reasoning":false,"toolCall":true},"mistral-large-2512":{"name":"Mistral Large 3","context":262144,"output":262144,"in":0.5,"out":1.5,"reasoning":false,"toolCall":true},"devstral-medium-2507":{"name":"Devstral Medium","context":128000,"output":128000,"in":0.4,"out":2,"reasoning":false,"toolCall":true}}},"groq":{"name":"Groq","npm":"@ai-sdk/groq","models":{"llama-3.3-70b-versatile":{"name":"Llama 3.3 70B","context":131072,"output":32768,"in":0.59,"out":0.79,"reasoning":false,"toolCall":true},"llama-3.1-8b-instant":{"name":"Llama 3.1 8B","context":131072,"output":131072,"in":0.05,"out":0.08,"reasoning":false,"toolCall":true},"whisper-large-v3-turbo":{"name":"Whisper Large V3 Turbo","context":0,"output":0,"in":null,"out":null,"reasoning":false,"toolCall":false},"whisper-large-v3":{"name":"Whisper","context":0,"output":0,"in":null,"out":null,"reasoning":false,"toolCall":false},"meta-llama/llama-prompt-guard-2-86m":{"name":"Prompt Guard 2 86M","context":512,"output":512,"in":0.04,"out":0.04,"reasoning":false,"toolCall":false},"meta-llama/llama-prompt-guard-2-22m":{"name":"Llama Prompt Guard 2 22M","context":512,"output":512,"in":0.03,"out":0.03,"reasoning":false,"toolCall":false},"meta-llama/llama-4-scout-17b-16e-instruct":{"name":"Llama 4 Scout 17B 16E","context":131072,"output":8192,"in":0.11,"out":0.34,"reasoning":false,"toolCall":true},"openai/gpt-oss-safeguard-20b":{"name":"Safety GPT OSS 20B","context":131072,"output":65536,"in":0.075,"out":0.3,"reasoning":true,"toolCall":true},"openai/gpt-oss-120b":{"name":"GPT OSS 120B","context":131072,"output":65536,"in":0.15,"out":0.6,"reasoning":true,"cacheRead":0.075,"toolCall":true},"openai/gpt-oss-20b":{"name":"GPT OSS 20B","context":131072,"output":65536,"in":0.075,"out":0.3,"reasoning":true,"cacheRead":0.0375,"toolCall":true},"canopylabs/orpheus-v1-english":{"name":"Canopy Labs Orpheus V1 English","context":4000,"output":50000,"in":null,"out":null,"reasoning":false,"toolCall":false},"canopylabs/orpheus-arabic-saudi":{"name":"Canopy Labs Orpheus Arabic Saudi","context":4000,"output":50000,"in":null,"out":null,"reasoning":false,"toolCall":false},"groq/compound":{"name":"Compound","context":131072,"output":8192,"in":null,"out":null,"reasoning":false,"toolCall":false},"groq/compound-mini":{"name":"Compound Mini","context":131072,"output":8192,"in":null,"out":null,"reasoning":false,"toolCall":false},"qwen/qwen3-32b":{"name":"Qwen3-32B","context":131072,"output":40960,"in":0.29,"out":0.59,"reasoning":true,"toolCall":true}}},"openrouter":{"name":"OpenRouter","npm":"@openrouter/ai-sdk-provider","models":{"inclusionai/ling-2.6-1t":{"name":"Ling-2.6-1T","context":262144,"output":32768,"in":0.075,"out":0.625,"reasoning":false,"cacheRead":0.015,"toolCall":true},"inclusionai/ring-2.6-1t":{"name":"Ring-2.6-1T","context":262144,"output":65536,"in":0.075,"out":0.625,"reasoning":true,"cacheRead":0.015,"toolCall":true},"inclusionai/ling-2.6-flash":{"name":"Ling-2.6-flash","context":262144,"output":32768,"in":0.01,"out":0.03,"reasoning":false,"cacheRead":0.002,"toolCall":true},"ibm-granite/granite-4.0-h-micro":{"name":"Granite 4.0 Micro","context":131000,"output":131000,"in":0.017,"out":0.112,"reasoning":false,"toolCall":false},"ibm-granite/granite-4.1-8b":{"name":"Granite 4.1 8B","context":131072,"output":131072,"in":0.05,"out":0.1,"reasoning":false,"cacheRead":0.05,"toolCall":true},"meta-llama/llama-3.1-8b-instruct":{"name":"Llama 3.1 8B Instruct","context":131072,"output":16384,"in":0.02,"out":0.03,"reasoning":false,"toolCall":true},"meta-llama/llama-3.1-70b-instruct":{"name":"Llama 3.1 70B Instruct","context":131072,"output":16384,"in":0.4,"out":0.4,"reasoning":false,"toolCall":true},"meta-llama/llama-3.2-1b-instruct":{"name":"Llama 3.2 1B Instruct","context":60000,"output":60000,"in":0.027,"out":0.201,"reasoning":false,"toolCall":false},"meta-llama/llama-4-maverick":{"name":"Llama 4 Maverick","context":1048576,"output":16384,"in":0.15,"out":0.6,"reasoning":false,"toolCall":true},"meta-llama/llama-3.2-11b-vision-instruct":{"name":"Llama 3.2 11B Vision Instruct","context":131072,"output":16384,"in":0.345,"out":0.345,"reasoning":false,"toolCall":false},"meta-llama/llama-3.3-70b-instruct:free":{"name":"Llama 3.3 70B Instruct (free)","context":65536,"output":131072,"in":0,"out":0,"reasoning":false,"toolCall":true},"meta-llama/llama-3.3-70b-instruct":{"name":"Llama-3.3-70B-Instruct","context":131072,"output":16384,"in":0.1,"out":0.32,"reasoning":false,"toolCall":true},"meta-llama/llama-3.2-3b-instruct:free":{"name":"Llama 3.2 3B Instruct (free)","context":131072,"output":131072,"in":0,"out":0,"reasoning":false,"toolCall":false},"meta-llama/llama-guard-4-12b":{"name":"Llama Guard 4 12B","context":163840,"output":16384,"in":0.18,"out":0.18,"reasoning":false,"toolCall":false},"meta-llama/llama-3-8b-instruct":{"name":"Llama 3 8B Instruct","context":8192,"output":8192,"in":0.14,"out":0.14,"reasoning":false,"toolCall":false},"meta-llama/llama-4-scout":{"name":"Llama 4 Scout","context":327680,"output":16384,"in":0.1,"out":0.3,"reasoning":false,"toolCall":true},"meta-llama/llama-3.2-3b-instruct":{"name":"Llama 3.2 3B Instruct","context":80000,"output":80000,"in":0.0509,"out":0.335,"reasoning":false,"toolCall":false},"~anthropic/claude-haiku-latest":{"name":"Anthropic Claude Haiku Latest","context":200000,"output":64000,"in":1,"out":5,"reasoning":true,"cacheRead":0.1,"toolCall":true},"~anthropic/claude-fable-latest":{"name":"Claude Fable Latest","context":1000000,"output":128000,"in":10,"out":50,"reasoning":true,"cacheRead":1,"toolCall":true},"~anthropic/claude-sonnet-latest":{"name":"Anthropic Claude Sonnet Latest","context":1000000,"output":128000,"in":3,"out":15,"reasoning":true,"cacheRead":0.3,"toolCall":true},"~anthropic/claude-opus-latest":{"name":"Claude Opus Latest","context":1000000,"output":128000,"in":5,"out":25,"reasoning":true,"cacheRead":0.5,"toolCall":true},"moonshotai/kimi-k2":{"name":"Kimi K2 0711","context":131072,"output":100352,"in":0.57,"out":2.3,"reasoning":false,"toolCall":true},"moonshotai/kimi-k2.7-code":{"name":"Kimi K2.7 Code","context":262144,"output":16384,"in":0.74,"out":3.5,"reasoning":true,"cacheRead":0.15,"toolCall":true},"moonshotai/kimi-k2-thinking":{"name":"Kimi K2 Thinking","context":262144,"output":262144,"in":0.6,"out":2.5,"reasoning":true,"cacheRead":0.6,"toolCall":true},"moonshotai/kimi-k2.5":{"name":"Kimi K2.5","context":256000,"output":256000,"in":0.375,"out":2.025,"reasoning":true,"toolCall":true},"moonshotai/kimi-k2.6":{"name":"Kimi K2.6","context":262144,"output":262144,"in":0.55,"out":3.2,"reasoning":true,"cacheRead":0.11,"toolCall":true},"moonshotai/kimi-k2-0905":{"name":"Kimi K2 0905","context":262144,"output":100352,"in":0.6,"out":2.5,"reasoning":false,"toolCall":true},"baidu/ernie-4.5-vl-424b-a47b":{"name":"ERNIE 4.5 VL 424B A47B ","context":123000,"output":16000,"in":0.42,"out":1.25,"reasoning":true,"toolCall":false},"perceptron/perceptron-mk1":{"name":"Perceptron Mk1","context":32768,"output":8192,"in":0.15,"out":1.5,"reasoning":true,"toolCall":false},"google/gemini-3.1-flash-lite":{"name":"Gemini 3.1 Flash Lite","context":1048576,"output":65536,"in":0.25,"out":1.5,"reasoning":true,"cacheRead":0.025,"toolCall":true},"google/gemini-3.1-flash-image":{"name":"Nano Banana 2 (Gemini 3.1 Flash Image)","context":131072,"output":32768,"in":0.5,"out":3,"reasoning":true,"toolCall":false},"google/gemma-3n-e4b-it":{"name":"Gemma 3n 4B","context":32768,"output":32768,"in":0.06,"out":0.12,"reasoning":false,"toolCall":false},"google/gemma-4-26b-a4b-it:free":{"name":"Gemma 4 26B A4B (free)","context":131072,"output":32768,"in":0,"out":0,"reasoning":true,"toolCall":true},"google/gemini-2.5-pro":{"name":"Gemini 2.5 Pro","context":1048576,"output":65536,"in":1.25,"out":10,"reasoning":true,"cacheRead":0.125,"toolCall":true},"google/gemini-2.5-flash":{"name":"Gemini 2.5 Flash","context":1048576,"output":65535,"in":0.3,"out":2.5,"reasoning":true,"cacheRead":0.03,"toolCall":true},"google/gemini-3.5-flash":{"name":"Gemini 3.5 Flash","context":1048576,"output":65536,"in":1.5,"out":9,"reasoning":true,"cacheRead":0.15,"toolCall":true},"google/gemini-2.5-flash-lite-preview-09-2025":{"name":"Gemini 2.5 Flash Lite Preview 09-2025","context":1048576,"output":65535,"in":0.1,"out":0.4,"reasoning":true,"cacheRead":0.01,"toolCall":true},"google/gemma-4-31b-it":{"name":"Gemma 4 31B IT","context":262144,"output":262144,"in":0.12,"out":0.35,"reasoning":true,"cacheRead":0.09,"toolCall":true},"google/lyria-3-clip-preview":{"name":"Lyria 3 Clip Preview","context":1048576,"output":65536,"in":0,"out":0,"reasoning":false,"toolCall":false},"google/gemini-3.1-pro-preview-customtools":{"name":"Gemini 3.1 Pro Preview Custom Tools","context":1048576,"output":65536,"in":2,"out":12,"reasoning":true,"cacheRead":0.2,"toolCall":true},"google/gemini-3-pro-image-preview":{"name":"Nano Banana Pro","context":65536,"output":32768,"in":2,"out":12,"reasoning":true,"cacheRead":0.2,"toolCall":false},"google/gemini-2.5-flash-image":{"name":"Nano Banana","context":32768,"output":32768,"in":0.3,"out":2.5,"reasoning":false,"cacheRead":0.03,"toolCall":false},"google/gemini-2.5-flash-lite":{"name":"Gemini 2.5 Flash-Lite","context":1048576,"output":65535,"in":0.1,"out":0.4,"reasoning":true,"cacheRead":0.01,"toolCall":true},"google/gemini-3.1-flash-image-preview":{"name":"Nano Banana 2","context":131072,"output":32768,"in":0.5,"out":3,"reasoning":true,"toolCall":false},"google/gemini-2.5-pro-preview-05-06":{"name":"Gemini 2.5 Pro Preview 05-06","context":1048576,"output":65535,"in":1.25,"out":10,"reasoning":true,"cacheRead":0.125,"toolCall":true},"google/gemini-3.1-pro-preview":{"name":"Gemini 3.1 Pro Preview","context":1048576,"output":65536,"in":2,"out":12,"reasoning":true,"cacheRead":0.2,"toolCall":true},"google/gemma-4-26b-a4b-it":{"name":"Gemma 4 26B A4B IT","context":262144,"output":262144,"in":0.06,"out":0.33,"reasoning":true,"toolCall":true},"google/gemini-2.5-pro-preview":{"name":"Gemini 2.5 Pro Preview 06-05","context":1048576,"output":65536,"in":1.25,"out":10,"reasoning":true,"cacheRead":0.125,"toolCall":true},"google/gemini-3-flash-preview":{"name":"Gemini 3 Flash Preview","context":1048576,"output":65535,"in":0.5,"out":3,"reasoning":true,"cacheRead":0.05,"toolCall":true},"google/gemma-3-12b-it":{"name":"Gemma 3 12B","context":131072,"output":16384,"in":0.05,"out":0.15,"reasoning":false,"toolCall":true},"google/gemma-3-4b-it":{"name":"Gemma 3 4B","context":131072,"output":16384,"in":0.05,"out":0.1,"reasoning":false,"toolCall":false},"google/gemma-3-27b-it":{"name":"Gemma 3 27B","context":131072,"output":16384,"in":0.08,"out":0.16,"reasoning":false,"toolCall":true},"google/lyria-3-pro-preview":{"name":"Lyria 3 Pro Preview","context":1048576,"output":65536,"in":0,"out":0,"reasoning":false,"toolCall":false},"google/gemma-4-31b-it:free":{"name":"Gemma 4 31B (free)","context":262144,"output":8192,"in":0,"out":0,"reasoning":true,"toolCall":true},"google/gemma-2-27b-it":{"name":"Gemma 2 27B","context":8192,"output":2048,"in":0.65,"out":0.65,"reasoning":false,"toolCall":false},"google/gemini-3-pro-image":{"name":"Nano Banana Pro (Gemini 3 Pro Image)","context":65536,"output":32768,"in":2,"out":12,"reasoning":true,"cacheRead":0.2,"toolCall":true},"google/gemini-3.1-flash-lite-preview":{"name":"Gemini 3.1 Flash Lite Preview","context":1048576,"output":65536,"in":0.25,"out":1.5,"reasoning":true,"cacheRead":0.025,"toolCall":true},"liquid/lfm-2.5-1.2b-thinking:free":{"name":"LFM2.5-1.2B-Thinking (free)","context":32768,"output":32768,"in":0,"out":0,"reasoning":true,"toolCall":true},"liquid/lfm-2-24b-a2b":{"name":"LFM2-24B-A2B","context":32768,"output":32768,"in":0.03,"out":0.12,"reasoning":false,"toolCall":false},"liquid/lfm-2.5-1.2b-instruct:free":{"name":"LFM2.5-1.2B-Instruct (free)","context":32768,"output":32768,"in":0,"out":0,"reasoning":false,"toolCall":false},"x-ai/grok-4.20":{"name":"Grok 4.20","context":2000000,"output":2000000,"in":1.25,"out":2.5,"reasoning":true,"cacheRead":0.2,"toolCall":true},"x-ai/grok-4.3":{"name":"Grok 4.3","context":1000000,"output":1000000,"in":1.25,"out":2.5,"reasoning":true,"cacheRead":0.2,"toolCall":true},"x-ai/grok-4.20-multi-agent":{"name":"Grok 4.20 Multi-Agent","context":2000000,"output":2000000,"in":1.25,"out":2.5,"reasoning":true,"cacheRead":0.2,"toolCall":false},"x-ai/grok-build-0.1":{"name":"Grok Build 0.1","context":256000,"output":256000,"in":1,"out":2,"reasoning":true,"cacheRead":0.2,"toolCall":true},"~google/gemini-pro-latest":{"name":"Google Gemini Pro Latest","context":1048576,"output":65536,"in":2,"out":12,"reasoning":true,"cacheRead":0.2,"toolCall":true},"~google/gemini-flash-latest":{"name":"Google Gemini Flash Latest","context":1048576,"output":65536,"in":1.5,"out":9,"reasoning":true,"cacheRead":0.15,"toolCall":true},"microsoft/phi-4-mini-instruct":{"name":"Phi 4 Mini Instruct","context":128000,"output":128000,"in":0.08,"out":0.35,"reasoning":false,"cacheRead":0.08,"toolCall":false},"microsoft/phi-4":{"name":"Phi 4","context":16384,"output":16384,"in":0.07,"out":0.14,"reasoning":false,"toolCall":false},"microsoft/wizardlm-2-8x22b":{"name":"WizardLM-2 8x22B","context":65535,"output":8000,"in":0.62,"out":0.62,"reasoning":false,"toolCall":false},"poolside/laguna-xs.2":{"name":"Laguna XS.2","context":262144,"output":32768,"in":0.1,"out":0.2,"reasoning":true,"cacheRead":0.05,"toolCall":true},"poolside/laguna-xs.2:free":{"name":"Laguna XS.2 (free)","context":262144,"output":32768,"in":0,"out":0,"reasoning":true,"toolCall":true},"poolside/laguna-m.1":{"name":"Laguna M.1","context":262144,"output":32768,"in":0.2,"out":0.4,"reasoning":true,"cacheRead":0.1,"toolCall":true},"poolside/laguna-m.1:free":{"name":"Laguna M.1 (free)","context":262144,"output":32768,"in":0,"out":0,"reasoning":true,"toolCall":true},"writer/palmyra-x5":{"name":"Palmyra X5","context":1040000,"output":8192,"in":0.6,"out":6,"reasoning":false,"toolCall":false},"z-ai/glm-4.7":{"name":"GLM-4.7","context":202752,"output":131072,"in":0.4,"out":1.75,"reasoning":true,"cacheRead":0.08,"toolCall":true},"z-ai/glm-4.5v":{"name":"GLM-4.5V","context":65536,"output":16384,"in":0.6,"out":1.8,"reasoning":true,"cacheRead":0.11,"toolCall":true},"z-ai/glm-4.5":{"name":"GLM-4.5","context":131072,"output":98304,"in":0.6,"out":2.2,"reasoning":true,"cacheRead":0.11,"toolCall":true},"z-ai/glm-5.1":{"name":"GLM-5.1","context":65536,"output":128000,"in":0.975,"out":4.3,"reasoning":true,"toolCall":true},"z-ai/glm-4.6":{"name":"GLM-4.6","context":202752,"output":131072,"in":0.43,"out":1.74,"reasoning":true,"cacheRead":0.08,"toolCall":true},"z-ai/glm-5.2":{"name":"GLM-5.2","context":1048576,"output":32768,"in":0.94,"out":3,"reasoning":true,"cacheRead":0.18,"toolCall":true},"z-ai/glm-4.6v":{"name":"GLM-4.6V","context":131072,"output":32768,"in":0.3,"out":0.9,"reasoning":true,"cacheRead":0.055,"toolCall":true},"z-ai/glm-5v-turbo":{"name":"GLM-5V-Turbo","context":202752,"output":131072,"in":1.2,"out":4,"reasoning":true,"cacheRead":0.24,"toolCall":true},"z-ai/glm-4.5-air":{"name":"GLM-4.5-Air","context":131072,"output":98304,"in":0.13,"out":0.85,"reasoning":true,"cacheRead":0.025,"toolCall":true},"z-ai/glm-4.7-flash":{"name":"GLM-4.7-Flash","context":202752,"output":16384,"in":0.06,"out":0.4,"reasoning":true,"cacheRead":0.01,"toolCall":true},"z-ai/glm-5":{"name":"GLM-5","context":202752,"output":128000,"in":0.6,"out":1.92,"reasoning":true,"cacheRead":0.12,"toolCall":true},"z-ai/glm-5-turbo":{"name":"GLM-5-Turbo","context":262144,"output":131072,"in":1.2,"out":4,"reasoning":true,"cacheRead":0.24,"toolCall":true},"openai/gpt-4o-mini-2024-07-18":{"name":"GPT-4o-mini (2024-07-18)","context":128000,"output":16384,"in":0.15,"out":0.6,"reasoning":false,"cacheRead":0.075,"toolCall":true},"openai/gpt-oss-safeguard-20b":{"name":"gpt-oss-safeguard-20b","context":131072,"output":65536,"in":0.075,"out":0.3,"reasoning":true,"cacheRead":0.0375,"toolCall":true},"openai/gpt-3.5-turbo-instruct":{"name":"GPT-3.5 Turbo Instruct","context":4095,"output":4096,"in":1.5,"out":2,"reasoning":false,"toolCall":false},"openai/gpt-5.2-chat":{"name":"GPT-5.2 Chat","context":128000,"output":16384,"in":1.75,"out":14,"reasoning":false,"cacheRead":0.175,"toolCall":true},"openai/o3":{"name":"o3","context":200000,"output":100000,"in":2,"out":8,"reasoning":true,"cacheRead":0.5,"toolCall":true},"openai/o4-mini-high":{"name":"o4 Mini High","context":200000,"output":100000,"in":1.1,"out":4.4,"reasoning":true,"cacheRead":0.275,"toolCall":true},"openai/gpt-audio":{"name":"GPT Audio","context":128000,"output":16384,"in":2.5,"out":10,"reasoning":false,"toolCall":true},"openai/gpt-5.2-pro":{"name":"GPT-5.2 Pro","context":400000,"output":128000,"in":21,"out":168,"reasoning":true,"toolCall":true},"openai/gpt-4o-mini-search-preview":{"name":"GPT-4o-mini Search Preview","context":128000,"output":16384,"in":0.15,"out":0.6,"reasoning":false,"toolCall":false},"openai/gpt-5":{"name":"GPT-5","context":400000,"output":128000,"in":1.25,"out":10,"reasoning":true,"cacheRead":0.125,"toolCall":true},"openai/gpt-5-chat":{"name":"GPT-5 Chat","context":128000,"output":16384,"in":1.25,"out":10,"reasoning":false,"cacheRead":0.125,"toolCall":false},"openai/gpt-3.5-turbo":{"name":"GPT-3.5-turbo","context":16385,"output":4096,"in":0.5,"out":1.5,"reasoning":false,"toolCall":true},"openai/gpt-5-pro":{"name":"GPT-5 Pro","context":400000,"output":128000,"in":15,"out":120,"reasoning":true,"toolCall":true},"openai/gpt-4o":{"name":"GPT-4o","context":128000,"output":16384,"in":2.5,"out":10,"reasoning":false,"toolCall":true},"openai/gpt-4":{"name":"GPT-4","context":8191,"output":4096,"in":30,"out":60,"reasoning":false,"toolCall":true},"openai/o4-mini":{"name":"o4-mini","context":200000,"output":100000,"in":1.1,"out":4.4,"reasoning":true,"cacheRead":0.275,"toolCall":true},"openai/gpt-3.5-turbo-16k":{"name":"GPT-3.5 Turbo 16k","context":16385,"output":4096,"in":3,"out":4,"reasoning":false,"toolCall":true},"openai/o3-pro":{"name":"o3-pro","context":200000,"output":100000,"in":20,"out":80,"reasoning":true,"toolCall":true},"openai/gpt-5.1-chat":{"name":"GPT-5.1 Chat","context":128000,"output":32000,"in":1.25,"out":10,"reasoning":false,"cacheRead":0.13,"toolCall":true},"openai/gpt-4o-2024-05-13":{"name":"GPT-4o (2024-05-13)","context":128000,"output":4096,"in":5,"out":15,"reasoning":false,"toolCall":true},"openai/gpt-5.4-nano":{"name":"GPT-5.4 nano","context":400000,"output":128000,"in":0.2,"out":1.25,"reasoning":true,"cacheRead":0.02,"toolCall":true},"openai/gpt-5.3-chat":{"name":"GPT-5.3 Chat","context":128000,"output":16384,"in":1.75,"out":14,"reasoning":false,"cacheRead":0.175,"toolCall":true},"openai/gpt-3.5-turbo-0613":{"name":"GPT-3.5 Turbo (older v0613)","context":4095,"output":4096,"in":1,"out":2,"reasoning":false,"toolCall":true},"openai/gpt-5-image-mini":{"name":"GPT-5 Image Mini","context":400000,"output":128000,"in":2.5,"out":2,"reasoning":true,"cacheRead":0.25,"toolCall":false},"openai/gpt-5.1-codex":{"name":"GPT-5.1 Codex","context":400000,"output":128000,"in":1.25,"out":10,"reasoning":true,"cacheRead":0.13,"toolCall":true},"openai/gpt-5.1-codex-max":{"name":"GPT-5.1 Codex Max","context":400000,"output":128000,"in":1.25,"out":10,"reasoning":true,"cacheRead":0.125,"toolCall":true},"openai/gpt-oss-120b:free":{"name":"gpt-oss-120b (free)","context":131072,"output":131072,"in":0,"out":0,"reasoning":true,"toolCall":true},"openai/gpt-4o-2024-08-06":{"name":"GPT-4o (2024-08-06)","context":128000,"output":16384,"in":2.5,"out":10,"reasoning":false,"cacheRead":1.25,"toolCall":true},"openai/o3-mini":{"name":"o3-mini","context":200000,"output":100000,"in":1.1,"out":4.4,"reasoning":true,"cacheRead":0.55,"toolCall":true},"openai/gpt-5.2":{"name":"GPT-5.2","context":400000,"output":128000,"in":1.75,"out":14,"reasoning":true,"cacheRead":0.175,"toolCall":true},"openai/gpt-5.3-codex":{"name":"GPT-5.3 Codex","context":400000,"output":128000,"in":1.75,"out":14,"reasoning":true,"cacheRead":0.175,"toolCall":true},"openai/gpt-audio-mini":{"name":"GPT Audio Mini","context":128000,"output":16384,"in":0.6,"out":2.4,"reasoning":false,"toolCall":true},"openai/gpt-5.1-codex-mini":{"name":"GPT-5.1 Codex mini","context":400000,"output":100000,"in":0.25,"out":2,"reasoning":true,"cacheRead":0.025,"toolCall":true},"openai/o4-mini-deep-research":{"name":"o4-mini-deep-research","context":200000,"output":100000,"in":2,"out":8,"reasoning":true,"cacheRead":0.5,"toolCall":true},"openai/gpt-4.1-nano":{"name":"GPT-4.1 nano","context":1047576,"output":32768,"in":0.1,"out":0.4,"reasoning":false,"cacheRead":0.025,"toolCall":true},"openai/gpt-oss-120b":{"name":"GPT OSS 120B","context":131072,"output":131072,"in":0.03,"out":0.15,"reasoning":true,"toolCall":true},"openai/gpt-4o-2024-11-20":{"name":"GPT-4o (2024-11-20)","context":128000,"output":16384,"in":2.5,"out":10,"reasoning":false,"cacheRead":1.25,"toolCall":true},"openai/o1":{"name":"o1","context":200000,"output":100000,"in":15,"out":60,"reasoning":true,"cacheRead":7.5,"toolCall":true},"openai/o1-pro":{"name":"o1-pro","context":200000,"output":100000,"in":150,"out":600,"reasoning":true,"toolCall":false},"openai/gpt-chat-latest":{"name":"GPT Chat Latest","context":400000,"output":128000,"in":5,"out":30,"reasoning":false,"cacheRead":0.5,"toolCall":true},"openai/gpt-5-image":{"name":"GPT-5 Image","context":400000,"output":128000,"in":10,"out":10,"reasoning":true,"cacheRead":1.25,"toolCall":false},"openai/gpt-5.4":{"name":"GPT-5.4","context":1050000,"output":128000,"in":2.5,"out":15,"reasoning":true,"cacheRead":0.25,"toolCall":true},"openai/gpt-5.4-mini":{"name":"GPT-5.4 mini","context":400000,"output":128000,"in":0.75,"out":4.5,"reasoning":true,"cacheRead":0.075,"toolCall":true},"openai/gpt-4.1":{"name":"GPT-4.1","context":1047576,"output":32768,"in":2,"out":8,"reasoning":false,"cacheRead":0.5,"toolCall":true},"openai/o3-deep-research":{"name":"o3-deep-research","context":200000,"output":100000,"in":10,"out":40,"reasoning":true,"cacheRead":2.5,"toolCall":true},"openai/gpt-4-turbo-preview":{"name":"GPT-4 Turbo Preview","context":128000,"output":4096,"in":10,"out":30,"reasoning":false,"toolCall":true},"openai/gpt-5-mini":{"name":"GPT-5 Mini","context":400000,"output":128000,"in":0.25,"out":2,"reasoning":true,"cacheRead":0.025,"toolCall":true},"openai/gpt-4.1-mini":{"name":"GPT-4.1 mini","context":1047576,"output":32768,"in":0.4,"out":1.6,"reasoning":false,"cacheRead":0.1,"toolCall":true},"openai/gpt-4-turbo":{"name":"GPT-4 Turbo","context":128000,"output":4096,"in":10,"out":30,"reasoning":false,"toolCall":true},"openai/gpt-5-nano":{"name":"GPT-5 Nano","context":400000,"output":128000,"in":0.05,"out":0.4,"reasoning":true,"cacheRead":0.01,"toolCall":true},"openai/gpt-5.4-pro":{"name":"GPT-5.4 Pro","context":1050000,"output":128000,"in":30,"out":180,"reasoning":true,"toolCall":true},"openai/o3-mini-high":{"name":"o3 Mini High","context":200000,"output":100000,"in":1.1,"out":4.4,"reasoning":true,"cacheRead":0.55,"toolCall":true},"openai/gpt-5.4-image-2":{"name":"GPT-5.4 Image 2","context":272000,"output":128000,"in":8,"out":15,"reasoning":true,"cacheRead":2,"toolCall":false},"openai/gpt-4o-search-preview":{"name":"GPT-4o Search Preview","context":128000,"output":16384,"in":2.5,"out":10,"reasoning":false,"toolCall":false},"openai/gpt-5.5-pro":{"name":"GPT-5.5 Pro","context":1050000,"output":128000,"in":30,"out":180,"reasoning":true,"toolCall":true},"openai/gpt-4o-mini":{"name":"GPT-4o mini","context":128000,"output":16384,"in":0.15,"out":0.6,"reasoning":false,"cacheRead":0.075,"toolCall":true},"openai/gpt-oss-20b":{"name":"gpt-oss-20b","context":131072,"output":131072,"in":0.029,"out":0.14,"reasoning":true,"toolCall":true},"openai/gpt-5-codex":{"name":"GPT-5-Codex","context":400000,"output":128000,"in":1.25,"out":10,"reasoning":true,"cacheRead":0.125,"toolCall":true},"openai/gpt-5.2-codex":{"name":"GPT-5.2 Codex","context":400000,"output":128000,"in":1.75,"out":14,"reasoning":true,"cacheRead":0.175,"toolCall":true},"openai/gpt-oss-20b:free":{"name":"gpt-oss-20b (free)","context":131072,"output":32768,"in":0,"out":0,"reasoning":true,"toolCall":true},"openai/gpt-5.1":{"name":"GPT-5.1","context":400000,"output":128000,"in":1.25,"out":10,"reasoning":true,"cacheRead":0.13,"toolCall":true},"openai/gpt-5.5":{"name":"GPT-5.5","context":1050000,"output":128000,"in":5,"out":30,"reasoning":true,"cacheRead":0.5,"toolCall":true},"thedrummer/cydonia-24b-v4.1":{"name":"Cydonia 24B V4.1","context":131072,"output":131072,"in":0.3,"out":0.5,"reasoning":false,"cacheRead":0.15,"toolCall":false},"thedrummer/skyfall-36b-v2":{"name":"Skyfall 36B V2","context":32768,"output":32768,"in":0.55,"out":0.8,"reasoning":false,"cacheRead":0.25,"toolCall":false},"thedrummer/unslopnemo-12b":{"name":"UnslopNemo 12B","context":32768,"output":32768,"in":0.4,"out":0.4,"reasoning":false,"toolCall":true},"thedrummer/rocinante-12b":{"name":"Rocinante 12B","context":32768,"output":32768,"in":0.25,"out":0.5,"reasoning":false,"toolCall":false},"bytedance/ui-tars-1.5-7b":{"name":"UI-TARS 7B ","context":128000,"output":2048,"in":0.1,"out":0.2,"reasoning":false,"cacheRead":0.1,"toolCall":false},"rekaai/reka-flash-3":{"name":"Reka Flash 3","context":65536,"output":65536,"in":0.1,"out":0.2,"reasoning":true,"toolCall":false},"rekaai/reka-edge":{"name":"Reka Edge","context":16384,"output":16384,"in":0.1,"out":0.1,"reasoning":false,"toolCall":true},"mistralai/mistral-large-2407":{"name":"Mistral Large 2407","context":131072,"output":131072,"in":2,"out":6,"reasoning":false,"cacheRead":0.2,"toolCall":true},"mistralai/mistral-small-3.2-24b-instruct":{"name":"Mistral Small 3.2 24B","context":128000,"output":16384,"in":0.075,"out":0.2,"reasoning":false,"toolCall":true},"mistralai/mistral-nemo":{"name":"Mistral Nemo","context":131072,"output":131072,"in":0.02,"out":0.03,"reasoning":false,"toolCall":true},"mistralai/mistral-medium-3-5":{"name":"Mistral Medium 3.5","context":262144,"output":262144,"in":1.5,"out":7.5,"reasoning":true,"toolCall":true},"mistralai/ministral-8b-2512":{"name":"Ministral 3 8B 2512","context":262144,"output":262144,"in":0.15,"out":0.15,"reasoning":false,"cacheRead":0.015,"toolCall":true},"mistralai/mistral-small-3.1-24b-instruct":{"name":"Mistral Small 3.1 24B","context":128000,"output":128000,"in":0.351,"out":0.555,"reasoning":false,"toolCall":false},"mistralai/mistral-saba":{"name":"Saba","context":32768,"output":32768,"in":0.2,"out":0.6,"reasoning":false,"cacheRead":0.02,"toolCall":true},"mistralai/mistral-large":{"name":"Mistral Large","context":128000,"output":128000,"in":2,"out":6,"reasoning":false,"cacheRead":0.2,"toolCall":true},"mistralai/mistral-medium-3.1":{"name":"Mistral Medium 3.1","context":131072,"output":262144,"in":0.4,"out":2,"reasoning":false,"cacheRead":0.04,"toolCall":true},"mistralai/mistral-small-24b-instruct-2501":{"name":"Mistral Small 3","context":32768,"output":16384,"in":0.05,"out":0.08,"reasoning":false,"toolCall":false},"mistralai/ministral-3b-2512":{"name":"Ministral 3 3B 2512","context":131072,"output":131072,"in":0.1,"out":0.1,"reasoning":false,"cacheRead":0.01,"toolCall":true},"mistralai/mistral-small-2603":{"name":"Mistral Small 4","context":262144,"output":262144,"in":0.15,"out":0.6,"reasoning":true,"cacheRead":0.015,"toolCall":true},"mistralai/ministral-14b-2512":{"name":"Ministral 3 14B 2512","context":262144,"output":262144,"in":0.2,"out":0.2,"reasoning":false,"cacheRead":0.02,"toolCall":true},"mistralai/devstral-2512":{"name":"Devstral 2","context":262144,"output":262144,"in":0.4,"out":2,"reasoning":false,"cacheRead":0.04,"toolCall":true},"mistralai/mixtral-8x22b-instruct":{"name":"Mixtral 8x22B Instruct","context":65536,"output":65536,"in":2,"out":6,"reasoning":false,"cacheRead":0.2,"toolCall":true},"mistralai/mistral-medium-3":{"name":"Mistral Medium 3","context":131072,"output":131072,"in":0.4,"out":2,"reasoning":false,"cacheRead":0.04,"toolCall":true},"mistralai/voxtral-small-24b-2507":{"name":"Voxtral Small 24B 2507","context":32000,"output":32000,"in":0.1,"out":0.3,"reasoning":false,"cacheRead":0.01,"toolCall":true},"mistralai/mistral-large-2512":{"name":"Mistral Large 3","context":262144,"output":262144,"in":0.5,"out":1.5,"reasoning":false,"cacheRead":0.05,"toolCall":true},"mistralai/codestral-2508":{"name":"Codestral 2508","context":256000,"output":256000,"in":0.3,"out":0.9,"reasoning":false,"cacheRead":0.03,"toolCall":true},"morph/morph-v3-fast":{"name":"Morph V3 Fast","context":81920,"output":38000,"in":0.8,"out":1.2,"reasoning":false,"toolCall":false},"morph/morph-v3-large":{"name":"Morph V3 Large","context":262144,"output":131072,"in":0.9,"out":1.9,"reasoning":false,"toolCall":false},"bytedance-seed/seed-1.6-flash":{"name":"Seed 1.6 Flash","context":262144,"output":32768,"in":0.075,"out":0.3,"reasoning":true,"toolCall":true},"bytedance-seed/seed-1.6":{"name":"Seed 1.6","context":262144,"output":32768,"in":0.25,"out":2,"reasoning":true,"toolCall":true},"bytedance-seed/seed-2.0-mini":{"name":"Seed-2.0-Mini","context":262144,"output":131072,"in":0.1,"out":0.4,"reasoning":true,"toolCall":true},"bytedance-seed/seed-2.0-lite":{"name":"Seed-2.0-Lite","context":262144,"output":131072,"in":0.25,"out":2,"reasoning":true,"toolCall":true},"sakana/fugu-ultra":{"name":"Fugu Ultra","context":1000000,"output":128000,"in":5,"out":30,"reasoning":true,"cacheRead":0.5,"toolCall":true},"anthracite-org/magnum-v4-72b":{"name":"Magnum v4 72B","context":16384,"output":2048,"in":3,"out":5,"reasoning":false,"toolCall":false},"nvidia/nemotron-3-nano-30b-a3b:free":{"name":"Nemotron 3 Nano 30B A3B (free)","context":256000,"output":256000,"in":0,"out":0,"reasoning":true,"toolCall":true},"nvidia/nemotron-nano-9b-v2:free":{"name":"Nemotron Nano 9B V2 (free)","context":128000,"output":128000,"in":0,"out":0,"reasoning":true,"toolCall":true},"nvidia/nemotron-nano-12b-v2-vl:free":{"name":"Nemotron Nano 12B 2 VL (free)","context":128000,"output":128000,"in":0,"out":0,"reasoning":true,"toolCall":true},"nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free":{"name":"Nemotron 3 Nano Omni (free)","context":256000,"output":65536,"in":0,"out":0,"reasoning":true,"toolCall":true},"nvidia/nemotron-3-ultra-550b-a55b:free":{"name":"Nemotron 3 Ultra (free)","context":1000000,"output":65536,"in":0,"out":0,"reasoning":true,"toolCall":true},"nvidia/nemotron-3-ultra-550b-a55b":{"name":"Nemotron 3 Ultra 550B A55B","context":262144,"output":16384,"in":0.5,"out":2.2,"reasoning":true,"cacheRead":0.1,"toolCall":true},"nvidia/nemotron-3.5-content-safety:free":{"name":"Nemotron 3.5 Content Safety (free)","context":128000,"output":8192,"in":0,"out":0,"reasoning":true,"toolCall":false},"nvidia/nemotron-3-nano-30b-a3b":{"name":"Nemotron 3 Nano 30B A3B","context":262144,"output":228000,"in":0.05,"out":0.2,"reasoning":true,"toolCall":true},"nvidia/llama-3.3-nemotron-super-49b-v1.5":{"name":"Llama 3.3 Nemotron Super 49B v1.5","context":131072,"output":16384,"in":0.4,"out":0.4,"reasoning":true,"toolCall":true},"nvidia/nemotron-3-super-120b-a12b:free":{"name":"Nemotron 3 Super (free)","context":262144,"output":262144,"in":0,"out":0,"reasoning":true,"toolCall":true},"nvidia/nemotron-3-super-120b-a12b":{"name":"Nemotron 3 Super 120B A12B","context":262144,"output":16384,"in":0.085,"out":0.4,"reasoning":true,"toolCall":true},"cognitivecomputations/dolphin-mistral-24b-venice-edition:free":{"name":"Uncensored (free)","context":32768,"output":32768,"in":0,"out":0,"reasoning":false,"toolCall":false},"xiaomi/mimo-v2.5":{"name":"MiMo-V2.5","context":32000,"output":131072,"in":0.105,"out":0.28,"reasoning":true,"toolCall":true},"xiaomi/mimo-v2.5-pro":{"name":"MiMo-V2.5-Pro","context":1048576,"output":131072,"in":0.435,"out":0.87,"reasoning":true,"cacheRead":0.0036,"toolCall":true},"inception/mercury-2":{"name":"Mercury 2","context":128000,"output":50000,"in":0.25,"out":0.75,"reasoning":true,"cacheRead":0.025,"toolCall":true},"anthropic/claude-sonnet-4.5":{"name":"Claude Sonnet 4.5 (latest)","context":1000000,"output":64000,"in":3,"out":15,"reasoning":true,"cacheRead":0.3,"toolCall":true},"anthropic/claude-sonnet-4":{"name":"Claude Sonnet 4","context":1000000,"output":64000,"in":3,"out":15,"reasoning":true,"cacheRead":0.3,"toolCall":true},"anthropic/claude-haiku-4.5":{"name":"Claude Haiku 4.5 (latest)","context":200000,"output":64000,"in":1,"out":5,"reasoning":true,"cacheRead":0.1,"toolCall":true},"anthropic/claude-opus-4.7-fast":{"name":"Claude Opus 4.7 (Fast)","context":1000000,"output":128000,"in":30,"out":150,"reasoning":true,"cacheRead":3,"toolCall":true},"anthropic/claude-opus-4.7":{"name":"Claude Opus 4.7","context":1000000,"output":128000,"in":5,"out":25,"reasoning":true,"cacheRead":0.5,"toolCall":true},"anthropic/claude-opus-4.8":{"name":"Claude Opus 4.8","context":1000000,"output":128000,"in":5,"out":25,"reasoning":true,"cacheRead":0.5,"toolCall":true},"anthropic/claude-opus-4.1":{"name":"Claude Opus 4.1 (latest)","context":200000,"output":32000,"in":15,"out":75,"reasoning":true,"cacheRead":1.5,"toolCall":true},"anthropic/claude-opus-4.5":{"name":"Claude Opus 4.5 (latest)","context":200000,"output":64000,"in":5,"out":25,"reasoning":true,"cacheRead":0.5,"toolCall":true},"anthropic/claude-sonnet-4.6":{"name":"Claude Sonnet 4.6","context":1000000,"output":128000,"in":3,"out":15,"reasoning":true,"cacheRead":0.3,"toolCall":true},"anthropic/claude-3-haiku":{"name":"Claude 3 Haiku","context":200000,"output":4096,"in":0.25,"out":1.25,"reasoning":false,"cacheRead":0.03,"toolCall":true},"anthropic/claude-opus-4":{"name":"Claude Opus 4","context":200000,"output":32000,"in":15,"out":75,"reasoning":true,"cacheRead":1.5,"toolCall":true},"anthropic/claude-opus-4.8-fast":{"name":"Claude Opus 4.8 (Fast)","context":1000000,"output":128000,"in":10,"out":50,"reasoning":true,"cacheRead":1,"toolCall":true},"anthropic/claude-opus-4.6":{"name":"Claude Opus 4.6","context":1000000,"output":128000,"in":5,"out":25,"reasoning":true,"cacheRead":0.5,"toolCall":true},"tencent/hunyuan-a13b-instruct":{"name":"Hunyuan A13B Instruct","context":131072,"output":131072,"in":0.14,"out":0.57,"reasoning":true,"toolCall":false},"tencent/hy3-preview":{"name":"Hy3 preview","context":262144,"output":262144,"in":0.063,"out":0.21,"reasoning":true,"cacheRead":0.021,"toolCall":true},"deepcogito/cogito-v2.1-671b":{"name":"Cogito v2.1 671B","context":128000,"output":128000,"in":1.25,"out":1.25,"reasoning":true,"toolCall":false},"cohere/command-a":{"name":"Command A","context":256000,"output":8192,"in":2.5,"out":10,"reasoning":false,"toolCall":false},"cohere/command-r-08-2024":{"name":"Command R","context":128000,"output":4000,"in":0.15,"out":0.6,"reasoning":false,"toolCall":true},"cohere/command-r7b-12-2024":{"name":"Command R7B","context":128000,"output":4000,"in":0.0375,"out":0.15,"reasoning":false,"toolCall":false},"cohere/command-r-plus-08-2024":{"name":"Command R+","context":128000,"output":4000,"in":2.5,"out":10,"reasoning":false,"toolCall":true},"cohere/north-mini-code:free":{"name":"North Mini Code (free)","context":256000,"output":64000,"in":0,"out":0,"reasoning":true,"toolCall":true},"gryphe/mythomax-l2-13b":{"name":"MythoMax 13B","context":4096,"output":4096,"in":0.06,"out":0.06,"reasoning":false,"toolCall":false},"stepfun/step-3.7-flash":{"name":"Step 3.7 Flash","context":256000,"output":256000,"in":0.2,"out":1.15,"reasoning":true,"cacheRead":0.04,"toolCall":true},"stepfun/step-3.5-flash":{"name":"Step 3.5 Flash","context":262144,"output":65536,"in":0.1,"out":0.3,"reasoning":true,"toolCall":true},"nex-agi/nex-n2-pro":{"name":"Nex-N2-Pro","context":262144,"output":262144,"in":0.25,"out":1,"reasoning":true,"cacheRead":0.025,"toolCall":false},"undi95/remm-slerp-l2-13b":{"name":"ReMM SLERP 13B","context":6144,"output":4096,"in":0.45,"out":0.65,"reasoning":false,"toolCall":false},"~openai/gpt-mini-latest":{"name":"OpenAI GPT Mini Latest","context":400000,"output":128000,"in":0.75,"out":4.5,"reasoning":true,"cacheRead":0.075,"toolCall":true},"~openai/gpt-latest":{"name":"OpenAI GPT Latest","context":1050000,"output":128000,"in":5,"out":30,"reasoning":true,"cacheRead":0.5,"toolCall":true},"~moonshotai/kimi-latest":{"name":"MoonshotAI Kimi Latest","context":262144,"output":262144,"in":0.55,"out":3.2,"reasoning":true,"cacheRead":0.11,"toolCall":true},"relace/relace-search":{"name":"Relace Search","context":256000,"output":128000,"in":1,"out":3,"reasoning":false,"toolCall":true},"relace/relace-apply-3":{"name":"Relace Apply 3","context":256000,"output":128000,"in":0.85,"out":1.25,"reasoning":false,"toolCall":false},"ai21/jamba-large-1.7":{"name":"Jamba Large 1.7","context":256000,"output":4096,"in":2,"out":8,"reasoning":false,"toolCall":true},"arcee-ai/coder-large":{"name":"Coder Large","context":32768,"output":32768,"in":0.5,"out":0.8,"reasoning":false,"toolCall":false},"arcee-ai/virtuoso-large":{"name":"Virtuoso Large","context":131072,"output":64000,"in":0.75,"out":1.2,"reasoning":false,"toolCall":true},"arcee-ai/trinity-large-thinking":{"name":"Trinity Large Thinking","context":262144,"output":80000,"in":0.25,"out":0.8,"reasoning":true,"cacheRead":0.06,"toolCall":true},"arcee-ai/trinity-mini":{"name":"Trinity Mini","context":131072,"output":131072,"in":0.045,"out":0.15,"reasoning":true,"toolCall":true},"mancer/weaver":{"name":"Weaver (alpha)","context":8000,"output":2000,"in":0.75,"out":1,"reasoning":false,"toolCall":false},"perplexity/sonar-reasoning-pro":{"name":"Sonar Reasoning Pro","context":128000,"output":128000,"in":2,"out":8,"reasoning":true,"toolCall":false},"perplexity/sonar":{"name":"Sonar","context":127072,"output":127072,"in":1,"out":1,"reasoning":false,"toolCall":false},"perplexity/sonar-pro":{"name":"Sonar Pro","context":200000,"output":8000,"in":3,"out":15,"reasoning":false,"toolCall":false},"perplexity/sonar-pro-search":{"name":"Sonar Pro Search","context":200000,"output":8000,"in":3,"out":15,"reasoning":true,"toolCall":false},"perplexity/sonar-deep-research":{"name":"Sonar Deep Research","context":128000,"output":128000,"in":2,"out":8,"reasoning":true,"toolCall":false},"switchpoint/router":{"name":"Switchpoint Router","context":131072,"output":131072,"in":0.85,"out":3.4,"reasoning":true,"toolCall":false},"openrouter/bodybuilder":{"name":"Body Builder (beta)","context":128000,"output":128000,"in":null,"out":null,"reasoning":false,"toolCall":false},"openrouter/free":{"name":"Free Models Router","context":200000,"output":8000,"in":0,"out":0,"reasoning":true,"toolCall":true},"openrouter/fusion":{"name":"Fusion","context":1000000,"output":128000,"in":null,"out":null,"reasoning":false,"toolCall":false},"openrouter/owl-alpha":{"name":"Owl Alpha","context":1048756,"output":262144,"in":0,"out":0,"reasoning":false,"toolCall":true},"openrouter/pareto-code":{"name":"Pareto Code Router","context":2000000,"output":200000,"in":null,"out":null,"reasoning":false,"toolCall":false},"openrouter/auto":{"name":"Auto Router","context":2000000,"output":2000000,"in":null,"out":null,"reasoning":true,"toolCall":true},"qwen/qwen3.5-plus-20260420":{"name":"Qwen3.5 Plus 2026-04-20","context":1000000,"output":65536,"in":0.3,"out":1.8,"reasoning":true,"toolCall":true},"qwen/qwen3-next-80b-a3b-instruct:free":{"name":"Qwen3 Next 80B A3B Instruct (free)","context":262144,"output":262144,"in":0,"out":0,"reasoning":false,"toolCall":true},"qwen/qwen3-vl-235b-a22b-thinking":{"name":"Qwen3 VL 235B A22B Thinking","context":131072,"output":32768,"in":0.26,"out":2.6,"reasoning":true,"toolCall":true},"qwen/qwen3-vl-30b-a3b-thinking":{"name":"Qwen3 VL 30B A3B Thinking","context":131072,"output":32768,"in":0.13,"out":1.56,"reasoning":true,"toolCall":true},"qwen/qwen3-coder-plus":{"name":"Qwen3 Coder Plus","context":1000000,"output":65536,"in":0.65,"out":3.25,"reasoning":false,"cacheRead":0.13,"toolCall":true},"qwen/qwen-plus":{"name":"Qwen Plus","context":1000000,"output":32768,"in":0.26,"out":0.78,"reasoning":false,"cacheRead":0.052,"toolCall":true},"qwen/qwen3-coder-30b-a3b-instruct":{"name":"Qwen3-Coder 30B-A3B Instruct","context":160000,"output":32768,"in":0.07,"out":0.27,"reasoning":false,"toolCall":true},"qwen/qwen3-32b":{"name":"Qwen3 32B","context":40960,"output":16384,"in":0.08,"out":0.28,"reasoning":true,"toolCall":true},"qwen/qwen3-next-80b-a3b-instruct":{"name":"Qwen3-Next 80B-A3B Instruct","context":262144,"output":16384,"in":0.09,"out":1.1,"reasoning":false,"toolCall":true},"qwen/qwen3-vl-8b-instruct":{"name":"Qwen3 VL 8B Instruct","context":131072,"output":32768,"in":0.08,"out":0.5,"reasoning":false,"toolCall":true},"qwen/qwen3.7-plus":{"name":"Qwen3.7 Plus","context":1000000,"output":65536,"in":0.32,"out":1.28,"reasoning":true,"cacheRead":0.064,"toolCall":true},"qwen/qwen3.6-35b-a3b":{"name":"Qwen3.6 35B-A3B","context":262144,"output":262144,"in":0.14,"out":1,"reasoning":true,"toolCall":true},"qwen/qwen3.7-max":{"name":"Qwen3.7 Max","context":1000000,"output":65536,"in":1.25,"out":3.75,"reasoning":true,"cacheRead":0.25,"toolCall":true},"qwen/qwen3-max":{"name":"Qwen3 Max","context":262144,"output":32768,"in":0.78,"out":3.9,"reasoning":false,"cacheRead":0.156,"toolCall":true},"qwen/qwen3-8b":{"name":"Qwen3 8B","context":40960,"output":8192,"in":0.05,"out":0.4,"reasoning":true,"cacheRead":0.05,"toolCall":true},"qwen/qwen-plus-2025-07-28":{"name":"Qwen Plus 0728","context":1000000,"output":32768,"in":0.26,"out":0.78,"reasoning":false,"toolCall":true},"qwen/qwen3.5-flash-02-23":{"name":"Qwen3.5-Flash","context":1000000,"output":65536,"in":0.065,"out":0.26,"reasoning":true,"toolCall":true},"qwen/qwen3-coder:free":{"name":"Qwen3 Coder 480B A35B (free)","context":262000,"output":262000,"in":0,"out":0,"reasoning":false,"toolCall":true},"qwen/qwen3-30b-a3b-instruct-2507":{"name":"Qwen3 30B A3B Instruct 2507","context":128000,"output":32000,"in":0.04815,"out":0.19305,"reasoning":false,"toolCall":true},"qwen/qwen-2.5-coder-32b-instruct":{"name":"Qwen2.5 Coder 32B Instruct","context":32768,"output":32768,"in":0.66,"out":1,"reasoning":false,"toolCall":false},"qwen/qwen3-next-80b-a3b-thinking":{"name":"Qwen3-Next 80B-A3B (Thinking)","context":131072,"output":32768,"in":0.0975,"out":0.78,"reasoning":true,"toolCall":true},"qwen/qwen3-235b-a22b-thinking-2507":{"name":"Qwen3 235B A22B Thinking 2507","context":262144,"output":262144,"in":0.1,"out":0.1,"reasoning":true,"cacheRead":0.1,"toolCall":true},"qwen/qwen3-vl-32b-instruct":{"name":"Qwen3 VL 32B Instruct","context":131072,"output":32768,"in":0.104,"out":0.416,"reasoning":false,"toolCall":true},"qwen/qwen3-coder":{"name":"Qwen3 Coder 480B A35B","context":262144,"output":65536,"in":0.22,"out":1.8,"reasoning":false,"toolCall":true},"qwen/qwen3.6-flash":{"name":"Qwen3.6 Flash","context":1000000,"output":65536,"in":0.1875,"out":1.125,"reasoning":true,"toolCall":true},"qwen/qwen3.5-plus-02-15":{"name":"Qwen3.5 Plus 2026-02-15","context":1000000,"output":65536,"in":0.26,"out":1.56,"reasoning":true,"toolCall":true},"qwen/qwen-2.5-7b-instruct":{"name":"Qwen2.5 7B Instruct","context":32768,"output":32768,"in":0.04,"out":0.1,"reasoning":false,"toolCall":true},"qwen/qwen3-vl-8b-thinking":{"name":"Qwen3 VL 8B Thinking","context":131072,"output":32768,"in":0.117,"out":1.365,"reasoning":true,"toolCall":true},"qwen/qwen3-max-thinking":{"name":"Qwen3 Max Thinking","context":262144,"output":32768,"in":0.78,"out":3.9,"reasoning":true,"toolCall":true},"qwen/qwen3-30b-a3b-thinking-2507":{"name":"Qwen3 30B A3B Thinking 2507","context":131072,"output":131072,"in":0.08,"out":0.4,"reasoning":true,"cacheRead":0.08,"toolCall":true},"qwen/qwen2.5-vl-72b-instruct":{"name":"Qwen2.5 VL 72B Instruct","context":128000,"output":128000,"in":0.8,"out":1,"reasoning":false,"cacheRead":0.4,"toolCall":false},"qwen/qwen3.5-27b":{"name":"Qwen3.5 27B","context":262144,"output":65536,"in":0.195,"out":1.56,"reasoning":true,"toolCall":true},"qwen/qwen3-235b-a22b":{"name":"Qwen3 235B-A22B","context":131072,"output":8192,"in":0.455,"out":1.82,"reasoning":true,"toolCall":true},"qwen/qwen-2.5-72b-instruct":{"name":"Qwen2.5 72B Instruct","context":32768,"output":16384,"in":0.36,"out":0.4,"reasoning":false,"toolCall":true},"qwen/qwen-plus-2025-07-28:thinking":{"name":"Qwen Plus 0728 (thinking)","context":1000000,"output":32768,"in":0.26,"out":0.78,"reasoning":true,"toolCall":true},"qwen/qwen3-coder-next":{"name":"Qwen3 Coder Next","context":262144,"output":262144,"in":0.11,"out":0.8,"reasoning":false,"cacheRead":0.07,"toolCall":true},"qwen/qwen3.6-27b":{"name":"Qwen3.6 27B","context":262140,"output":262140,"in":0.2596,"out":2.385,"reasoning":true,"toolCall":true},"qwen/qwen3.5-35b-a3b":{"name":"Qwen3.5 35B-A3B","context":262144,"output":81920,"in":0.14,"out":1,"reasoning":true,"cacheRead":0.05,"toolCall":true},"qwen/qwen3.5-9b":{"name":"Qwen3.5 9B","context":262144,"output":262144,"in":0.1,"out":0.15,"reasoning":true,"toolCall":true},"qwen/qwen3.5-397b-a17b":{"name":"Qwen3.5 397B-A17B","context":131072,"output":64000,"in":0.385,"out":2.45,"reasoning":true,"toolCall":true},"qwen/qwen3-vl-30b-a3b-instruct":{"name":"Qwen3 VL 30B A3B Instruct","context":131072,"output":32768,"in":0.13,"out":0.52,"reasoning":false,"toolCall":true},"qwen/qwen3-235b-a22b-2507":{"name":"Qwen3 235B A22B Instruct 2507","context":262144,"output":16384,"in":0.09,"out":0.1,"reasoning":false,"toolCall":true},"qwen/qwen3-coder-flash":{"name":"Qwen3 Coder Flash","context":1000000,"output":65536,"in":0.195,"out":0.975,"reasoning":false,"cacheRead":0.039,"toolCall":true},"qwen/qwen3-14b":{"name":"Qwen3 14B","context":40960,"output":40960,"in":0.1,"out":0.24,"reasoning":true,"toolCall":true},"qwen/qwen3-vl-235b-a22b-instruct":{"name":"Qwen3 VL 235B A22B Instruct","context":262144,"output":16384,"in":0.2,"out":0.88,"reasoning":false,"cacheRead":0.11,"toolCall":true},"qwen/qwen3-30b-a3b":{"name":"Qwen3 30B A3B","context":40960,"output":16384,"in":0.12,"out":0.5,"reasoning":true,"toolCall":true},"qwen/qwen3.6-max-preview":{"name":"Qwen3.6 Max Preview","context":262144,"output":65536,"in":1.04,"out":6.24,"reasoning":true,"toolCall":true},"qwen/qwen3.5-122b-a10b":{"name":"Qwen3.5 122B-A10B","context":262144,"output":262144,"in":0.26,"out":2.08,"reasoning":true,"toolCall":true},"qwen/qwen3.6-plus":{"name":"Qwen3.6 Plus","context":1000000,"output":65536,"in":0.325,"out":1.95,"reasoning":true,"toolCall":true},"amazon/nova-lite-v1":{"name":"Nova Lite 1.0","context":300000,"output":5120,"in":0.06,"out":0.24,"reasoning":false,"toolCall":true},"amazon/nova-premier-v1":{"name":"Nova Premier 1.0","context":1000000,"output":32000,"in":2.5,"out":12.5,"reasoning":false,"cacheRead":0.625,"toolCall":true},"amazon/nova-pro-v1":{"name":"Nova Pro 1.0","context":300000,"output":5120,"in":0.8,"out":3.2,"reasoning":false,"toolCall":true},"amazon/nova-micro-v1":{"name":"Nova Micro 1.0","context":128000,"output":5120,"in":0.035,"out":0.14,"reasoning":false,"toolCall":true},"amazon/nova-2-lite-v1":{"name":"Nova 2 Lite","context":1000000,"output":65535,"in":0.3,"out":2.5,"reasoning":true,"toolCall":true},"aion-labs/aion-rp-llama-3.1-8b":{"name":"Aion-RP 1.0 (8B)","context":32768,"output":32768,"in":0.8,"out":1.6,"reasoning":false,"toolCall":false},"aion-labs/aion-1.0-mini":{"name":"Aion-1.0-Mini","context":131072,"output":32768,"in":0.7,"out":1.4,"reasoning":true,"toolCall":false},"aion-labs/aion-2.0":{"name":"Aion-2.0","context":131072,"output":32768,"in":0.8,"out":1.6,"reasoning":true,"cacheRead":0.2,"toolCall":false},"aion-labs/aion-1.0":{"name":"Aion-1.0","context":131072,"output":32768,"in":4,"out":8,"reasoning":true,"toolCall":false},"inflection/inflection-3-pi":{"name":"Inflection 3 Pi","context":8000,"output":1024,"in":2.5,"out":10,"reasoning":false,"toolCall":false},"inflection/inflection-3-productivity":{"name":"Inflection 3 Productivity","context":8000,"output":1024,"in":2.5,"out":10,"reasoning":false,"toolCall":false},"sao10k/l3.1-euryale-70b":{"name":"Llama 3.1 Euryale 70B v2.2","context":131072,"output":16384,"in":0.85,"out":0.85,"reasoning":false,"toolCall":true},"sao10k/l3.3-euryale-70b":{"name":"Llama 3.3 Euryale 70B","context":131072,"output":16384,"in":0.65,"out":0.75,"reasoning":false,"toolCall":false},"sao10k/l3-lunaris-8b":{"name":"Llama 3 8B Lunaris","context":8192,"output":16384,"in":0.04,"out":0.05,"reasoning":false,"toolCall":false},"sao10k/l3.1-70b-hanami-x1":{"name":"Llama 3.1 70B Hanami x1","context":16000,"output":16000,"in":3,"out":3,"reasoning":false,"toolCall":false},"upstage/solar-pro-3":{"name":"Solar Pro 3","context":128000,"output":128000,"in":0.15,"out":0.6,"reasoning":true,"cacheRead":0.015,"toolCall":true},"allenai/olmo-3-32b-think":{"name":"Olmo 3 32B Think","context":65536,"output":65536,"in":0.15,"out":0.5,"reasoning":true,"toolCall":false},"deepseek/deepseek-r1-0528":{"name":"R1 0528","context":163840,"output":32768,"in":0.5,"out":2.15,"reasoning":true,"cacheRead":0.35,"toolCall":true},"deepseek/deepseek-v4-flash":{"name":"DeepSeek V4 Flash","context":1000000,"output":65536,"in":0.09,"out":0.18,"reasoning":true,"cacheRead":0.02,"toolCall":true},"deepseek/deepseek-v3.1-terminus":{"name":"DeepSeek V3.1 Terminus","context":163840,"output":32768,"in":0.27,"out":0.95,"reasoning":true,"cacheRead":0.13,"toolCall":true},"deepseek/deepseek-r1-distill-llama-70b":{"name":"R1 Distill Llama 70B","context":8192,"output":8192,"in":0.8,"out":0.8,"reasoning":true,"toolCall":false},"deepseek/deepseek-v4-pro":{"name":"DeepSeek V4 Pro","context":1048576,"output":384000,"in":0.435,"out":0.87,"reasoning":true,"cacheRead":0.003625,"toolCall":true},"deepseek/deepseek-r1":{"name":"DeepSeek-R1","context":64000,"output":16000,"in":0.7,"out":2.5,"reasoning":true,"toolCall":true},"deepseek/deepseek-v3.2-exp":{"name":"DeepSeek V3.2 Exp","context":163840,"output":65536,"in":0.27,"out":0.41,"reasoning":true,"toolCall":true},"deepseek/deepseek-chat-v3-0324":{"name":"DeepSeek V3 0324","context":163840,"output":16384,"in":0.2,"out":0.77,"reasoning":false,"cacheRead":0.135,"toolCall":true},"deepseek/deepseek-chat":{"name":"DeepSeek Chat","context":128000,"output":16000,"in":0.2002,"out":0.8001,"reasoning":false,"toolCall":true},"deepseek/deepseek-v3.2":{"name":"DeepSeek V3.2","context":128000,"output":64000,"in":0.2288,"out":0.3432,"reasoning":true,"cacheRead":0.02288,"toolCall":true},"deepseek/deepseek-chat-v3.1":{"name":"DeepSeek V3.1","context":163840,"output":32768,"in":0.21,"out":0.79,"reasoning":true,"cacheRead":0.13,"toolCall":true},"minimax/minimax-m2.5":{"name":"MiniMax-M2.5","context":196608,"output":196608,"in":0.12,"out":0.48,"reasoning":true,"toolCall":true},"minimax/minimax-m2.1":{"name":"MiniMax-M2.1","context":196608,"output":196608,"in":0.29,"out":0.95,"reasoning":true,"cacheRead":0.03,"toolCall":true},"minimax/minimax-01":{"name":"MiniMax-01","context":1000192,"output":1000192,"in":0.2,"out":1.1,"reasoning":false,"toolCall":false},"minimax/minimax-m3":{"name":"MiniMax-M3","context":524288,"output":512000,"in":0.3,"out":1.2,"reasoning":true,"cacheRead":0.06,"toolCall":true},"minimax/minimax-m2":{"name":"MiniMax-M2","context":196608,"output":196608,"in":0.255,"out":1,"reasoning":true,"cacheRead":0.03,"toolCall":true},"minimax/minimax-m2-her":{"name":"MiniMax M2-her","context":65536,"output":2048,"in":0.3,"out":1.2,"reasoning":false,"cacheRead":0.03,"toolCall":false},"minimax/minimax-m2.7":{"name":"MiniMax-M2.7","context":196608,"output":196608,"in":0.18,"out":0.72,"reasoning":true,"toolCall":true},"minimax/minimax-m1":{"name":"MiniMax M1","context":1000000,"output":40000,"in":0.4,"out":2.2,"reasoning":true,"toolCall":true},"kwaipilot/kat-coder-pro-v2":{"name":"KAT-Coder-Pro V2","context":256000,"output":80000,"in":0.3,"out":1.2,"reasoning":false,"cacheRead":0.06,"toolCall":true},"nousresearch/hermes-3-llama-3.1-405b:free":{"name":"Hermes 3 405B Instruct (free)","context":131072,"output":131072,"in":0,"out":0,"reasoning":false,"toolCall":false},"nousresearch/hermes-4-405b":{"name":"Hermes 4 405B","context":131072,"output":131072,"in":1,"out":3,"reasoning":true,"toolCall":false},"nousresearch/hermes-3-llama-3.1-70b":{"name":"Hermes 3 70B Instruct","context":131072,"output":16384,"in":0.7,"out":0.7,"reasoning":false,"toolCall":false},"nousresearch/hermes-3-llama-3.1-405b":{"name":"Hermes 3 405B Instruct","context":131072,"output":16384,"in":1,"out":1,"reasoning":false,"toolCall":false},"nousresearch/hermes-4-70b":{"name":"Hermes 4 70B","context":131072,"output":131072,"in":0.13,"out":0.4,"reasoning":true,"toolCall":false}}},"togetherai":{"name":"Together AI","npm":"@ai-sdk/togetherai","models":{"LiquidAI/LFM2-24B-A2B":{"name":"LFM2-24B-A2B","context":32768,"output":32768,"in":0.03,"out":0.12,"reasoning":false,"toolCall":false},"meta-llama/Meta-Llama-3-8B-Instruct-Lite":{"name":"Meta Llama 3 8B Instruct Lite","context":8192,"output":8192,"in":0.14,"out":0.14,"reasoning":false,"toolCall":false},"meta-llama/Llama-3.3-70B-Instruct-Turbo":{"name":"Llama 3.3 70B","context":131072,"output":131072,"in":0.88,"out":0.88,"reasoning":false,"toolCall":true},"moonshotai/Kimi-K2.6":{"name":"Kimi K2.6","context":262144,"output":131000,"in":1.2,"out":4.5,"reasoning":true,"cacheRead":0.2,"toolCall":true},"moonshotai/Kimi-K2.5":{"name":"Kimi K2.5","context":262144,"output":262144,"in":0.5,"out":2.8,"reasoning":true,"toolCall":true},"moonshotai/Kimi-K2.7-Code":{"name":"Kimi K2.7 Code","context":262144,"output":131072,"in":0.95,"out":4,"reasoning":true,"cacheRead":0.19,"toolCall":true},"google/gemma-4-31B-it":{"name":"Gemma 4 31B Instruct","context":262144,"output":131072,"in":0.39,"out":0.97,"reasoning":true,"toolCall":true},"google/gemma-3n-E4B-it":{"name":"Gemma 3N E4B Instruct","context":32768,"output":32768,"in":0.06,"out":0.12,"reasoning":false,"toolCall":false},"Qwen/Qwen3.7-Max":{"name":"Qwen3.7 Max","context":1000000,"output":500000,"in":1.25,"out":3.75,"reasoning":false,"toolCall":true},"Qwen/Qwen3.6-Plus":{"name":"Qwen3.6 Plus","context":1000000,"output":500000,"in":0.5,"out":3,"reasoning":true,"toolCall":true},"Qwen/Qwen3.5-397B-A17B":{"name":"Qwen3.5 397B A17B","context":262144,"output":130000,"in":0.6,"out":3.6,"reasoning":true,"toolCall":true},"Qwen/Qwen3-Coder-Next-FP8":{"name":"Qwen3 Coder Next FP8","context":262144,"output":262144,"in":0.5,"out":1.2,"reasoning":false,"toolCall":true},"Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8":{"name":"Qwen3 Coder 480B A35B Instruct","context":262144,"output":262144,"in":2,"out":2,"reasoning":false,"toolCall":true},"Qwen/Qwen3-235B-A22B-Instruct-2507-tput":{"name":"Qwen3 235B A22B Instruct 2507 FP8","context":262144,"output":262144,"in":0.2,"out":0.6,"reasoning":false,"toolCall":true},"Qwen/Qwen2.5-7B-Instruct-Turbo":{"name":"Qwen 2.5 7B Instruct Turbo","context":32768,"output":32768,"in":0.3,"out":0.3,"reasoning":false,"toolCall":true},"Qwen/Qwen3.5-9B":{"name":"Qwen3.5 9B","context":262144,"output":65536,"in":0.17,"out":0.25,"reasoning":true,"toolCall":true},"openai/gpt-oss-120b":{"name":"GPT OSS 120B","context":131072,"output":131072,"in":0.15,"out":0.6,"reasoning":true,"toolCall":true},"openai/gpt-oss-20b":{"name":"GPT OSS 20B","context":131072,"output":131072,"in":0.05,"out":0.2,"reasoning":true,"toolCall":true},"pearl-ai/gemma-4-31b-it":{"name":"Pearl AI Gemma 4 31B Instruct","context":32000,"output":32000,"in":0.28,"out":0.86,"reasoning":true,"toolCall":false},"nvidia/nemotron-3-ultra-550b-a55b":{"name":"Nemotron 3 Ultra 550B A55B","context":512300,"output":512300,"in":0.6,"out":3.6,"reasoning":true,"cacheRead":0.2,"toolCall":true},"deepcogito/cogito-v2-1-671b":{"name":"Cogito v2.1 671B","context":163840,"output":163840,"in":1.25,"out":1.25,"reasoning":true,"toolCall":false},"zai-org/GLM-5":{"name":"GLM-5","context":202752,"output":131072,"in":1,"out":3.2,"reasoning":true,"toolCall":true},"zai-org/GLM-5.2":{"name":"GLM-5.2","context":262144,"output":164000,"in":1.4,"out":4.4,"reasoning":true,"cacheRead":0.26,"toolCall":true},"zai-org/GLM-5.1":{"name":"GLM-5.1","context":202752,"output":131072,"in":1.4,"out":4.4,"reasoning":true,"toolCall":true},"deepseek-ai/DeepSeek-R1":{"name":"DeepSeek-R1","context":163839,"output":163839,"in":3,"out":7,"reasoning":true,"toolCall":false},"deepseek-ai/DeepSeek-V3-1":{"name":"DeepSeek V3.1","context":131072,"output":131072,"in":0.6,"out":1.7,"reasoning":true,"toolCall":true},"deepseek-ai/DeepSeek-V4-Pro":{"name":"DeepSeek V4 Pro","context":512000,"output":384000,"in":1.74,"out":3.48,"reasoning":true,"cacheRead":0.2,"toolCall":true},"deepseek-ai/DeepSeek-V3":{"name":"DeepSeek-V3","context":131072,"output":131072,"in":1.25,"out":1.25,"reasoning":false,"toolCall":true},"MiniMaxAI/MiniMax-M2.5":{"name":"MiniMax-M2.5","context":204800,"output":131072,"in":0.3,"out":1.2,"reasoning":true,"cacheRead":0.06,"toolCall":true},"MiniMaxAI/MiniMax-M3":{"name":"MiniMax-M3","context":524288,"output":250000,"in":0.3,"out":1.2,"reasoning":true,"cacheRead":0.06,"toolCall":true},"MiniMaxAI/MiniMax-M2.7":{"name":"MiniMax-M2.7","context":202752,"output":131072,"in":0.3,"out":1.2,"reasoning":true,"cacheRead":0.06,"toolCall":true},"essentialai/Rnj-1-Instruct":{"name":"Rnj-1 Instruct","context":32768,"output":32768,"in":0.15,"out":0.15,"reasoning":false,"toolCall":true}}},"alibaba":{"name":"Alibaba","npm":"@ai-sdk/openai-compatible","models":{"qwen3-omni-flash":{"name":"Qwen3-Omni Flash","context":65536,"output":16384,"in":0.43,"out":1.66,"reasoning":true,"toolCall":true},"qwen3-coder-plus":{"name":"Qwen3 Coder Plus","context":1048576,"output":65536,"in":1,"out":5,"reasoning":false,"toolCall":true},"qwen-plus":{"name":"Qwen Plus","context":1000000,"output":32768,"in":0.4,"out":1.2,"reasoning":true,"toolCall":true},"qwen3-coder-30b-a3b-instruct":{"name":"Qwen3-Coder 30B-A3B Instruct","context":262144,"output":65536,"in":0.45,"out":2.25,"reasoning":false,"toolCall":true},"qwen3-omni-flash-realtime":{"name":"Qwen3-Omni Flash Realtime","context":65536,"output":16384,"in":0.52,"out":1.99,"reasoning":false,"toolCall":true},"qwen3-32b":{"name":"Qwen3 32B","context":131072,"output":16384,"in":0.7,"out":2.8,"reasoning":true,"toolCall":true},"qwen-omni-turbo-realtime":{"name":"Qwen-Omni Turbo Realtime","context":32768,"output":2048,"in":0.27,"out":1.07,"reasoning":false,"toolCall":true},"qwen-plus-character-ja":{"name":"Qwen Plus Character (Japanese)","context":8192,"output":512,"in":0.5,"out":1.4,"reasoning":false,"toolCall":true},"qwen3-next-80b-a3b-instruct":{"name":"Qwen3-Next 80B-A3B Instruct","context":131072,"output":32768,"in":0.5,"out":2,"reasoning":false,"toolCall":true},"qwen3.7-plus":{"name":"Qwen3.7 Plus","context":1000000,"output":65536,"in":0.5,"out":3,"reasoning":true,"cacheRead":0.05,"toolCall":true},"qwen3.6-35b-a3b":{"name":"Qwen3.6 35B-A3B","context":262144,"output":65536,"in":0.248,"out":1.485,"reasoning":true,"toolCall":true},"qwen3.7-max":{"name":"Qwen3.7 Max","context":1000000,"output":65536,"in":2.5,"out":7.5,"reasoning":true,"cacheRead":0.5,"toolCall":true},"qwen3-max":{"name":"Qwen3 Max","context":262144,"output":65536,"in":1.2,"out":6,"reasoning":false,"toolCall":true},"qwen2-5-omni-7b":{"name":"Qwen2.5-Omni 7B","context":32768,"output":2048,"in":0.1,"out":0.4,"reasoning":false,"toolCall":true},"qwen3-8b":{"name":"Qwen3 8B","context":131072,"output":8192,"in":0.18,"out":0.7,"reasoning":true,"toolCall":true},"qwen2-5-14b-instruct":{"name":"Qwen2.5 14B Instruct","context":131072,"output":8192,"in":0.35,"out":1.4,"reasoning":false,"toolCall":true},"qwen3-next-80b-a3b-thinking":{"name":"Qwen3-Next 80B-A3B (Thinking)","context":131072,"output":32768,"in":0.5,"out":6,"reasoning":true,"toolCall":true},"qvq-max":{"name":"QVQ Max","context":131072,"output":8192,"in":1.2,"out":4.8,"reasoning":true,"toolCall":true},"qwen3.6-flash":{"name":"Qwen3.6 Flash","context":1000000,"output":65536,"in":0.1875,"out":1.125,"reasoning":true,"toolCall":true},"qwen2-5-vl-72b-instruct":{"name":"Qwen2.5-VL 72B Instruct","context":131072,"output":8192,"in":2.8,"out":8.4,"reasoning":false,"toolCall":true},"qwen3-vl-plus":{"name":"Qwen3-VL Plus","context":262144,"output":32768,"in":0.2,"out":1.6,"reasoning":true,"toolCall":true},"qwen-vl-ocr":{"name":"Qwen-VL OCR","context":34096,"output":4096,"in":0.72,"out":0.72,"reasoning":false,"toolCall":false},"qwen-mt-turbo":{"name":"Qwen-MT Turbo","context":16384,"output":8192,"in":0.16,"out":0.49,"reasoning":false,"toolCall":false},"qwen-mt-plus":{"name":"Qwen-MT Plus","context":16384,"output":8192,"in":2.46,"out":7.37,"reasoning":false,"toolCall":false},"qwen3.5-plus":{"name":"Qwen3.5 Plus","context":1000000,"output":65536,"in":0.4,"out":2.4,"reasoning":true,"toolCall":true},"qwen-omni-turbo":{"name":"Qwen-Omni Turbo","context":32768,"output":2048,"in":0.07,"out":0.27,"reasoning":false,"toolCall":true},"qwen2-5-72b-instruct":{"name":"Qwen2.5 72B Instruct","context":131072,"output":8192,"in":1.4,"out":5.6,"reasoning":false,"toolCall":true},"qwen-flash":{"name":"Qwen Flash","context":1000000,"output":32768,"in":0.05,"out":0.4,"reasoning":true,"toolCall":true},"qwen3-vl-235b-a22b":{"name":"Qwen3-VL 235B-A22B","context":131072,"output":32768,"in":0.7,"out":2.8,"reasoning":true,"toolCall":true},"qwen3-vl-30b-a3b":{"name":"Qwen3-VL 30B-A3B","context":131072,"output":32768,"in":0.2,"out":0.8,"reasoning":true,"toolCall":true},"qwen-vl-max":{"name":"Qwen-VL Max","context":131072,"output":8192,"in":0.8,"out":3.2,"reasoning":false,"toolCall":true},"qwen3.5-27b":{"name":"Qwen3.5 27B","context":262144,"output":65536,"in":0.3,"out":2.4,"reasoning":true,"toolCall":true},"qwen-max":{"name":"Qwen Max","context":32768,"output":8192,"in":1.6,"out":6.4,"reasoning":false,"toolCall":true},"qwen3-235b-a22b":{"name":"Qwen3 235B-A22B","context":131072,"output":16384,"in":0.7,"out":2.8,"reasoning":true,"toolCall":true},"qwen3-livetranslate-flash-realtime":{"name":"Qwen3-LiveTranslate Flash Realtime","context":53248,"output":4096,"in":10,"out":10,"reasoning":false,"toolCall":false},"qwen3.6-27b":{"name":"Qwen3.6 27B","context":262144,"output":65536,"in":0.6,"out":3.6,"reasoning":true,"toolCall":true},"qwen3.5-35b-a3b":{"name":"Qwen3.5 35B-A3B","context":262144,"output":65536,"in":0.25,"out":2,"reasoning":true,"toolCall":true},"qwen3-coder-480b-a35b-instruct":{"name":"Qwen3-Coder 480B-A35B Instruct","context":262144,"output":65536,"in":1.5,"out":7.5,"reasoning":false,"toolCall":true},"qwq-plus":{"name":"QwQ Plus","context":131072,"output":8192,"in":0.8,"out":2.4,"reasoning":true,"toolCall":true},"qwen2-5-32b-instruct":{"name":"Qwen2.5 32B Instruct","context":131072,"output":8192,"in":0.7,"out":2.8,"reasoning":false,"toolCall":true},"qwen3.5-397b-a17b":{"name":"Qwen3.5 397B-A17B","context":262144,"output":65536,"in":0.6,"out":3.6,"reasoning":true,"toolCall":true},"qwen3-coder-flash":{"name":"Qwen3 Coder Flash","context":1000000,"output":65536,"in":0.3,"out":1.5,"reasoning":false,"toolCall":true},"qwen3-14b":{"name":"Qwen3 14B","context":131072,"output":8192,"in":0.35,"out":1.4,"reasoning":true,"toolCall":true},"qwen3-asr-flash":{"name":"Qwen3-ASR Flash","context":53248,"output":4096,"in":0.035,"out":0.035,"reasoning":false,"toolCall":false},"qwen-turbo":{"name":"Qwen Turbo","context":1000000,"output":16384,"in":0.05,"out":0.2,"reasoning":true,"toolCall":true},"qwen2-5-7b-instruct":{"name":"Qwen2.5 7B Instruct","context":131072,"output":8192,"in":0.175,"out":0.7,"reasoning":false,"toolCall":true},"qwen2-5-vl-7b-instruct":{"name":"Qwen2.5-VL 7B Instruct","context":131072,"output":8192,"in":0.35,"out":1.05,"reasoning":false,"toolCall":true},"qwen3.6-max-preview":{"name":"Qwen3.6 Max Preview","context":262144,"output":65536,"in":1.3,"out":7.8,"reasoning":true,"cacheRead":0.13,"toolCall":true},"qwen3.5-122b-a10b":{"name":"Qwen3.5 122B-A10B","context":262144,"output":65536,"in":0.4,"out":3.2,"reasoning":true,"toolCall":true},"qwen-vl-plus":{"name":"Qwen-VL Plus","context":131072,"output":8192,"in":0.21,"out":0.63,"reasoning":false,"toolCall":true},"qwen3.6-plus":{"name":"Qwen3.6 Plus","context":1000000,"output":65536,"in":0.5,"out":3,"reasoning":true,"cacheRead":0.05,"toolCall":true}}}}}
package/src/client/cli.ts CHANGED
@@ -23,7 +23,8 @@ import { loadImage } from "./image.ts";
23
23
  import { notify, readClipboard, readClipboardImage } from "./platform.ts";
24
24
  import { undoAll } from "./checkpoint.ts";
25
25
  import { restore as restoreSnapshot, snapshot } from "./snapshot.ts";
26
- import { prefetch } from "./models-dev.ts";
26
+ import { catalogText, prefetch } from "./models-dev.ts";
27
+ import { ensureBackend } from "./autostart.ts";
27
28
  import { renderJobs, startJob } from "./background.ts";
28
29
  import { renderTodos } from "./todos.ts";
29
30
  import { track } from "./telemetry.ts";
@@ -495,12 +496,24 @@ async function printBanner(): Promise<void> {
495
496
  stdout.write(` \x1b[2m${TAG}\x1b[0m \x1b[38;2;214;51;132mv${adaVersion()}\x1b[0m\n\n`);
496
497
  }
497
498
 
499
+ /** Subcommands that don't touch the backend — no point spawning a server for these. */
500
+ const NO_BACKEND = new Set(["mcp", "skill", "worktree", "wt", "catalog", "share"]);
501
+
498
502
  async function main(): Promise<void> {
499
503
  const sub = process.argv[2];
500
504
  if (sub === "login" || sub === "logout") {
501
505
  await authCommand(sub, process.argv[3]);
502
506
  return;
503
507
  }
508
+ // Auto-start ada-server if the configured backend isn't reachable (and it's local). New users
509
+ // shouldn't have to run two terminals; `ADA_BACKEND_URL` pointing at a remote skips this.
510
+ if (!NO_BACKEND.has(sub ?? "") && process.env.ADA_NO_AUTOSTART !== "1") {
511
+ const status = await ensureBackend(BACKEND);
512
+ if (status === "failed") {
513
+ console.error("ada-server failed to come up. Start it manually: `ada-server` (in another terminal).");
514
+ process.exit(1);
515
+ }
516
+ }
504
517
  if (sub === "add") {
505
518
  const spec = process.argv[3];
506
519
  if (!spec) {
@@ -623,6 +636,11 @@ async function main(): Promise<void> {
623
636
  console.error("usage: ada skill [list | add <url>]");
624
637
  process.exit(1);
625
638
  }
639
+ if (sub === "catalog") {
640
+ // Offline model catalog (curated popular providers) — context limits + pricing, no backend/network.
641
+ console.log(catalogText(process.argv[3]));
642
+ return;
643
+ }
626
644
  if (sub === "acp") {
627
645
  // Minimal Agent Client Protocol bridge over stdio (JSON-RPC 2.0, newline-delimited). Scaffold:
628
646
  // handles initialize + prompt so an ACP-aware editor can drive ada. Extend method names/framing
@@ -1096,6 +1114,10 @@ async function main(): Promise<void> {
1096
1114
  await printModels(client);
1097
1115
  continue;
1098
1116
  }
1117
+ if (line === "/catalog" || line.startsWith("/catalog ")) {
1118
+ console.log(catalogText(line.slice("/catalog".length).trim() || undefined));
1119
+ continue;
1120
+ }
1099
1121
  if (line === "/model" || line.startsWith("/model ")) {
1100
1122
  const id = line.slice("/model".length).trim();
1101
1123
  if (id) {
@@ -1,6 +1,9 @@
1
- // models.dev catalog — model metadata (context limits, pricing, capabilities). Prefetched once at
2
- // startup and cached for an hour; reads are synchronous from the in-memory cache. Offline-safe:
3
- // if the fetch fails, the cache stays empty and callers fall back to their own tables.
1
+ // models.dev catalog — model metadata (context limits, pricing, capabilities). The cache is seeded
2
+ // at load from a baked, curated subset (catalog.json popular providers, generated by
3
+ // `npm run catalog:refresh`) so pricing/limits work offline; a live prefetch() then overlays the
4
+ // full models.dev catalog. Reads are synchronous from the in-memory cache.
5
+
6
+ import { readFileSync } from "node:fs";
4
7
 
5
8
  interface Info {
6
9
  context?: number;
@@ -10,9 +13,37 @@ interface Info {
10
13
  reasoning?: boolean;
11
14
  }
12
15
 
16
+ interface CatalogModel {
17
+ name: string;
18
+ context: number | null;
19
+ output: number | null;
20
+ in: number | null;
21
+ out: number | null;
22
+ reasoning?: boolean;
23
+ cacheRead?: number;
24
+ toolCall?: boolean;
25
+ }
26
+ interface Catalog {
27
+ providers: Record<string, { name: string; npm?: string; models: Record<string, CatalogModel> }>;
28
+ }
29
+
13
30
  const cache = new Map<string, Info>();
14
31
  let fetchedAt = 0;
15
32
 
33
+ // The baked offline catalog (curated popular providers). Seeds the cache; live prefetch overlays it.
34
+ const CATALOG: Catalog = (() => {
35
+ try {
36
+ return JSON.parse(readFileSync(new URL("./catalog.json", import.meta.url), "utf8")) as Catalog;
37
+ } catch {
38
+ return { providers: {} };
39
+ }
40
+ })();
41
+ for (const prov of Object.values(CATALOG.providers)) {
42
+ for (const [id, m] of Object.entries(prov.models)) {
43
+ cache.set(id, { context: m.context ?? undefined, output: m.output ?? undefined, inputCost: m.in ?? undefined, outputCost: m.out ?? undefined, reasoning: m.reasoning });
44
+ }
45
+ }
46
+
16
47
  /** Fetch and cache the models.dev catalog (no-op if fetched within the last hour). */
17
48
  export async function prefetch(): Promise<void> {
18
49
  if (cache.size && Date.now() - fetchedAt < 3_600_000) return;
@@ -50,3 +81,26 @@ export function contextOf(modelId: string): number | null {
50
81
  export function catalogSize(): number {
51
82
  return cache.size;
52
83
  }
84
+
85
+ /** Human-readable listing of the baked offline catalog. No filter → provider summary; a filter
86
+ * (provider id/name substring) → that provider's models with context + price. */
87
+ export function catalogText(filter?: string): string {
88
+ const f = filter?.toLowerCase();
89
+ const out: string[] = [];
90
+ for (const [pid, prov] of Object.entries(CATALOG.providers)) {
91
+ const models = Object.entries(prov.models);
92
+ if (!f) {
93
+ out.push(`${pid.padEnd(24)} ${String(models.length).padStart(3)} models \x1b[2m${prov.name}\x1b[0m`);
94
+ continue;
95
+ }
96
+ if (!pid.toLowerCase().includes(f) && !prov.name.toLowerCase().includes(f)) continue;
97
+ out.push(`\n\x1b[1m${prov.name}\x1b[0m \x1b[2m(${pid})\x1b[0m`);
98
+ for (const [id, m] of models) {
99
+ const price = m.in != null && m.out != null ? `$${m.in}/$${m.out}` : "—";
100
+ const ctx = m.context ? `${Math.round(m.context / 1000)}k` : "—";
101
+ out.push(` ${id.padEnd(40)} ${ctx.padStart(6)} ctx · ${price}/1M${m.reasoning ? " · reasoning" : ""}`);
102
+ }
103
+ }
104
+ if (!out.length) return `no providers match "${filter}". Try /catalog with no argument for the list.`;
105
+ return f ? out.join("\n") : `${out.join("\n")}\n\x1b[2m/catalog <provider> for models · npm run catalog:refresh to update\x1b[0m`;
106
+ }