hermes-agent/hermes_cli
donrhmexe a2f46e4665 fix: include custom_providers in /model command listings and resolution
Custom providers defined in config.yaml under  were
completely invisible to the /model command in both gateway (Telegram,
Discord, etc.) and CLI. The provider listing skipped them and explicit
switching via --provider failed with "Unknown provider".

Root cause: gateway/run.py, cli.py, and model_switch.py only read the
 dict from config, ignoring  entirely.

Changes:
- providers.py: add resolve_custom_provider() and extend
  resolve_provider_full() to check custom_providers after user_providers
- model_switch.py: propagate custom_providers through switch_model(),
  list_authenticated_providers(), and get_authenticated_provider_slugs();
  add custom provider section to provider listings
- gateway/run.py: read custom_providers from config, pass to all
  model-switch calls
- cli.py: hoist config loading, pass custom_providers to listing and
  switch calls

Tests: 4 new regression tests covering listing, resolution, and gateway
command handler. All 71 tests pass.
2026-04-10 03:07:00 -07:00
..
__init__.py chore: release v0.8.0 (2026.4.8) (#6135) 2026-04-08 04:56:20 -07:00
auth.py Harden setup provider flows 2026-04-10 02:57:39 -07:00
auth_commands.py feat(qwen): add Qwen OAuth provider with portal request support 2026-04-08 13:46:30 -07:00
banner.py fix: resolve opencode.ai context window to 1M and clean up display formatting 2026-04-09 01:43:22 -07:00
callbacks.py
…
checklist.py
…
claw.py
…
clipboard.py
…
codex_models.py
…
colors.py
…
commands.py feat: add Anthropic Fast Mode support to /fast command (#7037) 2026-04-10 02:32:15 -07:00
config.py feat(discord): add allowed_channels whitelist config 2026-04-10 03:02:42 -07:00
copilot_auth.py fix(copilot): add missing Copilot-Integration-Id header 2026-04-10 02:59:02 -07:00
cron.py feat(cron): track delivery failures in job status (#6042) 2026-04-07 22:49:01 -07:00
curses_ui.py
…
default_soul.py
…
doctor.py fix: update Kimi Coding User-Agent to KimiCLI/1.30.0 2026-04-10 02:37:28 -07:00
dump.py feat: add 'hermes dump' command for copy-pasteable setup summary (#6550) 2026-04-09 04:00:41 -07:00
env_loader.py
…
gateway.py fix: deduplicate _is_termux() into hermes_constants.is_termux() 2026-04-09 16:24:53 -07:00
logs.py
…
main.py Refresh OpenRouter model catalog 2026-04-10 02:57:39 -07:00
mcp_config.py
…
memory_setup.py
…
model_normalize.py feat(qwen): add Qwen OAuth provider with portal request support 2026-04-08 13:46:30 -07:00
model_switch.py fix: include custom_providers in /model command listings and resolution 2026-04-10 03:07:00 -07:00
models.py Refresh OpenRouter model catalog 2026-04-10 02:57:39 -07:00
nous_subscription.py
…
pairing.py
…
plugins.py feat(cli): add on_session_finalize and on_session_reset plugin hooks 2026-04-08 04:27:34 -07:00
plugins_cmd.py
…
profiles.py feat: add 'hermes dump' command for copy-pasteable setup summary (#6550) 2026-04-09 04:00:41 -07:00
providers.py fix: include custom_providers in /model command listings and resolution 2026-04-10 03:07:00 -07:00
runtime_provider.py fix: skip stale Nous pool entry when agent_key is expired 2026-04-09 21:48:50 -07:00
setup.py Harden setup provider flows 2026-04-10 02:57:39 -07:00
skills_config.py fix(bluebubbles): add missing integration points and documentation (#6460) 2026-04-09 00:19:05 -07:00
skills_hub.py
…
skin_engine.py
…
status.py fix: deduplicate _is_termux() into hermes_constants.is_termux() 2026-04-09 16:24:53 -07:00
tools_config.py feat(gateway): add BlueBubbles iMessage platform adapter (#6437) 2026-04-08 23:54:03 -07:00
uninstall.py fix(cli): add missing os and platform imports in uninstall.py (#7034) 2026-04-10 02:41:33 -07:00
webhook.py
…