feat: add EUrouter provider and automated model sync#3218
Open
DavidLoDico wants to merge 4 commits into
Open
Conversation
DavidLoDico
commented
Jul 12, 2026
DavidLoDico
left a comment
Author
There was a problem hiding this comment.
Adding EUrouter, the european AI gateway. Use any AI model, keep your data in the EU.
Contributor
Action items
|
Author
|
I'll review the action items. Update coming soon. |
8dc6e4a to
e34e5c7
Compare
e34e5c7 to
eaab167
Compare
Contributor
|
No actionable findings. |
Author
|
@rekram1-node hey, wondering if you need any more info to merge this PR? |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
EUrouter is the european AI gateway.
EUlogoIntegration details
https://api.eurouter.ai/api/v1GET /modelsis public;EUROUTER_API_KEYis optional. On 2026-07-12, public and authenticated requests both returned the same 122-model response, so scheduled sync does not require a new secret.costfields, including input, output, reasoning, cache-read, and cache-write prices. Non-USD prices are omitted rather than mislabeled as USD.canonical_slugis preferred, then the namespacedauthor/idroute is used as a fallback. Known namespace differences (zhipu→zhipuai,moonshot→moonshotai, andmistral→mistral) are resolved through models.dev metadata. Existingbase_model/base_model_omitfactoring is preserved.architecture; tool calling, structured output, temperature, and fallback reasoning detection come fromsupported_parameters; exact reasoning effort/budget controls come from the catalog'sreasoningobject. Missing or all-false reasoning controls are treated as unknown and inherit canonical or authored truth.0 created, 0 updated, 0 removed, 122 unchanged.Validation
bun test packages/core/test/sync.test.ts— 57 passedbun --cwd packages/sdk test— 23 passedbun models:sync eurouterbun models:sync eurouter --dry-run— clean second runbun validategit diff --checkThe root
bun testcommand also runs a repository metadata audit that currently fails ondevfor 30 pre-existing open-weight metadata entries without weights links; the same failure was reproduced in an untouchedorigin/devworktree. The prescribed SDK test command above generates its ignored snapshot first and passes.E2E model coverage
EUrouter's existing route E2E fixtures exercise
openai/gpt-4o-minifor Chat Completions / Responses andmistral/mistral-embedfor Embeddings. Adapter regression fixtures additionally coverclaude-sonnet-5andgpt-5.1. This data-only contribution did not issue paid inference requests.Sources