# VAPORA LLM Router Schema with Cost Tracking and Budget Enforcement { host | String | doc "LLM Router bind address" | default = "0.0.0.0", port | Number | doc "LLM Router port" | default = 8003, cost_tracking = { enabled | Bool | doc "Enable cost tracking per provider" | default = true, track_tokens | Bool | doc "Track input/output tokens" | default = true, track_latency | Bool | doc "Track provider latency" | default = true, reporting_interval | Number | doc "Cost report interval in seconds" | default = 3600, }, budget_enforcement = { enabled | Bool | doc "Enable budget enforcement with automatic fallback" | default = true, window | String | doc "Budget window: daily, weekly, monthly" | default = "monthly", near_threshold_percent | Number | doc "Alert threshold percentage (80 = 80%)" | default = 80, auto_fallback | Bool | doc "Automatically fallback to cheaper provider" | default = true, detailed_tracking | Bool | doc "Detailed cost tracking per role" | default = true, role_limits = { architect_cents | Number | doc "Architect monthly budget (USD cents)" | default = 500000, developer_cents | Number | doc "Developer monthly budget (USD cents)" | default = 300000, reviewer_cents | Number | doc "Reviewer monthly budget (USD cents)" | default = 200000, testing_cents | Number | doc "Testing monthly budget (USD cents)" | default = 100000, }, }, providers = { claude_enabled | Bool | doc "Enable Anthropic Claude provider" | default = true, openai_enabled | Bool | doc "Enable OpenAI provider" | default = false, gemini_enabled | Bool | doc "Enable Google Gemini provider" | default = false, ollama_enabled | Bool | doc "Enable local Ollama provider" | default = false, ollama_url | String | doc "Ollama server URL" | default = "http://localhost:11434", }, routing = { strategy | String | doc "Routing strategy: cost_aware, performance, balanced" | default = "balanced", fallback_chain | Array String | doc "Fallback provider chain" | default = ["claude", "gpt-4", "ollama"], retry_attempts | Number | doc "Retry attempts for failed requests" | default = 3, retry_delay | Number | doc "Retry delay in milliseconds" | default = 1000, request_timeout | Number | doc "Request timeout in seconds" | default = 60, }, logging = { level | String | doc "Log level: trace, debug, info, warn, error" | default = "info", detailed_cost_logs | Bool | doc "Log detailed cost information" | default = true, }, }