@google/adk 2.3.0 → 2.4.0
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.
- package/dist/cjs/agents/agent_engine_client.js +172 -0
- package/dist/cjs/agents/base_agent.js +20 -4
- package/dist/cjs/agents/functions.js +28 -0
- package/dist/cjs/agents/instructions.js +2 -1
- package/dist/cjs/agents/llm_agent.js +19 -6
- package/dist/cjs/agents/processors/basic_llm_request_processor.js +1 -1
- package/dist/cjs/agents/processors/code_execution_request_processor.js +8 -0
- package/dist/cjs/agents/processors/content_processor_utils.js +38 -10
- package/dist/cjs/agents/processors/content_request_processor.js +34 -2
- package/dist/cjs/agents/processors/instructions_llm_request_processor.js +1 -1
- package/dist/cjs/agents/processors/nl_planning_processor.js +12 -3
- package/dist/cjs/cli/utils/logs.js +6 -6
- package/dist/cjs/code_executors/container_code_executor.js +27 -16
- package/dist/cjs/code_executors/unsafe_local_code_executor.js +6 -1
- package/dist/cjs/common.js +9 -20
- package/dist/cjs/errors/input_validation_error.js +3 -2
- package/dist/cjs/index.js +9 -2
- package/dist/cjs/plugins/base_plugin.js +13 -23
- package/dist/cjs/sessions/base_session_service.js +14 -8
- package/dist/cjs/sessions/database_session_service.js +50 -28
- package/dist/cjs/sessions/stale_session_error.js +59 -0
- package/dist/cjs/skills/loader.js +52 -18
- package/dist/cjs/telemetry/setup.js +0 -1
- package/dist/cjs/telemetry/tracing.js +53 -10
- package/dist/cjs/tools/apihub_tool/apihub_toolset.js +18 -23
- package/dist/cjs/tools/application_integration_tool/application_integration_toolset.js +120 -42
- package/dist/cjs/tools/application_integration_tool/clients/connections_client.js +163 -95
- package/dist/cjs/tools/application_integration_tool/clients/integration_client.js +13 -9
- package/dist/cjs/tools/application_integration_tool/integration_connector_tool.js +184 -0
- package/dist/cjs/tools/google_api_tool/google_api_tool.js +4 -1
- package/dist/cjs/tools/google_api_tool/google_api_toolset.js +173 -0
- package/dist/cjs/tools/google_api_tool/google_api_toolsets.js +124 -0
- package/dist/cjs/tools/google_api_tool/googleapi_to_openapi_converter.js +2 -2
- package/dist/cjs/tools/google_api_tool/index.js +20 -23
- package/dist/cjs/tools/load_artifacts_tool.js +12 -6
- package/dist/cjs/tools/load_memory_tool.js +12 -10
- package/dist/cjs/tools/mcp/mcp_toolset.js +1 -14
- package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +2 -2
- package/dist/cjs/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +20 -6
- package/dist/cjs/tools/openapi_tool/openapi_spec_parser/operation_parser.js +17 -6
- package/dist/cjs/tools/openapi_tool/openapi_toolset.js +7 -13
- package/dist/cjs/tools/openapi_tool/rest_api_tool.js +17 -1
- package/dist/cjs/tools/toolbox_toolset.js +174 -0
- package/dist/cjs/tools/webmcp/webmcp_toolset.js +1 -14
- package/dist/cjs/utils/client_labels.js +19 -2
- package/dist/cjs/utils/failover_utils.js +1 -1
- package/dist/cjs/utils/gemini_schema_util.js +24 -6
- package/dist/cjs/utils/logger_node.js +4 -0
- package/dist/cjs/utils/output_schema_utils.js +5 -2
- package/dist/cjs/utils/task.js +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/agents/agent_engine_client.js +144 -0
- package/dist/esm/agents/base_agent.js +20 -4
- package/dist/esm/agents/functions.js +28 -0
- package/dist/esm/agents/instructions.js +2 -1
- package/dist/esm/agents/llm_agent.js +19 -6
- package/dist/esm/agents/processors/basic_llm_request_processor.js +1 -1
- package/dist/esm/agents/processors/code_execution_request_processor.js +8 -0
- package/dist/esm/agents/processors/content_processor_utils.js +38 -10
- package/dist/esm/agents/processors/content_request_processor.js +34 -2
- package/dist/esm/agents/processors/instructions_llm_request_processor.js +1 -1
- package/dist/esm/agents/processors/nl_planning_processor.js +12 -3
- package/dist/esm/cli/utils/logs.js +4 -4
- package/dist/esm/code_executors/container_code_executor.js +27 -16
- package/dist/esm/code_executors/unsafe_local_code_executor.js +6 -1
- package/dist/esm/common.js +10 -13
- package/dist/esm/errors/input_validation_error.js +3 -2
- package/dist/esm/index.js +17 -3
- package/dist/esm/plugins/base_plugin.js +13 -23
- package/dist/esm/sessions/base_session_service.js +12 -7
- package/dist/esm/sessions/database_session_service.js +49 -28
- package/dist/esm/sessions/stale_session_error.js +31 -0
- package/dist/esm/skills/loader.js +51 -17
- package/dist/esm/telemetry/setup.js +1 -2
- package/dist/esm/telemetry/tracing.js +57 -11
- package/dist/esm/tools/apihub_tool/apihub_toolset.js +17 -22
- package/dist/esm/tools/application_integration_tool/application_integration_toolset.js +124 -42
- package/dist/esm/tools/application_integration_tool/clients/connections_client.js +163 -95
- package/dist/esm/tools/application_integration_tool/clients/integration_client.js +13 -9
- package/dist/esm/tools/application_integration_tool/integration_connector_tool.js +158 -0
- package/dist/esm/tools/google_api_tool/google_api_tool.js +4 -1
- package/dist/esm/tools/google_api_tool/google_api_toolset.js +146 -0
- package/dist/esm/tools/google_api_tool/google_api_toolsets.js +94 -0
- package/dist/esm/tools/google_api_tool/googleapi_to_openapi_converter.js +2 -2
- package/dist/esm/tools/google_api_tool/index.js +18 -20
- package/dist/esm/tools/load_artifacts_tool.js +10 -5
- package/dist/esm/tools/load_memory_tool.js +12 -10
- package/dist/esm/tools/mcp/mcp_toolset.js +1 -14
- package/dist/esm/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +2 -2
- package/dist/esm/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +20 -6
- package/dist/esm/tools/openapi_tool/openapi_spec_parser/operation_parser.js +17 -6
- package/dist/esm/tools/openapi_tool/openapi_toolset.js +6 -12
- package/dist/esm/tools/openapi_tool/rest_api_tool.js +17 -1
- package/dist/esm/tools/toolbox_toolset.js +148 -0
- package/dist/esm/tools/webmcp/webmcp_toolset.js +1 -14
- package/dist/esm/utils/client_labels.js +19 -2
- package/dist/esm/utils/failover_utils.js +1 -1
- package/dist/esm/utils/gemini_schema_util.js +23 -6
- package/dist/esm/utils/logger_node.js +4 -0
- package/dist/esm/utils/output_schema_utils.js +5 -2
- package/dist/esm/utils/task.js +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/types/agents/agent_engine_client.d.ts +37 -0
- package/dist/types/agents/base_agent.d.ts +12 -0
- package/dist/types/agents/llm_agent.d.ts +5 -1
- package/dist/types/agents/processors/content_processor_utils.d.ts +4 -2
- package/dist/types/agents/processors/nl_planning_processor.d.ts +2 -1
- package/dist/types/cli/utils/logs.d.ts +1 -1
- package/dist/types/code_executors/container_code_executor.d.ts +17 -5
- package/dist/types/common.d.ts +5 -9
- package/dist/types/errors/input_validation_error.d.ts +2 -1
- package/dist/types/index.d.ts +4 -2
- package/dist/types/plugins/base_plugin.d.ts +0 -10
- package/dist/types/sessions/base_session_service.d.ts +5 -0
- package/dist/types/sessions/database_session_service.d.ts +17 -1
- package/dist/types/sessions/stale_session_error.d.ts +21 -0
- package/dist/types/skills/loader.d.ts +3 -2
- package/dist/types/telemetry/tracing.d.ts +17 -3
- package/dist/types/tools/apihub_tool/apihub_toolset.d.ts +14 -21
- package/dist/types/tools/application_integration_tool/application_integration_toolset.d.ts +32 -9
- package/dist/types/tools/application_integration_tool/clients/connections_client.d.ts +22 -8
- package/dist/types/tools/application_integration_tool/clients/integration_client.d.ts +3 -3
- package/dist/types/tools/application_integration_tool/integration_connector_tool.d.ts +70 -0
- package/dist/types/tools/base_toolset.d.ts +6 -5
- package/dist/types/tools/google_api_tool/google_api_tool.d.ts +10 -3
- package/dist/types/tools/google_api_tool/google_api_toolset.d.ts +55 -0
- package/dist/types/tools/google_api_tool/google_api_toolsets.d.ts +48 -0
- package/dist/types/tools/google_api_tool/googleapi_to_openapi_converter.d.ts +5 -4
- package/dist/types/tools/google_api_tool/index.d.ts +4 -5
- package/dist/types/tools/load_artifacts_tool.d.ts +14 -1
- package/dist/types/tools/load_memory_tool.d.ts +23 -1
- package/dist/types/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.d.ts +12 -0
- package/dist/types/tools/openapi_tool/openapi_spec_parser/operation_parser.d.ts +8 -0
- package/dist/types/tools/openapi_tool/openapi_toolset.d.ts +5 -0
- package/dist/types/tools/openapi_tool/rest_api_tool.d.ts +10 -0
- package/dist/types/tools/toolbox_toolset.d.ts +159 -0
- package/dist/types/utils/client_labels.d.ts +2 -1
- package/dist/types/utils/gemini_schema_util.d.ts +8 -0
- package/dist/types/utils/output_schema_utils.d.ts +3 -2
- package/dist/types/utils/simple_zod_to_json.d.ts +1 -2
- package/dist/types/version.d.ts +1 -1
- package/dist/web/index_web.js +74 -66
- package/dist/web/index_web.js.map +4 -4
- package/package.json +34 -27
- package/dist/cjs/agents/remote_agent.js +0 -187
- package/dist/cjs/tools/crewai_tool.js +0 -132
- package/dist/cjs/tools/google_api_tool/google_api_tool_set.js +0 -226
- package/dist/cjs/tools/google_api_tool/google_api_tool_sets.js +0 -58
- package/dist/cjs/tools/langchain_tool.js +0 -172
- package/dist/cjs/tools/toolbox_tool.js +0 -108
- package/dist/esm/agents/remote_agent.js +0 -164
- package/dist/esm/tools/crewai_tool.js +0 -107
- package/dist/esm/tools/google_api_tool/google_api_tool_set.js +0 -188
- package/dist/esm/tools/google_api_tool/google_api_tool_sets.js +0 -24
- package/dist/esm/tools/langchain_tool.js +0 -148
- package/dist/esm/tools/toolbox_tool.js +0 -80
- package/dist/types/agents/remote_agent.d.ts +0 -68
- package/dist/types/tools/crewai_tool.d.ts +0 -85
- package/dist/types/tools/google_api_tool/google_api_tool_set.d.ts +0 -78
- package/dist/types/tools/google_api_tool/google_api_tool_sets.d.ts +0 -33
- package/dist/types/tools/langchain_tool.d.ts +0 -103
- package/dist/types/tools/toolbox_tool.d.ts +0 -73
|
@@ -50,7 +50,7 @@ let IntegrationClient = class {
|
|
|
50
50
|
this.project = options.project;
|
|
51
51
|
this.location = options.location;
|
|
52
52
|
this.integration = options.integration;
|
|
53
|
-
this.
|
|
53
|
+
this.triggers = options.triggers;
|
|
54
54
|
this.connection = options.connection;
|
|
55
55
|
this.entityOperations = (_a = options.entityOperations) != null ? _a : {};
|
|
56
56
|
this.actions = (_b = options.actions) != null ? _b : [];
|
|
@@ -65,7 +65,10 @@ let IntegrationClient = class {
|
|
|
65
65
|
* that carries no parseable spec.
|
|
66
66
|
*/
|
|
67
67
|
async getOpenApiSpecForIntegration() {
|
|
68
|
+
var _a;
|
|
68
69
|
const url = `https://${this.location}-integrations.googleapis.com/v1/projects/${this.project}/locations/${this.location}:generateOpenApiSpec`;
|
|
70
|
+
const triggerId = (_a = this.triggers) != null ? _a : null;
|
|
71
|
+
const invalidRequestMessage = `Invalid request. Please check the provided values of project(${this.project}), location(${this.location}), integration(${this.integration}).`;
|
|
69
72
|
const body = await sendCloudRequest({
|
|
70
73
|
url,
|
|
71
74
|
method: "POST",
|
|
@@ -73,13 +76,13 @@ let IntegrationClient = class {
|
|
|
73
76
|
apiTriggerResources: [
|
|
74
77
|
{
|
|
75
78
|
integrationResource: this.integration,
|
|
76
|
-
triggerId
|
|
79
|
+
triggerId
|
|
77
80
|
}
|
|
78
81
|
],
|
|
79
82
|
fileFormat: "JSON"
|
|
80
83
|
},
|
|
81
84
|
tokenSource: this.tokenSource,
|
|
82
|
-
invalidRequestMessage
|
|
85
|
+
invalidRequestMessage
|
|
83
86
|
});
|
|
84
87
|
try {
|
|
85
88
|
const spec = isJsonObject(body) ? body["openApiSpec"] : void 0;
|
|
@@ -185,20 +188,21 @@ let IntegrationClient = class {
|
|
|
185
188
|
}
|
|
186
189
|
for (const action of this.actions) {
|
|
187
190
|
const { inputSchema, outputSchema, displayName } = await connectionsClient.getActionSchema(action);
|
|
191
|
+
const actionDisplayName = displayName.replace(/ /g, "");
|
|
188
192
|
let operation = "EXECUTE_ACTION";
|
|
189
193
|
if (action === EXECUTE_CUSTOM_QUERY_ACTION) {
|
|
190
|
-
schemas[`${
|
|
194
|
+
schemas[`${actionDisplayName}_Request`] = executeCustomQueryRequest();
|
|
191
195
|
operation = "EXECUTE_QUERY";
|
|
192
196
|
} else {
|
|
193
|
-
schemas[`${
|
|
194
|
-
schemas[`connectorInputPayload_${
|
|
197
|
+
schemas[`${actionDisplayName}_Request`] = actionRequest(actionDisplayName);
|
|
198
|
+
schemas[`connectorInputPayload_${actionDisplayName}`] = connectorPayload(inputSchema);
|
|
195
199
|
}
|
|
196
|
-
schemas[`connectorOutputPayload_${
|
|
197
|
-
schemas[`${
|
|
200
|
+
schemas[`connectorOutputPayload_${actionDisplayName}`] = connectorPayload(outputSchema);
|
|
201
|
+
schemas[`${actionDisplayName}_Response`] = actionResponse(actionDisplayName);
|
|
198
202
|
connectorSpec.paths[`${pathPrefix}#${action}`] = getActionOperation({
|
|
199
203
|
action,
|
|
200
204
|
operation,
|
|
201
|
-
actionDisplayName
|
|
205
|
+
actionDisplayName,
|
|
202
206
|
toolName,
|
|
203
207
|
toolInstructions
|
|
204
208
|
});
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import {createRequire as topLevelCreateRequire} from 'module';
|
|
2
|
+
const require = topLevelCreateRequire(import.meta.url);
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
7
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
8
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
9
|
+
if (decorator = decorators[i])
|
|
10
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
11
|
+
if (kind && result) __defProp(target, key, result);
|
|
12
|
+
return result;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* @license
|
|
16
|
+
* Copyright 2026 Google LLC
|
|
17
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
18
|
+
*/
|
|
19
|
+
import { experimental } from "../../utils/experimental.js";
|
|
20
|
+
import { logger } from "../../utils/logger.js";
|
|
21
|
+
import { BaseTool } from "../base_tool.js";
|
|
22
|
+
import { ToolAuthHandler } from "../openapi_tool/openapi_spec_parser/tool_auth_handler.js";
|
|
23
|
+
const DYNAMIC_AUTH_EXCLUDE_FIELDS = Object.freeze([
|
|
24
|
+
"dynamic_auth_config",
|
|
25
|
+
"dynamicAuthConfig"
|
|
26
|
+
]);
|
|
27
|
+
let IntegrationConnectorTool = class extends BaseTool {
|
|
28
|
+
constructor(options) {
|
|
29
|
+
var _a, _b, _c;
|
|
30
|
+
super(options);
|
|
31
|
+
this.connectionName = options.connectionName;
|
|
32
|
+
this.connectionHost = options.connectionHost;
|
|
33
|
+
this.connectionServiceName = options.connectionServiceName;
|
|
34
|
+
this.entity = (_a = options.entity) != null ? _a : "";
|
|
35
|
+
this.operation = (_b = options.operation) != null ? _b : "";
|
|
36
|
+
this.action = (_c = options.action) != null ? _c : "";
|
|
37
|
+
this.restApiTool = options.restApiTool;
|
|
38
|
+
this.authScheme = options.authScheme;
|
|
39
|
+
this.authCredential = options.authCredential;
|
|
40
|
+
}
|
|
41
|
+
_getDeclaration() {
|
|
42
|
+
const declaration = this.restApiTool._getDeclaration();
|
|
43
|
+
const rawParameters = declaration == null ? void 0 : declaration.parameters;
|
|
44
|
+
let parameters;
|
|
45
|
+
if (rawParameters) {
|
|
46
|
+
parameters = { ...rawParameters };
|
|
47
|
+
if (rawParameters.properties) {
|
|
48
|
+
const properties = { ...rawParameters.properties };
|
|
49
|
+
for (const field of [
|
|
50
|
+
...IntegrationConnectorTool.EXCLUDE_FIELDS,
|
|
51
|
+
...DYNAMIC_AUTH_EXCLUDE_FIELDS
|
|
52
|
+
]) {
|
|
53
|
+
delete properties[field];
|
|
54
|
+
}
|
|
55
|
+
parameters.properties = properties;
|
|
56
|
+
}
|
|
57
|
+
if (rawParameters.required) {
|
|
58
|
+
parameters.required = rawParameters.required.filter(
|
|
59
|
+
(field) => !IntegrationConnectorTool.EXCLUDE_FIELDS.includes(field) && !DYNAMIC_AUTH_EXCLUDE_FIELDS.includes(field) && !IntegrationConnectorTool.OPTIONAL_FIELDS.includes(field)
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return {
|
|
64
|
+
name: this.name,
|
|
65
|
+
description: this.description,
|
|
66
|
+
parameters
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
async runAsync(request) {
|
|
70
|
+
const toolAuthHandler = ToolAuthHandler.fromToolContext(
|
|
71
|
+
request.toolContext,
|
|
72
|
+
this.authScheme,
|
|
73
|
+
this.authCredential
|
|
74
|
+
);
|
|
75
|
+
const authResult = await toolAuthHandler.prepareAuthCredentials();
|
|
76
|
+
if (authResult.state === "pending") {
|
|
77
|
+
return {
|
|
78
|
+
pending: true,
|
|
79
|
+
message: "Needs your authorization to access your data."
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
const updatedArgs = {
|
|
83
|
+
...request.args,
|
|
84
|
+
connection_name: this.connectionName,
|
|
85
|
+
connectionName: this.connectionName,
|
|
86
|
+
service_name: this.connectionServiceName,
|
|
87
|
+
serviceName: this.connectionServiceName,
|
|
88
|
+
host: this.connectionHost
|
|
89
|
+
};
|
|
90
|
+
if (this.entity) {
|
|
91
|
+
updatedArgs["entity"] = this.entity;
|
|
92
|
+
}
|
|
93
|
+
if (this.operation) {
|
|
94
|
+
updatedArgs["operation"] = this.operation;
|
|
95
|
+
}
|
|
96
|
+
if (this.action) {
|
|
97
|
+
updatedArgs["action"] = this.action;
|
|
98
|
+
}
|
|
99
|
+
if (authResult.authCredential) {
|
|
100
|
+
const token = prepareDynamicEuc(authResult.authCredential);
|
|
101
|
+
const dynamicAuthPayload = {
|
|
102
|
+
"oauth2_auth_code_flow.access_token": token != null ? token : {}
|
|
103
|
+
};
|
|
104
|
+
updatedArgs["dynamic_auth_config"] = dynamicAuthPayload;
|
|
105
|
+
updatedArgs["dynamicAuthConfig"] = dynamicAuthPayload;
|
|
106
|
+
}
|
|
107
|
+
logger.debug(`Running tool: ${this.name}`);
|
|
108
|
+
return this.restApiTool.runAsync({
|
|
109
|
+
args: updatedArgs,
|
|
110
|
+
toolContext: request.toolContext
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
__name(IntegrationConnectorTool, "IntegrationConnectorTool");
|
|
115
|
+
/**
|
|
116
|
+
* Request fields that {@link IntegrationConnectorTool} injects at runtime and
|
|
117
|
+
* excludes from the function declaration shown to the model.
|
|
118
|
+
*/
|
|
119
|
+
IntegrationConnectorTool.EXCLUDE_FIELDS = Object.freeze([
|
|
120
|
+
"connection_name",
|
|
121
|
+
"connectionName",
|
|
122
|
+
"service_name",
|
|
123
|
+
"serviceName",
|
|
124
|
+
"host",
|
|
125
|
+
"entity",
|
|
126
|
+
"operation",
|
|
127
|
+
"action"
|
|
128
|
+
]);
|
|
129
|
+
/**
|
|
130
|
+
* Request fields that {@link IntegrationConnectorTool} removes from the
|
|
131
|
+
* `required` list in the function declaration shown to the model.
|
|
132
|
+
*/
|
|
133
|
+
IntegrationConnectorTool.OPTIONAL_FIELDS = Object.freeze([
|
|
134
|
+
"page_size",
|
|
135
|
+
"pageSize",
|
|
136
|
+
"page_token",
|
|
137
|
+
"pageToken",
|
|
138
|
+
"filter",
|
|
139
|
+
"filter_clause",
|
|
140
|
+
"filterClause"
|
|
141
|
+
]);
|
|
142
|
+
__decorateClass([
|
|
143
|
+
experimental
|
|
144
|
+
], IntegrationConnectorTool.prototype, "_getDeclaration", 1);
|
|
145
|
+
__decorateClass([
|
|
146
|
+
experimental
|
|
147
|
+
], IntegrationConnectorTool.prototype, "runAsync", 1);
|
|
148
|
+
IntegrationConnectorTool = __decorateClass([
|
|
149
|
+
experimental
|
|
150
|
+
], IntegrationConnectorTool);
|
|
151
|
+
function prepareDynamicEuc(authCredential) {
|
|
152
|
+
var _a, _b;
|
|
153
|
+
return ((_b = (_a = authCredential.http) == null ? void 0 : _a.credentials) == null ? void 0 : _b.token) || void 0;
|
|
154
|
+
}
|
|
155
|
+
__name(prepareDynamicEuc, "prepareDynamicEuc");
|
|
156
|
+
export {
|
|
157
|
+
IntegrationConnectorTool
|
|
158
|
+
};
|
|
@@ -26,7 +26,7 @@ function isGoogleApiTool(obj) {
|
|
|
26
26
|
}
|
|
27
27
|
__name(isGoogleApiTool, "isGoogleApiTool");
|
|
28
28
|
let GoogleApiTool = class extends (_b = BaseTool, _a = GOOGLE_API_TOOL_SIGNATURE_SYMBOL, _b) {
|
|
29
|
-
constructor(restApiTool) {
|
|
29
|
+
constructor(restApiTool, options = {}) {
|
|
30
30
|
super({
|
|
31
31
|
name: restApiTool.name,
|
|
32
32
|
description: restApiTool.description,
|
|
@@ -34,6 +34,9 @@ let GoogleApiTool = class extends (_b = BaseTool, _a = GOOGLE_API_TOOL_SIGNATURE
|
|
|
34
34
|
});
|
|
35
35
|
this[_a] = true;
|
|
36
36
|
this.restApiTool = restApiTool;
|
|
37
|
+
if (options.clientId !== void 0 || options.clientSecret !== void 0) {
|
|
38
|
+
this.configureAuth(options.clientId, options.clientSecret);
|
|
39
|
+
}
|
|
37
40
|
}
|
|
38
41
|
_getDeclaration() {
|
|
39
42
|
return this.restApiTool._getDeclaration();
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import {createRequire as topLevelCreateRequire} from 'module';
|
|
2
|
+
const require = topLevelCreateRequire(import.meta.url);
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
7
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
8
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
9
|
+
if (decorator = decorators[i])
|
|
10
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
11
|
+
if (kind && result) __defProp(target, key, result);
|
|
12
|
+
return result;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* @license
|
|
16
|
+
* Copyright 2026 Google LLC
|
|
17
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
18
|
+
*/
|
|
19
|
+
var _a, _b;
|
|
20
|
+
import { experimental } from "../../utils/experimental.js";
|
|
21
|
+
import { BaseToolset } from "../base_toolset.js";
|
|
22
|
+
import { OpenAPIToolset } from "../openapi_tool/openapi_toolset.js";
|
|
23
|
+
import { GoogleApiTool } from "./google_api_tool.js";
|
|
24
|
+
import { GoogleApiToOpenApiConverter } from "./googleapi_to_openapi_converter.js";
|
|
25
|
+
const GOOGLE_API_TOOLSET_SIGNATURE_SYMBOL = /* @__PURE__ */ Symbol.for(
|
|
26
|
+
"google.adk.googleApiToolset"
|
|
27
|
+
);
|
|
28
|
+
const GOOGLE_OIDC_AUTH_ENDPOINT = "https://accounts.google.com/o/oauth2/v2/auth";
|
|
29
|
+
const GOOGLE_OIDC_TOKEN_ENDPOINT = "https://oauth2.googleapis.com/token";
|
|
30
|
+
const GOOGLE_OIDC_USERINFO_ENDPOINT = "https://openidconnect.googleapis.com/v1/userinfo";
|
|
31
|
+
const GOOGLE_OIDC_REVOCATION_ENDPOINT = "https://oauth2.googleapis.com/revoke";
|
|
32
|
+
function isGoogleApiToolset(obj) {
|
|
33
|
+
return typeof obj === "object" && obj !== null && GOOGLE_API_TOOLSET_SIGNATURE_SYMBOL in obj && obj[GOOGLE_API_TOOLSET_SIGNATURE_SYMBOL] === true;
|
|
34
|
+
}
|
|
35
|
+
__name(isGoogleApiToolset, "isGoogleApiToolset");
|
|
36
|
+
let GoogleApiToolset = class extends (_b = BaseToolset, _a = GOOGLE_API_TOOLSET_SIGNATURE_SYMBOL, _b) {
|
|
37
|
+
constructor(options = {}) {
|
|
38
|
+
var _a2;
|
|
39
|
+
const toolFilter = (_a2 = options.toolFilter) != null ? _a2 : [];
|
|
40
|
+
super(toolFilter);
|
|
41
|
+
this[_a] = true;
|
|
42
|
+
this.tools = [];
|
|
43
|
+
this.toolFilter = toolFilter;
|
|
44
|
+
this.apiName = options.apiName;
|
|
45
|
+
this.apiVersion = options.apiVersion;
|
|
46
|
+
this.clientId = options.clientId;
|
|
47
|
+
this.clientSecret = options.clientSecret;
|
|
48
|
+
}
|
|
49
|
+
async loadToolsetWithOidcAuth() {
|
|
50
|
+
var _a2, _b2, _c, _d, _e;
|
|
51
|
+
if (!this.apiName || !this.apiVersion) {
|
|
52
|
+
throw new Error(
|
|
53
|
+
"Both apiName and apiVersion are required to load a GoogleApiToolset."
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
const specDict = await new GoogleApiToOpenApiConverter(
|
|
57
|
+
this.apiName,
|
|
58
|
+
this.apiVersion
|
|
59
|
+
).convert();
|
|
60
|
+
const oauth2Scheme = (_b2 = (_a2 = specDict.components) == null ? void 0 : _a2.securitySchemes) == null ? void 0 : _b2["oauth2"];
|
|
61
|
+
const scopesMap = (_e = (_d = (_c = oauth2Scheme == null ? void 0 : oauth2Scheme.flows) == null ? void 0 : _c.authorizationCode) == null ? void 0 : _d.scopes) != null ? _e : {};
|
|
62
|
+
const firstScope = Object.keys(scopesMap)[0];
|
|
63
|
+
const scopes = firstScope ? [firstScope] : void 0;
|
|
64
|
+
const authScheme = {
|
|
65
|
+
type: "openIdConnect",
|
|
66
|
+
openIdConnectUrl: "",
|
|
67
|
+
authorizationEndpoint: GOOGLE_OIDC_AUTH_ENDPOINT,
|
|
68
|
+
tokenEndpoint: GOOGLE_OIDC_TOKEN_ENDPOINT,
|
|
69
|
+
userinfoEndpoint: GOOGLE_OIDC_USERINFO_ENDPOINT,
|
|
70
|
+
revocationEndpoint: GOOGLE_OIDC_REVOCATION_ENDPOINT,
|
|
71
|
+
tokenEndpointAuthMethodsSupported: [
|
|
72
|
+
"client_secret_post",
|
|
73
|
+
"client_secret_basic"
|
|
74
|
+
],
|
|
75
|
+
grantTypesSupported: ["authorization_code"],
|
|
76
|
+
scopes
|
|
77
|
+
};
|
|
78
|
+
return new OpenAPIToolset({
|
|
79
|
+
specDict,
|
|
80
|
+
specType: "yaml",
|
|
81
|
+
authScheme
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
async ensureToolsLoaded() {
|
|
85
|
+
var _a2;
|
|
86
|
+
if (this.openapiToolset || !this.apiName || !this.apiVersion) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
(_a2 = this.loadingPromise) != null ? _a2 : this.loadingPromise = (async () => {
|
|
90
|
+
try {
|
|
91
|
+
const openapiToolset = await this.loadToolsetWithOidcAuth();
|
|
92
|
+
const restTools = await openapiToolset.getTools();
|
|
93
|
+
this.tools = restTools.map(
|
|
94
|
+
(tool) => new GoogleApiTool(tool, {
|
|
95
|
+
clientId: this.clientId,
|
|
96
|
+
clientSecret: this.clientSecret
|
|
97
|
+
})
|
|
98
|
+
);
|
|
99
|
+
this.openapiToolset = openapiToolset;
|
|
100
|
+
} catch (error) {
|
|
101
|
+
this.loadingPromise = void 0;
|
|
102
|
+
throw error;
|
|
103
|
+
}
|
|
104
|
+
})();
|
|
105
|
+
await this.loadingPromise;
|
|
106
|
+
}
|
|
107
|
+
async getTools(context) {
|
|
108
|
+
await this.ensureToolsLoaded();
|
|
109
|
+
return this.tools.filter((tool) => this.isToolSelected(tool, context));
|
|
110
|
+
}
|
|
111
|
+
setToolFilter(toolFilter) {
|
|
112
|
+
this.toolFilter = toolFilter;
|
|
113
|
+
}
|
|
114
|
+
configureAuth(clientId, clientSecret) {
|
|
115
|
+
this.clientId = clientId;
|
|
116
|
+
this.clientSecret = clientSecret;
|
|
117
|
+
for (const tool of this.tools) {
|
|
118
|
+
tool.configureAuth(clientId, clientSecret);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
async close() {
|
|
122
|
+
if (this.openapiToolset) {
|
|
123
|
+
await this.openapiToolset.close();
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
__name(GoogleApiToolset, "GoogleApiToolset");
|
|
128
|
+
__decorateClass([
|
|
129
|
+
experimental
|
|
130
|
+
], GoogleApiToolset.prototype, "getTools", 1);
|
|
131
|
+
__decorateClass([
|
|
132
|
+
experimental
|
|
133
|
+
], GoogleApiToolset.prototype, "setToolFilter", 1);
|
|
134
|
+
__decorateClass([
|
|
135
|
+
experimental
|
|
136
|
+
], GoogleApiToolset.prototype, "configureAuth", 1);
|
|
137
|
+
__decorateClass([
|
|
138
|
+
experimental
|
|
139
|
+
], GoogleApiToolset.prototype, "close", 1);
|
|
140
|
+
GoogleApiToolset = __decorateClass([
|
|
141
|
+
experimental
|
|
142
|
+
], GoogleApiToolset);
|
|
143
|
+
export {
|
|
144
|
+
GoogleApiToolset,
|
|
145
|
+
isGoogleApiToolset
|
|
146
|
+
};
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import {createRequire as topLevelCreateRequire} from 'module';
|
|
2
|
+
const require = topLevelCreateRequire(import.meta.url);
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
6
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
7
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
8
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
9
|
+
if (decorator = decorators[i])
|
|
10
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
11
|
+
if (kind && result) __defProp(target, key, result);
|
|
12
|
+
return result;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* @license
|
|
16
|
+
* Copyright 2026 Google LLC
|
|
17
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
18
|
+
*/
|
|
19
|
+
import { experimental } from "../../utils/experimental.js";
|
|
20
|
+
import {
|
|
21
|
+
GoogleApiToolset
|
|
22
|
+
} from "./google_api_toolset.js";
|
|
23
|
+
let BigQueryToolset = class extends GoogleApiToolset {
|
|
24
|
+
constructor(options = {}) {
|
|
25
|
+
super({ ...options, apiName: "bigquery", apiVersion: "v2" });
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
__name(BigQueryToolset, "BigQueryToolset");
|
|
29
|
+
BigQueryToolset = __decorateClass([
|
|
30
|
+
experimental
|
|
31
|
+
], BigQueryToolset);
|
|
32
|
+
let CalendarToolset = class extends GoogleApiToolset {
|
|
33
|
+
constructor(options = {}) {
|
|
34
|
+
super({ ...options, apiName: "calendar", apiVersion: "v3" });
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
__name(CalendarToolset, "CalendarToolset");
|
|
38
|
+
CalendarToolset = __decorateClass([
|
|
39
|
+
experimental
|
|
40
|
+
], CalendarToolset);
|
|
41
|
+
let GmailToolset = class extends GoogleApiToolset {
|
|
42
|
+
constructor(options = {}) {
|
|
43
|
+
super({ ...options, apiName: "gmail", apiVersion: "v1" });
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
__name(GmailToolset, "GmailToolset");
|
|
47
|
+
GmailToolset = __decorateClass([
|
|
48
|
+
experimental
|
|
49
|
+
], GmailToolset);
|
|
50
|
+
let YoutubeToolset = class extends GoogleApiToolset {
|
|
51
|
+
constructor(options = {}) {
|
|
52
|
+
super({ ...options, apiName: "youtube", apiVersion: "v3" });
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
__name(YoutubeToolset, "YoutubeToolset");
|
|
56
|
+
YoutubeToolset = __decorateClass([
|
|
57
|
+
experimental
|
|
58
|
+
], YoutubeToolset);
|
|
59
|
+
let SlidesToolset = class extends GoogleApiToolset {
|
|
60
|
+
constructor(options = {}) {
|
|
61
|
+
super({ ...options, apiName: "slides", apiVersion: "v1" });
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
__name(SlidesToolset, "SlidesToolset");
|
|
65
|
+
SlidesToolset = __decorateClass([
|
|
66
|
+
experimental
|
|
67
|
+
], SlidesToolset);
|
|
68
|
+
let SheetsToolset = class extends GoogleApiToolset {
|
|
69
|
+
constructor(options = {}) {
|
|
70
|
+
super({ ...options, apiName: "sheets", apiVersion: "v4" });
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
__name(SheetsToolset, "SheetsToolset");
|
|
74
|
+
SheetsToolset = __decorateClass([
|
|
75
|
+
experimental
|
|
76
|
+
], SheetsToolset);
|
|
77
|
+
let DocsToolset = class extends GoogleApiToolset {
|
|
78
|
+
constructor(options = {}) {
|
|
79
|
+
super({ ...options, apiName: "docs", apiVersion: "v1" });
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
__name(DocsToolset, "DocsToolset");
|
|
83
|
+
DocsToolset = __decorateClass([
|
|
84
|
+
experimental
|
|
85
|
+
], DocsToolset);
|
|
86
|
+
export {
|
|
87
|
+
BigQueryToolset,
|
|
88
|
+
CalendarToolset,
|
|
89
|
+
DocsToolset,
|
|
90
|
+
GmailToolset,
|
|
91
|
+
SheetsToolset,
|
|
92
|
+
SlidesToolset,
|
|
93
|
+
YoutubeToolset
|
|
94
|
+
};
|
|
@@ -273,10 +273,10 @@ function convertOperation(methodData, pathParams) {
|
|
|
273
273
|
}
|
|
274
274
|
__name(convertOperation, "convertOperation");
|
|
275
275
|
function convertMethods(methods, _resourcePath, openapiSpec) {
|
|
276
|
-
var _a, _b;
|
|
276
|
+
var _a, _b, _c;
|
|
277
277
|
for (const methodData of Object.values(methods)) {
|
|
278
278
|
const httpMethod = ((_a = methodData.httpMethod) != null ? _a : "GET").toLowerCase();
|
|
279
|
-
let restPath = ((_b = methodData.
|
|
279
|
+
let restPath = ((_c = (_b = methodData.flatPath) != null ? _b : methodData.path) != null ? _c : "/").replace(
|
|
280
280
|
/\{\+([^{}]+)\}/g,
|
|
281
281
|
(_match, paramName) => `{${paramName}}`
|
|
282
282
|
);
|
|
@@ -6,28 +6,26 @@ const require = topLevelCreateRequire(import.meta.url);
|
|
|
6
6
|
* SPDX-License-Identifier: Apache-2.0
|
|
7
7
|
*/
|
|
8
8
|
import { GoogleApiTool, isGoogleApiTool } from "./google_api_tool.js";
|
|
9
|
-
import {
|
|
9
|
+
import { GoogleApiToolset, isGoogleApiToolset } from "./google_api_toolset.js";
|
|
10
10
|
import {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
} from "./
|
|
19
|
-
import { GoogleApiToOpenApiConverter } from "./googleapi_to_openapi_converter.js";
|
|
11
|
+
BigQueryToolset,
|
|
12
|
+
CalendarToolset,
|
|
13
|
+
DocsToolset,
|
|
14
|
+
GmailToolset,
|
|
15
|
+
SheetsToolset,
|
|
16
|
+
SlidesToolset,
|
|
17
|
+
YoutubeToolset
|
|
18
|
+
} from "./google_api_toolsets.js";
|
|
20
19
|
export {
|
|
21
|
-
|
|
20
|
+
BigQueryToolset,
|
|
21
|
+
CalendarToolset,
|
|
22
|
+
DocsToolset,
|
|
23
|
+
GmailToolset,
|
|
22
24
|
GoogleApiTool,
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
gmailToolSet,
|
|
25
|
+
GoogleApiToolset,
|
|
26
|
+
SheetsToolset,
|
|
27
|
+
SlidesToolset,
|
|
28
|
+
YoutubeToolset,
|
|
28
29
|
isGoogleApiTool,
|
|
29
|
-
|
|
30
|
-
sheetsToolSet,
|
|
31
|
-
slidesToolSet,
|
|
32
|
-
youtubeToolSet
|
|
30
|
+
isGoogleApiToolset
|
|
33
31
|
};
|
|
@@ -9,6 +9,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
9
9
|
*/
|
|
10
10
|
import { Type } from "@google/genai";
|
|
11
11
|
import { appendInstructions } from "../models/llm_request.js";
|
|
12
|
+
import { base64Decode } from "../utils/env_aware_utils.js";
|
|
12
13
|
import { logger } from "../utils/logger.js";
|
|
13
14
|
import {
|
|
14
15
|
BaseTool
|
|
@@ -37,6 +38,11 @@ function isInlineMimeTypeSupported(mimeType) {
|
|
|
37
38
|
) || GEMINI_SUPPORTED_INLINE_MIME_TYPES.has(normalized);
|
|
38
39
|
}
|
|
39
40
|
__name(isInlineMimeTypeSupported, "isInlineMimeTypeSupported");
|
|
41
|
+
function base64ByteLength(data) {
|
|
42
|
+
const digits = data.replace(/[=\s]/g, "").length;
|
|
43
|
+
return Math.floor(digits * 3 / 4);
|
|
44
|
+
}
|
|
45
|
+
__name(base64ByteLength, "base64ByteLength");
|
|
40
46
|
function asSafePartForLlm(artifact, artifactName) {
|
|
41
47
|
const inlineData = artifact.inlineData;
|
|
42
48
|
if (!inlineData) {
|
|
@@ -53,15 +59,13 @@ function asSafePartForLlm(artifact, artifactName) {
|
|
|
53
59
|
};
|
|
54
60
|
}
|
|
55
61
|
const isTextLike = mimeType.startsWith("text/") || TEXT_LIKE_MIME_TYPES.has(mimeType);
|
|
56
|
-
const decodedBuffer = Buffer.from(data, "base64");
|
|
57
62
|
if (isTextLike) {
|
|
58
63
|
try {
|
|
59
|
-
|
|
60
|
-
return { text: decoded };
|
|
64
|
+
return { text: base64Decode(data.replace(/-/g, "+").replace(/_/g, "/")) };
|
|
61
65
|
} catch {
|
|
62
66
|
}
|
|
63
67
|
}
|
|
64
|
-
const sizeKb =
|
|
68
|
+
const sizeKb = base64ByteLength(data) / 1024;
|
|
65
69
|
return {
|
|
66
70
|
text: `[Binary artifact: ${artifactName}, type: ${mimeType}, size: ${sizeKb.toFixed(1)} KB. Content cannot be displayed inline.]`
|
|
67
71
|
};
|
|
@@ -188,5 +192,6 @@ let LoadArtifactsTool = _LoadArtifactsTool;
|
|
|
188
192
|
const LOAD_ARTIFACTS = new LoadArtifactsTool();
|
|
189
193
|
export {
|
|
190
194
|
LOAD_ARTIFACTS,
|
|
191
|
-
LoadArtifactsTool
|
|
195
|
+
LoadArtifactsTool,
|
|
196
|
+
asSafePartForLlm
|
|
192
197
|
};
|
|
@@ -13,11 +13,13 @@ import {
|
|
|
13
13
|
BaseTool
|
|
14
14
|
} from "./base_tool.js";
|
|
15
15
|
const _LoadMemoryTool = class _LoadMemoryTool extends BaseTool {
|
|
16
|
-
constructor() {
|
|
16
|
+
constructor(options = {}) {
|
|
17
|
+
var _a;
|
|
17
18
|
super({
|
|
18
19
|
name: "load_memory",
|
|
19
20
|
description: "Loads the memory for the current user.\n\nNOTE: Currently this tool only uses text part from the memory."
|
|
20
21
|
});
|
|
22
|
+
this.textOnlyContent = (_a = options.textOnlyContent) != null ? _a : false;
|
|
21
23
|
}
|
|
22
24
|
_getDeclaration() {
|
|
23
25
|
return {
|
|
@@ -39,12 +41,12 @@ const _LoadMemoryTool = class _LoadMemoryTool extends BaseTool {
|
|
|
39
41
|
args,
|
|
40
42
|
toolContext
|
|
41
43
|
}) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
44
|
+
const query = args["query"];
|
|
45
|
+
if (!toolContext.invocationContext.memoryService) {
|
|
46
|
+
throw new Error("Memory service is not initialized.");
|
|
47
|
+
}
|
|
48
|
+
const searchMemoryResponse = await toolContext.searchMemory(query);
|
|
49
|
+
if (this.textOnlyContent) {
|
|
48
50
|
return {
|
|
49
51
|
memories: searchMemoryResponse.memories.map((m) => {
|
|
50
52
|
var _a, _b;
|
|
@@ -59,10 +61,10 @@ const _LoadMemoryTool = class _LoadMemoryTool extends BaseTool {
|
|
|
59
61
|
};
|
|
60
62
|
})
|
|
61
63
|
};
|
|
62
|
-
} catch (e) {
|
|
63
|
-
console.error("ERROR in LoadMemoryTool runAsync:", e);
|
|
64
|
-
throw e;
|
|
65
64
|
}
|
|
65
|
+
return {
|
|
66
|
+
memories: searchMemoryResponse.memories
|
|
67
|
+
};
|
|
66
68
|
}
|
|
67
69
|
async processLlmRequest(request) {
|
|
68
70
|
await super.processLlmRequest(request);
|
|
@@ -35,20 +35,7 @@ const _MCPToolset = class _MCPToolset extends BaseToolset {
|
|
|
35
35
|
};
|
|
36
36
|
return new MCPTool(toolWithPrefix, this.mcpSessionManager, tool.name);
|
|
37
37
|
});
|
|
38
|
-
|
|
39
|
-
if (!filter || Array.isArray(filter) && filter.length === 0) {
|
|
40
|
-
return tools;
|
|
41
|
-
}
|
|
42
|
-
if (Array.isArray(filter)) {
|
|
43
|
-
return tools.filter((tool) => filter.includes(tool.name));
|
|
44
|
-
}
|
|
45
|
-
if (context) {
|
|
46
|
-
return tools.filter((tool) => filter(tool, context));
|
|
47
|
-
}
|
|
48
|
-
logger.warn(
|
|
49
|
-
"MCPToolset: a ToolPredicate toolFilter was provided but getTools() was called without a ReadonlyContext. The filter will not be applied."
|
|
50
|
-
);
|
|
51
|
-
return tools;
|
|
38
|
+
return tools.filter((tool) => this.isToolSelected(tool, context));
|
|
52
39
|
}
|
|
53
40
|
/**
|
|
54
41
|
* Lists the names of the resources advertised by the MCP server.
|
|
@@ -55,12 +55,12 @@ function generateAuthToken(authCredential) {
|
|
|
55
55
|
}
|
|
56
56
|
__name(generateAuthToken, "generateAuthToken");
|
|
57
57
|
function exchangeCredential(authScheme, authCredential) {
|
|
58
|
-
var _a
|
|
58
|
+
var _a;
|
|
59
59
|
checkSchemeCredentialType(authScheme, authCredential);
|
|
60
60
|
if (authCredential.http) {
|
|
61
61
|
return authCredential;
|
|
62
62
|
}
|
|
63
|
-
if ((
|
|
63
|
+
if ((_a = authCredential.oauth2) == null ? void 0 : _a.accessToken) {
|
|
64
64
|
return generateAuthToken(authCredential);
|
|
65
65
|
}
|
|
66
66
|
return null;
|