agent-starter-pack 0.2.2__tar.gz → 0.2.3__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.
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/PKG-INFO +7 -13
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/README.md +5 -11
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/docs/cli/README.md +1 -1
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/docs/cli/create.md +1 -1
- agent_starter_pack-0.2.3/docs/cli/setup_cicd.md +93 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/docs/deployment.md +4 -28
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/pyproject.toml +2 -2
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/base_template/Makefile +6 -4
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/base_template/README.md +7 -1
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/base_template/deployment/README.md +4 -1
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/base_template/deployment/cd/deploy-to-prod.yaml +3 -3
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/base_template/deployment/cd/staging.yaml +4 -4
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/base_template/deployment/ci/pr_checks.yaml +1 -1
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/base_template/deployment/terraform/build_triggers.tf +3 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/base_template/pyproject.toml +2 -2
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/cli/commands/create.py +35 -9
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/cli/commands/setup_cicd.py +22 -6
- agent_starter_pack-0.2.3/src/data_ingestion/README.md +71 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/deployment_targets/agent_engine/app/agent_engine_app.py +7 -12
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/deployment_targets/cloud_run/Dockerfile +1 -1
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/streamlit/frontend/utils/stream_handler.py +3 -3
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/resources/locks/uv-agentic_rag-agent_engine.lock +128 -127
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/resources/locks/uv-agentic_rag-cloud_run.lock +174 -173
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/resources/locks/uv-crewai_coding_crew-agent_engine.lock +149 -148
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/resources/locks/uv-crewai_coding_crew-cloud_run.lock +195 -194
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/resources/locks/uv-langgraph_base_react-agent_engine.lock +125 -124
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/resources/locks/uv-langgraph_base_react-cloud_run.lock +171 -170
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/resources/locks/uv-live_api-cloud_run.lock +162 -161
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/tests/cicd/test_e2e_deployment.py +2 -2
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/tests/cli/commands/test_create.py +52 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/tests/cli/commands/test_setup_cicd.py +15 -6
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/tests/integration/test_template_linting.py +2 -2
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/tests/integration/test_templated_patterns.py +2 -2
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/uv.lock +5 -5
- agent_starter_pack-0.2.2/docs/cli/setup_cicd.md +0 -127
- agent_starter_pack-0.2.2/src/data_ingestion/README.md +0 -84
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/.cloudbuild/cd/test_e2e.yaml +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/.cloudbuild/ci/build_use_wheel.yaml +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/.cloudbuild/ci/lint.yaml +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/.cloudbuild/ci/lint_templated_agents.yaml +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/.cloudbuild/ci/test.yaml +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/.cloudbuild/ci/test_templated_agents.yaml +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/.cloudbuild/terraform/apis.tf +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/.cloudbuild/terraform/build_triggers.tf +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/.cloudbuild/terraform/service_account.tf +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/.cloudbuild/terraform/storage.tf +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/.cloudbuild/terraform/variables.tf +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/.gitignore +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/CODE_OF_CONDUCT.md +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/CONTRIBUTING.md +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/LICENSE +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/Makefile +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/agents/agentic_rag/README.md +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/agents/agentic_rag/app/agent.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/agents/agentic_rag/app/retrievers.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/agents/agentic_rag/app/templates.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/agents/agentic_rag/notebooks/evaluating_langgraph_agent.ipynb +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/agents/agentic_rag/template/.templateconfig.yaml +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/agents/agentic_rag/tests/integration/test_agent.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/agents/crewai_coding_crew/README.md +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/agents/crewai_coding_crew/app/agent.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/agents/crewai_coding_crew/app/crew/config/agents.yaml +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/agents/crewai_coding_crew/app/crew/config/tasks.yaml +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/agents/crewai_coding_crew/app/crew/crew.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/agents/crewai_coding_crew/notebooks/evaluating_crewai_agent.ipynb +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/agents/crewai_coding_crew/notebooks/evaluating_langgraph_agent.ipynb +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/agents/crewai_coding_crew/template/.templateconfig.yaml +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/agents/crewai_coding_crew/tests/integration/test_agent.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/agents/langgraph_base_react/README.md +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/agents/langgraph_base_react/app/agent.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/agents/langgraph_base_react/notebooks/evaluating_langgraph_agent.ipynb +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/agents/langgraph_base_react/template/.templateconfig.yaml +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/agents/langgraph_base_react/tests/integration/test_agent.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/agents/live_api/README.md +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/agents/live_api/app/agent.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/agents/live_api/app/server.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/agents/live_api/app/templates.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/agents/live_api/app/vector_store.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/agents/live_api/template/.templateconfig.yaml +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/agents/live_api/tests/integration/test_server_e2e.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/agents/live_api/tests/load_test/load_test.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/agents/live_api/tests/unit/test_server.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/docs/README.md +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/docs/data-ingestion.md +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/docs/images/ags_banner.png +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/docs/images/ags_high_level_architecture.png +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/docs/installation.md +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/docs/observability.md +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/docs/troubleshooting.md +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/docs/why_starter_pack.md +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/base_template/.gitignore +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/base_template/app/utils/tracing.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/base_template/app/utils/typing.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/base_template/deployment/terraform/apis.tf +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/base_template/deployment/terraform/dev/apis.tf +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/base_template/deployment/terraform/dev/iam.tf +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/base_template/deployment/terraform/dev/log_sinks.tf +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/base_template/deployment/terraform/dev/providers.tf +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/base_template/deployment/terraform/dev/storage.tf +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/base_template/deployment/terraform/dev/variables.tf +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/base_template/deployment/terraform/dev/vars/env.tfvars +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/base_template/deployment/terraform/iam.tf +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/base_template/deployment/terraform/locals.tf +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/base_template/deployment/terraform/log_sinks.tf +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/base_template/deployment/terraform/providers.tf +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/base_template/deployment/terraform/service_accounts.tf +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/base_template/deployment/terraform/storage.tf +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/base_template/deployment/terraform/variables.tf +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/base_template/deployment/terraform/vars/env.tfvars +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/base_template/tests/unit/test_utils/test_tracing_exporter.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/cli/main.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/cli/utils/__init__.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/cli/utils/cicd.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/cli/utils/datastores.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/cli/utils/gcp.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/cli/utils/logging.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/cli/utils/template.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/cli/utils/version.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/data_ingestion/data_ingestion_pipeline/components/ingest_data.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/data_ingestion/data_ingestion_pipeline/components/process_data.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/data_ingestion/data_ingestion_pipeline/pipeline.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/data_ingestion/data_ingestion_pipeline/submit_pipeline.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/data_ingestion/pyproject.toml +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/data_ingestion/uv.lock +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/deployment_targets/agent_engine/app/utils/gcs.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/deployment_targets/agent_engine/deployment_metadata.json +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/deployment_targets/agent_engine/notebooks/intro_agent_engine.ipynb +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/deployment_targets/agent_engine/tests/integration/test_agent_engine_app.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/deployment_targets/agent_engine/tests/load_test/.results/.placeholder +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/deployment_targets/agent_engine/tests/load_test/README.md +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/deployment_targets/agent_engine/tests/load_test/load_test.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/deployment_targets/agent_engine/tests/unit/test_dummy.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/deployment_targets/cloud_run/app/server.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/deployment_targets/cloud_run/tests/integration/test_server_e2e.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/deployment_targets/cloud_run/tests/load_test/.results/.placeholder +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/deployment_targets/cloud_run/tests/load_test/README.md +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/deployment_targets/cloud_run/tests/load_test/load_test.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/deployment_targets/cloud_run/tests/unit/test_server.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/deployment_targets/cloud_run/uv.lock +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/package-lock.json +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/package.json +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/public/favicon.ico +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/public/index.html +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/public/robots.txt +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/src/App.scss +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/src/App.test.tsx +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/src/App.tsx +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/src/components/audio-pulse/AudioPulse.tsx +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/src/components/audio-pulse/audio-pulse.scss +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/src/components/control-tray/ControlTray.tsx +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/src/components/control-tray/control-tray.scss +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/src/components/logger/Logger.tsx +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/src/components/logger/logger.scss +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/src/components/logger/mock-logs.ts +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/src/components/side-panel/SidePanel.tsx +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/src/components/side-panel/side-panel.scss +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/src/contexts/LiveAPIContext.tsx +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/src/hooks/use-live-api.ts +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/src/hooks/use-media-stream-mux.ts +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/src/hooks/use-screen-capture.ts +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/src/hooks/use-webcam.ts +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/src/index.css +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/src/index.tsx +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/src/multimodal-live-types.ts +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/src/react-app-env.d.ts +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/src/reportWebVitals.ts +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/src/setupTests.ts +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/src/utils/audio-recorder.ts +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/src/utils/audio-streamer.ts +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/src/utils/audioworklet-registry.ts +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/src/utils/multimodal-live-client.ts +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/src/utils/store-logger.ts +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/src/utils/utils.ts +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/src/utils/worklets/audio-processing.ts +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/src/utils/worklets/vol-meter.ts +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/live_api_react/frontend/tsconfig.json +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/streamlit/frontend/side_bar.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/streamlit/frontend/streamlit_app.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/streamlit/frontend/style/app_markdown.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/streamlit/frontend/utils/chat_utils.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/streamlit/frontend/utils/local_chat_history.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/streamlit/frontend/utils/message_editing.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/streamlit/frontend/utils/multimodal_utils.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/frontends/streamlit/frontend/utils/title_summary.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/resources/containers/data_processing/Dockerfile +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/resources/containers/e2e-tests/Dockerfile +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/resources/setup_cicd/cicd_variables.tf +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/resources/setup_cicd/github.tf +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/resources/setup_cicd/providers.tf +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/utils/generate_locks.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/utils/lock_utils.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/utils/watch_and_rebuild.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/tests/__init__.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/tests/cicd/example.env +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/tests/cli/utils/test_cicd.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/tests/test_frontend/test_side_bar.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/tests/test_frontend/test_streamlit_app.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/tests/test_frontend/test_utils/test_chat_utils.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/tests/test_frontend/test_utils/test_local_chat_history.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/tests/test_frontend/test_utils/test_message_editing.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/tests/test_frontend/test_utils/test_multimodal_utils.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/tests/test_frontend/test_utils/test_stream_handler.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/tests/utils/__init__.py +0 -0
- {agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/tests/utils/get_agents.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-starter-pack
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.3
|
|
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,7 @@ Requires-Python: >=3.10
|
|
|
9
9
|
Requires-Dist: backoff>=2.2.1
|
|
10
10
|
Requires-Dist: click~=8.1.7
|
|
11
11
|
Requires-Dist: cookiecutter~=2.5.0
|
|
12
|
-
Requires-Dist: google-cloud-aiplatform~=1.
|
|
12
|
+
Requires-Dist: google-cloud-aiplatform~=1.87.0
|
|
13
13
|
Requires-Dist: pyyaml~=6.0.1
|
|
14
14
|
Requires-Dist: rich~=13.7.0
|
|
15
15
|
Provides-Extra: jupyter
|
|
@@ -33,7 +33,7 @@ It accelerates development by providing a holistic, production-ready solution, a
|
|
|
33
33
|
|
|
34
34
|
| ⚡️ Launch | 🧪 Experiment | ✅ Deploy | 🛠️ Customize |
|
|
35
35
|
|---|---|---|---|
|
|
36
|
-
| [Pre-built agent templates](./agents/) (ReAct, RAG, multi-agent, Live Multimodal API). | [Vertex AI evaluation](https://cloud.google.com/vertex-ai/generative-ai/docs/models/evaluation-overview) and an interactive playground. | Production-ready infra with [monitoring
|
|
36
|
+
| [Pre-built agent templates](./agents/) (ReAct, RAG, multi-agent, Live Multimodal API). | [Vertex AI evaluation](https://cloud.google.com/vertex-ai/generative-ai/docs/models/evaluation-overview) and an interactive playground. | Production-ready infra with [monitoring, 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/agent-engine/overview). | Extend and customize templates according to your needs. |
|
|
37
37
|
|
|
38
38
|
---
|
|
39
39
|
|
|
@@ -94,16 +94,6 @@ This starter pack covers all aspects of Agent development, from prototyping and
|
|
|
94
94
|
|
|
95
95
|
---
|
|
96
96
|
|
|
97
|
-
#### From `e2e-gen-ai-app-starter-pack` to `agent-starter-pack`
|
|
98
|
-
|
|
99
|
-
This project represents the next evolution of the [e2e-gen-ai-app-starter-pack](goo.gle/e2e-gen-ai-app-starter-pack). Building on the foundation of the original, we've made significant improvements:
|
|
100
|
-
|
|
101
|
-
* **Streamlined CLI:** A new command-line interface (`agent-starter-pack`) simplifies project creation, template selection, and deployment.
|
|
102
|
-
* **Expanded Agent Options:** Support for a wider variety of agent frameworks (LangGraph, CrewAI, and the Google GenAI SDK) and deployment targets (including Vertex AI Agent Engine).
|
|
103
|
-
* **Simplified setup**: Integrated gcloud authentication and projects and region configurations
|
|
104
|
-
|
|
105
|
-
---
|
|
106
|
-
|
|
107
97
|
## 🔧 Requirements
|
|
108
98
|
|
|
109
99
|
- Python 3.10+
|
|
@@ -127,6 +117,10 @@ See the [documentation](docs/) for more details:
|
|
|
127
117
|
- **March 6, 2025**: A [120 Minute livestream video demo](https://www.youtube.com/watch?v=yIRIT_EtALs&t=235s) of the new `agent-starter-pack` were we build 3 Agents under 30 minutes!
|
|
128
118
|
- **Oct 29, 2024**: A [20-Minute Video Walkthrough](https://youtu.be/kwRG7cnqSu0) is available, showcasing the previous `agent-starter-pack`.
|
|
129
119
|
|
|
120
|
+
## Explore More Generative AI Resources
|
|
121
|
+
|
|
122
|
+
Looking for more examples and resources for Generative AI on Google Cloud? Check out the [GoogleCloudPlatform/generative-ai](https://github.com/GoogleCloudPlatform/generative-ai) repository for notebooks, code samples, and more!
|
|
123
|
+
|
|
130
124
|
## Contributing
|
|
131
125
|
|
|
132
126
|
Contributions are welcome! See the [Contributing Guide](CONTRIBUTING.md).
|
|
@@ -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](./agents/) (ReAct, RAG, multi-agent, Live Multimodal API). | [Vertex AI evaluation](https://cloud.google.com/vertex-ai/generative-ai/docs/models/evaluation-overview) and an interactive playground. | Production-ready infra with [monitoring
|
|
11
|
+
| [Pre-built agent templates](./agents/) (ReAct, RAG, multi-agent, Live Multimodal API). | [Vertex AI evaluation](https://cloud.google.com/vertex-ai/generative-ai/docs/models/evaluation-overview) and an interactive playground. | Production-ready infra with [monitoring, 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/agent-engine/overview). | Extend and customize templates according to your needs. |
|
|
12
12
|
|
|
13
13
|
---
|
|
14
14
|
|
|
@@ -69,16 +69,6 @@ This starter pack covers all aspects of Agent development, from prototyping and
|
|
|
69
69
|
|
|
70
70
|
---
|
|
71
71
|
|
|
72
|
-
#### From `e2e-gen-ai-app-starter-pack` to `agent-starter-pack`
|
|
73
|
-
|
|
74
|
-
This project represents the next evolution of the [e2e-gen-ai-app-starter-pack](goo.gle/e2e-gen-ai-app-starter-pack). Building on the foundation of the original, we've made significant improvements:
|
|
75
|
-
|
|
76
|
-
* **Streamlined CLI:** A new command-line interface (`agent-starter-pack`) simplifies project creation, template selection, and deployment.
|
|
77
|
-
* **Expanded Agent Options:** Support for a wider variety of agent frameworks (LangGraph, CrewAI, and the Google GenAI SDK) and deployment targets (including Vertex AI Agent Engine).
|
|
78
|
-
* **Simplified setup**: Integrated gcloud authentication and projects and region configurations
|
|
79
|
-
|
|
80
|
-
---
|
|
81
|
-
|
|
82
72
|
## 🔧 Requirements
|
|
83
73
|
|
|
84
74
|
- Python 3.10+
|
|
@@ -102,6 +92,10 @@ See the [documentation](docs/) for more details:
|
|
|
102
92
|
- **March 6, 2025**: A [120 Minute livestream video demo](https://www.youtube.com/watch?v=yIRIT_EtALs&t=235s) of the new `agent-starter-pack` were we build 3 Agents under 30 minutes!
|
|
103
93
|
- **Oct 29, 2024**: A [20-Minute Video Walkthrough](https://youtu.be/kwRG7cnqSu0) is available, showcasing the previous `agent-starter-pack`.
|
|
104
94
|
|
|
95
|
+
## Explore More Generative AI Resources
|
|
96
|
+
|
|
97
|
+
Looking for more examples and resources for Generative AI on Google Cloud? Check out the [GoogleCloudPlatform/generative-ai](https://github.com/GoogleCloudPlatform/generative-ai) repository for notebooks, code samples, and more!
|
|
98
|
+
|
|
105
99
|
## Contributing
|
|
106
100
|
|
|
107
101
|
Contributions are welcome! See the [Contributing Guide](CONTRIBUTING.md).
|
|
@@ -5,6 +5,6 @@ This document provides an overview of the available CLI commands for managing yo
|
|
|
5
5
|
## Available Commands
|
|
6
6
|
|
|
7
7
|
- [`create`](create.md) - Create a new generative AI application project
|
|
8
|
-
- [`setup-cicd`](
|
|
8
|
+
- [`setup-cicd`](setup_cicd.md) - Set up CI/CD pipeline for your project
|
|
9
9
|
|
|
10
10
|
For detailed usage instructions, click on the command links above.
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# `setup-cicd`
|
|
2
|
+
|
|
3
|
+
The `setup-cicd` command is a powerful utility provided by `agent-starter-pack` that automates the deployment of your complete Terraform infrastructure and configures your Google Cloud projects in a single operation.
|
|
4
|
+
|
|
5
|
+
**⚡️ Quick Start Example:**
|
|
6
|
+
|
|
7
|
+
The command is now even simpler to get started with. You can run it without any arguments, and it will prompt you for the required project IDs:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
agent-starter-pack setup-cicd
|
|
11
|
+
```
|
|
12
|
+
*(You will be prompted for Staging and Production project IDs)*
|
|
13
|
+
|
|
14
|
+
Alternatively, you can provide the project IDs directly as flags:
|
|
15
|
+
|
|
16
|
+
```bash
|
|
17
|
+
agent-starter-pack setup-cicd \
|
|
18
|
+
--staging-project=your-staging-project-id \
|
|
19
|
+
--prod-project=your-prod-project-id
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
**⚠️ Important Considerations:**
|
|
23
|
+
|
|
24
|
+
* **Experimental:** This command is under active development. Use it with caution and report any issues.
|
|
25
|
+
* **Production Use:** For production environments, we **strongly recommend** following the detailed instructions in `deployment/README.md`. Manual setup offers greater control over security and configuration. This automated command is best suited for development and testing.
|
|
26
|
+
* **GitHub Only:** Currently, only GitHub is supported as a Git provider.
|
|
27
|
+
|
|
28
|
+
### Prerequisites
|
|
29
|
+
|
|
30
|
+
1. **Run from Project Root:** Execute the command from the root directory of your `agent-starter-pack` project (where `pyproject.toml` is located).
|
|
31
|
+
2. **Install Tools:**
|
|
32
|
+
* Terraform
|
|
33
|
+
* `gh` CLI (GitHub CLI): Install and authenticate using `gh auth login`.
|
|
34
|
+
* `gcloud` CLI (Google Cloud SDK): Authenticate using `gcloud auth application-default login`.
|
|
35
|
+
3. **Google Cloud Projects:** You need at least two Google Cloud projects: one for staging and one for production. The command will prompt you for their IDs if you don't provide the `--staging-project` and `--prod-project` flags. You also need a project to host the CI/CD resources (Cloud Build, Artifact Registry, Terraform state). You can specify this using `--cicd-project`. If omitted, the production project will be used for CI/CD resources.
|
|
36
|
+
4. **Permissions:** The user or service account running this command must have the `Owner` role on the specified Google Cloud projects (staging, production, CI/CD if specified, development if specified). This is necessary for creating resources and assigning IAM roles.
|
|
37
|
+
|
|
38
|
+
### How it Works
|
|
39
|
+
|
|
40
|
+
The `setup-cicd` command automates the following:
|
|
41
|
+
|
|
42
|
+
1. **GitHub Integration:** Creates a new private GitHub repository or connects to an existing one (prompting for details if needed).
|
|
43
|
+
2. **Project ID Confirmation:** Prompts for Staging and Production project IDs if they are not provided via flags.
|
|
44
|
+
3. **Cloud Build Connection:** Sets up a Cloud Build connection to your GitHub repository.
|
|
45
|
+
4. **Terraform Setup:**
|
|
46
|
+
* Configures Terraform to manage your CI/CD infrastructure (Cloud Build triggers, IAM permissions, etc.) and optionally, a development environment (if `--dev-project` is provided).
|
|
47
|
+
* By default, sets up remote Terraform state management using a Google Cloud Storage (GCS) bucket in your CI/CD project (`<CICD_PROJECT_ID>-terraform-state`). Use `--local-state` to opt-out.
|
|
48
|
+
5. **Resource Deployment:** Runs `terraform apply` to create the necessary resources in Google Cloud and configure the GitHub repository connection.
|
|
49
|
+
6. **Local Git Setup:** Initializes a Git repository locally (if needed) and adds the GitHub repository as the `origin` remote.
|
|
50
|
+
|
|
51
|
+
### Running the Command
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
agent-starter-pack setup-cicd \
|
|
55
|
+
[--staging-project <YOUR_STAGING_PROJECT_ID>] \
|
|
56
|
+
[--prod-project <YOUR_PROD_PROJECT_ID>] \
|
|
57
|
+
[--cicd-project <YOUR_CICD_PROJECT_ID>] \
|
|
58
|
+
[--dev-project <YOUR_DEV_PROJECT_ID>] \
|
|
59
|
+
[--region <GCP_REGION>] \
|
|
60
|
+
[--repository-name <GITHUB_REPO_NAME>] \
|
|
61
|
+
[--repository-owner <GITHUB_USERNAME_OR_ORG>] \
|
|
62
|
+
[--local-state] \
|
|
63
|
+
[--auto-approve] \
|
|
64
|
+
[--debug]
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**Key Options:**
|
|
68
|
+
|
|
69
|
+
* `--staging-project`, `--prod-project`: **Required Information.** Your Google Cloud project IDs for staging and production environments. The command will prompt for these if the flags are omitted.
|
|
70
|
+
* `--cicd-project`: (Optional) Project ID for hosting CI/CD resources (Cloud Build, Artifact Registry, Terraform state bucket). If omitted, defaults to the production project ID (provided via flag or prompt).
|
|
71
|
+
* `--dev-project`: (Optional) Project ID for a dedicated development environment managed by Terraform. If provided, Terraform will also be applied to set up resources in this development project.
|
|
72
|
+
* `--region`: (Optional) GCP region for resources (default: `us-central1`).
|
|
73
|
+
* `--repository-name`: (Optional) Name for the GitHub repository. If omitted, you'll be prompted or a name will be generated.
|
|
74
|
+
* `--repository-owner`: (Optional) Your GitHub username or organization. Defaults to the authenticated `gh` user if omitted.
|
|
75
|
+
* `--local-state`: (Optional) Use local files for Terraform state instead of the default GCS backend. Not recommended for collaboration.
|
|
76
|
+
* `--auto-approve`: (Optional) Skip interactive prompts (including project ID prompts if flags are omitted). Use carefully.
|
|
77
|
+
* `--debug`: (Optional) Enable verbose logging.
|
|
78
|
+
|
|
79
|
+
*(For advanced/programmatic use with pre-existing connections, see options like `--github-pat`, `--github-app-installation-id`, `--host-connection-name` by running `agent-starter-pack setup-cicd --help`)*
|
|
80
|
+
|
|
81
|
+
### After Running the Command
|
|
82
|
+
|
|
83
|
+
1. **Commit and Push:** This is crucial to trigger the pipeline.
|
|
84
|
+
```bash
|
|
85
|
+
git add .
|
|
86
|
+
git commit -m "Initial commit of agent starter pack"
|
|
87
|
+
git push -u origin main
|
|
88
|
+
```
|
|
89
|
+
2. **Verify:** Check your GitHub repository and Google Cloud projects (Cloud Build > Triggers, Secret Manager, IAM) to see the created resources.
|
|
90
|
+
|
|
91
|
+
### Manual CI/CD Setup (Recommended for Production)
|
|
92
|
+
|
|
93
|
+
For robust, production-ready deployments with fine-grained control over security, customization, and advanced CI/CD practices, please follow the [manual setup guide](../deployment.md).
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# Deployment
|
|
2
2
|
|
|
3
|
-
> **Note:** For an automated setup of a basic CI/CD pipeline, see the [`setup-cicd` CLI command documentation](../docs/cli/setup_cicd.md). The automated setup is experimental and recommended primarily for development and testing. For production, follow the manual steps below.
|
|
4
|
-
|
|
5
3
|
The templated agent leverages [**Terraform**](http://terraform.io) to define and provision the underlying infrastructure, while [**Cloud Build**](https://cloud.google.com/build/) orchestrates the continuous integration and continuous deployment (CI/CD) pipeline.
|
|
6
4
|
|
|
7
5
|
## Deployment Workflow
|
|
@@ -29,6 +27,8 @@ The templated agent leverages [**Terraform**](http://terraform.io) to define and
|
|
|
29
27
|
|
|
30
28
|
## Setup
|
|
31
29
|
|
|
30
|
+
> **Note:** For a streamlined one-command deployment of the entire CI/CD pipeline and infrastructure using Terraform, you can use the [`agent-starter-pack setup-cicd` CLI command](./cli/setup_cicd.md). Currently only supporting Github.
|
|
31
|
+
|
|
32
32
|
**Prerequisites:**
|
|
33
33
|
|
|
34
34
|
1. A set of Google Cloud projects:
|
|
@@ -58,6 +58,7 @@ The templated agent leverages [**Terraform**](http://terraform.io) to define and
|
|
|
58
58
|
|
|
59
59
|
| Variable | Description | Required |
|
|
60
60
|
| ---------------------- | --------------------------------------------------------------- | :------: |
|
|
61
|
+
| project_name | Project name used as a base for resource naming | Yes |
|
|
61
62
|
| prod_project_id | **Production** Google Cloud Project ID for resource deployment. | Yes |
|
|
62
63
|
| staging_project_id | **Staging** Google Cloud Project ID for resource deployment. | Yes |
|
|
63
64
|
| cicd_runner_project_id | Google Cloud Project ID where CI/CD pipelines will execute. | Yes |
|
|
@@ -65,7 +66,7 @@ The templated agent leverages [**Terraform**](http://terraform.io) to define and
|
|
|
65
66
|
| host_connection_name | Name of the host connection you created in Cloud Build | Yes |
|
|
66
67
|
| repository_name | Name of the repository you added to Cloud Build | Yes |
|
|
67
68
|
|
|
68
|
-
Other optional variables include: telemetry and feedback
|
|
69
|
+
Other optional variables may include: telemetry and feedback log filters, service account roles, and for projects requiring data ingestion: pipeline cron schedule, pipeline roles, and datastore-specific configurations.
|
|
69
70
|
|
|
70
71
|
4. **Deploy Infrastructure with Terraform**
|
|
71
72
|
|
|
@@ -96,28 +97,3 @@ After completing these steps, your infrastructure will be set up and ready for d
|
|
|
96
97
|
For End-to-end testing of the application, including tracing and feedback sinking to BigQuery, without the need to trigger a CI/CD pipeline.
|
|
97
98
|
|
|
98
99
|
First, enable required Google Cloud APIs:
|
|
99
|
-
|
|
100
|
-
```bash
|
|
101
|
-
gcloud config set project <your-dev-project-id>
|
|
102
|
-
gcloud services enable serviceusage.googleapis.com cloudresourcemanager.googleapis.com
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
After you edited the relative [`env.tfvars` file](../terraform/dev/vars/env.tfvars), follow the following instructions:
|
|
106
|
-
|
|
107
|
-
```bash
|
|
108
|
-
cd deployment/terraform/dev
|
|
109
|
-
terraform init
|
|
110
|
-
terraform apply --var-file vars/env.tfvars
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
Then deploy the application using the following command (from the root of the repository):
|
|
114
|
-
|
|
115
|
-
```bash
|
|
116
|
-
make backend
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
### End-to-end Demo video
|
|
120
|
-
|
|
121
|
-
<a href="https://storage.googleapis.com/github-repo/generative-ai/sample-apps/e2e-gen-ai-app-starter-pack/template_deployment_demo.mp4">
|
|
122
|
-
<img src="https://storage.googleapis.com/github-repo/generative-ai/sample-apps/e2e-gen-ai-app-starter-pack/preview_video.png" alt="Watch the video" width="300"/>
|
|
123
|
-
</a>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "agent-starter-pack"
|
|
3
|
-
version = "0.2.
|
|
3
|
+
version = "0.2.3"
|
|
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" },
|
|
@@ -11,7 +11,7 @@ requires-python = ">=3.10"
|
|
|
11
11
|
dependencies = [
|
|
12
12
|
"click~=8.1.7",
|
|
13
13
|
"cookiecutter~=2.5.0",
|
|
14
|
-
"google-cloud-aiplatform~=1.
|
|
14
|
+
"google-cloud-aiplatform~=1.87.0",
|
|
15
15
|
"rich~=13.7.0",
|
|
16
16
|
"pyyaml~=6.0.1",
|
|
17
17
|
"backoff>=2.2.1",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
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; }
|
|
2
|
+
@command -v uv >/dev/null 2>&1 || { echo "uv is not installed. Installing uv..."; curl -LsSf https://astral.sh/uv/0.6.12/install.sh | sh; source ~/.bashrc; }
|
|
3
3
|
uv sync --dev {% if cookiecutter.agent_name != 'live_api' %}--extra streamlit{%- endif %} --extra jupyter --frozen{% if cookiecutter.agent_name == 'live_api' %} && npm --prefix frontend install{%- endif %}
|
|
4
4
|
|
|
5
5
|
test:
|
|
@@ -19,7 +19,9 @@ backend:
|
|
|
19
19
|
{%- if cookiecutter.deployment_target == 'cloud_run' %}
|
|
20
20
|
uv run uvicorn app.server:app --host 0.0.0.0 --port 8000 --reload
|
|
21
21
|
{%- elif cookiecutter.deployment_target == 'agent_engine' %}
|
|
22
|
-
uv export
|
|
22
|
+
# Export dependencies to requirements file using uv export (preferred method), otherwise fall back to uv pip freeze
|
|
23
|
+
uv export --no-hashes --no-sources --no-header --no-dev --no-emit-project --no-annotate --frozen > .requirements.txt 2>/dev/null || \
|
|
24
|
+
uv pip freeze --exclude-editable > .requirements.txt && uv run app/agent_engine_app.py
|
|
23
25
|
{%- endif %}
|
|
24
26
|
|
|
25
27
|
{% if cookiecutter.deployment_target == 'cloud_run' -%}
|
|
@@ -34,8 +36,7 @@ ui:
|
|
|
34
36
|
setup-dev-env:
|
|
35
37
|
@if [ -z "$$PROJECT_ID" ]; then echo "Error: PROJECT_ID environment variable is not set"; exit 1; fi
|
|
36
38
|
(cd deployment/terraform/dev && terraform init && terraform apply --var-file vars/env.tfvars --var dev_project_id=$$PROJECT_ID --auto-approve)
|
|
37
|
-
|
|
38
|
-
{%- if cookiecutter.data_ingestion%}
|
|
39
|
+
{% if cookiecutter.data_ingestion %}
|
|
39
40
|
data-ingestion:
|
|
40
41
|
@if [ -z "$$PROJECT_ID" ]; then echo "Error: PROJECT_ID environment variable is not set"; exit 1; fi
|
|
41
42
|
$(MAKE) install
|
|
@@ -48,6 +49,7 @@ data-ingestion:
|
|
|
48
49
|
{%- elif cookiecutter.datastore_type == "vertex_ai_vector_search" %}
|
|
49
50
|
--vector-search-index="{{cookiecutter.project_name}}-vector-search" \
|
|
50
51
|
--vector-search-index-endpoint="{{cookiecutter.project_name}}-vector-search-endpoint" \
|
|
52
|
+
--vector-search-data-bucket-name="$$PROJECT_ID-{{cookiecutter.project_name}}-vs" \
|
|
51
53
|
{%- endif %}
|
|
52
54
|
--service-account="{{cookiecutter.project_name}}-rag@$$PROJECT_ID.iam.gserviceaccount.com" \
|
|
53
55
|
--pipeline-root="gs://$$PROJECT_ID-{{cookiecutter.project_name}}-rag" \
|
|
@@ -56,6 +56,10 @@ make install && make playground
|
|
|
56
56
|
{%- endif %}
|
|
57
57
|
| `make test` | Run unit and integration tests |
|
|
58
58
|
| `make lint` | Run code quality checks (codespell, ruff, mypy) |
|
|
59
|
+
| `make setup-dev-env` | Set up development environment resources using Terraform |
|
|
60
|
+
{%- if cookiecutter.data_ingestion %}
|
|
61
|
+
| `make data-ingestion`| Run data ingestion pipeline in the Dev environment |
|
|
62
|
+
{%- endif %}
|
|
59
63
|
| `uv run jupyter lab` | Launch Jupyter notebook |
|
|
60
64
|
|
|
61
65
|
For full command options and usage, refer to the [Makefile](Makefile).
|
|
@@ -144,12 +148,14 @@ This template follows a "bring your own agent" approach - you focus on your busi
|
|
|
144
148
|
1. **Prototype:** Build your Generative AI Agent using the intro notebooks in `notebooks/` for guidance. Use Vertex AI Evaluation to assess performance.
|
|
145
149
|
2. **Integrate:** Import your agent into the app by editing `app/agent.py`.
|
|
146
150
|
3. **Test:** Explore your agent functionality using the Streamlit playground with `make playground`. The playground offers features like chat history, user feedback, and various input types, and automatically reloads your agent on code changes.
|
|
147
|
-
4. **Deploy:**
|
|
151
|
+
4. **Deploy:** Set up and initiate the CI/CD pipelines, customizing tests as necessary. Refer to the [deployment section](#deployment) for comprehensive instructions. For streamlined infrastructure deployment, simply run `agent-starter-pack setup-cicd`. Check out the [`agent-starter-pack setup-cicd` CLI command](https://github.com/GoogleCloudPlatform/agent-starter-pack/blob/main/docs/cli/setup_cicd.md). Currently only supporting Github.
|
|
148
152
|
5. **Monitor:** Track performance and gather insights using Cloud Logging, Tracing, and the Looker Studio dashboard to iterate on your application.
|
|
149
153
|
{% endif %}
|
|
150
154
|
|
|
151
155
|
## Deployment
|
|
152
156
|
|
|
157
|
+
> **Note:** For a streamlined one-command deployment of the entire CI/CD pipeline and infrastructure using Terraform, you can use the [`agent-starter-pack setup-cicd` CLI command](https://github.com/GoogleCloudPlatform/agent-starter-pack/blob/main/docs/cli/setup_cicd.md). Currently only supporting Github.
|
|
158
|
+
|
|
153
159
|
### Dev Environment
|
|
154
160
|
|
|
155
161
|
{%- if cookiecutter.deployment_target == 'agent_engine' %}
|
{agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/base_template/deployment/README.md
RENAMED
|
@@ -29,6 +29,8 @@ The application leverages [**Terraform**](http://terraform.io) to define and pro
|
|
|
29
29
|
|
|
30
30
|
## Setup
|
|
31
31
|
|
|
32
|
+
> **Note:** For a streamlined one-command deployment of the entire CI/CD pipeline and infrastructure using Terraform, you can use the [`agent-starter-pack setup-cicd` CLI command](https://github.com/GoogleCloudPlatform/agent-starter-pack/blob/main/docs/cli/setup_cicd.md). Currently only supporting Github.
|
|
33
|
+
|
|
32
34
|
**Prerequisites:**
|
|
33
35
|
|
|
34
36
|
1. A set of Google Cloud projects:
|
|
@@ -58,6 +60,7 @@ The application leverages [**Terraform**](http://terraform.io) to define and pro
|
|
|
58
60
|
|
|
59
61
|
| Variable | Description | Required |
|
|
60
62
|
| ---------------------- | --------------------------------------------------------------- | :------: |
|
|
63
|
+
| project_name | Project name used as a base for resource naming | Yes |
|
|
61
64
|
| prod_project_id | **Production** Google Cloud Project ID for resource deployment. | Yes |
|
|
62
65
|
| staging_project_id | **Staging** Google Cloud Project ID for resource deployment. | Yes |
|
|
63
66
|
| cicd_runner_project_id | Google Cloud Project ID where CI/CD pipelines will execute. | Yes |
|
|
@@ -65,7 +68,7 @@ The application leverages [**Terraform**](http://terraform.io) to define and pro
|
|
|
65
68
|
| host_connection_name | Name of the host connection you created in Cloud Build | Yes |
|
|
66
69
|
| repository_name | Name of the repository you added to Cloud Build | Yes |
|
|
67
70
|
|
|
68
|
-
Other optional variables include: telemetry and feedback
|
|
71
|
+
Other optional variables may include: telemetry and feedback log filters, service account roles, and for projects requiring data ingestion: pipeline cron schedule, pipeline roles, and datastore-specific configurations.
|
|
69
72
|
|
|
70
73
|
4. **Deploy Infrastructure with Terraform**
|
|
71
74
|
|
|
@@ -20,7 +20,7 @@ steps:
|
|
|
20
20
|
args:
|
|
21
21
|
- -c
|
|
22
22
|
- |
|
|
23
|
-
cd data_ingestion && pip install uv --user && uv sync --frozen && \
|
|
23
|
+
cd data_ingestion && pip install uv==0.6.12 --user && uv sync --frozen && \
|
|
24
24
|
uv run python data_ingestion_pipeline/submit_pipeline.py
|
|
25
25
|
env:
|
|
26
26
|
- "PIPELINE_ROOT=${_PIPELINE_GCS_ROOT}"
|
|
@@ -75,7 +75,7 @@ steps:
|
|
|
75
75
|
args:
|
|
76
76
|
- "-c"
|
|
77
77
|
- |
|
|
78
|
-
pip install uv --user && uv sync --frozen
|
|
78
|
+
pip install uv==0.6.12 --user && uv sync --frozen
|
|
79
79
|
env:
|
|
80
80
|
- 'PATH=/usr/local/bin:/usr/bin:~/.local/bin'
|
|
81
81
|
|
|
@@ -85,7 +85,7 @@ steps:
|
|
|
85
85
|
args:
|
|
86
86
|
- "-c"
|
|
87
87
|
- |
|
|
88
|
-
uv export --no-hashes --no-sources --no-header --no-emit-project --frozen > .requirements.txt
|
|
88
|
+
uv export --no-hashes --no-sources --no-header --no-dev --no-emit-project --no-annotate --frozen > .requirements.txt
|
|
89
89
|
uv run app/agent_engine_app.py \
|
|
90
90
|
--project ${_PROD_PROJECT_ID} \
|
|
91
91
|
--location ${_REGION} \
|
{agent_starter_pack-0.2.2 → agent_starter_pack-0.2.3}/src/base_template/deployment/cd/staging.yaml
RENAMED
|
@@ -20,7 +20,7 @@ steps:
|
|
|
20
20
|
args:
|
|
21
21
|
- -c
|
|
22
22
|
- |
|
|
23
|
-
cd data_ingestion && pip install uv --user && uv sync --frozen && \
|
|
23
|
+
cd data_ingestion && pip install uv==0.6.12 --user && uv sync --frozen && \
|
|
24
24
|
uv run python data_ingestion_pipeline/submit_pipeline.py
|
|
25
25
|
env:
|
|
26
26
|
- "PIPELINE_ROOT=${_PIPELINE_GCS_ROOT}"
|
|
@@ -108,7 +108,7 @@ steps:
|
|
|
108
108
|
args:
|
|
109
109
|
- "-c"
|
|
110
110
|
- |
|
|
111
|
-
pip install uv --user && uv sync --frozen
|
|
111
|
+
pip install uv==0.6.12 --user && uv sync --frozen
|
|
112
112
|
env:
|
|
113
113
|
- 'PATH=/usr/local/bin:/usr/bin:~/.local/bin'
|
|
114
114
|
|
|
@@ -118,7 +118,7 @@ steps:
|
|
|
118
118
|
args:
|
|
119
119
|
- "-c"
|
|
120
120
|
- |
|
|
121
|
-
uv export --no-hashes --no-sources --no-header --no-emit-project --frozen > .requirements.txt
|
|
121
|
+
uv export --no-hashes --no-sources --no-header --no-dev --no-emit-project --no-annotate --frozen > .requirements.txt
|
|
122
122
|
uv run app/agent_engine_app.py \
|
|
123
123
|
--project ${_STAGING_PROJECT_ID} \
|
|
124
124
|
--location ${_REGION} \
|
|
@@ -146,7 +146,7 @@ steps:
|
|
|
146
146
|
{%- if cookiecutter.deployment_target == 'cloud_run' %}
|
|
147
147
|
export _ID_TOKEN=$(cat id_token.txt)
|
|
148
148
|
export _STAGING_URL=$(cat staging_url.txt)
|
|
149
|
-
pip install uv --user && uv sync --frozen
|
|
149
|
+
pip install uv==0.6.12 --user && uv sync --frozen
|
|
150
150
|
{%- elif cookiecutter.deployment_target == 'agent_engine' %}
|
|
151
151
|
export _AUTH_TOKEN=$(cat auth_token.txt)
|
|
152
152
|
{%- endif %}
|
|
@@ -38,6 +38,7 @@ resource "google_cloudbuild_trigger" "pr_checks" {
|
|
|
38
38
|
"data_ingestion/**",
|
|
39
39
|
{% endif %}
|
|
40
40
|
]
|
|
41
|
+
include_build_logs = "INCLUDE_BUILD_LOGS_WITH_STATUS"
|
|
41
42
|
depends_on = [resource.google_project_service.cicd_services, resource.google_project_service.shared_services]
|
|
42
43
|
}
|
|
43
44
|
|
|
@@ -64,6 +65,7 @@ resource "google_cloudbuild_trigger" "cd_pipeline" {
|
|
|
64
65
|
"deployment/**",
|
|
65
66
|
"uv.lock"
|
|
66
67
|
]
|
|
68
|
+
include_build_logs = "INCLUDE_BUILD_LOGS_WITH_STATUS"
|
|
67
69
|
substitutions = {
|
|
68
70
|
_STAGING_PROJECT_ID = var.staging_project_id
|
|
69
71
|
_BUCKET_NAME_LOAD_TEST_RESULTS = resource.google_storage_bucket.bucket_load_test_results.name
|
|
@@ -104,6 +106,7 @@ resource "google_cloudbuild_trigger" "deploy_to_prod_pipeline" {
|
|
|
104
106
|
repository = "projects/${var.cicd_runner_project_id}/locations/${var.region}/connections/${var.host_connection_name}/repositories/${var.repository_name}"
|
|
105
107
|
}
|
|
106
108
|
filename = "deployment/cd/deploy-to-prod.yaml"
|
|
109
|
+
include_build_logs = "INCLUDE_BUILD_LOGS_WITH_STATUS"
|
|
107
110
|
approval_config {
|
|
108
111
|
approval_required = true
|
|
109
112
|
}
|
|
@@ -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.
|
|
17
|
+
"google-cloud-aiplatform[evaluation]~=1.87.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,reasoningengine]~=1.
|
|
21
|
+
"google-cloud-aiplatform[evaluation,reasoningengine]~=1.87.0"
|
|
22
22
|
{%- endif %}
|
|
23
23
|
]
|
|
24
24
|
{% if cookiecutter.deployment_target == 'cloud_run' %}
|
|
@@ -37,6 +37,40 @@ from ..utils.template import (
|
|
|
37
37
|
console = Console()
|
|
38
38
|
|
|
39
39
|
|
|
40
|
+
def normalize_project_name(project_name: str) -> str:
|
|
41
|
+
"""Normalize project name for better compatibility with cloud resources and tools."""
|
|
42
|
+
|
|
43
|
+
needs_normalization = (
|
|
44
|
+
any(char.isupper() for char in project_name) or "_" in project_name
|
|
45
|
+
)
|
|
46
|
+
|
|
47
|
+
if needs_normalization:
|
|
48
|
+
normalized_name = project_name
|
|
49
|
+
console.print(
|
|
50
|
+
"Note: Project names are normalized (lowercase, hyphens only) for better compatibility with cloud resources and tools.",
|
|
51
|
+
style="dim",
|
|
52
|
+
)
|
|
53
|
+
if any(char.isupper() for char in normalized_name):
|
|
54
|
+
normalized_name = normalized_name.lower()
|
|
55
|
+
console.print(
|
|
56
|
+
f"Info: Converting to lowercase for compatibility: '{project_name}' -> '{normalized_name}'",
|
|
57
|
+
style="bold yellow",
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
if "_" in normalized_name:
|
|
61
|
+
# Capture the name state before this specific change
|
|
62
|
+
name_before_hyphenation = normalized_name
|
|
63
|
+
normalized_name = normalized_name.replace("_", "-")
|
|
64
|
+
console.print(
|
|
65
|
+
f"Info: Replacing underscores with hyphens for compatibility: '{name_before_hyphenation}' -> '{normalized_name}'",
|
|
66
|
+
style="yellow",
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
return normalized_name
|
|
70
|
+
|
|
71
|
+
return project_name
|
|
72
|
+
|
|
73
|
+
|
|
40
74
|
@click.command()
|
|
41
75
|
@click.pass_context
|
|
42
76
|
@click.argument("project_name")
|
|
@@ -110,15 +144,7 @@ def create(
|
|
|
110
144
|
)
|
|
111
145
|
return
|
|
112
146
|
|
|
113
|
-
|
|
114
|
-
if any(char.isupper() for char in project_name):
|
|
115
|
-
original_name = project_name
|
|
116
|
-
project_name = project_name.lower()
|
|
117
|
-
console.print(
|
|
118
|
-
f"Warning: Project name '{original_name}' contains uppercase characters. "
|
|
119
|
-
f"Converting to lowercase: '{project_name}'",
|
|
120
|
-
style="bold yellow",
|
|
121
|
-
)
|
|
147
|
+
project_name = normalize_project_name(project_name)
|
|
122
148
|
|
|
123
149
|
# Setup debug logging if enabled
|
|
124
150
|
if debug:
|
|
@@ -356,9 +356,11 @@ console = Console()
|
|
|
356
356
|
|
|
357
357
|
@click.command()
|
|
358
358
|
@click.option("--dev-project", help="Development project ID")
|
|
359
|
-
@click.option("--staging-project",
|
|
360
|
-
@click.option("--prod-project",
|
|
361
|
-
@click.option(
|
|
359
|
+
@click.option("--staging-project", help="Staging project ID")
|
|
360
|
+
@click.option("--prod-project", help="Production project ID")
|
|
361
|
+
@click.option(
|
|
362
|
+
"--cicd-project", help="CICD project ID (defaults to prod project if not specified)"
|
|
363
|
+
)
|
|
362
364
|
@click.option("--region", default="us-central1", help="GCP region")
|
|
363
365
|
@click.option("--repository-name", help="Repository name (optional)")
|
|
364
366
|
@click.option(
|
|
@@ -402,9 +404,9 @@ console = Console()
|
|
|
402
404
|
)
|
|
403
405
|
def setup_cicd(
|
|
404
406
|
dev_project: str | None,
|
|
405
|
-
staging_project: str,
|
|
406
|
-
prod_project: str,
|
|
407
|
-
cicd_project: str,
|
|
407
|
+
staging_project: str | None,
|
|
408
|
+
prod_project: str | None,
|
|
409
|
+
cicd_project: str | None,
|
|
408
410
|
region: str,
|
|
409
411
|
repository_name: str | None,
|
|
410
412
|
repository_owner: str | None,
|
|
@@ -426,6 +428,20 @@ def setup_cicd(
|
|
|
426
428
|
"Make sure you are in the folder created by agent-starter-pack."
|
|
427
429
|
)
|
|
428
430
|
|
|
431
|
+
# Prompt for staging and prod projects if not provided
|
|
432
|
+
if staging_project is None:
|
|
433
|
+
staging_project = click.prompt(
|
|
434
|
+
"Enter your staging project ID (where tests will be run)", type=str
|
|
435
|
+
)
|
|
436
|
+
|
|
437
|
+
if prod_project is None:
|
|
438
|
+
prod_project = click.prompt("Enter your production project ID", type=str)
|
|
439
|
+
|
|
440
|
+
# If cicd_project is not provided, default to prod_project
|
|
441
|
+
if cicd_project is None:
|
|
442
|
+
cicd_project = prod_project
|
|
443
|
+
console.print(f"Using production project '{prod_project}' for CI/CD resources")
|
|
444
|
+
|
|
429
445
|
console.print(
|
|
430
446
|
"\n⚠️ WARNING: The setup-cicd command is experimental and may have unexpected behavior.",
|
|
431
447
|
style="bold yellow",
|