SHELL := /bin/bash
PY ?= .venv/bin/python
SLUG := harness-agent-skills
REGION ?= europe-west1
-include .env
export

.DEFAULT_GOAL := help
help: ## Liste les commandes
	@grep -E '^[a-z0-9-]+:.*## ' $(MAKEFILE_LIST) | 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 (spécification, chargeur, bac à sable, boucle, ADK)
	@$(PY) run.py validate
	@$(PY) -m pytest -q -p no:warnings

run: ## Démo web sur http://localhost:8791 (clé requise)
	@$(PY) run.py serve

e2e: ## Test réel : 2 skills à script, 1 requête hors sujet, 1 passage par ADK
	@$(PY) run.py e2e

eval: ## Évaluations réelles : tokens, déclenchement (30 requêtes), qualité (grille)
	@$(PY) run.py tokens
	@$(PY) run.py eval-trigger
	@$(PY) run.py eval-quality

lock: ## Fige versions et empreintes des skills (après évals vertes)
	@$(PY) run.py lock

clean: ## Supprime les artefacts locaux
	@rm -rf sorties/ .pytest_cache __pycache__ */__pycache__
	@echo "Artefacts supprimés."

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

cloud-up: ## Sans objet : ce projet ne crée aucune ressource Google Cloud
	@echo "Aucune ressource cloud pour $(SLUG) : tout tourne en local avec une clé Gemini API."

cloud-down: ## Sans objet (aucune ressource créée)
	@echo "Rien à supprimer pour $(SLUG)."

cloud-status: ## Sans objet (aucune ressource créée)
	@echo "Aucune ressource lab-$(SLUG) n'est créée par ce projet."
