agent-starter-pack 0.9.1__tar.gz → 0.10.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- agent_starter_pack-0.10.0/.claude/settings.local.json +17 -0
- agent_starter_pack-0.10.0/.cloudbuild/ci/test_makefile.yaml +36 -0
- agent_starter_pack-0.10.0/.cloudbuild/ci/test_pipeline_parity.yaml +37 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/.cloudbuild/terraform/build_triggers.tf +85 -2
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/.gitignore +1 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/Makefile +1 -1
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/PKG-INFO +5 -7
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/README.md +1 -1
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/adk_base/.template/templateconfig.yaml +1 -1
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/adk_gemini_fullstack/.template/templateconfig.yaml +1 -1
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/agentic_rag/.template/templateconfig.yaml +1 -1
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/agentic_rag/README.md +1 -1
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/live_api/tests/integration/test_server_e2e.py +7 -1
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/docs/agents/overview.md +1 -1
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/docs/cli/create.md +1 -1
- agent_starter_pack-0.10.0/docs/cli/setup_cicd.md +105 -0
- agent_starter_pack-0.10.0/docs/guide/deployment.md +117 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/docs/guide/development-guide.md +22 -25
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/docs/guide/remote-templating.md +19 -28
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/docs/guide/template-config-reference.md +2 -47
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/llm.txt +3 -2
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/pyproject.toml +8 -6
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/base_template/Makefile +4 -3
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/base_template/README.md +7 -2
- agent_starter_pack-0.10.0/src/base_template/deployment/README.md +11 -0
- agent_starter_pack-0.10.0/src/base_template/deployment/terraform/github.tf +284 -0
- {agent_starter_pack-0.9.1/src/resources/setup_cicd → agent_starter_pack-0.10.0/src/base_template/deployment/terraform}/providers.tf +3 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/base_template/deployment/terraform/variables.tf +40 -1
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/base_template/deployment/terraform/vars/env.tfvars +7 -1
- agent_starter_pack-0.10.0/src/base_template/deployment/terraform/{% if cookiecutter.cicd_runner == 'github_actions' %}wif.tf{% else %}unused_wif.tf{% endif %} +43 -0
- agent_starter_pack-0.9.1/src/base_template/deployment/terraform/build_triggers.tf → agent_starter_pack-0.10.0/src/base_template/deployment/terraform/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}build_triggers.tf{% else %}unused_build_triggers.tf{% endif %} +33 -18
- agent_starter_pack-0.10.0/src/base_template/{% if cookiecutter.cicd_runner == 'github_actions' %}.github{% else %}unused_github{% endif %}/workflows/deploy-to-prod.yaml +114 -0
- agent_starter_pack-0.10.0/src/base_template/{% if cookiecutter.cicd_runner == 'github_actions' %}.github{% else %}unused_github{% endif %}/workflows/pr_checks.yaml +65 -0
- agent_starter_pack-0.10.0/src/base_template/{% if cookiecutter.cicd_runner == 'github_actions' %}.github{% else %}unused_github{% endif %}/workflows/staging.yaml +170 -0
- agent_starter_pack-0.9.1/src/base_template/deployment/cd/deploy-to-prod.yaml → agent_starter_pack-0.10.0/src/base_template/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}.cloudbuild{% else %}unused_.cloudbuild{% endif %}/deploy-to-prod.yaml +7 -7
- agent_starter_pack-0.9.1/src/base_template/deployment/cd/staging.yaml → agent_starter_pack-0.10.0/src/base_template/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}.cloudbuild{% else %}unused_.cloudbuild{% endif %}/staging.yaml +7 -7
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/cli/commands/create.py +223 -41
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/cli/commands/list.py +4 -10
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/cli/commands/setup_cicd.py +292 -298
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/cli/utils/cicd.py +19 -7
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/cli/utils/remote_template.py +82 -15
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/cli/utils/template.py +79 -19
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/deployment_targets/cloud_run/app/server.py +19 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/deployment_targets/cloud_run/deployment/terraform/dev/service.tf +4 -3
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/deployment_targets/cloud_run/deployment/terraform/service.tf +4 -3
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/deployment_targets/cloud_run/tests/integration/test_server_e2e.py +35 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/deployment_targets/cloud_run/tests/load_test/README.md +1 -1
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/package-lock.json +19 -16
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/streamlit/frontend/side_bar.py +1 -1
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/streamlit/frontend/utils/chat_utils.py +1 -1
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/streamlit/frontend/utils/local_chat_history.py +2 -2
- agent_starter_pack-0.10.0/src/resources/containers/e2e-tests/Dockerfile +41 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/resources/docs/adk-cheatsheet.md +1 -1
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/resources/locks/uv-adk_base-agent_engine.lock +164 -131
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/resources/locks/uv-adk_base-cloud_run.lock +177 -144
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/resources/locks/uv-adk_gemini_fullstack-agent_engine.lock +164 -131
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/resources/locks/uv-adk_gemini_fullstack-cloud_run.lock +177 -144
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/resources/locks/uv-agentic_rag-agent_engine.lock +223 -190
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/resources/locks/uv-agentic_rag-cloud_run.lock +251 -218
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/resources/locks/uv-crewai_coding_crew-agent_engine.lock +315 -485
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/resources/locks/uv-crewai_coding_crew-cloud_run.lock +358 -531
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/resources/locks/uv-langgraph_base_react-agent_engine.lock +281 -249
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/resources/locks/uv-langgraph_base_react-cloud_run.lock +323 -290
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/resources/locks/uv-live_api-cloud_run.lock +350 -327
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/tests/cicd/test_e2e_deployment.py +547 -125
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/tests/cli/commands/test_create.py +14 -1
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/tests/cli/commands/test_create_local.py +9 -3
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/tests/cli/commands/test_setup_cicd.py +20 -58
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/tests/cli/utils/test_cicd.py +5 -2
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/tests/cli/utils/test_remote_template.py +216 -44
- agent_starter_pack-0.10.0/tests/integration/test_makefile_usability.py +199 -0
- agent_starter_pack-0.10.0/tests/integration/test_pipeline_parity.py +324 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/tests/integration/test_template_linting.py +10 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/tests/integration/utils.py +1 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/tests/test_frontend/test_utils/test_chat_utils.py +1 -1
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/tests/test_frontend/test_utils/test_local_chat_history.py +1 -1
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/uv.lock +14 -14
- agent_starter_pack-0.9.1/.claude/settings.local.json +0 -11
- agent_starter_pack-0.9.1/docs/cli/setup_cicd.md +0 -96
- agent_starter_pack-0.9.1/docs/guide/deployment.md +0 -129
- agent_starter_pack-0.9.1/src/base_template/deployment/README.md +0 -126
- agent_starter_pack-0.9.1/src/base_template/deployment/terraform/providers.tf +0 -37
- agent_starter_pack-0.9.1/src/resources/containers/e2e-tests/Dockerfile +0 -19
- agent_starter_pack-0.9.1/src/resources/setup_cicd/cicd_variables.tf +0 -41
- agent_starter_pack-0.9.1/src/resources/setup_cicd/github.tf +0 -87
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/.cloudbuild/cd/test_e2e.yaml +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/.cloudbuild/ci/build_use_wheel.yaml +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/.cloudbuild/ci/lint.yaml +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/.cloudbuild/ci/lint_templated_agents.yaml +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/.cloudbuild/ci/test.yaml +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/.cloudbuild/ci/test_remote_template.yaml +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/.cloudbuild/ci/test_templated_agents.yaml +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/.cloudbuild/terraform/apis.tf +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/.cloudbuild/terraform/service_account.tf +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/.cloudbuild/terraform/storage.tf +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/.cloudbuild/terraform/variables.tf +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/.github/workflows/docs.yml +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/CODE_OF_CONDUCT.md +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/CONTRIBUTING.md +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/LICENSE +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/README.md +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/adk_base/README.md +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/adk_base/app/agent.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/adk_base/notebooks/adk_app_testing.ipynb +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/adk_base/notebooks/evaluating_adk_agent.ipynb +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/adk_base/tests/integration/test_agent.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/adk_gemini_fullstack/README.md +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/adk_gemini_fullstack/app/agent.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/adk_gemini_fullstack/app/config.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/adk_gemini_fullstack/notebooks/adk_app_testing.ipynb +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/adk_gemini_fullstack/notebooks/evaluating_adk_agent.ipynb +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/adk_gemini_fullstack/tests/integration/test_agent.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/agentic_rag/app/agent.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/agentic_rag/app/retrievers.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/agentic_rag/app/templates.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/agentic_rag/notebooks/adk_app_testing.ipynb +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/agentic_rag/notebooks/evaluating_adk_agent.ipynb +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/agentic_rag/tests/integration/test_agent.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/crewai_coding_crew/.template/templateconfig.yaml +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/crewai_coding_crew/README.md +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/crewai_coding_crew/app/agent.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/crewai_coding_crew/app/crew/config/agents.yaml +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/crewai_coding_crew/app/crew/config/tasks.yaml +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/crewai_coding_crew/app/crew/crew.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/crewai_coding_crew/notebooks/evaluating_crewai_agent.ipynb +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/crewai_coding_crew/notebooks/evaluating_langgraph_agent.ipynb +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/crewai_coding_crew/tests/integration/test_agent.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/langgraph_base_react/.template/templateconfig.yaml +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/langgraph_base_react/README.md +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/langgraph_base_react/app/agent.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/langgraph_base_react/notebooks/evaluating_langgraph_agent.ipynb +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/langgraph_base_react/tests/integration/test_agent.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/live_api/.template/templateconfig.yaml +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/live_api/README.md +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/live_api/app/agent.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/live_api/app/server.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/live_api/tests/load_test/load_test.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/agents/live_api/tests/unit/test_server.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/docs/.vitepress/config.js +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/docs/cli/index.md +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/docs/guide/data-ingestion.md +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/docs/guide/deploy-ui.md +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/docs/guide/getting-started.md +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/docs/guide/installation.md +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/docs/guide/observability.md +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/docs/guide/troubleshooting.md +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/docs/guide/video-tutorials.md +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/docs/guide/why_starter_pack.md +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/docs/images/adk_gemini_fullstack.gif +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/docs/images/adk_gemini_fullstack_architecture.png +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/docs/images/adk_logo.png +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/docs/images/agent_starter_pack_screenshot.png +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/docs/images/ags_high_level_architecture.png +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/docs/images/icon.png +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/docs/images/logo.png +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/docs/images/prototype_to_prod.png +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/docs/images/why_sp_edited.png +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/docs/images/why_starter_pack.png +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/docs/index.md +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/docs/package-lock.json +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/docs/package.json +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/base_template/.gitignore +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/base_template/GEMINI.md +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/base_template/app/__init__.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/base_template/app/utils/gcs.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/base_template/app/utils/tracing.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/base_template/app/utils/typing.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/base_template/deployment/terraform/apis.tf +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/base_template/deployment/terraform/dev/apis.tf +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/base_template/deployment/terraform/dev/iam.tf +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/base_template/deployment/terraform/dev/log_sinks.tf +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/base_template/deployment/terraform/dev/providers.tf +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/base_template/deployment/terraform/dev/storage.tf +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/base_template/deployment/terraform/dev/variables.tf +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/base_template/deployment/terraform/dev/vars/env.tfvars +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/base_template/deployment/terraform/iam.tf +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/base_template/deployment/terraform/locals.tf +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/base_template/deployment/terraform/log_sinks.tf +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/base_template/deployment/terraform/service_accounts.tf +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/base_template/deployment/terraform/storage.tf +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/base_template/pyproject.toml +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/base_template/tests/unit/test_dummy.py +0 -0
- {agent_starter_pack-0.9.1/src/base_template/deployment/ci → agent_starter_pack-0.10.0/src/base_template/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}.cloudbuild{% else %}unused_.cloudbuild{% endif %}}/pr_checks.yaml +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/cli/main.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/cli/utils/__init__.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/cli/utils/datastores.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/cli/utils/gcp.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/cli/utils/logging.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/cli/utils/version.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/data_ingestion/README.md +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/data_ingestion/data_ingestion_pipeline/components/ingest_data.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/data_ingestion/data_ingestion_pipeline/components/process_data.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/data_ingestion/data_ingestion_pipeline/pipeline.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/data_ingestion/data_ingestion_pipeline/submit_pipeline.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/data_ingestion/pyproject.toml +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/data_ingestion/uv.lock +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/deployment_targets/agent_engine/app/agent_engine_app.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/deployment_targets/agent_engine/deployment_metadata.json +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/deployment_targets/agent_engine/notebooks/intro_agent_engine.ipynb +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/deployment_targets/agent_engine/tests/integration/test_agent_engine_app.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/deployment_targets/agent_engine/tests/load_test/.results/.placeholder +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/deployment_targets/agent_engine/tests/load_test/README.md +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/deployment_targets/agent_engine/tests/load_test/load_test.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/deployment_targets/cloud_run/Dockerfile +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/deployment_targets/cloud_run/tests/load_test/.results/.placeholder +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/deployment_targets/cloud_run/tests/load_test/load_test.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/adk_gemini_fullstack/frontend/components.json +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/adk_gemini_fullstack/frontend/eslint.config.js +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/adk_gemini_fullstack/frontend/index.html +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/adk_gemini_fullstack/frontend/package-lock.json +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/adk_gemini_fullstack/frontend/package.json +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/adk_gemini_fullstack/frontend/src/App.tsx +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ActivityTimeline.tsx +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ChatMessagesView.tsx +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/InputForm.tsx +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/WelcomeScreen.tsx +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/badge.tsx +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/button.tsx +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/card.tsx +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/input.tsx +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/scroll-area.tsx +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/select.tsx +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/tabs.tsx +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/textarea.tsx +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/adk_gemini_fullstack/frontend/src/global.css +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/adk_gemini_fullstack/frontend/src/main.tsx +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/adk_gemini_fullstack/frontend/src/utils.ts +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/adk_gemini_fullstack/frontend/src/vite-env.d.ts +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/adk_gemini_fullstack/frontend/tsconfig.json +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/adk_gemini_fullstack/frontend/tsconfig.node.json +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/adk_gemini_fullstack/frontend/vite.config.ts +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/package.json +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/public/favicon.ico +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/public/index.html +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/public/robots.txt +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/src/App.scss +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/src/App.test.tsx +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/src/App.tsx +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/src/components/audio-pulse/AudioPulse.tsx +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/src/components/audio-pulse/audio-pulse.scss +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/src/components/control-tray/ControlTray.tsx +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/src/components/control-tray/control-tray.scss +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/src/components/logger/Logger.tsx +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/src/components/logger/logger.scss +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/src/components/logger/mock-logs.ts +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/src/components/side-panel/SidePanel.tsx +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/src/components/side-panel/side-panel.scss +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/src/contexts/LiveAPIContext.tsx +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/src/hooks/use-live-api.ts +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/src/hooks/use-media-stream-mux.ts +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/src/hooks/use-screen-capture.ts +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/src/hooks/use-webcam.ts +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/src/index.css +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/src/index.tsx +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/src/multimodal-live-types.ts +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/src/react-app-env.d.ts +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/src/reportWebVitals.ts +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/src/setupTests.ts +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/src/utils/audio-recorder.ts +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/src/utils/audio-streamer.ts +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/src/utils/audioworklet-registry.ts +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/src/utils/multimodal-live-client.ts +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/src/utils/store-logger.ts +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/src/utils/utils.ts +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/src/utils/worklets/audio-processing.ts +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/src/utils/worklets/vol-meter.ts +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/live_api_react/frontend/tsconfig.json +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/streamlit/frontend/streamlit_app.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/streamlit/frontend/style/app_markdown.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/streamlit/frontend/utils/message_editing.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/streamlit/frontend/utils/multimodal_utils.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/streamlit/frontend/utils/stream_handler.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/frontends/streamlit/frontend/utils/title_summary.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/resources/containers/data_processing/Dockerfile +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/resources/idx/.idx/dev.nix +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/resources/idx/idx-template.json +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/resources/idx/idx-template.nix +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/utils/generate_locks.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/utils/lock_utils.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/src/utils/watch_and_rebuild.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/tests/__init__.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/tests/cicd/example.env +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/tests/cli/commands/test_list.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/tests/integration/test_remote_templating.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/tests/integration/test_templated_patterns.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/tests/test_frontend/test_side_bar.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/tests/test_frontend/test_streamlit_app.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/tests/test_frontend/test_utils/test_message_editing.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/tests/test_frontend/test_utils/test_multimodal_utils.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/tests/test_frontend/test_utils/test_stream_handler.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/tests/utils/__init__.py +0 -0
- {agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/tests/utils/get_agents.py +0 -0
@@ -0,0 +1,17 @@
|
|
1
|
+
{
|
2
|
+
"permissions": {
|
3
|
+
"allow": [
|
4
|
+
"Bash(grep:*)",
|
5
|
+
"Bash(find:*)",
|
6
|
+
"Bash(uv run:*)",
|
7
|
+
"Bash(git add:*)",
|
8
|
+
"Bash(gh run view:*)",
|
9
|
+
"Bash(GOOGLE_CLOUD_PROJECT=asp-starter-dev uv run pytest tests/cicd/test_pipeline_parity.py -v -s --tb=short)",
|
10
|
+
"Bash(set -a)",
|
11
|
+
"Bash(. tests/cicd/.env)",
|
12
|
+
"Bash(set +a)",
|
13
|
+
"Bash(bash:*)"
|
14
|
+
],
|
15
|
+
"deny": []
|
16
|
+
}
|
17
|
+
}
|
@@ -0,0 +1,36 @@
|
|
1
|
+
# Copyright 2025 Google LLC
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
steps:
|
16
|
+
# Sync dependencies
|
17
|
+
- name: "europe-west4-docker.pkg.dev/production-ai-template/starter-pack/e2e-tests"
|
18
|
+
id: install-dependencies
|
19
|
+
entrypoint: /bin/bash
|
20
|
+
args:
|
21
|
+
- "-c"
|
22
|
+
- |
|
23
|
+
uv sync --locked
|
24
|
+
|
25
|
+
# Run unit tests using pytest
|
26
|
+
- name: "europe-west4-docker.pkg.dev/production-ai-template/starter-pack/e2e-tests"
|
27
|
+
id: test-templated-agents
|
28
|
+
entrypoint: /bin/bash
|
29
|
+
args:
|
30
|
+
- "-c"
|
31
|
+
- |
|
32
|
+
uv run pytest tests/integration/test_makefile_usability.py
|
33
|
+
|
34
|
+
logsBucket: gs://${PROJECT_ID}-logs-data/build-logs
|
35
|
+
options:
|
36
|
+
defaultLogsBucketBehavior: REGIONAL_USER_OWNED_BUCKET
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# Copyright 2025 Google LLC
|
2
|
+
#
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
+
# you may not use this file except in compliance with the License.
|
5
|
+
# You may obtain a copy of the License at
|
6
|
+
#
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
+
#
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
+
# See the License for the specific language governing permissions and
|
13
|
+
# limitations under the License.
|
14
|
+
|
15
|
+
steps:
|
16
|
+
# Sync dependencies
|
17
|
+
- name: "europe-west4-docker.pkg.dev/production-ai-template/starter-pack/e2e-tests"
|
18
|
+
id: install-dependencies
|
19
|
+
entrypoint: /bin/bash
|
20
|
+
args:
|
21
|
+
- "-c"
|
22
|
+
- |
|
23
|
+
uv sync --dev --locked
|
24
|
+
|
25
|
+
# Run pipeline parity tests
|
26
|
+
- name: "europe-west4-docker.pkg.dev/production-ai-template/starter-pack/e2e-tests"
|
27
|
+
id: pipeline-parity-tests
|
28
|
+
entrypoint: /bin/bash
|
29
|
+
args:
|
30
|
+
- "-c"
|
31
|
+
- |
|
32
|
+
uv run pytest tests/integration/test_pipeline_parity.py -v
|
33
|
+
|
34
|
+
|
35
|
+
logsBucket: gs://${PROJECT_ID}-logs-data/build-logs
|
36
|
+
options:
|
37
|
+
defaultLogsBucketBehavior: REGIONAL_USER_OWNED_BUCKET
|
{agent_starter_pack-0.9.1 → agent_starter_pack-0.10.0}/.cloudbuild/terraform/build_triggers.tf
RENAMED
@@ -46,6 +46,16 @@ locals {
|
|
46
46
|
".cloudbuild/**",
|
47
47
|
]
|
48
48
|
|
49
|
+
makefile_usability_included_files = [
|
50
|
+
"src/cli/**",
|
51
|
+
"src/base_template/**",
|
52
|
+
"src/deployment_targets/**",
|
53
|
+
"tests/integration/test_makefile_usability.py",
|
54
|
+
"pyproject.toml",
|
55
|
+
"uv.lock",
|
56
|
+
".cloudbuild/**",
|
57
|
+
]
|
58
|
+
|
49
59
|
# Define a local variable for agent/deployment combinations
|
50
60
|
agent_testing_combinations = [
|
51
61
|
{
|
@@ -88,6 +98,10 @@ locals {
|
|
88
98
|
name = "adk_base-cloud_run-alloydb"
|
89
99
|
value = "adk_base,cloud_run,--session-type,alloydb"
|
90
100
|
},
|
101
|
+
{
|
102
|
+
name = "adk_base-cloud_run-agent_engine"
|
103
|
+
value = "adk_base,cloud_run,--session-type,agent_engine"
|
104
|
+
},
|
91
105
|
]
|
92
106
|
|
93
107
|
agent_testing_included_files = { for combo in local.agent_testing_combinations :
|
@@ -106,6 +120,18 @@ agent_testing_included_files = { for combo in local.agent_testing_combinations :
|
|
106
120
|
]
|
107
121
|
}
|
108
122
|
e2e_agent_deployment_combinations = [
|
123
|
+
{
|
124
|
+
name = "adk_base-agent_engine-github"
|
125
|
+
value = "adk_base,agent_engine,--cicd-runner,github_actions"
|
126
|
+
},
|
127
|
+
{
|
128
|
+
name = "adk_base-cloud_run-github"
|
129
|
+
value = "adk_base,cloud_run,--cicd-runner,github_actions"
|
130
|
+
},
|
131
|
+
{
|
132
|
+
name = "agentic_rag-agent_engine-vertex_ai_search-github"
|
133
|
+
value = "agentic_rag,agent_engine,--include-data-ingestion,--datastore,vertex_ai_search,--cicd-runner,github_actions"
|
134
|
+
},
|
109
135
|
{
|
110
136
|
name = "adk_base-agent_engine"
|
111
137
|
value = "adk_base,agent_engine"
|
@@ -141,7 +167,12 @@ agent_testing_included_files = { for combo in local.agent_testing_combinations :
|
|
141
167
|
combo.name => replace(replace(combo.name, "_", "-"), ".", "-")
|
142
168
|
}
|
143
169
|
|
144
|
-
|
170
|
+
# Create safe trigger names for e2e deployment combinations
|
171
|
+
e2e_trigger_name_safe = { for combo in local.e2e_agent_deployment_combinations :
|
172
|
+
combo.name => replace(replace(combo.name, "_", "-"), ".", "-")
|
173
|
+
}
|
174
|
+
|
175
|
+
e2e_agent_deployment_included_files = { for combo in local.e2e_agent_deployment_combinations :
|
145
176
|
combo.name => combo.name == "adk_base-cloud_run-alloydb" ? [
|
146
177
|
"src/deployment_targets/cloud_run/**",
|
147
178
|
"pyproject.toml",
|
@@ -294,7 +325,7 @@ resource "google_cloudbuild_trigger" "pr_templated_agents_test" {
|
|
294
325
|
resource "google_cloudbuild_trigger" "main_e2e_deployment_test" {
|
295
326
|
for_each = { for combo in local.e2e_agent_deployment_combinations : combo.name => combo }
|
296
327
|
|
297
|
-
name = "e2e-deploy-${local.
|
328
|
+
name = "e2e-deploy-${local.e2e_trigger_name_safe[each.key]}"
|
298
329
|
project = var.cicd_runner_project_id
|
299
330
|
location = var.region
|
300
331
|
description = "Trigger for E2E deployment tests on main branch: ${each.value.name}"
|
@@ -341,3 +372,55 @@ resource "google_cloudbuild_trigger" "pr_test_remote_template" {
|
|
341
372
|
ignored_files = local.common_ignored_files
|
342
373
|
include_build_logs = "INCLUDE_BUILD_LOGS_WITH_STATUS"
|
343
374
|
}
|
375
|
+
|
376
|
+
# g. Create Makefile usability Test trigger for PR requests
|
377
|
+
resource "google_cloudbuild_trigger" "pr_test_makefile" {
|
378
|
+
name = "pr-test-makefile"
|
379
|
+
project = var.cicd_runner_project_id
|
380
|
+
location = var.region
|
381
|
+
description = "Trigger for PR checks on Makefile usability"
|
382
|
+
service_account = resource.google_service_account.cicd_runner_sa.id
|
383
|
+
|
384
|
+
repository_event_config {
|
385
|
+
repository = local.repository_path
|
386
|
+
pull_request {
|
387
|
+
branch = "main"
|
388
|
+
comment_control = "COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY"
|
389
|
+
}
|
390
|
+
}
|
391
|
+
|
392
|
+
filename = ".cloudbuild/ci/test_makefile.yaml"
|
393
|
+
included_files = local.makefile_usability_included_files
|
394
|
+
ignored_files = local.common_ignored_files
|
395
|
+
include_build_logs = "INCLUDE_BUILD_LOGS_WITH_STATUS"
|
396
|
+
}
|
397
|
+
|
398
|
+
# h. Create Pipeline Parity Test trigger for PR requests
|
399
|
+
resource "google_cloudbuild_trigger" "pr_test_pipeline_parity" {
|
400
|
+
name = "pr-test-pipeline-parity"
|
401
|
+
project = var.cicd_runner_project_id
|
402
|
+
location = var.region
|
403
|
+
description = "Trigger for PR checks on pipeline parity between GitHub Actions and Cloud Build"
|
404
|
+
service_account = resource.google_service_account.cicd_runner_sa.id
|
405
|
+
|
406
|
+
repository_event_config {
|
407
|
+
repository = local.repository_path
|
408
|
+
pull_request {
|
409
|
+
branch = "main"
|
410
|
+
comment_control = "COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY"
|
411
|
+
}
|
412
|
+
}
|
413
|
+
|
414
|
+
filename = ".cloudbuild/ci/test_pipeline_parity.yaml"
|
415
|
+
included_files = [
|
416
|
+
"tests/integration/test_pipeline_parity.py",
|
417
|
+
"src/cli/**",
|
418
|
+
".cloudbuild/**",
|
419
|
+
"src/base_template/**/.github/**",
|
420
|
+
"src/base_template/**/.cloudbuild/**",
|
421
|
+
"pyproject.toml",
|
422
|
+
"uv.lock",
|
423
|
+
]
|
424
|
+
ignored_files = local.common_ignored_files
|
425
|
+
include_build_logs = "INCLUDE_BUILD_LOGS_WITH_STATUS"
|
426
|
+
}
|
@@ -5,7 +5,7 @@ test-templated-agents:
|
|
5
5
|
uv run pytest tests/integration/test_templated_patterns.py
|
6
6
|
|
7
7
|
test-e2e:
|
8
|
-
set -a && . tests/cicd/.env && set +a && uv run pytest tests/cicd/test_e2e_deployment.py
|
8
|
+
set -a && . tests/cicd/.env && set +a && uv run pytest tests/cicd/test_e2e_deployment.py -v
|
9
9
|
|
10
10
|
generate-lock:
|
11
11
|
uv run src/utils/generate_locks.py
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: agent-starter-pack
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.10.0
|
4
4
|
Summary: CLI to bootstrap production-ready Google Cloud GenAI agent projects from templates.
|
5
5
|
Author-email: Google LLC <agent-starter-pack@google.com>
|
6
6
|
License: Apache-2.0
|
@@ -16,11 +16,9 @@ Provides-Extra: jupyter
|
|
16
16
|
Requires-Dist: ipykernel>=6.29.5; extra == 'jupyter'
|
17
17
|
Requires-Dist: jupyter; extra == 'jupyter'
|
18
18
|
Provides-Extra: lint
|
19
|
-
Requires-Dist: codespell
|
20
|
-
Requires-Dist: mypy
|
21
|
-
Requires-Dist: ruff
|
22
|
-
Requires-Dist: types-pyyaml~=6.0.12.20240917; extra == 'lint'
|
23
|
-
Requires-Dist: types-requests~=2.32.0.20240914; extra == 'lint'
|
19
|
+
Requires-Dist: codespell; extra == 'lint'
|
20
|
+
Requires-Dist: mypy; extra == 'lint'
|
21
|
+
Requires-Dist: ruff; extra == 'lint'
|
24
22
|
Description-Content-Type: text/markdown
|
25
23
|
|
26
24
|
# 🚀 Agent Starter Pack
|
@@ -101,7 +99,7 @@ Looking to explore more ADK examples? Check out the [ADK Samples Repository](htt
|
|
101
99
|
#### Extra Features
|
102
100
|
|
103
101
|
The `agent-starter-pack` offers two key features to accelerate and simplify the development of your agent:
|
104
|
-
- **🔄 [CI/CD Automation
|
102
|
+
- **🔄 [CI/CD Automation](https://googlecloudplatform.github.io/agent-starter-pack/cli/setup_cicd)** - A single command to set up a complete CI/CD pipeline for all environments, supporting both **Google Cloud Build** and **GitHub Actions**.
|
105
103
|
- **📥 [Data Pipeline for RAG with Terraform/CI-CD](https://googlecloudplatform.github.io/agent-starter-pack/guide/data-ingestion)** - Seamlessly integrate a data pipeline to process embeddings for RAG into your agent system. Supporting [Vertex AI Search](https://cloud.google.com/generative-ai-app-builder/docs/enterprise-search-introduction) and [Vector Search](https://cloud.google.com/vertex-ai/docs/vector-search/overview).
|
106
104
|
- **[Remote Templates](docs/guide/remote-templating.md)**: Create and share your own agent starter packs templates from any Git repository.
|
107
105
|
- **🤖 Gemini CLI Integration** - Use the [Gemini CLI](https://github.com/google-gemini/gemini-cli) and the included `GEMINI.md` context file to ask questions about your template, agent architecture, and the path to production. Get instant guidance and code examples directly in your terminal.
|
@@ -76,7 +76,7 @@ Looking to explore more ADK examples? Check out the [ADK Samples Repository](htt
|
|
76
76
|
#### Extra Features
|
77
77
|
|
78
78
|
The `agent-starter-pack` offers two key features to accelerate and simplify the development of your agent:
|
79
|
-
- **🔄 [CI/CD Automation
|
79
|
+
- **🔄 [CI/CD Automation](https://googlecloudplatform.github.io/agent-starter-pack/cli/setup_cicd)** - A single command to set up a complete CI/CD pipeline for all environments, supporting both **Google Cloud Build** and **GitHub Actions**.
|
80
80
|
- **📥 [Data Pipeline for RAG with Terraform/CI-CD](https://googlecloudplatform.github.io/agent-starter-pack/guide/data-ingestion)** - Seamlessly integrate a data pipeline to process embeddings for RAG into your agent system. Supporting [Vertex AI Search](https://cloud.google.com/generative-ai-app-builder/docs/enterprise-search-introduction) and [Vector Search](https://cloud.google.com/vertex-ai/docs/vector-search/overview).
|
81
81
|
- **[Remote Templates](docs/guide/remote-templating.md)**: Create and share your own agent starter packs templates from any Git repository.
|
82
82
|
- **🤖 Gemini CLI Integration** - Use the [Gemini CLI](https://github.com/google-gemini/gemini-cli) and the included `GEMINI.md` context file to ask questions about your template, agent architecture, and the path to production. Get instant guidance and code examples directly in your terminal.
|
@@ -18,7 +18,7 @@ settings:
|
|
18
18
|
requires_data_ingestion: false
|
19
19
|
requires_session: true
|
20
20
|
deployment_targets: ["agent_engine", "cloud_run"]
|
21
|
-
extra_dependencies: ["google-adk~=1.
|
21
|
+
extra_dependencies: ["google-adk~=1.8.0"]
|
22
22
|
tags: ["adk"]
|
23
23
|
frontend_type: "adk_gemini_fullstack"
|
24
24
|
commands:
|
@@ -19,5 +19,5 @@ The agent implements the following architecture:
|
|
19
19
|
- **Automated Data Ingestion Pipeline:** Automates the process of ingesting data from input sources.
|
20
20
|
- **Custom Embeddings:** Generates embeddings using Vertex AI Embeddings and incorporates them into your data for enhanced semantic search.
|
21
21
|
- **Terraform Deployment:** Ingestion pipeline is instantiated with Terraform alongside the rest of the infrastructure of the starter pack.
|
22
|
-
- **
|
22
|
+
- **CI/CD Integration:** Deployment of ingestion pipelines is added to the CD pipelines of the starter pack.
|
23
23
|
- **Customizable Code:** Easily adapt and customize the code to fit your specific application needs and data sources.
|
@@ -66,6 +66,7 @@ def start_server() -> subprocess.Popen[str]:
|
|
66
66
|
text=True,
|
67
67
|
bufsize=1,
|
68
68
|
env=env,
|
69
|
+
encoding="utf-8",
|
69
70
|
)
|
70
71
|
|
71
72
|
# Start threads to log stdout and stderr in real-time
|
@@ -107,7 +108,12 @@ def server_fixture(request: Any) -> Iterator[subprocess.Popen[str]]:
|
|
107
108
|
def stop_server() -> None:
|
108
109
|
logger.info("Stopping server process")
|
109
110
|
server_process.terminate()
|
110
|
-
|
111
|
+
try:
|
112
|
+
server_process.wait(timeout=5)
|
113
|
+
except subprocess.TimeoutExpired:
|
114
|
+
logger.warning("Server process did not terminate, killing it")
|
115
|
+
server_process.kill()
|
116
|
+
server_process.wait()
|
111
117
|
logger.info("Server process stopped")
|
112
118
|
|
113
119
|
request.addfinalizer(stop_server)
|
@@ -52,7 +52,7 @@ Built on the ADK, this template implements [Retrieval-Augmented Generation (RAG)
|
|
52
52
|
* Flexible datastore options: [Vertex AI Search](https://cloud.google.com/vertex-ai-search-and-conversation) and [Vertex AI Vector Search](https://cloud.google.com/vertex-ai/docs/vector-search/overview).
|
53
53
|
* Generation of custom embeddings for enhanced semantic search.
|
54
54
|
* Answer synthesis from retrieved context.
|
55
|
-
* Infrastructure deployment via Terraform and Cloud Build.
|
55
|
+
* Infrastructure deployment via Terraform and a choice of CI/CD runners (Google Cloud Build or GitHub Actions).
|
56
56
|
|
57
57
|
### LangGraph Base ReAct (`langgraph_base_react`)
|
58
58
|
|
@@ -22,7 +22,7 @@ The following options will be prompted interactively if not provided via the com
|
|
22
22
|
- `--deployment-target`, `-d`: Deployment target (`agent_engine` or `cloud_run`). Prompts if omitted.
|
23
23
|
- `--datastore`, `-ds`: Datastore for RAG agents (`vertex_ai_search` or `vertex_ai_vector_search`). Prompted if `--include-data-ingestion` is specified, or if the selected agent (e.g., `agentic_rag`) requires data ingestion, and this option is omitted.
|
24
24
|
- `--region`: GCP region for deployment (default: `us-central1`). Prompts for confirmation if not specified and `--auto-approve` is not used.
|
25
|
-
- `--session-type`: Type of session storage to use (`in_memory` or `
|
25
|
+
- `--session-type`: Type of session storage to use (`in_memory`, `alloydb`, or `agent_engine`). This is only applicable for agents that require session management and when the deployment target is `cloud_run`.
|
26
26
|
|
27
27
|
GCP account and project ID are detected automatically (using your active `gcloud config` settings). You will be prompted to confirm or change them unless `--auto-approve` is used.
|
28
28
|
|
@@ -0,0 +1,105 @@
|
|
1
|
+
# `setup-cicd`
|
2
|
+
|
3
|
+
The `setup-cicd` command is a powerful utility that automates the deployment of your complete CI/CD infrastructure, configuring your Google Cloud projects and GitHub repository in a single operation. It intelligently adapts to your project's configuration, supporting both **Google Cloud Build** and **GitHub Actions** as CI/CD runners.
|
4
|
+
|
5
|
+
**⚡️ Quick Start Example:**
|
6
|
+
|
7
|
+
Getting started is straightforward. From the root of your generated agent project, run the following command. The tool will guide you through the process.
|
8
|
+
|
9
|
+
You can use the `pip` workflow for a traditional setup, or `uvx` to create a project in a single command without a permanent install.
|
10
|
+
|
11
|
+
```bash [uvx]
|
12
|
+
uvx agent-starter-pack setup-cicd
|
13
|
+
```
|
14
|
+
|
15
|
+
```bash [pip]
|
16
|
+
agent-starter-pack setup-cicd
|
17
|
+
```
|
18
|
+
|
19
|
+
*(You will be prompted for Staging and Production project IDs)*
|
20
|
+
|
21
|
+
Alternatively, you can provide the project IDs and other details directly as flags:
|
22
|
+
|
23
|
+
```bash
|
24
|
+
uvx agent-starter-pack setup-cicd \
|
25
|
+
--staging-project your-staging-project-id \
|
26
|
+
--prod-project your-prod-project-id \
|
27
|
+
--repository-name my-awesome-agent
|
28
|
+
```
|
29
|
+
|
30
|
+
|
31
|
+
**⚠️ Important Considerations:**
|
32
|
+
|
33
|
+
* **Run from Project Root:** This command must be executed from the root directory of your generated agent project (the directory containing `pyproject.toml`).
|
34
|
+
* **Production Use:** This command is designed to set up a production-ready CI/CD pipeline. However, for highly customized or complex production environments, you may want to review the generated Terraform configuration in `deployment/terraform` before applying.
|
35
|
+
|
36
|
+
## Prerequisites
|
37
|
+
|
38
|
+
1. **Required Tools:**
|
39
|
+
* **`uvx` or `agent-starter-pack`:** The command is part of the starter pack CLI.
|
40
|
+
* **Terraform:** Required for infrastructure provisioning.
|
41
|
+
* **`gh` CLI (GitHub CLI):** The tool uses the GitHub CLI to interact with your repository.
|
42
|
+
* **Authentication:** You must be authenticated. Run `gh auth login`.
|
43
|
+
* **Required Scopes:** Your GitHub token needs the **`repo`** and **`workflow`** scopes to create repositories and set up CI/CD. The tool will check for these scopes and guide you if they are missing.
|
44
|
+
* **`gcloud` CLI (Google Cloud SDK):** Required for interacting with Google Cloud.
|
45
|
+
* **Authentication:** You must be authenticated. Run `gcloud auth application-default login`.
|
46
|
+
|
47
|
+
2. **Google Cloud Projects:** You need at least two Google Cloud projects: one for `staging` and one for `production`. You also need a project to host the CI/CD resources (e.g., Cloud Build, Artifact Registry, Terraform state). You can specify this using `--cicd-project`. If omitted, the production project will be used for CI/CD resources.
|
48
|
+
|
49
|
+
3. **Permissions:** The user or service account running this command must have the `Owner` role on the specified Google Cloud projects. This is necessary for creating resources and assigning IAM roles.
|
50
|
+
|
51
|
+
## How it Works
|
52
|
+
|
53
|
+
The `setup-cicd` command performs the following steps automatically:
|
54
|
+
|
55
|
+
1. **CI/CD Runner Detection:** It inspects your project's structure to automatically detect whether you are using **Google Cloud Build** or **GitHub Actions**.
|
56
|
+
2. **GitHub Integration:** It prompts you to create a new private GitHub repository or connect to an existing one.
|
57
|
+
3. **Project ID Confirmation:** It prompts for Staging and Production project IDs if they are not provided as flags.
|
58
|
+
4. **Infrastructure Setup (Terraform):**
|
59
|
+
* It configures and applies the Terraform scripts located in `deployment/terraform`.
|
60
|
+
* **For Google Cloud Build:** It sets up a Cloud Build connection to your GitHub repository, either interactively or programmatically (if a GitHub PAT is provided).
|
61
|
+
* **For GitHub Actions:** It configures Workload Identity Federation (WIF) to allow GitHub Actions to securely authenticate with Google Cloud without service account keys. It also creates the necessary secrets and variables in your GitHub repository.
|
62
|
+
* By default, it sets up remote Terraform state management using a Google Cloud Storage (GCS) bucket. Use `--local-state` to opt-out.
|
63
|
+
5. **Resource Deployment:** It runs `terraform apply` to create all the necessary resources in your Google Cloud projects.
|
64
|
+
6. **Local Git Setup:** It initializes a Git repository locally (if needed) and adds your GitHub repository as the `origin` remote.
|
65
|
+
|
66
|
+
## Running the Command
|
67
|
+
|
68
|
+
```bash
|
69
|
+
uvx agent-starter-pack setup-cicd \
|
70
|
+
[--staging-project <YOUR_STAGING_PROJECT_ID>] \
|
71
|
+
[--prod-project <YOUR_PROD_PROJECT_ID>] \
|
72
|
+
[--cicd-project <YOUR_CICD_PROJECT_ID>] \
|
73
|
+
[--dev-project <YOUR_DEV_PROJECT_ID>] \
|
74
|
+
[--region <GCP_REGION>] \
|
75
|
+
[--repository-name <GITHUB_REPO_NAME>] \
|
76
|
+
[--repository-owner <GITHUB_USERNAME_OR_ORG>] \
|
77
|
+
[--local-state] \
|
78
|
+
[--auto-approve] \
|
79
|
+
[--debug]
|
80
|
+
```
|
81
|
+
|
82
|
+
**Key Options:**
|
83
|
+
|
84
|
+
* `--staging-project`, `--prod-project`: **Required Information.** Your Google Cloud project IDs for staging and production environments. The command will prompt for these if the flags are omitted.
|
85
|
+
* `--cicd-project`: (Optional) Project ID for hosting CI/CD resources. If omitted, defaults to the production project ID.
|
86
|
+
* `--dev-project`: (Optional) Project ID for a dedicated development environment.
|
87
|
+
* `--region`: (Optional) GCP region for resources (default: `us-central1`).
|
88
|
+
* `--repository-name`, `--repository-owner`: (Optional) Details for your GitHub repository. If omitted, you'll be prompted.
|
89
|
+
* `--local-state`: (Optional) Use local files for Terraform state instead of the default GCS backend.
|
90
|
+
* `--auto-approve`: (Optional) Skip all interactive prompts.
|
91
|
+
* `--debug`: (Optional) Enable verbose logging for troubleshooting.
|
92
|
+
|
93
|
+
*(For advanced programmatic use with Google Cloud Build, see options like `--github-pat`, `--github-app-installation-id`, and `--host-connection-name` by running `uvx agent-starter-pack setup-cicd --help`)*
|
94
|
+
|
95
|
+
## After Running the Command
|
96
|
+
|
97
|
+
To trigger your new CI/CD pipeline, you need to commit and push your code:
|
98
|
+
|
99
|
+
```bash
|
100
|
+
git add .
|
101
|
+
git commit -m "Initial commit of agent starter pack"
|
102
|
+
git push -u origin main
|
103
|
+
```
|
104
|
+
|
105
|
+
After pushing, you can verify the created resources and running pipelines in your GitHub repository and Google Cloud projects.
|
@@ -0,0 +1,117 @@
|
|
1
|
+
# Deployment
|
2
|
+
|
3
|
+
This starter pack uses a robust, production-ready deployment strategy that combines **Terraform** for infrastructure as code and a CI/CD pipeline for automated builds, tests, and deployments. You can choose between **Google Cloud Build** and **GitHub Actions** as your CI/CD runner.
|
4
|
+
|
5
|
+
The recommended way to deploy your agent is with the `agent-starter-pack setup-cicd` command, which automates the entire process.
|
6
|
+
|
7
|
+
## Deployment Workflow
|
8
|
+
|
9
|
+
The CI/CD pipeline is designed with best practices for deploying applications safely and reliably.
|
10
|
+
|
11
|
+

|
12
|
+
|
13
|
+
**Description:**
|
14
|
+
|
15
|
+
1. **CI Pipeline** (e.g., `.github/workflows/pr_checks.yaml` or `.cloudbuild/pr_checks.yaml`):
|
16
|
+
- Triggered on pull request creation/update.
|
17
|
+
- Runs unit and integration tests to ensure code quality.
|
18
|
+
|
19
|
+
2. **Staging CD Pipeline** (e.g., `.github/workflows/staging.yaml` or `.cloudbuild/staging.yaml`):
|
20
|
+
- Triggered on merge to the `main` branch.
|
21
|
+
- Builds and pushes the application container to Artifact Registry.
|
22
|
+
- Deploys the new version to the **staging environment**.
|
23
|
+
- Performs automated load testing against the staging environment.
|
24
|
+
|
25
|
+
3. **Production Deployment** (e.g., `.github/workflows/deploy-to-prod.yaml` or `.cloudbuild/deploy-to-prod.yaml`):
|
26
|
+
- Triggered after a successful staging deployment.
|
27
|
+
- Requires **manual approval** before proceeding to production.
|
28
|
+
- Deploys the same container image that was tested in staging to the **production environment**.
|
29
|
+
|
30
|
+
## Development Environment Deployment
|
31
|
+
|
32
|
+
If you want to deploy a standalone development environment without setting up the full CI/CD pipeline, you can use the `make setup-dev-env` command.
|
33
|
+
|
34
|
+
1. **Set your Dev Project:**
|
35
|
+
```bash
|
36
|
+
gcloud config set project <your-dev-project-id>
|
37
|
+
```
|
38
|
+
|
39
|
+
2. **Deploy Dev Infrastructure:**
|
40
|
+
This command runs the Terraform configuration in `deployment/terraform/dev` to provision a development environment.
|
41
|
+
```bash
|
42
|
+
make setup-dev-env
|
43
|
+
```
|
44
|
+
|
45
|
+
3. **Deploy the Application:**
|
46
|
+
Once the infrastructure is ready, deploy your agent to the dev environment.
|
47
|
+
```bash
|
48
|
+
make backend
|
49
|
+
```
|
50
|
+
|
51
|
+
## Automated Deployment with `setup-cicd`
|
52
|
+
|
53
|
+
For a streamlined, one-command deployment of the entire CI/CD pipeline and infrastructure, use the `setup-cicd` command from the root of your generated project.
|
54
|
+
|
55
|
+
```bash
|
56
|
+
uvx agent-starter-pack setup-cicd
|
57
|
+
```
|
58
|
+
|
59
|
+
This command handles all the necessary steps:
|
60
|
+
- **Infrastructure Provisioning:** Uses Terraform to create and configure the necessary resources in your staging and production Google Cloud projects.
|
61
|
+
- **CI/CD Configuration:** Sets up a complete CI/CD pipeline with your chosen runner (Google Cloud Build or GitHub Actions), including triggers for pull requests and merges to the main branch.
|
62
|
+
- **Repository Connection:** Connects your GitHub repository to the CI/CD provider.
|
63
|
+
|
64
|
+
For a complete guide on the command and its options, see the [**`setup-cicd` CLI Reference**](../cli/setup_cicd.html).
|
65
|
+
|
66
|
+
## Required Variables
|
67
|
+
|
68
|
+
The deployment uses Terraform variables that need to be configured for your environment. These are defined in `src/base_template/deployment/terraform/variables.tf`:
|
69
|
+
|
70
|
+
### Core Configuration
|
71
|
+
- **`project_name`**: Base name for resource naming (default: auto-generated from cookiecutter)
|
72
|
+
- **`prod_project_id`**: Google Cloud Project ID for production deployment
|
73
|
+
- **`staging_project_id`**: Google Cloud Project ID for staging deployment
|
74
|
+
- **`cicd_runner_project_id`**: Google Cloud Project ID where CI/CD pipelines execute
|
75
|
+
- **`region`**: Google Cloud region for resources (default: `us-central1`)
|
76
|
+
|
77
|
+
### Repository Connection
|
78
|
+
- **`repository_name`**: Name of your GitHub repository
|
79
|
+
- **`repository_owner`**: GitHub username or organization name
|
80
|
+
- **`host_connection_name`**: Name for Cloud Build connection (default: auto-generated)
|
81
|
+
|
82
|
+
### Service Account Permissions
|
83
|
+
- **`cloud_run_app_roles`** / **`agentengine_sa_roles`**: Roles for the application service account
|
84
|
+
- **`cicd_roles`**: Roles for CI/CD runner service account
|
85
|
+
- **`cicd_sa_deployment_required_roles`**: Deployment roles for staging/prod projects
|
86
|
+
|
87
|
+
### CI/CD Provider Specific
|
88
|
+
For **Cloud Build**:
|
89
|
+
- **`github_app_installation_id`**: GitHub App Installation ID
|
90
|
+
- **`github_pat`** / **`github_pat_secret_id`**: GitHub Personal Access Token
|
91
|
+
- **`create_cb_connection`**: Whether to create new Cloud Build connection
|
92
|
+
|
93
|
+
For **GitHub Actions**:
|
94
|
+
- **`create_repository`**: Whether the repository already exists
|
95
|
+
|
96
|
+
### Data Ingestion (Optional)
|
97
|
+
If data ingestion is enabled:
|
98
|
+
- **`pipeline_cron_schedule`**: Cron schedule for automated ingestion (default: weekly)
|
99
|
+
- **`pipelines_roles`**: Roles for Vertex AI Pipelines service account
|
100
|
+
|
101
|
+
### Vector Search Configuration (Optional)
|
102
|
+
If using Vertex AI Vector Search:
|
103
|
+
- **`vector_search_embedding_size`**: Embedding dimensions (default: 768)
|
104
|
+
- **`vector_search_approximate_neighbors_count`**: Neighbors to return (default: 150)
|
105
|
+
- **`vector_search_min/max_replica_count`**: Scaling configuration
|
106
|
+
- **`vector_search_shard_size`**: Shard size (default: SHARD_SIZE_SMALL)
|
107
|
+
- **`vector_search_machine_type`**: Instance type (default: e2-standard-2)
|
108
|
+
|
109
|
+
### Logging Configuration
|
110
|
+
- **`telemetry_logs_filter`**: Log filter for telemetry data
|
111
|
+
- **`feedback_logs_filter`**: Log filter for feedback data
|
112
|
+
|
113
|
+
### End-to-end Demo video
|
114
|
+
|
115
|
+
<a href="https://storage.googleapis.com/github-repo/generative-ai/sample-apps/e2e-gen-ai-app-starter-pack/template_deployment_demo.mp4">
|
116
|
+
<img src="https://storage.googleapis.com/github-repo/generative-ai/sample-apps/e2e-gen-ai-app-starter-pack/preview_video.png" alt="Watch the video" width="300"/>
|
117
|
+
</a>
|