google-agents-cli 1.6.1__tar.gz → 1.7.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.
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/PKG-INFO +1 -1
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/pyproject.toml +1 -1
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/_adk_client.py +86 -15
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/_modes.py +0 -2
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/_project.py +6 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/deploy/_operation.py +12 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/deploy/agent_runtime.py +110 -58
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/deploy/cmd_deploy.py +40 -4
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/dev/cmd_playground.py +1 -16
- google_agents_cli-1.7.0/src/google/agents/cli/eval/_events.py +116 -0
- google_agents_cli-1.7.0/src/google/agents/cli/eval/_live.py +325 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/eval/cmd_generate.py +94 -121
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/eval/cmd_run.py +13 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/publish/cmd_publish.py +3 -2
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/run/_local_server.py +29 -20
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/run/cmd_run.py +191 -52
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk/.template/templateconfig.yaml +2 -2
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/_shared/agents-cli-manifest.yaml +1 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/providers.tf +1 -1
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/variables.tf +8 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/single-project/providers.tf +1 -1
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/single-project/variables.tf +9 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/commands/create.py +417 -335
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/commands/enhance.py +17 -24
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/commands/upgrade.py +5 -4
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/_shared/deployment/terraform/cicd/service.tf +2 -1
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/_shared/deployment/terraform/single-project/service.tf +2 -1
- google_agents_cli-1.7.0/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/_shared/deployment_metadata.json +4 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/python/deployment/terraform/cicd/service.tf +10 -5
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/python/deployment/terraform/single-project/service.tf +10 -5
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/gke/_shared/deployment/terraform/cicd/service.tf +19 -11
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/gke/_shared/deployment/terraform/single-project/service.tf +15 -8
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/resources/locks/uv-adk-agent_runtime.lock +2 -2
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/resources/locks/uv-adk-cloud_run.lock +2 -2
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/resources/locks/uv-adk-gke.lock +2 -2
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/utils/backup.py +4 -8
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/utils/cli_options.py +10 -0
- google_agents_cli-1.7.0/src/google/agents/cli/scaffold/utils/copy_files.py +443 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/utils/fs.py +23 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/utils/merge.py +7 -7
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/utils/remote_template.py +21 -6
- google_agents_cli-1.7.0/src/google/agents/cli/scaffold/utils/symlinks.py +127 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/utils/template.py +12 -265
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-adk-code/SKILL.md +2 -1
- google_agents_cli-1.7.0/src/google/agents/cli/skills/data/google-agents-cli-adk-code/references/adk-python-live.md +753 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-adk-code/references/adk-python-workflows.md +1 -1
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-adk-code/references/adk-python.md +21 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-deploy/SKILL.md +5 -1
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-deploy/references/agent-runtime.md +6 -2
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-deploy/references/gke.md +3 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-eval/SKILL.md +17 -4
- google_agents_cli-1.7.0/src/google/agents/cli/skills/data/google-agents-cli-eval/references/live-eval.md +54 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-observability/SKILL.md +1 -1
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-publish/SKILL.md +3 -2
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-scaffold/SKILL.md +7 -3
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-workflow/SKILL.md +7 -6
- google_agents_cli-1.6.1/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/_shared/deployment_metadata.json +0 -4
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/LICENSE +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/README.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/__init__.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/_agent_platform.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/_click.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/_defaults.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/_experiments.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/_gcp_project.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/_output.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/_remote.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/_runner.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/_skills_check.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/_tools.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/_trust.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/auth.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/data/__init__.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/data/_recipe.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/data/cmd_data_ingestion.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/deploy/__init__.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/deploy/_utils.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/dev/__init__.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/dev/cmd_build.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/dev/cmd_install.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/dev/cmd_lint.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/eval/__init__.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/eval/_paths.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/eval/_synthesize_runner.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/eval/cmd_analyze.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/eval/cmd_compare.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/eval/cmd_dataset.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/eval/cmd_eval_group.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/eval/cmd_grade.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/eval/cmd_metric.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/eval/cmd_optimize.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/eval/cmd_submit.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/eval/eval_utils.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/eval/optimize_utils.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/extension/__init__.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/extension/_compat.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/extension/_loader.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/extension/_manifest.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/extension/_overrides.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/extension/_paths.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/extension/_refs.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/extension/_resolver.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/extension/_schema.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/extension/_spec.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/extension/_sync.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/extension/_trust.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/extension/cmd_extension_add.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/extension/cmd_extension_group.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/extension/cmd_extension_list.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/extension/cmd_extension_remove.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/extension/cmd_extension_update.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/info/__init__.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/info/cmd_info.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/infra/__init__.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/infra/_cicd_utils.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/infra/_terraform.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/infra/cmd_cicd.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/infra/cmd_datastore.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/infra/cmd_infra.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/infra/cmd_infra_show.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/infra/cmd_infra_single_project.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/main.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/publish/__init__.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/publish/cmd_publish_group.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/run/__init__.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/run/_multimodal.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/__init__.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/README.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk/app/__init__.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk/app/agent.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk/app/app_utils/a2a.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk/app/app_utils/reasoning_engine_adapter.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk/app/app_utils/services.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk/app/fast_api_app.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk/tests/eval/datasets/README.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk/tests/eval/datasets/basic-dataset.json +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk/tests/eval/eval_config.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk/tests/eval/response_quality.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk/tests/integration/test_agent.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_go/.template/templateconfig.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_go/Dockerfile +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_go/Makefile +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_go/README.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_go/app/agent.go +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_go/app/agent_test.go +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_go/appinfo/appinfo.go +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_go/appinfo/appinfo_test.go +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_go/apploader.go +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_go/appurl.go +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_go/e2e/integration/server_e2e_test.go +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_go/e2e/load_test/.results/.placeholder +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_go/e2e/load_test/README.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_go/e2e/load_test/load_test.go +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_go/eval/datasets/README.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_go/eval/datasets/basic-dataset.json +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_go/eval/eval_config.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_go/eval/response_quality.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_go/go.mod +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_go/go.sum +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_go/main.go +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_go/observability.go +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_go/observability_test.go +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_go/sessions/sessions.go +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_go/{{cookiecutter.agent_guidance_filename}} +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_java/.cloudbuild/pr_checks.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_java/.github/workflows/pr_checks.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_java/.template/templateconfig.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_java/Dockerfile +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_java/Makefile +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_java/README.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_java/pom.xml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_java/src/main/java/{{cookiecutter.java_package_path}}/Agent.java +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_java/src/main/java/{{cookiecutter.java_package_path}}/Main.java +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_java/src/test/java/{{cookiecutter.java_package_path}}/e2e/integration/ServerE2ETest.java +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_java/src/test/java/{{cookiecutter.java_package_path}}/e2e/load_test/.results/.placeholder +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_java/src/test/java/{{cookiecutter.java_package_path}}/e2e/load_test/LoadTest.java +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_java/src/test/java/{{cookiecutter.java_package_path}}/e2e/load_test/README.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_java/src/test/java/{{cookiecutter.java_package_path}}/unit/AgentTest.java +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_java/{{cookiecutter.agent_guidance_filename}} +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_ts/.cloudbuild/pr_checks.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_ts/.github/workflows/pr_checks.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_ts/.template/templateconfig.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_ts/Dockerfile +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_ts/Makefile +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_ts/README.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_ts/app/agent.ts +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_ts/package-lock.json +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_ts/package.json +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_ts/tests/integration/agent.test.ts +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_ts/tests/integration/server_e2e.test.ts +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_ts/tests/load_test/.results/.placeholder +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_ts/tests/load_test/README.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_ts/tests/load_test/load_test.ts +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/adk_ts/tests/unit/dummy.test.ts +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/empty_go/.template/templateconfig.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/empty_java/.template/templateconfig.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/empty_py/.template/templateconfig.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/agents/empty_ts/.template/templateconfig.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/apis.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/build_triggers.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/github.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/iam.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/locals.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/outputs.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/service_accounts.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/storage.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/vars/env.tfvars +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/wif.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/single-project/apis.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/single-project/iam.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/single-project/outputs.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/single-project/storage.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/single-project/vars/env.tfvars +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/go/.cloudbuild/deploy-to-prod.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/go/.cloudbuild/pr_checks.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/go/.cloudbuild/staging.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/go/.env +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/go/.env.example +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/go/.gcloudignore +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/go/.github/workflows/deploy-to-prod.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/go/.github/workflows/pr_checks.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/go/.github/workflows/staging.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/go/.gitignore +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/go/.golangci.yml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/go/deployment/terraform/cicd/telemetry.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/go/deployment/terraform/cicd/telemetry_outputs.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/go/deployment/terraform/shared/completions.sql +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/go/deployment/terraform/shared/genai_logs_schema.json +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/go/deployment/terraform/single-project/telemetry.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/go/deployment/terraform/single-project/telemetry_outputs.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/java/.cloudbuild/deploy-to-prod.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/java/.cloudbuild/staging.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/java/.env.example +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/java/.gcloudignore +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/java/.github/workflows/deploy-to-prod.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/java/.github/workflows/staging.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/java/.gitignore +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/java/src/main/resources/application.properties +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/python/.cloudbuild/deploy-to-prod.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/python/.cloudbuild/pr_checks.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/python/.cloudbuild/staging.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/python/.env +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/python/.env.example +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/python/.gcloudignore +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/python/.github/workflows/deploy-to-prod.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/python/.github/workflows/pr_checks.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/python/.github/workflows/staging.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/python/.gitignore +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/python/Dockerfile +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/python/README.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/python/deployment/terraform/cicd/telemetry.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/python/deployment/terraform/cicd/telemetry_outputs.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/python/deployment/terraform/shared/completions.sql +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/python/deployment/terraform/shared/genai_logs_schema.json +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/python/deployment/terraform/single-project/telemetry.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/python/deployment/terraform/single-project/telemetry_outputs.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/python/pyproject.toml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/python/tests/unit/test_dummy.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/python/{{cookiecutter.agent_guidance_filename}} +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/typescript/.cloudbuild/deploy-to-prod.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/typescript/.cloudbuild/staging.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/typescript/.dockerignore +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/typescript/.env.example +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/typescript/.gcloudignore +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/typescript/.github/workflows/deploy-to-prod.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/typescript/.github/workflows/staging.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/typescript/.gitignore +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/typescript/eslint.config.mjs +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/typescript/tsconfig.json +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/base_templates/typescript/vitest.config.ts +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/cmd_scaffold_group.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/commands/__init__.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/_shared/deployment/terraform/cicd/service_outputs.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/_shared/deployment/terraform/shared/dummy_source.b64 +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/_shared/deployment/terraform/single-project/service_outputs.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/python/tests/integration/test_server_e2e.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/python/tests/load_test/.results/.placeholder +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/python/tests/load_test/README.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/python/tests/load_test/load_test.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/go/deployment/terraform/cicd/service.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/go/deployment/terraform/cicd/service_outputs.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/go/deployment/terraform/single-project/service.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/go/deployment/terraform/single-project/service_outputs.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/java/deployment/terraform/cicd/service.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/java/deployment/terraform/cicd/service_outputs.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/java/deployment/terraform/single-project/service.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/java/deployment/terraform/single-project/service_outputs.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/python/deployment/terraform/cicd/service_outputs.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/python/deployment/terraform/single-project/service_outputs.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/python/tests/integration/test_server_e2e.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/python/tests/load_test/.results/.placeholder +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/python/tests/load_test/README.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/python/tests/load_test/load_test.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/typescript/deployment/terraform/cicd/service.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/typescript/deployment/terraform/cicd/service_outputs.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/typescript/deployment/terraform/single-project/service.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/typescript/deployment/terraform/single-project/service_outputs.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/gke/_shared/deployment/terraform/cicd/service_outputs.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/gke/_shared/deployment/terraform/single-project/service_outputs.tf +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/gke/python/tests/integration/test_server_e2e.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/gke/python/tests/load_test/.results/.placeholder +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/gke/python/tests/load_test/README.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/gke/python/tests/load_test/load_test.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/none/python/tests/integration/test_server_e2e.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/none/python/tests/load_test/.results/.placeholder +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/none/python/tests/load_test/README.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/deployment_targets/none/python/tests/load_test/load_test.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/utils/__init__.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/utils/command.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/utils/gcp.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/utils/generate_locks.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/utils/generation_metadata.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/utils/language.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/utils/lock_utils.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/utils/logging.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/utils/upgrade.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/scaffold/utils/version.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/setup/__init__.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/setup/_antigravity.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/setup/cmd_auth.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/setup/cmd_setup.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/setup/cmd_update.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/__init__.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/_bundle.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/README.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-adk-code/references/adk-go-workflows.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-adk-code/references/adk-go.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-adk-code/references/samples.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-deploy/references/batch-inference.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-deploy/references/cicd-pipeline.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-deploy/references/cloud-run.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-deploy/references/terraform-patterns.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-deploy/references/testing-deployed-agents.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-eval/references/advanced-commands.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-eval/references/builtin-tools-eval.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-eval/references/dataset_schema.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-eval/references/metrics-guide.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-eval/references/multimodal-eval.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-eval/references/user-simulation.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-observability/references/adk-docs.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-observability/references/bigquery-agent-analytics.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-observability/references/cloud-trace-and-logging.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-observability/references/feedback-mechanism.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-scaffold/references/flags.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-workflow/references/brainstorming.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-workflow/references/commands.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-workflow/references/extension.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-workflow/references/internals.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-workflow/references/spec-template.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/skills/data/google-agents-cli-workflow/references/terminology.md +0 -0
|
@@ -17,8 +17,10 @@
|
|
|
17
17
|
from __future__ import annotations
|
|
18
18
|
|
|
19
19
|
import asyncio
|
|
20
|
+
import enum
|
|
20
21
|
import json
|
|
21
22
|
import logging
|
|
23
|
+
import time
|
|
22
24
|
from collections.abc import (
|
|
23
25
|
AsyncGenerator,
|
|
24
26
|
Iterable,
|
|
@@ -36,6 +38,20 @@ _APP_INFO_TIMEOUT = 10
|
|
|
36
38
|
DEFAULT_WS_PATH = "/run_live"
|
|
37
39
|
DEFAULT_TURN_TIMEOUT = 120 # seconds to wait for a turn's turnComplete
|
|
38
40
|
|
|
41
|
+
# Live sessions where the server keeps working after a turnComplete report it
|
|
42
|
+
# as `interactionStatus`. IN_PROGRESS means more model output is still coming;
|
|
43
|
+
# anything else (IDLE, or its deprecated REQUIRES_ACTION spelling) ends the
|
|
44
|
+
# turn. UNSPECIFIED is the enum's zero value and carries no signal.
|
|
45
|
+
_STATUS_IN_PROGRESS = "IN_PROGRESS"
|
|
46
|
+
_STATUS_UNSPECIFIED = "INTERACTION_STATUS_UNSPECIFIED"
|
|
47
|
+
# An unrecognized status still ends the turn, but gets logged.
|
|
48
|
+
_STATUS_TERMINAL = frozenset({"IDLE", "REQUIRES_ACTION"})
|
|
49
|
+
|
|
50
|
+
# Fallback for models that don't report interactionStatus: ADK can schedule a
|
|
51
|
+
# NON_BLOCKING tool's response past the terminator, and on the wire that is
|
|
52
|
+
# indistinguishable from a call that is never answered.
|
|
53
|
+
DEFAULT_DEFERRED_RESPONSE_TIMEOUT = 30
|
|
54
|
+
|
|
39
55
|
# /run_live transcribes it back to text, so output stays gradable.
|
|
40
56
|
DEFAULT_MODALITIES = ("AUDIO",)
|
|
41
57
|
|
|
@@ -285,12 +301,21 @@ async def _stream_live_events(
|
|
|
285
301
|
await ws.send(json.dumps({"content": content}))
|
|
286
302
|
|
|
287
303
|
boundary = _TurnBoundary()
|
|
304
|
+
# Set once a turnComplete arrives with a tool call still open.
|
|
305
|
+
deferred_deadline: float | None = None
|
|
288
306
|
while True:
|
|
307
|
+
if deferred_deadline is None:
|
|
308
|
+
timeout = float(DEFAULT_TURN_TIMEOUT)
|
|
309
|
+
else:
|
|
310
|
+
timeout = max(0.0, deferred_deadline - time.monotonic())
|
|
289
311
|
try:
|
|
290
|
-
raw = await asyncio.wait_for(
|
|
291
|
-
ws.recv(), timeout=DEFAULT_TURN_TIMEOUT
|
|
292
|
-
)
|
|
312
|
+
raw = await asyncio.wait_for(ws.recv(), timeout=timeout)
|
|
293
313
|
except TimeoutError:
|
|
314
|
+
if deferred_deadline is not None:
|
|
315
|
+
# Nothing followed the provisional terminator, so it
|
|
316
|
+
# was the real end of the turn. An ordinary ending
|
|
317
|
+
# for a fire-and-forget tool -- not a stall.
|
|
318
|
+
break
|
|
294
319
|
logging.warning(
|
|
295
320
|
"Turn %d: no event for %ds, giving up on the turn.",
|
|
296
321
|
turn_index,
|
|
@@ -312,8 +337,23 @@ async def _stream_live_events(
|
|
|
312
337
|
if event is None:
|
|
313
338
|
continue
|
|
314
339
|
yield event
|
|
315
|
-
|
|
340
|
+
|
|
341
|
+
state = boundary.classify(event)
|
|
342
|
+
if state is _Boundary.TERMINAL:
|
|
316
343
|
break
|
|
344
|
+
if state is _Boundary.PROVISIONAL:
|
|
345
|
+
deferred_deadline = (
|
|
346
|
+
time.monotonic() + DEFAULT_DEFERRED_RESPONSE_TIMEOUT
|
|
347
|
+
)
|
|
348
|
+
elif deferred_deadline is not None:
|
|
349
|
+
# Only the answer extends the wait: metadata frames
|
|
350
|
+
# routinely follow a turnComplete and would hold it open.
|
|
351
|
+
if _event_has_function_response(event):
|
|
352
|
+
deferred_deadline = None # full turn budget again
|
|
353
|
+
elif _event_has_answer_content(event):
|
|
354
|
+
deferred_deadline = (
|
|
355
|
+
time.monotonic() + DEFAULT_DEFERRED_RESPONSE_TIMEOUT
|
|
356
|
+
)
|
|
317
357
|
|
|
318
358
|
yield None # end of turn
|
|
319
359
|
finally:
|
|
@@ -323,15 +363,27 @@ async def _stream_live_events(
|
|
|
323
363
|
pass
|
|
324
364
|
|
|
325
365
|
|
|
366
|
+
class _Boundary(enum.Enum):
|
|
367
|
+
"""What one event means for the end of the current logical turn."""
|
|
368
|
+
|
|
369
|
+
CONTINUE = "continue"
|
|
370
|
+
PROVISIONAL = "provisional"
|
|
371
|
+
TERMINAL = "terminal"
|
|
372
|
+
|
|
373
|
+
|
|
326
374
|
class _TurnBoundary:
|
|
327
|
-
"""Detect the
|
|
375
|
+
"""Detect the end of one logical live turn.
|
|
376
|
+
|
|
377
|
+
Some live models answer one prompt with several turns and report
|
|
378
|
+
``interactionStatus``; models that omit it use the heuristic below.
|
|
379
|
+
"""
|
|
328
380
|
|
|
329
381
|
def __init__(self) -> None:
|
|
330
382
|
self._tool_call_open = False
|
|
331
383
|
self._tool_response_seen = False
|
|
332
384
|
|
|
333
|
-
def
|
|
334
|
-
"""Feed one event;
|
|
385
|
+
def classify(self, event: dict) -> _Boundary:
|
|
386
|
+
"""Feed one event; report what it means for the current logical turn."""
|
|
335
387
|
if _event_has_function_call(event):
|
|
336
388
|
# Anything spoken before the call is not the post-tool answer.
|
|
337
389
|
self._tool_call_open = True
|
|
@@ -343,14 +395,33 @@ class _TurnBoundary:
|
|
|
343
395
|
self._tool_call_open = False
|
|
344
396
|
self._tool_response_seen = False
|
|
345
397
|
|
|
346
|
-
if event.get("turnComplete"):
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
398
|
+
if not event.get("turnComplete"):
|
|
399
|
+
return _Boundary.CONTINUE
|
|
400
|
+
|
|
401
|
+
status = str(event.get("interactionStatus") or "").upper()
|
|
402
|
+
# UNSPECIFIED carries no signal, so it falls through to the heuristic
|
|
403
|
+
# below rather than being read as an authoritative end of turn.
|
|
404
|
+
if status and status != _STATUS_UNSPECIFIED:
|
|
405
|
+
if status == _STATUS_IN_PROGRESS:
|
|
406
|
+
return _Boundary.CONTINUE
|
|
407
|
+
if status not in _STATUS_TERMINAL:
|
|
408
|
+
logging.debug(
|
|
409
|
+
"Unrecognized interactionStatus %r; ending the turn.", status
|
|
410
|
+
)
|
|
411
|
+
return _Boundary.TERMINAL
|
|
412
|
+
|
|
413
|
+
if self._tool_call_open and self._tool_response_seen:
|
|
414
|
+
# Terminator for the tool round-trip; keep reading for the answer.
|
|
415
|
+
self._tool_call_open = False
|
|
416
|
+
self._tool_response_seen = False
|
|
417
|
+
return _Boundary.CONTINUE
|
|
418
|
+
if self._tool_call_open:
|
|
419
|
+
# A terminator while the call is still unanswered. Either the
|
|
420
|
+
# response was scheduled past it and the answer is still coming,
|
|
421
|
+
# or the call is never answered and this really is the end. The
|
|
422
|
+
# two shapes are identical here, so the caller waits it out.
|
|
423
|
+
return _Boundary.PROVISIONAL
|
|
424
|
+
return _Boundary.TERMINAL
|
|
354
425
|
|
|
355
426
|
|
|
356
427
|
def _decode_ws_frame(raw) -> dict | None:
|
|
@@ -25,7 +25,5 @@ MODE_ADK_LIVE = "adk_live"
|
|
|
25
25
|
# message from these, so adding a mode is one edit per set rather than one per
|
|
26
26
|
# call site.
|
|
27
27
|
RUN_MODES = (MODE_A2A, MODE_ADK, MODE_ADK_LIVE)
|
|
28
|
-
# A local server serves ADK only, so a2a needs a --url.
|
|
29
|
-
LOCAL_RUN_MODES = (MODE_ADK, MODE_ADK_LIVE)
|
|
30
28
|
# eval speaks ADK only.
|
|
31
29
|
EVAL_MODES = (MODE_ADK, MODE_ADK_LIVE)
|
|
@@ -28,6 +28,10 @@ from typing import Any
|
|
|
28
28
|
import click
|
|
29
29
|
import yaml
|
|
30
30
|
|
|
31
|
+
# Fallback for manifests written before the framework key existed. Those are all
|
|
32
|
+
# ADK; new projects get the value from their template.
|
|
33
|
+
DEFAULT_FRAMEWORK = "google-adk"
|
|
34
|
+
|
|
31
35
|
|
|
32
36
|
@dataclass
|
|
33
37
|
class ProjectConfig:
|
|
@@ -41,6 +45,7 @@ class ProjectConfig:
|
|
|
41
45
|
base_template: str = "adk"
|
|
42
46
|
acli_version: str = ""
|
|
43
47
|
language: str = "python"
|
|
48
|
+
framework: str = DEFAULT_FRAMEWORK
|
|
44
49
|
session_type: str = "none"
|
|
45
50
|
cicd_runner: str = "skip"
|
|
46
51
|
agent_gateway: bool = False
|
|
@@ -80,6 +85,7 @@ class ProjectConfig:
|
|
|
80
85
|
data.get("acli_version") or data.get("version") or cfg.acli_version
|
|
81
86
|
)
|
|
82
87
|
cfg.language = data.get("language", cfg.language)
|
|
88
|
+
cfg.framework = data.get("framework", cfg.framework)
|
|
83
89
|
|
|
84
90
|
create_params = data.get("create_params")
|
|
85
91
|
if create_params is None:
|
{google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/deploy/_operation.py
RENAMED
|
@@ -90,3 +90,15 @@ def clear_operation() -> None:
|
|
|
90
90
|
del data["pending_operation"]
|
|
91
91
|
with open(METADATA_FILE, "w", encoding="utf-8") as f:
|
|
92
92
|
json.dump(data, f, indent=2)
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
def read_remote_agent_runtime_id() -> str | None:
|
|
96
|
+
"""Read the remote_agent_runtime_id from METADATA_FILE."""
|
|
97
|
+
value = _read_metadata().get("remote_agent_runtime_id")
|
|
98
|
+
# Older scaffolds shipped the literal string ``"None"`` as a placeholder, so
|
|
99
|
+
# treat that (and blank values) as "no id recorded" — otherwise a first deploy
|
|
100
|
+
# would try to update an engine literally named ``None`` and fail with a 404
|
|
101
|
+
# instead of creating a new one.
|
|
102
|
+
if isinstance(value, str) and value.strip().lower() in ("", "none", "null"):
|
|
103
|
+
return None
|
|
104
|
+
return value
|
{google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/deploy/agent_runtime.py
RENAMED
|
@@ -43,7 +43,6 @@ from agentplatform._genai.types import (
|
|
|
43
43
|
ReasoningEngineSpecDeploymentSpecAgentGatewayConfig,
|
|
44
44
|
ReasoningEngineSpecDeploymentSpecAgentGatewayConfigAgentToAnywhereConfig,
|
|
45
45
|
ReasoningEngineSpecDeploymentSpecAgentGatewayConfigClientToAgentConfig,
|
|
46
|
-
UpdateAgentEngineConfigDict,
|
|
47
46
|
)
|
|
48
47
|
from google.cloud import resourcemanager_v3
|
|
49
48
|
from google.genai.errors import APIError
|
|
@@ -51,6 +50,7 @@ from google.iam.v1 import iam_policy_pb2, policy_pb2
|
|
|
51
50
|
|
|
52
51
|
from google.agents.cli._agent_platform import AgentPlatformClient
|
|
53
52
|
from google.agents.cli._project import (
|
|
53
|
+
DEFAULT_FRAMEWORK,
|
|
54
54
|
ProjectConfig,
|
|
55
55
|
find_project_root,
|
|
56
56
|
scaffold_older_than,
|
|
@@ -60,6 +60,7 @@ from google.agents.cli.deploy._operation import (
|
|
|
60
60
|
METADATA_FILE,
|
|
61
61
|
clear_operation,
|
|
62
62
|
read_operation,
|
|
63
|
+
read_remote_agent_runtime_id,
|
|
63
64
|
write_operation,
|
|
64
65
|
)
|
|
65
66
|
from google.agents.cli.deploy._utils import (
|
|
@@ -180,21 +181,21 @@ def _build_runtime_env_vars(
|
|
|
180
181
|
return env_vars
|
|
181
182
|
|
|
182
183
|
|
|
183
|
-
def _existing_plain_env_vars(agent:
|
|
184
|
+
def _existing_plain_env_vars(agent: AgentEngine) -> dict[str, str]:
|
|
184
185
|
"""Plain env vars on a deployed Agent Runtime, as ``{name: value}``.
|
|
185
186
|
|
|
186
187
|
An update replaces the whole ``deployment_spec.env`` block, so re-sending
|
|
187
188
|
these preserves vars set outside this deploy. Secrets are skipped: the API
|
|
188
189
|
only touches them when secrets are supplied.
|
|
189
190
|
"""
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
191
|
+
api_resource = agent.api_resource
|
|
192
|
+
spec = api_resource.spec if api_resource else None
|
|
193
|
+
deployment_spec = spec.deployment_spec if spec else None
|
|
194
|
+
env = deployment_spec.env if deployment_spec else None
|
|
193
195
|
result: dict[str, str] = {}
|
|
194
196
|
for var in env or []:
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
result[name] = getattr(var, "value", "") or ""
|
|
197
|
+
if var.name:
|
|
198
|
+
result[var.name] = var.value or ""
|
|
198
199
|
return result
|
|
199
200
|
|
|
200
201
|
|
|
@@ -227,13 +228,13 @@ def _resolve_identity_type(
|
|
|
227
228
|
if agent_identity is True:
|
|
228
229
|
return IdentityType.AGENT_IDENTITY
|
|
229
230
|
elif agent_identity is False:
|
|
230
|
-
return IdentityType.
|
|
231
|
+
return IdentityType.SERVICE_ACCOUNT
|
|
231
232
|
else:
|
|
232
233
|
# On update, None means "no change", on create it's "do not use Agent Identity"
|
|
233
234
|
if is_updating:
|
|
234
235
|
return None
|
|
235
236
|
else:
|
|
236
|
-
return IdentityType.
|
|
237
|
+
return IdentityType.SERVICE_ACCOUNT
|
|
237
238
|
|
|
238
239
|
|
|
239
240
|
def _get_resource_name_from_operation(operation_name: str) -> str:
|
|
@@ -258,12 +259,14 @@ def build_agent_engine_logs_url(operation_name: str, project: str) -> str:
|
|
|
258
259
|
|
|
259
260
|
|
|
260
261
|
def write_deployment_metadata(
|
|
261
|
-
remote_agent:
|
|
262
|
+
remote_agent: AgentEngine,
|
|
262
263
|
cfg: ProjectConfig,
|
|
263
264
|
) -> None:
|
|
264
265
|
"""Write deployment metadata to file."""
|
|
266
|
+
api_resource = remote_agent.api_resource
|
|
267
|
+
assert api_resource is not None, "deployed agent has no api_resource"
|
|
265
268
|
metadata = {
|
|
266
|
-
"remote_agent_runtime_id":
|
|
269
|
+
"remote_agent_runtime_id": api_resource.name,
|
|
267
270
|
"deployment_target": "agent_runtime",
|
|
268
271
|
"is_a2a": cfg.is_a2a,
|
|
269
272
|
"language": cfg.language,
|
|
@@ -278,20 +281,22 @@ def write_deployment_metadata(
|
|
|
278
281
|
|
|
279
282
|
|
|
280
283
|
def print_deployment_success(
|
|
281
|
-
remote_agent:
|
|
284
|
+
remote_agent: AgentEngine,
|
|
282
285
|
location: str,
|
|
283
286
|
project: str,
|
|
284
287
|
cfg: ProjectConfig,
|
|
285
288
|
) -> None:
|
|
286
289
|
"""Print deployment success message with console URL."""
|
|
287
|
-
|
|
290
|
+
api_resource = remote_agent.api_resource
|
|
291
|
+
assert api_resource is not None, "deployed agent has no api_resource"
|
|
292
|
+
resource_name = api_resource.name
|
|
293
|
+
assert resource_name is not None, "deployed agent has no resource name"
|
|
294
|
+
resource_name_parts = resource_name.split("/")
|
|
288
295
|
agent_runtime_id = resource_name_parts[-1]
|
|
289
296
|
|
|
290
297
|
if cfg.is_a2a:
|
|
291
298
|
print("\n✅ Deployment successful!")
|
|
292
|
-
passthrough_url = build_agent_runtime_passthrough_url(
|
|
293
|
-
location, remote_agent.api_resource.name
|
|
294
|
-
)
|
|
299
|
+
passthrough_url = build_agent_runtime_passthrough_url(location, resource_name)
|
|
295
300
|
a2a_path_factory: Callable[[str], str] | None = get_language_config(
|
|
296
301
|
cfg.language
|
|
297
302
|
).get("a2a_base_path_factory")
|
|
@@ -309,10 +314,10 @@ def print_deployment_success(
|
|
|
309
314
|
else:
|
|
310
315
|
print("\n✅ Deployment successful!")
|
|
311
316
|
|
|
312
|
-
print(f"Agent Runtime ID: {
|
|
317
|
+
print(f"Agent Runtime ID: {resource_name}")
|
|
313
318
|
|
|
314
|
-
spec =
|
|
315
|
-
identity =
|
|
319
|
+
spec = api_resource.spec
|
|
320
|
+
identity = spec.effective_identity if spec else None
|
|
316
321
|
if _is_agent_identity_principal(identity):
|
|
317
322
|
print(f"Agent Identity: principal://{identity}")
|
|
318
323
|
else:
|
|
@@ -335,10 +340,11 @@ AGENT_IDENTITY_ROLES = (
|
|
|
335
340
|
)
|
|
336
341
|
|
|
337
342
|
|
|
338
|
-
def grant_agent_identity_roles(project: str, agent:
|
|
343
|
+
def grant_agent_identity_roles(project: str, agent: AgentEngine) -> None:
|
|
339
344
|
"""Grant the baseline project roles to an agent's own principal."""
|
|
340
|
-
|
|
341
|
-
|
|
345
|
+
api_resource = agent.api_resource
|
|
346
|
+
spec = api_resource.spec if api_resource else None
|
|
347
|
+
effective_identity = spec.effective_identity if spec else None
|
|
342
348
|
if not _is_agent_identity_principal(effective_identity):
|
|
343
349
|
logging.warning(
|
|
344
350
|
"The agent's effective identity is '%s', not an Agent Identity "
|
|
@@ -364,7 +370,7 @@ def grant_agent_identity_roles(project: str, agent: Any) -> None:
|
|
|
364
370
|
click.echo(" ✅ Agent identity ready")
|
|
365
371
|
|
|
366
372
|
|
|
367
|
-
def setup_agent_identity(client: Any, project: str, display_name: str) ->
|
|
373
|
+
def setup_agent_identity(client: Any, project: str, display_name: str) -> AgentEngine:
|
|
368
374
|
"""Create an agent first, so we know which principal should be granted the IAM roles."""
|
|
369
375
|
click.echo(f"\n🔧 Creating agent identity for: {display_name}")
|
|
370
376
|
agent = client.agent_engines.create(
|
|
@@ -565,6 +571,62 @@ CLASS_METHODS_BUILDERS: dict[str, Callable[[], list[dict[str, str]]] | None] = {
|
|
|
565
571
|
}
|
|
566
572
|
|
|
567
573
|
|
|
574
|
+
def _resolve_target_agent(
|
|
575
|
+
client: AgentPlatformClient,
|
|
576
|
+
display_name: str,
|
|
577
|
+
) -> list[Any]:
|
|
578
|
+
"""Resolve the target agent engine by ID or display name.
|
|
579
|
+
|
|
580
|
+
Target resolution:
|
|
581
|
+
1. Prefer the ID recorded in metadata.
|
|
582
|
+
2. If it does not exist, fall back to listing by display_name, but only if unambiguous.
|
|
583
|
+
"""
|
|
584
|
+
target_id = read_remote_agent_runtime_id()
|
|
585
|
+
|
|
586
|
+
matching_agents: list[Any] = []
|
|
587
|
+
|
|
588
|
+
if target_id:
|
|
589
|
+
try:
|
|
590
|
+
# get() guarantees full env/resource_limits are populated
|
|
591
|
+
existing = client.agent_engines.get(name=target_id)
|
|
592
|
+
# If the engine was found but its display name was changed out of band, warn or fail?
|
|
593
|
+
# Issue requests: "Before mutation, validate its project number, location, deployment target, resource name, and actual display name. Reject stale or inconsistent metadata."
|
|
594
|
+
if existing.api_resource.display_name != display_name:
|
|
595
|
+
raise click.ClickException(
|
|
596
|
+
f"Agent Runtime '{target_id}' has display name "
|
|
597
|
+
f"'{existing.api_resource.display_name}', but expected '{display_name}'.\n"
|
|
598
|
+
" If this is correct, pass the correct --service-name.\n"
|
|
599
|
+
f" If the metadata in {METADATA_FILE} is stale, delete it and try again."
|
|
600
|
+
)
|
|
601
|
+
matching_agents = [existing]
|
|
602
|
+
except APIError as e:
|
|
603
|
+
if e.code == 404:
|
|
604
|
+
raise click.ClickException(
|
|
605
|
+
f"Agent Runtime '{target_id}' not found.\n"
|
|
606
|
+
f" The resource recorded in {METADATA_FILE} may have been deleted.\n"
|
|
607
|
+
" Delete the metadata file to deploy a new engine, or check your permissions."
|
|
608
|
+
) from e
|
|
609
|
+
raise click.ClickException(
|
|
610
|
+
f"Error reading Agent Runtime '{target_id}': {e}"
|
|
611
|
+
) from e
|
|
612
|
+
else:
|
|
613
|
+
# Fall back to display_name scan
|
|
614
|
+
existing_agents = list(client.agent_engines.list())
|
|
615
|
+
matching_agents = [
|
|
616
|
+
agent
|
|
617
|
+
for agent in existing_agents
|
|
618
|
+
if agent.api_resource.display_name == display_name
|
|
619
|
+
]
|
|
620
|
+
if len(matching_agents) > 1:
|
|
621
|
+
raise click.ClickException(
|
|
622
|
+
f"Found {len(matching_agents)} Agent Runtime engines named '{display_name}'.\n"
|
|
623
|
+
" A display-name update is ambiguous. Delete the duplicates or "
|
|
624
|
+
f"ensure the correct resource ID is recorded in {METADATA_FILE}."
|
|
625
|
+
)
|
|
626
|
+
|
|
627
|
+
return matching_agents
|
|
628
|
+
|
|
629
|
+
|
|
568
630
|
def deploy_agent_runtime(
|
|
569
631
|
*,
|
|
570
632
|
cfg: ProjectConfig,
|
|
@@ -590,6 +652,7 @@ def deploy_agent_runtime(
|
|
|
590
652
|
agent_gateway_ingress: str | None = None,
|
|
591
653
|
build_args: str | None = None,
|
|
592
654
|
port: int | None = None,
|
|
655
|
+
framework: str = DEFAULT_FRAMEWORK,
|
|
593
656
|
) -> AgentEngine | None:
|
|
594
657
|
"""Deploy the agent to Vertex AI Agent Runtime.
|
|
595
658
|
|
|
@@ -625,6 +688,9 @@ def deploy_agent_runtime(
|
|
|
625
688
|
with the same three states as ``agent_gateway_egress``.
|
|
626
689
|
build_args: Comma-separated KEY=VALUE build args.
|
|
627
690
|
port: Container port.
|
|
691
|
+
framework: Framework label recorded on the deployment. The Console
|
|
692
|
+
reads it to pick a playground, and it selects which runtime
|
|
693
|
+
contract the deployment declares.
|
|
628
694
|
|
|
629
695
|
Returns:
|
|
630
696
|
The deployed AgentEngine instance, or None when no_wait is True.
|
|
@@ -684,15 +750,7 @@ def deploy_agent_runtime(
|
|
|
684
750
|
)
|
|
685
751
|
agentplatform.init(project=project, location=location)
|
|
686
752
|
|
|
687
|
-
|
|
688
|
-
# TODO: b/555644474 - select by resource ID; a display name is not unique,
|
|
689
|
-
# so more than one match is possible and this silently takes the first.
|
|
690
|
-
existing_agents = list(client.agent_engines.list())
|
|
691
|
-
matching_agents = [
|
|
692
|
-
agent
|
|
693
|
-
for agent in existing_agents
|
|
694
|
-
if agent.api_resource.display_name == display_name
|
|
695
|
-
]
|
|
753
|
+
matching_agents = _resolve_target_agent(client, display_name)
|
|
696
754
|
|
|
697
755
|
# Pre-existence flag must be computed before setup_agent_identity: that call
|
|
698
756
|
# creates a bare identity agent (no deployment spec), but it's still a
|
|
@@ -730,16 +788,18 @@ def deploy_agent_runtime(
|
|
|
730
788
|
migrates_to_agent_identity = False
|
|
731
789
|
|
|
732
790
|
if matching_agents:
|
|
733
|
-
|
|
791
|
+
matching_api_resource = matching_agents[0].api_resource
|
|
792
|
+
assert matching_api_resource is not None, "listed agent has no api_resource"
|
|
793
|
+
resource_name = matching_api_resource.name
|
|
734
794
|
# list() may return a summary without deployment_spec; get() guarantees
|
|
735
795
|
# the full env/resource_limits are populated.
|
|
736
796
|
existing = client.agent_engines.get(name=resource_name)
|
|
737
|
-
existing_spec =
|
|
797
|
+
existing_spec = existing.api_resource.spec
|
|
738
798
|
migrates_to_agent_identity = (
|
|
739
799
|
agent_identity
|
|
740
800
|
and is_update
|
|
741
801
|
and not _is_agent_identity_principal(
|
|
742
|
-
|
|
802
|
+
existing_spec.effective_identity if existing_spec else None
|
|
743
803
|
)
|
|
744
804
|
)
|
|
745
805
|
# Preserve env vars set outside this deploy; CLI/user values still win.
|
|
@@ -762,18 +822,10 @@ def deploy_agent_runtime(
|
|
|
762
822
|
# are None a plain redeploy must omit resource_limits to preserve the live
|
|
763
823
|
# value — only fill when exactly one side was explicitly supplied.
|
|
764
824
|
if (cpu is None) ^ (memory is None):
|
|
765
|
-
dep =
|
|
766
|
-
limits =
|
|
767
|
-
existing_cpu = (
|
|
768
|
-
|
|
769
|
-
if isinstance(limits, dict)
|
|
770
|
-
else getattr(limits, "cpu", None)
|
|
771
|
-
)
|
|
772
|
-
existing_memory = (
|
|
773
|
-
limits.get("memory")
|
|
774
|
-
if isinstance(limits, dict)
|
|
775
|
-
else getattr(limits, "memory", None)
|
|
776
|
-
)
|
|
825
|
+
dep = existing_spec.deployment_spec if existing_spec else None
|
|
826
|
+
limits = (dep.resource_limits if dep else None) or {}
|
|
827
|
+
existing_cpu = limits.get("cpu")
|
|
828
|
+
existing_memory = limits.get("memory")
|
|
777
829
|
cpu = cpu if cpu is not None else existing_cpu
|
|
778
830
|
memory = memory if memory is not None else existing_memory
|
|
779
831
|
if cpu is None or memory is None:
|
|
@@ -871,15 +923,15 @@ def deploy_agent_runtime(
|
|
|
871
923
|
image_spec_dict["build_args"] = build_args_dict
|
|
872
924
|
config_kwargs["image_spec"] = image_spec_dict
|
|
873
925
|
|
|
874
|
-
# The Console
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
926
|
+
# The Console reads agent_framework to decide which playground to render.
|
|
927
|
+
config_kwargs["agent_framework"] = framework
|
|
928
|
+
if framework == DEFAULT_FRAMEWORK:
|
|
929
|
+
# An `agent_engines.get()` client turns these into Python methods, so
|
|
930
|
+
# only declare them for the container that serves the ADK contract.
|
|
931
|
+
class_methods_builder = dispatch_language(
|
|
932
|
+
"deploy", CLASS_METHODS_BUILDERS, cfg.language
|
|
933
|
+
)
|
|
934
|
+
config_kwargs["class_methods"] = class_methods_builder()
|
|
883
935
|
|
|
884
936
|
if psc_interface_config is not None:
|
|
885
937
|
config_kwargs["psc_interface_config"] = psc_interface_config
|
|
@@ -969,7 +1021,7 @@ def _create_api_config(
|
|
|
969
1021
|
action: str,
|
|
970
1022
|
agent_gateway_egress: str | None,
|
|
971
1023
|
agent_gateway_ingress: str | None,
|
|
972
|
-
) ->
|
|
1024
|
+
) -> dict[str, Any]:
|
|
973
1025
|
"""Create a config for create/update operations with a patched update mask."""
|
|
974
1026
|
api_config = client.agent_engines._create_config(
|
|
975
1027
|
mode=action,
|
{google_agents_cli-1.6.1 → google_agents_cli-1.7.0}/src/google/agents/cli/deploy/cmd_deploy.py
RENAMED
|
@@ -353,6 +353,17 @@ def _print_cloud_run_next_steps(
|
|
|
353
353
|
type=int,
|
|
354
354
|
help="Container port (Cloud Run / Agent Runtime).",
|
|
355
355
|
)
|
|
356
|
+
@click.option(
|
|
357
|
+
"--framework",
|
|
358
|
+
default=None,
|
|
359
|
+
show_default="the framework recorded in agents-cli-manifest.yaml",
|
|
360
|
+
help=(
|
|
361
|
+
"Framework the deployed container implements (Agent Runtime only). "
|
|
362
|
+
"Sets agent_framework on the Agent Runtime resource, which the Google "
|
|
363
|
+
"Cloud console reads to pick a playground. The API owns the accepted "
|
|
364
|
+
"set and quietly falls back to 'custom' for anything else."
|
|
365
|
+
),
|
|
366
|
+
)
|
|
356
367
|
@click.option(
|
|
357
368
|
"--memory",
|
|
358
369
|
default=None,
|
|
@@ -514,6 +525,12 @@ def _print_cloud_run_next_steps(
|
|
|
514
525
|
"governedAccessPath=CLIENT_TO_AGENT. Pass an empty value to unbind. "
|
|
515
526
|
"Omit the flag to leave the current binding alone.",
|
|
516
527
|
)
|
|
528
|
+
@click.option(
|
|
529
|
+
"--ingress",
|
|
530
|
+
type=click.Choice(["all", "internal", "internal-and-cloud-load-balancing"]),
|
|
531
|
+
default=None,
|
|
532
|
+
help="Ingress traffic allowed to the service (Cloud Run).",
|
|
533
|
+
)
|
|
517
534
|
def cmd_deploy(
|
|
518
535
|
*,
|
|
519
536
|
project,
|
|
@@ -523,7 +540,9 @@ def cmd_deploy(
|
|
|
523
540
|
agent_identity,
|
|
524
541
|
update_env_vars,
|
|
525
542
|
iap,
|
|
543
|
+
ingress,
|
|
526
544
|
port,
|
|
545
|
+
framework,
|
|
527
546
|
memory,
|
|
528
547
|
cpu,
|
|
529
548
|
min_instances,
|
|
@@ -555,7 +574,7 @@ def cmd_deploy(
|
|
|
555
574
|
\b
|
|
556
575
|
Dispatches by deployment target configured in agents-cli-manifest.yaml:
|
|
557
576
|
agent_runtime → Agent Runtime deployment
|
|
558
|
-
cloud_run → gcloud
|
|
577
|
+
cloud_run → gcloud run deploy
|
|
559
578
|
gke → terraform + docker build + kubectl apply
|
|
560
579
|
|
|
561
580
|
\b
|
|
@@ -674,6 +693,15 @@ def cmd_deploy(
|
|
|
674
693
|
raise click.ClickException(
|
|
675
694
|
"The --build-args flag is only supported for Agent Runtime deployments."
|
|
676
695
|
)
|
|
696
|
+
# Checks the flag, not the resolved value, so a Cloud Run project can still
|
|
697
|
+
# record a framework.
|
|
698
|
+
if framework is not None and cfg.deployment_target != "agent_runtime":
|
|
699
|
+
raise click.ClickException(
|
|
700
|
+
"The --framework flag is only supported for Agent Runtime "
|
|
701
|
+
f"deployments (current target: {cfg.deployment_target}); Cloud Run "
|
|
702
|
+
"and GKE record no framework."
|
|
703
|
+
)
|
|
704
|
+
framework = cfg.framework if framework is None else framework
|
|
677
705
|
if image and cfg.deployment_target == "agent_runtime":
|
|
678
706
|
raise click.ClickException(
|
|
679
707
|
"The --image flag is only supported for Cloud Run and GKE deployments. "
|
|
@@ -684,6 +712,11 @@ def cmd_deploy(
|
|
|
684
712
|
"The --timeout flag is only supported for Cloud Run deployments "
|
|
685
713
|
f"(current target: {cfg.deployment_target})."
|
|
686
714
|
)
|
|
715
|
+
if ingress is not None and cfg.deployment_target != "cloud_run":
|
|
716
|
+
raise click.ClickException(
|
|
717
|
+
"The --ingress flag is only supported for Cloud Run deployments "
|
|
718
|
+
f"(current target: {cfg.deployment_target})."
|
|
719
|
+
)
|
|
687
720
|
|
|
688
721
|
# CPU / memory / instance / concurrency sizing works on Agent Runtime and
|
|
689
722
|
# Cloud Run, but on GKE these are configured via Terraform and the
|
|
@@ -783,6 +816,7 @@ def cmd_deploy(
|
|
|
783
816
|
agent_gateway_ingress=agent_gateway_ingress,
|
|
784
817
|
build_args=build_args,
|
|
785
818
|
port=port,
|
|
819
|
+
framework=framework,
|
|
786
820
|
cpu=cpu,
|
|
787
821
|
memory=memory,
|
|
788
822
|
min_instances=min_instances,
|
|
@@ -832,6 +866,8 @@ def cmd_deploy(
|
|
|
832
866
|
args.append("--no-cpu-throttling")
|
|
833
867
|
if timeout is not None:
|
|
834
868
|
args.extend(["--timeout", str(timeout)])
|
|
869
|
+
if ingress:
|
|
870
|
+
args.extend(["--ingress", ingress])
|
|
835
871
|
if port:
|
|
836
872
|
args.extend(["--port", str(port)])
|
|
837
873
|
if iap:
|
|
@@ -1366,9 +1402,9 @@ def _list_agent_runtime_deployments(project: str | None, location: str) -> None:
|
|
|
1366
1402
|
|
|
1367
1403
|
for agent in agents:
|
|
1368
1404
|
res = agent.api_resource
|
|
1369
|
-
display_name =
|
|
1370
|
-
name =
|
|
1371
|
-
create_time =
|
|
1405
|
+
display_name = (res.display_name if res else None) or "—"
|
|
1406
|
+
name = (res.name if res else None) or "—"
|
|
1407
|
+
create_time = res.create_time if res else None
|
|
1372
1408
|
time_str = create_time.strftime("%Y-%m-%d %H:%M") if create_time else "—"
|
|
1373
1409
|
table.add_row(display_name, name, time_str)
|
|
1374
1410
|
|