feat(providers): add Onlist - #6500
Conversation
Action items
|
5c44aae to
8caa90f
Compare
Action items
|
8caa90f to
9c6c3bb
Compare
Action items
|
9c6c3bb to
48116c9
Compare
|
Addressed the internal-consistency point: Onlist's request struct carries a small set of named pass-through fields, one per lab wire convention, each verified to survive to the upstream unmodified:
Both are now authored as No equivalent field exists in the request struct for DeepSeek, Moonshot/Kimi, MiniMax, Nvidia/Nemotron, Xiaomi/MiMo, Poolside, or Gemma. For those,
|
Action items
|
Summary
Adds Onlist as a provider. Onlist is an OpenAI-compatible API gateway that speaks the OpenRouter surface (
/v1/models,/v1/chat/completions, OpenRouter-stylereasoningobject,/api/v1/key//api/v1/creditsaccount endpoints), so model ids are the same<author>/<slug>ids used underproviders/openrouter. This batch registers the provider, its logo, and 76 open-weight models. All model files are override-only viabase_model.Changes
providers/onlist/provider.toml—@ai-sdk/openai-compatible,api = "https://onlist.io/v1",env = ["ONLIST_API_KEY"],doc = "https://onlist.io/models".providers/onlist/logo.svg— monochrome,fill="currentColor", squareviewBox, no fixed size.providers/onlist/models/**/*.toml— 76 open-weight models (DeepSeek, Qwen, Llama, Gemma, GLM, Kimi, Mistral, gpt-oss, etc.). Each file has:base_modelpointing at the existingmodels/<lab>/<id>.toml;[cost]in USD per million tokens from the live catalog;[limit] contextonly where the served context window differs from the lab default;reasoning_optionslimited to what Onlist forwards on the wire (see Review notes);[interleaved]kept where the stream carriesreasoning_content.Evidence
https://onlist.io/models/<author>/<slug>Validation
bun validatepasses locally; the generated output contains provideronlistwith 76 models.Review notes
toggleis authored only for Alibaba/Qwen routes, usingenable_thinking(Alibaba's own top-level field, verified end-to-end through the relay's Ali adaptor) — not OpenRouter'sreasoning.enabled, which Onlist parses but never reads. Everywhere else,reasoning_optionsis effort/budget-only (or[]for always-on/no-control routes), since Onlist has no on/off switch beyond that one host-specific field.descriptionoverrides were dropped everywhere; they were OpenRouter's own editorial paraphrase, not Onlist-specific deltas.