google-adk 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 (246) hide show
  1. {google_adk-1.4.2 → google_adk-1.5.0}/PKG-INFO +6 -5
  2. {google_adk-1.4.2 → google_adk-1.5.0}/README.md +1 -1
  3. {google_adk-1.4.2 → google_adk-1.5.0}/pyproject.toml +4 -4
  4. google_adk-1.5.0/src/google/adk/a2a/converters/request_converter.py +90 -0
  5. google_adk-1.5.0/src/google/adk/a2a/converters/utils.py +71 -0
  6. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/agents/llm_agent.py +5 -3
  7. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/artifacts/gcs_artifact_service.py +3 -2
  8. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/auth/auth_tool.py +2 -2
  9. google_adk-1.5.0/src/google/adk/auth/credential_service/session_state_credential_service.py +83 -0
  10. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/cli/cli_deploy.py +9 -2
  11. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/cli/cli_tools_click.py +110 -52
  12. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/cli/fast_api.py +26 -2
  13. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/cli/utils/evals.py +53 -0
  14. google_adk-1.5.0/src/google/adk/evaluation/final_response_match_v1.py +110 -0
  15. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/evaluation/gcs_eval_sets_manager.py +8 -5
  16. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/evaluation/response_evaluator.py +12 -1
  17. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/events/event.py +5 -5
  18. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/flows/llm_flows/contents.py +49 -4
  19. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/flows/llm_flows/functions.py +32 -0
  20. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/memory/__init__.py +3 -1
  21. google_adk-1.5.0/src/google/adk/memory/vertex_ai_memory_bank_service.py +150 -0
  22. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/models/lite_llm.py +9 -1
  23. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/runners.py +10 -0
  24. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/sessions/vertex_ai_session_service.py +53 -18
  25. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/telemetry.py +10 -0
  26. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/version.py +1 -1
  27. google_adk-1.4.2/src/google/adk/a2a/converters/utils.py +0 -34
  28. {google_adk-1.4.2 → google_adk-1.5.0}/LICENSE +0 -0
  29. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/__init__.py +0 -0
  30. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/a2a/__init__.py +0 -0
  31. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/a2a/converters/__init__.py +0 -0
  32. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/a2a/converters/event_converter.py +0 -0
  33. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/a2a/converters/part_converter.py +0 -0
  34. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/agents/__init__.py +0 -0
  35. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/agents/active_streaming_tool.py +0 -0
  36. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/agents/base_agent.py +0 -0
  37. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/agents/callback_context.py +0 -0
  38. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/agents/invocation_context.py +0 -0
  39. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/agents/langgraph_agent.py +0 -0
  40. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/agents/live_request_queue.py +0 -0
  41. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/agents/loop_agent.py +0 -0
  42. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/agents/parallel_agent.py +0 -0
  43. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/agents/readonly_context.py +0 -0
  44. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/agents/run_config.py +0 -0
  45. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/agents/sequential_agent.py +0 -0
  46. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/agents/transcription_entry.py +0 -0
  47. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/artifacts/__init__.py +0 -0
  48. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/artifacts/base_artifact_service.py +0 -0
  49. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/artifacts/in_memory_artifact_service.py +0 -0
  50. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/auth/__init__.py +0 -0
  51. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/auth/auth_credential.py +0 -0
  52. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/auth/auth_handler.py +0 -0
  53. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/auth/auth_preprocessor.py +0 -0
  54. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/auth/auth_schemes.py +0 -0
  55. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/auth/credential_manager.py +0 -0
  56. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/auth/credential_service/__init__.py +0 -0
  57. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/auth/credential_service/base_credential_service.py +0 -0
  58. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/auth/credential_service/in_memory_credential_service.py +0 -0
  59. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/auth/exchanger/__init__.py +0 -0
  60. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/auth/exchanger/base_credential_exchanger.py +0 -0
  61. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/auth/exchanger/credential_exchanger_registry.py +0 -0
  62. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/auth/exchanger/oauth2_credential_exchanger.py +0 -0
  63. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/auth/oauth2_credential_util.py +0 -0
  64. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/auth/refresher/__init__.py +0 -0
  65. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/auth/refresher/base_credential_refresher.py +0 -0
  66. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/auth/refresher/credential_refresher_registry.py +0 -0
  67. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/auth/refresher/oauth2_credential_refresher.py +0 -0
  68. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/cli/__init__.py +0 -0
  69. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/cli/__main__.py +0 -0
  70. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/cli/agent_graph.py +0 -0
  71. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/cli/browser/adk_favicon.svg +0 -0
  72. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/cli/browser/assets/ADK-512-color.svg +0 -0
  73. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/cli/browser/assets/audio-processor.js +0 -0
  74. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/cli/browser/assets/config/runtime-config.json +0 -0
  75. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/cli/browser/index.html +0 -0
  76. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/cli/browser/main-JAAWEV7F.js +0 -0
  77. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/cli/browser/polyfills-B6TNHZQ6.js +0 -0
  78. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/cli/browser/styles-4VDSPQ37.css +0 -0
  79. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/cli/cli.py +0 -0
  80. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/cli/cli_create.py +0 -0
  81. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/cli/cli_eval.py +0 -0
  82. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/cli/utils/__init__.py +0 -0
  83. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/cli/utils/agent_loader.py +0 -0
  84. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/cli/utils/cleanup.py +0 -0
  85. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/cli/utils/common.py +0 -0
  86. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/cli/utils/envs.py +0 -0
  87. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/cli/utils/logs.py +0 -0
  88. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/code_executors/__init__.py +0 -0
  89. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/code_executors/base_code_executor.py +0 -0
  90. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/code_executors/built_in_code_executor.py +0 -0
  91. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/code_executors/code_execution_utils.py +0 -0
  92. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/code_executors/code_executor_context.py +0 -0
  93. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/code_executors/container_code_executor.py +0 -0
  94. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/code_executors/unsafe_local_code_executor.py +0 -0
  95. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/code_executors/vertex_ai_code_executor.py +0 -0
  96. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/errors/__init__.py +0 -0
  97. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/errors/not_found_error.py +0 -0
  98. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/evaluation/__init__.py +0 -0
  99. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/evaluation/_eval_set_results_manager_utils.py +0 -0
  100. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/evaluation/_eval_sets_manager_utils.py +0 -0
  101. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/evaluation/agent_evaluator.py +0 -0
  102. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/evaluation/eval_case.py +0 -0
  103. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/evaluation/eval_metrics.py +0 -0
  104. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/evaluation/eval_result.py +0 -0
  105. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/evaluation/eval_set.py +0 -0
  106. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/evaluation/eval_set_results_manager.py +0 -0
  107. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/evaluation/eval_sets_manager.py +0 -0
  108. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/evaluation/evaluation_constants.py +0 -0
  109. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/evaluation/evaluation_generator.py +0 -0
  110. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/evaluation/evaluator.py +0 -0
  111. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/evaluation/gcs_eval_set_results_manager.py +0 -0
  112. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/evaluation/local_eval_set_results_manager.py +0 -0
  113. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/evaluation/local_eval_sets_manager.py +0 -0
  114. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/evaluation/trajectory_evaluator.py +0 -0
  115. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/events/__init__.py +0 -0
  116. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/events/event_actions.py +0 -0
  117. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/examples/__init__.py +0 -0
  118. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/examples/base_example_provider.py +0 -0
  119. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/examples/example.py +0 -0
  120. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/examples/example_util.py +0 -0
  121. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/examples/vertex_ai_example_store.py +0 -0
  122. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/flows/__init__.py +0 -0
  123. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/flows/llm_flows/__init__.py +0 -0
  124. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/flows/llm_flows/_base_llm_processor.py +0 -0
  125. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/flows/llm_flows/_code_execution.py +0 -0
  126. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/flows/llm_flows/_nl_planning.py +0 -0
  127. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/flows/llm_flows/agent_transfer.py +0 -0
  128. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/flows/llm_flows/audio_transcriber.py +0 -0
  129. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/flows/llm_flows/auto_flow.py +0 -0
  130. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/flows/llm_flows/base_llm_flow.py +0 -0
  131. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/flows/llm_flows/basic.py +0 -0
  132. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/flows/llm_flows/identity.py +0 -0
  133. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/flows/llm_flows/instructions.py +0 -0
  134. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/flows/llm_flows/single_flow.py +0 -0
  135. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/memory/_utils.py +0 -0
  136. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/memory/base_memory_service.py +0 -0
  137. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/memory/in_memory_memory_service.py +0 -0
  138. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/memory/memory_entry.py +0 -0
  139. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/memory/vertex_ai_rag_memory_service.py +0 -0
  140. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/models/__init__.py +0 -0
  141. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/models/anthropic_llm.py +0 -0
  142. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/models/base_llm.py +0 -0
  143. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/models/base_llm_connection.py +0 -0
  144. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/models/gemini_llm_connection.py +0 -0
  145. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/models/google_llm.py +0 -0
  146. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/models/llm_request.py +0 -0
  147. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/models/llm_response.py +0 -0
  148. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/models/registry.py +0 -0
  149. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/planners/__init__.py +0 -0
  150. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/planners/base_planner.py +0 -0
  151. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/planners/built_in_planner.py +0 -0
  152. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/planners/plan_re_act_planner.py +0 -0
  153. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/platform/__init__.py +0 -0
  154. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/platform/internal/__init__.py +0 -0
  155. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/platform/internal/thread.py +0 -0
  156. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/platform/thread.py +0 -0
  157. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/py.typed +0 -0
  158. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/sessions/__init__.py +0 -0
  159. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/sessions/_session_util.py +0 -0
  160. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/sessions/base_session_service.py +0 -0
  161. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/sessions/database_session_service.py +0 -0
  162. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/sessions/in_memory_session_service.py +0 -0
  163. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/sessions/session.py +0 -0
  164. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/sessions/state.py +0 -0
  165. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/__init__.py +0 -0
  166. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/_automatic_function_calling_util.py +0 -0
  167. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/_forwarding_artifact_service.py +0 -0
  168. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/_function_parameter_parse_util.py +0 -0
  169. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/_gemini_schema_util.py +0 -0
  170. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/_memory_entry_utils.py +0 -0
  171. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/agent_tool.py +0 -0
  172. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/apihub_tool/__init__.py +0 -0
  173. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/apihub_tool/apihub_toolset.py +0 -0
  174. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/apihub_tool/clients/__init__.py +0 -0
  175. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/apihub_tool/clients/apihub_client.py +0 -0
  176. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/apihub_tool/clients/secret_client.py +0 -0
  177. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/application_integration_tool/__init__.py +0 -0
  178. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/application_integration_tool/application_integration_toolset.py +0 -0
  179. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/application_integration_tool/clients/connections_client.py +0 -0
  180. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/application_integration_tool/clients/integration_client.py +0 -0
  181. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/application_integration_tool/integration_connector_tool.py +0 -0
  182. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/authenticated_function_tool.py +0 -0
  183. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/base_authenticated_tool.py +0 -0
  184. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/base_tool.py +0 -0
  185. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/base_toolset.py +0 -0
  186. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/bigquery/__init__.py +0 -0
  187. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/bigquery/bigquery_credentials.py +0 -0
  188. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/bigquery/bigquery_tool.py +0 -0
  189. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/bigquery/bigquery_toolset.py +0 -0
  190. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/bigquery/client.py +0 -0
  191. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/bigquery/config.py +0 -0
  192. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/bigquery/metadata_tool.py +0 -0
  193. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/bigquery/query_tool.py +0 -0
  194. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/crewai_tool.py +0 -0
  195. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/enterprise_search_tool.py +0 -0
  196. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/example_tool.py +0 -0
  197. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/exit_loop_tool.py +0 -0
  198. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/function_tool.py +0 -0
  199. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/get_user_choice_tool.py +0 -0
  200. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/google_api_tool/__init__.py +0 -0
  201. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/google_api_tool/google_api_tool.py +0 -0
  202. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/google_api_tool/google_api_toolset.py +0 -0
  203. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/google_api_tool/google_api_toolsets.py +0 -0
  204. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/google_api_tool/googleapi_to_openapi_converter.py +0 -0
  205. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/google_search_tool.py +0 -0
  206. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/langchain_tool.py +0 -0
  207. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/load_artifacts_tool.py +0 -0
  208. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/load_memory_tool.py +0 -0
  209. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/load_web_page.py +0 -0
  210. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/long_running_tool.py +0 -0
  211. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/mcp_tool/__init__.py +0 -0
  212. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/mcp_tool/conversion_utils.py +0 -0
  213. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/mcp_tool/mcp_session_manager.py +0 -0
  214. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/mcp_tool/mcp_tool.py +0 -0
  215. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/mcp_tool/mcp_toolset.py +0 -0
  216. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/openapi_tool/__init__.py +0 -0
  217. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/openapi_tool/auth/__init__.py +0 -0
  218. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/openapi_tool/auth/auth_helpers.py +0 -0
  219. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/openapi_tool/auth/credential_exchangers/__init__.py +0 -0
  220. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.py +0 -0
  221. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/openapi_tool/auth/credential_exchangers/base_credential_exchanger.py +0 -0
  222. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.py +0 -0
  223. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.py +0 -0
  224. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/openapi_tool/common/__init__.py +0 -0
  225. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/openapi_tool/common/common.py +0 -0
  226. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/openapi_tool/openapi_spec_parser/__init__.py +0 -0
  227. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.py +0 -0
  228. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/openapi_tool/openapi_spec_parser/openapi_toolset.py +0 -0
  229. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/openapi_tool/openapi_spec_parser/operation_parser.py +0 -0
  230. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/openapi_tool/openapi_spec_parser/rest_api_tool.py +0 -0
  231. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.py +0 -0
  232. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/preload_memory_tool.py +0 -0
  233. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/retrieval/__init__.py +0 -0
  234. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/retrieval/base_retrieval_tool.py +0 -0
  235. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/retrieval/files_retrieval.py +0 -0
  236. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/retrieval/llama_index_retrieval.py +0 -0
  237. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/retrieval/vertex_ai_rag_retrieval.py +0 -0
  238. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/tool_context.py +0 -0
  239. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/toolbox_toolset.py +0 -0
  240. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/transfer_to_agent_tool.py +0 -0
  241. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/url_context_tool.py +0 -0
  242. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/tools/vertex_ai_search_tool.py +0 -0
  243. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/utils/__init__.py +0 -0
  244. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/utils/feature_decorator.py +0 -0
  245. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/utils/instructions_utils.py +0 -0
  246. {google_adk-1.4.2 → google_adk-1.5.0}/src/google/adk/utils/variant_utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: google-adk
3
- Version: 1.4.2
3
+ Version: 1.5.0
4
4
  Summary: Agent Development Kit
5
5
  Author-email: Google LLC <googleapis-packages@google.com>
6
6
  Requires-Python: >=3.9
@@ -19,6 +19,7 @@ Classifier: Operating System :: OS Independent
19
19
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
20
20
  Classifier: License :: OSI Approved :: Apache Software License
21
21
  License-File: LICENSE
22
+ Requires-Dist: PyYAML>=6.0.2
22
23
  Requires-Dist: anyio>=4.9.0;python_version>='3.10'
23
24
  Requires-Dist: authlib>=1.5.1
24
25
  Requires-Dist: click>=8.1.8
@@ -28,7 +29,7 @@ Requires-Dist: google-cloud-aiplatform[agent-engines]>=1.95.1
28
29
  Requires-Dist: google-cloud-secret-manager>=2.22.0
29
30
  Requires-Dist: google-cloud-speech>=2.30.0
30
31
  Requires-Dist: google-cloud-storage>=2.18.0, <3.0.0
31
- Requires-Dist: google-genai>=1.17.0
32
+ Requires-Dist: google-genai>=1.21.1
32
33
  Requires-Dist: graphviz>=0.20.2
33
34
  Requires-Dist: mcp>=1.8.0;python_version>='3.10'
34
35
  Requires-Dist: opentelemetry-api>=1.31.0
@@ -37,7 +38,6 @@ Requires-Dist: opentelemetry-sdk>=1.31.0
37
38
  Requires-Dist: pydantic>=2.0, <3.0.0
38
39
  Requires-Dist: python-dateutil>=2.9.0.post0
39
40
  Requires-Dist: python-dotenv>=1.0.0
40
- Requires-Dist: PyYAML>=6.0.2
41
41
  Requires-Dist: requests>=2.32.4
42
42
  Requires-Dist: sqlalchemy>=2.0
43
43
  Requires-Dist: starlette>=0.46.2
@@ -48,9 +48,9 @@ Requires-Dist: websockets>=15.0.1
48
48
  Requires-Dist: a2a-sdk>=0.2.7 ; extra == "a2a" and (python_version>='3.10')
49
49
  Requires-Dist: flit>=3.10.0 ; extra == "dev"
50
50
  Requires-Dist: isort>=6.0.0 ; extra == "dev"
51
+ Requires-Dist: mypy>=1.15.0 ; extra == "dev"
51
52
  Requires-Dist: pyink>=24.10.0 ; extra == "dev"
52
53
  Requires-Dist: pylint>=2.6.0 ; extra == "dev"
53
- Requires-Dist: mypy>=1.15.0 ; extra == "dev"
54
54
  Requires-Dist: autodoc_pydantic ; extra == "docs"
55
55
  Requires-Dist: furo ; extra == "docs"
56
56
  Requires-Dist: myst-parser ; extra == "docs"
@@ -60,6 +60,7 @@ Requires-Dist: sphinx-rtd-theme ; extra == "docs"
60
60
  Requires-Dist: google-cloud-aiplatform[evaluation]>=1.87.0 ; extra == "eval"
61
61
  Requires-Dist: pandas>=2.2.3 ; extra == "eval"
62
62
  Requires-Dist: tabulate>=0.9.0 ; extra == "eval"
63
+ Requires-Dist: rouge-score>=0.1.2 ; extra == "eval"
63
64
  Requires-Dist: anthropic>=0.43.0 ; extra == "extensions"
64
65
  Requires-Dist: beautifulsoup4>=3.2.2 ; extra == "extensions"
65
66
  Requires-Dist: crewai[tools] ; extra == "extensions" and (python_version>='3.10')
@@ -226,7 +227,7 @@ adk eval \
226
227
  ## 🤝 Contributing
227
228
 
228
229
  We welcome contributions from the community! Whether it's bug reports, feature requests, documentation improvements, or code contributions, please see our
229
- - [General contribution guideline and flow](https://google.github.io/adk-docs/contributing-guide/#questions).
230
+ - [General contribution guideline and flow](https://google.github.io/adk-docs/contributing-guide/).
230
231
  - Then if you want to contribute code, please read [Code Contributing Guidelines](./CONTRIBUTING.md) to get started.
231
232
 
232
233
  ## 📄 License
@@ -135,7 +135,7 @@ adk eval \
135
135
  ## 🤝 Contributing
136
136
 
137
137
  We welcome contributions from the community! Whether it's bug reports, feature requests, documentation improvements, or code contributions, please see our
138
- - [General contribution guideline and flow](https://google.github.io/adk-docs/contributing-guide/#questions).
138
+ - [General contribution guideline and flow](https://google.github.io/adk-docs/contributing-guide/).
139
139
  - Then if you want to contribute code, please read [Code Contributing Guidelines](./CONTRIBUTING.md) to get started.
140
140
 
141
141
  ## 📄 License
@@ -25,6 +25,7 @@ classifiers = [ # List of https://pypi.org/classifiers/
25
25
  ]
26
26
  dependencies = [
27
27
  # go/keep-sorted start
28
+ "PyYAML>=6.0.2", # For APIHubToolset.
28
29
  "anyio>=4.9.0;python_version>='3.10'", # For MCP Session Manager
29
30
  "authlib>=1.5.1", # For RestAPI Tool
30
31
  "click>=8.1.8", # For CLI tools
@@ -34,7 +35,7 @@ dependencies = [
34
35
  "google-cloud-secret-manager>=2.22.0", # Fetching secrets in RestAPI Tool
35
36
  "google-cloud-speech>=2.30.0", # For Audio Transcription
36
37
  "google-cloud-storage>=2.18.0, <3.0.0", # For GCS Artifact service
37
- "google-genai>=1.17.0", # Google GenAI SDK
38
+ "google-genai>=1.21.1", # Google GenAI SDK
38
39
  "graphviz>=0.20.2", # Graphviz for graph rendering
39
40
  "mcp>=1.8.0;python_version>='3.10'", # For MCP Toolset
40
41
  "opentelemetry-api>=1.31.0", # OpenTelemetry
@@ -43,7 +44,6 @@ dependencies = [
43
44
  "pydantic>=2.0, <3.0.0", # For data validation/models
44
45
  "python-dateutil>=2.9.0.post0", # For Vertext AI Session Service
45
46
  "python-dotenv>=1.0.0", # To manage environment variables
46
- "PyYAML>=6.0.2", # For APIHubToolset.
47
47
  "requests>=2.32.4",
48
48
  "sqlalchemy>=2.0", # SQL database ORM
49
49
  "starlette>=0.46.2", # For FastAPI CLI
@@ -70,9 +70,9 @@ dev = [
70
70
  # go/keep-sorted start
71
71
  "flit>=3.10.0",
72
72
  "isort>=6.0.0",
73
+ "mypy>=1.15.0",
73
74
  "pyink>=24.10.0",
74
75
  "pylint>=2.6.0",
75
- "mypy>=1.15.0",
76
76
  # go/keep-sorted end
77
77
  ]
78
78
 
@@ -87,6 +87,7 @@ eval = [
87
87
  "google-cloud-aiplatform[evaluation]>=1.87.0",
88
88
  "pandas>=2.2.3",
89
89
  "tabulate>=0.9.0",
90
+ "rouge-score>=0.1.2",
90
91
  # go/keep-sorted end
91
92
  ]
92
93
 
@@ -97,7 +98,6 @@ test = [
97
98
  "langgraph>=0.2.60", # For LangGraphAgent
98
99
  "litellm>=1.71.2", # For LiteLLM tests
99
100
  "llama-index-readers-file>=0.4.0", # For retrieval tests
100
-
101
101
  "pytest-asyncio>=0.25.0",
102
102
  "pytest-mock>=3.14.0",
103
103
  "pytest-xdist>=3.6.1",
@@ -0,0 +1,90 @@
1
+ # Copyright 2025 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
+ # http://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
+ from __future__ import annotations
16
+
17
+ import sys
18
+ from typing import Any
19
+
20
+ try:
21
+ from a2a.server.agent_execution import RequestContext
22
+ except ImportError as e:
23
+ if sys.version_info < (3, 10):
24
+ raise ImportError(
25
+ 'A2A Tool requires Python 3.10 or above. Please upgrade your Python'
26
+ ' version.'
27
+ ) from e
28
+ else:
29
+ raise e
30
+
31
+ from google.genai import types as genai_types
32
+
33
+ from ...runners import RunConfig
34
+ from ...utils.feature_decorator import working_in_progress
35
+ from .part_converter import convert_a2a_part_to_genai_part
36
+ from .utils import _from_a2a_context_id
37
+ from .utils import _get_adk_metadata_key
38
+
39
+
40
+ def _get_user_id(request: RequestContext, user_id_from_context: str) -> str:
41
+ # Get user from call context if available (auth is enabled on a2a server)
42
+ if request.call_context and request.call_context.user:
43
+ return request.call_context.user.user_name
44
+
45
+ # Get user from context id if available
46
+ if user_id_from_context:
47
+ return user_id_from_context
48
+
49
+ # Get user from message metadata if available (client is an ADK agent)
50
+ if request.message.metadata:
51
+ user_id = request.message.metadata.get(_get_adk_metadata_key('user_id'))
52
+ if user_id:
53
+ return f'ADK_USER_{user_id}'
54
+
55
+ # Get user from task if available (client is a an ADK agent)
56
+ if request.current_task:
57
+ user_id = request.current_task.metadata.get(
58
+ _get_adk_metadata_key('user_id')
59
+ )
60
+ if user_id:
61
+ return f'ADK_USER_{user_id}'
62
+ return (
63
+ f'temp_user_{request.task_id}'
64
+ if request.task_id
65
+ else f'TEMP_USER_{request.message.messageId}'
66
+ )
67
+
68
+
69
+ @working_in_progress
70
+ def convert_a2a_request_to_adk_run_args(
71
+ request: RequestContext,
72
+ ) -> dict[str, Any]:
73
+
74
+ if not request.message:
75
+ raise ValueError('Request message cannot be None')
76
+
77
+ _, user_id, session_id = _from_a2a_context_id(request.context_id)
78
+
79
+ return {
80
+ 'user_id': _get_user_id(request, user_id),
81
+ 'session_id': session_id,
82
+ 'new_message': genai_types.Content(
83
+ role='user',
84
+ parts=[
85
+ convert_a2a_part_to_genai_part(part)
86
+ for part in request.message.parts
87
+ ],
88
+ ),
89
+ 'run_config': RunConfig(),
90
+ }
@@ -0,0 +1,71 @@
1
+ # Copyright 2025 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
+ # http://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
+ from __future__ import annotations
16
+
17
+ ADK_METADATA_KEY_PREFIX = "adk_"
18
+ ADK_CONTEXT_ID_PREFIX = "ADK"
19
+
20
+
21
+ def _get_adk_metadata_key(key: str) -> str:
22
+ """Gets the A2A event metadata key for the given key.
23
+
24
+ Args:
25
+ key: The metadata key to prefix.
26
+
27
+ Returns:
28
+ The prefixed metadata key.
29
+
30
+ Raises:
31
+ ValueError: If key is empty or None.
32
+ """
33
+ if not key:
34
+ raise ValueError("Metadata key cannot be empty or None")
35
+ return f"{ADK_METADATA_KEY_PREFIX}{key}"
36
+
37
+
38
+ def _to_a2a_context_id(app_name: str, user_id: str, session_id: str) -> str:
39
+ """Converts app name, user id and session id to an A2A context id.
40
+
41
+ Args:
42
+ app_name: The app name.
43
+ user_id: The user id.
44
+ session_id: The session id.
45
+
46
+ Returns:
47
+ The A2A context id.
48
+ """
49
+ return [ADK_CONTEXT_ID_PREFIX, app_name, user_id, session_id].join("$")
50
+
51
+
52
+ def _from_a2a_context_id(context_id: str) -> tuple[str, str, str]:
53
+ """Converts an A2A context id to app name, user id and session id.
54
+ if context_id is None, return None, None, None
55
+ if context_id is not None, but not in the format of
56
+ ADK$app_name$user_id$session_id, return None, None, None
57
+
58
+ Args:
59
+ context_id: The A2A context id.
60
+
61
+ Returns:
62
+ The app name, user id and session id.
63
+ """
64
+ if not context_id:
65
+ return None, None, None
66
+
67
+ prefix, app_name, user_id, session_id = context_id.split("$")
68
+ if prefix == "ADK" and app_name and user_id and session_id:
69
+ return app_name, user_id, session_id
70
+
71
+ return None, None, None
@@ -161,10 +161,12 @@ class LlmAgent(BaseAgent):
161
161
  # LLM-based agent transfer configs - End
162
162
 
163
163
  include_contents: Literal['default', 'none'] = 'default'
164
- """Whether to include contents in the model request.
164
+ """Controls content inclusion in model requests.
165
165
 
166
- When set to 'none', the model request will not include any contents, such as
167
- user messages, tool results, etc.
166
+ Options:
167
+ default: Model receives relevant conversation history
168
+ none: Model receives no prior history, operates solely on current
169
+ instruction and input
168
170
  """
169
171
 
170
172
  # Controlled input/output configurations - Start
@@ -13,6 +13,7 @@
13
13
  # limitations under the License.
14
14
 
15
15
  """An artifact service implementation using Google Cloud Storage (GCS)."""
16
+ from __future__ import annotations
16
17
 
17
18
  import logging
18
19
  from typing import Optional
@@ -151,7 +152,7 @@ class GcsArtifactService(BaseArtifactService):
151
152
  self.bucket, prefix=session_prefix
152
153
  )
153
154
  for blob in session_blobs:
154
- _, _, _, filename, _ = blob.name.split("/")
155
+ *_, filename, _ = blob.name.split("/")
155
156
  filenames.add(filename)
156
157
 
157
158
  user_namespace_prefix = f"{app_name}/{user_id}/user/"
@@ -159,7 +160,7 @@ class GcsArtifactService(BaseArtifactService):
159
160
  self.bucket, prefix=user_namespace_prefix
160
161
  )
161
162
  for blob in user_namespace_blobs:
162
- _, _, _, filename, _ = blob.name.split("/")
163
+ *_, filename, _ = blob.name.split("/")
163
164
  filenames.add(filename)
164
165
 
165
166
  return sorted(list(filenames))
@@ -31,12 +31,12 @@ class AuthConfig(BaseModelWithConfig):
31
31
 
32
32
  auth_scheme: AuthScheme
33
33
  """The auth scheme used to collect credentials"""
34
- raw_auth_credential: AuthCredential = None
34
+ raw_auth_credential: Optional[AuthCredential] = None
35
35
  """The raw auth credential used to collect credentials. The raw auth
36
36
  credentials are used in some auth scheme that needs to exchange auth
37
37
  credentials. e.g. OAuth2 and OIDC. For other auth scheme, it could be None.
38
38
  """
39
- exchanged_auth_credential: AuthCredential = None
39
+ exchanged_auth_credential: Optional[AuthCredential] = None
40
40
  """The exchanged auth credential used to collect credentials. adk and client
41
41
  will work together to fill it. For those auth scheme that doesn't need to
42
42
  exchange auth credentials, e.g. API key, service account etc. It's filled by
@@ -0,0 +1,83 @@
1
+ # Copyright 2025 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
+ # http://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
+ from __future__ import annotations
16
+
17
+ from typing import Optional
18
+
19
+ from typing_extensions import override
20
+
21
+ from ...tools.tool_context import ToolContext
22
+ from ...utils.feature_decorator import experimental
23
+ from ..auth_credential import AuthCredential
24
+ from ..auth_tool import AuthConfig
25
+ from .base_credential_service import BaseCredentialService
26
+
27
+
28
+ @experimental
29
+ class SessionStateCredentialService(BaseCredentialService):
30
+ """Class for implementation of credential service using session state as the
31
+ store.
32
+ Note: store credential in session may not be secure, use at your own risk.
33
+ """
34
+
35
+ @override
36
+ async def load_credential(
37
+ self,
38
+ auth_config: AuthConfig,
39
+ tool_context: ToolContext,
40
+ ) -> Optional[AuthCredential]:
41
+ """
42
+ Loads the credential by auth config and current tool context from the
43
+ backend credential store.
44
+
45
+ Args:
46
+ auth_config: The auth config which contains the auth scheme and auth
47
+ credential information. auth_config.get_credential_key will be used to
48
+ build the key to load the credential.
49
+
50
+ tool_context: The context of the current invocation when the tool is
51
+ trying to load the credential.
52
+
53
+ Returns:
54
+ Optional[AuthCredential]: the credential saved in the store.
55
+
56
+ """
57
+ return tool_context.state.get(auth_config.credential_key)
58
+
59
+ @override
60
+ async def save_credential(
61
+ self,
62
+ auth_config: AuthConfig,
63
+ tool_context: ToolContext,
64
+ ) -> None:
65
+ """
66
+ Saves the exchanged_auth_credential in auth config to the backend credential
67
+ store.
68
+
69
+ Args:
70
+ auth_config: The auth config which contains the auth scheme and auth
71
+ credential information. auth_config.get_credential_key will be used to
72
+ build the key to save the credential.
73
+
74
+ tool_context: The context of the current invocation when the tool is
75
+ trying to save the credential.
76
+
77
+ Returns:
78
+ None
79
+ """
80
+
81
+ tool_context.state[auth_config.credential_key] = (
82
+ auth_config.exchanged_auth_credential
83
+ )
@@ -55,7 +55,7 @@ COPY "agents/{app_name}/" "/app/agents/{app_name}/"
55
55
 
56
56
  EXPOSE {port}
57
57
 
58
- CMD adk {command} --port={port} {host_option} {service_option} {trace_to_cloud_option} "/app/agents"
58
+ CMD adk {command} --port={port} {host_option} {service_option} {trace_to_cloud_option} {allow_origins_option} "/app/agents"
59
59
  """
60
60
 
61
61
  _AGENT_ENGINE_APP_TEMPLATE = """
@@ -121,8 +121,10 @@ def to_cloud_run(
121
121
  port: int,
122
122
  trace_to_cloud: bool,
123
123
  with_ui: bool,
124
+ log_level: str,
124
125
  verbosity: str,
125
126
  adk_version: str,
127
+ allow_origins: Optional[list[str]] = None,
126
128
  session_service_uri: Optional[str] = None,
127
129
  artifact_service_uri: Optional[str] = None,
128
130
  memory_service_uri: Optional[str] = None,
@@ -150,6 +152,7 @@ def to_cloud_run(
150
152
  app_name: The name of the app, by default, it's basename of `agent_folder`.
151
153
  temp_folder: The temp folder for the generated Cloud Run source files.
152
154
  port: The port of the ADK api server.
155
+ allow_origins: The list of allowed origins for the ADK api server.
153
156
  trace_to_cloud: Whether to enable Cloud Trace.
154
157
  with_ui: Whether to deploy with UI.
155
158
  verbosity: The verbosity level of the CLI.
@@ -183,6 +186,9 @@ def to_cloud_run(
183
186
  # create Dockerfile
184
187
  click.echo('Creating Dockerfile...')
185
188
  host_option = '--host=0.0.0.0' if adk_version > '0.5.0' else ''
189
+ allow_origins_option = (
190
+ f'--allow_origins={",".join(allow_origins)}' if allow_origins else ''
191
+ )
186
192
  dockerfile_content = _DOCKERFILE_TEMPLATE.format(
187
193
  gcp_project_id=project,
188
194
  gcp_region=region,
@@ -197,6 +203,7 @@ def to_cloud_run(
197
203
  memory_service_uri,
198
204
  ),
199
205
  trace_to_cloud_option='--trace_to_cloud' if trace_to_cloud else '',
206
+ allow_origins_option=allow_origins_option,
200
207
  adk_version=adk_version,
201
208
  host_option=host_option,
202
209
  )
@@ -226,7 +233,7 @@ def to_cloud_run(
226
233
  '--port',
227
234
  str(port),
228
235
  '--verbosity',
229
- verbosity,
236
+ log_level.lower() if log_level else verbosity,
230
237
  '--labels',
231
238
  'created-by=adk',
232
239
  ],