agent-starter-pack 0.0.1b0__tar.gz → 0.0.3b0__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 (191) hide show
  1. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/PKG-INFO +14 -12
  2. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/README.md +6 -4
  3. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/docs/cli/setup_cicd.md +9 -7
  4. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/pyproject.toml +32 -32
  5. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/base_template/deployment/terraform/dev/vars/env.tfvars +1 -1
  6. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/base_template/deployment/terraform/vars/env.tfvars +1 -1
  7. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/base_template/pyproject.toml +2 -2
  8. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/cli/commands/create.py +39 -29
  9. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/cli/commands/setup_cicd.py +12 -2
  10. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/cli/utils/cicd.py +66 -1
  11. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/cli/utils/gcp.py +1 -1
  12. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/cli/utils/template.py +6 -2
  13. agent_starter_pack-0.0.1b0/src/resources/locks/uv-langgraph_base_react-agent_engine.lock → agent_starter_pack-0.0.3b0/src/resources/locks/uv-agentic_rag_vertexai_search-agent_engine.lock +244 -51
  14. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/resources/locks/uv-agentic_rag_vertexai_search-cloud_run.lock +84 -83
  15. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/resources/locks/uv-crewai_coding_crew-agent_engine.lock +179 -75
  16. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/resources/locks/uv-crewai_coding_crew-cloud_run.lock +108 -107
  17. agent_starter_pack-0.0.1b0/src/resources/locks/uv-agentic_rag_vertexai_search-agent_engine.lock → agent_starter_pack-0.0.3b0/src/resources/locks/uv-langgraph_base_react-agent_engine.lock +155 -140
  18. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/resources/locks/uv-langgraph_base_react-cloud_run.lock +84 -83
  19. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/resources/locks/uv-multimodal_live_api-cloud_run.lock +81 -80
  20. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/tests/cicd/test_e2e_deployment.py +4 -2
  21. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/tests/cli/commands/test_create.py +24 -12
  22. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/tests/cli/commands/test_setup_cicd.py +1 -1
  23. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/tests/integration/test_templated_patterns.py +13 -10
  24. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/uv.lock +160 -237
  25. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/.gitignore +0 -0
  26. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/CODE_OF_CONDUCT.md +0 -0
  27. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/CONTRIBUTING.md +0 -0
  28. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/LICENSE +0 -0
  29. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/Makefile +0 -0
  30. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/agents/agentic_rag_vertexai_search/README.md +0 -0
  31. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/agents/agentic_rag_vertexai_search/app/agent.py +0 -0
  32. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/agents/agentic_rag_vertexai_search/app/retrievers.py +0 -0
  33. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/agents/agentic_rag_vertexai_search/app/templates.py +0 -0
  34. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/agents/agentic_rag_vertexai_search/notebooks/evaluating_langgraph_agent.ipynb +0 -0
  35. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/agents/agentic_rag_vertexai_search/template/.templateconfig.yaml +0 -0
  36. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/agents/agentic_rag_vertexai_search/tests/integration/test_agent.py +0 -0
  37. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/agents/crewai_coding_crew/README.md +0 -0
  38. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/agents/crewai_coding_crew/app/agent.py +0 -0
  39. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/agents/crewai_coding_crew/app/crew/config/agents.yaml +0 -0
  40. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/agents/crewai_coding_crew/app/crew/config/tasks.yaml +0 -0
  41. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/agents/crewai_coding_crew/app/crew/crew.py +0 -0
  42. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/agents/crewai_coding_crew/notebooks/evaluating_crewai_agent.ipynb +0 -0
  43. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/agents/crewai_coding_crew/notebooks/evaluating_langgraph_agent.ipynb +0 -0
  44. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/agents/crewai_coding_crew/template/.templateconfig.yaml +0 -0
  45. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/agents/crewai_coding_crew/tests/integration/test_agent.py +0 -0
  46. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/agents/langgraph_base_react/README.md +0 -0
  47. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/agents/langgraph_base_react/app/agent.py +0 -0
  48. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/agents/langgraph_base_react/notebooks/evaluating_langgraph_agent.ipynb +0 -0
  49. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/agents/langgraph_base_react/template/.templateconfig.yaml +0 -0
  50. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/agents/langgraph_base_react/tests/integration/test_agent.py +0 -0
  51. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/agents/multimodal_live_api/README.md +0 -0
  52. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/agents/multimodal_live_api/app/agent.py +0 -0
  53. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/agents/multimodal_live_api/app/server.py +0 -0
  54. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/agents/multimodal_live_api/app/templates.py +0 -0
  55. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/agents/multimodal_live_api/app/vector_store.py +0 -0
  56. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/agents/multimodal_live_api/template/.templateconfig.yaml +0 -0
  57. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/agents/multimodal_live_api/tests/integration/test_server_e2e.py +0 -0
  58. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/agents/multimodal_live_api/tests/load_test/load_test.py +0 -0
  59. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/agents/multimodal_live_api/tests/unit/test_server.py +0 -0
  60. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/docs/README.md +0 -0
  61. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/docs/cli/README.md +0 -0
  62. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/docs/cli/create.md +0 -0
  63. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/docs/data-ingestion.md +0 -0
  64. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/docs/deployment.md +0 -0
  65. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/docs/images/ags_banner.png +0 -0
  66. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/docs/images/ags_high_level_architecture.png +0 -0
  67. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/docs/observability.md +0 -0
  68. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/docs/why_starter_pack.md +0 -0
  69. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/base_template/.gitignore +0 -0
  70. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/base_template/Makefile +0 -0
  71. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/base_template/README.md +0 -0
  72. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/base_template/app/utils/tracing.py +0 -0
  73. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/base_template/app/utils/typing.py +0 -0
  74. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/base_template/deployment/README.md +0 -0
  75. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/base_template/deployment/cd/deploy-to-prod.yaml +0 -0
  76. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/base_template/deployment/cd/staging.yaml +0 -0
  77. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/base_template/deployment/ci/pr_checks.yaml +0 -0
  78. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/base_template/deployment/terraform/apis.tf +0 -0
  79. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/base_template/deployment/terraform/build_triggers.tf +0 -0
  80. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/base_template/deployment/terraform/dev/apis.tf +0 -0
  81. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/base_template/deployment/terraform/dev/iam.tf +0 -0
  82. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/base_template/deployment/terraform/dev/log_sinks.tf +0 -0
  83. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/base_template/deployment/terraform/dev/providers.tf +0 -0
  84. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/base_template/deployment/terraform/dev/storage.tf +0 -0
  85. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/base_template/deployment/terraform/dev/variables.tf +0 -0
  86. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/base_template/deployment/terraform/iam.tf +0 -0
  87. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/base_template/deployment/terraform/locals.tf +0 -0
  88. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/base_template/deployment/terraform/log_sinks.tf +0 -0
  89. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/base_template/deployment/terraform/providers.tf +0 -0
  90. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/base_template/deployment/terraform/service_accounts.tf +0 -0
  91. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/base_template/deployment/terraform/storage.tf +0 -0
  92. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/base_template/deployment/terraform/variables.tf +0 -0
  93. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/base_template/tests/unit/test_utils/test_tracing_exporter.py +0 -0
  94. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/cli/main.py +0 -0
  95. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/cli/utils/__init__.py +0 -0
  96. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/cli/utils/logging.py +0 -0
  97. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/data_ingestion/README.md +0 -0
  98. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/data_ingestion/data_ingestion_pipeline/components/ingest_data.py +0 -0
  99. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/data_ingestion/data_ingestion_pipeline/components/process_data.py +0 -0
  100. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/data_ingestion/data_ingestion_pipeline/pipeline.py +0 -0
  101. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/data_ingestion/data_ingestion_pipeline/submit_pipeline.py +0 -0
  102. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/data_ingestion/pyproject.toml +0 -0
  103. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/data_ingestion/uv.lock +0 -0
  104. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/deployment_targets/agent_engine/app/agent_engine_app.py +0 -0
  105. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/deployment_targets/agent_engine/app/utils/gcs.py +0 -0
  106. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/deployment_targets/agent_engine/deployment_metadata.json +0 -0
  107. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/deployment_targets/agent_engine/notebooks/intro_reasoning_engine.ipynb +0 -0
  108. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/deployment_targets/agent_engine/tests/integration/test_agent_engine_app.py +0 -0
  109. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/deployment_targets/agent_engine/tests/load_test/.results/.placeholder +0 -0
  110. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/deployment_targets/agent_engine/tests/load_test/.results/report.html +0 -0
  111. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/deployment_targets/agent_engine/tests/load_test/.results/results_exceptions.csv +0 -0
  112. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/deployment_targets/agent_engine/tests/load_test/.results/results_failures.csv +0 -0
  113. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/deployment_targets/agent_engine/tests/load_test/.results/results_stats.csv +0 -0
  114. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/deployment_targets/agent_engine/tests/load_test/.results/results_stats_history.csv +0 -0
  115. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/deployment_targets/agent_engine/tests/load_test/README.md +0 -0
  116. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/deployment_targets/agent_engine/tests/load_test/load_test.py +0 -0
  117. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/deployment_targets/agent_engine/tests/unit/test_dummy.py +0 -0
  118. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/deployment_targets/cloud_run/Dockerfile +0 -0
  119. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/deployment_targets/cloud_run/app/server.py +0 -0
  120. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/deployment_targets/cloud_run/deployment/terraform/artifact_registry.tf +0 -0
  121. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/deployment_targets/cloud_run/deployment/terraform/dev/service_accounts.tf +0 -0
  122. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/deployment_targets/cloud_run/tests/integration/test_server_e2e.py +0 -0
  123. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/deployment_targets/cloud_run/tests/load_test/.results/.placeholder +0 -0
  124. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/deployment_targets/cloud_run/tests/load_test/README.md +0 -0
  125. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/deployment_targets/cloud_run/tests/load_test/load_test.py +0 -0
  126. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/deployment_targets/cloud_run/tests/unit/test_server.py +0 -0
  127. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/deployment_targets/cloud_run/uv.lock +0 -0
  128. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/package-lock.json +0 -0
  129. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/package.json +0 -0
  130. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/public/favicon.ico +0 -0
  131. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/public/index.html +0 -0
  132. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/public/robots.txt +0 -0
  133. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/src/App.scss +0 -0
  134. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/src/App.test.tsx +0 -0
  135. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/src/App.tsx +0 -0
  136. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/src/components/audio-pulse/AudioPulse.tsx +0 -0
  137. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/src/components/audio-pulse/audio-pulse.scss +0 -0
  138. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/src/components/control-tray/ControlTray.tsx +0 -0
  139. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/src/components/control-tray/control-tray.scss +0 -0
  140. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/src/components/logger/Logger.tsx +0 -0
  141. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/src/components/logger/logger.scss +0 -0
  142. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/src/components/logger/mock-logs.ts +0 -0
  143. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/src/components/side-panel/SidePanel.tsx +0 -0
  144. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/src/components/side-panel/side-panel.scss +0 -0
  145. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/src/contexts/LiveAPIContext.tsx +0 -0
  146. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/src/hooks/use-live-api.ts +0 -0
  147. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/src/hooks/use-media-stream-mux.ts +0 -0
  148. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/src/hooks/use-screen-capture.ts +0 -0
  149. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/src/hooks/use-webcam.ts +0 -0
  150. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/src/index.css +0 -0
  151. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/src/index.tsx +0 -0
  152. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/src/multimodal-live-types.ts +0 -0
  153. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/src/react-app-env.d.ts +0 -0
  154. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/src/reportWebVitals.ts +0 -0
  155. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/src/setupTests.ts +0 -0
  156. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/src/utils/audio-recorder.ts +0 -0
  157. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/src/utils/audio-streamer.ts +0 -0
  158. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/src/utils/audioworklet-registry.ts +0 -0
  159. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/src/utils/multimodal-live-client.ts +0 -0
  160. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/src/utils/store-logger.ts +0 -0
  161. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/src/utils/utils.ts +0 -0
  162. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/src/utils/worklets/audio-processing.ts +0 -0
  163. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/src/utils/worklets/vol-meter.ts +0 -0
  164. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/live_api_react/frontend/tsconfig.json +0 -0
  165. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/streamlit/frontend/side_bar.py +0 -0
  166. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/streamlit/frontend/streamlit_app.py +0 -0
  167. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/streamlit/frontend/style/app_markdown.py +0 -0
  168. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/streamlit/frontend/utils/chat_utils.py +0 -0
  169. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/streamlit/frontend/utils/local_chat_history.py +0 -0
  170. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/streamlit/frontend/utils/message_editing.py +0 -0
  171. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/streamlit/frontend/utils/multimodal_utils.py +0 -0
  172. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/streamlit/frontend/utils/stream_handler.py +0 -0
  173. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/frontends/streamlit/frontend/utils/title_summary.py +0 -0
  174. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/resources/containers/data_processing/Dockerfile +0 -0
  175. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/resources/setup_cicd/cicd_variables.tf +0 -0
  176. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/resources/setup_cicd/github.tf +0 -0
  177. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/resources/setup_cicd/providers.tf +0 -0
  178. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/utils/generate_locks.py +0 -0
  179. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/utils/lock_utils.py +0 -0
  180. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/src/utils/watch_and_rebuild.py +0 -0
  181. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/tests/cicd/example.env +0 -0
  182. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/tests/cli/utils/test_cicd.py +0 -0
  183. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/tests/integration/test_io_patterns.py +0 -0
  184. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/tests/integration/test_template_linting.py +0 -0
  185. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/tests/test_frontend/test_side_bar.py +0 -0
  186. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/tests/test_frontend/test_streamlit_app.py +0 -0
  187. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/tests/test_frontend/test_utils/test_chat_utils.py +0 -0
  188. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/tests/test_frontend/test_utils/test_local_chat_history.py +0 -0
  189. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/tests/test_frontend/test_utils/test_message_editing.py +0 -0
  190. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/tests/test_frontend/test_utils/test_multimodal_utils.py +0 -0
  191. {agent_starter_pack-0.0.1b0 → agent_starter_pack-0.0.3b0}/tests/test_frontend/test_utils/test_stream_handler.py +0 -0
@@ -1,18 +1,18 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agent-starter-pack
3
- Version: 0.0.1b0
3
+ Version: 0.0.3b0
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
7
7
  License-File: LICENSE
8
8
  Requires-Python: >=3.10
9
- Requires-Dist: click>=8.1.7
10
- Requires-Dist: cookiecutter>=2.5.0
11
- Requires-Dist: google-cloud-aiplatform>=1.38.1
12
- Requires-Dist: inquirer>=3.1.3
13
- Requires-Dist: pyyaml>=6.0.1
14
- Requires-Dist: rich>=13.7.0
15
- Requires-Dist: uv>=0.1.0
9
+ Requires-Dist: click~=8.1.7
10
+ Requires-Dist: cookiecutter~=2.5.0
11
+ Requires-Dist: google-cloud-aiplatform~=1.81.0
12
+ Requires-Dist: inquirer~=3.1.3
13
+ Requires-Dist: pyyaml~=6.0.1
14
+ Requires-Dist: rich~=13.7.0
15
+ Requires-Dist: uv~=0.6.3
16
16
  Provides-Extra: jupyter
17
17
  Requires-Dist: ipykernel>=6.29.5; extra == 'jupyter'
18
18
  Requires-Dist: jupyter; extra == 'jupyter'
@@ -34,7 +34,7 @@ It accelerates development by providing a holistic, production-ready solution, a
34
34
 
35
35
  | ⚡️ Launch | 🧪 Experiment | ✅ Deploy | 🛠️ Customize |
36
36
  |---|---|---|---|
37
- | Pre-built agent templates (ReAct, RAG, multi-agent, Live Multimodal API). | Vertex AI evaluation and an interactive playground. | Production-ready infrastructure with monitoring, observability, and CI/CD. | Extend and customize templates. |
37
+ | [Pre-built agent templates](./agents/) (ReAct, RAG, multi-agent, Live Multimodal API). | [Vertex AI evaluation]() and an interactive playground. | Production-ready infra with [monitoring](./docs/monitoring.md), [observability](./docs/observability.md), and [CI/CD](./docs/deployment.md) on [Cloud Run](https://cloud.google.com/run) or [Agent Engine](https://cloud.google.com/vertex-ai/generative-ai/docs/reasoning-engine/overview). | Extend and customize templates according to your needs. |
38
38
 
39
39
  ---
40
40
 
@@ -43,10 +43,13 @@ It accelerates development by providing a holistic, production-ready solution, a
43
43
  Ready to build your AI agent? Simply run this command:
44
44
 
45
45
  ```bash
46
- # 1. Install the Agent Starter Pack CLI
46
+ # Create and activate a Python virtual environment
47
+ python -m venv venv && source venv/bin/activate
48
+
49
+ # Install the agent starter pack
47
50
  pip install agent-starter-pack
48
51
 
49
- # 2. Create a new agent project (choose from available templates)
52
+ # Create a new agent project
50
53
  agent-starter-pack create my-awesome-agent
51
54
  ```
52
55
 
@@ -105,7 +108,6 @@ This project represents the next evolution of the [e2e-gen-ai-app-starter-pack](
105
108
 
106
109
  - Python 3.10+
107
110
  - [Google Cloud SDK](https://cloud.google.com/sdk/docs/install)
108
- - [uv](https://github.com/astral-sh/uv)
109
111
  - [Terraform](https://developer.hashicorp.com/terraform/downloads) (for deployment)
110
112
 
111
113
 
@@ -8,7 +8,7 @@ It accelerates development by providing a holistic, production-ready solution, a
8
8
 
9
9
  | ⚡️ Launch | 🧪 Experiment | ✅ Deploy | 🛠️ Customize |
10
10
  |---|---|---|---|
11
- | Pre-built agent templates (ReAct, RAG, multi-agent, Live Multimodal API). | Vertex AI evaluation and an interactive playground. | Production-ready infrastructure with monitoring, observability, and CI/CD. | Extend and customize templates. |
11
+ | [Pre-built agent templates](./agents/) (ReAct, RAG, multi-agent, Live Multimodal API). | [Vertex AI evaluation]() and an interactive playground. | Production-ready infra with [monitoring](./docs/monitoring.md), [observability](./docs/observability.md), and [CI/CD](./docs/deployment.md) on [Cloud Run](https://cloud.google.com/run) or [Agent Engine](https://cloud.google.com/vertex-ai/generative-ai/docs/reasoning-engine/overview). | Extend and customize templates according to your needs. |
12
12
 
13
13
  ---
14
14
 
@@ -17,10 +17,13 @@ It accelerates development by providing a holistic, production-ready solution, a
17
17
  Ready to build your AI agent? Simply run this command:
18
18
 
19
19
  ```bash
20
- # 1. Install the Agent Starter Pack CLI
20
+ # Create and activate a Python virtual environment
21
+ python -m venv venv && source venv/bin/activate
22
+
23
+ # Install the agent starter pack
21
24
  pip install agent-starter-pack
22
25
 
23
- # 2. Create a new agent project (choose from available templates)
26
+ # Create a new agent project
24
27
  agent-starter-pack create my-awesome-agent
25
28
  ```
26
29
 
@@ -79,7 +82,6 @@ This project represents the next evolution of the [e2e-gen-ai-app-starter-pack](
79
82
 
80
83
  - Python 3.10+
81
84
  - [Google Cloud SDK](https://cloud.google.com/sdk/docs/install)
82
- - [uv](https://github.com/astral-sh/uv)
83
85
  - [Terraform](https://developer.hashicorp.com/terraform/downloads) (for deployment)
84
86
 
85
87
 
@@ -1,4 +1,3 @@
1
-
2
1
  ## ⚙️ CI/CD Setup (Experimental)
3
2
 
4
3
  This starter pack provides an *experimental* command to automate the setup of a basic CI/CD pipeline. This pipeline connects your agent to a GitHub repository and uses Google Cloud Build for automated testing and deployment.
@@ -7,7 +6,7 @@ This starter pack provides an *experimental* command to automate the setup of a
7
6
 
8
7
  * **Experimental Feature:** The `setup-cicd` command is under active development. Expect potential changes and report any issues you encounter.
9
8
  * **Production Readiness:** For production deployments, we *strongly* recommend following the manual setup instructions in the `deployment/README.md` file. The manual approach provides greater control over security, customization, and environment-specific configurations. This automated setup is primarily for development and testing.
10
- * **GitHub Only:** This command is works with Github.
9
+ * **Git Provider:** Currently, only GitHub is supported, but support for other Git providers is planned.
11
10
 
12
11
  ### Quick CI/CD Setup (Automated)
13
12
 
@@ -15,12 +14,11 @@ This command streamlines the CI/CD setup process. It handles:
15
14
 
16
15
  1. **GitHub Repository:** Creates a new GitHub repository (or connects to an existing *empty* one).
17
16
  2. **Cloud Build Connection:** Establishes a connection between your GitHub repository and Google Cloud Build.
18
- 3. **Development Environment:** Sets up the infrastructure for your development environment using Terraform.
17
+ 3. **Development Environment:** Sets up the infrastructure for your development environment using Terraform (optional).
19
18
  4. **CI/CD Triggers:** Configures basic Cloud Build triggers for pull request checks and deployments.
20
19
  5. **Terraform State:** By default, configures remote Terraform state management using a Google Cloud Storage (GCS) bucket. You can opt for local state management if needed.
21
20
 
22
21
  **Command Usage:**
23
-
24
22
  ```bash
25
23
  agent-starter-pack setup-cicd \
26
24
  --dev-project <YOUR_DEV_PROJECT_ID> \
@@ -40,10 +38,10 @@ agent-starter-pack setup-cicd \
40
38
 
41
39
  **Options:**
42
40
 
43
- * `--dev-project`: (Optional) The Google Cloud project ID for your development environment. If provided, the setup will also configure a development environment.
44
41
  * `--staging-project`: **Required.** The Google Cloud project ID for your staging environment.
45
42
  * `--prod-project`: **Required.** The Google Cloud project ID for your production environment.
46
- * `--cicd-project`: **Required.** The Google Cloud project ID where your CI/CD resources (Cloud Build, etc.) will reside.
43
+ * `--cicd-project`: **Required.** The Google Cloud project ID where your CI/CD resources (Cloud Build, etc.) will reside. This can be the same as your staging or production project.
44
+ * `--dev-project`: (Optional) The Google Cloud project ID for your development environment. If provided, the setup will also configure a development environment.
47
45
  * `--region`: The GCP region to use (default: `us-central1`).
48
46
  * `--repository-name`: (Optional) The name of your GitHub repository. If omitted, a name will be generated (e.g., `genai-app-1678886400`).
49
47
  * `--repository-owner`: (Optional) Your GitHub username or organization name. If omitted, it defaults to your currently authenticated GitHub user.
@@ -54,6 +52,10 @@ agent-starter-pack setup-cicd \
54
52
  * `--debug`: Enable debug logging for more verbose output.
55
53
  * `--auto-approve`: Skip interactive confirmation prompts. Use with caution!
56
54
 
55
+ **Project Requirements:**
56
+
57
+ You need at least *two* Google Cloud projects: one for staging and one for production. The CI/CD project can be the same as either the staging or production project. A separate development project is optional.
58
+
57
59
  **Interactive Mode vs. Programmatic Mode:**
58
60
 
59
61
  The command operates in two modes:
@@ -95,4 +97,4 @@ For fine-grained control and production deployments, refer to the detailed instr
95
97
  * **Enhanced Security:** Configure stricter IAM permissions and network policies.
96
98
  * **Custom Workflows:** Implement custom build, test, and deployment steps.
97
99
  * **Environment-Specific Settings:** Tailor configurations for each environment (dev, staging, prod).
98
- * **Advanced CI/CD:** Integrate with other CI/CD tools and services.
100
+ * **Advanced CI/CD:** Integrate with other CI/CD tools and services.
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "agent-starter-pack"
3
- version = "0.0.1b"
3
+ version = "0.0.3b"
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" },
@@ -9,41 +9,41 @@ license = {text = "Apache-2.0"}
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
11
11
  dependencies = [
12
- "click>=8.1.7",
13
- "cookiecutter>=2.5.0",
14
- "google-cloud-aiplatform>=1.38.1",
15
- "inquirer>=3.1.3",
16
- "rich>=13.7.0",
17
- "uv>=0.1.0",
18
- "pyyaml>=6.0.1",
12
+ "click~=8.1.7",
13
+ "cookiecutter~=2.5.0",
14
+ "google-cloud-aiplatform~=1.81.0",
15
+ "inquirer~=3.1.3",
16
+ "rich~=13.7.0",
17
+ "uv~=0.6.3",
18
+ "pyyaml~=6.0.1",
19
19
  ]
20
20
 
21
21
  [dependency-groups]
22
22
  dev = [
23
- "pytest>=7.4.3",
24
- "pytest-mock>=3.12.0",
25
- "pytest-cov>=4.1.0",
26
- "black>=23.11.0",
27
- "isort>=5.12.0",
28
- "flake8>=6.1.0",
29
- "watchdog>=6.0.0",
30
- "sphinx>=7.1.2",
31
- "sphinx-click>=5.1.0",
32
- "sphinx-rtd-theme>=2.0.0",
33
- "sphinx-autoapi>=3.0.0",
34
- "myst-parser>=2.0.0",
35
- "rich>=13.7.0",
36
- "streamlit>=1.42.0",
37
- "langchain-core>=0.3.34",
38
- "langchain-google-vertexai>=2.0.13",
39
- "streamlit-feedback>=0.1.4",
40
- "grpcio>=1.70.0",
41
- "pytest-xdist>=3.6.1",
42
- "langgraph>=0.2.72",
43
- "crewai>=0.95.0",
44
- "opentelemetry-instrumentation-langchain>=0.38.5",
45
- "langchain-google-community[vertexaisearch]>=2.0.4",
46
- "google-cloud-logging>=3.11.4",
23
+ "black~=23.11.0",
24
+ "crewai~=0.95.0",
25
+ "flake8~=6.1.0",
26
+ "google-cloud-logging~=3.11.4",
27
+ "grpcio~=1.70.0",
28
+ "isort~=5.12.0",
29
+ "langchain-core~=0.3.34",
30
+ "langchain-google-community[vertexaisearch]~=2.0.4",
31
+ "langchain-google-vertexai~=2.0.13",
32
+ "langgraph~=0.2.72",
33
+ "myst-parser~=2.0.0",
34
+ "opentelemetry-instrumentation-langchain~=0.38.5",
35
+ "pytest~=7.4.3",
36
+ "pytest-cov~=4.1.0",
37
+ "pytest-mock~=3.12.0",
38
+ "pytest-xdist~=3.6.1",
39
+ "rich~=13.7.0",
40
+ "sphinx~=7.1.2",
41
+ "sphinx-autoapi~=3.0.0",
42
+ "sphinx-click~=5.1.0",
43
+ "sphinx-rtd-theme~=2.0.0",
44
+ "streamlit~=1.42.0",
45
+ "streamlit-feedback~=0.1.4",
46
+ "watchdog~=6.0.0",
47
47
  ]
48
48
 
49
49
  [project.optional-dependencies]
@@ -6,7 +6,7 @@ region = "us-central1"
6
6
 
7
7
  telemetry_bigquery_dataset_id = "telemetry_genai_app_sample_sink"
8
8
  telemetry_sink_name = "telemetry_logs_genai_app_sample"
9
- telemetry_logs_filter = "jsonPayload.attributes.\"traceloop.association.properties.log_type\"=\"tracing\" jsonPayload.resource.attributes.\"service.name\"=\"Sample Chatbot Application\""
9
+ telemetry_logs_filter = "jsonPayload.attributes.\"traceloop.association.properties.log_type\"=\"tracing\" jsonPayload.resource.attributes.\"service.name\"=\"{{cookiecutter.project_name}}\""
10
10
 
11
11
  feedback_bigquery_dataset_id = "feedback_genai_app_sample_sink"
12
12
  feedback_sink_name = "feedback_logs_genai_app_sample"
@@ -22,7 +22,7 @@ cloud_run_app_sa_name = "{{cookiecutter.project_name}}-cr"
22
22
 
23
23
  telemetry_bigquery_dataset_id = "telemetry_genai_app_sample_sink"
24
24
  telemetry_sink_name = "telemetry_logs_genai_app_sample"
25
- telemetry_logs_filter = "jsonPayload.attributes.\"traceloop.association.properties.log_type\"=\"tracing\" jsonPayload.resource.attributes.\"service.name\"=\"Sample Chatbot Application\""
25
+ telemetry_logs_filter = "jsonPayload.attributes.\"traceloop.association.properties.log_type\"=\"tracing\" jsonPayload.resource.attributes.\"service.name\"=\"{{cookiecutter.project_name}}\""
26
26
 
27
27
  feedback_bigquery_dataset_id = "feedback_genai_app_sample_sink"
28
28
  feedback_sink_name = "feedback_logs_genai_app_sample"
@@ -14,11 +14,11 @@ dependencies = [
14
14
  "traceloop-sdk~=0.38.7",
15
15
  "google-cloud-logging~=3.11.4",
16
16
  {%- if cookiecutter.deployment_target == 'cloud_run' %}
17
- "google-cloud-aiplatform[evaluation]~=1.80.0",
17
+ "google-cloud-aiplatform[evaluation]~=1.81.0",
18
18
  "fastapi~=0.115.8",
19
19
  "uvicorn~=0.34.0"
20
20
  {%- elif cookiecutter.deployment_target == 'agent_engine' %}
21
- "google-cloud-aiplatform[evaluation,langchain,reasoningengine]~=1.77.0"
21
+ "google-cloud-aiplatform[evaluation,langchain,reasoningengine]~=1.81.0"
22
22
  {%- endif %}
23
23
  ]
24
24
  {% if cookiecutter.deployment_target == 'cloud_run' %}
@@ -149,11 +149,16 @@ def create(
149
149
  logging.debug(f"Selected deployment target: {final_deployment}")
150
150
 
151
151
  # Data pipeline selection
152
- include_data_ingestion = include_data_ingestion or prompt_data_ingestion(final_agent)
152
+ include_data_ingestion = include_data_ingestion or prompt_data_ingestion(
153
+ final_agent
154
+ )
153
155
  if debug:
154
156
  logging.debug(f"Include data pipeline: {include_data_ingestion}")
155
157
  # Region confirmation (if not explicitly passed)
156
- if not auto_approve and ctx.get_parameter_source("region") != ParameterSource.COMMANDLINE:
158
+ if (
159
+ not auto_approve
160
+ and ctx.get_parameter_source("region") != ParameterSource.COMMANDLINE
161
+ ):
157
162
  region = prompt_region_confirmation(region)
158
163
  if debug:
159
164
  logging.debug(f"Selected region: {region}")
@@ -197,11 +202,11 @@ def create(
197
202
  Prompt.ask(
198
203
  f"\n> You are logged in with account '{creds_info['account']}' "
199
204
  f"and using project '{creds_info['project']}'. "
200
- "Do you wish to change this?",
201
- choices=["y", "n"],
202
- default="n",
205
+ "Is this correct?",
206
+ choices=["Y", "n"],
207
+ default="Y",
203
208
  ).lower()
204
- == "y"
209
+ == "n"
205
210
  )
206
211
 
207
212
  if change_creds:
@@ -215,27 +220,32 @@ def create(
215
220
  # Check for uv installation
216
221
  console.print("> Checking for uv installation...")
217
222
  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
+ )
218
241
  else:
219
242
  if debug:
220
243
  logging.debug("Skipping verification checks due to --skip-checks flag")
221
244
  console.print("> Skipping verification checks", style="yellow")
222
245
  # Set a default creds_info when skipping checks
223
- creds_info = {"project": gcp_project} if gcp_project else {"project": "unknown"}
224
-
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}", style="bold red"
246
+ creds_info = (
247
+ {"project": gcp_project} if gcp_project else {"project": "unknown"}
237
248
  )
238
- raise
239
249
 
240
250
  # Process template
241
251
  template_path = get_template_path(final_agent, debug=debug)
@@ -263,10 +273,14 @@ def create(
263
273
  console.print("\n> 👍 Done. Execute the following command to get started:")
264
274
  if output_dir:
265
275
  # If output_dir was specified, use the absolute path
266
- console.print(f"cd {project_path} && make install && make playground")
276
+ console.print(
277
+ f"[bold bright_green]cd {project_path} && make install && make playground[/]"
278
+ )
267
279
  else:
268
280
  # If no output_dir specified, just use project name
269
- console.print(f"cd {project_name} && make install && make playground")
281
+ console.print(
282
+ f"[bold bright_green]cd {project_name} && make install && make playground[/]"
283
+ )
270
284
 
271
285
  # Replace region in all files if a different region was specified
272
286
  if region != "us-central1":
@@ -475,11 +489,7 @@ def check_and_install_uv() -> None:
475
489
  try:
476
490
  # Use shell=True for Windows compatibility and add timeout
477
491
  process = subprocess.run(
478
- "uv --version",
479
- shell=True,
480
- capture_output=True,
481
- text=True,
482
- timeout=10
492
+ "uv --version", shell=True, capture_output=True, text=True, timeout=10
483
493
  )
484
494
  if process.returncode == 0:
485
495
  logging.debug("uv is already installed")
@@ -512,7 +522,7 @@ def check_and_install_uv() -> None:
512
522
  install_command,
513
523
  shell=True,
514
524
  check=True,
515
- timeout=60 # Give installation more time
525
+ timeout=60, # Give installation more time
516
526
  )
517
527
  console.print("> uv installed successfully!", style="green")
518
528
  except subprocess.TimeoutExpired:
@@ -31,6 +31,8 @@ from src.cli.utils.cicd import (
31
31
  create_github_connection,
32
32
  create_github_repository,
33
33
  ensure_apis_enabled,
34
+ handle_github_authentication,
35
+ is_github_authenticated,
34
36
  print_cicd_summary,
35
37
  run_command,
36
38
  )
@@ -84,7 +86,7 @@ def setup_git_repository(config: ProjectConfig) -> str:
84
86
 
85
87
  # Initialize git if not already initialized
86
88
  if not (Path.cwd() / ".git").exists():
87
- run_command(["git", "init"])
89
+ run_command(["git", "init", "-b", "main"])
88
90
  console.print("✅ Git repository initialized")
89
91
 
90
92
  # Get current GitHub username for the remote URL
@@ -470,6 +472,14 @@ def setup_cicd(
470
472
  if not git_provider:
471
473
  git_provider = prompt_for_git_provider()
472
474
 
475
+ # Check GitHub authentication if GitHub is selected
476
+ if git_provider == "github" and not (github_pat and github_app_installation_id):
477
+ if not is_github_authenticated():
478
+ console.print("\n⚠️ Not authenticated with GitHub CLI", style="yellow")
479
+ handle_github_authentication()
480
+ else:
481
+ console.print("✅ GitHub CLI authentication verified")
482
+
473
483
  # Only prompt for repository details if not provided via CLI
474
484
  if not (repository_name and repository_owner):
475
485
  repository_name, repository_owner = prompt_for_repository_details(
@@ -676,7 +686,7 @@ def setup_cicd(
676
686
 
677
687
  # Initialize git if not already initialized
678
688
  if not (Path.cwd() / ".git").exists():
679
- run_command(["git", "init"])
689
+ run_command(["git", "init", "-b", "main"])
680
690
  console.print("✅ Git repository initialized")
681
691
 
682
692
  # Get current GitHub username for the remote URL
@@ -22,6 +22,7 @@ from dataclasses import dataclass
22
22
  from enum import Enum
23
23
  from pathlib import Path
24
24
 
25
+ import click
25
26
  from rich.console import Console
26
27
  from rich.prompt import IntPrompt, Prompt
27
28
 
@@ -407,6 +408,7 @@ def run_command(
407
408
  cwd: Path | None = None,
408
409
  capture_output: bool = False,
409
410
  shell: bool = False,
411
+ input: str | None = None,
410
412
  ) -> subprocess.CompletedProcess:
411
413
  """Run a command and display it to the user"""
412
414
  # Format command for display
@@ -417,7 +419,13 @@ def run_command(
417
419
 
418
420
  # Run the command
419
421
  result = subprocess.run(
420
- cmd, check=check, cwd=cwd, capture_output=capture_output, text=True, shell=shell
422
+ cmd,
423
+ check=check,
424
+ cwd=cwd,
425
+ capture_output=capture_output,
426
+ text=True,
427
+ shell=shell,
428
+ input=input,
421
429
  )
422
430
 
423
431
  # Display output if captured
@@ -429,6 +437,63 @@ def run_command(
429
437
  return result
430
438
 
431
439
 
440
+ def is_github_authenticated() -> bool:
441
+ """Check if the user is authenticated with GitHub CLI.
442
+
443
+ Returns:
444
+ bool: True if authenticated, False otherwise
445
+ """
446
+ try:
447
+ # Try to get the current user, which will fail if not authenticated
448
+ result = run_command(["gh", "auth", "status"], check=False, capture_output=True)
449
+ return result.returncode == 0
450
+ except Exception:
451
+ return False
452
+
453
+
454
+ def handle_github_authentication() -> None:
455
+ """Handle GitHub CLI authentication interactively."""
456
+ console.print("\n🔑 GitHub Authentication Required", style="bold yellow")
457
+ console.print("You need to authenticate with GitHub CLI to continue.")
458
+ console.print("Choose an authentication method:")
459
+ console.print("1. Login with browser")
460
+ console.print("2. Login with token")
461
+
462
+ choice = click.prompt(
463
+ "Select authentication method", type=click.Choice(["1", "2"]), default="1"
464
+ )
465
+
466
+ try:
467
+ if choice == "1":
468
+ # Browser-based authentication
469
+ run_command(["gh", "auth", "login", "--web"])
470
+ else:
471
+ # Token-based authentication
472
+ token = click.prompt(
473
+ "Enter your GitHub Personal Access Token", hide_input=True
474
+ )
475
+ # Use a subprocess with pipe to avoid showing the token in process list
476
+ process = subprocess.Popen(
477
+ ["gh", "auth", "login", "--with-token"],
478
+ stdin=subprocess.PIPE,
479
+ stdout=subprocess.PIPE,
480
+ stderr=subprocess.PIPE,
481
+ text=True,
482
+ )
483
+ stdout, stderr = process.communicate(input=token + "\n")
484
+
485
+ if process.returncode != 0:
486
+ console.print(f"❌ Authentication failed: {stderr}", style="bold red")
487
+ raise subprocess.CalledProcessError(
488
+ process.returncode, ["gh", "auth", "login"], stdout, stderr
489
+ )
490
+
491
+ console.print("✅ Successfully authenticated with GitHub", style="green")
492
+ except subprocess.CalledProcessError as e:
493
+ console.print(f"❌ Authentication failed: {e}", style="bold red")
494
+ raise click.Abort() from e
495
+
496
+
432
497
  def create_github_repository(repository_owner: str, repository_name: str) -> None:
433
498
  """Create GitHub repository if it doesn't exist.
434
499
 
@@ -64,7 +64,7 @@ def verify_vertex_connection(
64
64
  api_endpoint=f"{location}-aiplatform.googleapis.com"
65
65
  ),
66
66
  client_info=get_client_info(),
67
- transport=initializer.global_config._api_transport,
67
+ transport="rest",
68
68
  )
69
69
  request = get_dummy_request(project_id=project_id, location=location)
70
70
  client.generate_content(request=request)
@@ -344,7 +344,9 @@ def process_template(
344
344
  requires_data_ingestion = template_config.get("settings", {}).get(
345
345
  "requires_data_ingestion", False
346
346
  )
347
- should_include_data_ingestion = include_data_ingestion or requires_data_ingestion
347
+ should_include_data_ingestion = (
348
+ include_data_ingestion or requires_data_ingestion
349
+ )
348
350
 
349
351
  if should_include_data_ingestion:
350
352
  logging.debug("3. Including data processing files")
@@ -400,7 +402,9 @@ def process_template(
400
402
  requires_data_ingestion = template_config.get("settings", {}).get(
401
403
  "requires_data_ingestion", False
402
404
  )
403
- should_include_data_ingestion = include_data_ingestion or requires_data_ingestion
405
+ should_include_data_ingestion = (
406
+ include_data_ingestion or requires_data_ingestion
407
+ )
404
408
 
405
409
  if should_include_data_ingestion:
406
410
  logging.debug(