"""asf-ai: ASF AI Gateway — "l'ufficio analisti". *Business code NEVER calls a specific LLM provider directly.* It calls typed capability methods on this gateway. Provider adapters (Mock, OpenAI-compat, NVIDIA, local, customer-hosted, ...) implement the low-level interface. Routing, priority queues, tenant AI policy, usage metering and cost tracking live here. """ __version__ = "0.1.0" from .capabilities import ( CapabilityRequest, CapabilityResponse, ChatRequest, ChatResponse, CodeAnalysisRequest, CodeAnalysisResult, TestGenerationRequest, GeneratedTests, RequirementDecomposeRequest, RequirementDecomposition, TraceContext, ) from .gateway import AIGateway, AIGatewayConfig from .providers import ( AIProvider, MockProvider, ProviderRegistry, build_default_gateway, ) from .usage import UsageRecord __all__ = [ "CapabilityRequest", "CapabilityResponse", "ChatRequest", "ChatResponse", "CodeAnalysisRequest", "CodeAnalysisResult", "TestGenerationRequest", "GeneratedTests", "RequirementDecomposeRequest", "RequirementDecomposition", "TraceContext", "AIGateway", "AIGatewayConfig", "AIProvider", "MockProvider", "ProviderRegistry", "build_default_gateway", "UsageRecord", ]