From 21f98d7e23d78f247bd81bdc9aafc83722249fd0 Mon Sep 17 00:00:00 2001 From: "kyssta-exe 25470058+kyssta-exe@users.noreply.github.com" Date: Thu, 16 Jul 2026 21:55:18 +0000 Subject: [PATCH] fix(doctor): register vertex provider in PROVIDER_REGISTRY and HERMES_OVERLAYS so hermes doctor recognizes Google Vertex AI (#65949) Google Vertex AI is a valid provider configured via GCP ADC/service accounts, but it was missing from PROVIDER_REGISTRY (auth provider list) and HERMES_OVERLAYS (provider metadata). This caused 'hermes doctor' to report: model.provider 'vertex' is not a recognised provider Root cause: doctor.py builds its known-provider list from PROVIDER_REGISTRY.keys(), and vertex was never added there because it uses GCP SDK auth rather than a static API key. Fix: - Add vertex to PROVIDER_REGISTRY in auth.py (gcp_sdk auth type, like bedrock uses aws_sdk) so resolve_provider() and doctor recognize it. - Add vertex to HERMES_OVERLAYS in providers.py so get_provider() and resolve_provider_full() return proper metadata. - Add vertex aliases (google-vertex, vertex-ai, gcp-vertex, vertexai) to ALIASES in both providers.py and auth.py's _PROVIDER_ALIASES. --- hermes_cli/auth.py | 11 +++++++++++ hermes_cli/providers.py | 10 ++++++++++ 2 files changed, 21 insertions(+) diff --git a/hermes_cli/auth.py b/hermes_cli/auth.py index ad2c48037db1b..bfb3ccc3f1e1f 100644 --- a/hermes_cli/auth.py +++ b/hermes_cli/auth.py @@ -442,6 +442,14 @@ class ProviderConfig: api_key_env_vars=("AZURE_FOUNDRY_API_KEY",), base_url_env_var="AZURE_FOUNDRY_BASE_URL", ), + "vertex": ProviderConfig( + id="vertex", + name="Google Vertex AI", + auth_type="gcp_sdk", + inference_base_url="", # Computed at runtime from project_id + region + api_key_env_vars=(), + base_url_env_var="", + ), } # Auto-extend PROVIDER_REGISTRY with any api-key provider registered in @@ -1776,6 +1784,9 @@ def resolve_provider( "go": "opencode-go", "opencode-go-sub": "opencode-go", "kilo": "kilocode", "kilo-code": "kilocode", "kilo-gateway": "kilocode", "lmstudio": "lmstudio", "lm-studio": "lmstudio", "lm_studio": "lmstudio", + # Vertex aliases + "google-vertex": "vertex", "vertex-ai": "vertex", + "gcp-vertex": "vertex", "vertexai": "vertex", # Local server aliases — route through the generic custom provider "ollama": "custom", "ollama_cloud": "ollama-cloud", "vllm": "custom", "llamacpp": "custom", diff --git a/hermes_cli/providers.py b/hermes_cli/providers.py index 2880b33fc4d01..69b400de2e1a7 100644 --- a/hermes_cli/providers.py +++ b/hermes_cli/providers.py @@ -222,6 +222,10 @@ class HermesOverlay: transport="bedrock_converse", auth_type="aws_sdk", ), + "vertex": HermesOverlay( + transport="openai_chat", + auth_type="gcp_sdk", + ), } @@ -370,6 +374,11 @@ class ProviderDef: "llamacpp": "local", "llama.cpp": "local", "llama-cpp": "local", + # vertex + "google-vertex": "vertex", + "vertex-ai": "vertex", + "gcp-vertex": "vertex", + "vertexai": "vertex", } @@ -392,6 +401,7 @@ class ProviderDef: "bedrock": "AWS Bedrock", "ollama-cloud": "Ollama Cloud", "xai-oauth": "xAI Grok OAuth (SuperGrok / Premium+)", + "vertex": "Google Vertex AI", }