@google/adk 1.1.0 → 1.3.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 (300) hide show
  1. package/dist/cjs/agents/base_agent.js +19 -1
  2. package/dist/cjs/agents/functions.js +4 -0
  3. package/dist/cjs/agents/instructions.js +81 -33
  4. package/dist/cjs/agents/invocation_context.js +0 -1
  5. package/dist/cjs/agents/llm_agent.js +52 -5
  6. package/dist/cjs/agents/processors/agent_transfer_llm_request_processor.js +7 -0
  7. package/dist/cjs/agents/processors/basic_llm_request_processor.js +8 -1
  8. package/dist/cjs/agents/processors/content_processor_utils.js +37 -24
  9. package/dist/cjs/agents/processors/content_request_processor.js +7 -0
  10. package/dist/cjs/agents/processors/context_compactor_request_processor.js +12 -0
  11. package/dist/cjs/agents/processors/identity_llm_request_processor.js +7 -0
  12. package/dist/cjs/agents/processors/instructions_llm_request_processor.js +5 -0
  13. package/dist/cjs/agents/processors/request_confirmation_llm_request_processor.js +9 -1
  14. package/dist/cjs/agents/processors/tool_filter_request_processor.js +7 -1
  15. package/dist/cjs/auth/auth_preprocessor.js +12 -10
  16. package/dist/cjs/auth/oauth2/oauth2_discovery.js +26 -2
  17. package/dist/cjs/code_executors/agent_engine_sandbox_code_executor.js +305 -0
  18. package/dist/cjs/code_executors/code_execution_utils.js +1 -1
  19. package/dist/cjs/code_executors/code_executor_context.js +7 -7
  20. package/dist/cjs/common.js +50 -0
  21. package/dist/cjs/context/summarizers/llm_summarizer.js +11 -0
  22. package/dist/cjs/context/token_based_context_compactor.js +1 -1
  23. package/dist/cjs/events/event.js +4 -2
  24. package/dist/cjs/index.js +14 -0
  25. package/dist/cjs/integrations/agent_registry/agent_registry.js +362 -0
  26. package/dist/cjs/integrations/agent_registry/agent_registry_mcp_toolset.js +122 -0
  27. package/dist/cjs/integrations/agent_registry/helpers.js +57 -0
  28. package/dist/cjs/integrations/agent_registry/types.js +50 -0
  29. package/dist/cjs/memory/vertex_ai_memory_bank_service.js +496 -0
  30. package/dist/cjs/models/gemini_llm_connection.js +62 -19
  31. package/dist/cjs/models/google_llm.js +26 -8
  32. package/dist/cjs/plugins/security_plugin.js +16 -0
  33. package/dist/cjs/runner/in_memory_runner.js +10 -5
  34. package/dist/cjs/runner/runner.js +32 -2
  35. package/dist/cjs/sessions/base_session_service.js +13 -2
  36. package/dist/cjs/sessions/database_session_service.js +51 -5
  37. package/dist/cjs/sessions/db/schema.js +45 -10
  38. package/dist/cjs/sessions/in_memory_session_service.js +72 -15
  39. package/dist/cjs/sessions/registry.js +4 -0
  40. package/dist/cjs/sessions/vertex_ai_session_service.js +429 -0
  41. package/dist/cjs/skills/gcp_skill_registry.js +104 -0
  42. package/dist/cjs/skills/loader.js +65 -0
  43. package/dist/cjs/skills/skill_registry.js +27 -0
  44. package/dist/cjs/tools/agent_tool.js +10 -5
  45. package/dist/cjs/tools/exit_loop_tool.js +9 -0
  46. package/dist/cjs/tools/function_tool.js +7 -2
  47. package/dist/cjs/tools/google_maps_grounding_tool.js +80 -0
  48. package/dist/cjs/tools/long_running_tool.js +2 -1
  49. package/dist/cjs/tools/mcp/mcp_session_manager.js +11 -0
  50. package/dist/cjs/tools/mcp/mcp_tool.js +10 -6
  51. package/dist/cjs/tools/mcp/mcp_toolset.js +26 -3
  52. package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +78 -0
  53. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +84 -0
  54. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +133 -0
  55. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +232 -0
  56. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/operation_parser.js +224 -0
  57. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +127 -0
  58. package/dist/cjs/tools/openapi_tool/openapi_toolset.js +133 -0
  59. package/dist/cjs/tools/openapi_tool/rest_api_tool.js +256 -0
  60. package/dist/cjs/tools/skill/load_skill_resource_tool.js +27 -28
  61. package/dist/cjs/tools/skill/load_skill_tool.js +12 -1
  62. package/dist/cjs/tools/skill/run_skill_script_tool.js +12 -1
  63. package/dist/cjs/tools/skill/search_skills_tool.js +108 -0
  64. package/dist/cjs/tools/skill/skill_toolset.js +40 -5
  65. package/dist/cjs/tools/vertex_rag_retrieval_tool.js +64 -0
  66. package/dist/cjs/utils/async_queue.js +88 -0
  67. package/dist/cjs/utils/case_utils.js +53 -0
  68. package/dist/cjs/utils/env_aware_utils.js +4 -0
  69. package/dist/cjs/utils/file_utils.js +28 -0
  70. package/dist/cjs/utils/gemini_schema_util.js +18 -0
  71. package/dist/cjs/utils/live_connection_utils.js +284 -0
  72. package/dist/cjs/utils/model_name.js +9 -0
  73. package/dist/cjs/utils/partial_copy.js +51 -0
  74. package/dist/cjs/utils/streaming_utils.js +169 -122
  75. package/dist/cjs/utils/vertex_ai_utils.js +50 -0
  76. package/dist/cjs/version.js +1 -1
  77. package/dist/esm/agents/base_agent.js +19 -1
  78. package/dist/esm/agents/functions.js +4 -0
  79. package/dist/esm/agents/instructions.js +81 -33
  80. package/dist/esm/agents/invocation_context.js +0 -1
  81. package/dist/esm/agents/llm_agent.js +53 -5
  82. package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +7 -0
  83. package/dist/esm/agents/processors/basic_llm_request_processor.js +8 -1
  84. package/dist/esm/agents/processors/content_processor_utils.js +35 -23
  85. package/dist/esm/agents/processors/content_request_processor.js +7 -0
  86. package/dist/esm/agents/processors/context_compactor_request_processor.js +12 -0
  87. package/dist/esm/agents/processors/identity_llm_request_processor.js +7 -0
  88. package/dist/esm/agents/processors/instructions_llm_request_processor.js +5 -0
  89. package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +9 -1
  90. package/dist/esm/agents/processors/tool_filter_request_processor.js +7 -1
  91. package/dist/esm/auth/auth_preprocessor.js +12 -10
  92. package/dist/esm/auth/oauth2/oauth2_discovery.js +26 -2
  93. package/dist/esm/code_executors/agent_engine_sandbox_code_executor.js +281 -0
  94. package/dist/esm/code_executors/code_execution_utils.js +1 -1
  95. package/dist/esm/code_executors/code_executor_context.js +7 -7
  96. package/dist/esm/common.js +43 -1
  97. package/dist/esm/context/summarizers/llm_summarizer.js +11 -0
  98. package/dist/esm/context/token_based_context_compactor.js +1 -1
  99. package/dist/esm/events/event.js +4 -2
  100. package/dist/esm/index.js +11 -0
  101. package/dist/esm/integrations/agent_registry/agent_registry.js +333 -0
  102. package/dist/esm/integrations/agent_registry/agent_registry_mcp_toolset.js +96 -0
  103. package/dist/esm/integrations/agent_registry/helpers.js +28 -0
  104. package/dist/esm/integrations/agent_registry/types.js +20 -0
  105. package/dist/esm/memory/vertex_ai_memory_bank_service.js +468 -0
  106. package/dist/esm/models/gemini_llm_connection.js +62 -19
  107. package/dist/esm/models/google_llm.js +26 -8
  108. package/dist/esm/plugins/security_plugin.js +16 -0
  109. package/dist/esm/runner/in_memory_runner.js +10 -5
  110. package/dist/esm/runner/runner.js +32 -2
  111. package/dist/esm/sessions/base_session_service.js +11 -1
  112. package/dist/esm/sessions/database_session_service.js +51 -5
  113. package/dist/esm/sessions/db/schema.js +44 -10
  114. package/dist/esm/sessions/in_memory_session_service.js +74 -16
  115. package/dist/esm/sessions/registry.js +7 -0
  116. package/dist/esm/sessions/vertex_ai_session_service.js +405 -0
  117. package/dist/esm/skills/gcp_skill_registry.js +78 -0
  118. package/dist/esm/skills/loader.js +64 -0
  119. package/dist/esm/skills/skill_registry.js +7 -0
  120. package/dist/esm/tools/agent_tool.js +10 -5
  121. package/dist/esm/tools/exit_loop_tool.js +9 -0
  122. package/dist/esm/tools/function_tool.js +7 -2
  123. package/dist/esm/tools/google_maps_grounding_tool.js +54 -0
  124. package/dist/esm/tools/long_running_tool.js +2 -1
  125. package/dist/esm/tools/mcp/mcp_session_manager.js +11 -0
  126. package/dist/esm/tools/mcp/mcp_tool.js +10 -6
  127. package/dist/esm/tools/mcp/mcp_toolset.js +26 -3
  128. package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +48 -0
  129. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +60 -0
  130. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +111 -0
  131. package/dist/esm/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +206 -0
  132. package/dist/esm/tools/openapi_tool/openapi_spec_parser/operation_parser.js +198 -0
  133. package/dist/esm/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +101 -0
  134. package/dist/esm/tools/openapi_tool/openapi_toolset.js +97 -0
  135. package/dist/esm/tools/openapi_tool/rest_api_tool.js +229 -0
  136. package/dist/esm/tools/skill/load_skill_resource_tool.js +26 -27
  137. package/dist/esm/tools/skill/load_skill_tool.js +12 -1
  138. package/dist/esm/tools/skill/run_skill_script_tool.js +12 -1
  139. package/dist/esm/tools/skill/search_skills_tool.js +82 -0
  140. package/dist/esm/tools/skill/skill_toolset.js +40 -5
  141. package/dist/esm/tools/vertex_rag_retrieval_tool.js +36 -0
  142. package/dist/esm/utils/async_queue.js +60 -0
  143. package/dist/esm/utils/case_utils.js +25 -0
  144. package/dist/esm/utils/env_aware_utils.js +4 -0
  145. package/dist/esm/utils/file_utils.js +26 -0
  146. package/dist/esm/utils/gemini_schema_util.js +18 -0
  147. package/dist/esm/utils/live_connection_utils.js +256 -0
  148. package/dist/esm/utils/model_name.js +8 -0
  149. package/dist/esm/utils/partial_copy.js +23 -0
  150. package/dist/esm/utils/streaming_utils.js +167 -121
  151. package/dist/esm/utils/vertex_ai_utils.js +22 -0
  152. package/dist/esm/version.js +1 -1
  153. package/dist/types/a2a/a2a_remote_agent.d.ts +14 -0
  154. package/dist/types/a2a/a2a_remote_agent_utils.d.ts +29 -4
  155. package/dist/types/a2a/event_converter_utils.d.ts +14 -1
  156. package/dist/types/a2a/metadata_converter_utils.d.ts +18 -0
  157. package/dist/types/a2a/part_converter_utils.d.ts +51 -6
  158. package/dist/types/agents/invocation_context.d.ts +0 -9
  159. package/dist/types/agents/llm_agent.d.ts +14 -0
  160. package/dist/types/agents/processors/agent_transfer_llm_request_processor.d.ts +14 -0
  161. package/dist/types/agents/processors/base_llm_processor.d.ts +12 -4
  162. package/dist/types/agents/processors/basic_llm_request_processor.d.ts +12 -0
  163. package/dist/types/agents/processors/content_processor_utils.d.ts +26 -0
  164. package/dist/types/agents/processors/content_request_processor.d.ts +16 -0
  165. package/dist/types/agents/processors/context_compactor_request_processor.d.ts +12 -0
  166. package/dist/types/agents/processors/identity_llm_request_processor.d.ts +11 -0
  167. package/dist/types/agents/processors/request_confirmation_llm_request_processor.d.ts +14 -1
  168. package/dist/types/agents/processors/tool_filter_request_processor.d.ts +12 -1
  169. package/dist/types/agents/run_config.d.ts +15 -0
  170. package/dist/types/code_executors/agent_engine_sandbox_code_executor.d.ts +51 -0
  171. package/dist/types/common.d.ts +19 -1
  172. package/dist/types/context/summarizers/llm_summarizer.d.ts +17 -0
  173. package/dist/types/events/event_actions.d.ts +25 -8
  174. package/dist/types/events/structured_events.d.ts +13 -0
  175. package/dist/types/examples/example_util.d.ts +25 -0
  176. package/dist/types/index.d.ts +6 -0
  177. package/dist/types/integrations/agent_registry/agent_registry.d.ts +94 -0
  178. package/dist/types/integrations/agent_registry/agent_registry_mcp_toolset.d.ts +62 -0
  179. package/dist/types/integrations/agent_registry/helpers.d.ts +7 -0
  180. package/dist/types/integrations/agent_registry/types.d.ts +101 -0
  181. package/dist/types/memory/vertex_ai_memory_bank_service.d.ts +52 -0
  182. package/dist/types/models/base_llm_connection.d.ts +10 -0
  183. package/dist/types/models/gemini_llm_connection.d.ts +15 -4
  184. package/dist/types/models/llm_response.d.ts +10 -1
  185. package/dist/types/plugins/security_plugin.d.ts +30 -0
  186. package/dist/types/runner/in_memory_runner.d.ts +28 -1
  187. package/dist/types/runner/runner.d.ts +47 -0
  188. package/dist/types/sessions/base_session_service.d.ts +22 -0
  189. package/dist/types/sessions/database_session_service.d.ts +1 -1
  190. package/dist/types/sessions/db/schema.d.ts +1 -0
  191. package/dist/types/sessions/in_memory_session_service.d.ts +1 -1
  192. package/dist/types/sessions/vertex_ai_session_service.d.ts +37 -0
  193. package/dist/types/skills/gcp_skill_registry.d.ts +24 -0
  194. package/dist/types/skills/loader.d.ts +7 -0
  195. package/dist/types/skills/skill.d.ts +1 -1
  196. package/dist/types/skills/skill_registry.d.ts +29 -0
  197. package/dist/types/tools/exit_loop_tool.d.ts +9 -0
  198. package/dist/types/tools/function_tool.d.ts +22 -2
  199. package/dist/types/tools/google_maps_grounding_tool.d.ts +22 -0
  200. package/dist/types/tools/long_running_tool.d.ts +11 -1
  201. package/dist/types/tools/mcp/mcp_session_manager.d.ts +3 -0
  202. package/dist/types/tools/mcp/mcp_toolset.d.ts +2 -1
  203. package/dist/types/tools/openapi_tool/auth/auth_helpers.d.ts +25 -0
  204. package/dist/types/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.d.ts +20 -0
  205. package/dist/types/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.d.ts +20 -0
  206. package/dist/types/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.d.ts +34 -0
  207. package/dist/types/tools/openapi_tool/openapi_spec_parser/operation_parser.d.ts +59 -0
  208. package/dist/types/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.d.ts +23 -0
  209. package/dist/types/tools/openapi_tool/openapi_toolset.d.ts +27 -0
  210. package/dist/types/tools/openapi_tool/rest_api_tool.d.ts +50 -0
  211. package/dist/types/tools/skill/load_skill_resource_tool.d.ts +1 -1
  212. package/dist/types/tools/skill/search_skills_tool.d.ts +14 -0
  213. package/dist/types/tools/skill/skill_toolset.d.ts +5 -0
  214. package/dist/types/tools/vertex_rag_retrieval_tool.d.ts +42 -0
  215. package/dist/types/utils/async_queue.d.ts +18 -0
  216. package/dist/types/utils/case_utils.d.ts +12 -0
  217. package/dist/types/utils/file_utils.d.ts +2 -0
  218. package/dist/types/utils/live_connection_utils.d.ts +30 -0
  219. package/dist/types/utils/model_name.d.ts +7 -0
  220. package/dist/types/utils/partial_copy.d.ts +13 -0
  221. package/dist/types/utils/streaming_utils.d.ts +7 -17
  222. package/dist/types/utils/vertex_ai_utils.d.ts +14 -0
  223. package/dist/types/version.d.ts +1 -1
  224. package/dist/web/agents/base_agent.js +31 -1
  225. package/dist/web/agents/functions.js +4 -0
  226. package/dist/web/agents/instructions.js +81 -33
  227. package/dist/web/agents/invocation_context.js +0 -1
  228. package/dist/web/agents/llm_agent.js +53 -5
  229. package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +7 -0
  230. package/dist/web/agents/processors/basic_llm_request_processor.js +8 -1
  231. package/dist/web/agents/processors/content_processor_utils.js +53 -23
  232. package/dist/web/agents/processors/content_request_processor.js +7 -0
  233. package/dist/web/agents/processors/context_compactor_request_processor.js +12 -0
  234. package/dist/web/agents/processors/identity_llm_request_processor.js +7 -0
  235. package/dist/web/agents/processors/instructions_llm_request_processor.js +5 -0
  236. package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +9 -1
  237. package/dist/web/agents/processors/tool_filter_request_processor.js +7 -1
  238. package/dist/web/auth/auth_preprocessor.js +12 -10
  239. package/dist/web/auth/oauth2/oauth2_discovery.js +26 -2
  240. package/dist/web/code_executors/agent_engine_sandbox_code_executor.js +281 -0
  241. package/dist/web/code_executors/code_execution_utils.js +1 -1
  242. package/dist/web/code_executors/code_executor_context.js +7 -7
  243. package/dist/web/common.js +43 -1
  244. package/dist/web/context/summarizers/llm_summarizer.js +11 -0
  245. package/dist/web/context/token_based_context_compactor.js +1 -1
  246. package/dist/web/events/event.js +4 -2
  247. package/dist/web/index.js +11 -0
  248. package/dist/web/integrations/agent_registry/agent_registry.js +333 -0
  249. package/dist/web/integrations/agent_registry/agent_registry_mcp_toolset.js +109 -0
  250. package/dist/web/integrations/agent_registry/helpers.js +28 -0
  251. package/dist/web/integrations/agent_registry/types.js +20 -0
  252. package/dist/web/memory/vertex_ai_memory_bank_service.js +475 -0
  253. package/dist/web/models/gemini_llm_connection.js +75 -19
  254. package/dist/web/models/google_llm.js +26 -8
  255. package/dist/web/plugins/security_plugin.js +16 -0
  256. package/dist/web/runner/in_memory_runner.js +10 -5
  257. package/dist/web/runner/runner.js +32 -2
  258. package/dist/web/sessions/base_session_service.js +11 -1
  259. package/dist/web/sessions/database_session_service.js +51 -5
  260. package/dist/web/sessions/db/schema.js +44 -10
  261. package/dist/web/sessions/in_memory_session_service.js +74 -16
  262. package/dist/web/sessions/registry.js +7 -0
  263. package/dist/web/sessions/vertex_ai_session_service.js +416 -0
  264. package/dist/web/skills/gcp_skill_registry.js +78 -0
  265. package/dist/web/skills/loader.js +64 -0
  266. package/dist/web/skills/skill_registry.js +7 -0
  267. package/dist/web/tools/agent_tool.js +10 -5
  268. package/dist/web/tools/exit_loop_tool.js +9 -0
  269. package/dist/web/tools/function_tool.js +7 -2
  270. package/dist/web/tools/google_maps_grounding_tool.js +54 -0
  271. package/dist/web/tools/long_running_tool.js +2 -1
  272. package/dist/web/tools/mcp/mcp_session_manager.js +11 -0
  273. package/dist/web/tools/mcp/mcp_tool.js +10 -6
  274. package/dist/web/tools/mcp/mcp_toolset.js +26 -3
  275. package/dist/web/tools/openapi_tool/auth/auth_helpers.js +48 -0
  276. package/dist/web/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +60 -0
  277. package/dist/web/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +111 -0
  278. package/dist/web/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +221 -0
  279. package/dist/web/tools/openapi_tool/openapi_spec_parser/operation_parser.js +198 -0
  280. package/dist/web/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +101 -0
  281. package/dist/web/tools/openapi_tool/openapi_toolset.js +97 -0
  282. package/dist/web/tools/openapi_tool/rest_api_tool.js +229 -0
  283. package/dist/web/tools/skill/load_skill_resource_tool.js +26 -27
  284. package/dist/web/tools/skill/load_skill_tool.js +12 -1
  285. package/dist/web/tools/skill/run_skill_script_tool.js +12 -1
  286. package/dist/web/tools/skill/search_skills_tool.js +82 -0
  287. package/dist/web/tools/skill/skill_toolset.js +40 -5
  288. package/dist/web/tools/vertex_rag_retrieval_tool.js +36 -0
  289. package/dist/web/utils/async_queue.js +60 -0
  290. package/dist/web/utils/case_utils.js +25 -0
  291. package/dist/web/utils/env_aware_utils.js +4 -0
  292. package/dist/web/utils/file_utils.js +26 -0
  293. package/dist/web/utils/gemini_schema_util.js +18 -0
  294. package/dist/web/utils/live_connection_utils.js +254 -0
  295. package/dist/web/utils/model_name.js +8 -0
  296. package/dist/web/utils/partial_copy.js +23 -0
  297. package/dist/web/utils/streaming_utils.js +221 -122
  298. package/dist/web/utils/vertex_ai_utils.js +22 -0
  299. package/dist/web/version.js +1 -1
  300. package/package.json +4 -1
@@ -35,18 +35,27 @@ var import_base_tool = require("./base_tool.js");
35
35
  * SPDX-License-Identifier: Apache-2.0
36
36
  */
37
37
  class ExitLoopTool extends import_base_tool.BaseTool {
38
+ /** Creates an ExitLoopTool with its fixed name and description. */
38
39
  constructor() {
39
40
  super({
40
41
  name: "exit_loop",
41
42
  description: "Exits the loop.\n\nCall this function only when you are instructed to do so."
42
43
  });
43
44
  }
45
+ /** Returns the function declaration for this tool. */
44
46
  _getDeclaration() {
45
47
  return {
46
48
  name: this.name,
47
49
  description: this.description
48
50
  };
49
51
  }
52
+ /**
53
+ * Sets `escalate` and `skipSummarization` on the event actions, signalling
54
+ * the {@link LoopAgent} to stop iterating.
55
+ *
56
+ * @param request The tool request containing the current tool context.
57
+ * @returns An empty string response.
58
+ */
50
59
  async runAsync({
51
60
  toolContext
52
61
  }) {
@@ -74,7 +74,8 @@ class FunctionTool extends (_b = import_base_tool.BaseTool, _a = FUNCTION_TOOL_S
74
74
  this.parameters = options.parameters;
75
75
  }
76
76
  /**
77
- * Provide a schema for the function.
77
+ * Returns the function declaration derived from the tool's name, description,
78
+ * and parameter schema.
78
79
  */
79
80
  _getDeclaration() {
80
81
  return {
@@ -84,7 +85,11 @@ class FunctionTool extends (_b = import_base_tool.BaseTool, _a = FUNCTION_TOOL_S
84
85
  };
85
86
  }
86
87
  /**
87
- * Logic for running the tool.
88
+ * Validates the model-provided arguments against the parameter schema and
89
+ * invokes the user-defined `execute` function.
90
+ *
91
+ * @param req The tool request containing arguments and tool context.
92
+ * @returns A promise resolving to the function's return value.
88
93
  */
89
94
  async runAsync(req) {
90
95
  try {
@@ -0,0 +1,80 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ "use strict";
8
+ var __defProp = Object.defineProperty;
9
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
+ var __getOwnPropNames = Object.getOwnPropertyNames;
11
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __export = (target, all) => {
13
+ for (var name in all)
14
+ __defProp(target, name, { get: all[name], enumerable: true });
15
+ };
16
+ var __copyProps = (to, from, except, desc) => {
17
+ if (from && typeof from === "object" || typeof from === "function") {
18
+ for (let key of __getOwnPropNames(from))
19
+ if (!__hasOwnProp.call(to, key) && key !== except)
20
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
21
+ }
22
+ return to;
23
+ };
24
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
+ var google_maps_grounding_tool_exports = {};
26
+ __export(google_maps_grounding_tool_exports, {
27
+ GOOGLE_MAPS_GROUNDING: () => GOOGLE_MAPS_GROUNDING,
28
+ GoogleMapsGroundingTool: () => GoogleMapsGroundingTool,
29
+ applyGoogleMapsGrounding: () => applyGoogleMapsGrounding
30
+ });
31
+ module.exports = __toCommonJS(google_maps_grounding_tool_exports);
32
+ var import_model_name = require("../utils/model_name.js");
33
+ var import_base_tool = require("./base_tool.js");
34
+ /**
35
+ * @license
36
+ * Copyright 2026 Google LLC
37
+ * SPDX-License-Identifier: Apache-2.0
38
+ */
39
+ function applyGoogleMapsGrounding(llmRequest) {
40
+ if (!llmRequest.model) {
41
+ return;
42
+ }
43
+ const modelCheckDisabled = (0, import_model_name.isGeminiModelIdCheckDisabled)();
44
+ llmRequest.config = llmRequest.config || {};
45
+ llmRequest.config.tools = llmRequest.config.tools || [];
46
+ if ((0, import_model_name.isGemini1Model)(llmRequest.model)) {
47
+ throw new Error(
48
+ "Google Maps grounding tool cannot be used with Gemini 1.x models."
49
+ );
50
+ }
51
+ if ((0, import_model_name.isGeminiModel)(llmRequest.model) || modelCheckDisabled) {
52
+ llmRequest.config.tools.push({
53
+ googleMaps: {}
54
+ });
55
+ return;
56
+ }
57
+ throw new Error(
58
+ `Google maps tool is not supported for model ${llmRequest.model}`
59
+ );
60
+ }
61
+ class GoogleMapsGroundingTool extends import_base_tool.BaseTool {
62
+ constructor() {
63
+ super({ name: "google_maps", description: "Google Maps Grounding Tool" });
64
+ }
65
+ runAsync() {
66
+ return Promise.resolve();
67
+ }
68
+ async processLlmRequest({
69
+ llmRequest
70
+ }) {
71
+ applyGoogleMapsGrounding(llmRequest);
72
+ }
73
+ }
74
+ const GOOGLE_MAPS_GROUNDING = new GoogleMapsGroundingTool();
75
+ // Annotate the CommonJS export names for ESM import in node:
76
+ 0 && (module.exports = {
77
+ GOOGLE_MAPS_GROUNDING,
78
+ GoogleMapsGroundingTool,
79
+ applyGoogleMapsGrounding
80
+ });
@@ -45,7 +45,8 @@ class LongRunningFunctionTool extends import_function_tool.FunctionTool {
45
45
  super({ ...options, isLongRunning: true });
46
46
  }
47
47
  /**
48
- * Provide a schema for the function.
48
+ * Returns the function declaration with an appended instruction warning the
49
+ * model not to re-invoke the tool while it is still running.
49
50
  */
50
51
  _getDeclaration() {
51
52
  const declaration = super._getDeclaration();
@@ -37,6 +37,7 @@ var import_streamableHttp = require("@modelcontextprotocol/sdk/client/streamable
37
37
  */
38
38
  class MCPSessionManager {
39
39
  constructor(connectionParams) {
40
+ this.activeSessions = /* @__PURE__ */ new Set();
40
41
  this.connectionParams = connectionParams;
41
42
  }
42
43
  async createSession() {
@@ -68,8 +69,18 @@ class MCPSessionManager {
68
69
  break;
69
70
  }
70
71
  }
72
+ this.activeSessions.add(client);
71
73
  return client;
72
74
  }
75
+ async closeSession(client) {
76
+ if (this.activeSessions.has(client)) {
77
+ this.activeSessions.delete(client);
78
+ await client.close();
79
+ }
80
+ }
81
+ getActiveSessions() {
82
+ return Array.from(this.activeSessions);
83
+ }
73
84
  }
74
85
  // Annotate the CommonJS export names for ESM import in node:
75
86
  0 && (module.exports = {
@@ -53,12 +53,16 @@ class MCPTool extends import_base_tool.BaseTool {
53
53
  }
54
54
  async runAsync(request) {
55
55
  const session = await this.mcpSessionManager.createSession();
56
- const callRequest = {};
57
- callRequest.params = { name: this.originalName, arguments: request.args };
58
- const result = await session.callTool(callRequest.params, void 0, {
59
- signal: request.toolContext.abortSignal
60
- });
61
- return result;
56
+ try {
57
+ const callRequest = {};
58
+ callRequest.params = { name: this.originalName, arguments: request.args };
59
+ const result = await session.callTool(callRequest.params, void 0, {
60
+ signal: request.toolContext.abortSignal
61
+ });
62
+ return result;
63
+ } finally {
64
+ await this.mcpSessionManager.closeSession(session);
65
+ }
62
66
  }
63
67
  }
64
68
  // Annotate the CommonJS export names for ESM import in node:
@@ -41,22 +41,45 @@ class MCPToolset extends import_base_toolset.BaseToolset {
41
41
  super(toolFilter, prefix);
42
42
  this.mcpSessionManager = new import_mcp_session_manager.MCPSessionManager(connectionParams);
43
43
  }
44
- async getTools() {
44
+ async getTools(context) {
45
45
  const session = await this.mcpSessionManager.createSession();
46
- const listResult = await session.listTools();
46
+ let listResult;
47
+ try {
48
+ listResult = await session.listTools();
49
+ } finally {
50
+ await this.mcpSessionManager.closeSession(session);
51
+ }
47
52
  import_logger.logger.debug(`number of tools: ${listResult.tools.length}`);
48
53
  for (const tool of listResult.tools) {
49
54
  import_logger.logger.debug(`tool: ${tool.name}`);
50
55
  }
51
- return listResult.tools.map((tool) => {
56
+ const tools = listResult.tools.map((tool) => {
52
57
  const toolWithPrefix = {
53
58
  ...tool,
54
59
  name: this.prefix ? `${this.prefix}_${tool.name}` : tool.name
55
60
  };
56
61
  return new import_mcp_tool.MCPTool(toolWithPrefix, this.mcpSessionManager, tool.name);
57
62
  });
63
+ const filter = this.toolFilter;
64
+ if (!filter || Array.isArray(filter) && filter.length === 0) {
65
+ return tools;
66
+ }
67
+ if (Array.isArray(filter)) {
68
+ return tools.filter((tool) => filter.includes(tool.name));
69
+ }
70
+ if (context) {
71
+ return tools.filter((tool) => filter(tool, context));
72
+ }
73
+ import_logger.logger.warn(
74
+ "MCPToolset: a ToolPredicate toolFilter was provided but getTools() was called without a ReadonlyContext. The filter will not be applied."
75
+ );
76
+ return tools;
58
77
  }
59
78
  async close() {
79
+ const sessions = this.mcpSessionManager.getActiveSessions();
80
+ await Promise.allSettled(
81
+ sessions.map((session) => this.mcpSessionManager.closeSession(session))
82
+ );
60
83
  }
61
84
  }
62
85
  // Annotate the CommonJS export names for ESM import in node:
@@ -0,0 +1,78 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ "use strict";
8
+ var __defProp = Object.defineProperty;
9
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
+ var __getOwnPropNames = Object.getOwnPropertyNames;
11
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __export = (target, all) => {
13
+ for (var name in all)
14
+ __defProp(target, name, { get: all[name], enumerable: true });
15
+ };
16
+ var __copyProps = (to, from, except, desc) => {
17
+ if (from && typeof from === "object" || typeof from === "function") {
18
+ for (let key of __getOwnPropNames(from))
19
+ if (!__hasOwnProp.call(to, key) && key !== except)
20
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
21
+ }
22
+ return to;
23
+ };
24
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
+ var auth_helpers_exports = {};
26
+ __export(auth_helpers_exports, {
27
+ applyCredential: () => applyCredential,
28
+ createApiKeyScheme: () => createApiKeyScheme,
29
+ createBearerScheme: () => createBearerScheme
30
+ });
31
+ module.exports = __toCommonJS(auth_helpers_exports);
32
+ /**
33
+ * @license
34
+ * Copyright 2026 Google LLC
35
+ * SPDX-License-Identifier: Apache-2.0
36
+ */
37
+ function applyCredential(url, headers, credential, authScheme) {
38
+ if (!credential) return url;
39
+ if (credential.apiKey) {
40
+ let inLocation;
41
+ let name = "key";
42
+ if (authScheme && authScheme.type === "apiKey") {
43
+ const apiKeyScheme = authScheme;
44
+ inLocation = apiKeyScheme.in;
45
+ name = apiKeyScheme.name;
46
+ }
47
+ if (inLocation === "header") {
48
+ headers[name] = credential.apiKey;
49
+ } else if (inLocation === "query") {
50
+ const separator = url.includes("?") ? "&" : "?";
51
+ url += `${separator}${name}=${encodeURIComponent(credential.apiKey)}`;
52
+ } else {
53
+ headers["Authorization"] = credential.apiKey;
54
+ }
55
+ } else if (credential.http && credential.http.credentials && credential.http.credentials.token) {
56
+ headers["Authorization"] = `Bearer ${credential.http.credentials.token}`;
57
+ }
58
+ return url;
59
+ }
60
+ function createApiKeyScheme(name, inLocation) {
61
+ return {
62
+ type: "apiKey",
63
+ name,
64
+ in: inLocation
65
+ };
66
+ }
67
+ function createBearerScheme() {
68
+ return {
69
+ type: "http",
70
+ scheme: "bearer"
71
+ };
72
+ }
73
+ // Annotate the CommonJS export names for ESM import in node:
74
+ 0 && (module.exports = {
75
+ applyCredential,
76
+ createApiKeyScheme,
77
+ createBearerScheme
78
+ });
@@ -0,0 +1,84 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ "use strict";
8
+ var __defProp = Object.defineProperty;
9
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
+ var __getOwnPropNames = Object.getOwnPropertyNames;
11
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __export = (target, all) => {
13
+ for (var name in all)
14
+ __defProp(target, name, { get: all[name], enumerable: true });
15
+ };
16
+ var __copyProps = (to, from, except, desc) => {
17
+ if (from && typeof from === "object" || typeof from === "function") {
18
+ for (let key of __getOwnPropNames(from))
19
+ if (!__hasOwnProp.call(to, key) && key !== except)
20
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
21
+ }
22
+ return to;
23
+ };
24
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
+ var __decorateClass = (decorators, target, key, kind) => {
26
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
27
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
28
+ if (decorator = decorators[i])
29
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
30
+ if (kind && result) __defProp(target, key, result);
31
+ return result;
32
+ };
33
+ var auto_auth_credential_exchanger_exports = {};
34
+ __export(auto_auth_credential_exchanger_exports, {
35
+ AutoAuthCredentialExchanger: () => AutoAuthCredentialExchanger
36
+ });
37
+ module.exports = __toCommonJS(auto_auth_credential_exchanger_exports);
38
+ var import_auth_credential = require("../../../../auth/auth_credential.js");
39
+ var import_oauth2_credential_exchanger = require("../../../../auth/oauth2/oauth2_credential_exchanger.js");
40
+ var import_experimental = require("../../../../utils/experimental.js");
41
+ var import_service_account_exchanger = require("./service_account_exchanger.js");
42
+ /**
43
+ * @license
44
+ * Copyright 2026 Google LLC
45
+ * SPDX-License-Identifier: Apache-2.0
46
+ */
47
+ let AutoAuthCredentialExchanger = class {
48
+ constructor() {
49
+ this.exchangers = /* @__PURE__ */ new Map();
50
+ this.exchangers.set(
51
+ import_auth_credential.AuthCredentialTypes.OAUTH2,
52
+ new import_oauth2_credential_exchanger.OAuth2CredentialExchanger()
53
+ );
54
+ this.exchangers.set(
55
+ import_auth_credential.AuthCredentialTypes.OPEN_ID_CONNECT,
56
+ new import_oauth2_credential_exchanger.OAuth2CredentialExchanger()
57
+ );
58
+ this.exchangers.set(
59
+ import_auth_credential.AuthCredentialTypes.SERVICE_ACCOUNT,
60
+ new import_service_account_exchanger.ServiceAccountCredentialExchanger()
61
+ );
62
+ }
63
+ async exchange(params) {
64
+ const { authCredential, authScheme } = params;
65
+ const exchanger = this.exchangers.get(authCredential.authType);
66
+ if (!exchanger) {
67
+ return {
68
+ credential: authCredential,
69
+ wasExchanged: false
70
+ };
71
+ }
72
+ return exchanger.exchange({ authScheme, authCredential });
73
+ }
74
+ };
75
+ __decorateClass([
76
+ import_experimental.experimental
77
+ ], AutoAuthCredentialExchanger.prototype, "exchange", 1);
78
+ AutoAuthCredentialExchanger = __decorateClass([
79
+ import_experimental.experimental
80
+ ], AutoAuthCredentialExchanger);
81
+ // Annotate the CommonJS export names for ESM import in node:
82
+ 0 && (module.exports = {
83
+ AutoAuthCredentialExchanger
84
+ });
@@ -0,0 +1,133 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ "use strict";
8
+ var __defProp = Object.defineProperty;
9
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
+ var __getOwnPropNames = Object.getOwnPropertyNames;
11
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __export = (target, all) => {
13
+ for (var name in all)
14
+ __defProp(target, name, { get: all[name], enumerable: true });
15
+ };
16
+ var __copyProps = (to, from, except, desc) => {
17
+ if (from && typeof from === "object" || typeof from === "function") {
18
+ for (let key of __getOwnPropNames(from))
19
+ if (!__hasOwnProp.call(to, key) && key !== except)
20
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
21
+ }
22
+ return to;
23
+ };
24
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
+ var __decorateClass = (decorators, target, key, kind) => {
26
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
27
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
28
+ if (decorator = decorators[i])
29
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
30
+ if (kind && result) __defProp(target, key, result);
31
+ return result;
32
+ };
33
+ var service_account_exchanger_exports = {};
34
+ __export(service_account_exchanger_exports, {
35
+ ServiceAccountCredentialExchanger: () => ServiceAccountCredentialExchanger
36
+ });
37
+ module.exports = __toCommonJS(service_account_exchanger_exports);
38
+ var import_google_auth_library = require("google-auth-library");
39
+ var import_auth_credential = require("../../../../auth/auth_credential.js");
40
+ var import_base_credential_exchanger = require("../../../../auth/exchanger/base_credential_exchanger.js");
41
+ var import_experimental = require("../../../../utils/experimental.js");
42
+ /**
43
+ * @license
44
+ * Copyright 2026 Google LLC
45
+ * SPDX-License-Identifier: Apache-2.0
46
+ */
47
+ const DEFAULT_SCOPES = ["https://www.googleapis.com/auth/cloud-platform"];
48
+ let ServiceAccountCredentialExchanger = class {
49
+ async exchange(params) {
50
+ const { authCredential } = params;
51
+ if (authCredential.authType !== import_auth_credential.AuthCredentialTypes.SERVICE_ACCOUNT || !authCredential.serviceAccount) {
52
+ throw new import_base_credential_exchanger.CredentialExchangeError(
53
+ "Invalid credential type for ServiceAccountCredentialExchanger"
54
+ );
55
+ }
56
+ const saConfig = authCredential.serviceAccount;
57
+ if (saConfig.useDefaultCredential) {
58
+ return this.exchangeForDefaultCredential(saConfig);
59
+ }
60
+ return this.exchangeForExplicitCredential(saConfig);
61
+ }
62
+ async exchangeForDefaultCredential(saConfig) {
63
+ try {
64
+ const auth = new import_google_auth_library.GoogleAuth({
65
+ scopes: saConfig.scopes || DEFAULT_SCOPES
66
+ });
67
+ const client = await auth.getClient();
68
+ const tokenResponse = await client.getAccessToken();
69
+ const token = tokenResponse.token;
70
+ if (!token) {
71
+ throw new Error("Failed to get access token from default credentials");
72
+ }
73
+ return {
74
+ credential: {
75
+ authType: import_auth_credential.AuthCredentialTypes.HTTP,
76
+ http: {
77
+ scheme: "bearer",
78
+ credentials: { token }
79
+ }
80
+ },
81
+ wasExchanged: true
82
+ };
83
+ } catch (error) {
84
+ throw new import_base_credential_exchanger.CredentialExchangeError(
85
+ `Failed to exchange default service account token: ${error.message}`
86
+ );
87
+ }
88
+ }
89
+ async exchangeForExplicitCredential(saConfig) {
90
+ const creds = saConfig.serviceAccountCredential;
91
+ if (!creds) {
92
+ throw new import_base_credential_exchanger.CredentialExchangeError(
93
+ "Service account credentials are missing."
94
+ );
95
+ }
96
+ try {
97
+ const client = new import_google_auth_library.JWT({
98
+ email: creds.clientEmail,
99
+ key: creds.privateKey,
100
+ scopes: saConfig.scopes
101
+ });
102
+ const tokens = await client.authorize();
103
+ const token = tokens.access_token;
104
+ if (!token) {
105
+ throw new Error("Failed to get access token from explicit credentials");
106
+ }
107
+ return {
108
+ credential: {
109
+ authType: import_auth_credential.AuthCredentialTypes.HTTP,
110
+ http: {
111
+ scheme: "bearer",
112
+ credentials: { token }
113
+ }
114
+ },
115
+ wasExchanged: true
116
+ };
117
+ } catch (error) {
118
+ throw new import_base_credential_exchanger.CredentialExchangeError(
119
+ `Failed to exchange explicit service account token: ${error.message}`
120
+ );
121
+ }
122
+ }
123
+ };
124
+ __decorateClass([
125
+ import_experimental.experimental
126
+ ], ServiceAccountCredentialExchanger.prototype, "exchange", 1);
127
+ ServiceAccountCredentialExchanger = __decorateClass([
128
+ import_experimental.experimental
129
+ ], ServiceAccountCredentialExchanger);
130
+ // Annotate the CommonJS export names for ESM import in node:
131
+ 0 && (module.exports = {
132
+ ServiceAccountCredentialExchanger
133
+ });