.DEFAULT_GOAL := help

.PHONY: help setup install test lint format build check cli-version smoke-remote

help: ## List available make targets
	@awk 'BEGIN {FS = ":.*## "}; /^[a-zA-Z0-9_.-]+:.*## / {printf "  %-16s %s\n", $$1, $$2}' $(MAKEFILE_LIST)

setup: ## Sync dependencies into .venv
	uv sync --all-groups

install: ## Install sandboxer CLI to ~/.local/bin (editable)
	uv tool install -e . --force

test: ## Run the test suite
	uv run pytest

lint: ## Run ruff lint checks
	uv run ruff check .

format: ## Auto-format with ruff
	uv run ruff format .

build: ## Build wheel and sdist
	uv build

check: lint test ## Run lint and tests (CI gate)

cli-version: ## Print CLI version (smoke test for entry point)
	uv run sandboxer version

smoke-remote: ## T10 remote create/destroy smoke (needs SANDBOXER_HOST)
	./scripts/smoke-compose-e2e.sh