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.
- google/adk/agents/base_agent.py +7 -7
- google/adk/agents/llm_agent.py +3 -8
- google/adk/cli/cli.py +54 -47
- google/adk/cli/cli_tools_click.py +50 -1
- google/adk/events/event_actions.py +9 -4
- google/adk/flows/llm_flows/contents.py +9 -5
- google/adk/flows/llm_flows/functions.py +37 -15
- google/adk/sessions/_session_util.py +29 -0
- google/adk/sessions/database_session_service.py +57 -44
- google/adk/sessions/vertex_ai_session_service.py +7 -5
- google/adk/tools/application_integration_tool/__init__.py +2 -0
- google/adk/tools/application_integration_tool/application_integration_toolset.py +48 -26
- google/adk/tools/application_integration_tool/clients/connections_client.py +26 -54
- google/adk/tools/application_integration_tool/integration_connector_tool.py +159 -0
- google/adk/tools/function_tool.py +42 -0
- google/adk/version.py +1 -1
- {google_adk-0.3.0.dist-info → google_adk-0.4.0.dist-info}/METADATA +2 -6
- {google_adk-0.3.0.dist-info → google_adk-0.4.0.dist-info}/RECORD +21 -19
- {google_adk-0.3.0.dist-info → google_adk-0.4.0.dist-info}/WHEEL +0 -0
- {google_adk-0.3.0.dist-info → google_adk-0.4.0.dist-info}/entry_points.txt +0 -0
- {google_adk-0.3.0.dist-info → google_adk-0.4.0.dist-info}/licenses/LICENSE +0 -0
@@ -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
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: google-adk
|
3
|
-
Version: 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
|
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=
|
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=
|
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=
|
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=
|
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=
|
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=
|
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=
|
82
|
-
google/adk/flows/llm_flows/functions.py,sha256=
|
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
|
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=
|
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=
|
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
|
139
|
-
google/adk/tools/application_integration_tool/application_integration_toolset.py,sha256=
|
140
|
-
google/adk/tools/application_integration_tool/
|
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.
|
174
|
-
google_adk-0.
|
175
|
-
google_adk-0.
|
176
|
-
google_adk-0.
|
177
|
-
google_adk-0.
|
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,,
|
File without changes
|
File without changes
|
File without changes
|