mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-16 20:22:21 +03:00
* fix(providers): point freeaiapikey at the api. host it moved to Every /v1 route on the freeaiapikey.com apex host answers HTTP 410 with type "endpoint_moved", and the body names its own replacement: "This API endpoint has moved. Please update your base_url to https://api.freeaiapikey.com/v1 - the old endpoint on freeaiapikey.com no longer works." Probed 2026-08-13 with paired controls so a network fault could not be read as an upstream verdict: GET https://freeaiapikey.com/v1/models -> 410 GET https://freeaiapikey.com/v1/chat/completions -> 410 GET https://api.freeaiapikey.com/v1/models -> 200 GET https://api.freeaiapikey.com/v1/chat/completions -> 405 (POST-only) GET https://api.openai.com/v1/models -> 401 (control: reachable) GET https://<nonexistent-domain>/v1/models -> 000 (control: unreachable) Every request through this provider therefore fails today. Repoint baseUrl and modelsUrl at the host upstream names. * fix(providers): resync the freeaiapikey catalog with its live model list GET https://api.freeaiapikey.com/v1/models (200, probed 2026-08-13) serves 10 models. The registry declared 7, four of which upstream does not serve at all: openai/gpt-5, openai/gpt-5.2-codex, Alibaba/qwen3.5, Alibaba/qwen3-vl:235b. Seven live models were missing: openai/gpt-5.4, openai/gpt-5.5, openai/gpt-5.6-sol, anthropic/claude-opus-4.7, anthropic/claude-opus-4.8, anthropic/claude-sonnet-5, anthropic/claude-opus-5. The four phantom ids are selectable in the dashboard and can only ever fail upstream; the seven real ones are unreachable through the static catalog. On context windows: the /v1/models response carries only id/object/created/ owned_by, so upstream publishes no window at all. The models added here therefore declare no contextLength and inherit the entry's existing defaultContextLength (128000) instead of a fabricated number. The two pre-existing contextLength values are left untouched for the same reason - this sweep neither confirms nor refutes them, and rewriting them would be guesswork in the other direction. * chore(changelog): name the fragment after the real PR number * chore(changelog): substitute the PRNUM placeholder in the fragment body --------- Co-authored-by: adevwithpurpose <adevwithpurpose@users.noreply.github.com>