"""Configuration management for mosaic-coordinator.""" from pydantic_settings import BaseSettings, SettingsConfigDict class Settings(BaseSettings): """Application settings loaded from environment variables.""" model_config = SettingsConfigDict( env_file=".env", env_file_encoding="utf-8", case_sensitive=False, extra="ignore", ) # Gitea Configuration gitea_webhook_secret: str gitea_url: str = "https://git.mosaicstack.dev" # Anthropic API anthropic_api_key: str # Server Configuration host: str = "0.0.0.0" port: int = 8000 # Logging log_level: str = "info" # Coordinator Configuration coordinator_poll_interval: float = 5.0 coordinator_max_concurrent_agents: int = 10 coordinator_enabled: bool = True def get_settings() -> Settings: """Get settings instance (lazy loaded).""" return Settings() # type: ignore[call-arg] # Global settings instance settings = get_settings()