Summary
Raven's provider registry doubled as a whitelist: 21 entries decided who could
be configured at all. LiteLLM routes to 134 vendors, and the other 113 were
unreachable even though nothing but the whitelist stood in the way.
Impact
raven provider set mistral --api-key ... failed with Unknown provider, and so
did every other vendor LiteLLM supports but Raven had not enumerated. Reaching
one meant the generic OpenAI-compatible path, where the user must supply the base
URL themselves and gives up the vendor-native handling LiteLLM would have applied
-- param mapping, tool-call differences, pricing and context lookup. Adding a
vendor meant a code change and a release.
Proposal
A key under the vendor's name plus a <vendor>/<model> id should be enough. The
registry then holds only what LiteLLM cannot tell us -- keywords so a bare model
name finds its vendor, a default model for the wizard, OAuth flows, prompt-cache
support, per-model param defaults, gateway detection -- rather than deciding who
is permitted.
Names LiteLLM has never heard of should still be rejected, so a typo is caught
rather than written into a section nothing will read.
Summary
Raven's provider registry doubled as a whitelist: 21 entries decided who could
be configured at all. LiteLLM routes to 134 vendors, and the other 113 were
unreachable even though nothing but the whitelist stood in the way.
Impact
raven provider set mistral --api-key ...failed withUnknown provider, and sodid every other vendor LiteLLM supports but Raven had not enumerated. Reaching
one meant the generic OpenAI-compatible path, where the user must supply the base
URL themselves and gives up the vendor-native handling LiteLLM would have applied
-- param mapping, tool-call differences, pricing and context lookup. Adding a
vendor meant a code change and a release.
Proposal
A key under the vendor's name plus a
<vendor>/<model>id should be enough. Theregistry then holds only what LiteLLM cannot tell us -- keywords so a bare model
name finds its vendor, a default model for the wizard, OAuth flows, prompt-cache
support, per-model param defaults, gateway detection -- rather than deciding who
is permitted.
Names LiteLLM has never heard of should still be rejected, so a typo is caught
rather than written into a section nothing will read.