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.
Files changed (296) hide show
  1. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/PKG-INFO +2 -2
  2. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/pyproject.toml +2 -2
  3. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-adk-code/SKILL.md +1 -1
  4. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-deploy/SKILL.md +1 -1
  5. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-eval/SKILL.md +7 -6
  6. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-observability/SKILL.md +1 -1
  7. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-publish/SKILL.md +1 -1
  8. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-scaffold/SKILL.md +1 -1
  9. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-workflow/SKILL.md +3 -3
  10. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/_adk_client.py +39 -14
  11. google_agents_cli-1.3.0/src/google/agents/cli/_gcp_project.py +93 -0
  12. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/_project.py +0 -43
  13. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/_tools.py +8 -113
  14. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/deploy/agent_runtime.py +25 -14
  15. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/deploy/cmd_deploy.py +15 -8
  16. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/eval/cmd_analyze.py +1 -1
  17. google_agents_cli-1.3.0/src/google/agents/cli/eval/cmd_generate.py +687 -0
  18. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/eval/cmd_grade.py +2 -1
  19. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/eval/cmd_run.py +42 -1
  20. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/eval/cmd_submit.py +2 -1
  21. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/infra/_cicd_utils.py +104 -45
  22. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/infra/cmd_cicd.py +22 -44
  23. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/publish/cmd_publish.py +7 -38
  24. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/run/_local_server.py +72 -25
  25. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/run/_multimodal.py +23 -16
  26. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/run/cmd_run.py +115 -105
  27. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/agents/adk/.template/templateconfig.yaml +10 -2
  28. {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
  29. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/python/pyproject.toml +1 -1
  30. {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
  31. {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
  32. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/commands/create.py +11 -19
  33. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/commands/enhance.py +0 -14
  34. {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
  35. {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
  36. {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
  37. {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
  38. {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
  39. {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
  40. {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
  41. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/utils/template.py +17 -17
  42. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/setup/cmd_setup.py +2 -7
  43. google_agents_cli-1.2.0/src/google/agents/cli/eval/_inference_runner.py +0 -441
  44. google_agents_cli-1.2.0/src/google/agents/cli/eval/cmd_generate.py +0 -246
  45. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/LICENSE +0 -0
  46. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/README.md +0 -0
  47. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/README.md +0 -0
  48. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-adk-code/references/adk-python.md +0 -0
  49. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-adk-code/references/adk-workflows.md +0 -0
  50. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-deploy/references/agent-runtime.md +0 -0
  51. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-deploy/references/batch-inference.md +0 -0
  52. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-deploy/references/cicd-pipeline.md +0 -0
  53. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-deploy/references/cloud-run.md +0 -0
  54. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-deploy/references/gke.md +0 -0
  55. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-deploy/references/terraform-patterns.md +0 -0
  56. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-deploy/references/testing-deployed-agents.md +0 -0
  57. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-eval/references/builtin-tools-eval.md +0 -0
  58. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-eval/references/dataset_schema.md +0 -0
  59. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-eval/references/metrics-guide.md +0 -0
  60. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-eval/references/multimodal-eval.md +0 -0
  61. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-eval/references/user-simulation.md +0 -0
  62. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-observability/references/bigquery-agent-analytics.md +0 -0
  63. {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
  64. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-scaffold/references/flags.md +0 -0
  65. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-workflow/references/brainstorming.md +0 -0
  66. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-workflow/references/commands.md +0 -0
  67. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-workflow/references/internals.md +0 -0
  68. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-workflow/references/samples.md +0 -0
  69. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-workflow/references/spec-template.md +0 -0
  70. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/skills/google-agents-cli-workflow/references/terminology.md +0 -0
  71. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/__init__.py +0 -0
  72. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/_agent_runtime_a2a.py +0 -0
  73. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/_click.py +0 -0
  74. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/_experiments.py +0 -0
  75. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/_output.py +0 -0
  76. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/_remote.py +0 -0
  77. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/_runner.py +0 -0
  78. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/_skills_check.py +0 -0
  79. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/_trust.py +0 -0
  80. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/auth.py +0 -0
  81. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/data/__init__.py +0 -0
  82. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/data/_recipe.py +0 -0
  83. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/data/cmd_data_ingestion.py +0 -0
  84. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/deploy/__init__.py +0 -0
  85. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/deploy/_operation.py +0 -0
  86. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/deploy/_utils.py +0 -0
  87. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/dev/__init__.py +0 -0
  88. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/dev/cmd_install.py +0 -0
  89. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/dev/cmd_lint.py +0 -0
  90. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/dev/cmd_playground.py +0 -0
  91. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/eval/__init__.py +0 -0
  92. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/eval/_paths.py +0 -0
  93. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/eval/_synthesize_runner.py +0 -0
  94. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/eval/cmd_compare.py +0 -0
  95. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/eval/cmd_dataset.py +0 -0
  96. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/eval/cmd_eval_group.py +0 -0
  97. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/eval/cmd_metric.py +0 -0
  98. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/eval/cmd_optimize.py +0 -0
  99. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/eval/eval_utils.py +0 -0
  100. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/eval/optimize_utils.py +0 -0
  101. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/info/__init__.py +0 -0
  102. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/info/cmd_info.py +0 -0
  103. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/infra/__init__.py +0 -0
  104. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/infra/cmd_datastore.py +0 -0
  105. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/infra/cmd_infra.py +0 -0
  106. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/infra/cmd_infra_single_project.py +0 -0
  107. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/main.py +0 -0
  108. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/publish/__init__.py +0 -0
  109. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/publish/cmd_publish_group.py +0 -0
  110. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/run/__init__.py +0 -0
  111. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/__init__.py +0 -0
  112. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/agents/README.md +0 -0
  113. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/agents/adk/README.md +0 -0
  114. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/agents/adk/app/__init__.py +0 -0
  115. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/agents/adk/app/agent.py +0 -0
  116. {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
  117. {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
  118. {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
  119. {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
  120. {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
  121. {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
  122. {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
  123. {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
  124. {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
  125. {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
  126. {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
  127. {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
  128. {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
  129. {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
  130. {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
  131. {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
  132. {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
  133. {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
  134. {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
  135. {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
  136. {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
  137. {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
  138. {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
  139. {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
  140. {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
  141. {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
  142. {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
  143. {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
  144. {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
  145. {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
  146. {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
  147. {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
  148. {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
  149. {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
  150. {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
  151. {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
  152. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/go/.env.example +0 -0
  153. {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
  154. {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
  155. {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
  156. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/go/.gitignore +0 -0
  157. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/go/.golangci.yml +0 -0
  158. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/go/Dockerfile +0 -0
  159. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/go/Makefile +0 -0
  160. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/go/README.md +0 -0
  161. {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
  162. {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
  163. {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
  164. {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
  165. {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
  166. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/go/go.mod +0 -0
  167. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/go/go.sum +0 -0
  168. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/go/main.go +0 -0
  169. {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
  170. {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
  171. {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
  172. {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
  173. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/java/.env.example +0 -0
  174. {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
  175. {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
  176. {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
  177. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/java/.gitignore +0 -0
  178. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/java/Dockerfile +0 -0
  179. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/java/Makefile +0 -0
  180. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/java/README.md +0 -0
  181. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/java/pom.xml +0 -0
  182. {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
  183. {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
  184. {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
  185. {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
  186. {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
  187. {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
  188. {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
  189. {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
  190. {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
  191. {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
  192. {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
  193. {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
  194. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/python/.env +0 -0
  195. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/python/.env.example +0 -0
  196. {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
  197. {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
  198. {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
  199. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/python/.gitignore +0 -0
  200. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/python/Dockerfile +0 -0
  201. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/python/README.md +0 -0
  202. {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
  203. {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
  204. {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
  205. {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
  206. {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
  207. {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
  208. {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
  209. {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
  210. {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
  211. {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
  212. {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
  213. {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
  214. {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
  215. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/typescript/.dockerignore +0 -0
  216. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/typescript/.env.example +0 -0
  217. {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
  218. {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
  219. {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
  220. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/typescript/.gitignore +0 -0
  221. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/typescript/Dockerfile +0 -0
  222. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/typescript/Makefile +0 -0
  223. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/typescript/README.md +0 -0
  224. {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
  225. {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
  226. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/typescript/package.json +0 -0
  227. {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
  228. {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
  229. {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
  230. {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
  231. {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
  232. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/base_templates/typescript/tsconfig.json +0 -0
  233. {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
  234. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/cmd_scaffold_group.py +0 -0
  235. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/commands/__init__.py +0 -0
  236. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/commands/upgrade.py +0 -0
  237. {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
  238. {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
  239. {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
  240. {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
  241. {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
  242. {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
  243. {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
  244. {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
  245. {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
  246. {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
  247. {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
  248. {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
  249. {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
  250. {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
  251. {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
  252. {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
  253. {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
  254. {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
  255. {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
  256. {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
  257. {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
  258. {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
  259. {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
  260. {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
  261. {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
  262. {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
  263. {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
  264. {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
  265. {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
  266. {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
  267. {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
  268. {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
  269. {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
  270. {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
  271. {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
  272. {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
  273. {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
  274. {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
  275. {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
  276. {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
  277. {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
  278. {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
  279. {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
  280. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/utils/__init__.py +0 -0
  281. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/utils/backup.py +0 -0
  282. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/utils/command.py +0 -0
  283. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/utils/gcp.py +0 -0
  284. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/utils/generate_locks.py +0 -0
  285. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/utils/generation_metadata.py +0 -0
  286. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/utils/language.py +0 -0
  287. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/utils/lock_utils.py +0 -0
  288. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/utils/logging.py +0 -0
  289. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/utils/merge.py +0 -0
  290. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/utils/remote_template.py +0 -0
  291. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/utils/upgrade.py +0 -0
  292. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/scaffold/utils/version.py +0 -0
  293. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/setup/__init__.py +0 -0
  294. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/setup/_antigravity.py +0 -0
  295. {google_agents_cli-1.2.0 → google_agents_cli-1.3.0}/src/google/agents/cli/setup/cmd_auth.py +0 -0
  296. {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.2.0
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~=0.3.22
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.2.0"
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~=0.3.22",
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",
@@ -12,7 +12,7 @@ description: >
12
12
  metadata:
13
13
  author: Google
14
14
  license: Apache-2.0
15
- version: 1.2.0
15
+ version: 1.3.0
16
16
  requires:
17
17
  bins:
18
18
  - agents-cli
@@ -12,7 +12,7 @@ description: >
12
12
  metadata:
13
13
  author: Google
14
14
  license: Apache-2.0
15
- version: 1.2.0
15
+ version: 1.3.0
16
16
  requires:
17
17
  bins:
18
18
  - agents-cli
@@ -11,7 +11,7 @@ description: >
11
11
  metadata:
12
12
  author: Google
13
13
  license: Apache-2.0
14
- version: 1.2.0
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
 
@@ -13,7 +13,7 @@ description: >
13
13
  metadata:
14
14
  author: Google
15
15
  license: Apache-2.0
16
- version: 1.2.0
16
+ version: 1.3.0
17
17
  requires:
18
18
  bins:
19
19
  - agents-cli
@@ -15,7 +15,7 @@ description: >
15
15
  metadata:
16
16
  author: Google
17
17
  license: Apache-2.0
18
- version: 1.2.0
18
+ version: 1.3.0
19
19
  requires:
20
20
  bins:
21
21
  - agents-cli
@@ -12,7 +12,7 @@ description: >
12
12
  metadata:
13
13
  author: Google
14
14
  license: Apache-2.0
15
- version: 1.2.0
15
+ version: 1.3.0
16
16
  requires:
17
17
  bins:
18
18
  - agents-cli
@@ -12,7 +12,7 @@ description: >
12
12
  metadata:
13
13
  author: Google
14
14
  license: Apache-2.0
15
- version: 1.2.0
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.2.0
30
- > If version is behind, run: uv tool install "google-agents-cli~=1.2.0"
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
- resp = requests.post(session_url, headers=headers, json={}, timeout=_SESSION_TIMEOUT)
39
- if not resp.ok:
40
- hint = ""
41
- if resp.status_code in (404, 405):
42
- hint = "\n If this is an A2A agent, try --mode a2a instead."
43
- raise click.ClickException(
44
- f"Failed to create session (HTTP {resp.status_code}):\n {resp.text}{hint}"
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
- if not resp.ok:
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) -> list[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
- Streams stdout/stderr line-by-line, filtering npm/npx boilerplate.
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, or if any
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 popen_resolved
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
- # Disable color in the child process. We re-emit each captured line via
180
- # click.echo, so any ANSI sequences from the child would either render as
181
- # literal escape codes or, on Windows PowerShell, bleed across line
182
- # boundaries — causing error lines to inherit the previous line's color
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
@@ -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
- click.echo(f"\n🚀 {action} agent: {display_name} (returning immediately)...")
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
- click.echo(f" Operation: {operation.name}")
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(f"⏳ Deployment still in progress{elapsed}")
783
- click.echo(f" Operation: {operation_name}")
784
- click.echo(" Run 'agents-cli deploy --status' again to check.")
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
+ )
@@ -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. Propagation can take a
199
- # few minutes, so we allow several attempts with exponential backoff + jitter.
200
- _CLOUD_RUN_DEPLOY_MAX_TRIES = 5
201
- _CLOUD_RUN_DEPLOY_MAX_TIME = 300
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
- max_tries=_CLOUD_RUN_DEPLOY_MAX_TRIES,
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/%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
- _CLOUD_RUN_DEPLOY_MAX_TRIES,
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:
@@ -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