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%
3.5 KB · 57 lines typescript
Raw Blame History
1import type { CatalogEntry } from "@/lib/ai/registry/catalog";2import type { ModelPricing } from "@/lib/ai/core/types";34/**5 * Mistral documented augmentation. The listing already carries capabilities/limits/aliases; this6 * file adds pricing (mistral.ai/pricing, audited 2026-09-08 — see docs/provider-research/mistral.md)7 * and per-model quirks. Keys are billing model names (the `name` field) or ids.8 */9const MISTRAL_PRICING_BASE: Record<string, ModelPricing> = {10  "mistral-medium-2604": { inputPerMillion: 1.5, outputPerMillion: 7.5, cachedInputPerMillion: 0.15 },11  "mistral-small-2603": { inputPerMillion: 0.15, outputPerMillion: 0.6, cachedInputPerMillion: 0.015 },12  "mistral-large-2512": { inputPerMillion: 0.5, outputPerMillion: 1.5, cachedInputPerMillion: 0.05 },13  "ministral-14b-2512": { inputPerMillion: 0.2, outputPerMillion: 0.2, cachedInputPerMillion: 0.02 },14  "ministral-8b-2512": { inputPerMillion: 0.15, outputPerMillion: 0.15, cachedInputPerMillion: 0.015 },15  "ministral-3b-2512": { inputPerMillion: 0.1, outputPerMillion: 0.1, cachedInputPerMillion: 0.01 },16  "codestral-2508": { inputPerMillion: 0.3, outputPerMillion: 0.9, cachedInputPerMillion: 0.03 },17  "zai-glm-5-2": { inputPerMillion: 1.4, outputPerMillion: 4.4, cachedInputPerMillion: 0.14 },18  "voxtral-small-2507": { inputPerMillion: 0.1, outputPerMillion: 0.4 },19  "labs-leanstral-1-5": { inputPerMillion: 0, outputPerMillion: 0, cachedInputPerMillion: 0 },20};2122/** Aliases (`*-latest`, marketing names) bill as their base model. */23export const MISTRAL_PRICING: Record<string, ModelPricing> = {24  ...MISTRAL_PRICING_BASE,25  "mistral-medium-latest": MISTRAL_PRICING_BASE["mistral-medium-2604"],26  "mistral-medium": MISTRAL_PRICING_BASE["mistral-medium-2604"],27  "mistral-medium-3-5": MISTRAL_PRICING_BASE["mistral-medium-2604"],28  "mistral-medium-3.5": MISTRAL_PRICING_BASE["mistral-medium-2604"],29  "mistral-medium-3": MISTRAL_PRICING_BASE["mistral-medium-2604"],30  "mistral-vibe-cli-latest": MISTRAL_PRICING_BASE["mistral-medium-2604"],31  "mistral-vibe-cli-with-tools": MISTRAL_PRICING_BASE["mistral-medium-2604"],32  "magistral-medium-latest": MISTRAL_PRICING_BASE["mistral-medium-2604"],33  "mistral-small-latest": MISTRAL_PRICING_BASE["mistral-small-2603"],34  "mistral-vibe-cli-fast": MISTRAL_PRICING_BASE["mistral-small-2603"],35  "magistral-small-latest": MISTRAL_PRICING_BASE["mistral-small-2603"],36  "mistral-large-latest": MISTRAL_PRICING_BASE["mistral-large-2512"],37  "ministral-14b-latest": MISTRAL_PRICING_BASE["ministral-14b-2512"],38  "ministral-8b-latest": MISTRAL_PRICING_BASE["ministral-8b-2512"],39  "ministral-3b-latest": MISTRAL_PRICING_BASE["ministral-3b-2512"],40  "codestral-latest": MISTRAL_PRICING_BASE["codestral-2508"],41  "mistral-code-latest": MISTRAL_PRICING_BASE["codestral-2508"],42  "mistral-code-fim-latest": MISTRAL_PRICING_BASE["codestral-2508"],43  "glm-5-2": MISTRAL_PRICING_BASE["zai-glm-5-2"],44  "voxtral-small-latest": MISTRAL_PRICING_BASE["voxtral-small-2507"],45  "labs-leanstral-1-5-1": MISTRAL_PRICING_BASE["labs-leanstral-1-5"],46};4748export function mistralPricingFor(id: string, name?: string): ModelPricing | null {49  const hit = MISTRAL_PRICING[id] ?? (name ? MISTRAL_PRICING[name] : undefined) ?? MISTRAL_PRICING[id.replace(/-latest$/, "")];50  return hit ? { ...hit, source: "mistral-pricing-page", asOf: "2026-09-08" } : null;51}5253export const MISTRAL_CATALOG = new Map<string, CatalogEntry>();5455/** Listed by /v1/models but not chat models (OCR, embeddings, moderation, audio, FIM-only). */56export const MISTRAL_NON_CHAT = /embed|ocr|moderation|voxtral|transcribe|tts|fim/i;57