agent-starter-pack 0.11.1__tar.gz → 0.11.2__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.
Files changed (286) hide show
  1. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/.claude/settings.local.json +2 -1
  2. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/PKG-INFO +1 -1
  3. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/pyproject.toml +1 -1
  4. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/deployment/terraform/dev/variables.tf +3 -2
  5. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/deployment/terraform/iam.tf +10 -34
  6. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/deployment/terraform/variables.tf +3 -3
  7. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/cli/commands/setup_cicd.py +50 -41
  8. agent_starter_pack-0.11.2/tests/cicd/scripts/delete_agent_engines.py +242 -0
  9. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/uv.lock +1 -1
  10. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/.cloudbuild/cd/test_e2e.yaml +0 -0
  11. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/.cloudbuild/ci/build_use_wheel.yaml +0 -0
  12. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/.cloudbuild/ci/lint.yaml +0 -0
  13. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/.cloudbuild/ci/lint_templated_agents.yaml +0 -0
  14. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/.cloudbuild/ci/test.yaml +0 -0
  15. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/.cloudbuild/ci/test_makefile.yaml +0 -0
  16. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/.cloudbuild/ci/test_pipeline_parity.yaml +0 -0
  17. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/.cloudbuild/ci/test_remote_template.yaml +0 -0
  18. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/.cloudbuild/ci/test_templated_agents.yaml +0 -0
  19. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/.cloudbuild/terraform/apis.tf +0 -0
  20. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/.cloudbuild/terraform/build_triggers.tf +0 -0
  21. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/.cloudbuild/terraform/service_account.tf +0 -0
  22. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/.cloudbuild/terraform/storage.tf +0 -0
  23. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/.cloudbuild/terraform/variables.tf +0 -0
  24. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/.github/workflows/docs.yml +0 -0
  25. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/.gitignore +0 -0
  26. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/CLAUDE.md +0 -0
  27. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/CODE_OF_CONDUCT.md +0 -0
  28. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/CONTRIBUTING.md +0 -0
  29. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/GEMINI.md +0 -0
  30. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/LICENSE +0 -0
  31. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/Makefile +0 -0
  32. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/README.md +0 -0
  33. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/README.md +0 -0
  34. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/adk_base/.template/templateconfig.yaml +0 -0
  35. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/adk_base/README.md +0 -0
  36. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/adk_base/app/agent.py +0 -0
  37. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/adk_base/notebooks/adk_app_testing.ipynb +0 -0
  38. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/adk_base/notebooks/evaluating_adk_agent.ipynb +0 -0
  39. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/adk_base/tests/integration/test_agent.py +0 -0
  40. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/agentic_rag/.template/templateconfig.yaml +0 -0
  41. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/agentic_rag/README.md +0 -0
  42. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/agentic_rag/app/agent.py +0 -0
  43. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/agentic_rag/app/retrievers.py +0 -0
  44. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/agentic_rag/app/templates.py +0 -0
  45. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/agentic_rag/notebooks/adk_app_testing.ipynb +0 -0
  46. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/agentic_rag/notebooks/evaluating_adk_agent.ipynb +0 -0
  47. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/agentic_rag/tests/integration/test_agent.py +0 -0
  48. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/crewai_coding_crew/.template/templateconfig.yaml +0 -0
  49. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/crewai_coding_crew/README.md +0 -0
  50. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/crewai_coding_crew/app/agent.py +0 -0
  51. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/crewai_coding_crew/app/crew/config/agents.yaml +0 -0
  52. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/crewai_coding_crew/app/crew/config/tasks.yaml +0 -0
  53. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/crewai_coding_crew/app/crew/crew.py +0 -0
  54. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/crewai_coding_crew/notebooks/evaluating_crewai_agent.ipynb +0 -0
  55. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/crewai_coding_crew/notebooks/evaluating_langgraph_agent.ipynb +0 -0
  56. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/crewai_coding_crew/tests/integration/test_agent.py +0 -0
  57. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/langgraph_base_react/.template/templateconfig.yaml +0 -0
  58. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/langgraph_base_react/README.md +0 -0
  59. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/langgraph_base_react/app/agent.py +0 -0
  60. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/langgraph_base_react/notebooks/evaluating_langgraph_agent.ipynb +0 -0
  61. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/langgraph_base_react/tests/integration/test_agent.py +0 -0
  62. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/live_api/.template/templateconfig.yaml +0 -0
  63. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/live_api/README.md +0 -0
  64. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/live_api/app/agent.py +0 -0
  65. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/live_api/app/server.py +0 -0
  66. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/live_api/tests/integration/test_server_e2e.py +0 -0
  67. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/live_api/tests/load_test/load_test.py +0 -0
  68. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/agents/live_api/tests/unit/test_server.py +0 -0
  69. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/docs/.vitepress/config.js +0 -0
  70. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/docs/agents/overview.md +0 -0
  71. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/docs/cli/create.md +0 -0
  72. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/docs/cli/enhance.md +0 -0
  73. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/docs/cli/index.md +0 -0
  74. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/docs/cli/list.md +0 -0
  75. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/docs/cli/setup_cicd.md +0 -0
  76. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/docs/guide/data-ingestion.md +0 -0
  77. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/docs/guide/deploy-ui.md +0 -0
  78. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/docs/guide/deployment.md +0 -0
  79. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/docs/guide/development-guide.md +0 -0
  80. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/docs/guide/getting-started.md +0 -0
  81. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/docs/guide/installation.md +0 -0
  82. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/docs/guide/observability.md +0 -0
  83. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/docs/guide/template-config-reference.md +0 -0
  84. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/docs/guide/troubleshooting.md +0 -0
  85. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/docs/guide/video-tutorials.md +0 -0
  86. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/docs/guide/why_starter_pack.md +0 -0
  87. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/docs/images/adk_gemini_fullstack.gif +0 -0
  88. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/docs/images/adk_gemini_fullstack_architecture.png +0 -0
  89. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/docs/images/adk_logo.png +0 -0
  90. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/docs/images/agent_starter_pack_screenshot.png +0 -0
  91. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/docs/images/ags_high_level_architecture.png +0 -0
  92. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/docs/images/icon.png +0 -0
  93. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/docs/images/logo.png +0 -0
  94. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/docs/images/prototype_to_prod.png +0 -0
  95. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/docs/images/why_sp_edited.png +0 -0
  96. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/docs/images/why_starter_pack.png +0 -0
  97. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/docs/index.md +0 -0
  98. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/docs/package-lock.json +0 -0
  99. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/docs/package.json +0 -0
  100. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/docs/remote-templates/creating-remote-templates.md +0 -0
  101. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/docs/remote-templates/index.md +0 -0
  102. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/docs/remote-templates/using-remote-templates.md +0 -0
  103. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/llm.txt +0 -0
  104. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/.gitignore +0 -0
  105. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/GEMINI.md +0 -0
  106. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/Makefile +0 -0
  107. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/README.md +0 -0
  108. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/app/__init__.py +0 -0
  109. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/app/utils/gcs.py +0 -0
  110. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/app/utils/tracing.py +0 -0
  111. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/app/utils/typing.py +0 -0
  112. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/deployment/README.md +0 -0
  113. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/deployment/terraform/apis.tf +0 -0
  114. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/deployment/terraform/dev/apis.tf +0 -0
  115. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/deployment/terraform/dev/iam.tf +0 -0
  116. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/deployment/terraform/dev/log_sinks.tf +0 -0
  117. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/deployment/terraform/dev/providers.tf +0 -0
  118. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/deployment/terraform/dev/storage.tf +0 -0
  119. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/deployment/terraform/dev/vars/env.tfvars +0 -0
  120. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/deployment/terraform/github.tf +0 -0
  121. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/deployment/terraform/locals.tf +0 -0
  122. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/deployment/terraform/log_sinks.tf +0 -0
  123. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/deployment/terraform/providers.tf +0 -0
  124. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/deployment/terraform/service_accounts.tf +0 -0
  125. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/deployment/terraform/storage.tf +0 -0
  126. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/deployment/terraform/vars/env.tfvars +0 -0
  127. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/deployment/terraform/{% if cookiecutter.cicd_runner == 'github_actions' %}wif.tf{% else %}unused_wif.tf{% endif %} +0 -0
  128. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/deployment/terraform/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}build_triggers.tf{% else %}unused_build_triggers.tf{% endif %} +0 -0
  129. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/pyproject.toml +0 -0
  130. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/tests/unit/test_dummy.py +0 -0
  131. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/{% if cookiecutter.cicd_runner == 'github_actions' %}.github{% else %}unused_github{% endif %}/workflows/deploy-to-prod.yaml +0 -0
  132. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/{% if cookiecutter.cicd_runner == 'github_actions' %}.github{% else %}unused_github{% endif %}/workflows/pr_checks.yaml +0 -0
  133. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/{% if cookiecutter.cicd_runner == 'github_actions' %}.github{% else %}unused_github{% endif %}/workflows/staging.yaml +0 -0
  134. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}.cloudbuild{% else %}unused_.cloudbuild{% endif %}/deploy-to-prod.yaml +0 -0
  135. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}.cloudbuild{% else %}unused_.cloudbuild{% endif %}/pr_checks.yaml +0 -0
  136. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/base_template/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}.cloudbuild{% else %}unused_.cloudbuild{% endif %}/staging.yaml +0 -0
  137. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/cli/commands/create.py +0 -0
  138. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/cli/commands/enhance.py +0 -0
  139. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/cli/commands/list.py +0 -0
  140. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/cli/main.py +0 -0
  141. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/cli/utils/__init__.py +0 -0
  142. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/cli/utils/cicd.py +0 -0
  143. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/cli/utils/datastores.py +0 -0
  144. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/cli/utils/gcp.py +0 -0
  145. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/cli/utils/logging.py +0 -0
  146. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/cli/utils/remote_template.py +0 -0
  147. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/cli/utils/template.py +0 -0
  148. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/cli/utils/version.py +0 -0
  149. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/data_ingestion/README.md +0 -0
  150. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/data_ingestion/data_ingestion_pipeline/components/ingest_data.py +0 -0
  151. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/data_ingestion/data_ingestion_pipeline/components/process_data.py +0 -0
  152. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/data_ingestion/data_ingestion_pipeline/pipeline.py +0 -0
  153. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/data_ingestion/data_ingestion_pipeline/submit_pipeline.py +0 -0
  154. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/data_ingestion/pyproject.toml +0 -0
  155. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/data_ingestion/uv.lock +0 -0
  156. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/deployment_targets/agent_engine/app/agent_engine_app.py +0 -0
  157. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/deployment_targets/agent_engine/deployment_metadata.json +0 -0
  158. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/deployment_targets/agent_engine/notebooks/intro_agent_engine.ipynb +0 -0
  159. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/deployment_targets/agent_engine/tests/integration/test_agent_engine_app.py +0 -0
  160. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/deployment_targets/agent_engine/tests/load_test/.results/.placeholder +0 -0
  161. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/deployment_targets/agent_engine/tests/load_test/README.md +0 -0
  162. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/deployment_targets/agent_engine/tests/load_test/load_test.py +0 -0
  163. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/deployment_targets/cloud_run/Dockerfile +0 -0
  164. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/deployment_targets/cloud_run/app/server.py +0 -0
  165. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/deployment_targets/cloud_run/deployment/terraform/dev/service.tf +0 -0
  166. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/deployment_targets/cloud_run/deployment/terraform/service.tf +0 -0
  167. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/deployment_targets/cloud_run/tests/integration/test_server_e2e.py +0 -0
  168. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/deployment_targets/cloud_run/tests/load_test/.results/.placeholder +0 -0
  169. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/deployment_targets/cloud_run/tests/load_test/README.md +0 -0
  170. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/deployment_targets/cloud_run/tests/load_test/load_test.py +0 -0
  171. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/adk_gemini_fullstack/frontend/components.json +0 -0
  172. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/adk_gemini_fullstack/frontend/eslint.config.js +0 -0
  173. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/adk_gemini_fullstack/frontend/index.html +0 -0
  174. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/adk_gemini_fullstack/frontend/package-lock.json +0 -0
  175. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/adk_gemini_fullstack/frontend/package.json +0 -0
  176. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/adk_gemini_fullstack/frontend/src/App.tsx +0 -0
  177. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/adk_gemini_fullstack/frontend/src/components/ActivityTimeline.tsx +0 -0
  178. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/adk_gemini_fullstack/frontend/src/components/ChatMessagesView.tsx +0 -0
  179. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/adk_gemini_fullstack/frontend/src/components/InputForm.tsx +0 -0
  180. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/adk_gemini_fullstack/frontend/src/components/WelcomeScreen.tsx +0 -0
  181. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/badge.tsx +0 -0
  182. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/button.tsx +0 -0
  183. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/card.tsx +0 -0
  184. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/input.tsx +0 -0
  185. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/scroll-area.tsx +0 -0
  186. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/select.tsx +0 -0
  187. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/tabs.tsx +0 -0
  188. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/textarea.tsx +0 -0
  189. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/adk_gemini_fullstack/frontend/src/global.css +0 -0
  190. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/adk_gemini_fullstack/frontend/src/main.tsx +0 -0
  191. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/adk_gemini_fullstack/frontend/src/utils.ts +0 -0
  192. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/adk_gemini_fullstack/frontend/src/vite-env.d.ts +0 -0
  193. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/adk_gemini_fullstack/frontend/tsconfig.json +0 -0
  194. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/adk_gemini_fullstack/frontend/tsconfig.node.json +0 -0
  195. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/adk_gemini_fullstack/frontend/vite.config.ts +0 -0
  196. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/package-lock.json +0 -0
  197. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/package.json +0 -0
  198. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/public/favicon.ico +0 -0
  199. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/public/index.html +0 -0
  200. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/public/robots.txt +0 -0
  201. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/src/App.scss +0 -0
  202. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/src/App.test.tsx +0 -0
  203. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/src/App.tsx +0 -0
  204. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/src/components/audio-pulse/AudioPulse.tsx +0 -0
  205. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/src/components/audio-pulse/audio-pulse.scss +0 -0
  206. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/src/components/control-tray/ControlTray.tsx +0 -0
  207. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/src/components/control-tray/control-tray.scss +0 -0
  208. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/src/components/logger/Logger.tsx +0 -0
  209. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/src/components/logger/logger.scss +0 -0
  210. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/src/components/logger/mock-logs.ts +0 -0
  211. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/src/components/side-panel/SidePanel.tsx +0 -0
  212. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/src/components/side-panel/side-panel.scss +0 -0
  213. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/src/contexts/LiveAPIContext.tsx +0 -0
  214. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/src/hooks/use-live-api.ts +0 -0
  215. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/src/hooks/use-media-stream-mux.ts +0 -0
  216. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/src/hooks/use-screen-capture.ts +0 -0
  217. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/src/hooks/use-webcam.ts +0 -0
  218. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/src/index.css +0 -0
  219. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/src/index.tsx +0 -0
  220. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/src/multimodal-live-types.ts +0 -0
  221. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/src/react-app-env.d.ts +0 -0
  222. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/src/reportWebVitals.ts +0 -0
  223. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/src/setupTests.ts +0 -0
  224. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/src/utils/audio-recorder.ts +0 -0
  225. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/src/utils/audio-streamer.ts +0 -0
  226. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/src/utils/audioworklet-registry.ts +0 -0
  227. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/src/utils/multimodal-live-client.ts +0 -0
  228. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/src/utils/store-logger.ts +0 -0
  229. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/src/utils/utils.ts +0 -0
  230. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/src/utils/worklets/audio-processing.ts +0 -0
  231. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/src/utils/worklets/vol-meter.ts +0 -0
  232. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/live_api_react/frontend/tsconfig.json +0 -0
  233. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/streamlit/frontend/side_bar.py +0 -0
  234. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/streamlit/frontend/streamlit_app.py +0 -0
  235. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/streamlit/frontend/style/app_markdown.py +0 -0
  236. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/streamlit/frontend/utils/chat_utils.py +0 -0
  237. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/streamlit/frontend/utils/local_chat_history.py +0 -0
  238. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/streamlit/frontend/utils/message_editing.py +0 -0
  239. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/streamlit/frontend/utils/multimodal_utils.py +0 -0
  240. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/streamlit/frontend/utils/stream_handler.py +0 -0
  241. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/frontends/streamlit/frontend/utils/title_summary.py +0 -0
  242. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/resources/containers/data_processing/Dockerfile +0 -0
  243. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/resources/containers/e2e-tests/Dockerfile +0 -0
  244. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/resources/docs/adk-cheatsheet.md +0 -0
  245. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/resources/idx/.idx/dev.nix +0 -0
  246. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/resources/idx/idx-template.json +0 -0
  247. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/resources/idx/idx-template.nix +0 -0
  248. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/resources/locks/uv-adk_base-agent_engine.lock +0 -0
  249. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/resources/locks/uv-adk_base-cloud_run.lock +0 -0
  250. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/resources/locks/uv-adk_gemini_fullstack-agent_engine.lock +0 -0
  251. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/resources/locks/uv-adk_gemini_fullstack-cloud_run.lock +0 -0
  252. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/resources/locks/uv-agentic_rag-agent_engine.lock +0 -0
  253. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/resources/locks/uv-agentic_rag-cloud_run.lock +0 -0
  254. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/resources/locks/uv-crewai_coding_crew-agent_engine.lock +0 -0
  255. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/resources/locks/uv-crewai_coding_crew-cloud_run.lock +0 -0
  256. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/resources/locks/uv-langgraph_base_react-agent_engine.lock +0 -0
  257. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/resources/locks/uv-langgraph_base_react-cloud_run.lock +0 -0
  258. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/resources/locks/uv-live_api-cloud_run.lock +0 -0
  259. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/utils/generate_locks.py +0 -0
  260. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/utils/lock_utils.py +0 -0
  261. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/src/utils/watch_and_rebuild.py +0 -0
  262. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/tests/__init__.py +0 -0
  263. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/tests/cicd/example.env +0 -0
  264. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/tests/cicd/test_e2e_deployment.py +0 -0
  265. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/tests/cli/commands/test_create.py +0 -0
  266. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/tests/cli/commands/test_create_local.py +0 -0
  267. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/tests/cli/commands/test_enhance.py +0 -0
  268. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/tests/cli/commands/test_list.py +0 -0
  269. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/tests/cli/commands/test_setup_cicd.py +0 -0
  270. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/tests/cli/utils/test_cicd.py +0 -0
  271. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/tests/cli/utils/test_remote_template.py +0 -0
  272. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/tests/integration/test_makefile_usability.py +0 -0
  273. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/tests/integration/test_pipeline_parity.py +0 -0
  274. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/tests/integration/test_remote_templating.py +0 -0
  275. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/tests/integration/test_template_linting.py +0 -0
  276. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/tests/integration/test_templated_patterns.py +0 -0
  277. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/tests/integration/utils.py +0 -0
  278. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/tests/test_frontend/test_side_bar.py +0 -0
  279. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/tests/test_frontend/test_streamlit_app.py +0 -0
  280. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/tests/test_frontend/test_utils/test_chat_utils.py +0 -0
  281. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/tests/test_frontend/test_utils/test_local_chat_history.py +0 -0
  282. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/tests/test_frontend/test_utils/test_message_editing.py +0 -0
  283. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/tests/test_frontend/test_utils/test_multimodal_utils.py +0 -0
  284. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/tests/test_frontend/test_utils/test_stream_handler.py +0 -0
  285. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/tests/utils/__init__.py +0 -0
  286. {agent_starter_pack-0.11.1 → agent_starter_pack-0.11.2}/tests/utils/get_agents.py +0 -0
@@ -13,7 +13,8 @@
13
13
  "Bash(set +a)",
14
14
  "Bash(bash:*)",
15
15
  "Bash(ls:*)",
16
- "Bash(python -m pytest tests/cli/commands/test_enhance.py::TestEnhanceCommand::test_enhance_with_interactive_base_template_selection -v)"
16
+ "Bash(python -m pytest tests/cli/commands/test_enhance.py::TestEnhanceCommand::test_enhance_with_interactive_base_template_selection -v)",
17
+ "Bash(python tests/cicd/scripts/delete_agent_engines.py:*)"
17
18
  ],
18
19
  "deny": []
19
20
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent-starter-pack
3
- Version: 0.11.1
3
+ Version: 0.11.2
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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "agent-starter-pack"
3
- version = "0.11.1"
3
+ version = "0.11.2"
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" },
@@ -49,14 +49,15 @@ variable "app_sa_roles" {
49
49
  description = "List of roles to assign to the application service account"
50
50
  type = list(string)
51
51
  default = [
52
- {%- if "adk" in cookiecutter.tags and cookiecutter.session_type == "alloydb" %}
52
+ {%- if cookiecutter.session_type == "alloydb" %}
53
53
  "roles/secretmanager.secretAccessor",
54
54
  {%- endif %}
55
55
  "roles/aiplatform.user",
56
56
  "roles/discoveryengine.editor",
57
57
  "roles/logging.logWriter",
58
58
  "roles/cloudtrace.agent",
59
- "roles/storage.admin"
59
+ "roles/storage.admin",
60
+ "roles/serviceusage.serviceUsageConsumer",
60
61
  ]
61
62
  }
62
63
  {% if cookiecutter.data_ingestion %}
@@ -44,19 +44,7 @@ resource "google_project_iam_member" "other_projects_roles" {
44
44
  member = "serviceAccount:${resource.google_service_account.cicd_runner_sa.email}"
45
45
  depends_on = [resource.google_project_service.cicd_services, resource.google_project_service.deploy_project_services]
46
46
  }
47
- {% if cookiecutter.deployment_target == 'cloud_run' %}
48
- # 3. Allow Cloud Run service SA to pull containers stored in the CICD project
49
- resource "google_project_iam_member" "cicd_run_invoker_artifact_registry_reader" {
50
- for_each = local.deploy_project_ids
51
- project = var.cicd_runner_project_id
52
-
53
- role = "roles/artifactregistry.reader"
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.deploy_project_services]
56
-
57
- }
58
-
59
- # 4. Grant application SA the required permissions to run the application
47
+ # 3. Grant application SA the required permissions to run the application
60
48
  resource "google_project_iam_member" "app_sa_roles" {
61
49
  for_each = {
62
50
  for pair in setproduct(keys(local.deploy_project_ids), var.app_sa_roles) :
@@ -72,33 +60,21 @@ resource "google_project_iam_member" "app_sa_roles" {
72
60
  depends_on = [resource.google_project_service.cicd_services, resource.google_project_service.deploy_project_services]
73
61
  }
74
62
 
75
- {% endif %}
76
-
77
- {% if cookiecutter.deployment_target == 'agent_engine' %}
78
- resource "google_project_service_identity" "vertex_sa" {
63
+ {% if cookiecutter.deployment_target == 'cloud_run' %}
64
+ # 4. Allow Cloud Run service SA to pull containers stored in the CICD project
65
+ resource "google_project_iam_member" "cicd_run_invoker_artifact_registry_reader" {
79
66
  for_each = local.deploy_project_ids
80
- provider = google-beta
81
- project = each.value
82
- service = "aiplatform.googleapis.com"
83
- }
67
+ project = var.cicd_runner_project_id
84
68
 
85
- # 5. Grant required permissions to Vertex AI Service Agent SA for Agent Engine
86
- resource "google_project_iam_member" "vertex_ai_sa_permissions" {
87
- for_each = {
88
- for pair in setproduct(keys(local.deploy_project_ids), var.app_sa_roles) :
89
- "${pair[0]}_${pair[1]}" => {
90
- project = local.deploy_project_ids[pair[0]]
91
- role = pair[1]
92
- }
93
- }
69
+ role = "roles/artifactregistry.reader"
70
+ member = "serviceAccount:service-${data.google_project.projects[each.key].number}@serverless-robot-prod.iam.gserviceaccount.com"
71
+ depends_on = [resource.google_project_service.cicd_services, resource.google_project_service.deploy_project_services]
94
72
 
95
- project = each.value.project
96
- role = each.value.role
97
- member = "serviceAccount:service-${data.google_project.projects[split("_", each.key)[0]].number}@gcp-sa-aiplatform-re.iam.gserviceaccount.com"
98
- depends_on = [resource.google_project_service.deploy_project_services, resource.google_project_service_identity.vertex_sa]
99
73
  }
74
+
100
75
  {% endif %}
101
76
 
77
+
102
78
  # Special assignment: Allow the CICD SA to create tokens
103
79
  resource "google_service_account_iam_member" "cicd_run_invoker_token_creator" {
104
80
  service_account_id = google_service_account.cicd_runner_sa.name
@@ -70,15 +70,15 @@ variable "app_sa_roles" {
70
70
  description = "List of roles to assign to the application service account"
71
71
  type = list(string)
72
72
  default = [
73
- {%- if cookiecutter.deployment_target == 'cloud_run' %}
74
- "roles/run.invoker",
73
+ {%- if cookiecutter.session_type == "alloydb" %}
75
74
  "roles/secretmanager.secretAccessor",
76
75
  {%- endif %}
77
76
  "roles/aiplatform.user",
78
77
  "roles/discoveryengine.editor",
79
78
  "roles/logging.logWriter",
80
79
  "roles/cloudtrace.agent",
81
- "roles/storage.admin"
80
+ "roles/storage.admin",
81
+ "roles/serviceusage.serviceUsageConsumer",
82
82
  ]
83
83
  }
84
84
  {%- if cookiecutter.deployment_target == 'cloud_run' %}
@@ -48,7 +48,7 @@ def display_intro_message() -> None:
48
48
  "This command helps set up a basic CI/CD pipeline for development and testing purposes."
49
49
  )
50
50
  console.print("It will:")
51
- console.print("- Create a GitHub repository and connect it to Cloud Build")
51
+ console.print("- Create a GitHub repository and connect it to your CI/CD runner")
52
52
  console.print("- Set up development environment infrastructure")
53
53
  console.print("- Configure basic CI/CD triggers for PR checks and deployments")
54
54
  console.print(
@@ -218,6 +218,34 @@ def validate_working_directory() -> None:
218
218
  )
219
219
 
220
220
 
221
+ def detect_region_from_terraform_vars() -> str | None:
222
+ """Detect region from Terraform vars file.
223
+
224
+ Returns:
225
+ str | None: The detected region, or None if not found or is default
226
+ """
227
+ try:
228
+ tf_vars_path = Path("deployment/terraform/vars/env.tfvars")
229
+ if not tf_vars_path.exists():
230
+ return None
231
+
232
+ with open(tf_vars_path, encoding="utf-8") as f:
233
+ content = f.read()
234
+
235
+ # Look for region = "value" pattern
236
+ region_match = re.search(r'region\s*=\s*"([^"]+)"', content)
237
+ if region_match:
238
+ detected_region = region_match.group(1)
239
+ # Don't auto-detect if it's the default value
240
+ if detected_region != "us-central1":
241
+ return detected_region
242
+
243
+ return None
244
+ except Exception:
245
+ # If any error occurs, return None to use default
246
+ return None
247
+
248
+
221
249
  def update_build_triggers(tf_dir: Path) -> None:
222
250
  """Update build triggers configuration."""
223
251
  build_triggers_path = tf_dir / "build_triggers.tf"
@@ -427,7 +455,9 @@ console = Console()
427
455
  @click.option(
428
456
  "--cicd-project", help="CICD project ID (defaults to prod project if not specified)"
429
457
  )
430
- @click.option("--region", default="us-central1", help="GCP region")
458
+ @click.option(
459
+ "--region", help="GCP region (auto-detects from Terraform vars if not specified)"
460
+ )
431
461
  @click.option("--repository-name", help="Repository name (optional)")
432
462
  @click.option(
433
463
  "--repository-owner",
@@ -468,7 +498,7 @@ def setup_cicd(
468
498
  staging_project: str | None,
469
499
  prod_project: str | None,
470
500
  cicd_project: str | None,
471
- region: str,
501
+ region: str | None,
472
502
  repository_name: str | None,
473
503
  repository_owner: str | None,
474
504
  host_connection_name: str | None,
@@ -502,23 +532,24 @@ def setup_cicd(
502
532
  cicd_project = prod_project
503
533
  console.print(f"Using production project '{prod_project}' for CI/CD resources")
504
534
 
505
- console.print(
506
- "\n⚠️ WARNING: The setup-cicd command is experimental and may have unexpected behavior.",
507
- style="bold yellow",
508
- )
509
- console.print("Please report any issues you encounter.\n")
535
+ # Auto-detect region if not provided
536
+ if region is None:
537
+ detected_region = detect_region_from_terraform_vars()
538
+ if detected_region:
539
+ region = detected_region
540
+ console.print(f"Auto-detected region from Terraform vars: {region}")
541
+ else:
542
+ region = "us-central1"
543
+ console.print(f"Using default region: {region}")
544
+ else:
545
+ console.print(f"Using provided region: {region}")
510
546
 
511
- console.print("\n📋 About this command:", style="bold blue")
512
- console.print(
513
- "This command helps set up a basic CI/CD pipeline for development and testing purposes."
514
- )
515
- console.print("It will:")
516
- console.print("- Create a GitHub repository and connect it to Cloud Build")
517
- console.print("- Set up development environment infrastructure")
518
- console.print("- Configure basic CI/CD triggers for PR checks and deployments")
519
- console.print(
520
- "- Configure remote Terraform state in GCS (use --local-state to use local state instead)"
521
- )
547
+ # Auto-detect CI/CD runner based on Terraform files (moved earlier)
548
+ tf_dir = Path("deployment/terraform")
549
+ is_github_actions = (tf_dir / "wif.tf").exists() and (tf_dir / "github.tf").exists()
550
+ cicd_runner = "github_actions" if is_github_actions else "google_cloud_build"
551
+
552
+ display_intro_message()
522
553
 
523
554
  console.print("\n⚡ Production Setup Note:", style="bold yellow")
524
555
  console.print(
@@ -537,28 +568,6 @@ def setup_cicd(
537
568
  console.print("\n🛑 Setup cancelled by user", style="bold yellow")
538
569
  return
539
570
 
540
- console.print(
541
- "This command helps set up a basic CI/CD pipeline for development and testing purposes."
542
- )
543
- console.print("It will:")
544
- console.print("- Create a GitHub repository and connect it to Cloud Build")
545
- console.print("- Set up development environment infrastructure")
546
- console.print("- Configure basic CI/CD triggers for PR checks and deployments")
547
- console.print(
548
- "- Configure remote Terraform state in GCS (use --local-state to use local state instead)"
549
- )
550
-
551
- console.print("\n⚡ Production Setup Note:", style="bold yellow")
552
- console.print(
553
- "For production deployments and maximum flexibility, we recommend following"
554
- )
555
- console.print("the manual setup instructions in deployment/README.md")
556
- console.print("This will give you more control over:")
557
- console.print("- Security configurations")
558
- console.print("- Custom deployment workflows")
559
- console.print("- Environment-specific settings")
560
- console.print("- Advanced CI/CD pipeline customization\n")
561
-
562
571
  if debug:
563
572
  logging.basicConfig(level=logging.DEBUG)
564
573
  console.print("> Debug mode enabled")
@@ -0,0 +1,242 @@
1
+ #!/usr/bin/env python3
2
+
3
+ # mypy: ignore-errors
4
+ """
5
+ Script to delete all Agent Engine services from specified projects.
6
+
7
+ This script deletes all Agent Engine services from projects specified via environment variables.
8
+
9
+ Environment Variables:
10
+ - PROJECT_IDS: Comma-separated list of project IDs (e.g., "proj1,proj2,proj3")
11
+ - Alternative: Individual variables CICD_PROJECT_ID, E2E_PR_PROJECT_ID, E2E_ST_PROJECT_ID
12
+
13
+ Example usage:
14
+ export PROJECT_IDS="my-project-1,my-project-2,my-project-3"
15
+ python delete_agent_engines.py
16
+
17
+ Based on the cleanup logic from tests/cicd/test_e2e_deployment.py
18
+ """
19
+
20
+ import logging
21
+ import os
22
+ import sys
23
+ import time
24
+
25
+ import vertexai
26
+ from google.api_core import exceptions
27
+ from vertexai import agent_engines
28
+
29
+ # Configure logging
30
+ logging.basicConfig(
31
+ level=logging.INFO,
32
+ format="%(asctime)s - %(levelname)s - %(message)s",
33
+ datefmt="%Y-%m-%d %H:%M:%S",
34
+ )
35
+ logger = logging.getLogger(__name__)
36
+
37
+
38
+ # Project IDs to clean up - loaded from environment variables
39
+ def get_project_ids() -> list[str]:
40
+ """Get project IDs from environment variables."""
41
+ project_ids = []
42
+
43
+ # Try to get from comma-separated env var first
44
+ env_projects = os.getenv("PROJECT_IDS")
45
+ if env_projects:
46
+ project_ids = [pid.strip() for pid in env_projects.split(",") if pid.strip()]
47
+ else:
48
+ # Fallback to individual env vars for backward compatibility
49
+ for env_var in ["CICD_PROJECT_ID", "E2E_PR_PROJECT_ID", "E2E_ST_PROJECT_ID"]:
50
+ project_id = os.getenv(env_var)
51
+ if project_id:
52
+ project_ids.append(project_id.strip())
53
+
54
+ if not project_ids:
55
+ raise ValueError(
56
+ "No project IDs found. Please set either:\n"
57
+ "- PROJECT_IDS environment variable with comma-separated project IDs, or\n"
58
+ "- Individual env vars: CICD_PROJECT_ID, E2E_PR_PROJECT_ID, E2E_ST_PROJECT_ID"
59
+ )
60
+
61
+ return project_ids
62
+
63
+
64
+ # Default region
65
+ DEFAULT_REGION = "europe-west1"
66
+
67
+ # Rate limiting configuration
68
+ MAX_RETRIES = 3
69
+ RATE_LIMIT_DELAY = 60 # seconds to wait when hitting rate limits
70
+ RETRY_DELAY = 5 # seconds to wait between retries
71
+
72
+
73
+ def delete_single_agent_engine(engine, retry_count: int = 0) -> bool:
74
+ """
75
+ Delete a single Agent Engine with retry logic and force deletion.
76
+
77
+ Args:
78
+ engine: The AgentEngine instance to delete
79
+ retry_count: Current retry attempt number
80
+
81
+ Returns:
82
+ True if deleted successfully, False otherwise
83
+ """
84
+ engine_name = engine.display_name or engine.resource_name
85
+
86
+ try:
87
+ logger.info(f"🗑️ Deleting Agent Engine: {engine_name}")
88
+ logger.info(f" Resource name: {engine.resource_name}")
89
+
90
+ # Try normal deletion first
91
+ engine.delete()
92
+ logger.info(f"✅ Successfully deleted Agent Engine: {engine_name}")
93
+ return True
94
+
95
+ except exceptions.BadRequest as e:
96
+ # Handle child resources error by using force deletion
97
+ if "contains child resources" in str(e):
98
+ logger.warning(
99
+ f"⚠️ Agent Engine {engine_name} has child resources, attempting force deletion..."
100
+ )
101
+ try:
102
+ # Force delete with child resources
103
+ engine.delete(force=True)
104
+ logger.info(
105
+ f"✅ Force deleted Agent Engine with child resources: {engine_name}"
106
+ )
107
+ return True
108
+ except Exception as force_e:
109
+ logger.error(f"❌ Force deletion failed for {engine_name}: {force_e}")
110
+ return False
111
+ else:
112
+ logger.error(f"❌ Bad request error for {engine_name}: {e}")
113
+ return False
114
+
115
+ except exceptions.TooManyRequests as e:
116
+ # Handle rate limiting
117
+ if retry_count < MAX_RETRIES:
118
+ logger.warning(
119
+ f"⏱️ Rate limit hit for {engine_name}, waiting {RATE_LIMIT_DELAY} seconds before retry {retry_count + 1}/{MAX_RETRIES}..."
120
+ )
121
+ time.sleep(RATE_LIMIT_DELAY)
122
+ return delete_single_agent_engine(engine, retry_count + 1)
123
+ else:
124
+ logger.error(f"❌ Rate limit exceeded max retries for {engine_name}: {e}")
125
+ return False
126
+
127
+ except Exception as e:
128
+ # Handle other errors with retry logic
129
+ if retry_count < MAX_RETRIES:
130
+ logger.warning(
131
+ f"⏱️ Error deleting {engine_name}, retrying in {RETRY_DELAY} seconds... (attempt {retry_count + 1}/{MAX_RETRIES})"
132
+ )
133
+ time.sleep(RETRY_DELAY)
134
+ return delete_single_agent_engine(engine, retry_count + 1)
135
+ else:
136
+ logger.error(
137
+ f"❌ Failed to delete {engine_name} after {MAX_RETRIES} retries: {e}"
138
+ )
139
+ return False
140
+
141
+
142
+ def delete_agent_engines_in_project(
143
+ project_id: str, region: str = DEFAULT_REGION
144
+ ) -> tuple[int, int]:
145
+ """
146
+ Delete all Agent Engine services in a specific project.
147
+
148
+ Args:
149
+ project_id: The GCP project ID
150
+ region: The GCP region (default: europe-west1)
151
+
152
+ Returns:
153
+ Tuple of (successful_deletions, total_engines_found)
154
+ """
155
+ logger.info(f"🔍 Checking for Agent Engine services in project {project_id}...")
156
+
157
+ try:
158
+ # Initialize Vertex AI for this project
159
+ vertexai.init(project=project_id, location=region)
160
+
161
+ # List all Agent Engine services in the project
162
+ logger.info(f"📋 Listing all Agent Engine services in {project_id}...")
163
+ engines = list(agent_engines.AgentEngine.list())
164
+
165
+ if not engines:
166
+ logger.info(f"✅ No Agent Engine services found in {project_id}")
167
+ return 0, 0
168
+
169
+ logger.info(f"🎯 Found {len(engines)} Agent Engine service(s) in {project_id}")
170
+
171
+ # Delete each engine with improved error handling
172
+ deleted_count = 0
173
+ for i, engine in enumerate(engines, 1):
174
+ logger.info(f"📋 Processing engine {i}/{len(engines)} in {project_id}")
175
+
176
+ if delete_single_agent_engine(engine):
177
+ deleted_count += 1
178
+
179
+ # Small delay between deletions to avoid overwhelming the API
180
+ if i < len(engines): # Don't sleep after the last engine
181
+ time.sleep(1)
182
+
183
+ logger.info(
184
+ f"🎉 Deleted {deleted_count}/{len(engines)} Agent Engine service(s) in {project_id}"
185
+ )
186
+ return deleted_count, len(engines)
187
+
188
+ except Exception as e:
189
+ logger.error(f"❌ Error processing project {project_id}: {e}")
190
+ return 0, 0
191
+
192
+
193
+ def main():
194
+ """Main function to delete Agent Engine services from all specified projects."""
195
+ logger.info("🚀 Starting Agent Engine cleanup across multiple projects...")
196
+
197
+ try:
198
+ project_ids = get_project_ids()
199
+ logger.info(f"🎯 Target projects: {', '.join(project_ids)}")
200
+ except ValueError as e:
201
+ logger.error(f"❌ Configuration error: {e}")
202
+ sys.exit(1)
203
+
204
+ total_deleted = 0
205
+ total_found = 0
206
+ failed_projects = []
207
+
208
+ for project_id in project_ids:
209
+ try:
210
+ deleted_count, found_count = delete_agent_engines_in_project(project_id)
211
+ total_deleted += deleted_count
212
+ total_found += found_count
213
+ except Exception as e:
214
+ logger.error(f"❌ Failed to process project {project_id}: {e}")
215
+ failed_projects.append(project_id)
216
+
217
+ # Summary
218
+ logger.info("\n" + "=" * 60)
219
+ logger.info("📊 CLEANUP SUMMARY")
220
+ logger.info("=" * 60)
221
+ logger.info(f"🎯 Total Agent Engine services found: {total_found}")
222
+ logger.info(f"✅ Total Agent Engine services deleted: {total_deleted}")
223
+ logger.info(f"❌ Failed deletions: {total_found - total_deleted}")
224
+ logger.info(
225
+ f"📁 Projects processed: {len(project_ids) - len(failed_projects)}/{len(project_ids)}"
226
+ )
227
+
228
+ if failed_projects:
229
+ logger.warning(f"⚠️ Failed to process projects: {', '.join(failed_projects)}")
230
+ sys.exit(1)
231
+ elif total_found > total_deleted:
232
+ logger.warning(
233
+ f"⚠️ Some Agent Engine services could not be deleted ({total_found - total_deleted} failures)"
234
+ )
235
+ sys.exit(1)
236
+ else:
237
+ logger.info("🎉 All projects processed successfully!")
238
+ sys.exit(0)
239
+
240
+
241
+ if __name__ == "__main__":
242
+ main()
@@ -11,7 +11,7 @@ resolution-markers = [
11
11
 
12
12
  [[package]]
13
13
  name = "agent-starter-pack"
14
- version = "0.11.1"
14
+ version = "0.11.2"
15
15
  source = { editable = "." }
16
16
  dependencies = [
17
17
  { name = "backoff" },