SPB Git forge

spb/polyllm

Public
15commits 1branches 0releases
2.2 MBsize
maindefault branch
13 days agolast push
TypeScript 97.4% SQL 1% JavaScript 0.9% CSS 0.6%
4.0 KB · 123 lines typescript
Raw Blame History
1import type { CatalogEntry } from "@/lib/ai/registry/catalog";2import type { ModelCapabilities } from "@/lib/ai/core/types";34/**5 * xAI documented augmentation. `/v1/language-models` gives modalities, pricing and aliases6 * but not context windows or parameter support — those come from docs + probes7 * (docs/provider-research/xai.md, audited 2026-09-08).8 *9 * Verified rules: never send frequency/presence penalties; `stop` only on10 * grok-4.20-0309-non-reasoning; `reasoning_effort` only on 4.6 / 4.5 / 4.3 / multi-agent.11 * Files: xAI needs an uploaded file id (Files API) → PolyLLM inlines text files and does not12 * send PDFs (marked `files: false`). Web search requires /v1/responses.13 */14const base: ModelCapabilities = {15  text: true,16  vision: true,17  audioInput: false,18  audioOutput: false,19  imageGeneration: false,20  video: false,21  reasoning: true,22  tools: true,23  structuredOutput: true,24  streaming: true,25  files: false,26  webSearch: true,27};2829const baseParams = { temperature: true, topP: true, topK: true, maxTokens: true, seed: true, stop: false, frequencyPenalty: false, presencePenalty: false, temperatureRange: { min: 0, max: 2 } };3031export const XAI_CATALOG = new Map<string, CatalogEntry>([32  [33    "grok-4.6",34    {35      displayName: "Grok 4.6",36      family: "Grok 4.6",37      capabilities: base,38      limits: { contextTokens: 500_000, maxOutputTokens: 128_000 },39      parameters: { ...baseParams, reasoningEffort: true, reasoningEffortLevels: ["low", "medium", "high", "xhigh"] },40      status: "active",41      sortWeight: 100,42      metadata: { alwaysReasoning: true, knowledgeCutoff: "2026-02-01" },43    },44  ],45  [46    "grok-4.5",47    {48      displayName: "Grok 4.5",49      family: "Grok 4.5",50      capabilities: base,51      limits: { contextTokens: 500_000, maxOutputTokens: 128_000 },52      parameters: { ...baseParams, reasoningEffort: true, reasoningEffortLevels: ["low", "medium", "high"] },53      status: "active",54      sortWeight: 95,55      metadata: { alwaysReasoning: true, agentic: true },56    },57  ],58  [59    "grok-4.3",60    {61      displayName: "Grok 4.3",62      family: "Grok 4.3",63      capabilities: base,64      limits: { contextTokens: 1_000_000, maxOutputTokens: 128_000 },65      parameters: { ...baseParams, reasoningEffort: true, reasoningEffortLevels: ["none", "low", "medium", "high"] },66      status: "active",67      sortWeight: 90,68      metadata: { alwaysReasoning: false },69    },70  ],71  [72    "grok-4.20-0309-reasoning",73    {74      displayName: "Grok 4.20 Reasoning",75      family: "Grok 4.20",76      capabilities: base,77      limits: { contextTokens: 1_000_000, maxOutputTokens: 128_000 },78      parameters: { ...baseParams, reasoningEffort: false },79      status: "active",80      sortWeight: 80,81      metadata: { alwaysReasoning: true, fixedReasoning: true },82    },83  ],84  [85    "grok-4.20-0309-non-reasoning",86    {87      displayName: "Grok 4.20 Non-Reasoning",88      family: "Grok 4.20",89      capabilities: { ...base, reasoning: false },90      limits: { contextTokens: 1_000_000, maxOutputTokens: 128_000 },91      parameters: { ...baseParams, stop: true, reasoningEffort: false },92      status: "active",93      sortWeight: 78,94    },95  ],96  [97    "grok-4.20-multi-agent-0309",98    {99      displayName: "Grok 4.20 Multi-Agent",100      family: "Grok 4.20",101      capabilities: { ...base, tools: false },102      limits: { contextTokens: 1_000_000, maxOutputTokens: 128_000 },103      parameters: { ...baseParams, reasoningEffort: true, reasoningEffortLevels: ["low", "medium", "high", "xhigh"] },104      status: "preview",105      sortWeight: 70,106      metadata: { alwaysReasoning: true, responsesOnly: true, beta: true },107    },108  ],109  [110    "grok-build-0.1",111    {112      displayName: "Grok Build 0.1",113      family: "Grok Build",114      capabilities: base,115      limits: { contextTokens: 256_000, maxOutputTokens: 128_000 },116      parameters: { ...baseParams, reasoningEffort: false },117      status: "active",118      sortWeight: 75,119      metadata: { alwaysReasoning: true, fixedReasoning: true, coding: true },120    },121  ],122]);123