agent-starter-pack 0.7.1__tar.gz → 0.9.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 (281) hide show
  1. agent_starter_pack-0.9.0/.claude/settings.local.json +11 -0
  2. agent_starter_pack-0.9.0/.cloudbuild/ci/test_remote_template.yaml +36 -0
  3. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/.cloudbuild/terraform/build_triggers.tf +38 -10
  4. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/.gitignore +3 -1
  5. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/PKG-INFO +7 -6
  6. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/README.md +2 -1
  7. agent_starter_pack-0.9.0/agents/README.md +7 -0
  8. agent_starter_pack-0.7.1/agents/adk_base/template/.templateconfig.yaml → agent_starter_pack-0.9.0/agents/adk_base/.template/templateconfig.yaml +3 -1
  9. {agent_starter_pack-0.7.1/agents/adk_gemini_fullstack → agent_starter_pack-0.9.0/agents/adk_base}/notebooks/adk_app_testing.ipynb +8 -6
  10. agent_starter_pack-0.7.1/agents/adk_gemini_fullstack/template/.templateconfig.yaml → agent_starter_pack-0.9.0/agents/adk_gemini_fullstack/.template/templateconfig.yaml +3 -2
  11. {agent_starter_pack-0.7.1/agents/agentic_rag → agent_starter_pack-0.9.0/agents/adk_gemini_fullstack}/notebooks/adk_app_testing.ipynb +8 -6
  12. agent_starter_pack-0.7.1/agents/agentic_rag/template/.templateconfig.yaml → agent_starter_pack-0.9.0/agents/agentic_rag/.template/templateconfig.yaml +2 -1
  13. {agent_starter_pack-0.7.1/agents/adk_base → agent_starter_pack-0.9.0/agents/agentic_rag}/notebooks/adk_app_testing.ipynb +8 -6
  14. agent_starter_pack-0.7.1/agents/crewai_coding_crew/template/.templateconfig.yaml → agent_starter_pack-0.9.0/agents/crewai_coding_crew/.template/templateconfig.yaml +1 -1
  15. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/docs/.vitepress/config.js +7 -0
  16. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/docs/cli/create.md +1 -0
  17. agent_starter_pack-0.9.0/docs/guide/remote-templating.md +211 -0
  18. agent_starter_pack-0.9.0/docs/guide/template-config-reference.md +72 -0
  19. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/docs/index.md +4 -1
  20. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/llm.txt +7 -0
  21. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/pyproject.toml +6 -6
  22. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/base_template/Makefile +5 -1
  23. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/base_template/README.md +2 -2
  24. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/base_template/deployment/cd/deploy-to-prod.yaml +1 -16
  25. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/base_template/deployment/cd/staging.yaml +4 -19
  26. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/base_template/deployment/terraform/apis.tf +2 -2
  27. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/base_template/deployment/terraform/build_triggers.tf +5 -5
  28. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/base_template/deployment/terraform/dev/apis.tf +8 -1
  29. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/base_template/deployment/terraform/dev/variables.tf +3 -1
  30. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/base_template/deployment/terraform/iam.tf +8 -8
  31. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/base_template/deployment/terraform/locals.tf +9 -2
  32. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/base_template/deployment/terraform/log_sinks.tf +2 -2
  33. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/base_template/deployment/terraform/service_accounts.tf +3 -3
  34. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/base_template/deployment/terraform/storage.tf +7 -7
  35. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/base_template/deployment/terraform/variables.tf +3 -0
  36. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/base_template/pyproject.toml +4 -3
  37. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/cli/commands/create.py +191 -41
  38. agent_starter_pack-0.9.0/src/cli/commands/list.py +158 -0
  39. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/cli/commands/setup_cicd.py +2 -2
  40. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/cli/main.py +2 -0
  41. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/cli/utils/cicd.py +2 -2
  42. agent_starter_pack-0.9.0/src/cli/utils/remote_template.py +254 -0
  43. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/cli/utils/template.py +134 -25
  44. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/deployment_targets/agent_engine/app/agent_engine_app.py +7 -7
  45. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/deployment_targets/agent_engine/tests/load_test/README.md +1 -6
  46. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/deployment_targets/agent_engine/tests/load_test/load_test.py +13 -3
  47. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/deployment_targets/cloud_run/Dockerfile +3 -0
  48. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/deployment_targets/cloud_run/app/server.py +18 -0
  49. agent_starter_pack-0.9.0/src/deployment_targets/cloud_run/deployment/terraform/dev/service.tf +231 -0
  50. agent_starter_pack-0.9.0/src/deployment_targets/cloud_run/deployment/terraform/service.tf +360 -0
  51. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/deployment_targets/cloud_run/tests/integration/test_server_e2e.py +8 -5
  52. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/deployment_targets/cloud_run/tests/load_test/README.md +2 -2
  53. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/deployment_targets/cloud_run/tests/load_test/load_test.py +21 -17
  54. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/src/App.tsx +2 -3
  55. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/resources/docs/adk-cheatsheet.md +1 -1
  56. agent_starter_pack-0.7.1/src/resources/locks/uv-adk_base-cloud_run.lock → agent_starter_pack-0.9.0/src/resources/locks/uv-adk_base-agent_engine.lock +882 -560
  57. agent_starter_pack-0.9.0/src/resources/locks/uv-adk_base-cloud_run.lock +4469 -0
  58. agent_starter_pack-0.7.1/src/resources/locks/uv-adk_gemini_fullstack-cloud_run.lock → agent_starter_pack-0.9.0/src/resources/locks/uv-adk_gemini_fullstack-agent_engine.lock +882 -560
  59. agent_starter_pack-0.9.0/src/resources/locks/uv-adk_gemini_fullstack-cloud_run.lock +4469 -0
  60. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/resources/locks/uv-agentic_rag-agent_engine.lock +508 -373
  61. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/resources/locks/uv-agentic_rag-cloud_run.lock +668 -469
  62. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/resources/locks/uv-crewai_coding_crew-agent_engine.lock +582 -587
  63. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/resources/locks/uv-crewai_coding_crew-cloud_run.lock +791 -733
  64. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/resources/locks/uv-langgraph_base_react-agent_engine.lock +587 -478
  65. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/resources/locks/uv-langgraph_base_react-cloud_run.lock +799 -627
  66. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/resources/locks/uv-live_api-cloud_run.lock +803 -603
  67. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/resources/setup_cicd/github.tf +2 -2
  68. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/utils/lock_utils.py +1 -1
  69. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/tests/cicd/test_e2e_deployment.py +11 -0
  70. agent_starter_pack-0.9.0/tests/cli/commands/test_create_local.py +78 -0
  71. agent_starter_pack-0.9.0/tests/cli/commands/test_list.py +40 -0
  72. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/tests/cli/commands/test_setup_cicd.py +2 -2
  73. agent_starter_pack-0.9.0/tests/cli/utils/test_remote_template.py +464 -0
  74. agent_starter_pack-0.9.0/tests/integration/test_remote_templating.py +103 -0
  75. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/tests/integration/test_template_linting.py +1 -46
  76. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/tests/integration/test_templated_patterns.py +1 -54
  77. agent_starter_pack-0.9.0/tests/integration/utils.py +73 -0
  78. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/tests/utils/get_agents.py +19 -0
  79. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/uv.lock +8 -8
  80. agent_starter_pack-0.7.1/src/deployment_targets/cloud_run/uv.lock +0 -6952
  81. agent_starter_pack-0.7.1/src/resources/locks/uv-adk_base-agent_engine.lock +0 -3268
  82. agent_starter_pack-0.7.1/src/resources/locks/uv-adk_gemini_fullstack-agent_engine.lock +0 -3268
  83. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/.cloudbuild/cd/test_e2e.yaml +0 -0
  84. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/.cloudbuild/ci/build_use_wheel.yaml +0 -0
  85. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/.cloudbuild/ci/lint.yaml +0 -0
  86. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/.cloudbuild/ci/lint_templated_agents.yaml +0 -0
  87. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/.cloudbuild/ci/test.yaml +0 -0
  88. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/.cloudbuild/ci/test_templated_agents.yaml +0 -0
  89. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/.cloudbuild/terraform/apis.tf +0 -0
  90. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/.cloudbuild/terraform/service_account.tf +0 -0
  91. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/.cloudbuild/terraform/storage.tf +0 -0
  92. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/.cloudbuild/terraform/variables.tf +0 -0
  93. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/.github/workflows/docs.yml +0 -0
  94. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/CODE_OF_CONDUCT.md +0 -0
  95. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/CONTRIBUTING.md +0 -0
  96. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/LICENSE +0 -0
  97. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/Makefile +0 -0
  98. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/agents/adk_base/README.md +0 -0
  99. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/agents/adk_base/app/agent.py +0 -0
  100. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/agents/adk_base/notebooks/evaluating_adk_agent.ipynb +0 -0
  101. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/agents/adk_base/tests/integration/test_agent.py +0 -0
  102. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/agents/adk_gemini_fullstack/README.md +0 -0
  103. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/agents/adk_gemini_fullstack/app/agent.py +0 -0
  104. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/agents/adk_gemini_fullstack/app/config.py +0 -0
  105. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/agents/adk_gemini_fullstack/notebooks/evaluating_adk_agent.ipynb +0 -0
  106. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/agents/adk_gemini_fullstack/tests/integration/test_agent.py +0 -0
  107. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/agents/agentic_rag/README.md +0 -0
  108. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/agents/agentic_rag/app/agent.py +0 -0
  109. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/agents/agentic_rag/app/retrievers.py +0 -0
  110. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/agents/agentic_rag/app/templates.py +0 -0
  111. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/agents/agentic_rag/notebooks/evaluating_adk_agent.ipynb +0 -0
  112. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/agents/agentic_rag/tests/integration/test_agent.py +0 -0
  113. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/agents/crewai_coding_crew/README.md +0 -0
  114. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/agents/crewai_coding_crew/app/agent.py +0 -0
  115. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/agents/crewai_coding_crew/app/crew/config/agents.yaml +0 -0
  116. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/agents/crewai_coding_crew/app/crew/config/tasks.yaml +0 -0
  117. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/agents/crewai_coding_crew/app/crew/crew.py +0 -0
  118. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/agents/crewai_coding_crew/notebooks/evaluating_crewai_agent.ipynb +0 -0
  119. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/agents/crewai_coding_crew/notebooks/evaluating_langgraph_agent.ipynb +0 -0
  120. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/agents/crewai_coding_crew/tests/integration/test_agent.py +0 -0
  121. /agent_starter_pack-0.7.1/agents/langgraph_base_react/template/.templateconfig.yaml → /agent_starter_pack-0.9.0/agents/langgraph_base_react/.template/templateconfig.yaml +0 -0
  122. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/agents/langgraph_base_react/README.md +0 -0
  123. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/agents/langgraph_base_react/app/agent.py +0 -0
  124. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/agents/langgraph_base_react/notebooks/evaluating_langgraph_agent.ipynb +0 -0
  125. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/agents/langgraph_base_react/tests/integration/test_agent.py +0 -0
  126. /agent_starter_pack-0.7.1/agents/live_api/template/.templateconfig.yaml → /agent_starter_pack-0.9.0/agents/live_api/.template/templateconfig.yaml +0 -0
  127. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/agents/live_api/README.md +0 -0
  128. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/agents/live_api/app/agent.py +0 -0
  129. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/agents/live_api/app/server.py +0 -0
  130. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/agents/live_api/tests/integration/test_server_e2e.py +0 -0
  131. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/agents/live_api/tests/load_test/load_test.py +0 -0
  132. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/agents/live_api/tests/unit/test_server.py +0 -0
  133. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/docs/agents/overview.md +0 -0
  134. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/docs/cli/index.md +0 -0
  135. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/docs/cli/setup_cicd.md +0 -0
  136. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/docs/guide/data-ingestion.md +0 -0
  137. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/docs/guide/deploy-ui.md +0 -0
  138. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/docs/guide/deployment.md +0 -0
  139. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/docs/guide/development-guide.md +0 -0
  140. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/docs/guide/getting-started.md +0 -0
  141. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/docs/guide/installation.md +0 -0
  142. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/docs/guide/observability.md +0 -0
  143. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/docs/guide/troubleshooting.md +0 -0
  144. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/docs/guide/video-tutorials.md +0 -0
  145. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/docs/guide/why_starter_pack.md +0 -0
  146. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/docs/images/adk_gemini_fullstack.gif +0 -0
  147. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/docs/images/adk_gemini_fullstack_architecture.png +0 -0
  148. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/docs/images/adk_logo.png +0 -0
  149. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/docs/images/agent_starter_pack_screenshot.png +0 -0
  150. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/docs/images/ags_high_level_architecture.png +0 -0
  151. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/docs/images/icon.png +0 -0
  152. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/docs/images/logo.png +0 -0
  153. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/docs/images/prototype_to_prod.png +0 -0
  154. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/docs/images/why_sp_edited.png +0 -0
  155. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/docs/images/why_starter_pack.png +0 -0
  156. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/docs/package-lock.json +0 -0
  157. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/docs/package.json +0 -0
  158. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/base_template/.gitignore +0 -0
  159. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/base_template/GEMINI.md +0 -0
  160. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/base_template/app/__init__.py +0 -0
  161. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/base_template/app/utils/gcs.py +0 -0
  162. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/base_template/app/utils/tracing.py +0 -0
  163. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/base_template/app/utils/typing.py +0 -0
  164. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/base_template/deployment/README.md +0 -0
  165. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/base_template/deployment/ci/pr_checks.yaml +0 -0
  166. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/base_template/deployment/terraform/dev/iam.tf +0 -0
  167. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/base_template/deployment/terraform/dev/log_sinks.tf +0 -0
  168. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/base_template/deployment/terraform/dev/providers.tf +0 -0
  169. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/base_template/deployment/terraform/dev/storage.tf +0 -0
  170. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/base_template/deployment/terraform/dev/vars/env.tfvars +0 -0
  171. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/base_template/deployment/terraform/providers.tf +0 -0
  172. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/base_template/deployment/terraform/vars/env.tfvars +0 -0
  173. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/base_template/tests/unit/test_dummy.py +0 -0
  174. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/cli/utils/__init__.py +0 -0
  175. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/cli/utils/datastores.py +0 -0
  176. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/cli/utils/gcp.py +0 -0
  177. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/cli/utils/logging.py +0 -0
  178. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/cli/utils/version.py +0 -0
  179. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/data_ingestion/README.md +0 -0
  180. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/data_ingestion/data_ingestion_pipeline/components/ingest_data.py +0 -0
  181. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/data_ingestion/data_ingestion_pipeline/components/process_data.py +0 -0
  182. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/data_ingestion/data_ingestion_pipeline/pipeline.py +0 -0
  183. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/data_ingestion/data_ingestion_pipeline/submit_pipeline.py +0 -0
  184. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/data_ingestion/pyproject.toml +0 -0
  185. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/data_ingestion/uv.lock +0 -0
  186. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/deployment_targets/agent_engine/deployment_metadata.json +0 -0
  187. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/deployment_targets/agent_engine/notebooks/intro_agent_engine.ipynb +0 -0
  188. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/deployment_targets/agent_engine/tests/integration/test_agent_engine_app.py +0 -0
  189. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/deployment_targets/agent_engine/tests/load_test/.results/.placeholder +0 -0
  190. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/deployment_targets/cloud_run/tests/load_test/.results/.placeholder +0 -0
  191. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/components.json +0 -0
  192. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/eslint.config.js +0 -0
  193. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/index.html +0 -0
  194. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/package-lock.json +0 -0
  195. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/package.json +0 -0
  196. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ActivityTimeline.tsx +0 -0
  197. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ChatMessagesView.tsx +0 -0
  198. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/InputForm.tsx +0 -0
  199. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/WelcomeScreen.tsx +0 -0
  200. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/badge.tsx +0 -0
  201. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/button.tsx +0 -0
  202. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/card.tsx +0 -0
  203. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/input.tsx +0 -0
  204. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/scroll-area.tsx +0 -0
  205. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/select.tsx +0 -0
  206. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/tabs.tsx +0 -0
  207. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/textarea.tsx +0 -0
  208. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/src/global.css +0 -0
  209. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/src/main.tsx +0 -0
  210. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/src/utils.ts +0 -0
  211. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/src/vite-env.d.ts +0 -0
  212. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/tsconfig.json +0 -0
  213. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/tsconfig.node.json +0 -0
  214. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/vite.config.ts +0 -0
  215. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/package-lock.json +0 -0
  216. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/package.json +0 -0
  217. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/public/favicon.ico +0 -0
  218. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/public/index.html +0 -0
  219. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/public/robots.txt +0 -0
  220. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/App.scss +0 -0
  221. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/App.test.tsx +0 -0
  222. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/App.tsx +0 -0
  223. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/components/audio-pulse/AudioPulse.tsx +0 -0
  224. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/components/audio-pulse/audio-pulse.scss +0 -0
  225. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/components/control-tray/ControlTray.tsx +0 -0
  226. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/components/control-tray/control-tray.scss +0 -0
  227. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/components/logger/Logger.tsx +0 -0
  228. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/components/logger/logger.scss +0 -0
  229. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/components/logger/mock-logs.ts +0 -0
  230. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/components/side-panel/SidePanel.tsx +0 -0
  231. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/components/side-panel/side-panel.scss +0 -0
  232. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/contexts/LiveAPIContext.tsx +0 -0
  233. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/hooks/use-live-api.ts +0 -0
  234. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/hooks/use-media-stream-mux.ts +0 -0
  235. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/hooks/use-screen-capture.ts +0 -0
  236. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/hooks/use-webcam.ts +0 -0
  237. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/index.css +0 -0
  238. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/index.tsx +0 -0
  239. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/multimodal-live-types.ts +0 -0
  240. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/react-app-env.d.ts +0 -0
  241. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/reportWebVitals.ts +0 -0
  242. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/setupTests.ts +0 -0
  243. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/utils/audio-recorder.ts +0 -0
  244. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/utils/audio-streamer.ts +0 -0
  245. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/utils/audioworklet-registry.ts +0 -0
  246. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/utils/multimodal-live-client.ts +0 -0
  247. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/utils/store-logger.ts +0 -0
  248. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/utils/utils.ts +0 -0
  249. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/utils/worklets/audio-processing.ts +0 -0
  250. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/utils/worklets/vol-meter.ts +0 -0
  251. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/tsconfig.json +0 -0
  252. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/streamlit/frontend/side_bar.py +0 -0
  253. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/streamlit/frontend/streamlit_app.py +0 -0
  254. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/streamlit/frontend/style/app_markdown.py +0 -0
  255. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/streamlit/frontend/utils/chat_utils.py +0 -0
  256. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/streamlit/frontend/utils/local_chat_history.py +0 -0
  257. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/streamlit/frontend/utils/message_editing.py +0 -0
  258. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/streamlit/frontend/utils/multimodal_utils.py +0 -0
  259. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/streamlit/frontend/utils/stream_handler.py +0 -0
  260. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/frontends/streamlit/frontend/utils/title_summary.py +0 -0
  261. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/resources/containers/data_processing/Dockerfile +0 -0
  262. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/resources/containers/e2e-tests/Dockerfile +0 -0
  263. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/resources/idx/.idx/dev.nix +0 -0
  264. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/resources/idx/idx-template.json +0 -0
  265. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/resources/idx/idx-template.nix +0 -0
  266. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/resources/setup_cicd/cicd_variables.tf +0 -0
  267. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/resources/setup_cicd/providers.tf +0 -0
  268. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/utils/generate_locks.py +0 -0
  269. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/src/utils/watch_and_rebuild.py +0 -0
  270. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/tests/__init__.py +0 -0
  271. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/tests/cicd/example.env +0 -0
  272. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/tests/cli/commands/test_create.py +0 -0
  273. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/tests/cli/utils/test_cicd.py +0 -0
  274. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/tests/test_frontend/test_side_bar.py +0 -0
  275. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/tests/test_frontend/test_streamlit_app.py +0 -0
  276. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/tests/test_frontend/test_utils/test_chat_utils.py +0 -0
  277. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/tests/test_frontend/test_utils/test_local_chat_history.py +0 -0
  278. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/tests/test_frontend/test_utils/test_message_editing.py +0 -0
  279. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/tests/test_frontend/test_utils/test_multimodal_utils.py +0 -0
  280. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/tests/test_frontend/test_utils/test_stream_handler.py +0 -0
  281. {agent_starter_pack-0.7.1 → agent_starter_pack-0.9.0}/tests/utils/__init__.py +0 -0
@@ -0,0 +1,11 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(grep:*)",
5
+ "Bash(find:*)",
6
+ "Bash(uv run:*)",
7
+ "Bash(git add:*)"
8
+ ],
9
+ "deny": []
10
+ }
11
+ }
@@ -0,0 +1,36 @@
1
+ # Copyright 2025 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ steps:
16
+ # Sync dependencies
17
+ - name: "europe-west4-docker.pkg.dev/production-ai-template/starter-pack/e2e-tests"
18
+ id: install-dependencies
19
+ entrypoint: /bin/bash
20
+ args:
21
+ - "-c"
22
+ - |
23
+ uv sync --locked
24
+
25
+ # Run unit tests using pytest
26
+ - name: "europe-west4-docker.pkg.dev/production-ai-template/starter-pack/e2e-tests"
27
+ id: test-templated-agents
28
+ entrypoint: /bin/bash
29
+ args:
30
+ - "-c"
31
+ - |
32
+ uv run pytest tests/integration/test_remote_templating.py
33
+
34
+ logsBucket: gs://${PROJECT_ID}-logs-data/build-logs
35
+ options:
36
+ defaultLogsBucketBehavior: REGIONAL_USER_OWNED_BUCKET
@@ -85,16 +85,12 @@ locals {
85
85
  value = "live_api,cloud_run"
86
86
  },
87
87
  {
88
- name = "adk_gemini_fullstack-agent_engine"
89
- value = "adk_gemini_fullstack,agent_engine"
90
- },
91
- {
92
- name = "adk_gemini_fullstack-cloud_run"
93
- value = "adk_gemini_fullstack,cloud_run"
88
+ name = "adk_base-cloud_run-alloydb"
89
+ value = "adk_base,cloud_run,--session-type,alloydb"
94
90
  },
95
91
  ]
96
92
 
97
- agent_testing_included_files = { for combo in local.agent_testing_combinations :
93
+ agent_testing_included_files = { for combo in local.agent_testing_combinations :
98
94
  combo.name => [
99
95
  # Only include files for the specific agent being tested
100
96
  "agents/${split(",", combo.value)[0]}/**",
@@ -135,8 +131,8 @@ locals {
135
131
  value = "live_api,cloud_run"
136
132
  },
137
133
  {
138
- name = "adk_gemini_fullstack-agent_engine"
139
- value = "adk_gemini_fullstack,agent_engine"
134
+ name = "adk_base-cloud_run-alloydb"
135
+ value = "adk_base,cloud_run,--session-type,alloydb"
140
136
  },
141
137
  ]
142
138
  # Create a safe trigger name by replacing underscores with hyphens and dots with hyphens
@@ -146,7 +142,17 @@ locals {
146
142
  }
147
143
 
148
144
  e2e_agent_deployment_included_files = { for combo in local.agent_testing_combinations :
149
- combo.name => [
145
+ combo.name => combo.name == "adk_base-cloud_run-alloydb" ? [
146
+ "src/deployment_targets/cloud_run/**",
147
+ "pyproject.toml",
148
+ ] : substr(combo.name, 0, 11) == "agentic_rag" ? [
149
+ "agents/agentic_rag/**",
150
+ "src/data_ingestion/**",
151
+ "pyproject.toml",
152
+ ] : substr(combo.name, 0, 8) == "live_api" ? [
153
+ "agents/live_api/**",
154
+ "pyproject.toml",
155
+ ] : [
150
156
  # Only include files for the specific agent being tested
151
157
  "agents/${split(",", combo.value)[0]}/**",
152
158
  # Common files that affect all agents
@@ -313,3 +319,25 @@ resource "google_cloudbuild_trigger" "main_e2e_deployment_test" {
313
319
  _E2E_PROD_PROJECT = var.e2e_test_project_mapping.prod
314
320
  }
315
321
  }
322
+
323
+ # f. Create Remote Template Test trigger for PR requests
324
+ resource "google_cloudbuild_trigger" "pr_test_remote_template" {
325
+ name = "pr-test-remote-template"
326
+ project = var.cicd_runner_project_id
327
+ location = var.region
328
+ description = "Trigger for PR checks on remote templating"
329
+ service_account = resource.google_service_account.cicd_runner_sa.id
330
+
331
+ repository_event_config {
332
+ repository = local.repository_path
333
+ pull_request {
334
+ branch = "main"
335
+ comment_control = "COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY"
336
+ }
337
+ }
338
+
339
+ filename = ".cloudbuild/ci/test_remote_template.yaml"
340
+ included_files = local.common_included_files
341
+ ignored_files = local.common_ignored_files
342
+ include_build_logs = "INCLUDE_BUILD_LOGS_WITH_STATUS"
343
+ }
@@ -188,6 +188,7 @@ testem.log
188
188
  Thumbs.db
189
189
  *.vscode*
190
190
 
191
+ .locust_env/
191
192
  .saved_chats
192
193
  .aider*
193
194
  target
@@ -196,4 +197,5 @@ delete_genai_repos.sh
196
197
  cleanup_e2e_projects.sh
197
198
  .cloudbuild/terraform/backend.tf
198
199
  .cloudbuild/terraform/vars/env.tfvars
199
- docs/.vitepress/cache
200
+ docs/.vitepress/cache
201
+ tests/cicd/delete_gcp_resources.sh
@@ -1,17 +1,17 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent-starter-pack
3
- Version: 0.7.1
3
+ Version: 0.9.0
4
4
  Summary: CLI to bootstrap production-ready Google Cloud GenAI agent projects from templates.
5
5
  Author-email: Google LLC <agent-starter-pack@google.com>
6
6
  License: Apache-2.0
7
7
  License-File: LICENSE
8
8
  Requires-Python: >=3.10
9
9
  Requires-Dist: backoff>=2.2.1
10
- Requires-Dist: click~=8.1.7
11
- Requires-Dist: cookiecutter~=2.5.0
10
+ Requires-Dist: click>=8.1.7
11
+ Requires-Dist: cookiecutter~=2.6.0
12
12
  Requires-Dist: google-cloud-aiplatform>=1.87.0
13
- Requires-Dist: pyyaml~=6.0.1
14
- Requires-Dist: rich~=13.7.0
13
+ Requires-Dist: pyyaml>=6.0.1
14
+ Requires-Dist: rich>=13.7.0
15
15
  Provides-Extra: jupyter
16
16
  Requires-Dist: ipykernel>=6.29.5; extra == 'jupyter'
17
17
  Requires-Dist: jupyter; extra == 'jupyter'
@@ -103,7 +103,8 @@ Looking to explore more ADK examples? Check out the [ADK Samples Repository](htt
103
103
  The `agent-starter-pack` offers two key features to accelerate and simplify the development of your agent:
104
104
  - **🔄 [CI/CD Automation (Experimental)](https://googlecloudplatform.github.io/agent-starter-pack/cli/setup_cicd)** - One command to set up a complete GitHub + Cloud Build pipeline for all environments
105
105
  - **📥 [Data Pipeline for RAG with Terraform/CI-CD](https://googlecloudplatform.github.io/agent-starter-pack/guide/data-ingestion)** - Seamlessly integrate a data pipeline to process embeddings for RAG into your agent system. Supporting [Vertex AI Search](https://cloud.google.com/generative-ai-app-builder/docs/enterprise-search-introduction) and [Vector Search](https://cloud.google.com/vertex-ai/docs/vector-search/overview).
106
- * **🤖 Gemini CLI Integration** - Use the [Gemini CLI](https://github.com/google-gemini/gemini-cli) and the included `GEMINI.md` context file to ask questions about your template, agent architecture, and the path to production. Get instant guidance and code examples directly in your terminal.
106
+ - **[Remote Templates](docs/guide/remote-templating.md)**: Create and share your own agent starter packs templates from any Git repository.
107
+ - **🤖 Gemini CLI Integration** - Use the [Gemini CLI](https://github.com/google-gemini/gemini-cli) and the included `GEMINI.md` context file to ask questions about your template, agent architecture, and the path to production. Get instant guidance and code examples directly in your terminal.
107
108
 
108
109
  ## High-Level Architecture
109
110
 
@@ -78,7 +78,8 @@ Looking to explore more ADK examples? Check out the [ADK Samples Repository](htt
78
78
  The `agent-starter-pack` offers two key features to accelerate and simplify the development of your agent:
79
79
  - **🔄 [CI/CD Automation (Experimental)](https://googlecloudplatform.github.io/agent-starter-pack/cli/setup_cicd)** - One command to set up a complete GitHub + Cloud Build pipeline for all environments
80
80
  - **📥 [Data Pipeline for RAG with Terraform/CI-CD](https://googlecloudplatform.github.io/agent-starter-pack/guide/data-ingestion)** - Seamlessly integrate a data pipeline to process embeddings for RAG into your agent system. Supporting [Vertex AI Search](https://cloud.google.com/generative-ai-app-builder/docs/enterprise-search-introduction) and [Vector Search](https://cloud.google.com/vertex-ai/docs/vector-search/overview).
81
- * **🤖 Gemini CLI Integration** - Use the [Gemini CLI](https://github.com/google-gemini/gemini-cli) and the included `GEMINI.md` context file to ask questions about your template, agent architecture, and the path to production. Get instant guidance and code examples directly in your terminal.
81
+ - **[Remote Templates](docs/guide/remote-templating.md)**: Create and share your own agent starter packs templates from any Git repository.
82
+ - **🤖 Gemini CLI Integration** - Use the [Gemini CLI](https://github.com/google-gemini/gemini-cli) and the included `GEMINI.md` context file to ask questions about your template, agent architecture, and the path to production. Get instant guidance and code examples directly in your terminal.
82
83
 
83
84
  ## High-Level Architecture
84
85
 
@@ -0,0 +1,7 @@
1
+ # Agent Templates
2
+
3
+ This directory contains template implementations for various agents designed to work with the Agent Starter Pack templating system.
4
+ Feel free to browse through these folders to preview what each template offers.
5
+ Direct cloning of this repository isn't necessary to utilize these templates.
6
+
7
+ For setup instructions and getting started, please refer to the main [README](/README.md) which explains how to install and use the Agent Starter Pack.
@@ -16,7 +16,9 @@ description: "A base ReAct agent built with Google's Agent Development Kit (ADK)
16
16
  example_question: "What's the weather in San Francisco?"
17
17
  settings:
18
18
  requires_data_ingestion: false
19
+ requires_session: true
19
20
  deployment_targets: ["agent_engine", "cloud_run"]
20
- extra_dependencies: ["google-adk~=1.4.2"]
21
+ extra_dependencies: ["google-adk~=1.6.0"]
21
22
  tags: ["adk"]
22
23
  frontend_type: "None"
24
+
@@ -207,14 +207,15 @@
207
207
  "outputs": [],
208
208
  "source": [
209
209
  "user_id = \"test_user_123\"\n",
210
- "session_id = \"test_session_456\"\n",
211
210
  "session_data = {\"state\": {\"preferred_language\": \"English\", \"visit_count\": 1}}\n",
212
211
  "\n",
213
- "session_url = f\"{SERVICE_URL}/apps/app/users/{user_id}/sessions/{session_id}\"\n",
212
+ "session_url = f\"{SERVICE_URL}/apps/app/users/{user_id}/sessions\"\n",
214
213
  "headers = {\"Content-Type\": \"application/json\", \"Authorization\": f\"Bearer {ID_TOKEN}\"}\n",
215
214
  "\n",
216
215
  "session_response = requests.post(session_url, headers=headers, json=session_data)\n",
217
- "print(f\"Session creation status code: {session_response.status_code}\")"
216
+ "print(f\"Session creation status code: {session_response.status_code}\")\n",
217
+ "print(f\"Session creation response: {session_response.json()}\")\n",
218
+ "session_id = session_response.json()[\"id\"]"
218
219
  ]
219
220
  },
220
221
  {
@@ -279,14 +280,15 @@
279
280
  "outputs": [],
280
281
  "source": [
281
282
  "user_id = \"test_user_123\"\n",
282
- "session_id = \"test_session_456\"\n",
283
283
  "session_data = {\"state\": {\"preferred_language\": \"English\", \"visit_count\": 1}}\n",
284
284
  "\n",
285
- "session_url = f\"http://127.0.0.1:8000/apps/app/users/{user_id}/sessions/{session_id}\"\n",
285
+ "session_url = f\"http://127.0.0.1:8000/apps/app/users/{user_id}/sessions\"\n",
286
286
  "headers = {\"Content-Type\": \"application/json\"}\n",
287
287
  "\n",
288
288
  "session_response = requests.post(session_url, headers=headers, json=session_data)\n",
289
- "print(f\"Session creation status code: {session_response.status_code}\")"
289
+ "print(f\"Session creation status code: {session_response.status_code}\")\n",
290
+ "print(f\"Session creation response: {session_response.json()}\")\n",
291
+ "session_id = session_response.json()[\"id\"]"
290
292
  ]
291
293
  },
292
294
  {
@@ -16,13 +16,14 @@ description: "A production-ready fullstack research agent that uses Gemini to st
16
16
  example_question: "A report on the latest Google I/O event"
17
17
  settings:
18
18
  requires_data_ingestion: false
19
+ requires_session: true
19
20
  deployment_targets: ["agent_engine", "cloud_run"]
20
- extra_dependencies: ["google-adk~=1.4.2"]
21
+ extra_dependencies: ["google-adk~=1.6.0"]
21
22
  tags: ["adk"]
22
23
  frontend_type: "adk_gemini_fullstack"
23
24
  commands:
24
25
  override:
25
- install: "npm --prefix frontend install"
26
+ install: "uv sync --dev --extra jupyter && npm --prefix frontend install"
26
27
  extra:
27
28
  dev:
28
29
  command: 'make dev-backend & make dev-frontend'
@@ -207,14 +207,15 @@
207
207
  "outputs": [],
208
208
  "source": [
209
209
  "user_id = \"test_user_123\"\n",
210
- "session_id = \"test_session_456\"\n",
211
210
  "session_data = {\"state\": {\"preferred_language\": \"English\", \"visit_count\": 1}}\n",
212
211
  "\n",
213
- "session_url = f\"{SERVICE_URL}/apps/app/users/{user_id}/sessions/{session_id}\"\n",
212
+ "session_url = f\"{SERVICE_URL}/apps/app/users/{user_id}/sessions\"\n",
214
213
  "headers = {\"Content-Type\": \"application/json\", \"Authorization\": f\"Bearer {ID_TOKEN}\"}\n",
215
214
  "\n",
216
215
  "session_response = requests.post(session_url, headers=headers, json=session_data)\n",
217
- "print(f\"Session creation status code: {session_response.status_code}\")"
216
+ "print(f\"Session creation status code: {session_response.status_code}\")\n",
217
+ "print(f\"Session creation response: {session_response.json()}\")\n",
218
+ "session_id = session_response.json()[\"id\"]"
218
219
  ]
219
220
  },
220
221
  {
@@ -279,14 +280,15 @@
279
280
  "outputs": [],
280
281
  "source": [
281
282
  "user_id = \"test_user_123\"\n",
282
- "session_id = \"test_session_456\"\n",
283
283
  "session_data = {\"state\": {\"preferred_language\": \"English\", \"visit_count\": 1}}\n",
284
284
  "\n",
285
- "session_url = f\"http://127.0.0.1:8000/apps/app/users/{user_id}/sessions/{session_id}\"\n",
285
+ "session_url = f\"http://127.0.0.1:8000/apps/app/users/{user_id}/sessions\"\n",
286
286
  "headers = {\"Content-Type\": \"application/json\"}\n",
287
287
  "\n",
288
288
  "session_response = requests.post(session_url, headers=headers, json=session_data)\n",
289
- "print(f\"Session creation status code: {session_response.status_code}\")"
289
+ "print(f\"Session creation status code: {session_response.status_code}\")\n",
290
+ "print(f\"Session creation response: {session_response.json()}\")\n",
291
+ "session_id = session_response.json()[\"id\"]"
290
292
  ]
291
293
  },
292
294
  {
@@ -16,9 +16,10 @@ description: "ADK RAG agent for document retrieval and Q&A. Includes a data pipe
16
16
  example_question: "How to save a pandas dataframe to CSV?"
17
17
  settings:
18
18
  requires_data_ingestion: true
19
+ requires_session: true
19
20
  deployment_targets: ["agent_engine", "cloud_run"]
20
21
  extra_dependencies: [
21
- "google-adk~=1.4.2",
22
+ "google-adk~=1.6.0",
22
23
  "langchain-google-vertexai~=2.0.7",
23
24
  "langchain~=0.3.24",
24
25
  "langchain-core~=0.3.55",
@@ -207,14 +207,15 @@
207
207
  "outputs": [],
208
208
  "source": [
209
209
  "user_id = \"test_user_123\"\n",
210
- "session_id = \"test_session_456\"\n",
211
210
  "session_data = {\"state\": {\"preferred_language\": \"English\", \"visit_count\": 1}}\n",
212
211
  "\n",
213
- "session_url = f\"{SERVICE_URL}/apps/app/users/{user_id}/sessions/{session_id}\"\n",
212
+ "session_url = f\"{SERVICE_URL}/apps/app/users/{user_id}/sessions\"\n",
214
213
  "headers = {\"Content-Type\": \"application/json\", \"Authorization\": f\"Bearer {ID_TOKEN}\"}\n",
215
214
  "\n",
216
215
  "session_response = requests.post(session_url, headers=headers, json=session_data)\n",
217
- "print(f\"Session creation status code: {session_response.status_code}\")"
216
+ "print(f\"Session creation status code: {session_response.status_code}\")\n",
217
+ "print(f\"Session creation response: {session_response.json()}\")\n",
218
+ "session_id = session_response.json()[\"id\"]"
218
219
  ]
219
220
  },
220
221
  {
@@ -279,14 +280,15 @@
279
280
  "outputs": [],
280
281
  "source": [
281
282
  "user_id = \"test_user_123\"\n",
282
- "session_id = \"test_session_456\"\n",
283
283
  "session_data = {\"state\": {\"preferred_language\": \"English\", \"visit_count\": 1}}\n",
284
284
  "\n",
285
- "session_url = f\"http://127.0.0.1:8000/apps/app/users/{user_id}/sessions/{session_id}\"\n",
285
+ "session_url = f\"http://127.0.0.1:8000/apps/app/users/{user_id}/sessions\"\n",
286
286
  "headers = {\"Content-Type\": \"application/json\"}\n",
287
287
  "\n",
288
288
  "session_response = requests.post(session_url, headers=headers, json=session_data)\n",
289
- "print(f\"Session creation status code: {session_response.status_code}\")"
289
+ "print(f\"Session creation status code: {session_response.status_code}\")\n",
290
+ "print(f\"Session creation response: {session_response.json()}\")\n",
291
+ "session_id = session_response.json()[\"id\"]"
290
292
  ]
291
293
  },
292
294
  {
@@ -22,6 +22,6 @@ settings:
22
22
  "langchain-community~=0.3.17",
23
23
  "langchain-openai~=0.3.5",
24
24
  "langgraph~=0.4.8",
25
- "crewai~=0.119.0"
25
+ "crewai~=0.140.0"
26
26
  ]
27
27
  example_question: "How can I implement a function to sort a list in Python?"
@@ -43,6 +43,13 @@ export default defineConfig({
43
43
  { text: 'Troubleshooting', link: '/guide/troubleshooting' }
44
44
  ]
45
45
  },
46
+ {
47
+ text: 'Authoring Templates',
48
+ items: [
49
+ { text: 'Remote Templating', link: '/guide/remote-templating' },
50
+ { text: 'Template Config Reference', link: '/guide/template-config-reference' }
51
+ ]
52
+ },
46
53
  {
47
54
  text: 'Agents',
48
55
  items: [
@@ -22,6 +22,7 @@ The following options will be prompted interactively if not provided via the com
22
22
  - `--deployment-target`, `-d`: Deployment target (`agent_engine` or `cloud_run`). Prompts if omitted.
23
23
  - `--datastore`, `-ds`: Datastore for RAG agents (`vertex_ai_search` or `vertex_ai_vector_search`). Prompted if `--include-data-ingestion` is specified, or if the selected agent (e.g., `agentic_rag`) requires data ingestion, and this option is omitted.
24
24
  - `--region`: GCP region for deployment (default: `us-central1`). Prompts for confirmation if not specified and `--auto-approve` is not used.
25
+ - `--session-type`: Type of session storage to use (`in_memory` or `alloydb`). This is only applicable for agents that require session management and when the deployment target is `cloud_run`.
25
26
 
26
27
  GCP account and project ID are detected automatically (using your active `gcloud config` settings). You will be prompted to confirm or change them unless `--auto-approve` is used.
27
28
 
@@ -0,0 +1,211 @@
1
+ # Remote Templates
2
+
3
+ With remote templating, you can create and share your own agent starter packs without needing to fork the main repository. A remote template is a Git repository that the `agent-starter-pack` CLI can use as a blueprint to create new agent projects. This allows for easy sharing and reuse of customized agent setups.
4
+
5
+ This guide covers how to build, test, and use remote templates.
6
+
7
+ ## Quickstart: Creating Your First Remote Template
8
+
9
+ Let's build a simple remote template that customizes the built-in `adk_base` agent.
10
+
11
+ ### Step 1: Create the Template Directory Structure
12
+
13
+ A remote template is structured just like a standard agent project. The only special part is the `.template/` directory, which holds the configuration.
14
+
15
+ Create the following structure on your local machine:
16
+
17
+ ```
18
+ my-first-remote-template/
19
+ ├── .template/
20
+ │ └── templateconfig.yaml # Configuration file
21
+ ├── app/
22
+ │ └── agent.py # Your custom agent logic
23
+ └── pyproject.toml # Your custom dependencies
24
+ ```
25
+
26
+ ### Step 2: Configure the Template
27
+
28
+ The `templateconfig.yaml` file is required. It tells the starter pack how to use your template.
29
+
30
+ Put the following content in `.template/templateconfig.yaml`:
31
+
32
+ ```yaml
33
+ # (Required) The built-in agent to use as a foundation.
34
+ base_template: "adk_base"
35
+
36
+ # (Required) Your template's name and description.
37
+ name: "My First Remote Template"
38
+ description: "A simple template that says hello."
39
+
40
+ # (Optional) Override settings from the base template.
41
+ settings:
42
+ # This template will only support the 'agent_engine' deployment target.
43
+ deployment_targets: ["agent_engine"]
44
+ ```
45
+
46
+ ### Step 3: Customize Dependencies and Agent Logic
47
+
48
+ First, define any custom dependencies in `pyproject.toml`. For this example, we'll just use the base dependencies but you could add your own here.
49
+
50
+ Put the following in `pyproject.toml`:
51
+ ```toml
52
+ [project]
53
+ name = "my-first-remote-template"
54
+ version = "0.1.0"
55
+ dependencies = [
56
+ "google-adk",
57
+ ]
58
+ ```
59
+
60
+ Next, we'll override the default `agent.py` to create a simple "hello world" agent.
61
+
62
+ Put the following code in `app/agent.py`:
63
+
64
+ ```python
65
+ from google.adk.agents import Agent
66
+
67
+ def get_greeting(name: str = "World") -> str:
68
+ """Returns a friendly greeting from the remote template."""
69
+ return f"Hello, {name}! This greeting comes from a remote template."
70
+
71
+ root_agent = Agent(
72
+ name="root_agent",
73
+ model="gemini-2.5-flash",
74
+ instruction="You are a helpful AI assistant. Use your tools to answer questions.",
75
+ tools=[get_greeting],
76
+ )
77
+ ```
78
+
79
+ ### Step 4: Test Your Template Locally
80
+
81
+ Before publishing to Git, you can test your template from your local filesystem using the `local@` prefix.
82
+
83
+ Run the `create` command from the directory *outside* of your template folder:
84
+
85
+ ```bash
86
+ # Make sure you are in the parent directory of 'my-first-remote-template'
87
+ uvx agent-starter-pack create my-test-agent -a local@./my-first-remote-template
88
+ ```
89
+
90
+ This creates a new project `my-test-agent` using your local template.
91
+
92
+ ### Step 5: Publish and Use Your Template
93
+
94
+ Once you are satisfied, initialize a Git repository, commit your files, and push them to a provider like GitHub. Now, you or anyone else can use your template directly from its Git URL:
95
+
96
+ ```bash
97
+ # Replace with your repository URL
98
+ REPO_URL="https://github.com/your-username/my-first-remote-template"
99
+
100
+ uvx agent-starter-pack create my-remote-agent -a $REPO_URL
101
+ ```
102
+
103
+ ## Template Structure
104
+
105
+ A remote template repository mirrors the structure of a standard agent. The templating engine copies the entire contents of your repository and overlays them onto the base agent.
106
+
107
+ - **Your Agent Files (`app/`, `tests/`, etc.)**: These should be at the root of your repository. They will overwrite the corresponding files from the `base_template`.
108
+ - **`.template/` directory**: This special directory is **only** for the `templateconfig.yaml` file. It is read by the CLI for configuration but is not copied into the final project.
109
+ - **Dependencies (`pyproject.toml`, `uv.lock`)**: These must be at the root of your repository.
110
+
111
+ **Example Structure:**
112
+ ```
113
+ my-awesome-template/
114
+ ├── .template/
115
+ │ └── templateconfig.yaml # (Required) Configuration only.
116
+ ├── pyproject.toml # (Required) Custom Python dependencies.
117
+ ├── uv.lock # (Recommended) Locked Python dependencies.
118
+ ├── app/
119
+ │ └── agent.py # Your custom agent logic.
120
+ └── README.md # Your repository's README.
121
+ ```
122
+
123
+ ## How File Merging Works
124
+
125
+ Files are copied and overlaid in the following order, with later steps overwriting earlier ones if files have the same name and path:
126
+
127
+ 1. **[Base Project Files](https://github.com/GoogleCloudPlatform/agent-starter-pack/tree/main/src/base_template)**: The foundational files from the starter pack.
128
+ 2. **[Deployment Target Files](https://github.com/GoogleCloudPlatform/agent-starter-pack/tree/main/src/deployment_targets)**: Files for the chosen deployment target (e.g., `cloud_run`).
129
+ 3. **[Frontend Files](https://github.com/GoogleCloudPlatform/agent-starter-pack/tree/main/src/frontends)** (Optional): If a `frontend_type` is specified, its files are copied.
130
+ 4. **[Base Agent Files](https://github.com/GoogleCloudPlatform/agent-starter-pack/tree/main/agents)**: The application logic from the `base_template` you specified (e.g., files from `agents/adk_base/`).
131
+ 5. **Remote Template Files**: **(Highest Precedence)** All files from the root of your remote repository (except for the `.template` directory itself).
132
+
133
+ ## Managing Dependencies
134
+
135
+ You have full control over the Python dependencies. Both `pyproject.toml` and `uv.lock` must be at the **root** of your remote template repository.
136
+ * **`pyproject.toml`**: Required file that replaces the base template's version. Must include all dependencies for your agent.
137
+
138
+ * **`uv.lock`**: Strongly recommended to ensure reproducibility.
139
+ * If present, guarantees exact dependency versions.
140
+ * If missing, falls back to base template's lock file. A new lock file will be generatede by the user when performing installation.
141
+
142
+ **Best Practice:** Always run `uv lock` after changing dependencies and commit the resulting lock file.
143
+
144
+ ## Makefile Behavior
145
+
146
+ You cannot replace the `Makefile` from the `base_template`. However, you can add new commands or override existing ones via the `settings.commands` section in your `templateconfig.yaml`.
147
+
148
+ **Example:**
149
+ ```yaml
150
+ settings:
151
+ commands:
152
+ override:
153
+ # Replaces the default 'make install' command
154
+ install: "uv sync --dev --extra jupyter"
155
+ extra:
156
+ # Adds 'make custom-lint'
157
+ custom-lint:
158
+ command: "ruff check ."
159
+ description: "Run a custom lint check."
160
+ ```
161
+
162
+ ## Configuration Reference
163
+
164
+ The `templateconfig.yaml` file is the control center for defining an agent's properties, for both built-in and remote templates. For a complete breakdown of all available fields and their options, see the [Template Config Reference](./template-config-reference.md).
165
+
166
+ ## Usage Reference
167
+
168
+ ### Creating a Project from a Template
169
+
170
+ Use the `create` command with the `--agent` (`-a`) flag.
171
+
172
+ * **Full GitHub URL:**
173
+ ```bash
174
+ uvx agent-starter-pack create my-agent -a https://github.com/my-org/my-repo/tree/main/path-to-template
175
+ ```
176
+
177
+ * **Shorthand URL (GitHub, GitLab, Bitbucket):**
178
+ ```bash
179
+ # Specify a branch/tag with @
180
+ uvx agent-starter-pack create my-agent -a github.com/my-org/my-repo/path-to-template@develop
181
+ ```
182
+
183
+ * **ADK Samples Shortcut:** A convenient alias for official Google agent examples. It allows you to create projects from the [google/adk-samples](https://github.com/google/adk-samples) repository without needing to type the full URL.
184
+ ```bash
185
+ # Creates a project from the 'gemini-fullstack' template in adk-samples
186
+ uvx agent-starter-pack create my-agent -a adk@gemini-fullstack
187
+ ```
188
+
189
+ * **Local Testing:**
190
+ ```bash
191
+ uvx agent-starter-pack create my-test-project -a local@./path/to/your/template
192
+ ```
193
+
194
+ ### Listing Available Agents
195
+
196
+ The `list` command helps you discover templates.
197
+
198
+ * **List Built-in Agents:**
199
+ ```bash
200
+ uvx agent-starter-pack list
201
+ ```
202
+
203
+ * **List Agents in a Remote Repository:**
204
+ ```bash
205
+ uvx agent-starter-pack list --source https://github.com/my-org/my-repo
206
+ ```
207
+
208
+ * **List Official ADK Samples:**
209
+ ```bash
210
+ uvx agent-starter-pack list --adk
211
+ ```