Skip to content

fix(doctor): register vertex provider so hermes doctor recognizes Google Vertex AI (#65949) - #65962

Closed
kyssta-exe wants to merge 1 commit into
NousResearch:mainfrom
kyssta-exe:auto-fix/issue-65949
Closed

fix(doctor): register vertex provider so hermes doctor recognizes Google Vertex AI (#65949)#65962
kyssta-exe wants to merge 1 commit into
NousResearch:mainfrom
kyssta-exe:auto-fix/issue-65949

Conversation

@kyssta-exe

Copy link
Copy Markdown
Contributor

Problem

When using model.provider: vertex for Google Vertex AI, running hermes doctor fails with:

model.provider 'vertex' is not a recognised provider

Vertex AI is a valid provider that works correctly at runtime (via runtime_provider.pyagent.vertex_adapter), but it was missing from both PROVIDER_REGISTRY and HERMES_OVERLAYS.

Root Cause

doctor.py builds its known-provider list from PROVIDER_REGISTRY.keys() + {"openrouter", "custom", "auto"}. Since vertex was never added to either:

  1. PROVIDER_REGISTRY (auth.py) — so resolve_provider("vertex") raised AuthError
  2. HERMES_OVERLAYS (providers.py) — so get_provider("vertex") returned None

Fix

  • auth.py: Added vertex entry to PROVIDER_REGISTRY with auth_type="gcp_sdk" (parallel to bedrock using auth_type="aws_sdk"). Empty api_key_env_vars and base_url_env_var since Vertex uses GCP ADC / service account files, not static keys.
  • providers.py: Added vertex to HERMES_OVERLAYS (transport="openai_chat", auth_type="gcp_sdk") so provider metadata resolves properly.
  • providers.py: Added vertex aliases (google-vertex, vertex-ai, gcp-vertex, vertexaivertex) to ALIASES.
  • auth.py: Added same aliases to resolve_provider's _PROVIDER_ALIASES dict.
  • providers.py: Added "vertex": "Google Vertex AI" to _LABEL_OVERRIDES.

Testing

  • 66/66 doctor tests pass
  • 151/151 runtime provider resolution tests pass
  • All vertex aliases resolve correctly through both normalize_provider and resolve_provider
  • get_provider("vertex") returns a proper ProviderDef with id="vertex"
  • vertex is now visible in provider_catalog()

Fixes #65949

…_OVERLAYS so hermes doctor recognizes Google Vertex AI (NousResearch#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.
@alt-glitch alt-glitch added type/bug Something isn't working comp/cli CLI entry point, hermes_cli/, setup wizard provider/gemini Google Gemini (AI Studio, Cloud Code) area/auth Authentication, OAuth, credential pools P3 Low — cosmetic, nice to have sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades needs-decision Awaiting maintainer decision before any implementation labels Jul 16, 2026

@tonydwb tonydwb left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. No obvious issues found.


Reviewed by Hermes Agent

@teknium1

Copy link
Copy Markdown
Contributor

Thanks for tracing the doctor validation path; the reported false positive is present on current main.

Problems

  • The patch creates a second Vertex auth description using gcp_sdk, but the registered Vertex profile uses auth_type="vertex" at plugins/model-providers/vertex/__init__.py:71, and the runtime client dispatches that value at agent/auxiliary_client.py:5300. Current main has no gcp_sdk handler.
  • The diff adds no regression coverage for hermes doctor. Existing Vertex coverage is runtime/profile-only in tests/hermes_cli/test_vertex_provider.py:13-80; the provider-validation parameterization in tests/hermes_cli/test_doctor.py:513-565 does not include Vertex.

Suggested changes

  • Teach hermes_cli/doctor.py:748-816 to recognize registered provider profiles (including their aliases) instead of duplicating Vertex into PROVIDER_REGISTRY and HERMES_OVERLAYS.
  • Add a doctor regression test for model.provider: vertex and a google/... model slug, asserting both reported diagnostics are absent.

Automated hermes-sweeper review.

@teknium1 teknium1 added sweeper:blast-moderate Sweeper blast radius: moderate — a subsystem or single platform area/install-update Installer, updater, packaging, wheels, doctor labels Jul 18, 2026
@kyssta-exe

Copy link
Copy Markdown
Contributor Author

This PR has merge conflicts with the base branch and cannot be merged in its current state. Closing as part of automated PR maintenance — please rebase and re-open if the fix is still needed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/auth Authentication, OAuth, credential pools area/install-update Installer, updater, packaging, wheels, doctor comp/cli CLI entry point, hermes_cli/, setup wizard needs-decision Awaiting maintainer decision before any implementation P3 Low — cosmetic, nice to have provider/gemini Google Gemini (AI Studio, Cloud Code) sweeper:blast-moderate Sweeper blast radius: moderate — a subsystem or single platform sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: hermes setup issue - Not able to setup for google cloud project models (gemini, gemma, claude)

4 participants