SHELL := /bin/bash
PY ?= .venv/bin/python
SLUG := harness-agent-de-code
-include .env
export

.DEFAULT_GOAL := help
help: ## Liste les commandes
	@grep -hE '^[a-z0-9-]+:.*## ' Makefile | awk -F':.*## ' '{printf "  make %-13s %s\n", $$1, $$2}'

setup: ## Crée .venv et installe les dépendances
	@test -d .venv || python3 -m venv .venv
	@.venv/bin/pip install -q -r requirements.txt
	@test -f .env || cp .env.example .env
	@echo "Prêt. Renseignez .env puis : make test"

test: ## Tests sans clé ni réseau (modèle scénarisé)
	@env -u GEMINI_API_KEY -u GOOGLE_API_KEY $(PY) -m pytest -q

run: ## Démo : l'agent corrige le dépôt d'exemple (vous approuvez chaque écriture)
	@$(PY) -m harness demo

e2e: ## Test réel avec Gemini, approbation automatique ; échoue si la suite n'est pas verte
	@$(PY) -m harness demo --e2e

clean: ## Supprime les artefacts locaux (dépôt de travail, journaux, caches)
	@rm -rf sorties/ .pytest_cache
	@find . -name __pycache__ -type d -prune -exec rm -rf {} +
	@echo "Artefacts supprimés."

reset: clean ## Retour à l'état initial
	@rm -rf .venv
	@echo "Environnement supprimé (.env conservé)."

cloud-up: ## Sans objet : ce projet ne crée aucune ressource cloud
	@echo "Aucune ressource Google Cloud : seul l'appel à l'API Gemini est facturé."

cloud-down: ## Sans objet (aucune ressource cloud)
	@echo "Rien à supprimer : ce projet ne crée aucune ressource cloud."

cloud-status: ## Sans objet (aucune ressource cloud)
	@echo "Aucune ressource cloud pour $(SLUG)."
