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%
1.9 KB · 45 lines typescript
Raw Blame History
1import type { ModelCapabilities, ModelLimits, ModelParameters, ModelPricing, ModelStatus, ProviderId } from "@/lib/ai/core/types";2import { OPENAI_CATALOG } from "@/lib/ai/providers/openai/catalog";3import { GEMINI_CATALOG } from "@/lib/ai/providers/gemini/catalog";4import { XAI_CATALOG } from "@/lib/ai/providers/xai/catalog";5import { MISTRAL_CATALOG } from "@/lib/ai/providers/mistral/catalog";6import { DEEPSEEK_CATALOG } from "@/lib/ai/providers/deepseek/catalog";7import { KIMI_CATALOG } from "@/lib/ai/providers/kimi/catalog";8import { CEREBRAS_CATALOG } from "@/lib/ai/providers/cerebras/catalog";910/**11 * Documented augmentation for models whose list endpoint lacks capability metadata.12 * Everything here comes from `docs/provider-research/*.md` (official docs + real probes).13 * Adapters' `listModels()` produces the base object; the catalog fills the gaps.14 */15export interface CatalogEntry {16  displayName?: string;17  family?: string;18  capabilities: ModelCapabilities;19  capabilityOverrides?: Partial<ModelCapabilities>;20  limits?: ModelLimits;21  parameters?: ModelParameters;22  parameterOverrides?: Partial<ModelParameters>;23  pricing?: ModelPricing | null;24  status?: ModelStatus;25  sortWeight?: number;26  metadata?: Record<string, unknown>;27}2829const CATALOGS: Record<ProviderId, Map<string, CatalogEntry>> = {30  openai: OPENAI_CATALOG,31  anthropic: new Map(), // Anthropic's Models API returns full capability metadata; pricing lives in the adapter.32  gemini: GEMINI_CATALOG,33  xai: XAI_CATALOG,34  mistral: MISTRAL_CATALOG,35  deepseek: DEEPSEEK_CATALOG,36  kimi: KIMI_CATALOG,37  openrouter: new Map(), // fully live metadata from /api/v1/models38  cerebras: CEREBRAS_CATALOG,39  custom: new Map(), // user endpoints: capabilities come from discovery + the user's manual declarations40};4142export function getCatalog(provider: ProviderId): Map<string, CatalogEntry> {43  return CATALOGS[provider];44}45