mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-05-03 02:11:48 +00:00
Merge df3b55e4f0 into fd10463069
This commit is contained in:
commit
e9fd9f6109
5 changed files with 100 additions and 0 deletions
|
|
@ -33,6 +33,7 @@ class TestProviderRegistry:
|
|||
("copilot-acp", "GitHub Copilot ACP", "external_process"),
|
||||
("copilot", "GitHub Copilot", "api_key"),
|
||||
("huggingface", "Hugging Face", "api_key"),
|
||||
("ppq", "PPQ (PayPerQ)", "api_key"),
|
||||
("zai", "Z.AI / GLM", "api_key"),
|
||||
("xai", "xAI", "api_key"),
|
||||
("nvidia", "NVIDIA NIM", "api_key"),
|
||||
|
|
@ -67,6 +68,12 @@ class TestProviderRegistry:
|
|||
assert pconfig.base_url_env_var == "NVIDIA_BASE_URL"
|
||||
assert pconfig.inference_base_url == "https://integrate.api.nvidia.com/v1"
|
||||
|
||||
def test_ppq_env_vars(self):
|
||||
pconfig = PROVIDER_REGISTRY["ppq"]
|
||||
assert pconfig.api_key_env_vars == ("PPQ_API_KEY",)
|
||||
assert pconfig.base_url_env_var == "PPQ_BASE_URL"
|
||||
assert pconfig.inference_base_url == "https://api.ppq.ai"
|
||||
|
||||
def test_copilot_env_vars(self):
|
||||
pconfig = PROVIDER_REGISTRY["copilot"]
|
||||
assert pconfig.api_key_env_vars == ("COPILOT_GITHUB_TOKEN", "GH_TOKEN", "GITHUB_TOKEN")
|
||||
|
|
@ -138,6 +145,7 @@ class TestProviderRegistry:
|
|||
PROVIDER_ENV_VARS = (
|
||||
"OPENROUTER_API_KEY", "OPENAI_API_KEY", "ANTHROPIC_API_KEY", "ANTHROPIC_TOKEN",
|
||||
"CLAUDE_CODE_OAUTH_TOKEN",
|
||||
"PPQ_API_KEY",
|
||||
"GLM_API_KEY", "ZAI_API_KEY", "Z_AI_API_KEY",
|
||||
"KIMI_API_KEY", "KIMI_BASE_URL", "STEPFUN_API_KEY", "STEPFUN_BASE_URL",
|
||||
"MINIMAX_API_KEY", "MINIMAX_CN_API_KEY",
|
||||
|
|
|
|||
|
|
@ -157,6 +157,8 @@ class TestNormalizeProvider:
|
|||
|
||||
def test_known_aliases(self):
|
||||
assert normalize_provider("glm") == "zai"
|
||||
assert normalize_provider("payperq") == "ppq"
|
||||
assert normalize_provider("ppq.ai") == "ppq"
|
||||
assert normalize_provider("kimi") == "kimi-coding"
|
||||
assert normalize_provider("moonshot") == "kimi-coding"
|
||||
assert normalize_provider("step") == "stepfun"
|
||||
|
|
@ -173,6 +175,7 @@ class TestProviderLabel:
|
|||
assert provider_label("stepfun") == "StepFun Step Plan"
|
||||
assert provider_label("copilot") == "GitHub Copilot"
|
||||
assert provider_label("copilot-acp") == "GitHub Copilot ACP"
|
||||
assert provider_label("ppq") == "PPQ (PayPerQ)"
|
||||
assert provider_label("auto") == "Auto"
|
||||
|
||||
def test_unknown_provider_preserves_original_name(self):
|
||||
|
|
@ -210,6 +213,23 @@ class TestProviderModelIds:
|
|||
):
|
||||
assert provider_model_ids("stepfun") == ["step-3.5-flash", "step-3-agent-lite"]
|
||||
|
||||
def test_ppq_prefers_live_catalog(self):
|
||||
with patch("hermes_cli.auth.resolve_api_key_provider_credentials", return_value={
|
||||
"api_key": "***", "base_url": "https://api.ppq.ai",
|
||||
}), patch("hermes_cli.models.fetch_api_models", return_value=[
|
||||
"claude-sonnet-4.6", "openai/gpt-5.4",
|
||||
]):
|
||||
assert provider_model_ids("ppq") == ["claude-sonnet-4.6", "openai/gpt-5.4"]
|
||||
|
||||
def test_ppq_falls_back_to_curated(self):
|
||||
"""When live fetch fails, PPQ falls back to the curated _PROVIDER_MODELS list."""
|
||||
with patch("hermes_cli.auth.resolve_api_key_provider_credentials", return_value={
|
||||
"api_key": "", "base_url": "https://api.ppq.ai",
|
||||
}):
|
||||
ids = provider_model_ids("ppq")
|
||||
assert len(ids) > 0
|
||||
assert "claude-opus-4.7" in ids
|
||||
|
||||
def test_copilot_prefers_live_catalog(self):
|
||||
with patch("hermes_cli.auth.resolve_api_key_provider_credentials", return_value={"api_key": "gh-token"}), \
|
||||
patch("hermes_cli.models._fetch_github_models", return_value=["gpt-5.4", "claude-sonnet-4.6"]):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue