""" Centralised, cached access to runtime configuration. """ from functools import lru_cache from importlib import resources import json import os from pathlib import Path import yaml from dotenv import load_dotenv @lru_cache(maxsize=None) def _load_prompt_template() -> str: with open("prompts/router_prompt.yml", "r") as fh: return yaml.safe_load(fh)["template"] @lru_cache(maxsize=None) def _load_mcp_configs() -> dict: cfg_path = Path( os.getenv( "MCP_CONFIG_PATH", Path(__file__).resolve().parent / "settings" / "mcp_config.json", ) ) with cfg_path.open() as fh: return json.load(fh)["mcpServers"] load_dotenv() PROMPT_TEMPLATE: str = _load_prompt_template() MCP_CONFIGS: dict = _load_mcp_configs() MODEL_API_KEY: str = os.getenv("MODEL_API_KEY") OPENAI_API_KEY = os.getenv("OPENAI_API_KEY") SMITHERY_API_KEY = os.getenv("SMITHERY_API_KEY") MCP_CONFIGS["healthcare-mcp-public"]["args"].append(SMITHERY_API_KEY) MCP_CONFIGS["healthcare-mcp-public"]["url"] = MCP_CONFIGS["healthcare-mcp-public"]["url"].format(api_key=SMITHERY_API_KEY)