agent-starter-pack 0.8.0__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 (278) hide show
  1. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/.claude/settings.local.json +3 -1
  2. agent_starter_pack-0.9.0/.cloudbuild/ci/test_remote_template.yaml +36 -0
  3. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/.cloudbuild/terraform/build_triggers.tf +34 -14
  4. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/.gitignore +1 -0
  5. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/PKG-INFO +3 -2
  6. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/README.md +2 -1
  7. agent_starter_pack-0.8.0/agents/adk_base/template/.templateconfig.yaml → agent_starter_pack-0.9.0/agents/adk_base/.template/templateconfig.yaml +1 -1
  8. agent_starter_pack-0.8.0/agents/adk_gemini_fullstack/template/.templateconfig.yaml → agent_starter_pack-0.9.0/agents/adk_gemini_fullstack/.template/templateconfig.yaml +2 -2
  9. agent_starter_pack-0.8.0/agents/agentic_rag/template/.templateconfig.yaml → agent_starter_pack-0.9.0/agents/agentic_rag/.template/templateconfig.yaml +1 -1
  10. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/docs/.vitepress/config.js +7 -0
  11. agent_starter_pack-0.9.0/docs/guide/remote-templating.md +211 -0
  12. agent_starter_pack-0.9.0/docs/guide/template-config-reference.md +72 -0
  13. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/docs/index.md +4 -1
  14. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/pyproject.toml +2 -2
  15. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/base_template/Makefile +5 -1
  16. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/base_template/pyproject.toml +2 -2
  17. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/cli/commands/create.py +155 -43
  18. agent_starter_pack-0.9.0/src/cli/commands/list.py +158 -0
  19. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/cli/main.py +2 -0
  20. agent_starter_pack-0.9.0/src/cli/utils/remote_template.py +254 -0
  21. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/cli/utils/template.py +100 -25
  22. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/resources/locks/uv-adk_base-agent_engine.lock +151 -119
  23. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/resources/locks/uv-adk_base-cloud_run.lock +181 -146
  24. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/resources/locks/uv-adk_gemini_fullstack-agent_engine.lock +151 -119
  25. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/resources/locks/uv-adk_gemini_fullstack-cloud_run.lock +181 -146
  26. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/resources/locks/uv-agentic_rag-agent_engine.lock +154 -122
  27. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/resources/locks/uv-agentic_rag-cloud_run.lock +184 -149
  28. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/resources/locks/uv-crewai_coding_crew-agent_engine.lock +130 -130
  29. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/resources/locks/uv-crewai_coding_crew-cloud_run.lock +160 -160
  30. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/resources/locks/uv-langgraph_base_react-agent_engine.lock +109 -109
  31. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/resources/locks/uv-langgraph_base_react-cloud_run.lock +139 -139
  32. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/resources/locks/uv-live_api-cloud_run.lock +136 -136
  33. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/utils/lock_utils.py +1 -1
  34. agent_starter_pack-0.9.0/tests/cli/commands/test_create_local.py +78 -0
  35. agent_starter_pack-0.9.0/tests/cli/commands/test_list.py +40 -0
  36. agent_starter_pack-0.9.0/tests/cli/utils/test_remote_template.py +464 -0
  37. agent_starter_pack-0.9.0/tests/integration/test_remote_templating.py +103 -0
  38. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/tests/integration/test_template_linting.py +1 -46
  39. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/tests/integration/test_templated_patterns.py +1 -54
  40. agent_starter_pack-0.9.0/tests/integration/utils.py +73 -0
  41. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/uv.lock +1 -1
  42. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/.cloudbuild/cd/test_e2e.yaml +0 -0
  43. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/.cloudbuild/ci/build_use_wheel.yaml +0 -0
  44. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/.cloudbuild/ci/lint.yaml +0 -0
  45. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/.cloudbuild/ci/lint_templated_agents.yaml +0 -0
  46. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/.cloudbuild/ci/test.yaml +0 -0
  47. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/.cloudbuild/ci/test_templated_agents.yaml +0 -0
  48. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/.cloudbuild/terraform/apis.tf +0 -0
  49. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/.cloudbuild/terraform/service_account.tf +0 -0
  50. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/.cloudbuild/terraform/storage.tf +0 -0
  51. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/.cloudbuild/terraform/variables.tf +0 -0
  52. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/.github/workflows/docs.yml +0 -0
  53. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/CODE_OF_CONDUCT.md +0 -0
  54. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/CONTRIBUTING.md +0 -0
  55. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/LICENSE +0 -0
  56. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/Makefile +0 -0
  57. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/README.md +0 -0
  58. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/adk_base/README.md +0 -0
  59. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/adk_base/app/agent.py +0 -0
  60. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/adk_base/notebooks/adk_app_testing.ipynb +0 -0
  61. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/adk_base/notebooks/evaluating_adk_agent.ipynb +0 -0
  62. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/adk_base/tests/integration/test_agent.py +0 -0
  63. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/adk_gemini_fullstack/README.md +0 -0
  64. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/adk_gemini_fullstack/app/agent.py +0 -0
  65. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/adk_gemini_fullstack/app/config.py +0 -0
  66. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/adk_gemini_fullstack/notebooks/adk_app_testing.ipynb +0 -0
  67. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/adk_gemini_fullstack/notebooks/evaluating_adk_agent.ipynb +0 -0
  68. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/adk_gemini_fullstack/tests/integration/test_agent.py +0 -0
  69. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/agentic_rag/README.md +0 -0
  70. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/agentic_rag/app/agent.py +0 -0
  71. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/agentic_rag/app/retrievers.py +0 -0
  72. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/agentic_rag/app/templates.py +0 -0
  73. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/agentic_rag/notebooks/adk_app_testing.ipynb +0 -0
  74. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/agentic_rag/notebooks/evaluating_adk_agent.ipynb +0 -0
  75. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/agentic_rag/tests/integration/test_agent.py +0 -0
  76. /agent_starter_pack-0.8.0/agents/crewai_coding_crew/template/.templateconfig.yaml → /agent_starter_pack-0.9.0/agents/crewai_coding_crew/.template/templateconfig.yaml +0 -0
  77. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/crewai_coding_crew/README.md +0 -0
  78. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/crewai_coding_crew/app/agent.py +0 -0
  79. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/crewai_coding_crew/app/crew/config/agents.yaml +0 -0
  80. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/crewai_coding_crew/app/crew/config/tasks.yaml +0 -0
  81. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/crewai_coding_crew/app/crew/crew.py +0 -0
  82. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/crewai_coding_crew/notebooks/evaluating_crewai_agent.ipynb +0 -0
  83. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/crewai_coding_crew/notebooks/evaluating_langgraph_agent.ipynb +0 -0
  84. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/crewai_coding_crew/tests/integration/test_agent.py +0 -0
  85. /agent_starter_pack-0.8.0/agents/langgraph_base_react/template/.templateconfig.yaml → /agent_starter_pack-0.9.0/agents/langgraph_base_react/.template/templateconfig.yaml +0 -0
  86. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/langgraph_base_react/README.md +0 -0
  87. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/langgraph_base_react/app/agent.py +0 -0
  88. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/langgraph_base_react/notebooks/evaluating_langgraph_agent.ipynb +0 -0
  89. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/langgraph_base_react/tests/integration/test_agent.py +0 -0
  90. /agent_starter_pack-0.8.0/agents/live_api/template/.templateconfig.yaml → /agent_starter_pack-0.9.0/agents/live_api/.template/templateconfig.yaml +0 -0
  91. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/live_api/README.md +0 -0
  92. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/live_api/app/agent.py +0 -0
  93. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/live_api/app/server.py +0 -0
  94. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/live_api/tests/integration/test_server_e2e.py +0 -0
  95. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/live_api/tests/load_test/load_test.py +0 -0
  96. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/agents/live_api/tests/unit/test_server.py +0 -0
  97. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/docs/agents/overview.md +0 -0
  98. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/docs/cli/create.md +0 -0
  99. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/docs/cli/index.md +0 -0
  100. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/docs/cli/setup_cicd.md +0 -0
  101. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/docs/guide/data-ingestion.md +0 -0
  102. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/docs/guide/deploy-ui.md +0 -0
  103. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/docs/guide/deployment.md +0 -0
  104. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/docs/guide/development-guide.md +0 -0
  105. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/docs/guide/getting-started.md +0 -0
  106. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/docs/guide/installation.md +0 -0
  107. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/docs/guide/observability.md +0 -0
  108. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/docs/guide/troubleshooting.md +0 -0
  109. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/docs/guide/video-tutorials.md +0 -0
  110. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/docs/guide/why_starter_pack.md +0 -0
  111. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/docs/images/adk_gemini_fullstack.gif +0 -0
  112. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/docs/images/adk_gemini_fullstack_architecture.png +0 -0
  113. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/docs/images/adk_logo.png +0 -0
  114. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/docs/images/agent_starter_pack_screenshot.png +0 -0
  115. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/docs/images/ags_high_level_architecture.png +0 -0
  116. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/docs/images/icon.png +0 -0
  117. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/docs/images/logo.png +0 -0
  118. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/docs/images/prototype_to_prod.png +0 -0
  119. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/docs/images/why_sp_edited.png +0 -0
  120. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/docs/images/why_starter_pack.png +0 -0
  121. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/docs/package-lock.json +0 -0
  122. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/docs/package.json +0 -0
  123. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/llm.txt +0 -0
  124. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/base_template/.gitignore +0 -0
  125. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/base_template/GEMINI.md +0 -0
  126. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/base_template/README.md +0 -0
  127. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/base_template/app/__init__.py +0 -0
  128. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/base_template/app/utils/gcs.py +0 -0
  129. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/base_template/app/utils/tracing.py +0 -0
  130. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/base_template/app/utils/typing.py +0 -0
  131. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/base_template/deployment/README.md +0 -0
  132. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/base_template/deployment/cd/deploy-to-prod.yaml +0 -0
  133. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/base_template/deployment/cd/staging.yaml +0 -0
  134. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/base_template/deployment/ci/pr_checks.yaml +0 -0
  135. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/base_template/deployment/terraform/apis.tf +0 -0
  136. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/base_template/deployment/terraform/build_triggers.tf +0 -0
  137. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/base_template/deployment/terraform/dev/apis.tf +0 -0
  138. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/base_template/deployment/terraform/dev/iam.tf +0 -0
  139. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/base_template/deployment/terraform/dev/log_sinks.tf +0 -0
  140. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/base_template/deployment/terraform/dev/providers.tf +0 -0
  141. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/base_template/deployment/terraform/dev/storage.tf +0 -0
  142. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/base_template/deployment/terraform/dev/variables.tf +0 -0
  143. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/base_template/deployment/terraform/dev/vars/env.tfvars +0 -0
  144. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/base_template/deployment/terraform/iam.tf +0 -0
  145. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/base_template/deployment/terraform/locals.tf +0 -0
  146. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/base_template/deployment/terraform/log_sinks.tf +0 -0
  147. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/base_template/deployment/terraform/providers.tf +0 -0
  148. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/base_template/deployment/terraform/service_accounts.tf +0 -0
  149. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/base_template/deployment/terraform/storage.tf +0 -0
  150. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/base_template/deployment/terraform/variables.tf +0 -0
  151. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/base_template/deployment/terraform/vars/env.tfvars +0 -0
  152. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/base_template/tests/unit/test_dummy.py +0 -0
  153. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/cli/commands/setup_cicd.py +0 -0
  154. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/cli/utils/__init__.py +0 -0
  155. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/cli/utils/cicd.py +0 -0
  156. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/cli/utils/datastores.py +0 -0
  157. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/cli/utils/gcp.py +0 -0
  158. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/cli/utils/logging.py +0 -0
  159. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/cli/utils/version.py +0 -0
  160. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/data_ingestion/README.md +0 -0
  161. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/data_ingestion/data_ingestion_pipeline/components/ingest_data.py +0 -0
  162. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/data_ingestion/data_ingestion_pipeline/components/process_data.py +0 -0
  163. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/data_ingestion/data_ingestion_pipeline/pipeline.py +0 -0
  164. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/data_ingestion/data_ingestion_pipeline/submit_pipeline.py +0 -0
  165. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/data_ingestion/pyproject.toml +0 -0
  166. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/data_ingestion/uv.lock +0 -0
  167. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/deployment_targets/agent_engine/app/agent_engine_app.py +0 -0
  168. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/deployment_targets/agent_engine/deployment_metadata.json +0 -0
  169. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/deployment_targets/agent_engine/notebooks/intro_agent_engine.ipynb +0 -0
  170. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/deployment_targets/agent_engine/tests/integration/test_agent_engine_app.py +0 -0
  171. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/deployment_targets/agent_engine/tests/load_test/.results/.placeholder +0 -0
  172. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/deployment_targets/agent_engine/tests/load_test/README.md +0 -0
  173. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/deployment_targets/agent_engine/tests/load_test/load_test.py +0 -0
  174. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/deployment_targets/cloud_run/Dockerfile +0 -0
  175. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/deployment_targets/cloud_run/app/server.py +0 -0
  176. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/deployment_targets/cloud_run/deployment/terraform/dev/service.tf +0 -0
  177. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/deployment_targets/cloud_run/deployment/terraform/service.tf +0 -0
  178. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/deployment_targets/cloud_run/tests/integration/test_server_e2e.py +0 -0
  179. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/deployment_targets/cloud_run/tests/load_test/.results/.placeholder +0 -0
  180. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/deployment_targets/cloud_run/tests/load_test/README.md +0 -0
  181. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/deployment_targets/cloud_run/tests/load_test/load_test.py +0 -0
  182. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/components.json +0 -0
  183. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/eslint.config.js +0 -0
  184. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/index.html +0 -0
  185. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/package-lock.json +0 -0
  186. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/package.json +0 -0
  187. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/src/App.tsx +0 -0
  188. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ActivityTimeline.tsx +0 -0
  189. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ChatMessagesView.tsx +0 -0
  190. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/InputForm.tsx +0 -0
  191. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/WelcomeScreen.tsx +0 -0
  192. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/badge.tsx +0 -0
  193. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/button.tsx +0 -0
  194. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/card.tsx +0 -0
  195. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/input.tsx +0 -0
  196. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/scroll-area.tsx +0 -0
  197. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/select.tsx +0 -0
  198. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/tabs.tsx +0 -0
  199. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/textarea.tsx +0 -0
  200. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/src/global.css +0 -0
  201. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/src/main.tsx +0 -0
  202. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/src/utils.ts +0 -0
  203. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/src/vite-env.d.ts +0 -0
  204. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/tsconfig.json +0 -0
  205. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/tsconfig.node.json +0 -0
  206. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/adk_gemini_fullstack/frontend/vite.config.ts +0 -0
  207. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/package-lock.json +0 -0
  208. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/package.json +0 -0
  209. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/public/favicon.ico +0 -0
  210. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/public/index.html +0 -0
  211. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/public/robots.txt +0 -0
  212. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/App.scss +0 -0
  213. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/App.test.tsx +0 -0
  214. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/App.tsx +0 -0
  215. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/components/audio-pulse/AudioPulse.tsx +0 -0
  216. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/components/audio-pulse/audio-pulse.scss +0 -0
  217. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/components/control-tray/ControlTray.tsx +0 -0
  218. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/components/control-tray/control-tray.scss +0 -0
  219. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/components/logger/Logger.tsx +0 -0
  220. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/components/logger/logger.scss +0 -0
  221. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/components/logger/mock-logs.ts +0 -0
  222. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/components/side-panel/SidePanel.tsx +0 -0
  223. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/components/side-panel/side-panel.scss +0 -0
  224. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/contexts/LiveAPIContext.tsx +0 -0
  225. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/hooks/use-live-api.ts +0 -0
  226. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/hooks/use-media-stream-mux.ts +0 -0
  227. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/hooks/use-screen-capture.ts +0 -0
  228. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/hooks/use-webcam.ts +0 -0
  229. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/index.css +0 -0
  230. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/index.tsx +0 -0
  231. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/multimodal-live-types.ts +0 -0
  232. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/react-app-env.d.ts +0 -0
  233. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/reportWebVitals.ts +0 -0
  234. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/setupTests.ts +0 -0
  235. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/utils/audio-recorder.ts +0 -0
  236. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/utils/audio-streamer.ts +0 -0
  237. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/utils/audioworklet-registry.ts +0 -0
  238. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/utils/multimodal-live-client.ts +0 -0
  239. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/utils/store-logger.ts +0 -0
  240. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/utils/utils.ts +0 -0
  241. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/utils/worklets/audio-processing.ts +0 -0
  242. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/src/utils/worklets/vol-meter.ts +0 -0
  243. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/live_api_react/frontend/tsconfig.json +0 -0
  244. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/streamlit/frontend/side_bar.py +0 -0
  245. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/streamlit/frontend/streamlit_app.py +0 -0
  246. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/streamlit/frontend/style/app_markdown.py +0 -0
  247. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/streamlit/frontend/utils/chat_utils.py +0 -0
  248. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/streamlit/frontend/utils/local_chat_history.py +0 -0
  249. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/streamlit/frontend/utils/message_editing.py +0 -0
  250. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/streamlit/frontend/utils/multimodal_utils.py +0 -0
  251. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/streamlit/frontend/utils/stream_handler.py +0 -0
  252. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/frontends/streamlit/frontend/utils/title_summary.py +0 -0
  253. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/resources/containers/data_processing/Dockerfile +0 -0
  254. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/resources/containers/e2e-tests/Dockerfile +0 -0
  255. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/resources/docs/adk-cheatsheet.md +0 -0
  256. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/resources/idx/.idx/dev.nix +0 -0
  257. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/resources/idx/idx-template.json +0 -0
  258. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/resources/idx/idx-template.nix +0 -0
  259. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/resources/setup_cicd/cicd_variables.tf +0 -0
  260. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/resources/setup_cicd/github.tf +0 -0
  261. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/resources/setup_cicd/providers.tf +0 -0
  262. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/utils/generate_locks.py +0 -0
  263. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/src/utils/watch_and_rebuild.py +0 -0
  264. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/tests/__init__.py +0 -0
  265. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/tests/cicd/example.env +0 -0
  266. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/tests/cicd/test_e2e_deployment.py +0 -0
  267. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/tests/cli/commands/test_create.py +0 -0
  268. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/tests/cli/commands/test_setup_cicd.py +0 -0
  269. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/tests/cli/utils/test_cicd.py +0 -0
  270. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/tests/test_frontend/test_side_bar.py +0 -0
  271. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/tests/test_frontend/test_streamlit_app.py +0 -0
  272. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/tests/test_frontend/test_utils/test_chat_utils.py +0 -0
  273. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/tests/test_frontend/test_utils/test_local_chat_history.py +0 -0
  274. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/tests/test_frontend/test_utils/test_message_editing.py +0 -0
  275. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/tests/test_frontend/test_utils/test_multimodal_utils.py +0 -0
  276. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/tests/test_frontend/test_utils/test_stream_handler.py +0 -0
  277. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/tests/utils/__init__.py +0 -0
  278. {agent_starter_pack-0.8.0 → agent_starter_pack-0.9.0}/tests/utils/get_agents.py +0 -0
@@ -2,7 +2,9 @@
2
2
  "permissions": {
3
3
  "allow": [
4
4
  "Bash(grep:*)",
5
- "Bash(find:*)"
5
+ "Bash(find:*)",
6
+ "Bash(uv run:*)",
7
+ "Bash(git add:*)"
6
8
  ],
7
9
  "deny": []
8
10
  }
@@ -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
@@ -84,21 +84,13 @@ locals {
84
84
  name = "live_api-cloud_run"
85
85
  value = "live_api,cloud_run"
86
86
  },
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"
94
- },
95
87
  {
96
88
  name = "adk_base-cloud_run-alloydb"
97
89
  value = "adk_base,cloud_run,--session-type,alloydb"
98
90
  },
99
91
  ]
100
92
 
101
- agent_testing_included_files = { for combo in local.agent_testing_combinations :
93
+ agent_testing_included_files = { for combo in local.agent_testing_combinations :
102
94
  combo.name => [
103
95
  # Only include files for the specific agent being tested
104
96
  "agents/${split(",", combo.value)[0]}/**",
@@ -138,10 +130,6 @@ locals {
138
130
  name = "live_api-cloud_run"
139
131
  value = "live_api,cloud_run"
140
132
  },
141
- {
142
- name = "adk_gemini_fullstack-agent_engine"
143
- value = "adk_gemini_fullstack,agent_engine"
144
- },
145
133
  {
146
134
  name = "adk_base-cloud_run-alloydb"
147
135
  value = "adk_base,cloud_run,--session-type,alloydb"
@@ -154,7 +142,17 @@ locals {
154
142
  }
155
143
 
156
144
  e2e_agent_deployment_included_files = { for combo in local.agent_testing_combinations :
157
- 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
+ ] : [
158
156
  # Only include files for the specific agent being tested
159
157
  "agents/${split(",", combo.value)[0]}/**",
160
158
  # Common files that affect all agents
@@ -321,3 +319,25 @@ resource "google_cloudbuild_trigger" "main_e2e_deployment_test" {
321
319
  _E2E_PROD_PROJECT = var.e2e_test_project_mapping.prod
322
320
  }
323
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
+ }
@@ -198,3 +198,4 @@ cleanup_e2e_projects.sh
198
198
  .cloudbuild/terraform/backend.tf
199
199
  .cloudbuild/terraform/vars/env.tfvars
200
200
  docs/.vitepress/cache
201
+ tests/cicd/delete_gcp_resources.sh
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent-starter-pack
3
- Version: 0.8.0
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
@@ -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
 
@@ -18,7 +18,7 @@ settings:
18
18
  requires_data_ingestion: false
19
19
  requires_session: true
20
20
  deployment_targets: ["agent_engine", "cloud_run"]
21
- extra_dependencies: ["google-adk~=1.5.0"]
21
+ extra_dependencies: ["google-adk~=1.6.0"]
22
22
  tags: ["adk"]
23
23
  frontend_type: "None"
24
24
 
@@ -18,12 +18,12 @@ settings:
18
18
  requires_data_ingestion: false
19
19
  requires_session: true
20
20
  deployment_targets: ["agent_engine", "cloud_run"]
21
- extra_dependencies: ["google-adk~=1.5.0"]
21
+ extra_dependencies: ["google-adk~=1.6.0"]
22
22
  tags: ["adk"]
23
23
  frontend_type: "adk_gemini_fullstack"
24
24
  commands:
25
25
  override:
26
- install: "npm --prefix frontend install"
26
+ install: "uv sync --dev --extra jupyter && npm --prefix frontend install"
27
27
  extra:
28
28
  dev:
29
29
  command: 'make dev-backend & make dev-frontend'
@@ -19,7 +19,7 @@ settings:
19
19
  requires_session: true
20
20
  deployment_targets: ["agent_engine", "cloud_run"]
21
21
  extra_dependencies: [
22
- "google-adk~=1.5.0",
22
+ "google-adk~=1.6.0",
23
23
  "langchain-google-vertexai~=2.0.7",
24
24
  "langchain~=0.3.24",
25
25
  "langchain-core~=0.3.55",
@@ -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: [
@@ -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
+ ```
@@ -0,0 +1,72 @@
1
+ # `templateconfig.yaml` Reference
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.
4
+
5
+ ## Top-Level Fields
6
+
7
+ | Field | Type | Required | Description |
8
+ | ------------------- | ------ | -------- | ------------------------------------------------------------------------------------------------------- |
9
+ | `base_template` | string | Yes | The name of the built-in agent that the remote template will inherit from (e.g., `adk_base`, `agentic_rag`). |
10
+ | `name` | string | Yes | The display name of your template, shown in the `list` command. |
11
+ | `description` | string | Yes | A brief description of your template, also shown in the `list` command. |
12
+ | `example_question` | string | No | An example question or prompt that will be included in the generated project's `README.md`. |
13
+ | `settings` | object | No | A nested object containing detailed configuration for the template. See `settings` section below. |
14
+
15
+ ## The `settings` Object
16
+
17
+ This object contains fields that control the generated project's features and behavior.
18
+
19
+ | Field | Type | Description |
20
+ | --------------------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
21
+ | `deployment_targets` | list(string) | A list of deployment targets your template supports. Options: `agent_engine`, `cloud_run`. |
22
+ | `tags` | list(string) | A list of tags for categorization. The `adk` tag enables special integrations with the Agent Development Kit. |
23
+ | `frontend_type` | string | Specifies the frontend to use. Examples: `streamlit`, `live_api_react`. Defaults to `streamlit`. |
24
+ | `requires_data_ingestion` | boolean | If `true`, the user will be prompted to configure a datastore. |
25
+ | `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
+ | `extra_dependencies` | list(string) | **Note:** This field is ignored by remote templates. It is used internally by the starter pack's built-in templates. Your `pyproject.toml` is the single source of truth for dependencies. |
27
+ | `commands` | object | Allows for customizing the `Makefile` in the generated project. See `commands` section below. |
28
+
29
+ ## The `commands` Object
30
+
31
+ This object allows you to add new `make` commands or override existing ones.
32
+
33
+ ### `override`
34
+ Use this to change the behavior of a default command.
35
+
36
+ ```yaml
37
+ settings:
38
+ commands:
39
+ override:
40
+ # Replaces the default 'make install' command
41
+ install: "uv sync --dev --extra jupyter && npm --prefix frontend install"
42
+ ```
43
+
44
+ ### `extra`
45
+ Use this to add new commands to the `Makefile`.
46
+
47
+ - **Simple Command**:
48
+ ```yaml
49
+ settings:
50
+ commands:
51
+ extra:
52
+ # Adds 'make custom-lint'
53
+ custom-lint:
54
+ command: "ruff check ."
55
+ description: "Run a custom lint check."
56
+ ```
57
+
58
+ - **Deployment-Specific Command**:
59
+ You can provide different versions of a command based on the chosen `deployment_target`.
60
+
61
+ ```yaml
62
+ settings:
63
+ commands:
64
+ extra:
65
+ dev-backend:
66
+ command:
67
+ # Command for 'make dev-backend' if target is 'agent_engine'
68
+ agent_engine: 'uv run adk api_server app --allow_origins="*"'
69
+ # Command for 'make dev-backend' if target is 'cloud_run'
70
+ cloud_run: 'ALLOW_ORIGINS="*" uv run uvicorn app.server:app --host 0.0.0.0 --port 8000 --reload'
71
+ description: "Start the backend development server."
72
+ ```
@@ -32,7 +32,10 @@ features:
32
32
  details: Ship reliable agents with production-ready infra (Cloud Run / Agent Engine) featuring monitoring, observability, and CI/CD.
33
33
  - icon: 🛠️
34
34
  title: Customize & Extend
35
- details: Adapt and enhance templates and infrastructure for your specific use case.
35
+ details: Adapt and enhance templates for your specific use case, or create your own.
36
+ - icon: 🌐
37
+ title: Remote Templates
38
+ details: Create and share your own agent templates for easy reuse and distribution.
36
39
  ---
37
40
 
38
41
  ::: tip ⭐ Like Agent Starter Pack?
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "agent-starter-pack"
3
- version = "0.8.0"
3
+ version = "0.9.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" },
@@ -63,7 +63,7 @@ lint = [
63
63
  [tool.pytest.ini_options]
64
64
  pythonpath = [".", "src/frontends/streamlit", "src", "agents/agentic_rag"]
65
65
  testpaths = ["tests"]
66
- addopts = "-s -v --ignore=tests/integration/test_template_linting.py --ignore=tests/integration/test_templated_patterns.py"
66
+ addopts = "-s -v --ignore=tests/integration"
67
67
  log_cli = true
68
68
  log_cli_level = "INFO"
69
69
  log_cli_format = "%(asctime)s - %(levelname)s - %(message)s"
@@ -1,8 +1,12 @@
1
1
  # Install dependencies using uv package manager
2
2
  install:
3
3
  @command -v uv >/dev/null 2>&1 || { echo "uv is not installed. Installing uv..."; curl -LsSf https://astral.sh/uv/0.6.12/install.sh | sh; source $HOME/.local/bin/env; }
4
+ {%- if cookiecutter.settings.get("commands", {}).get("override", {}).get("install") %}
5
+ {{cookiecutter.settings.get("commands", {}).get("override", {}).get("install")}}
6
+ {%- else %}
4
7
  uv sync --dev{% if cookiecutter.agent_name != 'live_api' and "adk" not in cookiecutter.tags %} --extra streamlit{%- endif %} --extra jupyter{% if cookiecutter.agent_name == 'live_api' %} && npm --prefix frontend install{%- endif %}
5
- {%- if cookiecutter.settings.get("commands", {}).get("override", {}).get("install") %} && {{cookiecutter.settings.get("commands", {}).get("override", {}).get("install")}}{%- endif %}
8
+ {%- endif %}
9
+
6
10
  {%- if cookiecutter.settings.get("commands", {}).get("extra", {}) %}
7
11
  {%- for cmd_name, cmd_value in cookiecutter.settings.get("commands", {}).get("extra", {}).items() %}
8
12
 
@@ -16,12 +16,12 @@ dependencies = [
16
16
  {%- endif %}
17
17
  "google-cloud-logging~=3.11.4",
18
18
  {%- if cookiecutter.deployment_target == 'cloud_run' %}
19
- "google-cloud-aiplatform[evaluation]~=1.101.0",
19
+ "google-cloud-aiplatform[evaluation]~=1.103.0",
20
20
  "fastapi~=0.115.8",
21
21
  "uvicorn~=0.34.0",
22
22
  "psycopg2-binary>=2.9.10",
23
23
  {%- elif cookiecutter.deployment_target == 'agent_engine' %}
24
- "google-cloud-aiplatform[evaluation,agent-engines]~=1.101.0"
24
+ "google-cloud-aiplatform[evaluation,agent-engines]~=1.103.0"
25
25
  {%- endif %}
26
26
  ]
27
27
  {% if cookiecutter.deployment_target == 'cloud_run' %}