agent-starter-pack 0.0.10b0__tar.gz → 0.0.12b0__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 (189) hide show
  1. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/PKG-INFO +5 -2
  2. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/README.md +4 -0
  3. agent_starter_pack-0.0.12b0/docs/installation.md +72 -0
  4. agent_starter_pack-0.0.12b0/docs/troubleshooting.md +104 -0
  5. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/pyproject.toml +1 -2
  6. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/base_template/Makefile +4 -3
  7. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/base_template/README.md +12 -2
  8. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/cli/commands/create.py +11 -66
  9. agent_starter_pack-0.0.12b0/src/cli/main.py +57 -0
  10. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/cli/utils/cicd.py +11 -0
  11. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/tests/cli/commands/test_create.py +4 -14
  12. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/uv.lock +1 -70
  13. agent_starter_pack-0.0.10b0/src/cli/main.py +0 -35
  14. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/.gitignore +0 -0
  15. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/CODE_OF_CONDUCT.md +0 -0
  16. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/CONTRIBUTING.md +0 -0
  17. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/LICENSE +0 -0
  18. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/Makefile +0 -0
  19. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/agents/agentic_rag_vertexai_search/README.md +0 -0
  20. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/agents/agentic_rag_vertexai_search/app/agent.py +0 -0
  21. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/agents/agentic_rag_vertexai_search/app/retrievers.py +0 -0
  22. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/agents/agentic_rag_vertexai_search/app/templates.py +0 -0
  23. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/agents/agentic_rag_vertexai_search/notebooks/evaluating_langgraph_agent.ipynb +0 -0
  24. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/agents/agentic_rag_vertexai_search/template/.templateconfig.yaml +0 -0
  25. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/agents/agentic_rag_vertexai_search/tests/integration/test_agent.py +0 -0
  26. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/agents/crewai_coding_crew/README.md +0 -0
  27. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/agents/crewai_coding_crew/app/agent.py +0 -0
  28. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/agents/crewai_coding_crew/app/crew/config/agents.yaml +0 -0
  29. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/agents/crewai_coding_crew/app/crew/config/tasks.yaml +0 -0
  30. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/agents/crewai_coding_crew/app/crew/crew.py +0 -0
  31. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/agents/crewai_coding_crew/notebooks/evaluating_crewai_agent.ipynb +0 -0
  32. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/agents/crewai_coding_crew/notebooks/evaluating_langgraph_agent.ipynb +0 -0
  33. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/agents/crewai_coding_crew/template/.templateconfig.yaml +0 -0
  34. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/agents/crewai_coding_crew/tests/integration/test_agent.py +0 -0
  35. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/agents/langgraph_base_react/README.md +0 -0
  36. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/agents/langgraph_base_react/app/agent.py +0 -0
  37. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/agents/langgraph_base_react/notebooks/evaluating_langgraph_agent.ipynb +0 -0
  38. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/agents/langgraph_base_react/template/.templateconfig.yaml +0 -0
  39. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/agents/langgraph_base_react/tests/integration/test_agent.py +0 -0
  40. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/agents/multimodal_live_api/README.md +0 -0
  41. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/agents/multimodal_live_api/app/agent.py +0 -0
  42. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/agents/multimodal_live_api/app/server.py +0 -0
  43. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/agents/multimodal_live_api/app/templates.py +0 -0
  44. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/agents/multimodal_live_api/app/vector_store.py +0 -0
  45. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/agents/multimodal_live_api/template/.templateconfig.yaml +0 -0
  46. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/agents/multimodal_live_api/tests/integration/test_server_e2e.py +0 -0
  47. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/agents/multimodal_live_api/tests/load_test/load_test.py +0 -0
  48. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/agents/multimodal_live_api/tests/unit/test_server.py +0 -0
  49. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/docs/README.md +0 -0
  50. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/docs/cli/README.md +0 -0
  51. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/docs/cli/create.md +0 -0
  52. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/docs/cli/setup_cicd.md +0 -0
  53. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/docs/data-ingestion.md +0 -0
  54. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/docs/deployment.md +0 -0
  55. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/docs/images/ags_banner.png +0 -0
  56. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/docs/images/ags_high_level_architecture.png +0 -0
  57. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/docs/observability.md +0 -0
  58. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/docs/why_starter_pack.md +0 -0
  59. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/base_template/.gitignore +0 -0
  60. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/base_template/app/utils/tracing.py +0 -0
  61. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/base_template/app/utils/typing.py +0 -0
  62. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/base_template/deployment/README.md +0 -0
  63. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/base_template/deployment/cd/deploy-to-prod.yaml +0 -0
  64. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/base_template/deployment/cd/staging.yaml +0 -0
  65. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/base_template/deployment/ci/pr_checks.yaml +0 -0
  66. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/base_template/deployment/terraform/apis.tf +0 -0
  67. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/base_template/deployment/terraform/build_triggers.tf +0 -0
  68. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/base_template/deployment/terraform/dev/apis.tf +0 -0
  69. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/base_template/deployment/terraform/dev/iam.tf +0 -0
  70. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/base_template/deployment/terraform/dev/log_sinks.tf +0 -0
  71. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/base_template/deployment/terraform/dev/providers.tf +0 -0
  72. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/base_template/deployment/terraform/dev/storage.tf +0 -0
  73. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/base_template/deployment/terraform/dev/variables.tf +0 -0
  74. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/base_template/deployment/terraform/dev/vars/env.tfvars +0 -0
  75. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/base_template/deployment/terraform/iam.tf +0 -0
  76. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/base_template/deployment/terraform/locals.tf +0 -0
  77. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/base_template/deployment/terraform/log_sinks.tf +0 -0
  78. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/base_template/deployment/terraform/providers.tf +0 -0
  79. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/base_template/deployment/terraform/service_accounts.tf +0 -0
  80. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/base_template/deployment/terraform/storage.tf +0 -0
  81. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/base_template/deployment/terraform/variables.tf +0 -0
  82. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/base_template/deployment/terraform/vars/env.tfvars +0 -0
  83. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/base_template/pyproject.toml +0 -0
  84. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/base_template/tests/unit/test_utils/test_tracing_exporter.py +0 -0
  85. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/cli/commands/setup_cicd.py +0 -0
  86. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/cli/utils/__init__.py +0 -0
  87. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/cli/utils/gcp.py +0 -0
  88. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/cli/utils/logging.py +0 -0
  89. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/cli/utils/template.py +0 -0
  90. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/data_ingestion/README.md +0 -0
  91. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/data_ingestion/data_ingestion_pipeline/components/ingest_data.py +0 -0
  92. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/data_ingestion/data_ingestion_pipeline/components/process_data.py +0 -0
  93. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/data_ingestion/data_ingestion_pipeline/pipeline.py +0 -0
  94. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/data_ingestion/data_ingestion_pipeline/submit_pipeline.py +0 -0
  95. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/data_ingestion/pyproject.toml +0 -0
  96. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/data_ingestion/uv.lock +0 -0
  97. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/deployment_targets/agent_engine/app/agent_engine_app.py +0 -0
  98. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/deployment_targets/agent_engine/app/utils/gcs.py +0 -0
  99. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/deployment_targets/agent_engine/deployment_metadata.json +0 -0
  100. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/deployment_targets/agent_engine/notebooks/intro_reasoning_engine.ipynb +0 -0
  101. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/deployment_targets/agent_engine/tests/integration/test_agent_engine_app.py +0 -0
  102. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/deployment_targets/agent_engine/tests/load_test/.results/.placeholder +0 -0
  103. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/deployment_targets/agent_engine/tests/load_test/README.md +0 -0
  104. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/deployment_targets/agent_engine/tests/load_test/load_test.py +0 -0
  105. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/deployment_targets/agent_engine/tests/unit/test_dummy.py +0 -0
  106. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/deployment_targets/cloud_run/Dockerfile +0 -0
  107. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/deployment_targets/cloud_run/app/server.py +0 -0
  108. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/deployment_targets/cloud_run/deployment/terraform/artifact_registry.tf +0 -0
  109. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/deployment_targets/cloud_run/deployment/terraform/dev/service_accounts.tf +0 -0
  110. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/deployment_targets/cloud_run/tests/integration/test_server_e2e.py +0 -0
  111. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/deployment_targets/cloud_run/tests/load_test/.results/.placeholder +0 -0
  112. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/deployment_targets/cloud_run/tests/load_test/README.md +0 -0
  113. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/deployment_targets/cloud_run/tests/load_test/load_test.py +0 -0
  114. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/deployment_targets/cloud_run/tests/unit/test_server.py +0 -0
  115. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/deployment_targets/cloud_run/uv.lock +0 -0
  116. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/package-lock.json +0 -0
  117. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/package.json +0 -0
  118. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/public/favicon.ico +0 -0
  119. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/public/index.html +0 -0
  120. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/public/robots.txt +0 -0
  121. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/src/App.scss +0 -0
  122. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/src/App.test.tsx +0 -0
  123. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/src/App.tsx +0 -0
  124. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/src/components/audio-pulse/AudioPulse.tsx +0 -0
  125. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/src/components/audio-pulse/audio-pulse.scss +0 -0
  126. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/src/components/control-tray/ControlTray.tsx +0 -0
  127. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/src/components/control-tray/control-tray.scss +0 -0
  128. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/src/components/logger/Logger.tsx +0 -0
  129. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/src/components/logger/logger.scss +0 -0
  130. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/src/components/logger/mock-logs.ts +0 -0
  131. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/src/components/side-panel/SidePanel.tsx +0 -0
  132. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/src/components/side-panel/side-panel.scss +0 -0
  133. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/src/contexts/LiveAPIContext.tsx +0 -0
  134. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/src/hooks/use-live-api.ts +0 -0
  135. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/src/hooks/use-media-stream-mux.ts +0 -0
  136. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/src/hooks/use-screen-capture.ts +0 -0
  137. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/src/hooks/use-webcam.ts +0 -0
  138. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/src/index.css +0 -0
  139. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/src/index.tsx +0 -0
  140. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/src/multimodal-live-types.ts +0 -0
  141. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/src/react-app-env.d.ts +0 -0
  142. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/src/reportWebVitals.ts +0 -0
  143. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/src/setupTests.ts +0 -0
  144. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/src/utils/audio-recorder.ts +0 -0
  145. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/src/utils/audio-streamer.ts +0 -0
  146. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/src/utils/audioworklet-registry.ts +0 -0
  147. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/src/utils/multimodal-live-client.ts +0 -0
  148. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/src/utils/store-logger.ts +0 -0
  149. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/src/utils/utils.ts +0 -0
  150. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/src/utils/worklets/audio-processing.ts +0 -0
  151. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/src/utils/worklets/vol-meter.ts +0 -0
  152. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/live_api_react/frontend/tsconfig.json +0 -0
  153. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/streamlit/frontend/side_bar.py +0 -0
  154. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/streamlit/frontend/streamlit_app.py +0 -0
  155. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/streamlit/frontend/style/app_markdown.py +0 -0
  156. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/streamlit/frontend/utils/chat_utils.py +0 -0
  157. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/streamlit/frontend/utils/local_chat_history.py +0 -0
  158. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/streamlit/frontend/utils/message_editing.py +0 -0
  159. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/streamlit/frontend/utils/multimodal_utils.py +0 -0
  160. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/streamlit/frontend/utils/stream_handler.py +0 -0
  161. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/frontends/streamlit/frontend/utils/title_summary.py +0 -0
  162. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/resources/containers/data_processing/Dockerfile +0 -0
  163. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/resources/locks/uv-agentic_rag_vertexai_search-agent_engine.lock +0 -0
  164. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/resources/locks/uv-agentic_rag_vertexai_search-cloud_run.lock +0 -0
  165. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/resources/locks/uv-crewai_coding_crew-agent_engine.lock +0 -0
  166. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/resources/locks/uv-crewai_coding_crew-cloud_run.lock +0 -0
  167. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/resources/locks/uv-langgraph_base_react-agent_engine.lock +0 -0
  168. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/resources/locks/uv-langgraph_base_react-cloud_run.lock +0 -0
  169. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/resources/locks/uv-multimodal_live_api-cloud_run.lock +0 -0
  170. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/resources/setup_cicd/cicd_variables.tf +0 -0
  171. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/resources/setup_cicd/github.tf +0 -0
  172. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/resources/setup_cicd/providers.tf +0 -0
  173. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/utils/generate_locks.py +0 -0
  174. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/utils/lock_utils.py +0 -0
  175. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/src/utils/watch_and_rebuild.py +0 -0
  176. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/tests/cicd/example.env +0 -0
  177. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/tests/cicd/test_e2e_deployment.py +0 -0
  178. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/tests/cli/commands/test_setup_cicd.py +0 -0
  179. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/tests/cli/utils/test_cicd.py +0 -0
  180. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/tests/integration/test_io_patterns.py +0 -0
  181. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/tests/integration/test_template_linting.py +0 -0
  182. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/tests/integration/test_templated_patterns.py +0 -0
  183. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/tests/test_frontend/test_side_bar.py +0 -0
  184. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/tests/test_frontend/test_streamlit_app.py +0 -0
  185. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/tests/test_frontend/test_utils/test_chat_utils.py +0 -0
  186. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/tests/test_frontend/test_utils/test_local_chat_history.py +0 -0
  187. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/tests/test_frontend/test_utils/test_message_editing.py +0 -0
  188. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/tests/test_frontend/test_utils/test_multimodal_utils.py +0 -0
  189. {agent_starter_pack-0.0.10b0 → agent_starter_pack-0.0.12b0}/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.10b0
3
+ Version: 0.0.12b0
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
@@ -9,7 +9,6 @@ Requires-Python: >=3.10
9
9
  Requires-Dist: click~=8.1.7
10
10
  Requires-Dist: cookiecutter~=2.5.0
11
11
  Requires-Dist: google-cloud-aiplatform~=1.81.0
12
- Requires-Dist: inquirer~=3.1.3
13
12
  Requires-Dist: pyyaml~=6.0.1
14
13
  Requires-Dist: rich~=13.7.0
15
14
  Provides-Extra: jupyter
@@ -53,6 +52,7 @@ agent-starter-pack create my-awesome-agent
53
52
  ```
54
53
 
55
54
  **That's it!** You now have a fully functional agent project, complete with a backend, frontend, and deployment infrastructure, ready to explore and customize.
55
+ For more installation options, see the [Installation Guide](docs/installation.md).
56
56
 
57
57
  ---
58
58
 
@@ -114,10 +114,13 @@ This project represents the next evolution of the [e2e-gen-ai-app-starter-pack](
114
114
  See the [documentation](docs/) for more details:
115
115
 
116
116
  - [Why Use the Starter Pack?](docs/why_starter_pack.md)
117
+ - [Installation](docs/installation.md)
117
118
  - [Deployment](docs/deployment.md)
118
119
  - [Data Ingestion](docs/data-ingestion.md)
119
120
  - [Observability](docs/observability.md)
120
121
  - [CLI Reference](docs/cli/README.md)
122
+ - [CLI Reference](docs/cli/README.md)
123
+ - [Troubleshooting](docs/troubleshooting.md)
121
124
 
122
125
  **Video Walkthrough:** A [20-Minute Video Walkthrough](https://youtu.be/kwRG7cnqSu0) is available, showcasing the previous `e2e-gen-ai-app-starter-pack`. A new walkthrough for the `agent-starter-pack` will be released soon!
123
126
 
@@ -28,6 +28,7 @@ agent-starter-pack create my-awesome-agent
28
28
  ```
29
29
 
30
30
  **That's it!** You now have a fully functional agent project, complete with a backend, frontend, and deployment infrastructure, ready to explore and customize.
31
+ For more installation options, see the [Installation Guide](docs/installation.md).
31
32
 
32
33
  ---
33
34
 
@@ -89,10 +90,13 @@ This project represents the next evolution of the [e2e-gen-ai-app-starter-pack](
89
90
  See the [documentation](docs/) for more details:
90
91
 
91
92
  - [Why Use the Starter Pack?](docs/why_starter_pack.md)
93
+ - [Installation](docs/installation.md)
92
94
  - [Deployment](docs/deployment.md)
93
95
  - [Data Ingestion](docs/data-ingestion.md)
94
96
  - [Observability](docs/observability.md)
95
97
  - [CLI Reference](docs/cli/README.md)
98
+ - [CLI Reference](docs/cli/README.md)
99
+ - [Troubleshooting](docs/troubleshooting.md)
96
100
 
97
101
  **Video Walkthrough:** A [20-Minute Video Walkthrough](https://youtu.be/kwRG7cnqSu0) is available, showcasing the previous `e2e-gen-ai-app-starter-pack`. A new walkthrough for the `agent-starter-pack` will be released soon!
98
102
 
@@ -0,0 +1,72 @@
1
+ # Installation
2
+
3
+ There are several ways to install the Agent Starter Pack. Choose the method that works best for your workflow.
4
+
5
+ ## Using pipx (Recommended)
6
+
7
+ The recommended way to install the Agent Starter Pack is with [pipx](https://pypa.github.io/pipx/), which installs the package in an isolated environment while making the commands globally available:
8
+
9
+ ```bash
10
+ # Install pipx if you don't have it
11
+ python3 -m pip install --user pipx && python3 -m pipx ensurepath
12
+ source ~/.bashrc # or ~/.zshrc depending on your shell
13
+
14
+ # Install the Agent Starter Pack
15
+ pipx install agent-starter-pack
16
+ ```
17
+
18
+ ## Using pip with a virtual environment
19
+
20
+ You can also install the Agent Starter Pack in a virtual environment:
21
+
22
+ ```bash
23
+ # Create and activate a Python virtual environment
24
+ python -m venv venv && source venv/bin/activate
25
+
26
+ # Install the Agent Starter Pack
27
+ pip install agent-starter-pack
28
+ ```
29
+
30
+ ## Using uv (Fast Python package installer)
31
+
32
+ For a faster installation experience, you can use [uv](https://astral.sh/uv):
33
+
34
+ ```bash
35
+ # Install uv if you don't have it
36
+ curl -LsSf https://astral.sh/uv/install.sh | sh
37
+
38
+ source ~/.bashrc # or ~/.zshrc depending on your shell
39
+
40
+ # Install the Agent Starter Pack
41
+ uv pip install agent-starter-pack
42
+ ```
43
+
44
+ ## Getting Started
45
+
46
+ After installation, you can create a new agent project:
47
+
48
+ ```bash
49
+ # Create a new agent project
50
+ agent-starter-pack create my-awesome-agent
51
+ ```
52
+
53
+
54
+ ## Upgrading
55
+
56
+ To upgrade, use the same tool you used for installation:
57
+
58
+ ```bash
59
+ pipx upgrade agent-starter-pack # Using pipx
60
+ pip install --upgrade agent-starter-pack # Using pip
61
+ uv pip install --upgrade agent-starter-pack # Using uv
62
+ ```
63
+
64
+ ## Uninstalling
65
+
66
+ To uninstall, use the same tool you used for installation:
67
+
68
+ ```bash
69
+ pipx uninstall agent-starter-pack # Using pipx
70
+ pip uninstall agent-starter-pack # Using pip
71
+ uv pip uninstall agent-starter-pack # Using uv
72
+ ```
@@ -0,0 +1,104 @@
1
+ # Troubleshooting
2
+
3
+ This guide helps resolve common issues with the Agent Starter Pack.
4
+
5
+ ## Authentication Issues
6
+
7
+ For detailed information on authentication with Vertex AI, visit the [official documentation](https://cloud.google.com/vertex-ai/docs/authentication).
8
+
9
+ ### "Could not find credentials" or "Could not find project" Error
10
+
11
+ **Problem**: Missing credentials error with Vertex AI.
12
+
13
+ **Solution**:
14
+
15
+ 1. Log in to Google Cloud: `gcloud auth login --update-adc`
16
+ 2. Set the correct project:
17
+ ```bash
18
+ gcloud config set project YOUR_PROJECT_ID
19
+ gcloud auth application-default set-quota-project YOUR_PROJECT_ID
20
+ ```
21
+
22
+ ### Vertex AI API Not Enabled
23
+
24
+ **Problem**: Operations fail because the Vertex AI API is not enabled in your project.
25
+
26
+ **Solution**:
27
+
28
+ 1. Enable the Vertex AI API:
29
+ ```bash
30
+ gcloud services enable aiplatform.googleapis.com
31
+ ```
32
+
33
+ 2. Verify the API is enabled:
34
+ ```bash
35
+ gcloud services list --filter=aiplatform.googleapis.com
36
+ ```
37
+
38
+ ### Permission Denied Errors
39
+ **Problem**: "Permission denied" errors with Google Cloud APIs.
40
+
41
+ **Solution**: Ensure your user or service account has the necessary IAM roles. For example, for Vertex AI, you often need `roles/aiplatform.user`. Grant roles using the `gcloud projects add-iam-policy-binding` command or the Cloud Console.
42
+
43
+ ### Command Not Found: agent-starter-pack
44
+
45
+ **Problem**: "Command not found" error after installation.
46
+
47
+ **Solution**:
48
+
49
+ 1. Verify installation:
50
+ ```bash
51
+ pip list | grep agent-starter-pack
52
+ ```
53
+ 2. Check PATH:
54
+ ```bash
55
+ echo $PATH
56
+ ```
57
+ 3. Reinstall if needed:
58
+ ```bash
59
+ pip install --user agent-starter-pack
60
+ ```
61
+ 4. For pipx:
62
+ ```bash
63
+ pipx ensurepath
64
+ source ~/.bashrc # or ~/.zshrc
65
+ ```
66
+
67
+ ## Project Creation Issues
68
+
69
+ ### Project Creation Fails
70
+
71
+ **Problem**: `agent-starter-pack create` fails.
72
+
73
+ **Solution**:
74
+
75
+ 1. **Check Error Messages:** Examine output for clues.
76
+ 2. **Write Permissions:** Ensure write access to the directory.
77
+ 3. **Project Name:** Use lowercase letters, numbers and hyphens only.
78
+ 4. **Debug Mode:** Consider using debug mode to get more detailed error information:
79
+ ```bash
80
+ agent-starter-pack create my-project-name --debug
81
+ ```
82
+
83
+ ### Template Rendering Issues
84
+
85
+ **Problem**: Project created with placeholders (e.g., `{{ project_id }}`).
86
+
87
+ **Solution**:
88
+
89
+ 1. **Delete Project:** Remove the incorrect project directory.
90
+ 2. **Debug Mode:** `agent-starter-pack create my-project --debug`.
91
+ 3. **Check Configuration:** Verify GCP project and authentication setup.
92
+ 4. **File an Issue:** If it persists, file a bug report with `--debug` output.
93
+
94
+ ## Getting More Help
95
+
96
+ If issues persist:
97
+
98
+ 1. **Check GitHub Issues:** Search for existing Github issues in the `agent-starter-pack` Github repository.
99
+ 2. **File a New Issue:** Provide:
100
+
101
+ * Problem description.
102
+ * Steps to reproduce.
103
+ * Error messages (preferably run with `--debug` flag for detailed logs).
104
+ * Environment: OS, Python version, `agent-starter-pack` version, installation method, shell.
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "agent-starter-pack"
3
- version = "0.0.10b"
3
+ version = "0.0.12b"
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" },
@@ -12,7 +12,6 @@ dependencies = [
12
12
  "click~=8.1.7",
13
13
  "cookiecutter~=2.5.0",
14
14
  "google-cloud-aiplatform~=1.81.0",
15
- "inquirer~=3.1.3",
16
15
  "rich~=13.7.0",
17
16
  "pyyaml~=6.0.1",
18
17
  ]
@@ -1,9 +1,10 @@
1
- test:
2
- uv run pytest tests/unit && uv run pytest tests/integration
3
-
4
1
  install:
2
+ @command -v uv >/dev/null 2>&1 || { echo "uv is not installed. Installing uv..."; curl -LsSf https://astral.sh/uv/install.sh | sh; source ~/.bashrc; }
5
3
  uv sync --dev {% if cookiecutter.agent_name != 'multimodal_live_api' %}--extra streamlit{%- endif %} --extra jupyter --frozen{% if cookiecutter.agent_name == 'multimodal_live_api' %} && npm --prefix frontend install{%- endif %}
6
4
 
5
+ test:
6
+ uv run pytest tests/unit && uv run pytest tests/integration
7
+
7
8
  playground:
8
9
  {%- if cookiecutter.deployment_target == 'cloud_run' %}
9
10
  uv run uvicorn app.server:app --host 0.0.0.0 --port 8000 --reload &
@@ -21,6 +21,14 @@ This project is organized as follows:
21
21
  └── pyproject.toml # Project dependencies and configuration
22
22
  ```
23
23
 
24
+ ## Requirements
25
+
26
+ Before you begin, ensure you have:
27
+ - **uv**: Python package manager - [Install](https://docs.astral.sh/uv/getting-started/installation/)
28
+ - **Google Cloud SDK**: For GCP services - [Install](https://cloud.google.com/sdk/docs/install)
29
+ - **Terraform**: For infrastructure deployment - [Install](https://developer.hashicorp.com/terraform/downloads)
30
+ - **make**: Build automation tool - [Install](https://www.gnu.org/software/make/) (pre-installed on most Unix-based systems)
31
+
24
32
 
25
33
  ### Installation
26
34
 
@@ -30,7 +38,7 @@ Install required packages using uv:
30
38
  uv sync --extra jupyter --extra streamlit --frozen
31
39
  ```
32
40
 
33
- ### Setup
41
+ ### Setupx
34
42
 
35
43
  If not done during the initialization, set your default Google Cloud project and Location:
36
44
 
@@ -46,15 +54,17 @@ gcloud auth application-default set-quota-project $PROJECT_ID
46
54
 
47
55
  | Command | Description |
48
56
  | -------------------- | ------------------------------------------------------------------------------------------- |
57
+ | `make install` | Install all required dependencies using uv |
49
58
  {%- if cookiecutter.deployment_target == 'cloud_run' %}
50
59
  | `make playground` | Launch local development environment with backend and frontend |
51
60
  | `make backend` | Start backend server only |
52
- | `make ui` | Launch Streamlit frontend without local backend |
61
+ | `make ui` | Launch Streamlit frontend without local backend |
53
62
  {%- elif cookiecutter.deployment_target == 'agent_engine' %}
54
63
  | `make playground` | Launch Streamlit interface for testing agent locally and remotely |
55
64
  | `make backend` | Deploy agent to Agent Engine service |
56
65
  {%- endif %}
57
66
  | `make test` | Run unit and integration tests |
67
+ | `make lint` | Run code quality checks (codespell, ruff, mypy) |
58
68
  | `uv run jupyter lab` | Launch Jupyter notebook |
59
69
 
60
70
  For full command options and usage, refer to the [Makefile](Makefile).
@@ -165,8 +165,6 @@ def create(
165
165
 
166
166
  # Check for uv installation if not skipping checks
167
167
  if not skip_checks:
168
- check_and_install_uv()
169
-
170
168
  # Set up GCP environment
171
169
  try:
172
170
  setup_gcp_environment(
@@ -178,6 +176,17 @@ def create(
178
176
  except Exception as e:
179
177
  if debug:
180
178
  logging.warning(f"GCP environment setup failed: {e}")
179
+ console.print(
180
+ f"> Warning: GCP environment setup failed: {e}", style="yellow"
181
+ )
182
+ console.print(
183
+ "> Please check your authentication settings and permissions. "
184
+ "Visit https://cloud.google.com/vertex-ai/docs/authentication for help.",
185
+ style="yellow",
186
+ )
187
+ console.print(
188
+ "> Continuing with template processing...", style="yellow"
189
+ )
181
190
 
182
191
  # Process template
183
192
  template_path = get_template_path(final_agent, debug=debug)
@@ -527,67 +536,3 @@ def replace_region_in_files(
527
536
  except UnicodeDecodeError:
528
537
  # Skip files that can't be read as text
529
538
  continue
530
-
531
-
532
- def check_and_install_uv() -> None:
533
- """Check if uv is installed and install it if not present."""
534
- try:
535
- # Use shell=True for Windows compatibility and add timeout
536
- process = subprocess.run(
537
- "uv --version",
538
- shell=True,
539
- capture_output=True,
540
- text=True,
541
- timeout=10
542
- )
543
- if process.returncode == 0:
544
- logging.debug("uv is already installed")
545
- return
546
- else:
547
- console.print("> uv command failed", style="yellow")
548
- except subprocess.TimeoutExpired:
549
- console.print("> uv version check timed out", style="yellow")
550
- except (subprocess.CalledProcessError, FileNotFoundError):
551
- console.print("> uv is not installed", style="yellow")
552
-
553
- console.print(
554
- "\n> uv is required for the template to work. You can install it in several ways:"
555
- "\n 1. Automatically install uv now"
556
- "\n 2. Manual installation from: https://docs.astral.sh/uv/getting-started/installation"
557
- "\n This includes other options e.g PyPI (pip/pipx), Homebrew, Docker.."
558
- )
559
-
560
- install_choice = Prompt.ask(
561
- "\n> Would you like to install uv automatically now?",
562
- choices=["y", "n"],
563
- default="y",
564
- )
565
- if install_choice.lower() == "y":
566
- console.print("> Installing uv...", style="yellow")
567
- try:
568
- install_command = "curl -LsSf https://astral.sh/uv/install.sh | sh"
569
- # Add timeout to installation process as well
570
- subprocess.run(
571
- install_command,
572
- shell=True,
573
- check=True,
574
- timeout=60 # Give installation more time
575
- )
576
- console.print("> uv installed successfully!", style="green")
577
- except subprocess.TimeoutExpired:
578
- console.print("> uv installation timed out", style="bold red")
579
- raise
580
- except subprocess.CalledProcessError as e:
581
- console.print("> Failed to install uv", style="bold red")
582
- logging.debug(f"uv installation error: {e!s}")
583
- console.print(
584
- "> Please install uv manually using one of the methods listed above",
585
- style="yellow",
586
- )
587
- raise
588
- else:
589
- console.print(
590
- "> Please install uv manually using one of the methods listed above and try again",
591
- style="yellow",
592
- )
593
- raise click.Abort() from None
@@ -0,0 +1,57 @@
1
+ # Copyright 2025 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ import importlib.metadata
16
+
17
+ import click
18
+ from rich.console import Console
19
+
20
+ from .commands.create import create
21
+ from .commands.setup_cicd import setup_cicd
22
+
23
+ console = Console()
24
+
25
+
26
+ def print_version(ctx: click.Context, param: click.Parameter, value: bool) -> None:
27
+ if not value or ctx.resilient_parsing:
28
+ return
29
+ try:
30
+ version_str = importlib.metadata.version("agent-starter-pack")
31
+ console.print(f"GCP Agent Starter Pack CLI version: {version_str}")
32
+ except importlib.metadata.PackageNotFoundError:
33
+ console.print("GCP Agent Starter Pack CLI (development version)")
34
+ ctx.exit()
35
+
36
+
37
+ @click.group(help="Production-ready Generative AI Agent templates for Google Cloud")
38
+ @click.option(
39
+ "--version",
40
+ "-v",
41
+ is_flag=True,
42
+ callback=print_version,
43
+ expose_value=False,
44
+ is_eager=True,
45
+ help="Show the version and exit.",
46
+ )
47
+ def cli() -> None:
48
+ pass
49
+
50
+
51
+ # Register commands
52
+ cli.add_command(create)
53
+ cli.add_command(setup_cicd)
54
+
55
+
56
+ if __name__ == "__main__":
57
+ cli()
@@ -257,6 +257,17 @@ def create_github_connection(
257
257
  elif status == "PENDING_USER_OAUTH" or status == "PENDING_INSTALL_APP":
258
258
  if attempt < max_retries - 1: # Don't print waiting on last attempt
259
259
  console.print("⏳ Waiting for GitHub authorization...")
260
+ # Extract and print the action URI for user authentication
261
+ try:
262
+ action_uri = json.loads(result.stdout).get("installationState", {}).get("actionUri")
263
+ if action_uri:
264
+ console.print("\n🔑 Authentication Required:", style="bold yellow")
265
+ console.print(f"Please visit [link={action_uri}]this page[/link] to authenticate Cloud Build with GitHub:")
266
+ console.print(f"{action_uri}", style="bold blue")
267
+ console.print("(Copy and paste the link into your browser if clicking doesn't work)")
268
+ console.print("After completing authentication, return here to continue the setup.\n")
269
+ except (json.JSONDecodeError, KeyError) as e:
270
+ console.print(f"⚠️ Could not extract authentication link: {e}", style="yellow")
260
271
  time.sleep(10)
261
272
  continue
262
273
  else:
@@ -95,13 +95,6 @@ def mock_verify_vertex_connection() -> Generator[MagicMock, None, None]:
95
95
  yield mock
96
96
 
97
97
 
98
- @pytest.fixture
99
- def mock_check_and_install_uv() -> Generator[MagicMock, None, None]:
100
- """Mock the UV installation check"""
101
- with patch("src.cli.commands.create.check_and_install_uv") as mock:
102
- yield mock
103
-
104
-
105
98
  @pytest.fixture
106
99
  def mock_subprocess() -> Generator[MagicMock, None, None]:
107
100
  with patch("src.cli.commands.create.subprocess.run") as mock:
@@ -191,7 +184,6 @@ class TestCreateCommand:
191
184
  mock_mkdir: MagicMock,
192
185
  mock_resolve: MagicMock,
193
186
  mock_verify_vertex_connection: MagicMock,
194
- mock_check_and_install_uv: MagicMock,
195
187
  ) -> None:
196
188
  """Test create command with all options provided"""
197
189
  runner = CliRunner()
@@ -259,7 +251,6 @@ class TestCreateCommand:
259
251
  mock_mkdir: MagicMock,
260
252
  mock_resolve: MagicMock,
261
253
  mock_verify_vertex_connection: MagicMock,
262
- mock_check_and_install_uv: MagicMock,
263
254
  ) -> None:
264
255
  """Test create command with auto-approve flag"""
265
256
  runner = CliRunner()
@@ -317,7 +308,6 @@ class TestCreateCommand:
317
308
  mock_mkdir: MagicMock,
318
309
  mock_resolve: MagicMock,
319
310
  mock_verify_vertex_connection: MagicMock,
320
- mock_check_and_install_uv: MagicMock,
321
311
  ) -> None:
322
312
  """Test create command in interactive mode"""
323
313
  runner = CliRunner()
@@ -367,7 +357,6 @@ class TestCreateCommand:
367
357
  mock_mkdir: MagicMock,
368
358
  mock_resolve: MagicMock,
369
359
  mock_verify_vertex_connection: MagicMock,
370
- mock_check_and_install_uv: MagicMock,
371
360
  ) -> None:
372
361
  """Test create command with GCP credential change"""
373
362
  runner = CliRunner()
@@ -382,7 +371,9 @@ class TestCreateCommand:
382
371
  mock_subprocess.side_effect = [
383
372
  MagicMock(returncode=0), # gcloud auth login
384
373
  MagicMock(returncode=0), # gcloud config set project
385
- MagicMock(returncode=0), # gcloud auth application-default set-quota-project
374
+ MagicMock(
375
+ returncode=0
376
+ ), # gcloud auth application-default set-quota-project
386
377
  ]
387
378
 
388
379
  with (
@@ -412,8 +403,7 @@ class TestCreateCommand:
412
403
 
413
404
  # Verify subprocess was called with the right arguments for login
414
405
  mock_subprocess.assert_any_call(
415
- ["gcloud", "auth", "login", "--update-adc"],
416
- check=True
406
+ ["gcloud", "auth", "login", "--update-adc"], check=True
417
407
  )
418
408
 
419
409
  def test_create_with_invalid_agent_name(
@@ -11,13 +11,12 @@ resolution-markers = [
11
11
 
12
12
  [[package]]
13
13
  name = "agent-starter-pack"
14
- version = "0.0.8b0"
14
+ version = "0.0.11b0"
15
15
  source = { editable = "." }
16
16
  dependencies = [
17
17
  { name = "click" },
18
18
  { name = "cookiecutter" },
19
19
  { name = "google-cloud-aiplatform" },
20
- { name = "inquirer" },
21
20
  { name = "pyyaml" },
22
21
  { name = "rich" },
23
22
  ]
@@ -69,7 +68,6 @@ requires-dist = [
69
68
  { name = "codespell", marker = "extra == 'lint'", specifier = "~=2.2.0" },
70
69
  { name = "cookiecutter", specifier = "~=2.5.0" },
71
70
  { name = "google-cloud-aiplatform", specifier = "~=1.81.0" },
72
- { name = "inquirer", specifier = "~=3.1.3" },
73
71
  { name = "ipykernel", marker = "extra == 'jupyter'", specifier = ">=6.29.5" },
74
72
  { name = "jupyter", marker = "extra == 'jupyter'" },
75
73
  { name = "mypy", marker = "extra == 'lint'", specifier = "~=1.15.0" },
@@ -246,15 +244,6 @@ wheels = [
246
244
  { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643 },
247
245
  ]
248
246
 
249
- [[package]]
250
- name = "ansicon"
251
- version = "1.89.0"
252
- source = { registry = "https://pypi.org/simple" }
253
- sdist = { url = "https://files.pythonhosted.org/packages/b6/e2/1c866404ddbd280efedff4a9f15abfe943cb83cde6e895022370f3a61f85/ansicon-1.89.0.tar.gz", hash = "sha256:e4d039def5768a47e4afec8e89e83ec3ae5a26bf00ad851f914d1240b444d2b1", size = 67312 }
254
- wheels = [
255
- { url = "https://files.pythonhosted.org/packages/75/f9/f1c10e223c7b56a38109a3f2eb4e7fe9a757ea3ed3a166754fb30f65e466/ansicon-1.89.0-py2.py3-none-any.whl", hash = "sha256:f1def52d17f65c2c9682cf8370c03f541f410c1752d6a14029f97318e4b9dfec", size = 63675 },
256
- ]
257
-
258
247
  [[package]]
259
248
  name = "anyascii"
260
249
  version = "0.3.2"
@@ -540,20 +529,6 @@ css = [
540
529
  { name = "tinycss2" },
541
530
  ]
542
531
 
543
- [[package]]
544
- name = "blessed"
545
- version = "1.20.0"
546
- source = { registry = "https://pypi.org/simple" }
547
- dependencies = [
548
- { name = "jinxed", marker = "sys_platform == 'win32'" },
549
- { name = "six" },
550
- { name = "wcwidth" },
551
- ]
552
- sdist = { url = "https://files.pythonhosted.org/packages/25/ae/92e9968ad23205389ec6bd82e2d4fca3817f1cdef34e10aa8d529ef8b1d7/blessed-1.20.0.tar.gz", hash = "sha256:2cdd67f8746e048f00df47a2880f4d6acbcdb399031b604e34ba8f71d5787680", size = 6655612 }
553
- wheels = [
554
- { url = "https://files.pythonhosted.org/packages/76/98/584f211c3a4bb38f2871fa937ee0cc83c130de50c955d6c7e2334dbf4acb/blessed-1.20.0-py2.py3-none-any.whl", hash = "sha256:0c542922586a265e699188e52d5f5ac5ec0dd517e5a1041d90d2bbf23f906058", size = 58372 },
555
- ]
556
-
557
532
  [[package]]
558
533
  name = "blinker"
559
534
  version = "1.9.0"
@@ -1873,20 +1848,6 @@ wheels = [
1873
1848
  { url = "https://files.pythonhosted.org/packages/ef/a6/62565a6e1cf69e10f5727360368e451d4b7f58beeac6173dc9db836a5b46/iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374", size = 5892 },
1874
1849
  ]
1875
1850
 
1876
- [[package]]
1877
- name = "inquirer"
1878
- version = "3.1.4"
1879
- source = { registry = "https://pypi.org/simple" }
1880
- dependencies = [
1881
- { name = "blessed" },
1882
- { name = "python-editor" },
1883
- { name = "readchar" },
1884
- ]
1885
- sdist = { url = "https://files.pythonhosted.org/packages/78/2f/6c4fd73b82228620025d0042de6dcdc8f32d87557c42ca470d965848d9b5/inquirer-3.1.4.tar.gz", hash = "sha256:958dbd5978f173630756a6ed6243acf931e750416eb7a6ed3a0ff13af0fdfcb5", size = 14626 }
1886
- wheels = [
1887
- { url = "https://files.pythonhosted.org/packages/3c/b7/2b4a352659d78386e0f7f5405486aa1c41664666d33e9e8506640f702f70/inquirer-3.1.4-py3-none-any.whl", hash = "sha256:8ca28834b6c6f69e0bf19cab2e2bea2c465312bb74bd6317b88a46458163a051", size = 18215 },
1888
- ]
1889
-
1890
1851
  [[package]]
1891
1852
  name = "instructor"
1892
1853
  version = "1.7.2"
@@ -2016,18 +1977,6 @@ wheels = [
2016
1977
  { url = "https://files.pythonhosted.org/packages/bd/0f/2ba5fbcd631e3e88689309dbe978c5769e883e4b84ebfe7da30b43275c5a/jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb", size = 134596 },
2017
1978
  ]
2018
1979
 
2019
- [[package]]
2020
- name = "jinxed"
2021
- version = "1.3.0"
2022
- source = { registry = "https://pypi.org/simple" }
2023
- dependencies = [
2024
- { name = "ansicon", marker = "sys_platform == 'win32'" },
2025
- ]
2026
- sdist = { url = "https://files.pythonhosted.org/packages/20/d0/59b2b80e7a52d255f9e0ad040d2e826342d05580c4b1d7d7747cfb8db731/jinxed-1.3.0.tar.gz", hash = "sha256:1593124b18a41b7a3da3b078471442e51dbad3d77b4d4f2b0c26ab6f7d660dbf", size = 80981 }
2027
- wheels = [
2028
- { url = "https://files.pythonhosted.org/packages/27/e3/0e0014d6ab159d48189e92044ace13b1e1fe9aa3024ba9f4e8cf172aa7c2/jinxed-1.3.0-py2.py3-none-any.whl", hash = "sha256:b993189f39dc2d7504d802152671535b06d380b26d78070559551cbf92df4fc5", size = 33085 },
2029
- ]
2030
-
2031
1980
  [[package]]
2032
1981
  name = "jiter"
2033
1982
  version = "0.8.2"
@@ -4285,15 +4234,6 @@ wheels = [
4285
4234
  { url = "https://files.pythonhosted.org/packages/6a/3e/b68c118422ec867fa7ab88444e1274aa40681c606d59ac27de5a5588f082/python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a", size = 19863 },
4286
4235
  ]
4287
4236
 
4288
- [[package]]
4289
- name = "python-editor"
4290
- version = "1.0.4"
4291
- source = { registry = "https://pypi.org/simple" }
4292
- sdist = { url = "https://files.pythonhosted.org/packages/0a/85/78f4a216d28343a67b7397c99825cff336330893f00601443f7c7b2f2234/python-editor-1.0.4.tar.gz", hash = "sha256:51fda6bcc5ddbbb7063b2af7509e43bd84bfc32a4ff71349ec7847713882327b", size = 7132 }
4293
- wheels = [
4294
- { url = "https://files.pythonhosted.org/packages/c6/d3/201fc3abe391bbae6606e6f1d598c15d367033332bd54352b12f35513717/python_editor-1.0.4-py3-none-any.whl", hash = "sha256:1bf6e860a8ad52a14c3ee1252d5dc25b2030618ed80c022598f00176adc8367d", size = 4877 },
4295
- ]
4296
-
4297
4237
  [[package]]
4298
4238
  name = "python-json-logger"
4299
4239
  version = "3.2.1"
@@ -4487,15 +4427,6 @@ wheels = [
4487
4427
  { url = "https://files.pythonhosted.org/packages/e3/fe/72e7e166bda3885810bee7b23049133e142f7c80c295bae02c562caeea16/pyzmq-26.2.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:bd8fdee945b877aa3bffc6a5a8816deb048dab0544f9df3731ecd0e54d8c84c9", size = 556563 },
4488
4428
  ]
4489
4429
 
4490
- [[package]]
4491
- name = "readchar"
4492
- version = "4.2.1"
4493
- source = { registry = "https://pypi.org/simple" }
4494
- sdist = { url = "https://files.pythonhosted.org/packages/dd/f8/8657b8cbb4ebeabfbdf991ac40eca8a1d1bd012011bd44ad1ed10f5cb494/readchar-4.2.1.tar.gz", hash = "sha256:91ce3faf07688de14d800592951e5575e9c7a3213738ed01d394dcc949b79adb", size = 9685 }
4495
- wheels = [
4496
- { url = "https://files.pythonhosted.org/packages/a9/10/e4b1e0e5b6b6745c8098c275b69bc9d73e9542d5c7da4f137542b499ed44/readchar-4.2.1-py3-none-any.whl", hash = "sha256:a769305cd3994bb5fa2764aa4073452dc105a4ec39068ffe6efd3c20c60acc77", size = 9350 },
4497
- ]
4498
-
4499
4430
  [[package]]
4500
4431
  name = "referencing"
4501
4432
  version = "0.36.2"