agent-starter-pack 0.15.2__tar.gz → 0.15.4__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 (262) hide show
  1. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/.claude/settings.local.json +2 -1
  2. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/PKG-INFO +1 -1
  3. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/pyproject.toml +1 -1
  4. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/cli/commands/create.py +19 -9
  5. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/cli/main.py +4 -2
  6. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/deployment_targets/agent_engine/{{cookiecutter.agent_directory}}/agent_engine_app.py +86 -96
  7. agent_starter_pack-0.15.4/src/deployment_targets/agent_engine/{{cookiecutter.agent_directory}}/utils/deployment.py +85 -0
  8. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/uv.lock +1 -1
  9. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/.cloudbuild/cd/test_e2e.yaml +0 -0
  10. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/.cloudbuild/ci/build_use_wheel.yaml +0 -0
  11. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/.cloudbuild/ci/lint.yaml +0 -0
  12. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/.cloudbuild/ci/lint_templated_agents.yaml +0 -0
  13. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/.cloudbuild/ci/test.yaml +0 -0
  14. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/.cloudbuild/ci/test_makefile.yaml +0 -0
  15. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/.cloudbuild/ci/test_pipeline_parity.yaml +0 -0
  16. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/.cloudbuild/ci/test_remote_template.yaml +0 -0
  17. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/.cloudbuild/ci/test_templated_agents.yaml +0 -0
  18. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/.cloudbuild/terraform/apis.tf +0 -0
  19. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/.cloudbuild/terraform/build_triggers.tf +0 -0
  20. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/.cloudbuild/terraform/service_account.tf +0 -0
  21. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/.cloudbuild/terraform/storage.tf +0 -0
  22. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/.cloudbuild/terraform/variables.tf +0 -0
  23. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/.github/workflows/docs.yml +0 -0
  24. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/.gitignore +0 -0
  25. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/CLAUDE.md +0 -0
  26. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/CODE_OF_CONDUCT.md +0 -0
  27. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/CONTRIBUTING.md +0 -0
  28. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/GEMINI.md +0 -0
  29. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/LICENSE +0 -0
  30. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/Makefile +0 -0
  31. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/README.md +0 -0
  32. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/README.md +0 -0
  33. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/adk_base/.template/templateconfig.yaml +0 -0
  34. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/adk_base/README.md +0 -0
  35. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/adk_base/app/__init__.py +0 -0
  36. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/adk_base/app/agent.py +0 -0
  37. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/adk_base/notebooks/adk_app_testing.ipynb +0 -0
  38. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/adk_base/notebooks/evaluating_adk_agent.ipynb +0 -0
  39. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/adk_base/tests/integration/test_agent.py +0 -0
  40. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/agentic_rag/.template/templateconfig.yaml +0 -0
  41. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/agentic_rag/README.md +0 -0
  42. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/agentic_rag/app/__init__.py +0 -0
  43. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/agentic_rag/app/agent.py +0 -0
  44. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/agentic_rag/app/retrievers.py +0 -0
  45. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/agentic_rag/app/templates.py +0 -0
  46. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/agentic_rag/notebooks/adk_app_testing.ipynb +0 -0
  47. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/agentic_rag/notebooks/evaluating_adk_agent.ipynb +0 -0
  48. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/agentic_rag/tests/integration/test_agent.py +0 -0
  49. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/crewai_coding_crew/.template/templateconfig.yaml +0 -0
  50. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/crewai_coding_crew/README.md +0 -0
  51. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/crewai_coding_crew/app/agent.py +0 -0
  52. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/crewai_coding_crew/app/crew/config/agents.yaml +0 -0
  53. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/crewai_coding_crew/app/crew/config/tasks.yaml +0 -0
  54. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/crewai_coding_crew/app/crew/crew.py +0 -0
  55. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/crewai_coding_crew/notebooks/evaluating_crewai_agent.ipynb +0 -0
  56. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/crewai_coding_crew/notebooks/evaluating_langgraph_agent.ipynb +0 -0
  57. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/crewai_coding_crew/tests/integration/test_agent.py +0 -0
  58. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/langgraph_base_react/.template/templateconfig.yaml +0 -0
  59. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/langgraph_base_react/README.md +0 -0
  60. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/langgraph_base_react/app/agent.py +0 -0
  61. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/langgraph_base_react/notebooks/evaluating_langgraph_agent.ipynb +0 -0
  62. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/langgraph_base_react/tests/integration/test_agent.py +0 -0
  63. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/live_api/.template/templateconfig.yaml +0 -0
  64. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/live_api/README.md +0 -0
  65. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/live_api/app/agent.py +0 -0
  66. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/live_api/tests/integration/test_server_e2e.py +0 -0
  67. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/live_api/tests/load_test/load_test.py +0 -0
  68. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/agents/live_api/tests/unit/test_server.py +0 -0
  69. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/docs/.vitepress/config.js +0 -0
  70. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/docs/agents/overview.md +0 -0
  71. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/docs/cli/create.md +0 -0
  72. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/docs/cli/enhance.md +0 -0
  73. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/docs/cli/index.md +0 -0
  74. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/docs/cli/list.md +0 -0
  75. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/docs/cli/setup_cicd.md +0 -0
  76. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/docs/guide/community-showcase.md +0 -0
  77. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/docs/guide/data-ingestion.md +0 -0
  78. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/docs/guide/deploy-ui.md +0 -0
  79. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/docs/guide/deployment.md +0 -0
  80. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/docs/guide/development-guide.md +0 -0
  81. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/docs/guide/getting-started.md +0 -0
  82. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/docs/guide/installation.md +0 -0
  83. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/docs/guide/observability.md +0 -0
  84. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/docs/guide/template-config-reference.md +0 -0
  85. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/docs/guide/troubleshooting.md +0 -0
  86. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/docs/guide/video-tutorials.md +0 -0
  87. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/docs/guide/why_starter_pack.md +0 -0
  88. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/docs/images/adk_gemini_fullstack.gif +0 -0
  89. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/docs/images/adk_gemini_fullstack_architecture.png +0 -0
  90. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/docs/images/adk_logo.png +0 -0
  91. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/docs/images/agent_starter_pack_screenshot.png +0 -0
  92. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/docs/images/ags_high_level_architecture.png +0 -0
  93. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/docs/images/icon.png +0 -0
  94. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/docs/images/logo.png +0 -0
  95. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/docs/images/prototype_to_prod.png +0 -0
  96. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/docs/images/why_sp_edited.png +0 -0
  97. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/docs/images/why_starter_pack.png +0 -0
  98. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/docs/index.md +0 -0
  99. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/docs/package-lock.json +0 -0
  100. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/docs/package.json +0 -0
  101. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/docs/remote-templates/creating-remote-templates.md +0 -0
  102. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/docs/remote-templates/index.md +0 -0
  103. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/docs/remote-templates/using-remote-templates.md +0 -0
  104. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/llm.txt +0 -0
  105. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/base_template/.gitignore +0 -0
  106. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/base_template/GEMINI.md +0 -0
  107. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/base_template/Makefile +0 -0
  108. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/base_template/README.md +0 -0
  109. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/base_template/deployment/README.md +0 -0
  110. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/base_template/deployment/terraform/apis.tf +0 -0
  111. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/base_template/deployment/terraform/dev/apis.tf +0 -0
  112. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/base_template/deployment/terraform/dev/iam.tf +0 -0
  113. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/base_template/deployment/terraform/dev/log_sinks.tf +0 -0
  114. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/base_template/deployment/terraform/dev/providers.tf +0 -0
  115. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/base_template/deployment/terraform/dev/storage.tf +0 -0
  116. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/base_template/deployment/terraform/dev/variables.tf +0 -0
  117. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/base_template/deployment/terraform/dev/vars/env.tfvars +0 -0
  118. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/base_template/deployment/terraform/github.tf +0 -0
  119. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/base_template/deployment/terraform/iam.tf +0 -0
  120. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/base_template/deployment/terraform/locals.tf +0 -0
  121. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/base_template/deployment/terraform/log_sinks.tf +0 -0
  122. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/base_template/deployment/terraform/providers.tf +0 -0
  123. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/base_template/deployment/terraform/service_accounts.tf +0 -0
  124. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/base_template/deployment/terraform/storage.tf +0 -0
  125. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/base_template/deployment/terraform/variables.tf +0 -0
  126. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/base_template/deployment/terraform/vars/env.tfvars +0 -0
  127. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/base_template/deployment/terraform/{% if cookiecutter.cicd_runner == 'github_actions' %}wif.tf{% else %}unused_wif.tf{% endif %} +0 -0
  128. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/base_template/deployment/terraform/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}build_triggers.tf{% else %}unused_build_triggers.tf{% endif %} +0 -0
  129. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/base_template/pyproject.toml +0 -0
  130. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/base_template/tests/unit/test_dummy.py +0 -0
  131. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/base_template/{% if cookiecutter.cicd_runner == 'github_actions' %}.github{% else %}unused_github{% endif %}/workflows/deploy-to-prod.yaml +0 -0
  132. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/base_template/{% if cookiecutter.cicd_runner == 'github_actions' %}.github{% else %}unused_github{% endif %}/workflows/pr_checks.yaml +0 -0
  133. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/base_template/{% if cookiecutter.cicd_runner == 'github_actions' %}.github{% else %}unused_github{% endif %}/workflows/staging.yaml +0 -0
  134. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/base_template/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}.cloudbuild{% else %}unused_.cloudbuild{% endif %}/deploy-to-prod.yaml +0 -0
  135. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/base_template/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}.cloudbuild{% else %}unused_.cloudbuild{% endif %}/pr_checks.yaml +0 -0
  136. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/base_template/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}.cloudbuild{% else %}unused_.cloudbuild{% endif %}/staging.yaml +0 -0
  137. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/base_template/{{cookiecutter.agent_directory}}/utils/gcs.py +0 -0
  138. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/base_template/{{cookiecutter.agent_directory}}/utils/tracing.py +0 -0
  139. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/base_template/{{cookiecutter.agent_directory}}/utils/typing.py +0 -0
  140. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/cli/commands/enhance.py +0 -0
  141. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/cli/commands/list.py +0 -0
  142. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/cli/commands/setup_cicd.py +0 -0
  143. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/cli/utils/__init__.py +0 -0
  144. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/cli/utils/cicd.py +0 -0
  145. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/cli/utils/datastores.py +0 -0
  146. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/cli/utils/gcp.py +0 -0
  147. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/cli/utils/logging.py +0 -0
  148. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/cli/utils/remote_template.py +0 -0
  149. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/cli/utils/template.py +0 -0
  150. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/cli/utils/version.py +0 -0
  151. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/data_ingestion/README.md +0 -0
  152. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/data_ingestion/data_ingestion_pipeline/components/ingest_data.py +0 -0
  153. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/data_ingestion/data_ingestion_pipeline/components/process_data.py +0 -0
  154. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/data_ingestion/data_ingestion_pipeline/pipeline.py +0 -0
  155. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/data_ingestion/data_ingestion_pipeline/submit_pipeline.py +0 -0
  156. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/data_ingestion/pyproject.toml +0 -0
  157. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/data_ingestion/uv.lock +0 -0
  158. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/deployment_targets/agent_engine/deployment_metadata.json +0 -0
  159. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/deployment_targets/agent_engine/notebooks/intro_agent_engine.ipynb +0 -0
  160. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/deployment_targets/agent_engine/tests/integration/test_agent_engine_app.py +0 -0
  161. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/deployment_targets/agent_engine/tests/load_test/.results/.placeholder +0 -0
  162. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/deployment_targets/agent_engine/tests/load_test/README.md +0 -0
  163. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/deployment_targets/agent_engine/tests/load_test/load_test.py +0 -0
  164. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/deployment_targets/cloud_run/Dockerfile +0 -0
  165. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/deployment_targets/cloud_run/deployment/terraform/dev/service.tf +0 -0
  166. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/deployment_targets/cloud_run/deployment/terraform/service.tf +0 -0
  167. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/deployment_targets/cloud_run/tests/integration/test_server_e2e.py +0 -0
  168. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/deployment_targets/cloud_run/tests/load_test/.results/.placeholder +0 -0
  169. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/deployment_targets/cloud_run/tests/load_test/README.md +0 -0
  170. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/deployment_targets/cloud_run/tests/load_test/load_test.py +0 -0
  171. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/deployment_targets/cloud_run/{{cookiecutter.agent_directory}}/server.py +0 -0
  172. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/live_api_react/frontend/package-lock.json +0 -0
  173. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/live_api_react/frontend/package.json +0 -0
  174. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/live_api_react/frontend/public/favicon.ico +0 -0
  175. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/live_api_react/frontend/public/index.html +0 -0
  176. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/live_api_react/frontend/public/robots.txt +0 -0
  177. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/live_api_react/frontend/src/App.scss +0 -0
  178. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/live_api_react/frontend/src/App.test.tsx +0 -0
  179. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/live_api_react/frontend/src/App.tsx +0 -0
  180. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/live_api_react/frontend/src/components/audio-pulse/AudioPulse.tsx +0 -0
  181. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/live_api_react/frontend/src/components/audio-pulse/audio-pulse.scss +0 -0
  182. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/live_api_react/frontend/src/components/logger/Logger.tsx +0 -0
  183. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/live_api_react/frontend/src/components/logger/logger.scss +0 -0
  184. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/live_api_react/frontend/src/components/logger/mock-logs.ts +0 -0
  185. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/live_api_react/frontend/src/components/side-panel/SidePanel.tsx +0 -0
  186. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/live_api_react/frontend/src/components/side-panel/side-panel.scss +0 -0
  187. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/live_api_react/frontend/src/contexts/LiveAPIContext.tsx +0 -0
  188. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/live_api_react/frontend/src/hooks/use-live-api.ts +0 -0
  189. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/live_api_react/frontend/src/hooks/use-media-stream-mux.ts +0 -0
  190. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/live_api_react/frontend/src/hooks/use-screen-capture.ts +0 -0
  191. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/live_api_react/frontend/src/hooks/use-webcam.ts +0 -0
  192. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/live_api_react/frontend/src/index.css +0 -0
  193. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/live_api_react/frontend/src/index.tsx +0 -0
  194. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/live_api_react/frontend/src/multimodal-live-types.ts +0 -0
  195. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/live_api_react/frontend/src/react-app-env.d.ts +0 -0
  196. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/live_api_react/frontend/src/reportWebVitals.ts +0 -0
  197. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/live_api_react/frontend/src/setupTests.ts +0 -0
  198. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/live_api_react/frontend/src/utils/audio-recorder.ts +0 -0
  199. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/live_api_react/frontend/src/utils/audio-streamer.ts +0 -0
  200. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/live_api_react/frontend/src/utils/audioworklet-registry.ts +0 -0
  201. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/live_api_react/frontend/src/utils/multimodal-live-client.ts +0 -0
  202. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/live_api_react/frontend/src/utils/store-logger.ts +0 -0
  203. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/live_api_react/frontend/src/utils/utils.ts +0 -0
  204. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/live_api_react/frontend/src/utils/worklets/audio-processing.ts +0 -0
  205. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/live_api_react/frontend/src/utils/worklets/vol-meter.ts +0 -0
  206. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/live_api_react/frontend/tsconfig.json +0 -0
  207. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/streamlit/frontend/side_bar.py +0 -0
  208. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/streamlit/frontend/streamlit_app.py +0 -0
  209. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/streamlit/frontend/style/app_markdown.py +0 -0
  210. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/streamlit/frontend/utils/chat_utils.py +0 -0
  211. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/streamlit/frontend/utils/local_chat_history.py +0 -0
  212. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/streamlit/frontend/utils/message_editing.py +0 -0
  213. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/streamlit/frontend/utils/multimodal_utils.py +0 -0
  214. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/streamlit/frontend/utils/stream_handler.py +0 -0
  215. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/frontends/streamlit/frontend/utils/title_summary.py +0 -0
  216. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/resources/containers/data_processing/Dockerfile +0 -0
  217. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/resources/containers/e2e-tests/Dockerfile +0 -0
  218. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/resources/docs/adk-cheatsheet.md +0 -0
  219. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/resources/idx/.idx/dev.nix +0 -0
  220. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/resources/idx/idx-template.json +0 -0
  221. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/resources/idx/idx-template.nix +0 -0
  222. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/resources/locks/uv-adk_base-agent_engine.lock +0 -0
  223. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/resources/locks/uv-adk_base-cloud_run.lock +0 -0
  224. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/resources/locks/uv-agentic_rag-agent_engine.lock +0 -0
  225. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/resources/locks/uv-agentic_rag-cloud_run.lock +0 -0
  226. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/resources/locks/uv-crewai_coding_crew-agent_engine.lock +0 -0
  227. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/resources/locks/uv-crewai_coding_crew-cloud_run.lock +0 -0
  228. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/resources/locks/uv-langgraph_base_react-agent_engine.lock +0 -0
  229. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/resources/locks/uv-langgraph_base_react-cloud_run.lock +0 -0
  230. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/resources/locks/uv-live_api-cloud_run.lock +0 -0
  231. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/utils/generate_locks.py +0 -0
  232. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/utils/lock_utils.py +0 -0
  233. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/src/utils/watch_and_rebuild.py +0 -0
  234. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/tests/__init__.py +0 -0
  235. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/tests/cicd/example.env +0 -0
  236. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/tests/cicd/scripts/delete_agent_engines.py +0 -0
  237. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/tests/cicd/scripts/delete_alloydb_clusters.py +0 -0
  238. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/tests/cicd/scripts/delete_vector_search.py +0 -0
  239. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/tests/cicd/test_e2e_deployment.py +0 -0
  240. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/tests/cli/commands/test_create.py +0 -0
  241. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/tests/cli/commands/test_create_local.py +0 -0
  242. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/tests/cli/commands/test_enhance.py +0 -0
  243. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/tests/cli/commands/test_list.py +0 -0
  244. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/tests/cli/commands/test_setup_cicd.py +0 -0
  245. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/tests/cli/utils/test_cicd.py +0 -0
  246. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/tests/cli/utils/test_remote_template.py +0 -0
  247. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/tests/integration/test_agent_directory_functionality.py +0 -0
  248. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/tests/integration/test_makefile_usability.py +0 -0
  249. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/tests/integration/test_pipeline_parity.py +0 -0
  250. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/tests/integration/test_remote_templating.py +0 -0
  251. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/tests/integration/test_template_linting.py +0 -0
  252. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/tests/integration/test_templated_patterns.py +0 -0
  253. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/tests/integration/utils.py +0 -0
  254. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/tests/test_frontend/test_side_bar.py +0 -0
  255. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/tests/test_frontend/test_streamlit_app.py +0 -0
  256. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/tests/test_frontend/test_utils/test_chat_utils.py +0 -0
  257. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/tests/test_frontend/test_utils/test_local_chat_history.py +0 -0
  258. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/tests/test_frontend/test_utils/test_message_editing.py +0 -0
  259. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/tests/test_frontend/test_utils/test_multimodal_utils.py +0 -0
  260. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/tests/test_frontend/test_utils/test_stream_handler.py +0 -0
  261. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/tests/utils/__init__.py +0 -0
  262. {agent_starter_pack-0.15.2 → agent_starter_pack-0.15.4}/tests/utils/get_agents.py +0 -0
@@ -14,7 +14,8 @@
14
14
  "Bash(uv run ruff check --fix tests/cli/utils/test_remote_template.py)",
15
15
  "Bash(uv run ruff check tests/cli/utils/test_remote_template.py)",
16
16
  "Bash(uv run pytest tests/cli/utils/test_remote_template.py -v)",
17
- "Bash(uv run pytest tests/integration/test_pipeline_parity.py::test_staging_parity -v -s)"
17
+ "Bash(uv run pytest tests/integration/test_pipeline_parity.py::test_staging_parity -v -s)",
18
+ "Bash(python3 -c \"from vertexai.agent_engines._agent_engines import AgentEngine; import inspect; print([m for m in dir(AgentEngine) if not m.startswith(''_'')])\")"
18
19
  ],
19
20
  "deny": [],
20
21
  "ask": []
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent-starter-pack
3
- Version: 0.15.2
3
+ Version: 0.15.4
4
4
  Summary: CLI to bootstrap production-ready Google Cloud GenAI agent projects from templates.
5
5
  Author-email: Google LLC <agent-starter-pack@google.com>
6
6
  License: Apache-2.0
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "agent-starter-pack"
3
- version = "0.15.2"
3
+ version = "0.15.4"
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" },
@@ -630,12 +630,13 @@ def create(
630
630
  # CI/CD runner selection
631
631
  final_cicd_runner = cicd_runner
632
632
  if not final_cicd_runner:
633
- if auto_approve:
633
+ if auto_approve or agent_garden:
634
634
  final_cicd_runner = "google_cloud_build"
635
- console.print(
636
- "Info: --cicd-runner not specified. Defaulting to 'google_cloud_build' in auto-approve mode.",
637
- style="yellow",
638
- )
635
+ if not agent_garden:
636
+ console.print(
637
+ "Info: --cicd-runner not specified. Defaulting to 'google_cloud_build' in auto-approve mode.",
638
+ style="yellow",
639
+ )
639
640
  else:
640
641
  final_cicd_runner = prompt_cicd_runner_selection()
641
642
  if debug:
@@ -646,7 +647,13 @@ def create(
646
647
  not auto_approve
647
648
  and ctx.get_parameter_source("region") != ParameterSource.COMMANDLINE
648
649
  ):
649
- region = prompt_region_confirmation(region)
650
+ # Show Agent Engine supported regions link if agent_garden flag is set
651
+ if agent_garden:
652
+ console.print(
653
+ "\n📍 [blue]Agent Engine Supported Regions:[/blue]\n"
654
+ " [cyan]https://cloud.google.com/vertex-ai/generative-ai/docs/agent-engine/overview#supported-regions[/cyan]"
655
+ )
656
+ region = prompt_region_confirmation(region, agent_garden=agent_garden)
650
657
  if debug:
651
658
  logging.debug(f"Selected region: {region}")
652
659
 
@@ -777,7 +784,9 @@ def create(
777
784
  raise
778
785
 
779
786
 
780
- def prompt_region_confirmation(default_region: str = "us-central1") -> str:
787
+ def prompt_region_confirmation(
788
+ default_region: str = "us-central1", agent_garden: bool = False
789
+ ) -> str:
781
790
  """Prompt user to confirm or change the default region."""
782
791
  new_region = Prompt.ask(
783
792
  "\nEnter desired GCP region (Gemini uses global endpoint by default)",
@@ -965,7 +974,8 @@ def setup_gcp_environment(
965
974
  logging.debug("Verifying GCP credentials...")
966
975
  creds_info = verify_credentials()
967
976
  # Handle credential verification and project selection
968
- if not auto_approve:
977
+ # Skip interactive prompts if auto_approve or agent_garden is set
978
+ if not auto_approve and not agent_garden:
969
979
  creds_info = _handle_credential_verification(creds_info)
970
980
  # If user chose to skip verification, don't test Vertex AI connection
971
981
  if creds_info.get("skip_vertex_test", False):
@@ -976,7 +986,7 @@ def setup_gcp_environment(
976
986
  creds_info["project"], region, agent_garden=agent_garden
977
987
  )
978
988
  else:
979
- # Even with auto_approve, we should still set the GCP project
989
+ # Even with auto_approve or agent_garden, we should still set the GCP project
980
990
  set_gcp_project(creds_info["project"], set_quota_project=True)
981
991
  # Test Vertex AI connection
982
992
  _test_vertex_ai_connection(
@@ -13,6 +13,7 @@
13
13
  # limitations under the License.
14
14
 
15
15
  import importlib.metadata
16
+ import sys
16
17
 
17
18
  import click
18
19
  from rich.console import Console
@@ -48,8 +49,9 @@ def print_version(ctx: click.Context, param: click.Parameter, value: bool) -> No
48
49
  help="Show the version and exit.",
49
50
  )
50
51
  def cli() -> None:
51
- # Check for updates at startup
52
- display_update_message()
52
+ # Check for updates at startup (skip if --agent-garden or -ag is used)
53
+ if "--agent-garden" not in sys.argv and "-ag" not in sys.argv:
54
+ display_update_message()
53
55
 
54
56
 
55
57
  # Register commands
@@ -14,12 +14,11 @@
14
14
 
15
15
  # mypy: disable-error-code="attr-defined,arg-type"
16
16
  {%- if "adk" in cookiecutter.tags %}
17
- import datetime
18
- import json
19
17
  import logging
20
18
  import os
21
19
  from typing import Any
22
20
 
21
+ import click
23
22
  import google.auth
24
23
  import vertexai
25
24
  from google.adk.artifacts import GcsArtifactService
@@ -30,6 +29,11 @@ from vertexai._genai.types import AgentEngine, AgentEngineConfig
30
29
  from vertexai.agent_engines.templates.adk import AdkApp
31
30
 
32
31
  from {{cookiecutter.agent_directory}}.agent import root_agent
32
+ from {{cookiecutter.agent_directory}}.utils.deployment import (
33
+ parse_env_vars,
34
+ print_deployment_success,
35
+ write_deployment_metadata,
36
+ )
33
37
  from {{cookiecutter.agent_directory}}.utils.gcs import create_bucket_if_not_exists
34
38
  from {{cookiecutter.agent_directory}}.utils.tracing import CloudTraceLoggingSpanExporter
35
39
  from {{cookiecutter.agent_directory}}.utils.typing import Feedback
@@ -68,8 +72,6 @@ class AgentEngineApp(AdkApp):
68
72
  return operations
69
73
 
70
74
  {%- else %}
71
- import datetime
72
- import json
73
75
  import logging
74
76
  import os
75
77
  from collections.abc import Iterable, Mapping
@@ -77,6 +79,7 @@ from typing import (
77
79
  Any,
78
80
  )
79
81
 
82
+ import click
80
83
  import google.auth
81
84
  import vertexai
82
85
  from google.cloud import logging as google_cloud_logging
@@ -84,6 +87,11 @@ from langchain_core.runnables import RunnableConfig
84
87
  from traceloop.sdk import Instruments, Traceloop
85
88
  from vertexai._genai.types import AgentEngine, AgentEngineConfig
86
89
 
90
+ from {{cookiecutter.agent_directory}}.utils.deployment import (
91
+ parse_env_vars,
92
+ print_deployment_success,
93
+ write_deployment_metadata,
94
+ )
87
95
  from {{cookiecutter.agent_directory}}.utils.gcs import create_bucket_if_not_exists
88
96
  from {{cookiecutter.agent_directory}}.utils.tracing import CloudTraceLoggingSpanExporter
89
97
  from {{cookiecutter.agent_directory}}.utils.typing import Feedback, InputChat, dumpd, ensure_valid_config
@@ -190,17 +198,69 @@ class AgentEngineApp:
190
198
  {%- endif %}
191
199
 
192
200
 
201
+ @click.command()
202
+ @click.option(
203
+ "--project",
204
+ default=None,
205
+ help="GCP project ID (defaults to application default credentials)",
206
+ )
207
+ @click.option(
208
+ "--location",
209
+ default="us-central1",
210
+ help="GCP region (defaults to us-central1)",
211
+ )
212
+ @click.option(
213
+ "--agent-name",
214
+ default="{{cookiecutter.project_name}}",
215
+ help="Name for the agent engine",
216
+ )
217
+ @click.option(
218
+ "--requirements-file",
219
+ default=".requirements.txt",
220
+ help="Path to requirements.txt file",
221
+ )
222
+ @click.option(
223
+ "--extra-packages",
224
+ multiple=True,
225
+ default=["./{{cookiecutter.agent_directory}}"],
226
+ help="Additional packages to include",
227
+ )
228
+ @click.option(
229
+ "--set-env-vars",
230
+ default=None,
231
+ help="Comma-separated list of environment variables in KEY=VALUE format",
232
+ )
233
+ @click.option(
234
+ "--service-account",
235
+ default=None,
236
+ help="Service account email to use for the agent engine",
237
+ )
193
238
  def deploy_agent_engine_app(
194
- project: str,
239
+ project: str | None,
195
240
  location: str,
196
- agent_name: str | None = None,
197
- requirements_file: str = ".requirements.txt",
198
- extra_packages: list[str] = ["./{{cookiecutter.agent_directory}}"],
199
- env_vars: dict[str, str] = {},
200
- service_account: str | None = None,
241
+ agent_name: str,
242
+ requirements_file: str,
243
+ extra_packages: tuple[str, ...],
244
+ set_env_vars: str | None,
245
+ service_account: str | None,
201
246
  ) -> AgentEngine:
202
247
  """Deploy the agent engine app to Vertex AI."""
248
+ # Parse environment variables if provided
249
+ env_vars = parse_env_vars(set_env_vars)
250
+
251
+ if not project:
252
+ _, project = google.auth.default()
253
+
254
+ print("""
255
+ ╔═══════════════════════════════════════════════════════════╗
256
+ ║ ║
257
+ ║ 🤖 DEPLOYING AGENT TO VERTEX AI AGENT ENGINE 🤖 ║
258
+ ║ ║
259
+ ╚═══════════════════════════════════════════════════════════╝
260
+ """)
261
+
203
262
  logging.basicConfig(level=logging.INFO)
263
+ extra_packages_list = list(extra_packages)
204
264
  staging_bucket_uri = f"gs://{project}-agent-engine"
205
265
  {%- if "adk" in cookiecutter.tags %}
206
266
  artifacts_bucket_name = f"{project}-{{cookiecutter.project_name}}-logs-data"
@@ -236,14 +296,24 @@ def deploy_agent_engine_app(
236
296
  env_vars["NUM_WORKERS"] = "1"
237
297
 
238
298
  # Common configuration for both create and update operations
299
+ labels: dict[str, str] = {}
300
+ {%- if cookiecutter.agent_garden %}
301
+ labels["deployed-with"] = "agent-garden"
302
+ {%- if cookiecutter.agent_sample_id and cookiecutter.agent_sample_publisher %}
303
+ labels["vertex-agent-sample-id"] = "{{cookiecutter.agent_sample_id}}"
304
+ labels["vertex-agent-sample-publisher"] = "{{cookiecutter.agent_sample_publisher}}"
305
+ {%- endif %}
306
+ {%- endif %}
307
+
239
308
  config = AgentEngineConfig(
240
309
  display_name=agent_name,
241
310
  description="{{cookiecutter.agent_description}}",
242
- extra_packages=extra_packages,
311
+ extra_packages=extra_packages_list,
243
312
  env_vars=env_vars,
244
313
  service_account=service_account,
245
314
  requirements=requirements,
246
315
  staging_bucket=staging_bucket_uri,
316
+ labels=labels,
247
317
  )
248
318
 
249
319
  agent_config = {
@@ -262,100 +332,20 @@ def deploy_agent_engine_app(
262
332
 
263
333
  if matching_agents:
264
334
  # Update the existing agent with new configuration
265
- logging.info(f"Updating existing agent: {agent_name}")
335
+ logging.info(f"\n📝 Updating existing agent: {agent_name}")
266
336
  remote_agent = client.agent_engines.update(
267
337
  name=matching_agents[0].api_resource.name, **agent_config
268
338
  )
269
339
  else:
270
340
  # Create a new agent if none exists
271
- logging.info(f"Creating new agent: {agent_name}")
341
+ logging.info(f"\n🚀 Creating new agent: {agent_name}")
272
342
  remote_agent = client.agent_engines.create(**agent_config)
273
343
 
274
- metadata = {
275
- "remote_agent_engine_id": remote_agent.api_resource.name,
276
- "deployment_timestamp": datetime.datetime.now().isoformat(),
277
- }
278
- metadata_file = "deployment_metadata.json"
279
-
280
- with open(metadata_file, "w") as f:
281
- json.dump(metadata, f, indent=2)
282
-
283
- logging.info(f"Agent Engine ID written to {metadata_file}")
284
-
285
- {%- if "adk" in cookiecutter.tags %}
286
- print(
287
- "\n✅ Deployment successful! Test your agent: notebooks/adk_app_testing.ipynb\n"
288
- )
289
- {%- endif %}
344
+ write_deployment_metadata(remote_agent)
345
+ print_deployment_success(remote_agent, location, project)
290
346
 
291
347
  return remote_agent
292
348
 
293
349
 
294
350
  if __name__ == "__main__":
295
- import argparse
296
-
297
- parser = argparse.ArgumentParser(description="Deploy agent engine app to Vertex AI")
298
- parser.add_argument(
299
- "--project",
300
- default=None,
301
- help="GCP project ID (defaults to application default credentials)",
302
- )
303
- parser.add_argument(
304
- "--location",
305
- default="us-central1",
306
- help="GCP region (defaults to us-central1)",
307
- )
308
- parser.add_argument(
309
- "--agent-name",
310
- default="{{cookiecutter.project_name}}",
311
- help="Name for the agent engine",
312
- )
313
- parser.add_argument(
314
- "--requirements-file",
315
- default=".requirements.txt",
316
- help="Path to requirements.txt file",
317
- )
318
- parser.add_argument(
319
- "--extra-packages",
320
- nargs="+",
321
- default=["./{{cookiecutter.agent_directory}}"],
322
- help="Additional packages to include",
323
- )
324
- parser.add_argument(
325
- "--set-env-vars",
326
- help="Comma-separated list of environment variables in KEY=VALUE format",
327
- )
328
- parser.add_argument(
329
- "--service-account",
330
- default=None,
331
- help="Service account email to use for the agent engine",
332
- )
333
- args = parser.parse_args()
334
-
335
- # Parse environment variables if provided
336
- env_vars = {}
337
- if args.set_env_vars:
338
- for pair in args.set_env_vars.split(","):
339
- key, value = pair.split("=", 1)
340
- env_vars[key] = value
341
-
342
- if not args.project:
343
- _, args.project = google.auth.default()
344
-
345
- print("""
346
- ╔═══════════════════════════════════════════════════════════╗
347
- ║ ║
348
- ║ 🤖 DEPLOYING AGENT TO VERTEX AI AGENT ENGINE 🤖 ║
349
- ║ ║
350
- ╚═══════════════════════════════════════════════════════════╝
351
- """)
352
-
353
- deploy_agent_engine_app(
354
- project=args.project,
355
- location=args.location,
356
- agent_name=args.agent_name,
357
- requirements_file=args.requirements_file,
358
- extra_packages=args.extra_packages,
359
- env_vars=env_vars,
360
- service_account=args.service_account,
361
- )
351
+ deploy_agent_engine_app()
@@ -0,0 +1,85 @@
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
+ import datetime
16
+ import json
17
+ import logging
18
+ from typing import Any
19
+
20
+
21
+ def parse_env_vars(env_vars_string: str | None) -> dict[str, str]:
22
+ """Parse environment variables from a comma-separated KEY=VALUE string.
23
+
24
+ Args:
25
+ env_vars_string: Comma-separated list of environment variables in KEY=VALUE format
26
+
27
+ Returns:
28
+ Dictionary of environment variables with keys and values stripped of whitespace
29
+ """
30
+ env_vars = {}
31
+ if env_vars_string:
32
+ for pair in env_vars_string.split(","):
33
+ if "=" in pair:
34
+ key, value = pair.split("=", 1)
35
+ env_vars[key.strip()] = value.strip()
36
+ else:
37
+ logging.warning(f"Skipping malformed environment variable pair: {pair}")
38
+ return env_vars
39
+
40
+
41
+ def write_deployment_metadata(
42
+ remote_agent: Any,
43
+ metadata_file: str = "deployment_metadata.json",
44
+ ) -> None:
45
+ """Write deployment metadata to file.
46
+
47
+ Args:
48
+ remote_agent: The deployed agent engine resource
49
+ metadata_file: Path to write the metadata JSON file
50
+ """
51
+ metadata = {
52
+ "remote_agent_engine_id": remote_agent.api_resource.name,
53
+ "deployment_timestamp": datetime.datetime.now().isoformat(),
54
+ }
55
+
56
+ with open(metadata_file, "w") as f:
57
+ json.dump(metadata, f, indent=2)
58
+
59
+ logging.info(f"Agent Engine ID written to {metadata_file}")
60
+
61
+
62
+ def print_deployment_success(
63
+ remote_agent: Any,
64
+ location: str,
65
+ project: str,
66
+ ) -> None:
67
+ """Print deployment success message with console URL.
68
+
69
+ Args:
70
+ remote_agent: The deployed agent engine resource
71
+ location: GCP region where the agent was deployed
72
+ project: GCP project ID
73
+ """
74
+ # Extract agent engine ID for console URL
75
+ agent_engine_id = remote_agent.api_resource.name.split("/")[-1]
76
+ console_url = f"https://console.cloud.google.com/vertex-ai/agents/locations/{location}/agent-engines/{agent_engine_id}?project={project}"
77
+
78
+ {%- if "adk" in cookiecutter.tags %}
79
+ print(
80
+ f"\n✅ Deployment successful! Test your agent: notebooks/adk_app_testing.ipynb"
81
+ f"\n📊 View in console: {console_url}\n"
82
+ )
83
+ {%- else %}
84
+ print(f"\n✅ Deployment successful!\n📊 View in console: {console_url}\n")
85
+ {%- endif %}
@@ -11,7 +11,7 @@ resolution-markers = [
11
11
 
12
12
  [[package]]
13
13
  name = "agent-starter-pack"
14
- version = "0.15.2"
14
+ version = "0.15.4"
15
15
  source = { editable = "." }
16
16
  dependencies = [
17
17
  { name = "backoff" },