| """Shared OpenRouter API client for Hermes tools. | |
| Provides a single lazy-initialized AsyncOpenAI client that all tool modules | |
| can share. Routes through the centralized provider router in | |
| agent/auxiliary_client.py so auth, headers, and API format are handled | |
| consistently. | |
| """ | |
| import os | |
| _client = None | |
| def get_async_client(): | |
| """Return a shared async OpenAI-compatible client for OpenRouter. | |
| The client is created lazily on first call and reused thereafter. | |
| Uses the centralized provider router for auth and client construction. | |
| Raises ValueError if OPENROUTER_API_KEY is not set. | |
| """ | |
| global _client | |
| if _client is None: | |
| from agent.auxiliary_client import resolve_provider_client | |
| client, _model = resolve_provider_client("openrouter", async_mode=True) | |
| if client is None: | |
| raise ValueError("OPENROUTER_API_KEY environment variable not set") | |
| _client = client | |
| return _client | |
| def check_api_key() -> bool: | |
| """Check whether the OpenRouter API key is present.""" | |
| return bool(os.getenv("OPENROUTER_API_KEY")) | |