google-adk 0.5.0__py3-none-any.whl → 1.0.0__py3-none-any.whl

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 (113) hide show
  1. google/adk/agents/base_agent.py +76 -30
  2. google/adk/agents/base_agent.py.orig +330 -0
  3. google/adk/agents/callback_context.py +0 -5
  4. google/adk/agents/llm_agent.py +122 -30
  5. google/adk/agents/loop_agent.py +1 -1
  6. google/adk/agents/parallel_agent.py +7 -0
  7. google/adk/agents/readonly_context.py +7 -1
  8. google/adk/agents/run_config.py +1 -1
  9. google/adk/agents/sequential_agent.py +31 -0
  10. google/adk/agents/transcription_entry.py +4 -2
  11. google/adk/artifacts/gcs_artifact_service.py +1 -1
  12. google/adk/artifacts/in_memory_artifact_service.py +1 -1
  13. google/adk/auth/auth_credential.py +6 -1
  14. google/adk/auth/auth_preprocessor.py +7 -1
  15. google/adk/auth/auth_tool.py +3 -4
  16. google/adk/cli/agent_graph.py +5 -5
  17. google/adk/cli/browser/index.html +2 -2
  18. google/adk/cli/browser/{main-ULN5R5I5.js → main-QOEMUXM4.js} +44 -45
  19. google/adk/cli/cli.py +7 -7
  20. google/adk/cli/cli_deploy.py +7 -2
  21. google/adk/cli/cli_eval.py +172 -99
  22. google/adk/cli/cli_tools_click.py +147 -64
  23. google/adk/cli/fast_api.py +330 -148
  24. google/adk/cli/fast_api.py.orig +174 -80
  25. google/adk/cli/utils/common.py +23 -0
  26. google/adk/cli/utils/evals.py +83 -1
  27. google/adk/cli/utils/logs.py +13 -5
  28. google/adk/code_executors/__init__.py +3 -1
  29. google/adk/code_executors/built_in_code_executor.py +52 -0
  30. google/adk/evaluation/__init__.py +1 -1
  31. google/adk/evaluation/agent_evaluator.py +168 -128
  32. google/adk/evaluation/eval_case.py +102 -0
  33. google/adk/evaluation/eval_set.py +37 -0
  34. google/adk/evaluation/eval_sets_manager.py +42 -0
  35. google/adk/evaluation/evaluation_generator.py +88 -113
  36. google/adk/evaluation/evaluator.py +56 -0
  37. google/adk/evaluation/local_eval_sets_manager.py +264 -0
  38. google/adk/evaluation/response_evaluator.py +106 -2
  39. google/adk/evaluation/trajectory_evaluator.py +83 -2
  40. google/adk/events/event.py +6 -1
  41. google/adk/events/event_actions.py +6 -1
  42. google/adk/examples/example_util.py +3 -2
  43. google/adk/flows/llm_flows/_code_execution.py +9 -1
  44. google/adk/flows/llm_flows/audio_transcriber.py +4 -3
  45. google/adk/flows/llm_flows/base_llm_flow.py +54 -15
  46. google/adk/flows/llm_flows/functions.py +9 -8
  47. google/adk/flows/llm_flows/instructions.py +13 -5
  48. google/adk/flows/llm_flows/single_flow.py +1 -1
  49. google/adk/memory/__init__.py +1 -1
  50. google/adk/memory/_utils.py +23 -0
  51. google/adk/memory/base_memory_service.py +23 -21
  52. google/adk/memory/base_memory_service.py.orig +76 -0
  53. google/adk/memory/in_memory_memory_service.py +57 -25
  54. google/adk/memory/memory_entry.py +37 -0
  55. google/adk/memory/vertex_ai_rag_memory_service.py +38 -15
  56. google/adk/models/anthropic_llm.py +16 -9
  57. google/adk/models/gemini_llm_connection.py +11 -11
  58. google/adk/models/google_llm.py +9 -2
  59. google/adk/models/google_llm.py.orig +305 -0
  60. google/adk/models/lite_llm.py +77 -21
  61. google/adk/models/llm_response.py +14 -2
  62. google/adk/models/registry.py +1 -1
  63. google/adk/runners.py +65 -41
  64. google/adk/sessions/__init__.py +1 -1
  65. google/adk/sessions/base_session_service.py +6 -33
  66. google/adk/sessions/database_session_service.py +58 -65
  67. google/adk/sessions/in_memory_session_service.py +106 -24
  68. google/adk/sessions/session.py +3 -0
  69. google/adk/sessions/vertex_ai_session_service.py +23 -45
  70. google/adk/telemetry.py +3 -0
  71. google/adk/tools/__init__.py +4 -7
  72. google/adk/tools/{built_in_code_execution_tool.py → _built_in_code_execution_tool.py} +11 -0
  73. google/adk/tools/_memory_entry_utils.py +30 -0
  74. google/adk/tools/agent_tool.py +9 -9
  75. google/adk/tools/apihub_tool/apihub_toolset.py +55 -74
  76. google/adk/tools/application_integration_tool/application_integration_toolset.py +107 -85
  77. google/adk/tools/application_integration_tool/clients/connections_client.py +20 -0
  78. google/adk/tools/application_integration_tool/clients/integration_client.py +6 -6
  79. google/adk/tools/application_integration_tool/integration_connector_tool.py +69 -26
  80. google/adk/tools/base_toolset.py +58 -0
  81. google/adk/tools/enterprise_search_tool.py +65 -0
  82. google/adk/tools/function_parameter_parse_util.py +2 -2
  83. google/adk/tools/google_api_tool/__init__.py +18 -70
  84. google/adk/tools/google_api_tool/google_api_tool.py +11 -5
  85. google/adk/tools/google_api_tool/google_api_toolset.py +126 -0
  86. google/adk/tools/google_api_tool/google_api_toolsets.py +102 -0
  87. google/adk/tools/google_api_tool/googleapi_to_openapi_converter.py +40 -42
  88. google/adk/tools/langchain_tool.py +96 -49
  89. google/adk/tools/load_memory_tool.py +14 -5
  90. google/adk/tools/mcp_tool/__init__.py +3 -2
  91. google/adk/tools/mcp_tool/mcp_session_manager.py +153 -16
  92. google/adk/tools/mcp_tool/mcp_session_manager.py.orig +322 -0
  93. google/adk/tools/mcp_tool/mcp_tool.py +12 -12
  94. google/adk/tools/mcp_tool/mcp_toolset.py +155 -195
  95. google/adk/tools/openapi_tool/openapi_spec_parser/openapi_toolset.py +32 -7
  96. google/adk/tools/openapi_tool/openapi_spec_parser/operation_parser.py +31 -31
  97. google/adk/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.py +1 -1
  98. google/adk/tools/preload_memory_tool.py +27 -18
  99. google/adk/tools/retrieval/__init__.py +1 -1
  100. google/adk/tools/retrieval/vertex_ai_rag_retrieval.py +1 -1
  101. google/adk/tools/toolbox_toolset.py +79 -0
  102. google/adk/tools/transfer_to_agent_tool.py +0 -1
  103. google/adk/version.py +1 -1
  104. {google_adk-0.5.0.dist-info → google_adk-1.0.0.dist-info}/METADATA +7 -5
  105. google_adk-1.0.0.dist-info/RECORD +195 -0
  106. google/adk/agents/remote_agent.py +0 -50
  107. google/adk/tools/google_api_tool/google_api_tool_set.py +0 -110
  108. google/adk/tools/google_api_tool/google_api_tool_sets.py +0 -112
  109. google/adk/tools/toolbox_tool.py +0 -46
  110. google_adk-0.5.0.dist-info/RECORD +0 -180
  111. {google_adk-0.5.0.dist-info → google_adk-1.0.0.dist-info}/WHEEL +0 -0
  112. {google_adk-0.5.0.dist-info → google_adk-1.0.0.dist-info}/entry_points.txt +0 -0
  113. {google_adk-0.5.0.dist-info → google_adk-1.0.0.dist-info}/licenses/LICENSE +0 -0
@@ -45,14 +45,14 @@ class OperationParser:
45
45
  should_parse: Whether to parse the operation during initialization.
46
46
  """
47
47
  if isinstance(operation, dict):
48
- self.operation = Operation.model_validate(operation)
48
+ self._operation = Operation.model_validate(operation)
49
49
  elif isinstance(operation, str):
50
- self.operation = Operation.model_validate_json(operation)
50
+ self._operation = Operation.model_validate_json(operation)
51
51
  else:
52
- self.operation = operation
52
+ self._operation = operation
53
53
 
54
- self.params: List[ApiParameter] = []
55
- self.return_value: Optional[ApiParameter] = None
54
+ self._params: List[ApiParameter] = []
55
+ self._return_value: Optional[ApiParameter] = None
56
56
  if should_parse:
57
57
  self._process_operation_parameters()
58
58
  self._process_request_body()
@@ -67,13 +67,13 @@ class OperationParser:
67
67
  return_value: Optional[ApiParameter] = None,
68
68
  ) -> 'OperationParser':
69
69
  parser = cls(operation, should_parse=False)
70
- parser.params = params
71
- parser.return_value = return_value
70
+ parser._params = params
71
+ parser._return_value = return_value
72
72
  return parser
73
73
 
74
74
  def _process_operation_parameters(self):
75
75
  """Processes parameters from the OpenAPI operation."""
76
- parameters = self.operation.parameters or []
76
+ parameters = self._operation.parameters or []
77
77
  for param in parameters:
78
78
  if isinstance(param, Parameter):
79
79
  original_name = param.name
@@ -86,7 +86,7 @@ class OperationParser:
86
86
  # param.required can be None
87
87
  required = param.required if param.required is not None else False
88
88
 
89
- self.params.append(
89
+ self._params.append(
90
90
  ApiParameter(
91
91
  original_name=original_name,
92
92
  param_location=location,
@@ -98,7 +98,7 @@ class OperationParser:
98
98
 
99
99
  def _process_request_body(self):
100
100
  """Processes the request body from the OpenAPI operation."""
101
- request_body = self.operation.requestBody
101
+ request_body = self._operation.requestBody
102
102
  if not request_body:
103
103
  return
104
104
 
@@ -114,7 +114,7 @@ class OperationParser:
114
114
  if schema and schema.type == 'object':
115
115
  properties = schema.properties or {}
116
116
  for prop_name, prop_details in properties.items():
117
- self.params.append(
117
+ self._params.append(
118
118
  ApiParameter(
119
119
  original_name=prop_name,
120
120
  param_location='body',
@@ -124,7 +124,7 @@ class OperationParser:
124
124
  )
125
125
 
126
126
  elif schema and schema.type == 'array':
127
- self.params.append(
127
+ self._params.append(
128
128
  ApiParameter(
129
129
  original_name='array',
130
130
  param_location='body',
@@ -133,7 +133,7 @@ class OperationParser:
133
133
  )
134
134
  )
135
135
  else:
136
- self.params.append(
136
+ self._params.append(
137
137
  # Empty name for unnamed body param
138
138
  ApiParameter(
139
139
  original_name='',
@@ -147,7 +147,7 @@ class OperationParser:
147
147
  def _dedupe_param_names(self):
148
148
  """Deduplicates parameter names to avoid conflicts."""
149
149
  params_cnt = {}
150
- for param in self.params:
150
+ for param in self._params:
151
151
  name = param.py_name
152
152
  if name not in params_cnt:
153
153
  params_cnt[name] = 0
@@ -157,7 +157,7 @@ class OperationParser:
157
157
 
158
158
  def _process_return_value(self) -> Parameter:
159
159
  """Returns a Parameter object representing the return type."""
160
- responses = self.operation.responses or {}
160
+ responses = self._operation.responses or {}
161
161
  # Default to Any if no 2xx response or if schema is missing
162
162
  return_schema = Schema(type='Any')
163
163
 
@@ -174,7 +174,7 @@ class OperationParser:
174
174
  return_schema = content[mime_type].schema_
175
175
  break
176
176
 
177
- self.return_value = ApiParameter(
177
+ self._return_value = ApiParameter(
178
178
  original_name='',
179
179
  param_location='',
180
180
  param_schema=return_schema,
@@ -182,42 +182,42 @@ class OperationParser:
182
182
 
183
183
  def get_function_name(self) -> str:
184
184
  """Returns the generated function name."""
185
- operation_id = self.operation.operationId
185
+ operation_id = self._operation.operationId
186
186
  if not operation_id:
187
187
  raise ValueError('Operation ID is missing')
188
188
  return to_snake_case(operation_id)[:60]
189
189
 
190
190
  def get_return_type_hint(self) -> str:
191
191
  """Returns the return type hint string (like 'str', 'int', etc.)."""
192
- return self.return_value.type_hint
192
+ return self._return_value.type_hint
193
193
 
194
194
  def get_return_type_value(self) -> Any:
195
195
  """Returns the return type value (like str, int, List[str], etc.)."""
196
- return self.return_value.type_value
196
+ return self._return_value.type_value
197
197
 
198
198
  def get_parameters(self) -> List[ApiParameter]:
199
199
  """Returns the list of Parameter objects."""
200
- return self.params
200
+ return self._params
201
201
 
202
202
  def get_return_value(self) -> ApiParameter:
203
203
  """Returns the list of Parameter objects."""
204
- return self.return_value
204
+ return self._return_value
205
205
 
206
206
  def get_auth_scheme_name(self) -> str:
207
207
  """Returns the name of the auth scheme for this operation from the spec."""
208
- if self.operation.security:
209
- scheme_name = list(self.operation.security[0].keys())[0]
208
+ if self._operation.security:
209
+ scheme_name = list(self._operation.security[0].keys())[0]
210
210
  return scheme_name
211
211
  return ''
212
212
 
213
213
  def get_pydoc_string(self) -> str:
214
214
  """Returns the generated PyDoc string."""
215
- pydoc_params = [param.to_pydoc_string() for param in self.params]
215
+ pydoc_params = [param.to_pydoc_string() for param in self._params]
216
216
  pydoc_description = (
217
- self.operation.summary or self.operation.description or ''
217
+ self._operation.summary or self._operation.description or ''
218
218
  )
219
219
  pydoc_return = PydocHelper.generate_return_doc(
220
- self.operation.responses or {}
220
+ self._operation.responses or {}
221
221
  )
222
222
  pydoc_arg_list = chr(10).join(
223
223
  f' {param_doc}' for param_doc in pydoc_params
@@ -236,12 +236,12 @@ class OperationParser:
236
236
  """Returns the JSON schema for the function arguments."""
237
237
  properties = {
238
238
  p.py_name: jsonable_encoder(p.param_schema, exclude_none=True)
239
- for p in self.params
239
+ for p in self._params
240
240
  }
241
241
  return {
242
242
  'properties': properties,
243
- 'required': [p.py_name for p in self.params if p.required],
244
- 'title': f"{self.operation.operationId or 'unnamed'}_Arguments",
243
+ 'required': [p.py_name for p in self._params if p.required],
244
+ 'title': f"{self._operation.operationId or 'unnamed'}_Arguments",
245
245
  'type': 'object',
246
246
  }
247
247
 
@@ -253,11 +253,11 @@ class OperationParser:
253
253
  inspect.Parameter.POSITIONAL_OR_KEYWORD,
254
254
  annotation=param.type_value,
255
255
  )
256
- for param in self.params
256
+ for param in self._params
257
257
  ]
258
258
 
259
259
  def get_annotations(self) -> Dict[str, Any]:
260
260
  """Returns a dictionary of parameter annotations for the function."""
261
- annotations = {p.py_name: p.type_value for p in self.params}
261
+ annotations = {p.py_name: p.type_value for p in self._params}
262
262
  annotations['return'] = self.get_return_type_value()
263
263
  return annotations
@@ -30,7 +30,7 @@ from ..auth.credential_exchangers.auto_auth_credential_exchanger import AutoAuth
30
30
  from ..auth.credential_exchangers.base_credential_exchanger import AuthCredentialMissingError
31
31
  from ..auth.credential_exchangers.base_credential_exchanger import BaseAuthCredentialExchanger
32
32
 
33
- logger = logging.getLogger(__name__)
33
+ logger = logging.getLogger("google_adk." + __name__)
34
34
 
35
35
  AuthPreparationState = Literal["pending", "done"]
36
36
 
@@ -14,11 +14,11 @@
14
14
 
15
15
  from __future__ import annotations
16
16
 
17
- from datetime import datetime
18
17
  from typing import TYPE_CHECKING
19
18
 
20
19
  from typing_extensions import override
21
20
 
21
+ from . import _memory_entry_utils
22
22
  from .base_tool import BaseTool
23
23
  from .tool_context import ToolContext
24
24
 
@@ -27,7 +27,10 @@ if TYPE_CHECKING:
27
27
 
28
28
 
29
29
  class PreloadMemoryTool(BaseTool):
30
- """A tool that preloads the memory for the current user."""
30
+ """A tool that preloads the memory for the current user.
31
+
32
+ NOTE: Currently this tool only uses text part from the memory.
33
+ """
31
34
 
32
35
  def __init__(self):
33
36
  # Name and description are not used because this tool only
@@ -41,29 +44,35 @@ class PreloadMemoryTool(BaseTool):
41
44
  tool_context: ToolContext,
42
45
  llm_request: LlmRequest,
43
46
  ) -> None:
44
- parts = tool_context.user_content.parts
45
- if not parts or not parts[0].text:
47
+ user_content = tool_context.user_content
48
+ if (
49
+ not user_content
50
+ or not user_content.parts
51
+ or not user_content.parts[0].text
52
+ ):
46
53
  return
47
- query = parts[0].text
48
- response = await tool_context.search_memory(query)
54
+
55
+ user_query: str = user_content.parts[0].text
56
+ response = await tool_context.search_memory(user_query)
49
57
  if not response.memories:
50
58
  return
51
- memory_text = ''
59
+
60
+ memory_text_lines = []
52
61
  for memory in response.memories:
53
- time_str = datetime.fromtimestamp(memory.events[0].timestamp).isoformat()
54
- memory_text += f'Time: {time_str}\n'
55
- for event in memory.events:
56
- # TODO: support multi-part content.
57
- if (
58
- event.content
59
- and event.content.parts
60
- and event.content.parts[0].text
61
- ):
62
- memory_text += f'{event.author}: {event.content.parts[0].text}\n'
62
+ if time_str := (f'Time: {memory.timestamp}' if memory.timestamp else ''):
63
+ memory_text_lines.append(time_str)
64
+ if memory_text := _memory_entry_utils.extract_text(memory):
65
+ memory_text_lines.append(
66
+ f'{memory.author}: {memory_text}' if memory.author else memory_text
67
+ )
68
+ if not memory_text_lines:
69
+ return
70
+
71
+ full_memory_text = '\n'.join(memory_text_lines)
63
72
  si = f"""The following content is from your previous conversations with the user.
64
73
  They may be useful for answering the user's current query.
65
74
  <PAST_CONVERSATIONS>
66
- {memory_text}
75
+ {full_memory_text}
67
76
  </PAST_CONVERSATIONS>
68
77
  """
69
78
  llm_request.append_instructions([si])
@@ -29,7 +29,7 @@ try:
29
29
  except ImportError:
30
30
  import logging
31
31
 
32
- logger = logging.getLogger(__name__)
32
+ logger = logging.getLogger('google_adk.' + __name__)
33
33
  logger.debug(
34
34
  'The Vertex sdk is not installed. If you want to use the Vertex RAG with'
35
35
  ' agents, please install it. If not, you can ignore this warning.'
@@ -30,7 +30,7 @@ from .base_retrieval_tool import BaseRetrievalTool
30
30
  if TYPE_CHECKING:
31
31
  from ...models.llm_request import LlmRequest
32
32
 
33
- logger = logging.getLogger(__name__)
33
+ logger = logging.getLogger('google_adk.' + __name__)
34
34
 
35
35
 
36
36
  class VertexAiRagRetrieval(BaseRetrievalTool):
@@ -0,0 +1,79 @@
1
+ # Copyright 2025 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ from typing import List
16
+ from typing import Optional
17
+
18
+ import toolbox_core as toolbox
19
+ from typing_extensions import override
20
+
21
+ from ..agents.readonly_context import ReadonlyContext
22
+ from .base_tool import BaseTool
23
+ from .base_toolset import BaseToolset
24
+ from .function_tool import FunctionTool
25
+
26
+
27
+ class ToolboxToolset(BaseToolset):
28
+ """A class that provides access to toolbox toolsets.
29
+
30
+ Example:
31
+ ```python
32
+ toolbox_toolset = ToolboxToolset("http://127.0.0.1:5000",
33
+ toolset_name="my-toolset")
34
+ )
35
+ ```
36
+ """
37
+
38
+ def __init__(
39
+ self,
40
+ server_url: str,
41
+ toolset_name: Optional[str] = None,
42
+ tool_names: Optional[List[str]] = None,
43
+ ):
44
+ """Args:
45
+
46
+ server_url: The URL of the toolbox server.
47
+ toolset_name: The name of the toolbox toolset to load.
48
+ tool_names: The names of the tools to load.
49
+ The resulting ToolboxToolset will contain both tools loaded by tool_names
50
+ and toolset_name.
51
+ """
52
+ if not tool_names and not toolset_name:
53
+ raise ValueError("tool_names and toolset_name cannot both be None")
54
+ super().__init__()
55
+ self._server_url = server_url
56
+ self._toolbox_client = toolbox.ToolboxSyncClient(server_url)
57
+ self._toolset_name = toolset_name
58
+ self._tool_names = tool_names
59
+
60
+ @override
61
+ async def get_tools(
62
+ self, readonly_context: Optional[ReadonlyContext] = None
63
+ ) -> list[BaseTool]:
64
+ tools = []
65
+ if self._toolset_name:
66
+ tools.extend([
67
+ FunctionTool(tool)
68
+ for tool in self._toolbox_client.load_toolset(self._toolset_name)
69
+ ])
70
+ if self._tool_names:
71
+ tools.extend([
72
+ FunctionTool(self._toolbox_client.load_tool(tool_name))
73
+ for tool_name in self._tool_names
74
+ ])
75
+ return tools
76
+
77
+ @override
78
+ async def close(self):
79
+ self._toolbox_client.close()
@@ -15,7 +15,6 @@
15
15
  from .tool_context import ToolContext
16
16
 
17
17
 
18
- # TODO: make this internal, since user doesn't need to use this tool directly.
19
18
  def transfer_to_agent(agent_name: str, tool_context: ToolContext):
20
19
  """Transfer the question to another agent."""
21
20
  tool_context.actions.transfer_to_agent = agent_name
google/adk/version.py CHANGED
@@ -13,4 +13,4 @@
13
13
  # limitations under the License.
14
14
 
15
15
  # version: date+base_cl
16
- __version__ = "0.5.0"
16
+ __version__ = "1.0.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: google-adk
3
- Version: 0.5.0
3
+ Version: 1.0.0
4
4
  Summary: Agent Development Kit
5
5
  Author-email: Google LLC <googleapis-packages@google.com>
6
6
  Requires-Python: >=3.9
@@ -11,10 +11,10 @@ Classifier: Intended Audience :: Science/Research
11
11
  Classifier: Programming Language :: Python
12
12
  Classifier: Programming Language :: Python :: 3
13
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
14
  Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: 3.12
17
+ Classifier: Programming Language :: Python :: 3.13
18
18
  Classifier: Operating System :: OS Independent
19
19
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
20
20
  Classifier: License :: OSI Approved :: Apache Software License
@@ -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.12.1
30
+ Requires-Dist: google-genai>=1.14.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
@@ -43,6 +43,7 @@ Requires-Dist: flit>=3.10.0 ; extra == "dev"
43
43
  Requires-Dist: isort>=6.0.0 ; extra == "dev"
44
44
  Requires-Dist: pyink>=24.10.0 ; extra == "dev"
45
45
  Requires-Dist: pylint>=2.6.0 ; extra == "dev"
46
+ Requires-Dist: mypy>=1.15.0 ; extra == "dev"
46
47
  Requires-Dist: autodoc_pydantic ; extra == "docs"
47
48
  Requires-Dist: furo ; extra == "docs"
48
49
  Requires-Dist: myst-parser ; extra == "docs"
@@ -60,6 +61,7 @@ Requires-Dist: langgraph>=0.2.60 ; extra == "extensions"
60
61
  Requires-Dist: litellm>=1.63.11 ; extra == "extensions"
61
62
  Requires-Dist: llama-index-readers-file>=0.4.0 ; extra == "extensions"
62
63
  Requires-Dist: lxml>=5.3.0 ; extra == "extensions"
64
+ Requires-Dist: toolbox-core>=0.1.0 ; extra == "extensions"
63
65
  Requires-Dist: anthropic>=0.43.0 ; extra == "test"
64
66
  Requires-Dist: langchain-community>=0.3.17 ; extra == "test"
65
67
  Requires-Dist: langgraph>=0.2.60 ; extra == "test"
@@ -0,0 +1,195 @@
1
+ google/adk/__init__.py,sha256=sSPQK3r0tW8ahl-k8SXkZvMcbiTbGICCtrw6KkFucyg,726
2
+ google/adk/runners.py,sha256=jj3Q9LyImrZwuHoYPcuFYcoHuR1C6D9ab5x5v8avVuw,16860
3
+ google/adk/telemetry.py,sha256=Oyb_Uc-onV2NhxmqAp3owTWvYPUYQ-2jKeefq7c3FBE,6378
4
+ google/adk/version.py,sha256=d6uopJQTFu9fhC6YO3UWq_iyL_3iwFy_A4bnkw0Z7i4,621
5
+ google/adk/agents/__init__.py,sha256=WsCiBlvI-ISWrcntboo_sULvVJNwLNxXCe42UGPLKdY,1041
6
+ google/adk/agents/active_streaming_tool.py,sha256=vFuh_PkdF5EyyneBBJ7Al8ojeTIR3OtsxLjckr9DbXE,1194
7
+ google/adk/agents/base_agent.py,sha256=3OBJWLnRsnWuBPA2zLYo-6Yhs1bFDJGKHoa8_RPgndg,12271
8
+ google/adk/agents/base_agent.py.orig,sha256=B7qXtEiHwOQigX45R5XLv0dXWG6mATg-nOOMqvFNcYI,10102
9
+ google/adk/agents/callback_context.py,sha256=ENK7Z27KD-orAr3kaa0n4NCtstZyUx1OrquhEnIN0Z4,3410
10
+ google/adk/agents/invocation_context.py,sha256=hN3T06F7T4-IpI2CGcmBqrzH4yo9fpW1O79iZwajQB4,6208
11
+ google/adk/agents/langgraph_agent.py,sha256=1MI-jsLRncMy4mpjSsGU5FL6zbK-k4FxiupnujgYVNE,4287
12
+ google/adk/agents/live_request_queue.py,sha256=AudgMP6VfGjNgH7VeQamKJ6Yo2n5eIlikcscoOqprNU,2109
13
+ google/adk/agents/llm_agent.py,sha256=DsM7np-ASB8YE-cUnReif488vnT00Oy_4ry8EYtiASU,16858
14
+ google/adk/agents/loop_agent.py,sha256=BRGCwSopdOX_x7oUTnUe7udS9GpV0zOn5vXf1USsCf0,1935
15
+ google/adk/agents/parallel_agent.py,sha256=-KnMjMRdl4y9j2MrlzREIE4LPedjesH_EqzsujYMCtc,3244
16
+ google/adk/agents/readonly_context.py,sha256=Z_eVpkMCQHL_Ufal_Qp4wQ-EtCN7SsRKuz679-AcABM,1640
17
+ google/adk/agents/run_config.py,sha256=6IorXL0OsgnWbsMRzVRQ6NJ2vz4zE_GT0S5em95fzwk,3116
18
+ google/adk/agents/sequential_agent.py,sha256=LFNVRbSNp1-gQtEpNpzChAIqKb7sbCojiMQRqxQbigk,2714
19
+ google/adk/agents/transcription_entry.py,sha256=HL8j2xvtdrcP4_uxy55ASCmLFrc8KchvV2eoGnwZnqc,1178
20
+ google/adk/artifacts/__init__.py,sha256=D5DYoVYR0tOd2E_KwRu0Cp7yvV25KGuIQmQeCRDyK-k,846
21
+ google/adk/artifacts/base_artifact_service.py,sha256=H-t5nckLTfr330utj8vxjH45z81h_h_c9EZzd3A76dY,3452
22
+ google/adk/artifacts/gcs_artifact_service.py,sha256=-YU4NhZiGMnHHCg00aJWgKq4JWkQLh7EH5OuGusM5bE,5608
23
+ google/adk/artifacts/in_memory_artifact_service.py,sha256=Iw34Ja89JwGgd3sulbxxk5pVMqzEZJCt4F2m15MC37U,4059
24
+ google/adk/auth/__init__.py,sha256=GoFe0aZGdp0ExNE4rXNn1RuXLaB64j7Z-2C5e2Hsh8c,908
25
+ google/adk/auth/auth_credential.py,sha256=4fPDJUZy82RGBGTK-vytKk4KdDNRFa2T3sI-9L3m3OE,6852
26
+ google/adk/auth/auth_handler.py,sha256=ViqVsH5pzO8Pzq6HwlI4b1Y98NZO822TYRPnYAzIbNc,9478
27
+ google/adk/auth/auth_preprocessor.py,sha256=RQLkCajcyWDwRL-griI2r2KpkRGARoC228WKcDQ_RtI,4372
28
+ google/adk/auth/auth_schemes.py,sha256=dxx9bxjOWoae1fSVxbpaVTwa0I4v76_QJJFEX--1ueA,2260
29
+ google/adk/auth/auth_tool.py,sha256=b6VG3yuHNqk3HTCh9AheYz1T664M8SI4MzT5mfCyleo,2302
30
+ google/adk/cli/__init__.py,sha256=ouPYnIY02VmGNfpA6IT8oSQdfeZd1LHVoDSt_x8zQPU,609
31
+ google/adk/cli/__main__.py,sha256=gN8rRWlkh_3gLI-oYByxrKpCW9BIfDwrr0YuyisxmHo,646
32
+ google/adk/cli/agent_graph.py,sha256=0jCqJYwuCHYH7UM2Qj0YGCBL3wcRsYfctiD59DDC0Dg,4796
33
+ google/adk/cli/cli.py,sha256=6XwAKg42_fuu95ohtRhtPTU0KTgs3Y6L_AuuFPs0MwQ,6231
34
+ google/adk/cli/cli_create.py,sha256=S5sAKIzTjaf3bWoh6nUCSxm9koxdkN0SkTnOtsl0Oqs,8010
35
+ google/adk/cli/cli_deploy.py,sha256=JijllmdqkOj0PgKZZk6TPRsf4dxjFUZ1_7R1gL-HzVY,5579
36
+ google/adk/cli/cli_eval.py,sha256=MDXIUKpYEgcQd9xsL8P-i81N2iNBHKZUfisn8foq6Tw,12511
37
+ google/adk/cli/cli_tools_click.py,sha256=D7QZ8RZwymoVwVQziLomudA4hs0wY8M6cj3G7WIIOdI,20453
38
+ google/adk/cli/fast_api.py,sha256=9fmY-AHqmoJ0QbyggFvlB5S29XCeqf6PIAyUHYoUuxE,33932
39
+ google/adk/cli/fast_api.py.orig,sha256=WHO8EDtsp2si_ohde12R08cWbr79tyh4fzz5jFhIvGE,26936
40
+ google/adk/cli/browser/adk_favicon.svg,sha256=giyzTZ5Xe6HFU63NgTIZDm35L-RmID-odVFOZ4vMo1M,3132
41
+ google/adk/cli/browser/index.html,sha256=h5kf2HqPLK0avvngvh_6eJKiL4WN7SvIDfmF5eS4Ny0,18483
42
+ google/adk/cli/browser/main-QOEMUXM4.js,sha256=3sO-T6idDB2rFubxvuc2OJHgxVRmScAenLlFVlXTR98,2488024
43
+ google/adk/cli/browser/polyfills-FFHMD2TL.js,sha256=6tcwOogi31Djphkq1hP2H5TxfN1MBg3P4YYrxHNdH5M,35115
44
+ google/adk/cli/browser/styles-4VDSPQ37.css,sha256=QF3xmtXMt44nFiCh0aKnvQwQiZptr3sW1u9bzltukAI,5522
45
+ google/adk/cli/browser/assets/audio-processor.js,sha256=BTYefpDeOz7VQveAoC_WFleLY9JkJs_FuGS0oQiadIA,1769
46
+ google/adk/cli/browser/assets/config/runtime-config.json,sha256=obOpZdzA-utX_wG6I687-5W7i1f8W9ixXOb7ky7rdvU,22
47
+ google/adk/cli/utils/__init__.py,sha256=2PrkBZeLjc3mXZMDJkev3IKgd07d4CheASgTB3tqz8Y,1528
48
+ google/adk/cli/utils/common.py,sha256=brmJF3t-h_HCCS9FQtgqY0Ozk1meeM6a1omwcmsbDBQ,788
49
+ google/adk/cli/utils/envs.py,sha256=S8_aqTZL8bQ4-FDYpgmNzPBTrz2UlMbV0Dg5sx-9p_0,1683
50
+ google/adk/cli/utils/evals.py,sha256=-pO0h56I06blXeOIwolnjlhxymc-ArT1JuevtGigbQM,6546
51
+ google/adk/cli/utils/logs.py,sha256=duZ6rQmj-L2s9XfQV9Z0S9ci1QcvIodCGGb09plpQvY,2476
52
+ google/adk/code_executors/__init__.py,sha256=dJ8qAZyj3jm8fNnzQWoWpI7xSVUGhU5qIxbEDpouizc,1641
53
+ google/adk/code_executors/base_code_executor.py,sha256=QLpgVcFNI5V21U-kVleze24ADeuDKgE3wI7Uui6vUeo,3030
54
+ google/adk/code_executors/built_in_code_executor.py,sha256=nAAB8lMrbVdMlAa3dYMrXJO5CndjGT4BJo27-7VUVwQ,1895
55
+ google/adk/code_executors/code_execution_utils.py,sha256=95VgarO7Q9EvwfEdQKc8RAD4XotcYYzagiIwIuEO6_s,7354
56
+ google/adk/code_executors/code_executor_context.py,sha256=W8kLnyDLq0Ci_8dDHXv9CmkQITmNKhGc8f82gC7v5ik,6732
57
+ google/adk/code_executors/container_code_executor.py,sha256=KW6ESSFcsh9WMmohOJIntV7cct2QRclNhBkYGiRwEy8,6418
58
+ google/adk/code_executors/unsafe_local_code_executor.py,sha256=0UHcjaFF5V8swin3WLs6UjAaW7P_tPmSyaaPOOiDPys,2387
59
+ google/adk/code_executors/vertex_ai_code_executor.py,sha256=CvPv0cZw-PjPxMFzf01e83bTSy_yksunub8r62hBOgg,7254
60
+ google/adk/evaluation/__init__.py,sha256=MjSF-43UTBEp_4RKf7VK7RpFbt-9SKYYfiOgSwvco8c,1020
61
+ google/adk/evaluation/agent_evaluator.py,sha256=zsUIiXNuilFEnlhdIu2hYpzwbR9AIx1Ku-wg8iHRnN8,12997
62
+ google/adk/evaluation/eval_case.py,sha256=A4c2ovY49VMxejGKf2nmw6fFuEAUcIO5P4oosFn6kB8,3165
63
+ google/adk/evaluation/eval_set.py,sha256=yRMnwW1DR59wz-TfZQ2ncxARPqx7CHPCH79m0pW5qtM,1141
64
+ google/adk/evaluation/eval_sets_manager.py,sha256=g9Hu-JpRTDfFqaNpkV6rM4NVyzHrtM0cSehOssuJGGs,1534
65
+ google/adk/evaluation/evaluation_constants.py,sha256=q3FpEx1PDoj0VjVwHDZ6U-LNZ1_uApM03d2vOevvHA4,857
66
+ google/adk/evaluation/evaluation_generator.py,sha256=4qKyeWK8PCABEuQe-jSgFFXCAHRtNZ5Z3Xh5MWbstYk,8191
67
+ google/adk/evaluation/evaluator.py,sha256=9rg_URtCMQljCo8M4L6EbsEbiF6pjVpTK5xwPD7DYCM,1671
68
+ google/adk/evaluation/local_eval_sets_manager.py,sha256=jZf6kxUzZTvYWanuKZFiahbr2xLYe5TNVQ5DvasNRAg,8615
69
+ google/adk/evaluation/response_evaluator.py,sha256=APeYkVLfriP2Uyc5WN-De8Li1xh2UGJSltBovpuS08E,8368
70
+ google/adk/evaluation/trajectory_evaluator.py,sha256=WGqieqQimM5ls4xOiCzvVmQRAO1rB_wf6-JhOSp3Z6c,8069
71
+ google/adk/events/__init__.py,sha256=Lh0rh6RAt5DIxbwBUajjGMbB6bZW5K4Qli6PD_Jv74Q,688
72
+ google/adk/events/event.py,sha256=LZal8tipy5mCln4WLYatFQ3yWRL5QDB30oBK0z7aczM,4719
73
+ google/adk/events/event_actions.py,sha256=-f_WTN8eQdhAj2celU5AoynGlBfplj3nia9C7OrT534,2275
74
+ google/adk/examples/__init__.py,sha256=LCuLG_SOF9OAV3vc1tHAaBAOeQEZl0MFHC2LGmZ6e-A,851
75
+ google/adk/examples/base_example_provider.py,sha256=MkY_4filPUOd_M_YgK-pJpOuNxvD1b8sp_pty-BNnmM,1073
76
+ google/adk/examples/example.py,sha256=HVnntZLa-HLSwEzALydRUw6DuxQpoBYUnSQyYOsSuSE,868
77
+ google/adk/examples/example_util.py,sha256=S_DaDUnMe1VM0esRr0VoSBBYCYBuvz6_xV2e7X5PcHM,4271
78
+ google/adk/examples/vertex_ai_example_store.py,sha256=0w2N8oB0QTLjbM2gRRUMGY3D9zt8kQDlW4Y6p2jAcJQ,3632
79
+ google/adk/flows/__init__.py,sha256=Q9FlRO2IfSE9yEaiAYzWkOMBJPCaNYqh4ihcp0t0BQs,574
80
+ google/adk/flows/llm_flows/__init__.py,sha256=KLTQguz-10H8LbB6Ou-rjyJzX6rx9N1G5BRVWJTKdho,729
81
+ google/adk/flows/llm_flows/_base_llm_processor.py,sha256=Y7p-zwW7MxLB3vLlZthSdCjqjqMRl0DaoSVNCzyADw0,1770
82
+ google/adk/flows/llm_flows/_code_execution.py,sha256=GP7-Hwy4ebFM0bwI_tEnvCmWl5qBy8b-EyKXjL7jw7o,15093
83
+ google/adk/flows/llm_flows/_nl_planning.py,sha256=sGKa-wkVuDqlb6e9OadKAYhIAM2xD0iqtYBm0MJRszo,4078
84
+ google/adk/flows/llm_flows/agent_transfer.py,sha256=zjRjEYTQB2R5CX0UwOoq8nXHioiQYop7sZhh8LeVkC0,3902
85
+ google/adk/flows/llm_flows/audio_transcriber.py,sha256=x0LeOZLDPVPzPCYNYA3JyAEAjCLMzmXCwhq12R67kDc,3541
86
+ google/adk/flows/llm_flows/auto_flow.py,sha256=CnuFelyZhB_ns4U_5_dW0x_KQlzu02My7qWcB4XBCYY,1714
87
+ google/adk/flows/llm_flows/base_llm_flow.py,sha256=2bdqP23ik7hJhW06suAQ4EkWwEM8uT6-y0LN_EkGiow,21956
88
+ google/adk/flows/llm_flows/basic.py,sha256=LmSMiElRTEA9dCOOvPlGxyYrmqPsqRvQ2xizBVl27eE,2480
89
+ google/adk/flows/llm_flows/contents.py,sha256=b3OBGKNJS3Tf61Fu4ge_vATExUQWtWSF1wH-ENl_FDI,12974
90
+ google/adk/flows/llm_flows/functions.py,sha256=s_0HOVKyPU4SKB8Ec_ezVilBx4hJ_KKDgAmjDyZFP9c,16998
91
+ google/adk/flows/llm_flows/identity.py,sha256=X4CRg12NvnopmydU9gbFJI4lW1_otN-w_GOAuPvKrXo,1651
92
+ google/adk/flows/llm_flows/instructions.py,sha256=iJT8Qj0rfA0jKMa-aBnypUQhL2M1k2_i9qhusXS9e8U,5065
93
+ google/adk/flows/llm_flows/single_flow.py,sha256=0Q1687fUUCpOlnYKvWt32iLrCfBV9Y1O21saV56YOJI,1904
94
+ google/adk/memory/__init__.py,sha256=8LHs0wpz5bVi0kChzERh9oMCjKh4e6Nmfe_821wF7QQ,1148
95
+ google/adk/memory/_utils.py,sha256=6hba7T4ZJ00K3tX1kLuiuiN02E844XtfR1lFEGa-AaM,797
96
+ google/adk/memory/base_memory_service.py,sha256=KlpjlgZopqKM19QP9X0eKLBSVG10hHjD4qgEEfwdb9k,1987
97
+ google/adk/memory/base_memory_service.py.orig,sha256=o2m-nUPMs2nt3AkZFyQxQ-f8-azz2Eq0f1DJ4gO7BGg,2069
98
+ google/adk/memory/in_memory_memory_service.py,sha256=S8mxOuosgzAFyl7ZoSjIo-vWY_3mhRMf2a13YO8MObo,3024
99
+ google/adk/memory/memory_entry.py,sha256=NSISrQHX6sww0J7wXP-eqxkGAkF2irqCU_UH-ziWACc,1092
100
+ google/adk/memory/vertex_ai_rag_memory_service.py,sha256=NyZts8asn7wOScGol-qeS5GlYfboyHc0GWZmnUzKnW4,6821
101
+ google/adk/models/__init__.py,sha256=jnI2M8tz4IN_WOUma4PIEdGOBDIotXcQpseH6P1VgZU,929
102
+ google/adk/models/anthropic_llm.py,sha256=i4N1lj4_4etiaiUH3VKUyfNCHuIi7uUYgsSzjvByS4U,8175
103
+ google/adk/models/base_llm.py,sha256=5cJWKPqmglBHQNu5u0oyDcjkly0NWecfEen2vgscHA4,3999
104
+ google/adk/models/base_llm_connection.py,sha256=_zBmSa4RLfnadXG0_hsJLP_x_1UMtoLKagouIp0Y0-g,2252
105
+ google/adk/models/gemini_llm_connection.py,sha256=rWMOOSFRsbxkkz0fBxbVVkYFHaRdZYJCqoeyMXqgFDM,7313
106
+ google/adk/models/google_llm.py,sha256=hOiWg74VrYbbPoyaZt6Ilo3nAhsLdEtM26B8FavGGQM,9026
107
+ google/adk/models/google_llm.py.orig,sha256=Keay_NiTNFRzBkDDAMM2YF8nj98cZj4BFAx4VZTxo6Y,9254
108
+ google/adk/models/lite_llm.py,sha256=uVzs_qcCIcA3hL83t_6hCobKMzQpg38oVWPuj4G0lEg,21618
109
+ google/adk/models/llm_request.py,sha256=nJdE_mkAwa_QNkl7FJdw5Ys748vM5RqaRYiZtke-mDA,3008
110
+ google/adk/models/llm_response.py,sha256=cer3RD1j-0Fbfjs2A3OTf3dCtx7cjnyeMrQpyK2nfno,4545
111
+ google/adk/models/registry.py,sha256=5VQyHMEaMbVp9TdscTqDAOo9uXB85zjrbMrT3zQElLE,2542
112
+ google/adk/planners/__init__.py,sha256=6G_uYtLawi99HcgGGCOxcNleNezD2IaYLKz0P8nFkPQ,788
113
+ google/adk/planners/base_planner.py,sha256=cGlgxgxb_EAI8gkgiCpnLaf_rLs0U64yg94X32kGY2I,1961
114
+ google/adk/planners/built_in_planner.py,sha256=opeMOK6RZ1lQq0SLATyue1zM-UqFS29emtR1U2feO50,2450
115
+ google/adk/planners/plan_re_act_planner.py,sha256=i2DtzdyqNQsl1nV12Ty1ayEvjDMNFfnb8H2-PP9aNXQ,8478
116
+ google/adk/sessions/__init__.py,sha256=-gxRG5EY2NIlfEGHPu_6LQw8e5PfyCRAAjMuWCGbU3w,1264
117
+ google/adk/sessions/_session_util.py,sha256=b7a7BUwRkZl3TEHKDWuKx-NIieZR8dziaXfS70gm4vc,1419
118
+ google/adk/sessions/base_session_service.py,sha256=xLccWQqcrqWEj8Q43aqfoyey1Zmz2x-Oz6CHqIOxU5w,3045
119
+ google/adk/sessions/database_session_service.py,sha256=fDxnN7PJgbcTJFd9Mgzym2xYgsPneMhZQgPsXY9rVHw,19608
120
+ google/adk/sessions/in_memory_session_service.py,sha256=1CCoDl_pN7kLySlyZw7zJstD9o3jVF_QPtGgs_No47c,8699
121
+ google/adk/sessions/session.py,sha256=fwJ3D4rUQ1N5cLMpFrE_BstEz6Ct637FlF52MfkxZCk,1861
122
+ google/adk/sessions/state.py,sha256=con9G5nfJpa95J5LKTAnZ3KMPkXdaTbrdwRdKg6d6B4,2299
123
+ google/adk/sessions/vertex_ai_session_service.py,sha256=OpfMjbLgpq9CuMCq_MqMeoXGP-BnpVX8xxps_3UCygc,10682
124
+ google/adk/tools/__init__.py,sha256=11r3IPaFNE9XWFGji_5w1eX4d_C-d2Nam3UHDki4XIo,1691
125
+ google/adk/tools/_automatic_function_calling_util.py,sha256=Cf6bBNuBggMCKPK26-T-Y0EKGTFqNvhPhMhL0s4cYAM,10882
126
+ google/adk/tools/_built_in_code_execution_tool.py,sha256=BIC6S-KB9-i7_A6vrvmh8z5bwfH-5lRUs2_N0YwkJl0,2259
127
+ google/adk/tools/_memory_entry_utils.py,sha256=ecjuQskVAnqe9dH_VI7cz88UM9h1CvT1yTPKHiJyINA,967
128
+ google/adk/tools/agent_tool.py,sha256=bYgg7M9oJdNQsG4yRfebURLj0ASxBP8Gc5ML3PQessg,5975
129
+ google/adk/tools/base_tool.py,sha256=AnEXzXXTEYn2brfZp3rjLw9yCG6znU0NbeazBvofqHU,4456
130
+ google/adk/tools/base_toolset.py,sha256=yk23nBsvidkN6TUhhUOoVXl74knTa7yk5yToO62uhKg,1832
131
+ google/adk/tools/crewai_tool.py,sha256=CAOcizXvW_cQts5lFpS9IYcX71q_7eHoBxvFasdTBX8,2293
132
+ google/adk/tools/enterprise_search_tool.py,sha256=e2BP01rebVnl_8_8zcVgx_qWAGbWKAlvYjC0i4xR3Iw,2192
133
+ google/adk/tools/example_tool.py,sha256=gaG68obDbI29omDRmtoGSDEe1BFTV4MXk1JkfcoztFM,1947
134
+ google/adk/tools/exit_loop_tool.py,sha256=qjeQsHiOt6qgjlgNSQ0HhxyVt-X-JTwaSGo5--j2SpA,784
135
+ google/adk/tools/function_parameter_parse_util.py,sha256=ndwPm_R0Nx8iw_bvFuXXiM3DbdTvVs6ciBMAZA6LLu0,10659
136
+ google/adk/tools/function_tool.py,sha256=eig6l4dK_AEfTZvxBP-MNpxx3ayGeoguhMqB4otlrr4,4552
137
+ google/adk/tools/get_user_choice_tool.py,sha256=RuShc25aJB1ZcB_t38y8e75O1uFTNimyZbiLEbZMntg,993
138
+ google/adk/tools/google_search_tool.py,sha256=0DeRgDhqxraQ-9waYp4hfgEssxNYddrpsHxDtrHsZEc,2282
139
+ google/adk/tools/langchain_tool.py,sha256=OlzPfPKdt3IdT_PxykDEOwbksq6SVJzShSkN-i63JQY,4523
140
+ google/adk/tools/load_artifacts_tool.py,sha256=UZ9aU0e2h2Z85JhRxG7fRdQpua_klUUF_1MEa9_Dy_A,3733
141
+ google/adk/tools/load_memory_tool.py,sha256=85nnXNDtmjQdl9DlLRNNVLECSHXdFuSSEknDgbOUS9o,2579
142
+ google/adk/tools/load_web_page.py,sha256=PiIX6KzHqBPy0cdskhXtT3RWUOTGS4RTbzFQGHG80pU,1263
143
+ google/adk/tools/long_running_tool.py,sha256=au3THXaV_uRsC3Q-v4rSz6Tt895vSd2xz-85nyWKSJ4,1309
144
+ google/adk/tools/preload_memory_tool.py,sha256=dnWXolahZOwO8oEFrMf6xCCV855r8tbybmkbwZWc0gk,2440
145
+ google/adk/tools/tool_context.py,sha256=WbcmgtQJJ7xyjo8C7Hmy3-wy0RY7GSd5dJ71o5_5cdU,3618
146
+ google/adk/tools/toolbox_toolset.py,sha256=a0ML7hUcGRJx7rjeqDhheRYKc0-FZXsz36ePwjm5EAQ,2375
147
+ google/adk/tools/transfer_to_agent_tool.py,sha256=rUuQpQD9w6FZSQ6bPVlzTDivwpNd_AFACeawvf5cAk4,784
148
+ google/adk/tools/vertex_ai_search_tool.py,sha256=8i3dRzH0dQBYxg7OZ2O1TzjB9KvxzVX0QUjChUz5Er4,3268
149
+ google/adk/tools/apihub_tool/__init__.py,sha256=89tWC4Mm-MYoJ9Al_b8nbqFLeTgPO0-j411SkLuuzaQ,653
150
+ google/adk/tools/apihub_tool/apihub_toolset.py,sha256=ocTvHe6kObEcSYhrdMhxC_HagCTI1DWVQhucmN_zYl0,6993
151
+ google/adk/tools/apihub_tool/clients/__init__.py,sha256=Q9FlRO2IfSE9yEaiAYzWkOMBJPCaNYqh4ihcp0t0BQs,574
152
+ google/adk/tools/apihub_tool/clients/apihub_client.py,sha256=dkNIjZosawkP1yB2OhkW8ZZBpfamLfFJ5WFiEw1Umn8,11264
153
+ google/adk/tools/apihub_tool/clients/secret_client.py,sha256=U1YsWUJvq2mmLRQETX91l0fwteyBTZWsP4USozA144c,4126
154
+ google/adk/tools/application_integration_tool/__init__.py,sha256=-MTn3o2VedLtrY2mw6GW0qBtYd8BS12luK-E-Nwhg9g,799
155
+ google/adk/tools/application_integration_tool/application_integration_toolset.py,sha256=dYMtx266sRA3WTg0k7m27mP9X1c0kTW5GFdlySfUIbo,10245
156
+ google/adk/tools/application_integration_tool/integration_connector_tool.py,sha256=wxXHlZJCBGWdQHc_tvCKf9QOllIj0_pr2X99yo1cz6c,7552
157
+ google/adk/tools/application_integration_tool/clients/connections_client.py,sha256=oYTMo2Sv3gjeEZIMdLvTzc_d2ipydlFsOXUmGUupBAs,30921
158
+ google/adk/tools/application_integration_tool/clients/integration_client.py,sha256=19qCVC7cpk1BjKt-jofixMFzzZ7Fa63dUBQHauDv_5s,10635
159
+ google/adk/tools/google_api_tool/__init__.py,sha256=rGwFkzlv0tjRODog7QlQe4IX1jatrJZ_gNxbVcEMZz0,1207
160
+ google/adk/tools/google_api_tool/google_api_tool.py,sha256=YX4ypDOeZhhEkUY1wyGC_jhzXgJYmBEm0qipbip7U5A,2029
161
+ google/adk/tools/google_api_tool/google_api_toolset.py,sha256=9yFET_S_5EXygPmA2Kr9hHYi2EvOZuMcfBMxe0nJ-oA,4138
162
+ google/adk/tools/google_api_tool/google_api_toolsets.py,sha256=7N6fAps2ybuaZoYZ9o4ht2BEYEVTkMa5jGbgEfZzcmk,2807
163
+ google/adk/tools/google_api_tool/googleapi_to_openapi_converter.py,sha256=wCtPXoGpeQvKueWJZ_ilUfCRh3mMdd46Yqt5XOQNbxc,16319
164
+ google/adk/tools/mcp_tool/__init__.py,sha256=Y0cM1WBd-av4yKp9YHp9LMcUXp5fLr49MC0sTHTkAn4,1237
165
+ google/adk/tools/mcp_tool/conversion_utils.py,sha256=vbXzTbRQrDu_KZg0vChQp4hWc3zUSY1FvJZJgLbYrDw,5225
166
+ google/adk/tools/mcp_tool/mcp_session_manager.py,sha256=Roh2-tBrmNu2BrD-gtTZVOng_CufvjO80gxvvVdFnnc,10761
167
+ google/adk/tools/mcp_tool/mcp_session_manager.py.orig,sha256=dUPcA1XHx3-OXkuWIL5LfY3J8ww4dWQ2zdU6HBbF9S8,10686
168
+ google/adk/tools/mcp_tool/mcp_tool.py,sha256=CeVNM5IJtZNBMCeEsFt5VyC8QDrb1v2Q2_xUY6XsHhY,4147
169
+ google/adk/tools/mcp_tool/mcp_toolset.py,sha256=ZezN4k3EWfb8r8pi8MDRsJxAjabnDpo2qvMYcxo4mBI,7420
170
+ google/adk/tools/openapi_tool/__init__.py,sha256=UMsewNCQjd-r1GBX1OMuUJTzJ0AlQuegIc98g04-0oU,724
171
+ google/adk/tools/openapi_tool/auth/__init__.py,sha256=NVRXscqN4V0CSCvIp8J_ee8Xyw4m-OGoZn7SmrtOsQk,637
172
+ google/adk/tools/openapi_tool/auth/auth_helpers.py,sha256=73GGGxvLZWH_YW7BEObAY-rVz3r401dm98kl5oq-nwM,15901
173
+ google/adk/tools/openapi_tool/auth/credential_exchangers/__init__.py,sha256=yKpIfNIaQD2dmPsly9Usq4lvfu1ZReVAtHlvZuSglF8,1002
174
+ google/adk/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.py,sha256=E1wuilbik3KhzbXZC2XR0fs3NZhpOglXYwpzr6Bj6lY,3398
175
+ google/adk/tools/openapi_tool/auth/credential_exchangers/base_credential_exchanger.py,sha256=XxW5vQk_AaD_vSOwwWpLIMzHvPUfvuouSzh74ZxBqDk,1790
176
+ google/adk/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.py,sha256=1TOsoH2dEh1RBJgAWSGfAqKWYmNHJRobcfWuKGX_D9I,3869
177
+ google/adk/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.py,sha256=saG7AZNqH_a4rQc3m1Fx2t4extiH1QZCifxgkxvxRAI,3335
178
+ google/adk/tools/openapi_tool/common/__init__.py,sha256=XqwyKnQGngeU1EzoBMkL5c9BF_rD-s3nw_d2Va1MLhQ,625
179
+ google/adk/tools/openapi_tool/common/common.py,sha256=lpgp5eWtqTw2belJtL2pAmtwXxbkVK_LHlQooNRc1A8,8924
180
+ google/adk/tools/openapi_tool/openapi_spec_parser/__init__.py,sha256=S89I_GQukqn5edJ13oqyDufMkZUMpWokX3ju4QziFBQ,1155
181
+ google/adk/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.py,sha256=OomWa0rYWPPTs16pzT-3AvIcXwJeYBoQQgBy0R3opdI,7881
182
+ google/adk/tools/openapi_tool/openapi_spec_parser/openapi_toolset.py,sha256=Xq2gBF5kHn1EXoV_0RpJiH4C8UXLhAeqfw0D_A7yVZI,5681
183
+ google/adk/tools/openapi_tool/openapi_spec_parser/operation_parser.py,sha256=QV39I9j3YIDxjPDzSaF2urWwp-pfnxWsYFWH7jSBW8U,8961
184
+ google/adk/tools/openapi_tool/openapi_spec_parser/rest_api_tool.py,sha256=6hJAiJQDTkRwNZxCK8g0QkrUs8mudeAK8_b-alygPBg,18955
185
+ google/adk/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.py,sha256=oZYJGokSx6YMs7h7t8qBzdUDW-pIdQDS3DxaADn0Fjc,9134
186
+ google/adk/tools/retrieval/__init__.py,sha256=0euJjx0ReH8JmUI5-JU8kWRswqLxobRCDjx5zvX4rHY,1188
187
+ google/adk/tools/retrieval/base_retrieval_tool.py,sha256=4aar8Kg-6rQG7Ht1n18D5fvJnuffodFdSjeCp-GzA7w,1174
188
+ google/adk/tools/retrieval/files_retrieval.py,sha256=bucma_LL7aw15GQnYwgpDP1Lo9UqN-RFlG3w1w0sWfw,1158
189
+ google/adk/tools/retrieval/llama_index_retrieval.py,sha256=r9HUQXqygxizX0OXz7pJAWxzRRwmofAtFa3UvRR2di0,1304
190
+ google/adk/tools/retrieval/vertex_ai_rag_retrieval.py,sha256=aDsQPeScrYoHdLg0Yq7_haT1CJbHDxCPGRyhCy1ET-o,3356
191
+ google_adk-1.0.0.dist-info/entry_points.txt,sha256=zL9CU-6V2yQ2oc5lrcyj55ROHrpiIePsvQJ4H6SL-zI,43
192
+ google_adk-1.0.0.dist-info/licenses/LICENSE,sha256=WNHhf_5RCaeuKWyq_K39vmp9F28LxKsB4SpomwSZ2L0,11357
193
+ google_adk-1.0.0.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
194
+ google_adk-1.0.0.dist-info/METADATA,sha256=vYlIaW0u2CPzZq9BrrYcRK_giMeA4Z9j8eKmyq5VP_k,9758
195
+ google_adk-1.0.0.dist-info/RECORD,,