agent-starter-pack 0.0.3b0__tar.gz → 0.0.4b0__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.

Potentially problematic release.


This version of agent-starter-pack might be problematic. Click here for more details.

Files changed (195) hide show
  1. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/PKG-INFO +1 -1
  2. agent_starter_pack-0.0.4b0/agents/agentic_rag_vertexai_search/template/.templateconfig.yaml +28 -0
  3. agent_starter_pack-0.0.4b0/agents/crewai_coding_crew/template/.templateconfig.yaml +26 -0
  4. agent_starter_pack-0.0.4b0/agents/langgraph_base_react/template/.templateconfig.yaml +27 -0
  5. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/agents/multimodal_live_api/README.md +18 -2
  6. agent_starter_pack-0.0.4b0/agents/multimodal_live_api/template/.templateconfig.yaml +29 -0
  7. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/pyproject.toml +1 -1
  8. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/cli/commands/create.py +116 -178
  9. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/cli/utils/gcp.py +7 -8
  10. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/tests/cli/commands/test_create.py +13 -58
  11. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/uv.lock +3 -1
  12. agent_starter_pack-0.0.3b0/agents/agentic_rag_vertexai_search/template/.templateconfig.yaml +0 -14
  13. agent_starter_pack-0.0.3b0/agents/crewai_coding_crew/template/.templateconfig.yaml +0 -12
  14. agent_starter_pack-0.0.3b0/agents/langgraph_base_react/template/.templateconfig.yaml +0 -13
  15. agent_starter_pack-0.0.3b0/agents/multimodal_live_api/template/.templateconfig.yaml +0 -15
  16. agent_starter_pack-0.0.3b0/src/deployment_targets/agent_engine/tests/load_test/.results/report.html +0 -264
  17. agent_starter_pack-0.0.3b0/src/deployment_targets/agent_engine/tests/load_test/.results/results_exceptions.csv +0 -1
  18. agent_starter_pack-0.0.3b0/src/deployment_targets/agent_engine/tests/load_test/.results/results_failures.csv +0 -1
  19. agent_starter_pack-0.0.3b0/src/deployment_targets/agent_engine/tests/load_test/.results/results_stats.csv +0 -3
  20. agent_starter_pack-0.0.3b0/src/deployment_targets/agent_engine/tests/load_test/.results/results_stats_history.csv +0 -22
  21. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/.gitignore +0 -0
  22. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/CODE_OF_CONDUCT.md +0 -0
  23. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/CONTRIBUTING.md +0 -0
  24. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/LICENSE +0 -0
  25. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/Makefile +0 -0
  26. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/README.md +0 -0
  27. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/agents/agentic_rag_vertexai_search/README.md +0 -0
  28. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/agents/agentic_rag_vertexai_search/app/agent.py +0 -0
  29. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/agents/agentic_rag_vertexai_search/app/retrievers.py +0 -0
  30. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/agents/agentic_rag_vertexai_search/app/templates.py +0 -0
  31. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/agents/agentic_rag_vertexai_search/notebooks/evaluating_langgraph_agent.ipynb +0 -0
  32. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/agents/agentic_rag_vertexai_search/tests/integration/test_agent.py +0 -0
  33. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/agents/crewai_coding_crew/README.md +0 -0
  34. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/agents/crewai_coding_crew/app/agent.py +0 -0
  35. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/agents/crewai_coding_crew/app/crew/config/agents.yaml +0 -0
  36. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/agents/crewai_coding_crew/app/crew/config/tasks.yaml +0 -0
  37. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/agents/crewai_coding_crew/app/crew/crew.py +0 -0
  38. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/agents/crewai_coding_crew/notebooks/evaluating_crewai_agent.ipynb +0 -0
  39. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/agents/crewai_coding_crew/notebooks/evaluating_langgraph_agent.ipynb +0 -0
  40. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/agents/crewai_coding_crew/tests/integration/test_agent.py +0 -0
  41. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/agents/langgraph_base_react/README.md +0 -0
  42. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/agents/langgraph_base_react/app/agent.py +0 -0
  43. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/agents/langgraph_base_react/notebooks/evaluating_langgraph_agent.ipynb +0 -0
  44. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/agents/langgraph_base_react/tests/integration/test_agent.py +0 -0
  45. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/agents/multimodal_live_api/app/agent.py +0 -0
  46. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/agents/multimodal_live_api/app/server.py +0 -0
  47. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/agents/multimodal_live_api/app/templates.py +0 -0
  48. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/agents/multimodal_live_api/app/vector_store.py +0 -0
  49. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/agents/multimodal_live_api/tests/integration/test_server_e2e.py +0 -0
  50. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/agents/multimodal_live_api/tests/load_test/load_test.py +0 -0
  51. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/agents/multimodal_live_api/tests/unit/test_server.py +0 -0
  52. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/docs/README.md +0 -0
  53. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/docs/cli/README.md +0 -0
  54. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/docs/cli/create.md +0 -0
  55. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/docs/cli/setup_cicd.md +0 -0
  56. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/docs/data-ingestion.md +0 -0
  57. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/docs/deployment.md +0 -0
  58. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/docs/images/ags_banner.png +0 -0
  59. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/docs/images/ags_high_level_architecture.png +0 -0
  60. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/docs/observability.md +0 -0
  61. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/docs/why_starter_pack.md +0 -0
  62. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/base_template/.gitignore +0 -0
  63. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/base_template/Makefile +0 -0
  64. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/base_template/README.md +0 -0
  65. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/base_template/app/utils/tracing.py +0 -0
  66. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/base_template/app/utils/typing.py +0 -0
  67. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/base_template/deployment/README.md +0 -0
  68. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/base_template/deployment/cd/deploy-to-prod.yaml +0 -0
  69. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/base_template/deployment/cd/staging.yaml +0 -0
  70. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/base_template/deployment/ci/pr_checks.yaml +0 -0
  71. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/base_template/deployment/terraform/apis.tf +0 -0
  72. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/base_template/deployment/terraform/build_triggers.tf +0 -0
  73. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/base_template/deployment/terraform/dev/apis.tf +0 -0
  74. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/base_template/deployment/terraform/dev/iam.tf +0 -0
  75. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/base_template/deployment/terraform/dev/log_sinks.tf +0 -0
  76. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/base_template/deployment/terraform/dev/providers.tf +0 -0
  77. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/base_template/deployment/terraform/dev/storage.tf +0 -0
  78. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/base_template/deployment/terraform/dev/variables.tf +0 -0
  79. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/base_template/deployment/terraform/dev/vars/env.tfvars +0 -0
  80. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/base_template/deployment/terraform/iam.tf +0 -0
  81. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/base_template/deployment/terraform/locals.tf +0 -0
  82. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/base_template/deployment/terraform/log_sinks.tf +0 -0
  83. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/base_template/deployment/terraform/providers.tf +0 -0
  84. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/base_template/deployment/terraform/service_accounts.tf +0 -0
  85. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/base_template/deployment/terraform/storage.tf +0 -0
  86. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/base_template/deployment/terraform/variables.tf +0 -0
  87. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/base_template/deployment/terraform/vars/env.tfvars +0 -0
  88. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/base_template/pyproject.toml +0 -0
  89. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/base_template/tests/unit/test_utils/test_tracing_exporter.py +0 -0
  90. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/cli/commands/setup_cicd.py +0 -0
  91. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/cli/main.py +0 -0
  92. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/cli/utils/__init__.py +0 -0
  93. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/cli/utils/cicd.py +0 -0
  94. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/cli/utils/logging.py +0 -0
  95. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/cli/utils/template.py +0 -0
  96. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/data_ingestion/README.md +0 -0
  97. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/data_ingestion/data_ingestion_pipeline/components/ingest_data.py +0 -0
  98. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/data_ingestion/data_ingestion_pipeline/components/process_data.py +0 -0
  99. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/data_ingestion/data_ingestion_pipeline/pipeline.py +0 -0
  100. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/data_ingestion/data_ingestion_pipeline/submit_pipeline.py +0 -0
  101. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/data_ingestion/pyproject.toml +0 -0
  102. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/data_ingestion/uv.lock +0 -0
  103. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/deployment_targets/agent_engine/app/agent_engine_app.py +0 -0
  104. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/deployment_targets/agent_engine/app/utils/gcs.py +0 -0
  105. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/deployment_targets/agent_engine/deployment_metadata.json +0 -0
  106. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/deployment_targets/agent_engine/notebooks/intro_reasoning_engine.ipynb +0 -0
  107. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/deployment_targets/agent_engine/tests/integration/test_agent_engine_app.py +0 -0
  108. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/deployment_targets/agent_engine/tests/load_test/.results/.placeholder +0 -0
  109. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/deployment_targets/agent_engine/tests/load_test/README.md +0 -0
  110. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/deployment_targets/agent_engine/tests/load_test/load_test.py +0 -0
  111. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/deployment_targets/agent_engine/tests/unit/test_dummy.py +0 -0
  112. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/deployment_targets/cloud_run/Dockerfile +0 -0
  113. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/deployment_targets/cloud_run/app/server.py +0 -0
  114. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/deployment_targets/cloud_run/deployment/terraform/artifact_registry.tf +0 -0
  115. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/deployment_targets/cloud_run/deployment/terraform/dev/service_accounts.tf +0 -0
  116. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/deployment_targets/cloud_run/tests/integration/test_server_e2e.py +0 -0
  117. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/deployment_targets/cloud_run/tests/load_test/.results/.placeholder +0 -0
  118. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/deployment_targets/cloud_run/tests/load_test/README.md +0 -0
  119. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/deployment_targets/cloud_run/tests/load_test/load_test.py +0 -0
  120. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/deployment_targets/cloud_run/tests/unit/test_server.py +0 -0
  121. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/deployment_targets/cloud_run/uv.lock +0 -0
  122. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/package-lock.json +0 -0
  123. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/package.json +0 -0
  124. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/public/favicon.ico +0 -0
  125. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/public/index.html +0 -0
  126. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/public/robots.txt +0 -0
  127. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/src/App.scss +0 -0
  128. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/src/App.test.tsx +0 -0
  129. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/src/App.tsx +0 -0
  130. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/src/components/audio-pulse/AudioPulse.tsx +0 -0
  131. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/src/components/audio-pulse/audio-pulse.scss +0 -0
  132. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/src/components/control-tray/ControlTray.tsx +0 -0
  133. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/src/components/control-tray/control-tray.scss +0 -0
  134. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/src/components/logger/Logger.tsx +0 -0
  135. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/src/components/logger/logger.scss +0 -0
  136. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/src/components/logger/mock-logs.ts +0 -0
  137. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/src/components/side-panel/SidePanel.tsx +0 -0
  138. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/src/components/side-panel/side-panel.scss +0 -0
  139. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/src/contexts/LiveAPIContext.tsx +0 -0
  140. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/src/hooks/use-live-api.ts +0 -0
  141. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/src/hooks/use-media-stream-mux.ts +0 -0
  142. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/src/hooks/use-screen-capture.ts +0 -0
  143. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/src/hooks/use-webcam.ts +0 -0
  144. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/src/index.css +0 -0
  145. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/src/index.tsx +0 -0
  146. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/src/multimodal-live-types.ts +0 -0
  147. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/src/react-app-env.d.ts +0 -0
  148. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/src/reportWebVitals.ts +0 -0
  149. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/src/setupTests.ts +0 -0
  150. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/src/utils/audio-recorder.ts +0 -0
  151. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/src/utils/audio-streamer.ts +0 -0
  152. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/src/utils/audioworklet-registry.ts +0 -0
  153. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/src/utils/multimodal-live-client.ts +0 -0
  154. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/src/utils/store-logger.ts +0 -0
  155. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/src/utils/utils.ts +0 -0
  156. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/src/utils/worklets/audio-processing.ts +0 -0
  157. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/src/utils/worklets/vol-meter.ts +0 -0
  158. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/live_api_react/frontend/tsconfig.json +0 -0
  159. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/streamlit/frontend/side_bar.py +0 -0
  160. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/streamlit/frontend/streamlit_app.py +0 -0
  161. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/streamlit/frontend/style/app_markdown.py +0 -0
  162. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/streamlit/frontend/utils/chat_utils.py +0 -0
  163. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/streamlit/frontend/utils/local_chat_history.py +0 -0
  164. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/streamlit/frontend/utils/message_editing.py +0 -0
  165. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/streamlit/frontend/utils/multimodal_utils.py +0 -0
  166. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/streamlit/frontend/utils/stream_handler.py +0 -0
  167. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/frontends/streamlit/frontend/utils/title_summary.py +0 -0
  168. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/resources/containers/data_processing/Dockerfile +0 -0
  169. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/resources/locks/uv-agentic_rag_vertexai_search-agent_engine.lock +0 -0
  170. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/resources/locks/uv-agentic_rag_vertexai_search-cloud_run.lock +0 -0
  171. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/resources/locks/uv-crewai_coding_crew-agent_engine.lock +0 -0
  172. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/resources/locks/uv-crewai_coding_crew-cloud_run.lock +0 -0
  173. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/resources/locks/uv-langgraph_base_react-agent_engine.lock +0 -0
  174. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/resources/locks/uv-langgraph_base_react-cloud_run.lock +0 -0
  175. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/resources/locks/uv-multimodal_live_api-cloud_run.lock +0 -0
  176. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/resources/setup_cicd/cicd_variables.tf +0 -0
  177. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/resources/setup_cicd/github.tf +0 -0
  178. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/resources/setup_cicd/providers.tf +0 -0
  179. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/utils/generate_locks.py +0 -0
  180. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/utils/lock_utils.py +0 -0
  181. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/src/utils/watch_and_rebuild.py +0 -0
  182. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/tests/cicd/example.env +0 -0
  183. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/tests/cicd/test_e2e_deployment.py +0 -0
  184. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/tests/cli/commands/test_setup_cicd.py +0 -0
  185. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/tests/cli/utils/test_cicd.py +0 -0
  186. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/tests/integration/test_io_patterns.py +0 -0
  187. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/tests/integration/test_template_linting.py +0 -0
  188. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/tests/integration/test_templated_patterns.py +0 -0
  189. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/tests/test_frontend/test_side_bar.py +0 -0
  190. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/tests/test_frontend/test_streamlit_app.py +0 -0
  191. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/tests/test_frontend/test_utils/test_chat_utils.py +0 -0
  192. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/tests/test_frontend/test_utils/test_local_chat_history.py +0 -0
  193. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/tests/test_frontend/test_utils/test_message_editing.py +0 -0
  194. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/tests/test_frontend/test_utils/test_multimodal_utils.py +0 -0
  195. {agent_starter_pack-0.0.3b0 → agent_starter_pack-0.0.4b0}/tests/test_frontend/test_utils/test_stream_handler.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent-starter-pack
3
- Version: 0.0.3b0
3
+ Version: 0.0.4b0
4
4
  Summary: CLI tool to create GCP-based AI agent projects from templates
5
5
  Author-email: Google LLC <agent-starter-pack@google.com>
6
6
  License: Apache-2.0
@@ -0,0 +1,28 @@
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
+ description: "A RAG agent using Vertex AI Search and LangGraph for document retrieval and Q&A"
16
+ settings:
17
+ requires_data_ingestion: true
18
+ deployment_targets: ["agent_engine", "cloud_run"]
19
+ extra_dependencies: [
20
+ "langchain-google-vertexai~=2.0.7",
21
+ "langchain~=0.3.14",
22
+ "langgraph~=0.2.63",
23
+ "langchain-google-vertexai~=2.0.7",
24
+ "langchain~=0.3.14",
25
+ "langchain-community~=0.3.17",
26
+ "langchain-openai~=0.3.5",
27
+ "langchain-google-community[vertexaisearch]~=2.0.2",
28
+ ]
@@ -0,0 +1,26 @@
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
+ description: "A multi-agent system implemented with CrewAI created to support coding activities"
16
+ settings:
17
+ requires_data_ingestion: false
18
+ deployment_targets: ["agent_engine", "cloud_run"]
19
+ extra_dependencies: [
20
+ "langchain-google-vertexai~=2.0.7",
21
+ "langchain~=0.3.14",
22
+ "langchain-community~=0.3.17",
23
+ "langchain-openai~=0.3.5",
24
+ "langgraph~=0.2.63",
25
+ "crewai~=0.102.0"
26
+ ]
@@ -0,0 +1,27 @@
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
+ description: "A agent implementing a base ReAct agent using LangGraph"
16
+ settings:
17
+ requires_data_ingestion: false
18
+ deployment_targets: ["agent_engine", "cloud_run"]
19
+ extra_dependencies: [
20
+ "langchain-google-vertexai~=2.0.7",
21
+ "langchain~=0.3.14",
22
+ "langgraph~=0.2.63",
23
+ "langchain-google-vertexai~=2.0.7",
24
+ "langchain~=0.3.14",
25
+ "langchain-community~=0.3.17",
26
+ "langchain-openai~=0.3.5",
27
+ ]
@@ -28,16 +28,32 @@ This pattern showcases a real-time conversational RAG agent powered by Google Ge
28
28
 
29
29
  2. **Start the Backend and Frontend:**
30
30
 
31
- Start the backend:
31
+ **Backend:**
32
32
  ```bash
33
33
  make backend
34
34
  ```
35
+
36
+ The backend will be ready when you see `INFO: Application startup complete.` in the console.
37
+
38
+ <details>
39
+ <summary><b>Click here if you want to use AI Studio and API Key instead of Vertex AI:</b></summary>
35
40
 
36
- In a different shell, start the frontend:
37
41
  ```bash
42
+ export VERTEXAI=false
43
+ export GOOGLE_API_KEY=your-google-api-key
44
+ ```
45
+
46
+ </details>
47
+ <br>
48
+
49
+ **Frontend:**
50
+ ```bash
51
+ # In a different shell
38
52
  make ui
39
53
  ```
40
54
 
55
+ This is the suggested mode for development as it allows you to see changes in real-time.
56
+
41
57
  Once both the backend and frontend are running, click the play button in the frontend UI to establish a connection with the backend. You can now interact with the Multimodal Live Agent! You can try asking questions such as "Using the tool you have, define Governance in the context MLOPs" to allow the agent to use the [documentation](https://cloud.google.com/architecture/deploy-operate-generative-ai-applications) it was provided to.
42
58
 
43
59
  ## Additional Resources for Multimodal Live API
@@ -0,0 +1,29 @@
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
+ description: "A real-time multimodal RAG agent powered by Gemini, supporting audio/video/text chat with vector DB-backed responses"
16
+ settings:
17
+ requires_data_ingestion: false
18
+ frontend_type: "live_api_react"
19
+ deployment_targets: ["cloud_run"]
20
+ extra_dependencies: [
21
+ "backoff~=2.2.1",
22
+ "beautifulsoup4~=4.12.3",
23
+ "google-genai~=1.2.0",
24
+ "jinja2~=3.1.4",
25
+ "langchain~=0.3.13",
26
+ "langchain-community~=0.3.13",
27
+ "langchain-google-vertexai~=2.0.9",
28
+ "scikit-learn>=1.0.0,<2.0.0",
29
+ ]
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "agent-starter-pack"
3
- version = "0.0.3b"
3
+ version = "0.0.4b"
4
4
  description = "CLI tool to create GCP-based AI agent projects from templates"
5
5
  authors = [
6
6
  { name = "Google LLC", email = "agent-starter-pack@google.com" },
@@ -47,8 +47,6 @@ console = Console()
47
47
  @click.option(
48
48
  "--include-data-ingestion", "-i", is_flag=True, help="Include data pipeline"
49
49
  )
50
- @click.option("--gcp-account", help="GCP service account email")
51
- @click.option("--gcp-project", help="GCP project ID")
52
50
  @click.option("--debug", is_flag=True, help="Enable debug logging")
53
51
  @click.option(
54
52
  "--output-dir",
@@ -77,8 +75,6 @@ def create(
77
75
  agent: str | None,
78
76
  deployment_target: str | None,
79
77
  include_data_ingestion: bool,
80
- gcp_account: str | None,
81
- gcp_project: str | None,
82
78
  debug: bool,
83
79
  output_dir: str | None,
84
80
  auto_approve: bool,
@@ -164,87 +160,18 @@ def create(
164
160
  logging.debug(f"Selected region: {region}")
165
161
 
166
162
  # GCP Setup
167
- with console.status("[bold blue]Setting up GCP environment...", spinner="dots"):
168
- if debug:
169
- logging.debug("Setting up GCP...")
170
-
171
- # Handle GCP credentials
172
- if gcp_account and gcp_project:
173
- try:
174
- subprocess.run(
175
- ["gcloud", "config", "set", "account", gcp_account], check=True
176
- )
177
- subprocess.run(
178
- ["gcloud", "config", "set", "project", gcp_project], check=True
179
- )
180
- subprocess.run(
181
- [
182
- "gcloud",
183
- "auth",
184
- "application-default",
185
- "set-quota-project",
186
- gcp_project,
187
- ],
188
- check=True,
189
- )
190
- except subprocess.CalledProcessError as e:
191
- console.print(f"Error setting GCP credentials: {e!s}", style="bold red")
192
- raise
193
-
163
+ logging.debug("Setting up GCP...")
164
+
165
+ # Check for uv installation if not skipping checks
194
166
  if not skip_checks:
195
- # Verify GCP credentials
196
- if debug:
197
- logging.debug("Verifying GCP credentials...")
198
- creds_info = verify_credentials()
199
-
200
- if not auto_approve:
201
- change_creds = (
202
- Prompt.ask(
203
- f"\n> You are logged in with account '{creds_info['account']}' "
204
- f"and using project '{creds_info['project']}'. "
205
- "Is this correct?",
206
- choices=["Y", "n"],
207
- default="Y",
208
- ).lower()
209
- == "n"
210
- )
211
-
212
- if change_creds:
213
- handle_credential_change()
214
- else:
215
- console.print(
216
- f"\n> Using account '{creds_info['account']}' "
217
- f"with project '{creds_info['project']}'"
218
- )
219
-
220
- # Check for uv installation
221
- console.print("> Checking for uv installation...")
222
167
  check_and_install_uv()
223
-
224
- # Test Vertex AI connection
225
- console.print("> Testing GCP and Vertex AI Connection...")
226
- try:
227
- verify_vertex_connection(
228
- project_id=creds_info["project"],
229
- location=region,
230
- )
231
- console.print(
232
- f"> ✓ Successfully verified connection to Vertex AI in project {creds_info['project']}"
233
- )
234
- except Exception as e:
235
- console.print(
236
- f"> ✗ Failed to connect to Vertex AI: {e!s}\n"
237
- f"> Please check your authentication settings and permissions. "
238
- f"Visit https://cloud.google.com/vertex-ai/docs/authentication for help.",
239
- style="bold red"
240
- )
241
- else:
242
- if debug:
243
- logging.debug("Skipping verification checks due to --skip-checks flag")
244
- console.print("> Skipping verification checks", style="yellow")
245
- # Set a default creds_info when skipping checks
246
- creds_info = (
247
- {"project": gcp_project} if gcp_project else {"project": "unknown"}
168
+
169
+ # Set up GCP environment
170
+ setup_gcp_environment(
171
+ auto_approve=auto_approve,
172
+ skip_checks=skip_checks,
173
+ region=region,
174
+ debug=debug
248
175
  )
249
176
 
250
177
  # Process template
@@ -332,74 +259,122 @@ def display_agent_selection(deployment_target: str | None = None) -> str:
332
259
  return agents[choice]["name"]
333
260
 
334
261
 
335
- def handle_credential_change() -> None:
336
- """Handle the process of changing GCP credentials."""
262
+ def set_project_quota(project_id: str) -> None:
263
+ """Set the GCP project and application default quota project.
264
+
265
+ Args:
266
+ project_id: The GCP project ID to set
267
+ """
337
268
  try:
338
- console.print("\n> Initiating new login...")
339
- subprocess.run(["gcloud", "auth", "login", "--update-adc"], check=True)
340
- console.print("> Login successful. Verifying new credentials...")
341
-
342
- # Re-verify credentials after login
343
- new_creds_info = verify_credentials()
344
-
345
- # Prompt for project change
346
- change_project = (
347
- Prompt.ask(
348
- f"\n> You are now logged in with account '{new_creds_info['account']}'. "
349
- f"Current project is '{new_creds_info['project']}'. "
350
- "Do you wish to change the project?",
351
- choices=["y", "n"],
352
- default="n",
353
- ).lower()
354
- == "y"
269
+ subprocess.run(
270
+ ["gcloud", "config", "set", "project", project_id], check=True, capture_output=True, text=True
355
271
  )
356
-
357
- if change_project:
358
- handle_project_change()
359
-
360
272
  except subprocess.CalledProcessError as e:
361
- console.print(
362
- "\n> Error during login process. Please try again.", style="bold red"
363
- )
364
- logging.debug(f"Login error: {e!s}")
273
+ console.print(f"\n> Error setting project to {project_id}:")
274
+ console.print(e.stderr)
365
275
  raise
366
- except Exception as e:
367
- console.print(f"\n> Unexpected error: {e!s}", style="bold red")
368
- logging.debug(f"Unexpected error during login: {e!s}")
369
- raise
370
-
371
276
 
372
- def handle_project_change() -> None:
373
- """Handle the process of changing GCP project."""
374
277
  try:
375
- # Prompt for new project ID
376
- new_project = Prompt.ask("\n> Enter the new project ID")
377
-
378
- console.print(f"\n> Setting project to {new_project}...")
379
- subprocess.run(["gcloud", "config", "set", "project", new_project], check=True)
380
-
381
- console.print("> Setting application default quota project...")
382
278
  subprocess.run(
383
- ["gcloud", "auth", "application-default", "set-quota-project", new_project],
384
- check=True,
279
+ ["gcloud", "auth", "application-default", "set-quota-project", project_id],
280
+ check=True, capture_output=True, text=True
385
281
  )
282
+ except subprocess.CalledProcessError as e:
283
+ console.print(f"> Error setting application default quota project:")
284
+ console.print(e.stderr)
285
+ raise
286
+
287
+ console.print(f"> Successfully configured project: {project_id}")
386
288
 
387
- console.print(f"> Successfully switched to project: {new_project}")
388
289
 
389
- # Re-verify credentials one final time
390
- final_creds_info = verify_credentials()
290
+ def setup_gcp_environment(
291
+ auto_approve: bool,
292
+ skip_checks: bool,
293
+ region: str,
294
+ debug: bool
295
+ ) -> dict:
296
+ """Set up the GCP environment with proper credentials and project.
297
+
298
+ Args:
299
+ auto_approve: Whether to skip confirmation prompts
300
+ skip_checks: Whether to skip verification checks
301
+ region: GCP region for deployment
302
+ debug: Whether debug logging is enabled
303
+
304
+ Returns:
305
+ Dictionary with credential information
306
+ """
307
+ if skip_checks:
308
+ if debug:
309
+ logging.debug("Skipping verification checks due to --skip-checks flag")
310
+ console.print("> Skipping verification checks", style="yellow")
311
+ # Set a default creds_info when skipping checks
312
+ return {"project": "unknown"}
313
+
314
+ # Verify current GCP credentials
315
+ if debug:
316
+ logging.debug("Verifying GCP credentials...")
317
+ creds_info = verify_credentials()
318
+
319
+ if not auto_approve:
320
+ # Ask user if current credentials are correct
321
+ change_creds = (
322
+ Prompt.ask(
323
+ f"\n> You are logged in with account '{creds_info['account']}' "
324
+ f"and using project '{creds_info['project']}'. "
325
+ "Is this correct?",
326
+ choices=["Y", "n"],
327
+ default="Y",
328
+ ).lower() == "n"
329
+ )
330
+
331
+ if change_creds:
332
+ # Handle credential change
333
+ console.print("\n> Initiating new login...")
334
+ subprocess.run(["gcloud", "auth", "login", "--update-adc"], check=True)
335
+ console.print("> Login successful. Verifying new credentials...")
336
+
337
+ # Re-verify credentials after login
338
+ creds_info = verify_credentials()
339
+
340
+ # Prompt for project change
341
+ change_project = (
342
+ Prompt.ask(
343
+ f"\n> You are now logged in with account '{creds_info['account']}'. "
344
+ f"Current project is '{creds_info['project']}'. "
345
+ "Do you wish to change the project?",
346
+ choices=["y", "n"],
347
+ default="n",
348
+ ).lower() == "y"
349
+ )
350
+
351
+ if change_project:
352
+ # Prompt for new project ID
353
+ new_project = Prompt.ask("\n> Enter the new project ID")
354
+ creds_info["project"] = new_project
355
+
356
+ # Always set project and quota, regardless of whether credentials were changed
357
+ set_project_quota(creds_info["project"])
358
+
359
+ # Test Vertex AI connection
360
+ console.print("> Testing GCP and Vertex AI Connection...")
361
+ try:
362
+ verify_vertex_connection(
363
+ project_id=creds_info["project"],
364
+ location=region,
365
+ )
391
366
  console.print(
392
- f"\n> Now using account '{final_creds_info['account']}' "
393
- f"with project '{final_creds_info['project']}'"
367
+ f"> Successfully verified connection to Vertex AI in project {creds_info['project']}"
394
368
  )
395
-
396
- except subprocess.CalledProcessError as e:
369
+ except Exception as e:
397
370
  console.print(
398
- "\n> Error while changing project. Please verify the project ID and try again.",
399
- style="bold red",
371
+ f"> Failed to connect to Vertex AI: {e!s}\n"
372
+ f"> Please check your authentication settings and permissions. "
373
+ f"Visit https://cloud.google.com/vertex-ai/docs/authentication for help.",
374
+ style="bold red"
400
375
  )
401
- logging.debug(f"Project change error: {e!s}")
402
- raise
376
+
377
+ return creds_info
403
378
 
404
379
 
405
380
  def replace_region_in_files(
@@ -485,11 +460,11 @@ def replace_region_in_files(
485
460
 
486
461
 
487
462
  def check_and_install_uv() -> None:
488
- """Check if uv is installed and install it if not present."""
463
+ """Check if uv is installed and inform the user if it's not."""
489
464
  try:
490
465
  # Use shell=True for Windows compatibility and add timeout
491
466
  process = subprocess.run(
492
- "uv --version", shell=True, capture_output=True, text=True, timeout=10
467
+ "uv --version", shell=True, capture_output=True, text=True, timeout=5
493
468
  )
494
469
  if process.returncode == 0:
495
470
  logging.debug("uv is already installed")
@@ -502,43 +477,6 @@ def check_and_install_uv() -> None:
502
477
  console.print("> uv is not installed", style="yellow")
503
478
 
504
479
  console.print(
505
- "\n> uv is required for the template to work. You can install it in several ways:"
506
- "\n 1. Automatically install uv now"
507
- "\n 2. Manual installation from: https://docs.astral.sh/uv/getting-started/installation"
508
- "\n This includes other options e.g PyPI (pip/pipx), Homebrew, Docker.."
509
- )
510
-
511
- install_choice = Prompt.ask(
512
- "\n> Would you like to install uv automatically now?",
513
- choices=["y", "n"],
514
- default="y",
480
+ "\n> uv is recommended for managing virtual environments and dependencies."
481
+ "\n> For installation instructions, visit: https://docs.astral.sh/uv/getting-started/installation"
515
482
  )
516
- if install_choice.lower() == "y":
517
- console.print("> Installing uv...", style="yellow")
518
- try:
519
- install_command = "curl -LsSf https://astral.sh/uv/install.sh | sh"
520
- # Add timeout to installation process as well
521
- subprocess.run(
522
- install_command,
523
- shell=True,
524
- check=True,
525
- timeout=60, # Give installation more time
526
- )
527
- console.print("> uv installed successfully!", style="green")
528
- except subprocess.TimeoutExpired:
529
- console.print("> uv installation timed out", style="bold red")
530
- raise
531
- except subprocess.CalledProcessError as e:
532
- console.print("> Failed to install uv", style="bold red")
533
- logging.debug(f"uv installation error: {e!s}")
534
- console.print(
535
- "> Please install uv manually using one of the methods listed above",
536
- style="yellow",
537
- )
538
- raise
539
- else:
540
- console.print(
541
- "> Please install uv manually using one of the methods listed above and try again",
542
- style="yellow",
543
- )
544
- raise click.Abort() from None
@@ -24,7 +24,7 @@ from google.cloud.aiplatform_v1beta1.services.prediction_service import (
24
24
  PredictionServiceClient,
25
25
  )
26
26
  from google.cloud.aiplatform_v1beta1.types.prediction_service import (
27
- GenerateContentRequest,
27
+ CountTokensRequest,
28
28
  )
29
29
 
30
30
 
@@ -43,12 +43,11 @@ def get_client_info() -> ClientInfo:
43
43
  return ClientInfo(client_library_version=version, user_agent=agent)
44
44
 
45
45
 
46
- def get_dummy_request(project_id: str, location: str) -> GenerateContentRequest:
46
+ def get_dummy_request(project_id: str, location: str) -> CountTokensRequest:
47
47
  """Creates a simple test request for Gemini."""
48
- return GenerateContentRequest(
49
- contents=[{"role": "user", "parts": [{"text": "Hi there!"}]}],
50
- generation_config={"candidate_count": 1},
51
- model=f"projects/{project_id}/locations/{location}/publishers/google/models/gemini-2.0-flash-001",
48
+ return CountTokensRequest(
49
+ contents=[{"role": "user", "parts": [{"text": "Hi"}]}],
50
+ endpoint=f"projects/{project_id}/locations/{location}/publishers/google/models/gemini-1.5-flash-002",
52
51
  )
53
52
 
54
53
 
@@ -64,10 +63,10 @@ def verify_vertex_connection(
64
63
  api_endpoint=f"{location}-aiplatform.googleapis.com"
65
64
  ),
66
65
  client_info=get_client_info(),
67
- transport="rest",
66
+ transport=initializer.global_config._api_transport,
68
67
  )
69
68
  request = get_dummy_request(project_id=project_id, location=location)
70
- client.generate_content(request=request)
69
+ client.count_tokens(request=request)
71
70
 
72
71
 
73
72
  def verify_credentials() -> dict[str, str]: