"""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"))