agent-starter-pack 0.10.0__tar.gz → 0.11.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.10.0 → agent_starter_pack-0.11.0}/.claude/settings.local.json +4 -2
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/.gitignore +3 -1
- agent_starter_pack-0.11.0/CLAUDE.md +1 -0
- agent_starter_pack-0.11.0/GEMINI.md +130 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/PKG-INFO +2 -2
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/README.md +1 -1
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/adk_gemini_fullstack/.template/templateconfig.yaml +1 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/crewai_coding_crew/.template/templateconfig.yaml +2 -2
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/crewai_coding_crew/tests/integration/test_agent.py +1 -1
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/langgraph_base_react/.template/templateconfig.yaml +1 -1
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/langgraph_base_react/tests/integration/test_agent.py +1 -1
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/live_api/tests/unit/test_server.py +2 -1
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/docs/.vitepress/config.js +7 -2
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/docs/agents/overview.md +0 -1
- agent_starter_pack-0.11.0/docs/cli/create.md +176 -0
- agent_starter_pack-0.11.0/docs/cli/enhance.md +180 -0
- agent_starter_pack-0.11.0/docs/cli/list.md +36 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/docs/index.md +0 -3
- agent_starter_pack-0.11.0/docs/remote-templates/creating-remote-templates.md +368 -0
- agent_starter_pack-0.11.0/docs/remote-templates/index.md +52 -0
- agent_starter_pack-0.11.0/docs/remote-templates/using-remote-templates.md +188 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/pyproject.toml +1 -1
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/base_template/deployment/terraform/dev/iam.tf +12 -11
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/base_template/deployment/terraform/dev/variables.tf +2 -7
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/base_template/deployment/terraform/github.tf +14 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/base_template/deployment/terraform/iam.tf +10 -7
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/base_template/deployment/terraform/service_accounts.tf +4 -5
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/base_template/deployment/terraform/variables.tf +2 -7
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/base_template/deployment/terraform/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}build_triggers.tf{% else %}unused_build_triggers.tf{% endif %} +4 -2
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/base_template/pyproject.toml +2 -2
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/base_template/{% if cookiecutter.cicd_runner == 'github_actions' %}.github{% else %}unused_github{% endif %}/workflows/deploy-to-prod.yaml +1 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/base_template/{% if cookiecutter.cicd_runner == 'github_actions' %}.github{% else %}unused_github{% endif %}/workflows/staging.yaml +1 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/base_template/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}.cloudbuild{% else %}unused_.cloudbuild{% endif %}/deploy-to-prod.yaml +1 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/base_template/{% if cookiecutter.cicd_runner == 'google_cloud_build' %}.cloudbuild{% else %}unused_.cloudbuild{% endif %}/staging.yaml +1 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/cli/commands/create.py +232 -101
- agent_starter_pack-0.11.0/src/cli/commands/enhance.py +248 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/cli/commands/list.py +23 -11
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/cli/commands/setup_cicd.py +1 -1
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/cli/main.py +2 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/cli/utils/logging.py +40 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/cli/utils/remote_template.py +55 -16
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/cli/utils/template.py +212 -94
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/deployment_targets/agent_engine/app/agent_engine_app.py +8 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/deployment_targets/cloud_run/app/server.py +1 -1
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/deployment_targets/cloud_run/deployment/terraform/dev/service.tf +1 -1
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/deployment_targets/cloud_run/deployment/terraform/service.tf +2 -2
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/resources/locks/uv-adk_base-agent_engine.lock +312 -312
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/resources/locks/uv-adk_base-cloud_run.lock +403 -404
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/resources/locks/uv-adk_gemini_fullstack-agent_engine.lock +312 -312
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/resources/locks/uv-adk_gemini_fullstack-cloud_run.lock +403 -404
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/resources/locks/uv-agentic_rag-agent_engine.lock +371 -371
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/resources/locks/uv-agentic_rag-cloud_run.lock +477 -478
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/resources/locks/uv-crewai_coding_crew-agent_engine.lock +661 -591
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/resources/locks/uv-crewai_coding_crew-cloud_run.lock +868 -760
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/resources/locks/uv-langgraph_base_react-agent_engine.lock +496 -446
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/resources/locks/uv-langgraph_base_react-cloud_run.lock +639 -565
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/resources/locks/uv-live_api-cloud_run.lock +584 -510
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/tests/cicd/test_e2e_deployment.py +2 -2
- agent_starter_pack-0.11.0/tests/cli/commands/test_create_local.py +374 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/tests/cli/utils/test_remote_template.py +78 -10
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/tests/integration/test_remote_templating.py +3 -1
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/uv.lock +1 -1
- agent_starter_pack-0.10.0/docs/cli/create.md +0 -50
- agent_starter_pack-0.10.0/docs/guide/remote-templating.md +0 -202
- agent_starter_pack-0.10.0/tests/cli/commands/test_create_local.py +0 -84
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/.cloudbuild/cd/test_e2e.yaml +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/.cloudbuild/ci/build_use_wheel.yaml +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/.cloudbuild/ci/lint.yaml +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/.cloudbuild/ci/lint_templated_agents.yaml +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/.cloudbuild/ci/test.yaml +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/.cloudbuild/ci/test_makefile.yaml +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/.cloudbuild/ci/test_pipeline_parity.yaml +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/.cloudbuild/ci/test_remote_template.yaml +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/.cloudbuild/ci/test_templated_agents.yaml +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/.cloudbuild/terraform/apis.tf +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/.cloudbuild/terraform/build_triggers.tf +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/.cloudbuild/terraform/service_account.tf +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/.cloudbuild/terraform/storage.tf +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/.cloudbuild/terraform/variables.tf +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/.github/workflows/docs.yml +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/CODE_OF_CONDUCT.md +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/CONTRIBUTING.md +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/LICENSE +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/Makefile +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/README.md +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/adk_base/.template/templateconfig.yaml +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/adk_base/README.md +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/adk_base/app/agent.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/adk_base/notebooks/adk_app_testing.ipynb +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/adk_base/notebooks/evaluating_adk_agent.ipynb +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/adk_base/tests/integration/test_agent.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/adk_gemini_fullstack/README.md +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/adk_gemini_fullstack/app/agent.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/adk_gemini_fullstack/app/config.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/adk_gemini_fullstack/notebooks/adk_app_testing.ipynb +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/adk_gemini_fullstack/notebooks/evaluating_adk_agent.ipynb +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/adk_gemini_fullstack/tests/integration/test_agent.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/agentic_rag/.template/templateconfig.yaml +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/agentic_rag/README.md +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/agentic_rag/app/agent.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/agentic_rag/app/retrievers.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/agentic_rag/app/templates.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/agentic_rag/notebooks/adk_app_testing.ipynb +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/agentic_rag/notebooks/evaluating_adk_agent.ipynb +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/agentic_rag/tests/integration/test_agent.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/crewai_coding_crew/README.md +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/crewai_coding_crew/app/agent.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/crewai_coding_crew/app/crew/config/agents.yaml +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/crewai_coding_crew/app/crew/config/tasks.yaml +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/crewai_coding_crew/app/crew/crew.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/crewai_coding_crew/notebooks/evaluating_crewai_agent.ipynb +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/crewai_coding_crew/notebooks/evaluating_langgraph_agent.ipynb +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/langgraph_base_react/README.md +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/langgraph_base_react/app/agent.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/langgraph_base_react/notebooks/evaluating_langgraph_agent.ipynb +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/live_api/.template/templateconfig.yaml +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/live_api/README.md +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/live_api/app/agent.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/live_api/app/server.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/live_api/tests/integration/test_server_e2e.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/live_api/tests/load_test/load_test.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/docs/cli/index.md +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/docs/cli/setup_cicd.md +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/docs/guide/data-ingestion.md +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/docs/guide/deploy-ui.md +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/docs/guide/deployment.md +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/docs/guide/development-guide.md +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/docs/guide/getting-started.md +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/docs/guide/installation.md +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/docs/guide/observability.md +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/docs/guide/template-config-reference.md +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/docs/guide/troubleshooting.md +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/docs/guide/video-tutorials.md +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/docs/guide/why_starter_pack.md +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/docs/images/adk_gemini_fullstack.gif +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/docs/images/adk_gemini_fullstack_architecture.png +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/docs/images/adk_logo.png +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/docs/images/agent_starter_pack_screenshot.png +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/docs/images/ags_high_level_architecture.png +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/docs/images/icon.png +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/docs/images/logo.png +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/docs/images/prototype_to_prod.png +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/docs/images/why_sp_edited.png +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/docs/images/why_starter_pack.png +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/docs/package-lock.json +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/docs/package.json +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/llm.txt +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/base_template/.gitignore +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/base_template/GEMINI.md +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/base_template/Makefile +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/base_template/README.md +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/base_template/app/__init__.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/base_template/app/utils/gcs.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/base_template/app/utils/tracing.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/base_template/app/utils/typing.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/base_template/deployment/README.md +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/base_template/deployment/terraform/apis.tf +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/base_template/deployment/terraform/dev/apis.tf +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/base_template/deployment/terraform/dev/log_sinks.tf +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/base_template/deployment/terraform/dev/providers.tf +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/base_template/deployment/terraform/dev/storage.tf +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/base_template/deployment/terraform/dev/vars/env.tfvars +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/base_template/deployment/terraform/locals.tf +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/base_template/deployment/terraform/log_sinks.tf +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/base_template/deployment/terraform/providers.tf +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/base_template/deployment/terraform/storage.tf +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/base_template/deployment/terraform/vars/env.tfvars +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.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.10.0 → agent_starter_pack-0.11.0}/src/base_template/tests/unit/test_dummy.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.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.10.0 → agent_starter_pack-0.11.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.10.0 → agent_starter_pack-0.11.0}/src/cli/utils/__init__.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/cli/utils/cicd.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/cli/utils/datastores.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/cli/utils/gcp.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/cli/utils/version.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/data_ingestion/README.md +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/data_ingestion/data_ingestion_pipeline/components/ingest_data.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/data_ingestion/data_ingestion_pipeline/components/process_data.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/data_ingestion/data_ingestion_pipeline/pipeline.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/data_ingestion/data_ingestion_pipeline/submit_pipeline.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/data_ingestion/pyproject.toml +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/data_ingestion/uv.lock +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/deployment_targets/agent_engine/deployment_metadata.json +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/deployment_targets/agent_engine/notebooks/intro_agent_engine.ipynb +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/deployment_targets/agent_engine/tests/integration/test_agent_engine_app.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/deployment_targets/agent_engine/tests/load_test/.results/.placeholder +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/deployment_targets/agent_engine/tests/load_test/README.md +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/deployment_targets/agent_engine/tests/load_test/load_test.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/deployment_targets/cloud_run/Dockerfile +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/deployment_targets/cloud_run/tests/integration/test_server_e2e.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/deployment_targets/cloud_run/tests/load_test/.results/.placeholder +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/deployment_targets/cloud_run/tests/load_test/README.md +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/deployment_targets/cloud_run/tests/load_test/load_test.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/adk_gemini_fullstack/frontend/components.json +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/adk_gemini_fullstack/frontend/eslint.config.js +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/adk_gemini_fullstack/frontend/index.html +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/adk_gemini_fullstack/frontend/package-lock.json +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/adk_gemini_fullstack/frontend/package.json +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/adk_gemini_fullstack/frontend/src/App.tsx +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ActivityTimeline.tsx +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ChatMessagesView.tsx +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/InputForm.tsx +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/WelcomeScreen.tsx +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/badge.tsx +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/button.tsx +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/card.tsx +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/input.tsx +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/scroll-area.tsx +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/select.tsx +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/tabs.tsx +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/adk_gemini_fullstack/frontend/src/components/ui/textarea.tsx +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/adk_gemini_fullstack/frontend/src/global.css +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/adk_gemini_fullstack/frontend/src/main.tsx +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/adk_gemini_fullstack/frontend/src/utils.ts +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/adk_gemini_fullstack/frontend/src/vite-env.d.ts +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/adk_gemini_fullstack/frontend/tsconfig.json +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/adk_gemini_fullstack/frontend/tsconfig.node.json +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/adk_gemini_fullstack/frontend/vite.config.ts +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/package-lock.json +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/package.json +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/public/favicon.ico +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/public/index.html +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/public/robots.txt +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/src/App.scss +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/src/App.test.tsx +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/src/App.tsx +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/src/components/audio-pulse/AudioPulse.tsx +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/src/components/audio-pulse/audio-pulse.scss +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/src/components/control-tray/ControlTray.tsx +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/src/components/control-tray/control-tray.scss +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/src/components/logger/Logger.tsx +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/src/components/logger/logger.scss +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/src/components/logger/mock-logs.ts +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/src/components/side-panel/SidePanel.tsx +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/src/components/side-panel/side-panel.scss +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/src/contexts/LiveAPIContext.tsx +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/src/hooks/use-live-api.ts +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/src/hooks/use-media-stream-mux.ts +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/src/hooks/use-screen-capture.ts +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/src/hooks/use-webcam.ts +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/src/index.css +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/src/index.tsx +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/src/multimodal-live-types.ts +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/src/react-app-env.d.ts +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/src/reportWebVitals.ts +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/src/setupTests.ts +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/src/utils/audio-recorder.ts +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/src/utils/audio-streamer.ts +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/src/utils/audioworklet-registry.ts +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/src/utils/multimodal-live-client.ts +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/src/utils/store-logger.ts +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/src/utils/utils.ts +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/src/utils/worklets/audio-processing.ts +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/src/utils/worklets/vol-meter.ts +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/live_api_react/frontend/tsconfig.json +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/streamlit/frontend/side_bar.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/streamlit/frontend/streamlit_app.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/streamlit/frontend/style/app_markdown.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/streamlit/frontend/utils/chat_utils.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/streamlit/frontend/utils/local_chat_history.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/streamlit/frontend/utils/message_editing.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/streamlit/frontend/utils/multimodal_utils.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/streamlit/frontend/utils/stream_handler.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/frontends/streamlit/frontend/utils/title_summary.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/resources/containers/data_processing/Dockerfile +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/resources/containers/e2e-tests/Dockerfile +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/resources/docs/adk-cheatsheet.md +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/resources/idx/.idx/dev.nix +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/resources/idx/idx-template.json +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/resources/idx/idx-template.nix +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/utils/generate_locks.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/utils/lock_utils.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/src/utils/watch_and_rebuild.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/tests/__init__.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/tests/cicd/example.env +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/tests/cli/commands/test_create.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/tests/cli/commands/test_list.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/tests/cli/commands/test_setup_cicd.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/tests/cli/utils/test_cicd.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/tests/integration/test_makefile_usability.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/tests/integration/test_pipeline_parity.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/tests/integration/test_template_linting.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/tests/integration/test_templated_patterns.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/tests/integration/utils.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/tests/test_frontend/test_side_bar.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/tests/test_frontend/test_streamlit_app.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/tests/test_frontend/test_utils/test_chat_utils.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/tests/test_frontend/test_utils/test_local_chat_history.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/tests/test_frontend/test_utils/test_message_editing.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/tests/test_frontend/test_utils/test_multimodal_utils.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/tests/test_frontend/test_utils/test_stream_handler.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/tests/utils/__init__.py +0 -0
- {agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/tests/utils/get_agents.py +0 -0
@@ -0,0 +1 @@
|
|
1
|
+
GEMINI.md
|
@@ -0,0 +1,130 @@
|
|
1
|
+
# Agent Starter Pack - Coding Agent Guide
|
2
|
+
|
3
|
+
This document provides essential guidance, architectural insights, and best practices for AI coding agents tasked with modifying the Google Cloud Agent Starter Pack. Adhering to these principles is critical for making safe, consistent, and effective changes.
|
4
|
+
|
5
|
+
## Core Principles for AI Agents
|
6
|
+
|
7
|
+
1. **Preserve and Isolate:** Your primary objective is surgical precision. Modify *only* the code segments directly related to the user's request. Preserve all surrounding code, comments, and formatting. Do not rewrite entire files or functions to make a small change.
|
8
|
+
2. **Follow Conventions:** This project relies heavily on established patterns. Before writing new code, analyze the surrounding files to understand and replicate existing conventions for naming, templating logic, and directory structure.
|
9
|
+
3. **Search Comprehensively:** A single change often requires updates in multiple places. When modifying configuration, variables, or infrastructure, you **must** search across the entire repository, including:
|
10
|
+
* `src/base_template/` (the core template)
|
11
|
+
* `src/deployment_targets/` (environment-specific overrides)
|
12
|
+
* `.github/` and `.cloudbuild/` (CI/CD workflows)
|
13
|
+
* `docs/` (user-facing documentation)
|
14
|
+
|
15
|
+
## Project Architecture Overview
|
16
|
+
|
17
|
+
### Templating Engine: Cookiecutter + Jinja2
|
18
|
+
|
19
|
+
The starter pack uses **Cookiecutter** to generate project scaffolding from templates that are heavily customized with the **Jinja2** templating language. Understanding the rendering process is key to avoiding errors.
|
20
|
+
|
21
|
+
**Multi-Phase Template Processing:**
|
22
|
+
|
23
|
+
Templates are processed in a specific order. A failure at any stage will break the project generation.
|
24
|
+
|
25
|
+
1. **Cookiecutter Variable Substitution:** Simple replacement of `{{cookiecutter.variable_name}}` placeholders with values from `cookiecutter.json`.
|
26
|
+
2. **Jinja2 Logic Execution:** Conditional blocks (`{% if %}`), loops (`{% for %}`), and other logic are executed. This is the most complex and error-prone stage.
|
27
|
+
3. **File/Directory Name Templating:** File and directory names containing Jinja2 blocks are rendered. For example, `{% if cookiecutter.cicd_runner == 'github_actions' %}.github{% else %}unused_github{% endif %}`.
|
28
|
+
|
29
|
+
### Key Directory Structures
|
30
|
+
|
31
|
+
- `src/base_template/`: This is the **core template**. Most changes that should apply to all generated projects should start here.
|
32
|
+
- `src/deployment_targets/`: Contains files that **override or are added to** the `base_template` for a specific deployment target (e.g., `cloud_run`, `gke`, `agent_engine`). If a file exists in both `base_template` and a deployment target, the latter is typically used.
|
33
|
+
- `agents/`: Contains pre-packaged, self-contained agent examples. Each has its own `.template/templateconfig.yaml` to define its specific variables and dependencies.
|
34
|
+
- `src/cli/commands`: Contains the logic for the CLI commands, such as `create` and `setup-cicd`.
|
35
|
+
|
36
|
+
### CLI Commands
|
37
|
+
|
38
|
+
- `create.py`: Handles the creation of new agent projects. It orchestrates the template processing, configuration merging, and deployment target selection.
|
39
|
+
- `setup_cicd.py`: Automates the setup of the CI/CD pipeline. It interacts with `gcloud` and `gh` to configure GitHub repositories, Cloud Build triggers, and Terraform backend.
|
40
|
+
|
41
|
+
### Template Processing
|
42
|
+
|
43
|
+
- `template.py`: Located in `src/cli/utils`, this script contains the core logic for processing the templates. It copies the base template, overlays the deployment target files, and then applies the agent-specific files.
|
44
|
+
|
45
|
+
## Critical Jinja Templating Rules
|
46
|
+
|
47
|
+
Failure to follow these rules is the most common source of project generation errors.
|
48
|
+
|
49
|
+
### 1. Block Balancing
|
50
|
+
**Every opening Jinja block must have a corresponding closing block.** This is the most critical rule.
|
51
|
+
|
52
|
+
- `{% if ... %}` requires `{% endif %}`
|
53
|
+
- `{% for ... %}` requires `{% endfor %}`
|
54
|
+
- `{% raw %}` requires `{% endraw %}`
|
55
|
+
|
56
|
+
**Correct:**
|
57
|
+
```jinja
|
58
|
+
{% if cookiecutter.deployment_target == 'cloud_run' %}
|
59
|
+
# Cloud Run specific content
|
60
|
+
{% endif %}
|
61
|
+
```
|
62
|
+
|
63
|
+
### 2. Variable Usage
|
64
|
+
Distinguish between substitution and logic:
|
65
|
+
|
66
|
+
- **Substitution (in file content):** Use double curly braces: `{{ cookiecutter.project_name }}`
|
67
|
+
- **Logic (in `if`/`for` blocks):** Use the variable directly: `{% if cookiecutter.use_alloydb %}`
|
68
|
+
|
69
|
+
### 3. Whitespace Control
|
70
|
+
Jinja is sensitive to whitespace. Use hyphens to control newlines and prevent unwanted blank lines in rendered files.
|
71
|
+
|
72
|
+
- `{%-` removes whitespace before the block.
|
73
|
+
- `-%}` removes whitespace after the block.
|
74
|
+
|
75
|
+
**Example:**
|
76
|
+
```jinja
|
77
|
+
{%- if cookiecutter.some_option %}
|
78
|
+
option = true
|
79
|
+
{%- endif %}
|
80
|
+
```
|
81
|
+
|
82
|
+
## Terraform Best Practices
|
83
|
+
|
84
|
+
### Unified Service Account (`app_sa`)
|
85
|
+
The project uses a single, unified application service account (`app_sa`) across all deployment targets to simplify IAM management.
|
86
|
+
|
87
|
+
- **Do not** create target-specific service accounts (e.g., `cloud_run_sa`).
|
88
|
+
- Define roles for this account in `app_sa_roles`.
|
89
|
+
- Reference this account consistently in all Terraform and CI/CD files.
|
90
|
+
|
91
|
+
### Resource Referencing
|
92
|
+
Use consistent and clear naming for Terraform resources. When referencing resources, especially those created conditionally or with `for_each`, ensure the reference is also correctly keyed.
|
93
|
+
|
94
|
+
**Example:**
|
95
|
+
```hcl
|
96
|
+
# Creation
|
97
|
+
resource "google_service_account" "app_sa" {
|
98
|
+
for_each = local.deploy_project_ids # e.g., {"staging" = "...", "prod" = "..."}
|
99
|
+
account_id = "${var.project_name}-app"
|
100
|
+
# ...
|
101
|
+
}
|
102
|
+
|
103
|
+
# Correct Reference
|
104
|
+
# In a Cloud Run module for the staging environment
|
105
|
+
service_account = google_service_account.app_sa["staging"].email
|
106
|
+
```
|
107
|
+
|
108
|
+
## CI/CD Integration (GitHub Actions & Cloud Build)
|
109
|
+
|
110
|
+
The project maintains parallel CI/CD implementations. **Any change to CI/CD logic must be applied to both.**
|
111
|
+
|
112
|
+
- **GitHub Actions:** Configured in `.github/workflows/`. Uses `${{ vars.VAR_NAME }}` for repository variables.
|
113
|
+
- **Google Cloud Build:** Configured in `.cloudbuild/`. Uses `${_VAR_NAME}` for substitution variables.
|
114
|
+
|
115
|
+
When adding a new variable or secret, ensure it is configured correctly for both systems in the Terraform scripts that manage them (e.g., `github_actions_variable` resource and Cloud Build trigger substitutions).
|
116
|
+
|
117
|
+
## File Modification Checklist
|
118
|
+
|
119
|
+
Before finalizing any change, verify the following:
|
120
|
+
|
121
|
+
- [ ] **Jinja Syntax:** Are all `{% if %}` and `{% for %}` blocks correctly closed with `{% endif %}` and `{% endfor %}`?
|
122
|
+
- [ ] **Variable Consistency:** Is the `cookiecutter.` variable name spelled correctly and used consistently across all modified files?
|
123
|
+
- [ ] **Cross-Target Impact:** If you changed the `base_template`, have you checked if any `deployment_targets` need corresponding updates?
|
124
|
+
- [ ] **CI/CD Parity:** If you modified a CI/CD workflow, did you apply the equivalent change to the other system (GitHub Actions vs. Cloud Build)?
|
125
|
+
- [ ] **Terraform Validation:** If you changed Terraform files, are resource references correct? Does it pass `terraform validate`?
|
126
|
+
- [ ] **Documentation:** Does any user-facing documentation in `docs/` need to be updated to reflect the change?
|
127
|
+
|
128
|
+
### Key Tooling
|
129
|
+
|
130
|
+
- **`uv` for Python Command Execution:** `uv` is the primary tool used for managing Python dependencies and executing Python commands within the project, including CLI operations and CI/CD steps. This ensures consistent, isolated, and efficient execution environments.
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: agent-starter-pack
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.11.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
|
@@ -39,7 +39,7 @@ Description-Content-Type: text/markdown
|
|
39
39
|
</a> [](https://shell.cloud.google.com/cloudshell/editor?cloudshell_git_repo=https%3A%2F%2Fgithub.com%2Feliasecchig%2Fasp-open-in-cloud-shell&cloudshell_print=open-in-cs) 
|
40
40
|
|
41
41
|
|
42
|
-
The `agent-starter-pack` is a collection of production-ready Generative AI Agent templates built for Google Cloud. <br>
|
42
|
+
The `agent-starter-pack` is a Python package that provides a collection of production-ready Generative AI Agent templates built for Google Cloud. <br>
|
43
43
|
It accelerates development by providing a holistic, production-ready solution, addressing common challenges (Deployment & Operations, Evaluation, Customization, Observability) in building and deploying GenAI agents.
|
44
44
|
|
45
45
|
| ⚡️ Launch | 🧪 Experiment | ✅ Deploy | 🛠️ Customize |
|
@@ -16,7 +16,7 @@
|
|
16
16
|
</a> [](https://shell.cloud.google.com/cloudshell/editor?cloudshell_git_repo=https%3A%2F%2Fgithub.com%2Feliasecchig%2Fasp-open-in-cloud-shell&cloudshell_print=open-in-cs) 
|
17
17
|
|
18
18
|
|
19
|
-
The `agent-starter-pack` is a collection of production-ready Generative AI Agent templates built for Google Cloud. <br>
|
19
|
+
The `agent-starter-pack` is a Python package that provides a collection of production-ready Generative AI Agent templates built for Google Cloud. <br>
|
20
20
|
It accelerates development by providing a holistic, production-ready solution, addressing common challenges (Deployment & Operations, Evaluation, Customization, Observability) in building and deploying GenAI agents.
|
21
21
|
|
22
22
|
| ⚡️ Launch | 🧪 Experiment | ✅ Deploy | 🛠️ Customize |
|
@@ -21,7 +21,7 @@ settings:
|
|
21
21
|
"langchain~=0.3.14",
|
22
22
|
"langchain-community~=0.3.17",
|
23
23
|
"langchain-openai~=0.3.5",
|
24
|
-
"langgraph~=0.
|
25
|
-
"crewai~=0.
|
24
|
+
"langgraph~=0.6.2",
|
25
|
+
"crewai~=0.152.0"
|
26
26
|
]
|
27
27
|
example_question: "How can I implement a function to sort a list in Python?"
|
{agent_starter_pack-0.10.0 → agent_starter_pack-0.11.0}/agents/live_api/tests/unit/test_server.py
RENAMED
@@ -126,10 +126,11 @@ async def test_websocket_endpoint() -> None:
|
|
126
126
|
# Verify mock interactions
|
127
127
|
mock_genai.aio.live.connect.assert_called_once()
|
128
128
|
assert mock_session._ws.recv.called
|
129
|
+
await mock_session._ws.recv.aclose()
|
129
130
|
|
130
131
|
|
131
132
|
@pytest.mark.asyncio
|
132
|
-
|
133
|
+
def test_websocket_error_handling() -> None:
|
133
134
|
"""Test websocket error handling."""
|
134
135
|
from app.server import app
|
135
136
|
|
@@ -24,6 +24,7 @@ export default defineConfig({
|
|
24
24
|
nav: [
|
25
25
|
{ text: 'Home', link: '/' },
|
26
26
|
{ text: 'Guide', link: '/guide/getting-started' },
|
27
|
+
{ text: 'Remote Templates', link: '/remote-templates/' },
|
27
28
|
{ text: 'Agents', link: '/agents/overview' },
|
28
29
|
{ text: 'CLI', link: '/cli/index.md' }
|
29
30
|
],
|
@@ -44,9 +45,11 @@ export default defineConfig({
|
|
44
45
|
]
|
45
46
|
},
|
46
47
|
{
|
47
|
-
text: '
|
48
|
+
text: 'Remote Templates',
|
48
49
|
items: [
|
49
|
-
{ text: '
|
50
|
+
{ text: 'Overview', link: '/remote-templates/' },
|
51
|
+
{ text: 'Using Remote Templates', link: '/remote-templates/using-remote-templates' },
|
52
|
+
{ text: 'Creating Remote Templates', link: '/remote-templates/creating-remote-templates' },
|
50
53
|
{ text: 'Template Config Reference', link: '/guide/template-config-reference' }
|
51
54
|
]
|
52
55
|
},
|
@@ -61,6 +64,8 @@ export default defineConfig({
|
|
61
64
|
text: 'CLI Reference',
|
62
65
|
items: [
|
63
66
|
{ text: 'create', link: '/cli/create' },
|
67
|
+
{ text: 'enhance', link: '/cli/enhance' },
|
68
|
+
{ text: 'list', link: '/cli/list' },
|
64
69
|
{ text: 'setup-cicd', link: '/cli/setup_cicd' }
|
65
70
|
]
|
66
71
|
}
|
@@ -8,7 +8,6 @@ The Agent Starter Pack follows a "bring your own agent" approach. It provides se
|
|
8
8
|
| Agent Name | Description | Use Case |
|
9
9
|
|------------|-------------|----------|
|
10
10
|
| `adk_base` | A base ReAct agent implemented using Google's [Agent Development Kit](https://github.com/google/adk-python) | General purpose conversational agent |
|
11
|
-
| `adk_gemini_fullstack` | A production-ready fullstack research agent with Gemini | Complex research and information synthesis |
|
12
11
|
| `agentic_rag` | A RAG agent for document retrieval and Q&A | Document search and question answering |
|
13
12
|
| `langgraph_base_react` | A base ReAct agent using LangGraph | Graph based conversational agent |
|
14
13
|
| `crewai_coding_crew` | A multi-agent system implemented with CrewAI | Collaborative coding assistance |
|
@@ -0,0 +1,176 @@
|
|
1
|
+
# create
|
2
|
+
|
3
|
+
Create new GCP-based AI agent projects from built-in agents or remote templates.
|
4
|
+
|
5
|
+
## Usage
|
6
|
+
|
7
|
+
```bash
|
8
|
+
uvx agent-starter-pack create PROJECT_NAME [OPTIONS]
|
9
|
+
```
|
10
|
+
|
11
|
+
## Arguments
|
12
|
+
|
13
|
+
- `PROJECT_NAME`: Name for your new agent project directory and base for resource naming.
|
14
|
+
*Note: This name will be converted to lowercase and must be 26 characters or less.*
|
15
|
+
|
16
|
+
## Template Selection
|
17
|
+
|
18
|
+
### `--agent`, `-a` TEMPLATE
|
19
|
+
Specify which template to use for your agent:
|
20
|
+
|
21
|
+
**Built-in agents:**
|
22
|
+
```bash
|
23
|
+
uvx agent-starter-pack create my-agent -a adk_base
|
24
|
+
uvx agent-starter-pack create my-agent -a chat_agent
|
25
|
+
```
|
26
|
+
|
27
|
+
**Remote templates:**
|
28
|
+
```bash
|
29
|
+
# Full GitHub URL
|
30
|
+
uvx agent-starter-pack create my-agent -a https://github.com/user/repo
|
31
|
+
|
32
|
+
# Shorthand notation
|
33
|
+
uvx agent-starter-pack create my-agent -a github.com/user/repo@main
|
34
|
+
|
35
|
+
# ADK samples shortcut
|
36
|
+
uvx agent-starter-pack create my-agent -a adk@gemini-fullstack
|
37
|
+
|
38
|
+
# Use your existing project as source
|
39
|
+
uvx agent-starter-pack create my-agent -a local@./path/to/project
|
40
|
+
```
|
41
|
+
|
42
|
+
If omitted, you'll see an interactive list of available agents.
|
43
|
+
|
44
|
+
## Deployment Options
|
45
|
+
|
46
|
+
### `--deployment-target`, `-d` TARGET
|
47
|
+
Deployment target for your agent:
|
48
|
+
- `cloud_run` - Deploy to Google Cloud Run
|
49
|
+
- `agent_engine` - Deploy to Google Cloud Agent Engine
|
50
|
+
|
51
|
+
### `--cicd-runner` RUNNER
|
52
|
+
CI/CD runner to use:
|
53
|
+
- `google_cloud_build` - Use Google Cloud Build
|
54
|
+
- `github_actions` - Use GitHub Actions
|
55
|
+
|
56
|
+
### `--region` REGION
|
57
|
+
GCP region for deployment (default: `us-central1`)
|
58
|
+
|
59
|
+
## Data & Storage Options
|
60
|
+
|
61
|
+
### `--include-data-ingestion`, `-i`
|
62
|
+
Include data ingestion pipeline components in the project.
|
63
|
+
|
64
|
+
### `--datastore`, `-ds` DATASTORE
|
65
|
+
Type of datastore for data ingestion (requires `--include-data-ingestion`):
|
66
|
+
- `vertex_ai_search`
|
67
|
+
- `vertex_ai_vector_search`
|
68
|
+
- `alloydb`
|
69
|
+
|
70
|
+
### `--session-type` TYPE
|
71
|
+
Session storage type (for Cloud Run deployment):
|
72
|
+
- `in_memory` - Store sessions in memory
|
73
|
+
- `alloydb` - Store sessions in AlloyDB
|
74
|
+
- `agent_engine` - Use Agent Engine session management
|
75
|
+
|
76
|
+
## Project Creation Options
|
77
|
+
|
78
|
+
### `--output-dir`, `-o` DIRECTORY
|
79
|
+
Output directory for the project (default: current directory)
|
80
|
+
|
81
|
+
### `--in-folder`
|
82
|
+
Create agent files directly in the current directory instead of creating a new project subdirectory.
|
83
|
+
|
84
|
+
**Standard behavior:**
|
85
|
+
```bash
|
86
|
+
uvx agent-starter-pack create my-agent -a template
|
87
|
+
# Creates: ./my-agent/[project files]
|
88
|
+
```
|
89
|
+
|
90
|
+
**In-folder behavior:**
|
91
|
+
```bash
|
92
|
+
uvx agent-starter-pack create my-agent -a template --in-folder
|
93
|
+
# Creates: ./[project files] (in current directory)
|
94
|
+
```
|
95
|
+
|
96
|
+
**Use cases:**
|
97
|
+
- Adding agent capabilities to existing projects
|
98
|
+
- Working within established repository structures
|
99
|
+
- Containerized development environments
|
100
|
+
|
101
|
+
**Automatic Backup:** When using `--in-folder`, a complete backup of your directory is automatically created as `.backup_[dirname]_[timestamp]` before any changes are made.
|
102
|
+
|
103
|
+
## Automation Options
|
104
|
+
|
105
|
+
### `--auto-approve`
|
106
|
+
Skip interactive confirmation prompts for GCP credentials and region.
|
107
|
+
|
108
|
+
### `--skip-checks`
|
109
|
+
Skip verification checks for GCP authentication and Vertex AI connection.
|
110
|
+
|
111
|
+
### `--debug`
|
112
|
+
Enable debug logging for troubleshooting.
|
113
|
+
|
114
|
+
## Examples
|
115
|
+
|
116
|
+
### Basic Usage
|
117
|
+
|
118
|
+
```bash
|
119
|
+
# Create a new project interactively
|
120
|
+
uvx agent-starter-pack create my-agent-project
|
121
|
+
|
122
|
+
# Create with specific built-in agent
|
123
|
+
uvx agent-starter-pack create my-agent -a adk_base -d cloud_run
|
124
|
+
```
|
125
|
+
|
126
|
+
### Remote Templates
|
127
|
+
|
128
|
+
```bash
|
129
|
+
# Use ADK samples
|
130
|
+
uvx agent-starter-pack create my-agent -a adk@gemini-fullstack
|
131
|
+
|
132
|
+
# Use GitHub repository
|
133
|
+
uvx agent-starter-pack create my-agent -a https://github.com/user/my-template
|
134
|
+
|
135
|
+
# Use shorthand notation with branch
|
136
|
+
uvx agent-starter-pack create my-agent -a github.com/user/template@develop
|
137
|
+
|
138
|
+
# Use your existing project
|
139
|
+
uvx agent-starter-pack create my-agent -a local@./my-project
|
140
|
+
```
|
141
|
+
|
142
|
+
### Advanced Configuration
|
143
|
+
|
144
|
+
```bash
|
145
|
+
# Include data ingestion with specific datastore
|
146
|
+
uvx agent-starter-pack create my-rag-agent -a adk_base -i -ds alloydb -d cloud_run
|
147
|
+
|
148
|
+
# Create with custom region and CI/CD
|
149
|
+
uvx agent-starter-pack create my-agent -a template-url --region europe-west1 --cicd-runner github_actions
|
150
|
+
|
151
|
+
# In-folder creation (add to existing project)
|
152
|
+
uvx agent-starter-pack create my-agent -a adk@data-science --in-folder
|
153
|
+
|
154
|
+
# Skip all prompts for automation
|
155
|
+
uvx agent-starter-pack create my-agent -a template-url --auto-approve --skip-checks
|
156
|
+
```
|
157
|
+
|
158
|
+
### Output Directory
|
159
|
+
|
160
|
+
```bash
|
161
|
+
# Create in specific directory
|
162
|
+
uvx agent-starter-pack create my-agent -o ./projects/
|
163
|
+
|
164
|
+
# Create in current directory with in-folder
|
165
|
+
uvx agent-starter-pack create existing-project -a template-url --in-folder
|
166
|
+
```
|
167
|
+
|
168
|
+
## Related Commands
|
169
|
+
|
170
|
+
- [`enhance`](./enhance.md) - Add agent capabilities to existing projects (automatically uses `--in-folder`)
|
171
|
+
- [`list`](./list.md) - List available templates and agents
|
172
|
+
|
173
|
+
## See Also
|
174
|
+
|
175
|
+
- [Using Remote Templates](../remote-templates/using-remote-templates.md) - Complete guide for using remote templates
|
176
|
+
- [Creating Remote Templates](../remote-templates/creating-remote-templates.md) - Guide for creating your own templates
|
@@ -0,0 +1,180 @@
|
|
1
|
+
# enhance
|
2
|
+
|
3
|
+
The `enhance` command adds agent-starter-pack capabilities to existing projects without creating a new directory. It's designed for upgrading prototypes to production-ready agents in-place.
|
4
|
+
|
5
|
+
## Usage
|
6
|
+
|
7
|
+
```bash
|
8
|
+
uvx agent-starter-pack enhance [TEMPLATE_PATH] [OPTIONS]
|
9
|
+
```
|
10
|
+
|
11
|
+
## Arguments
|
12
|
+
|
13
|
+
- `TEMPLATE_PATH` (optional): Can be:
|
14
|
+
- `.` (default) - Use current directory as template
|
15
|
+
- Local directory path - Use another local directory as template
|
16
|
+
- Agent name - Use a built-in agent (e.g., `adk_base`)
|
17
|
+
- Remote template - Use a remote template (e.g., `adk@gemini-fullstack`)
|
18
|
+
|
19
|
+
## Options
|
20
|
+
|
21
|
+
The `enhance` command supports all the same options as [`create`](./create.md), plus:
|
22
|
+
|
23
|
+
### `--base-template` TEMPLATE
|
24
|
+
Override the base template for inheritance when enhancing your existing project. Available base templates include:
|
25
|
+
- `adk_base` - Basic agent template (default)
|
26
|
+
- `langgraph_base_react` - LangGraph-based ReAct agent
|
27
|
+
- `agentic_rag` - RAG-enabled agent template
|
28
|
+
|
29
|
+
### Other Options
|
30
|
+
- `--name, -n` - Project name (defaults to current directory name)
|
31
|
+
- `--deployment-target, -d` - Deployment target (`agent_engine`, `cloud_run`)
|
32
|
+
- `--include-data-ingestion, -i` - Include data ingestion pipeline
|
33
|
+
- `--session-type` - Session storage type
|
34
|
+
- `--auto-approve` - Skip confirmation prompts
|
35
|
+
- And all other `create` command options
|
36
|
+
|
37
|
+
## Examples
|
38
|
+
|
39
|
+
### Basic Enhancement
|
40
|
+
|
41
|
+
```bash
|
42
|
+
# Enhance current project with default template
|
43
|
+
uvx agent-starter-pack enhance
|
44
|
+
|
45
|
+
# Enhance with a specific agent template
|
46
|
+
uvx agent-starter-pack enhance adk@gemini-fullstack
|
47
|
+
|
48
|
+
# Enhance with custom project name
|
49
|
+
uvx agent-starter-pack enhance --name my-enhanced-agent
|
50
|
+
```
|
51
|
+
|
52
|
+
### Advanced Options
|
53
|
+
|
54
|
+
```bash
|
55
|
+
# Enhance with specific deployment target
|
56
|
+
uvx agent-starter-pack enhance adk@data-science --deployment-target cloud_run
|
57
|
+
|
58
|
+
# Enhance with data ingestion capabilities
|
59
|
+
uvx agent-starter-pack enhance --include-data-ingestion --datastore alloydb
|
60
|
+
|
61
|
+
# Enhance with custom session storage
|
62
|
+
uvx agent-starter-pack enhance --session-type alloydb
|
63
|
+
```
|
64
|
+
|
65
|
+
### Base Template Inheritance
|
66
|
+
|
67
|
+
```bash
|
68
|
+
# Enhance current project with LangGraph capabilities
|
69
|
+
uvx agent-starter-pack enhance . --base-template langgraph_base_react
|
70
|
+
|
71
|
+
# Enhance with RAG-enabled base template
|
72
|
+
uvx agent-starter-pack enhance . --base-template agentic_rag
|
73
|
+
```
|
74
|
+
|
75
|
+
## Project Structure Validation
|
76
|
+
|
77
|
+
The enhance command validates your project structure and provides guidance:
|
78
|
+
|
79
|
+
**✅ Ideal Structure:**
|
80
|
+
```
|
81
|
+
your-project/
|
82
|
+
├── app/
|
83
|
+
│ └── agent.py # Your agent code
|
84
|
+
├── tests/
|
85
|
+
└── README.md
|
86
|
+
```
|
87
|
+
|
88
|
+
**⚠️ Missing /app Folder:**
|
89
|
+
If your project doesn't have an `/app` folder, the command will:
|
90
|
+
1. Display a warning about project structure
|
91
|
+
2. Explain the expected structure
|
92
|
+
3. Ask for confirmation to proceed (unless `--auto-approve` is used)
|
93
|
+
|
94
|
+
## How It Works
|
95
|
+
|
96
|
+
The `enhance` command is essentially an alias for:
|
97
|
+
```bash
|
98
|
+
uvx agent-starter-pack create PROJECT_NAME --agent TEMPLATE --in-folder
|
99
|
+
```
|
100
|
+
|
101
|
+
It automatically:
|
102
|
+
- Uses the current directory name as the project name (unless `--name` is specified)
|
103
|
+
- Enables `--in-folder` mode to template directly into the current directory
|
104
|
+
- Validates the project structure for compatibility
|
105
|
+
- Applies the same file merging logic as the `create` command
|
106
|
+
|
107
|
+
### Base Template Inheritance
|
108
|
+
|
109
|
+
When enhancing your existing project (using `local@.` or `local@/path/to/project`), the enhance command will:
|
110
|
+
|
111
|
+
1. **Show current inheritance**: Display which base template your project inherits from
|
112
|
+
2. **Provide guidance**: Show available alternative base templates and how to use them
|
113
|
+
3. **Support CLI override**: Use `--base-template` to override the base template specified in `pyproject.toml`
|
114
|
+
|
115
|
+
The inheritance hierarchy works as follows:
|
116
|
+
```
|
117
|
+
Your Existing Project
|
118
|
+
↓ (inherits from)
|
119
|
+
Base Template (adk_base, langgraph_base_react, etc.)
|
120
|
+
↓ (provides)
|
121
|
+
Core Infrastructure & Capabilities
|
122
|
+
```
|
123
|
+
|
124
|
+
## Use Cases
|
125
|
+
|
126
|
+
**Prototype to Production:**
|
127
|
+
```bash
|
128
|
+
# You have a prototype agent in /app/agent.py
|
129
|
+
uvx agent-starter-pack enhance adk@production-ready
|
130
|
+
```
|
131
|
+
|
132
|
+
**Add Infrastructure:**
|
133
|
+
```bash
|
134
|
+
# Add Terraform and deployment capabilities
|
135
|
+
uvx agent-starter-pack enhance --deployment-target cloud_run
|
136
|
+
```
|
137
|
+
|
138
|
+
**Add Data Pipeline:**
|
139
|
+
```bash
|
140
|
+
# Add data ingestion to existing agent
|
141
|
+
uvx agent-starter-pack enhance --include-data-ingestion --datastore alloydb
|
142
|
+
```
|
143
|
+
|
144
|
+
**Upgrade Agent Base:**
|
145
|
+
```bash
|
146
|
+
# Upgrade from basic to advanced agent template
|
147
|
+
uvx agent-starter-pack enhance adk@gemini-fullstack
|
148
|
+
|
149
|
+
# Or change base template inheritance
|
150
|
+
uvx agent-starter-pack enhance . --base-template langgraph_base_react
|
151
|
+
```
|
152
|
+
|
153
|
+
## Automatic Backup
|
154
|
+
|
155
|
+
The `enhance` command automatically creates a complete backup of your project before making any changes:
|
156
|
+
|
157
|
+
- **Location:** `.backup_[dirname]_[timestamp]` in the parent directory
|
158
|
+
- **Contents:** Complete copy of your entire project directory
|
159
|
+
- **Timing:** Created before any template files are applied
|
160
|
+
|
161
|
+
## Best Practices
|
162
|
+
|
163
|
+
1. **Review Backup:** Check that the backup was created successfully
|
164
|
+
2. **Follow Structure:** Organize your agent code in `/app/agent.py` for best compatibility
|
165
|
+
3. **Test Locally:** Use `--auto-approve` in CI/CD but test interactively first
|
166
|
+
4. **Review Changes:** After enhancement, review the generated files and configuration
|
167
|
+
|
168
|
+
## Troubleshooting
|
169
|
+
|
170
|
+
**"Project structure warning"**
|
171
|
+
- Organize your agent code in an `/app` folder
|
172
|
+
- Use `--auto-approve` to skip the confirmation prompt
|
173
|
+
|
174
|
+
**"Enhancement cancelled"**
|
175
|
+
- Create an `/app` folder with your `agent.py` file
|
176
|
+
- Re-run the command
|
177
|
+
|
178
|
+
**"Dependency conflicts"**
|
179
|
+
- Review and resolve conflicts in your `pyproject.toml`
|
180
|
+
- Consider using a virtual environment
|