@google/adk 0.1.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/LICENSE +202 -0
- package/README.md +9 -0
- package/dist/cjs/agents/active_streaming_tool.js +44 -0
- package/dist/cjs/agents/base_agent.js +245 -0
- package/dist/cjs/agents/base_llm_processor.js +44 -0
- package/dist/cjs/agents/callback_context.js +98 -0
- package/dist/cjs/agents/content_processor_utils.js +299 -0
- package/dist/cjs/agents/functions.js +394 -0
- package/dist/cjs/agents/instructions.js +110 -0
- package/dist/cjs/agents/invocation_context.js +109 -0
- package/dist/cjs/agents/live_request_queue.js +136 -0
- package/dist/cjs/agents/llm_agent.js +859 -0
- package/dist/cjs/agents/loop_agent.js +68 -0
- package/dist/cjs/agents/parallel_agent.js +78 -0
- package/dist/cjs/agents/readonly_context.js +68 -0
- package/dist/cjs/agents/run_config.js +74 -0
- package/dist/cjs/agents/sequential_agent.js +84 -0
- package/dist/cjs/agents/transcription_entry.js +27 -0
- package/dist/cjs/artifacts/base_artifact_service.js +27 -0
- package/dist/cjs/artifacts/in_memory_artifact_service.js +119 -0
- package/dist/cjs/auth/auth_credential.js +46 -0
- package/dist/cjs/auth/auth_handler.js +92 -0
- package/dist/cjs/auth/auth_schemes.js +62 -0
- package/dist/cjs/auth/auth_tool.js +27 -0
- package/dist/cjs/auth/credential_service/base_credential_service.js +27 -0
- package/dist/cjs/auth/credential_service/in_memory_credential_service.js +63 -0
- package/dist/cjs/code_executors/base_code_executor.js +76 -0
- package/dist/cjs/code_executors/built_in_code_executor.js +58 -0
- package/dist/cjs/code_executors/code_execution_utils.js +142 -0
- package/dist/cjs/code_executors/code_executor_context.js +198 -0
- package/dist/cjs/common.js +161 -0
- package/dist/cjs/events/event.js +107 -0
- package/dist/cjs/events/event_actions.js +83 -0
- package/dist/cjs/examples/base_example_provider.js +40 -0
- package/dist/cjs/examples/example.js +27 -0
- package/dist/cjs/examples/example_util.js +107 -0
- package/dist/cjs/index.js +40 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/index_web.js +33 -0
- package/dist/cjs/memory/base_memory_service.js +27 -0
- package/dist/cjs/memory/in_memory_memory_service.js +97 -0
- package/dist/cjs/memory/memory_entry.js +27 -0
- package/dist/cjs/models/base_llm.js +77 -0
- package/dist/cjs/models/base_llm_connection.js +27 -0
- package/dist/cjs/models/gemini_llm_connection.js +132 -0
- package/dist/cjs/models/google_llm.js +321 -0
- package/dist/cjs/models/llm_request.js +82 -0
- package/dist/cjs/models/llm_response.js +71 -0
- package/dist/cjs/models/registry.js +121 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/plugins/base_plugin.js +236 -0
- package/dist/cjs/plugins/logging_plugin.js +222 -0
- package/dist/cjs/plugins/plugin_manager.js +239 -0
- package/dist/cjs/plugins/security_plugin.js +153 -0
- package/dist/cjs/runner/in_memory_runner.js +58 -0
- package/dist/cjs/runner/runner.js +276 -0
- package/dist/cjs/sessions/base_session_service.js +71 -0
- package/dist/cjs/sessions/in_memory_session_service.js +184 -0
- package/dist/cjs/sessions/session.js +48 -0
- package/dist/cjs/sessions/state.js +101 -0
- package/dist/cjs/tools/agent_tool.js +134 -0
- package/dist/cjs/tools/base_tool.js +107 -0
- package/dist/cjs/tools/base_toolset.js +76 -0
- package/dist/cjs/tools/forwarding_artifact_service.js +71 -0
- package/dist/cjs/tools/function_tool.js +101 -0
- package/dist/cjs/tools/google_search_tool.js +76 -0
- package/dist/cjs/tools/long_running_tool.js +63 -0
- package/dist/cjs/tools/mcp/mcp_session_manager.js +65 -0
- package/dist/cjs/tools/mcp/mcp_tool.js +65 -0
- package/dist/cjs/tools/mcp/mcp_toolset.js +61 -0
- package/dist/cjs/tools/tool_confirmation.js +49 -0
- package/dist/cjs/tools/tool_context.js +129 -0
- package/dist/cjs/utils/deep_clone.js +44 -0
- package/dist/cjs/utils/env_aware_utils.js +83 -0
- package/dist/cjs/utils/gemini_schema_util.js +88 -0
- package/dist/cjs/utils/logger.js +121 -0
- package/dist/cjs/utils/model_name.js +64 -0
- package/dist/cjs/utils/simple_zod_to_json.js +191 -0
- package/dist/cjs/utils/variant_utils.js +55 -0
- package/dist/cjs/version.js +39 -0
- package/dist/esm/agents/active_streaming_tool.js +14 -0
- package/dist/esm/agents/base_agent.js +214 -0
- package/dist/esm/agents/base_llm_processor.js +13 -0
- package/dist/esm/agents/callback_context.js +68 -0
- package/dist/esm/agents/content_processor_utils.js +268 -0
- package/dist/esm/agents/functions.js +353 -0
- package/dist/esm/agents/instructions.js +80 -0
- package/dist/esm/agents/invocation_context.js +78 -0
- package/dist/esm/agents/live_request_queue.js +106 -0
- package/dist/esm/agents/llm_agent.js +828 -0
- package/dist/esm/agents/loop_agent.js +38 -0
- package/dist/esm/agents/parallel_agent.js +48 -0
- package/dist/esm/agents/readonly_context.js +38 -0
- package/dist/esm/agents/run_config.js +43 -0
- package/dist/esm/agents/sequential_agent.js +54 -0
- package/dist/esm/agents/transcription_entry.js +5 -0
- package/dist/esm/artifacts/base_artifact_service.js +5 -0
- package/dist/esm/artifacts/in_memory_artifact_service.js +89 -0
- package/dist/esm/auth/auth_credential.js +16 -0
- package/dist/esm/auth/auth_handler.js +62 -0
- package/dist/esm/auth/auth_schemes.js +31 -0
- package/dist/esm/auth/auth_tool.js +5 -0
- package/dist/esm/auth/credential_service/base_credential_service.js +5 -0
- package/dist/esm/auth/credential_service/in_memory_credential_service.js +33 -0
- package/dist/esm/code_executors/base_code_executor.js +46 -0
- package/dist/esm/code_executors/built_in_code_executor.js +28 -0
- package/dist/esm/code_executors/code_execution_utils.js +108 -0
- package/dist/esm/code_executors/code_executor_context.js +168 -0
- package/dist/esm/common.js +85 -0
- package/dist/esm/events/event.js +72 -0
- package/dist/esm/events/event_actions.js +52 -0
- package/dist/esm/examples/base_example_provider.js +10 -0
- package/dist/esm/examples/example.js +5 -0
- package/dist/esm/examples/example_util.js +76 -0
- package/dist/esm/index.js +40 -0
- package/dist/esm/index.js.map +7 -0
- package/dist/esm/index_web.js +6 -0
- package/dist/esm/memory/base_memory_service.js +5 -0
- package/dist/esm/memory/in_memory_memory_service.js +67 -0
- package/dist/esm/memory/memory_entry.js +5 -0
- package/dist/esm/models/base_llm.js +47 -0
- package/dist/esm/models/base_llm_connection.js +5 -0
- package/dist/esm/models/gemini_llm_connection.js +102 -0
- package/dist/esm/models/google_llm.js +291 -0
- package/dist/esm/models/llm_request.js +50 -0
- package/dist/esm/models/llm_response.js +41 -0
- package/dist/esm/models/registry.js +91 -0
- package/dist/esm/plugins/base_plugin.js +206 -0
- package/dist/esm/plugins/logging_plugin.js +192 -0
- package/dist/esm/plugins/plugin_manager.js +209 -0
- package/dist/esm/plugins/security_plugin.js +119 -0
- package/dist/esm/runner/in_memory_runner.js +28 -0
- package/dist/esm/runner/runner.js +246 -0
- package/dist/esm/sessions/base_session_service.js +41 -0
- package/dist/esm/sessions/in_memory_session_service.js +154 -0
- package/dist/esm/sessions/session.js +18 -0
- package/dist/esm/sessions/state.js +71 -0
- package/dist/esm/tools/agent_tool.js +104 -0
- package/dist/esm/tools/base_tool.js +77 -0
- package/dist/esm/tools/base_toolset.js +46 -0
- package/dist/esm/tools/forwarding_artifact_service.js +41 -0
- package/dist/esm/tools/function_tool.js +71 -0
- package/dist/esm/tools/google_search_tool.js +46 -0
- package/dist/esm/tools/long_running_tool.js +33 -0
- package/dist/esm/tools/mcp/mcp_session_manager.js +35 -0
- package/dist/esm/tools/mcp/mcp_tool.js +35 -0
- package/dist/esm/tools/mcp/mcp_toolset.js +31 -0
- package/dist/esm/tools/tool_confirmation.js +19 -0
- package/dist/esm/tools/tool_context.js +99 -0
- package/dist/esm/utils/deep_clone.js +14 -0
- package/dist/esm/utils/env_aware_utils.js +49 -0
- package/dist/esm/utils/gemini_schema_util.js +58 -0
- package/dist/esm/utils/logger.js +89 -0
- package/dist/esm/utils/model_name.js +31 -0
- package/dist/esm/utils/simple_zod_to_json.js +160 -0
- package/dist/esm/utils/variant_utils.js +24 -0
- package/dist/esm/version.js +9 -0
- package/dist/types/agents/active_streaming_tool.d.ts +29 -0
- package/dist/types/agents/base_agent.d.ts +167 -0
- package/dist/types/agents/base_llm_processor.d.ts +27 -0
- package/dist/types/agents/callback_context.d.ts +42 -0
- package/dist/types/agents/content_processor_utils.d.ts +36 -0
- package/dist/types/agents/functions.d.ts +90 -0
- package/dist/types/agents/instructions.d.ts +32 -0
- package/dist/types/agents/invocation_context.d.ts +155 -0
- package/dist/types/agents/live_request_queue.d.ts +67 -0
- package/dist/types/agents/llm_agent.d.ts +333 -0
- package/dist/types/agents/loop_agent.d.ts +31 -0
- package/dist/types/agents/parallel_agent.d.ts +21 -0
- package/dist/types/agents/readonly_context.d.ts +31 -0
- package/dist/types/agents/run_config.d.ts +76 -0
- package/dist/types/agents/sequential_agent.d.ts +26 -0
- package/dist/types/agents/transcription_entry.d.ts +17 -0
- package/dist/types/artifacts/base_artifact_service.d.ts +127 -0
- package/dist/types/artifacts/in_memory_artifact_service.d.ts +18 -0
- package/dist/types/auth/auth_credential.d.ts +227 -0
- package/dist/types/auth/auth_handler.d.ts +27 -0
- package/dist/types/auth/auth_schemes.d.ts +36 -0
- package/dist/types/auth/auth_tool.d.ts +51 -0
- package/dist/types/auth/credential_service/base_credential_service.d.ts +27 -0
- package/dist/types/auth/credential_service/in_memory_credential_service.d.ts +19 -0
- package/dist/types/code_executors/base_code_executor.d.ts +60 -0
- package/dist/types/code_executors/built_in_code_executor.d.ts +13 -0
- package/dist/types/code_executors/code_execution_utils.d.ts +99 -0
- package/dist/types/code_executors/code_executor_context.d.ts +92 -0
- package/dist/types/common.d.ts +51 -0
- package/dist/types/events/event.d.ts +81 -0
- package/dist/types/events/event_actions.d.ts +74 -0
- package/dist/types/examples/base_example_provider.d.ts +20 -0
- package/dist/types/examples/example.d.ts +19 -0
- package/dist/types/examples/example_util.d.ts +13 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/index_web.d.ts +6 -0
- package/dist/types/memory/base_memory_service.d.ts +47 -0
- package/dist/types/memory/in_memory_memory_service.d.ts +18 -0
- package/dist/types/memory/memory_entry.d.ts +24 -0
- package/dist/types/models/base_llm.d.ts +46 -0
- package/dist/types/models/base_llm_connection.d.ts +51 -0
- package/dist/types/models/gemini_llm_connection.d.ts +54 -0
- package/dist/types/models/google_llm.d.ts +88 -0
- package/dist/types/models/llm_request.d.ts +49 -0
- package/dist/types/models/llm_response.d.ts +79 -0
- package/dist/types/models/registry.d.ts +45 -0
- package/dist/types/plugins/base_plugin.d.ts +310 -0
- package/dist/types/plugins/logging_plugin.d.ts +104 -0
- package/dist/types/plugins/plugin_manager.d.ts +155 -0
- package/dist/types/plugins/security_plugin.d.ts +60 -0
- package/dist/types/runner/in_memory_runner.d.ts +15 -0
- package/dist/types/runner/runner.d.ts +80 -0
- package/dist/types/sessions/base_session_service.d.ts +129 -0
- package/dist/types/sessions/in_memory_session_service.d.ts +32 -0
- package/dist/types/sessions/session.d.ts +46 -0
- package/dist/types/sessions/state.d.ts +57 -0
- package/dist/types/tools/agent_tool.d.ts +37 -0
- package/dist/types/tools/base_tool.d.ts +84 -0
- package/dist/types/tools/base_toolset.d.ts +64 -0
- package/dist/types/tools/forwarding_artifact_service.d.ts +21 -0
- package/dist/types/tools/function_tool.d.ts +48 -0
- package/dist/types/tools/google_search_tool.d.ts +18 -0
- package/dist/types/tools/long_running_tool.d.ts +18 -0
- package/dist/types/tools/mcp/mcp_session_manager.d.ts +57 -0
- package/dist/types/tools/mcp/mcp_tool.d.ts +30 -0
- package/dist/types/tools/mcp/mcp_toolset.d.ts +39 -0
- package/dist/types/tools/tool_confirmation.d.ts +25 -0
- package/dist/types/tools/tool_context.d.ts +63 -0
- package/dist/types/utils/deep_clone.d.ts +1 -0
- package/dist/types/utils/env_aware_utils.d.ts +31 -0
- package/dist/types/utils/gemini_schema_util.d.ts +23 -0
- package/dist/types/utils/logger.d.ts +41 -0
- package/dist/types/utils/model_name.d.ts +34 -0
- package/dist/types/utils/simple_zod_to_json.d.ts +12 -0
- package/dist/types/utils/variant_utils.d.ts +24 -0
- package/dist/types/version.d.ts +6 -0
- package/dist/web/agents/active_streaming_tool.js +14 -0
- package/dist/web/agents/base_agent.js +265 -0
- package/dist/web/agents/base_llm_processor.js +13 -0
- package/dist/web/agents/callback_context.js +68 -0
- package/dist/web/agents/content_processor_utils.js +268 -0
- package/dist/web/agents/functions.js +353 -0
- package/dist/web/agents/instructions.js +80 -0
- package/dist/web/agents/invocation_context.js +78 -0
- package/dist/web/agents/live_request_queue.js +124 -0
- package/dist/web/agents/llm_agent.js +973 -0
- package/dist/web/agents/loop_agent.js +71 -0
- package/dist/web/agents/parallel_agent.js +83 -0
- package/dist/web/agents/readonly_context.js +38 -0
- package/dist/web/agents/run_config.js +43 -0
- package/dist/web/agents/sequential_agent.js +99 -0
- package/dist/web/agents/transcription_entry.js +5 -0
- package/dist/web/artifacts/base_artifact_service.js +5 -0
- package/dist/web/artifacts/in_memory_artifact_service.js +89 -0
- package/dist/web/auth/auth_credential.js +16 -0
- package/dist/web/auth/auth_handler.js +62 -0
- package/dist/web/auth/auth_schemes.js +31 -0
- package/dist/web/auth/auth_tool.js +5 -0
- package/dist/web/auth/credential_service/base_credential_service.js +5 -0
- package/dist/web/auth/credential_service/in_memory_credential_service.js +33 -0
- package/dist/web/code_executors/base_code_executor.js +46 -0
- package/dist/web/code_executors/built_in_code_executor.js +28 -0
- package/dist/web/code_executors/code_execution_utils.js +105 -0
- package/dist/web/code_executors/code_executor_context.js +168 -0
- package/dist/web/common.js +85 -0
- package/dist/web/events/event.js +90 -0
- package/dist/web/events/event_actions.js +67 -0
- package/dist/web/examples/base_example_provider.js +10 -0
- package/dist/web/examples/example.js +5 -0
- package/dist/web/examples/example_util.js +75 -0
- package/dist/web/index.js +13 -0
- package/dist/web/index.js.map +7 -0
- package/dist/web/index_web.js +6 -0
- package/dist/web/memory/base_memory_service.js +5 -0
- package/dist/web/memory/in_memory_memory_service.js +67 -0
- package/dist/web/memory/memory_entry.js +5 -0
- package/dist/web/models/base_llm.js +47 -0
- package/dist/web/models/base_llm_connection.js +5 -0
- package/dist/web/models/gemini_llm_connection.js +120 -0
- package/dist/web/models/google_llm.js +332 -0
- package/dist/web/models/llm_request.js +50 -0
- package/dist/web/models/llm_response.js +41 -0
- package/dist/web/models/registry.js +91 -0
- package/dist/web/plugins/base_plugin.js +206 -0
- package/dist/web/plugins/logging_plugin.js +192 -0
- package/dist/web/plugins/plugin_manager.js +209 -0
- package/dist/web/plugins/security_plugin.js +119 -0
- package/dist/web/runner/in_memory_runner.js +28 -0
- package/dist/web/runner/runner.js +277 -0
- package/dist/web/sessions/base_session_service.js +41 -0
- package/dist/web/sessions/in_memory_session_service.js +154 -0
- package/dist/web/sessions/session.js +18 -0
- package/dist/web/sessions/state.js +87 -0
- package/dist/web/tools/agent_tool.js +118 -0
- package/dist/web/tools/base_tool.js +77 -0
- package/dist/web/tools/base_toolset.js +46 -0
- package/dist/web/tools/forwarding_artifact_service.js +41 -0
- package/dist/web/tools/function_tool.js +71 -0
- package/dist/web/tools/google_search_tool.js +46 -0
- package/dist/web/tools/long_running_tool.js +50 -0
- package/dist/web/tools/mcp/mcp_session_manager.js +35 -0
- package/dist/web/tools/mcp/mcp_tool.js +35 -0
- package/dist/web/tools/mcp/mcp_toolset.js +31 -0
- package/dist/web/tools/tool_confirmation.js +19 -0
- package/dist/web/tools/tool_context.js +99 -0
- package/dist/web/utils/deep_clone.js +14 -0
- package/dist/web/utils/env_aware_utils.js +49 -0
- package/dist/web/utils/gemini_schema_util.js +58 -0
- package/dist/web/utils/logger.js +89 -0
- package/dist/web/utils/model_name.js +31 -0
- package/dist/web/utils/simple_zod_to_json.js +174 -0
- package/dist/web/utils/variant_utils.js +24 -0
- package/dist/web/version.js +9 -0
- package/package.json +61 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { BaseTool, RunAsyncToolRequest, ToolProcessLlmRequest } from './base_tool.js';
|
|
2
|
+
/**
|
|
3
|
+
* A built-in tool that is automatically invoked by Gemini 2 models to retrieve
|
|
4
|
+
* search results from Google Search.
|
|
5
|
+
*
|
|
6
|
+
* This tool operates internally within the model and does not require or
|
|
7
|
+
* perform local code execution.
|
|
8
|
+
*/
|
|
9
|
+
declare class GoogleSearchTool extends BaseTool {
|
|
10
|
+
constructor();
|
|
11
|
+
runAsync(request: RunAsyncToolRequest): Promise<unknown>;
|
|
12
|
+
processLlmRequest({ toolContext, llmRequest }: ToolProcessLlmRequest): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* A global instance of GoogleSearchTool.
|
|
16
|
+
*/
|
|
17
|
+
export declare const GOOGLE_SEARCH: GoogleSearchTool;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { FunctionDeclaration } from '@google/genai';
|
|
7
|
+
import { FunctionTool, ToolInputParameters, ToolOptions } from './function_tool.js';
|
|
8
|
+
export declare class LongRunningFunctionTool<TParameters extends ToolInputParameters = undefined> extends FunctionTool<TParameters> {
|
|
9
|
+
/**
|
|
10
|
+
* The constructor acts as the user-friendly factory.
|
|
11
|
+
* @param options The configuration for the tool.
|
|
12
|
+
*/
|
|
13
|
+
constructor(options: ToolOptions<TParameters>);
|
|
14
|
+
/**
|
|
15
|
+
* Provide a schema for the function.
|
|
16
|
+
*/
|
|
17
|
+
_getDeclaration(): FunctionDeclaration;
|
|
18
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
7
|
+
import { StdioServerParameters } from '@modelcontextprotocol/sdk/client/stdio.js';
|
|
8
|
+
/**
|
|
9
|
+
* Defines the parameters for establishing a connection to an MCP server using
|
|
10
|
+
* standard input/output (stdio). This is typically used for running MCP servers
|
|
11
|
+
* as local child processes.
|
|
12
|
+
*/
|
|
13
|
+
export interface StdioConnectionParams {
|
|
14
|
+
type: 'StdioConnectionParams';
|
|
15
|
+
serverParams: StdioServerParameters;
|
|
16
|
+
timeout?: Number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Defines the parameters for establishing a connection to an MCP server over
|
|
20
|
+
* HTTP using Server-Sent Events (SSE) for streaming.
|
|
21
|
+
*
|
|
22
|
+
* Usage:
|
|
23
|
+
* const connectionParams: StreamableHTTPConnectionParams = {
|
|
24
|
+
* type: 'StreamableHTTPConnectionParams',
|
|
25
|
+
* url: 'http://localhost:8788/mcp'
|
|
26
|
+
* };
|
|
27
|
+
*/
|
|
28
|
+
export interface StreamableHTTPConnectionParams {
|
|
29
|
+
type: 'StreamableHTTPConnectionParams';
|
|
30
|
+
url: string;
|
|
31
|
+
header?: Record<string, unknown>;
|
|
32
|
+
timeout?: Number;
|
|
33
|
+
sseReadTimeout?: Number;
|
|
34
|
+
terminateOnClose?: boolean;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* A union of all supported MCP connection parameter types.
|
|
38
|
+
*/
|
|
39
|
+
export type MCPConnectionParams = StdioConnectionParams | StreamableHTTPConnectionParams;
|
|
40
|
+
/**
|
|
41
|
+
* Manages Model Context Protocol (MCP) client sessions.
|
|
42
|
+
*
|
|
43
|
+
* This class is responsible for establishing and managing connections to MCP
|
|
44
|
+
* servers. It supports different transport protocols like Standard I/O (Stdio)
|
|
45
|
+
* and Server-Sent Events (SSE) over HTTP, determined by the provided
|
|
46
|
+
* connection parameters.
|
|
47
|
+
*
|
|
48
|
+
* The primary purpose of this manager is to abstract away the details of
|
|
49
|
+
* session creation and connection handling, providing a simple interface for
|
|
50
|
+
* creating new MCP client instances that can be used to interact with
|
|
51
|
+
* remote tools.
|
|
52
|
+
*/
|
|
53
|
+
export declare class MCPSessionManager {
|
|
54
|
+
private readonly connectionParams;
|
|
55
|
+
constructor(connectionParams: MCPConnectionParams);
|
|
56
|
+
createSession(): Promise<Client>;
|
|
57
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { FunctionDeclaration } from '@google/genai';
|
|
7
|
+
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
8
|
+
import { BaseTool, RunAsyncToolRequest } from '../base_tool.js';
|
|
9
|
+
import { MCPSessionManager } from './mcp_session_manager.js';
|
|
10
|
+
/**
|
|
11
|
+
* Represents a tool exposed via the Model Context Protocol (MCP).
|
|
12
|
+
*
|
|
13
|
+
* This class acts as a wrapper around a tool definition received from an MCP
|
|
14
|
+
* server. It translates the MCP tool's schema into a format compatible with
|
|
15
|
+
* the Gemini AI platform (FunctionDeclaration) and handles the remote
|
|
16
|
+
* execution of the tool by communicating with the MCP server through an
|
|
17
|
+
* {@link MCPSessionManager}.
|
|
18
|
+
*
|
|
19
|
+
* When an LLM decides to call this tool, the `runAsync` method will be
|
|
20
|
+
* invoked, which in turn establishes an MCP session, sends a `callTool`
|
|
21
|
+
* request with the provided arguments, and returns the result from the
|
|
22
|
+
* remote tool.
|
|
23
|
+
*/
|
|
24
|
+
export declare class MCPTool extends BaseTool {
|
|
25
|
+
private readonly mcpTool;
|
|
26
|
+
private readonly mcpSessionManager;
|
|
27
|
+
constructor(mcpTool: Tool, mcpSessionManager: MCPSessionManager);
|
|
28
|
+
_getDeclaration(): FunctionDeclaration;
|
|
29
|
+
runAsync(request: RunAsyncToolRequest): Promise<unknown>;
|
|
30
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { ReadonlyContext } from '../../agents/readonly_context.js';
|
|
7
|
+
import { BaseTool } from '../base_tool.js';
|
|
8
|
+
import { BaseToolset, ToolPredicate } from '../base_toolset.js';
|
|
9
|
+
import { MCPConnectionParams } from './mcp_session_manager.js';
|
|
10
|
+
/**
|
|
11
|
+
* A toolset that dynamically discovers and provides tools from a Model Context
|
|
12
|
+
* Protocol (MCP) server.
|
|
13
|
+
*
|
|
14
|
+
* This class connects to an MCP server, retrieves the list of available tools,
|
|
15
|
+
* and wraps each of them in an {@link MCPTool} instance. This allows the agent
|
|
16
|
+
* to seamlessly use tools from an external MCP-compliant service.
|
|
17
|
+
*
|
|
18
|
+
* The toolset can be configured with a filter to selectively expose a subset
|
|
19
|
+
* of the tools provided by the MCP server.
|
|
20
|
+
*
|
|
21
|
+
* Usage:
|
|
22
|
+
* import { MCPToolset } from '@google/adk';
|
|
23
|
+
* import { StreamableHTTPConnectionParamsSchema } from '@google/adk';
|
|
24
|
+
*
|
|
25
|
+
* const connectionParams = StreamableHTTPConnectionParamsSchema.parse({
|
|
26
|
+
* type: "StreamableHTTPConnectionParams",
|
|
27
|
+
* url: "http://localhost:8788/mcp"
|
|
28
|
+
* });
|
|
29
|
+
*
|
|
30
|
+
* const mcpToolset = new MCPToolset(connectionParams);
|
|
31
|
+
* const tools = await mcpToolset.getTools();
|
|
32
|
+
*
|
|
33
|
+
*/
|
|
34
|
+
export declare class MCPToolset extends BaseToolset {
|
|
35
|
+
private readonly mcpSessionManager;
|
|
36
|
+
constructor(connectionParams: MCPConnectionParams, toolFilter?: ToolPredicate | string[]);
|
|
37
|
+
getTools(context?: ReadonlyContext): Promise<BaseTool[]>;
|
|
38
|
+
close(): Promise<void>;
|
|
39
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Represents a tool confirmation configuration.
|
|
8
|
+
* @experimental (Experimental, subject to change)
|
|
9
|
+
*/
|
|
10
|
+
export declare class ToolConfirmation {
|
|
11
|
+
/** The hint text for why the input is needed. */
|
|
12
|
+
hint: string;
|
|
13
|
+
/** Whether the tool excution is confirmed. */
|
|
14
|
+
confirmed: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* The custom data payload needed from the user to continue the flow.
|
|
17
|
+
* It should be JSON serializable.
|
|
18
|
+
*/
|
|
19
|
+
payload?: unknown;
|
|
20
|
+
constructor({ hint, confirmed, payload, }: {
|
|
21
|
+
hint?: string;
|
|
22
|
+
confirmed: boolean;
|
|
23
|
+
payload?: unknown;
|
|
24
|
+
});
|
|
25
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { CallbackContext } from '../agents/callback_context.js';
|
|
7
|
+
import { InvocationContext } from '../agents/invocation_context.js';
|
|
8
|
+
import { AuthCredential } from '../auth/auth_credential.js';
|
|
9
|
+
import { AuthConfig } from '../auth/auth_tool.js';
|
|
10
|
+
import { EventActions } from '../events/event_actions.js';
|
|
11
|
+
import { SearchMemoryResponse } from '../memory/base_memory_service.js';
|
|
12
|
+
import { ToolConfirmation } from '../tools/tool_confirmation.js';
|
|
13
|
+
export declare class ToolContext extends CallbackContext {
|
|
14
|
+
readonly functionCallId?: string;
|
|
15
|
+
toolConfirmation?: ToolConfirmation;
|
|
16
|
+
/**
|
|
17
|
+
* @param params.invocationContext The invocation context of the tool.
|
|
18
|
+
* @param params.eventActions The event actions of the current tool call.
|
|
19
|
+
* @param params.functionCallId The function call id of the current tool call.
|
|
20
|
+
* This id was returned in the function call event from LLM to identify a
|
|
21
|
+
* function call. If LLM didn't return this id, ADK will assign one to it.
|
|
22
|
+
* This id is used to map function call response to the original function
|
|
23
|
+
* call.
|
|
24
|
+
* @param params.toolConfirmation The tool confirmation of the current tool
|
|
25
|
+
* call.
|
|
26
|
+
*/
|
|
27
|
+
constructor({ invocationContext, eventActions, functionCallId, toolConfirmation, }: {
|
|
28
|
+
invocationContext: InvocationContext;
|
|
29
|
+
eventActions?: EventActions;
|
|
30
|
+
functionCallId?: string;
|
|
31
|
+
toolConfirmation?: ToolConfirmation;
|
|
32
|
+
});
|
|
33
|
+
get actions(): EventActions;
|
|
34
|
+
requestCredential(authConfig: AuthConfig): void;
|
|
35
|
+
/**
|
|
36
|
+
* Gets the auth credential for the given auth config.
|
|
37
|
+
*
|
|
38
|
+
* @param authConfig The auth config to get the auth credential for.
|
|
39
|
+
* @return The auth credential for the given auth config.
|
|
40
|
+
*/
|
|
41
|
+
getAuthResponse(authConfig: AuthConfig): AuthCredential | undefined;
|
|
42
|
+
/**
|
|
43
|
+
* Lists the filenames of the artifacts attached to the current session.
|
|
44
|
+
*
|
|
45
|
+
* @return A promise that resolves to a list of artifact filenames.
|
|
46
|
+
*/
|
|
47
|
+
listArtifacts(): Promise<string[]>;
|
|
48
|
+
/**
|
|
49
|
+
* Searches the memory of the current user.
|
|
50
|
+
*
|
|
51
|
+
* @param query The query to search memory for.
|
|
52
|
+
* @return A promise that resolves to SearchMemoryResponse containing the
|
|
53
|
+
* matching memories.
|
|
54
|
+
*/
|
|
55
|
+
searchMemory(query: string): Promise<SearchMemoryResponse>;
|
|
56
|
+
/**
|
|
57
|
+
* Requests confirmation for the current tool call.
|
|
58
|
+
*/
|
|
59
|
+
requestConfirmation({ hint, payload }: {
|
|
60
|
+
hint?: string;
|
|
61
|
+
payload?: unknown;
|
|
62
|
+
}): void;
|
|
63
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function deepClone<T>(obj: T): T;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Returns true if the environment is a browser.
|
|
8
|
+
*/
|
|
9
|
+
export declare function isBrowser(): boolean;
|
|
10
|
+
export declare function randomUUID(): string;
|
|
11
|
+
/**
|
|
12
|
+
* Encodes the given string to base64.
|
|
13
|
+
*
|
|
14
|
+
* @param data The string to encode.
|
|
15
|
+
* @return The base64-encoded string.
|
|
16
|
+
*/
|
|
17
|
+
export declare function base64Encode(data: string): string;
|
|
18
|
+
/**
|
|
19
|
+
* Decodes the given base64 string to a string.
|
|
20
|
+
*
|
|
21
|
+
* @param data The base64-encoded string.
|
|
22
|
+
* @return The decoded string.
|
|
23
|
+
*/
|
|
24
|
+
export declare function base64Decode(data: string): string;
|
|
25
|
+
/**
|
|
26
|
+
* Checks if the given string is base64-encoded.
|
|
27
|
+
*
|
|
28
|
+
* @param data The string to check.
|
|
29
|
+
* @return True if the string is base64-encoded, false otherwise.
|
|
30
|
+
*/
|
|
31
|
+
export declare function isBase64Encoded(data: string): boolean;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Schema } from '@google/genai';
|
|
7
|
+
import { z } from 'zod';
|
|
8
|
+
declare const MCPToolSchema: z.ZodObject<{
|
|
9
|
+
type: z.ZodLiteral<"object">;
|
|
10
|
+
properties: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
11
|
+
required: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
12
|
+
}, "strip", z.ZodTypeAny, {
|
|
13
|
+
type: "object";
|
|
14
|
+
required?: string[] | undefined;
|
|
15
|
+
properties?: Record<string, unknown> | undefined;
|
|
16
|
+
}, {
|
|
17
|
+
type: "object";
|
|
18
|
+
required?: string[] | undefined;
|
|
19
|
+
properties?: Record<string, unknown> | undefined;
|
|
20
|
+
}>;
|
|
21
|
+
type MCPToolSchema = z.infer<typeof MCPToolSchema>;
|
|
22
|
+
export declare function toGeminiSchema(mcpSchema?: MCPToolSchema): Schema | undefined;
|
|
23
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/** Log levels for the logger. */
|
|
7
|
+
export declare enum LogLevel {
|
|
8
|
+
DEBUG = 0,
|
|
9
|
+
INFO = 1,
|
|
10
|
+
WARN = 2,
|
|
11
|
+
ERROR = 3
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Logger interface for ADK.
|
|
15
|
+
*/
|
|
16
|
+
export interface Logger {
|
|
17
|
+
log(level: LogLevel, ...args: unknown[]): void;
|
|
18
|
+
debug(...args: unknown[]): void;
|
|
19
|
+
info(...args: unknown[]): void;
|
|
20
|
+
warn(...args: unknown[]): void;
|
|
21
|
+
error(...args: unknown[]): void;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Sets the log level for the logger.
|
|
25
|
+
*/
|
|
26
|
+
export declare function setLogLevel(level: LogLevel): void;
|
|
27
|
+
/**
|
|
28
|
+
* Simple logger class for ADK.
|
|
29
|
+
*/
|
|
30
|
+
declare class SimpleLogger implements Logger {
|
|
31
|
+
log(level: LogLevel, ...args: unknown[]): void;
|
|
32
|
+
debug(...args: unknown[]): void;
|
|
33
|
+
info(...args: unknown[]): void;
|
|
34
|
+
warn(...args: unknown[]): void;
|
|
35
|
+
error(...args: unknown[]): void;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* The logger instance for ADK.
|
|
39
|
+
*/
|
|
40
|
+
export declare const logger: SimpleLogger;
|
|
41
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Extract the actual model name from either simple or path-based format.
|
|
8
|
+
*
|
|
9
|
+
* @param modelString Either a simple model name like "gemini-2.5-pro" or
|
|
10
|
+
* a path-based model name like "projects/.../models/gemini-2.0-flash-001"
|
|
11
|
+
* @return The extracted model name (e.g., "gemini-2.5-pro")
|
|
12
|
+
*/
|
|
13
|
+
export declare function extractModelName(modelString: string): string;
|
|
14
|
+
/**
|
|
15
|
+
* Check if the model is a Gemini model using regex patterns.
|
|
16
|
+
*
|
|
17
|
+
* @param modelString Either a simple model name or path - based model name
|
|
18
|
+
* @return true if it's a Gemini model, false otherwise.
|
|
19
|
+
*/
|
|
20
|
+
export declare function isGeminiModel(modelString: string): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Check if the model is a Gemini 1.x model using regex patterns.
|
|
23
|
+
*
|
|
24
|
+
* @param modelString Either a simple model name or path - based model name
|
|
25
|
+
* @return true if it's a Gemini 1.x model, false otherwise.
|
|
26
|
+
*/
|
|
27
|
+
export declare function isGemini1Model(modelString: string): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Check if the model is a Gemini 2.x model using regex patterns.
|
|
30
|
+
*
|
|
31
|
+
* @param modelString Either a simple model name or path - based model name
|
|
32
|
+
* @return true if it's a Gemini 2.x model, false otherwise.
|
|
33
|
+
*/
|
|
34
|
+
export declare function isGemini2Model(modelString: string): boolean;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Schema } from '@google/genai';
|
|
7
|
+
import { ZodObject } from 'zod';
|
|
8
|
+
/**
|
|
9
|
+
* Returns true if the given object is a V3 ZodObject.
|
|
10
|
+
*/
|
|
11
|
+
export declare function isZodObject(obj: unknown): obj is ZodObject<any>;
|
|
12
|
+
export declare function zodObjectToSchema(schema: ZodObject<any>): Schema;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* The Google LLM variant to use.
|
|
8
|
+
* see
|
|
9
|
+
* https://google.github.io/adk-docs/get-started/quickstart/#set-up-the-model
|
|
10
|
+
*/
|
|
11
|
+
export declare enum GoogleLLMVariant {
|
|
12
|
+
/**
|
|
13
|
+
* For using credentials from Google Vertex AI
|
|
14
|
+
*/
|
|
15
|
+
VERTEX_AI = "VERTEX_AI",
|
|
16
|
+
/**
|
|
17
|
+
* For using API Key from Google AI Studio
|
|
18
|
+
*/
|
|
19
|
+
GEMINI_API = "GEMINI_API"
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Gets the Google LLM variant to use.
|
|
23
|
+
*/
|
|
24
|
+
export declare function getGoogleLlmVariant(): GoogleLLMVariant;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
class ActiveStreamingTool {
|
|
7
|
+
constructor(params = {}) {
|
|
8
|
+
this.task = params.task;
|
|
9
|
+
this.stream = params.stream;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export {
|
|
13
|
+
ActiveStreamingTool
|
|
14
|
+
};
|