.PHONY: help install test train deploy clean lint format check check-types lint-ci help: ## Show this help message @echo "Stack 2.9 - Makefile Commands" @echo "" @echo "Setup:" @echo " install Install Python and Node dependencies" @echo "" @echo "Training:" @echo " train Run full training pipeline" @echo " prepare-data Prepare training dataset" @echo "" @echo "Deployment:" @echo " deploy-local Deploy vLLM server locally with Docker" @echo " deploy-runpod Deploy to RunPod" @echo " deploy-vast Deploy to Vast.ai" @echo "" @echo "Voice:" @echo " voice-up Start voice integration service" @echo " voice-down Stop voice service" @echo "" @echo "Evaluation:" @echo " eval Run full benchmark suite" @echo " eval-tool-use Run tool-use evaluation" @echo " eval-code Run code quality evaluation" @echo "" @echo "Utilities:" @echo " test Run unit tests" @echo " lint Run linters" @echo " clean Remove build artifacts and temporary files" @echo " docs Generate documentation" install: ## Install dependencies @echo "๐Ÿ“ฆ Installing dependencies..." pip install -r requirements.txt cd stack-2.9-training && pip install -r requirements.txt cd stack-2.9-voice && pip install -r requirements.txt 2>/dev/null || true npm install 2>/dev/null || true @echo "โœ… Installation complete" train: ## Run full training pipeline @echo "๐Ÿค– Starting training pipeline..." cd stack-2.9-training && ./run_training.sh deploy-local: ## Deploy locally with Docker Compose @echo "๐Ÿš€ Deploying to local Docker..." cd stack-2.9-deploy && ./local_deploy.sh deploy-runpod: ## Deploy to RunPod @echo "โ˜๏ธ Deploying to RunPod..." cd stack-2.9-deploy && ./runpod_deploy.sh deploy-vast: ## Deploy to Vast.ai @echo "โ˜๏ธ Deploying to Vast.ai..." cd stack-2.9-deploy && ./vastai_deploy.sh voice-up: ## Start voice integration service @echo "๐ŸŽค Starting voice service..." cd stack-2.9-voice && docker-compose up -d @echo "โœ… Voice service running on http://localhost:8001" voice-down: ## Stop voice service @echo "๐ŸŽค Stopping voice service..." cd stack-2.9-voice && docker-compose down eval: ## Run full benchmark suite @echo "๐Ÿ“Š Running evaluation suite..." cd stack-2.9-eval && ./benchmark_suite.sh eval-tool-use: ## Run tool-use evaluation @echo "๐Ÿ”ง Running tool-use evaluation..." cd stack-2.9-eval && python tool_use_eval.py eval-code: ## Run code quality evaluation @echo "โœจ Running code quality evaluation..." cd stack-2.9-eval && python code_quality_eval.py test: ## Run unit tests @echo "๐Ÿงช Running tests..." pytest -xvs 2>/dev/null || echo "No pytest tests found" cd stack-2.9-voice && python -m pytest test_integration.py 2>/dev/null || true lint: ## Run ruff linter @echo "๐Ÿ” Running ruff linter..." ruff check . @echo "โœ… Lint complete" format: ## Run black formatter @echo "๐ŸŽจ Running black formatter..." black . @echo "โœ… Format complete" check: ## Run all quality checks @echo "๐Ÿ” Running all checks (lint + format check + type check)..." @echo "" @echo "--- Lint (ruff) ---" ruff check . || true @echo "" @echo "--- Format check (black) ---" black --check . || true @echo "" @echo "--- Type check (mypy) ---" bash scripts/check_types.sh @echo "" @echo "โœ… All checks complete" check-types: ## Run mypy type checks @echo "๐Ÿ” Running mypy type checks..." bash scripts/check_types.sh @echo "โœ… Type check complete" lint-ci: ## Run linters (CI-friendly, fail on errors) @echo "๐Ÿ” Running linters (CI mode)..." ruff check . --exit-non-zero-on-error clean: ## Clean build artifacts @echo "๐Ÿงน Cleaning..." rm -rf data/ output/ models/ logs/ find . -name "*.pyc" -delete find . -name "__pycache__" -delete find . -name ".pytest_cache" -delete @echo "โœ… Clean complete" docs: ## Generate documentation @echo "๐Ÿ“š Generating documentation..." cd stack-2.9-docs && cp -R ../README.md . 2>/dev/null || true @echo "โœ… Docs ready in stack-2.9-docs/" status: ## Show deployment status @echo "๐Ÿ“‹ Stack 2.9 Status" @echo "==================" @if docker ps | grep -q stack; then \ echo "โœ… vLLM server: running"; \ else \ echo "โŒ vLLM server: stopped"; \ fi @if docker ps | grep -q voice; then \ echo "โœ… Voice service: running"; \ else \ echo "โŒ Voice service: stopped"; \ fi @echo "" @echo "Directories:" @ls -ld training-data/ stack-2.9-*/ 2>/dev/null | awk '{print " " $$NF}'