google-adk 0.3.0__py3-none-any.whl → 0.4.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.
@@ -0,0 +1,159 @@
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
+
16
+ import logging
17
+ from typing import Any
18
+ from typing import Dict
19
+ from typing import Optional
20
+
21
+ from google.adk.tools.openapi_tool.openapi_spec_parser.rest_api_tool import RestApiTool
22
+ from google.adk.tools.openapi_tool.openapi_spec_parser.rest_api_tool import to_gemini_schema
23
+ from google.genai.types import FunctionDeclaration
24
+ from typing_extensions import override
25
+
26
+ from .. import BaseTool
27
+ from ..tool_context import ToolContext
28
+
29
+ logger = logging.getLogger(__name__)
30
+
31
+
32
+ class IntegrationConnectorTool(BaseTool):
33
+ """A tool that wraps a RestApiTool to interact with a specific Application Integration endpoint.
34
+
35
+ This tool adds Application Integration specific context like connection
36
+ details, entity, operation, and action to the underlying REST API call
37
+ handled by RestApiTool. It prepares the arguments and then delegates the
38
+ actual API call execution to the contained RestApiTool instance.
39
+
40
+ * Generates request params and body
41
+ * Attaches auth credentials to API call.
42
+
43
+ Example:
44
+ ```
45
+ # Each API operation in the spec will be turned into its own tool
46
+ # Name of the tool is the operationId of that operation, in snake case
47
+ operations = OperationGenerator().parse(openapi_spec_dict)
48
+ tool = [RestApiTool.from_parsed_operation(o) for o in operations]
49
+ ```
50
+ """
51
+
52
+ EXCLUDE_FIELDS = [
53
+ 'connection_name',
54
+ 'service_name',
55
+ 'host',
56
+ 'entity',
57
+ 'operation',
58
+ 'action',
59
+ ]
60
+
61
+ OPTIONAL_FIELDS = [
62
+ 'page_size',
63
+ 'page_token',
64
+ 'filter',
65
+ ]
66
+
67
+ def __init__(
68
+ self,
69
+ name: str,
70
+ description: str,
71
+ connection_name: str,
72
+ connection_host: str,
73
+ connection_service_name: str,
74
+ entity: str,
75
+ operation: str,
76
+ action: str,
77
+ rest_api_tool: RestApiTool,
78
+ ):
79
+ """Initializes the ApplicationIntegrationTool.
80
+
81
+ Args:
82
+ name: The name of the tool, typically derived from the API operation.
83
+ Should be unique and adhere to Gemini function naming conventions
84
+ (e.g., less than 64 characters).
85
+ description: A description of what the tool does, usually based on the
86
+ API operation's summary or description.
87
+ connection_name: The name of the Integration Connector connection.
88
+ connection_host: The hostname or IP address for the connection.
89
+ connection_service_name: The specific service name within the host.
90
+ entity: The Integration Connector entity being targeted.
91
+ operation: The specific operation being performed on the entity.
92
+ action: The action associated with the operation (e.g., 'execute').
93
+ rest_api_tool: An initialized RestApiTool instance that handles the
94
+ underlying REST API communication based on an OpenAPI specification
95
+ operation. This tool will be called by ApplicationIntegrationTool with
96
+ added connection and context arguments. tool =
97
+ [RestApiTool.from_parsed_operation(o) for o in operations]
98
+ """
99
+ # Gemini restrict the length of function name to be less than 64 characters
100
+ super().__init__(
101
+ name=name,
102
+ description=description,
103
+ )
104
+ self.connection_name = connection_name
105
+ self.connection_host = connection_host
106
+ self.connection_service_name = connection_service_name
107
+ self.entity = entity
108
+ self.operation = operation
109
+ self.action = action
110
+ self.rest_api_tool = rest_api_tool
111
+
112
+ @override
113
+ def _get_declaration(self) -> FunctionDeclaration:
114
+ """Returns the function declaration in the Gemini Schema format."""
115
+ schema_dict = self.rest_api_tool._operation_parser.get_json_schema()
116
+ for field in self.EXCLUDE_FIELDS:
117
+ if field in schema_dict['properties']:
118
+ del schema_dict['properties'][field]
119
+ for field in self.OPTIONAL_FIELDS + self.EXCLUDE_FIELDS:
120
+ if field in schema_dict['required']:
121
+ schema_dict['required'].remove(field)
122
+
123
+ parameters = to_gemini_schema(schema_dict)
124
+ function_decl = FunctionDeclaration(
125
+ name=self.name, description=self.description, parameters=parameters
126
+ )
127
+ return function_decl
128
+
129
+ @override
130
+ async def run_async(
131
+ self, *, args: dict[str, Any], tool_context: Optional[ToolContext]
132
+ ) -> Dict[str, Any]:
133
+ args['connection_name'] = self.connection_name
134
+ args['service_name'] = self.connection_service_name
135
+ args['host'] = self.connection_host
136
+ args['entity'] = self.entity
137
+ args['operation'] = self.operation
138
+ args['action'] = self.action
139
+ logger.info('Running tool: %s with args: %s', self.name, args)
140
+ return self.rest_api_tool.call(args=args, tool_context=tool_context)
141
+
142
+ def __str__(self):
143
+ return (
144
+ f'ApplicationIntegrationTool(name="{self.name}",'
145
+ f' description="{self.description}",'
146
+ f' connection_name="{self.connection_name}", entity="{self.entity}",'
147
+ f' operation="{self.operation}", action="{self.action}")'
148
+ )
149
+
150
+ def __repr__(self):
151
+ return (
152
+ f'ApplicationIntegrationTool(name="{self.name}",'
153
+ f' description="{self.description}",'
154
+ f' connection_name="{self.connection_name}",'
155
+ f' connection_host="{self.connection_host}",'
156
+ f' connection_service_name="{self.connection_service_name}",'
157
+ f' entity="{self.entity}", operation="{self.operation}",'
158
+ f' action="{self.action}", rest_api_tool={repr(self.rest_api_tool)})'
159
+ )
@@ -59,6 +59,23 @@ class FunctionTool(BaseTool):
59
59
  if 'tool_context' in signature.parameters:
60
60
  args_to_call['tool_context'] = tool_context
61
61
 
62
+ # Before invoking the function, we check for if the list of args passed in
63
+ # has all the mandatory arguments or not.
64
+ # If the check fails, then we don't invoke the tool and let the Agent know
65
+ # that there was a missing a input parameter. This will basically help
66
+ # the underlying model fix the issue and retry.
67
+ mandatory_args = self._get_mandatory_args()
68
+ missing_mandatory_args = [
69
+ arg for arg in mandatory_args if arg not in args_to_call
70
+ ]
71
+
72
+ if missing_mandatory_args:
73
+ missing_mandatory_args_str = '\n'.join(missing_mandatory_args)
74
+ error_str = f"""Invoking `{self.name}()` failed as the following mandatory input parameters are not present:
75
+ {missing_mandatory_args_str}
76
+ You could retry calling this tool, but it is IMPORTANT for you to provide all the mandatory parameters."""
77
+ return {'error': error_str}
78
+
62
79
  if inspect.iscoroutinefunction(self.func):
63
80
  return await self.func(**args_to_call) or {}
64
81
  else:
@@ -85,3 +102,28 @@ class FunctionTool(BaseTool):
85
102
  args_to_call['tool_context'] = tool_context
86
103
  async for item in self.func(**args_to_call):
87
104
  yield item
105
+
106
+ def _get_mandatory_args(
107
+ self,
108
+ ) -> list[str]:
109
+ """Identifies mandatory parameters (those without default values) for a function.
110
+
111
+ Returns:
112
+ A list of strings, where each string is the name of a mandatory parameter.
113
+ """
114
+ signature = inspect.signature(self.func)
115
+ mandatory_params = []
116
+
117
+ for name, param in signature.parameters.items():
118
+ # A parameter is mandatory if:
119
+ # 1. It has no default value (param.default is inspect.Parameter.empty)
120
+ # 2. It's not a variable positional (*args) or variable keyword (**kwargs) parameter
121
+ #
122
+ # For more refer to: https://docs.python.org/3/library/inspect.html#inspect.Parameter.kind
123
+ if param.default == inspect.Parameter.empty and param.kind not in (
124
+ inspect.Parameter.VAR_POSITIONAL,
125
+ inspect.Parameter.VAR_KEYWORD,
126
+ ):
127
+ mandatory_params.append(name)
128
+
129
+ return mandatory_params
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.3.0"
16
+ __version__ = "0.4.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: google-adk
3
- Version: 0.3.0
3
+ Version: 0.4.0
4
4
  Summary: Agent Development Kit
5
5
  Author-email: Google LLC <googleapis-packages@google.com>
6
6
  Requires-Python: >=3.9
@@ -99,11 +99,7 @@ Provides-Extra: test
99
99
  </h3>
100
100
  </html>
101
101
 
102
- Agent Development Kit (ADK) is designed for developers seeking fine-grained
103
- control and flexibility when building advanced AI agents that are tightly
104
- integrated with services in Google Cloud. It allows you to define agent
105
- behavior, orchestration, and tool use directly in code, enabling robust
106
- debugging, versioning, and deployment anywhere – from your laptop to the cloud.
102
+ Agent Development Kit (ADK) is a flexible and modular framework for developing and deploying AI agents. While optimized for Gemini and the Google ecosystem, ADK is model-agnostic, deployment-agnostic, and is built for compatibility with other frameworks. ADK was designed to make agent development feel more like software development, to make it easier for developers to create, deploy, and orchestrate agentic architectures that range from simple tasks to complex workflows.
107
103
 
108
104
 
109
105
  ---
@@ -1,15 +1,15 @@
1
1
  google/adk/__init__.py,sha256=sSPQK3r0tW8ahl-k8SXkZvMcbiTbGICCtrw6KkFucyg,726
2
2
  google/adk/runners.py,sha256=EDCUtbe7dXjpBMCXodTFkDEC5cclJzLx5KmkBXUF0Lk,15505
3
3
  google/adk/telemetry.py,sha256=P1192g-EJQPXNu3PCv3DXxea7VtsOP_oX6kGm3D6qxc,6285
4
- google/adk/version.py,sha256=fqBUZHTJqQ7WrQsxSzInY3Z15HBVijkSB1edwAzoBr0,621
4
+ google/adk/version.py,sha256=Ho6b6xUXT52Hqq0bEcD5Ymit65vo_AOQgASPDbR0trI,621
5
5
  google/adk/agents/__init__.py,sha256=WsCiBlvI-ISWrcntboo_sULvVJNwLNxXCe42UGPLKdY,1041
6
6
  google/adk/agents/active_streaming_tool.py,sha256=AYrT9aCFBzaESFzkMTil_fuK1zDoKDfZQaQXL3_Jxog,1159
7
- google/adk/agents/base_agent.py,sha256=qN4P0x515T6xWV2XMBFrTduYaEKqQOTnKZWNQqKkvpI,10570
7
+ google/adk/agents/base_agent.py,sha256=CWUFFt1mXQ4F8AjTB-wJWh4C-sd1Z8mKKEpRDBbTF9w,10514
8
8
  google/adk/agents/callback_context.py,sha256=lbXMgzBaxToAyT3bQTXUJzcFUBltMOumRxS0kFKjoFA,3574
9
9
  google/adk/agents/invocation_context.py,sha256=W4VMfFGecRoSX_rwDIgACzxPIMtMin84eADAX-zHj9Y,6173
10
10
  google/adk/agents/langgraph_agent.py,sha256=CU3onlHGBp61-SgHHJQu6f2KrFXp5qrDYI9nGvLGQC4,4252
11
11
  google/adk/agents/live_request_queue.py,sha256=auQnKALpHQSCh__7CikfGgteqErZaPsivQ7goFySlXI,2074
12
- google/adk/agents/llm_agent.py,sha256=7OkwfsWkl2Dy9hP6F78dPqkDgvkXrHkVps9MAT3duUg,12266
12
+ google/adk/agents/llm_agent.py,sha256=HaeB5NhS1Gh5J22fa1LSAzaqpbRuJzde9weIBgV34u0,12255
13
13
  google/adk/agents/loop_agent.py,sha256=IjmcFQ-vFeXXKuCb7pYOH1vJUdUUEx4sQaynZ7n0cKU,1940
14
14
  google/adk/agents/parallel_agent.py,sha256=PVwlpAO1es7cPsGlK_Pax0sAmPsprn2X6v3cNxRDC3Y,2981
15
15
  google/adk/agents/readonly_context.py,sha256=O5n4Eupq-lWRoMi1MSA3lZu_DoMtcXYpRoK8wknSLX8,1409
@@ -30,11 +30,11 @@ google/adk/auth/auth_tool.py,sha256=GQU3Px9Xv1VcXAcd8MdpvmwuRon1rRpPDeg3xDSYJP8,
30
30
  google/adk/cli/__init__.py,sha256=ouPYnIY02VmGNfpA6IT8oSQdfeZd1LHVoDSt_x8zQPU,609
31
31
  google/adk/cli/__main__.py,sha256=gN8rRWlkh_3gLI-oYByxrKpCW9BIfDwrr0YuyisxmHo,646
32
32
  google/adk/cli/agent_graph.py,sha256=H5gvs2wG6ks3F6pk14f33txmvAN9rr0_2H2fNMF96VE,4754
33
- google/adk/cli/cli.py,sha256=FHKi-ZP-ieP2fS_zJIVJRBC06v9il0vN7Y7IcdBnZKw,5822
33
+ google/adk/cli/cli.py,sha256=qvF6i9J6pdrqc71pi8qJ3M7zlKX--HbzLZwXg33Q5hc,6104
34
34
  google/adk/cli/cli_create.py,sha256=S5sAKIzTjaf3bWoh6nUCSxm9koxdkN0SkTnOtsl0Oqs,8010
35
35
  google/adk/cli/cli_deploy.py,sha256=ESIMrpUDAg7DPVGv9r_wFXj3INJt4BooJj6Wri-TiDk,5340
36
36
  google/adk/cli/cli_eval.py,sha256=yWnfyOYSpcKPeBGhQeY811Wc679qi5h9awWUzxJ0wgc,9217
37
- google/adk/cli/cli_tools_click.py,sha256=1BiwJ5mWI53y96Dce4OZRQnwivmGrGEfHA7doDj-pCA,15842
37
+ google/adk/cli/cli_tools_click.py,sha256=EG_odLJC6Kph1aC8e2pmNqVgN3nPaiimJl7XWdwh7Ms,17424
38
38
  google/adk/cli/fast_api.py,sha256=WHO8EDtsp2si_ohde12R08cWbr79tyh4fzz5jFhIvGE,26936
39
39
  google/adk/cli/browser/adk_favicon.svg,sha256=giyzTZ5Xe6HFU63NgTIZDm35L-RmID-odVFOZ4vMo1M,3132
40
40
  google/adk/cli/browser/index.html,sha256=vbJZT9el5PQyCUy20mEue6yy4ee0RH4-GGfarnbkx3g,18483
@@ -62,7 +62,7 @@ google/adk/evaluation/response_evaluator.py,sha256=0k0_QJWh-yh_mBPE4dSO3IPhE2fWp
62
62
  google/adk/evaluation/trajectory_evaluator.py,sha256=YgrQCkYyc8C1-h-0g1ogXM1lumZbHUXwqQdgz-KUj64,5408
63
63
  google/adk/events/__init__.py,sha256=Lh0rh6RAt5DIxbwBUajjGMbB6bZW5K4Qli6PD_Jv74Q,688
64
64
  google/adk/events/event.py,sha256=BjbDWV8KYB6i6sKH0YMNhWE4YUrsLFpWfymjJ7moZIk,4555
65
- google/adk/events/event_actions.py,sha256=k8kn-jXPHDslvv2InUIgaNUyCj7oR86YveqyTl3-cOQ,1889
65
+ google/adk/events/event_actions.py,sha256=N4C3mX22CEpgz8saFfcdrvWiso-MJ2LYBSkFj7wRDDw,2113
66
66
  google/adk/examples/__init__.py,sha256=LCuLG_SOF9OAV3vc1tHAaBAOeQEZl0MFHC2LGmZ6e-A,851
67
67
  google/adk/examples/base_example_provider.py,sha256=MkY_4filPUOd_M_YgK-pJpOuNxvD1b8sp_pty-BNnmM,1073
68
68
  google/adk/examples/example.py,sha256=pA50kiWeWjwzO43p23ztNoRP8lI2Gabik9yphTw8JRw,867
@@ -78,8 +78,8 @@ google/adk/flows/llm_flows/audio_transcriber.py,sha256=uEa6727OIHaiShvT3w4S8bDz-
78
78
  google/adk/flows/llm_flows/auto_flow.py,sha256=CnuFelyZhB_ns4U_5_dW0x_KQlzu02My7qWcB4XBCYY,1714
79
79
  google/adk/flows/llm_flows/base_llm_flow.py,sha256=H7c3AxWMj8n2UpLkLKvL6ew9jekO83ptSDUVuYYVfkU,19352
80
80
  google/adk/flows/llm_flows/basic.py,sha256=79DM3qVOspJn2bHWMPptWDJRuFQxdX7ZYM1h-V8X9QQ,2344
81
- google/adk/flows/llm_flows/contents.py,sha256=hMlyzQZGxmAI5oHFyAJWFPA2632ogSHSGQVdhSHpUh4,12880
82
- google/adk/flows/llm_flows/functions.py,sha256=jeyUzZQuFLgTqNNl-WV2Xqcw173NoL3bbjOa-NJWahY,15973
81
+ google/adk/flows/llm_flows/contents.py,sha256=b3OBGKNJS3Tf61Fu4ge_vATExUQWtWSF1wH-ENl_FDI,12974
82
+ google/adk/flows/llm_flows/functions.py,sha256=OVJJbbcxzoQllXYgdlvI7umkLNFiNEi_lBpRfJESiZE,16983
83
83
  google/adk/flows/llm_flows/identity.py,sha256=X4CRg12NvnopmydU9gbFJI4lW1_otN-w_GOAuPvKrXo,1651
84
84
  google/adk/flows/llm_flows/instructions.py,sha256=GuIgzuFyRCrCHqN2RibmgjRsa_nT32-BzRZgy05yCpo,4434
85
85
  google/adk/flows/llm_flows/single_flow.py,sha256=FTy_cJqhD9FZT_PCYdMlHVvOBSq4mWq1WCAwOnTI6W8,1888
@@ -102,12 +102,13 @@ google/adk/planners/base_planner.py,sha256=cGlgxgxb_EAI8gkgiCpnLaf_rLs0U64yg94X3
102
102
  google/adk/planners/built_in_planner.py,sha256=opeMOK6RZ1lQq0SLATyue1zM-UqFS29emtR1U2feO50,2450
103
103
  google/adk/planners/plan_re_act_planner.py,sha256=i2DtzdyqNQsl1nV12Ty1ayEvjDMNFfnb8H2-PP9aNXQ,8478
104
104
  google/adk/sessions/__init__.py,sha256=hbSFrzrbKbpL-akrCD1SYxjk92BVvzGxJzuuwn5dmEI,1248
105
+ google/adk/sessions/_session_util.py,sha256=DVj9kQsVVZPujjvgpe75kP3zitBKG9QlkROgDAyWpZI,844
105
106
  google/adk/sessions/base_session_service.py,sha256=0UuEXFRaXwO16PJntUk9VtPZDiCa1tkLnvvnjqCQjtA,3579
106
- google/adk/sessions/database_session_service.py,sha256=-_jgYvaKffVmmppkNDXzspVRhdIrC8ff8p1OWGsrdAA,19192
107
+ google/adk/sessions/database_session_service.py,sha256=T4I3AjILQGp_JLkOejzvAV79AUYRnpgq8SAWYAlCHsk,19283
107
108
  google/adk/sessions/in_memory_session_service.py,sha256=4_wvZRBya2W-lYcGkIcCvdueHMN-GN2n9vcpehNmP3o,6398
108
109
  google/adk/sessions/session.py,sha256=H3nm9u-0JMbd0HZygsVdnkcdO78xraoNaDSmjor6lCA,1710
109
110
  google/adk/sessions/state.py,sha256=con9G5nfJpa95J5LKTAnZ3KMPkXdaTbrdwRdKg6d6B4,2299
110
- google/adk/sessions/vertex_ai_session_service.py,sha256=UHRAQxvtADoe0dYwdKHPGPJ4D1KTgeapq-19IqyZlOc,11090
111
+ google/adk/sessions/vertex_ai_session_service.py,sha256=nA6gHd4Rais5brUbpN2Slq0vXaCpNV3VKebnWu0sG0M,11149
111
112
  google/adk/tools/__init__.py,sha256=IpyRAQ29HdslRGMQd2RwAEVV3rvgSQdJuAulJLn_brM,1825
112
113
  google/adk/tools/_automatic_function_calling_util.py,sha256=Cf6bBNuBggMCKPK26-T-Y0EKGTFqNvhPhMhL0s4cYAM,10882
113
114
  google/adk/tools/agent_tool.py,sha256=DUBLkXhIdEd8zQ0vr8hKlTdY4rWGC5xb3fZRcJyKrrE,5837
@@ -117,7 +118,7 @@ google/adk/tools/crewai_tool.py,sha256=CAOcizXvW_cQts5lFpS9IYcX71q_7eHoBxvFasdTB
117
118
  google/adk/tools/example_tool.py,sha256=gaG68obDbI29omDRmtoGSDEe1BFTV4MXk1JkfcoztFM,1947
118
119
  google/adk/tools/exit_loop_tool.py,sha256=qjeQsHiOt6qgjlgNSQ0HhxyVt-X-JTwaSGo5--j2SpA,784
119
120
  google/adk/tools/function_parameter_parse_util.py,sha256=kLFtIA9O1AtBRA8_mcSjDhV_dZoIv1cH68NLIsj_bmk,10640
120
- google/adk/tools/function_tool.py,sha256=Nfiz4qrxKXYF8gRdvoR9Bc6gEfJe5Ve4_gL1MI_eEdA,2766
121
+ google/adk/tools/function_tool.py,sha256=eig6l4dK_AEfTZvxBP-MNpxx3ayGeoguhMqB4otlrr4,4552
121
122
  google/adk/tools/get_user_choice_tool.py,sha256=RuShc25aJB1ZcB_t38y8e75O1uFTNimyZbiLEbZMntg,993
122
123
  google/adk/tools/google_search_tool.py,sha256=0DeRgDhqxraQ-9waYp4hfgEssxNYddrpsHxDtrHsZEc,2282
123
124
  google/adk/tools/langchain_tool.py,sha256=Hq4VHnMTFsN1vSBEO-QSnzhs1lS59n-yHFswq5gHtO4,2842
@@ -135,9 +136,10 @@ google/adk/tools/apihub_tool/apihub_toolset.py,sha256=IZeyZ8n9r4RbAo7UHg6fYAlrRC
135
136
  google/adk/tools/apihub_tool/clients/__init__.py,sha256=Q9FlRO2IfSE9yEaiAYzWkOMBJPCaNYqh4ihcp0t0BQs,574
136
137
  google/adk/tools/apihub_tool/clients/apihub_client.py,sha256=dkNIjZosawkP1yB2OhkW8ZZBpfamLfFJ5WFiEw1Umn8,11264
137
138
  google/adk/tools/apihub_tool/clients/secret_client.py,sha256=U1YsWUJvq2mmLRQETX91l0fwteyBTZWsP4USozA144c,4126
138
- google/adk/tools/application_integration_tool/__init__.py,sha256=r_xoeFyCL4sHuWQAlCeMUJRO1je7eayqy6ffxYyhByA,702
139
- google/adk/tools/application_integration_tool/application_integration_toolset.py,sha256=wWVhoRq3US4unAGcTuOnurHdy2uieifVHJOlwsVHIXU,8615
140
- google/adk/tools/application_integration_tool/clients/connections_client.py,sha256=DwnzG6RQVPUd87O7Y0-d4GzYL5oeBPJKmecAmYwC45Q,31763
139
+ google/adk/tools/application_integration_tool/__init__.py,sha256=-MTn3o2VedLtrY2mw6GW0qBtYd8BS12luK-E-Nwhg9g,799
140
+ google/adk/tools/application_integration_tool/application_integration_toolset.py,sha256=R4jGxrIcK-B9E8sJXPw9VEjdrPvP7oJop2Q0DcGZQdI,9497
141
+ google/adk/tools/application_integration_tool/integration_connector_tool.py,sha256=3zkeUOmX2uF6jSuwmDRJ0qG69w3fkAc1nkOsxkjskGQ,5929
142
+ google/adk/tools/application_integration_tool/clients/connections_client.py,sha256=oHFiguPMEXPACrO4X5F1C2Fa2un2RQC5r9EoEdOvNV0,30609
141
143
  google/adk/tools/application_integration_tool/clients/integration_client.py,sha256=GkFHqcTWDu3jlRcYUEEyEbFU6_-HrOlcMve-sRuo1q4,10639
142
144
  google/adk/tools/google_api_tool/__init__.py,sha256=nv6nv42vii1ECjXgKhC6Dv343f7kAiMNDn0gxJ0omnE,2584
143
145
  google/adk/tools/google_api_tool/google_api_tool.py,sha256=CeVKiXxqOZ5hQWHMdmT_Ld5TQDiv7NBucKEpHBEW0G8,1876
@@ -170,8 +172,8 @@ google/adk/tools/retrieval/base_retrieval_tool.py,sha256=4aar8Kg-6rQG7Ht1n18D5fv
170
172
  google/adk/tools/retrieval/files_retrieval.py,sha256=bucma_LL7aw15GQnYwgpDP1Lo9UqN-RFlG3w1w0sWfw,1158
171
173
  google/adk/tools/retrieval/llama_index_retrieval.py,sha256=r9HUQXqygxizX0OXz7pJAWxzRRwmofAtFa3UvRR2di0,1304
172
174
  google/adk/tools/retrieval/vertex_ai_rag_retrieval.py,sha256=FzLpZctWX232wn24M-CvjV8s1StivNy8H7e5IqgWphg,3340
173
- google_adk-0.3.0.dist-info/entry_points.txt,sha256=zL9CU-6V2yQ2oc5lrcyj55ROHrpiIePsvQJ4H6SL-zI,43
174
- google_adk-0.3.0.dist-info/licenses/LICENSE,sha256=WNHhf_5RCaeuKWyq_K39vmp9F28LxKsB4SpomwSZ2L0,11357
175
- google_adk-0.3.0.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
176
- google_adk-0.3.0.dist-info/METADATA,sha256=WqUUPkRy4dW--DEpT-OSDzNnMSUuvmj7Yg1zi8p9GcM,9554
177
- google_adk-0.3.0.dist-info/RECORD,,
175
+ google_adk-0.4.0.dist-info/entry_points.txt,sha256=zL9CU-6V2yQ2oc5lrcyj55ROHrpiIePsvQJ4H6SL-zI,43
176
+ google_adk-0.4.0.dist-info/licenses/LICENSE,sha256=WNHhf_5RCaeuKWyq_K39vmp9F28LxKsB4SpomwSZ2L0,11357
177
+ google_adk-0.4.0.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
178
+ google_adk-0.4.0.dist-info/METADATA,sha256=1rHQ4WoxghZc7GIzqLg80WsWNaqsnuGiN-Cw-a2fIc4,9654
179
+ google_adk-0.4.0.dist-info/RECORD,,