google-agents-cli 1.6.1__tar.gz → 1.8.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.8.0}/PKG-INFO +39 -1
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/README.md +38 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/pyproject.toml +4 -1
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/_adk_client.py +86 -15
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/_click.py +65 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/_experiments.py +22 -2
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/_modes.py +0 -2
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/_output.py +18 -10
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/_project.py +6 -0
- google_agents_cli-1.8.0/src/google/agents/cli/_telemetry.py +461 -0
- google_agents_cli-1.8.0/src/google/agents/cli/_telemetry_worker.py +37 -0
- google_agents_cli-1.8.0/src/google/agents/cli/deploy/_operation.py +512 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/deploy/agent_runtime.py +436 -301
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/deploy/cmd_deploy.py +119 -64
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/dev/cmd_playground.py +1 -16
- google_agents_cli-1.8.0/src/google/agents/cli/eval/_events.py +116 -0
- google_agents_cli-1.8.0/src/google/agents/cli/eval/_live.py +325 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/eval/cmd_generate.py +94 -121
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/eval/cmd_run.py +13 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/extension/_overrides.py +6 -7
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/info/cmd_info.py +32 -12
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/infra/_cicd_utils.py +21 -26
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/infra/cmd_cicd.py +29 -43
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/main.py +39 -4
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/publish/cmd_publish.py +3 -166
- google_agents_cli-1.8.0/src/google/agents/cli/run/_a2a_pinning.py +196 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/run/_local_server.py +29 -20
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/run/cmd_run.py +216 -55
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/agents/adk/.template/templateconfig.yaml +2 -10
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/agents/adk_ts/package-lock.json +3 -515
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.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.8.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/build_triggers.tf +18 -3
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/iam.tf +12 -9
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/providers.tf +5 -1
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.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.8.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.8.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.8.0}/src/google/agents/cli/scaffold/base_templates/go/.gitignore +2 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/base_templates/java/.gitignore +2 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/base_templates/python/.gitignore +1 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/base_templates/typescript/.gitignore +1 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/commands/create.py +454 -346
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/commands/enhance.py +25 -39
- google_agents_cli-1.8.0/src/google/agents/cli/scaffold/commands/upgrade.py +419 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.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.8.0}/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/_shared/deployment/terraform/single-project/service.tf +2 -1
- google_agents_cli-1.8.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.8.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.8.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.8.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.8.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.8.0}/src/google/agents/cli/scaffold/resources/locks/uv-adk-agent_runtime.lock +174 -188
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/resources/locks/uv-adk-cloud_run.lock +174 -194
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/resources/locks/uv-adk-gke.lock +174 -194
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/utils/backup.py +4 -8
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/utils/cli_options.py +10 -0
- google_agents_cli-1.8.0/src/google/agents/cli/scaffold/utils/copy_files.py +427 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/utils/fs.py +23 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/utils/merge.py +48 -31
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/utils/remote_template.py +21 -6
- google_agents_cli-1.8.0/src/google/agents/cli/scaffold/utils/symlinks.py +146 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/utils/template.py +26 -285
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/utils/upgrade.py +62 -11
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/skills/data/google-agents-cli-adk-code/SKILL.md +2 -1
- google_agents_cli-1.8.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.8.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.8.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.8.0}/src/google/agents/cli/skills/data/google-agents-cli-deploy/SKILL.md +8 -4
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.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.8.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.8.0}/src/google/agents/cli/skills/data/google-agents-cli-deploy/references/terraform-patterns.md +1 -1
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/skills/data/google-agents-cli-eval/SKILL.md +17 -4
- google_agents_cli-1.8.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.8.0}/src/google/agents/cli/skills/data/google-agents-cli-observability/SKILL.md +10 -8
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/skills/data/google-agents-cli-publish/SKILL.md +4 -9
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/skills/data/google-agents-cli-scaffold/SKILL.md +11 -3
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/skills/data/google-agents-cli-workflow/SKILL.md +7 -6
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/skills/data/google-agents-cli-workflow/references/internals.md +1 -1
- google_agents_cli-1.6.1/src/google/agents/cli/deploy/_operation.py +0 -92
- google_agents_cli-1.6.1/src/google/agents/cli/scaffold/commands/upgrade.py +0 -189
- 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.8.0}/LICENSE +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/__init__.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/_agent_platform.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/_defaults.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/_gcp_project.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/_remote.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/_runner.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/_skills_check.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/_tools.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/_trust.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/auth.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/data/__init__.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/data/_recipe.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/data/cmd_data_ingestion.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/deploy/__init__.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/deploy/_utils.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/dev/__init__.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/dev/cmd_build.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/dev/cmd_install.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/dev/cmd_lint.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/eval/__init__.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/eval/_paths.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/eval/_synthesize_runner.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/eval/cmd_analyze.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/eval/cmd_compare.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/eval/cmd_dataset.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/eval/cmd_eval_group.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/eval/cmd_grade.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/eval/cmd_metric.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/eval/cmd_optimize.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/eval/cmd_submit.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/eval/eval_utils.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/eval/optimize_utils.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/extension/__init__.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/extension/_compat.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/extension/_loader.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/extension/_manifest.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/extension/_paths.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/extension/_refs.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/extension/_resolver.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/extension/_schema.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/extension/_spec.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/extension/_sync.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/extension/_trust.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/extension/cmd_extension_add.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/extension/cmd_extension_group.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/extension/cmd_extension_list.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/extension/cmd_extension_remove.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/extension/cmd_extension_update.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/info/__init__.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/infra/__init__.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/infra/_terraform.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/infra/cmd_datastore.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/infra/cmd_infra.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/infra/cmd_infra_show.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/infra/cmd_infra_single_project.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/publish/__init__.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/publish/cmd_publish_group.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/run/__init__.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/run/_multimodal.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/__init__.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/agents/README.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/agents/adk/app/__init__.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/agents/adk/app/agent.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.0}/src/google/agents/cli/scaffold/agents/adk_go/.template/templateconfig.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/agents/adk_go/Dockerfile +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/agents/adk_go/Makefile +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/agents/adk_go/README.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/agents/adk_go/app/agent.go +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.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.8.0}/src/google/agents/cli/scaffold/agents/adk_go/appinfo/appinfo.go +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.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.8.0}/src/google/agents/cli/scaffold/agents/adk_go/apploader.go +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/agents/adk_go/appurl.go +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.0}/src/google/agents/cli/scaffold/agents/adk_go/go.mod +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/agents/adk_go/go.sum +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/agents/adk_go/main.go +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/agents/adk_go/observability.go +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/agents/adk_go/observability_test.go +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/agents/adk_go/sessions/sessions.go +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.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.8.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.8.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.8.0}/src/google/agents/cli/scaffold/agents/adk_java/.template/templateconfig.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/agents/adk_java/Dockerfile +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/agents/adk_java/Makefile +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/agents/adk_java/README.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/agents/adk_java/pom.xml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.0}/src/google/agents/cli/scaffold/agents/adk_ts/.template/templateconfig.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/agents/adk_ts/Dockerfile +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/agents/adk_ts/Makefile +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/agents/adk_ts/README.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/agents/adk_ts/app/agent.ts +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/agents/adk_ts/package.json +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.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.8.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.8.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.8.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.8.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.8.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.8.0}/src/google/agents/cli/scaffold/agents/empty_go/.template/templateconfig.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/agents/empty_java/.template/templateconfig.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/agents/empty_py/.template/templateconfig.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/agents/empty_ts/.template/templateconfig.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.0}/src/google/agents/cli/scaffold/base_templates/go/.cloudbuild/staging.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/base_templates/go/.env +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/base_templates/go/.env.example +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/base_templates/go/.gcloudignore +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.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.8.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.8.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.8.0}/src/google/agents/cli/scaffold/base_templates/go/.golangci.yml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.0}/src/google/agents/cli/scaffold/base_templates/java/.cloudbuild/staging.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/base_templates/java/.env.example +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/base_templates/java/.gcloudignore +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.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.8.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.8.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.8.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.8.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.8.0}/src/google/agents/cli/scaffold/base_templates/python/.cloudbuild/staging.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/base_templates/python/.env +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/base_templates/python/.env.example +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/base_templates/python/.gcloudignore +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.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.8.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.8.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.8.0}/src/google/agents/cli/scaffold/base_templates/python/Dockerfile +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/base_templates/python/README.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.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.8.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.8.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.8.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.8.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.8.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.8.0}/src/google/agents/cli/scaffold/base_templates/python/pyproject.toml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.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.8.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.8.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.8.0}/src/google/agents/cli/scaffold/base_templates/typescript/.cloudbuild/staging.yaml +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/base_templates/typescript/.dockerignore +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/base_templates/typescript/.env.example +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/base_templates/typescript/.gcloudignore +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.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.8.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.8.0}/src/google/agents/cli/scaffold/base_templates/typescript/eslint.config.mjs +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/base_templates/typescript/tsconfig.json +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/base_templates/typescript/vitest.config.ts +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/cmd_scaffold_group.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/commands/__init__.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.0}/src/google/agents/cli/scaffold/utils/__init__.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/utils/command.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/utils/gcp.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/utils/generate_locks.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/utils/generation_metadata.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/utils/language.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/utils/lock_utils.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/utils/logging.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/scaffold/utils/version.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/setup/__init__.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/setup/_antigravity.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/setup/cmd_auth.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/setup/cmd_setup.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/setup/cmd_update.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/skills/__init__.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/skills/_bundle.py +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.0}/src/google/agents/cli/skills/data/README.md +0 -0
- {google_agents_cli-1.6.1 → google_agents_cli-1.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.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.8.0}/src/google/agents/cli/skills/data/google-agents-cli-workflow/references/terminology.md +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: google-agents-cli
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.8.0
|
|
4
4
|
Summary: Agents CLI — Agent Development Lifecycle toolchain for ADK
|
|
5
5
|
Author-email: Google LLC <agents-cli-dev-pypi@google.com>
|
|
6
6
|
Requires-Python: >=3.11
|
|
@@ -157,6 +157,8 @@ See the [full tutorial](https://google.github.io/agents-cli/guide/quickstart-tut
|
|
|
157
157
|
|
|
158
158
|
</details>
|
|
159
159
|
|
|
160
|
+
|
|
161
|
+
|
|
160
162
|
## How it works
|
|
161
163
|
|
|
162
164
|
<div align="center">
|
|
@@ -206,6 +208,42 @@ The best way to contribute is through feedback: bug reports, feature requests, a
|
|
|
206
208
|
|
|
207
209
|
See the [contributing guide](CONTRIBUTING.md) for details.
|
|
208
210
|
|
|
211
|
+
## Telemetry
|
|
212
|
+
|
|
213
|
+
> **Note:** Telemetry is experimental and off by default. It only runs when
|
|
214
|
+
> enabled with `AGENTS_CLI_EXPERIMENTS='{"cli_telemetry": true}'`.
|
|
215
|
+
|
|
216
|
+
`agents-cli` can emit a single usage signal per command invocation to help
|
|
217
|
+
improve the tool and better understand how it's used. Each signal
|
|
218
|
+
is a structured log entry written to **your own Google Cloud project**:
|
|
219
|
+
`GOOGLE_CLOUD_PROJECT`, or else the default project of your Application Default
|
|
220
|
+
Credentials (`logName=projects/<project>/logs/agents-cli`), where you can query
|
|
221
|
+
it in Cloud Logging. It records only the metadata such as command name
|
|
222
|
+
(e.g. `deploy`, `scaffold.create`), exit code, error class, duration (measured
|
|
223
|
+
from command dispatch to exit, so it excludes CLI startup), CLI/Python versions,
|
|
224
|
+
and OS — never file contents, arguments, or other input. Commands added by
|
|
225
|
+
extensions are recorded without their names.
|
|
226
|
+
|
|
227
|
+
The request that writes the entry also carries usage metadata in its
|
|
228
|
+
`User-Agent` and `X-Goog-Api-Client` headers, which Google receives for
|
|
229
|
+
agents-cli usage analytics: the CLI and Python versions, the OS and its release,
|
|
230
|
+
the CPU architecture, the command name and a random per-invocation ID. The log
|
|
231
|
+
entry's contents, such as the exit code, error class and duration, stay in your
|
|
232
|
+
project.
|
|
233
|
+
|
|
234
|
+
To opt out of sending telemetry, use one of the following environment variables:
|
|
235
|
+
|
|
236
|
+
```bash
|
|
237
|
+
# our cli-specific variable
|
|
238
|
+
# 0, false, no, or off (case-insensitive):
|
|
239
|
+
export AGENTS_CLI_TELEMETRY=0
|
|
240
|
+
|
|
241
|
+
# donottrack.sh standard variable
|
|
242
|
+
export DO_NOT_TRACK=1
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
Use `agents-cli info` to see the current telemetry state.
|
|
246
|
+
|
|
209
247
|
## Terms of Service
|
|
210
248
|
|
|
211
249
|
`agents-cli` leverages Google Cloud APIs. When you deploy agents, you'll be deploying resources in your own Google Cloud project and will be responsible for those resources. Please review the [Google Cloud Service Terms](https://cloud.google.com/terms/service-terms) for details.
|
|
@@ -116,6 +116,8 @@ See the [full tutorial](https://google.github.io/agents-cli/guide/quickstart-tut
|
|
|
116
116
|
|
|
117
117
|
</details>
|
|
118
118
|
|
|
119
|
+
|
|
120
|
+
|
|
119
121
|
## How it works
|
|
120
122
|
|
|
121
123
|
<div align="center">
|
|
@@ -165,6 +167,42 @@ The best way to contribute is through feedback: bug reports, feature requests, a
|
|
|
165
167
|
|
|
166
168
|
See the [contributing guide](CONTRIBUTING.md) for details.
|
|
167
169
|
|
|
170
|
+
## Telemetry
|
|
171
|
+
|
|
172
|
+
> **Note:** Telemetry is experimental and off by default. It only runs when
|
|
173
|
+
> enabled with `AGENTS_CLI_EXPERIMENTS='{"cli_telemetry": true}'`.
|
|
174
|
+
|
|
175
|
+
`agents-cli` can emit a single usage signal per command invocation to help
|
|
176
|
+
improve the tool and better understand how it's used. Each signal
|
|
177
|
+
is a structured log entry written to **your own Google Cloud project**:
|
|
178
|
+
`GOOGLE_CLOUD_PROJECT`, or else the default project of your Application Default
|
|
179
|
+
Credentials (`logName=projects/<project>/logs/agents-cli`), where you can query
|
|
180
|
+
it in Cloud Logging. It records only the metadata such as command name
|
|
181
|
+
(e.g. `deploy`, `scaffold.create`), exit code, error class, duration (measured
|
|
182
|
+
from command dispatch to exit, so it excludes CLI startup), CLI/Python versions,
|
|
183
|
+
and OS — never file contents, arguments, or other input. Commands added by
|
|
184
|
+
extensions are recorded without their names.
|
|
185
|
+
|
|
186
|
+
The request that writes the entry also carries usage metadata in its
|
|
187
|
+
`User-Agent` and `X-Goog-Api-Client` headers, which Google receives for
|
|
188
|
+
agents-cli usage analytics: the CLI and Python versions, the OS and its release,
|
|
189
|
+
the CPU architecture, the command name and a random per-invocation ID. The log
|
|
190
|
+
entry's contents, such as the exit code, error class and duration, stay in your
|
|
191
|
+
project.
|
|
192
|
+
|
|
193
|
+
To opt out of sending telemetry, use one of the following environment variables:
|
|
194
|
+
|
|
195
|
+
```bash
|
|
196
|
+
# our cli-specific variable
|
|
197
|
+
# 0, false, no, or off (case-insensitive):
|
|
198
|
+
export AGENTS_CLI_TELEMETRY=0
|
|
199
|
+
|
|
200
|
+
# donottrack.sh standard variable
|
|
201
|
+
export DO_NOT_TRACK=1
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
Use `agents-cli info` to see the current telemetry state.
|
|
205
|
+
|
|
168
206
|
## Terms of Service
|
|
169
207
|
|
|
170
208
|
`agents-cli` leverages Google Cloud APIs. When you deploy agents, you'll be deploying resources in your own Google Cloud project and will be responsible for those resources. Please review the [Google Cloud Service Terms](https://cloud.google.com/terms/service-terms) for details.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "google-agents-cli"
|
|
3
|
-
version = "1.
|
|
3
|
+
version = "1.8.0"
|
|
4
4
|
description = "Agents CLI — Agent Development Lifecycle toolchain for ADK"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = "Apache-2.0"
|
|
@@ -101,6 +101,9 @@ include = [
|
|
|
101
101
|
"tools/**/*.py",
|
|
102
102
|
# First-party extensions ship real code; lint them like the rest.
|
|
103
103
|
"extensions/**/*.py",
|
|
104
|
+
# The lift report builder and the eval tools.
|
|
105
|
+
"evals/report/**/*.py",
|
|
106
|
+
"evals/tools/**/*.py",
|
|
104
107
|
]
|
|
105
108
|
exclude = [
|
|
106
109
|
"src/google/agents/cli/scaffold/agents",
|
|
@@ -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:
|
|
@@ -24,6 +24,20 @@ import click
|
|
|
24
24
|
|
|
25
25
|
from google.agents.cli._experiments import resolve_experiment
|
|
26
26
|
|
|
27
|
+
# Key under which the dispatched subcommand chain is recorded on ``ctx.meta``
|
|
28
|
+
# (root -> leaf, e.g. ``["scaffold", "create"]``). ``ctx.meta`` is shared across
|
|
29
|
+
# the whole context tree, so every level appends to the same list and any
|
|
30
|
+
# context can read the full path. Consumed by ``_telemetry``.
|
|
31
|
+
COMMAND_PATH_META_KEY = "agents_cli.command_path"
|
|
32
|
+
# Set on ``ctx.meta`` once the resolved leaf command actually runs, so a help
|
|
33
|
+
# view (``--help``, or a group given no subcommand) can be told apart from a
|
|
34
|
+
# run. Consumed by ``_telemetry``.
|
|
35
|
+
COMMAND_INVOKED_META_KEY = "agents_cli.command_invoked"
|
|
36
|
+
# Marks a recorded path segment that an extension serves: ``generate~ext`` for
|
|
37
|
+
# an overridden built-in. A command an extension adds is recorded as the bare
|
|
38
|
+
# marker, never by name, since the extension author chose that name.
|
|
39
|
+
EXTENSION_PATH_MARKER = "~ext"
|
|
40
|
+
|
|
27
41
|
|
|
28
42
|
class LazyGroup(click.Group):
|
|
29
43
|
"""Click group that defers importing subcommand modules until needed.
|
|
@@ -104,6 +118,33 @@ class LazyGroup(click.Group):
|
|
|
104
118
|
self.commands[cmd_name] = cmd
|
|
105
119
|
return super().get_command(ctx, cmd_name)
|
|
106
120
|
|
|
121
|
+
def resolve_command(
|
|
122
|
+
self, ctx: click.Context, args: list[str]
|
|
123
|
+
) -> tuple[str | None, click.Command | None, list[str]]:
|
|
124
|
+
cmd_name, cmd, rest = super().resolve_command(ctx, args)
|
|
125
|
+
if cmd_name is not None and cmd is not None:
|
|
126
|
+
# Record the dispatched command chain on ctx.meta as Click resolves
|
|
127
|
+
# each level, so we can avoid parsing arguments later. Recorded here
|
|
128
|
+
# rather than in get_command, which also runs for lookups that
|
|
129
|
+
# aren't dispatch (e.g. listing commands for shell completion).
|
|
130
|
+
ctx.meta.setdefault(COMMAND_PATH_META_KEY, []).append(
|
|
131
|
+
self._path_segment(cmd_name)
|
|
132
|
+
)
|
|
133
|
+
_flag_invocation(cmd)
|
|
134
|
+
return cmd_name, cmd, rest
|
|
135
|
+
|
|
136
|
+
def _path_segment(self, cmd_name: str) -> str:
|
|
137
|
+
"""The recorded path segment for a dispatched ``cmd_name``.
|
|
138
|
+
|
|
139
|
+
Overrides only apply to built-ins and added commands never share a
|
|
140
|
+
built-in's name, so an extension-served built-in name is an override.
|
|
141
|
+
"""
|
|
142
|
+
if cmd_name not in self._overrides:
|
|
143
|
+
return cmd_name
|
|
144
|
+
if cmd_name in self._lazy_commands or cmd_name in self.commands:
|
|
145
|
+
return f"{cmd_name}{EXTENSION_PATH_MARKER}"
|
|
146
|
+
return EXTENSION_PATH_MARKER
|
|
147
|
+
|
|
107
148
|
def format_commands(self, ctx: click.Context, formatter: click.HelpFormatter) -> None:
|
|
108
149
|
rows: list[tuple[str, str]] = []
|
|
109
150
|
for name in self.list_commands(ctx):
|
|
@@ -122,6 +163,30 @@ class LazyGroup(click.Group):
|
|
|
122
163
|
formatter.write_dl(rows)
|
|
123
164
|
|
|
124
165
|
|
|
166
|
+
def _flag_invocation(cmd: Any) -> None:
|
|
167
|
+
"""Make a leaf command set ``COMMAND_INVOKED_META_KEY`` when it runs.
|
|
168
|
+
|
|
169
|
+
Click handles ``--help`` while parsing arguments and exits before calling
|
|
170
|
+
``invoke``, so the flag stays unset for help views. Groups only dispatch,
|
|
171
|
+
so they are left alone.
|
|
172
|
+
|
|
173
|
+
This wraps ``invoke`` on the command object itself, which is shared for the
|
|
174
|
+
whole process, the same way ``patch_source_in_help`` wraps
|
|
175
|
+
``format_epilog``. The ``_invocation_flagged`` marker keeps it idempotent.
|
|
176
|
+
"""
|
|
177
|
+
if isinstance(cmd, click.Group) or getattr(cmd, "_invocation_flagged", False):
|
|
178
|
+
return
|
|
179
|
+
|
|
180
|
+
original = cmd.invoke
|
|
181
|
+
|
|
182
|
+
def _invoke(ctx: click.Context) -> Any:
|
|
183
|
+
ctx.meta[COMMAND_INVOKED_META_KEY] = True
|
|
184
|
+
return original(ctx)
|
|
185
|
+
|
|
186
|
+
cmd.invoke = _invoke
|
|
187
|
+
cmd._invocation_flagged = True
|
|
188
|
+
|
|
189
|
+
|
|
125
190
|
def _source_path(cmd: Any) -> str | None:
|
|
126
191
|
"""Resolve the absolute file path of a command's callback module."""
|
|
127
192
|
cb = cmd.callback
|
|
@@ -28,9 +28,30 @@ class Experiment(NamedTuple):
|
|
|
28
28
|
_REGISTRY: dict[str, Experiment] = {
|
|
29
29
|
# Hides the `build` command until Go (compiled-language) support launches.
|
|
30
30
|
"build_command": Experiment("build_command", bool, True),
|
|
31
|
+
# Gates CLI usage telemetry (see _telemetry.py). Off by default
|
|
32
|
+
# during validation. Users can opt out via DO_NOT_TRACK / AGENTS_CLI_TELEMETRY.
|
|
33
|
+
"cli_telemetry": Experiment("cli_telemetry", bool, False),
|
|
31
34
|
}
|
|
32
35
|
|
|
33
36
|
|
|
37
|
+
# String spellings accepted for boolean experiments, e.g. '{"x": "false"}'.
|
|
38
|
+
# bool("false") is True, so strings can't go through the plain type cast.
|
|
39
|
+
_TRUE_STRINGS = frozenset({"1", "true", "yes", "on"})
|
|
40
|
+
_FALSE_STRINGS = frozenset({"0", "false", "no", "off"})
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def _cast(exp: Experiment, val: Any) -> Any:
|
|
44
|
+
"""Cast an override value to the experiment's type."""
|
|
45
|
+
if exp.value_type is bool and isinstance(val, str):
|
|
46
|
+
normalized = val.strip().lower()
|
|
47
|
+
if normalized in _TRUE_STRINGS:
|
|
48
|
+
return True
|
|
49
|
+
if normalized in _FALSE_STRINGS:
|
|
50
|
+
return False
|
|
51
|
+
raise ValueError(f"expected true/false, 1/0, yes/no or on/off, got {val!r}")
|
|
52
|
+
return exp.value_type(val)
|
|
53
|
+
|
|
54
|
+
|
|
34
55
|
def resolve_experiment(label: str) -> Any:
|
|
35
56
|
"""Returns the value for the given experiment label."""
|
|
36
57
|
if label not in _REGISTRY:
|
|
@@ -45,8 +66,7 @@ def resolve_experiment(label: str) -> Any:
|
|
|
45
66
|
overrides = json.loads(env_val)
|
|
46
67
|
if label in overrides:
|
|
47
68
|
val = overrides[label]
|
|
48
|
-
|
|
49
|
-
return exp.value_type(val)
|
|
69
|
+
return _cast(exp, val)
|
|
50
70
|
except Exception as e:
|
|
51
71
|
logging.warning(
|
|
52
72
|
f"Failed to apply AGENTS_CLI_EXPERIMENTS override for '{label}', "
|
|
@@ -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)
|
|
@@ -16,15 +16,11 @@
|
|
|
16
16
|
|
|
17
17
|
import json
|
|
18
18
|
import sys
|
|
19
|
-
from enum import IntEnum
|
|
20
19
|
from typing import Any
|
|
21
20
|
|
|
21
|
+
import click
|
|
22
22
|
from rich.console import Console as _RichConsole # noqa: TID251
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
class ExitCode(IntEnum):
|
|
26
|
-
OK = 0
|
|
27
|
-
ERROR = 1
|
|
23
|
+
from rich.markup import escape
|
|
28
24
|
|
|
29
25
|
|
|
30
26
|
class Console(_RichConsole):
|
|
@@ -40,7 +36,19 @@ def emit(data: dict) -> None:
|
|
|
40
36
|
print(json.dumps(data), file=sys.stdout)
|
|
41
37
|
|
|
42
38
|
|
|
43
|
-
def
|
|
44
|
-
"""
|
|
45
|
-
|
|
46
|
-
|
|
39
|
+
def print_error(message: str) -> None:
|
|
40
|
+
"""Print an error message to stderr with a red "❌ Error:" prefix."""
|
|
41
|
+
# escape() so text like "[cyan]" or "[0]" in the message is shown as-is.
|
|
42
|
+
Console(stderr=True, highlight=False).print(
|
|
43
|
+
f"[bold red]❌ Error:[/bold red] {escape(message)}"
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
def print_click_exception(e: click.ClickException) -> None:
|
|
48
|
+
"""Show a ClickException like Click does, but with a red "❌ Error:" prefix."""
|
|
49
|
+
if isinstance(e, click.UsageError) and e.ctx is not None:
|
|
50
|
+
hint = ""
|
|
51
|
+
if e.ctx.command.get_help_option(e.ctx) is not None:
|
|
52
|
+
hint = f"Try '{e.ctx.command_path} {e.ctx.help_option_names[0]}' for help.\n"
|
|
53
|
+
click.echo(f"{e.ctx.get_usage()}\n{hint}", err=True, color=e.ctx.color)
|
|
54
|
+
print_error(e.format_message())
|
|
@@ -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:
|