From 9df1a1a8de8ea3a9826201936a6c762edcfcac33 Mon Sep 17 00:00:00 2001 From: liuhao1024 Date: Sun, 31 May 2026 00:18:45 +0800 Subject: [PATCH] fix(doctor): recognize nvidia as vendor-slug-accepting provider NVIDIA NIM API uses vendor-prefixed model IDs (e.g. qwen/qwen3.5-122b-a10b, nvidia/nemotron-3-super-120b-a12b). The doctor command incorrectly warns that vendor-prefixed slugs belong to aggregators like openrouter when nvidia is the configured provider. Add 'nvidia' to the providers_accepting_vendor_slugs set so doctor no longer raises false-positive warnings for valid NVIDIA NIM configurations. Fixes #35425 --- hermes_cli/doctor.py | 1 + tests/hermes_cli/test_doctor.py | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/hermes_cli/doctor.py b/hermes_cli/doctor.py index 79c41b03f15..127adefb39c 100644 --- a/hermes_cli/doctor.py +++ b/hermes_cli/doctor.py @@ -796,6 +796,7 @@ def run_doctor(args): "huggingface", "lmstudio", "nous", + "nvidia", } provider_accepts_vendor_slug = ( provider_policy_id in providers_accepting_vendor_slugs diff --git a/tests/hermes_cli/test_doctor.py b/tests/hermes_cli/test_doctor.py index c9b2dad0626..ba2032b8efa 100644 --- a/tests/hermes_cli/test_doctor.py +++ b/tests/hermes_cli/test_doctor.py @@ -493,6 +493,7 @@ def test_run_doctor_flags_missing_credentials_for_active_openrouter_provider(mon ("opencode-zen", "anthropic/claude-sonnet-4.6"), ("kilocode", "anthropic/claude-sonnet-4.6"), ("kimi-coding", "kimi-k2"), + ("nvidia", "qwen/qwen3.5-122b-a10b"), ], ) def test_run_doctor_accepts_hermes_provider_ids_that_catalog_aliases( @@ -533,7 +534,7 @@ def test_run_doctor_accepts_hermes_provider_ids_that_catalog_aliases( out = buf.getvalue() assert f"model.provider '{provider}' is not a recognised provider" not in out assert f"model.provider '{provider}' is unknown" not in out - if provider in {"opencode-zen", "kilocode"}: + if provider in {"opencode-zen", "kilocode", "nvidia"}: assert ( f"model.default '{default_model}' uses a vendor/model slug but provider is '{provider}'" not in out