25 lines
831 B
Python
25 lines
831 B
Python
|
|
"""ACP auth helpers — detect the currently configured Hermes provider."""
|
||
|
|
|
||
|
|
from __future__ import annotations
|
||
|
|
|
||
|
|
from typing import Optional
|
||
|
|
|
||
|
|
|
||
|
|
def detect_provider() -> Optional[str]:
|
||
|
|
"""Resolve the active Hermes runtime provider, or None if unavailable."""
|
||
|
|
try:
|
||
|
|
from hermes_cli.runtime_provider import resolve_runtime_provider
|
||
|
|
runtime = resolve_runtime_provider()
|
||
|
|
api_key = runtime.get("api_key")
|
||
|
|
provider = runtime.get("provider")
|
||
|
|
if isinstance(api_key, str) and api_key.strip() and isinstance(provider, str) and provider.strip():
|
||
|
|
return provider.strip().lower()
|
||
|
|
except Exception:
|
||
|
|
return None
|
||
|
|
return None
|
||
|
|
|
||
|
|
|
||
|
|
def has_provider() -> bool:
|
||
|
|
"""Return True if Hermes can resolve any runtime provider credentials."""
|
||
|
|
return detect_provider() is not None
|