Skip to content

feat: add free provider rankings page by Arena AI ELO scores - #3799

Merged
diegosouzapw merged 1 commit into
diegosouzapw:mainfrom
pizzav-xyz:feat/free-provider-rankings
Jun 13, 2026
Merged

diegosouzapw merged 1 commit into
diegosouzapw:mainfrom
pizzav-xyz:feat/free-provider-rankings

Conversation

@pizzav-xyz

Copy link
Copy Markdown
Contributor

Summary

Add a new dashboard page that ranks free providers by their models' ELO scores from the Arena AI leaderboard.

What this does

  • Core logic (): Joins free providers (no-auth, OAuth with , API key with ) with their models from the registry and intelligence scores from the DB table, sorted by top model ELO descending.
  • API endpoint (): GET endpoint with optional filter and params.
  • Dashboard page (): Renders a podium for the top 3 providers, category filter buttons, and a full ranking table with score, average score, model count, and provider type badges.
  • Sidebar registration (): Added to the Costs section with hideable ID.
  • i18n (): Added and keys.

How it works

  1. Collects all free providers from , (hasFree), and (hasFree)
  2. Looks up each provider's models in the registry ()
  3. Matches models against entries (source: )
  4. Ranks providers by their top model's ELO score, with average score as tiebreaker
  5. Returns sorted rankings for the dashboard

Validation

  • ESLint: clean (0 errors on all changed files)
  • TypeScript: clean (0 type errors in new source files; pre-existing test errors unrelated)
  • Prettier: all files formatted

Files changed

File Type
New — core ranking logic
New — GET API endpoint
New — dashboard page
Modified — sidebar registration
Modified — i18n keys

@pizzav-xyz
pizzav-xyz requested a review from diegosouzapw as a code owner June 13, 2026 21:31
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

Add a new dashboard page that ranks free providers by their models'
ELO scores from the Arena AI leaderboard.

Changes:
- src/lib/freeProviderRankings.ts: Core logic with flexible model name
  matching (exact, version-suffix strip, prefix) joining free providers
  (no-auth, OAuth hasFree, API key hasFree) with model_intelligence DB
  entries, sorted by top model ELO descending
- src/app/api/free-provider-rankings/route.ts: GET endpoint with Zod
  schema validation for category filter and limit params
- src/app/(dashboard)/dashboard/free-provider-rankings/page.tsx:
  Dashboard page with podium (top 3), category filter buttons, full
  table with score labels (not misleading percentages), i18n throughout
- src/shared/constants/sidebarVisibility.ts: Registered in Costs section
- src/i18n/messages/en.json: Added i18n keys for sidebar + page
- tests/unit/freeProviderRankings.test.ts: 16 unit tests covering
  stripVersionSuffix, findMatchingIntelligence exact/fuzzy/prefix/null
@pizzav-xyz
pizzav-xyz force-pushed the feat/free-provider-rankings branch from 3755d98 to c5d0752 Compare June 13, 2026 21:50
@diegosouzapw
diegosouzapw merged commit c8dee8c into diegosouzapw:main Jun 13, 2026
1 check passed
diegosouzapw added a commit that referenced this pull request Jun 13, 2026
…leanup (#3800)

Surfaces the Plugins page (marketplace, #3656) in the sidebar; adds the proxy IP-family selector (auto/ipv4/ipv6) completing #3777's UI; clears the remaining CodeQL URL-substring alerts; covers #3799 with tests and fixes the costs-section count.
diegosouzapw added a commit that referenced this pull request Jun 13, 2026
#3799 already shipped tests/unit/freeProviderRankings.test.ts (thorough pure-function
coverage). My #3800 file duplicated it; remove the redundant copy. The matching
algorithm (stripVersionSuffix/findMatchingIntelligence) stays covered by #3799's tests.
diegosouzapw added a commit that referenced this pull request Jun 13, 2026
ARENA_ELO_SYNC_ENABLED flips to on-by-default (opt out with =false) so the Free Provider Rankings page (#3799) has data out of the box. Sync stays non-blocking/never-fatal.
diegosouzapw added a commit that referenced this pull request Jun 13, 2026
Initializes initArenaEloSync() from instrumentation-node.ts (the Next standalone startup hook) instead of the never-executed server-init.ts, so the Free Provider Rankings page (#3799) actually gets data. On by default; opt out with ARENA_ELO_SYNC_ENABLED=false.
HouMinXi pushed a commit to HouMinXi/OmniRoute that referenced this pull request Aug 2, 2026
…w#3799)

Adds a dashboard page + /api/free-provider-rankings route ranking free providers by model ELO/intelligence scores. Pure computation over the existing provider registry + model-intelligence data (no external fetch). Sidebar entry included.
HouMinXi pushed a commit to HouMinXi/OmniRoute that referenced this pull request Aug 2, 2026
…leanup (diegosouzapw#3800)

Surfaces the Plugins page (marketplace, diegosouzapw#3656) in the sidebar; adds the proxy IP-family selector (auto/ipv4/ipv6) completing diegosouzapw#3777's UI; clears the remaining CodeQL URL-substring alerts; covers diegosouzapw#3799 with tests and fixes the costs-section count.
HouMinXi pushed a commit to HouMinXi/OmniRoute that referenced this pull request Aug 2, 2026
…#3801)

diegosouzapw#3799 already shipped tests/unit/freeProviderRankings.test.ts (thorough pure-function
coverage). My diegosouzapw#3800 file duplicated it; remove the redundant copy. The matching
algorithm (stripVersionSuffix/findMatchingIntelligence) stays covered by diegosouzapw#3799's tests.
HouMinXi pushed a commit to HouMinXi/OmniRoute that referenced this pull request Aug 2, 2026
ARENA_ELO_SYNC_ENABLED flips to on-by-default (opt out with =false) so the Free Provider Rankings page (diegosouzapw#3799) has data out of the box. Sync stays non-blocking/never-fatal.
HouMinXi pushed a commit to HouMinXi/OmniRoute that referenced this pull request Aug 2, 2026
…gosouzapw#3803)

Initializes initArenaEloSync() from instrumentation-node.ts (the Next standalone startup hook) instead of the never-executed server-init.ts, so the Free Provider Rankings page (diegosouzapw#3799) actually gets data. On by default; opt out with ARENA_ELO_SYNC_ENABLED=false.
Poid-ZA pushed a commit to Poid-ZA/OmniRoute that referenced this pull request Aug 5, 2026
…w#3799)

Adds a dashboard page + /api/free-provider-rankings route ranking free providers by model ELO/intelligence scores. Pure computation over the existing provider registry + model-intelligence data (no external fetch). Sidebar entry included.
Poid-ZA pushed a commit to Poid-ZA/OmniRoute that referenced this pull request Aug 5, 2026
…leanup (diegosouzapw#3800)

Surfaces the Plugins page (marketplace, diegosouzapw#3656) in the sidebar; adds the proxy IP-family selector (auto/ipv4/ipv6) completing diegosouzapw#3777's UI; clears the remaining CodeQL URL-substring alerts; covers diegosouzapw#3799 with tests and fixes the costs-section count.
Poid-ZA pushed a commit to Poid-ZA/OmniRoute that referenced this pull request Aug 5, 2026
…#3801)

diegosouzapw#3799 already shipped tests/unit/freeProviderRankings.test.ts (thorough pure-function
coverage). My diegosouzapw#3800 file duplicated it; remove the redundant copy. The matching
algorithm (stripVersionSuffix/findMatchingIntelligence) stays covered by diegosouzapw#3799's tests.
Poid-ZA pushed a commit to Poid-ZA/OmniRoute that referenced this pull request Aug 5, 2026
ARENA_ELO_SYNC_ENABLED flips to on-by-default (opt out with =false) so the Free Provider Rankings page (diegosouzapw#3799) has data out of the box. Sync stays non-blocking/never-fatal.
Poid-ZA pushed a commit to Poid-ZA/OmniRoute that referenced this pull request Aug 5, 2026
…gosouzapw#3803)

Initializes initArenaEloSync() from instrumentation-node.ts (the Next standalone startup hook) instead of the never-executed server-init.ts, so the Free Provider Rankings page (diegosouzapw#3799) actually gets data. On by default; opt out with ARENA_ELO_SYNC_ENABLED=false.
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
…w#3799)

Adds a dashboard page + /api/free-provider-rankings route ranking free providers by model ELO/intelligence scores. Pure computation over the existing provider registry + model-intelligence data (no external fetch). Sidebar entry included.
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
…leanup (diegosouzapw#3800)

Surfaces the Plugins page (marketplace, diegosouzapw#3656) in the sidebar; adds the proxy IP-family selector (auto/ipv4/ipv6) completing diegosouzapw#3777's UI; clears the remaining CodeQL URL-substring alerts; covers diegosouzapw#3799 with tests and fixes the costs-section count.
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
…#3801)

diegosouzapw#3799 already shipped tests/unit/freeProviderRankings.test.ts (thorough pure-function
coverage). My diegosouzapw#3800 file duplicated it; remove the redundant copy. The matching
algorithm (stripVersionSuffix/findMatchingIntelligence) stays covered by diegosouzapw#3799's tests.
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
ARENA_ELO_SYNC_ENABLED flips to on-by-default (opt out with =false) so the Free Provider Rankings page (diegosouzapw#3799) has data out of the box. Sync stays non-blocking/never-fatal.
muhamadgalihsaputra pushed a commit to niyatna/NiyatnaRoute that referenced this pull request Sep 27, 2026
…gosouzapw#3803)

Initializes initArenaEloSync() from instrumentation-node.ts (the Next standalone startup hook) instead of the never-executed server-init.ts, so the Free Provider Rankings page (diegosouzapw#3799) actually gets data. On by default; opt out with ARENA_ELO_SYNC_ENABLED=false.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants