agent-starter-pack 0.7.0__tar.gz → 0.8.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.
Potentially problematic release.
This version of agent-starter-pack might be problematic. Click here for more details.
- agent_starter_pack-0.8.0/.claude/settings.local.json +9 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/.cloudbuild/cd/test_e2e.yaml +1 -1
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/.cloudbuild/terraform/build_triggers.tf +8 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/.gitignore +2 -1
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/PKG-INFO +5 -5
- agent_starter_pack-0.8.0/agents/README.md +7 -0
- {agent_starter_pack-0.7.0/agents/adk_gemini_fullstack → agent_starter_pack-0.8.0/agents/adk_base}/notebooks/adk_app_testing.ipynb +8 -6
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/adk_base/template/.templateconfig.yaml +3 -1
- {agent_starter_pack-0.7.0/agents/agentic_rag → agent_starter_pack-0.8.0/agents/adk_gemini_fullstack}/notebooks/adk_app_testing.ipynb +8 -6
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/adk_gemini_fullstack/template/.templateconfig.yaml +2 -1
- {agent_starter_pack-0.7.0/agents/adk_base → agent_starter_pack-0.8.0/agents/agentic_rag}/notebooks/adk_app_testing.ipynb +8 -6
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/agentic_rag/template/.templateconfig.yaml +2 -1
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/crewai_coding_crew/template/.templateconfig.yaml +1 -1
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/docs/cli/create.md +1 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/llm.txt +22 -9
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/pyproject.toml +5 -5
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/base_template/.gitignore +0 -1
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/base_template/README.md +5 -2
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/base_template/deployment/cd/deploy-to-prod.yaml +1 -16
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/base_template/deployment/cd/staging.yaml +4 -19
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/base_template/deployment/terraform/apis.tf +2 -2
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/base_template/deployment/terraform/build_triggers.tf +5 -5
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/base_template/deployment/terraform/dev/apis.tf +8 -1
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/base_template/deployment/terraform/dev/variables.tf +3 -1
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/base_template/deployment/terraform/iam.tf +8 -8
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/base_template/deployment/terraform/locals.tf +9 -2
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/base_template/deployment/terraform/log_sinks.tf +2 -2
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/base_template/deployment/terraform/service_accounts.tf +3 -3
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/base_template/deployment/terraform/storage.tf +7 -7
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/base_template/deployment/terraform/variables.tf +3 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/base_template/pyproject.toml +4 -3
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/cli/commands/create.py +38 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/cli/commands/setup_cicd.py +2 -2
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/cli/utils/cicd.py +6 -3
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/cli/utils/template.py +34 -9
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/deployment_targets/agent_engine/app/agent_engine_app.py +7 -7
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/deployment_targets/agent_engine/tests/load_test/README.md +1 -6
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/deployment_targets/agent_engine/tests/load_test/load_test.py +13 -3
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/deployment_targets/cloud_run/Dockerfile +3 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/deployment_targets/cloud_run/app/server.py +18 -0
- agent_starter_pack-0.8.0/src/deployment_targets/cloud_run/deployment/terraform/dev/service.tf +231 -0
- agent_starter_pack-0.8.0/src/deployment_targets/cloud_run/deployment/terraform/service.tf +360 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/deployment_targets/cloud_run/tests/integration/test_server_e2e.py +8 -5
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/deployment_targets/cloud_run/tests/load_test/README.md +2 -2
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/deployment_targets/cloud_run/tests/load_test/load_test.py +21 -17
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/adk_gemini_fullstack/frontend/src/App.tsx +2 -3
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/resources/docs/adk-cheatsheet.md +1 -1
- agent_starter_pack-0.7.0/src/resources/locks/uv-adk_base-cloud_run.lock → agent_starter_pack-0.8.0/src/resources/locks/uv-adk_base-agent_engine.lock +814 -524
- agent_starter_pack-0.8.0/src/resources/locks/uv-adk_base-cloud_run.lock +4434 -0
- agent_starter_pack-0.7.0/src/resources/locks/uv-adk_gemini_fullstack-cloud_run.lock → agent_starter_pack-0.8.0/src/resources/locks/uv-adk_gemini_fullstack-agent_engine.lock +814 -524
- agent_starter_pack-0.8.0/src/resources/locks/uv-adk_gemini_fullstack-cloud_run.lock +4434 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/resources/locks/uv-agentic_rag-agent_engine.lock +386 -283
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/resources/locks/uv-agentic_rag-cloud_run.lock +513 -349
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/resources/locks/uv-crewai_coding_crew-agent_engine.lock +492 -497
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/resources/locks/uv-crewai_coding_crew-cloud_run.lock +671 -613
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/resources/locks/uv-langgraph_base_react-agent_engine.lock +500 -391
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/resources/locks/uv-langgraph_base_react-cloud_run.lock +682 -510
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/resources/locks/uv-live_api-cloud_run.lock +686 -486
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/resources/setup_cicd/github.tf +2 -2
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/tests/cicd/test_e2e_deployment.py +11 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/tests/cli/commands/test_setup_cicd.py +2 -2
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/tests/utils/get_agents.py +19 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/uv.lock +8 -8
- agent_starter_pack-0.7.0/src/deployment_targets/cloud_run/uv.lock +0 -6952
- agent_starter_pack-0.7.0/src/resources/locks/uv-adk_base-agent_engine.lock +0 -3268
- agent_starter_pack-0.7.0/src/resources/locks/uv-adk_gemini_fullstack-agent_engine.lock +0 -3268
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/.cloudbuild/ci/build_use_wheel.yaml +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/.cloudbuild/ci/lint.yaml +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/.cloudbuild/ci/lint_templated_agents.yaml +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/.cloudbuild/ci/test.yaml +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/.cloudbuild/ci/test_templated_agents.yaml +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/.cloudbuild/terraform/apis.tf +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/.cloudbuild/terraform/service_account.tf +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/.cloudbuild/terraform/storage.tf +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/.cloudbuild/terraform/variables.tf +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/.github/workflows/docs.yml +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/CODE_OF_CONDUCT.md +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/CONTRIBUTING.md +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/LICENSE +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/Makefile +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/README.md +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/adk_base/README.md +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/adk_base/app/agent.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/adk_base/notebooks/evaluating_adk_agent.ipynb +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/adk_base/tests/integration/test_agent.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/adk_gemini_fullstack/README.md +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/adk_gemini_fullstack/app/agent.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/adk_gemini_fullstack/app/config.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/adk_gemini_fullstack/notebooks/evaluating_adk_agent.ipynb +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/adk_gemini_fullstack/tests/integration/test_agent.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/agentic_rag/README.md +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/agentic_rag/app/agent.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/agentic_rag/app/retrievers.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/agentic_rag/app/templates.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/agentic_rag/notebooks/evaluating_adk_agent.ipynb +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/agentic_rag/tests/integration/test_agent.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/crewai_coding_crew/README.md +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/crewai_coding_crew/app/agent.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/crewai_coding_crew/app/crew/config/agents.yaml +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/crewai_coding_crew/app/crew/config/tasks.yaml +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/crewai_coding_crew/app/crew/crew.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/crewai_coding_crew/notebooks/evaluating_crewai_agent.ipynb +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/crewai_coding_crew/notebooks/evaluating_langgraph_agent.ipynb +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/crewai_coding_crew/tests/integration/test_agent.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/langgraph_base_react/README.md +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/langgraph_base_react/app/agent.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/langgraph_base_react/notebooks/evaluating_langgraph_agent.ipynb +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/langgraph_base_react/template/.templateconfig.yaml +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/langgraph_base_react/tests/integration/test_agent.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/live_api/README.md +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/live_api/app/agent.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/live_api/app/server.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/live_api/template/.templateconfig.yaml +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/live_api/tests/integration/test_server_e2e.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/live_api/tests/load_test/load_test.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/live_api/tests/unit/test_server.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/docs/.vitepress/config.js +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/docs/agents/overview.md +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/docs/cli/index.md +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/docs/cli/setup_cicd.md +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/docs/guide/data-ingestion.md +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/docs/guide/deploy-ui.md +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/docs/guide/deployment.md +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/docs/guide/development-guide.md +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/docs/guide/getting-started.md +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/docs/guide/installation.md +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/docs/guide/observability.md +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/docs/guide/troubleshooting.md +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/docs/guide/video-tutorials.md +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/docs/guide/why_starter_pack.md +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/docs/images/adk_gemini_fullstack.gif +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/docs/images/adk_gemini_fullstack_architecture.png +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/docs/images/adk_logo.png +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/docs/images/agent_starter_pack_screenshot.png +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/docs/images/ags_high_level_architecture.png +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/docs/images/icon.png +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/docs/images/logo.png +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/docs/images/prototype_to_prod.png +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/docs/images/why_sp_edited.png +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/docs/images/why_starter_pack.png +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/docs/index.md +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/docs/package-lock.json +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/docs/package.json +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/base_template/GEMINI.md +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/base_template/Makefile +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/base_template/app/__init__.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/base_template/app/utils/gcs.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/base_template/app/utils/tracing.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/base_template/app/utils/typing.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/base_template/deployment/README.md +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/base_template/deployment/ci/pr_checks.yaml +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/base_template/deployment/terraform/dev/iam.tf +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/base_template/deployment/terraform/dev/log_sinks.tf +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/base_template/deployment/terraform/dev/providers.tf +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/base_template/deployment/terraform/dev/storage.tf +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/base_template/deployment/terraform/dev/vars/env.tfvars +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/base_template/deployment/terraform/providers.tf +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/base_template/deployment/terraform/vars/env.tfvars +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/base_template/tests/unit/test_dummy.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/cli/main.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/cli/utils/__init__.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/cli/utils/datastores.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/cli/utils/gcp.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/cli/utils/logging.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/cli/utils/version.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/data_ingestion/README.md +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/data_ingestion/data_ingestion_pipeline/components/ingest_data.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/data_ingestion/data_ingestion_pipeline/components/process_data.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/data_ingestion/data_ingestion_pipeline/pipeline.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/data_ingestion/data_ingestion_pipeline/submit_pipeline.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/data_ingestion/pyproject.toml +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/data_ingestion/uv.lock +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/deployment_targets/agent_engine/deployment_metadata.json +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/deployment_targets/agent_engine/notebooks/intro_agent_engine.ipynb +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/deployment_targets/agent_engine/tests/integration/test_agent_engine_app.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/deployment_targets/agent_engine/tests/load_test/.results/.placeholder +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/deployment_targets/cloud_run/tests/load_test/.results/.placeholder +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/adk_gemini_fullstack/frontend/components.json +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/adk_gemini_fullstack/frontend/eslint.config.js +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/adk_gemini_fullstack/frontend/index.html +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/adk_gemini_fullstack/frontend/package-lock.json +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/adk_gemini_fullstack/frontend/package.json +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ActivityTimeline.tsx +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ChatMessagesView.tsx +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/InputForm.tsx +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/WelcomeScreen.tsx +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/badge.tsx +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/button.tsx +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/card.tsx +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/input.tsx +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/scroll-area.tsx +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/select.tsx +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/tabs.tsx +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/textarea.tsx +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/adk_gemini_fullstack/frontend/src/global.css +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/adk_gemini_fullstack/frontend/src/main.tsx +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/adk_gemini_fullstack/frontend/src/utils.ts +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/adk_gemini_fullstack/frontend/src/vite-env.d.ts +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/adk_gemini_fullstack/frontend/tsconfig.json +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/adk_gemini_fullstack/frontend/tsconfig.node.json +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/adk_gemini_fullstack/frontend/vite.config.ts +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/package-lock.json +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/package.json +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/public/favicon.ico +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/public/index.html +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/public/robots.txt +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/src/App.scss +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/src/App.test.tsx +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/src/App.tsx +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/src/components/audio-pulse/AudioPulse.tsx +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/src/components/audio-pulse/audio-pulse.scss +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/src/components/control-tray/ControlTray.tsx +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/src/components/control-tray/control-tray.scss +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/src/components/logger/Logger.tsx +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/src/components/logger/logger.scss +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/src/components/logger/mock-logs.ts +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/src/components/side-panel/SidePanel.tsx +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/src/components/side-panel/side-panel.scss +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/src/contexts/LiveAPIContext.tsx +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/src/hooks/use-live-api.ts +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/src/hooks/use-media-stream-mux.ts +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/src/hooks/use-screen-capture.ts +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/src/hooks/use-webcam.ts +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/src/index.css +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/src/index.tsx +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/src/multimodal-live-types.ts +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/src/react-app-env.d.ts +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/src/reportWebVitals.ts +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/src/setupTests.ts +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/src/utils/audio-recorder.ts +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/src/utils/audio-streamer.ts +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/src/utils/audioworklet-registry.ts +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/src/utils/multimodal-live-client.ts +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/src/utils/store-logger.ts +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/src/utils/utils.ts +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/src/utils/worklets/audio-processing.ts +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/src/utils/worklets/vol-meter.ts +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/live_api_react/frontend/tsconfig.json +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/streamlit/frontend/side_bar.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/streamlit/frontend/streamlit_app.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/streamlit/frontend/style/app_markdown.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/streamlit/frontend/utils/chat_utils.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/streamlit/frontend/utils/local_chat_history.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/streamlit/frontend/utils/message_editing.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/streamlit/frontend/utils/multimodal_utils.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/streamlit/frontend/utils/stream_handler.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/frontends/streamlit/frontend/utils/title_summary.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/resources/containers/data_processing/Dockerfile +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/resources/containers/e2e-tests/Dockerfile +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/resources/idx/.idx/dev.nix +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/resources/idx/idx-template.json +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/resources/idx/idx-template.nix +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/resources/setup_cicd/cicd_variables.tf +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/resources/setup_cicd/providers.tf +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/utils/generate_locks.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/utils/lock_utils.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/utils/watch_and_rebuild.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/tests/__init__.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/tests/cicd/example.env +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/tests/cli/commands/test_create.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/tests/cli/utils/test_cicd.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/tests/integration/test_template_linting.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/tests/integration/test_templated_patterns.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/tests/test_frontend/test_side_bar.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/tests/test_frontend/test_streamlit_app.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/tests/test_frontend/test_utils/test_chat_utils.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/tests/test_frontend/test_utils/test_local_chat_history.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/tests/test_frontend/test_utils/test_message_editing.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/tests/test_frontend/test_utils/test_multimodal_utils.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/tests/test_frontend/test_utils/test_stream_handler.py +0 -0
- {agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/tests/utils/__init__.py +0 -0
{agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/.cloudbuild/terraform/build_triggers.tf
RENAMED
|
@@ -92,6 +92,10 @@ locals {
|
|
|
92
92
|
name = "adk_gemini_fullstack-cloud_run"
|
|
93
93
|
value = "adk_gemini_fullstack,cloud_run"
|
|
94
94
|
},
|
|
95
|
+
{
|
|
96
|
+
name = "adk_base-cloud_run-alloydb"
|
|
97
|
+
value = "adk_base,cloud_run,--session-type,alloydb"
|
|
98
|
+
},
|
|
95
99
|
]
|
|
96
100
|
|
|
97
101
|
agent_testing_included_files = { for combo in local.agent_testing_combinations :
|
|
@@ -138,6 +142,10 @@ locals {
|
|
|
138
142
|
name = "adk_gemini_fullstack-agent_engine"
|
|
139
143
|
value = "adk_gemini_fullstack,agent_engine"
|
|
140
144
|
},
|
|
145
|
+
{
|
|
146
|
+
name = "adk_base-cloud_run-alloydb"
|
|
147
|
+
value = "adk_base,cloud_run,--session-type,alloydb"
|
|
148
|
+
},
|
|
141
149
|
]
|
|
142
150
|
# Create a safe trigger name by replacing underscores with hyphens and dots with hyphens
|
|
143
151
|
# This ensures we have valid trigger names that don't exceed character limits
|
|
@@ -188,6 +188,7 @@ testem.log
|
|
|
188
188
|
Thumbs.db
|
|
189
189
|
*.vscode*
|
|
190
190
|
|
|
191
|
+
.locust_env/
|
|
191
192
|
.saved_chats
|
|
192
193
|
.aider*
|
|
193
194
|
target
|
|
@@ -196,4 +197,4 @@ delete_genai_repos.sh
|
|
|
196
197
|
cleanup_e2e_projects.sh
|
|
197
198
|
.cloudbuild/terraform/backend.tf
|
|
198
199
|
.cloudbuild/terraform/vars/env.tfvars
|
|
199
|
-
docs/.vitepress/cache
|
|
200
|
+
docs/.vitepress/cache
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-starter-pack
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.8.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
|
|
7
7
|
License-File: LICENSE
|
|
8
8
|
Requires-Python: >=3.10
|
|
9
9
|
Requires-Dist: backoff>=2.2.1
|
|
10
|
-
Requires-Dist: click
|
|
11
|
-
Requires-Dist: cookiecutter~=2.
|
|
10
|
+
Requires-Dist: click>=8.1.7
|
|
11
|
+
Requires-Dist: cookiecutter~=2.6.0
|
|
12
12
|
Requires-Dist: google-cloud-aiplatform>=1.87.0
|
|
13
|
-
Requires-Dist: pyyaml
|
|
14
|
-
Requires-Dist: rich
|
|
13
|
+
Requires-Dist: pyyaml>=6.0.1
|
|
14
|
+
Requires-Dist: rich>=13.7.0
|
|
15
15
|
Provides-Extra: jupyter
|
|
16
16
|
Requires-Dist: ipykernel>=6.29.5; extra == 'jupyter'
|
|
17
17
|
Requires-Dist: jupyter; extra == 'jupyter'
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
# Agent Templates
|
|
2
|
+
|
|
3
|
+
This directory contains template implementations for various agents designed to work with the Agent Starter Pack templating system.
|
|
4
|
+
Feel free to browse through these folders to preview what each template offers.
|
|
5
|
+
Direct cloning of this repository isn't necessary to utilize these templates.
|
|
6
|
+
|
|
7
|
+
For setup instructions and getting started, please refer to the main [README](/README.md) which explains how to install and use the Agent Starter Pack.
|
|
@@ -207,14 +207,15 @@
|
|
|
207
207
|
"outputs": [],
|
|
208
208
|
"source": [
|
|
209
209
|
"user_id = \"test_user_123\"\n",
|
|
210
|
-
"session_id = \"test_session_456\"\n",
|
|
211
210
|
"session_data = {\"state\": {\"preferred_language\": \"English\", \"visit_count\": 1}}\n",
|
|
212
211
|
"\n",
|
|
213
|
-
"session_url = f\"{SERVICE_URL}/apps/app/users/{user_id}/sessions
|
|
212
|
+
"session_url = f\"{SERVICE_URL}/apps/app/users/{user_id}/sessions\"\n",
|
|
214
213
|
"headers = {\"Content-Type\": \"application/json\", \"Authorization\": f\"Bearer {ID_TOKEN}\"}\n",
|
|
215
214
|
"\n",
|
|
216
215
|
"session_response = requests.post(session_url, headers=headers, json=session_data)\n",
|
|
217
|
-
"print(f\"Session creation status code: {session_response.status_code}\")"
|
|
216
|
+
"print(f\"Session creation status code: {session_response.status_code}\")\n",
|
|
217
|
+
"print(f\"Session creation response: {session_response.json()}\")\n",
|
|
218
|
+
"session_id = session_response.json()[\"id\"]"
|
|
218
219
|
]
|
|
219
220
|
},
|
|
220
221
|
{
|
|
@@ -279,14 +280,15 @@
|
|
|
279
280
|
"outputs": [],
|
|
280
281
|
"source": [
|
|
281
282
|
"user_id = \"test_user_123\"\n",
|
|
282
|
-
"session_id = \"test_session_456\"\n",
|
|
283
283
|
"session_data = {\"state\": {\"preferred_language\": \"English\", \"visit_count\": 1}}\n",
|
|
284
284
|
"\n",
|
|
285
|
-
"session_url = f\"http://127.0.0.1:8000/apps/app/users/{user_id}/sessions
|
|
285
|
+
"session_url = f\"http://127.0.0.1:8000/apps/app/users/{user_id}/sessions\"\n",
|
|
286
286
|
"headers = {\"Content-Type\": \"application/json\"}\n",
|
|
287
287
|
"\n",
|
|
288
288
|
"session_response = requests.post(session_url, headers=headers, json=session_data)\n",
|
|
289
|
-
"print(f\"Session creation status code: {session_response.status_code}\")"
|
|
289
|
+
"print(f\"Session creation status code: {session_response.status_code}\")\n",
|
|
290
|
+
"print(f\"Session creation response: {session_response.json()}\")\n",
|
|
291
|
+
"session_id = session_response.json()[\"id\"]"
|
|
290
292
|
]
|
|
291
293
|
},
|
|
292
294
|
{
|
{agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/agents/adk_base/template/.templateconfig.yaml
RENAMED
|
@@ -16,7 +16,9 @@ description: "A base ReAct agent built with Google's Agent Development Kit (ADK)
|
|
|
16
16
|
example_question: "What's the weather in San Francisco?"
|
|
17
17
|
settings:
|
|
18
18
|
requires_data_ingestion: false
|
|
19
|
+
requires_session: true
|
|
19
20
|
deployment_targets: ["agent_engine", "cloud_run"]
|
|
20
|
-
extra_dependencies: ["google-adk~=1.
|
|
21
|
+
extra_dependencies: ["google-adk~=1.5.0"]
|
|
21
22
|
tags: ["adk"]
|
|
22
23
|
frontend_type: "None"
|
|
24
|
+
|
|
@@ -207,14 +207,15 @@
|
|
|
207
207
|
"outputs": [],
|
|
208
208
|
"source": [
|
|
209
209
|
"user_id = \"test_user_123\"\n",
|
|
210
|
-
"session_id = \"test_session_456\"\n",
|
|
211
210
|
"session_data = {\"state\": {\"preferred_language\": \"English\", \"visit_count\": 1}}\n",
|
|
212
211
|
"\n",
|
|
213
|
-
"session_url = f\"{SERVICE_URL}/apps/app/users/{user_id}/sessions
|
|
212
|
+
"session_url = f\"{SERVICE_URL}/apps/app/users/{user_id}/sessions\"\n",
|
|
214
213
|
"headers = {\"Content-Type\": \"application/json\", \"Authorization\": f\"Bearer {ID_TOKEN}\"}\n",
|
|
215
214
|
"\n",
|
|
216
215
|
"session_response = requests.post(session_url, headers=headers, json=session_data)\n",
|
|
217
|
-
"print(f\"Session creation status code: {session_response.status_code}\")"
|
|
216
|
+
"print(f\"Session creation status code: {session_response.status_code}\")\n",
|
|
217
|
+
"print(f\"Session creation response: {session_response.json()}\")\n",
|
|
218
|
+
"session_id = session_response.json()[\"id\"]"
|
|
218
219
|
]
|
|
219
220
|
},
|
|
220
221
|
{
|
|
@@ -279,14 +280,15 @@
|
|
|
279
280
|
"outputs": [],
|
|
280
281
|
"source": [
|
|
281
282
|
"user_id = \"test_user_123\"\n",
|
|
282
|
-
"session_id = \"test_session_456\"\n",
|
|
283
283
|
"session_data = {\"state\": {\"preferred_language\": \"English\", \"visit_count\": 1}}\n",
|
|
284
284
|
"\n",
|
|
285
|
-
"session_url = f\"http://127.0.0.1:8000/apps/app/users/{user_id}/sessions
|
|
285
|
+
"session_url = f\"http://127.0.0.1:8000/apps/app/users/{user_id}/sessions\"\n",
|
|
286
286
|
"headers = {\"Content-Type\": \"application/json\"}\n",
|
|
287
287
|
"\n",
|
|
288
288
|
"session_response = requests.post(session_url, headers=headers, json=session_data)\n",
|
|
289
|
-
"print(f\"Session creation status code: {session_response.status_code}\")"
|
|
289
|
+
"print(f\"Session creation status code: {session_response.status_code}\")\n",
|
|
290
|
+
"print(f\"Session creation response: {session_response.json()}\")\n",
|
|
291
|
+
"session_id = session_response.json()[\"id\"]"
|
|
290
292
|
]
|
|
291
293
|
},
|
|
292
294
|
{
|
|
@@ -16,8 +16,9 @@ description: "A production-ready fullstack research agent that uses Gemini to st
|
|
|
16
16
|
example_question: "A report on the latest Google I/O event"
|
|
17
17
|
settings:
|
|
18
18
|
requires_data_ingestion: false
|
|
19
|
+
requires_session: true
|
|
19
20
|
deployment_targets: ["agent_engine", "cloud_run"]
|
|
20
|
-
extra_dependencies: ["google-adk~=1.
|
|
21
|
+
extra_dependencies: ["google-adk~=1.5.0"]
|
|
21
22
|
tags: ["adk"]
|
|
22
23
|
frontend_type: "adk_gemini_fullstack"
|
|
23
24
|
commands:
|
|
@@ -207,14 +207,15 @@
|
|
|
207
207
|
"outputs": [],
|
|
208
208
|
"source": [
|
|
209
209
|
"user_id = \"test_user_123\"\n",
|
|
210
|
-
"session_id = \"test_session_456\"\n",
|
|
211
210
|
"session_data = {\"state\": {\"preferred_language\": \"English\", \"visit_count\": 1}}\n",
|
|
212
211
|
"\n",
|
|
213
|
-
"session_url = f\"{SERVICE_URL}/apps/app/users/{user_id}/sessions
|
|
212
|
+
"session_url = f\"{SERVICE_URL}/apps/app/users/{user_id}/sessions\"\n",
|
|
214
213
|
"headers = {\"Content-Type\": \"application/json\", \"Authorization\": f\"Bearer {ID_TOKEN}\"}\n",
|
|
215
214
|
"\n",
|
|
216
215
|
"session_response = requests.post(session_url, headers=headers, json=session_data)\n",
|
|
217
|
-
"print(f\"Session creation status code: {session_response.status_code}\")"
|
|
216
|
+
"print(f\"Session creation status code: {session_response.status_code}\")\n",
|
|
217
|
+
"print(f\"Session creation response: {session_response.json()}\")\n",
|
|
218
|
+
"session_id = session_response.json()[\"id\"]"
|
|
218
219
|
]
|
|
219
220
|
},
|
|
220
221
|
{
|
|
@@ -279,14 +280,15 @@
|
|
|
279
280
|
"outputs": [],
|
|
280
281
|
"source": [
|
|
281
282
|
"user_id = \"test_user_123\"\n",
|
|
282
|
-
"session_id = \"test_session_456\"\n",
|
|
283
283
|
"session_data = {\"state\": {\"preferred_language\": \"English\", \"visit_count\": 1}}\n",
|
|
284
284
|
"\n",
|
|
285
|
-
"session_url = f\"http://127.0.0.1:8000/apps/app/users/{user_id}/sessions
|
|
285
|
+
"session_url = f\"http://127.0.0.1:8000/apps/app/users/{user_id}/sessions\"\n",
|
|
286
286
|
"headers = {\"Content-Type\": \"application/json\"}\n",
|
|
287
287
|
"\n",
|
|
288
288
|
"session_response = requests.post(session_url, headers=headers, json=session_data)\n",
|
|
289
|
-
"print(f\"Session creation status code: {session_response.status_code}\")"
|
|
289
|
+
"print(f\"Session creation status code: {session_response.status_code}\")\n",
|
|
290
|
+
"print(f\"Session creation response: {session_response.json()}\")\n",
|
|
291
|
+
"session_id = session_response.json()[\"id\"]"
|
|
290
292
|
]
|
|
291
293
|
},
|
|
292
294
|
{
|
|
@@ -16,9 +16,10 @@ description: "ADK RAG agent for document retrieval and Q&A. Includes a data pipe
|
|
|
16
16
|
example_question: "How to save a pandas dataframe to CSV?"
|
|
17
17
|
settings:
|
|
18
18
|
requires_data_ingestion: true
|
|
19
|
+
requires_session: true
|
|
19
20
|
deployment_targets: ["agent_engine", "cloud_run"]
|
|
20
21
|
extra_dependencies: [
|
|
21
|
-
"google-adk~=1.
|
|
22
|
+
"google-adk~=1.5.0",
|
|
22
23
|
"langchain-google-vertexai~=2.0.7",
|
|
23
24
|
"langchain~=0.3.24",
|
|
24
25
|
"langchain-core~=0.3.55",
|
|
@@ -22,6 +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 `alloydb`). This is only applicable for agents that require session management and when the deployment target is `cloud_run`.
|
|
25
26
|
|
|
26
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.
|
|
27
28
|
|
|
@@ -69,6 +69,7 @@ agent-starter-pack create PROJECT_NAME [OPTIONS]
|
|
|
69
69
|
* `-d, --deployment-target`: Target deployment environment (`cloud_run` or `agent_engine`).
|
|
70
70
|
* `-ds, --datastore`: For RAG agents, the datastore (`vertex_ai_search` or `vertex_ai_vector_search`).
|
|
71
71
|
* `-i, --include-data-ingestion`: Include data ingestion pipeline scaffolding.
|
|
72
|
+
* `--session-type`: For agents requiring session management on Cloud Run, specifies the storage type (`in_memory` or `alloydb`).
|
|
72
73
|
* `--region`: GCP region (e.g., `us-central1`).
|
|
73
74
|
* `--auto-approve`: **Skips all interactive prompts (crucial for automation).**
|
|
74
75
|
* `--debug`: Enables debug logging during creation.
|
|
@@ -186,6 +187,12 @@ uvx agent-starter-pack setup-cicd
|
|
|
186
187
|
* **Deploying with UI:** `make backend IAP=true`
|
|
187
188
|
* **Access Control:** After deploying with IAP, grant users the `IAP-secured Web App User` role in IAM to give them access.
|
|
188
189
|
|
|
190
|
+
### Session Management
|
|
191
|
+
|
|
192
|
+
For stateful agents, the starter pack supports persistent sessions.
|
|
193
|
+
* **Cloud Run:** Choose between `in_memory` (for testing) and durable `alloydb` sessions using the `--session-type` flag.
|
|
194
|
+
* **Agent Engine:** Provides session management automatically.
|
|
195
|
+
|
|
189
196
|
### Monitoring & Observability
|
|
190
197
|
* **Technology:** Uses OpenTelemetry to emit events to Google Cloud Trace and Logging.
|
|
191
198
|
* **Custom Tracer:** A custom tracer in `app/utils/tracing.py` handles large payloads by linking to GCS, overcoming default service limits.
|
|
@@ -204,21 +211,27 @@ uvx agent-starter-pack setup-cicd [OPTIONS]
|
|
|
204
211
|
```
|
|
205
212
|
**Prerequisites:** Run from the project root. `uv`, `gh` CLI, `gcloud` CLI, and `terraform` must be installed and authenticated. Requires `Owner` role on the GCP projects.
|
|
206
213
|
|
|
207
|
-
**
|
|
208
|
-
* `--staging-project
|
|
209
|
-
* `--
|
|
210
|
-
* `--
|
|
214
|
+
**Automated CI/CD Setup Options:**
|
|
215
|
+
* `--staging-project`: (REQUIRED) The Google Cloud Project ID for your staging environment.
|
|
216
|
+
* `--prod-project`: (REQUIRED) The Google Cloud Project ID for your production environment.
|
|
217
|
+
* `--repository-name`: (REQUIRED) The name for the new GitHub repository that will be created.
|
|
218
|
+
* `--repository-owner`: (REQUIRED) Your GitHub username or organization where the repo will be created.
|
|
219
|
+
* `--git-provider`: (REQUIRED) The Git provider to use (github, gitlab, etc.). Only "github" is supported.
|
|
220
|
+
* `--auto-approve`: Skips all interactive confirmation prompts.
|
|
221
|
+
|
|
211
222
|
|
|
212
223
|
**Automated Example:**
|
|
213
224
|
```bash
|
|
214
225
|
uvx agent-starter-pack setup-cicd \
|
|
215
|
-
--staging-project
|
|
216
|
-
--prod-project
|
|
217
|
-
--repository-name
|
|
218
|
-
--repository-owner
|
|
226
|
+
--staging-project the-user-staging-project \
|
|
227
|
+
--prod-project the-user-prod-project \
|
|
228
|
+
--repository-name the-user-repo-name \
|
|
229
|
+
--repository-owner the-username \
|
|
230
|
+
--git-provider github \
|
|
219
231
|
--auto-approve
|
|
220
232
|
```
|
|
221
|
-
|
|
233
|
+
* Note: As a coding agent, you must run this command non-interactively. Before executing, you must ask the user to provide the following required flags: `--staging-project`, `--prod-project`, `--repository-name`, `--repository-owner`, and `--git-provider`. Once you have these values, you can construct and run the command with the `--auto-approve` flag.
|
|
234
|
+
* Note: If the user tells that `setup-cicd` is not a viable option or it wants to use a different git provider, you must not use this command. Instead, you should look at the `deployment/README.md` to get instructions on how to manually deploy the agent.
|
|
222
235
|
---
|
|
223
236
|
### Section 6: Operational Guidelines for Coding Agents
|
|
224
237
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "agent-starter-pack"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.8.0"
|
|
4
4
|
description = "CLI to bootstrap production-ready Google Cloud GenAI agent projects from templates."
|
|
5
5
|
authors = [
|
|
6
6
|
{ name = "Google LLC", email = "agent-starter-pack@google.com" },
|
|
@@ -9,11 +9,11 @@ license = {text = "Apache-2.0"}
|
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
11
11
|
dependencies = [
|
|
12
|
-
"click
|
|
13
|
-
"cookiecutter~=2.
|
|
12
|
+
"click>=8.1.7",
|
|
13
|
+
"cookiecutter~=2.6.0",
|
|
14
14
|
"google-cloud-aiplatform>=1.87.0",
|
|
15
|
-
"rich
|
|
16
|
-
"pyyaml
|
|
15
|
+
"rich>=13.7.0",
|
|
16
|
+
"pyyaml>=6.0.1",
|
|
17
17
|
"backoff>=2.2.1",
|
|
18
18
|
]
|
|
19
19
|
|
|
@@ -21,6 +21,7 @@ This project is organized as follows:
|
|
|
21
21
|
├── notebooks/ # Jupyter notebooks for prototyping and evaluation
|
|
22
22
|
├── tests/ # Unit, integration, and load tests
|
|
23
23
|
├── Makefile # Makefile for common commands
|
|
24
|
+
├── GEMINI.md # AI-assisted development guide
|
|
24
25
|
└── pyproject.toml # Project dependencies and configuration
|
|
25
26
|
```
|
|
26
27
|
|
|
@@ -53,7 +54,7 @@ make install && make playground
|
|
|
53
54
|
{%- endif %}
|
|
54
55
|
{%- if cookiecutter.deployment_target == 'cloud_run' %}
|
|
55
56
|
| `make playground` | Launch local development environment with backend and frontend{%- if "adk" in cookiecutter.tags %} - leveraging `adk web` command. {%- endif %}|
|
|
56
|
-
| `make backend` | Deploy agent to Cloud Run |
|
|
57
|
+
| `make backend` | Deploy agent to Cloud Run (use `IAP=true` to enable Identity-Aware Proxy) |
|
|
57
58
|
| `make local-backend` | Launch local development server |
|
|
58
59
|
{%- if cookiecutter.deployment_target == 'cloud_run' %}
|
|
59
60
|
{%- if cookiecutter.agent_name == 'live_api' %}
|
|
@@ -66,7 +67,7 @@ make install && make playground
|
|
|
66
67
|
{%- endif %}
|
|
67
68
|
| `make test` | Run unit and integration tests |
|
|
68
69
|
| `make lint` | Run code quality checks (codespell, ruff, mypy) |
|
|
69
|
-
| `make setup-dev-env` | Set up development environment resources using Terraform
|
|
70
|
+
| `make setup-dev-env` | Set up development environment resources using Terraform |
|
|
70
71
|
{%- if cookiecutter.data_ingestion %}
|
|
71
72
|
| `make data-ingestion`| Run data ingestion pipeline in the Dev environment |
|
|
72
73
|
{%- endif %}
|
|
@@ -160,6 +161,8 @@ This template follows a "bring your own agent" approach - you focus on your busi
|
|
|
160
161
|
3. **Test:** Explore your agent functionality using the Streamlit playground with `make playground`. The playground offers features like chat history, user feedback, and various input types, and automatically reloads your agent on code changes.
|
|
161
162
|
4. **Deploy:** Set up and initiate the CI/CD pipelines, customizing tests as necessary. Refer to the [deployment section](#deployment) for comprehensive instructions. For streamlined infrastructure deployment, simply run `uvx agent-starter-pack setup-cicd`. Check out the [`agent-starter-pack setup-cicd` CLI command](https://googlecloudplatform.github.io/agent-starter-pack/cli/setup_cicd.html). Currently only supporting Github.
|
|
162
163
|
5. **Monitor:** Track performance and gather insights using Cloud Logging, Tracing, and the Looker Studio dashboard to iterate on your application.
|
|
164
|
+
|
|
165
|
+
The project includes a `GEMINI.md` file that provides context for AI tools like Gemini CLI when asking questions about your template.
|
|
163
166
|
{% endif %}
|
|
164
167
|
|
|
165
168
|
## Deployment
|
|
@@ -55,22 +55,7 @@ steps:
|
|
|
55
55
|
- "$_REGION"
|
|
56
56
|
- "--project"
|
|
57
57
|
- $_PROD_PROJECT_ID
|
|
58
|
-
|
|
59
|
-
- "1"
|
|
60
|
-
- "--no-cpu-throttling"
|
|
61
|
-
- "--cpu"
|
|
62
|
-
- "4"
|
|
63
|
-
- "--memory"
|
|
64
|
-
- "4Gi"
|
|
65
|
-
- "--concurrency"
|
|
66
|
-
- "40"
|
|
67
|
-
- "--service-account"
|
|
68
|
-
- "${_CLOUD_RUN_APP_SA_EMAIL}"
|
|
69
|
-
- "--session-affinity"
|
|
70
|
-
- "--labels"
|
|
71
|
-
- "created-by=adk"
|
|
72
|
-
- "--set-env-vars"
|
|
73
|
-
- "COMMIT_SHA=${COMMIT_SHA}{%- if cookiecutter.data_ingestion %}{%- if cookiecutter.datastore_type == "vertex_ai_search" %},DATA_STORE_ID=${_DATA_STORE_ID},DATA_STORE_REGION=${_DATA_STORE_REGION}{%- elif cookiecutter.datastore_type == "vertex_ai_vector_search" %},VECTOR_SEARCH_INDEX=${_VECTOR_SEARCH_INDEX},VECTOR_SEARCH_INDEX_ENDPOINT=${_VECTOR_SEARCH_INDEX_ENDPOINT},VECTOR_SEARCH_BUCKET=${_VECTOR_SEARCH_BUCKET}{%- endif %}{%- endif %}"
|
|
58
|
+
|
|
74
59
|
{%- elif cookiecutter.deployment_target == 'agent_engine' %}
|
|
75
60
|
- name: "python:3.11-slim"
|
|
76
61
|
id: install-dependencies
|
{agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/base_template/deployment/cd/staging.yaml
RENAMED
|
@@ -46,6 +46,8 @@ steps:
|
|
|
46
46
|
"build",
|
|
47
47
|
"-t",
|
|
48
48
|
"$_REGION-docker.pkg.dev/$PROJECT_ID/$_ARTIFACT_REGISTRY_REPO_NAME/$_CONTAINER_NAME",
|
|
49
|
+
"--build-arg",
|
|
50
|
+
"COMMIT_SHA=$COMMIT_SHA",
|
|
49
51
|
".",
|
|
50
52
|
]
|
|
51
53
|
- name: "gcr.io/cloud-builders/docker"
|
|
@@ -69,22 +71,6 @@ steps:
|
|
|
69
71
|
- "${_REGION}"
|
|
70
72
|
- "--project"
|
|
71
73
|
- "${_STAGING_PROJECT_ID}"
|
|
72
|
-
- "--min-instances"
|
|
73
|
-
- "1"
|
|
74
|
-
- "--no-cpu-throttling"
|
|
75
|
-
- "--cpu"
|
|
76
|
-
- "4"
|
|
77
|
-
- "--memory"
|
|
78
|
-
- "4Gi"
|
|
79
|
-
- "--concurrency"
|
|
80
|
-
- "40"
|
|
81
|
-
- "--service-account"
|
|
82
|
-
- "${_CLOUD_RUN_APP_SA_EMAIL}"
|
|
83
|
-
- "--session-affinity"
|
|
84
|
-
- "--labels"
|
|
85
|
-
- "created-by=adk"
|
|
86
|
-
- "--set-env-vars"
|
|
87
|
-
- "COMMIT_SHA=${COMMIT_SHA}{%- if cookiecutter.data_ingestion %}{%- if cookiecutter.datastore_type == "vertex_ai_search" %},DATA_STORE_ID=${_DATA_STORE_ID},DATA_STORE_REGION=${_DATA_STORE_REGION}{%- elif cookiecutter.datastore_type == "vertex_ai_vector_search" %},VECTOR_SEARCH_INDEX=${_VECTOR_SEARCH_INDEX},VECTOR_SEARCH_INDEX_ENDPOINT=${_VECTOR_SEARCH_INDEX_ENDPOINT},VECTOR_SEARCH_BUCKET=${_VECTOR_SEARCH_BUCKET}{%- endif %}{%- endif %}"
|
|
88
74
|
|
|
89
75
|
# Fetch Staging Service URL
|
|
90
76
|
- name: "gcr.io/cloud-builders/gcloud"
|
|
@@ -149,12 +135,11 @@ steps:
|
|
|
149
135
|
{%- if cookiecutter.deployment_target == 'cloud_run' %}
|
|
150
136
|
export _ID_TOKEN=$(cat id_token.txt)
|
|
151
137
|
export _STAGING_URL=$(cat staging_url.txt)
|
|
152
|
-
pip install uv==0.6.12 --user && uv sync --locked
|
|
153
138
|
{%- elif cookiecutter.deployment_target == 'agent_engine' %}
|
|
154
139
|
export _AUTH_TOKEN=$(cat auth_token.txt)
|
|
155
140
|
{%- endif %}
|
|
156
|
-
|
|
157
|
-
|
|
141
|
+
pip install locust==2.31.1 --user
|
|
142
|
+
locust -f tests/load_test/load_test.py \
|
|
158
143
|
--headless \
|
|
159
144
|
{%- if cookiecutter.deployment_target == 'cloud_run' %}
|
|
160
145
|
-H $$_STAGING_URL \
|
{agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/base_template/deployment/terraform/apis.tf
RENAMED
|
@@ -19,9 +19,9 @@ resource "google_project_service" "cicd_services" {
|
|
|
19
19
|
disable_on_destroy = false
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
resource "google_project_service" "
|
|
22
|
+
resource "google_project_service" "deploy_project_services" {
|
|
23
23
|
for_each = {
|
|
24
|
-
for pair in setproduct(keys(local.deploy_project_ids), local.
|
|
24
|
+
for pair in setproduct(keys(local.deploy_project_ids), local.deploy_project_services) :
|
|
25
25
|
"${pair[0]}_${replace(pair[1], ".", "_")}" => {
|
|
26
26
|
project = local.deploy_project_ids[pair[0]]
|
|
27
27
|
service = pair[1]
|
|
@@ -39,7 +39,7 @@ resource "google_cloudbuild_trigger" "pr_checks" {
|
|
|
39
39
|
{% endif %}
|
|
40
40
|
]
|
|
41
41
|
include_build_logs = "INCLUDE_BUILD_LOGS_WITH_STATUS"
|
|
42
|
-
depends_on = [resource.google_project_service.cicd_services, resource.google_project_service.
|
|
42
|
+
depends_on = [resource.google_project_service.cicd_services, resource.google_project_service.deploy_project_services]
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
# b. Create CD pipeline trigger
|
|
@@ -85,13 +85,13 @@ resource "google_cloudbuild_trigger" "cd_pipeline" {
|
|
|
85
85
|
{% elif cookiecutter.datastore_type == "vertex_ai_vector_search" %}
|
|
86
86
|
_VECTOR_SEARCH_INDEX = resource.google_vertex_ai_index.vector_search_index_staging.id
|
|
87
87
|
_VECTOR_SEARCH_INDEX_ENDPOINT = resource.google_vertex_ai_index_endpoint.vector_search_index_endpoint_staging.id
|
|
88
|
-
_VECTOR_SEARCH_BUCKET =
|
|
88
|
+
_VECTOR_SEARCH_BUCKET = resource.google_storage_bucket.vector_search_data_bucket["staging"].url
|
|
89
89
|
|
|
90
90
|
{% endif %}
|
|
91
91
|
{% endif %}
|
|
92
92
|
# Your other CD Pipeline substitutions
|
|
93
93
|
}
|
|
94
|
-
depends_on = [resource.google_project_service.cicd_services, resource.google_project_service.
|
|
94
|
+
depends_on = [resource.google_project_service.cicd_services, resource.google_project_service.deploy_project_services]
|
|
95
95
|
|
|
96
96
|
}
|
|
97
97
|
|
|
@@ -128,11 +128,11 @@ resource "google_cloudbuild_trigger" "deploy_to_prod_pipeline" {
|
|
|
128
128
|
{% elif cookiecutter.datastore_type == "vertex_ai_vector_search" %}
|
|
129
129
|
_VECTOR_SEARCH_INDEX = resource.google_vertex_ai_index.vector_search_index_prod.id
|
|
130
130
|
_VECTOR_SEARCH_INDEX_ENDPOINT = resource.google_vertex_ai_index_endpoint.vector_search_index_endpoint_prod.id
|
|
131
|
-
_VECTOR_SEARCH_BUCKET =
|
|
131
|
+
_VECTOR_SEARCH_BUCKET = resource.google_storage_bucket.vector_search_data_bucket["prod"].url
|
|
132
132
|
{% endif %}
|
|
133
133
|
{% endif %}
|
|
134
134
|
# Your other Deploy to Prod Pipeline substitutions
|
|
135
135
|
}
|
|
136
|
-
depends_on = [resource.google_project_service.cicd_services, resource.google_project_service.
|
|
136
|
+
depends_on = [resource.google_project_service.cicd_services, resource.google_project_service.deploy_project_services]
|
|
137
137
|
|
|
138
138
|
}
|
|
@@ -24,7 +24,14 @@ locals {
|
|
|
24
24
|
"bigquery.googleapis.com",
|
|
25
25
|
"serviceusage.googleapis.com",
|
|
26
26
|
"logging.googleapis.com",
|
|
27
|
-
"cloudtrace.googleapis.com"
|
|
27
|
+
"cloudtrace.googleapis.com",
|
|
28
|
+
{%- if "adk" in cookiecutter.tags and cookiecutter.session_type == "alloydb" %}
|
|
29
|
+
"compute.googleapis.com",
|
|
30
|
+
"servicenetworking.googleapis.com",
|
|
31
|
+
"alloydb.googleapis.com",
|
|
32
|
+
"secretmanager.googleapis.com",
|
|
33
|
+
"dns.googleapis.com"
|
|
34
|
+
{%- endif %}
|
|
28
35
|
]
|
|
29
36
|
}
|
|
30
37
|
|
|
@@ -54,6 +54,9 @@ variable "agentengine_sa_roles" {
|
|
|
54
54
|
{% endif %}
|
|
55
55
|
type = list(string)
|
|
56
56
|
default = [
|
|
57
|
+
{%- if "adk" in cookiecutter.tags and cookiecutter.session_type == "alloydb" %}
|
|
58
|
+
"roles/secretmanager.secretAccessor",
|
|
59
|
+
{%- endif %}
|
|
57
60
|
"roles/aiplatform.user",
|
|
58
61
|
"roles/discoveryengine.editor",
|
|
59
62
|
"roles/logging.logWriter",
|
|
@@ -61,7 +64,6 @@ variable "agentengine_sa_roles" {
|
|
|
61
64
|
"roles/storage.admin"
|
|
62
65
|
]
|
|
63
66
|
}
|
|
64
|
-
|
|
65
67
|
{% if cookiecutter.data_ingestion %}
|
|
66
68
|
|
|
67
69
|
variable "pipelines_roles" {
|
{agent_starter_pack-0.7.0 → agent_starter_pack-0.8.0}/src/base_template/deployment/terraform/iam.tf
RENAMED
|
@@ -25,7 +25,7 @@ resource "google_project_iam_member" "cicd_project_roles" {
|
|
|
25
25
|
project = var.cicd_runner_project_id
|
|
26
26
|
role = each.value
|
|
27
27
|
member = "serviceAccount:${resource.google_service_account.cicd_runner_sa.email}"
|
|
28
|
-
depends_on = [resource.google_project_service.cicd_services, resource.google_project_service.
|
|
28
|
+
depends_on = [resource.google_project_service.cicd_services, resource.google_project_service.deploy_project_services]
|
|
29
29
|
|
|
30
30
|
}
|
|
31
31
|
|
|
@@ -42,7 +42,7 @@ resource "google_project_iam_member" "other_projects_roles" {
|
|
|
42
42
|
project = each.value.project_id
|
|
43
43
|
role = each.value.role
|
|
44
44
|
member = "serviceAccount:${resource.google_service_account.cicd_runner_sa.email}"
|
|
45
|
-
depends_on = [resource.google_project_service.cicd_services, resource.google_project_service.
|
|
45
|
+
depends_on = [resource.google_project_service.cicd_services, resource.google_project_service.deploy_project_services]
|
|
46
46
|
}
|
|
47
47
|
{% if cookiecutter.deployment_target == 'cloud_run' %}
|
|
48
48
|
# 3. Allow Cloud Run service SA to pull containers stored in the CICD project
|
|
@@ -52,7 +52,7 @@ resource "google_project_iam_member" "cicd_run_invoker_artifact_registry_reader"
|
|
|
52
52
|
|
|
53
53
|
role = "roles/artifactregistry.reader"
|
|
54
54
|
member = "serviceAccount:service-${data.google_project.projects[each.key].number}@serverless-robot-prod.iam.gserviceaccount.com"
|
|
55
|
-
depends_on = [resource.google_project_service.cicd_services, resource.google_project_service.
|
|
55
|
+
depends_on = [resource.google_project_service.cicd_services, resource.google_project_service.deploy_project_services]
|
|
56
56
|
|
|
57
57
|
}
|
|
58
58
|
|
|
@@ -69,7 +69,7 @@ resource "google_project_iam_member" "cloud_run_app_sa_roles" {
|
|
|
69
69
|
project = each.value.project
|
|
70
70
|
role = each.value.role
|
|
71
71
|
member = "serviceAccount:${google_service_account.cloud_run_app_sa[split(",", each.key)[0]].email}"
|
|
72
|
-
depends_on = [resource.google_project_service.cicd_services, resource.google_project_service.
|
|
72
|
+
depends_on = [resource.google_project_service.cicd_services, resource.google_project_service.deploy_project_services]
|
|
73
73
|
}
|
|
74
74
|
{% elif cookiecutter.deployment_target == 'agent_engine' %}
|
|
75
75
|
resource "google_project_service_identity" "vertex_sa" {
|
|
@@ -92,7 +92,7 @@ resource "google_project_iam_member" "vertex_ai_sa_permissions" {
|
|
|
92
92
|
project = each.value.project
|
|
93
93
|
role = each.value.role
|
|
94
94
|
member = "serviceAccount:service-${data.google_project.projects[split("_", each.key)[0]].number}@gcp-sa-aiplatform-re.iam.gserviceaccount.com"
|
|
95
|
-
depends_on = [resource.google_project_service.
|
|
95
|
+
depends_on = [resource.google_project_service.deploy_project_services, resource.google_project_service_identity.vertex_sa]
|
|
96
96
|
}
|
|
97
97
|
{% endif %}
|
|
98
98
|
|
|
@@ -101,14 +101,14 @@ resource "google_service_account_iam_member" "cicd_run_invoker_token_creator" {
|
|
|
101
101
|
service_account_id = google_service_account.cicd_runner_sa.name
|
|
102
102
|
role = "roles/iam.serviceAccountTokenCreator"
|
|
103
103
|
member = "serviceAccount:${resource.google_service_account.cicd_runner_sa.email}"
|
|
104
|
-
depends_on = [resource.google_project_service.cicd_services, resource.google_project_service.
|
|
104
|
+
depends_on = [resource.google_project_service.cicd_services, resource.google_project_service.deploy_project_services]
|
|
105
105
|
}
|
|
106
106
|
# Special assignment: Allow the CICD SA to impersonate himself for trigger creation
|
|
107
107
|
resource "google_service_account_iam_member" "cicd_run_invoker_account_user" {
|
|
108
108
|
service_account_id = google_service_account.cicd_runner_sa.name
|
|
109
109
|
role = "roles/iam.serviceAccountUser"
|
|
110
110
|
member = "serviceAccount:${resource.google_service_account.cicd_runner_sa.email}"
|
|
111
|
-
depends_on = [resource.google_project_service.cicd_services, resource.google_project_service.
|
|
111
|
+
depends_on = [resource.google_project_service.cicd_services, resource.google_project_service.deploy_project_services]
|
|
112
112
|
}
|
|
113
113
|
|
|
114
114
|
{%- if cookiecutter.data_ingestion %}
|
|
@@ -125,6 +125,6 @@ resource "google_project_iam_member" "vertexai_pipeline_sa_roles" {
|
|
|
125
125
|
project = each.value.project
|
|
126
126
|
role = each.value.role
|
|
127
127
|
member = "serviceAccount:${google_service_account.vertexai_pipeline_app_sa[split(",", each.key)[0]].email}"
|
|
128
|
-
depends_on = [resource.google_project_service.cicd_services, resource.google_project_service.
|
|
128
|
+
depends_on = [resource.google_project_service.cicd_services, resource.google_project_service.deploy_project_services]
|
|
129
129
|
}
|
|
130
130
|
{%- endif %}
|