fix(status): add missing popular provider API keys to hermes status#16159
fix(status): add missing popular provider API keys to hermes status#16159briandevans wants to merge 2 commits into
Conversation
Adds Google/Gemini, DeepSeek, xAI/Grok, and NVIDIA NIM to both the "API Keys" display section and the "API-Key Providers" section. All four are present in PROVIDER_REGISTRY with api_key_env_vars set but were absent from status output. Closes NousResearch#16082 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
Updates hermes status to surface additional API-key based providers that were previously missing from the status output, addressing #16082.
Changes:
- Add Google/Gemini, DeepSeek, xAI/Grok, and NVIDIA NIM to the API Keys section.
- Add the same providers to the API-Key Providers section (including multi-env-var support for Gemini).
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| keys = { | ||
| "OpenRouter": "OPENROUTER_API_KEY", | ||
| "OpenAI": "OPENAI_API_KEY", | ||
| "Google/Gemini": "GOOGLE_API_KEY", |
There was a problem hiding this comment.
The provider label for Gemini is inconsistent between sections ("Google/Gemini" in API Keys vs "Google / Gemini" in API-Key Providers). Since these two sections are meant to correspond, consider using the same label string in both places to avoid user confusion and make grep-based troubleshooting easier.
| "Google/Gemini": "GOOGLE_API_KEY", | |
| "Google / Gemini": "GOOGLE_API_KEY", |
| apikey_providers = { | ||
| "Google / Gemini": ("GOOGLE_API_KEY", "GEMINI_API_KEY"), | ||
| "DeepSeek": ("DEEPSEEK_API_KEY",), | ||
| "xAI / Grok": ("XAI_API_KEY",), | ||
| "NVIDIA NIM": ("NVIDIA_API_KEY",), |
There was a problem hiding this comment.
hermes_cli/status.py has unit tests (e.g. tests/hermes_cli/test_status.py) asserting API key redaction and presence in output, but this change adds new provider rows without tests. Add tests covering at least: (1) GOOGLE_API_KEY vs GEMINI_API_KEY fallback in the API Keys section, and (2) configured/not-configured rendering for DeepSeek/xAI/NVIDIA in both sections.
| keys = { | ||
| "OpenRouter": "OPENROUTER_API_KEY", | ||
| "OpenAI": "OPENAI_API_KEY", | ||
| "Google/Gemini": "GOOGLE_API_KEY", |
There was a problem hiding this comment.
The new "Google/Gemini" API key entry only checks GOOGLE_API_KEY. If a user has GEMINI_API_KEY set (which is supported in PROVIDER_REGISTRY["gemini"].api_key_env_vars), hermes status will still show ✗ (not set). Update this entry to use the same multi-env-var fallback as the API-Key Providers section (or add a dedicated Gemini key row) so either env var is recognized and the displayed redacted value matches the one actually used.
| "Google/Gemini": "GOOGLE_API_KEY", | |
| "Google/Gemini": ("GOOGLE_API_KEY", "GEMINI_API_KEY"), |
…l; add tests Address three Copilot findings on NousResearch#16082: 1. Label inconsistency: "Google/Gemini" in the API Keys dict now matches the "Google / Gemini" spelling used in the API-Key Providers section below it. 2. GEMINI_API_KEY not checked: the Google/Gemini row now accepts either GOOGLE_API_KEY or GEMINI_API_KEY (first found wins), matching PROVIDER_REGISTRY["gemini"].api_key_env_vars. 3. Missing test coverage: adds two new tests — one asserting the new DeepSeek/xAI/NVIDIA rows appear with correct redacted output, one asserting the GEMINI_API_KEY fallback path triggers correctly. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
@copilot All 3 findings addressed in commit 3da8ff4:
|
…isplay Closes #16082. `hermes status` silently omitted four widely-used LLM providers (Google/Gemini, DeepSeek, xAI/Grok, NVIDIA NIM) from the API Keys and API-Key Providers sections. Add them, along with tuple-valued env var support (first found wins) so Google can accept either GOOGLE_API_KEY or GEMINI_API_KEY. Also deduplicates the "NVIDIA" and "NVIDIA NIM" rows that were both pointing at NVIDIA_API_KEY. Salvage of #16159 (core behavior preserved + NVIDIA dedup fixup on top of the tuple-support refactor). Co-authored-by: briandevans <252620095+briandevans@users.noreply.github.com>
|
Salvaged via #19738 onto current main. Main had picked up a duplicate NVIDIA row from a separate merge; the salvage deduplicates it while applying your broader provider list and tuple-env support. Your authorship was preserved. Thanks @briandevans! |
…isplay Closes NousResearch#16082. `hermes status` silently omitted four widely-used LLM providers (Google/Gemini, DeepSeek, xAI/Grok, NVIDIA NIM) from the API Keys and API-Key Providers sections. Add them, along with tuple-valued env var support (first found wins) so Google can accept either GOOGLE_API_KEY or GEMINI_API_KEY. Also deduplicates the "NVIDIA" and "NVIDIA NIM" rows that were both pointing at NVIDIA_API_KEY. Salvage of NousResearch#16159 (core behavior preserved + NVIDIA dedup fixup on top of the tuple-support refactor). Co-authored-by: briandevans <252620095+briandevans@users.noreply.github.com>
…isplay Closes NousResearch#16082. `hermes status` silently omitted four widely-used LLM providers (Google/Gemini, DeepSeek, xAI/Grok, NVIDIA NIM) from the API Keys and API-Key Providers sections. Add them, along with tuple-valued env var support (first found wins) so Google can accept either GOOGLE_API_KEY or GEMINI_API_KEY. Also deduplicates the "NVIDIA" and "NVIDIA NIM" rows that were both pointing at NVIDIA_API_KEY. Salvage of NousResearch#16159 (core behavior preserved + NVIDIA dedup fixup on top of the tuple-support refactor). Co-authored-by: briandevans <252620095+briandevans@users.noreply.github.com>
…isplay Closes NousResearch#16082. `hermes status` silently omitted four widely-used LLM providers (Google/Gemini, DeepSeek, xAI/Grok, NVIDIA NIM) from the API Keys and API-Key Providers sections. Add them, along with tuple-valued env var support (first found wins) so Google can accept either GOOGLE_API_KEY or GEMINI_API_KEY. Also deduplicates the "NVIDIA" and "NVIDIA NIM" rows that were both pointing at NVIDIA_API_KEY. Salvage of NousResearch#16159 (core behavior preserved + NVIDIA dedup fixup on top of the tuple-support refactor). Co-authored-by: briandevans <252620095+briandevans@users.noreply.github.com>
…isplay Closes NousResearch#16082. `hermes status` silently omitted four widely-used LLM providers (Google/Gemini, DeepSeek, xAI/Grok, NVIDIA NIM) from the API Keys and API-Key Providers sections. Add them, along with tuple-valued env var support (first found wins) so Google can accept either GOOGLE_API_KEY or GEMINI_API_KEY. Also deduplicates the "NVIDIA" and "NVIDIA NIM" rows that were both pointing at NVIDIA_API_KEY. Salvage of NousResearch#16159 (core behavior preserved + NVIDIA dedup fixup on top of the tuple-support refactor). Co-authored-by: briandevans <252620095+briandevans@users.noreply.github.com>
…isplay Closes NousResearch#16082. `hermes status` silently omitted four widely-used LLM providers (Google/Gemini, DeepSeek, xAI/Grok, NVIDIA NIM) from the API Keys and API-Key Providers sections. Add them, along with tuple-valued env var support (first found wins) so Google can accept either GOOGLE_API_KEY or GEMINI_API_KEY. Also deduplicates the "NVIDIA" and "NVIDIA NIM" rows that were both pointing at NVIDIA_API_KEY. Salvage of NousResearch#16159 (core behavior preserved + NVIDIA dedup fixup on top of the tuple-support refactor). Co-authored-by: briandevans <252620095+briandevans@users.noreply.github.com>
…isplay Closes NousResearch#16082. `hermes status` silently omitted four widely-used LLM providers (Google/Gemini, DeepSeek, xAI/Grok, NVIDIA NIM) from the API Keys and API-Key Providers sections. Add them, along with tuple-valued env var support (first found wins) so Google can accept either GOOGLE_API_KEY or GEMINI_API_KEY. Also deduplicates the "NVIDIA" and "NVIDIA NIM" rows that were both pointing at NVIDIA_API_KEY. Salvage of NousResearch#16159 (core behavior preserved + NVIDIA dedup fixup on top of the tuple-support refactor). Co-authored-by: briandevans <252620095+briandevans@users.noreply.github.com>
Summary
Closes #16082
hermes statuswas silently omitting four widely-used LLM providers from both its API Keys and API-Key Providers sections, even though all four are fully registered inPROVIDER_REGISTRYwithapi_key_env_varsdefined:GOOGLE_API_KEY,GEMINI_API_KEYDEEPSEEK_API_KEYXAI_API_KEYNVIDIA_API_KEYEach entry is added to both sections:
Test plan
hermes statuswithNVIDIA_API_KEY,DEEPSEEK_API_KEY,XAI_API_KEY, andGOOGLE_API_KEYset — confirm each appears with ✓ and a redacted value in both sectionshermes statuswithout those env vars — confirm each appears with ✗ and(not set)/not configured🤖 Generated with Claude Code