/** * Static fallback catalog used when live /v1/models discovery can't run * (pre-login, offline, 403, timeout, …). Mirrors pi's built-in `xai` catalog. */ import type { ProviderModelConfig } from "@earendil-works/pi-coding-agent"; import { XAI_COMPAT } from "./constants.ts"; export const FALLBACK_MODELS: ProviderModelConfig[] = [ { id: "grok-4.5", name: "Grok 4.5", reasoning: true, input: ["text", "image"], contextWindow: 500000, maxTokens: 500000, cost: { input: 2, output: 6, cacheRead: 0.5, cacheWrite: 0 }, compat: { ...XAI_COMPAT }, }, { id: "grok-4.3", name: "Grok 4.3", reasoning: true, input: ["text", "image"], contextWindow: 1000000, maxTokens: 30000, cost: { input: 1.25, output: 2.5, cacheRead: 0.2, cacheWrite: 0 }, compat: { ...XAI_COMPAT }, }, { id: "grok-build-0.1", name: "Grok Build 0.1", reasoning: true, input: ["text", "image"], contextWindow: 256000, maxTokens: 256000, cost: { input: 1, output: 2, cacheRead: 0.2, cacheWrite: 0 }, compat: { ...XAI_COMPAT }, }, { id: "grok-code-fast-1", name: "Grok Code Fast 1", reasoning: false, input: ["text"], contextWindow: 32768, maxTokens: 8192, cost: { input: 0.2, output: 1.5, cacheRead: 0.02, cacheWrite: 0 }, compat: { ...XAI_COMPAT }, }, { id: "grok-4.20-0309-reasoning", name: "Grok 4.20 (Reasoning)", reasoning: true, input: ["text", "image"], contextWindow: 1000000, maxTokens: 30000, cost: { input: 1.25, output: 2.5, cacheRead: 0.2, cacheWrite: 0 }, compat: { ...XAI_COMPAT }, }, { id: "grok-4.20-0309-non-reasoning", name: "Grok 4.20 (Non-Reasoning)", reasoning: false, input: ["text", "image"], contextWindow: 1000000, maxTokens: 30000, cost: { input: 1.25, output: 2.5, cacheRead: 0.2, cacheWrite: 0 }, compat: { ...XAI_COMPAT }, }, { id: "grok-3", name: "Grok 3", reasoning: false, input: ["text"], contextWindow: 131072, maxTokens: 8192, cost: { input: 3, output: 15, cacheRead: 0.75, cacheWrite: 0 }, compat: { ...XAI_COMPAT }, }, ];