fix(doctor): recognize OPENAI_API_KEY custom endpoint config
This commit is contained in:
parent
b4fbb6fe10
commit
5609117882
2 changed files with 39 additions and 6 deletions
|
|
@ -33,6 +33,26 @@ os.environ.setdefault("MSWEA_SILENT_STARTUP", "1")
|
||||||
from hermes_cli.colors import Colors, color
|
from hermes_cli.colors import Colors, color
|
||||||
from hermes_constants import OPENROUTER_MODELS_URL
|
from hermes_constants import OPENROUTER_MODELS_URL
|
||||||
|
|
||||||
|
|
||||||
|
_PROVIDER_ENV_HINTS = (
|
||||||
|
"OPENROUTER_API_KEY",
|
||||||
|
"OPENAI_API_KEY",
|
||||||
|
"ANTHROPIC_API_KEY",
|
||||||
|
"OPENAI_BASE_URL",
|
||||||
|
"GLM_API_KEY",
|
||||||
|
"ZAI_API_KEY",
|
||||||
|
"Z_AI_API_KEY",
|
||||||
|
"KIMI_API_KEY",
|
||||||
|
"MINIMAX_API_KEY",
|
||||||
|
"MINIMAX_CN_API_KEY",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def _has_provider_env_config(content: str) -> bool:
|
||||||
|
"""Return True when ~/.hermes/.env contains provider auth/base URL settings."""
|
||||||
|
return any(key in content for key in _PROVIDER_ENV_HINTS)
|
||||||
|
|
||||||
|
|
||||||
def check_ok(text: str, detail: str = ""):
|
def check_ok(text: str, detail: str = ""):
|
||||||
print(f" {color('✓', Colors.GREEN)} {text}" + (f" {color(detail, Colors.DIM)}" if detail else ""))
|
print(f" {color('✓', Colors.GREEN)} {text}" + (f" {color(detail, Colors.DIM)}" if detail else ""))
|
||||||
|
|
||||||
|
|
@ -132,12 +152,8 @@ def run_doctor(args):
|
||||||
|
|
||||||
# Check for common issues
|
# Check for common issues
|
||||||
content = env_path.read_text()
|
content = env_path.read_text()
|
||||||
if any(k in content for k in (
|
if _has_provider_env_config(content):
|
||||||
"OPENROUTER_API_KEY", "ANTHROPIC_API_KEY",
|
check_ok("API key or custom endpoint configured")
|
||||||
"GLM_API_KEY", "ZAI_API_KEY", "Z_AI_API_KEY",
|
|
||||||
"KIMI_API_KEY", "MINIMAX_API_KEY", "MINIMAX_CN_API_KEY",
|
|
||||||
)):
|
|
||||||
check_ok("API key configured")
|
|
||||||
else:
|
else:
|
||||||
check_warn("No API key found in ~/.hermes/.env")
|
check_warn("No API key found in ~/.hermes/.env")
|
||||||
issues.append("Run 'hermes setup' to configure API keys")
|
issues.append("Run 'hermes setup' to configure API keys")
|
||||||
|
|
|
||||||
17
tests/hermes_cli/test_doctor.py
Normal file
17
tests/hermes_cli/test_doctor.py
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
"""Tests for hermes doctor helpers."""
|
||||||
|
|
||||||
|
from hermes_cli.doctor import _has_provider_env_config
|
||||||
|
|
||||||
|
|
||||||
|
class TestProviderEnvDetection:
|
||||||
|
def test_detects_openai_api_key(self):
|
||||||
|
content = "OPENAI_BASE_URL=http://localhost:1234/v1\nOPENAI_API_KEY=sk-test-key\n"
|
||||||
|
assert _has_provider_env_config(content)
|
||||||
|
|
||||||
|
def test_detects_custom_endpoint_without_openrouter_key(self):
|
||||||
|
content = "OPENAI_BASE_URL=http://localhost:8080/v1\n"
|
||||||
|
assert _has_provider_env_config(content)
|
||||||
|
|
||||||
|
def test_returns_false_when_no_provider_settings(self):
|
||||||
|
content = "TERMINAL_ENV=local\n"
|
||||||
|
assert not _has_provider_env_config(content)
|
||||||
Loading…
Add table
Add a link
Reference in a new issue