agent-starter-pack 0.14.1__tar.gz → 0.15.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.14.1 → agent_starter_pack-0.15.0}/.claude/settings.local.json +5 -1
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/PKG-INFO +2 -2
- {agent_starter_pack-0.14.1/agents/agentic_rag → agent_starter_pack-0.15.0/agents/adk_base}/notebooks/adk_app_testing.ipynb +36 -18
- {agent_starter_pack-0.14.1/agents/adk_base → agent_starter_pack-0.15.0/agents/agentic_rag}/notebooks/adk_app_testing.ipynb +36 -18
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/docs/remote-templates/creating-remote-templates.md +51 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/docs/remote-templates/index.md +4 -3
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/docs/remote-templates/using-remote-templates.md +4 -3
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/pyproject.toml +2 -2
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/base_template/Makefile +1 -1
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/vars/env.tfvars +3 -4
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/base_template/pyproject.toml +4 -4
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/cli/commands/create.py +34 -11
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/cli/utils/gcp.py +19 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/cli/utils/remote_template.py +144 -1
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/cli/utils/template.py +12 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/deployment_targets/agent_engine/tests/integration/test_agent_engine_app.py +6 -3
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/deployment_targets/agent_engine/tests/load_test/load_test.py +12 -3
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/deployment_targets/agent_engine/{{cookiecutter.agent_directory}}/agent_engine_app.py +45 -38
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/deployment_targets/cloud_run/deployment/terraform/dev/service.tf +12 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/deployment_targets/cloud_run/deployment/terraform/service.tf +24 -0
- agent_starter_pack-0.14.1/src/resources/locks/uv-agentic_rag-agent_engine.lock → agent_starter_pack-0.15.0/src/resources/locks/uv-adk_base-agent_engine.lock +1743 -2157
- agent_starter_pack-0.14.1/src/resources/locks/uv-agentic_rag-cloud_run.lock → agent_starter_pack-0.15.0/src/resources/locks/uv-adk_base-cloud_run.lock +2301 -2779
- agent_starter_pack-0.14.1/src/resources/locks/uv-adk_base-agent_engine.lock → agent_starter_pack-0.15.0/src/resources/locks/uv-agentic_rag-agent_engine.lock +2214 -1708
- agent_starter_pack-0.14.1/src/resources/locks/uv-adk_base-cloud_run.lock → agent_starter_pack-0.15.0/src/resources/locks/uv-agentic_rag-cloud_run.lock +2847 -2259
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/resources/locks/uv-crewai_coding_crew-agent_engine.lock +2839 -2807
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/resources/locks/uv-crewai_coding_crew-cloud_run.lock +3755 -3714
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/resources/locks/uv-langgraph_base_react-agent_engine.lock +2441 -2396
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/resources/locks/uv-langgraph_base_react-cloud_run.lock +3243 -3185
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/resources/locks/uv-live_api-cloud_run.lock +2950 -2902
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/tests/cli/utils/test_remote_template.py +314 -1
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/tests/integration/test_pipeline_parity.py +10 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/uv.lock +2 -2
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/.cloudbuild/cd/test_e2e.yaml +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/.cloudbuild/ci/build_use_wheel.yaml +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/.cloudbuild/ci/lint.yaml +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/.cloudbuild/ci/lint_templated_agents.yaml +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/.cloudbuild/ci/test.yaml +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/.cloudbuild/ci/test_makefile.yaml +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/.cloudbuild/ci/test_pipeline_parity.yaml +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/.cloudbuild/ci/test_remote_template.yaml +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/.cloudbuild/ci/test_templated_agents.yaml +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/.cloudbuild/terraform/apis.tf +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/.cloudbuild/terraform/build_triggers.tf +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/.cloudbuild/terraform/service_account.tf +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/.cloudbuild/terraform/storage.tf +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/.cloudbuild/terraform/variables.tf +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/.github/workflows/docs.yml +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/.gitignore +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/CLAUDE.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/CODE_OF_CONDUCT.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/CONTRIBUTING.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/GEMINI.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/LICENSE +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/Makefile +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/README.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/agents/README.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/agents/adk_base/.template/templateconfig.yaml +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/agents/adk_base/README.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/agents/adk_base/app/__init__.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/agents/adk_base/app/agent.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/agents/adk_base/notebooks/evaluating_adk_agent.ipynb +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/agents/adk_base/tests/integration/test_agent.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/agents/agentic_rag/.template/templateconfig.yaml +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/agents/agentic_rag/README.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/agents/agentic_rag/app/__init__.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/agents/agentic_rag/app/agent.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/agents/agentic_rag/app/retrievers.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/agents/agentic_rag/app/templates.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/agents/agentic_rag/notebooks/evaluating_adk_agent.ipynb +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/agents/agentic_rag/tests/integration/test_agent.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/agents/crewai_coding_crew/.template/templateconfig.yaml +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/agents/crewai_coding_crew/README.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/agents/crewai_coding_crew/app/agent.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/agents/crewai_coding_crew/app/crew/config/agents.yaml +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/agents/crewai_coding_crew/app/crew/config/tasks.yaml +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/agents/crewai_coding_crew/app/crew/crew.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/agents/crewai_coding_crew/notebooks/evaluating_crewai_agent.ipynb +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/agents/crewai_coding_crew/notebooks/evaluating_langgraph_agent.ipynb +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/agents/crewai_coding_crew/tests/integration/test_agent.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/agents/langgraph_base_react/.template/templateconfig.yaml +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/agents/langgraph_base_react/README.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/agents/langgraph_base_react/app/agent.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/agents/langgraph_base_react/notebooks/evaluating_langgraph_agent.ipynb +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/agents/langgraph_base_react/tests/integration/test_agent.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/agents/live_api/.template/templateconfig.yaml +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/agents/live_api/README.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/agents/live_api/app/agent.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/agents/live_api/tests/integration/test_server_e2e.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/agents/live_api/tests/load_test/load_test.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/agents/live_api/tests/unit/test_server.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/docs/.vitepress/config.js +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/docs/agents/overview.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/docs/cli/create.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/docs/cli/enhance.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/docs/cli/index.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/docs/cli/list.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/docs/cli/setup_cicd.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/docs/guide/community-showcase.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/docs/guide/data-ingestion.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/docs/guide/deploy-ui.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/docs/guide/deployment.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/docs/guide/development-guide.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/docs/guide/getting-started.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/docs/guide/installation.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/docs/guide/observability.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/docs/guide/template-config-reference.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/docs/guide/troubleshooting.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/docs/guide/video-tutorials.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/docs/guide/why_starter_pack.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/docs/images/adk_gemini_fullstack.gif +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/docs/images/adk_gemini_fullstack_architecture.png +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/docs/images/adk_logo.png +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/docs/images/agent_starter_pack_screenshot.png +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/docs/images/ags_high_level_architecture.png +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/docs/images/icon.png +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/docs/images/logo.png +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/docs/images/prototype_to_prod.png +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/docs/images/why_sp_edited.png +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/docs/images/why_starter_pack.png +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/docs/index.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/docs/package-lock.json +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/docs/package.json +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/llm.txt +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/base_template/.gitignore +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/base_template/GEMINI.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/base_template/README.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/base_template/deployment/README.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/apis.tf +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/dev/apis.tf +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/dev/iam.tf +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/dev/log_sinks.tf +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/dev/providers.tf +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/dev/storage.tf +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/dev/variables.tf +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/dev/vars/env.tfvars +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/github.tf +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/iam.tf +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/locals.tf +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/log_sinks.tf +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/providers.tf +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/service_accounts.tf +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/storage.tf +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/variables.tf +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.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.14.1 → agent_starter_pack-0.15.0}/src/base_template/deployment/terraform/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}build_triggers.tf{% else %}unused_build_triggers.tf{% endif %} +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/base_template/tests/unit/test_dummy.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/base_template/{% if cookiecutter.cicd_runner == 'github_actions' %}.github{% else %}unused_github{% endif %}/workflows/deploy-to-prod.yaml +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/base_template/{% if cookiecutter.cicd_runner == 'github_actions' %}.github{% else %}unused_github{% endif %}/workflows/pr_checks.yaml +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/base_template/{% if cookiecutter.cicd_runner == 'github_actions' %}.github{% else %}unused_github{% endif %}/workflows/staging.yaml +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/base_template/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}.cloudbuild{% else %}unused_.cloudbuild{% endif %}/deploy-to-prod.yaml +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.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.14.1 → agent_starter_pack-0.15.0}/src/base_template/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}.cloudbuild{% else %}unused_.cloudbuild{% endif %}/staging.yaml +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/base_template/{{cookiecutter.agent_directory}}/utils/gcs.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/base_template/{{cookiecutter.agent_directory}}/utils/tracing.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/base_template/{{cookiecutter.agent_directory}}/utils/typing.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/cli/commands/enhance.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/cli/commands/list.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/cli/commands/setup_cicd.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/cli/main.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/cli/utils/__init__.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/cli/utils/cicd.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/cli/utils/datastores.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/cli/utils/logging.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/cli/utils/version.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/data_ingestion/README.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/data_ingestion/data_ingestion_pipeline/components/ingest_data.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/data_ingestion/data_ingestion_pipeline/components/process_data.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/data_ingestion/data_ingestion_pipeline/pipeline.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/data_ingestion/data_ingestion_pipeline/submit_pipeline.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/data_ingestion/pyproject.toml +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/data_ingestion/uv.lock +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/deployment_targets/agent_engine/deployment_metadata.json +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/deployment_targets/agent_engine/notebooks/intro_agent_engine.ipynb +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/deployment_targets/agent_engine/tests/load_test/.results/.placeholder +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/deployment_targets/agent_engine/tests/load_test/README.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/deployment_targets/cloud_run/Dockerfile +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/deployment_targets/cloud_run/tests/integration/test_server_e2e.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/deployment_targets/cloud_run/tests/load_test/.results/.placeholder +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/deployment_targets/cloud_run/tests/load_test/README.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/deployment_targets/cloud_run/tests/load_test/load_test.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/deployment_targets/cloud_run/{{cookiecutter.agent_directory}}/server.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/package-lock.json +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/package.json +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/public/favicon.ico +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/public/index.html +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/public/robots.txt +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/App.scss +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/App.test.tsx +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/App.tsx +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/components/audio-pulse/AudioPulse.tsx +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/components/audio-pulse/audio-pulse.scss +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/components/logger/Logger.tsx +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/components/logger/logger.scss +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/components/logger/mock-logs.ts +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/components/side-panel/SidePanel.tsx +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/components/side-panel/side-panel.scss +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/contexts/LiveAPIContext.tsx +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/hooks/use-live-api.ts +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/hooks/use-media-stream-mux.ts +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/hooks/use-screen-capture.ts +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/hooks/use-webcam.ts +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/index.css +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/index.tsx +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/multimodal-live-types.ts +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/react-app-env.d.ts +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/reportWebVitals.ts +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/setupTests.ts +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/utils/audio-recorder.ts +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/utils/audio-streamer.ts +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/utils/audioworklet-registry.ts +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/utils/multimodal-live-client.ts +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/utils/store-logger.ts +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/utils/utils.ts +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/utils/worklets/audio-processing.ts +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/src/utils/worklets/vol-meter.ts +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/live_api_react/frontend/tsconfig.json +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/streamlit/frontend/side_bar.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/streamlit/frontend/streamlit_app.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/streamlit/frontend/style/app_markdown.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/streamlit/frontend/utils/chat_utils.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/streamlit/frontend/utils/local_chat_history.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/streamlit/frontend/utils/message_editing.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/streamlit/frontend/utils/multimodal_utils.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/streamlit/frontend/utils/stream_handler.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/frontends/streamlit/frontend/utils/title_summary.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/resources/containers/data_processing/Dockerfile +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/resources/containers/e2e-tests/Dockerfile +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/resources/docs/adk-cheatsheet.md +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/resources/idx/.idx/dev.nix +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/resources/idx/idx-template.json +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/resources/idx/idx-template.nix +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/utils/generate_locks.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/utils/lock_utils.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/src/utils/watch_and_rebuild.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/tests/__init__.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/tests/cicd/example.env +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/tests/cicd/scripts/delete_agent_engines.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/tests/cicd/scripts/delete_alloydb_clusters.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/tests/cicd/scripts/delete_vector_search.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/tests/cicd/test_e2e_deployment.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/tests/cli/commands/test_create.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/tests/cli/commands/test_create_local.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/tests/cli/commands/test_enhance.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/tests/cli/commands/test_list.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/tests/cli/commands/test_setup_cicd.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/tests/cli/utils/test_cicd.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/tests/integration/test_agent_directory_functionality.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/tests/integration/test_makefile_usability.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/tests/integration/test_remote_templating.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/tests/integration/test_template_linting.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/tests/integration/test_templated_patterns.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/tests/integration/utils.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/tests/test_frontend/test_side_bar.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/tests/test_frontend/test_streamlit_app.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/tests/test_frontend/test_utils/test_chat_utils.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/tests/test_frontend/test_utils/test_local_chat_history.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/tests/test_frontend/test_utils/test_message_editing.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/tests/test_frontend/test_utils/test_multimodal_utils.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/tests/test_frontend/test_utils/test_stream_handler.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/tests/utils/__init__.py +0 -0
- {agent_starter_pack-0.14.1 → agent_starter_pack-0.15.0}/tests/utils/get_agents.py +0 -0
@@ -10,7 +10,11 @@
|
|
10
10
|
"Bash(gcloud beta serverless address-reservations list --project=agent-starter-pack-e2e-dev --location=europe-west1)",
|
11
11
|
"Bash(gcloud run services delete test-797fa619-1755528509 --region=europe-west1 --project=agent-starter-pack-e2e-dev --quiet)",
|
12
12
|
"Bash(make test)",
|
13
|
-
"WebFetch(domain:github.com)"
|
13
|
+
"WebFetch(domain:github.com)",
|
14
|
+
"Bash(uv run ruff check --fix tests/cli/utils/test_remote_template.py)",
|
15
|
+
"Bash(uv run ruff check tests/cli/utils/test_remote_template.py)",
|
16
|
+
"Bash(uv run pytest tests/cli/utils/test_remote_template.py -v)",
|
17
|
+
"Bash(uv run pytest tests/integration/test_pipeline_parity.py::test_staging_parity -v -s)"
|
14
18
|
],
|
15
19
|
"deny": [],
|
16
20
|
"ask": []
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: agent-starter-pack
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.15.0
|
4
4
|
Summary: CLI to bootstrap production-ready Google Cloud GenAI agent projects from templates.
|
5
5
|
Author-email: Google LLC <agent-starter-pack@google.com>
|
6
6
|
License: Apache-2.0
|
@@ -8,7 +8,7 @@ License-File: LICENSE
|
|
8
8
|
Requires-Python: >=3.10
|
9
9
|
Requires-Dist: backoff>=2.2.1
|
10
10
|
Requires-Dist: click>=8.1.7
|
11
|
-
Requires-Dist: cookiecutter
|
11
|
+
Requires-Dist: cookiecutter<3.0.0,>=2.6.0
|
12
12
|
Requires-Dist: google-cloud-aiplatform>=1.87.0
|
13
13
|
Requires-Dist: pyyaml>=6.0.1
|
14
14
|
Requires-Dist: rich>=13.7.0
|
@@ -40,48 +40,64 @@
|
|
40
40
|
},
|
41
41
|
{
|
42
42
|
"cell_type": "code",
|
43
|
-
"execution_count":
|
43
|
+
"execution_count": null,
|
44
44
|
"metadata": {},
|
45
45
|
"outputs": [],
|
46
46
|
"source": [
|
47
47
|
"import json\n",
|
48
48
|
"\n",
|
49
49
|
"import requests\n",
|
50
|
-
"import vertexai
|
50
|
+
"import vertexai"
|
51
51
|
]
|
52
52
|
},
|
53
53
|
{
|
54
54
|
"cell_type": "markdown",
|
55
55
|
"metadata": {},
|
56
56
|
"source": [
|
57
|
-
"
|
58
|
-
|
57
|
+
"### Initialize Vertex AI Client"
|
58
|
+
]
|
59
|
+
},
|
60
|
+
{
|
61
|
+
"cell_type": "code",
|
62
|
+
"execution_count": null,
|
63
|
+
"metadata": {},
|
64
|
+
"outputs": [],
|
65
|
+
"source": [
|
66
|
+
"# Initialize the Vertex AI client\n",
|
67
|
+
"LOCATION = \"us-central1\"\n",
|
68
|
+
"\n",
|
69
|
+
"client = vertexai.Client(\n",
|
70
|
+
" location=LOCATION,\n",
|
71
|
+
")"
|
59
72
|
]
|
60
73
|
},
|
61
74
|
{
|
62
75
|
"cell_type": "markdown",
|
63
76
|
"metadata": {},
|
64
77
|
"source": [
|
65
|
-
"
|
78
|
+
"## If you are using Agent Engine\n",
|
79
|
+
"See more documentation at [Agent Engine Overview](https://cloud.google.com/vertex-ai/generative-ai/docs/agent-engine/overview)"
|
66
80
|
]
|
67
81
|
},
|
68
82
|
{
|
69
|
-
"cell_type": "
|
70
|
-
"execution_count": 4,
|
83
|
+
"cell_type": "markdown",
|
71
84
|
"metadata": {},
|
72
|
-
"outputs": [],
|
73
85
|
"source": [
|
74
|
-
"
|
75
|
-
"AGENT_ENGINE_ID = \"projects/PROJECT_ID/locations/us-central1/reasoningEngines/ENGINE_ID\""
|
86
|
+
"### Remote Testing"
|
76
87
|
]
|
77
88
|
},
|
78
89
|
{
|
79
90
|
"cell_type": "code",
|
80
|
-
"execution_count":
|
91
|
+
"execution_count": null,
|
81
92
|
"metadata": {},
|
82
93
|
"outputs": [],
|
83
94
|
"source": [
|
84
|
-
"
|
95
|
+
"# Replace PROJECT_ID and ENGINE_ID with your values\n",
|
96
|
+
"AGENT_ENGINE_ID = \"projects/PROJECT_ID/locations/us-central1/reasoningEngines/ENGINE_ID\"\n",
|
97
|
+
"\n",
|
98
|
+
"# Get the existing agent engine\n",
|
99
|
+
"remote_agent_engine = client.agent_engines.get(name=AGENT_ENGINE_ID)\n",
|
100
|
+
"print(f\"Retrieved agent engine: {remote_agent_engine.api_resource.name}\")"
|
85
101
|
]
|
86
102
|
},
|
87
103
|
{
|
@@ -90,7 +106,9 @@
|
|
90
106
|
"metadata": {},
|
91
107
|
"outputs": [],
|
92
108
|
"source": [
|
93
|
-
"for event in remote_agent_engine.
|
109
|
+
"async for event in remote_agent_engine.async_stream_query(\n",
|
110
|
+
" message=\"hi!\", user_id=\"test\"\n",
|
111
|
+
"):\n",
|
94
112
|
" print(event)"
|
95
113
|
]
|
96
114
|
},
|
@@ -126,7 +144,7 @@
|
|
126
144
|
},
|
127
145
|
{
|
128
146
|
"cell_type": "code",
|
129
|
-
"execution_count":
|
147
|
+
"execution_count": null,
|
130
148
|
"metadata": {},
|
131
149
|
"outputs": [],
|
132
150
|
"source": [
|
@@ -153,7 +171,7 @@
|
|
153
171
|
"metadata": {},
|
154
172
|
"outputs": [],
|
155
173
|
"source": [
|
156
|
-
"for event in agent_engine.
|
174
|
+
"async for event in agent_engine.async_stream_query(message=\"hi!\", user_id=\"test\"):\n",
|
157
175
|
" print(event)"
|
158
176
|
]
|
159
177
|
},
|
@@ -180,7 +198,7 @@
|
|
180
198
|
},
|
181
199
|
{
|
182
200
|
"cell_type": "code",
|
183
|
-
"execution_count":
|
201
|
+
"execution_count": null,
|
184
202
|
"metadata": {},
|
185
203
|
"outputs": [],
|
186
204
|
"source": [
|
@@ -336,7 +354,7 @@
|
|
336
354
|
],
|
337
355
|
"metadata": {
|
338
356
|
"kernelspec": {
|
339
|
-
"display_name": "
|
357
|
+
"display_name": "myagent-1757939450",
|
340
358
|
"language": "python",
|
341
359
|
"name": "python3"
|
342
360
|
},
|
@@ -350,7 +368,7 @@
|
|
350
368
|
"name": "python",
|
351
369
|
"nbconvert_exporter": "python",
|
352
370
|
"pygments_lexer": "ipython3",
|
353
|
-
"version": "3.12.
|
371
|
+
"version": "3.12.9"
|
354
372
|
}
|
355
373
|
},
|
356
374
|
"nbformat": 4,
|
@@ -40,48 +40,64 @@
|
|
40
40
|
},
|
41
41
|
{
|
42
42
|
"cell_type": "code",
|
43
|
-
"execution_count":
|
43
|
+
"execution_count": null,
|
44
44
|
"metadata": {},
|
45
45
|
"outputs": [],
|
46
46
|
"source": [
|
47
47
|
"import json\n",
|
48
48
|
"\n",
|
49
49
|
"import requests\n",
|
50
|
-
"import vertexai
|
50
|
+
"import vertexai"
|
51
51
|
]
|
52
52
|
},
|
53
53
|
{
|
54
54
|
"cell_type": "markdown",
|
55
55
|
"metadata": {},
|
56
56
|
"source": [
|
57
|
-
"
|
58
|
-
|
57
|
+
"### Initialize Vertex AI Client"
|
58
|
+
]
|
59
|
+
},
|
60
|
+
{
|
61
|
+
"cell_type": "code",
|
62
|
+
"execution_count": null,
|
63
|
+
"metadata": {},
|
64
|
+
"outputs": [],
|
65
|
+
"source": [
|
66
|
+
"# Initialize the Vertex AI client\n",
|
67
|
+
"LOCATION = \"us-central1\"\n",
|
68
|
+
"\n",
|
69
|
+
"client = vertexai.Client(\n",
|
70
|
+
" location=LOCATION,\n",
|
71
|
+
")"
|
59
72
|
]
|
60
73
|
},
|
61
74
|
{
|
62
75
|
"cell_type": "markdown",
|
63
76
|
"metadata": {},
|
64
77
|
"source": [
|
65
|
-
"
|
78
|
+
"## If you are using Agent Engine\n",
|
79
|
+
"See more documentation at [Agent Engine Overview](https://cloud.google.com/vertex-ai/generative-ai/docs/agent-engine/overview)"
|
66
80
|
]
|
67
81
|
},
|
68
82
|
{
|
69
|
-
"cell_type": "
|
70
|
-
"execution_count": 4,
|
83
|
+
"cell_type": "markdown",
|
71
84
|
"metadata": {},
|
72
|
-
"outputs": [],
|
73
85
|
"source": [
|
74
|
-
"
|
75
|
-
"AGENT_ENGINE_ID = \"projects/PROJECT_ID/locations/us-central1/reasoningEngines/ENGINE_ID\""
|
86
|
+
"### Remote Testing"
|
76
87
|
]
|
77
88
|
},
|
78
89
|
{
|
79
90
|
"cell_type": "code",
|
80
|
-
"execution_count":
|
91
|
+
"execution_count": null,
|
81
92
|
"metadata": {},
|
82
93
|
"outputs": [],
|
83
94
|
"source": [
|
84
|
-
"
|
95
|
+
"# Replace PROJECT_ID and ENGINE_ID with your values\n",
|
96
|
+
"AGENT_ENGINE_ID = \"projects/PROJECT_ID/locations/us-central1/reasoningEngines/ENGINE_ID\"\n",
|
97
|
+
"\n",
|
98
|
+
"# Get the existing agent engine\n",
|
99
|
+
"remote_agent_engine = client.agent_engines.get(name=AGENT_ENGINE_ID)\n",
|
100
|
+
"print(f\"Retrieved agent engine: {remote_agent_engine.api_resource.name}\")"
|
85
101
|
]
|
86
102
|
},
|
87
103
|
{
|
@@ -90,7 +106,9 @@
|
|
90
106
|
"metadata": {},
|
91
107
|
"outputs": [],
|
92
108
|
"source": [
|
93
|
-
"for event in remote_agent_engine.
|
109
|
+
"async for event in remote_agent_engine.async_stream_query(\n",
|
110
|
+
" message=\"hi!\", user_id=\"test\"\n",
|
111
|
+
"):\n",
|
94
112
|
" print(event)"
|
95
113
|
]
|
96
114
|
},
|
@@ -126,7 +144,7 @@
|
|
126
144
|
},
|
127
145
|
{
|
128
146
|
"cell_type": "code",
|
129
|
-
"execution_count":
|
147
|
+
"execution_count": null,
|
130
148
|
"metadata": {},
|
131
149
|
"outputs": [],
|
132
150
|
"source": [
|
@@ -153,7 +171,7 @@
|
|
153
171
|
"metadata": {},
|
154
172
|
"outputs": [],
|
155
173
|
"source": [
|
156
|
-
"for event in agent_engine.
|
174
|
+
"async for event in agent_engine.async_stream_query(message=\"hi!\", user_id=\"test\"):\n",
|
157
175
|
" print(event)"
|
158
176
|
]
|
159
177
|
},
|
@@ -180,7 +198,7 @@
|
|
180
198
|
},
|
181
199
|
{
|
182
200
|
"cell_type": "code",
|
183
|
-
"execution_count":
|
201
|
+
"execution_count": null,
|
184
202
|
"metadata": {},
|
185
203
|
"outputs": [],
|
186
204
|
"source": [
|
@@ -336,7 +354,7 @@
|
|
336
354
|
],
|
337
355
|
"metadata": {
|
338
356
|
"kernelspec": {
|
339
|
-
"display_name": "
|
357
|
+
"display_name": "myagent-1757939450",
|
340
358
|
"language": "python",
|
341
359
|
"name": "python3"
|
342
360
|
},
|
@@ -350,7 +368,7 @@
|
|
350
368
|
"name": "python",
|
351
369
|
"nbconvert_exporter": "python",
|
352
370
|
"pygments_lexer": "ipython3",
|
353
|
-
"version": "3.12.
|
371
|
+
"version": "3.12.9"
|
354
372
|
}
|
355
373
|
},
|
356
374
|
"nbformat": 4,
|
@@ -231,6 +231,57 @@ dependencies = [
|
|
231
231
|
|
232
232
|
**Best Practice:** Always include a `uv.lock` file for reproducible builds.
|
233
233
|
|
234
|
+
### Version Locking for Guaranteed Compatibility
|
235
|
+
|
236
|
+
For maximum compatibility and stability, you can lock your remote template to a specific version of the Agent Starter Pack. This ensures that your template will always be processed with the exact version it was designed for, preventing potential breaking changes from affecting your users.
|
237
|
+
|
238
|
+
**To enable version locking:**
|
239
|
+
|
240
|
+
1. **Add agent-starter-pack as a dev dependency** in your `pyproject.toml`:
|
241
|
+
```toml
|
242
|
+
[dependency-groups]
|
243
|
+
dev = [
|
244
|
+
"agent-starter-pack==0.14.1", # Lock to specific version
|
245
|
+
# ... your other dev dependencies
|
246
|
+
]
|
247
|
+
```
|
248
|
+
|
249
|
+
2. **Generate the lock file:**
|
250
|
+
```bash
|
251
|
+
uv lock
|
252
|
+
```
|
253
|
+
|
254
|
+
3. **Commit both files:**
|
255
|
+
```bash
|
256
|
+
git add pyproject.toml uv.lock
|
257
|
+
git commit -m "Lock agent-starter-pack version for compatibility"
|
258
|
+
```
|
259
|
+
|
260
|
+
**How it works:**
|
261
|
+
- When users fetch your remote template, the starter pack automatically detects the locked version in `uv.lock`
|
262
|
+
- It then executes `uvx agent-starter-pack==VERSION` with the locked version (requires `uv` to be installed)
|
263
|
+
- This guarantees your template is processed with the exact version you tested it with
|
264
|
+
|
265
|
+
**Requirements:**
|
266
|
+
- Users must have `uv` installed to use version-locked templates
|
267
|
+
- If `uv` is not available, the command will fail with installation instructions
|
268
|
+
|
269
|
+
**When to use version locking:**
|
270
|
+
- ✅ Your template uses specific starter pack features that might change
|
271
|
+
- ✅ You want to guarantee long-term stability for your users
|
272
|
+
- ✅ Your template is critical infrastructure that needs predictable behavior
|
273
|
+
- ❌ You always want the latest starter pack features (trade-off: potential breaking changes)
|
274
|
+
|
275
|
+
**Example user experience:**
|
276
|
+
```bash
|
277
|
+
uvx agent-starter-pack create my-project -a github.com/you/your-template
|
278
|
+
|
279
|
+
# Output:
|
280
|
+
# 🔒 Remote template specifies agent-starter-pack version 0.14.1 in uv.lock
|
281
|
+
# 📦 Executing nested command: uvx agent-starter-pack==0.14.1
|
282
|
+
# [continues with locked version]
|
283
|
+
```
|
284
|
+
|
234
285
|
### Makefile Customization
|
235
286
|
|
236
287
|
If your template includes a `Makefile`, it will be intelligently merged:
|
@@ -37,9 +37,10 @@ uvx agent-starter-pack create test-agent -a https://github.com/you/your-template
|
|
37
37
|
|
38
38
|
Remote templates work by:
|
39
39
|
1. **Fetching** template repositories from Git
|
40
|
-
2. **
|
41
|
-
3. **
|
42
|
-
4. **
|
40
|
+
2. **Version locking** - automatically uses the exact starter pack version specified by the template for guaranteed compatibility
|
41
|
+
3. **Applying** intelligent defaults based on repository structure
|
42
|
+
4. **Merging** template files with base agent infrastructure
|
43
|
+
5. **Generating** complete, production-ready agent projects
|
43
44
|
|
44
45
|
Any Git repository can become a template - the system handles the complexity automatically.
|
45
46
|
|
@@ -7,9 +7,10 @@ Remote templates let you instantly create production-ready AI agents from Git re
|
|
7
7
|
When you use a remote template, the system:
|
8
8
|
|
9
9
|
1. **Fetches** the template repository from Git
|
10
|
-
2. **
|
11
|
-
3. **
|
12
|
-
4. **
|
10
|
+
2. **Checks for version locking** - if the template specifies a starter pack version in `uv.lock`, automatically uses that version for guaranteed compatibility
|
11
|
+
3. **Applies intelligent defaults** based on repository structure
|
12
|
+
4. **Merges** template files with base agent infrastructure
|
13
|
+
5. **Generates** a complete, production-ready agent project
|
13
14
|
|
14
15
|
The file merging follows this priority order:
|
15
16
|
1. Base template files (foundation)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[project]
|
2
2
|
name = "agent-starter-pack"
|
3
|
-
version = "0.
|
3
|
+
version = "0.15.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" },
|
@@ -10,7 +10,7 @@ readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
11
11
|
dependencies = [
|
12
12
|
"click>=8.1.7",
|
13
|
-
"cookiecutter
|
13
|
+
"cookiecutter>=2.6.0, <3.0.0",
|
14
14
|
"google-cloud-aiplatform>=1.87.0",
|
15
15
|
"rich>=13.7.0",
|
16
16
|
"pyyaml>=6.0.1",
|
@@ -76,7 +76,7 @@ backend:
|
|
76
76
|
--region "us-central1" \
|
77
77
|
--no-allow-unauthenticated \
|
78
78
|
--no-cpu-throttling \
|
79
|
-
--labels "created-by=adk{
|
79
|
+
--labels "{% if "adk" in cookiecutter.tags %}created-by=adk{% if cookiecutter.agent_garden %},{% endif %}{% endif %}{% if cookiecutter.agent_garden %}deployed-with=agent-garden{% if cookiecutter.agent_sample_id %},vertex-agent-sample-id={{cookiecutter.agent_sample_id}},vertex-agent-sample-publisher={{cookiecutter.agent_sample_publisher}}{% endif %}{% endif %}" \
|
80
80
|
--set-env-vars \
|
81
81
|
"COMMIT_SHA=$(shell git rev-parse HEAD){%- if cookiecutter.data_ingestion %}{%- if cookiecutter.datastore_type == "vertex_ai_search" %},DATA_STORE_ID={{cookiecutter.project_name}}-datastore,DATA_STORE_REGION=us{%- elif cookiecutter.datastore_type == "vertex_ai_vector_search" %},VECTOR_SEARCH_INDEX={{cookiecutter.project_name}}-vector-search,VECTOR_SEARCH_INDEX_ENDPOINT={{cookiecutter.project_name}}-vector-search-endpoint,VECTOR_SEARCH_BUCKET=$$PROJECT_ID-{{cookiecutter.project_name}}-vs{%- endif %}{%- endif %}" \
|
82
82
|
$(if $(IAP),--iap) \
|
@@ -13,8 +13,11 @@ cicd_runner_project_id = "your-cicd-project-id"
|
|
13
13
|
{%- if cookiecutter.cicd_runner == "google_cloud_build" %}
|
14
14
|
# Name of the host connection you created in Cloud Build
|
15
15
|
host_connection_name = "git-{{cookiecutter.project_name}}"
|
16
|
+
github_pat_secret_id = "your-github_pat_secret_id"
|
16
17
|
{%- endif %}
|
17
18
|
|
19
|
+
repository_owner = "Your GitHub organization or username."
|
20
|
+
|
18
21
|
# Name of the repository you added to Cloud Build
|
19
22
|
repository_name = "{{cookiecutter.project_name}}"
|
20
23
|
|
@@ -34,7 +37,3 @@ vector_search_min_replica_count = 1
|
|
34
37
|
vector_search_max_replica_count = 1
|
35
38
|
{%- endif %}
|
36
39
|
{%- endif %}
|
37
|
-
{%- if cookiecutter.cicd_runner == "github_actions" %}
|
38
|
-
|
39
|
-
repository_owner = "Your GitHub organization or username."
|
40
|
-
{%- endif %}
|
@@ -14,14 +14,14 @@ dependencies = [
|
|
14
14
|
"langchain-core~=0.3.9",
|
15
15
|
"traceloop-sdk~=0.38.7",
|
16
16
|
{%- endif %}
|
17
|
-
"google-cloud-logging
|
17
|
+
"google-cloud-logging>=3.12.0",
|
18
18
|
{%- if cookiecutter.deployment_target == 'cloud_run' %}
|
19
|
-
"google-cloud-aiplatform[evaluation]~=1.
|
19
|
+
"google-cloud-aiplatform[evaluation]~=1.113.0",
|
20
20
|
"fastapi~=0.115.8",
|
21
21
|
"uvicorn~=0.34.0",
|
22
22
|
"psycopg2-binary>=2.9.10",
|
23
23
|
{%- elif cookiecutter.deployment_target == 'agent_engine' %}
|
24
|
-
"google-cloud-aiplatform[evaluation,agent-engines]~=1.
|
24
|
+
"google-cloud-aiplatform[evaluation,agent-engines]~=1.113.0"
|
25
25
|
{%- endif %}
|
26
26
|
]
|
27
27
|
{% if cookiecutter.deployment_target == 'cloud_run' %}
|
@@ -72,7 +72,7 @@ select = [
|
|
72
72
|
"UP", # pyupgrade
|
73
73
|
"RUF", # ruff specific rules
|
74
74
|
]
|
75
|
-
ignore = ["E501", "C901"] # ignore line too long, too complex
|
75
|
+
ignore = ["E501", "C901", "B006"] # ignore line too long, too complex
|
76
76
|
|
77
77
|
[tool.ruff.lint.isort]
|
78
78
|
known-first-party = ["{{cookiecutter.agent_directory}}", "frontend"]
|
@@ -226,6 +226,20 @@ def normalize_project_name(project_name: str) -> str:
|
|
226
226
|
help="Template files directly into the current directory instead of creating a new project directory",
|
227
227
|
default=False,
|
228
228
|
)
|
229
|
+
@click.option(
|
230
|
+
"--skip-welcome",
|
231
|
+
is_flag=True,
|
232
|
+
hidden=True,
|
233
|
+
help="Skip the welcome banner",
|
234
|
+
default=False,
|
235
|
+
)
|
236
|
+
@click.option(
|
237
|
+
"--locked",
|
238
|
+
is_flag=True,
|
239
|
+
hidden=True,
|
240
|
+
help="Internal flag for version-locked remote templates",
|
241
|
+
default=False,
|
242
|
+
)
|
229
243
|
@shared_template_options
|
230
244
|
@handle_cli_error
|
231
245
|
def create(
|
@@ -247,6 +261,7 @@ def create(
|
|
247
261
|
agent_garden: bool = False,
|
248
262
|
base_template: str | None = None,
|
249
263
|
skip_welcome: bool = False,
|
264
|
+
locked: bool = False,
|
250
265
|
cli_overrides: dict | None = None,
|
251
266
|
) -> None:
|
252
267
|
"""Create GCP-based AI agent projects from templates."""
|
@@ -337,8 +352,22 @@ def create(
|
|
337
352
|
ignore=get_standard_ignore_patterns(),
|
338
353
|
)
|
339
354
|
|
355
|
+
# Check for version lock and execute nested command if found
|
356
|
+
from ..utils.remote_template import check_and_execute_with_version_lock
|
357
|
+
|
358
|
+
if check_and_execute_with_version_lock(
|
359
|
+
template_source_path, agent, locked
|
360
|
+
):
|
361
|
+
# If we executed with locked version, cleanup and exit
|
362
|
+
shutil.rmtree(temp_dir, ignore_errors=True)
|
363
|
+
return
|
364
|
+
|
340
365
|
selected_agent = f"local_{template_source_path.name}"
|
341
|
-
|
366
|
+
if locked:
|
367
|
+
# In locked mode, show a nicer message
|
368
|
+
console.print("✅ Using version-locked template", style="green")
|
369
|
+
else:
|
370
|
+
console.print(f"Using local template: {local_path}")
|
342
371
|
logging.debug(
|
343
372
|
f"Copied local template to temporary dir: {template_source_path}"
|
344
373
|
)
|
@@ -354,7 +383,7 @@ def create(
|
|
354
383
|
else:
|
355
384
|
console.print(f"Fetching remote template: {agent}")
|
356
385
|
template_source_path, temp_dir_path = fetch_remote_template(
|
357
|
-
remote_spec
|
386
|
+
remote_spec, agent, locked
|
358
387
|
)
|
359
388
|
temp_dir_to_clean = str(temp_dir_path)
|
360
389
|
selected_agent = f"remote_{hash(agent)}" # Generate unique name for remote template
|
@@ -416,7 +445,7 @@ def create(
|
|
416
445
|
else:
|
417
446
|
console.print(f"Fetching remote template: {agent}")
|
418
447
|
template_source_path, temp_dir_path = fetch_remote_template(
|
419
|
-
remote_spec
|
448
|
+
remote_spec, agent, locked
|
420
449
|
)
|
421
450
|
temp_dir_to_clean = str(temp_dir_path)
|
422
451
|
final_agent = f"remote_{hash(agent)}" # Generate unique name for remote template
|
@@ -638,14 +667,7 @@ def create(
|
|
638
667
|
except Exception as e:
|
639
668
|
if debug:
|
640
669
|
logging.warning(f"GCP environment setup failed: {e}")
|
641
|
-
console.print(
|
642
|
-
f"> Warning: GCP environment setup failed: {e}", style="yellow"
|
643
|
-
)
|
644
|
-
console.print(
|
645
|
-
"> Please check your authentication settings and permissions. "
|
646
|
-
"> Visit https://cloud.google.com/vertex-ai/docs/authentication for help.",
|
647
|
-
style="yellow",
|
648
|
-
)
|
670
|
+
console.print(f"> ⚠️ {e}", style="bold yellow")
|
649
671
|
console.print(
|
650
672
|
"> Continuing with template processing...", style="yellow"
|
651
673
|
)
|
@@ -690,6 +712,7 @@ def create(
|
|
690
712
|
in_folder=in_folder,
|
691
713
|
cli_overrides=final_cli_overrides,
|
692
714
|
agent_garden=agent_garden,
|
715
|
+
remote_spec=remote_spec,
|
693
716
|
)
|
694
717
|
|
695
718
|
# Replace region in all files if a different region was specified
|
@@ -13,9 +13,13 @@
|
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
15
|
# ruff: noqa: E722
|
16
|
+
import os
|
16
17
|
import subprocess
|
17
18
|
import time
|
18
19
|
|
20
|
+
# Suppress gRPC verbose logging
|
21
|
+
os.environ["GRPC_VERBOSITY"] = "NONE"
|
22
|
+
|
19
23
|
import google.auth
|
20
24
|
from google.api_core.client_options import ClientOptions
|
21
25
|
from google.api_core.exceptions import PermissionDenied
|
@@ -34,6 +38,12 @@ from src.cli.utils.version import PACKAGE_NAME, get_current_version
|
|
34
38
|
|
35
39
|
console = Console()
|
36
40
|
|
41
|
+
_AUTH_ERROR_MESSAGE = (
|
42
|
+
"Looks like you are not authenticated with Google Cloud.\n"
|
43
|
+
"Please run: `gcloud auth login --update-adc`\n"
|
44
|
+
"Then set your project: `gcloud config set project YOUR_PROJECT_ID`"
|
45
|
+
)
|
46
|
+
|
37
47
|
|
38
48
|
def enable_vertex_ai_api(
|
39
49
|
project_id: str, auto_approve: bool = False, context: str | None = None
|
@@ -240,5 +250,14 @@ def verify_credentials() -> dict:
|
|
240
250
|
account = "Unknown account"
|
241
251
|
|
242
252
|
return {"project": project, "account": account}
|
253
|
+
except google.auth.exceptions.DefaultCredentialsError as e:
|
254
|
+
# Authentication error - provide friendly message
|
255
|
+
raise Exception(_AUTH_ERROR_MESSAGE) from e
|
243
256
|
except Exception as e:
|
257
|
+
# Check if the error message indicates authentication issues
|
258
|
+
error_str = str(e).lower()
|
259
|
+
if any(
|
260
|
+
keyword in error_str for keyword in ["credential", "auth", "login", "token"]
|
261
|
+
):
|
262
|
+
raise Exception(_AUTH_ERROR_MESSAGE) from e
|
244
263
|
raise Exception(f"Failed to verify GCP credentials: {e!s}") from e
|