chore(free-tiers): retire stale Groq free-tier text and preset model; fix catalog header

This commit is contained in:
diegosouzapw
2026-09-02 15:37:17 -03:00
parent 1d8fc3a8b7
commit 083bf0f8c1
5 changed files with 20 additions and 13 deletions

View File

@@ -1,12 +1,18 @@
// AUTO-GENERATED — refreshed by the 2026-06-17 per-provider free-tier research pass.
// 2026-07-20: added the free tiers of providers we could already route but had
// never mapped (requesty, ovhcloud, agnes, glm), plus two new providers (navy,
// aihorde), and reconciled kilo-gateway against its live /models list.
// Source: _tasks/features-v3.8.28/free-tier-research-2026-06-17.raw.json (50-agent web research + adversarial verification).
// HAND-CURATED free-tier catalog — there is no generator; edit the entries below directly.
// Provenance: seeded by the 2026-06-17 per-provider free-tier research pass (50-agent web research +
// adversarial verification); 2026-07-20 added the free tiers of providers we could already route but had
// never mapped (requesty, ovhcloud, agnes, glm), plus two new providers (navy, aihorde), and reconciled
// kilo-gateway against its live /models list; 2026-09-02 re-audited gemini, ollama-cloud, groq, nara and
// mistral against the providers' own pages.
// Evidence: every numeric block MUST carry an `// evidence:` comment naming its source class —
// public-page (a provider page anyone can read), api-public (an unauthenticated provider endpoint), or
// console-verified <date> por <who> (visible only inside an account console). No evidence ⇒ no number
// (the entry stays recurring-uncapped, monthlyTokens 0). Blocks that predate 2026-09-02 and still lack
// the comment inherit the 2026-06-17 research pass; add the comment whenever such a block is touched.
// Methodology: honest pool-deduped recurring tokens. "recurring-uncapped" = permanently free but no
// published token cap (rate/concurrency-limited) — NOT summed into the steady headline (see freeModelCatalog.ts).
// Deposit-unlock boosts (e.g. OpenRouter $10 -> 1000 RPD) live in FREE_TIER_BOOSTS, not per-record.
// Do not edit by hand — re-run the patch generator to refresh.
// Bump FREE_CATALOG_CURATED_AT on every change to the entries below.
import type { FreeModelBudget } from "./freeModelCatalog.ts";
/**

View File

@@ -19,8 +19,8 @@ export const FREE_TIER_BUDGETS: Record<string, number> = {
"cloudflare-ai": 122_000_000,
doubao: 60_000_000,
cerebras: 30_000_000,
"api-airforce": 24_000_000,
groq: 30_000_000,
"api-airforce": 24_000_000,
bluesminds: 7_200_000,
sambanova: 6_000_000,
"arcee-ai": 4_800_000,

View File

@@ -2862,7 +2862,7 @@ function ComboFormModal({ isOpen, combo, onClose, onSave, activeProviders, combo
{ model: "if/qwen3-coder-plus", weight: 0 },
{ model: "if/deepseek-v3.2", weight: 0 },
{ model: "nvidia/llama-3.3-70b-instruct", weight: 0 },
{ model: "groq/llama-3.3-70b-versatile", weight: 0 },
{ model: "groq/openai/gpt-oss-120b", weight: 0 },
];
const PAID_PREMIUM_PRESET_MODELS = [

View File

@@ -92,7 +92,8 @@ export const APIKEY_PROVIDERS_FRONTIER = {
textIcon: "GQ",
website: "https://groq.com",
hasFree: true,
freeNote: "Free tier: 30 RPM / 14.4K RPD — no credit card",
freeNote:
"Free plan: per-model caps (30 RPM · 1K RPD · 200K tokens/day per chat model, console.groq.com/docs/rate-limits) — no payment method on file.",
serviceKinds: ["llm", "imageToText"],
},
blackbox: {

View File

@@ -10,10 +10,10 @@ import { FREE_TIER_BUDGETS } from "@omniroute/open-sse/config/freeTierCatalog.ts
import { REGISTRY } from "@omniroute/open-sse/config/providerRegistry.ts";
/**
* 2026-09-02 re-audit against the providers' own pages
* (_tasks/research/2026-09-02-freellmapi-7b4-claim/quotas-fonte-primaria.md).
* Each test pins one verified fact so the catalog cannot drift back to an
* invented number.
* 2026-09-02 re-audit against the providers' own pages — the official pages
* cited in the `// evidence:` comments next to each entry in
* `open-sse/config/freeModelCatalog.data.ts`. Each test pins one verified
* fact so the catalog cannot drift back to an invented number.
*/
const rows = (id: string) => FREE_MODEL_BUDGETS.filter((m) => m.provider === id);
const ids = (id: string) =>