# ============================================================================== # Installation & Setup # ============================================================================== # Install dependencies using uv package manager install: @command -v uv >/dev/null 2>&1 || { echo "uv is not installed. Installing uv..."; curl -LsSf https://astral.sh/uv/0.8.13/install.sh | sh; source $HOME/.local/bin/env; } uv sync # ============================================================================== # Playground Targets # ============================================================================== # Launch local dev playground playground: @echo "===============================================================================" @echo "| 🚀 Starting your agent playground... |" @echo "| |" @echo "| 💡 Try asking: What's the weather in San Francisco? |" @echo "| |" @echo "| 🔍 IMPORTANT: Select the 'rag_agent' folder to interact with your agent. |" @echo "===============================================================================" uv run adk web . --port 8501 --reload_agents # ============================================================================== # Backend Deployment Targets # ============================================================================== # Deploy the agent remotely deploy: # Export dependencies to requirements file using uv export. (uv export --no-hashes --no-header --no-dev --no-emit-project --no-annotate > rag_agent/app_utils/.requirements.txt 2>/dev/null || \ uv export --no-hashes --no-header --no-dev --no-emit-project > rag_agent/app_utils/.requirements.txt) && \ uv run -m rag_agent.app_utils.deploy \ --source-packages=./rag_agent \ --display-name="bitcast_agent_focus" \ --entrypoint-module=rag_agent.agent_engine_app \ --entrypoint-object=agent_engine \ --requirements-file=rag_agent/app_utils/.requirements.txt # Alias for 'make deploy' for backward compatibility backend: deploy # ============================================================================== # Infrastructure Setup # ============================================================================== # Set up development environment resources using Terraform setup-dev-env: PROJECT_ID=$$(gcloud config get-value project) && \ (cd deployment/terraform/dev && terraform init && terraform apply --var-file vars/env.tfvars --var dev_project_id=$$PROJECT_ID --auto-approve) # ============================================================================== # Testing & Code Quality # ============================================================================== # Run unit and integration tests test: uv sync --dev uv run pytest tests/unit && uv run pytest tests/integration # Run code quality checks (codespell, ruff, mypy) lint: uv sync --dev --extra lint uv run codespell uv run ruff check . --diff uv run ruff format . --check --diff uv run mypy . # ============================================================================== # Gemini Enterprise Integration # ============================================================================== # Register the deployed agent to Gemini Enterprise # Usage: make register-gemini-enterprise (interactive - will prompt for required details) # For non-interactive use, set env vars: ID or GEMINI_ENTERPRISE_APP_ID (full GE resource name) # Optional env vars: GEMINI_DISPLAY_NAME, GEMINI_DESCRIPTION, GEMINI_TOOL_DESCRIPTION, AGENT_ENGINE_ID register-gemini-enterprise: @uvx agent-starter-pack@0.21.0 register-gemini-enterprise