agent-starter-pack 0.14.0__tar.gz → 0.15.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 (261) hide show
  1. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/.claude/settings.local.json +6 -1
  2. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/PKG-INFO +4 -3
  3. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/README.md +2 -1
  4. {agent_starter_pack-0.14.0/agents/agentic_rag → agent_starter_pack-0.15.0/agents/adk_base}/notebooks/adk_app_testing.ipynb +36 -18
  5. {agent_starter_pack-0.14.0/agents/adk_base → agent_starter_pack-0.15.0/agents/agentic_rag}/notebooks/adk_app_testing.ipynb +36 -18
  6. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/docs/guide/development-guide.md +4 -0
  7. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/docs/package-lock.json +3 -3
  8. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/docs/remote-templates/creating-remote-templates.md +51 -0
  9. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/docs/remote-templates/index.md +4 -3
  10. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/docs/remote-templates/using-remote-templates.md +4 -3
  11. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/pyproject.toml +2 -2
  12. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/base_template/Makefile +1 -1
  13. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/base_template/README.md +1 -1
  14. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/vars/env.tfvars +3 -4
  15. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/base_template/pyproject.toml +4 -4
  16. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/cli/commands/create.py +34 -11
  17. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/cli/utils/gcp.py +19 -0
  18. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/cli/utils/remote_template.py +144 -1
  19. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/cli/utils/template.py +12 -0
  20. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/deployment_targets/agent_engine/tests/integration/test_agent_engine_app.py +6 -3
  21. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/deployment_targets/agent_engine/tests/load_test/load_test.py +12 -3
  22. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/deployment_targets/agent_engine/{{cookiecutter.agent_directory}}/agent_engine_app.py +45 -38
  23. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/deployment_targets/cloud_run/deployment/terraform/dev/service.tf +12 -0
  24. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/deployment_targets/cloud_run/deployment/terraform/service.tf +24 -0
  25. agent_starter_pack-0.14.0/src/resources/locks/uv-agentic_rag-agent_engine.lock → agent_starter_pack-0.15.0/src/resources/locks/uv-adk_base-agent_engine.lock +1743 -2157
  26. agent_starter_pack-0.14.0/src/resources/locks/uv-agentic_rag-cloud_run.lock → agent_starter_pack-0.15.0/src/resources/locks/uv-adk_base-cloud_run.lock +2301 -2779
  27. agent_starter_pack-0.14.0/src/resources/locks/uv-adk_base-agent_engine.lock → agent_starter_pack-0.15.0/src/resources/locks/uv-agentic_rag-agent_engine.lock +2214 -1708
  28. agent_starter_pack-0.14.0/src/resources/locks/uv-adk_base-cloud_run.lock → agent_starter_pack-0.15.0/src/resources/locks/uv-agentic_rag-cloud_run.lock +2847 -2259
  29. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/resources/locks/uv-crewai_coding_crew-agent_engine.lock +2839 -2807
  30. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/resources/locks/uv-crewai_coding_crew-cloud_run.lock +3755 -3714
  31. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/resources/locks/uv-langgraph_base_react-agent_engine.lock +2441 -2396
  32. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/resources/locks/uv-langgraph_base_react-cloud_run.lock +3243 -3185
  33. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/resources/locks/uv-live_api-cloud_run.lock +2950 -2902
  34. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/tests/cli/utils/test_remote_template.py +314 -1
  35. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/tests/integration/test_makefile_usability.py +6 -1
  36. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/tests/integration/test_pipeline_parity.py +10 -0
  37. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/uv.lock +2 -2
  38. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/.cloudbuild/cd/test_e2e.yaml +0 -0
  39. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/.cloudbuild/ci/build_use_wheel.yaml +0 -0
  40. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/.cloudbuild/ci/lint.yaml +0 -0
  41. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/.cloudbuild/ci/lint_templated_agents.yaml +0 -0
  42. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/.cloudbuild/ci/test.yaml +0 -0
  43. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/.cloudbuild/ci/test_makefile.yaml +0 -0
  44. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/.cloudbuild/ci/test_pipeline_parity.yaml +0 -0
  45. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/.cloudbuild/ci/test_remote_template.yaml +0 -0
  46. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/.cloudbuild/ci/test_templated_agents.yaml +0 -0
  47. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/.cloudbuild/terraform/apis.tf +0 -0
  48. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/.cloudbuild/terraform/build_triggers.tf +0 -0
  49. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/.cloudbuild/terraform/service_account.tf +0 -0
  50. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/.cloudbuild/terraform/storage.tf +0 -0
  51. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/.cloudbuild/terraform/variables.tf +0 -0
  52. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/.github/workflows/docs.yml +0 -0
  53. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/.gitignore +0 -0
  54. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/CLAUDE.md +0 -0
  55. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/CODE_OF_CONDUCT.md +0 -0
  56. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/CONTRIBUTING.md +0 -0
  57. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/GEMINI.md +0 -0
  58. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/LICENSE +0 -0
  59. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/Makefile +0 -0
  60. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/agents/README.md +0 -0
  61. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/agents/adk_base/.template/templateconfig.yaml +0 -0
  62. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/agents/adk_base/README.md +0 -0
  63. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/agents/adk_base/app/__init__.py +0 -0
  64. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/agents/adk_base/app/agent.py +0 -0
  65. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/agents/adk_base/notebooks/evaluating_adk_agent.ipynb +0 -0
  66. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/agents/adk_base/tests/integration/test_agent.py +0 -0
  67. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/agents/agentic_rag/.template/templateconfig.yaml +0 -0
  68. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/agents/agentic_rag/README.md +0 -0
  69. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/agents/agentic_rag/app/__init__.py +0 -0
  70. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/agents/agentic_rag/app/agent.py +0 -0
  71. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/agents/agentic_rag/app/retrievers.py +0 -0
  72. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/agents/agentic_rag/app/templates.py +0 -0
  73. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/agents/agentic_rag/notebooks/evaluating_adk_agent.ipynb +0 -0
  74. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/agents/agentic_rag/tests/integration/test_agent.py +0 -0
  75. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/agents/crewai_coding_crew/.template/templateconfig.yaml +0 -0
  76. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/agents/crewai_coding_crew/README.md +0 -0
  77. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/agents/crewai_coding_crew/app/agent.py +0 -0
  78. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/agents/crewai_coding_crew/app/crew/config/agents.yaml +0 -0
  79. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/agents/crewai_coding_crew/app/crew/config/tasks.yaml +0 -0
  80. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/agents/crewai_coding_crew/app/crew/crew.py +0 -0
  81. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/agents/crewai_coding_crew/notebooks/evaluating_crewai_agent.ipynb +0 -0
  82. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/agents/crewai_coding_crew/notebooks/evaluating_langgraph_agent.ipynb +0 -0
  83. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/agents/crewai_coding_crew/tests/integration/test_agent.py +0 -0
  84. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/agents/langgraph_base_react/.template/templateconfig.yaml +0 -0
  85. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/agents/langgraph_base_react/README.md +0 -0
  86. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/agents/langgraph_base_react/app/agent.py +0 -0
  87. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/agents/langgraph_base_react/notebooks/evaluating_langgraph_agent.ipynb +0 -0
  88. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/agents/langgraph_base_react/tests/integration/test_agent.py +0 -0
  89. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/agents/live_api/.template/templateconfig.yaml +0 -0
  90. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/agents/live_api/README.md +0 -0
  91. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/agents/live_api/app/agent.py +0 -0
  92. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/agents/live_api/tests/integration/test_server_e2e.py +0 -0
  93. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/agents/live_api/tests/load_test/load_test.py +0 -0
  94. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/agents/live_api/tests/unit/test_server.py +0 -0
  95. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/docs/.vitepress/config.js +0 -0
  96. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/docs/agents/overview.md +0 -0
  97. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/docs/cli/create.md +0 -0
  98. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/docs/cli/enhance.md +0 -0
  99. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/docs/cli/index.md +0 -0
  100. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/docs/cli/list.md +0 -0
  101. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/docs/cli/setup_cicd.md +0 -0
  102. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/docs/guide/community-showcase.md +0 -0
  103. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/docs/guide/data-ingestion.md +0 -0
  104. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/docs/guide/deploy-ui.md +0 -0
  105. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/docs/guide/deployment.md +0 -0
  106. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/docs/guide/getting-started.md +0 -0
  107. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/docs/guide/installation.md +0 -0
  108. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/docs/guide/observability.md +0 -0
  109. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/docs/guide/template-config-reference.md +0 -0
  110. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/docs/guide/troubleshooting.md +0 -0
  111. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/docs/guide/video-tutorials.md +0 -0
  112. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/docs/guide/why_starter_pack.md +0 -0
  113. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/docs/images/adk_gemini_fullstack.gif +0 -0
  114. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/docs/images/adk_gemini_fullstack_architecture.png +0 -0
  115. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/docs/images/adk_logo.png +0 -0
  116. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/docs/images/agent_starter_pack_screenshot.png +0 -0
  117. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/docs/images/ags_high_level_architecture.png +0 -0
  118. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/docs/images/icon.png +0 -0
  119. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/docs/images/logo.png +0 -0
  120. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/docs/images/prototype_to_prod.png +0 -0
  121. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/docs/images/why_sp_edited.png +0 -0
  122. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/docs/images/why_starter_pack.png +0 -0
  123. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/docs/index.md +0 -0
  124. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/docs/package.json +0 -0
  125. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/llm.txt +0 -0
  126. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/base_template/.gitignore +0 -0
  127. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/base_template/GEMINI.md +0 -0
  128. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/base_template/deployment/README.md +0 -0
  129. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/apis.tf +0 -0
  130. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/dev/apis.tf +0 -0
  131. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/dev/iam.tf +0 -0
  132. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/dev/log_sinks.tf +0 -0
  133. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/dev/providers.tf +0 -0
  134. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/dev/storage.tf +0 -0
  135. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/dev/variables.tf +0 -0
  136. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/dev/vars/env.tfvars +0 -0
  137. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/github.tf +0 -0
  138. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/iam.tf +0 -0
  139. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/locals.tf +0 -0
  140. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/log_sinks.tf +0 -0
  141. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/providers.tf +0 -0
  142. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/service_accounts.tf +0 -0
  143. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/storage.tf +0 -0
  144. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/variables.tf +0 -0
  145. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/{% if cookiecutter.cicd_runner == 'github_actions' %}wif.tf{% else %}unused_wif.tf{% endif %} +0 -0
  146. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}build_triggers.tf{% else %}unused_build_triggers.tf{% endif %} +0 -0
  147. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/base_template/tests/unit/test_dummy.py +0 -0
  148. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/base_template/{% if cookiecutter.cicd_runner == 'github_actions' %}.github{% else %}unused_github{% endif %}/workflows/deploy-to-prod.yaml +0 -0
  149. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/base_template/{% if cookiecutter.cicd_runner == 'github_actions' %}.github{% else %}unused_github{% endif %}/workflows/pr_checks.yaml +0 -0
  150. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/base_template/{% if cookiecutter.cicd_runner == 'github_actions' %}.github{% else %}unused_github{% endif %}/workflows/staging.yaml +0 -0
  151. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/base_template/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}.cloudbuild{% else %}unused_.cloudbuild{% endif %}/deploy-to-prod.yaml +0 -0
  152. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/base_template/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}.cloudbuild{% else %}unused_.cloudbuild{% endif %}/pr_checks.yaml +0 -0
  153. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/base_template/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}.cloudbuild{% else %}unused_.cloudbuild{% endif %}/staging.yaml +0 -0
  154. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/base_template/{{cookiecutter.agent_directory}}/utils/gcs.py +0 -0
  155. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/base_template/{{cookiecutter.agent_directory}}/utils/tracing.py +0 -0
  156. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/base_template/{{cookiecutter.agent_directory}}/utils/typing.py +0 -0
  157. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/cli/commands/enhance.py +0 -0
  158. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/cli/commands/list.py +0 -0
  159. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/cli/commands/setup_cicd.py +0 -0
  160. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/cli/main.py +0 -0
  161. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/cli/utils/__init__.py +0 -0
  162. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/cli/utils/cicd.py +0 -0
  163. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/cli/utils/datastores.py +0 -0
  164. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/cli/utils/logging.py +0 -0
  165. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/cli/utils/version.py +0 -0
  166. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/data_ingestion/README.md +0 -0
  167. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/data_ingestion/data_ingestion_pipeline/components/ingest_data.py +0 -0
  168. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/data_ingestion/data_ingestion_pipeline/components/process_data.py +0 -0
  169. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/data_ingestion/data_ingestion_pipeline/pipeline.py +0 -0
  170. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/data_ingestion/data_ingestion_pipeline/submit_pipeline.py +0 -0
  171. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/data_ingestion/pyproject.toml +0 -0
  172. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/data_ingestion/uv.lock +0 -0
  173. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/deployment_targets/agent_engine/deployment_metadata.json +0 -0
  174. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/deployment_targets/agent_engine/notebooks/intro_agent_engine.ipynb +0 -0
  175. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/deployment_targets/agent_engine/tests/load_test/.results/.placeholder +0 -0
  176. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/deployment_targets/agent_engine/tests/load_test/README.md +0 -0
  177. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/deployment_targets/cloud_run/Dockerfile +0 -0
  178. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/deployment_targets/cloud_run/tests/integration/test_server_e2e.py +0 -0
  179. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/deployment_targets/cloud_run/tests/load_test/.results/.placeholder +0 -0
  180. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/deployment_targets/cloud_run/tests/load_test/README.md +0 -0
  181. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/deployment_targets/cloud_run/tests/load_test/load_test.py +0 -0
  182. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/deployment_targets/cloud_run/{{cookiecutter.agent_directory}}/server.py +0 -0
  183. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/package-lock.json +0 -0
  184. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/package.json +0 -0
  185. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/public/favicon.ico +0 -0
  186. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/public/index.html +0 -0
  187. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/public/robots.txt +0 -0
  188. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/App.scss +0 -0
  189. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/App.test.tsx +0 -0
  190. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/App.tsx +0 -0
  191. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/components/audio-pulse/AudioPulse.tsx +0 -0
  192. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/components/audio-pulse/audio-pulse.scss +0 -0
  193. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/components/logger/Logger.tsx +0 -0
  194. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/components/logger/logger.scss +0 -0
  195. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/components/logger/mock-logs.ts +0 -0
  196. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/components/side-panel/SidePanel.tsx +0 -0
  197. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/components/side-panel/side-panel.scss +0 -0
  198. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/contexts/LiveAPIContext.tsx +0 -0
  199. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/hooks/use-live-api.ts +0 -0
  200. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/hooks/use-media-stream-mux.ts +0 -0
  201. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/hooks/use-screen-capture.ts +0 -0
  202. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/hooks/use-webcam.ts +0 -0
  203. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/index.css +0 -0
  204. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/index.tsx +0 -0
  205. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/multimodal-live-types.ts +0 -0
  206. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/react-app-env.d.ts +0 -0
  207. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/reportWebVitals.ts +0 -0
  208. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/setupTests.ts +0 -0
  209. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/utils/audio-recorder.ts +0 -0
  210. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/utils/audio-streamer.ts +0 -0
  211. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/utils/audioworklet-registry.ts +0 -0
  212. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/utils/multimodal-live-client.ts +0 -0
  213. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/utils/store-logger.ts +0 -0
  214. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/utils/utils.ts +0 -0
  215. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/utils/worklets/audio-processing.ts +0 -0
  216. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/utils/worklets/vol-meter.ts +0 -0
  217. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/tsconfig.json +0 -0
  218. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/streamlit/frontend/side_bar.py +0 -0
  219. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/streamlit/frontend/streamlit_app.py +0 -0
  220. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/streamlit/frontend/style/app_markdown.py +0 -0
  221. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/streamlit/frontend/utils/chat_utils.py +0 -0
  222. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/streamlit/frontend/utils/local_chat_history.py +0 -0
  223. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/streamlit/frontend/utils/message_editing.py +0 -0
  224. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/streamlit/frontend/utils/multimodal_utils.py +0 -0
  225. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/streamlit/frontend/utils/stream_handler.py +0 -0
  226. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/frontends/streamlit/frontend/utils/title_summary.py +0 -0
  227. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/resources/containers/data_processing/Dockerfile +0 -0
  228. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/resources/containers/e2e-tests/Dockerfile +0 -0
  229. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/resources/docs/adk-cheatsheet.md +0 -0
  230. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/resources/idx/.idx/dev.nix +0 -0
  231. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/resources/idx/idx-template.json +0 -0
  232. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/resources/idx/idx-template.nix +0 -0
  233. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/utils/generate_locks.py +0 -0
  234. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/utils/lock_utils.py +0 -0
  235. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/src/utils/watch_and_rebuild.py +0 -0
  236. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/tests/__init__.py +0 -0
  237. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/tests/cicd/example.env +0 -0
  238. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/tests/cicd/scripts/delete_agent_engines.py +0 -0
  239. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/tests/cicd/scripts/delete_alloydb_clusters.py +0 -0
  240. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/tests/cicd/scripts/delete_vector_search.py +0 -0
  241. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/tests/cicd/test_e2e_deployment.py +0 -0
  242. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/tests/cli/commands/test_create.py +0 -0
  243. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/tests/cli/commands/test_create_local.py +0 -0
  244. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/tests/cli/commands/test_enhance.py +0 -0
  245. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/tests/cli/commands/test_list.py +0 -0
  246. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/tests/cli/commands/test_setup_cicd.py +0 -0
  247. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/tests/cli/utils/test_cicd.py +0 -0
  248. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/tests/integration/test_agent_directory_functionality.py +0 -0
  249. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/tests/integration/test_remote_templating.py +0 -0
  250. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/tests/integration/test_template_linting.py +0 -0
  251. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/tests/integration/test_templated_patterns.py +0 -0
  252. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/tests/integration/utils.py +0 -0
  253. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/tests/test_frontend/test_side_bar.py +0 -0
  254. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/tests/test_frontend/test_streamlit_app.py +0 -0
  255. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/tests/test_frontend/test_utils/test_chat_utils.py +0 -0
  256. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/tests/test_frontend/test_utils/test_local_chat_history.py +0 -0
  257. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/tests/test_frontend/test_utils/test_message_editing.py +0 -0
  258. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/tests/test_frontend/test_utils/test_multimodal_utils.py +0 -0
  259. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/tests/test_frontend/test_utils/test_stream_handler.py +0 -0
  260. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/tests/utils/__init__.py +0 -0
  261. {agent_starter_pack-0.14.0 → agent_starter_pack-0.15.0}/tests/utils/get_agents.py +0 -0
@@ -9,7 +9,12 @@
9
9
  "Bash(gcloud alpha network-services address-reservations list --project=agent-starter-pack-e2e-dev --location=europe-west1)",
10
10
  "Bash(gcloud beta serverless address-reservations list --project=agent-starter-pack-e2e-dev --location=europe-west1)",
11
11
  "Bash(gcloud run services delete test-797fa619-1755528509 --region=europe-west1 --project=agent-starter-pack-e2e-dev --quiet)",
12
- "Bash(make test)"
12
+ "Bash(make test)",
13
+ "WebFetch(domain:github.com)",
14
+ "Bash(uv run ruff check --fix tests/cli/utils/test_remote_template.py)",
15
+ "Bash(uv run ruff check tests/cli/utils/test_remote_template.py)",
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)"
13
18
  ],
14
19
  "deny": [],
15
20
  "ask": []
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent-starter-pack
3
- Version: 0.14.0
3
+ Version: 0.15.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
@@ -8,7 +8,7 @@ License-File: LICENSE
8
8
  Requires-Python: >=3.10
9
9
  Requires-Dist: backoff>=2.2.1
10
10
  Requires-Dist: click>=8.1.7
11
- Requires-Dist: cookiecutter~=2.6.0
11
+ Requires-Dist: cookiecutter<3.0.0,>=2.6.0
12
12
  Requires-Dist: google-cloud-aiplatform>=1.87.0
13
13
  Requires-Dist: pyyaml>=6.0.1
14
14
  Requires-Dist: rich>=13.7.0
@@ -69,7 +69,7 @@ agent-starter-pack create my-awesome-agent
69
69
 
70
70
  If you have [`uv`](https://github.com/astral-sh/uv) installed, you can create and set up your project with a single command:
71
71
  ```bash
72
- uvx agent-starter-pack create my-fullstack-agent
72
+ uvx agent-starter-pack create my-awesome-agent
73
73
  ```
74
74
  This command handles creating the project without needing to pre-install the package into a virtual environment.
75
75
  </details>
@@ -133,6 +133,7 @@ This starter pack covers all aspects of Agent development, from prototyping and
133
133
  - Python 3.10+
134
134
  - [Google Cloud SDK](https://cloud.google.com/sdk/docs/install)
135
135
  - [Terraform](https://developer.hashicorp.com/terraform/downloads) (for deployment)
136
+ - [Make](https://www.gnu.org/software/make/) (for development tasks)
136
137
 
137
138
 
138
139
  ## 📚 Documentation
@@ -45,7 +45,7 @@ agent-starter-pack create my-awesome-agent
45
45
 
46
46
  If you have [`uv`](https://github.com/astral-sh/uv) installed, you can create and set up your project with a single command:
47
47
  ```bash
48
- uvx agent-starter-pack create my-fullstack-agent
48
+ uvx agent-starter-pack create my-awesome-agent
49
49
  ```
50
50
  This command handles creating the project without needing to pre-install the package into a virtual environment.
51
51
  </details>
@@ -109,6 +109,7 @@ This starter pack covers all aspects of Agent development, from prototyping and
109
109
  - Python 3.10+
110
110
  - [Google Cloud SDK](https://cloud.google.com/sdk/docs/install)
111
111
  - [Terraform](https://developer.hashicorp.com/terraform/downloads) (for deployment)
112
+ - [Make](https://www.gnu.org/software/make/) (for development tasks)
112
113
 
113
114
 
114
115
  ## 📚 Documentation
@@ -40,48 +40,64 @@
40
40
  },
41
41
  {
42
42
  "cell_type": "code",
43
- "execution_count": 1,
43
+ "execution_count": null,
44
44
  "metadata": {},
45
45
  "outputs": [],
46
46
  "source": [
47
47
  "import json\n",
48
48
  "\n",
49
49
  "import requests\n",
50
- "import vertexai.agent_engines"
50
+ "import vertexai"
51
51
  ]
52
52
  },
53
53
  {
54
54
  "cell_type": "markdown",
55
55
  "metadata": {},
56
56
  "source": [
57
- "## If you are using Agent Engine\n",
58
- "See more documentation at [Agent Engine Overview](https://cloud.google.com/vertex-ai/generative-ai/docs/agent-engine/overview)"
57
+ "### Initialize Vertex AI Client"
58
+ ]
59
+ },
60
+ {
61
+ "cell_type": "code",
62
+ "execution_count": null,
63
+ "metadata": {},
64
+ "outputs": [],
65
+ "source": [
66
+ "# Initialize the Vertex AI client\n",
67
+ "LOCATION = \"us-central1\"\n",
68
+ "\n",
69
+ "client = vertexai.Client(\n",
70
+ " location=LOCATION,\n",
71
+ ")"
59
72
  ]
60
73
  },
61
74
  {
62
75
  "cell_type": "markdown",
63
76
  "metadata": {},
64
77
  "source": [
65
- "### Remote Testing"
78
+ "## If you are using Agent Engine\n",
79
+ "See more documentation at [Agent Engine Overview](https://cloud.google.com/vertex-ai/generative-ai/docs/agent-engine/overview)"
66
80
  ]
67
81
  },
68
82
  {
69
- "cell_type": "code",
70
- "execution_count": 4,
83
+ "cell_type": "markdown",
71
84
  "metadata": {},
72
- "outputs": [],
73
85
  "source": [
74
- "# Replace with your Agent Engine ID\n",
75
- "AGENT_ENGINE_ID = \"projects/PROJECT_ID/locations/us-central1/reasoningEngines/ENGINE_ID\""
86
+ "### Remote Testing"
76
87
  ]
77
88
  },
78
89
  {
79
90
  "cell_type": "code",
80
- "execution_count": 5,
91
+ "execution_count": null,
81
92
  "metadata": {},
82
93
  "outputs": [],
83
94
  "source": [
84
- "remote_agent_engine = vertexai.agent_engines.get(AGENT_ENGINE_ID)"
95
+ "# Replace PROJECT_ID and ENGINE_ID with your values\n",
96
+ "AGENT_ENGINE_ID = \"projects/PROJECT_ID/locations/us-central1/reasoningEngines/ENGINE_ID\"\n",
97
+ "\n",
98
+ "# Get the existing agent engine\n",
99
+ "remote_agent_engine = client.agent_engines.get(name=AGENT_ENGINE_ID)\n",
100
+ "print(f\"Retrieved agent engine: {remote_agent_engine.api_resource.name}\")"
85
101
  ]
86
102
  },
87
103
  {
@@ -90,7 +106,9 @@
90
106
  "metadata": {},
91
107
  "outputs": [],
92
108
  "source": [
93
- "for event in remote_agent_engine.stream_query(message=\"hi!\", user_id=\"test\"):\n",
109
+ "async for event in remote_agent_engine.async_stream_query(\n",
110
+ " message=\"hi!\", user_id=\"test\"\n",
111
+ "):\n",
94
112
  " print(event)"
95
113
  ]
96
114
  },
@@ -126,7 +144,7 @@
126
144
  },
127
145
  {
128
146
  "cell_type": "code",
129
- "execution_count": 2,
147
+ "execution_count": null,
130
148
  "metadata": {},
131
149
  "outputs": [],
132
150
  "source": [
@@ -153,7 +171,7 @@
153
171
  "metadata": {},
154
172
  "outputs": [],
155
173
  "source": [
156
- "for event in agent_engine.stream_query(message=\"hi!\", user_id=\"test\"):\n",
174
+ "async for event in agent_engine.async_stream_query(message=\"hi!\", user_id=\"test\"):\n",
157
175
  " print(event)"
158
176
  ]
159
177
  },
@@ -180,7 +198,7 @@
180
198
  },
181
199
  {
182
200
  "cell_type": "code",
183
- "execution_count": 20,
201
+ "execution_count": null,
184
202
  "metadata": {},
185
203
  "outputs": [],
186
204
  "source": [
@@ -336,7 +354,7 @@
336
354
  ],
337
355
  "metadata": {
338
356
  "kernelspec": {
339
- "display_name": "Python 3",
357
+ "display_name": "myagent-1757939450",
340
358
  "language": "python",
341
359
  "name": "python3"
342
360
  },
@@ -350,7 +368,7 @@
350
368
  "name": "python",
351
369
  "nbconvert_exporter": "python",
352
370
  "pygments_lexer": "ipython3",
353
- "version": "3.12.2"
371
+ "version": "3.12.9"
354
372
  }
355
373
  },
356
374
  "nbformat": 4,
@@ -40,48 +40,64 @@
40
40
  },
41
41
  {
42
42
  "cell_type": "code",
43
- "execution_count": 1,
43
+ "execution_count": null,
44
44
  "metadata": {},
45
45
  "outputs": [],
46
46
  "source": [
47
47
  "import json\n",
48
48
  "\n",
49
49
  "import requests\n",
50
- "import vertexai.agent_engines"
50
+ "import vertexai"
51
51
  ]
52
52
  },
53
53
  {
54
54
  "cell_type": "markdown",
55
55
  "metadata": {},
56
56
  "source": [
57
- "## If you are using Agent Engine\n",
58
- "See more documentation at [Agent Engine Overview](https://cloud.google.com/vertex-ai/generative-ai/docs/agent-engine/overview)"
57
+ "### Initialize Vertex AI Client"
58
+ ]
59
+ },
60
+ {
61
+ "cell_type": "code",
62
+ "execution_count": null,
63
+ "metadata": {},
64
+ "outputs": [],
65
+ "source": [
66
+ "# Initialize the Vertex AI client\n",
67
+ "LOCATION = \"us-central1\"\n",
68
+ "\n",
69
+ "client = vertexai.Client(\n",
70
+ " location=LOCATION,\n",
71
+ ")"
59
72
  ]
60
73
  },
61
74
  {
62
75
  "cell_type": "markdown",
63
76
  "metadata": {},
64
77
  "source": [
65
- "### Remote Testing"
78
+ "## If you are using Agent Engine\n",
79
+ "See more documentation at [Agent Engine Overview](https://cloud.google.com/vertex-ai/generative-ai/docs/agent-engine/overview)"
66
80
  ]
67
81
  },
68
82
  {
69
- "cell_type": "code",
70
- "execution_count": 4,
83
+ "cell_type": "markdown",
71
84
  "metadata": {},
72
- "outputs": [],
73
85
  "source": [
74
- "# Replace with your Agent Engine ID\n",
75
- "AGENT_ENGINE_ID = \"projects/PROJECT_ID/locations/us-central1/reasoningEngines/ENGINE_ID\""
86
+ "### Remote Testing"
76
87
  ]
77
88
  },
78
89
  {
79
90
  "cell_type": "code",
80
- "execution_count": 5,
91
+ "execution_count": null,
81
92
  "metadata": {},
82
93
  "outputs": [],
83
94
  "source": [
84
- "remote_agent_engine = vertexai.agent_engines.get(AGENT_ENGINE_ID)"
95
+ "# Replace PROJECT_ID and ENGINE_ID with your values\n",
96
+ "AGENT_ENGINE_ID = \"projects/PROJECT_ID/locations/us-central1/reasoningEngines/ENGINE_ID\"\n",
97
+ "\n",
98
+ "# Get the existing agent engine\n",
99
+ "remote_agent_engine = client.agent_engines.get(name=AGENT_ENGINE_ID)\n",
100
+ "print(f\"Retrieved agent engine: {remote_agent_engine.api_resource.name}\")"
85
101
  ]
86
102
  },
87
103
  {
@@ -90,7 +106,9 @@
90
106
  "metadata": {},
91
107
  "outputs": [],
92
108
  "source": [
93
- "for event in remote_agent_engine.stream_query(message=\"hi!\", user_id=\"test\"):\n",
109
+ "async for event in remote_agent_engine.async_stream_query(\n",
110
+ " message=\"hi!\", user_id=\"test\"\n",
111
+ "):\n",
94
112
  " print(event)"
95
113
  ]
96
114
  },
@@ -126,7 +144,7 @@
126
144
  },
127
145
  {
128
146
  "cell_type": "code",
129
- "execution_count": 2,
147
+ "execution_count": null,
130
148
  "metadata": {},
131
149
  "outputs": [],
132
150
  "source": [
@@ -153,7 +171,7 @@
153
171
  "metadata": {},
154
172
  "outputs": [],
155
173
  "source": [
156
- "for event in agent_engine.stream_query(message=\"hi!\", user_id=\"test\"):\n",
174
+ "async for event in agent_engine.async_stream_query(message=\"hi!\", user_id=\"test\"):\n",
157
175
  " print(event)"
158
176
  ]
159
177
  },
@@ -180,7 +198,7 @@
180
198
  },
181
199
  {
182
200
  "cell_type": "code",
183
- "execution_count": 20,
201
+ "execution_count": null,
184
202
  "metadata": {},
185
203
  "outputs": [],
186
204
  "source": [
@@ -336,7 +354,7 @@
336
354
  ],
337
355
  "metadata": {
338
356
  "kernelspec": {
339
- "display_name": "Python 3",
357
+ "display_name": "myagent-1757939450",
340
358
  "language": "python",
341
359
  "name": "python3"
342
360
  },
@@ -350,7 +368,7 @@
350
368
  "name": "python",
351
369
  "nbconvert_exporter": "python",
352
370
  "pygments_lexer": "ipython3",
353
- "version": "3.12.2"
371
+ "version": "3.12.9"
354
372
  }
355
373
  },
356
374
  "nbformat": 4,
@@ -58,6 +58,10 @@ Your development loop will look like this:
58
58
  # Install dependencies and launch the local playground
59
59
  make install && make playground
60
60
  ```
61
+
62
+ ::: tip Package Management with uv
63
+ Add new dependencies with `uv add <package>` and remove them with `uv remove <package>`.
64
+ :::
61
65
  > Note: The specific UI playground launched by `make playground` depends on the agent template you selected during creation.
62
66
 
63
67
  ## 2. Deploy to the Cloud
@@ -2283,9 +2283,9 @@
2283
2283
  }
2284
2284
  },
2285
2285
  "node_modules/vite": {
2286
- "version": "5.4.19",
2287
- "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.19.tgz",
2288
- "integrity": "sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==",
2286
+ "version": "5.4.20",
2287
+ "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.20.tgz",
2288
+ "integrity": "sha512-j3lYzGC3P+B5Yfy/pfKNgVEg4+UtcIJcVRt2cDjIOmhLourAqPqf8P7acgxeiSgUB7E3p2P8/3gNIgDLpwzs4g==",
2289
2289
  "dev": true,
2290
2290
  "license": "MIT",
2291
2291
  "dependencies": {
@@ -231,6 +231,57 @@ dependencies = [
231
231
 
232
232
  **Best Practice:** Always include a `uv.lock` file for reproducible builds.
233
233
 
234
+ ### Version Locking for Guaranteed Compatibility
235
+
236
+ For maximum compatibility and stability, you can lock your remote template to a specific version of the Agent Starter Pack. This ensures that your template will always be processed with the exact version it was designed for, preventing potential breaking changes from affecting your users.
237
+
238
+ **To enable version locking:**
239
+
240
+ 1. **Add agent-starter-pack as a dev dependency** in your `pyproject.toml`:
241
+ ```toml
242
+ [dependency-groups]
243
+ dev = [
244
+ "agent-starter-pack==0.14.1", # Lock to specific version
245
+ # ... your other dev dependencies
246
+ ]
247
+ ```
248
+
249
+ 2. **Generate the lock file:**
250
+ ```bash
251
+ uv lock
252
+ ```
253
+
254
+ 3. **Commit both files:**
255
+ ```bash
256
+ git add pyproject.toml uv.lock
257
+ git commit -m "Lock agent-starter-pack version for compatibility"
258
+ ```
259
+
260
+ **How it works:**
261
+ - When users fetch your remote template, the starter pack automatically detects the locked version in `uv.lock`
262
+ - It then executes `uvx agent-starter-pack==VERSION` with the locked version (requires `uv` to be installed)
263
+ - This guarantees your template is processed with the exact version you tested it with
264
+
265
+ **Requirements:**
266
+ - Users must have `uv` installed to use version-locked templates
267
+ - If `uv` is not available, the command will fail with installation instructions
268
+
269
+ **When to use version locking:**
270
+ - ✅ Your template uses specific starter pack features that might change
271
+ - ✅ You want to guarantee long-term stability for your users
272
+ - ✅ Your template is critical infrastructure that needs predictable behavior
273
+ - ❌ You always want the latest starter pack features (trade-off: potential breaking changes)
274
+
275
+ **Example user experience:**
276
+ ```bash
277
+ uvx agent-starter-pack create my-project -a github.com/you/your-template
278
+
279
+ # Output:
280
+ # 🔒 Remote template specifies agent-starter-pack version 0.14.1 in uv.lock
281
+ # 📦 Executing nested command: uvx agent-starter-pack==0.14.1
282
+ # [continues with locked version]
283
+ ```
284
+
234
285
  ### Makefile Customization
235
286
 
236
287
  If your template includes a `Makefile`, it will be intelligently merged:
@@ -37,9 +37,10 @@ uvx agent-starter-pack create test-agent -a https://github.com/you/your-template
37
37
 
38
38
  Remote templates work by:
39
39
  1. **Fetching** template repositories from Git
40
- 2. **Applying** intelligent defaults based on repository structure
41
- 3. **Merging** template files with base agent infrastructure
42
- 4. **Generating** complete, production-ready agent projects
40
+ 2. **Version locking** - automatically uses the exact starter pack version specified by the template for guaranteed compatibility
41
+ 3. **Applying** intelligent defaults based on repository structure
42
+ 4. **Merging** template files with base agent infrastructure
43
+ 5. **Generating** complete, production-ready agent projects
43
44
 
44
45
  Any Git repository can become a template - the system handles the complexity automatically.
45
46
 
@@ -7,9 +7,10 @@ Remote templates let you instantly create production-ready AI agents from Git re
7
7
  When you use a remote template, the system:
8
8
 
9
9
  1. **Fetches** the template repository from Git
10
- 2. **Applies intelligent defaults** based on repository structure
11
- 3. **Merges** template files with base agent infrastructure
12
- 4. **Generates** a complete, production-ready agent project
10
+ 2. **Checks for version locking** - if the template specifies a starter pack version in `uv.lock`, automatically uses that version for guaranteed compatibility
11
+ 3. **Applies intelligent defaults** based on repository structure
12
+ 4. **Merges** template files with base agent infrastructure
13
+ 5. **Generates** a complete, production-ready agent project
13
14
 
14
15
  The file merging follows this priority order:
15
16
  1. Base template files (foundation)
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "agent-starter-pack"
3
- version = "0.14.0"
3
+ version = "0.15.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" },
@@ -10,7 +10,7 @@ readme = "README.md"
10
10
  requires-python = ">=3.10"
11
11
  dependencies = [
12
12
  "click>=8.1.7",
13
- "cookiecutter~=2.6.0",
13
+ "cookiecutter>=2.6.0, <3.0.0",
14
14
  "google-cloud-aiplatform>=1.87.0",
15
15
  "rich>=13.7.0",
16
16
  "pyyaml>=6.0.1",
@@ -76,7 +76,7 @@ backend:
76
76
  --region "us-central1" \
77
77
  --no-allow-unauthenticated \
78
78
  --no-cpu-throttling \
79
- --labels "created-by=adk{%- if cookiecutter.agent_garden %},deployed-with=agent-garden{%- endif %}" \
79
+ --labels "{% if "adk" in cookiecutter.tags %}created-by=adk{% if cookiecutter.agent_garden %},{% endif %}{% endif %}{% if cookiecutter.agent_garden %}deployed-with=agent-garden{% if cookiecutter.agent_sample_id %},vertex-agent-sample-id={{cookiecutter.agent_sample_id}},vertex-agent-sample-publisher={{cookiecutter.agent_sample_publisher}}{% endif %}{% endif %}" \
80
80
  --set-env-vars \
81
81
  "COMMIT_SHA=$(shell git rev-parse HEAD){%- if cookiecutter.data_ingestion %}{%- if cookiecutter.datastore_type == "vertex_ai_search" %},DATA_STORE_ID={{cookiecutter.project_name}}-datastore,DATA_STORE_REGION=us{%- elif cookiecutter.datastore_type == "vertex_ai_vector_search" %},VECTOR_SEARCH_INDEX={{cookiecutter.project_name}}-vector-search,VECTOR_SEARCH_INDEX_ENDPOINT={{cookiecutter.project_name}}-vector-search-endpoint,VECTOR_SEARCH_BUCKET=$$PROJECT_ID-{{cookiecutter.project_name}}-vs{%- endif %}{%- endif %}" \
82
82
  $(if $(IAP),--iap) \
@@ -33,7 +33,7 @@ This project is organized as follows:
33
33
  ## Requirements
34
34
 
35
35
  Before you begin, ensure you have:
36
- - **uv**: Python package manager - [Install](https://docs.astral.sh/uv/getting-started/installation/)
36
+ - **uv**: Python package manager (used for all dependency management in this project) - [Install](https://docs.astral.sh/uv/getting-started/installation/) ([add packages](https://docs.astral.sh/uv/concepts/dependencies/) with `uv add <package>`)
37
37
  - **Google Cloud SDK**: For GCP services - [Install](https://cloud.google.com/sdk/docs/install)
38
38
  - **Terraform**: For infrastructure deployment - [Install](https://developer.hashicorp.com/terraform/downloads)
39
39
  - **make**: Build automation tool - [Install](https://www.gnu.org/software/make/) (pre-installed on most Unix-based systems)
@@ -13,8 +13,11 @@ cicd_runner_project_id = "your-cicd-project-id"
13
13
  {%- if cookiecutter.cicd_runner == "google_cloud_build" %}
14
14
  # Name of the host connection you created in Cloud Build
15
15
  host_connection_name = "git-{{cookiecutter.project_name}}"
16
+ github_pat_secret_id = "your-github_pat_secret_id"
16
17
  {%- endif %}
17
18
 
19
+ repository_owner = "Your GitHub organization or username."
20
+
18
21
  # Name of the repository you added to Cloud Build
19
22
  repository_name = "{{cookiecutter.project_name}}"
20
23
 
@@ -34,7 +37,3 @@ vector_search_min_replica_count = 1
34
37
  vector_search_max_replica_count = 1
35
38
  {%- endif %}
36
39
  {%- endif %}
37
- {%- if cookiecutter.cicd_runner == "github_actions" %}
38
-
39
- repository_owner = "Your GitHub organization or username."
40
- {%- endif %}
@@ -14,14 +14,14 @@ dependencies = [
14
14
  "langchain-core~=0.3.9",
15
15
  "traceloop-sdk~=0.38.7",
16
16
  {%- endif %}
17
- "google-cloud-logging~=3.11.4",
17
+ "google-cloud-logging>=3.12.0",
18
18
  {%- if cookiecutter.deployment_target == 'cloud_run' %}
19
- "google-cloud-aiplatform[evaluation]~=1.106.0",
19
+ "google-cloud-aiplatform[evaluation]~=1.113.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.106.0"
24
+ "google-cloud-aiplatform[evaluation,agent-engines]~=1.113.0"
25
25
  {%- endif %}
26
26
  ]
27
27
  {% if cookiecutter.deployment_target == 'cloud_run' %}
@@ -72,7 +72,7 @@ select = [
72
72
  "UP", # pyupgrade
73
73
  "RUF", # ruff specific rules
74
74
  ]
75
- ignore = ["E501", "C901"] # ignore line too long, too complex
75
+ ignore = ["E501", "C901", "B006"] # ignore line too long, too complex
76
76
 
77
77
  [tool.ruff.lint.isort]
78
78
  known-first-party = ["{{cookiecutter.agent_directory}}", "frontend"]
@@ -226,6 +226,20 @@ def normalize_project_name(project_name: str) -> str:
226
226
  help="Template files directly into the current directory instead of creating a new project directory",
227
227
  default=False,
228
228
  )
229
+ @click.option(
230
+ "--skip-welcome",
231
+ is_flag=True,
232
+ hidden=True,
233
+ help="Skip the welcome banner",
234
+ default=False,
235
+ )
236
+ @click.option(
237
+ "--locked",
238
+ is_flag=True,
239
+ hidden=True,
240
+ help="Internal flag for version-locked remote templates",
241
+ default=False,
242
+ )
229
243
  @shared_template_options
230
244
  @handle_cli_error
231
245
  def create(
@@ -247,6 +261,7 @@ def create(
247
261
  agent_garden: bool = False,
248
262
  base_template: str | None = None,
249
263
  skip_welcome: bool = False,
264
+ locked: bool = False,
250
265
  cli_overrides: dict | None = None,
251
266
  ) -> None:
252
267
  """Create GCP-based AI agent projects from templates."""
@@ -337,8 +352,22 @@ def create(
337
352
  ignore=get_standard_ignore_patterns(),
338
353
  )
339
354
 
355
+ # Check for version lock and execute nested command if found
356
+ from ..utils.remote_template import check_and_execute_with_version_lock
357
+
358
+ if check_and_execute_with_version_lock(
359
+ template_source_path, agent, locked
360
+ ):
361
+ # If we executed with locked version, cleanup and exit
362
+ shutil.rmtree(temp_dir, ignore_errors=True)
363
+ return
364
+
340
365
  selected_agent = f"local_{template_source_path.name}"
341
- console.print(f"Using local template: {local_path}")
366
+ if locked:
367
+ # In locked mode, show a nicer message
368
+ console.print("✅ Using version-locked template", style="green")
369
+ else:
370
+ console.print(f"Using local template: {local_path}")
342
371
  logging.debug(
343
372
  f"Copied local template to temporary dir: {template_source_path}"
344
373
  )
@@ -354,7 +383,7 @@ def create(
354
383
  else:
355
384
  console.print(f"Fetching remote template: {agent}")
356
385
  template_source_path, temp_dir_path = fetch_remote_template(
357
- remote_spec
386
+ remote_spec, agent, locked
358
387
  )
359
388
  temp_dir_to_clean = str(temp_dir_path)
360
389
  selected_agent = f"remote_{hash(agent)}" # Generate unique name for remote template
@@ -416,7 +445,7 @@ def create(
416
445
  else:
417
446
  console.print(f"Fetching remote template: {agent}")
418
447
  template_source_path, temp_dir_path = fetch_remote_template(
419
- remote_spec
448
+ remote_spec, agent, locked
420
449
  )
421
450
  temp_dir_to_clean = str(temp_dir_path)
422
451
  final_agent = f"remote_{hash(agent)}" # Generate unique name for remote template
@@ -638,14 +667,7 @@ def create(
638
667
  except Exception as e:
639
668
  if debug:
640
669
  logging.warning(f"GCP environment setup failed: {e}")
641
- console.print(
642
- f"> Warning: GCP environment setup failed: {e}", style="yellow"
643
- )
644
- console.print(
645
- "> Please check your authentication settings and permissions. "
646
- "> Visit https://cloud.google.com/vertex-ai/docs/authentication for help.",
647
- style="yellow",
648
- )
670
+ console.print(f"> ⚠️ {e}", style="bold yellow")
649
671
  console.print(
650
672
  "> Continuing with template processing...", style="yellow"
651
673
  )
@@ -690,6 +712,7 @@ def create(
690
712
  in_folder=in_folder,
691
713
  cli_overrides=final_cli_overrides,
692
714
  agent_garden=agent_garden,
715
+ remote_spec=remote_spec,
693
716
  )
694
717
 
695
718
  # Replace region in all files if a different region was specified