google-agents-cli 1.4.2__tar.gz → 1.5.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 (330) hide show
  1. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/PKG-INFO +10 -8
  2. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/README.md +3 -6
  3. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/pyproject.toml +26 -5
  4. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/__init__.py +5 -1
  5. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/_adk_client.py +8 -5
  6. google_agents_cli-1.5.0/src/google/agents/cli/_agent_platform.py +66 -0
  7. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/_click.py +13 -1
  8. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/_output.py +1 -1
  9. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/_project.py +69 -20
  10. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/_remote.py +15 -5
  11. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/_runner.py +49 -0
  12. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/_tools.py +5 -1
  13. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/_trust.py +8 -5
  14. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/deploy/_utils.py +32 -3
  15. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/deploy/agent_runtime.py +79 -22
  16. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/deploy/cmd_deploy.py +81 -10
  17. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/dev/cmd_install.py +9 -0
  18. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/dev/cmd_playground.py +9 -3
  19. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/eval/_paths.py +11 -0
  20. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/eval/_synthesize_runner.py +3 -1
  21. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/eval/cmd_analyze.py +2 -3
  22. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/eval/cmd_generate.py +12 -11
  23. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/eval/cmd_grade.py +53 -9
  24. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/eval/cmd_run.py +56 -13
  25. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/eval/cmd_submit.py +3 -3
  26. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/eval/eval_utils.py +75 -2
  27. google_agents_cli-1.5.0/src/google/agents/cli/extension/_compat.py +86 -0
  28. google_agents_cli-1.5.0/src/google/agents/cli/extension/_loader.py +295 -0
  29. google_agents_cli-1.5.0/src/google/agents/cli/extension/_manifest.py +137 -0
  30. google_agents_cli-1.5.0/src/google/agents/cli/extension/_overrides.py +197 -0
  31. google_agents_cli-1.5.0/src/google/agents/cli/extension/_paths.py +91 -0
  32. google_agents_cli-1.5.0/src/google/agents/cli/extension/_refs.py +168 -0
  33. google_agents_cli-1.5.0/src/google/agents/cli/extension/_resolver.py +345 -0
  34. google_agents_cli-1.5.0/src/google/agents/cli/extension/_schema.py +103 -0
  35. google_agents_cli-1.5.0/src/google/agents/cli/extension/_spec.py +255 -0
  36. google_agents_cli-1.5.0/src/google/agents/cli/extension/_sync.py +102 -0
  37. google_agents_cli-1.5.0/src/google/agents/cli/extension/_trust.py +38 -0
  38. google_agents_cli-1.5.0/src/google/agents/cli/extension/cmd_extension_add.py +216 -0
  39. google_agents_cli-1.5.0/src/google/agents/cli/extension/cmd_extension_group.py +57 -0
  40. google_agents_cli-1.5.0/src/google/agents/cli/extension/cmd_extension_list.py +58 -0
  41. google_agents_cli-1.5.0/src/google/agents/cli/extension/cmd_extension_remove.py +63 -0
  42. google_agents_cli-1.5.0/src/google/agents/cli/extension/cmd_extension_update.py +147 -0
  43. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/info/cmd_info.py +38 -0
  44. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/infra/_cicd_utils.py +10 -3
  45. google_agents_cli-1.5.0/src/google/agents/cli/infra/_terraform.py +79 -0
  46. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/infra/cmd_infra.py +6 -0
  47. google_agents_cli-1.5.0/src/google/agents/cli/infra/cmd_infra_show.py +100 -0
  48. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/infra/cmd_infra_single_project.py +5 -10
  49. google_agents_cli-1.5.0/src/google/agents/cli/main.py +482 -0
  50. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/publish/cmd_publish.py +39 -16
  51. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/run/_local_server.py +34 -11
  52. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/run/_multimodal.py +1 -1
  53. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/run/cmd_run.py +51 -38
  54. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/agents/adk/.template/templateconfig.yaml +5 -0
  55. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/agents/adk/app/agent.py +1 -1
  56. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/python/{{cookiecutter.agent_directory}} → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk/app}/app_utils/a2a.py +1 -38
  57. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/python/{{cookiecutter.agent_directory}} → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk/app}/app_utils/reasoning_engine_adapter.py +17 -7
  58. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/python/{{cookiecutter.agent_directory}} → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk/app}/fast_api_app.py +13 -8
  59. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/agents/adk/tests/eval/response_quality.py +21 -2
  60. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/go → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_go}/.cloudbuild/pr_checks.yaml +1 -1
  61. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/go → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_go}/.github/workflows/pr_checks.yaml +2 -2
  62. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/agents/adk_go/.template/templateconfig.yaml +0 -1
  63. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/go → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_go}/Dockerfile +12 -10
  64. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/go → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_go}/Makefile +5 -5
  65. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/go → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_go}/README.md +2 -2
  66. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/agents/adk_go/agent → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_go/app}/agent.go +37 -7
  67. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/agents/adk_go/agent → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_go/app}/agent_test.go +2 -2
  68. google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_go/appinfo/appinfo.go +297 -0
  69. google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_go/appinfo/appinfo_test.go +185 -0
  70. google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_go/appurl.go +47 -0
  71. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/go → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_go}/e2e/integration/server_e2e_test.go +99 -2
  72. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/go → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_go}/e2e/load_test/README.md +1 -1
  73. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/go → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_go}/go.mod +2 -2
  74. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/go → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_go}/main.go +36 -12
  75. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/java → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_java}/Makefile +1 -1
  76. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/agents/adk_java/src/main/java/{{cookiecutter.java_package_path}}/Agent.java +1 -1
  77. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/typescript → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_ts}/Makefile +1 -1
  78. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/agents/adk_ts/app/agent.ts +1 -1
  79. google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/empty_go/.template/templateconfig.yaml +25 -0
  80. google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/empty_java/.template/templateconfig.yaml +25 -0
  81. google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/empty_py/.template/templateconfig.yaml +24 -0
  82. google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/empty_ts/.template/templateconfig.yaml +25 -0
  83. google_agents_cli-1.5.0/src/google/agents/cli/scaffold/base_templates/_shared/agents-cli-manifest.yaml +16 -0
  84. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/go/.github/workflows/staging.yaml +1 -1
  85. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/go/.gitignore +3 -1
  86. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/java/.gitignore +3 -1
  87. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/python/.gitignore +6 -2
  88. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/python/pyproject.toml +9 -4
  89. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/python/{{cookiecutter.agent_guidance_filename}} +2 -0
  90. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/typescript/.gitignore +7 -1
  91. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/commands/create.py +103 -35
  92. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/commands/enhance.py +62 -27
  93. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/commands/upgrade.py +1 -1
  94. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/python/tests/integration/test_server_e2e.py +24 -0
  95. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/go/deployment/terraform/cicd/service.tf +1 -1
  96. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/go/deployment/terraform/single-project/service.tf +1 -1
  97. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/java/deployment/terraform/cicd/service.tf +1 -1
  98. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/java/deployment/terraform/single-project/service.tf +1 -1
  99. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/python/deployment/terraform/cicd/service.tf +1 -1
  100. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/python/deployment/terraform/single-project/service.tf +1 -1
  101. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/typescript/deployment/terraform/cicd/service.tf +1 -1
  102. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/typescript/deployment/terraform/single-project/service.tf +1 -1
  103. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/gke/_shared/deployment/terraform/cicd/service.tf +2 -4
  104. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/gke/_shared/deployment/terraform/single-project/service.tf +1 -2
  105. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/resources/locks/uv-adk-agent_runtime.lock +2 -2
  106. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/resources/locks/uv-adk-cloud_run.lock +2 -2
  107. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/resources/locks/uv-adk-gke.lock +2 -2
  108. google_agents_cli-1.5.0/src/google/agents/cli/scaffold/utils/__init__.py +13 -0
  109. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/utils/generate_locks.py +15 -13
  110. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/utils/generation_metadata.py +14 -3
  111. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/utils/language.py +5 -1
  112. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/utils/lock_utils.py +36 -0
  113. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/utils/merge.py +6 -3
  114. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/utils/remote_template.py +37 -6
  115. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/utils/template.py +158 -38
  116. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/utils/upgrade.py +11 -9
  117. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/setup/cmd_setup.py +119 -17
  118. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/setup/cmd_update.py +1 -1
  119. google_agents_cli-1.5.0/src/google/agents/cli/skills/__init__.py +13 -0
  120. google_agents_cli-1.5.0/src/google/agents/cli/skills/_bundle.py +59 -0
  121. {google_agents_cli-1.4.2/skills → google_agents_cli-1.5.0/src/google/agents/cli/skills/data}/google-agents-cli-adk-code/SKILL.md +1 -1
  122. {google_agents_cli-1.4.2/skills → google_agents_cli-1.5.0/src/google/agents/cli/skills/data}/google-agents-cli-deploy/SKILL.md +17 -15
  123. {google_agents_cli-1.4.2/skills → google_agents_cli-1.5.0/src/google/agents/cli/skills/data}/google-agents-cli-deploy/references/agent-runtime.md +28 -20
  124. {google_agents_cli-1.4.2/skills → google_agents_cli-1.5.0/src/google/agents/cli/skills/data}/google-agents-cli-deploy/references/batch-inference.md +4 -2
  125. {google_agents_cli-1.4.2/skills → google_agents_cli-1.5.0/src/google/agents/cli/skills/data}/google-agents-cli-deploy/references/cloud-run.md +5 -1
  126. {google_agents_cli-1.4.2/skills → google_agents_cli-1.5.0/src/google/agents/cli/skills/data}/google-agents-cli-deploy/references/gke.md +7 -1
  127. {google_agents_cli-1.4.2/skills → google_agents_cli-1.5.0/src/google/agents/cli/skills/data}/google-agents-cli-deploy/references/terraform-patterns.md +3 -0
  128. {google_agents_cli-1.4.2/skills → google_agents_cli-1.5.0/src/google/agents/cli/skills/data}/google-agents-cli-deploy/references/testing-deployed-agents.md +4 -2
  129. {google_agents_cli-1.4.2/skills → google_agents_cli-1.5.0/src/google/agents/cli/skills/data}/google-agents-cli-eval/SKILL.md +24 -11
  130. {google_agents_cli-1.4.2/skills → google_agents_cli-1.5.0/src/google/agents/cli/skills/data}/google-agents-cli-eval/references/advanced-commands.md +3 -1
  131. {google_agents_cli-1.4.2/skills → google_agents_cli-1.5.0/src/google/agents/cli/skills/data}/google-agents-cli-eval/references/builtin-tools-eval.md +3 -1
  132. {google_agents_cli-1.4.2/skills → google_agents_cli-1.5.0/src/google/agents/cli/skills/data}/google-agents-cli-eval/references/metrics-guide.md +4 -0
  133. {google_agents_cli-1.4.2/skills → google_agents_cli-1.5.0/src/google/agents/cli/skills/data}/google-agents-cli-eval/references/user-simulation.md +2 -0
  134. {google_agents_cli-1.4.2/skills → google_agents_cli-1.5.0/src/google/agents/cli/skills/data}/google-agents-cli-observability/SKILL.md +24 -32
  135. google_agents_cli-1.5.0/src/google/agents/cli/skills/data/google-agents-cli-observability/references/adk-docs.md +10 -0
  136. {google_agents_cli-1.4.2/skills → google_agents_cli-1.5.0/src/google/agents/cli/skills/data}/google-agents-cli-observability/references/bigquery-agent-analytics.md +2 -2
  137. {google_agents_cli-1.4.2/skills → google_agents_cli-1.5.0/src/google/agents/cli/skills/data}/google-agents-cli-observability/references/cloud-trace-and-logging.md +3 -3
  138. {google_agents_cli-1.4.2/skills → google_agents_cli-1.5.0/src/google/agents/cli/skills/data}/google-agents-cli-publish/SKILL.md +11 -7
  139. {google_agents_cli-1.4.2/skills → google_agents_cli-1.5.0/src/google/agents/cli/skills/data}/google-agents-cli-scaffold/SKILL.md +18 -14
  140. {google_agents_cli-1.4.2/skills → google_agents_cli-1.5.0/src/google/agents/cli/skills/data}/google-agents-cli-scaffold/references/flags.md +4 -0
  141. {google_agents_cli-1.4.2/skills → google_agents_cli-1.5.0/src/google/agents/cli/skills/data}/google-agents-cli-workflow/SKILL.md +6 -3
  142. google_agents_cli-1.5.0/src/google/agents/cli/skills/data/google-agents-cli-workflow/references/extension.md +125 -0
  143. google_agents_cli-1.4.2/src/google/agents/cli/_agent_runtime_a2a.py +0 -44
  144. google_agents_cli-1.4.2/src/google/agents/cli/main.py +0 -211
  145. google_agents_cli-1.4.2/src/google/agents/cli/scaffold/agents/adk/README.md +0 -14
  146. google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/_shared/agents-cli-manifest.yaml +0 -16
  147. google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/go/agent/agent.go +0 -29
  148. google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/java/src/main/java/{{cookiecutter.java_package_path}}/Agent.java +0 -48
  149. google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/java/src/test/java/{{cookiecutter.java_package_path}}/unit/AgentTest.java +0 -33
  150. google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/typescript/app/agent.ts +0 -25
  151. google_agents_cli-1.4.2/src/google/agents/cli/scaffold/deployment_targets/cloud_run/python/{{cookiecutter.agent_directory}}/fast_api_app.py +0 -76
  152. google_agents_cli-1.4.2/src/google/agents/cli/scaffold/deployment_targets/gke/python/{{cookiecutter.agent_directory}}/fast_api_app.py +0 -76
  153. google_agents_cli-1.4.2/src/google/agents/cli/scaffold/deployment_targets/none/python/{{cookiecutter.agent_directory}}/fast_api_app.py +0 -76
  154. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/LICENSE +0 -0
  155. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/_experiments.py +0 -0
  156. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/_gcp_project.py +0 -0
  157. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/_skills_check.py +0 -0
  158. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/auth.py +0 -0
  159. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/data/__init__.py +0 -0
  160. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/data/_recipe.py +0 -0
  161. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/data/cmd_data_ingestion.py +0 -0
  162. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/deploy/__init__.py +0 -0
  163. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/deploy/_operation.py +0 -0
  164. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/dev/__init__.py +0 -0
  165. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/dev/cmd_build.py +0 -0
  166. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/dev/cmd_lint.py +0 -0
  167. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/eval/__init__.py +0 -0
  168. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/eval/cmd_compare.py +0 -0
  169. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/eval/cmd_dataset.py +0 -0
  170. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/eval/cmd_eval_group.py +0 -0
  171. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/eval/cmd_metric.py +0 -0
  172. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/eval/cmd_optimize.py +0 -0
  173. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/eval/optimize_utils.py +0 -0
  174. {google_agents_cli-1.4.2/src/google/agents/cli/run → google_agents_cli-1.5.0/src/google/agents/cli/extension}/__init__.py +0 -0
  175. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/info/__init__.py +0 -0
  176. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/infra/__init__.py +0 -0
  177. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/infra/cmd_cicd.py +0 -0
  178. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/infra/cmd_datastore.py +0 -0
  179. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/publish/__init__.py +0 -0
  180. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/publish/cmd_publish_group.py +0 -0
  181. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/utils → google_agents_cli-1.5.0/src/google/agents/cli/run}/__init__.py +0 -0
  182. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/__init__.py +0 -0
  183. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/agents/README.md +0 -0
  184. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/agents/adk/app/__init__.py +0 -0
  185. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/python/{{cookiecutter.agent_directory}} → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk/app}/app_utils/services.py +0 -0
  186. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/agents/adk/tests/eval/datasets/README.md +0 -0
  187. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/agents/adk/tests/eval/datasets/basic-dataset.json +0 -0
  188. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/agents/adk/tests/eval/eval_config.yaml +0 -0
  189. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/agents/adk/tests/integration/test_agent.py +0 -0
  190. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/go → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_go}/e2e/load_test/.results/.placeholder +0 -0
  191. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/go → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_go}/e2e/load_test/load_test.go +0 -0
  192. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/go → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_go}/go.sum +0 -0
  193. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/go → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_go}/{{cookiecutter.agent_guidance_filename}} +0 -0
  194. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/java → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_java}/.cloudbuild/pr_checks.yaml +0 -0
  195. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/java → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_java}/.github/workflows/pr_checks.yaml +0 -0
  196. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/agents/adk_java/.template/templateconfig.yaml +0 -0
  197. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/java → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_java}/Dockerfile +0 -0
  198. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/java → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_java}/README.md +0 -0
  199. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/java → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_java}/pom.xml +0 -0
  200. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/java → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_java}/src/main/java/{{cookiecutter.java_package_path}}/Main.java +0 -0
  201. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/java → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_java}/src/test/java/{{cookiecutter.java_package_path}}/e2e/integration/ServerE2ETest.java +0 -0
  202. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/java → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_java}/src/test/java/{{cookiecutter.java_package_path}}/e2e/load_test/.results/.placeholder +0 -0
  203. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/java → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_java}/src/test/java/{{cookiecutter.java_package_path}}/e2e/load_test/LoadTest.java +0 -0
  204. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/java → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_java}/src/test/java/{{cookiecutter.java_package_path}}/e2e/load_test/README.md +0 -0
  205. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/agents/adk_java/src/test/java/{{cookiecutter.java_package_path}}/unit/AgentTest.java +0 -0
  206. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/java → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_java}/{{cookiecutter.agent_guidance_filename}} +0 -0
  207. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/typescript → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_ts}/.cloudbuild/pr_checks.yaml +0 -0
  208. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/typescript → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_ts}/.github/workflows/pr_checks.yaml +0 -0
  209. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/agents/adk_ts/.template/templateconfig.yaml +0 -0
  210. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/typescript → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_ts}/Dockerfile +0 -0
  211. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/typescript → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_ts}/README.md +0 -0
  212. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/typescript → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_ts}/package-lock.json +0 -0
  213. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/typescript → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_ts}/package.json +0 -0
  214. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/agents/adk_ts/tests/integration/agent.test.ts +0 -0
  215. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/typescript → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_ts}/tests/integration/server_e2e.test.ts +0 -0
  216. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/typescript → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_ts}/tests/load_test/.results/.placeholder +0 -0
  217. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/typescript → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_ts}/tests/load_test/README.md +0 -0
  218. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/typescript → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_ts}/tests/load_test/load_test.ts +0 -0
  219. {google_agents_cli-1.4.2/src/google/agents/cli/scaffold/base_templates/typescript → google_agents_cli-1.5.0/src/google/agents/cli/scaffold/agents/adk_ts}/tests/unit/dummy.test.ts +0 -0
  220. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/apis.tf +0 -0
  221. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/build_triggers.tf +0 -0
  222. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/github.tf +0 -0
  223. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/iam.tf +0 -0
  224. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/locals.tf +0 -0
  225. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/outputs.tf +0 -0
  226. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/providers.tf +0 -0
  227. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/service_accounts.tf +0 -0
  228. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/storage.tf +0 -0
  229. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/variables.tf +0 -0
  230. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/vars/env.tfvars +0 -0
  231. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/cicd/wif.tf +0 -0
  232. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/single-project/apis.tf +0 -0
  233. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/single-project/iam.tf +0 -0
  234. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/single-project/outputs.tf +0 -0
  235. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/single-project/providers.tf +0 -0
  236. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/single-project/storage.tf +0 -0
  237. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/single-project/variables.tf +0 -0
  238. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/_shared/deployment/terraform/single-project/vars/env.tfvars +0 -0
  239. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/go/.cloudbuild/deploy-to-prod.yaml +0 -0
  240. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/go/.cloudbuild/staging.yaml +0 -0
  241. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/go/.env +0 -0
  242. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/go/.env.example +0 -0
  243. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/go/.github/workflows/deploy-to-prod.yaml +0 -0
  244. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/go/.golangci.yml +0 -0
  245. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/java/.cloudbuild/deploy-to-prod.yaml +0 -0
  246. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/java/.cloudbuild/staging.yaml +0 -0
  247. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/java/.env.example +0 -0
  248. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/java/.github/workflows/deploy-to-prod.yaml +0 -0
  249. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/java/.github/workflows/staging.yaml +0 -0
  250. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/java/src/main/resources/application.properties +0 -0
  251. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/python/.cloudbuild/deploy-to-prod.yaml +0 -0
  252. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/python/.cloudbuild/pr_checks.yaml +0 -0
  253. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/python/.cloudbuild/staging.yaml +0 -0
  254. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/python/.env +0 -0
  255. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/python/.env.example +0 -0
  256. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/python/.github/workflows/deploy-to-prod.yaml +0 -0
  257. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/python/.github/workflows/pr_checks.yaml +0 -0
  258. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/python/.github/workflows/staging.yaml +0 -0
  259. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/python/Dockerfile +0 -0
  260. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/python/README.md +0 -0
  261. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/python/deployment/terraform/cicd/telemetry.tf +0 -0
  262. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/python/deployment/terraform/cicd/telemetry_outputs.tf +0 -0
  263. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/python/deployment/terraform/shared/completions.sql +0 -0
  264. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/python/deployment/terraform/shared/genai_logs_schema.json +0 -0
  265. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/python/deployment/terraform/single-project/telemetry.tf +0 -0
  266. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/python/deployment/terraform/single-project/telemetry_outputs.tf +0 -0
  267. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/python/tests/unit/test_dummy.py +0 -0
  268. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/typescript/.cloudbuild/deploy-to-prod.yaml +0 -0
  269. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/typescript/.cloudbuild/staging.yaml +0 -0
  270. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/typescript/.dockerignore +0 -0
  271. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/typescript/.env.example +0 -0
  272. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/typescript/.github/workflows/deploy-to-prod.yaml +0 -0
  273. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/typescript/.github/workflows/staging.yaml +0 -0
  274. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/typescript/eslint.config.mjs +0 -0
  275. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/typescript/tsconfig.json +0 -0
  276. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/base_templates/typescript/vitest.config.ts +0 -0
  277. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/cmd_scaffold_group.py +0 -0
  278. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/commands/__init__.py +0 -0
  279. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/_shared/deployment/terraform/cicd/service.tf +0 -0
  280. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/_shared/deployment/terraform/cicd/service_outputs.tf +0 -0
  281. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/_shared/deployment/terraform/shared/dummy_source.b64 +0 -0
  282. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/_shared/deployment/terraform/single-project/service.tf +0 -0
  283. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/_shared/deployment/terraform/single-project/service_outputs.tf +0 -0
  284. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/_shared/deployment_metadata.json +0 -0
  285. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/python/tests/load_test/.results/.placeholder +0 -0
  286. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/python/tests/load_test/README.md +0 -0
  287. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/agent_runtime/python/tests/load_test/load_test.py +0 -0
  288. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/go/deployment/terraform/cicd/service_outputs.tf +0 -0
  289. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/go/deployment/terraform/single-project/service_outputs.tf +0 -0
  290. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/java/deployment/terraform/cicd/service_outputs.tf +0 -0
  291. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/java/deployment/terraform/single-project/service_outputs.tf +0 -0
  292. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/python/deployment/terraform/cicd/service_outputs.tf +0 -0
  293. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/python/deployment/terraform/single-project/service_outputs.tf +0 -0
  294. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/python/tests/integration/test_server_e2e.py +0 -0
  295. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/python/tests/load_test/.results/.placeholder +0 -0
  296. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/python/tests/load_test/README.md +0 -0
  297. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/python/tests/load_test/load_test.py +0 -0
  298. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/typescript/deployment/terraform/cicd/service_outputs.tf +0 -0
  299. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/cloud_run/typescript/deployment/terraform/single-project/service_outputs.tf +0 -0
  300. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/gke/_shared/deployment/terraform/cicd/service_outputs.tf +0 -0
  301. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/gke/_shared/deployment/terraform/single-project/service_outputs.tf +0 -0
  302. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/gke/python/tests/integration/test_server_e2e.py +0 -0
  303. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/gke/python/tests/load_test/.results/.placeholder +0 -0
  304. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/gke/python/tests/load_test/README.md +0 -0
  305. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/gke/python/tests/load_test/load_test.py +0 -0
  306. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/none/python/tests/integration/test_server_e2e.py +0 -0
  307. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/none/python/tests/load_test/.results/.placeholder +0 -0
  308. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/none/python/tests/load_test/README.md +0 -0
  309. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/deployment_targets/none/python/tests/load_test/load_test.py +0 -0
  310. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/utils/backup.py +0 -0
  311. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/utils/command.py +0 -0
  312. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/utils/gcp.py +0 -0
  313. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/utils/logging.py +0 -0
  314. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/scaffold/utils/version.py +0 -0
  315. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/setup/__init__.py +0 -0
  316. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/setup/_antigravity.py +0 -0
  317. {google_agents_cli-1.4.2 → google_agents_cli-1.5.0}/src/google/agents/cli/setup/cmd_auth.py +0 -0
  318. {google_agents_cli-1.4.2/skills → google_agents_cli-1.5.0/src/google/agents/cli/skills/data}/README.md +0 -0
  319. {google_agents_cli-1.4.2/skills → google_agents_cli-1.5.0/src/google/agents/cli/skills/data}/google-agents-cli-adk-code/references/adk-python.md +0 -0
  320. {google_agents_cli-1.4.2/skills → google_agents_cli-1.5.0/src/google/agents/cli/skills/data}/google-agents-cli-adk-code/references/adk-workflows.md +0 -0
  321. {google_agents_cli-1.4.2/skills → google_agents_cli-1.5.0/src/google/agents/cli/skills/data}/google-agents-cli-adk-code/references/samples.md +0 -0
  322. {google_agents_cli-1.4.2/skills → google_agents_cli-1.5.0/src/google/agents/cli/skills/data}/google-agents-cli-deploy/references/cicd-pipeline.md +0 -0
  323. {google_agents_cli-1.4.2/skills → google_agents_cli-1.5.0/src/google/agents/cli/skills/data}/google-agents-cli-eval/references/dataset_schema.md +0 -0
  324. {google_agents_cli-1.4.2/skills → google_agents_cli-1.5.0/src/google/agents/cli/skills/data}/google-agents-cli-eval/references/multimodal-eval.md +0 -0
  325. {google_agents_cli-1.4.2/skills → google_agents_cli-1.5.0/src/google/agents/cli/skills/data}/google-agents-cli-observability/references/feedback-mechanism.md +0 -0
  326. {google_agents_cli-1.4.2/skills → google_agents_cli-1.5.0/src/google/agents/cli/skills/data}/google-agents-cli-workflow/references/brainstorming.md +0 -0
  327. {google_agents_cli-1.4.2/skills → google_agents_cli-1.5.0/src/google/agents/cli/skills/data}/google-agents-cli-workflow/references/commands.md +0 -0
  328. {google_agents_cli-1.4.2/skills → google_agents_cli-1.5.0/src/google/agents/cli/skills/data}/google-agents-cli-workflow/references/internals.md +0 -0
  329. {google_agents_cli-1.4.2/skills → google_agents_cli-1.5.0/src/google/agents/cli/skills/data}/google-agents-cli-workflow/references/spec-template.md +0 -0
  330. {google_agents_cli-1.4.2/skills → google_agents_cli-1.5.0/src/google/agents/cli/skills/data}/google-agents-cli-workflow/references/terminology.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: google-agents-cli
3
- Version: 1.4.2
3
+ Version: 1.5.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
@@ -13,17 +13,22 @@ Requires-Dist: click>=8.1.8,<9
13
13
  Requires-Dist: PyYAML>=6.0.2,<7
14
14
  Requires-Dist: cookiecutter>=2.6.0,<3
15
15
  Requires-Dist: jinja2>=3.1.0
16
- Requires-Dist: google-cloud-aiplatform[evaluation]>=1.156.0,<2
16
+ Requires-Dist: google-cloud-aiplatform[evaluation]>=1.165.0,<2
17
17
  Requires-Dist: google-cloud-resource-manager>=1.12.0
18
18
  Requires-Dist: google-auth[pyopenssl]>=2.47.0
19
+ Requires-Dist: pyopenssl<26.2
19
20
  Requires-Dist: rich>=13.7.0
20
21
  Requires-Dist: backoff>=2.2.1
21
22
  Requires-Dist: requests>=2.31.0
22
23
  Requires-Dist: a2a-sdk>=1.0,<2
24
+ Requires-Dist: protobuf>=5.29.5,<7
23
25
  Requires-Dist: tomlkit>=0.13.0,<1
24
26
  Requires-Dist: psutil>=5.9.0
25
27
  Requires-Dist: python-dotenv>=1.0.0
26
28
  Requires-Dist: pathspec>=0.12.1
29
+ Requires-Dist: filelock>=3.12,<4
30
+ Requires-Dist: packaging>=24
31
+ Requires-Dist: pydantic>=2.10,<3
27
32
  Requires-Dist: ruff ; extra == "lint"
28
33
  Requires-Dist: ty ; extra == "lint"
29
34
  Requires-Dist: codespell ; extra == "lint"
@@ -111,7 +116,7 @@ See the [full tutorial](https://google.github.io/agents-cli/guide/quickstart-tut
111
116
  | Command | What it does |
112
117
  |---------|-------------|
113
118
  | `agents-cli setup` | Install CLI + skills to coding agents |
114
- | `agents-cli scaffold <name>` | Create a new agent project |
119
+ | `agents-cli create <name>` | Create a new agent project |
115
120
  | `agents-cli eval run` | Run the agent over the eval dataset and grade the traces |
116
121
  | `agents-cli deploy` | Deploy to Google Cloud |
117
122
  | `agents-cli publish gemini-enterprise` | Register with Gemini Enterprise |
@@ -124,8 +129,8 @@ See the [full tutorial](https://google.github.io/agents-cli/guide/quickstart-tut
124
129
  | `agents-cli login` | Authenticate with Google Cloud or AI Studio |
125
130
  | `agents-cli login --status` | Show authentication status |
126
131
  | **Scaffold** | |
127
- | `agents-cli scaffold <name>` | Create a new agent project |
128
- | `agents-cli scaffold enhance` | Add deployment, CI/CD, or RAG to an existing project |
132
+ | `agents-cli create <name>` | Create a new agent project |
133
+ | `agents-cli scaffold enhance` | Add deployment or CI/CD to an existing project |
129
134
  | `agents-cli scaffold upgrade` | Upgrade project to a newer agents-cli version |
130
135
  | **Develop** | |
131
136
  | `agents-cli run "prompt"` | Run agent with a single prompt |
@@ -145,9 +150,6 @@ See the [full tutorial](https://google.github.io/agents-cli/guide/quickstart-tut
145
150
  | `agents-cli publish gemini-enterprise` | Register with Gemini Enterprise |
146
151
  | `agents-cli infra single-project` | Provision single-project infrastructure |
147
152
  | `agents-cli infra cicd` | Set up CI/CD pipeline + staging/prod infrastructure |
148
- | **Data** | |
149
- | `agents-cli infra datastore` | Provision datastore infrastructure for RAG |
150
- | `agents-cli data-ingestion` | Run data ingestion pipeline |
151
153
  | **Other** | |
152
154
  | `agents-cli info` | Show project config and CLI version |
153
155
  | `agents-cli update` | Force reinstall skills to all IDEs |
@@ -76,7 +76,7 @@ See the [full tutorial](https://google.github.io/agents-cli/guide/quickstart-tut
76
76
  | Command | What it does |
77
77
  |---------|-------------|
78
78
  | `agents-cli setup` | Install CLI + skills to coding agents |
79
- | `agents-cli scaffold <name>` | Create a new agent project |
79
+ | `agents-cli create <name>` | Create a new agent project |
80
80
  | `agents-cli eval run` | Run the agent over the eval dataset and grade the traces |
81
81
  | `agents-cli deploy` | Deploy to Google Cloud |
82
82
  | `agents-cli publish gemini-enterprise` | Register with Gemini Enterprise |
@@ -89,8 +89,8 @@ See the [full tutorial](https://google.github.io/agents-cli/guide/quickstart-tut
89
89
  | `agents-cli login` | Authenticate with Google Cloud or AI Studio |
90
90
  | `agents-cli login --status` | Show authentication status |
91
91
  | **Scaffold** | |
92
- | `agents-cli scaffold <name>` | Create a new agent project |
93
- | `agents-cli scaffold enhance` | Add deployment, CI/CD, or RAG to an existing project |
92
+ | `agents-cli create <name>` | Create a new agent project |
93
+ | `agents-cli scaffold enhance` | Add deployment or CI/CD to an existing project |
94
94
  | `agents-cli scaffold upgrade` | Upgrade project to a newer agents-cli version |
95
95
  | **Develop** | |
96
96
  | `agents-cli run "prompt"` | Run agent with a single prompt |
@@ -110,9 +110,6 @@ See the [full tutorial](https://google.github.io/agents-cli/guide/quickstart-tut
110
110
  | `agents-cli publish gemini-enterprise` | Register with Gemini Enterprise |
111
111
  | `agents-cli infra single-project` | Provision single-project infrastructure |
112
112
  | `agents-cli infra cicd` | Set up CI/CD pipeline + staging/prod infrastructure |
113
- | **Data** | |
114
- | `agents-cli infra datastore` | Provision datastore infrastructure for RAG |
115
- | `agents-cli data-ingestion` | Run data ingestion pipeline |
116
113
  | **Other** | |
117
114
  | `agents-cli info` | Show project config and CLI version |
118
115
  | `agents-cli update` | Force reinstall skills to all IDEs |
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "google-agents-cli"
3
- version = "1.4.2"
3
+ version = "1.5.0"
4
4
  description = "Agents CLI — Agent Development Lifecycle toolchain for ADK"
5
5
  readme = "README.md"
6
6
  license = "Apache-2.0"
@@ -16,17 +16,27 @@ dependencies = [
16
16
  "PyYAML>=6.0.2,<7",
17
17
  "cookiecutter>=2.6.0,<3",
18
18
  "jinja2>=3.1.0",
19
- "google-cloud-aiplatform[evaluation]>=1.156.0,<2",
19
+ "google-cloud-aiplatform[evaluation]>=1.165.0,<2",
20
20
  "google-cloud-resource-manager>=1.12.0",
21
21
  "google-auth[pyopenssl]>=2.47.0",
22
+ # pyOpenSSL 26.2 forbids mutating a used SSL Context; urllib3 does it per
23
+ # connection under google-auth's mTLS shim (urllib3#5107). Lift when fixed.
24
+ "pyopenssl<26.2",
22
25
  "rich>=13.7.0",
23
26
  "backoff>=2.2.1",
24
27
  "requests>=2.31.0",
25
28
  "a2a-sdk>=1.0,<2",
29
+ # Pin the a2a-sdk (>=5.29.5) .. aiplatform (<7) window so pip won't chase
30
+ # protobuf 7 and backtrack into old google-api-core (protobuf<5).
31
+ "protobuf>=5.29.5,<7",
26
32
  "tomlkit>=0.13.0,<1",
27
33
  "psutil>=5.9.0",
28
34
  "python-dotenv>=1.0.0",
29
35
  "pathspec>=0.12.1",
36
+ "filelock>=3.12,<4",
37
+ "packaging>=24",
38
+ # 2.10+: earlier versions emit `enum` beside `const`, which the schema sync test sees.
39
+ "pydantic>=2.10,<3",
30
40
  ]
31
41
 
32
42
  [project.urls]
@@ -53,7 +63,6 @@ include = [
53
63
  "src/google/agents/cli/scaffold/deployment_targets/",
54
64
  "src/google/agents/cli/scaffold/resources/",
55
65
  "src/google/agents/cli/scaffold/sample_data/",
56
- "skills/",
57
66
  ]
58
67
 
59
68
  [project.optional-dependencies]
@@ -79,16 +88,27 @@ dev = [
79
88
  "pytest-rerunfailures>=15.0",
80
89
  "pytest-xdist>=3.6.1",
81
90
  "pytest-cov>=4.1.0",
91
+ "jsonschema>=4.20",
82
92
  ]
83
93
 
84
94
  [tool.ruff]
85
95
  line-length = 90
86
96
  target-version = "py311"
87
- include = ["src/google/agents/cli/**/*.py", "tests/**/*.py", "tools/**/*.py"]
97
+ include = [
98
+ "src/google/agents/cli/**/*.py",
99
+ "tests/**/*.py",
100
+ "tools/**/*.py",
101
+ # First-party extensions ship real code; lint them like the rest.
102
+ "extensions/**/*.py",
103
+ ]
88
104
  exclude = [
89
105
  "src/google/agents/cli/scaffold/agents",
90
106
  "src/google/agents/cli/scaffold/base_templates",
91
107
  "src/google/agents/cli/scaffold/deployment_targets",
108
+ # Generated-project sources, linted by the project's own config (a
109
+ # different line length, and no `google` namespace on disk), not this one.
110
+ "extensions/*/template",
111
+ "src/google/agents/cli/skills/data",
92
112
  "tests/cicd/scripts",
93
113
  ]
94
114
 
@@ -111,10 +131,10 @@ ignore = ["E501", "C901", "RUF001", "UP036", "RUF067", "RUF069"]
111
131
 
112
132
  [tool.ruff.lint.per-file-ignores]
113
133
  "tests/**/*.py" = ["PLR0917"]
114
- "src/google/agents/cli/_output.py" = ["TID251"]
115
134
 
116
135
  [tool.ruff.lint.flake8-tidy-imports.banned-api]
117
136
  "rich.console.Console" = { msg = "Use `google.agents.cli._output.Console` instead to ensure project-wide defaults (soft_wrap=True) are applied." }
137
+ "agentplatform.Client" = { msg = "Use `google.agents.cli._agent_platform.AgentPlatformClient` instead, so the client retries throttled requests." }
118
138
 
119
139
  [tool.ruff.lint.pylint]
120
140
  max-positional-args = 5
@@ -136,6 +156,7 @@ exclude = [
136
156
  "src/google/agents/cli/scaffold/agents/**",
137
157
  "src/google/agents/cli/scaffold/base_templates/**",
138
158
  "src/google/agents/cli/scaffold/deployment_targets/**",
159
+ "src/google/agents/cli/skills/data/**",
139
160
  "tests/cicd/scripts/**",
140
161
  ]
141
162
 
@@ -16,7 +16,11 @@
16
16
 
17
17
  import importlib.metadata
18
18
 
19
+ # Reported when the CLI runs from a source checkout rather than an installed
20
+ # distribution. Version checks treat it as "unknown, don't block".
21
+ DEV_VERSION = "0.0.0-dev"
22
+
19
23
  try:
20
24
  __version__ = importlib.metadata.version("google-agents-cli")
21
25
  except importlib.metadata.PackageNotFoundError:
22
- __version__ = "0.0.0-dev"
26
+ __version__ = DEV_VERSION
@@ -71,7 +71,10 @@ def fetch_app_info(
71
71
  resp = requests.get(url, headers=headers, timeout=_APP_INFO_TIMEOUT)
72
72
  resp.raise_for_status()
73
73
  payload = resp.json()
74
- return payload.get("rootAgentName"), payload.get("agents") or {}
74
+ # Accept both camelCase and snake_case for cross language compatibility
75
+ root_agent_name = payload.get("rootAgentName", payload.get("root_agent_name"))
76
+ agents = payload.get("agents") or {}
77
+ return root_agent_name, agents
75
78
 
76
79
 
77
80
  def run_sse(
@@ -91,10 +94,10 @@ def run_sse(
91
94
  """
92
95
  run_url = f"{base_url}/run_sse"
93
96
  payload = {
94
- "app_name": app_name,
95
- "user_id": user_id,
96
- "session_id": session_id,
97
- "new_message": user_message,
97
+ "appName": app_name,
98
+ "userId": user_id,
99
+ "sessionId": session_id,
100
+ "newMessage": user_message,
98
101
  }
99
102
 
100
103
  with requests.post(
@@ -0,0 +1,66 @@
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
+ """Shared construction of the Agent Platform SDK client."""
16
+
17
+ from __future__ import annotations
18
+
19
+ from typing import TYPE_CHECKING, Any
20
+
21
+ if TYPE_CHECKING:
22
+ import agentplatform
23
+
24
+ # Retry options applied to every Agent Platform client the CLI builds. Leaving
25
+ # http_status_codes unset keeps the SDK's default retryable set (408/429/500/502/503/504);
26
+ # waits are roughly 1s, 2s, 4s, 8s (full-jittered).
27
+ RETRY_OPTIONS: dict[str, Any] = {
28
+ "attempts": 5,
29
+ "initial_delay": 1.0,
30
+ }
31
+
32
+
33
+ class AgentPlatformClient:
34
+ """Agent Platform client configured with CLI-wide defaults (e.g. retries on transient errors).
35
+
36
+ Retries are opt-in in the underlying SDK, so constructing ``agentplatform.Client``
37
+ directly runs without them. A ruff rule enforces using this wrapper instead.
38
+
39
+ Args:
40
+ project: GCP project ID, or None to let the SDK resolve it.
41
+ location: API location (e.g. ``us-east1``), or None.
42
+ api_version: Optional API version override (e.g. ``v1beta1``).
43
+ """
44
+
45
+ def __init__(
46
+ self,
47
+ *,
48
+ project: str | None = None,
49
+ location: str | None = None,
50
+ api_version: str | None = None,
51
+ ) -> None:
52
+ # Lazy: agentplatform is expensive to import, this module is not.
53
+ import agentplatform
54
+
55
+ http_options: dict[str, Any] = {"retry_options": RETRY_OPTIONS}
56
+ if api_version:
57
+ http_options["api_version"] = api_version
58
+
59
+ self._client: agentplatform.Client = agentplatform.Client( # noqa: TID251
60
+ project=project,
61
+ location=location,
62
+ http_options=http_options,
63
+ )
64
+
65
+ def __getattr__(self, name: str) -> Any:
66
+ return getattr(self._client, name)
@@ -50,6 +50,7 @@ class LazyGroup(click.Group):
50
50
  self._lazy_commands: dict[str, tuple[str, str]] = {}
51
51
  # name -> experiment label
52
52
  self._experiment_gates: dict[str, str] = {}
53
+ self._overrides: dict[str, click.Command] = {}
53
54
 
54
55
  def add_lazy_command(
55
56
  self,
@@ -81,12 +82,20 @@ class LazyGroup(click.Group):
81
82
  return bool(resolve_experiment(label))
82
83
 
83
84
  def list_commands(self, ctx: click.Context) -> list[str]:
84
- names = set(super().list_commands(ctx)) | set(self._lazy_commands)
85
+ names = (
86
+ set(super().list_commands(ctx))
87
+ | set(self._lazy_commands)
88
+ | set(self._overrides)
89
+ )
85
90
  return sorted(filter(self._is_visible, names))
86
91
 
87
92
  def get_command(self, ctx: click.Context, cmd_name: str) -> click.Command | None:
93
+ # Overrides are consulted only after the visibility check, so an installed
94
+ # extension cannot expose a command that is gated off.
88
95
  if not self._is_visible(cmd_name):
89
96
  return None
97
+ if cmd_name in self._overrides:
98
+ return self._overrides[cmd_name]
90
99
  if cmd_name in self._lazy_commands and cmd_name not in self.commands:
91
100
  import_path, _ = self._lazy_commands[cmd_name]
92
101
  module_path, attr = import_path.split(":")
@@ -98,6 +107,9 @@ class LazyGroup(click.Group):
98
107
  def format_commands(self, ctx: click.Context, formatter: click.HelpFormatter) -> None:
99
108
  rows: list[tuple[str, str]] = []
100
109
  for name in self.list_commands(ctx):
110
+ if name in self._overrides:
111
+ rows.append((name, self._overrides[name].get_short_help_str(limit=1000)))
112
+ continue
101
113
  if name in self.commands:
102
114
  # Don't truncate — Click's default of 45 would cut our docstring summaries.
103
115
  rows.append((name, self.commands[name].get_short_help_str(limit=1000)))
@@ -19,7 +19,7 @@ import sys
19
19
  from enum import IntEnum
20
20
  from typing import Any
21
21
 
22
- from rich.console import Console as _RichConsole
22
+ from rich.console import Console as _RichConsole # noqa: TID251
23
23
 
24
24
 
25
25
  class ExitCode(IntEnum):
@@ -18,7 +18,9 @@ from __future__ import annotations
18
18
 
19
19
  import logging
20
20
  import os
21
+ import re
21
22
  import tomllib
23
+ from collections.abc import Mapping
22
24
  from dataclasses import dataclass
23
25
  from pathlib import Path
24
26
  from typing import Any
@@ -56,8 +58,15 @@ class ProjectConfig:
56
58
  }
57
59
 
58
60
  @classmethod
59
- def from_dict(cls, data: dict[str, Any]) -> ProjectConfig:
61
+ def from_dict(
62
+ cls,
63
+ data: Mapping[str, Any] | Any,
64
+ filename: str = "agents-cli-manifest.yaml",
65
+ ) -> ProjectConfig:
60
66
  """Create a ProjectConfig from a raw manifest dictionary."""
67
+ if not isinstance(data, Mapping):
68
+ raise click.ClickException(f"malformed {filename}")
69
+
61
70
  cfg = cls()
62
71
  cfg.project_name = data.get("name", cfg.project_name)
63
72
  cfg.agent_directory = data.get("agent_directory", cfg.agent_directory)
@@ -68,7 +77,11 @@ class ProjectConfig:
68
77
  )
69
78
  cfg.language = data.get("language", cfg.language)
70
79
 
71
- create_params = data.get("create_params", {})
80
+ create_params = data.get("create_params")
81
+ if create_params is None:
82
+ create_params = {}
83
+ elif not isinstance(create_params, Mapping):
84
+ raise click.ClickException(f"malformed create_params in {filename}")
72
85
 
73
86
  cfg.session_type = create_params.get("session_type", cfg.session_type)
74
87
  cfg.cicd_runner = create_params.get("cicd_runner", cfg.cicd_runner)
@@ -103,6 +116,34 @@ def _warn_legacy_config() -> None:
103
116
  _WARNED_LEGACY_CONFIG = True
104
117
 
105
118
 
119
+ def _read_project_config_from_manifest(manifest_path: Path) -> ProjectConfig:
120
+ """Read project configuration from an agents-cli-manifest.yaml file."""
121
+ with open(manifest_path, encoding="utf-8") as f:
122
+ data = yaml.safe_load(f)
123
+ if data is None:
124
+ data = {}
125
+ return ProjectConfig.from_dict(data, filename=manifest_path.name)
126
+
127
+
128
+ def _read_project_config_from_pyproject(pyproject_path: Path) -> ProjectConfig:
129
+ """Read project configuration from a legacy pyproject.toml file."""
130
+ with open(pyproject_path, "rb") as f:
131
+ pyproj_data = tomllib.load(f)
132
+ tool_section = pyproj_data.get("tool", {})
133
+ if not isinstance(tool_section, Mapping) or "agents-cli" not in tool_section:
134
+ return ProjectConfig()
135
+ _warn_legacy_config()
136
+ data = tool_section["agents-cli"]
137
+ if data is None:
138
+ data = {}
139
+ elif isinstance(data, Mapping):
140
+ data = dict(data)
141
+ project_section = pyproj_data.get("project", {})
142
+ if isinstance(project_section, Mapping):
143
+ data["name"] = project_section.get("name", "")
144
+ return ProjectConfig.from_dict(data, filename=pyproject_path.name)
145
+
146
+
106
147
  def read_project_config(project_dir: str | None = None) -> ProjectConfig:
107
148
  """Read project metadata from agents-cli-manifest.yaml.
108
149
 
@@ -120,27 +161,13 @@ def read_project_config(project_dir: str | None = None) -> ProjectConfig:
120
161
  pyproject_path = root / "pyproject.toml"
121
162
 
122
163
  if manifest_path.exists():
123
- # Primary: read from manifest
124
- with open(manifest_path, encoding="utf-8") as f:
125
- data = yaml.safe_load(f) or {}
164
+ return _read_project_config_from_manifest(manifest_path)
126
165
  elif pyproject_path.exists():
127
- # Fallback: read from pyproject.toml
128
- with open(pyproject_path, "rb") as f:
129
- pyproj_data = tomllib.load(f)
130
- if not pyproj_data.get("tool", {}).get("agents-cli"):
131
- return ProjectConfig()
132
- _warn_legacy_config()
133
- data = pyproj_data["tool"]["agents-cli"]
134
- # Read project name from [project]
135
- project_section = pyproj_data.get("project", {})
136
- project_name = project_section.get("name", "")
137
- data["name"] = project_name
166
+ return _read_project_config_from_pyproject(pyproject_path)
138
167
  else:
139
- # If neither works, return a default project config
168
+ # If neither exists, return a default project config
140
169
  return ProjectConfig()
141
170
 
142
- return ProjectConfig.from_dict(data)
143
-
144
171
 
145
172
  def _parse_version(v: str) -> tuple[int, ...]:
146
173
  """Parse a dotted numeric version into a comparable tuple.
@@ -207,7 +234,8 @@ def _find_legacy_project_root(start_dir: Path) -> Path | None:
207
234
  try:
208
235
  with open(pyproject_path, "rb") as f:
209
236
  data = tomllib.load(f)
210
- if "tool" in data and "agents-cli" in data["tool"]:
237
+ tool_data = data.get("tool")
238
+ if isinstance(tool_data, Mapping) and "agents-cli" in tool_data:
211
239
  return parent
212
240
  except Exception:
213
241
  pass
@@ -334,3 +362,24 @@ def find_project_config(project_dir: Path | None = None) -> ProjectConfig | None
334
362
  return None
335
363
 
336
364
  return read_project_config(str(project_root_dir))
365
+
366
+
367
+ def root_agent_name(project_name: str) -> str:
368
+ """The ADK agent name the scaffolded template gives a project's root agent.
369
+
370
+ Single definition on purpose. The scaffold bakes this into
371
+ ``Agent(name=...)``, and it then travels out in telemetry as the OpenTelemetry
372
+ ``gen_ai.agent.name`` attribute -- which is what an observability backend
373
+ filters an agent's traces on. Deriving it from the project name in one
374
+ place is what lets agents-cli know the value without parsing the
375
+ generated ``agent.py``.
376
+
377
+ Coerced to a valid Python identifier, since ADK agent names must be:
378
+ ``my-agent`` becomes ``my_agent``. Falls back to ``root_agent`` (the
379
+ historical literal) when the project name has nothing usable in it.
380
+ """
381
+ candidate = re.sub(r"\W+", "_", project_name).strip("_").lower()
382
+ if not candidate:
383
+ return "root_agent"
384
+ # A leading digit is legal in a project name but not in an identifier.
385
+ return f"agent_{candidate}" if candidate[0].isdigit() else candidate
@@ -38,13 +38,14 @@ def is_agent_runtime_url(url: str) -> bool:
38
38
  return _AGENT_ENGINE_URL_FRAGMENT in url and _REASONING_ENGINE_PATH in url
39
39
 
40
40
 
41
- def is_raw_agent_runtime_url(url: str) -> bool:
42
- """``True`` for a bare Agent Runtime resource URL that still needs its
43
- ``/api`` passthrough path built.
41
+ def is_legacy_agent_runtime_url(url: str) -> bool:
42
+ """``True`` for a bare, non-passthrough Agent Runtime resource URL.
43
+
44
+ This URL can only be used for legacy ``:streamQuery`` endpoints, not the
45
+ ``/api/`` passthrough API.
44
46
 
45
47
  A URL already containing ``/api`` (the deployed APP_URL form served by the
46
- container) or any non-Agent-Runtime URL returns ``False`` — those are used
47
- as-is with ``/a2a/<app>`` (a2a) or ``/run_sse`` (adk) appended.
48
+ container) or any non-Agent-Runtime URL returns ``False``.
48
49
  """
49
50
  return is_agent_runtime_url(url) and "/api" not in url
50
51
 
@@ -69,6 +70,15 @@ def validate_agent_runtime_url(url: str) -> None:
69
70
  )
70
71
 
71
72
 
73
+ def build_agent_runtime_passthrough_url(location: str, runtime_resource: str) -> str:
74
+ """Base all clients can target. ``runtime_resource`` is the full
75
+ ``projects/<num>/locations/<loc>/reasoningEngines/<id>`` resource name."""
76
+ return (
77
+ f"https://{location}-aiplatform.googleapis.com/reasoningEngines/v1/"
78
+ f"{runtime_resource}/api"
79
+ )
80
+
81
+
72
82
  def parse_agent_runtime_service_url(service_url: str) -> tuple[str, str]:
73
83
  """Split an Agent Runtime service URL into (location, runtime_resource).
74
84
 
@@ -19,12 +19,19 @@ import os
19
19
  import shlex
20
20
  import subprocess
21
21
  import sys
22
+ from collections.abc import Sequence
22
23
  from pathlib import Path
23
24
 
24
25
  import click
25
26
 
26
27
  from google.agents.cli import _tools
27
28
 
29
+ # Set for an extension's command so any re-entry into `agents-cli <cmd>` runs the
30
+ # built-in instead of recursing back into the override.
31
+ DISABLE_OVERRIDES_ENV = "AGENTS_CLI_DISABLE_OVERRIDES"
32
+ # Exported so an extension's scripts can find sibling resources (templates etc.).
33
+ EXTENSION_DIR_ENV = "AGENTS_CLI_EXTENSION_DIR"
34
+
28
35
 
29
36
  def redact_cmd(args: list[str]) -> str:
30
37
  """Mask sensitive information in command arguments and return joined string.
@@ -173,6 +180,48 @@ def run(
173
180
  return result
174
181
 
175
182
 
183
+ def _looks_like_path(token: str) -> bool:
184
+ """A `run:` token the author wrote as a path, e.g. `scripts/run.py`."""
185
+ return "/" in token or os.sep in token
186
+
187
+
188
+ def run_extension_command(
189
+ run_vector: Sequence[str],
190
+ extra_args: list[str],
191
+ *,
192
+ cwd: Path,
193
+ extension_root: Path,
194
+ ) -> int:
195
+ """Run an extension's declared `run:` vector with the user's argv appended.
196
+
197
+ Differs from `run` in ways an override needs: the vector is extension-supplied
198
+ and passed through verbatim (no `require_tool` resolution), the command is
199
+ not echoed, and the child's exit code is returned rather than raised, so the
200
+ override exits like the command it replaced.
201
+
202
+ Tokens that exist as paths under `extension_root` are made absolute, so a
203
+ vendored script is found regardless of cwd.
204
+ """
205
+ # Only tokens written as paths. Resolving every token would rewrite an
206
+ # ordinary argument that happens to name a file in the extension, e.g.
207
+ # `run: ["make", "build"]` in an extension that also ships `build/`.
208
+ resolved_vector = [
209
+ str((extension_root / tok).resolve())
210
+ if _looks_like_path(tok) and (extension_root / tok).exists()
211
+ else tok
212
+ for tok in run_vector
213
+ ]
214
+ result = run(
215
+ resolved_vector + list(extra_args),
216
+ cwd=cwd,
217
+ env={DISABLE_OVERRIDES_ENV: "1", EXTENSION_DIR_ENV: str(extension_root)},
218
+ print_cmd=False,
219
+ check=False,
220
+ resolve_executable=False,
221
+ )
222
+ return result.returncode
223
+
224
+
176
225
  def run_resolved(
177
226
  args: list[str], *, resolve_executable: bool = True, **kwargs
178
227
  ) -> subprocess.CompletedProcess:
@@ -151,6 +151,10 @@ def require_tool(name: str, install_hint: str = "") -> str:
151
151
  return path
152
152
 
153
153
 
154
+ # Where `agents-cli setup` fetches the bundled skills from.
155
+ DEFAULT_SKILLS_SOURCE = "https://github.com/google/agents-cli"
156
+
157
+
154
158
  def run_npx_skills(args: list[str], spinner_msg: str):
155
159
  """Run an npx skills command, streaming output in real-time.
156
160
 
@@ -164,7 +168,7 @@ def run_npx_skills(args: list[str], spinner_msg: str):
164
168
  from google.agents.cli._skills_check import SKILLS_NPX_PACKAGE
165
169
 
166
170
  full_args = ["npx", "-y", SKILLS_NPX_PACKAGE, *args]
167
- click.secho(f" \u25b8 {shlex.join(full_args)}", fg="cyan", dim=True)
171
+ click.secho(f" ▸ {shlex.join(full_args)}", fg="cyan", dim=True)
168
172
 
169
173
  try:
170
174
  run_resolved(full_args, check=True, encoding="utf-8", errors="replace")
@@ -24,7 +24,7 @@ def require_confirmation(message: str):
24
24
 
25
25
  In interactive mode (-i), the user is prompted to confirm the action.
26
26
  In auto-approve mode (-y) or strict programmatic mode (no flags), proceeds silently.
27
- The decorated function receives 'yes' and 'interactive' parameters.
27
+ The decorated function receives an 'auto_approve' parameter.
28
28
 
29
29
  Args:
30
30
  message: Confirmation prompt shown to the user.
@@ -42,21 +42,24 @@ def require_confirmation(message: str):
42
42
  "-y",
43
43
  "--yes",
44
44
  "--auto-approve",
45
+ "auto_approve",
45
46
  is_flag=True,
46
47
  default=False,
47
48
  help="Skip confirmation prompt.",
48
49
  )
49
50
  @functools.wraps(f)
50
- def wrapper(*args, interactive=False, yes=False, **kwargs):
51
- if interactive and not yes:
51
+ def wrapper(*args, interactive=False, auto_approve=False, **kwargs):
52
+ if interactive and not auto_approve:
52
53
  click.echo()
53
54
  if not click.confirm(f" {message}", default=False):
54
55
  click.echo()
55
56
  click.secho(" Aborted.", fg="yellow")
56
57
  return
57
58
  click.echo()
58
- # In strict programmatic mode (no -i, no -y): auto-proceed silently
59
- return f(*args, yes=yes, interactive=interactive, **kwargs)
59
+ # In strict programmatic mode (no -i, no -y): auto-proceed silently.
60
+ # `interactive` is not passed on: the prompt happens here, and no
61
+ # decorated command has ever read it.
62
+ return f(*args, auto_approve=auto_approve, **kwargs)
60
63
 
61
64
  return wrapper
62
65