# ---------------------------------------------------------------------------
# MAESTRO environment overrides
#
#   cp .env.example .env
#
# Loaded by:
#   - Docker Compose       (docker-compose.yml: env_file: .env)
#   - scripts/server.sh    (bare-metal: each KEY=value is exported before launch)
#
# Precedence: explicit shell env  >  .env  >  config.yaml  >  built-in defaults.
# Every key is OPTIONAL. The uncommented defaults below target the Docker path;
# bare-metal installs usually generate config.yaml with `npm run setup` and only
# need this file for the LLM endpoint and HOST.
#
# NOTE: under Docker Compose, PORT / DB_PATH / WORKTREE_DIR are also pinned in
# docker-compose.yml's `environment:` block, which overrides this file. Editing
# them here only takes effect on a bare-metal (scripts/server.sh) launch.
# ---------------------------------------------------------------------------

# --- LLM connection --------------------------------------------------------
# OpenAI-compatible endpoint. From inside a Docker container, host.docker.internal
# reaches an LLM (Ollama / vLLM, ...) running on the host.
OLLAMA_BASE_URL=http://host.docker.internal:11434/v1
OLLAMA_MODEL=qwen3:32b

# --- Network bind ----------------------------------------------------------
# Address the HTTP(S) server binds to. Default: 127.0.0.1 (loopback only).
# The agent API includes a Bash tool, so an auth-less instance reachable on the
# LAN is effectively unauthenticated remote code execution.
#
# To reach MAESTRO from another machine on a BARE-METAL install, set HOST
# explicitly (e.g. 0.0.0.0) -- and enable auth in config.yaml first.
# (Docker is different: the image sets HOST=0.0.0.0 inside the container AND
#  docker-compose.yml publishes the port on all host interfaces by default, so a
#  Docker deployment is LAN-reachable out of the box. Enable auth/TLS before
#  leaving it exposed; pin the compose mapping to 127.0.0.1:9876:9876 to undo.)
# HOST=0.0.0.0

# HTTP(S) listen port (default 9876).
# PORT=9876

# --- Storage paths ---------------------------------------------------------
# SQLite database file (default ./data/maestro.db).
# DB_PATH=./data/maestro.db

# Agent workspace base directory (default ./data/workspaces; mirrors
# storage.worktree_dir in config.yaml).
# WORKTREE_DIR=./data/workspaces

# --- Runtime ---------------------------------------------------------------
# Max concurrent jobs across all workers (overrides `concurrency` in config.yaml).
# CONCURRENCY=4

# Log verbosity: debug | info | warn | error (default info).
# LOG_LEVEL=info

# --- Secrets ---------------------------------------------------------------
# Required ONLY when using MCP servers or the SSH tool. 64 hex characters.
# Generate one with:  openssl rand -hex 32
# MCP_ENCRYPTION_KEY=replace-with-64-hex-characters
