# VAPORA Installation Configuration Form
#
# Interactive setup for VAPORA deployment profiles: solo, multiuser, enterprise

[[elements]]
border_top = true
border_bottom = false
name = "vapora_header"
title = "VAPORA Intelligent Development Orchestration Platform"
type = "section_header"

[[elements]]
default = "solo"
help = "Deployment profile: solo (dev), multiuser (team), enterprise (production)"
name = "deployment_mode"
nickel_path = ["vapora", "deployment_mode"]
options = ["solo", "multiuser", "enterprise"]
prompt = "Deployment Mode"
required = true
type = "select"

[[elements]]
default = "vapora-workspace"
help = "Workspace name for multi-tenant installations"
name = "workspace_name"
nickel_path = ["vapora", "workspace_name"]
prompt = "Workspace Name"
required = true
type = "text"

[[elements]]
border_top = true
border_bottom = false
name = "backend_header"
title = "🖥️ Backend Configuration"
type = "section_header"

[[elements]]
default = "0.0.0.0"
help = "Backend API bind address"
name = "backend_host"
nickel_path = ["vapora", "backend", "host"]
prompt = "Backend Host"
required = true
type = "text"

[[elements]]
default = 8001
help = "Backend API port (range: 1024-65535)"
max = 65535
min = 1024
name = "backend_port"
nickel_path = ["vapora", "backend", "port"]
prompt = "Backend Port"
required = true
type = "number"

[[elements]]
default = 4
help = "Number of backend worker threads"
max = 32
min = 1
name = "backend_workers"
nickel_path = ["vapora", "backend", "workers"]
prompt = "Backend Workers"
required = true
type = "number"

[[elements]]
default = 30000
help = "Backend request timeout in milliseconds"
max = 300000
min = 5000
name = "backend_timeout"
nickel_path = ["vapora", "backend", "request_timeout"]
prompt = "Request Timeout (ms)"
required = true
type = "number"

[[elements]]
border_top = true
border_bottom = false
name = "agents_header"
title = "🤖 Agents Configuration"
type = "section_header"

[[elements]]
default = "0.0.0.0"
help = "Agents server bind address"
name = "agents_host"
nickel_path = ["vapora", "agents", "host"]
prompt = "Agents Host"
required = true
type = "text"

[[elements]]
default = 8002
help = "Agents server port (range: 1024-65535)"
max = 65535
min = 1024
name = "agents_port"
nickel_path = ["vapora", "agents", "port"]
prompt = "Agents Port"
required = true
type = "number"

[[elements]]
default = 10
help = "Maximum concurrent agent instances"
max = 100
min = 1
name = "max_agents_instances"
nickel_path = ["vapora", "agents", "max_instances"]
prompt = "Max Agent Instances"
required = true
type = "number"

[[elements]]
default = 300
help = "Heartbeat interval in seconds"
max = 3600
min = 30
name = "heartbeat_interval"
nickel_path = ["vapora", "agents", "heartbeat_interval"]
prompt = "Heartbeat Interval (s)"
required = true
type = "number"

[[elements]]
border_top = true
border_bottom = false
name = "llm_router_header"
title = "🧠 LLM Router Configuration"
type = "section_header"

[[elements]]
default = "0.0.0.0"
help = "LLM Router bind address"
name = "router_host"
nickel_path = ["vapora", "llm_router", "host"]
prompt = "Router Host"
required = true
type = "text"

[[elements]]
default = 8003
help = "LLM Router port"
max = 65535
min = 1024
name = "router_port"
nickel_path = ["vapora", "llm_router", "port"]
prompt = "Router Port"
required = true
type = "number"

[[elements]]
default = false
help = "Enable cost tracking per provider"
name = "cost_tracking_enabled"
nickel_path = ["vapora", "llm_router", "cost_tracking", "enabled"]
prompt = "Enable Cost Tracking"
required = true
type = "bool"

[[elements]]
default = 1000
help = "Monthly budget limit in USD (cents)"
max = 1000000
min = 100
name = "monthly_budget_limit"
nickel_path = ["vapora", "llm_router", "cost_tracking", "monthly_budget_limit_cents"]
prompt = "Monthly Budget Limit (USD cents)"
required = false
type = "number"

[[elements]]
border_top = true
border_bottom = false
name = "database_header"
title = "💾 Database (SurrealDB)"
type = "section_header"

[[elements]]
default = "ws://localhost:8000"
help = "SurrealDB connection URL (ws:// for remote, file:// for local)"
name = "surrealdb_url"
nickel_path = ["vapora", "database", "url"]
prompt = "SurrealDB URL"
required = true
type = "text"

[[elements]]
default = "root"
help = "SurrealDB username"
name = "surrealdb_user"
nickel_path = ["vapora", "database", "username"]
prompt = "SurrealDB Username"
required = true
type = "text"

[[elements]]
default = ""
help = "SurrealDB password (leave empty to use environment variable)"
name = "surrealdb_password"
nickel_path = ["vapora", "database", "password"]
prompt = "SurrealDB Password"
required = false
type = "password"

[[elements]]
default = "vapora"
help = "SurrealDB database name"
name = "surrealdb_database"
nickel_path = ["vapora", "database", "database"]
prompt = "Database Name"
required = true
type = "text"

[[elements]]
default = 20
help = "Connection pool size"
max = 200
min = 5
name = "pool_size"
nickel_path = ["vapora", "database", "pool_size"]
prompt = "Connection Pool Size"
required = true
type = "number"

[[elements]]
border_top = true
border_bottom = false
name = "nats_header"
title = "📨 NATS JetStream Configuration"
type = "section_header"

[[elements]]
default = false
help = "Enable NATS JetStream for distributed agent coordination"
name = "nats_enabled"
nickel_path = ["vapora", "nats", "enabled"]
prompt = "Enable NATS"
required = true
type = "bool"

[[elements]]
default = "nats://localhost:4222"
help = "NATS server URL"
name = "nats_url"
nickel_path = ["vapora", "nats", "url"]
prompt = "NATS URL"
required = false
type = "text"

[[elements]]
default = 60
help = "NATS connection timeout in seconds"
max = 600
min = 5
name = "nats_timeout"
nickel_path = ["vapora", "nats", "timeout"]
prompt = "NATS Timeout (s)"
required = false
type = "number"

[[elements]]
border_top = true
border_bottom = false
name = "frontend_header"
title = "🎨 Frontend Configuration"
type = "section_header"

[[elements]]
default = "0.0.0.0"
help = "Frontend server bind address"
name = "frontend_host"
nickel_path = ["vapora", "frontend", "host"]
prompt = "Frontend Host"
required = true
type = "text"

[[elements]]
default = 3000
help = "Frontend server port"
max = 65535
min = 1024
name = "frontend_port"
nickel_path = ["vapora", "frontend", "port"]
prompt = "Frontend Port"
required = true
type = "number"

[[elements]]
default = "http://localhost:8001"
help = "Backend API URL (as seen from frontend)"
name = "frontend_api_url"
nickel_path = ["vapora", "frontend", "api_url"]
prompt = "Backend API URL"
required = true
type = "text"

[[elements]]
border_top = true
border_bottom = false
name = "monitoring_header"
title = "📊 Monitoring & Observability"
type = "section_header"

[[elements]]
default = false
help = "Enable Prometheus metrics collection"
name = "prometheus_enabled"
nickel_path = ["vapora", "monitoring", "prometheus_enabled"]
prompt = "Enable Prometheus"
required = true
type = "bool"

[[elements]]
default = "info"
help = "Log level: trace, debug, info, warn, error"
name = "log_level"
nickel_path = ["vapora", "monitoring", "log_level"]
options = ["trace", "debug", "info", "warn", "error"]
prompt = "Log Level"
required = true
type = "select"

[[elements]]
default = false
help = "Enable distributed tracing with OpenTelemetry"
name = "tracing_enabled"
nickel_path = ["vapora", "monitoring", "tracing_enabled"]
prompt = "Enable Distributed Tracing"
required = false
type = "bool"

[[elements]]
border_top = true
border_bottom = false
name = "providers_header"
title = "🔌 LLM Provider Configuration"
type = "section_header"

[[elements]]
default = true
help = "Enable Anthropic Claude provider"
name = "provider_claude"
nickel_path = ["vapora", "providers", "claude_enabled"]
prompt = "Enable Claude (Anthropic)"
required = true
type = "bool"

[[elements]]
default = false
help = "Enable OpenAI provider"
name = "provider_openai"
nickel_path = ["vapora", "providers", "openai_enabled"]
prompt = "Enable OpenAI"
required = false
type = "bool"

[[elements]]
default = false
help = "Enable Google Gemini provider"
name = "provider_gemini"
nickel_path = ["vapora", "providers", "gemini_enabled"]
prompt = "Enable Google Gemini"
required = false
type = "bool"

[[elements]]
default = false
help = "Enable local Ollama provider"
name = "provider_ollama"
nickel_path = ["vapora", "providers", "ollama_enabled"]
prompt = "Enable Ollama (Local)"
required = false
type = "bool"

[[elements]]
default = "http://localhost:11434"
help = "Ollama server URL"
name = "ollama_url"
nickel_path = ["vapora", "providers", "ollama_url"]
prompt = "Ollama URL"
required = false
type = "text"
