google-agents-cli 1.6.1__tar.gz → 1.7.0__tar.gz

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