@google/adk 2.0.0 → 2.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 (566) hide show
  1. package/dist/cjs/a2a/a2a_event.js +0 -29
  2. package/dist/cjs/a2a/a2a_remote_agent.js +8 -5
  3. package/dist/cjs/a2a/a2a_remote_agent_utils.js +104 -2
  4. package/dist/cjs/a2a/agent_card.js +58 -6
  5. package/dist/cjs/a2a/agent_executor.js +10 -3
  6. package/dist/cjs/a2a/agent_to_a2a.js +6 -1
  7. package/dist/cjs/a2a/event_processor_utils.js +1 -1
  8. package/dist/cjs/a2a/executor_context.js +4 -2
  9. package/dist/cjs/a2a/index.js +4 -0
  10. package/dist/cjs/a2a/request_metadata.js +94 -0
  11. package/dist/cjs/agents/base_agent.js +9 -8
  12. package/dist/cjs/agents/context.js +7 -0
  13. package/dist/cjs/agents/functions.js +150 -47
  14. package/dist/cjs/agents/invocation_context.js +1 -0
  15. package/dist/cjs/agents/llm_agent.js +6 -5
  16. package/dist/cjs/agents/loop_agent.js +1 -1
  17. package/dist/cjs/agents/parallel_agent.js +1 -1
  18. package/dist/cjs/agents/processors/agent_transfer_llm_request_processor.js +26 -5
  19. package/dist/cjs/agents/processors/code_execution_request_processor.js +2 -2
  20. package/dist/cjs/agents/processors/content_processor_utils.js +5 -5
  21. package/dist/cjs/agents/processors/content_request_processor.js +4 -1
  22. package/dist/cjs/agents/processors/request_confirmation_llm_request_processor.js +19 -12
  23. package/dist/cjs/agents/processors/request_input_llm_request_processor.js +3 -7
  24. package/dist/cjs/agents/readonly_context.js +6 -0
  25. package/dist/cjs/agents/routed_agent.js +1 -1
  26. package/dist/cjs/agents/sequential_agent.js +1 -1
  27. package/dist/cjs/apps/app.js +1 -1
  28. package/dist/cjs/artifacts/file_artifact_service.js +1 -2
  29. package/dist/cjs/artifacts/scoped_artifact_service.js +9 -0
  30. package/dist/cjs/artifacts/session_artifact_service.js +19 -0
  31. package/dist/cjs/auth/auth_handler.js +44 -8
  32. package/dist/cjs/auth/oauth2/oauth2_credential_refresher.js +1 -1
  33. package/dist/cjs/auth/oauth2/oauth2_utils.js +17 -2
  34. package/dist/cjs/code_executors/base_code_executor.js +1 -1
  35. package/dist/cjs/code_executors/built_in_code_executor.js +1 -1
  36. package/dist/cjs/code_executors/code_execution_utils.js +2 -2
  37. package/dist/cjs/code_executors/container_code_executor.js +186 -0
  38. package/dist/cjs/code_executors/docker_container.js +282 -0
  39. package/dist/cjs/code_executors/unsafe_local_code_executor.js +11 -6
  40. package/dist/cjs/common.js +74 -45
  41. package/dist/cjs/context/agent_controlled_context_compactor.js +10 -5
  42. package/dist/cjs/context/anchored_context_compactor.js +41 -18
  43. package/dist/cjs/context/compaction_utils.js +15 -6
  44. package/dist/cjs/context/token_based_context_compactor.js +10 -2
  45. package/dist/cjs/context/trajectory_thought_pruning_compactor.js +17 -10
  46. package/dist/cjs/context/truncating_context_compactor.js +17 -5
  47. package/dist/cjs/errors/already_exists_error.js +50 -0
  48. package/dist/cjs/errors/input_validation_error.js +50 -0
  49. package/dist/cjs/errors/not_found_error.js +50 -0
  50. package/dist/cjs/errors/session_not_found_error.js +50 -0
  51. package/dist/cjs/errors/tool_execution_error.js +68 -0
  52. package/dist/cjs/events/event.js +1 -1
  53. package/dist/cjs/events/event_actions.js +7 -0
  54. package/dist/cjs/examples/base_example_provider.js +1 -1
  55. package/dist/cjs/index.js +47 -0
  56. package/dist/cjs/index_web.js +2 -0
  57. package/dist/cjs/integrations/agent_registry/agent_registry.js +3 -2
  58. package/dist/cjs/memory/rag_memory_transcript.js +136 -0
  59. package/dist/cjs/memory/vertex_ai_memory_bank_service.js +2 -2
  60. package/dist/cjs/memory/vertex_ai_rag_api.js +120 -0
  61. package/dist/cjs/memory/vertex_ai_rag_memory_service.js +228 -0
  62. package/dist/cjs/models/apigee_llm.js +1 -1
  63. package/dist/cjs/models/base_llm.js +1 -1
  64. package/dist/cjs/models/chrome_prompt_llm.js +304 -0
  65. package/dist/cjs/models/chrome_prompt_utils.js +229 -0
  66. package/dist/cjs/models/google_llm.js +9 -4
  67. package/dist/cjs/models/interactions_utils.js +2 -3
  68. package/dist/cjs/models/registry.js +2 -0
  69. package/dist/cjs/plugins/_reflect_retry_utils.js +142 -0
  70. package/dist/cjs/plugins/reflect_retry_model_plugin.js +274 -0
  71. package/dist/cjs/plugins/reflect_retry_tool_plugin.js +276 -0
  72. package/dist/cjs/runner/runner.js +29 -26
  73. package/dist/cjs/sessions/database_session_service.js +78 -43
  74. package/dist/cjs/sessions/db/operations.js +229 -22
  75. package/dist/cjs/sessions/db/schema.js +113 -159
  76. package/dist/cjs/sessions/registry.js +5 -1
  77. package/dist/cjs/sessions/vertex_ai_session_service.js +2 -2
  78. package/dist/cjs/telemetry/setup.js +1 -1
  79. package/dist/cjs/telemetry/tracing.js +11 -1
  80. package/dist/cjs/tools/agent_tool.js +4 -5
  81. package/dist/cjs/tools/base_tool.js +14 -4
  82. package/dist/cjs/tools/base_toolset.js +4 -4
  83. package/dist/cjs/tools/built_in_tool.js +75 -0
  84. package/dist/cjs/tools/enterprise_web_search_tool.js +3 -6
  85. package/dist/cjs/tools/forwarding_artifact_service.js +18 -13
  86. package/dist/cjs/tools/function_tool.js +6 -3
  87. package/dist/cjs/tools/google_maps_grounding_tool.js +3 -6
  88. package/dist/cjs/tools/google_search_tool.js +3 -6
  89. package/dist/cjs/tools/load_artifacts_tool.js +47 -23
  90. package/dist/cjs/tools/load_web_page.js +6 -172
  91. package/dist/cjs/tools/mcp/load_mcp_resource_tool.js +34 -5
  92. package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +11 -2
  93. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/operation_parser.js +1 -1
  94. package/dist/cjs/tools/openapi_tool/rest_api_tool.js +16 -18
  95. package/dist/cjs/tools/preload_memory_tool.js +1 -1
  96. package/dist/cjs/tools/resume_inputs.js +27 -0
  97. package/dist/cjs/tools/retrieval/base_retrieval_tool.js +60 -0
  98. package/dist/cjs/tools/retrieval/files_retrieval.js +95 -0
  99. package/dist/cjs/tools/retrieval/llama_index_retrieval.js +57 -0
  100. package/dist/cjs/tools/url_context_tool.js +3 -6
  101. package/dist/cjs/tools/vertex_ai_search_tool.js +4 -8
  102. package/dist/cjs/tools/vertex_rag_retrieval_tool.js +3 -10
  103. package/dist/cjs/utils/crypto_shim.js +16 -0
  104. package/dist/cjs/utils/gemini_schema_util.js +0 -6
  105. package/dist/cjs/utils/logger.js +15 -50
  106. package/dist/cjs/utils/logger_browser.js +86 -0
  107. package/dist/cjs/utils/logger_node.js +119 -0
  108. package/dist/cjs/utils/redact_inline_data.js +46 -0
  109. package/dist/cjs/utils/redact_uri.js +15 -1
  110. package/dist/cjs/utils/schema.js +1 -1
  111. package/dist/cjs/utils/ssrf_guard.js +262 -0
  112. package/dist/cjs/version.js +1 -1
  113. package/dist/cjs/workflow/base_node.js +1 -1
  114. package/dist/cjs/workflow/graph.js +1 -1
  115. package/dist/cjs/workflow/nodes/node_tool.js +2 -11
  116. package/dist/cjs/workflow/request_input.js +1 -1
  117. package/dist/cjs/workflow/run_llm_agent_as_node.js +1 -1
  118. package/dist/cjs/workflow/workflow.js +1 -1
  119. package/dist/esm/a2a/a2a_event.js +0 -28
  120. package/dist/esm/a2a/a2a_remote_agent.js +10 -5
  121. package/dist/esm/a2a/a2a_remote_agent_utils.js +102 -2
  122. package/dist/esm/a2a/agent_card.js +63 -6
  123. package/dist/esm/a2a/agent_executor.js +10 -3
  124. package/dist/esm/a2a/agent_to_a2a.js +8 -2
  125. package/dist/esm/a2a/event_processor_utils.js +1 -2
  126. package/dist/esm/a2a/executor_context.js +4 -2
  127. package/dist/esm/a2a/index.js +7 -1
  128. package/dist/esm/a2a/request_metadata.js +68 -0
  129. package/dist/esm/agents/base_agent.js +9 -8
  130. package/dist/esm/agents/context.js +7 -0
  131. package/dist/esm/agents/functions.js +152 -48
  132. package/dist/esm/agents/invocation_context.js +1 -0
  133. package/dist/esm/agents/llm_agent.js +6 -5
  134. package/dist/esm/agents/loop_agent.js +1 -1
  135. package/dist/esm/agents/parallel_agent.js +1 -1
  136. package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +26 -5
  137. package/dist/esm/agents/processors/code_execution_request_processor.js +2 -2
  138. package/dist/esm/agents/processors/content_processor_utils.js +5 -5
  139. package/dist/esm/agents/processors/content_request_processor.js +4 -1
  140. package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +19 -12
  141. package/dist/esm/agents/processors/request_input_llm_request_processor.js +3 -7
  142. package/dist/esm/agents/readonly_context.js +6 -0
  143. package/dist/esm/agents/routed_agent.js +1 -1
  144. package/dist/esm/agents/sequential_agent.js +1 -1
  145. package/dist/esm/apps/app.js +1 -1
  146. package/dist/esm/artifacts/file_artifact_service.js +1 -2
  147. package/dist/esm/artifacts/scoped_artifact_service.js +9 -0
  148. package/dist/esm/artifacts/session_artifact_service.js +12 -0
  149. package/dist/esm/auth/auth_handler.js +47 -8
  150. package/dist/esm/auth/oauth2/oauth2_credential_refresher.js +1 -1
  151. package/dist/esm/auth/oauth2/oauth2_utils.js +15 -2
  152. package/dist/esm/code_executors/base_code_executor.js +1 -1
  153. package/dist/esm/code_executors/built_in_code_executor.js +1 -1
  154. package/dist/esm/code_executors/code_execution_utils.js +2 -2
  155. package/dist/esm/code_executors/container_code_executor.js +155 -0
  156. package/dist/esm/code_executors/docker_container.js +265 -0
  157. package/dist/esm/code_executors/unsafe_local_code_executor.js +11 -6
  158. package/dist/esm/common.js +73 -38
  159. package/dist/esm/context/agent_controlled_context_compactor.js +10 -5
  160. package/dist/esm/context/anchored_context_compactor.js +45 -19
  161. package/dist/esm/context/compaction_utils.js +13 -5
  162. package/dist/esm/context/token_based_context_compactor.js +10 -2
  163. package/dist/esm/context/trajectory_thought_pruning_compactor.js +17 -10
  164. package/dist/esm/context/truncating_context_compactor.js +17 -5
  165. package/dist/esm/errors/already_exists_error.js +23 -0
  166. package/dist/esm/errors/input_validation_error.js +23 -0
  167. package/dist/{web/auth/refresher/base_credential_refresher.js → esm/errors/not_found_error.js} +9 -6
  168. package/dist/esm/errors/session_not_found_error.js +23 -0
  169. package/dist/esm/errors/tool_execution_error.js +40 -0
  170. package/dist/esm/events/event.js +1 -1
  171. package/dist/esm/events/event_actions.js +6 -0
  172. package/dist/esm/examples/base_example_provider.js +1 -1
  173. package/dist/esm/index.js +37 -0
  174. package/dist/esm/index_web.js +2 -0
  175. package/dist/esm/integrations/agent_registry/agent_registry.js +3 -2
  176. package/dist/esm/memory/rag_memory_transcript.js +106 -0
  177. package/dist/esm/memory/vertex_ai_memory_bank_service.js +2 -2
  178. package/dist/esm/memory/vertex_ai_rag_api.js +93 -0
  179. package/dist/esm/memory/vertex_ai_rag_memory_service.js +208 -0
  180. package/dist/esm/models/apigee_llm.js +1 -1
  181. package/dist/esm/models/base_llm.js +1 -1
  182. package/dist/esm/models/chrome_prompt_llm.js +285 -0
  183. package/dist/esm/models/chrome_prompt_utils.js +192 -0
  184. package/dist/esm/models/google_llm.js +9 -4
  185. package/dist/esm/models/interactions_utils.js +2 -3
  186. package/dist/esm/models/registry.js +2 -0
  187. package/dist/esm/plugins/_reflect_retry_utils.js +111 -0
  188. package/dist/esm/plugins/reflect_retry_model_plugin.js +250 -0
  189. package/dist/esm/plugins/reflect_retry_tool_plugin.js +254 -0
  190. package/dist/esm/runner/runner.js +35 -27
  191. package/dist/esm/sessions/database_session_service.js +58 -25
  192. package/dist/esm/sessions/db/operations.js +229 -22
  193. package/dist/esm/sessions/db/schema.js +111 -160
  194. package/dist/esm/sessions/registry.js +5 -1
  195. package/dist/esm/sessions/vertex_ai_session_service.js +1 -1
  196. package/dist/esm/telemetry/setup.js +1 -1
  197. package/dist/esm/telemetry/tracing.js +11 -1
  198. package/dist/esm/tools/agent_tool.js +4 -5
  199. package/dist/esm/tools/base_tool.js +11 -3
  200. package/dist/esm/tools/base_toolset.js +4 -4
  201. package/dist/esm/tools/built_in_tool.js +51 -0
  202. package/dist/esm/tools/enterprise_web_search_tool.js +3 -6
  203. package/dist/esm/tools/forwarding_artifact_service.js +18 -13
  204. package/dist/esm/tools/function_tool.js +6 -3
  205. package/dist/esm/tools/google_maps_grounding_tool.js +3 -6
  206. package/dist/esm/tools/google_search_tool.js +3 -6
  207. package/dist/esm/tools/load_artifacts_tool.js +48 -24
  208. package/dist/esm/tools/load_web_page.js +10 -170
  209. package/dist/esm/tools/mcp/load_mcp_resource_tool.js +34 -5
  210. package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +13 -2
  211. package/dist/esm/tools/openapi_tool/openapi_spec_parser/operation_parser.js +1 -1
  212. package/dist/esm/tools/openapi_tool/rest_api_tool.js +16 -18
  213. package/dist/esm/tools/preload_memory_tool.js +1 -1
  214. package/dist/esm/tools/retrieval/base_retrieval_tool.js +33 -0
  215. package/dist/esm/tools/retrieval/files_retrieval.js +81 -0
  216. package/dist/esm/tools/retrieval/llama_index_retrieval.js +30 -0
  217. package/dist/esm/tools/url_context_tool.js +3 -6
  218. package/dist/esm/tools/vertex_ai_search_tool.js +4 -8
  219. package/dist/esm/tools/vertex_rag_retrieval_tool.js +3 -10
  220. package/dist/esm/utils/crypto_shim.js +14 -0
  221. package/dist/esm/utils/gemini_schema_util.js +0 -6
  222. package/dist/esm/utils/logger.js +14 -40
  223. package/dist/esm/utils/logger_browser.js +58 -0
  224. package/dist/esm/utils/logger_node.js +81 -0
  225. package/dist/esm/utils/redact_inline_data.js +19 -0
  226. package/dist/esm/utils/redact_uri.js +15 -1
  227. package/dist/esm/utils/schema.js +1 -1
  228. package/dist/{web/tools/load_web_page.js → esm/utils/ssrf_guard.js} +95 -107
  229. package/dist/esm/version.js +1 -1
  230. package/dist/esm/workflow/base_node.js +1 -1
  231. package/dist/esm/workflow/graph.js +1 -1
  232. package/dist/esm/workflow/nodes/node_tool.js +2 -11
  233. package/dist/esm/workflow/request_input.js +1 -1
  234. package/dist/esm/workflow/run_llm_agent_as_node.js +1 -1
  235. package/dist/esm/workflow/workflow.js +1 -1
  236. package/dist/types/a2a/a2a_event.d.ts +7 -10
  237. package/dist/types/a2a/a2a_remote_agent.d.ts +5 -0
  238. package/dist/types/a2a/a2a_remote_agent_utils.d.ts +25 -0
  239. package/dist/types/a2a/agent_card.d.ts +9 -0
  240. package/dist/types/a2a/agent_executor.d.ts +1 -1
  241. package/dist/types/a2a/agent_to_a2a.d.ts +2 -0
  242. package/dist/types/a2a/auth.d.ts +5 -1
  243. package/dist/types/a2a/executor_context.d.ts +7 -1
  244. package/dist/types/a2a/index.d.ts +1 -1
  245. package/dist/types/a2a/request_metadata.d.ts +22 -0
  246. package/dist/types/agents/base_agent.d.ts +19 -16
  247. package/dist/types/agents/context.d.ts +8 -0
  248. package/dist/types/agents/functions.d.ts +72 -6
  249. package/dist/types/agents/invocation_context.d.ts +11 -3
  250. package/dist/types/agents/llm_agent.d.ts +9 -7
  251. package/dist/types/agents/processors/agent_transfer_llm_request_processor.d.ts +16 -1
  252. package/dist/types/agents/readonly_context.d.ts +4 -0
  253. package/dist/types/agents/run_config.d.ts +21 -8
  254. package/dist/types/artifacts/scoped_artifact_service.d.ts +13 -0
  255. package/dist/types/artifacts/session_artifact_service.d.ts +8 -1
  256. package/dist/types/auth/auth_credential.d.ts +13 -8
  257. package/dist/types/auth/auth_handler.d.ts +12 -1
  258. package/dist/types/auth/oauth2/oauth2_credential_refresher.d.ts +1 -1
  259. package/dist/types/auth/oauth2/oauth2_utils.d.ts +9 -0
  260. package/dist/types/auth/refresher/base_credential_refresher.d.ts +1 -1
  261. package/dist/types/code_executors/code_execution_utils.d.ts +1 -1
  262. package/dist/types/code_executors/container_code_executor.d.ts +89 -0
  263. package/dist/types/code_executors/docker_container.d.ts +79 -0
  264. package/dist/types/common.d.ts +22 -20
  265. package/dist/types/context/compaction_utils.d.ts +9 -1
  266. package/dist/types/errors/already_exists_error.d.ts +14 -0
  267. package/dist/types/errors/input_validation_error.d.ts +14 -0
  268. package/dist/types/errors/not_found_error.d.ts +14 -0
  269. package/dist/types/errors/session_not_found_error.d.ts +14 -0
  270. package/dist/types/errors/tool_execution_error.d.ts +36 -0
  271. package/dist/types/events/event_actions.d.ts +13 -0
  272. package/dist/types/index.d.ts +22 -1
  273. package/dist/types/memory/rag_memory_transcript.d.ts +55 -0
  274. package/dist/types/memory/vertex_ai_rag_api.d.ts +89 -0
  275. package/dist/types/memory/vertex_ai_rag_memory_service.d.ts +68 -0
  276. package/dist/types/models/chrome_prompt_llm.d.ts +210 -0
  277. package/dist/types/models/chrome_prompt_utils.d.ts +68 -0
  278. package/dist/types/models/google_llm.d.ts +8 -3
  279. package/dist/types/models/registry.d.ts +3 -2
  280. package/dist/types/plugins/_reflect_retry_utils.d.ts +72 -0
  281. package/dist/types/plugins/base_plugin.d.ts +12 -10
  282. package/dist/types/plugins/logging_plugin.d.ts +3 -2
  283. package/dist/types/plugins/reflect_retry_model_plugin.d.ts +132 -0
  284. package/dist/types/plugins/reflect_retry_tool_plugin.d.ts +187 -0
  285. package/dist/types/runner/runner.d.ts +7 -8
  286. package/dist/types/sessions/database_session_service.d.ts +1 -1
  287. package/dist/types/sessions/db/operations.d.ts +13 -1
  288. package/dist/types/sessions/db/schema.d.ts +23 -9
  289. package/dist/types/tools/base_tool.d.ts +11 -0
  290. package/dist/types/tools/base_toolset.d.ts +3 -4
  291. package/dist/types/tools/built_in_tool.d.ts +41 -0
  292. package/dist/types/tools/enterprise_web_search_tool.d.ts +4 -4
  293. package/dist/types/tools/forwarding_artifact_service.d.ts +23 -10
  294. package/dist/types/tools/function_tool.d.ts +42 -9
  295. package/dist/types/tools/google_maps_grounding_tool.d.ts +4 -4
  296. package/dist/types/tools/google_search_tool.d.ts +4 -4
  297. package/dist/types/tools/long_running_tool.d.ts +1 -1
  298. package/dist/types/tools/mcp/mcp_toolset.d.ts +11 -10
  299. package/dist/types/tools/openapi_tool/auth/auth_helpers.d.ts +5 -0
  300. package/dist/types/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.d.ts +0 -1
  301. package/dist/types/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.d.ts +0 -1
  302. package/dist/types/tools/preload_memory_tool.d.ts +1 -1
  303. package/dist/types/tools/resume_inputs.d.ts +25 -0
  304. package/dist/types/tools/retrieval/base_retrieval_tool.d.ts +21 -0
  305. package/dist/types/tools/retrieval/files_retrieval.d.ts +50 -0
  306. package/dist/types/tools/retrieval/llama_index_retrieval.d.ts +62 -0
  307. package/dist/types/tools/url_context_tool.d.ts +4 -4
  308. package/dist/types/tools/vertex_ai_search_tool.d.ts +4 -4
  309. package/dist/types/tools/vertex_rag_retrieval_tool.d.ts +13 -12
  310. package/dist/types/utils/crypto_shim.d.ts +16 -0
  311. package/dist/types/utils/gemini_schema_util.d.ts +5 -7
  312. package/dist/types/utils/logger.d.ts +23 -1
  313. package/dist/types/utils/logger_browser.d.ts +28 -0
  314. package/dist/types/utils/logger_node.d.ts +20 -0
  315. package/dist/types/utils/output_schema_utils.d.ts +3 -3
  316. package/dist/types/utils/redact_inline_data.d.ts +16 -0
  317. package/dist/types/utils/redact_uri.d.ts +12 -8
  318. package/dist/types/utils/ssrf_guard.d.ts +32 -0
  319. package/dist/types/version.d.ts +1 -1
  320. package/dist/web/index_web.js +304 -3
  321. package/dist/web/index_web.js.map +7 -0
  322. package/package.json +17 -14
  323. package/dist/web/a2a/a2a_event.js +0 -290
  324. package/dist/web/a2a/a2a_remote_agent.js +0 -200
  325. package/dist/web/a2a/a2a_remote_agent_run_processor.js +0 -189
  326. package/dist/web/a2a/a2a_remote_agent_utils.js +0 -141
  327. package/dist/web/a2a/agent_card.js +0 -373
  328. package/dist/web/a2a/agent_executor.js +0 -246
  329. package/dist/web/a2a/agent_to_a2a.js +0 -126
  330. package/dist/web/a2a/auth.js +0 -41
  331. package/dist/web/a2a/event_converter_utils.js +0 -242
  332. package/dist/web/a2a/event_processor_utils.js +0 -209
  333. package/dist/web/a2a/executor_context.js +0 -28
  334. package/dist/web/a2a/index.js +0 -20
  335. package/dist/web/a2a/metadata_converter_utils.js +0 -115
  336. package/dist/web/a2a/part_converter_utils.js +0 -201
  337. package/dist/web/agents/active_streaming_tool.js +0 -25
  338. package/dist/web/agents/base_agent.js +0 -462
  339. package/dist/web/agents/context.js +0 -146
  340. package/dist/web/agents/framework_function_calls.js +0 -34
  341. package/dist/web/agents/functions.js +0 -462
  342. package/dist/web/agents/instructions.js +0 -188
  343. package/dist/web/agents/invocation_context.js +0 -126
  344. package/dist/web/agents/live_request_queue.js +0 -151
  345. package/dist/web/agents/llm_agent.js +0 -1514
  346. package/dist/web/agents/loop_agent.js +0 -131
  347. package/dist/web/agents/parallel_agent.js +0 -122
  348. package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +0 -113
  349. package/dist/web/agents/processors/base_llm_processor.js +0 -21
  350. package/dist/web/agents/processors/basic_llm_request_processor.js +0 -84
  351. package/dist/web/agents/processors/code_execution_request_processor.js +0 -381
  352. package/dist/web/agents/processors/content_processor_utils.js +0 -432
  353. package/dist/web/agents/processors/content_request_processor.js +0 -73
  354. package/dist/web/agents/processors/context_compactor_request_processor.js +0 -78
  355. package/dist/web/agents/processors/identity_llm_request_processor.js +0 -59
  356. package/dist/web/agents/processors/instructions_llm_request_processor.js +0 -85
  357. package/dist/web/agents/processors/interactions_request_processor.js +0 -56
  358. package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +0 -393
  359. package/dist/web/agents/processors/request_input_llm_request_processor.js +0 -228
  360. package/dist/web/agents/processors/tool_filter_request_processor.js +0 -72
  361. package/dist/web/agents/readonly_context.js +0 -60
  362. package/dist/web/agents/routed_agent.js +0 -161
  363. package/dist/web/agents/run_config.js +0 -74
  364. package/dist/web/agents/sequential_agent.js +0 -141
  365. package/dist/web/agents/transcription_entry.js +0 -7
  366. package/dist/web/agents/user_input_request.js +0 -135
  367. package/dist/web/apps/app.js +0 -52
  368. package/dist/web/apps/resumability_config.js +0 -33
  369. package/dist/web/artifacts/base_artifact_service.js +0 -7
  370. package/dist/web/artifacts/file_artifact_service.js +0 -568
  371. package/dist/web/artifacts/gcs_artifact_service.js +0 -298
  372. package/dist/web/artifacts/in_memory_artifact_service.js +0 -172
  373. package/dist/web/artifacts/registry.js +0 -36
  374. package/dist/web/artifacts/scoped_artifact_service.js +0 -89
  375. package/dist/web/auth/auth_credential.js +0 -18
  376. package/dist/web/auth/auth_handler.js +0 -151
  377. package/dist/web/auth/auth_preprocessor.js +0 -184
  378. package/dist/web/auth/auth_provider_registry.js +0 -37
  379. package/dist/web/auth/auth_schemes.js +0 -36
  380. package/dist/web/auth/auth_tool.js +0 -7
  381. package/dist/web/auth/base_auth_provider.js +0 -7
  382. package/dist/web/auth/credential_response_binding.js +0 -91
  383. package/dist/web/auth/credential_service/base_credential_service.js +0 -7
  384. package/dist/web/auth/credential_service/in_memory_credential_service.js +0 -50
  385. package/dist/web/auth/credential_service/session_state_credential_service.js +0 -27
  386. package/dist/web/auth/exchanger/base_credential_exchanger.js +0 -16
  387. package/dist/web/auth/exchanger/credential_exchanger_registry.js +0 -35
  388. package/dist/web/auth/oauth2/oauth2_credential_exchanger.js +0 -194
  389. package/dist/web/auth/oauth2/oauth2_credential_refresher.js +0 -105
  390. package/dist/web/auth/oauth2/oauth2_discovery.js +0 -196
  391. package/dist/web/auth/oauth2/oauth2_utils.js +0 -105
  392. package/dist/web/auth/refresher/credential_refresher_registry.js +0 -44
  393. package/dist/web/code_executors/agent_engine_sandbox_code_executor.js +0 -284
  394. package/dist/web/code_executors/base_code_executor.js +0 -68
  395. package/dist/web/code_executors/built_in_code_executor.js +0 -50
  396. package/dist/web/code_executors/code_execution_utils.js +0 -131
  397. package/dist/web/code_executors/code_executor_context.js +0 -174
  398. package/dist/web/code_executors/unsafe_local_code_executor.js +0 -221
  399. package/dist/web/common.js +0 -452
  400. package/dist/web/context/agent_controlled_context_compactor.js +0 -76
  401. package/dist/web/context/anchored_context_compactor.js +0 -120
  402. package/dist/web/context/base_context_compactor.js +0 -7
  403. package/dist/web/context/compaction_utils.js +0 -42
  404. package/dist/web/context/summarizers/base_summarizer.js +0 -7
  405. package/dist/web/context/summarizers/llm_summarizer.js +0 -91
  406. package/dist/web/context/token_based_context_compactor.js +0 -118
  407. package/dist/web/context/trajectory_thought_pruning_compactor.js +0 -47
  408. package/dist/web/context/truncating_context_compactor.js +0 -34
  409. package/dist/web/environment/base_environment.js +0 -71
  410. package/dist/web/environment/local_environment.js +0 -165
  411. package/dist/web/events/compacted_event.js +0 -51
  412. package/dist/web/events/event.js +0 -208
  413. package/dist/web/events/event_actions.js +0 -74
  414. package/dist/web/events/structured_events.js +0 -79
  415. package/dist/web/examples/base_example_provider.js +0 -32
  416. package/dist/web/examples/example.js +0 -7
  417. package/dist/web/examples/example_util.js +0 -83
  418. package/dist/web/features/feature_registry.js +0 -115
  419. package/dist/web/index.js +0 -57
  420. package/dist/web/integrations/agent_registry/agent_registry.js +0 -337
  421. package/dist/web/integrations/agent_registry/agent_registry_mcp_toolset.js +0 -120
  422. package/dist/web/integrations/agent_registry/helpers.js +0 -32
  423. package/dist/web/integrations/agent_registry/types.js +0 -20
  424. package/dist/web/memory/base_memory_service.js +0 -7
  425. package/dist/web/memory/in_memory_memory_service.js +0 -89
  426. package/dist/web/memory/memory_entry.js +0 -7
  427. package/dist/web/memory/vertex_ai_memory_bank_service.js +0 -496
  428. package/dist/web/models/apigee_llm.js +0 -227
  429. package/dist/web/models/base_llm.js +0 -78
  430. package/dist/web/models/base_llm_connection.js +0 -7
  431. package/dist/web/models/gemini_llm_connection.js +0 -183
  432. package/dist/web/models/google_llm.js +0 -396
  433. package/dist/web/models/interactions_utils.js +0 -745
  434. package/dist/web/models/llm_request.js +0 -57
  435. package/dist/web/models/llm_response.js +0 -48
  436. package/dist/web/models/registry.js +0 -100
  437. package/dist/web/models/routed_llm.js +0 -112
  438. package/dist/web/plugins/base_plugin.js +0 -305
  439. package/dist/web/plugins/global_instruction_plugin.js +0 -71
  440. package/dist/web/plugins/logging_plugin.js +0 -241
  441. package/dist/web/plugins/plugin_manager.js +0 -318
  442. package/dist/web/plugins/security_plugin.js +0 -148
  443. package/dist/web/runner/in_memory_runner.js +0 -50
  444. package/dist/web/runner/runner.js +0 -747
  445. package/dist/web/sessions/base_session_service.js +0 -123
  446. package/dist/web/sessions/database_session_service.js +0 -440
  447. package/dist/web/sessions/db/operations.js +0 -124
  448. package/dist/web/sessions/db/schema.js +0 -216
  449. package/dist/web/sessions/in_memory_session_service.js +0 -251
  450. package/dist/web/sessions/registry.js +0 -38
  451. package/dist/web/sessions/session.js +0 -23
  452. package/dist/web/sessions/state.js +0 -159
  453. package/dist/web/sessions/state_write_order.js +0 -74
  454. package/dist/web/sessions/vertex_ai_session_service.js +0 -546
  455. package/dist/web/skills/gcp_skill_registry.js +0 -80
  456. package/dist/web/skills/loader.js +0 -372
  457. package/dist/web/skills/prompt.js +0 -34
  458. package/dist/web/skills/skill.js +0 -67
  459. package/dist/web/skills/skill_registry.js +0 -7
  460. package/dist/web/telemetry/google_cloud.js +0 -99
  461. package/dist/web/telemetry/setup.js +0 -89
  462. package/dist/web/telemetry/tracing.js +0 -304
  463. package/dist/web/tools/agent_tool.js +0 -150
  464. package/dist/web/tools/base_tool.js +0 -116
  465. package/dist/web/tools/base_toolset.js +0 -62
  466. package/dist/web/tools/consolidate_context_tool.js +0 -55
  467. package/dist/web/tools/enterprise_web_search_tool.js +0 -60
  468. package/dist/web/tools/example_tool.js +0 -46
  469. package/dist/web/tools/exit_loop_tool.js +0 -47
  470. package/dist/web/tools/finish_task_tool.js +0 -92
  471. package/dist/web/tools/forwarding_artifact_service.js +0 -51
  472. package/dist/web/tools/function_tool.js +0 -151
  473. package/dist/web/tools/get_user_choice_tool.js +0 -27
  474. package/dist/web/tools/google_maps_grounding_tool.js +0 -59
  475. package/dist/web/tools/google_search_tool.js +0 -55
  476. package/dist/web/tools/load_artifacts_tool.js +0 -159
  477. package/dist/web/tools/load_memory_tool.js +0 -83
  478. package/dist/web/tools/long_running_tool.js +0 -58
  479. package/dist/web/tools/mcp/index.js +0 -11
  480. package/dist/web/tools/mcp/load_mcp_resource_tool.js +0 -111
  481. package/dist/web/tools/mcp/mcp_session_manager.js +0 -114
  482. package/dist/web/tools/mcp/mcp_tool.js +0 -47
  483. package/dist/web/tools/mcp/mcp_toolset.js +0 -144
  484. package/dist/web/tools/openapi_tool/auth/auth_helpers.js +0 -53
  485. package/dist/web/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +0 -62
  486. package/dist/web/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +0 -113
  487. package/dist/web/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +0 -242
  488. package/dist/web/tools/openapi_tool/openapi_spec_parser/operation_parser.js +0 -200
  489. package/dist/web/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +0 -98
  490. package/dist/web/tools/openapi_tool/openapi_toolset.js +0 -99
  491. package/dist/web/tools/openapi_tool/rest_api_tool.js +0 -247
  492. package/dist/web/tools/preload_memory_tool.js +0 -81
  493. package/dist/web/tools/request_input_tool.js +0 -29
  494. package/dist/web/tools/skill/list_skills_tool.js +0 -52
  495. package/dist/web/tools/skill/load_skill_resource_tool.js +0 -192
  496. package/dist/web/tools/skill/load_skill_tool.js +0 -96
  497. package/dist/web/tools/skill/run_skill_inline_script_tool.js +0 -191
  498. package/dist/web/tools/skill/run_skill_script_tool.js +0 -227
  499. package/dist/web/tools/skill/search_skills_tool.js +0 -84
  500. package/dist/web/tools/skill/skill_toolset.js +0 -185
  501. package/dist/web/tools/tool_confirmation.js +0 -43
  502. package/dist/web/tools/url_context_tool.js +0 -48
  503. package/dist/web/tools/vertex_ai_search_tool.js +0 -107
  504. package/dist/web/tools/vertex_rag_retrieval_tool.js +0 -40
  505. package/dist/web/utils/async_hooks_shim.js +0 -28
  506. package/dist/web/utils/async_queue.js +0 -88
  507. package/dist/web/utils/branch_trie.js +0 -16
  508. package/dist/web/utils/case_utils.js +0 -28
  509. package/dist/web/utils/client_labels.js +0 -70
  510. package/dist/web/utils/crypto_shim.js +0 -18
  511. package/dist/web/utils/deprecated.js +0 -40
  512. package/dist/web/utils/env_aware_utils.js +0 -115
  513. package/dist/web/utils/error_utils.js +0 -101
  514. package/dist/web/utils/experimental.js +0 -54
  515. package/dist/web/utils/failover_utils.js +0 -100
  516. package/dist/web/utils/file_extension_utils.js +0 -55
  517. package/dist/web/utils/file_utils.js +0 -108
  518. package/dist/web/utils/gemini_schema_util.js +0 -177
  519. package/dist/web/utils/genai_schema_to_json.js +0 -80
  520. package/dist/web/utils/live_connection_utils.js +0 -257
  521. package/dist/web/utils/logger.js +0 -140
  522. package/dist/web/utils/model_name.js +0 -75
  523. package/dist/web/utils/object_notation_utils.js +0 -54
  524. package/dist/web/utils/optional_peer.js +0 -38
  525. package/dist/web/utils/output_schema_utils.js +0 -18
  526. package/dist/web/utils/partial_copy.js +0 -26
  527. package/dist/web/utils/redact_uri.js +0 -39
  528. package/dist/web/utils/schema.js +0 -167
  529. package/dist/web/utils/simple_zod_to_json.js +0 -134
  530. package/dist/web/utils/streaming_utils.js +0 -438
  531. package/dist/web/utils/task.js +0 -38
  532. package/dist/web/utils/variant_utils.js +0 -23
  533. package/dist/web/utils/vertex_ai_utils.js +0 -27
  534. package/dist/web/version.js +0 -11
  535. package/dist/web/workflow/base_node.js +0 -215
  536. package/dist/web/workflow/branch_path.js +0 -77
  537. package/dist/web/workflow/dynamic_node_scheduler.js +0 -202
  538. package/dist/web/workflow/errors.js +0 -140
  539. package/dist/web/workflow/graph.js +0 -127
  540. package/dist/web/workflow/index.js +0 -80
  541. package/dist/web/workflow/node.js +0 -87
  542. package/dist/web/workflow/node_builders.js +0 -40
  543. package/dist/web/workflow/node_context.js +0 -236
  544. package/dist/web/workflow/node_error_event.js +0 -86
  545. package/dist/web/workflow/node_runner.js +0 -481
  546. package/dist/web/workflow/node_state.js +0 -43
  547. package/dist/web/workflow/node_status.js +0 -20
  548. package/dist/web/workflow/nodes/function_node.js +0 -221
  549. package/dist/web/workflow/nodes/join_node.js +0 -47
  550. package/dist/web/workflow/nodes/node_tool.js +0 -131
  551. package/dist/web/workflow/nodes/parallel_worker.js +0 -120
  552. package/dist/web/workflow/nodes/tool_node.js +0 -126
  553. package/dist/web/workflow/request_input.js +0 -36
  554. package/dist/web/workflow/retry_config.js +0 -43
  555. package/dist/web/workflow/run_llm_agent_as_node.js +0 -266
  556. package/dist/web/workflow/run_node_as_invocation.js +0 -170
  557. package/dist/web/workflow/schedule_dynamic_node.js +0 -26
  558. package/dist/web/workflow/trigger.js +0 -7
  559. package/dist/web/workflow/utils/graph_parser.js +0 -188
  560. package/dist/web/workflow/utils/graph_validation.js +0 -189
  561. package/dist/web/workflow/utils/hitl_utils.js +0 -239
  562. package/dist/web/workflow/utils/rehydration_utils.js +0 -342
  563. package/dist/web/workflow/utils/retry_utils.js +0 -82
  564. package/dist/web/workflow/utils/workflow_graph_utils.js +0 -115
  565. package/dist/web/workflow/workflow.js +0 -529
  566. /package/dist/{web/artifacts/session_artifact_service.js → esm/tools/resume_inputs.js} +0 -0
@@ -8,15 +8,12 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
8
8
  * SPDX-License-Identifier: Apache-2.0
9
9
  */
10
10
  import { isGemini1Model, isGeminiModel } from "../utils/model_name.js";
11
- import { BaseTool } from "./base_tool.js";
12
- const _GoogleSearchTool = class _GoogleSearchTool extends BaseTool {
11
+ import { BuiltInTool } from "./built_in_tool.js";
12
+ const _GoogleSearchTool = class _GoogleSearchTool extends BuiltInTool {
13
13
  constructor() {
14
14
  super({ name: "google_search", description: "Google Search Tool" });
15
15
  }
16
- runAsync() {
17
- return Promise.resolve();
18
- }
19
- async processLlmRequest({
16
+ async applyBuiltInConfig({
20
17
  llmRequest
21
18
  }) {
22
19
  if (!llmRequest.model) {
@@ -9,11 +9,10 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
9
9
  */
10
10
  import { Type } from "@google/genai";
11
11
  import { appendInstructions } from "../models/llm_request.js";
12
- import { getLogger } from "../utils/logger.js";
12
+ import { logger } from "../utils/logger.js";
13
13
  import {
14
14
  BaseTool
15
15
  } from "./base_tool.js";
16
- const logger = getLogger();
17
16
  const GEMINI_SUPPORTED_INLINE_MIME_PREFIXES = ["image/", "audio/", "video/"];
18
17
  const GEMINI_SUPPORTED_INLINE_MIME_TYPES = /* @__PURE__ */ new Set(["application/pdf"]);
19
18
  const TEXT_LIKE_MIME_TYPES = /* @__PURE__ */ new Set([
@@ -110,6 +109,7 @@ NOTE: Call when you need access to artifacts (for example, uploads saved by the
110
109
  );
111
110
  }
112
111
  async appendArtifactsToLlmRequest(toolContext, llmRequest) {
112
+ var _a, _b;
113
113
  if (!toolContext.invocationContext.artifactService) {
114
114
  return;
115
115
  }
@@ -130,33 +130,57 @@ NOTE: Call when you need access to artifacts (for example, uploads saved by the
130
130
  artifacts.`
131
131
  ]);
132
132
  const contents = llmRequest.contents;
133
- if (contents && contents.length > 0) {
134
- const lastContent = contents[contents.length - 1];
135
- if (lastContent.role === "user" && lastContent.parts && lastContent.parts.length > 0) {
136
- const functionResponsePart = lastContent.parts[0];
137
- const functionResponse = functionResponsePart.functionResponse;
138
- if (functionResponse && functionResponse.name === "load_artifacts") {
139
- const response = functionResponse.response || {};
140
- const namesToLoad = response["artifact_names"] || [];
141
- for (const artifactName of namesToLoad) {
142
- let artifact = await toolContext.loadArtifact(artifactName);
143
- if (!artifact && !artifactName.startsWith("user:")) {
144
- const prefixedName = `user:${artifactName}`;
145
- artifact = await toolContext.loadArtifact(prefixedName);
146
- }
147
- if (!artifact) {
148
- logger.warn(`Artifact "${artifactName}" not found, skipping`);
149
- continue;
133
+ if (!contents || contents.length === 0) {
134
+ return;
135
+ }
136
+ let startIndex = 0;
137
+ for (let i = contents.length - 1; i >= 0; i--) {
138
+ const content = contents[i];
139
+ const hasFunctionResponse = (_a = content.parts) == null ? void 0 : _a.some(
140
+ (part) => part.functionResponse !== void 0
141
+ );
142
+ const hasFunctionCall = (_b = content.parts) == null ? void 0 : _b.some(
143
+ (part) => part.functionCall !== void 0
144
+ );
145
+ if (content.role === "model" && !hasFunctionCall || content.role === "user" && !hasFunctionResponse) {
146
+ startIndex = i;
147
+ break;
148
+ }
149
+ }
150
+ const namesToLoad = [];
151
+ for (let i = startIndex; i < contents.length; i++) {
152
+ const content = contents[i];
153
+ if (content.role === "user" && content.parts) {
154
+ for (const part of content.parts) {
155
+ const functionResponse = part.functionResponse;
156
+ if (functionResponse && functionResponse.name === this.name) {
157
+ const response = functionResponse.response || {};
158
+ const artifactNames2 = response["artifact_names"] || [];
159
+ for (const name of artifactNames2) {
160
+ if (name && !namesToLoad.includes(name)) {
161
+ namesToLoad.push(name);
162
+ }
150
163
  }
151
- const artifactPart = asSafePartForLlm(artifact, artifactName);
152
- llmRequest.contents.push({
153
- role: "user",
154
- parts: [{ text: `Artifact ${artifactName} is:` }, artifactPart]
155
- });
156
164
  }
157
165
  }
158
166
  }
159
167
  }
168
+ for (const artifactName of namesToLoad) {
169
+ let artifact = await toolContext.loadArtifact(artifactName);
170
+ if (!artifact && !artifactName.startsWith("user:")) {
171
+ const prefixedName = `user:${artifactName}`;
172
+ artifact = await toolContext.loadArtifact(prefixedName);
173
+ }
174
+ if (!artifact) {
175
+ logger.warn(`Artifact "${artifactName}" not found, skipping`);
176
+ continue;
177
+ }
178
+ const artifactPart = asSafePartForLlm(artifact, artifactName);
179
+ llmRequest.contents.push({
180
+ role: "user",
181
+ parts: [{ text: `Artifact ${artifactName} is:` }, artifactPart]
182
+ });
183
+ }
160
184
  }
161
185
  };
162
186
  __name(_LoadArtifactsTool, "LoadArtifactsTool");
@@ -7,186 +7,26 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
7
7
  * Copyright 2026 Google LLC
8
8
  * SPDX-License-Identifier: Apache-2.0
9
9
  */
10
- import { lookup } from "node:dns/promises";
11
- import { isIP } from "node:net";
12
10
  import { z } from "zod";
11
+ import {
12
+ isHttpUrl,
13
+ isLocalhostHostname,
14
+ isNonGlobalAddress,
15
+ normalizeHost,
16
+ resolveHostAddresses
17
+ } from "../utils/ssrf_guard.js";
13
18
  import { FunctionTool } from "./function_tool.js";
14
- const ALLOWED_SCHEMES = /* @__PURE__ */ new Set(["http:", "https:"]);
15
19
  const DEFAULT_TIMEOUT_MS = 3e4;
16
- const BLOCKED_IPV4_CIDRS = [
17
- "0.0.0.0/8",
18
- // "this host on this network"
19
- "10.0.0.0/8",
20
- // private
21
- "100.64.0.0/10",
22
- // shared address space / CGNAT
23
- "127.0.0.0/8",
24
- // loopback
25
- "169.254.0.0/16",
26
- // link-local (includes GCP metadata 169.254.169.254)
27
- "172.16.0.0/12",
28
- // private
29
- "192.0.0.0/24",
30
- // IETF protocol assignments
31
- "192.0.2.0/24",
32
- // TEST-NET-1 (documentation)
33
- "192.88.99.0/24",
34
- // 6to4 relay anycast (deprecated)
35
- "192.168.0.0/16",
36
- // private
37
- "198.18.0.0/15",
38
- // benchmarking
39
- "198.51.100.0/24",
40
- // TEST-NET-2 (documentation)
41
- "203.0.113.0/24",
42
- // TEST-NET-3 (documentation)
43
- "224.0.0.0/4",
44
- // multicast
45
- "240.0.0.0/4"
46
- // reserved / future use (includes 255.255.255.255)
47
- ].map(parseIpv4Cidr);
48
- const BLOCKED_IPV6_CIDRS = [
49
- "::/128",
50
- // unspecified
51
- "::1/128",
52
- // loopback
53
- "64:ff9b:1::/48",
54
- // local NAT64
55
- "100::/64",
56
- // discard-only
57
- "2001:db8::/32",
58
- // documentation
59
- "fc00::/7",
60
- // unique-local (ULA, private)
61
- "fe80::/10",
62
- // link-local
63
- "ff00::/8"
64
- // multicast
65
- ].map(parseIpv6Cidr);
66
20
  function failedToFetchMessage(url) {
67
21
  return `Failed to fetch url: ${url}`;
68
22
  }
69
23
  __name(failedToFetchMessage, "failedToFetchMessage");
70
- function isBlockedHostname(hostname) {
71
- const normalized = hostname.replace(/\.+$/, "").toLowerCase();
72
- return normalized === "localhost" || normalized.endsWith(".localhost");
73
- }
74
- __name(isBlockedHostname, "isBlockedHostname");
75
- function normalizeHost(hostname) {
76
- return hostname.startsWith("[") ? hostname.slice(1, -1) : hostname;
77
- }
78
- __name(normalizeHost, "normalizeHost");
79
- function parseIpv4(address) {
80
- const match = /^(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/.exec(address);
81
- if (!match) {
82
- return null;
83
- }
84
- const octets = match.slice(1).map(Number);
85
- if (octets.some((octet) => octet > 255)) {
86
- return null;
87
- }
88
- return octets;
89
- }
90
- __name(parseIpv4, "parseIpv4");
91
- function parseIpv6(address) {
92
- if (isIP(address) !== 6) {
93
- return null;
94
- }
95
- const [head, tail] = address.split("::");
96
- const highGroups = head ? expandHextets(head) : [];
97
- const lowGroups = tail ? expandHextets(tail) : [];
98
- const compressed = address.includes("::") ? new Array(8 - highGroups.length - lowGroups.length).fill(0) : [];
99
- return [...highGroups, ...compressed, ...lowGroups];
100
- }
101
- __name(parseIpv6, "parseIpv6");
102
- function expandHextets(fragment) {
103
- const hextets = [];
104
- for (const group of fragment.split(":")) {
105
- if (group.includes(".")) {
106
- const octets = parseIpv4(group);
107
- hextets.push(octets[0] << 8 | octets[1], octets[2] << 8 | octets[3]);
108
- } else {
109
- hextets.push(parseInt(group, 16));
110
- }
111
- }
112
- return hextets;
113
- }
114
- __name(expandHextets, "expandHextets");
115
- function ipv4ToInt(octets) {
116
- return (octets[0] << 24 | octets[1] << 16 | octets[2] << 8 | octets[3]) >>> 0;
117
- }
118
- __name(ipv4ToInt, "ipv4ToInt");
119
- function hextetsToBigInt(hextets) {
120
- let value = 0n;
121
- for (const hextet of hextets) {
122
- value = value << 16n | BigInt(hextet);
123
- }
124
- return value;
125
- }
126
- __name(hextetsToBigInt, "hextetsToBigInt");
127
- function parseIpv4Cidr(cidr) {
128
- const [address, prefix] = cidr.split("/");
129
- const mask = 4294967295 << 32 - Number(prefix) >>> 0;
130
- return { base: (ipv4ToInt(parseIpv4(address)) & mask) >>> 0, mask };
131
- }
132
- __name(parseIpv4Cidr, "parseIpv4Cidr");
133
- function parseIpv6Cidr(cidr) {
134
- const [address, prefix] = cidr.split("/");
135
- return { base: hextetsToBigInt(parseIpv6(address)), prefix: Number(prefix) };
136
- }
137
- __name(parseIpv6Cidr, "parseIpv6Cidr");
138
- function isBlockedIpv4(octets) {
139
- const value = ipv4ToInt(octets);
140
- return BLOCKED_IPV4_CIDRS.some(
141
- ({ base, mask }) => (value & mask) >>> 0 === base
142
- );
143
- }
144
- __name(isBlockedIpv4, "isBlockedIpv4");
145
- function isBlockedIpv6(hextets) {
146
- const value = hextetsToBigInt(hextets);
147
- if (value >> 32n === 0xffffn) {
148
- return isBlockedIpv4([
149
- Number(value >> 24n & 0xffn),
150
- Number(value >> 16n & 0xffn),
151
- Number(value >> 8n & 0xffn),
152
- Number(value & 0xffn)
153
- ]);
154
- }
155
- return BLOCKED_IPV6_CIDRS.some(
156
- ({ base, prefix }) => value >> BigInt(128 - prefix) === base >> BigInt(128 - prefix)
157
- );
158
- }
159
- __name(isBlockedIpv6, "isBlockedIpv6");
160
- function isBlockedAddress(address) {
161
- const octets = parseIpv4(address);
162
- if (octets) {
163
- return isBlockedIpv4(octets);
164
- }
165
- const hextets = parseIpv6(address);
166
- if (hextets) {
167
- return isBlockedIpv6(hextets);
168
- }
169
- return true;
170
- }
171
- __name(isBlockedAddress, "isBlockedAddress");
172
- async function resolveHostAddresses(hostname) {
173
- if (isIP(hostname) !== 0) {
174
- return [hostname];
175
- }
176
- const records = await lookup(hostname, { all: true });
177
- const addresses = [...new Set(records.map((record) => record.address))];
178
- if (addresses.length === 0) {
179
- throw new Error(`Unable to resolve host: ${hostname}`);
180
- }
181
- return addresses;
182
- }
183
- __name(resolveHostAddresses, "resolveHostAddresses");
184
24
  function assertUrlAllowed(url) {
185
25
  const parsed = new URL(url);
186
- if (!ALLOWED_SCHEMES.has(parsed.protocol)) {
26
+ if (!isHttpUrl(parsed)) {
187
27
  throw new Error(`Unsupported url scheme: ${url}`);
188
28
  }
189
- if (isBlockedHostname(parsed.hostname)) {
29
+ if (isLocalhostHostname(parsed.hostname)) {
190
30
  throw new Error(`Blocked host: ${parsed.hostname}`);
191
31
  }
192
32
  return parsed;
@@ -194,7 +34,7 @@ function assertUrlAllowed(url) {
194
34
  __name(assertUrlAllowed, "assertUrlAllowed");
195
35
  async function validateResolvedAddresses(hostname) {
196
36
  const addresses = await resolveHostAddresses(hostname);
197
- if (addresses.some(isBlockedAddress)) {
37
+ if (addresses.some(isNonGlobalAddress)) {
198
38
  throw new Error(`Blocked host: ${hostname}`);
199
39
  }
200
40
  }
@@ -71,13 +71,42 @@ before answering questions related to the resources.`
71
71
  } catch (e) {
72
72
  logger.warn(`Failed to list MCP resources: ${e}`);
73
73
  }
74
- const lastContent = llmRequest.contents.at(-1);
75
- const functionResponse = (_b = (_a = lastContent == null ? void 0 : lastContent.parts) == null ? void 0 : _a[0]) == null ? void 0 : _b.functionResponse;
76
- if (!functionResponse || functionResponse.name !== this.name) {
74
+ const contents = llmRequest.contents;
75
+ if (!contents || contents.length === 0) {
77
76
  return;
78
77
  }
79
- const response = functionResponse.response || {};
80
- const requestedResourceNames = response["resource_names"] || [];
78
+ let startIndex = 0;
79
+ for (let i = contents.length - 1; i >= 0; i--) {
80
+ const content = contents[i];
81
+ const hasFunctionResponse = (_a = content.parts) == null ? void 0 : _a.some(
82
+ (part) => part.functionResponse !== void 0
83
+ );
84
+ const hasFunctionCall = (_b = content.parts) == null ? void 0 : _b.some(
85
+ (part) => part.functionCall !== void 0
86
+ );
87
+ if (content.role === "model" && !hasFunctionCall || content.role === "user" && !hasFunctionResponse) {
88
+ startIndex = i;
89
+ break;
90
+ }
91
+ }
92
+ const requestedResourceNames = [];
93
+ for (let i = startIndex; i < contents.length; i++) {
94
+ const content = contents[i];
95
+ if (content.role === "user" && content.parts) {
96
+ for (const part of content.parts) {
97
+ const functionResponse = part.functionResponse;
98
+ if (functionResponse && functionResponse.name === this.name) {
99
+ const response = functionResponse.response || {};
100
+ const names = response["resource_names"] || [];
101
+ for (const name of names) {
102
+ if (name && !requestedResourceNames.includes(name)) {
103
+ requestedResourceNames.push(name);
104
+ }
105
+ }
106
+ }
107
+ }
108
+ }
109
+ }
81
110
  for (const resourceName of requestedResourceNames) {
82
111
  try {
83
112
  const resourceContents = await this.mcpToolset.readResource(resourceName);
@@ -7,7 +7,11 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
7
7
  * Copyright 2026 Google LLC
8
8
  * SPDX-License-Identifier: Apache-2.0
9
9
  */
10
+ import {
11
+ AuthCredentialTypes
12
+ } from "../../../auth/auth_credential.js";
10
13
  function applyCredential(url, headers, credential, authScheme) {
14
+ var _a;
11
15
  if (!credential) return url;
12
16
  if (credential.apiKey) {
13
17
  let inLocation;
@@ -25,8 +29,15 @@ function applyCredential(url, headers, credential, authScheme) {
25
29
  } else {
26
30
  headers["Authorization"] = credential.apiKey;
27
31
  }
28
- } else if (credential.http && credential.http.credentials && credential.http.credentials.token) {
29
- headers["Authorization"] = `Bearer ${credential.http.credentials.token}`;
32
+ } else if (credential.authType === AuthCredentialTypes.HTTP || credential.http) {
33
+ const httpCredentials = (_a = credential.http) == null ? void 0 : _a.credentials;
34
+ if (httpCredentials == null ? void 0 : httpCredentials.token) {
35
+ headers["Authorization"] = `Bearer ${httpCredentials.token}`;
36
+ } else if ((httpCredentials == null ? void 0 : httpCredentials.username) || (httpCredentials == null ? void 0 : httpCredentials.password)) {
37
+ throw new Error("Basic Authentication is not supported.");
38
+ } else {
39
+ throw new Error("Invalid HTTP auth credentials");
40
+ }
30
41
  }
31
42
  return url;
32
43
  }
@@ -164,7 +164,7 @@ let OperationParser = class {
164
164
  return {
165
165
  type: "object",
166
166
  properties,
167
- required: required.length > 0 ? required : void 0,
167
+ required,
168
168
  title: `${this.operation.operationId || "unnamed"}_Arguments`
169
169
  };
170
170
  }
@@ -198,27 +198,25 @@ function prepareRequestBody(requestBody, body, bodyData, headers) {
198
198
  const finalData = body !== void 0 ? body : Object.keys(bodyData).length > 0 ? bodyData : void 0;
199
199
  if (requestBody && "content" in requestBody) {
200
200
  const content = requestBody.content;
201
- for (const [mimeType, _mediaTypeObject] of Object.entries(content)) {
202
- if (finalData !== void 0) {
203
- if (mimeType === "application/json" || mimeType.endsWith("+json")) {
204
- headers["Content-Type"] = mimeType;
205
- return typeof finalData === "string" ? finalData : JSON.stringify(finalData);
206
- } else if (mimeType === "application/x-www-form-urlencoded") {
207
- return new URLSearchParams(finalData);
208
- } else if (mimeType === "multipart/form-data") {
209
- const formData = new FormData();
210
- if (typeof finalData === "object" && finalData !== null) {
211
- for (const [key, value] of Object.entries(finalData)) {
212
- formData.append(key, String(value));
213
- }
201
+ const mimeType = Object.keys(content)[0];
202
+ if (mimeType && finalData !== void 0) {
203
+ if (mimeType === "application/json" || mimeType.endsWith("+json")) {
204
+ headers["Content-Type"] = mimeType;
205
+ return typeof finalData === "string" ? finalData : JSON.stringify(finalData);
206
+ } else if (mimeType === "application/x-www-form-urlencoded") {
207
+ return new URLSearchParams(finalData);
208
+ } else if (mimeType === "multipart/form-data") {
209
+ const formData = new FormData();
210
+ if (typeof finalData === "object" && finalData !== null) {
211
+ for (const [key, value] of Object.entries(finalData)) {
212
+ formData.append(key, String(value));
214
213
  }
215
- return formData;
216
- } else if (mimeType === "text/plain") {
217
- headers["Content-Type"] = mimeType;
218
- return String(finalData);
219
214
  }
215
+ return formData;
216
+ } else if (mimeType === "text/plain") {
217
+ headers["Content-Type"] = mimeType;
218
+ return String(finalData);
220
219
  }
221
- break;
222
220
  }
223
221
  } else if (finalData !== void 0) {
224
222
  headers["Content-Type"] = "application/json";
@@ -16,7 +16,7 @@ const _PreloadMemoryTool = class _PreloadMemoryTool extends BaseTool {
16
16
  constructor() {
17
17
  super({
18
18
  // Name and description are not used because this tool only
19
- // changes llm_request.
19
+ // changes the LlmRequest.
20
20
  name: "preload_memory",
21
21
  description: "preload_memory"
22
22
  });
@@ -0,0 +1,33 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
3
+ var __defProp = Object.defineProperty;
4
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
5
+ /**
6
+ * @license
7
+ * Copyright 2026 Google LLC
8
+ * SPDX-License-Identifier: Apache-2.0
9
+ */
10
+ import { Type } from "@google/genai";
11
+ import { BaseTool } from "../base_tool.js";
12
+ const _BaseRetrievalTool = class _BaseRetrievalTool extends BaseTool {
13
+ _getDeclaration() {
14
+ return {
15
+ name: this.name,
16
+ description: this.description,
17
+ parameters: {
18
+ type: Type.OBJECT,
19
+ properties: {
20
+ query: {
21
+ type: Type.STRING,
22
+ description: "The query to retrieve."
23
+ }
24
+ }
25
+ }
26
+ };
27
+ }
28
+ };
29
+ __name(_BaseRetrievalTool, "BaseRetrievalTool");
30
+ let BaseRetrievalTool = _BaseRetrievalTool;
31
+ export {
32
+ BaseRetrievalTool
33
+ };
@@ -0,0 +1,81 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
3
+ var __create = Object.create;
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
19
+ // If the importer is in node compatibility mode or this is not an ESM
20
+ // file that has been converted to a CommonJS file using a Babel-
21
+ // compatible transform (i.e. "__esModule" has not been set), then set
22
+ // "default" to the CommonJS "module.exports" for node compatibility.
23
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
24
+ mod
25
+ ));
26
+ /**
27
+ * @license
28
+ * Copyright 2026 Google LLC
29
+ * SPDX-License-Identifier: Apache-2.0
30
+ */
31
+ import { logger } from "../../utils/logger.js";
32
+ import {
33
+ LlamaIndexRetrieval
34
+ } from "./llama_index_retrieval.js";
35
+ const LLAMA_INDEX_MODULE = "llamaindex";
36
+ const DIRECTORY_READER_MODULE = "@llamaindex/readers/directory";
37
+ async function importOptional(specifier) {
38
+ try {
39
+ return await Promise.resolve().then(() => __toESM(require(specifier)));
40
+ } catch (cause) {
41
+ throw new Error(
42
+ `FilesRetrieval needs the optional package '${specifier}', which is not installed. Install '${LLAMA_INDEX_MODULE}' and '@llamaindex/readers', or build the retriever yourself and pass it to LlamaIndexRetrieval.`,
43
+ { cause }
44
+ );
45
+ }
46
+ }
47
+ __name(importOptional, "importOptional");
48
+ const _FilesRetrieval = class _FilesRetrieval extends LlamaIndexRetrieval {
49
+ constructor(params) {
50
+ super({
51
+ name: params.name,
52
+ description: params.description,
53
+ retriever: params.retriever
54
+ });
55
+ this.inputDir = params.inputDir;
56
+ }
57
+ /**
58
+ * Indexes every file under `inputDir` and returns a tool that retrieves
59
+ * from it.
60
+ *
61
+ * Requires the optional `llamaindex` and `@llamaindex/readers` packages,
62
+ * and a configured LlamaIndex embedding model.
63
+ */
64
+ static async create(params) {
65
+ logger.info(`Loading data from ${params.inputDir}`);
66
+ const { SimpleDirectoryReader } = await importOptional(
67
+ DIRECTORY_READER_MODULE
68
+ );
69
+ const { VectorStoreIndex } = await importOptional(LLAMA_INDEX_MODULE);
70
+ const documents = await new SimpleDirectoryReader().loadData({
71
+ directoryPath: params.inputDir
72
+ });
73
+ const index = await VectorStoreIndex.fromDocuments(documents);
74
+ return new _FilesRetrieval({ ...params, retriever: index.asRetriever() });
75
+ }
76
+ };
77
+ __name(_FilesRetrieval, "FilesRetrieval");
78
+ let FilesRetrieval = _FilesRetrieval;
79
+ export {
80
+ FilesRetrieval
81
+ };
@@ -0,0 +1,30 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
3
+ var __defProp = Object.defineProperty;
4
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
5
+ /**
6
+ * @license
7
+ * Copyright 2026 Google LLC
8
+ * SPDX-License-Identifier: Apache-2.0
9
+ */
10
+ import { BaseRetrievalTool } from "./base_retrieval_tool.js";
11
+ const _LlamaIndexRetrieval = class _LlamaIndexRetrieval extends BaseRetrievalTool {
12
+ constructor(params) {
13
+ super({ name: params.name, description: params.description });
14
+ this.retriever = params.retriever;
15
+ }
16
+ async runAsync({ args }) {
17
+ var _a;
18
+ const nodes = await this.retriever.retrieve(String((_a = args["query"]) != null ? _a : ""));
19
+ const top = nodes[0];
20
+ if (!top) {
21
+ throw new Error(`${this.name} retrieved no results for the query.`);
22
+ }
23
+ return top.node.text;
24
+ }
25
+ };
26
+ __name(_LlamaIndexRetrieval, "LlamaIndexRetrieval");
27
+ let LlamaIndexRetrieval = _LlamaIndexRetrieval;
28
+ export {
29
+ LlamaIndexRetrieval
30
+ };
@@ -8,15 +8,12 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
8
8
  * SPDX-License-Identifier: Apache-2.0
9
9
  */
10
10
  import { isGemini2OrAbove, isGeminiModel } from "../utils/model_name.js";
11
- import { BaseTool } from "./base_tool.js";
12
- const _UrlContextTool = class _UrlContextTool extends BaseTool {
11
+ import { BuiltInTool } from "./built_in_tool.js";
12
+ const _UrlContextTool = class _UrlContextTool extends BuiltInTool {
13
13
  constructor() {
14
14
  super({ name: "url_context", description: "URL Context Tool" });
15
15
  }
16
- runAsync() {
17
- return Promise.resolve();
18
- }
19
- async processLlmRequest({
16
+ async applyBuiltInConfig({
20
17
  llmRequest
21
18
  }) {
22
19
  if (!llmRequest.model) {
@@ -7,15 +7,14 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
7
7
  * Copyright 2026 Google LLC
8
8
  * SPDX-License-Identifier: Apache-2.0
9
9
  */
10
- import { getLogger } from "../utils/logger.js";
10
+ import { logger } from "../utils/logger.js";
11
11
  import {
12
12
  isGemini1Model,
13
13
  isGeminiModel,
14
14
  isGeminiModelIdCheckDisabled
15
15
  } from "../utils/model_name.js";
16
- import { BaseTool } from "./base_tool.js";
17
- const logger = getLogger();
18
- const _VertexAiSearchTool = class _VertexAiSearchTool extends BaseTool {
16
+ import { BuiltInTool } from "./built_in_tool.js";
17
+ const _VertexAiSearchTool = class _VertexAiSearchTool extends BuiltInTool {
19
18
  constructor(params) {
20
19
  super({ name: "vertex_ai_search", description: "vertex_ai_search" });
21
20
  const {
@@ -43,9 +42,6 @@ const _VertexAiSearchTool = class _VertexAiSearchTool extends BaseTool {
43
42
  this.maxResults = maxResults;
44
43
  this.bypassMultiToolsLimit = bypassMultiToolsLimit;
45
44
  }
46
- runAsync() {
47
- return Promise.resolve();
48
- }
49
45
  /**
50
46
  * Builds the VertexAISearch configuration.
51
47
  *
@@ -62,7 +58,7 @@ const _VertexAiSearchTool = class _VertexAiSearchTool extends BaseTool {
62
58
  maxResults: this.maxResults
63
59
  };
64
60
  }
65
- async processLlmRequest({
61
+ async applyBuiltInConfig({
66
62
  toolContext,
67
63
  llmRequest
68
64
  }) {