google-agents-cli 1.2.0__tar.gz → 1.3.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.2.0 → google_agents_cli-1.3.0}/PKG-INFO +2 -2
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/pyproject.toml +2 -2
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-adk-code/SKILL.md +1 -1
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-deploy/SKILL.md +1 -1
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-eval/SKILL.md +7 -6
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-observability/SKILL.md +1 -1
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-publish/SKILL.md +1 -1
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-scaffold/SKILL.md +1 -1
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-workflow/SKILL.md +3 -3
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/_adk_client.py +39 -14
- google_agents_cli-1.3.0/src/google/agents/cli/_gcp_project.py +93 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/_project.py +0 -43
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/_tools.py +8 -113
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/deploy/agent_runtime.py +25 -14
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/deploy/cmd_deploy.py +15 -8
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/eval/cmd_analyze.py +1 -1
- google_agents_cli-1.3.0/src/google/agents/cli/eval/cmd_generate.py +687 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/eval/cmd_grade.py +2 -1
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/eval/cmd_run.py +42 -1
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/eval/cmd_submit.py +2 -1
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/infra/_cicd_utils.py +104 -45
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/infra/cmd_cicd.py +22 -44
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/publish/cmd_publish.py +7 -38
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/run/_local_server.py +72 -25
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/run/_multimodal.py +23 -16
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/run/cmd_run.py +115 -105
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/agents/adk/.template/templateconfig.yaml +10 -2
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/agents/adk/tests/eval/datasets/README.md +8 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/python/pyproject.toml +1 -1
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/python/{{cookiecutter.agent_directory}}/app_utils/a2a.py +71 -11
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/typescript/package-lock.json +10 -10
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/commands/create.py +11 -19
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/commands/enhance.py +0 -14
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/python/tests/integration/test_server_e2e.py +44 -43
- {google_agents_cli-1.2.0/src/google/agents/cli/scaffold/deployment_targets/none → google_agents_cli-1.3.0/src/google/agents/cli/scaffold/deployment_targets/cloud_run}/python/tests/integration/test_server_e2e.py +44 -43
- {google_agents_cli-1.2.0/src/google/agents/cli/scaffold/deployment_targets/cloud_run → google_agents_cli-1.3.0/src/google/agents/cli/scaffold/deployment_targets/gke}/python/tests/integration/test_server_e2e.py +44 -43
- {google_agents_cli-1.2.0/src/google/agents/cli/scaffold/deployment_targets/gke → google_agents_cli-1.3.0/src/google/agents/cli/scaffold/deployment_targets/none}/python/tests/integration/test_server_e2e.py +44 -43
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/resources/locks/uv-adk-agent_runtime.lock +406 -389
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/resources/locks/uv-adk-cloud_run.lock +434 -417
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/resources/locks/uv-adk-gke.lock +434 -417
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/utils/template.py +17 -17
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/setup/cmd_setup.py +2 -7
- google_agents_cli-1.2.0/src/google/agents/cli/eval/_inference_runner.py +0 -441
- google_agents_cli-1.2.0/src/google/agents/cli/eval/cmd_generate.py +0 -246
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/LICENSE +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/README.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/README.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-adk-code/references/adk-python.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-adk-code/references/adk-workflows.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-deploy/references/agent-runtime.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-deploy/references/batch-inference.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-deploy/references/cicd-pipeline.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-deploy/references/cloud-run.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-deploy/references/gke.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-deploy/references/terraform-patterns.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-deploy/references/testing-deployed-agents.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-eval/references/builtin-tools-eval.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-eval/references/dataset_schema.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-eval/references/metrics-guide.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-eval/references/multimodal-eval.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-eval/references/user-simulation.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-observability/references/bigquery-agent-analytics.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-observability/references/cloud-trace-and-logging.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-scaffold/references/flags.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-workflow/references/brainstorming.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-workflow/references/commands.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-workflow/references/internals.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-workflow/references/samples.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-workflow/references/spec-template.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-workflow/references/terminology.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/__init__.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/_agent_runtime_a2a.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/_click.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/_experiments.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/_output.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/_remote.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/_runner.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/_skills_check.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/_trust.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/auth.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/data/__init__.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/data/_recipe.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/data/cmd_data_ingestion.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/deploy/__init__.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/deploy/_operation.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/deploy/_utils.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/dev/__init__.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/dev/cmd_install.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/dev/cmd_lint.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/dev/cmd_playground.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/eval/__init__.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/eval/_paths.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/eval/_synthesize_runner.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/eval/cmd_compare.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/eval/cmd_dataset.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/eval/cmd_eval_group.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/eval/cmd_metric.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/eval/cmd_optimize.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/eval/eval_utils.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/eval/optimize_utils.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/info/__init__.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/info/cmd_info.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/infra/__init__.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/infra/cmd_datastore.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/infra/cmd_infra.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/infra/cmd_infra_single_project.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/main.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/publish/__init__.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/publish/cmd_publish_group.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/run/__init__.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/__init__.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/agents/README.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/agents/adk/README.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/agents/adk/app/__init__.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/agents/adk/app/agent.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/agents/adk/tests/eval/datasets/basic-dataset.json +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/agents/adk/tests/eval/eval_config.yaml +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/agents/adk/tests/eval/response_quality.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/agents/adk/tests/integration/test_agent.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/agents/adk_go/.template/templateconfig.yaml +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/agents/adk_go/agent/agent.go +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/agents/adk_go/agent/agent_test.go +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/agents/adk_java/.template/templateconfig.yaml +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/agents/adk_java/src/main/java/{{cookiecutter.java_package_path}}/Agent.java +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.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.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/agents/adk_ts/.template/templateconfig.yaml +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/agents/adk_ts/app/agent.ts +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/agents/adk_ts/tests/integration/agent.test.ts +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/_shared/agents-cli-manifest.yaml +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/apis.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/build_triggers.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/github.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/iam.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/locals.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/outputs.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/providers.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/service_accounts.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/storage.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/variables.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/vars/env.tfvars +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/wif.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/single-project/apis.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/single-project/iam.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/single-project/outputs.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/single-project/providers.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/single-project/storage.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/single-project/variables.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/single-project/vars/env.tfvars +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/go/.cloudbuild/deploy-to-prod.yaml +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/go/.cloudbuild/pr_checks.yaml +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/go/.cloudbuild/staging.yaml +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/go/.env.example +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/go/.github/workflows/deploy-to-prod.yaml +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/go/.github/workflows/pr_checks.yaml +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/go/.github/workflows/staging.yaml +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/go/.gitignore +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/go/.golangci.yml +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/go/Dockerfile +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/go/Makefile +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/go/README.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/go/agent/agent.go +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/go/e2e/integration/server_e2e_test.go +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/go/e2e/load_test/.results/.placeholder +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/go/e2e/load_test/README.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/go/e2e/load_test/load_test.go +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/go/go.mod +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/go/go.sum +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/go/main.go +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/go/{{cookiecutter.agent_guidance_filename}} +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/java/.cloudbuild/deploy-to-prod.yaml +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/java/.cloudbuild/pr_checks.yaml +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/java/.cloudbuild/staging.yaml +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/java/.env.example +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/java/.github/workflows/deploy-to-prod.yaml +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/java/.github/workflows/pr_checks.yaml +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/java/.github/workflows/staging.yaml +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/java/.gitignore +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/java/Dockerfile +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/java/Makefile +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/java/README.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/java/pom.xml +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/java/src/main/java/{{cookiecutter.java_package_path}}/Agent.java +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/java/src/main/java/{{cookiecutter.java_package_path}}/Main.java +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/java/src/main/resources/application.properties +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/java/src/test/java/{{cookiecutter.java_package_path}}/e2e/integration/ServerE2ETest.java +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/java/src/test/java/{{cookiecutter.java_package_path}}/e2e/load_test/.results/.placeholder +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/java/src/test/java/{{cookiecutter.java_package_path}}/e2e/load_test/LoadTest.java +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/java/src/test/java/{{cookiecutter.java_package_path}}/e2e/load_test/README.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/java/src/test/java/{{cookiecutter.java_package_path}}/unit/AgentTest.java +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/java/{{cookiecutter.agent_guidance_filename}} +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/python/.cloudbuild/deploy-to-prod.yaml +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/python/.cloudbuild/pr_checks.yaml +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/python/.cloudbuild/staging.yaml +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/python/.env +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/python/.env.example +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/python/.github/workflows/deploy-to-prod.yaml +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/python/.github/workflows/pr_checks.yaml +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/python/.github/workflows/staging.yaml +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/python/.gitignore +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/python/Dockerfile +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/python/README.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/python/deployment/terraform/cicd/telemetry.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/python/deployment/terraform/cicd/telemetry_outputs.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/python/deployment/terraform/shared/completions.sql +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/python/deployment/terraform/shared/genai_logs_schema.json +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/python/deployment/terraform/single-project/telemetry.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/python/deployment/terraform/single-project/telemetry_outputs.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/python/tests/unit/test_dummy.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/python/{{cookiecutter.agent_directory}}/app_utils/services.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/python/{{cookiecutter.agent_directory}}/app_utils/typing.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/python/{{cookiecutter.agent_guidance_filename}} +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/typescript/.cloudbuild/deploy-to-prod.yaml +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/typescript/.cloudbuild/pr_checks.yaml +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/typescript/.cloudbuild/staging.yaml +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/typescript/.dockerignore +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/typescript/.env.example +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/typescript/.github/workflows/deploy-to-prod.yaml +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/typescript/.github/workflows/pr_checks.yaml +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/typescript/.github/workflows/staging.yaml +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/typescript/.gitignore +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/typescript/Dockerfile +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/typescript/Makefile +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/typescript/README.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/typescript/app/agent.ts +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/typescript/eslint.config.mjs +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/typescript/package.json +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/typescript/tests/integration/server_e2e.test.ts +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/typescript/tests/load_test/.results/.placeholder +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/typescript/tests/load_test/README.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/typescript/tests/load_test/load_test.ts +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/typescript/tests/unit/dummy.test.ts +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/typescript/tsconfig.json +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/typescript/vitest.config.ts +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/cmd_scaffold_group.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/commands/__init__.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/commands/upgrade.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/_shared/deployment/terraform/cicd/service.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/_shared/deployment/terraform/cicd/service_outputs.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/_shared/deployment/terraform/shared/dummy_source.b64 +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/_shared/deployment/terraform/single-project/service.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/_shared/deployment/terraform/single-project/service_outputs.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/_shared/deployment_metadata.json +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/python/tests/load_test/.results/.placeholder +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/python/tests/load_test/README.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/python/tests/load_test/load_test.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/python/{{cookiecutter.agent_directory}}/app_utils/reasoning_engine_adapter.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/python/{{cookiecutter.agent_directory}}/fast_api_app.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/go/deployment/terraform/cicd/service.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/go/deployment/terraform/cicd/service_outputs.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/go/deployment/terraform/single-project/service.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/go/deployment/terraform/single-project/service_outputs.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/java/deployment/terraform/cicd/service.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/java/deployment/terraform/cicd/service_outputs.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/java/deployment/terraform/single-project/service.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/java/deployment/terraform/single-project/service_outputs.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/python/deployment/terraform/cicd/service.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/python/deployment/terraform/cicd/service_outputs.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/python/deployment/terraform/single-project/service.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/python/deployment/terraform/single-project/service_outputs.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/python/tests/load_test/.results/.placeholder +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/python/tests/load_test/README.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/python/tests/load_test/load_test.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/python/{{cookiecutter.agent_directory}}/fast_api_app.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/typescript/deployment/terraform/cicd/service.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/typescript/deployment/terraform/cicd/service_outputs.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/typescript/deployment/terraform/single-project/service.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/typescript/deployment/terraform/single-project/service_outputs.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/gke/_shared/deployment/terraform/cicd/service.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/gke/_shared/deployment/terraform/cicd/service_outputs.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/gke/_shared/deployment/terraform/single-project/service.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/gke/_shared/deployment/terraform/single-project/service_outputs.tf +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/gke/python/tests/load_test/.results/.placeholder +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/gke/python/tests/load_test/README.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/gke/python/tests/load_test/load_test.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/gke/python/{{cookiecutter.agent_directory}}/fast_api_app.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/none/python/tests/load_test/.results/.placeholder +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/none/python/tests/load_test/README.md +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/none/python/tests/load_test/load_test.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/deployment_targets/none/python/{{cookiecutter.agent_directory}}/fast_api_app.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/utils/__init__.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/utils/backup.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/utils/command.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/utils/gcp.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/utils/generate_locks.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/utils/generation_metadata.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/utils/language.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/utils/lock_utils.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/utils/logging.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/utils/merge.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/utils/remote_template.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/utils/upgrade.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/utils/version.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/setup/__init__.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/setup/_antigravity.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/setup/cmd_auth.py +0 -0
- {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/setup/cmd_update.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: google-agents-cli
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.3.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
|
|
@@ -19,7 +19,7 @@ Requires-Dist: google-auth[pyopenssl]>=2.47.0
|
|
|
19
19
|
Requires-Dist: rich>=13.7.0
|
|
20
20
|
Requires-Dist: backoff>=2.2.1
|
|
21
21
|
Requires-Dist: requests>=2.31.0
|
|
22
|
-
Requires-Dist: a2a-sdk
|
|
22
|
+
Requires-Dist: a2a-sdk>=1.0,<2
|
|
23
23
|
Requires-Dist: tomlkit>=0.13.0,<1
|
|
24
24
|
Requires-Dist: psutil>=5.9.0
|
|
25
25
|
Requires-Dist: python-dotenv>=1.0.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "google-agents-cli"
|
|
3
|
-
version = "1.
|
|
3
|
+
version = "1.3.0"
|
|
4
4
|
description = "Agents CLI — Agent Development Lifecycle toolchain for ADK"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = "Apache-2.0"
|
|
@@ -22,7 +22,7 @@ dependencies = [
|
|
|
22
22
|
"rich>=13.7.0",
|
|
23
23
|
"backoff>=2.2.1",
|
|
24
24
|
"requests>=2.31.0",
|
|
25
|
-
"a2a-sdk
|
|
25
|
+
"a2a-sdk>=1.0,<2",
|
|
26
26
|
"tomlkit>=0.13.0,<1",
|
|
27
27
|
"psutil>=5.9.0",
|
|
28
28
|
"python-dotenv>=1.0.0",
|
|
@@ -11,7 +11,7 @@ description: >
|
|
|
11
11
|
metadata:
|
|
12
12
|
author: Google
|
|
13
13
|
license: Apache-2.0
|
|
14
|
-
version: 1.
|
|
14
|
+
version: 1.3.0
|
|
15
15
|
requires:
|
|
16
16
|
bins:
|
|
17
17
|
- agents-cli
|
|
@@ -131,12 +131,17 @@ All `agents-cli eval` subcommands support `--help` for the authoritative flag li
|
|
|
131
131
|
|
|
132
132
|
Runs an agent over an evaluation dataset and writes traces to disk.
|
|
133
133
|
|
|
134
|
+
By default, runs the agent in a local HTTP server (launches the project's `fast_api_app.py` if it exists, or falls back to `adk api_server`) and sends each evaluation case over HTTP. You can generate traces from an already-running agent by passing its HTTP endpoint and app name to `--url` and `--app-name`.
|
|
135
|
+
|
|
134
136
|
```bash
|
|
135
137
|
# Basic — uses tests/eval/datasets/, writes to artifacts/traces/
|
|
136
138
|
agents-cli eval generate
|
|
137
139
|
|
|
138
140
|
# Advanced — custom dataset and output dir
|
|
139
141
|
agents-cli eval generate --dataset tests/eval/datasets/custom.json -o ./custom_traces/
|
|
142
|
+
|
|
143
|
+
# Against a deployed agent (or one you started manually)
|
|
144
|
+
agents-cli eval generate --url https://my-agent.run.app --app-name app
|
|
140
145
|
```
|
|
141
146
|
|
|
142
147
|
### `eval grade`
|
|
@@ -351,10 +356,6 @@ app = App(root_agent=root_agent, name="app")
|
|
|
351
356
|
app = App(root_agent=root_agent, name="flight_booking_assistant")
|
|
352
357
|
```
|
|
353
358
|
|
|
354
|
-
### Cross-session memory can't be tested in eval
|
|
355
|
-
|
|
356
|
-
Each eval case runs in its own fresh in-memory session (`eval generate` creates a new `InMemorySessionService` and session id per case). Multi-turn *within* a case works via `agent_data.turns`, but behavior that depends on a *separate prior session* — e.g. Memory Bank recall across sessions — can't be exercised by eval. Validate cross-session continuity with pytest integration tests instead.
|
|
357
|
-
|
|
358
359
|
### Vertex eval region
|
|
359
360
|
|
|
360
361
|
`eval grade` and `eval submit` **default to the `global` endpoint** — they don't inherit the manifest `region` (the eval services support only a subset of regions), and `eval analyze` is `global`-only. Override these per run with `--region <REGION>` (e.g. data residency); the service rejects an unsupported one:
|
|
@@ -363,7 +364,7 @@ Each eval case runs in its own fresh in-memory session (`eval generate` creates
|
|
|
363
364
|
400 FAILED_PRECONDITION: Unsupported region for Vertex Evaluation Service: <region>
|
|
364
365
|
```
|
|
365
366
|
|
|
366
|
-
`eval generate` and `eval dataset synthesize` run your agent locally, so they honor the agent's own `.env` — notably `GOOGLE_CLOUD_LOCATION`, which selects the model endpoint **when the agent uses Vertex AI** (`GOOGLE_GENAI_USE_VERTEXAI=true`); it's unused with a `GEMINI_API_KEY` (AI Studio). They take **no** `--region` and never override your `.env` with the manifest `region`; change the model region by editing `.env`. One caveat for `synthesize`: its scenario-generation step is a **server-side** eval call at `GOOGLE_CLOUD_LOCATION`, so keep that an eval-supported region (`global` by default) even though the agent itself could run elsewhere.
|
|
367
|
+
`eval generate` (without the `--url` flag) and `eval dataset synthesize` run your agent locally, so they honor the agent's own `.env` — notably `GOOGLE_CLOUD_LOCATION`, which selects the model endpoint **when the agent uses Vertex AI** (`GOOGLE_GENAI_USE_VERTEXAI=true`); it's unused with a `GEMINI_API_KEY` (AI Studio). They take **no** `--region` and never override your `.env` with the manifest `region`; change the model region by editing `.env`. One caveat for `synthesize`: its scenario-generation step is a **server-side** eval call at `GOOGLE_CLOUD_LOCATION`, so keep that an eval-supported region (`global` by default) even though the agent itself could run elsewhere.
|
|
367
368
|
|
|
368
369
|
**No eval region fits your data-residency rules?** Fall back to **local custom metrics** — a `custom_metrics` entry with a `custom_function` (`execution: local`, the default) grades in-process with no GCP region required. You lose the managed built-in metrics, but your `custom_function` can still call an LLM judge in a compliant region itself — so LLM-as-judge grading stays available anywhere.
|
|
369
370
|
|
{google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-workflow/SKILL.md
RENAMED
|
@@ -12,7 +12,7 @@ description: >
|
|
|
12
12
|
metadata:
|
|
13
13
|
author: Google
|
|
14
14
|
license: Apache-2.0
|
|
15
|
-
version: 1.
|
|
15
|
+
version: 1.3.0
|
|
16
16
|
requires:
|
|
17
17
|
bins:
|
|
18
18
|
- agents-cli
|
|
@@ -26,8 +26,8 @@ metadata:
|
|
|
26
26
|
> **Before writing agent code, make sure a scaffolded project exists (see Phase 2).** Skipping scaffolding loses eval boilerplate, CI/CD config, and project conventions.
|
|
27
27
|
|
|
28
28
|
|
|
29
|
-
> Requires: google-agents-cli ~= 1.
|
|
30
|
-
> If version is behind, run: uv tool install "google-agents-cli~=1.
|
|
29
|
+
> Requires: google-agents-cli ~= 1.3.0
|
|
30
|
+
> If version is behind, run: uv tool install "google-agents-cli~=1.3.0"
|
|
31
31
|
|
|
32
32
|
> Check version: agents-cli info
|
|
33
33
|
> [Install uv](https://docs.astral.sh/uv/getting-started/installation/index.md) first if needed.
|
|
@@ -19,11 +19,11 @@ from __future__ import annotations
|
|
|
19
19
|
import json
|
|
20
20
|
from collections.abc import Iterator
|
|
21
21
|
|
|
22
|
-
import click
|
|
23
22
|
import requests
|
|
24
23
|
|
|
25
24
|
_SESSION_TIMEOUT = 30
|
|
26
25
|
_RUN_SSE_TIMEOUT = 120
|
|
26
|
+
_APP_INFO_TIMEOUT = 10
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
def create_session(
|
|
@@ -32,20 +32,48 @@ def create_session(
|
|
|
32
32
|
user_id: str,
|
|
33
33
|
*,
|
|
34
34
|
headers: dict,
|
|
35
|
+
prior_events: list[dict] | None = None,
|
|
35
36
|
) -> str:
|
|
36
|
-
"""Create an ADK session and return its ID.
|
|
37
|
+
"""Create an ADK session and return its ID.
|
|
38
|
+
|
|
39
|
+
When ``prior_events`` are supplied, the ADK server seeds the fresh
|
|
40
|
+
session with them.
|
|
41
|
+
"""
|
|
37
42
|
session_url = f"{base_url}/apps/{app_name}/users/{user_id}/sessions"
|
|
38
|
-
|
|
39
|
-
if
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
body: dict = {}
|
|
44
|
+
if prior_events:
|
|
45
|
+
body["events"] = prior_events
|
|
46
|
+
|
|
47
|
+
resp = requests.post(
|
|
48
|
+
session_url, headers=headers, json=body, timeout=_SESSION_TIMEOUT
|
|
49
|
+
)
|
|
50
|
+
resp.raise_for_status()
|
|
46
51
|
return resp.json().get("id")
|
|
47
52
|
|
|
48
53
|
|
|
54
|
+
def fetch_app_info(
|
|
55
|
+
*,
|
|
56
|
+
base_url: str,
|
|
57
|
+
app_name: str,
|
|
58
|
+
headers: dict,
|
|
59
|
+
) -> tuple[str | None, dict]:
|
|
60
|
+
"""Fetch agent metadata from ADK's /apps/{app_name}/app-info endpoint.
|
|
61
|
+
|
|
62
|
+
Returns (root_agent_name, agents), where agents is the raw ADK agents
|
|
63
|
+
map keyed by agent id. root_agent_name may be None if the server omits
|
|
64
|
+
it; agents may be empty.
|
|
65
|
+
|
|
66
|
+
Raises requests.RequestException (or a subclass: ConnectionError,
|
|
67
|
+
HTTPError, JSONDecodeError) if the endpoint isn't reachable, returns a
|
|
68
|
+
non-2xx status, or returns a body that isn't valid JSON.
|
|
69
|
+
"""
|
|
70
|
+
url = f"{base_url}/apps/{app_name}/app-info"
|
|
71
|
+
resp = requests.get(url, headers=headers, timeout=_APP_INFO_TIMEOUT)
|
|
72
|
+
resp.raise_for_status()
|
|
73
|
+
payload = resp.json()
|
|
74
|
+
return payload.get("rootAgentName"), payload.get("agents") or {}
|
|
75
|
+
|
|
76
|
+
|
|
49
77
|
def run_sse(
|
|
50
78
|
base_url: str,
|
|
51
79
|
app_name: str,
|
|
@@ -72,10 +100,7 @@ def run_sse(
|
|
|
72
100
|
with requests.post(
|
|
73
101
|
run_url, headers=headers, json=payload, stream=True, timeout=_RUN_SSE_TIMEOUT
|
|
74
102
|
) as resp:
|
|
75
|
-
|
|
76
|
-
raise click.ClickException(
|
|
77
|
-
f"Failed to run agent (HTTP {resp.status_code}):\n {resp.text}"
|
|
78
|
-
)
|
|
103
|
+
resp.raise_for_status()
|
|
79
104
|
for line in resp.iter_lines(decode_unicode=True):
|
|
80
105
|
if not isinstance(line, str) or not line.startswith("data: "):
|
|
81
106
|
continue
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Copyright 2026 Google LLC
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# https://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
"""GCP project resolution and lookup utilities."""
|
|
16
|
+
|
|
17
|
+
import os
|
|
18
|
+
|
|
19
|
+
import click
|
|
20
|
+
|
|
21
|
+
from google.agents.cli._runner import run
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def resolve_gcp_project(
|
|
25
|
+
override_project: str | None = None, *, required: bool = False
|
|
26
|
+
) -> str:
|
|
27
|
+
"""Resolves the GCP project ID to use.
|
|
28
|
+
|
|
29
|
+
The project ID is resolved in the following order of precedence:
|
|
30
|
+
|
|
31
|
+
1. The ``override_project`` argument if provided.
|
|
32
|
+
It's expected this would come from a --project command line argument.
|
|
33
|
+
2. The ``GOOGLE_CLOUD_PROJECT`` environment variable.
|
|
34
|
+
3. Application Default Credentials via :func:`google.auth.default`,
|
|
35
|
+
which itself checks (in order):
|
|
36
|
+
|
|
37
|
+
a. ``GOOGLE_APPLICATION_CREDENTIALS`` service account JSON file.
|
|
38
|
+
b. The gcloud SDK ADC file
|
|
39
|
+
(``gcloud auth application-default login``); when this file
|
|
40
|
+
exists but lacks a project, the gcloud SDK falls back to
|
|
41
|
+
``gcloud config get-value project``.
|
|
42
|
+
c. GAE / GCE / Cloud Run metadata service.
|
|
43
|
+
|
|
44
|
+
Returns:
|
|
45
|
+
The resolved GCP project ID, or an empty string if no project is found.
|
|
46
|
+
"""
|
|
47
|
+
if override_project:
|
|
48
|
+
return override_project
|
|
49
|
+
env_project = os.environ.get("GOOGLE_CLOUD_PROJECT")
|
|
50
|
+
if env_project:
|
|
51
|
+
return env_project
|
|
52
|
+
# Local import: avoids a circular import at module load time
|
|
53
|
+
# (auth.py imports from _gcp_project transitively in some paths).
|
|
54
|
+
from google.agents.cli.auth import _get_adc_project
|
|
55
|
+
|
|
56
|
+
project = _get_adc_project() or ""
|
|
57
|
+
if required and not project:
|
|
58
|
+
raise click.ClickException(
|
|
59
|
+
"Could not determine GCP project. Set one with:\n"
|
|
60
|
+
" * pass --project <PROJECT_ID>\n"
|
|
61
|
+
" * export GOOGLE_CLOUD_PROJECT=<PROJECT_ID>\n"
|
|
62
|
+
" * gcloud config set project <PROJECT_ID>"
|
|
63
|
+
)
|
|
64
|
+
return project
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def get_gcp_project_number(project_id: str) -> str | None:
|
|
68
|
+
"""Get numeric GCP project number for a project ID or project number.
|
|
69
|
+
|
|
70
|
+
Args:
|
|
71
|
+
project_id: GCP project ID or project number (e.g., 'my-project' or '123456789').
|
|
72
|
+
|
|
73
|
+
Returns:
|
|
74
|
+
Project number string, or None if lookup fails.
|
|
75
|
+
"""
|
|
76
|
+
res = run(
|
|
77
|
+
[
|
|
78
|
+
"gcloud",
|
|
79
|
+
"projects",
|
|
80
|
+
"describe",
|
|
81
|
+
project_id,
|
|
82
|
+
"--format=value(projectNumber)",
|
|
83
|
+
],
|
|
84
|
+
check=False,
|
|
85
|
+
capture=True,
|
|
86
|
+
)
|
|
87
|
+
if res.returncode == 0:
|
|
88
|
+
return res.stdout.strip() or None
|
|
89
|
+
|
|
90
|
+
# Maybe it's already a project number, return as-is
|
|
91
|
+
if project_id.isdigit():
|
|
92
|
+
return project_id
|
|
93
|
+
return None
|
|
@@ -307,49 +307,6 @@ def require_deployment_target(cfg: ProjectConfig) -> None:
|
|
|
307
307
|
)
|
|
308
308
|
|
|
309
309
|
|
|
310
|
-
def resolve_gcp_project(
|
|
311
|
-
override_project: str | None = None, *, required: bool = False
|
|
312
|
-
) -> str:
|
|
313
|
-
"""Resolves the GCP project ID to use.
|
|
314
|
-
|
|
315
|
-
The project ID is resolved in the following order of precedence:
|
|
316
|
-
|
|
317
|
-
1. The ``override_project`` argument if provided.
|
|
318
|
-
It's expected this would come from a --project command line argument.
|
|
319
|
-
2. The ``GOOGLE_CLOUD_PROJECT`` environment variable.
|
|
320
|
-
3. Application Default Credentials via :func:`google.auth.default`,
|
|
321
|
-
which itself checks (in order):
|
|
322
|
-
|
|
323
|
-
a. ``GOOGLE_APPLICATION_CREDENTIALS`` service account JSON file.
|
|
324
|
-
b. The gcloud SDK ADC file
|
|
325
|
-
(``gcloud auth application-default login``); when this file
|
|
326
|
-
exists but lacks a project, the gcloud SDK falls back to
|
|
327
|
-
``gcloud config get-value project``.
|
|
328
|
-
c. GAE / GCE / Cloud Run metadata service.
|
|
329
|
-
|
|
330
|
-
Returns:
|
|
331
|
-
The resolved GCP project ID, or an empty string if no project is found.
|
|
332
|
-
"""
|
|
333
|
-
if override_project:
|
|
334
|
-
return override_project
|
|
335
|
-
env_project = os.environ.get("GOOGLE_CLOUD_PROJECT")
|
|
336
|
-
if env_project:
|
|
337
|
-
return env_project
|
|
338
|
-
# Local import: avoids a circular import at module load time
|
|
339
|
-
# (auth.py imports from _project transitively in some paths).
|
|
340
|
-
from google.agents.cli.auth import _get_adc_project
|
|
341
|
-
|
|
342
|
-
project = _get_adc_project() or ""
|
|
343
|
-
if required and not project:
|
|
344
|
-
raise click.ClickException(
|
|
345
|
-
"Could not determine GCP project. Set one with:\n"
|
|
346
|
-
" * pass --project <PROJECT_ID>\n"
|
|
347
|
-
" * export GOOGLE_CLOUD_PROJECT=<PROJECT_ID>\n"
|
|
348
|
-
" * gcloud config set project <PROJECT_ID>"
|
|
349
|
-
)
|
|
350
|
-
return project
|
|
351
|
-
|
|
352
|
-
|
|
353
310
|
def require_a2a_project(cfg: ProjectConfig) -> None:
|
|
354
311
|
"""Raise if the project is not an A2A agent."""
|
|
355
312
|
if not cfg.is_a2a:
|
|
@@ -18,8 +18,6 @@ import os
|
|
|
18
18
|
import re
|
|
19
19
|
import shlex
|
|
20
20
|
import shutil
|
|
21
|
-
import subprocess
|
|
22
|
-
import threading
|
|
23
21
|
from functools import cache
|
|
24
22
|
from pathlib import Path
|
|
25
23
|
|
|
@@ -149,125 +147,22 @@ def require_tool(name: str, install_hint: str = "") -> str:
|
|
|
149
147
|
return path
|
|
150
148
|
|
|
151
149
|
|
|
152
|
-
def run_npx_skills(args: list[str], spinner_msg: str)
|
|
150
|
+
def run_npx_skills(args: list[str], spinner_msg: str):
|
|
153
151
|
"""Run an npx skills command, streaming output in real-time.
|
|
154
152
|
|
|
155
153
|
Always starts with ``["npx", "-y", SKILLS_NPX_PACKAGE]`` and appends
|
|
156
154
|
the additional ``args`` provided.
|
|
157
|
-
|
|
158
|
-
All non-noise lines are printed immediately. Only concise summary
|
|
159
|
-
lines (e.g. "Installed 6 skills", "Found 6 skills") are collected
|
|
160
|
-
for the end summary.
|
|
161
|
-
|
|
162
|
-
Failure lines (e.g. "✗ Failed to update <skill>") are re-colored red and
|
|
163
|
-
counted; if any are observed the command raises even when npx itself
|
|
164
|
-
exits 0, since `npx skills update` reports per-skill failures via stdout
|
|
165
|
-
but still exits cleanly.
|
|
166
|
-
|
|
167
|
-
Returns:
|
|
168
|
-
A list of summary-worthy lines (short, no decorative content).
|
|
155
|
+
|
|
169
156
|
Raises:
|
|
170
|
-
click.ClickException: If the npx process exits non-zero
|
|
171
|
-
per-skill failures were observed in the streamed output.
|
|
157
|
+
click.ClickException: If the npx process exits non-zero.
|
|
172
158
|
"""
|
|
173
|
-
from google.agents.cli._runner import
|
|
159
|
+
from google.agents.cli._runner import run_resolved
|
|
174
160
|
from google.agents.cli._skills_check import SKILLS_NPX_PACKAGE
|
|
175
161
|
|
|
176
162
|
full_args = ["npx", "-y", SKILLS_NPX_PACKAGE, *args]
|
|
177
163
|
click.secho(f" \u25b8 {shlex.join(full_args)}", fg="cyan", dim=True)
|
|
178
164
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
# (e.g. green progress markers making "Failed to update" appear green).
|
|
184
|
-
# See b/525049570.
|
|
185
|
-
child_env = {**os.environ, "NO_COLOR": "1", "FORCE_COLOR": "0"}
|
|
186
|
-
|
|
187
|
-
summary_lines: list[str] = []
|
|
188
|
-
failure_lines: list[str] = []
|
|
189
|
-
# Pipe stderr and drain it concurrently in a background thread to avoid
|
|
190
|
-
# pipe-buffer deadlock.
|
|
191
|
-
proc = popen_resolved(
|
|
192
|
-
full_args,
|
|
193
|
-
stdout=subprocess.PIPE,
|
|
194
|
-
stderr=subprocess.PIPE,
|
|
195
|
-
text=True,
|
|
196
|
-
encoding="utf-8",
|
|
197
|
-
errors="replace",
|
|
198
|
-
env=child_env,
|
|
199
|
-
)
|
|
200
|
-
|
|
201
|
-
stderr_capture = {"data": ""}
|
|
202
|
-
|
|
203
|
-
def _drain_stderr() -> None:
|
|
204
|
-
try:
|
|
205
|
-
stderr_capture["data"] = proc.stderr.read() if proc.stderr else ""
|
|
206
|
-
except Exception:
|
|
207
|
-
stderr_capture["data"] = ""
|
|
208
|
-
|
|
209
|
-
stderr_thread = threading.Thread(target=_drain_stderr, daemon=True)
|
|
210
|
-
stderr_thread.start()
|
|
211
|
-
|
|
212
|
-
# Read stdout line-by-line
|
|
213
|
-
assert proc.stdout is not None
|
|
214
|
-
for line in proc.stdout:
|
|
215
|
-
# Defensively strip any leaked ANSI escape sequences so we control how
|
|
216
|
-
# the line renders.
|
|
217
|
-
stripped = _ANSI_RE.sub("", line).strip()
|
|
218
|
-
if not stripped:
|
|
219
|
-
continue
|
|
220
|
-
# Skip npx download/cache noise
|
|
221
|
-
if stripped.startswith("npm ") or stripped.startswith("npx:"):
|
|
222
|
-
continue
|
|
223
|
-
# Skip ASCII art banners (block characters)
|
|
224
|
-
if any(ch in stripped for ch in "█╗╔║╚╝"):
|
|
225
|
-
continue
|
|
226
|
-
# Strip leading box-drawing / bullet / status-glyph prefixes to extract
|
|
227
|
-
# text. We intentionally also strip "✗" so we can re-emit the line with
|
|
228
|
-
# our own (correct) red coloring below.
|
|
229
|
-
clean = stripped.lstrip("┌┐└┘├┤│◇●◆✓✗─╮╯ ")
|
|
230
|
-
if not clean:
|
|
231
|
-
continue
|
|
232
|
-
# Skip per-agent detail lines
|
|
233
|
-
if clean.startswith(("universal:", "symlink", "overwrites:")):
|
|
234
|
-
continue
|
|
235
|
-
# Skip purely decorative headers (e.g. "Installation Summary ────")
|
|
236
|
-
if "──" in clean:
|
|
237
|
-
continue
|
|
238
|
-
|
|
239
|
-
# Detect per-skill failures. npx skills reports these as
|
|
240
|
-
# "✗ Failed to update <skill>" followed by a "Failed to update N
|
|
241
|
-
# skill(s)" summary line. Either form is a hard failure for us.
|
|
242
|
-
is_failure = clean.startswith("Failed ") or "Failed to update" in clean
|
|
243
|
-
if is_failure:
|
|
244
|
-
failure_lines.append(clean)
|
|
245
|
-
click.secho(f" ✗ {clean}", fg="red")
|
|
246
|
-
else:
|
|
247
|
-
click.echo(f" {clean}")
|
|
248
|
-
|
|
249
|
-
# Collect concise summary-worthy lines for the recap
|
|
250
|
-
if len(clean) < 80 and clean.startswith(
|
|
251
|
-
("Installed", "Found", "Done", "Removed", "Updated")
|
|
252
|
-
):
|
|
253
|
-
summary_lines.append(clean)
|
|
254
|
-
|
|
255
|
-
proc.wait()
|
|
256
|
-
stderr_thread.join()
|
|
257
|
-
|
|
258
|
-
if proc.returncode != 0:
|
|
259
|
-
stderr = stderr_capture["data"]
|
|
260
|
-
click.secho(" Error running npx skills:", fg="red")
|
|
261
|
-
if stderr.strip():
|
|
262
|
-
for line in stderr.strip().splitlines():
|
|
263
|
-
click.echo(f" {line}")
|
|
264
|
-
raise click.ClickException("npx skills failed")
|
|
265
|
-
|
|
266
|
-
if failure_lines:
|
|
267
|
-
# npx skills exits 0 even when individual skill operations fail, so we
|
|
268
|
-
# surface those failures as a non-zero exit ourselves.
|
|
269
|
-
raise click.ClickException(
|
|
270
|
-
f"npx skills reported {len(failure_lines)} failure(s); see output above."
|
|
271
|
-
)
|
|
272
|
-
|
|
273
|
-
return summary_lines
|
|
165
|
+
try:
|
|
166
|
+
run_resolved(full_args, check=True, encoding="utf-8", errors="replace")
|
|
167
|
+
except Exception as e:
|
|
168
|
+
raise click.ClickException("Error running npx skills") from e
|
{google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/deploy/agent_runtime.py
RENAMED
|
@@ -24,6 +24,7 @@ import datetime
|
|
|
24
24
|
import json
|
|
25
25
|
import logging
|
|
26
26
|
import os
|
|
27
|
+
import urllib.parse
|
|
27
28
|
import warnings
|
|
28
29
|
from pathlib import Path
|
|
29
30
|
from typing import Any
|
|
@@ -172,6 +173,16 @@ def _get_resource_name_from_operation(operation_name: str) -> str:
|
|
|
172
173
|
return resource_name
|
|
173
174
|
|
|
174
175
|
|
|
176
|
+
def build_agent_engine_logs_url(operation_name: str, project: str) -> str:
|
|
177
|
+
"""Build a Logs Explorer URL for the engine's logs, keyed off the LRO name."""
|
|
178
|
+
engine_id = _get_resource_name_from_operation(operation_name).split("/")[-1]
|
|
179
|
+
query = f'resource.labels.reasoning_engine_id="{engine_id}"'
|
|
180
|
+
encoded = urllib.parse.quote(query, safe="")
|
|
181
|
+
return (
|
|
182
|
+
f"https://console.cloud.google.com/logs/query;query={encoded}?project={project}"
|
|
183
|
+
)
|
|
184
|
+
|
|
185
|
+
|
|
175
186
|
def write_deployment_metadata(
|
|
176
187
|
remote_agent: Any,
|
|
177
188
|
cfg: ProjectConfig,
|
|
@@ -602,21 +613,18 @@ def deploy_agent_runtime(
|
|
|
602
613
|
# Deploy (create or update)
|
|
603
614
|
action = "Updating" if matching_agents else "Creating"
|
|
604
615
|
|
|
605
|
-
if no_wait
|
|
606
|
-
|
|
607
|
-
operation = _start_and_record_operation(
|
|
608
|
-
client, config, matching_agents, project, location
|
|
609
|
-
)
|
|
610
|
-
click.echo(f"\n📋 Operation started: {operation.name}")
|
|
611
|
-
click.echo(" Check status with: agents-cli deploy --status")
|
|
612
|
-
return None
|
|
613
|
-
|
|
614
|
-
click.echo(f"\n🚀 {action} agent: {display_name} (this can take 5-10 minutes)...")
|
|
616
|
+
wait_note = "not waiting for completion" if no_wait else "this can take a few minutes"
|
|
617
|
+
click.echo(f"\n🚀 {action} agent: {display_name} ({wait_note})...")
|
|
615
618
|
|
|
616
619
|
operation = _start_and_record_operation(
|
|
617
620
|
client, config, matching_agents, project, location
|
|
618
621
|
)
|
|
619
|
-
|
|
622
|
+
logs_url = build_agent_engine_logs_url(operation.name, project)
|
|
623
|
+
|
|
624
|
+
click.echo(f" Operation: {operation.name}\n Monitor deploy logs: {logs_url}")
|
|
625
|
+
if no_wait:
|
|
626
|
+
click.echo(" Check status with: agents-cli deploy --status")
|
|
627
|
+
return None
|
|
620
628
|
click.echo(
|
|
621
629
|
" If this command is interrupted, run 'agents-cli deploy --status' to check progress."
|
|
622
630
|
)
|
|
@@ -779,6 +787,9 @@ def check_agent_runtime_operation(
|
|
|
779
787
|
seconds = int(delta.total_seconds() % 60)
|
|
780
788
|
elapsed = f" ({minutes}m {seconds}s elapsed)"
|
|
781
789
|
|
|
782
|
-
click.echo(
|
|
783
|
-
|
|
784
|
-
|
|
790
|
+
click.echo(
|
|
791
|
+
f"⏳ Deployment still in progress{elapsed}\n"
|
|
792
|
+
f" Operation: {operation_name}\n"
|
|
793
|
+
f" Monitor deploy logs: {build_agent_engine_logs_url(operation_name, project)}\n"
|
|
794
|
+
" Run 'agents-cli deploy --status' again to check."
|
|
795
|
+
)
|
{google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/deploy/cmd_deploy.py
RENAMED
|
@@ -26,6 +26,7 @@ import click
|
|
|
26
26
|
import requests
|
|
27
27
|
|
|
28
28
|
from google.agents.cli import _tools
|
|
29
|
+
from google.agents.cli._gcp_project import resolve_gcp_project
|
|
29
30
|
from google.agents.cli._project import (
|
|
30
31
|
ProjectConfig,
|
|
31
32
|
chdir_project_root,
|
|
@@ -33,7 +34,6 @@ from google.agents.cli._project import (
|
|
|
33
34
|
find_project_root,
|
|
34
35
|
read_project_config,
|
|
35
36
|
require_deployment_target,
|
|
36
|
-
resolve_gcp_project,
|
|
37
37
|
)
|
|
38
38
|
from google.agents.cli._runner import popen_resolved, run, run_resolved
|
|
39
39
|
from google.agents.cli.auth import get_access_token
|
|
@@ -195,10 +195,14 @@ _CLOUD_RUN_TRANSIENT_DEPLOY_SIGNATURES = (
|
|
|
195
195
|
"artifactregistry.repositories.downloadArtifacts",
|
|
196
196
|
)
|
|
197
197
|
|
|
198
|
-
# Retry budget for transient Cloud Run deploy failures.
|
|
199
|
-
#
|
|
200
|
-
|
|
201
|
-
|
|
198
|
+
# Retry budget for transient Cloud Run deploy failures. IAM propagation can take
|
|
199
|
+
# several minutes, so we retry until max_time with a capped exponential backoff:
|
|
200
|
+
# waits ramp 5s, 10s, 20s then hold at 30s (each full-jittered), i.e. steady
|
|
201
|
+
# ~30s polling until the deadline. max_tries is unset so max_time is the sole
|
|
202
|
+
# stop condition.
|
|
203
|
+
_CLOUD_RUN_DEPLOY_MAX_TIME = 600
|
|
204
|
+
_CLOUD_RUN_DEPLOY_BACKOFF_FACTOR = 5
|
|
205
|
+
_CLOUD_RUN_DEPLOY_BACKOFF_MAX_VALUE = 30
|
|
202
206
|
|
|
203
207
|
|
|
204
208
|
class _TransientCloudRunDeployError(click.ClickException):
|
|
@@ -212,15 +216,18 @@ class _TransientCloudRunDeployError(click.ClickException):
|
|
|
212
216
|
@backoff.on_exception(
|
|
213
217
|
backoff.expo,
|
|
214
218
|
_TransientCloudRunDeployError,
|
|
215
|
-
|
|
219
|
+
factor=_CLOUD_RUN_DEPLOY_BACKOFF_FACTOR,
|
|
220
|
+
max_value=_CLOUD_RUN_DEPLOY_BACKOFF_MAX_VALUE,
|
|
221
|
+
max_tries=None,
|
|
216
222
|
max_time=_CLOUD_RUN_DEPLOY_MAX_TIME,
|
|
217
223
|
jitter=backoff.full_jitter,
|
|
218
224
|
on_backoff=lambda details: logging.warning(
|
|
219
225
|
"Cloud Run deploy hit a transient IAM-propagation error; retrying in "
|
|
220
|
-
"%.0fs (attempt %d/%
|
|
226
|
+
"%.0fs (attempt %d, %.0fs/%ds elapsed)...",
|
|
221
227
|
details["wait"],
|
|
222
228
|
details["tries"] + 1, # the upcoming attempt; details['tries'] = ones done
|
|
223
|
-
|
|
229
|
+
details["elapsed"],
|
|
230
|
+
_CLOUD_RUN_DEPLOY_MAX_TIME,
|
|
224
231
|
),
|
|
225
232
|
)
|
|
226
233
|
def _run_cloud_run_deploy_with_retry(args: list[str], *, project: str | None) -> None:
|
{google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/eval/cmd_analyze.py
RENAMED
|
@@ -28,11 +28,11 @@ from rich.console import Console
|
|
|
28
28
|
from rich.table import Table
|
|
29
29
|
from vertexai._genai import _evals_visualization
|
|
30
30
|
|
|
31
|
+
from google.agents.cli._gcp_project import resolve_gcp_project
|
|
31
32
|
from google.agents.cli._project import (
|
|
32
33
|
chdir_project_root,
|
|
33
34
|
read_project_config,
|
|
34
35
|
require_agent_directory,
|
|
35
|
-
resolve_gcp_project,
|
|
36
36
|
)
|
|
37
37
|
from google.agents.cli.eval import _paths
|
|
38
38
|
|