@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.
Files changed (311) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +9 -0
  3. package/dist/cjs/agents/active_streaming_tool.js +44 -0
  4. package/dist/cjs/agents/base_agent.js +245 -0
  5. package/dist/cjs/agents/base_llm_processor.js +44 -0
  6. package/dist/cjs/agents/callback_context.js +98 -0
  7. package/dist/cjs/agents/content_processor_utils.js +299 -0
  8. package/dist/cjs/agents/functions.js +394 -0
  9. package/dist/cjs/agents/instructions.js +110 -0
  10. package/dist/cjs/agents/invocation_context.js +109 -0
  11. package/dist/cjs/agents/live_request_queue.js +136 -0
  12. package/dist/cjs/agents/llm_agent.js +859 -0
  13. package/dist/cjs/agents/loop_agent.js +68 -0
  14. package/dist/cjs/agents/parallel_agent.js +78 -0
  15. package/dist/cjs/agents/readonly_context.js +68 -0
  16. package/dist/cjs/agents/run_config.js +74 -0
  17. package/dist/cjs/agents/sequential_agent.js +84 -0
  18. package/dist/cjs/agents/transcription_entry.js +27 -0
  19. package/dist/cjs/artifacts/base_artifact_service.js +27 -0
  20. package/dist/cjs/artifacts/in_memory_artifact_service.js +119 -0
  21. package/dist/cjs/auth/auth_credential.js +46 -0
  22. package/dist/cjs/auth/auth_handler.js +92 -0
  23. package/dist/cjs/auth/auth_schemes.js +62 -0
  24. package/dist/cjs/auth/auth_tool.js +27 -0
  25. package/dist/cjs/auth/credential_service/base_credential_service.js +27 -0
  26. package/dist/cjs/auth/credential_service/in_memory_credential_service.js +63 -0
  27. package/dist/cjs/code_executors/base_code_executor.js +76 -0
  28. package/dist/cjs/code_executors/built_in_code_executor.js +58 -0
  29. package/dist/cjs/code_executors/code_execution_utils.js +142 -0
  30. package/dist/cjs/code_executors/code_executor_context.js +198 -0
  31. package/dist/cjs/common.js +161 -0
  32. package/dist/cjs/events/event.js +107 -0
  33. package/dist/cjs/events/event_actions.js +83 -0
  34. package/dist/cjs/examples/base_example_provider.js +40 -0
  35. package/dist/cjs/examples/example.js +27 -0
  36. package/dist/cjs/examples/example_util.js +107 -0
  37. package/dist/cjs/index.js +40 -0
  38. package/dist/cjs/index.js.map +7 -0
  39. package/dist/cjs/index_web.js +33 -0
  40. package/dist/cjs/memory/base_memory_service.js +27 -0
  41. package/dist/cjs/memory/in_memory_memory_service.js +97 -0
  42. package/dist/cjs/memory/memory_entry.js +27 -0
  43. package/dist/cjs/models/base_llm.js +77 -0
  44. package/dist/cjs/models/base_llm_connection.js +27 -0
  45. package/dist/cjs/models/gemini_llm_connection.js +132 -0
  46. package/dist/cjs/models/google_llm.js +321 -0
  47. package/dist/cjs/models/llm_request.js +82 -0
  48. package/dist/cjs/models/llm_response.js +71 -0
  49. package/dist/cjs/models/registry.js +121 -0
  50. package/dist/cjs/package.json +1 -0
  51. package/dist/cjs/plugins/base_plugin.js +236 -0
  52. package/dist/cjs/plugins/logging_plugin.js +222 -0
  53. package/dist/cjs/plugins/plugin_manager.js +239 -0
  54. package/dist/cjs/plugins/security_plugin.js +153 -0
  55. package/dist/cjs/runner/in_memory_runner.js +58 -0
  56. package/dist/cjs/runner/runner.js +276 -0
  57. package/dist/cjs/sessions/base_session_service.js +71 -0
  58. package/dist/cjs/sessions/in_memory_session_service.js +184 -0
  59. package/dist/cjs/sessions/session.js +48 -0
  60. package/dist/cjs/sessions/state.js +101 -0
  61. package/dist/cjs/tools/agent_tool.js +134 -0
  62. package/dist/cjs/tools/base_tool.js +107 -0
  63. package/dist/cjs/tools/base_toolset.js +76 -0
  64. package/dist/cjs/tools/forwarding_artifact_service.js +71 -0
  65. package/dist/cjs/tools/function_tool.js +101 -0
  66. package/dist/cjs/tools/google_search_tool.js +76 -0
  67. package/dist/cjs/tools/long_running_tool.js +63 -0
  68. package/dist/cjs/tools/mcp/mcp_session_manager.js +65 -0
  69. package/dist/cjs/tools/mcp/mcp_tool.js +65 -0
  70. package/dist/cjs/tools/mcp/mcp_toolset.js +61 -0
  71. package/dist/cjs/tools/tool_confirmation.js +49 -0
  72. package/dist/cjs/tools/tool_context.js +129 -0
  73. package/dist/cjs/utils/deep_clone.js +44 -0
  74. package/dist/cjs/utils/env_aware_utils.js +83 -0
  75. package/dist/cjs/utils/gemini_schema_util.js +88 -0
  76. package/dist/cjs/utils/logger.js +121 -0
  77. package/dist/cjs/utils/model_name.js +64 -0
  78. package/dist/cjs/utils/simple_zod_to_json.js +191 -0
  79. package/dist/cjs/utils/variant_utils.js +55 -0
  80. package/dist/cjs/version.js +39 -0
  81. package/dist/esm/agents/active_streaming_tool.js +14 -0
  82. package/dist/esm/agents/base_agent.js +214 -0
  83. package/dist/esm/agents/base_llm_processor.js +13 -0
  84. package/dist/esm/agents/callback_context.js +68 -0
  85. package/dist/esm/agents/content_processor_utils.js +268 -0
  86. package/dist/esm/agents/functions.js +353 -0
  87. package/dist/esm/agents/instructions.js +80 -0
  88. package/dist/esm/agents/invocation_context.js +78 -0
  89. package/dist/esm/agents/live_request_queue.js +106 -0
  90. package/dist/esm/agents/llm_agent.js +828 -0
  91. package/dist/esm/agents/loop_agent.js +38 -0
  92. package/dist/esm/agents/parallel_agent.js +48 -0
  93. package/dist/esm/agents/readonly_context.js +38 -0
  94. package/dist/esm/agents/run_config.js +43 -0
  95. package/dist/esm/agents/sequential_agent.js +54 -0
  96. package/dist/esm/agents/transcription_entry.js +5 -0
  97. package/dist/esm/artifacts/base_artifact_service.js +5 -0
  98. package/dist/esm/artifacts/in_memory_artifact_service.js +89 -0
  99. package/dist/esm/auth/auth_credential.js +16 -0
  100. package/dist/esm/auth/auth_handler.js +62 -0
  101. package/dist/esm/auth/auth_schemes.js +31 -0
  102. package/dist/esm/auth/auth_tool.js +5 -0
  103. package/dist/esm/auth/credential_service/base_credential_service.js +5 -0
  104. package/dist/esm/auth/credential_service/in_memory_credential_service.js +33 -0
  105. package/dist/esm/code_executors/base_code_executor.js +46 -0
  106. package/dist/esm/code_executors/built_in_code_executor.js +28 -0
  107. package/dist/esm/code_executors/code_execution_utils.js +108 -0
  108. package/dist/esm/code_executors/code_executor_context.js +168 -0
  109. package/dist/esm/common.js +85 -0
  110. package/dist/esm/events/event.js +72 -0
  111. package/dist/esm/events/event_actions.js +52 -0
  112. package/dist/esm/examples/base_example_provider.js +10 -0
  113. package/dist/esm/examples/example.js +5 -0
  114. package/dist/esm/examples/example_util.js +76 -0
  115. package/dist/esm/index.js +40 -0
  116. package/dist/esm/index.js.map +7 -0
  117. package/dist/esm/index_web.js +6 -0
  118. package/dist/esm/memory/base_memory_service.js +5 -0
  119. package/dist/esm/memory/in_memory_memory_service.js +67 -0
  120. package/dist/esm/memory/memory_entry.js +5 -0
  121. package/dist/esm/models/base_llm.js +47 -0
  122. package/dist/esm/models/base_llm_connection.js +5 -0
  123. package/dist/esm/models/gemini_llm_connection.js +102 -0
  124. package/dist/esm/models/google_llm.js +291 -0
  125. package/dist/esm/models/llm_request.js +50 -0
  126. package/dist/esm/models/llm_response.js +41 -0
  127. package/dist/esm/models/registry.js +91 -0
  128. package/dist/esm/plugins/base_plugin.js +206 -0
  129. package/dist/esm/plugins/logging_plugin.js +192 -0
  130. package/dist/esm/plugins/plugin_manager.js +209 -0
  131. package/dist/esm/plugins/security_plugin.js +119 -0
  132. package/dist/esm/runner/in_memory_runner.js +28 -0
  133. package/dist/esm/runner/runner.js +246 -0
  134. package/dist/esm/sessions/base_session_service.js +41 -0
  135. package/dist/esm/sessions/in_memory_session_service.js +154 -0
  136. package/dist/esm/sessions/session.js +18 -0
  137. package/dist/esm/sessions/state.js +71 -0
  138. package/dist/esm/tools/agent_tool.js +104 -0
  139. package/dist/esm/tools/base_tool.js +77 -0
  140. package/dist/esm/tools/base_toolset.js +46 -0
  141. package/dist/esm/tools/forwarding_artifact_service.js +41 -0
  142. package/dist/esm/tools/function_tool.js +71 -0
  143. package/dist/esm/tools/google_search_tool.js +46 -0
  144. package/dist/esm/tools/long_running_tool.js +33 -0
  145. package/dist/esm/tools/mcp/mcp_session_manager.js +35 -0
  146. package/dist/esm/tools/mcp/mcp_tool.js +35 -0
  147. package/dist/esm/tools/mcp/mcp_toolset.js +31 -0
  148. package/dist/esm/tools/tool_confirmation.js +19 -0
  149. package/dist/esm/tools/tool_context.js +99 -0
  150. package/dist/esm/utils/deep_clone.js +14 -0
  151. package/dist/esm/utils/env_aware_utils.js +49 -0
  152. package/dist/esm/utils/gemini_schema_util.js +58 -0
  153. package/dist/esm/utils/logger.js +89 -0
  154. package/dist/esm/utils/model_name.js +31 -0
  155. package/dist/esm/utils/simple_zod_to_json.js +160 -0
  156. package/dist/esm/utils/variant_utils.js +24 -0
  157. package/dist/esm/version.js +9 -0
  158. package/dist/types/agents/active_streaming_tool.d.ts +29 -0
  159. package/dist/types/agents/base_agent.d.ts +167 -0
  160. package/dist/types/agents/base_llm_processor.d.ts +27 -0
  161. package/dist/types/agents/callback_context.d.ts +42 -0
  162. package/dist/types/agents/content_processor_utils.d.ts +36 -0
  163. package/dist/types/agents/functions.d.ts +90 -0
  164. package/dist/types/agents/instructions.d.ts +32 -0
  165. package/dist/types/agents/invocation_context.d.ts +155 -0
  166. package/dist/types/agents/live_request_queue.d.ts +67 -0
  167. package/dist/types/agents/llm_agent.d.ts +333 -0
  168. package/dist/types/agents/loop_agent.d.ts +31 -0
  169. package/dist/types/agents/parallel_agent.d.ts +21 -0
  170. package/dist/types/agents/readonly_context.d.ts +31 -0
  171. package/dist/types/agents/run_config.d.ts +76 -0
  172. package/dist/types/agents/sequential_agent.d.ts +26 -0
  173. package/dist/types/agents/transcription_entry.d.ts +17 -0
  174. package/dist/types/artifacts/base_artifact_service.d.ts +127 -0
  175. package/dist/types/artifacts/in_memory_artifact_service.d.ts +18 -0
  176. package/dist/types/auth/auth_credential.d.ts +227 -0
  177. package/dist/types/auth/auth_handler.d.ts +27 -0
  178. package/dist/types/auth/auth_schemes.d.ts +36 -0
  179. package/dist/types/auth/auth_tool.d.ts +51 -0
  180. package/dist/types/auth/credential_service/base_credential_service.d.ts +27 -0
  181. package/dist/types/auth/credential_service/in_memory_credential_service.d.ts +19 -0
  182. package/dist/types/code_executors/base_code_executor.d.ts +60 -0
  183. package/dist/types/code_executors/built_in_code_executor.d.ts +13 -0
  184. package/dist/types/code_executors/code_execution_utils.d.ts +99 -0
  185. package/dist/types/code_executors/code_executor_context.d.ts +92 -0
  186. package/dist/types/common.d.ts +51 -0
  187. package/dist/types/events/event.d.ts +81 -0
  188. package/dist/types/events/event_actions.d.ts +74 -0
  189. package/dist/types/examples/base_example_provider.d.ts +20 -0
  190. package/dist/types/examples/example.d.ts +19 -0
  191. package/dist/types/examples/example_util.d.ts +13 -0
  192. package/dist/types/index.d.ts +9 -0
  193. package/dist/types/index_web.d.ts +6 -0
  194. package/dist/types/memory/base_memory_service.d.ts +47 -0
  195. package/dist/types/memory/in_memory_memory_service.d.ts +18 -0
  196. package/dist/types/memory/memory_entry.d.ts +24 -0
  197. package/dist/types/models/base_llm.d.ts +46 -0
  198. package/dist/types/models/base_llm_connection.d.ts +51 -0
  199. package/dist/types/models/gemini_llm_connection.d.ts +54 -0
  200. package/dist/types/models/google_llm.d.ts +88 -0
  201. package/dist/types/models/llm_request.d.ts +49 -0
  202. package/dist/types/models/llm_response.d.ts +79 -0
  203. package/dist/types/models/registry.d.ts +45 -0
  204. package/dist/types/plugins/base_plugin.d.ts +310 -0
  205. package/dist/types/plugins/logging_plugin.d.ts +104 -0
  206. package/dist/types/plugins/plugin_manager.d.ts +155 -0
  207. package/dist/types/plugins/security_plugin.d.ts +60 -0
  208. package/dist/types/runner/in_memory_runner.d.ts +15 -0
  209. package/dist/types/runner/runner.d.ts +80 -0
  210. package/dist/types/sessions/base_session_service.d.ts +129 -0
  211. package/dist/types/sessions/in_memory_session_service.d.ts +32 -0
  212. package/dist/types/sessions/session.d.ts +46 -0
  213. package/dist/types/sessions/state.d.ts +57 -0
  214. package/dist/types/tools/agent_tool.d.ts +37 -0
  215. package/dist/types/tools/base_tool.d.ts +84 -0
  216. package/dist/types/tools/base_toolset.d.ts +64 -0
  217. package/dist/types/tools/forwarding_artifact_service.d.ts +21 -0
  218. package/dist/types/tools/function_tool.d.ts +48 -0
  219. package/dist/types/tools/google_search_tool.d.ts +18 -0
  220. package/dist/types/tools/long_running_tool.d.ts +18 -0
  221. package/dist/types/tools/mcp/mcp_session_manager.d.ts +57 -0
  222. package/dist/types/tools/mcp/mcp_tool.d.ts +30 -0
  223. package/dist/types/tools/mcp/mcp_toolset.d.ts +39 -0
  224. package/dist/types/tools/tool_confirmation.d.ts +25 -0
  225. package/dist/types/tools/tool_context.d.ts +63 -0
  226. package/dist/types/utils/deep_clone.d.ts +1 -0
  227. package/dist/types/utils/env_aware_utils.d.ts +31 -0
  228. package/dist/types/utils/gemini_schema_util.d.ts +23 -0
  229. package/dist/types/utils/logger.d.ts +41 -0
  230. package/dist/types/utils/model_name.d.ts +34 -0
  231. package/dist/types/utils/simple_zod_to_json.d.ts +12 -0
  232. package/dist/types/utils/variant_utils.d.ts +24 -0
  233. package/dist/types/version.d.ts +6 -0
  234. package/dist/web/agents/active_streaming_tool.js +14 -0
  235. package/dist/web/agents/base_agent.js +265 -0
  236. package/dist/web/agents/base_llm_processor.js +13 -0
  237. package/dist/web/agents/callback_context.js +68 -0
  238. package/dist/web/agents/content_processor_utils.js +268 -0
  239. package/dist/web/agents/functions.js +353 -0
  240. package/dist/web/agents/instructions.js +80 -0
  241. package/dist/web/agents/invocation_context.js +78 -0
  242. package/dist/web/agents/live_request_queue.js +124 -0
  243. package/dist/web/agents/llm_agent.js +973 -0
  244. package/dist/web/agents/loop_agent.js +71 -0
  245. package/dist/web/agents/parallel_agent.js +83 -0
  246. package/dist/web/agents/readonly_context.js +38 -0
  247. package/dist/web/agents/run_config.js +43 -0
  248. package/dist/web/agents/sequential_agent.js +99 -0
  249. package/dist/web/agents/transcription_entry.js +5 -0
  250. package/dist/web/artifacts/base_artifact_service.js +5 -0
  251. package/dist/web/artifacts/in_memory_artifact_service.js +89 -0
  252. package/dist/web/auth/auth_credential.js +16 -0
  253. package/dist/web/auth/auth_handler.js +62 -0
  254. package/dist/web/auth/auth_schemes.js +31 -0
  255. package/dist/web/auth/auth_tool.js +5 -0
  256. package/dist/web/auth/credential_service/base_credential_service.js +5 -0
  257. package/dist/web/auth/credential_service/in_memory_credential_service.js +33 -0
  258. package/dist/web/code_executors/base_code_executor.js +46 -0
  259. package/dist/web/code_executors/built_in_code_executor.js +28 -0
  260. package/dist/web/code_executors/code_execution_utils.js +105 -0
  261. package/dist/web/code_executors/code_executor_context.js +168 -0
  262. package/dist/web/common.js +85 -0
  263. package/dist/web/events/event.js +90 -0
  264. package/dist/web/events/event_actions.js +67 -0
  265. package/dist/web/examples/base_example_provider.js +10 -0
  266. package/dist/web/examples/example.js +5 -0
  267. package/dist/web/examples/example_util.js +75 -0
  268. package/dist/web/index.js +13 -0
  269. package/dist/web/index.js.map +7 -0
  270. package/dist/web/index_web.js +6 -0
  271. package/dist/web/memory/base_memory_service.js +5 -0
  272. package/dist/web/memory/in_memory_memory_service.js +67 -0
  273. package/dist/web/memory/memory_entry.js +5 -0
  274. package/dist/web/models/base_llm.js +47 -0
  275. package/dist/web/models/base_llm_connection.js +5 -0
  276. package/dist/web/models/gemini_llm_connection.js +120 -0
  277. package/dist/web/models/google_llm.js +332 -0
  278. package/dist/web/models/llm_request.js +50 -0
  279. package/dist/web/models/llm_response.js +41 -0
  280. package/dist/web/models/registry.js +91 -0
  281. package/dist/web/plugins/base_plugin.js +206 -0
  282. package/dist/web/plugins/logging_plugin.js +192 -0
  283. package/dist/web/plugins/plugin_manager.js +209 -0
  284. package/dist/web/plugins/security_plugin.js +119 -0
  285. package/dist/web/runner/in_memory_runner.js +28 -0
  286. package/dist/web/runner/runner.js +277 -0
  287. package/dist/web/sessions/base_session_service.js +41 -0
  288. package/dist/web/sessions/in_memory_session_service.js +154 -0
  289. package/dist/web/sessions/session.js +18 -0
  290. package/dist/web/sessions/state.js +87 -0
  291. package/dist/web/tools/agent_tool.js +118 -0
  292. package/dist/web/tools/base_tool.js +77 -0
  293. package/dist/web/tools/base_toolset.js +46 -0
  294. package/dist/web/tools/forwarding_artifact_service.js +41 -0
  295. package/dist/web/tools/function_tool.js +71 -0
  296. package/dist/web/tools/google_search_tool.js +46 -0
  297. package/dist/web/tools/long_running_tool.js +50 -0
  298. package/dist/web/tools/mcp/mcp_session_manager.js +35 -0
  299. package/dist/web/tools/mcp/mcp_tool.js +35 -0
  300. package/dist/web/tools/mcp/mcp_toolset.js +31 -0
  301. package/dist/web/tools/tool_confirmation.js +19 -0
  302. package/dist/web/tools/tool_context.js +99 -0
  303. package/dist/web/utils/deep_clone.js +14 -0
  304. package/dist/web/utils/env_aware_utils.js +49 -0
  305. package/dist/web/utils/gemini_schema_util.js +58 -0
  306. package/dist/web/utils/logger.js +89 -0
  307. package/dist/web/utils/model_name.js +31 -0
  308. package/dist/web/utils/simple_zod_to_json.js +174 -0
  309. package/dist/web/utils/variant_utils.js +24 -0
  310. package/dist/web/version.js +9 -0
  311. 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,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export declare const version = "0.1.0";
@@ -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
+ };