feat(providers): configure provider model lists consistently

Merged
SA
5mo ago
+908-639

Summary

  • Apply configured provider model lists centrally in the registry for all providers
  • Add CONFIGURED_PROVIDER_MODELS_MODE with fallback default and allowlist mode
  • Enable [_SUFFIX]_MODELS env vars for every provider type
  • Remove provider-local configured-model fallback behavior from Oracle/Azure/OpenAI-compatible providers
  • Update docs/examples and add registry/config/env/cache tests

Behavior

  • fallback: use configured models only when upstream /models errors, returns nil, or returns empty
  • allowlist: expose only configured models for providers that define a list, preserving upstream metadata for matching IDs

Validation

  • go test ./...
  • pre-commit hooks: go import/fmt, make test-race, go mod tidy, performance guard, make lint

Summary by CodeRabbit

  • New Features

    • Added CONFIGURED_PROVIDER_MODELS_MODE (fallback | allowlist) and support for per-provider model lists via _MODELS and YAML models entries.
  • Behavior Changes

    • Configured model lists either supplement upstream model discovery (fallback, default) or replace it for providers with configured lists (allowlist). Multi-instance provider model variables are respected.
  • Documentation

    • Updated README, Getting Started, and advanced docs to document the new mode, per-provider MODEL variables, and multi-instance configuration.