google-adk 0.2.0__tar.gz → 0.4.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 (178) hide show
  1. {google_adk-0.2.0 → google_adk-0.4.0}/PKG-INFO +28 -9
  2. {google_adk-0.2.0 → google_adk-0.4.0}/README.md +26 -7
  3. {google_adk-0.2.0 → google_adk-0.4.0}/pyproject.toml +13 -9
  4. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/agents/base_agent.py +7 -7
  5. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/agents/callback_context.py +0 -1
  6. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/agents/llm_agent.py +3 -8
  7. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/auth/auth_credential.py +2 -1
  8. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/auth/auth_handler.py +7 -3
  9. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/browser/index.html +1 -1
  10. google_adk-0.2.0/src/google/adk/cli/browser/main-ZBO76GRM.js → google_adk-0.4.0/src/google/adk/cli/browser/main-HWIBUY2R.js +69 -53
  11. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/cli.py +54 -47
  12. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/cli_deploy.py +6 -1
  13. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/cli_eval.py +1 -1
  14. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/cli_tools_click.py +78 -13
  15. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/fast_api.py +6 -0
  16. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/evaluation/agent_evaluator.py +2 -2
  17. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/evaluation/response_evaluator.py +2 -2
  18. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/evaluation/trajectory_evaluator.py +4 -5
  19. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/events/event_actions.py +9 -4
  20. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/flows/llm_flows/agent_transfer.py +1 -1
  21. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/flows/llm_flows/base_llm_flow.py +1 -1
  22. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/flows/llm_flows/contents.py +10 -6
  23. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/flows/llm_flows/functions.py +38 -18
  24. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/flows/llm_flows/instructions.py +2 -2
  25. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/models/gemini_llm_connection.py +2 -2
  26. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/models/llm_response.py +10 -1
  27. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/planners/built_in_planner.py +1 -0
  28. google_adk-0.4.0/src/google/adk/sessions/_session_util.py +29 -0
  29. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/sessions/database_session_service.py +60 -43
  30. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/sessions/state.py +1 -1
  31. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/sessions/vertex_ai_session_service.py +7 -5
  32. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/agent_tool.py +2 -3
  33. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/application_integration_tool/__init__.py +2 -0
  34. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/application_integration_tool/application_integration_toolset.py +48 -26
  35. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/application_integration_tool/clients/connections_client.py +26 -54
  36. google_adk-0.4.0/src/google/adk/tools/application_integration_tool/integration_connector_tool.py +159 -0
  37. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/function_tool.py +42 -0
  38. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/google_api_tool/google_api_tool_set.py +12 -9
  39. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/load_artifacts_tool.py +1 -1
  40. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.py +4 -4
  41. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/openapi_tool/openapi_spec_parser/openapi_toolset.py +1 -1
  42. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/openapi_tool/openapi_spec_parser/operation_parser.py +5 -12
  43. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/openapi_tool/openapi_spec_parser/rest_api_tool.py +46 -8
  44. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/version.py +1 -1
  45. {google_adk-0.2.0 → google_adk-0.4.0}/LICENSE +0 -0
  46. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/__init__.py +0 -0
  47. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/agents/__init__.py +0 -0
  48. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/agents/active_streaming_tool.py +0 -0
  49. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/agents/invocation_context.py +0 -0
  50. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/agents/langgraph_agent.py +0 -0
  51. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/agents/live_request_queue.py +0 -0
  52. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/agents/loop_agent.py +0 -0
  53. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/agents/parallel_agent.py +0 -0
  54. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/agents/readonly_context.py +0 -0
  55. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/agents/remote_agent.py +0 -0
  56. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/agents/run_config.py +0 -0
  57. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/agents/sequential_agent.py +0 -0
  58. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/agents/transcription_entry.py +0 -0
  59. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/artifacts/__init__.py +0 -0
  60. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/artifacts/base_artifact_service.py +0 -0
  61. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/artifacts/gcs_artifact_service.py +0 -0
  62. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/artifacts/in_memory_artifact_service.py +0 -0
  63. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/auth/__init__.py +0 -0
  64. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/auth/auth_preprocessor.py +0 -0
  65. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/auth/auth_schemes.py +0 -0
  66. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/auth/auth_tool.py +0 -0
  67. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/__init__.py +0 -0
  68. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/__main__.py +0 -0
  69. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/agent_graph.py +0 -0
  70. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/browser/adk_favicon.svg +0 -0
  71. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/browser/assets/audio-processor.js +0 -0
  72. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/browser/assets/config/runtime-config.json +0 -0
  73. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/browser/polyfills-FFHMD2TL.js +0 -0
  74. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/browser/styles-4VDSPQ37.css +0 -0
  75. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/cli_create.py +0 -0
  76. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/utils/__init__.py +0 -0
  77. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/utils/envs.py +0 -0
  78. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/utils/evals.py +0 -0
  79. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/cli/utils/logs.py +0 -0
  80. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/code_executors/__init__.py +0 -0
  81. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/code_executors/base_code_executor.py +0 -0
  82. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/code_executors/code_execution_utils.py +0 -0
  83. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/code_executors/code_executor_context.py +0 -0
  84. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/code_executors/container_code_executor.py +0 -0
  85. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/code_executors/unsafe_local_code_executor.py +0 -0
  86. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/code_executors/vertex_ai_code_executor.py +0 -0
  87. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/evaluation/__init__.py +0 -0
  88. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/evaluation/evaluation_constants.py +0 -0
  89. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/evaluation/evaluation_generator.py +0 -0
  90. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/events/__init__.py +0 -0
  91. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/events/event.py +0 -0
  92. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/examples/__init__.py +0 -0
  93. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/examples/base_example_provider.py +0 -0
  94. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/examples/example.py +0 -0
  95. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/examples/example_util.py +0 -0
  96. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/examples/vertex_ai_example_store.py +0 -0
  97. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/flows/__init__.py +0 -0
  98. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/flows/llm_flows/__init__.py +0 -0
  99. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/flows/llm_flows/_base_llm_processor.py +0 -0
  100. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/flows/llm_flows/_code_execution.py +0 -0
  101. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/flows/llm_flows/_nl_planning.py +0 -0
  102. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/flows/llm_flows/audio_transcriber.py +0 -0
  103. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/flows/llm_flows/auto_flow.py +0 -0
  104. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/flows/llm_flows/basic.py +0 -0
  105. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/flows/llm_flows/identity.py +0 -0
  106. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/flows/llm_flows/single_flow.py +0 -0
  107. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/memory/__init__.py +0 -0
  108. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/memory/base_memory_service.py +0 -0
  109. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/memory/in_memory_memory_service.py +0 -0
  110. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/memory/vertex_ai_rag_memory_service.py +0 -0
  111. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/models/__init__.py +0 -0
  112. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/models/anthropic_llm.py +0 -0
  113. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/models/base_llm.py +0 -0
  114. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/models/base_llm_connection.py +0 -0
  115. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/models/google_llm.py +0 -0
  116. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/models/lite_llm.py +0 -0
  117. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/models/llm_request.py +0 -0
  118. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/models/registry.py +0 -0
  119. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/planners/__init__.py +0 -0
  120. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/planners/base_planner.py +0 -0
  121. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/planners/plan_re_act_planner.py +0 -0
  122. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/runners.py +0 -0
  123. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/sessions/__init__.py +0 -0
  124. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/sessions/base_session_service.py +0 -0
  125. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/sessions/in_memory_session_service.py +0 -0
  126. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/sessions/session.py +0 -0
  127. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/telemetry.py +0 -0
  128. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/__init__.py +0 -0
  129. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/_automatic_function_calling_util.py +0 -0
  130. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/apihub_tool/__init__.py +0 -0
  131. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/apihub_tool/apihub_toolset.py +0 -0
  132. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/apihub_tool/clients/__init__.py +0 -0
  133. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/apihub_tool/clients/apihub_client.py +0 -0
  134. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/apihub_tool/clients/secret_client.py +0 -0
  135. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/application_integration_tool/clients/integration_client.py +0 -0
  136. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/base_tool.py +0 -0
  137. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/built_in_code_execution_tool.py +0 -0
  138. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/crewai_tool.py +0 -0
  139. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/example_tool.py +0 -0
  140. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/exit_loop_tool.py +0 -0
  141. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/function_parameter_parse_util.py +0 -0
  142. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/get_user_choice_tool.py +0 -0
  143. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/google_api_tool/__init__.py +0 -0
  144. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/google_api_tool/google_api_tool.py +0 -0
  145. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/google_api_tool/google_api_tool_sets.py +0 -0
  146. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/google_api_tool/googleapi_to_openapi_converter.py +0 -0
  147. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/google_search_tool.py +0 -0
  148. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/langchain_tool.py +0 -0
  149. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/load_memory_tool.py +0 -0
  150. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/load_web_page.py +0 -0
  151. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/long_running_tool.py +0 -0
  152. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/mcp_tool/__init__.py +0 -0
  153. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/mcp_tool/conversion_utils.py +0 -0
  154. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/mcp_tool/mcp_session_manager.py +0 -0
  155. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/mcp_tool/mcp_tool.py +0 -0
  156. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/mcp_tool/mcp_toolset.py +0 -0
  157. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/openapi_tool/__init__.py +0 -0
  158. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/openapi_tool/auth/__init__.py +0 -0
  159. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/openapi_tool/auth/auth_helpers.py +0 -0
  160. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/openapi_tool/auth/credential_exchangers/__init__.py +0 -0
  161. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.py +0 -0
  162. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/openapi_tool/auth/credential_exchangers/base_credential_exchanger.py +0 -0
  163. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.py +0 -0
  164. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/openapi_tool/common/__init__.py +0 -0
  165. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/openapi_tool/common/common.py +0 -0
  166. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/openapi_tool/openapi_spec_parser/__init__.py +0 -0
  167. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.py +0 -0
  168. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.py +0 -0
  169. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/preload_memory_tool.py +0 -0
  170. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/retrieval/__init__.py +0 -0
  171. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/retrieval/base_retrieval_tool.py +0 -0
  172. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/retrieval/files_retrieval.py +0 -0
  173. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/retrieval/llama_index_retrieval.py +0 -0
  174. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/retrieval/vertex_ai_rag_retrieval.py +0 -0
  175. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/tool_context.py +0 -0
  176. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/toolbox_tool.py +0 -0
  177. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/transfer_to_agent_tool.py +0 -0
  178. {google_adk-0.2.0 → google_adk-0.4.0}/src/google/adk/tools/vertex_ai_search_tool.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: google-adk
3
- Version: 0.2.0
3
+ Version: 0.4.0
4
4
  Summary: Agent Development Kit
5
5
  Author-email: Google LLC <googleapis-packages@google.com>
6
6
  Requires-Python: >=3.9
@@ -27,7 +27,7 @@ Requires-Dist: google-cloud-aiplatform>=1.87.0
27
27
  Requires-Dist: google-cloud-secret-manager>=2.22.0
28
28
  Requires-Dist: google-cloud-speech>=2.30.0
29
29
  Requires-Dist: google-cloud-storage>=2.18.0, <3.0.0
30
- Requires-Dist: google-genai>=1.9.0
30
+ Requires-Dist: google-genai>=1.11.0
31
31
  Requires-Dist: graphviz>=0.20.2
32
32
  Requires-Dist: mcp>=1.5.0;python_version>='3.10'
33
33
  Requires-Dist: opentelemetry-api>=1.31.0
@@ -99,11 +99,7 @@ Provides-Extra: test
99
99
  </h3>
100
100
  </html>
101
101
 
102
- Agent Development Kit (ADK) is designed for developers seeking fine-grained
103
- control and flexibility when building advanced AI agents that are tightly
104
- integrated with services in Google Cloud. It allows you to define agent
105
- behavior, orchestration, and tool use directly in code, enabling robust
106
- debugging, versioning, and deployment anywhere – from your laptop to the cloud.
102
+ Agent Development Kit (ADK) is a flexible and modular framework for developing and deploying AI agents. While optimized for Gemini and the Google ecosystem, ADK is model-agnostic, deployment-agnostic, and is built for compatibility with other frameworks. ADK was designed to make agent development feel more like software development, to make it easier for developers to create, deploy, and orchestrate agentic architectures that range from simple tasks to complex workflows.
107
103
 
108
104
 
109
105
  ---
@@ -126,12 +122,27 @@ debugging, versioning, and deployment anywhere – from your laptop to the cloud
126
122
 
127
123
  ## 🚀 Installation
128
124
 
129
- You can install the ADK using `pip`:
125
+ ### Stable Release (Recommended)
126
+
127
+ You can install the latest stable version of ADK using `pip`:
130
128
 
131
129
  ```bash
132
130
  pip install google-adk
133
131
  ```
134
132
 
133
+ The release cadence is weekly.
134
+
135
+ This version is recommended for most users as it represents the most recent official release.
136
+
137
+ ### Development Version
138
+ Bug fixes and new features are merged into the main branch on GitHub first. If you need access to changes that haven't been included in an official PyPI release yet, you can install directly from the main branch:
139
+
140
+ ```bash
141
+ pip install git+https://github.com/google/adk-python.git@main
142
+ ```
143
+
144
+ Note: The development version is built directly from the latest code commits. While it includes the newest fixes and features, it may also contain experimental changes or bugs not present in the stable release. Use it primarily for testing upcoming changes or accessing critical fixes before they are officially released.
145
+
135
146
  ## 📚 Documentation
136
147
 
137
148
  Explore the full documentation for detailed guides on building, evaluating, and
@@ -193,10 +204,18 @@ adk eval \
193
204
  samples_for_testing/hello_world/hello_world_eval_set_001.evalset.json
194
205
  ```
195
206
 
207
+ ## 🤖 A2A and ADK integration
208
+
209
+ For remote agent-to-agent communication, ADK integrates with the
210
+ [A2A protocol](https://github.com/google/A2A/).
211
+ See this [example](https://github.com/google/A2A/tree/main/samples/python/agents/google_adk)
212
+ for how they can work together.
196
213
 
197
214
  ## 🤝 Contributing
198
215
 
199
- We welcome contributions from the community! Whether it's bug reports, feature requests, documentation improvements, or code contributions, please see our [**Contributing Guidelines**](./CONTRIBUTING.md) to get started.
216
+ We welcome contributions from the community! Whether it's bug reports, feature requests, documentation improvements, or code contributions, please see our
217
+ - [General contribution guideline and flow](https://google.github.io/adk-docs/contributing-guide/#questions).
218
+ - Then if you want to contribute code, please read [Code Contributing Guidelines](./CONTRIBUTING.md) to get started.
200
219
 
201
220
  ## 📄 License
202
221
 
@@ -18,11 +18,7 @@
18
18
  </h3>
19
19
  </html>
20
20
 
21
- Agent Development Kit (ADK) is designed for developers seeking fine-grained
22
- control and flexibility when building advanced AI agents that are tightly
23
- integrated with services in Google Cloud. It allows you to define agent
24
- behavior, orchestration, and tool use directly in code, enabling robust
25
- debugging, versioning, and deployment anywhere – from your laptop to the cloud.
21
+ Agent Development Kit (ADK) is a flexible and modular framework for developing and deploying AI agents. While optimized for Gemini and the Google ecosystem, ADK is model-agnostic, deployment-agnostic, and is built for compatibility with other frameworks. ADK was designed to make agent development feel more like software development, to make it easier for developers to create, deploy, and orchestrate agentic architectures that range from simple tasks to complex workflows.
26
22
 
27
23
 
28
24
  ---
@@ -45,12 +41,27 @@ debugging, versioning, and deployment anywhere – from your laptop to the cloud
45
41
 
46
42
  ## 🚀 Installation
47
43
 
48
- You can install the ADK using `pip`:
44
+ ### Stable Release (Recommended)
45
+
46
+ You can install the latest stable version of ADK using `pip`:
49
47
 
50
48
  ```bash
51
49
  pip install google-adk
52
50
  ```
53
51
 
52
+ The release cadence is weekly.
53
+
54
+ This version is recommended for most users as it represents the most recent official release.
55
+
56
+ ### Development Version
57
+ Bug fixes and new features are merged into the main branch on GitHub first. If you need access to changes that haven't been included in an official PyPI release yet, you can install directly from the main branch:
58
+
59
+ ```bash
60
+ pip install git+https://github.com/google/adk-python.git@main
61
+ ```
62
+
63
+ Note: The development version is built directly from the latest code commits. While it includes the newest fixes and features, it may also contain experimental changes or bugs not present in the stable release. Use it primarily for testing upcoming changes or accessing critical fixes before they are officially released.
64
+
54
65
  ## 📚 Documentation
55
66
 
56
67
  Explore the full documentation for detailed guides on building, evaluating, and
@@ -112,10 +123,18 @@ adk eval \
112
123
  samples_for_testing/hello_world/hello_world_eval_set_001.evalset.json
113
124
  ```
114
125
 
126
+ ## 🤖 A2A and ADK integration
127
+
128
+ For remote agent-to-agent communication, ADK integrates with the
129
+ [A2A protocol](https://github.com/google/A2A/).
130
+ See this [example](https://github.com/google/A2A/tree/main/samples/python/agents/google_adk)
131
+ for how they can work together.
115
132
 
116
133
  ## 🤝 Contributing
117
134
 
118
- We welcome contributions from the community! Whether it's bug reports, feature requests, documentation improvements, or code contributions, please see our [**Contributing Guidelines**](./CONTRIBUTING.md) to get started.
135
+ We welcome contributions from the community! Whether it's bug reports, feature requests, documentation improvements, or code contributions, please see our
136
+ - [General contribution guideline and flow](https://google.github.io/adk-docs/contributing-guide/#questions).
137
+ - Then if you want to contribute code, please read [Code Contributing Guidelines](./CONTRIBUTING.md) to get started.
119
138
 
120
139
  ## 📄 License
121
140
 
@@ -33,7 +33,7 @@ dependencies = [
33
33
  "google-cloud-secret-manager>=2.22.0", # Fetching secrets in RestAPI Tool
34
34
  "google-cloud-speech>=2.30.0", # For Audo Transcription
35
35
  "google-cloud-storage>=2.18.0, <3.0.0", # For GCS Artifact service
36
- "google-genai>=1.9.0", # Google GenAI SDK
36
+ "google-genai>=1.11.0", # Google GenAI SDK
37
37
  "graphviz>=0.20.2", # Graphviz for graph rendering
38
38
  "mcp>=1.5.0;python_version>='3.10'", # For MCP Toolset
39
39
  "opentelemetry-api>=1.31.0", # OpenTelemetry
@@ -119,6 +119,15 @@ line-length = 80
119
119
  unstable = true
120
120
  pyink-indentation = 2
121
121
  pyink-use-majority-quotes = true
122
+ pyink-annotation-pragmas = [
123
+ "noqa",
124
+ "pylint:",
125
+ "type: ignore",
126
+ "pytype:",
127
+ "mypy:",
128
+ "pyright:",
129
+ "pyre-",
130
+ ]
122
131
 
123
132
 
124
133
  [build-system]
@@ -135,15 +144,10 @@ exclude = ['src/**/*.sh']
135
144
  name = "google.adk"
136
145
 
137
146
  [tool.isort]
138
- # Organize imports following Google style-guide
139
- force_single_line = true
140
- force_sort_within_sections = true
141
- honor_case_in_force_sorted_sections = true
142
- order_by_type = false
143
- sort_relative_in_force_sorted_sections = true
144
- multi_line_output = 3
145
- line_length = 200
147
+ profile = "google"
148
+
146
149
 
147
150
  [tool.pytest.ini_options]
148
151
  testpaths = ["tests"]
149
152
  asyncio_default_fixture_loop_scope = "function"
153
+ asyncio_mode = "auto"
@@ -44,7 +44,7 @@ Args:
44
44
  callback_context: MUST be named 'callback_context' (enforced).
45
45
 
46
46
  Returns:
47
- The content to return to the user. When set, the agent run will skipped and
47
+ The content to return to the user. When set, the agent run will be skipped and
48
48
  the provided content will be returned to user.
49
49
  """
50
50
 
@@ -55,8 +55,8 @@ Args:
55
55
  callback_context: MUST be named 'callback_context' (enforced).
56
56
 
57
57
  Returns:
58
- The content to return to the user. When set, the agent run will skipped and
59
- the provided content will be appended to event history as agent response.
58
+ The content to return to the user. When set, the provided content will be
59
+ appended to event history as agent response.
60
60
  """
61
61
 
62
62
 
@@ -101,8 +101,8 @@ class BaseAgent(BaseModel):
101
101
  callback_context: MUST be named 'callback_context' (enforced).
102
102
 
103
103
  Returns:
104
- The content to return to the user. When set, the agent run will skipped and
105
- the provided content will be returned to user.
104
+ The content to return to the user. When set, the agent run will be skipped
105
+ and the provided content will be returned to user.
106
106
  """
107
107
  after_agent_callback: Optional[AfterAgentCallback] = None
108
108
  """Callback signature that is invoked after the agent run.
@@ -111,8 +111,8 @@ class BaseAgent(BaseModel):
111
111
  callback_context: MUST be named 'callback_context' (enforced).
112
112
 
113
113
  Returns:
114
- The content to return to the user. When set, the agent run will skipped and
115
- the provided content will be appended to event history as agent response.
114
+ The content to return to the user. When set, the provided content will be
115
+ appended to event history as agent response.
116
116
  """
117
117
 
118
118
  @final
@@ -23,7 +23,6 @@ from .readonly_context import ReadonlyContext
23
23
  if TYPE_CHECKING:
24
24
  from google.genai import types
25
25
 
26
- from ..events.event import Event
27
26
  from ..events.event_actions import EventActions
28
27
  from ..sessions.state import State
29
28
  from .invocation_context import InvocationContext
@@ -15,12 +15,7 @@
15
15
  from __future__ import annotations
16
16
 
17
17
  import logging
18
- from typing import Any
19
- from typing import AsyncGenerator
20
- from typing import Callable
21
- from typing import Literal
22
- from typing import Optional
23
- from typing import Union
18
+ from typing import Any, AsyncGenerator, Awaitable, Callable, Literal, Optional, Union
24
19
 
25
20
  from google.genai import types
26
21
  from pydantic import BaseModel
@@ -62,11 +57,11 @@ AfterModelCallback: TypeAlias = Callable[
62
57
  ]
63
58
  BeforeToolCallback: TypeAlias = Callable[
64
59
  [BaseTool, dict[str, Any], ToolContext],
65
- Optional[dict],
60
+ Union[Awaitable[Optional[dict]], Optional[dict]],
66
61
  ]
67
62
  AfterToolCallback: TypeAlias = Callable[
68
63
  [BaseTool, dict[str, Any], ToolContext, dict],
69
- Optional[dict],
64
+ Union[Awaitable[Optional[dict]], Optional[dict]],
70
65
  ]
71
66
 
72
67
  InstructionProvider: TypeAlias = Callable[[ReadonlyContext], str]
@@ -66,7 +66,8 @@ class OAuth2Auth(BaseModelWithConfig):
66
66
  redirect_uri: Optional[str] = None
67
67
  auth_response_uri: Optional[str] = None
68
68
  auth_code: Optional[str] = None
69
- token: Optional[Dict[str, Any]] = None
69
+ access_token: Optional[str] = None
70
+ refresh_token: Optional[str] = None
70
71
 
71
72
 
72
73
  class ServiceAccountCredential(BaseModelWithConfig):
@@ -82,7 +82,8 @@ class AuthHandler:
82
82
  or not auth_credential.oauth2
83
83
  or not auth_credential.oauth2.client_id
84
84
  or not auth_credential.oauth2.client_secret
85
- or auth_credential.oauth2.token
85
+ or auth_credential.oauth2.access_token
86
+ or auth_credential.oauth2.refresh_token
86
87
  ):
87
88
  return self.auth_config.exchanged_auth_credential
88
89
 
@@ -93,7 +94,7 @@ class AuthHandler:
93
94
  redirect_uri=auth_credential.oauth2.redirect_uri,
94
95
  state=auth_credential.oauth2.state,
95
96
  )
96
- token = client.fetch_token(
97
+ tokens = client.fetch_token(
97
98
  token_endpoint,
98
99
  authorization_response=auth_credential.oauth2.auth_response_uri,
99
100
  code=auth_credential.oauth2.auth_code,
@@ -102,7 +103,10 @@ class AuthHandler:
102
103
 
103
104
  updated_credential = AuthCredential(
104
105
  auth_type=AuthCredentialTypes.OAUTH2,
105
- oauth2=OAuth2Auth(token=dict(token)),
106
+ oauth2=OAuth2Auth(
107
+ access_token=tokens.get("access_token"),
108
+ refresh_token=tokens.get("refresh_token"),
109
+ ),
106
110
  )
107
111
  return updated_credential
108
112
 
@@ -29,5 +29,5 @@
29
29
  <style>html{color-scheme:dark}html{--mat-sys-background:light-dark(#fcf9f8, #131314);--mat-sys-error:light-dark(#ba1a1a, #ffb4ab);--mat-sys-error-container:light-dark(#ffdad6, #93000a);--mat-sys-inverse-on-surface:light-dark(#f3f0f0, #313030);--mat-sys-inverse-primary:light-dark(#c1c7cd, #595f65);--mat-sys-inverse-surface:light-dark(#313030, #e5e2e2);--mat-sys-on-background:light-dark(#1c1b1c, #e5e2e2);--mat-sys-on-error:light-dark(#ffffff, #690005);--mat-sys-on-error-container:light-dark(#410002, #ffdad6);--mat-sys-on-primary:light-dark(#ffffff, #2b3136);--mat-sys-on-primary-container:light-dark(#161c21, #dde3e9);--mat-sys-on-primary-fixed:light-dark(#161c21, #161c21);--mat-sys-on-primary-fixed-variant:light-dark(#41474d, #41474d);--mat-sys-on-secondary:light-dark(#ffffff, #003061);--mat-sys-on-secondary-container:light-dark(#001b3c, #d5e3ff);--mat-sys-on-secondary-fixed:light-dark(#001b3c, #001b3c);--mat-sys-on-secondary-fixed-variant:light-dark(#0f4784, #0f4784);--mat-sys-on-surface:light-dark(#1c1b1c, #e5e2e2);--mat-sys-on-surface-variant:light-dark(#44474a, #e1e2e6);--mat-sys-on-tertiary:light-dark(#ffffff, #2b3136);--mat-sys-on-tertiary-container:light-dark(#161c21, #dde3e9);--mat-sys-on-tertiary-fixed:light-dark(#161c21, #161c21);--mat-sys-on-tertiary-fixed-variant:light-dark(#41474d, #41474d);--mat-sys-outline:light-dark(#74777b, #8e9194);--mat-sys-outline-variant:light-dark(#c4c7ca, #44474a);--mat-sys-primary:light-dark(#595f65, #c1c7cd);--mat-sys-primary-container:light-dark(#dde3e9, #41474d);--mat-sys-primary-fixed:light-dark(#dde3e9, #dde3e9);--mat-sys-primary-fixed-dim:light-dark(#c1c7cd, #c1c7cd);--mat-sys-scrim:light-dark(#000000, #000000);--mat-sys-secondary:light-dark(#305f9d, #a7c8ff);--mat-sys-secondary-container:light-dark(#d5e3ff, #0f4784);--mat-sys-secondary-fixed:light-dark(#d5e3ff, #d5e3ff);--mat-sys-secondary-fixed-dim:light-dark(#a7c8ff, #a7c8ff);--mat-sys-shadow:light-dark(#000000, #000000);--mat-sys-surface:light-dark(#fcf9f8, #131314);--mat-sys-surface-bright:light-dark(#fcf9f8, #393939);--mat-sys-surface-container:light-dark(#f0eded, #201f20);--mat-sys-surface-container-high:light-dark(#eae7e7, #2a2a2a);--mat-sys-surface-container-highest:light-dark(#e5e2e2, #393939);--mat-sys-surface-container-low:light-dark(#f6f3f3, #1c1b1c);--mat-sys-surface-container-lowest:light-dark(#ffffff, #0e0e0e);--mat-sys-surface-dim:light-dark(#dcd9d9, #131314);--mat-sys-surface-tint:light-dark(#595f65, #c1c7cd);--mat-sys-surface-variant:light-dark(#e1e2e6, #44474a);--mat-sys-tertiary:light-dark(#595f65, #c1c7cd);--mat-sys-tertiary-container:light-dark(#dde3e9, #41474d);--mat-sys-tertiary-fixed:light-dark(#dde3e9, #dde3e9);--mat-sys-tertiary-fixed-dim:light-dark(#c1c7cd, #c1c7cd);--mat-sys-neutral-variant20:#2d3134;--mat-sys-neutral10:#1c1b1c}html{--mat-sys-level0:0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level1:0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level2:0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level3:0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level4:0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-sys-level5:0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12)}html{--mat-sys-corner-extra-large:28px;--mat-sys-corner-extra-large-top:28px 28px 0 0;--mat-sys-corner-extra-small:4px;--mat-sys-corner-extra-small-top:4px 4px 0 0;--mat-sys-corner-full:9999px;--mat-sys-corner-large:16px;--mat-sys-corner-large-end:0 16px 16px 0;--mat-sys-corner-large-start:16px 0 0 16px;--mat-sys-corner-large-top:16px 16px 0 0;--mat-sys-corner-medium:12px;--mat-sys-corner-none:0;--mat-sys-corner-small:8px}html{--mat-sys-dragged-state-layer-opacity:.16;--mat-sys-focus-state-layer-opacity:.12;--mat-sys-hover-state-layer-opacity:.08;--mat-sys-pressed-state-layer-opacity:.12}html{font-family:Google Sans,Helvetica Neue,sans-serif!important}body{height:100vh;margin:0}:root{--mat-sys-primary:black;--mdc-checkbox-selected-icon-color:white;--mat-sys-background:#131314;--mat-tab-header-active-label-text-color:#8AB4F8;--mat-tab-header-active-hover-label-text-color:#8AB4F8;--mat-tab-header-active-focus-label-text-color:#8AB4F8;--mat-tab-header-label-text-weight:500;--mdc-text-button-label-text-color:#89b4f8}:root{--mdc-dialog-container-color:#2b2b2f}:root{--mdc-dialog-subhead-color:white}:root{--mdc-circular-progress-active-indicator-color:#a8c7fa}:root{--mdc-circular-progress-size:80}</style><link rel="stylesheet" href="styles-4VDSPQ37.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-4VDSPQ37.css"></noscript></head>
30
30
  <body>
31
31
  <app-root></app-root>
32
- <script src="polyfills-FFHMD2TL.js" type="module"></script><script src="main-ZBO76GRM.js" type="module"></script></body>
32
+ <script src="polyfills-FFHMD2TL.js" type="module"></script><script src="main-HWIBUY2R.js" type="module"></script></body>
33
33
  </html>