agent-starter-pack 0.0.13b0__tar.gz → 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of agent-starter-pack might be problematic. Click here for more details.
- agent_starter_pack-0.1.0/.cloudbuild/ci/lint.yaml +39 -0
- agent_starter_pack-0.1.0/.cloudbuild/ci/lint_templated_agents.yaml +38 -0
- agent_starter_pack-0.1.0/.cloudbuild/ci/test.yaml +37 -0
- agent_starter_pack-0.1.0/.cloudbuild/ci/test_templated_agents.yaml +38 -0
- agent_starter_pack-0.1.0/.cloudbuild/terraform/build_triggers.tf +164 -0
- agent_starter_pack-0.1.0/.cloudbuild/terraform/service_account.tf +41 -0
- agent_starter_pack-0.1.0/.cloudbuild/terraform/storage.tf +21 -0
- agent_starter_pack-0.1.0/.cloudbuild/terraform/variables.tf +34 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/.gitignore +3 -1
- agent_starter_pack-0.0.13b0/Makefile → agent_starter_pack-0.1.0/MAKEFILE +1 -1
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/PKG-INFO +3 -4
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/README.md +2 -3
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/agents/multimodal_live_api/app/server.py +3 -1
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/docs/why_starter_pack.md +3 -2
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/pyproject.toml +1 -1
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/base_template/README.md +5 -2
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/base_template/deployment/cd/deploy-to-prod.yaml +3 -3
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/base_template/deployment/cd/staging.yaml +4 -4
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/base_template/deployment/ci/pr_checks.yaml +3 -3
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/base_template/deployment/terraform/build_triggers.tf +2 -2
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/cli/utils/cicd.py +21 -6
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/deployment_targets/agent_engine/app/agent_engine_app.py +45 -15
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/deployment_targets/cloud_run/tests/load_test/README.md +8 -4
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/utils/lock_utils.py +1 -1
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/tests/cicd/test_e2e_deployment.py +8 -8
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/tests/integration/test_template_linting.py +42 -11
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/tests/integration/test_templated_patterns.py +22 -2
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/uv.lock +1 -1
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/CODE_OF_CONDUCT.md +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/CONTRIBUTING.md +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/LICENSE +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/agents/agentic_rag_vertexai_search/README.md +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/agents/agentic_rag_vertexai_search/app/agent.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/agents/agentic_rag_vertexai_search/app/retrievers.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/agents/agentic_rag_vertexai_search/app/templates.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/agents/agentic_rag_vertexai_search/notebooks/evaluating_langgraph_agent.ipynb +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/agents/agentic_rag_vertexai_search/template/.templateconfig.yaml +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/agents/agentic_rag_vertexai_search/tests/integration/test_agent.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/agents/crewai_coding_crew/README.md +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/agents/crewai_coding_crew/app/agent.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/agents/crewai_coding_crew/app/crew/config/agents.yaml +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/agents/crewai_coding_crew/app/crew/config/tasks.yaml +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/agents/crewai_coding_crew/app/crew/crew.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/agents/crewai_coding_crew/notebooks/evaluating_crewai_agent.ipynb +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/agents/crewai_coding_crew/notebooks/evaluating_langgraph_agent.ipynb +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/agents/crewai_coding_crew/template/.templateconfig.yaml +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/agents/crewai_coding_crew/tests/integration/test_agent.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/agents/langgraph_base_react/README.md +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/agents/langgraph_base_react/app/agent.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/agents/langgraph_base_react/notebooks/evaluating_langgraph_agent.ipynb +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/agents/langgraph_base_react/template/.templateconfig.yaml +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/agents/langgraph_base_react/tests/integration/test_agent.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/agents/multimodal_live_api/README.md +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/agents/multimodal_live_api/app/agent.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/agents/multimodal_live_api/app/templates.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/agents/multimodal_live_api/app/vector_store.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/agents/multimodal_live_api/template/.templateconfig.yaml +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/agents/multimodal_live_api/tests/integration/test_server_e2e.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/agents/multimodal_live_api/tests/load_test/load_test.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/agents/multimodal_live_api/tests/unit/test_server.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/docs/README.md +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/docs/cli/README.md +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/docs/cli/create.md +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/docs/cli/setup_cicd.md +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/docs/data-ingestion.md +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/docs/deployment.md +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/docs/images/ags_banner.png +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/docs/images/ags_high_level_architecture.png +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/docs/installation.md +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/docs/observability.md +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/docs/troubleshooting.md +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/base_template/.gitignore +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/base_template/Makefile +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/base_template/app/utils/tracing.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/base_template/app/utils/typing.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/base_template/deployment/README.md +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/base_template/deployment/terraform/apis.tf +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/base_template/deployment/terraform/dev/apis.tf +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/base_template/deployment/terraform/dev/iam.tf +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/base_template/deployment/terraform/dev/log_sinks.tf +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/base_template/deployment/terraform/dev/providers.tf +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/base_template/deployment/terraform/dev/storage.tf +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/base_template/deployment/terraform/dev/variables.tf +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/base_template/deployment/terraform/dev/vars/env.tfvars +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/base_template/deployment/terraform/iam.tf +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/base_template/deployment/terraform/locals.tf +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/base_template/deployment/terraform/log_sinks.tf +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/base_template/deployment/terraform/providers.tf +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/base_template/deployment/terraform/service_accounts.tf +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/base_template/deployment/terraform/storage.tf +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/base_template/deployment/terraform/variables.tf +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/base_template/deployment/terraform/vars/env.tfvars +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/base_template/pyproject.toml +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/base_template/tests/unit/test_utils/test_tracing_exporter.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/cli/commands/create.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/cli/commands/setup_cicd.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/cli/main.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/cli/utils/__init__.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/cli/utils/gcp.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/cli/utils/logging.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/cli/utils/template.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/data_ingestion/README.md +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/data_ingestion/data_ingestion_pipeline/components/ingest_data.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/data_ingestion/data_ingestion_pipeline/components/process_data.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/data_ingestion/data_ingestion_pipeline/pipeline.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/data_ingestion/data_ingestion_pipeline/submit_pipeline.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/data_ingestion/pyproject.toml +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/data_ingestion/uv.lock +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/deployment_targets/agent_engine/app/utils/gcs.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/deployment_targets/agent_engine/deployment_metadata.json +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/deployment_targets/agent_engine/notebooks/intro_reasoning_engine.ipynb +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/deployment_targets/agent_engine/tests/integration/test_agent_engine_app.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/deployment_targets/agent_engine/tests/load_test/.results/.placeholder +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/deployment_targets/agent_engine/tests/load_test/README.md +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/deployment_targets/agent_engine/tests/load_test/load_test.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/deployment_targets/agent_engine/tests/unit/test_dummy.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/deployment_targets/cloud_run/Dockerfile +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/deployment_targets/cloud_run/app/server.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/deployment_targets/cloud_run/deployment/terraform/artifact_registry.tf +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/deployment_targets/cloud_run/deployment/terraform/dev/service_accounts.tf +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/deployment_targets/cloud_run/tests/integration/test_server_e2e.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/deployment_targets/cloud_run/tests/load_test/.results/.placeholder +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/deployment_targets/cloud_run/tests/load_test/load_test.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/deployment_targets/cloud_run/tests/unit/test_server.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/deployment_targets/cloud_run/uv.lock +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/package-lock.json +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/package.json +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/public/favicon.ico +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/public/index.html +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/public/robots.txt +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/src/App.scss +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/src/App.test.tsx +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/src/App.tsx +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/src/components/audio-pulse/AudioPulse.tsx +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/src/components/audio-pulse/audio-pulse.scss +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/src/components/control-tray/ControlTray.tsx +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/src/components/control-tray/control-tray.scss +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/src/components/logger/Logger.tsx +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/src/components/logger/logger.scss +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/src/components/logger/mock-logs.ts +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/src/components/side-panel/SidePanel.tsx +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/src/components/side-panel/side-panel.scss +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/src/contexts/LiveAPIContext.tsx +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/src/hooks/use-live-api.ts +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/src/hooks/use-media-stream-mux.ts +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/src/hooks/use-screen-capture.ts +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/src/hooks/use-webcam.ts +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/src/index.css +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/src/index.tsx +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/src/multimodal-live-types.ts +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/src/react-app-env.d.ts +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/src/reportWebVitals.ts +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/src/setupTests.ts +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/src/utils/audio-recorder.ts +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/src/utils/audio-streamer.ts +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/src/utils/audioworklet-registry.ts +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/src/utils/multimodal-live-client.ts +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/src/utils/store-logger.ts +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/src/utils/utils.ts +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/src/utils/worklets/audio-processing.ts +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/src/utils/worklets/vol-meter.ts +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/live_api_react/frontend/tsconfig.json +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/streamlit/frontend/side_bar.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/streamlit/frontend/streamlit_app.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/streamlit/frontend/style/app_markdown.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/streamlit/frontend/utils/chat_utils.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/streamlit/frontend/utils/local_chat_history.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/streamlit/frontend/utils/message_editing.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/streamlit/frontend/utils/multimodal_utils.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/streamlit/frontend/utils/stream_handler.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/frontends/streamlit/frontend/utils/title_summary.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/resources/containers/data_processing/Dockerfile +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/resources/locks/uv-agentic_rag_vertexai_search-agent_engine.lock +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/resources/locks/uv-agentic_rag_vertexai_search-cloud_run.lock +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/resources/locks/uv-crewai_coding_crew-agent_engine.lock +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/resources/locks/uv-crewai_coding_crew-cloud_run.lock +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/resources/locks/uv-langgraph_base_react-agent_engine.lock +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/resources/locks/uv-langgraph_base_react-cloud_run.lock +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/resources/locks/uv-multimodal_live_api-cloud_run.lock +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/resources/setup_cicd/cicd_variables.tf +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/resources/setup_cicd/github.tf +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/resources/setup_cicd/providers.tf +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/utils/generate_locks.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/src/utils/watch_and_rebuild.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/tests/cicd/example.env +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/tests/cli/commands/test_create.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/tests/cli/commands/test_setup_cicd.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/tests/cli/utils/test_cicd.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/tests/integration/test_io_patterns.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/tests/test_frontend/test_side_bar.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/tests/test_frontend/test_streamlit_app.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/tests/test_frontend/test_utils/test_chat_utils.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/tests/test_frontend/test_utils/test_local_chat_history.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/tests/test_frontend/test_utils/test_message_editing.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/tests/test_frontend/test_utils/test_multimodal_utils.py +0 -0
- {agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/tests/test_frontend/test_utils/test_stream_handler.py +0 -0
|
@@ -0,0 +1,39 @@
|
|
|
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
|
+
steps:
|
|
16
|
+
# Sync dependencies
|
|
17
|
+
- name: "ghcr.io/astral-sh/uv:python3.11-bookworm-slim"
|
|
18
|
+
id: install-dependencies
|
|
19
|
+
entrypoint: /bin/bash
|
|
20
|
+
args:
|
|
21
|
+
- "-c"
|
|
22
|
+
- |
|
|
23
|
+
uv sync --dev --extra lint --frozen
|
|
24
|
+
|
|
25
|
+
# Run unit tests using pytest
|
|
26
|
+
- name: "ghcr.io/astral-sh/uv:python3.11-bookworm-slim"
|
|
27
|
+
id: lint
|
|
28
|
+
entrypoint: /bin/bash
|
|
29
|
+
args:
|
|
30
|
+
- "-c"
|
|
31
|
+
- |
|
|
32
|
+
set -e
|
|
33
|
+
uv run ruff check . --config pyproject.toml --diff
|
|
34
|
+
uv run ruff format . --check --config pyproject.toml --diff
|
|
35
|
+
uv run mypy --config-file pyproject.toml ./agents ./src/cli ./tests ./src/data_ingestion ./src/frontends/streamlit
|
|
36
|
+
|
|
37
|
+
logsBucket: gs://${PROJECT_ID}-logs-data/build-logs
|
|
38
|
+
options:
|
|
39
|
+
defaultLogsBucketBehavior: REGIONAL_USER_OWNED_BUCKET
|
|
@@ -0,0 +1,38 @@
|
|
|
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
|
+
steps:
|
|
16
|
+
# Sync dependencies
|
|
17
|
+
- name: "ghcr.io/astral-sh/uv:python3.11-bookworm-slim"
|
|
18
|
+
id: install-dependencies
|
|
19
|
+
entrypoint: /bin/bash
|
|
20
|
+
args:
|
|
21
|
+
- "-c"
|
|
22
|
+
- |
|
|
23
|
+
uv sync --dev --extra lint --frozen
|
|
24
|
+
|
|
25
|
+
# Run unit tests using pytest
|
|
26
|
+
- name: "ghcr.io/astral-sh/uv:python3.11-bookworm-slim"
|
|
27
|
+
id: lint-templated-agents
|
|
28
|
+
entrypoint: /bin/bash
|
|
29
|
+
args:
|
|
30
|
+
- "-c"
|
|
31
|
+
- |
|
|
32
|
+
uv run tests/integration/test_template_linting.py
|
|
33
|
+
|
|
34
|
+
logsBucket: gs://${PROJECT_ID}-logs-data/build-logs
|
|
35
|
+
options:
|
|
36
|
+
defaultLogsBucketBehavior: REGIONAL_USER_OWNED_BUCKET
|
|
37
|
+
env:
|
|
38
|
+
- "_TEST_AGENT_COMBINATION=${_TEST_AGENT_COMBINATION}"
|
|
@@ -0,0 +1,37 @@
|
|
|
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
|
+
steps:
|
|
16
|
+
# Sync dependencies
|
|
17
|
+
- name: "ghcr.io/astral-sh/uv:python3.11-bookworm-slim"
|
|
18
|
+
id: install-dependencies
|
|
19
|
+
entrypoint: /bin/bash
|
|
20
|
+
args:
|
|
21
|
+
- "-c"
|
|
22
|
+
- |
|
|
23
|
+
uv sync --dev --frozen
|
|
24
|
+
|
|
25
|
+
# Run unit tests using pytest
|
|
26
|
+
- name: "ghcr.io/astral-sh/uv:python3.11-bookworm-slim"
|
|
27
|
+
id: unit-tests
|
|
28
|
+
entrypoint: /bin/bash
|
|
29
|
+
args:
|
|
30
|
+
- "-c"
|
|
31
|
+
- |
|
|
32
|
+
uv run pytest tests
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
logsBucket: gs://${PROJECT_ID}-logs-data/build-logs
|
|
36
|
+
options:
|
|
37
|
+
defaultLogsBucketBehavior: REGIONAL_USER_OWNED_BUCKET
|
|
@@ -0,0 +1,38 @@
|
|
|
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
|
+
steps:
|
|
16
|
+
# Sync dependencies
|
|
17
|
+
- name: "ghcr.io/astral-sh/uv:python3.11-bookworm-slim"
|
|
18
|
+
id: install-dependencies
|
|
19
|
+
entrypoint: /bin/bash
|
|
20
|
+
args:
|
|
21
|
+
- "-c"
|
|
22
|
+
- |
|
|
23
|
+
uv sync --dev --frozen
|
|
24
|
+
|
|
25
|
+
# Run unit tests using pytest
|
|
26
|
+
- name: "ghcr.io/astral-sh/uv:python3.11-bookworm-slim"
|
|
27
|
+
id: test-templated-agents
|
|
28
|
+
entrypoint: /bin/bash
|
|
29
|
+
args:
|
|
30
|
+
- "-c"
|
|
31
|
+
- |
|
|
32
|
+
uv run pytest tests/integration/test_templated_patterns.py
|
|
33
|
+
|
|
34
|
+
logsBucket: gs://${PROJECT_ID}-logs-data/build-logs
|
|
35
|
+
options:
|
|
36
|
+
defaultLogsBucketBehavior: REGIONAL_USER_OWNED_BUCKET
|
|
37
|
+
env:
|
|
38
|
+
- "_TEST_AGENT_COMBINATION=${_TEST_AGENT_COMBINATION}"
|
|
@@ -0,0 +1,164 @@
|
|
|
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
|
+
# Define local variables for reuse
|
|
16
|
+
locals {
|
|
17
|
+
repository_path = "projects/${var.cicd_runner_project_id}/locations/${var.region}/connections/${var.host_connection_name}/repositories/${var.repository_name}"
|
|
18
|
+
|
|
19
|
+
common_included_files = [
|
|
20
|
+
"agents/**",
|
|
21
|
+
"src/cli/**",
|
|
22
|
+
"tests/**",
|
|
23
|
+
"src/data_ingestion/**",
|
|
24
|
+
"src/frontends/streamlit/**",
|
|
25
|
+
"pyproject.toml",
|
|
26
|
+
"uv.lock",
|
|
27
|
+
".cloudbuild/**",
|
|
28
|
+
]
|
|
29
|
+
|
|
30
|
+
lint_templated_agents_included_files = [
|
|
31
|
+
"src/cli/**",
|
|
32
|
+
"src/base_template/**",
|
|
33
|
+
"src/data_ingestion/**",
|
|
34
|
+
"src/deployment_targets/**",
|
|
35
|
+
"tests/integration/test_template_linting.py",
|
|
36
|
+
"tests/integration/test_templated_patterns.py",
|
|
37
|
+
"src/resources/locks/**",
|
|
38
|
+
"pyproject.toml",
|
|
39
|
+
"uv.lock",
|
|
40
|
+
".cloudbuild/**",
|
|
41
|
+
]
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
# a. Create PR Tests checks trigger
|
|
45
|
+
resource "google_cloudbuild_trigger" "pr_tests" {
|
|
46
|
+
name = "pr-tests"
|
|
47
|
+
project = var.cicd_runner_project_id
|
|
48
|
+
location = var.region
|
|
49
|
+
description = "Trigger for PR checks"
|
|
50
|
+
service_account = resource.google_service_account.cicd_runner_sa.id
|
|
51
|
+
|
|
52
|
+
repository_event_config {
|
|
53
|
+
repository = local.repository_path
|
|
54
|
+
pull_request {
|
|
55
|
+
branch = "main"
|
|
56
|
+
comment_control = "COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY"
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
filename = ".cloudbuild/ci/test.yaml"
|
|
61
|
+
included_files = local.common_included_files
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
# b. Create Lint trigger
|
|
65
|
+
resource "google_cloudbuild_trigger" "pr_lint" {
|
|
66
|
+
name = "pr-lint"
|
|
67
|
+
project = var.cicd_runner_project_id
|
|
68
|
+
location = var.region
|
|
69
|
+
description = "Trigger for PR checks"
|
|
70
|
+
service_account = resource.google_service_account.cicd_runner_sa.id
|
|
71
|
+
|
|
72
|
+
repository_event_config {
|
|
73
|
+
repository = local.repository_path
|
|
74
|
+
pull_request {
|
|
75
|
+
branch = "main"
|
|
76
|
+
comment_control = "COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY"
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
filename = ".cloudbuild/ci/lint.yaml"
|
|
81
|
+
included_files = local.common_included_files
|
|
82
|
+
}
|
|
83
|
+
# Define a local variable for agent/deployment combinations
|
|
84
|
+
locals {
|
|
85
|
+
agent_deployment_combinations = [
|
|
86
|
+
"langgraph_base_react,agent_engine",
|
|
87
|
+
"langgraph_base_react,cloud_run",
|
|
88
|
+
"crewai_coding_crew,agent_engine",
|
|
89
|
+
"crewai_coding_crew,cloud_run",
|
|
90
|
+
"agentic_rag_vertexai_search,agent_engine",
|
|
91
|
+
"agentic_rag_vertexai_search,cloud_run",
|
|
92
|
+
"multimodal_live_api,cloud_run",
|
|
93
|
+
]
|
|
94
|
+
|
|
95
|
+
templated_agent_included_files = { for combo in local.agent_deployment_combinations:
|
|
96
|
+
combo => [
|
|
97
|
+
# Only include files for the specific agent being tested
|
|
98
|
+
"agents/${split(",", combo)[0]}/**",
|
|
99
|
+
# Common files that affect all agents
|
|
100
|
+
"src/cli/**",
|
|
101
|
+
"src/base_template/**",
|
|
102
|
+
"src/data_ingestion/**",
|
|
103
|
+
"src/deployment_targets/**",
|
|
104
|
+
"tests/integration/test_template_linting.py",
|
|
105
|
+
"tests/integration/test_templated_patterns.py",
|
|
106
|
+
"src/resources/locks/**",
|
|
107
|
+
"pyproject.toml",
|
|
108
|
+
"uv.lock",
|
|
109
|
+
".cloudbuild/**",
|
|
110
|
+
]
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
# c. Create Templated Agents Lint trigger for PRs - one for each agent/deployment combination:
|
|
115
|
+
resource "google_cloudbuild_trigger" "pr_templated_agents_lint" {
|
|
116
|
+
for_each = toset(local.agent_deployment_combinations)
|
|
117
|
+
|
|
118
|
+
name = "lint-${replace(replace(each.key, ",", "-"), "_", "-")}"
|
|
119
|
+
project = var.cicd_runner_project_id
|
|
120
|
+
location = var.region
|
|
121
|
+
description = "Trigger for PR lint checks on templated agents: ${each.key}"
|
|
122
|
+
service_account = resource.google_service_account.cicd_runner_sa.id
|
|
123
|
+
|
|
124
|
+
repository_event_config {
|
|
125
|
+
repository = local.repository_path
|
|
126
|
+
pull_request {
|
|
127
|
+
branch = "main"
|
|
128
|
+
comment_control = "COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY"
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
filename = ".cloudbuild/ci/lint_templated_agents.yaml"
|
|
133
|
+
included_files = local.templated_agent_included_files[each.key]
|
|
134
|
+
|
|
135
|
+
substitutions = {
|
|
136
|
+
_TEST_AGENT_COMBINATION = each.key
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
# d. Create Templated Agents Integration Test triggers for PRs - one for each agent/deployment combination
|
|
141
|
+
resource "google_cloudbuild_trigger" "pr_templated_agents_test" {
|
|
142
|
+
for_each = toset(local.agent_deployment_combinations)
|
|
143
|
+
|
|
144
|
+
name = "test-${replace(replace(each.key, ",", "-"), "_", "-")}"
|
|
145
|
+
project = var.cicd_runner_project_id
|
|
146
|
+
location = var.region
|
|
147
|
+
description = "Trigger for PR checks on templated agents tests: ${each.key}"
|
|
148
|
+
service_account = resource.google_service_account.cicd_runner_sa.id
|
|
149
|
+
|
|
150
|
+
repository_event_config {
|
|
151
|
+
repository = local.repository_path
|
|
152
|
+
pull_request {
|
|
153
|
+
branch = "main"
|
|
154
|
+
comment_control = "COMMENTS_ENABLED_FOR_EXTERNAL_CONTRIBUTORS_ONLY"
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
filename = ".cloudbuild/ci/test_templated_agents.yaml"
|
|
159
|
+
included_files = local.templated_agent_included_files[each.key]
|
|
160
|
+
|
|
161
|
+
substitutions = {
|
|
162
|
+
_TEST_AGENT_COMBINATION = each.key
|
|
163
|
+
}
|
|
164
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
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
|
+
# Create a service account for CICD runner
|
|
16
|
+
resource "google_service_account" "cicd_runner_sa" {
|
|
17
|
+
project = var.cicd_runner_project_id
|
|
18
|
+
account_id = "cicd-runner-sa"
|
|
19
|
+
display_name = "Service Account for CI/CD Pipeline Runner"
|
|
20
|
+
description = "Used by Cloud Build to execute CI/CD pipelines"
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
# Grant necessary roles to the service account
|
|
24
|
+
resource "google_project_iam_member" "cicd_runner_roles" {
|
|
25
|
+
for_each = toset([
|
|
26
|
+
"roles/cloudbuild.builds.builder",
|
|
27
|
+
"roles/logging.logWriter",
|
|
28
|
+
"roles/storage.admin",
|
|
29
|
+
"roles/artifactregistry.reader",
|
|
30
|
+
"roles/artifactregistry.writer",
|
|
31
|
+
"roles/iam.serviceAccountUser",
|
|
32
|
+
"roles/aiplatform.user",
|
|
33
|
+
"roles/discoveryengine.editor",
|
|
34
|
+
"roles/cloudtrace.agent"
|
|
35
|
+
|
|
36
|
+
])
|
|
37
|
+
|
|
38
|
+
project = var.cicd_runner_project_id
|
|
39
|
+
role = each.key
|
|
40
|
+
member = "serviceAccount:${google_service_account.cicd_runner_sa.email}"
|
|
41
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
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
|
+
resource "google_storage_bucket" "logs_data_bucket" {
|
|
16
|
+
name = "${var.cicd_runner_project_id}-logs-data"
|
|
17
|
+
location = var.region
|
|
18
|
+
project = var.cicd_runner_project_id
|
|
19
|
+
uniform_bucket_level_access = true
|
|
20
|
+
force_destroy = true
|
|
21
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
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
|
+
variable "cicd_runner_project_id" {
|
|
16
|
+
type = string
|
|
17
|
+
description = "Google Cloud Project ID where CI/CD pipelines will execute."
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
variable "region" {
|
|
21
|
+
type = string
|
|
22
|
+
description = "Google Cloud region for resource deployment."
|
|
23
|
+
default = "us-central1"
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
variable "host_connection_name" {
|
|
27
|
+
description = "Name of the host connection you created in Cloud Build"
|
|
28
|
+
type = string
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
variable "repository_name" {
|
|
32
|
+
description = "Name of the repository you'd like to connect to Cloud Build"
|
|
33
|
+
type = string
|
|
34
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-starter-pack
|
|
3
|
-
Version: 0.0
|
|
3
|
+
Version: 0.1.0
|
|
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
|
|
@@ -51,7 +51,7 @@ pip install agent-starter-pack
|
|
|
51
51
|
agent-starter-pack create my-awesome-agent
|
|
52
52
|
```
|
|
53
53
|
|
|
54
|
-
**That's it!** You now have a fully functional agent project
|
|
54
|
+
**That's it!** You now have a fully functional agent project—complete with backend, frontend, and deployment infrastructure—ready for you to explore and customize.
|
|
55
55
|
For more installation options, see the [Installation Guide](docs/installation.md).
|
|
56
56
|
|
|
57
57
|
---
|
|
@@ -119,7 +119,6 @@ See the [documentation](docs/) for more details:
|
|
|
119
119
|
- [Data Ingestion](docs/data-ingestion.md)
|
|
120
120
|
- [Observability](docs/observability.md)
|
|
121
121
|
- [CLI Reference](docs/cli/README.md)
|
|
122
|
-
- [CLI Reference](docs/cli/README.md)
|
|
123
122
|
- [Troubleshooting](docs/troubleshooting.md)
|
|
124
123
|
|
|
125
124
|
**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!
|
|
@@ -138,7 +137,7 @@ If you encounter any issues or have specific suggestions, please first consider
|
|
|
138
137
|
|
|
139
138
|
### Share Your Experience
|
|
140
139
|
|
|
141
|
-
For other types of feedback, or if you'd like to share a positive experience or success story using this starter pack, we'd love to hear from you! You can reach out to us at <a href="mailto:
|
|
140
|
+
For other types of feedback, or if you'd like to share a positive experience or success story using this starter pack, we'd love to hear from you! You can reach out to us at <a href="mailto:agent-starter-pack@google.com">agent-starter-pack@google.com</a>.
|
|
142
141
|
|
|
143
142
|
Thank you for your contributions!
|
|
144
143
|
|
|
@@ -27,7 +27,7 @@ pip install agent-starter-pack
|
|
|
27
27
|
agent-starter-pack create my-awesome-agent
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
-
**That's it!** You now have a fully functional agent project
|
|
30
|
+
**That's it!** You now have a fully functional agent project—complete with backend, frontend, and deployment infrastructure—ready for you to explore and customize.
|
|
31
31
|
For more installation options, see the [Installation Guide](docs/installation.md).
|
|
32
32
|
|
|
33
33
|
---
|
|
@@ -95,7 +95,6 @@ See the [documentation](docs/) for more details:
|
|
|
95
95
|
- [Data Ingestion](docs/data-ingestion.md)
|
|
96
96
|
- [Observability](docs/observability.md)
|
|
97
97
|
- [CLI Reference](docs/cli/README.md)
|
|
98
|
-
- [CLI Reference](docs/cli/README.md)
|
|
99
98
|
- [Troubleshooting](docs/troubleshooting.md)
|
|
100
99
|
|
|
101
100
|
**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!
|
|
@@ -114,7 +113,7 @@ If you encounter any issues or have specific suggestions, please first consider
|
|
|
114
113
|
|
|
115
114
|
### Share Your Experience
|
|
116
115
|
|
|
117
|
-
For other types of feedback, or if you'd like to share a positive experience or success story using this starter pack, we'd love to hear from you! You can reach out to us at <a href="mailto:
|
|
116
|
+
For other types of feedback, or if you'd like to share a positive experience or success story using this starter pack, we'd love to hear from you! You can reach out to us at <a href="mailto:agent-starter-pack@google.com">agent-starter-pack@google.com</a>.
|
|
118
117
|
|
|
119
118
|
Thank you for your contributions!
|
|
120
119
|
|
{agent_starter_pack-0.0.13b0 → agent_starter_pack-0.1.0}/agents/multimodal_live_api/app/server.py
RENAMED
|
@@ -77,7 +77,9 @@ class GeminiSession:
|
|
|
77
77
|
elif "setup" in data:
|
|
78
78
|
self.run_id = data["setup"]["run_id"]
|
|
79
79
|
self.user_id = data["setup"]["user_id"]
|
|
80
|
-
logger.log_struct(
|
|
80
|
+
logger.log_struct(
|
|
81
|
+
{**data["setup"], "type": "setup"}, severity="INFO"
|
|
82
|
+
)
|
|
81
83
|
else:
|
|
82
84
|
logging.warning(f"Received unexpected input from client: {data}")
|
|
83
85
|
except ConnectionClosedError as e:
|
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
Operationalizing Generative AI Agents can be a complex and time-consuming process. Many developers and organizations face similar challenges, often taking many months to move from a successful Proof of Concept (PoC) to a production-ready GenAI application.
|
|
4
4
|
|
|
5
|
-
This starter pack
|
|
5
|
+
This starter pack tries to address those challenges.
|
|
6
6
|
|
|
7
7
|
## The Challenges of Building Production-Ready Agents
|
|
8
|
+
Moving from a prototype to a production-ready, scalable, and secure deployment can be challenging.
|
|
9
|
+
These challenges typically fall into several key areas:
|
|
8
10
|
|
|
9
|
-
The journey from a promising prototype to a robust, scalable, and secure production deployment is often fraught with hurdles. These challenges typically fall into several key areas:
|
|
10
11
|
### Deployment & Operations
|
|
11
12
|
|
|
12
13
|
* **Infrastructure:** Scalable & robust infrastructure.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
{{cookiecutter.agent_description}}
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Agent generated with [`googleCloudPlatform/agent-starter-pack`](https://github.com/GoogleCloudPlatform/agent-starter-pack)
|
|
6
6
|
|
|
7
7
|
## Project Structure
|
|
8
8
|
|
|
@@ -113,7 +113,9 @@ For full command options and usage, refer to the [Makefile](Makefile).
|
|
|
113
113
|
3. **Interact with the Agent**
|
|
114
114
|
Once both the backend and frontend are running, click the play button in the frontend UI to establish a connection with the backend. You can now interact with the Multimodal Live Agent! You can try asking questions such as "Using the tool you have, define Governance in the context MLOPs" to allow the agent to use the documentation it was provided to.
|
|
115
115
|
|
|
116
|
-
|
|
116
|
+
<details>
|
|
117
|
+
<summary><b>Cloud Shell usage</b></summary>
|
|
118
|
+
|
|
117
119
|
To use the `multimodal_live_api` agent in Cloud Shell, follow these steps:
|
|
118
120
|
|
|
119
121
|
1. **Start the Frontend:**
|
|
@@ -153,6 +155,7 @@ To use the `multimodal_live_api` agent in Cloud Shell, follow these steps:
|
|
|
153
155
|
* Click the "Play button" to connect. Start interacting with it!
|
|
154
156
|
|
|
155
157
|
* When using Cloud Shell there is a known limitation when using the feedback feature in the Frontend. Feedback submission might fail due to different origins between the frontend and backend in the Cloud Shell environment.
|
|
158
|
+
</details>
|
|
156
159
|
{%- else %}
|
|
157
160
|
## Usage
|
|
158
161
|
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
steps:
|
|
16
16
|
{%- if cookiecutter.data_ingestion %}
|
|
17
|
-
- name: "python:3.11"
|
|
17
|
+
- name: "python:3.11-slim"
|
|
18
18
|
id: deploy-data-ingestion-pipeline-prod
|
|
19
19
|
entrypoint: bash
|
|
20
20
|
args:
|
|
@@ -63,7 +63,7 @@ steps:
|
|
|
63
63
|
- "--set-env-vars"
|
|
64
64
|
- "COMMIT_SHA=${COMMIT_SHA}{%- if cookiecutter.data_ingestion %},DATA_STORE_ID=${_DATA_STORE_ID},DATA_STORE_REGION=${_DATA_STORE_REGION}{%- endif %}"
|
|
65
65
|
{%- elif cookiecutter.deployment_target == 'agent_engine' %}
|
|
66
|
-
- name: "python:3.11"
|
|
66
|
+
- name: "python:3.11-slim"
|
|
67
67
|
id: install-dependencies
|
|
68
68
|
entrypoint: /bin/bash
|
|
69
69
|
args:
|
|
@@ -73,7 +73,7 @@ steps:
|
|
|
73
73
|
env:
|
|
74
74
|
- 'PATH=/usr/local/bin:/usr/bin:~/.local/bin'
|
|
75
75
|
|
|
76
|
-
- name: "python:3.11"
|
|
76
|
+
- name: "python:3.11-slim"
|
|
77
77
|
id: trigger-deployment
|
|
78
78
|
entrypoint: /bin/bash
|
|
79
79
|
args:
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
steps:
|
|
16
16
|
{%- if cookiecutter.data_ingestion %}
|
|
17
|
-
- name: "python:3.11"
|
|
17
|
+
- name: "python:3.11-slim"
|
|
18
18
|
id: deploy-data-ingestion-pipeline-prod
|
|
19
19
|
entrypoint: bash
|
|
20
20
|
args:
|
|
@@ -96,7 +96,7 @@ steps:
|
|
|
96
96
|
- |
|
|
97
97
|
echo $(gcloud auth print-identity-token -q) > id_token.txt
|
|
98
98
|
{%- elif cookiecutter.deployment_target == 'agent_engine' %}
|
|
99
|
-
- name: "python:3.11"
|
|
99
|
+
- name: "python:3.11-slim"
|
|
100
100
|
id: install-dependencies
|
|
101
101
|
entrypoint: /bin/bash
|
|
102
102
|
args:
|
|
@@ -106,7 +106,7 @@ steps:
|
|
|
106
106
|
env:
|
|
107
107
|
- 'PATH=/usr/local/bin:/usr/bin:~/.local/bin'
|
|
108
108
|
|
|
109
|
-
- name: "python:3.11"
|
|
109
|
+
- name: "python:3.11-slim"
|
|
110
110
|
id: deploy-staging
|
|
111
111
|
entrypoint: /bin/bash
|
|
112
112
|
args:
|
|
@@ -131,7 +131,7 @@ steps:
|
|
|
131
131
|
{%- endif %}
|
|
132
132
|
|
|
133
133
|
# Load Testing
|
|
134
|
-
- name: "python:3.11"
|
|
134
|
+
- name: "python:3.11-slim"
|
|
135
135
|
id: load_test
|
|
136
136
|
entrypoint: /bin/bash
|
|
137
137
|
args:
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
steps:
|
|
16
16
|
# Install uv package manager and sync dependencies
|
|
17
|
-
- name: "python:3.11"
|
|
17
|
+
- name: "python:3.11-slim"
|
|
18
18
|
id: install-dependencies
|
|
19
19
|
entrypoint: /bin/bash
|
|
20
20
|
args:
|
|
@@ -25,7 +25,7 @@ steps:
|
|
|
25
25
|
- 'PATH=/usr/local/bin:/usr/bin:~/.local/bin'
|
|
26
26
|
|
|
27
27
|
# Run unit tests using pytest
|
|
28
|
-
- name: "python:3.11"
|
|
28
|
+
- name: "python:3.11-slim"
|
|
29
29
|
id: unit-tests
|
|
30
30
|
entrypoint: /bin/bash
|
|
31
31
|
args:
|
|
@@ -36,7 +36,7 @@ steps:
|
|
|
36
36
|
- 'PATH=/usr/local/bin:/usr/bin:~/.local/bin'
|
|
37
37
|
|
|
38
38
|
# Run integration tests
|
|
39
|
-
- name: "python:3.11"
|
|
39
|
+
- name: "python:3.11-slim"
|
|
40
40
|
id: integration-tests
|
|
41
41
|
entrypoint: /bin/bash
|
|
42
42
|
args:
|
|
@@ -33,7 +33,7 @@ resource "google_cloudbuild_trigger" "pr_checks" {
|
|
|
33
33
|
"data_ingestion/**",
|
|
34
34
|
"tests/**",
|
|
35
35
|
"deployment/**",
|
|
36
|
-
"
|
|
36
|
+
"uv.lock",
|
|
37
37
|
{%- if cookiecutter.data_ingestion %}
|
|
38
38
|
"data_ingestion/**",
|
|
39
39
|
{%- endif %}
|
|
@@ -62,7 +62,7 @@ resource "google_cloudbuild_trigger" "cd_pipeline" {
|
|
|
62
62
|
"data_ingestion/**",
|
|
63
63
|
"tests/**",
|
|
64
64
|
"deployment/**",
|
|
65
|
-
"
|
|
65
|
+
"uv.lock"
|
|
66
66
|
]
|
|
67
67
|
substitutions = {
|
|
68
68
|
_STAGING_PROJECT_ID = var.staging_project_id
|