mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-04-29 01:31:41 +00:00
feat(agent): add lmstudio integration
This commit is contained in:
parent
7d4648461a
commit
214ca943ac
26 changed files with 1137 additions and 40 deletions
|
|
@ -145,6 +145,7 @@ class TestProviderRegistry:
|
|||
PROVIDER_ENV_VARS = (
|
||||
"OPENROUTER_API_KEY", "OPENAI_API_KEY", "ANTHROPIC_API_KEY", "ANTHROPIC_TOKEN",
|
||||
"CLAUDE_CODE_OAUTH_TOKEN",
|
||||
"LM_API_KEY", "LM_BASE_URL",
|
||||
"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",
|
||||
|
|
@ -428,6 +429,29 @@ class TestResolveApiKeyProviderCredentials:
|
|||
assert creds["base_url"] == "https://api.githubcopilot.com"
|
||||
assert creds["source"] == "gh auth token"
|
||||
|
||||
def test_resolve_lmstudio_uses_token_and_base_url_from_env(self, monkeypatch):
|
||||
monkeypatch.setenv("LM_API_KEY", "lm-token")
|
||||
monkeypatch.setenv("LM_BASE_URL", "http://lmstudio.remote:4321/v1")
|
||||
|
||||
creds = resolve_api_key_provider_credentials("lmstudio")
|
||||
|
||||
assert creds["provider"] == "lmstudio"
|
||||
assert creds["api_key"] == "lm-token"
|
||||
assert creds["base_url"] == "http://lmstudio.remote:4321/v1"
|
||||
|
||||
def test_resolve_lmstudio_no_api_key_substitutes_placeholder(self, monkeypatch):
|
||||
# No-auth LM Studio: when LM_API_KEY isn't set, runtime credentials
|
||||
# carry a placeholder so gateway/TUI/cron paths see the local server
|
||||
# as configured. get_api_key_provider_status still reports unconfigured.
|
||||
monkeypatch.delenv("LM_API_KEY", raising=False)
|
||||
monkeypatch.delenv("LM_BASE_URL", raising=False)
|
||||
|
||||
creds = resolve_api_key_provider_credentials("lmstudio")
|
||||
|
||||
assert creds["provider"] == "lmstudio"
|
||||
assert creds["api_key"] == "dummy-lm-api-key"
|
||||
assert creds["base_url"] == "http://127.0.0.1:1234/v1"
|
||||
|
||||
def test_try_gh_cli_token_uses_homebrew_path_when_not_on_path(self, monkeypatch):
|
||||
monkeypatch.setattr("hermes_cli.copilot_auth.shutil.which", lambda command: None)
|
||||
monkeypatch.setattr(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue