Skip to content

feat: sync model capabilities from OpenRouter API + platform specs#236

Open
Slyker wants to merge 1 commit into
tashfeenahmed:mainfrom
Slyker:feat/openrouter-sync
Open

feat: sync model capabilities from OpenRouter API + platform specs#236
Slyker wants to merge 1 commit into
tashfeenahmed:mainfrom
Slyker:feat/openrouter-sync

Conversation

@Slyker

@Slyker Slyker commented Jun 6, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds automatic model capability synchronization from OpenRouter catalog API + static platform-specs fallback for models exclusive to Groq, Ollama, Pollinations, Cloudflare, and OpenCode.

Changes

New files

  • server/src/services/capabilities.ts — 8-strategy findModel() matching engine that syncs context_window, vision, tools, reasoning, and rate limits from OpenRouter /api/frontend/models. Includes PLATFORM_MODEL_SPECS static map for 12 platform-exclusive models and syncPlatformSpecs() for enrichment.
  • server/src/tests/services/capabilities.test.ts — 16 unit tests covering all 8 matching strategies.

Modified files

  • server/src/db/index.ts — Added syncCapabilities(db) call at boot + supports_reasoning column migration.
  • server/src/routes/fallback.ts — Added POST /sync-capabilities endpoint + supports_reasoning and context_window to GET query.
  • client/src/pages/FallbackPage.tsx — Added Sync API button, results modal, Reasoning badge, and Context column.
  • server/src/tests/db/idempotency.test.ts — Updated expected context_window values for API-synced models.

Test results

  • ✅ TypeScript clean (server + client)
  • ✅ 360/360 tests pass

- Add capabilities.ts: 8-strategy model matching against OpenRouter /api/frontend/models

- Add platform specs map for 12 models exclusive to Groq, Ollama, Pollinations, Cloudflare, OpenCode

- Add POST /sync-capabilities endpoint and GET support_reasoning + context_window

- Add Sync API button + results modal to FallbackPage

- Add supports_reasoning column migration + 16 unit tests
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.

1 participant