agent-starter-pack 0.11.1__tar.gz → 0.12.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.
Files changed (293) hide show
  1. agent_starter_pack-0.12.0/.claude/settings.local.json +10 -0
  2. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/.cloudbuild/ci/lint.yaml +1 -1
  3. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/.cloudbuild/ci/test_templated_agents.yaml +1 -1
  4. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/.cloudbuild/terraform/build_triggers.tf +3 -3
  5. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/Makefile +1 -1
  6. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/PKG-INFO +1 -1
  7. agent_starter_pack-0.12.0/agents/adk_base/app/__init__.py +17 -0
  8. {agent_starter_pack-0.11.1/agents/agentic_rag → agent_starter_pack-0.12.0/agents/adk_base}/notebooks/adk_app_testing.ipynb +4 -1
  9. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/agents/adk_base/tests/integration/test_agent.py +1 -1
  10. agent_starter_pack-0.12.0/agents/agentic_rag/app/__init__.py +17 -0
  11. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/agents/agentic_rag/app/agent.py +2 -2
  12. {agent_starter_pack-0.11.1/agents/adk_base → agent_starter_pack-0.12.0/agents/agentic_rag}/notebooks/adk_app_testing.ipynb +4 -1
  13. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/agents/agentic_rag/tests/integration/test_agent.py +2 -2
  14. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/agents/crewai_coding_crew/tests/integration/test_agent.py +1 -1
  15. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/agents/langgraph_base_react/tests/integration/test_agent.py +1 -1
  16. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/agents/live_api/tests/unit/test_server.py +6 -6
  17. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/docs/cli/create.md +6 -0
  18. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/docs/guide/development-guide.md +31 -12
  19. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/docs/guide/getting-started.md +1 -1
  20. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/docs/guide/template-config-reference.md +10 -2
  21. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/docs/remote-templates/creating-remote-templates.md +23 -1
  22. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/llm.txt +15 -4
  23. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/pyproject.toml +6 -5
  24. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/base_template/Makefile +5 -5
  25. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/base_template/README.md +4 -4
  26. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/dev/variables.tf +3 -2
  27. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/iam.tf +10 -34
  28. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/variables.tf +3 -3
  29. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}build_triggers.tf{% else %}unused_build_triggers.tf{% endif %} +2 -2
  30. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/base_template/pyproject.toml +2 -2
  31. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/base_template/{% if cookiecutter.cicd_runner == 'github_actions' %}.github{% else %}unused_github{% endif %}/workflows/deploy-to-prod.yaml +1 -1
  32. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/base_template/{% if cookiecutter.cicd_runner == 'github_actions' %}.github{% else %}unused_github{% endif %}/workflows/pr_checks.yaml +1 -1
  33. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/base_template/{% if cookiecutter.cicd_runner == 'github_actions' %}.github{% else %}unused_github{% endif %}/workflows/staging.yaml +2 -2
  34. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/base_template/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}.cloudbuild{% else %}unused_.cloudbuild{% endif %}/deploy-to-prod.yaml +1 -1
  35. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/base_template/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}.cloudbuild{% else %}unused_.cloudbuild{% endif %}/staging.yaml +1 -1
  36. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/cli/commands/create.py +25 -2
  37. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/cli/commands/enhance.py +94 -15
  38. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/cli/commands/setup_cicd.py +50 -41
  39. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/cli/utils/template.py +120 -41
  40. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/deployment_targets/agent_engine/tests/integration/test_agent_engine_app.py +3 -3
  41. {agent_starter_pack-0.11.1/src/deployment_targets/agent_engine/app → agent_starter_pack-0.12.0/src/deployment_targets/agent_engine/{{cookiecutter.agent_directory}}}/agent_engine_app.py +10 -10
  42. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/deployment_targets/cloud_run/Dockerfile +2 -2
  43. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/deployment_targets/cloud_run/tests/integration/test_server_e2e.py +3 -3
  44. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/deployment_targets/cloud_run/tests/load_test/README.md +1 -1
  45. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/deployment_targets/cloud_run/tests/load_test/load_test.py +2 -2
  46. {agent_starter_pack-0.11.1/agents/live_api/app → agent_starter_pack-0.12.0/src/deployment_targets/cloud_run/{{cookiecutter.agent_directory}}}/server.py +186 -7
  47. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/resources/docs/adk-cheatsheet.md +3 -3
  48. agent_starter_pack-0.12.0/tests/cicd/scripts/delete_agent_engines.py +242 -0
  49. agent_starter_pack-0.12.0/tests/cicd/scripts/delete_alloydb_clusters.py +399 -0
  50. agent_starter_pack-0.12.0/tests/cicd/scripts/delete_vector_search.py +400 -0
  51. agent_starter_pack-0.12.0/tests/cli/commands/test_enhance.py +282 -0
  52. agent_starter_pack-0.12.0/tests/integration/test_agent_directory_functionality.py +447 -0
  53. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/uv.lock +1 -1
  54. agent_starter_pack-0.11.1/.claude/settings.local.json +0 -20
  55. agent_starter_pack-0.11.1/src/base_template/app/__init__.py +0 -3
  56. agent_starter_pack-0.11.1/src/deployment_targets/cloud_run/app/server.py +0 -206
  57. agent_starter_pack-0.11.1/src/frontends/adk_gemini_fullstack/frontend/components.json +0 -21
  58. agent_starter_pack-0.11.1/src/frontends/adk_gemini_fullstack/frontend/eslint.config.js +0 -28
  59. agent_starter_pack-0.11.1/src/frontends/adk_gemini_fullstack/frontend/index.html +0 -12
  60. agent_starter_pack-0.11.1/src/frontends/adk_gemini_fullstack/frontend/package-lock.json +0 -6105
  61. agent_starter_pack-0.11.1/src/frontends/adk_gemini_fullstack/frontend/package.json +0 -47
  62. agent_starter_pack-0.11.1/src/frontends/adk_gemini_fullstack/frontend/src/App.tsx +0 -564
  63. agent_starter_pack-0.11.1/src/frontends/adk_gemini_fullstack/frontend/src/components/ActivityTimeline.tsx +0 -244
  64. agent_starter_pack-0.11.1/src/frontends/adk_gemini_fullstack/frontend/src/components/ChatMessagesView.tsx +0 -420
  65. agent_starter_pack-0.11.1/src/frontends/adk_gemini_fullstack/frontend/src/components/InputForm.tsx +0 -60
  66. agent_starter_pack-0.11.1/src/frontends/adk_gemini_fullstack/frontend/src/components/WelcomeScreen.tsx +0 -56
  67. agent_starter_pack-0.11.1/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/badge.tsx +0 -46
  68. agent_starter_pack-0.11.1/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/button.tsx +0 -59
  69. agent_starter_pack-0.11.1/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/card.tsx +0 -92
  70. agent_starter_pack-0.11.1/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/input.tsx +0 -21
  71. agent_starter_pack-0.11.1/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/scroll-area.tsx +0 -56
  72. agent_starter_pack-0.11.1/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/select.tsx +0 -183
  73. agent_starter_pack-0.11.1/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/tabs.tsx +0 -64
  74. agent_starter_pack-0.11.1/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/textarea.tsx +0 -18
  75. agent_starter_pack-0.11.1/src/frontends/adk_gemini_fullstack/frontend/src/global.css +0 -154
  76. agent_starter_pack-0.11.1/src/frontends/adk_gemini_fullstack/frontend/src/main.tsx +0 -13
  77. agent_starter_pack-0.11.1/src/frontends/adk_gemini_fullstack/frontend/src/utils.ts +0 -7
  78. agent_starter_pack-0.11.1/src/frontends/adk_gemini_fullstack/frontend/src/vite-env.d.ts +0 -1
  79. agent_starter_pack-0.11.1/src/frontends/adk_gemini_fullstack/frontend/tsconfig.json +0 -28
  80. agent_starter_pack-0.11.1/src/frontends/adk_gemini_fullstack/frontend/tsconfig.node.json +0 -24
  81. agent_starter_pack-0.11.1/src/frontends/adk_gemini_fullstack/frontend/vite.config.ts +0 -41
  82. agent_starter_pack-0.11.1/tests/cli/commands/test_enhance.py +0 -142
  83. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/.cloudbuild/cd/test_e2e.yaml +0 -0
  84. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/.cloudbuild/ci/build_use_wheel.yaml +0 -0
  85. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/.cloudbuild/ci/lint_templated_agents.yaml +0 -0
  86. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/.cloudbuild/ci/test.yaml +0 -0
  87. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/.cloudbuild/ci/test_makefile.yaml +0 -0
  88. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/.cloudbuild/ci/test_pipeline_parity.yaml +0 -0
  89. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/.cloudbuild/ci/test_remote_template.yaml +0 -0
  90. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/.cloudbuild/terraform/apis.tf +0 -0
  91. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/.cloudbuild/terraform/service_account.tf +0 -0
  92. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/.cloudbuild/terraform/storage.tf +0 -0
  93. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/.cloudbuild/terraform/variables.tf +0 -0
  94. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/.github/workflows/docs.yml +0 -0
  95. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/.gitignore +0 -0
  96. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/CLAUDE.md +0 -0
  97. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/CODE_OF_CONDUCT.md +0 -0
  98. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/CONTRIBUTING.md +0 -0
  99. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/GEMINI.md +0 -0
  100. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/LICENSE +0 -0
  101. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/README.md +0 -0
  102. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/agents/README.md +0 -0
  103. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/agents/adk_base/.template/templateconfig.yaml +0 -0
  104. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/agents/adk_base/README.md +0 -0
  105. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/agents/adk_base/app/agent.py +0 -0
  106. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/agents/adk_base/notebooks/evaluating_adk_agent.ipynb +0 -0
  107. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/agents/agentic_rag/.template/templateconfig.yaml +0 -0
  108. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/agents/agentic_rag/README.md +0 -0
  109. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/agents/agentic_rag/app/retrievers.py +0 -0
  110. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/agents/agentic_rag/app/templates.py +0 -0
  111. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/agents/agentic_rag/notebooks/evaluating_adk_agent.ipynb +0 -0
  112. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/agents/crewai_coding_crew/.template/templateconfig.yaml +0 -0
  113. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/agents/crewai_coding_crew/README.md +0 -0
  114. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/agents/crewai_coding_crew/app/agent.py +0 -0
  115. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/agents/crewai_coding_crew/app/crew/config/agents.yaml +0 -0
  116. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/agents/crewai_coding_crew/app/crew/config/tasks.yaml +0 -0
  117. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/agents/crewai_coding_crew/app/crew/crew.py +0 -0
  118. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/agents/crewai_coding_crew/notebooks/evaluating_crewai_agent.ipynb +0 -0
  119. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/agents/crewai_coding_crew/notebooks/evaluating_langgraph_agent.ipynb +0 -0
  120. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/agents/langgraph_base_react/.template/templateconfig.yaml +0 -0
  121. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/agents/langgraph_base_react/README.md +0 -0
  122. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/agents/langgraph_base_react/app/agent.py +0 -0
  123. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/agents/langgraph_base_react/notebooks/evaluating_langgraph_agent.ipynb +0 -0
  124. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/agents/live_api/.template/templateconfig.yaml +0 -0
  125. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/agents/live_api/README.md +0 -0
  126. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/agents/live_api/app/agent.py +0 -0
  127. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/agents/live_api/tests/integration/test_server_e2e.py +0 -0
  128. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/agents/live_api/tests/load_test/load_test.py +0 -0
  129. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/docs/.vitepress/config.js +0 -0
  130. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/docs/agents/overview.md +0 -0
  131. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/docs/cli/enhance.md +0 -0
  132. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/docs/cli/index.md +0 -0
  133. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/docs/cli/list.md +0 -0
  134. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/docs/cli/setup_cicd.md +0 -0
  135. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/docs/guide/data-ingestion.md +0 -0
  136. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/docs/guide/deploy-ui.md +0 -0
  137. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/docs/guide/deployment.md +0 -0
  138. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/docs/guide/installation.md +0 -0
  139. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/docs/guide/observability.md +0 -0
  140. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/docs/guide/troubleshooting.md +0 -0
  141. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/docs/guide/video-tutorials.md +0 -0
  142. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/docs/guide/why_starter_pack.md +0 -0
  143. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/docs/images/adk_gemini_fullstack.gif +0 -0
  144. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/docs/images/adk_gemini_fullstack_architecture.png +0 -0
  145. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/docs/images/adk_logo.png +0 -0
  146. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/docs/images/agent_starter_pack_screenshot.png +0 -0
  147. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/docs/images/ags_high_level_architecture.png +0 -0
  148. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/docs/images/icon.png +0 -0
  149. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/docs/images/logo.png +0 -0
  150. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/docs/images/prototype_to_prod.png +0 -0
  151. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/docs/images/why_sp_edited.png +0 -0
  152. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/docs/images/why_starter_pack.png +0 -0
  153. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/docs/index.md +0 -0
  154. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/docs/package-lock.json +0 -0
  155. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/docs/package.json +0 -0
  156. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/docs/remote-templates/index.md +0 -0
  157. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/docs/remote-templates/using-remote-templates.md +0 -0
  158. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/base_template/.gitignore +0 -0
  159. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/base_template/GEMINI.md +0 -0
  160. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/base_template/deployment/README.md +0 -0
  161. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/apis.tf +0 -0
  162. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/dev/apis.tf +0 -0
  163. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/dev/iam.tf +0 -0
  164. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/dev/log_sinks.tf +0 -0
  165. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/dev/providers.tf +0 -0
  166. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/dev/storage.tf +0 -0
  167. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/dev/vars/env.tfvars +0 -0
  168. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/github.tf +0 -0
  169. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/locals.tf +0 -0
  170. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/log_sinks.tf +0 -0
  171. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/providers.tf +0 -0
  172. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/service_accounts.tf +0 -0
  173. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/storage.tf +0 -0
  174. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/vars/env.tfvars +0 -0
  175. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/{% if cookiecutter.cicd_runner == 'github_actions' %}wif.tf{% else %}unused_wif.tf{% endif %} +0 -0
  176. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/base_template/tests/unit/test_dummy.py +0 -0
  177. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/base_template/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}.cloudbuild{% else %}unused_.cloudbuild{% endif %}/pr_checks.yaml +0 -0
  178. {agent_starter_pack-0.11.1/src/base_template/app → agent_starter_pack-0.12.0/src/base_template/{{cookiecutter.agent_directory}}}/utils/gcs.py +0 -0
  179. {agent_starter_pack-0.11.1/src/base_template/app → agent_starter_pack-0.12.0/src/base_template/{{cookiecutter.agent_directory}}}/utils/tracing.py +0 -0
  180. {agent_starter_pack-0.11.1/src/base_template/app → agent_starter_pack-0.12.0/src/base_template/{{cookiecutter.agent_directory}}}/utils/typing.py +0 -0
  181. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/cli/commands/list.py +1 -1
  182. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/cli/main.py +0 -0
  183. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/cli/utils/__init__.py +0 -0
  184. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/cli/utils/cicd.py +0 -0
  185. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/cli/utils/datastores.py +0 -0
  186. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/cli/utils/gcp.py +0 -0
  187. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/cli/utils/logging.py +0 -0
  188. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/cli/utils/remote_template.py +1 -1
  189. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/cli/utils/version.py +0 -0
  190. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/data_ingestion/README.md +0 -0
  191. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/data_ingestion/data_ingestion_pipeline/components/ingest_data.py +0 -0
  192. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/data_ingestion/data_ingestion_pipeline/components/process_data.py +0 -0
  193. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/data_ingestion/data_ingestion_pipeline/pipeline.py +0 -0
  194. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/data_ingestion/data_ingestion_pipeline/submit_pipeline.py +0 -0
  195. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/data_ingestion/pyproject.toml +0 -0
  196. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/data_ingestion/uv.lock +0 -0
  197. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/deployment_targets/agent_engine/deployment_metadata.json +0 -0
  198. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/deployment_targets/agent_engine/notebooks/intro_agent_engine.ipynb +0 -0
  199. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/deployment_targets/agent_engine/tests/load_test/.results/.placeholder +0 -0
  200. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/deployment_targets/agent_engine/tests/load_test/README.md +0 -0
  201. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/deployment_targets/agent_engine/tests/load_test/load_test.py +0 -0
  202. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/deployment_targets/cloud_run/deployment/terraform/dev/service.tf +0 -0
  203. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/deployment_targets/cloud_run/deployment/terraform/service.tf +0 -0
  204. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/deployment_targets/cloud_run/tests/load_test/.results/.placeholder +0 -0
  205. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/package-lock.json +0 -0
  206. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/package.json +0 -0
  207. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/public/favicon.ico +0 -0
  208. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/public/index.html +0 -0
  209. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/public/robots.txt +0 -0
  210. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/App.scss +0 -0
  211. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/App.test.tsx +0 -0
  212. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/App.tsx +0 -0
  213. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/components/audio-pulse/AudioPulse.tsx +0 -0
  214. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/components/audio-pulse/audio-pulse.scss +0 -0
  215. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/components/control-tray/ControlTray.tsx +0 -0
  216. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/components/control-tray/control-tray.scss +0 -0
  217. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/components/logger/Logger.tsx +0 -0
  218. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/components/logger/logger.scss +0 -0
  219. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/components/logger/mock-logs.ts +0 -0
  220. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/components/side-panel/SidePanel.tsx +0 -0
  221. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/components/side-panel/side-panel.scss +0 -0
  222. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/contexts/LiveAPIContext.tsx +0 -0
  223. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/hooks/use-live-api.ts +0 -0
  224. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/hooks/use-media-stream-mux.ts +0 -0
  225. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/hooks/use-screen-capture.ts +0 -0
  226. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/hooks/use-webcam.ts +0 -0
  227. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/index.css +0 -0
  228. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/index.tsx +0 -0
  229. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/multimodal-live-types.ts +0 -0
  230. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/react-app-env.d.ts +0 -0
  231. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/reportWebVitals.ts +0 -0
  232. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/setupTests.ts +0 -0
  233. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/utils/audio-recorder.ts +0 -0
  234. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/utils/audio-streamer.ts +0 -0
  235. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/utils/audioworklet-registry.ts +0 -0
  236. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/utils/multimodal-live-client.ts +0 -0
  237. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/utils/store-logger.ts +0 -0
  238. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/utils/utils.ts +0 -0
  239. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/utils/worklets/audio-processing.ts +0 -0
  240. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/utils/worklets/vol-meter.ts +0 -0
  241. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/tsconfig.json +0 -0
  242. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/streamlit/frontend/side_bar.py +0 -0
  243. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/streamlit/frontend/streamlit_app.py +0 -0
  244. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/streamlit/frontend/style/app_markdown.py +0 -0
  245. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/streamlit/frontend/utils/chat_utils.py +0 -0
  246. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/streamlit/frontend/utils/local_chat_history.py +0 -0
  247. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/streamlit/frontend/utils/message_editing.py +0 -0
  248. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/streamlit/frontend/utils/multimodal_utils.py +0 -0
  249. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/streamlit/frontend/utils/stream_handler.py +0 -0
  250. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/frontends/streamlit/frontend/utils/title_summary.py +0 -0
  251. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/resources/containers/data_processing/Dockerfile +0 -0
  252. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/resources/containers/e2e-tests/Dockerfile +0 -0
  253. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/resources/idx/.idx/dev.nix +0 -0
  254. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/resources/idx/idx-template.json +0 -0
  255. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/resources/idx/idx-template.nix +0 -0
  256. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/resources/locks/uv-adk_base-agent_engine.lock +0 -0
  257. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/resources/locks/uv-adk_base-cloud_run.lock +0 -0
  258. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/resources/locks/uv-adk_gemini_fullstack-agent_engine.lock +0 -0
  259. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/resources/locks/uv-adk_gemini_fullstack-cloud_run.lock +0 -0
  260. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/resources/locks/uv-agentic_rag-agent_engine.lock +0 -0
  261. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/resources/locks/uv-agentic_rag-cloud_run.lock +0 -0
  262. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/resources/locks/uv-crewai_coding_crew-agent_engine.lock +0 -0
  263. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/resources/locks/uv-crewai_coding_crew-cloud_run.lock +0 -0
  264. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/resources/locks/uv-langgraph_base_react-agent_engine.lock +0 -0
  265. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/resources/locks/uv-langgraph_base_react-cloud_run.lock +0 -0
  266. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/resources/locks/uv-live_api-cloud_run.lock +0 -0
  267. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/utils/generate_locks.py +0 -0
  268. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/utils/lock_utils.py +0 -0
  269. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/src/utils/watch_and_rebuild.py +0 -0
  270. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/tests/__init__.py +0 -0
  271. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/tests/cicd/example.env +0 -0
  272. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/tests/cicd/test_e2e_deployment.py +0 -0
  273. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/tests/cli/commands/test_create.py +0 -0
  274. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/tests/cli/commands/test_create_local.py +0 -0
  275. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/tests/cli/commands/test_list.py +0 -0
  276. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/tests/cli/commands/test_setup_cicd.py +0 -0
  277. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/tests/cli/utils/test_cicd.py +0 -0
  278. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/tests/cli/utils/test_remote_template.py +0 -0
  279. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/tests/integration/test_makefile_usability.py +0 -0
  280. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/tests/integration/test_pipeline_parity.py +0 -0
  281. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/tests/integration/test_remote_templating.py +0 -0
  282. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/tests/integration/test_template_linting.py +0 -0
  283. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/tests/integration/test_templated_patterns.py +0 -0
  284. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/tests/integration/utils.py +0 -0
  285. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/tests/test_frontend/test_side_bar.py +0 -0
  286. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/tests/test_frontend/test_streamlit_app.py +0 -0
  287. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/tests/test_frontend/test_utils/test_chat_utils.py +0 -0
  288. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/tests/test_frontend/test_utils/test_local_chat_history.py +0 -0
  289. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/tests/test_frontend/test_utils/test_message_editing.py +0 -0
  290. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/tests/test_frontend/test_utils/test_multimodal_utils.py +0 -0
  291. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/tests/test_frontend/test_utils/test_stream_handler.py +0 -0
  292. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/tests/utils/__init__.py +0 -0
  293. {agent_starter_pack-0.11.1 → agent_starter_pack-0.12.0}/tests/utils/get_agents.py +0 -0
@@ -0,0 +1,10 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(PROJECT_IDS=agent-starter-pack-e2e-dev,agent-starter-pack-e2e-st,agent-starter-pack-e2e-pr python tests/cicd/scripts/delete_vector_search.py)",
5
+ "Bash(make lint)"
6
+ ],
7
+ "deny": [],
8
+ "ask": []
9
+ }
10
+ }
@@ -32,7 +32,7 @@ steps:
32
32
  set -e
33
33
  uv run ruff check . --config pyproject.toml --diff
34
34
  uv run ruff format . --check --config pyproject.toml --diff
35
- uv run mypy --config-file pyproject.toml ./agents ./src/cli ./tests ./src/frontends/streamlit
35
+ uv run mypy --config-file pyproject.toml ./src/cli ./tests ./src/frontends/streamlit
36
36
 
37
37
  logsBucket: gs://${PROJECT_ID}-logs-data/build-logs
38
38
  options:
@@ -35,4 +35,4 @@ logsBucket: gs://${PROJECT_ID}-logs-data/build-logs
35
35
  options:
36
36
  defaultLogsBucketBehavior: REGIONAL_USER_OWNED_BUCKET
37
37
  env:
38
- - "_TEST_AGENT_COMBINATION=${_TEST_AGENT_COMBINATION}"
38
+ - "_TEST_AGENT_COMBINATION=live_api,cloud_run"
@@ -72,7 +72,7 @@ locals {
72
72
  },
73
73
  {
74
74
  name = "langgraph_base_react-cloud_run"
75
- value = "langgraph_base_react,cloud_run"
75
+ value = "langgraph_base_react,cloud_run,-dir,tag"
76
76
  },
77
77
  {
78
78
  name = "crewai_coding_crew-agent_engine"
@@ -134,11 +134,11 @@ agent_testing_included_files = { for combo in local.agent_testing_combinations :
134
134
  },
135
135
  {
136
136
  name = "adk_base-agent_engine"
137
- value = "adk_base,agent_engine"
137
+ value = "adk_base,agent_engine,-dir,tag"
138
138
  },
139
139
  {
140
140
  name = "adk_base-cloud_run"
141
- value = "adk_base,cloud_run"
141
+ value = "adk_base,cloud_run,-dir,tag"
142
142
  },
143
143
  {
144
144
  name = "langgraph_base_react-agent_engine"
@@ -13,7 +13,7 @@ generate-lock:
13
13
  lint:
14
14
  uv run ruff check . --config pyproject.toml --diff
15
15
  uv run ruff format . --check --config pyproject.toml --diff
16
- uv run mypy --config-file pyproject.toml ./agents ./src/cli ./tests ./src/frontends/streamlit
16
+ uv run mypy --config-file pyproject.toml ./src/cli ./tests ./src/frontends/streamlit
17
17
 
18
18
  lint-templated-agents:
19
19
  uv run tests/integration/test_template_linting.py
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent-starter-pack
3
- Version: 0.11.1
3
+ Version: 0.12.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
@@ -0,0 +1,17 @@
1
+ # Copyright 2025 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ from .agent import root_agent
16
+
17
+ __all__ = ["root_agent"]
@@ -9,7 +9,10 @@
9
9
  "This notebook demonstrates how to test an ADK (Agent Development Kit) application.\n",
10
10
  "It covers both local and remote testing, both with Agent Engine and Cloud Run.\n",
11
11
  "\n",
12
- "<img src=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/blob/main/docs/images/adk_logo.png?raw=true\" width=\"400\">\n"
12
+ "> **Note**: This notebook assumes that the agent files are stored in the `app` folder. If your agent files are located in a different directory, please update all relevant file paths and references accordingly.\n",
13
+ "\n",
14
+ "<img src=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/blob/main/docs/images/adk_logo.png?raw=true\" width=\"400\">\n",
15
+ "\n"
13
16
  ]
14
17
  },
15
18
  {
@@ -18,7 +18,7 @@ from google.adk.runners import Runner
18
18
  from google.adk.sessions import InMemorySessionService
19
19
  from google.genai import types
20
20
 
21
- from app.agent import root_agent
21
+ from {{cookiecutter.agent_directory}}.agent import root_agent
22
22
 
23
23
 
24
24
  def test_agent_stream() -> None:
@@ -0,0 +1,17 @@
1
+ # Copyright 2025 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ from .agent import root_agent
16
+
17
+ __all__ = ["root_agent"]
@@ -20,8 +20,8 @@ import vertexai
20
20
  from google.adk.agents import Agent
21
21
  from langchain_google_vertexai import VertexAIEmbeddings
22
22
 
23
- from app.retrievers import get_compressor, get_retriever
24
- from app.templates import format_docs
23
+ from {{cookiecutter.agent_directory}}.retrievers import get_compressor, get_retriever
24
+ from {{cookiecutter.agent_directory}}.templates import format_docs
25
25
 
26
26
  EMBEDDING_MODEL = "text-embedding-005"
27
27
  LLM_LOCATION = "global"
@@ -9,7 +9,10 @@
9
9
  "This notebook demonstrates how to test an ADK (Agent Development Kit) application.\n",
10
10
  "It covers both local and remote testing, both with Agent Engine and Cloud Run.\n",
11
11
  "\n",
12
- "<img src=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/blob/main/docs/images/adk_logo.png?raw=true\" width=\"400\">\n"
12
+ "> **Note**: This notebook assumes that the agent files are stored in the `app` folder. If your agent files are located in a different directory, please update all relevant file paths and references accordingly.\n",
13
+ "\n",
14
+ "<img src=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/blob/main/docs/images/adk_logo.png?raw=true\" width=\"400\">\n",
15
+ "\n"
13
16
  ]
14
17
  },
15
18
  {
@@ -20,11 +20,11 @@ from google.adk.runners import Runner
20
20
  from google.adk.sessions import InMemorySessionService
21
21
  from google.genai import types
22
22
 
23
- from app.agent import root_agent
23
+ from {{cookiecutter.agent_directory}}.agent import root_agent
24
24
 
25
25
 
26
26
  @patch(
27
- "app.agent.retrieve_docs",
27
+ "{{cookiecutter.agent_directory}}.agent.retrieve_docs",
28
28
  return_value="dummy content",
29
29
  )
30
30
  def test_agent_stream(mock_retrieve: MagicMock) -> None:
@@ -13,7 +13,7 @@
13
13
  # limitations under the License.
14
14
 
15
15
  # mypy: ignore-errors
16
- from app.agent import agent
16
+ from {{cookiecutter.agent_directory}}.agent import agent
17
17
 
18
18
 
19
19
  def test_agent_stream() -> None:
@@ -13,7 +13,7 @@
13
13
  # limitations under the License.
14
14
 
15
15
  # mypy: ignore-errors
16
- from app.agent import agent
16
+ from {{cookiecutter.agent_directory}}.agent import agent
17
17
 
18
18
 
19
19
  def test_agent_stream() -> None:
@@ -57,8 +57,8 @@ def mock_dependencies() -> Generator[None, None, None]:
57
57
  Patches genai client and tool functions.
58
58
  """
59
59
  with (
60
- patch("app.server.genai_client") as mock_genai,
61
- patch("app.server.tool_functions") as mock_tools,
60
+ patch("{{cookiecutter.agent_directory}}.server.genai_client") as mock_genai,
61
+ patch("{{cookiecutter.agent_directory}}.server.tool_functions") as mock_tools,
62
62
  ):
63
63
  mock_genai.aio.live.connect = AsyncMock()
64
64
  mock_tools.return_value = {}
@@ -71,7 +71,7 @@ async def test_websocket_endpoint() -> None:
71
71
  Test the websocket endpoint to ensure it correctly handles
72
72
  websocket connections and messages.
73
73
  """
74
- from app.server import app
74
+ from {{cookiecutter.agent_directory}}.server import app
75
75
 
76
76
  mock_session = AsyncMock()
77
77
  mock_session._ws = AsyncMock()
@@ -90,7 +90,7 @@ async def test_websocket_endpoint() -> None:
90
90
  None, # Add None to trigger StopAsyncIteration after first message
91
91
  ]
92
92
 
93
- with patch("app.server.genai_client") as mock_genai:
93
+ with patch("{{cookiecutter.agent_directory}}.server.genai_client") as mock_genai:
94
94
  mock_genai.aio.live.connect.return_value.__aenter__.return_value = mock_session
95
95
  client = TestClient(app)
96
96
  with client.websocket_connect("/ws") as websocket:
@@ -132,9 +132,9 @@ async def test_websocket_endpoint() -> None:
132
132
  @pytest.mark.asyncio
133
133
  def test_websocket_error_handling() -> None:
134
134
  """Test websocket error handling."""
135
- from app.server import app
135
+ from {{cookiecutter.agent_directory}}.server import app
136
136
 
137
- with patch("app.server.genai_client") as mock_genai:
137
+ with patch("{{cookiecutter.agent_directory}}.server.genai_client") as mock_genai:
138
138
  mock_genai.aio.live.connect.side_effect = Exception("Connection failed")
139
139
 
140
140
  client = TestClient(app)
@@ -78,6 +78,9 @@ Session storage type (for Cloud Run deployment):
78
78
  ### `--output-dir`, `-o` DIRECTORY
79
79
  Output directory for the project (default: current directory)
80
80
 
81
+ ### `--agent-directory`, `-dir` DIRECTORY
82
+ Name of the agent directory (overrides template default, usually `app`). This determines where your agent code files will be located within the project structure.
83
+
81
84
  ### `--in-folder`
82
85
  Create agent files directly in the current directory instead of creating a new project subdirectory.
83
86
 
@@ -151,6 +154,9 @@ uvx agent-starter-pack create my-agent -a template-url --region europe-west1 --c
151
154
  # In-folder creation (add to existing project)
152
155
  uvx agent-starter-pack create my-agent -a adk@data-science --in-folder
153
156
 
157
+ # Customize agent directory name
158
+ uvx agent-starter-pack create my-agent -a adk_base --agent-directory chatbot
159
+
154
160
  # Skip all prompts for automation
155
161
  uvx agent-starter-pack create my-agent -a template-url --auto-approve --skip-checks
156
162
  ```
@@ -38,7 +38,7 @@ cd my-awesome-agent
38
38
 
39
39
  Inside, you'll find a complete project structure:
40
40
 
41
- * `app/`: Backend agent code (prompts, tools, business logic).
41
+ * `app/`: Backend agent code (prompts, tools, business logic). Directory name is configurable via the `--agent-directory` parameter.
42
42
  * `.cloudbuild/`: CI/CD pipeline configurations for Google Cloud Build (if you selected Cloud Build as your CI/CD runner).
43
43
  * `.github/`: CI/CD pipeline configurations for GitHub Actions (if you selected GitHub Actions as your CI/CD runner).
44
44
  * `deployment/`: Terraform infrastructure-as-code files.
@@ -51,7 +51,7 @@ Inside, you'll find a complete project structure:
51
51
  Your development loop will look like this:
52
52
 
53
53
  1. **Prototype:** Use the notebooks in `notebooks/` for rapid experimentation with your agent's core logic. This is ideal for trying new prompts or tools before integrating them.
54
- 2. **Integrate:** Edit `app/agent.py` and other files in the `app/` directory to incorporate your new logic into the main application.
54
+ 2. **Integrate:** Edit `app/agent.py` and other files in the agent directory (usually `app/`, but configurable) to incorporate your new logic into the main application.
55
55
  3. **Test:** Run the interactive UI playground to test your changes. It features hot-reloading, chat history, and user feedback.
56
56
 
57
57
  ```bash
@@ -62,28 +62,46 @@ make install && make playground
62
62
 
63
63
  ## 2. Deploy to the Cloud
64
64
 
65
- Once you're satisfied with local testing, you are ready to deploy your agent to Google Cloud.
65
+ Once you're satisfied with local testing, you are ready to deploy your agent to Google Cloud. The process involves two main stages: first, deploying to a hands-on development environment for quick iteration, and second, setting up a formal CI/CD pipeline for staging and production.
66
+
66
67
  *All `make` commands should be run from the root of your agent project (`my-awesome-agent`).*
67
- ### A. Cloud Development Environment Setup
68
- First, provision a non-production environment in the cloud for remote testing.
68
+
69
+ ### Stage 1: Deploy to a Cloud Development Environment
70
+
71
+ This initial stage is for provisioning a non-production environment in the cloud for remote testing and iteration.
72
+
69
73
  **i. Set Google Cloud Project**
74
+
70
75
  Configure `gcloud` to target your development project.
71
76
  ```bash
72
77
  # Replace YOUR_DEV_PROJECT_ID with your actual Google Cloud Project ID
73
78
  gcloud config set project YOUR_DEV_PROJECT_ID
74
79
  ```
80
+
75
81
  **ii. Provision Cloud Resources**
76
- This command uses Terraform to set up necessary cloud resources for your dev environment.
82
+
83
+ This command uses Terraform to set up the necessary cloud resources for your dev environment.
84
+
85
+ ::: tip Optional Step
86
+ This step is recommended to create a development environment that closely mirrors production (including dedicated service accounts and IAM permissions). However, for simple deployments, you can consider this step optional and proceed directly to deploying the backend if you have sufficient permissions.
87
+ :::
88
+
77
89
  ```bash
78
90
  make setup-dev-env
79
91
  ```
92
+
80
93
  **iii. Deploy Agent Backend**
94
+
81
95
  Build and deploy your agent's backend to the dev environment.
82
96
  ```bash
83
97
  make backend
84
98
  ```
85
99
 
86
- ### Option 1: Automated CI/CD Setup
100
+ ### Stage 2: Set Up the Path to Production with CI/CD
101
+
102
+ Once you've refined your agent in the development environment, the next stage is to set up a fully automated CI/CD pipeline for seamless deployment through staging and into production.
103
+
104
+ #### Option 1: Automated CI/CD Setup
87
105
 
88
106
  From the root of your agent project (`my-awesome-agent`), run:
89
107
  ```bash
@@ -92,17 +110,18 @@ agent-starter-pack setup-cicd
92
110
  This single command handles everything:
93
111
  - Creates a GitHub repository.
94
112
  - Connects it to your chosen CI/CD provider (Google Cloud Build or GitHub Actions).
95
- - Provisions all necessary infrastructure for your staging and production environments using Terraform.
113
+ - Provisions all necessary infrastructure for your **staging and production environments** using Terraform.
96
114
  - Configures the deployment triggers.
97
115
 
98
116
  For a detailed walkthrough, see the [**`setup-cicd` CLI reference**](../cli/setup_cicd).
99
117
 
100
- ### Option 2: Manual CI/CD Setup
118
+ #### Option 2: Manual CI/CD Setup
119
+
120
+ For full control or for use with other Git providers, refer to the [manual deployment setup guide](./deployment.md).
101
121
 
102
- For full control or for other Git providers, refer to the [manual deployment setup guide](./deployment.md).
122
+ #### Trigger Your First Deployment
103
123
 
104
- ### Trigger Your First Deployment
105
- After the CI/CD setup is complete, commit and push your code to trigger the pipeline.
124
+ After the CI/CD setup is complete, commit and push your code to trigger the pipeline. This will deploy your agent to the staging environment first.
106
125
  ```bash
107
126
  git add -A
108
127
  git config --global user.email "you@example.com" # If not already configured
@@ -55,7 +55,7 @@ cd my-awesome-agent && make install && make playground
55
55
 
56
56
  Inside your new project directory (`my-awesome-agent`), you'll find:
57
57
 
58
- * `app/`: Backend agent code.
58
+ * `app/`: Backend agent code (or custom directory name if configured).
59
59
  * `deployment/`: Terraform infrastructure code.
60
60
  * `tests/`: Unit and integration tests for your agent.
61
61
  * `notebooks/`: Jupyter notebooks for getting started with evaluation.
@@ -1,6 +1,13 @@
1
- # `templateconfig.yaml` Reference
1
+ # Template Configuration Reference
2
2
 
3
- This document provides a detailed reference for all the available fields in the `templateconfig.yaml` file. This file is used to configure both the built-in agents provided by the starter pack and your own remote templates.
3
+ This document provides a detailed reference for template configuration options.
4
+
5
+ ## Configuration Files
6
+
7
+ - **Built-in templates**: Use `templateconfig.yaml` files
8
+ - **Remote templates**: Configure settings in `pyproject.toml` under the `[tool.agent-starter-pack.settings]` section
9
+
10
+ The configuration fields are the same for both types of templates.
4
11
 
5
12
  ## Top-Level Fields
6
13
 
@@ -21,6 +28,7 @@ This object contains fields that control the generated project's features and be
21
28
  | `deployment_targets` | list(string) | A list of deployment targets your template supports. Options: `agent_engine`, `cloud_run`. |
22
29
  | `tags` | list(string) | A list of tags for categorization. The `adk` tag enables special integrations with the Agent Development Kit. |
23
30
  | `frontend_type` | string | Specifies the frontend to use. Examples: `streamlit`, `live_api_react`. Defaults to `streamlit`. |
31
+ | `agent_directory` | string | The name of the directory where agent code will be placed. Defaults to `app`. Can be overridden by the CLI `--agent-directory` parameter. |
24
32
  | `requires_data_ingestion` | boolean | If `true`, the user will be prompted to configure a datastore. |
25
33
  | `requires_session` | boolean | If `true`, the user will be prompted to choose a session storage type (e.g., `alloydb`) when using the `cloud_run` target. |
26
34
  | `interactive_command` | string | The `make` command to run for starting the agent, after the agent code is being created (e.g., `make playground`, `make dev`). Defaults to `playground`. |
@@ -61,6 +61,9 @@ description = "A simple template that demonstrates custom greetings"
61
61
  [tool.agent-starter-pack.settings]
62
62
  # This template will only support the 'agent_engine' deployment target
63
63
  deployment_targets = ["agent_engine"]
64
+ # Optional: Customize the directory name for agent files (default: "app")
65
+ agent_directory = "app"
66
+
64
67
  ```
65
68
 
66
69
  ### Step 3: Create Your Custom Agent Logic
@@ -150,6 +153,8 @@ description = "Custom description" # Optional: falls back to [project].descript
150
153
  [tool.agent-starter-pack.settings]
151
154
  deployment_targets = ["cloud_run", "agent_engine"]
152
155
  frontend_type = "adk_streamlit"
156
+ # Optional: Customize the directory name for agent files (default: "app")
157
+ agent_directory = "app"
153
158
  ```
154
159
 
155
160
  ## Configuration Reference
@@ -174,8 +179,25 @@ base_template = "adk_base" # Override default
174
179
  # name and description will use [project] values
175
180
  ```
176
181
 
182
+ ### Agent Directory Configuration
183
+
184
+ By default, agent files are expected to be in an `app/` directory. You can customize this using the `agent_directory` setting:
185
+
186
+ ```toml
187
+ [tool.agent-starter-pack.settings]
188
+ agent_directory = "my_agent" # Custom directory name
189
+ ```
190
+
191
+ This is useful when:
192
+ - You want to use a different directory name for consistency with your project structure
193
+ - You're creating specialized templates with domain-specific naming (e.g., `chatbot/`, `assistant/`, `agent/`)
194
+ - You need to avoid conflicts with existing codebases that use `app/` for other purposes
195
+
196
+ **Important:** When using a custom `agent_directory`, ensure your Python imports and Docker configurations match the new directory name.
197
+
177
198
  For complete configuration options, see the [Template Config Reference](../guide/template-config-reference.md).
178
199
 
200
+
179
201
  ## How File Merging Works
180
202
 
181
203
  When someone uses your template, files are copied and overlaid in this order (later steps overwrite earlier ones):
@@ -271,7 +293,7 @@ uvx agent-starter-pack create test-project -a local@./your-template --deployment
271
293
 
272
294
  Before publishing, verify:
273
295
  - [ ] `pyproject.toml` has all required dependencies
274
- - [ ] Agent code is in `/app` directory structure
296
+ - [ ] Agent code is in appropriate directory structure (usually `/app` or configured `agent_directory`)
275
297
  - [ ] `uv lock` generates without errors
276
298
  - [ ] Local testing creates working agent
277
299
  - [ ] README documents usage and requirements
@@ -74,6 +74,10 @@ agent-starter-pack create PROJECT_NAME [OPTIONS]
74
74
  * `--region`: GCP region (e.g., `us-central1`).
75
75
  * `--auto-approve`: **Skips all interactive prompts (crucial for automation).**
76
76
  * `--debug`: Enables debug logging during creation.
77
+ * `--agent-directory, -dir`: Name of the agent directory (overrides template default).
78
+ * `-o, --output-dir`: Output directory for the project (default: current directory).
79
+ * `--in-folder, -if`: Template files directly into the current directory instead of creating a new project directory.
80
+ * `--skip-checks`: Skip verification checks for GCP and Vertex AI.
77
81
 
78
82
  **Automated Creation Example:**
79
83
  ```bash
@@ -196,7 +200,7 @@ For stateful agents, the starter pack supports persistent sessions.
196
200
 
197
201
  ### Monitoring & Observability
198
202
  * **Technology:** Uses OpenTelemetry to emit events to Google Cloud Trace and Logging.
199
- * **Custom Tracer:** A custom tracer in `app/utils/tracing.py` handles large payloads by linking to GCS, overcoming default service limits.
203
+ * **Custom Tracer:** A custom tracer in `app/utils/tracing.py` (or a different agent directory instead of app) handles large payloads by linking to GCS, overcoming default service limits.
200
204
  * **Infrastructure:** A Log Router to sink data to BigQuery is provisioned by Terraform.
201
205
 
202
206
  ---
@@ -217,8 +221,16 @@ uvx agent-starter-pack setup-cicd [OPTIONS]
217
221
  * `--prod-project`: (REQUIRED) The Google Cloud Project ID for your production environment.
218
222
  * `--repository-name`: (REQUIRED) The name for the new GitHub repository that will be created.
219
223
  * `--repository-owner`: (REQUIRED) Your GitHub username or organization where the repo will be created.
220
- * `--git-provider`: (REQUIRED) The Git provider to use (github, gitlab, etc.). Only "github" is supported.
221
224
  * `--auto-approve`: Skips all interactive confirmation prompts.
225
+ * `--dev-project`: Development project ID (optional).
226
+ * `--cicd-project`: CICD project ID (defaults to prod project if not specified).
227
+ * `--region`: GCP region (auto-detects from Terraform vars if not specified).
228
+ * `--host-connection-name`: Host connection name (optional).
229
+ * `--github-pat`: GitHub Personal Access Token for programmatic auth.
230
+ * `--github-app-installation-id`: GitHub App Installation ID for programmatic auth.
231
+ * `--local-state`: Use local Terraform state instead of remote GCS backend.
232
+ * `--debug`: Enable debug logging.
233
+ * `--create-repository`: Flag indicating whether to create a new repository.
222
234
 
223
235
 
224
236
  **Automated Example:**
@@ -228,10 +240,9 @@ uvx agent-starter-pack setup-cicd \
228
240
  --prod-project the-user-prod-project \
229
241
  --repository-name the-user-repo-name \
230
242
  --repository-owner the-username \
231
- --git-provider github \
232
243
  --auto-approve
233
244
  ```
234
- * 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.
245
+ * 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`, and `--repository-owner`. Once you have these values, you can construct and run the command with the `--auto-approve` flag.
235
246
  * 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.
236
247
  ---
237
248
  ### Section 6: Operational Guidelines for Coding Agents
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "agent-starter-pack"
3
- version = "0.11.1"
3
+ version = "0.12.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" },
@@ -71,9 +71,9 @@ log_cli_date_format = "%Y-%m-%d %H:%M:%S"
71
71
 
72
72
  [tool.ruff]
73
73
  line-length = 88
74
- target-version = "py310"
75
- include = ["./agents/**/*.py", "src/cli/**/*.py", "tests/**/*.py", "src/frontends/streamlit/**/*.py"]
76
- exclude = ["./agents/agentic_rag/**/*.py"]
74
+ target-version = "py311"
75
+ include = ["src/cli/**/*.py", "tests/**/*.py", "src/frontends/streamlit/**/*.py"]
76
+ exclude = ["./agents/**/*.py", "./tests/cicd/scripts/**/*.py"]
77
77
 
78
78
  [tool.ruff.lint]
79
79
  preview = true
@@ -109,7 +109,8 @@ ignore_missing_imports = true
109
109
  explicit_package_bases = true
110
110
  disable_error_code = ["misc", "no-untyped-call", "no-any-return"]
111
111
  exclude = '''(?x)(
112
- ^agents/agentic_rag/.*$ # exclude all files under agentic_rag directory
112
+ ^agents/.*$ # exclude all files under agents
113
+ ^tests/cicd/scripts/.*$ # exclude cicd scripts
113
114
  )'''
114
115
 
115
116
  [tool.codespell]
@@ -34,14 +34,14 @@ playground:
34
34
  @echo "| 💡 Try asking: {{cookiecutter.example_question}}|"
35
35
  {%- if "adk" in cookiecutter.tags %}
36
36
  @echo "| |"
37
- @echo "| 🔍 IMPORTANT: Select the 'app' folder to interact with your agent. |"
37
+ @echo "| 🔍 IMPORTANT: Select the '{{cookiecutter.agent_directory}}' folder to interact with your agent. |"
38
38
  {%- endif %}
39
39
  @echo "==============================================================================="
40
40
  {%- if "adk" in cookiecutter.tags %}
41
- uv run adk web --port 8501
41
+ uv run adk web . --port 8501
42
42
  {%- else %}
43
43
  {%- if cookiecutter.deployment_target == 'cloud_run' %}
44
- uv run uvicorn app.server:app --host 0.0.0.0 --port 8000 --reload &
44
+ uv run uvicorn {{cookiecutter.agent_directory}}.server:app --host 0.0.0.0 --port 8000 --reload &
45
45
  {%- endif %}
46
46
  {%- if cookiecutter.agent_name == 'live_api' %}
47
47
  (cd frontend && PORT=8501 npm start)
@@ -73,13 +73,13 @@ backend:
73
73
  {%- elif cookiecutter.deployment_target == 'agent_engine' %}
74
74
  # Export dependencies to requirements file using uv export.
75
75
  uv export --no-hashes --no-header --no-dev --no-emit-project --no-annotate > .requirements.txt 2>/dev/null || \
76
- uv export --no-hashes --no-header --no-dev --no-emit-project > .requirements.txt && uv run app/agent_engine_app.py
76
+ uv export --no-hashes --no-header --no-dev --no-emit-project > .requirements.txt && uv run {{cookiecutter.agent_directory}}/agent_engine_app.py
77
77
  {%- endif %}
78
78
  {%- if cookiecutter.deployment_target == 'cloud_run' %}
79
79
 
80
80
  # Launch local development server with hot-reload
81
81
  local-backend:
82
- uv run uvicorn app.server:app --host 0.0.0.0 --port 8000 --reload
82
+ uv run uvicorn {{cookiecutter.agent_directory}}.server:app --host 0.0.0.0 --port 8000 --reload
83
83
  {%- endif %}
84
84
  {%- if cookiecutter.deployment_target == 'cloud_run' %}
85
85
  {%- if cookiecutter.agent_name == 'live_api' %}
@@ -9,7 +9,7 @@ This project is organized as follows:
9
9
 
10
10
  ```
11
11
  {{cookiecutter.project_name}}/
12
- ├── app/ # Core application code
12
+ ├── {{cookiecutter.agent_directory}}/ # Core application code
13
13
  │ ├── agent.py # Main agent logic
14
14
  {%- if cookiecutter.deployment_target == 'cloud_run' %}
15
15
  │ ├── server.py # FastAPI Backend server
@@ -83,7 +83,7 @@ For full command options and usage, refer to the [Makefile](Makefile).
83
83
  {% if cookiecutter.agent_name == 'live_api' %}
84
84
  ## Usage
85
85
 
86
- This template follows a "bring your own agent" approach - you focus on your business logic in `app/agent.py`, and the template handles the surrounding components (UI, infrastructure, deployment, monitoring).
86
+ This template follows a "bring your own agent" approach - you focus on your business logic in `{{cookiecutter.agent_directory}}/agent.py`, and the template handles the surrounding components (UI, infrastructure, deployment, monitoring).
87
87
 
88
88
  Here’s the recommended workflow for local development:
89
89
 
@@ -124,7 +124,7 @@ Here’s the recommended workflow for local development:
124
124
  * Open the Streamlit UI in your browser (usually `http://localhost:8501` or `http://localhost:3001`).
125
125
  * Click the play button in the UI to connect to the backend.
126
126
  * Interact with the agent! Try prompts like: *"Using the tool you have, define Governance in the context MLOPs"*
127
- * Modify the agent logic in `app/agent.py`. The backend server (FastAPI with `uvicorn --reload`) should automatically restart when you save changes. Refresh the frontend if needed to see behavioral changes.
127
+ * Modify the agent logic in `{{cookiecutter.agent_directory}}/agent.py`. The backend server (FastAPI with `uvicorn --reload`) should automatically restart when you save changes. Refresh the frontend if needed to see behavioral changes.
128
128
 
129
129
  <details>
130
130
  <summary><b>Cloud Shell Usage</b></summary>
@@ -162,7 +162,7 @@ To run the agent using Google Cloud Shell:
162
162
  This template follows a "bring your own agent" approach - you focus on your business logic, and the template handles everything else (UI, infrastructure, deployment, monitoring).
163
163
 
164
164
  1. **Prototype:** Build your Generative AI Agent using the intro notebooks in `notebooks/` for guidance. Use Vertex AI Evaluation to assess performance.
165
- 2. **Integrate:** Import your agent into the app by editing `app/agent.py`.
165
+ 2. **Integrate:** Import your agent into the app by editing `{{cookiecutter.agent_directory}}/agent.py`.
166
166
  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.
167
167
  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 supports GitHub with both Google Cloud Build and GitHub Actions as CI/CD runners.
168
168
  5. **Monitor:** Track performance and gather insights using Cloud Logging, Tracing, and the Looker Studio dashboard to iterate on your application.
@@ -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 %}