agent-starter-pack 0.11.2__tar.gz → 0.12.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.
- agent_starter_pack-0.12.0/.claude/settings.local.json +10 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/.cloudbuild/ci/lint.yaml +1 -1
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/.cloudbuild/ci/test_templated_agents.yaml +1 -1
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/.cloudbuild/terraform/build_triggers.tf +3 -3
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/Makefile +1 -1
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/PKG-INFO +1 -1
- agent_starter_pack-0.12.0/agents/adk_base/app/__init__.py +17 -0
- {agent_starter_pack-0.11.2/agents/agentic_rag → agent_starter_pack-0.12.0/agents/adk_base}/notebooks/adk_app_testing.ipynb +4 -1
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/agents/adk_base/tests/integration/test_agent.py +1 -1
- agent_starter_pack-0.12.0/agents/agentic_rag/app/__init__.py +17 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/agents/agentic_rag/app/agent.py +2 -2
- {agent_starter_pack-0.11.2/agents/adk_base → agent_starter_pack-0.12.0/agents/agentic_rag}/notebooks/adk_app_testing.ipynb +4 -1
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/agents/agentic_rag/tests/integration/test_agent.py +2 -2
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/agents/crewai_coding_crew/tests/integration/test_agent.py +1 -1
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/agents/langgraph_base_react/tests/integration/test_agent.py +1 -1
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/agents/live_api/tests/unit/test_server.py +6 -6
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/docs/cli/create.md +6 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/docs/guide/development-guide.md +31 -12
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/docs/guide/getting-started.md +1 -1
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/docs/guide/template-config-reference.md +10 -2
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/docs/remote-templates/creating-remote-templates.md +23 -1
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/llm.txt +15 -4
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/pyproject.toml +6 -5
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/base_template/Makefile +5 -5
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/base_template/README.md +4 -4
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}build_triggers.tf{% else %}unused_build_triggers.tf{% endif %} +2 -2
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/base_template/pyproject.toml +2 -2
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/base_template/{% if cookiecutter.cicd_runner == 'github_actions' %}.github{% else %}unused_github{% endif %}/workflows/deploy-to-prod.yaml +1 -1
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/base_template/{% if cookiecutter.cicd_runner == 'github_actions' %}.github{% else %}unused_github{% endif %}/workflows/pr_checks.yaml +1 -1
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/base_template/{% if cookiecutter.cicd_runner == 'github_actions' %}.github{% else %}unused_github{% endif %}/workflows/staging.yaml +2 -2
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/base_template/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}.cloudbuild{% else %}unused_.cloudbuild{% endif %}/deploy-to-prod.yaml +1 -1
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/base_template/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}.cloudbuild{% else %}unused_.cloudbuild{% endif %}/staging.yaml +1 -1
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/cli/commands/create.py +25 -2
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/cli/commands/enhance.py +94 -15
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/cli/utils/template.py +120 -41
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/deployment_targets/agent_engine/tests/integration/test_agent_engine_app.py +3 -3
- {agent_starter_pack-0.11.2/src/deployment_targets/agent_engine/app → agent_starter_pack-0.12.0/src/deployment_targets/agent_engine/{{cookiecutter.agent_directory}}}/agent_engine_app.py +10 -10
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/deployment_targets/cloud_run/Dockerfile +2 -2
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/deployment_targets/cloud_run/tests/integration/test_server_e2e.py +3 -3
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/deployment_targets/cloud_run/tests/load_test/README.md +1 -1
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/deployment_targets/cloud_run/tests/load_test/load_test.py +2 -2
- {agent_starter_pack-0.11.2/agents/live_api/app → agent_starter_pack-0.12.0/src/deployment_targets/cloud_run/{{cookiecutter.agent_directory}}}/server.py +186 -7
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/resources/docs/adk-cheatsheet.md +3 -3
- agent_starter_pack-0.12.0/tests/cicd/scripts/delete_alloydb_clusters.py +399 -0
- agent_starter_pack-0.12.0/tests/cicd/scripts/delete_vector_search.py +400 -0
- agent_starter_pack-0.12.0/tests/cli/commands/test_enhance.py +282 -0
- agent_starter_pack-0.12.0/tests/integration/test_agent_directory_functionality.py +447 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/uv.lock +1 -1
- agent_starter_pack-0.11.2/.claude/settings.local.json +0 -21
- agent_starter_pack-0.11.2/src/base_template/app/__init__.py +0 -3
- agent_starter_pack-0.11.2/src/deployment_targets/cloud_run/app/server.py +0 -206
- agent_starter_pack-0.11.2/src/frontends/adk_gemini_fullstack/frontend/components.json +0 -21
- agent_starter_pack-0.11.2/src/frontends/adk_gemini_fullstack/frontend/eslint.config.js +0 -28
- agent_starter_pack-0.11.2/src/frontends/adk_gemini_fullstack/frontend/index.html +0 -12
- agent_starter_pack-0.11.2/src/frontends/adk_gemini_fullstack/frontend/package-lock.json +0 -6105
- agent_starter_pack-0.11.2/src/frontends/adk_gemini_fullstack/frontend/package.json +0 -47
- agent_starter_pack-0.11.2/src/frontends/adk_gemini_fullstack/frontend/src/App.tsx +0 -564
- agent_starter_pack-0.11.2/src/frontends/adk_gemini_fullstack/frontend/src/components/ActivityTimeline.tsx +0 -244
- agent_starter_pack-0.11.2/src/frontends/adk_gemini_fullstack/frontend/src/components/ChatMessagesView.tsx +0 -420
- agent_starter_pack-0.11.2/src/frontends/adk_gemini_fullstack/frontend/src/components/InputForm.tsx +0 -60
- agent_starter_pack-0.11.2/src/frontends/adk_gemini_fullstack/frontend/src/components/WelcomeScreen.tsx +0 -56
- agent_starter_pack-0.11.2/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/badge.tsx +0 -46
- agent_starter_pack-0.11.2/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/button.tsx +0 -59
- agent_starter_pack-0.11.2/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/card.tsx +0 -92
- agent_starter_pack-0.11.2/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/input.tsx +0 -21
- agent_starter_pack-0.11.2/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/scroll-area.tsx +0 -56
- agent_starter_pack-0.11.2/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/select.tsx +0 -183
- agent_starter_pack-0.11.2/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/tabs.tsx +0 -64
- agent_starter_pack-0.11.2/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/textarea.tsx +0 -18
- agent_starter_pack-0.11.2/src/frontends/adk_gemini_fullstack/frontend/src/global.css +0 -154
- agent_starter_pack-0.11.2/src/frontends/adk_gemini_fullstack/frontend/src/main.tsx +0 -13
- agent_starter_pack-0.11.2/src/frontends/adk_gemini_fullstack/frontend/src/utils.ts +0 -7
- agent_starter_pack-0.11.2/src/frontends/adk_gemini_fullstack/frontend/src/vite-env.d.ts +0 -1
- agent_starter_pack-0.11.2/src/frontends/adk_gemini_fullstack/frontend/tsconfig.json +0 -28
- agent_starter_pack-0.11.2/src/frontends/adk_gemini_fullstack/frontend/tsconfig.node.json +0 -24
- agent_starter_pack-0.11.2/src/frontends/adk_gemini_fullstack/frontend/vite.config.ts +0 -41
- agent_starter_pack-0.11.2/tests/cli/commands/test_enhance.py +0 -142
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/.cloudbuild/cd/test_e2e.yaml +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/.cloudbuild/ci/build_use_wheel.yaml +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/.cloudbuild/ci/lint_templated_agents.yaml +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/.cloudbuild/ci/test.yaml +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/.cloudbuild/ci/test_makefile.yaml +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/.cloudbuild/ci/test_pipeline_parity.yaml +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/.cloudbuild/ci/test_remote_template.yaml +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/.cloudbuild/terraform/apis.tf +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/.cloudbuild/terraform/service_account.tf +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/.cloudbuild/terraform/storage.tf +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/.cloudbuild/terraform/variables.tf +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/.github/workflows/docs.yml +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/.gitignore +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/CLAUDE.md +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/CODE_OF_CONDUCT.md +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/CONTRIBUTING.md +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/GEMINI.md +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/LICENSE +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/README.md +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/agents/README.md +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/agents/adk_base/.template/templateconfig.yaml +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/agents/adk_base/README.md +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/agents/adk_base/app/agent.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/agents/adk_base/notebooks/evaluating_adk_agent.ipynb +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/agents/agentic_rag/.template/templateconfig.yaml +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/agents/agentic_rag/README.md +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/agents/agentic_rag/app/retrievers.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/agents/agentic_rag/app/templates.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/agents/agentic_rag/notebooks/evaluating_adk_agent.ipynb +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/agents/crewai_coding_crew/.template/templateconfig.yaml +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/agents/crewai_coding_crew/README.md +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/agents/crewai_coding_crew/app/agent.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/agents/crewai_coding_crew/app/crew/config/agents.yaml +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/agents/crewai_coding_crew/app/crew/config/tasks.yaml +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/agents/crewai_coding_crew/app/crew/crew.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/agents/crewai_coding_crew/notebooks/evaluating_crewai_agent.ipynb +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/agents/crewai_coding_crew/notebooks/evaluating_langgraph_agent.ipynb +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/agents/langgraph_base_react/.template/templateconfig.yaml +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/agents/langgraph_base_react/README.md +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/agents/langgraph_base_react/app/agent.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/agents/langgraph_base_react/notebooks/evaluating_langgraph_agent.ipynb +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/agents/live_api/.template/templateconfig.yaml +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/agents/live_api/README.md +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/agents/live_api/app/agent.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/agents/live_api/tests/integration/test_server_e2e.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/agents/live_api/tests/load_test/load_test.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/docs/.vitepress/config.js +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/docs/agents/overview.md +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/docs/cli/enhance.md +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/docs/cli/index.md +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/docs/cli/list.md +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/docs/cli/setup_cicd.md +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/docs/guide/data-ingestion.md +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/docs/guide/deploy-ui.md +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/docs/guide/deployment.md +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/docs/guide/installation.md +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/docs/guide/observability.md +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/docs/guide/troubleshooting.md +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/docs/guide/video-tutorials.md +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/docs/guide/why_starter_pack.md +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/docs/images/adk_gemini_fullstack.gif +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/docs/images/adk_gemini_fullstack_architecture.png +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/docs/images/adk_logo.png +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/docs/images/agent_starter_pack_screenshot.png +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/docs/images/ags_high_level_architecture.png +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/docs/images/icon.png +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/docs/images/logo.png +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/docs/images/prototype_to_prod.png +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/docs/images/why_sp_edited.png +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/docs/images/why_starter_pack.png +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/docs/index.md +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/docs/package-lock.json +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/docs/package.json +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/docs/remote-templates/index.md +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/docs/remote-templates/using-remote-templates.md +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/base_template/.gitignore +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/base_template/GEMINI.md +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/base_template/deployment/README.md +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/apis.tf +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/dev/apis.tf +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/dev/iam.tf +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/dev/log_sinks.tf +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/dev/providers.tf +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/dev/storage.tf +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/dev/variables.tf +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/dev/vars/env.tfvars +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/github.tf +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/iam.tf +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/locals.tf +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/log_sinks.tf +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/providers.tf +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/service_accounts.tf +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/storage.tf +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/variables.tf +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/vars/env.tfvars +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/base_template/deployment/terraform/{% if cookiecutter.cicd_runner == 'github_actions' %}wif.tf{% else %}unused_wif.tf{% endif %} +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/base_template/tests/unit/test_dummy.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/base_template/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}.cloudbuild{% else %}unused_.cloudbuild{% endif %}/pr_checks.yaml +0 -0
- {agent_starter_pack-0.11.2/src/base_template/app → agent_starter_pack-0.12.0/src/base_template/{{cookiecutter.agent_directory}}}/utils/gcs.py +0 -0
- {agent_starter_pack-0.11.2/src/base_template/app → agent_starter_pack-0.12.0/src/base_template/{{cookiecutter.agent_directory}}}/utils/tracing.py +0 -0
- {agent_starter_pack-0.11.2/src/base_template/app → agent_starter_pack-0.12.0/src/base_template/{{cookiecutter.agent_directory}}}/utils/typing.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/cli/commands/list.py +1 -1
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/cli/commands/setup_cicd.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/cli/main.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/cli/utils/__init__.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/cli/utils/cicd.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/cli/utils/datastores.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/cli/utils/gcp.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/cli/utils/logging.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/cli/utils/remote_template.py +1 -1
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/cli/utils/version.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/data_ingestion/README.md +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/data_ingestion/data_ingestion_pipeline/components/ingest_data.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/data_ingestion/data_ingestion_pipeline/components/process_data.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/data_ingestion/data_ingestion_pipeline/pipeline.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/data_ingestion/data_ingestion_pipeline/submit_pipeline.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/data_ingestion/pyproject.toml +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/data_ingestion/uv.lock +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/deployment_targets/agent_engine/deployment_metadata.json +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/deployment_targets/agent_engine/notebooks/intro_agent_engine.ipynb +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/deployment_targets/agent_engine/tests/load_test/.results/.placeholder +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/deployment_targets/agent_engine/tests/load_test/README.md +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/deployment_targets/agent_engine/tests/load_test/load_test.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/deployment_targets/cloud_run/deployment/terraform/dev/service.tf +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/deployment_targets/cloud_run/deployment/terraform/service.tf +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/deployment_targets/cloud_run/tests/load_test/.results/.placeholder +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/package-lock.json +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/package.json +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/public/favicon.ico +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/public/index.html +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/public/robots.txt +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/App.scss +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/App.test.tsx +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/App.tsx +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/components/audio-pulse/AudioPulse.tsx +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/components/audio-pulse/audio-pulse.scss +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/components/control-tray/ControlTray.tsx +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/components/control-tray/control-tray.scss +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/components/logger/Logger.tsx +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/components/logger/logger.scss +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/components/logger/mock-logs.ts +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/components/side-panel/SidePanel.tsx +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/components/side-panel/side-panel.scss +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/contexts/LiveAPIContext.tsx +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/hooks/use-live-api.ts +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/hooks/use-media-stream-mux.ts +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/hooks/use-screen-capture.ts +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/hooks/use-webcam.ts +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/index.css +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/index.tsx +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/multimodal-live-types.ts +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/react-app-env.d.ts +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/reportWebVitals.ts +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/setupTests.ts +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/utils/audio-recorder.ts +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/utils/audio-streamer.ts +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/utils/audioworklet-registry.ts +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/utils/multimodal-live-client.ts +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/utils/store-logger.ts +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/utils/utils.ts +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/utils/worklets/audio-processing.ts +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/src/utils/worklets/vol-meter.ts +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/live_api_react/frontend/tsconfig.json +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/streamlit/frontend/side_bar.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/streamlit/frontend/streamlit_app.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/streamlit/frontend/style/app_markdown.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/streamlit/frontend/utils/chat_utils.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/streamlit/frontend/utils/local_chat_history.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/streamlit/frontend/utils/message_editing.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/streamlit/frontend/utils/multimodal_utils.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/streamlit/frontend/utils/stream_handler.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/frontends/streamlit/frontend/utils/title_summary.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/resources/containers/data_processing/Dockerfile +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/resources/containers/e2e-tests/Dockerfile +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/resources/idx/.idx/dev.nix +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/resources/idx/idx-template.json +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/resources/idx/idx-template.nix +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/resources/locks/uv-adk_base-agent_engine.lock +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/resources/locks/uv-adk_base-cloud_run.lock +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/resources/locks/uv-adk_gemini_fullstack-agent_engine.lock +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/resources/locks/uv-adk_gemini_fullstack-cloud_run.lock +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/resources/locks/uv-agentic_rag-agent_engine.lock +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/resources/locks/uv-agentic_rag-cloud_run.lock +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/resources/locks/uv-crewai_coding_crew-agent_engine.lock +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/resources/locks/uv-crewai_coding_crew-cloud_run.lock +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/resources/locks/uv-langgraph_base_react-agent_engine.lock +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/resources/locks/uv-langgraph_base_react-cloud_run.lock +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/resources/locks/uv-live_api-cloud_run.lock +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/utils/generate_locks.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/utils/lock_utils.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/src/utils/watch_and_rebuild.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/tests/__init__.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/tests/cicd/example.env +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/tests/cicd/scripts/delete_agent_engines.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/tests/cicd/test_e2e_deployment.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/tests/cli/commands/test_create.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/tests/cli/commands/test_create_local.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/tests/cli/commands/test_list.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/tests/cli/commands/test_setup_cicd.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/tests/cli/utils/test_cicd.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/tests/cli/utils/test_remote_template.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/tests/integration/test_makefile_usability.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/tests/integration/test_pipeline_parity.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/tests/integration/test_remote_templating.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/tests/integration/test_template_linting.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/tests/integration/test_templated_patterns.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/tests/integration/utils.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/tests/test_frontend/test_side_bar.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/tests/test_frontend/test_streamlit_app.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/tests/test_frontend/test_utils/test_chat_utils.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/tests/test_frontend/test_utils/test_local_chat_history.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/tests/test_frontend/test_utils/test_message_editing.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/tests/test_frontend/test_utils/test_multimodal_utils.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/tests/test_frontend/test_utils/test_stream_handler.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/tests/utils/__init__.py +0 -0
- {agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/tests/utils/get_agents.py +0 -0
@@ -32,7 +32,7 @@ steps:
|
|
32
32
|
set -e
|
33
33
|
uv run ruff check . --config pyproject.toml --diff
|
34
34
|
uv run ruff format . --check --config pyproject.toml --diff
|
35
|
-
uv run mypy --config-file pyproject.toml ./
|
35
|
+
uv run mypy --config-file pyproject.toml ./src/cli ./tests ./src/frontends/streamlit
|
36
36
|
|
37
37
|
logsBucket: gs://${PROJECT_ID}-logs-data/build-logs
|
38
38
|
options:
|
{agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/.cloudbuild/terraform/build_triggers.tf
RENAMED
@@ -72,7 +72,7 @@ locals {
|
|
72
72
|
},
|
73
73
|
{
|
74
74
|
name = "langgraph_base_react-cloud_run"
|
75
|
-
value = "langgraph_base_react,cloud_run"
|
75
|
+
value = "langgraph_base_react,cloud_run,-dir,tag"
|
76
76
|
},
|
77
77
|
{
|
78
78
|
name = "crewai_coding_crew-agent_engine"
|
@@ -134,11 +134,11 @@ agent_testing_included_files = { for combo in local.agent_testing_combinations :
|
|
134
134
|
},
|
135
135
|
{
|
136
136
|
name = "adk_base-agent_engine"
|
137
|
-
value = "adk_base,agent_engine"
|
137
|
+
value = "adk_base,agent_engine,-dir,tag"
|
138
138
|
},
|
139
139
|
{
|
140
140
|
name = "adk_base-cloud_run"
|
141
|
-
value = "adk_base,cloud_run"
|
141
|
+
value = "adk_base,cloud_run,-dir,tag"
|
142
142
|
},
|
143
143
|
{
|
144
144
|
name = "langgraph_base_react-agent_engine"
|
@@ -13,7 +13,7 @@ generate-lock:
|
|
13
13
|
lint:
|
14
14
|
uv run ruff check . --config pyproject.toml --diff
|
15
15
|
uv run ruff format . --check --config pyproject.toml --diff
|
16
|
-
uv run mypy --config-file pyproject.toml ./
|
16
|
+
uv run mypy --config-file pyproject.toml ./src/cli ./tests ./src/frontends/streamlit
|
17
17
|
|
18
18
|
lint-templated-agents:
|
19
19
|
uv run tests/integration/test_template_linting.py
|
@@ -0,0 +1,17 @@
|
|
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
|
+
from .agent import root_agent
|
16
|
+
|
17
|
+
__all__ = ["root_agent"]
|
@@ -9,7 +9,10 @@
|
|
9
9
|
"This notebook demonstrates how to test an ADK (Agent Development Kit) application.\n",
|
10
10
|
"It covers both local and remote testing, both with Agent Engine and Cloud Run.\n",
|
11
11
|
"\n",
|
12
|
-
"
|
12
|
+
"> **Note**: This notebook assumes that the agent files are stored in the `app` folder. If your agent files are located in a different directory, please update all relevant file paths and references accordingly.\n",
|
13
|
+
"\n",
|
14
|
+
"<img src=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/blob/main/docs/images/adk_logo.png?raw=true\" width=\"400\">\n",
|
15
|
+
"\n"
|
13
16
|
]
|
14
17
|
},
|
15
18
|
{
|
@@ -18,7 +18,7 @@ from google.adk.runners import Runner
|
|
18
18
|
from google.adk.sessions import InMemorySessionService
|
19
19
|
from google.genai import types
|
20
20
|
|
21
|
-
from
|
21
|
+
from {{cookiecutter.agent_directory}}.agent import root_agent
|
22
22
|
|
23
23
|
|
24
24
|
def test_agent_stream() -> None:
|
@@ -0,0 +1,17 @@
|
|
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
|
+
from .agent import root_agent
|
16
|
+
|
17
|
+
__all__ = ["root_agent"]
|
@@ -20,8 +20,8 @@ import vertexai
|
|
20
20
|
from google.adk.agents import Agent
|
21
21
|
from langchain_google_vertexai import VertexAIEmbeddings
|
22
22
|
|
23
|
-
from
|
24
|
-
from
|
23
|
+
from {{cookiecutter.agent_directory}}.retrievers import get_compressor, get_retriever
|
24
|
+
from {{cookiecutter.agent_directory}}.templates import format_docs
|
25
25
|
|
26
26
|
EMBEDDING_MODEL = "text-embedding-005"
|
27
27
|
LLM_LOCATION = "global"
|
@@ -9,7 +9,10 @@
|
|
9
9
|
"This notebook demonstrates how to test an ADK (Agent Development Kit) application.\n",
|
10
10
|
"It covers both local and remote testing, both with Agent Engine and Cloud Run.\n",
|
11
11
|
"\n",
|
12
|
-
"
|
12
|
+
"> **Note**: This notebook assumes that the agent files are stored in the `app` folder. If your agent files are located in a different directory, please update all relevant file paths and references accordingly.\n",
|
13
|
+
"\n",
|
14
|
+
"<img src=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/blob/main/docs/images/adk_logo.png?raw=true\" width=\"400\">\n",
|
15
|
+
"\n"
|
13
16
|
]
|
14
17
|
},
|
15
18
|
{
|
@@ -20,11 +20,11 @@ from google.adk.runners import Runner
|
|
20
20
|
from google.adk.sessions import InMemorySessionService
|
21
21
|
from google.genai import types
|
22
22
|
|
23
|
-
from
|
23
|
+
from {{cookiecutter.agent_directory}}.agent import root_agent
|
24
24
|
|
25
25
|
|
26
26
|
@patch(
|
27
|
-
"
|
27
|
+
"{{cookiecutter.agent_directory}}.agent.retrieve_docs",
|
28
28
|
return_value="dummy content",
|
29
29
|
)
|
30
30
|
def test_agent_stream(mock_retrieve: MagicMock) -> None:
|
{agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/agents/live_api/tests/unit/test_server.py
RENAMED
@@ -57,8 +57,8 @@ def mock_dependencies() -> Generator[None, None, None]:
|
|
57
57
|
Patches genai client and tool functions.
|
58
58
|
"""
|
59
59
|
with (
|
60
|
-
patch("
|
61
|
-
patch("
|
60
|
+
patch("{{cookiecutter.agent_directory}}.server.genai_client") as mock_genai,
|
61
|
+
patch("{{cookiecutter.agent_directory}}.server.tool_functions") as mock_tools,
|
62
62
|
):
|
63
63
|
mock_genai.aio.live.connect = AsyncMock()
|
64
64
|
mock_tools.return_value = {}
|
@@ -71,7 +71,7 @@ async def test_websocket_endpoint() -> None:
|
|
71
71
|
Test the websocket endpoint to ensure it correctly handles
|
72
72
|
websocket connections and messages.
|
73
73
|
"""
|
74
|
-
from
|
74
|
+
from {{cookiecutter.agent_directory}}.server import app
|
75
75
|
|
76
76
|
mock_session = AsyncMock()
|
77
77
|
mock_session._ws = AsyncMock()
|
@@ -90,7 +90,7 @@ async def test_websocket_endpoint() -> None:
|
|
90
90
|
None, # Add None to trigger StopAsyncIteration after first message
|
91
91
|
]
|
92
92
|
|
93
|
-
with patch("
|
93
|
+
with patch("{{cookiecutter.agent_directory}}.server.genai_client") as mock_genai:
|
94
94
|
mock_genai.aio.live.connect.return_value.__aenter__.return_value = mock_session
|
95
95
|
client = TestClient(app)
|
96
96
|
with client.websocket_connect("/ws") as websocket:
|
@@ -132,9 +132,9 @@ async def test_websocket_endpoint() -> None:
|
|
132
132
|
@pytest.mark.asyncio
|
133
133
|
def test_websocket_error_handling() -> None:
|
134
134
|
"""Test websocket error handling."""
|
135
|
-
from
|
135
|
+
from {{cookiecutter.agent_directory}}.server import app
|
136
136
|
|
137
|
-
with patch("
|
137
|
+
with patch("{{cookiecutter.agent_directory}}.server.genai_client") as mock_genai:
|
138
138
|
mock_genai.aio.live.connect.side_effect = Exception("Connection failed")
|
139
139
|
|
140
140
|
client = TestClient(app)
|
@@ -78,6 +78,9 @@ Session storage type (for Cloud Run deployment):
|
|
78
78
|
### `--output-dir`, `-o` DIRECTORY
|
79
79
|
Output directory for the project (default: current directory)
|
80
80
|
|
81
|
+
### `--agent-directory`, `-dir` DIRECTORY
|
82
|
+
Name of the agent directory (overrides template default, usually `app`). This determines where your agent code files will be located within the project structure.
|
83
|
+
|
81
84
|
### `--in-folder`
|
82
85
|
Create agent files directly in the current directory instead of creating a new project subdirectory.
|
83
86
|
|
@@ -151,6 +154,9 @@ uvx agent-starter-pack create my-agent -a template-url --region europe-west1 --c
|
|
151
154
|
# In-folder creation (add to existing project)
|
152
155
|
uvx agent-starter-pack create my-agent -a adk@data-science --in-folder
|
153
156
|
|
157
|
+
# Customize agent directory name
|
158
|
+
uvx agent-starter-pack create my-agent -a adk_base --agent-directory chatbot
|
159
|
+
|
154
160
|
# Skip all prompts for automation
|
155
161
|
uvx agent-starter-pack create my-agent -a template-url --auto-approve --skip-checks
|
156
162
|
```
|
@@ -38,7 +38,7 @@ cd my-awesome-agent
|
|
38
38
|
|
39
39
|
Inside, you'll find a complete project structure:
|
40
40
|
|
41
|
-
* `app/`: Backend agent code (prompts, tools, business logic).
|
41
|
+
* `app/`: Backend agent code (prompts, tools, business logic). Directory name is configurable via the `--agent-directory` parameter.
|
42
42
|
* `.cloudbuild/`: CI/CD pipeline configurations for Google Cloud Build (if you selected Cloud Build as your CI/CD runner).
|
43
43
|
* `.github/`: CI/CD pipeline configurations for GitHub Actions (if you selected GitHub Actions as your CI/CD runner).
|
44
44
|
* `deployment/`: Terraform infrastructure-as-code files.
|
@@ -51,7 +51,7 @@ Inside, you'll find a complete project structure:
|
|
51
51
|
Your development loop will look like this:
|
52
52
|
|
53
53
|
1. **Prototype:** Use the notebooks in `notebooks/` for rapid experimentation with your agent's core logic. This is ideal for trying new prompts or tools before integrating them.
|
54
|
-
2. **Integrate:** Edit `app/agent.py` and other files in the `app
|
54
|
+
2. **Integrate:** Edit `app/agent.py` and other files in the agent directory (usually `app/`, but configurable) to incorporate your new logic into the main application.
|
55
55
|
3. **Test:** Run the interactive UI playground to test your changes. It features hot-reloading, chat history, and user feedback.
|
56
56
|
|
57
57
|
```bash
|
@@ -62,28 +62,46 @@ make install && make playground
|
|
62
62
|
|
63
63
|
## 2. Deploy to the Cloud
|
64
64
|
|
65
|
-
Once you're satisfied with local testing, you are ready to deploy your agent to Google Cloud.
|
65
|
+
Once you're satisfied with local testing, you are ready to deploy your agent to Google Cloud. The process involves two main stages: first, deploying to a hands-on development environment for quick iteration, and second, setting up a formal CI/CD pipeline for staging and production.
|
66
|
+
|
66
67
|
*All `make` commands should be run from the root of your agent project (`my-awesome-agent`).*
|
67
|
-
|
68
|
-
|
68
|
+
|
69
|
+
### Stage 1: Deploy to a Cloud Development Environment
|
70
|
+
|
71
|
+
This initial stage is for provisioning a non-production environment in the cloud for remote testing and iteration.
|
72
|
+
|
69
73
|
**i. Set Google Cloud Project**
|
74
|
+
|
70
75
|
Configure `gcloud` to target your development project.
|
71
76
|
```bash
|
72
77
|
# Replace YOUR_DEV_PROJECT_ID with your actual Google Cloud Project ID
|
73
78
|
gcloud config set project YOUR_DEV_PROJECT_ID
|
74
79
|
```
|
80
|
+
|
75
81
|
**ii. Provision Cloud Resources**
|
76
|
-
|
82
|
+
|
83
|
+
This command uses Terraform to set up the necessary cloud resources for your dev environment.
|
84
|
+
|
85
|
+
::: tip Optional Step
|
86
|
+
This step is recommended to create a development environment that closely mirrors production (including dedicated service accounts and IAM permissions). However, for simple deployments, you can consider this step optional and proceed directly to deploying the backend if you have sufficient permissions.
|
87
|
+
:::
|
88
|
+
|
77
89
|
```bash
|
78
90
|
make setup-dev-env
|
79
91
|
```
|
92
|
+
|
80
93
|
**iii. Deploy Agent Backend**
|
94
|
+
|
81
95
|
Build and deploy your agent's backend to the dev environment.
|
82
96
|
```bash
|
83
97
|
make backend
|
84
98
|
```
|
85
99
|
|
86
|
-
###
|
100
|
+
### Stage 2: Set Up the Path to Production with CI/CD
|
101
|
+
|
102
|
+
Once you've refined your agent in the development environment, the next stage is to set up a fully automated CI/CD pipeline for seamless deployment through staging and into production.
|
103
|
+
|
104
|
+
#### Option 1: Automated CI/CD Setup
|
87
105
|
|
88
106
|
From the root of your agent project (`my-awesome-agent`), run:
|
89
107
|
```bash
|
@@ -92,17 +110,18 @@ agent-starter-pack setup-cicd
|
|
92
110
|
This single command handles everything:
|
93
111
|
- Creates a GitHub repository.
|
94
112
|
- Connects it to your chosen CI/CD provider (Google Cloud Build or GitHub Actions).
|
95
|
-
- Provisions all necessary infrastructure for your staging and production environments using Terraform.
|
113
|
+
- Provisions all necessary infrastructure for your **staging and production environments** using Terraform.
|
96
114
|
- Configures the deployment triggers.
|
97
115
|
|
98
116
|
For a detailed walkthrough, see the [**`setup-cicd` CLI reference**](../cli/setup_cicd).
|
99
117
|
|
100
|
-
|
118
|
+
#### Option 2: Manual CI/CD Setup
|
119
|
+
|
120
|
+
For full control or for use with other Git providers, refer to the [manual deployment setup guide](./deployment.md).
|
101
121
|
|
102
|
-
|
122
|
+
#### Trigger Your First Deployment
|
103
123
|
|
104
|
-
|
105
|
-
After the CI/CD setup is complete, commit and push your code to trigger the pipeline.
|
124
|
+
After the CI/CD setup is complete, commit and push your code to trigger the pipeline. This will deploy your agent to the staging environment first.
|
106
125
|
```bash
|
107
126
|
git add -A
|
108
127
|
git config --global user.email "you@example.com" # If not already configured
|
@@ -55,7 +55,7 @@ cd my-awesome-agent && make install && make playground
|
|
55
55
|
|
56
56
|
Inside your new project directory (`my-awesome-agent`), you'll find:
|
57
57
|
|
58
|
-
* `app/`: Backend agent code.
|
58
|
+
* `app/`: Backend agent code (or custom directory name if configured).
|
59
59
|
* `deployment/`: Terraform infrastructure code.
|
60
60
|
* `tests/`: Unit and integration tests for your agent.
|
61
61
|
* `notebooks/`: Jupyter notebooks for getting started with evaluation.
|
{agent_starter_pack-0.11.2 → agent_starter_pack-0.12.0}/docs/guide/template-config-reference.md
RENAMED
@@ -1,6 +1,13 @@
|
|
1
|
-
#
|
1
|
+
# Template Configuration Reference
|
2
2
|
|
3
|
-
This document provides a detailed reference for
|
3
|
+
This document provides a detailed reference for template configuration options.
|
4
|
+
|
5
|
+
## Configuration Files
|
6
|
+
|
7
|
+
- **Built-in templates**: Use `templateconfig.yaml` files
|
8
|
+
- **Remote templates**: Configure settings in `pyproject.toml` under the `[tool.agent-starter-pack.settings]` section
|
9
|
+
|
10
|
+
The configuration fields are the same for both types of templates.
|
4
11
|
|
5
12
|
## Top-Level Fields
|
6
13
|
|
@@ -21,6 +28,7 @@ This object contains fields that control the generated project's features and be
|
|
21
28
|
| `deployment_targets` | list(string) | A list of deployment targets your template supports. Options: `agent_engine`, `cloud_run`. |
|
22
29
|
| `tags` | list(string) | A list of tags for categorization. The `adk` tag enables special integrations with the Agent Development Kit. |
|
23
30
|
| `frontend_type` | string | Specifies the frontend to use. Examples: `streamlit`, `live_api_react`. Defaults to `streamlit`. |
|
31
|
+
| `agent_directory` | string | The name of the directory where agent code will be placed. Defaults to `app`. Can be overridden by the CLI `--agent-directory` parameter. |
|
24
32
|
| `requires_data_ingestion` | boolean | If `true`, the user will be prompted to configure a datastore. |
|
25
33
|
| `requires_session` | boolean | If `true`, the user will be prompted to choose a session storage type (e.g., `alloydb`) when using the `cloud_run` target. |
|
26
34
|
| `interactive_command` | string | The `make` command to run for starting the agent, after the agent code is being created (e.g., `make playground`, `make dev`). Defaults to `playground`. |
|
@@ -61,6 +61,9 @@ description = "A simple template that demonstrates custom greetings"
|
|
61
61
|
[tool.agent-starter-pack.settings]
|
62
62
|
# This template will only support the 'agent_engine' deployment target
|
63
63
|
deployment_targets = ["agent_engine"]
|
64
|
+
# Optional: Customize the directory name for agent files (default: "app")
|
65
|
+
agent_directory = "app"
|
66
|
+
|
64
67
|
```
|
65
68
|
|
66
69
|
### Step 3: Create Your Custom Agent Logic
|
@@ -150,6 +153,8 @@ description = "Custom description" # Optional: falls back to [project].descript
|
|
150
153
|
[tool.agent-starter-pack.settings]
|
151
154
|
deployment_targets = ["cloud_run", "agent_engine"]
|
152
155
|
frontend_type = "adk_streamlit"
|
156
|
+
# Optional: Customize the directory name for agent files (default: "app")
|
157
|
+
agent_directory = "app"
|
153
158
|
```
|
154
159
|
|
155
160
|
## Configuration Reference
|
@@ -174,8 +179,25 @@ base_template = "adk_base" # Override default
|
|
174
179
|
# name and description will use [project] values
|
175
180
|
```
|
176
181
|
|
182
|
+
### Agent Directory Configuration
|
183
|
+
|
184
|
+
By default, agent files are expected to be in an `app/` directory. You can customize this using the `agent_directory` setting:
|
185
|
+
|
186
|
+
```toml
|
187
|
+
[tool.agent-starter-pack.settings]
|
188
|
+
agent_directory = "my_agent" # Custom directory name
|
189
|
+
```
|
190
|
+
|
191
|
+
This is useful when:
|
192
|
+
- You want to use a different directory name for consistency with your project structure
|
193
|
+
- You're creating specialized templates with domain-specific naming (e.g., `chatbot/`, `assistant/`, `agent/`)
|
194
|
+
- You need to avoid conflicts with existing codebases that use `app/` for other purposes
|
195
|
+
|
196
|
+
**Important:** When using a custom `agent_directory`, ensure your Python imports and Docker configurations match the new directory name.
|
197
|
+
|
177
198
|
For complete configuration options, see the [Template Config Reference](../guide/template-config-reference.md).
|
178
199
|
|
200
|
+
|
179
201
|
## How File Merging Works
|
180
202
|
|
181
203
|
When someone uses your template, files are copied and overlaid in this order (later steps overwrite earlier ones):
|
@@ -271,7 +293,7 @@ uvx agent-starter-pack create test-project -a local@./your-template --deployment
|
|
271
293
|
|
272
294
|
Before publishing, verify:
|
273
295
|
- [ ] `pyproject.toml` has all required dependencies
|
274
|
-
- [ ] Agent code is in `/app`
|
296
|
+
- [ ] Agent code is in appropriate directory structure (usually `/app` or configured `agent_directory`)
|
275
297
|
- [ ] `uv lock` generates without errors
|
276
298
|
- [ ] Local testing creates working agent
|
277
299
|
- [ ] README documents usage and requirements
|
@@ -74,6 +74,10 @@ agent-starter-pack create PROJECT_NAME [OPTIONS]
|
|
74
74
|
* `--region`: GCP region (e.g., `us-central1`).
|
75
75
|
* `--auto-approve`: **Skips all interactive prompts (crucial for automation).**
|
76
76
|
* `--debug`: Enables debug logging during creation.
|
77
|
+
* `--agent-directory, -dir`: Name of the agent directory (overrides template default).
|
78
|
+
* `-o, --output-dir`: Output directory for the project (default: current directory).
|
79
|
+
* `--in-folder, -if`: Template files directly into the current directory instead of creating a new project directory.
|
80
|
+
* `--skip-checks`: Skip verification checks for GCP and Vertex AI.
|
77
81
|
|
78
82
|
**Automated Creation Example:**
|
79
83
|
```bash
|
@@ -196,7 +200,7 @@ For stateful agents, the starter pack supports persistent sessions.
|
|
196
200
|
|
197
201
|
### Monitoring & Observability
|
198
202
|
* **Technology:** Uses OpenTelemetry to emit events to Google Cloud Trace and Logging.
|
199
|
-
* **Custom Tracer:** A custom tracer in `app/utils/tracing.py` handles large payloads by linking to GCS, overcoming default service limits.
|
203
|
+
* **Custom Tracer:** A custom tracer in `app/utils/tracing.py` (or a different agent directory instead of app) handles large payloads by linking to GCS, overcoming default service limits.
|
200
204
|
* **Infrastructure:** A Log Router to sink data to BigQuery is provisioned by Terraform.
|
201
205
|
|
202
206
|
---
|
@@ -217,8 +221,16 @@ uvx agent-starter-pack setup-cicd [OPTIONS]
|
|
217
221
|
* `--prod-project`: (REQUIRED) The Google Cloud Project ID for your production environment.
|
218
222
|
* `--repository-name`: (REQUIRED) The name for the new GitHub repository that will be created.
|
219
223
|
* `--repository-owner`: (REQUIRED) Your GitHub username or organization where the repo will be created.
|
220
|
-
* `--git-provider`: (REQUIRED) The Git provider to use (github, gitlab, etc.). Only "github" is supported.
|
221
224
|
* `--auto-approve`: Skips all interactive confirmation prompts.
|
225
|
+
* `--dev-project`: Development project ID (optional).
|
226
|
+
* `--cicd-project`: CICD project ID (defaults to prod project if not specified).
|
227
|
+
* `--region`: GCP region (auto-detects from Terraform vars if not specified).
|
228
|
+
* `--host-connection-name`: Host connection name (optional).
|
229
|
+
* `--github-pat`: GitHub Personal Access Token for programmatic auth.
|
230
|
+
* `--github-app-installation-id`: GitHub App Installation ID for programmatic auth.
|
231
|
+
* `--local-state`: Use local Terraform state instead of remote GCS backend.
|
232
|
+
* `--debug`: Enable debug logging.
|
233
|
+
* `--create-repository`: Flag indicating whether to create a new repository.
|
222
234
|
|
223
235
|
|
224
236
|
**Automated Example:**
|
@@ -228,10 +240,9 @@ uvx agent-starter-pack setup-cicd \
|
|
228
240
|
--prod-project the-user-prod-project \
|
229
241
|
--repository-name the-user-repo-name \
|
230
242
|
--repository-owner the-username \
|
231
|
-
--git-provider github \
|
232
243
|
--auto-approve
|
233
244
|
```
|
234
|
-
* Note: As a coding agent, you must run this command non-interactively. Before executing, you must ask the user to provide the following required flags: `--staging-project`, `--prod-project`, `--repository-name`, `--repository-owner
|
245
|
+
* Note: As a coding agent, you must run this command non-interactively. Before executing, you must ask the user to provide the following required flags: `--staging-project`, `--prod-project`, `--repository-name`, and `--repository-owner`. Once you have these values, you can construct and run the command with the `--auto-approve` flag.
|
235
246
|
* Note: If the user tells that `setup-cicd` is not a viable option or it wants to use a different git provider, you must not use this command. Instead, you should look at the `deployment/README.md` to get instructions on how to manually deploy the agent.
|
236
247
|
---
|
237
248
|
### Section 6: Operational Guidelines for Coding Agents
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[project]
|
2
2
|
name = "agent-starter-pack"
|
3
|
-
version = "0.
|
3
|
+
version = "0.12.0"
|
4
4
|
description = "CLI to bootstrap production-ready Google Cloud GenAI agent projects from templates."
|
5
5
|
authors = [
|
6
6
|
{ name = "Google LLC", email = "agent-starter-pack@google.com" },
|
@@ -71,9 +71,9 @@ log_cli_date_format = "%Y-%m-%d %H:%M:%S"
|
|
71
71
|
|
72
72
|
[tool.ruff]
|
73
73
|
line-length = 88
|
74
|
-
target-version = "
|
75
|
-
include = ["
|
76
|
-
exclude = ["./agents/
|
74
|
+
target-version = "py311"
|
75
|
+
include = ["src/cli/**/*.py", "tests/**/*.py", "src/frontends/streamlit/**/*.py"]
|
76
|
+
exclude = ["./agents/**/*.py", "./tests/cicd/scripts/**/*.py"]
|
77
77
|
|
78
78
|
[tool.ruff.lint]
|
79
79
|
preview = true
|
@@ -109,7 +109,8 @@ ignore_missing_imports = true
|
|
109
109
|
explicit_package_bases = true
|
110
110
|
disable_error_code = ["misc", "no-untyped-call", "no-any-return"]
|
111
111
|
exclude = '''(?x)(
|
112
|
-
^agents
|
112
|
+
^agents/.*$ # exclude all files under agents
|
113
|
+
^tests/cicd/scripts/.*$ # exclude cicd scripts
|
113
114
|
)'''
|
114
115
|
|
115
116
|
[tool.codespell]
|
@@ -34,14 +34,14 @@ playground:
|
|
34
34
|
@echo "| 💡 Try asking: {{cookiecutter.example_question}}|"
|
35
35
|
{%- if "adk" in cookiecutter.tags %}
|
36
36
|
@echo "| |"
|
37
|
-
@echo "| 🔍 IMPORTANT: Select the '
|
37
|
+
@echo "| 🔍 IMPORTANT: Select the '{{cookiecutter.agent_directory}}' folder to interact with your agent. |"
|
38
38
|
{%- endif %}
|
39
39
|
@echo "==============================================================================="
|
40
40
|
{%- if "adk" in cookiecutter.tags %}
|
41
|
-
uv run adk web --port 8501
|
41
|
+
uv run adk web . --port 8501
|
42
42
|
{%- else %}
|
43
43
|
{%- if cookiecutter.deployment_target == 'cloud_run' %}
|
44
|
-
uv run uvicorn
|
44
|
+
uv run uvicorn {{cookiecutter.agent_directory}}.server:app --host 0.0.0.0 --port 8000 --reload &
|
45
45
|
{%- endif %}
|
46
46
|
{%- if cookiecutter.agent_name == 'live_api' %}
|
47
47
|
(cd frontend && PORT=8501 npm start)
|
@@ -73,13 +73,13 @@ backend:
|
|
73
73
|
{%- elif cookiecutter.deployment_target == 'agent_engine' %}
|
74
74
|
# Export dependencies to requirements file using uv export.
|
75
75
|
uv export --no-hashes --no-header --no-dev --no-emit-project --no-annotate > .requirements.txt 2>/dev/null || \
|
76
|
-
uv export --no-hashes --no-header --no-dev --no-emit-project > .requirements.txt && uv run
|
76
|
+
uv export --no-hashes --no-header --no-dev --no-emit-project > .requirements.txt && uv run {{cookiecutter.agent_directory}}/agent_engine_app.py
|
77
77
|
{%- endif %}
|
78
78
|
{%- if cookiecutter.deployment_target == 'cloud_run' %}
|
79
79
|
|
80
80
|
# Launch local development server with hot-reload
|
81
81
|
local-backend:
|
82
|
-
uv run uvicorn
|
82
|
+
uv run uvicorn {{cookiecutter.agent_directory}}.server:app --host 0.0.0.0 --port 8000 --reload
|
83
83
|
{%- endif %}
|
84
84
|
{%- if cookiecutter.deployment_target == 'cloud_run' %}
|
85
85
|
{%- if cookiecutter.agent_name == 'live_api' %}
|
@@ -9,7 +9,7 @@ This project is organized as follows:
|
|
9
9
|
|
10
10
|
```
|
11
11
|
{{cookiecutter.project_name}}/
|
12
|
-
├──
|
12
|
+
├── {{cookiecutter.agent_directory}}/ # Core application code
|
13
13
|
│ ├── agent.py # Main agent logic
|
14
14
|
{%- if cookiecutter.deployment_target == 'cloud_run' %}
|
15
15
|
│ ├── server.py # FastAPI Backend server
|
@@ -83,7 +83,7 @@ For full command options and usage, refer to the [Makefile](Makefile).
|
|
83
83
|
{% if cookiecutter.agent_name == 'live_api' %}
|
84
84
|
## Usage
|
85
85
|
|
86
|
-
This template follows a "bring your own agent" approach - you focus on your business logic in `
|
86
|
+
This template follows a "bring your own agent" approach - you focus on your business logic in `{{cookiecutter.agent_directory}}/agent.py`, and the template handles the surrounding components (UI, infrastructure, deployment, monitoring).
|
87
87
|
|
88
88
|
Here’s the recommended workflow for local development:
|
89
89
|
|
@@ -124,7 +124,7 @@ Here’s the recommended workflow for local development:
|
|
124
124
|
* Open the Streamlit UI in your browser (usually `http://localhost:8501` or `http://localhost:3001`).
|
125
125
|
* Click the play button in the UI to connect to the backend.
|
126
126
|
* Interact with the agent! Try prompts like: *"Using the tool you have, define Governance in the context MLOPs"*
|
127
|
-
* Modify the agent logic in `
|
127
|
+
* Modify the agent logic in `{{cookiecutter.agent_directory}}/agent.py`. The backend server (FastAPI with `uvicorn --reload`) should automatically restart when you save changes. Refresh the frontend if needed to see behavioral changes.
|
128
128
|
|
129
129
|
<details>
|
130
130
|
<summary><b>Cloud Shell Usage</b></summary>
|
@@ -162,7 +162,7 @@ To run the agent using Google Cloud Shell:
|
|
162
162
|
This template follows a "bring your own agent" approach - you focus on your business logic, and the template handles everything else (UI, infrastructure, deployment, monitoring).
|
163
163
|
|
164
164
|
1. **Prototype:** Build your Generative AI Agent using the intro notebooks in `notebooks/` for guidance. Use Vertex AI Evaluation to assess performance.
|
165
|
-
2. **Integrate:** Import your agent into the app by editing `
|
165
|
+
2. **Integrate:** Import your agent into the app by editing `{{cookiecutter.agent_directory}}/agent.py`.
|
166
166
|
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.
|
167
167
|
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 `uvx agent-starter-pack setup-cicd`. Check out the [`agent-starter-pack setup-cicd` CLI command](https://googlecloudplatform.github.io/agent-starter-pack/cli/setup_cicd.html). Currently supports GitHub with both Google Cloud Build and GitHub Actions as CI/CD runners.
|
168
168
|
5. **Monitor:** Track performance and gather insights using Cloud Logging, Tracing, and the Looker Studio dashboard to iterate on your application.
|
@@ -29,7 +29,7 @@ resource "google_cloudbuild_trigger" "pr_checks" {
|
|
29
29
|
|
30
30
|
filename = ".cloudbuild/pr_checks.yaml"
|
31
31
|
included_files = [
|
32
|
-
"
|
32
|
+
"{{cookiecutter.agent_directory}}/**",
|
33
33
|
"data_ingestion/**",
|
34
34
|
"tests/**",
|
35
35
|
"deployment/**",
|
@@ -64,7 +64,7 @@ resource "google_cloudbuild_trigger" "cd_pipeline" {
|
|
64
64
|
|
65
65
|
filename = ".cloudbuild/staging.yaml"
|
66
66
|
included_files = [
|
67
|
-
"
|
67
|
+
"{{cookiecutter.agent_directory}}/**",
|
68
68
|
"data_ingestion/**",
|
69
69
|
"tests/**",
|
70
70
|
"deployment/**",
|
@@ -75,7 +75,7 @@ select = [
|
|
75
75
|
ignore = ["E501", "C901"] # ignore line too long, too complex
|
76
76
|
|
77
77
|
[tool.ruff.lint.isort]
|
78
|
-
known-first-party = ["
|
78
|
+
known-first-party = ["{{cookiecutter.agent_directory}}", "frontend"]
|
79
79
|
|
80
80
|
[tool.mypy]
|
81
81
|
disallow_untyped_calls = true
|
@@ -113,4 +113,4 @@ pythonpath = "."
|
|
113
113
|
asyncio_default_fixture_loop_scope = "function"
|
114
114
|
|
115
115
|
[tool.hatch.build.targets.wheel]
|
116
|
-
packages = ["
|
116
|
+
packages = ["{{cookiecutter.agent_directory}}","frontend"]
|
@@ -108,7 +108,7 @@ jobs:
|
|
108
108
|
- name: Deploy to Production (Agent Engine)
|
109
109
|
run: |
|
110
110
|
uv export --no-hashes --no-sources --no-header --no-dev --no-emit-project --no-annotate --locked > .requirements.txt
|
111
|
-
uv run
|
111
|
+
uv run {{cookiecutter.agent_directory}}/agent_engine_app.py \
|
112
112
|
--project {% raw %}${{ vars.PROD_PROJECT_ID }}{% endraw %} \
|
113
113
|
--location {% raw %}${{ vars.REGION }}{% endraw %} \
|
114
114
|
--service-account {% raw %}${{ vars.APP_SA_EMAIL_PROD }}{% endraw %} \
|