google-adk 0.1.1__tar.gz → 0.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. google_adk-0.3.0/PKG-INFO +235 -0
  2. google_adk-0.3.0/README.md +153 -0
  3. {google_adk-0.1.1 → google_adk-0.3.0}/pyproject.toml +5 -1
  4. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/agents/base_agent.py +4 -4
  5. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/agents/callback_context.py +0 -1
  6. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/agents/invocation_context.py +1 -1
  7. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/agents/remote_agent.py +1 -1
  8. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/agents/run_config.py +1 -1
  9. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/auth/auth_credential.py +2 -1
  10. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/auth/auth_handler.py +7 -3
  11. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/auth/auth_preprocessor.py +2 -2
  12. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/auth/auth_tool.py +1 -1
  13. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/cli/browser/index.html +2 -2
  14. google_adk-0.1.1/src/google/adk/cli/browser/main-SLIAU2JL.js → google_adk-0.3.0/src/google/adk/cli/browser/main-HWIBUY2R.js +69 -69
  15. google_adk-0.3.0/src/google/adk/cli/cli_create.py +279 -0
  16. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/cli/cli_deploy.py +10 -1
  17. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/cli/cli_eval.py +3 -3
  18. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/cli/cli_tools_click.py +95 -19
  19. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/cli/fast_api.py +57 -16
  20. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/cli/utils/envs.py +0 -3
  21. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/cli/utils/evals.py +2 -2
  22. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/evaluation/agent_evaluator.py +2 -2
  23. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/evaluation/evaluation_generator.py +4 -4
  24. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/evaluation/response_evaluator.py +17 -5
  25. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/evaluation/trajectory_evaluator.py +4 -5
  26. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/events/event.py +3 -3
  27. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/flows/llm_flows/_nl_planning.py +10 -4
  28. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/flows/llm_flows/agent_transfer.py +1 -1
  29. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/flows/llm_flows/base_llm_flow.py +1 -1
  30. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/flows/llm_flows/contents.py +2 -2
  31. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/flows/llm_flows/functions.py +1 -3
  32. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/flows/llm_flows/instructions.py +2 -2
  33. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/models/gemini_llm_connection.py +2 -2
  34. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/models/lite_llm.py +51 -34
  35. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/models/llm_response.py +10 -1
  36. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/planners/built_in_planner.py +1 -0
  37. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/planners/plan_re_act_planner.py +2 -2
  38. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/runners.py +1 -1
  39. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/sessions/database_session_service.py +91 -26
  40. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/sessions/state.py +2 -2
  41. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/telemetry.py +2 -2
  42. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/agent_tool.py +2 -3
  43. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/application_integration_tool/clients/integration_client.py +3 -2
  44. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/base_tool.py +1 -1
  45. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/function_parameter_parse_util.py +2 -2
  46. google_adk-0.3.0/src/google/adk/tools/google_api_tool/__init__.py +87 -0
  47. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/google_api_tool/google_api_tool_set.py +12 -9
  48. google_adk-0.3.0/src/google/adk/tools/google_api_tool/google_api_tool_sets.py +112 -0
  49. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/google_api_tool/googleapi_to_openapi_converter.py +3 -1
  50. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/load_artifacts_tool.py +1 -1
  51. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/load_memory_tool.py +25 -2
  52. google_adk-0.3.0/src/google/adk/tools/mcp_tool/mcp_session_manager.py +176 -0
  53. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/mcp_tool/mcp_tool.py +15 -2
  54. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/mcp_tool/mcp_toolset.py +31 -37
  55. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.py +4 -4
  56. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/openapi_tool/openapi_spec_parser/openapi_toolset.py +1 -1
  57. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/openapi_tool/openapi_spec_parser/operation_parser.py +5 -12
  58. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/openapi_tool/openapi_spec_parser/rest_api_tool.py +47 -9
  59. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/toolbox_tool.py +1 -1
  60. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/version.py +1 -1
  61. google_adk-0.1.1/PKG-INFO +0 -181
  62. google_adk-0.1.1/README.md +0 -103
  63. google_adk-0.1.1/src/google/adk/tools/google_api_tool/__init__.py +0 -14
  64. google_adk-0.1.1/src/google/adk/tools/google_api_tool/google_api_tool_sets.py +0 -55
  65. {google_adk-0.1.1 → google_adk-0.3.0}/LICENSE +0 -0
  66. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/__init__.py +0 -0
  67. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/agents/__init__.py +0 -0
  68. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/agents/active_streaming_tool.py +0 -0
  69. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/agents/langgraph_agent.py +0 -0
  70. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/agents/live_request_queue.py +0 -0
  71. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/agents/llm_agent.py +0 -0
  72. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/agents/loop_agent.py +0 -0
  73. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/agents/parallel_agent.py +0 -0
  74. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/agents/readonly_context.py +0 -0
  75. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/agents/sequential_agent.py +0 -0
  76. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/agents/transcription_entry.py +0 -0
  77. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/artifacts/__init__.py +0 -0
  78. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/artifacts/base_artifact_service.py +0 -0
  79. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/artifacts/gcs_artifact_service.py +0 -0
  80. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/artifacts/in_memory_artifact_service.py +0 -0
  81. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/auth/__init__.py +0 -0
  82. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/auth/auth_schemes.py +0 -0
  83. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/cli/__init__.py +0 -0
  84. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/cli/__main__.py +0 -0
  85. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/cli/agent_graph.py +0 -0
  86. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/cli/browser/adk_favicon.svg +0 -0
  87. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/cli/browser/assets/audio-processor.js +0 -0
  88. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/cli/browser/assets/config/runtime-config.json +0 -0
  89. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/cli/browser/polyfills-FFHMD2TL.js +0 -0
  90. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/cli/browser/styles-4VDSPQ37.css +0 -0
  91. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/cli/cli.py +0 -0
  92. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/cli/utils/__init__.py +0 -0
  93. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/cli/utils/logs.py +0 -0
  94. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/code_executors/__init__.py +0 -0
  95. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/code_executors/base_code_executor.py +0 -0
  96. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/code_executors/code_execution_utils.py +0 -0
  97. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/code_executors/code_executor_context.py +0 -0
  98. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/code_executors/container_code_executor.py +0 -0
  99. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/code_executors/unsafe_local_code_executor.py +0 -0
  100. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/code_executors/vertex_ai_code_executor.py +0 -0
  101. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/evaluation/__init__.py +0 -0
  102. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/evaluation/evaluation_constants.py +0 -0
  103. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/events/__init__.py +0 -0
  104. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/events/event_actions.py +0 -0
  105. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/examples/__init__.py +0 -0
  106. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/examples/base_example_provider.py +0 -0
  107. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/examples/example.py +0 -0
  108. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/examples/example_util.py +0 -0
  109. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/examples/vertex_ai_example_store.py +0 -0
  110. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/flows/__init__.py +0 -0
  111. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/flows/llm_flows/__init__.py +0 -0
  112. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/flows/llm_flows/_base_llm_processor.py +0 -0
  113. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/flows/llm_flows/_code_execution.py +0 -0
  114. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/flows/llm_flows/audio_transcriber.py +0 -0
  115. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/flows/llm_flows/auto_flow.py +0 -0
  116. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/flows/llm_flows/basic.py +0 -0
  117. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/flows/llm_flows/identity.py +0 -0
  118. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/flows/llm_flows/single_flow.py +0 -0
  119. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/memory/__init__.py +0 -0
  120. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/memory/base_memory_service.py +0 -0
  121. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/memory/in_memory_memory_service.py +0 -0
  122. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/memory/vertex_ai_rag_memory_service.py +0 -0
  123. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/models/__init__.py +0 -0
  124. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/models/anthropic_llm.py +0 -0
  125. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/models/base_llm.py +0 -0
  126. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/models/base_llm_connection.py +0 -0
  127. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/models/google_llm.py +0 -0
  128. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/models/llm_request.py +0 -0
  129. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/models/registry.py +0 -0
  130. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/planners/__init__.py +0 -0
  131. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/planners/base_planner.py +0 -0
  132. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/sessions/__init__.py +0 -0
  133. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/sessions/base_session_service.py +0 -0
  134. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/sessions/in_memory_session_service.py +0 -0
  135. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/sessions/session.py +0 -0
  136. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/sessions/vertex_ai_session_service.py +0 -0
  137. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/__init__.py +0 -0
  138. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/_automatic_function_calling_util.py +0 -0
  139. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/apihub_tool/__init__.py +0 -0
  140. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/apihub_tool/apihub_toolset.py +0 -0
  141. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/apihub_tool/clients/__init__.py +0 -0
  142. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/apihub_tool/clients/apihub_client.py +0 -0
  143. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/apihub_tool/clients/secret_client.py +0 -0
  144. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/application_integration_tool/__init__.py +0 -0
  145. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/application_integration_tool/application_integration_toolset.py +0 -0
  146. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/application_integration_tool/clients/connections_client.py +0 -0
  147. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/built_in_code_execution_tool.py +0 -0
  148. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/crewai_tool.py +0 -0
  149. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/example_tool.py +0 -0
  150. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/exit_loop_tool.py +0 -0
  151. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/function_tool.py +0 -0
  152. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/get_user_choice_tool.py +0 -0
  153. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/google_api_tool/google_api_tool.py +0 -0
  154. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/google_search_tool.py +0 -0
  155. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/langchain_tool.py +0 -0
  156. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/load_web_page.py +0 -0
  157. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/long_running_tool.py +0 -0
  158. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/mcp_tool/__init__.py +0 -0
  159. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/mcp_tool/conversion_utils.py +0 -0
  160. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/openapi_tool/__init__.py +0 -0
  161. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/openapi_tool/auth/__init__.py +0 -0
  162. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/openapi_tool/auth/auth_helpers.py +0 -0
  163. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/openapi_tool/auth/credential_exchangers/__init__.py +0 -0
  164. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.py +0 -0
  165. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/openapi_tool/auth/credential_exchangers/base_credential_exchanger.py +0 -0
  166. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.py +0 -0
  167. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/openapi_tool/common/__init__.py +0 -0
  168. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/openapi_tool/common/common.py +0 -0
  169. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/openapi_tool/openapi_spec_parser/__init__.py +0 -0
  170. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.py +0 -0
  171. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.py +0 -0
  172. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/preload_memory_tool.py +0 -0
  173. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/retrieval/__init__.py +0 -0
  174. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/retrieval/base_retrieval_tool.py +0 -0
  175. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/retrieval/files_retrieval.py +0 -0
  176. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/retrieval/llama_index_retrieval.py +0 -0
  177. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/retrieval/vertex_ai_rag_retrieval.py +0 -0
  178. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/tool_context.py +0 -0
  179. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/transfer_to_agent_tool.py +0 -0
  180. {google_adk-0.1.1 → google_adk-0.3.0}/src/google/adk/tools/vertex_ai_search_tool.py +0 -0
@@ -0,0 +1,235 @@
1
+ Metadata-Version: 2.4
2
+ Name: google-adk
3
+ Version: 0.3.0
4
+ Summary: Agent Development Kit
5
+ Author-email: Google LLC <googleapis-packages@google.com>
6
+ Requires-Python: >=3.9
7
+ Description-Content-Type: text/markdown
8
+ Classifier: Typing :: Typed
9
+ Classifier: Intended Audience :: Developers
10
+ Classifier: Intended Audience :: Science/Research
11
+ Classifier: Programming Language :: Python
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.9
14
+ Classifier: Programming Language :: Python :: 3.13
15
+ Classifier: Programming Language :: Python :: 3.12
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Operating System :: OS Independent
19
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
20
+ Classifier: License :: OSI Approved :: Apache Software License
21
+ License-File: LICENSE
22
+ Requires-Dist: authlib>=1.5.1
23
+ Requires-Dist: click>=8.1.8
24
+ Requires-Dist: fastapi>=0.115.0
25
+ Requires-Dist: google-api-python-client>=2.157.0
26
+ Requires-Dist: google-cloud-aiplatform>=1.87.0
27
+ Requires-Dist: google-cloud-secret-manager>=2.22.0
28
+ Requires-Dist: google-cloud-speech>=2.30.0
29
+ Requires-Dist: google-cloud-storage>=2.18.0, <3.0.0
30
+ Requires-Dist: google-genai>=1.11.0
31
+ Requires-Dist: graphviz>=0.20.2
32
+ Requires-Dist: mcp>=1.5.0;python_version>='3.10'
33
+ Requires-Dist: opentelemetry-api>=1.31.0
34
+ Requires-Dist: opentelemetry-exporter-gcp-trace>=1.9.0
35
+ Requires-Dist: opentelemetry-sdk>=1.31.0
36
+ Requires-Dist: pydantic>=2.0, <3.0.0
37
+ Requires-Dist: python-dotenv>=1.0.0
38
+ Requires-Dist: PyYAML>=6.0.2
39
+ Requires-Dist: sqlalchemy>=2.0
40
+ Requires-Dist: tzlocal>=5.3
41
+ Requires-Dist: uvicorn>=0.34.0
42
+ Requires-Dist: flit>=3.10.0 ; extra == "dev"
43
+ Requires-Dist: isort>=6.0.0 ; extra == "dev"
44
+ Requires-Dist: pyink>=24.10.0 ; extra == "dev"
45
+ Requires-Dist: pylint>=2.6.0 ; extra == "dev"
46
+ Requires-Dist: autodoc_pydantic ; extra == "docs"
47
+ Requires-Dist: furo ; extra == "docs"
48
+ Requires-Dist: myst-parser ; extra == "docs"
49
+ Requires-Dist: sphinx ; extra == "docs"
50
+ Requires-Dist: sphinx-autodoc-typehints ; extra == "docs"
51
+ Requires-Dist: sphinx-rtd-theme ; extra == "docs"
52
+ Requires-Dist: google-cloud-aiplatform[evaluation]>=1.87.0 ; extra == "eval"
53
+ Requires-Dist: pandas>=2.2.3 ; extra == "eval"
54
+ Requires-Dist: tabulate>=0.9.0 ; extra == "eval"
55
+ Requires-Dist: anthropic>=0.43.0 ; extra == "extensions"
56
+ Requires-Dist: beautifulsoup4>=3.2.2 ; extra == "extensions"
57
+ Requires-Dist: crewai[tools] ; extra == "extensions" and (python_version>='3.10')
58
+ Requires-Dist: docker>=7.0.0 ; extra == "extensions"
59
+ Requires-Dist: langgraph>=0.2.60 ; extra == "extensions"
60
+ Requires-Dist: litellm>=1.63.11 ; extra == "extensions"
61
+ Requires-Dist: llama-index-readers-file>=0.4.0 ; extra == "extensions"
62
+ Requires-Dist: lxml>=5.3.0 ; extra == "extensions"
63
+ Requires-Dist: anthropic>=0.43.0 ; extra == "test"
64
+ Requires-Dist: langchain-community>=0.3.17 ; extra == "test"
65
+ Requires-Dist: langgraph>=0.2.60 ; extra == "test"
66
+ Requires-Dist: litellm>=1.63.11 ; extra == "test"
67
+ Requires-Dist: llama-index-readers-file>=0.4.0 ; extra == "test"
68
+ Requires-Dist: pytest-asyncio>=0.25.0 ; extra == "test"
69
+ Requires-Dist: pytest-mock>=3.14.0 ; extra == "test"
70
+ Requires-Dist: pytest-xdist>=3.6.1 ; extra == "test"
71
+ Requires-Dist: pytest>=8.3.4 ; extra == "test"
72
+ Project-URL: changelog, https://github.com/google/adk-python/blob/main/CHANGELOG.md
73
+ Project-URL: documentation, https://google.github.io/adk-docs/
74
+ Project-URL: homepage, https://google.github.io/adk-docs/
75
+ Project-URL: repository, https://github.com/google/adk-python
76
+ Provides-Extra: dev
77
+ Provides-Extra: docs
78
+ Provides-Extra: eval
79
+ Provides-Extra: extensions
80
+ Provides-Extra: test
81
+
82
+ # Agent Development Kit (ADK)
83
+
84
+ [![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE)
85
+ [![Python Unit Tests](https://github.com/google/adk-python/actions/workflows/python-unit-tests.yml/badge.svg)](https://github.com/google/adk-python/actions/workflows/python-unit-tests.yml)
86
+ [![r/agentdevelopmentkit](https://img.shields.io/badge/Reddit-r%2Fagentdevelopmentkit-FF4500?style=flat&logo=reddit&logoColor=white)](https://www.reddit.com/r/agentdevelopmentkit/)
87
+
88
+ <html>
89
+ <h2 align="center">
90
+ <img src="https://raw.githubusercontent.com/google/adk-python/main/assets/agent-development-kit.png" width="256"/>
91
+ </h2>
92
+ <h3 align="center">
93
+ An open-source, code-first Python toolkit for building, evaluating, and deploying sophisticated AI agents with flexibility and control.
94
+ </h3>
95
+ <h3 align="center">
96
+ Important Links:
97
+ <a href="https://google.github.io/adk-docs/">Docs</a> &
98
+ <a href="https://github.com/google/adk-samples">Samples</a>.
99
+ </h3>
100
+ </html>
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.
107
+
108
+
109
+ ---
110
+
111
+ ## ✨ Key Features
112
+
113
+ - **Rich Tool Ecosystem**: Utilize pre-built tools, custom functions,
114
+ OpenAPI specs, or integrate existing tools to give agents diverse
115
+ capabilities, all for tight integration with the Google ecosystem.
116
+
117
+ - **Code-First Development**: Define agent logic, tools, and orchestration
118
+ directly in Python for ultimate flexibility, testability, and versioning.
119
+
120
+ - **Modular Multi-Agent Systems**: Design scalable applications by composing
121
+ multiple specialized agents into flexible hierarchies.
122
+
123
+ - **Deploy Anywhere**: Easily containerize and deploy agents on Cloud Run or
124
+ scale seamlessly with Vertex AI Agent Engine.
125
+
126
+
127
+ ## 🚀 Installation
128
+
129
+ ### Stable Release (Recommended)
130
+
131
+ You can install the latest stable version of ADK using `pip`:
132
+
133
+ ```bash
134
+ pip install google-adk
135
+ ```
136
+
137
+ The release cadence is weekly.
138
+
139
+ This version is recommended for most users as it represents the most recent official release.
140
+
141
+ ### Development Version
142
+ 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:
143
+
144
+ ```bash
145
+ pip install git+https://github.com/google/adk-python.git@main
146
+ ```
147
+
148
+ 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.
149
+
150
+ ## 📚 Documentation
151
+
152
+ Explore the full documentation for detailed guides on building, evaluating, and
153
+ deploying agents:
154
+
155
+ * **[Documentation](https://google.github.io/adk-docs)**
156
+
157
+ ## 🏁 Feature Highlight
158
+
159
+ ### Define a single agent:
160
+
161
+ ```python
162
+ from google.adk.agents import Agent
163
+ from google.adk.tools import google_search
164
+
165
+ root_agent = Agent(
166
+ name="search_assistant",
167
+ model="gemini-2.0-flash", # Or your preferred Gemini model
168
+ instruction="You are a helpful assistant. Answer user questions using Google Search when needed.",
169
+ description="An assistant that can search the web.",
170
+ tools=[google_search]
171
+ )
172
+ ```
173
+
174
+ ### Define a multi-agent system:
175
+
176
+ Define a multi-agent system with coordinator agent, greeter agent, and task execution agent. Then ADK engine and the model will guide the agents works together to accomplish the task.
177
+
178
+ ```python
179
+ from google.adk.agents import LlmAgent, BaseAgent
180
+
181
+ # Define individual agents
182
+ greeter = LlmAgent(name="greeter", model="gemini-2.0-flash", ...)
183
+ task_executor = LlmAgent(name="task_executor", model="gemini-2.0-flash", ...)
184
+
185
+ # Create parent agent and assign children via sub_agents
186
+ coordinator = LlmAgent(
187
+ name="Coordinator",
188
+ model="gemini-2.0-flash",
189
+ description="I coordinate greetings and tasks.",
190
+ sub_agents=[ # Assign sub_agents here
191
+ greeter,
192
+ task_executor
193
+ ]
194
+ )
195
+ ```
196
+
197
+ ### Development UI
198
+
199
+ A built-in development UI to help you test, evaluate, debug, and showcase your agent(s).
200
+
201
+ <img src="https://raw.githubusercontent.com/google/adk-python/main/assets/adk-web-dev-ui-function-call.png"/>
202
+
203
+ ### Evaluate Agents
204
+
205
+ ```bash
206
+ adk eval \
207
+ samples_for_testing/hello_world \
208
+ samples_for_testing/hello_world/hello_world_eval_set_001.evalset.json
209
+ ```
210
+
211
+ ## 🤖 A2A and ADK integration
212
+
213
+ For remote agent-to-agent communication, ADK integrates with the
214
+ [A2A protocol](https://github.com/google/A2A/).
215
+ See this [example](https://github.com/google/A2A/tree/main/samples/python/agents/google_adk)
216
+ for how they can work together.
217
+
218
+ ## 🤝 Contributing
219
+
220
+ We welcome contributions from the community! Whether it's bug reports, feature requests, documentation improvements, or code contributions, please see our
221
+ - [General contribution guideline and flow](https://google.github.io/adk-docs/contributing-guide/#questions).
222
+ - Then if you want to contribute code, please read [Code Contributing Guidelines](./CONTRIBUTING.md) to get started.
223
+
224
+ ## 📄 License
225
+
226
+ This project is licensed under the Apache 2.0 License - see the [LICENSE](LICENSE) file for details.
227
+
228
+ ## Preview
229
+
230
+ This feature is subject to the "Pre-GA Offerings Terms" in the General Service Terms section of the [Service Specific Terms](https://cloud.google.com/terms/service-terms#1). Pre-GA features are available "as is" and might have limited support. For more information, see the [launch stage descriptions](https://cloud.google.com/products?hl=en#product-launch-stages).
231
+
232
+ ---
233
+
234
+ *Happy Agent Building!*
235
+
@@ -0,0 +1,153 @@
1
+ # Agent Development Kit (ADK)
2
+
3
+ [![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](LICENSE)
4
+ [![Python Unit Tests](https://github.com/google/adk-python/actions/workflows/python-unit-tests.yml/badge.svg)](https://github.com/google/adk-python/actions/workflows/python-unit-tests.yml)
5
+ [![r/agentdevelopmentkit](https://img.shields.io/badge/Reddit-r%2Fagentdevelopmentkit-FF4500?style=flat&logo=reddit&logoColor=white)](https://www.reddit.com/r/agentdevelopmentkit/)
6
+
7
+ <html>
8
+ <h2 align="center">
9
+ <img src="https://raw.githubusercontent.com/google/adk-python/main/assets/agent-development-kit.png" width="256"/>
10
+ </h2>
11
+ <h3 align="center">
12
+ An open-source, code-first Python toolkit for building, evaluating, and deploying sophisticated AI agents with flexibility and control.
13
+ </h3>
14
+ <h3 align="center">
15
+ Important Links:
16
+ <a href="https://google.github.io/adk-docs/">Docs</a> &
17
+ <a href="https://github.com/google/adk-samples">Samples</a>.
18
+ </h3>
19
+ </html>
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.
26
+
27
+
28
+ ---
29
+
30
+ ## ✨ Key Features
31
+
32
+ - **Rich Tool Ecosystem**: Utilize pre-built tools, custom functions,
33
+ OpenAPI specs, or integrate existing tools to give agents diverse
34
+ capabilities, all for tight integration with the Google ecosystem.
35
+
36
+ - **Code-First Development**: Define agent logic, tools, and orchestration
37
+ directly in Python for ultimate flexibility, testability, and versioning.
38
+
39
+ - **Modular Multi-Agent Systems**: Design scalable applications by composing
40
+ multiple specialized agents into flexible hierarchies.
41
+
42
+ - **Deploy Anywhere**: Easily containerize and deploy agents on Cloud Run or
43
+ scale seamlessly with Vertex AI Agent Engine.
44
+
45
+
46
+ ## 🚀 Installation
47
+
48
+ ### Stable Release (Recommended)
49
+
50
+ You can install the latest stable version of ADK using `pip`:
51
+
52
+ ```bash
53
+ pip install google-adk
54
+ ```
55
+
56
+ The release cadence is weekly.
57
+
58
+ This version is recommended for most users as it represents the most recent official release.
59
+
60
+ ### Development Version
61
+ 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:
62
+
63
+ ```bash
64
+ pip install git+https://github.com/google/adk-python.git@main
65
+ ```
66
+
67
+ 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.
68
+
69
+ ## 📚 Documentation
70
+
71
+ Explore the full documentation for detailed guides on building, evaluating, and
72
+ deploying agents:
73
+
74
+ * **[Documentation](https://google.github.io/adk-docs)**
75
+
76
+ ## 🏁 Feature Highlight
77
+
78
+ ### Define a single agent:
79
+
80
+ ```python
81
+ from google.adk.agents import Agent
82
+ from google.adk.tools import google_search
83
+
84
+ root_agent = Agent(
85
+ name="search_assistant",
86
+ model="gemini-2.0-flash", # Or your preferred Gemini model
87
+ instruction="You are a helpful assistant. Answer user questions using Google Search when needed.",
88
+ description="An assistant that can search the web.",
89
+ tools=[google_search]
90
+ )
91
+ ```
92
+
93
+ ### Define a multi-agent system:
94
+
95
+ Define a multi-agent system with coordinator agent, greeter agent, and task execution agent. Then ADK engine and the model will guide the agents works together to accomplish the task.
96
+
97
+ ```python
98
+ from google.adk.agents import LlmAgent, BaseAgent
99
+
100
+ # Define individual agents
101
+ greeter = LlmAgent(name="greeter", model="gemini-2.0-flash", ...)
102
+ task_executor = LlmAgent(name="task_executor", model="gemini-2.0-flash", ...)
103
+
104
+ # Create parent agent and assign children via sub_agents
105
+ coordinator = LlmAgent(
106
+ name="Coordinator",
107
+ model="gemini-2.0-flash",
108
+ description="I coordinate greetings and tasks.",
109
+ sub_agents=[ # Assign sub_agents here
110
+ greeter,
111
+ task_executor
112
+ ]
113
+ )
114
+ ```
115
+
116
+ ### Development UI
117
+
118
+ A built-in development UI to help you test, evaluate, debug, and showcase your agent(s).
119
+
120
+ <img src="https://raw.githubusercontent.com/google/adk-python/main/assets/adk-web-dev-ui-function-call.png"/>
121
+
122
+ ### Evaluate Agents
123
+
124
+ ```bash
125
+ adk eval \
126
+ samples_for_testing/hello_world \
127
+ samples_for_testing/hello_world/hello_world_eval_set_001.evalset.json
128
+ ```
129
+
130
+ ## 🤖 A2A and ADK integration
131
+
132
+ For remote agent-to-agent communication, ADK integrates with the
133
+ [A2A protocol](https://github.com/google/A2A/).
134
+ See this [example](https://github.com/google/A2A/tree/main/samples/python/agents/google_adk)
135
+ for how they can work together.
136
+
137
+ ## 🤝 Contributing
138
+
139
+ We welcome contributions from the community! Whether it's bug reports, feature requests, documentation improvements, or code contributions, please see our
140
+ - [General contribution guideline and flow](https://google.github.io/adk-docs/contributing-guide/#questions).
141
+ - Then if you want to contribute code, please read [Code Contributing Guidelines](./CONTRIBUTING.md) to get started.
142
+
143
+ ## 📄 License
144
+
145
+ This project is licensed under the Apache 2.0 License - see the [LICENSE](LICENSE) file for details.
146
+
147
+ ## Preview
148
+
149
+ This feature is subject to the "Pre-GA Offerings Terms" in the General Service Terms section of the [Service Specific Terms](https://cloud.google.com/terms/service-terms#1). Pre-GA features are available "as is" and might have limited support. For more information, see the [launch stage descriptions](https://cloud.google.com/products?hl=en#product-launch-stages).
150
+
151
+ ---
152
+
153
+ *Happy Agent Building!*
@@ -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
@@ -79,7 +79,11 @@ eval = [
79
79
 
80
80
  test = [
81
81
  # go/keep-sorted start
82
+ "anthropic>=0.43.0", # For anthropic model tests
82
83
  "langchain-community>=0.3.17",
84
+ "langgraph>=0.2.60", # For LangGraphAgent
85
+ "litellm>=1.63.11", # For LiteLLM tests
86
+ "llama-index-readers-file>=0.4.0", # for retrieval tests
83
87
  "pytest-asyncio>=0.25.0",
84
88
  "pytest-mock>=3.14.0",
85
89
  "pytest-xdist>=3.6.1",
@@ -120,7 +120,7 @@ class BaseAgent(BaseModel):
120
120
  self,
121
121
  parent_context: InvocationContext,
122
122
  ) -> AsyncGenerator[Event, None]:
123
- """Entry method to run an agent via text-based conversaction.
123
+ """Entry method to run an agent via text-based conversation.
124
124
 
125
125
  Args:
126
126
  parent_context: InvocationContext, the invocation context of the parent
@@ -152,7 +152,7 @@ class BaseAgent(BaseModel):
152
152
  self,
153
153
  parent_context: InvocationContext,
154
154
  ) -> AsyncGenerator[Event, None]:
155
- """Entry method to run an agent via video/audio-based conversaction.
155
+ """Entry method to run an agent via video/audio-based conversation.
156
156
 
157
157
  Args:
158
158
  parent_context: InvocationContext, the invocation context of the parent
@@ -171,7 +171,7 @@ class BaseAgent(BaseModel):
171
171
  async def _run_async_impl(
172
172
  self, ctx: InvocationContext
173
173
  ) -> AsyncGenerator[Event, None]:
174
- """Core logic to run this agent via text-based conversaction.
174
+ """Core logic to run this agent via text-based conversation.
175
175
 
176
176
  Args:
177
177
  ctx: InvocationContext, the invocation context for this agent.
@@ -187,7 +187,7 @@ class BaseAgent(BaseModel):
187
187
  async def _run_live_impl(
188
188
  self, ctx: InvocationContext
189
189
  ) -> AsyncGenerator[Event, None]:
190
- """Core logic to run this agent via video/audio-based conversaction.
190
+ """Core logic to run this agent via video/audio-based conversation.
191
191
 
192
192
  Args:
193
193
  ctx: InvocationContext, the invocation context for this agent.
@@ -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
@@ -124,7 +124,7 @@ class InvocationContext(BaseModel):
124
124
  agent_2, and agent_2 is the parent of agent_3.
125
125
 
126
126
  Branch is used when multiple sub-agents shouldn't see their peer agents'
127
- conversaction history.
127
+ conversation history.
128
128
  """
129
129
  agent: BaseAgent
130
130
  """The current agent of this invocation context. Readonly."""
@@ -32,7 +32,7 @@ class RemoteAgent(BaseAgent):
32
32
  sub_agents: list[BaseAgent] = Field(
33
33
  default_factory=list, init=False, frozen=True
34
34
  )
35
- """Sub-agent is dsiabled in RemoteAgent."""
35
+ """Sub-agent is disabled in RemoteAgent."""
36
36
 
37
37
  @override
38
38
  async def _run_async_impl(
@@ -42,7 +42,7 @@ class RunConfig(BaseModel):
42
42
  """Speech configuration for the live agent."""
43
43
 
44
44
  response_modalities: Optional[list[str]] = None
45
- """The output modalities. If not set, its default to AUDIO."""
45
+ """The output modalities. If not set, it's default to AUDIO."""
46
46
 
47
47
  save_input_blobs_as_artifacts: bool = False
48
48
  """Whether or not to save the input blobs as artifacts."""
@@ -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
 
@@ -76,7 +76,7 @@ class _AuthLlmRequestProcessor(BaseLlmRequestProcessor):
76
76
 
77
77
  for i in range(len(events) - 2, -1, -1):
78
78
  event = events[i]
79
- # looking for the system long running reqeust euc function call
79
+ # looking for the system long running request euc function call
80
80
  function_calls = event.get_function_calls()
81
81
  if not function_calls:
82
82
  continue
@@ -92,7 +92,7 @@ class _AuthLlmRequestProcessor(BaseLlmRequestProcessor):
92
92
  if not tools_to_resume:
93
93
  continue
94
94
 
95
- # found the the system long running reqeust euc function call
95
+ # found the the system long running request euc function call
96
96
  # looking for original function call that requests euc
97
97
  for j in range(i - 1, -1, -1):
98
98
  event = events[j]
@@ -19,7 +19,7 @@ from .auth_schemes import AuthScheme
19
19
 
20
20
 
21
21
  class AuthConfig(BaseModel):
22
- """The auth config sent by tool asking client to collect auth credentails and
22
+ """The auth config sent by tool asking client to collect auth credentials and
23
23
 
24
24
  adk and client will help to fill in the response
25
25
  """
@@ -25,9 +25,9 @@
25
25
  <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
26
26
  <style>@font-face{font-family:'Open Sans';font-style:italic;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v40/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtE6F15M.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}@font-face{font-family:'Open Sans';font-style:italic;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v40/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWvU6F15M.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}@font-face{font-family:'Open Sans';font-style:italic;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v40/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtU6F15M.woff2) format('woff2');unicode-range:U+1F00-1FFF;}@font-face{font-family:'Open Sans';font-style:italic;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v40/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuk6F15M.woff2) format('woff2');unicode-range:U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;}@font-face{font-family:'Open Sans';font-style:italic;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v40/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWu06F15M.woff2) format('woff2');unicode-range:U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;}@font-face{font-family:'Open Sans';font-style:italic;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v40/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWxU6F15M.woff2) format('woff2');unicode-range:U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;}@font-face{font-family:'Open Sans';font-style:italic;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v40/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqW106F15M.woff2) format('woff2');unicode-range:U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;}@font-face{font-family:'Open Sans';font-style:italic;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v40/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWtk6F15M.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'Open Sans';font-style:italic;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v40/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWt06F15M.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'Open Sans';font-style:italic;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v40/memtYaGs126MiZpBA-UFUIcVXSCEkx2cmqvXlWqWuU6F.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v40/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSKmu1aB.woff2) format('woff2');unicode-range:U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v40/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSumu1aB.woff2) format('woff2');unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v40/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSOmu1aB.woff2) format('woff2');unicode-range:U+1F00-1FFF;}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v40/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSymu1aB.woff2) format('woff2');unicode-range:U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v40/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS2mu1aB.woff2) format('woff2');unicode-range:U+0307-0308, U+0590-05FF, U+200C-2010, U+20AA, U+25CC, U+FB1D-FB4F;}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v40/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTVOmu1aB.woff2) format('woff2');unicode-range:U+0302-0303, U+0305, U+0307-0308, U+0310, U+0312, U+0315, U+031A, U+0326-0327, U+032C, U+032F-0330, U+0332-0333, U+0338, U+033A, U+0346, U+034D, U+0391-03A1, U+03A3-03A9, U+03B1-03C9, U+03D1, U+03D5-03D6, U+03F0-03F1, U+03F4-03F5, U+2016-2017, U+2034-2038, U+203C, U+2040, U+2043, U+2047, U+2050, U+2057, U+205F, U+2070-2071, U+2074-208E, U+2090-209C, U+20D0-20DC, U+20E1, U+20E5-20EF, U+2100-2112, U+2114-2115, U+2117-2121, U+2123-214F, U+2190, U+2192, U+2194-21AE, U+21B0-21E5, U+21F1-21F2, U+21F4-2211, U+2213-2214, U+2216-22FF, U+2308-230B, U+2310, U+2319, U+231C-2321, U+2336-237A, U+237C, U+2395, U+239B-23B7, U+23D0, U+23DC-23E1, U+2474-2475, U+25AF, U+25B3, U+25B7, U+25BD, U+25C1, U+25CA, U+25CC, U+25FB, U+266D-266F, U+27C0-27FF, U+2900-2AFF, U+2B0E-2B11, U+2B30-2B4C, U+2BFE, U+3030, U+FF5B, U+FF5D, U+1D400-1D7FF, U+1EE00-1EEFF;}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v40/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTUGmu1aB.woff2) format('woff2');unicode-range:U+0001-000C, U+000E-001F, U+007F-009F, U+20DD-20E0, U+20E2-20E4, U+2150-218F, U+2190, U+2192, U+2194-2199, U+21AF, U+21E6-21F0, U+21F3, U+2218-2219, U+2299, U+22C4-22C6, U+2300-243F, U+2440-244A, U+2460-24FF, U+25A0-27BF, U+2800-28FF, U+2921-2922, U+2981, U+29BF, U+29EB, U+2B00-2BFF, U+4DC0-4DFF, U+FFF9-FFFB, U+10140-1018E, U+10190-1019C, U+101A0, U+101D0-101FD, U+102E0-102FB, U+10E60-10E7E, U+1D2C0-1D2D3, U+1D2E0-1D37F, U+1F000-1F0FF, U+1F100-1F1AD, U+1F1E6-1F1FF, U+1F30D-1F30F, U+1F315, U+1F31C, U+1F31E, U+1F320-1F32C, U+1F336, U+1F378, U+1F37D, U+1F382, U+1F393-1F39F, U+1F3A7-1F3A8, U+1F3AC-1F3AF, U+1F3C2, U+1F3C4-1F3C6, U+1F3CA-1F3CE, U+1F3D4-1F3E0, U+1F3ED, U+1F3F1-1F3F3, U+1F3F5-1F3F7, U+1F408, U+1F415, U+1F41F, U+1F426, U+1F43F, U+1F441-1F442, U+1F444, U+1F446-1F449, U+1F44C-1F44E, U+1F453, U+1F46A, U+1F47D, U+1F4A3, U+1F4B0, U+1F4B3, U+1F4B9, U+1F4BB, U+1F4BF, U+1F4C8-1F4CB, U+1F4D6, U+1F4DA, U+1F4DF, U+1F4E3-1F4E6, U+1F4EA-1F4ED, U+1F4F7, U+1F4F9-1F4FB, U+1F4FD-1F4FE, U+1F503, U+1F507-1F50B, U+1F50D, U+1F512-1F513, U+1F53E-1F54A, U+1F54F-1F5FA, U+1F610, U+1F650-1F67F, U+1F687, U+1F68D, U+1F691, U+1F694, U+1F698, U+1F6AD, U+1F6B2, U+1F6B9-1F6BA, U+1F6BC, U+1F6C6-1F6CF, U+1F6D3-1F6D7, U+1F6E0-1F6EA, U+1F6F0-1F6F3, U+1F6F7-1F6FC, U+1F700-1F7FF, U+1F800-1F80B, U+1F810-1F847, U+1F850-1F859, U+1F860-1F887, U+1F890-1F8AD, U+1F8B0-1F8BB, U+1F8C0-1F8C1, U+1F900-1F90B, U+1F93B, U+1F946, U+1F984, U+1F996, U+1F9E9, U+1FA00-1FA6F, U+1FA70-1FA7C, U+1FA80-1FA89, U+1FA8F-1FAC6, U+1FACE-1FADC, U+1FADF-1FAE9, U+1FAF0-1FAF8, U+1FB00-1FBFF;}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v40/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSCmu1aB.woff2) format('woff2');unicode-range:U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v40/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTSGmu1aB.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}@font-face{font-family:'Open Sans';font-style:normal;font-weight:300 800;font-stretch:100%;font-display:swap;src:url(https://fonts.gstatic.com/s/opensans/v40/memvYaGs126MiZpBA-UvWbX2vVnXBbObj2OVTS-muw.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}</style>
27
27
  <style>@font-face{font-family:'Material Icons';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialicons/v143/flUhRq6tzZclQEJ-Vdg-IuiaDsNc.woff2) format('woff2');}.material-icons{font-family:'Material Icons';font-weight:normal;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:'liga';-webkit-font-smoothing:antialiased;}</style>
28
- <style>@font-face{font-family:'Material Symbols Outlined';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialsymbolsoutlined/v232/kJF1BvYX7BgnkSrUwT8OhrdQw4oELdPIeeII9v6oDMzByHX9rA6RzaxHMPdY43zj-jCxv3fzvRNU22ZXGJpEpjC_1v-p_4MrImHCIJIZrDCvHOej.woff2) format('woff2');}.material-symbols-outlined{font-family:'Material Symbols Outlined';font-weight:normal;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:'liga';-webkit-font-smoothing:antialiased;}</style>
28
+ <style>@font-face{font-family:'Material Symbols Outlined';font-style:normal;font-weight:400;src:url(https://fonts.gstatic.com/s/materialsymbolsoutlined/v241/kJF1BvYX7BgnkSrUwT8OhrdQw4oELdPIeeII9v6oDMzByHX9rA6RzaxHMPdY43zj-jCxv3fzvRNU22ZXGJpEpjC_1v-p_4MrImHCIJIZrDCvHOej.woff2) format('woff2');}.material-symbols-outlined{font-family:'Material Symbols Outlined';font-weight:normal;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-feature-settings:'liga';-webkit-font-smoothing:antialiased;}</style>
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-SLIAU2JL.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>