@google/adk 2.0.0 → 2.2.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 (658) 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 +66 -6
  5. package/dist/cjs/a2a/agent_executor.js +18 -6
  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 +21 -6
  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 +15 -7
  21. package/dist/cjs/agents/processors/content_request_processor.js +4 -1
  22. package/dist/cjs/agents/processors/nl_planning_processor.js +114 -0
  23. package/dist/cjs/agents/processors/request_confirmation_llm_request_processor.js +19 -12
  24. package/dist/cjs/agents/processors/request_input_llm_request_processor.js +3 -7
  25. package/dist/cjs/agents/readonly_context.js +6 -0
  26. package/dist/cjs/agents/routed_agent.js +1 -1
  27. package/dist/cjs/agents/sequential_agent.js +1 -1
  28. package/dist/cjs/apps/app.js +1 -1
  29. package/dist/cjs/artifacts/file_artifact_service.js +1 -2
  30. package/dist/cjs/artifacts/gcs_artifact_service.js +13 -7
  31. package/dist/cjs/artifacts/scoped_artifact_service.js +9 -0
  32. package/dist/cjs/artifacts/session_artifact_service.js +19 -0
  33. package/dist/cjs/auth/auth_credential.js +12 -2
  34. package/dist/cjs/auth/auth_handler.js +44 -8
  35. package/dist/cjs/auth/oauth2/oauth2_credential_refresher.js +1 -1
  36. package/dist/cjs/auth/oauth2/oauth2_utils.js +17 -2
  37. package/dist/cjs/code_executors/base_code_executor.js +1 -1
  38. package/dist/cjs/code_executors/built_in_code_executor.js +1 -1
  39. package/dist/cjs/code_executors/code_execution_utils.js +5 -5
  40. package/dist/cjs/code_executors/container_code_executor.js +186 -0
  41. package/dist/cjs/code_executors/docker_container.js +282 -0
  42. package/dist/cjs/code_executors/unsafe_local_code_executor.js +11 -6
  43. package/dist/cjs/common.js +119 -45
  44. package/dist/cjs/context/agent_controlled_context_compactor.js +10 -5
  45. package/dist/cjs/context/anchored_context_compactor.js +41 -18
  46. package/dist/cjs/context/compaction_utils.js +15 -6
  47. package/dist/cjs/context/token_based_context_compactor.js +10 -2
  48. package/dist/cjs/context/trajectory_thought_pruning_compactor.js +17 -10
  49. package/dist/cjs/context/truncating_context_compactor.js +17 -5
  50. package/dist/cjs/errors/already_exists_error.js +50 -0
  51. package/dist/cjs/errors/input_validation_error.js +50 -0
  52. package/dist/cjs/errors/not_found_error.js +50 -0
  53. package/dist/cjs/errors/session_not_found_error.js +50 -0
  54. package/dist/cjs/errors/tool_execution_error.js +68 -0
  55. package/dist/cjs/events/event.js +1 -1
  56. package/dist/cjs/events/event_actions.js +7 -0
  57. package/dist/cjs/examples/base_example_provider.js +1 -1
  58. package/dist/cjs/examples/example.js +92 -0
  59. package/dist/cjs/examples/example_util.js +28 -4
  60. package/dist/cjs/examples/index.js +39 -0
  61. package/dist/cjs/examples/vertex_ai_example_store.js +39 -0
  62. package/dist/cjs/index.js +93 -0
  63. package/dist/cjs/index_web.js +2 -0
  64. package/dist/cjs/integrations/agent_registry/agent_registry.js +3 -2
  65. package/dist/cjs/memory/rag_memory_transcript.js +136 -0
  66. package/dist/cjs/memory/vertex_ai_memory_bank_service.js +19 -7
  67. package/dist/cjs/memory/vertex_ai_rag_api.js +120 -0
  68. package/dist/cjs/memory/vertex_ai_rag_memory_service.js +228 -0
  69. package/dist/cjs/models/apigee_llm.js +1 -1
  70. package/dist/cjs/models/base_llm.js +2 -7
  71. package/dist/cjs/models/chrome_prompt_llm.js +318 -0
  72. package/dist/cjs/models/chrome_prompt_utils.js +281 -0
  73. package/dist/cjs/models/gemini_llm_connection.js +5 -4
  74. package/dist/cjs/models/google_llm.js +9 -4
  75. package/dist/cjs/models/interactions_utils.js +2 -3
  76. package/dist/cjs/models/registry.js +2 -0
  77. package/dist/cjs/planners/base_planner.js +56 -0
  78. package/dist/cjs/planners/built_in_planner.js +85 -0
  79. package/dist/cjs/planners/plan_re_act_planner.js +172 -0
  80. package/dist/cjs/plugins/_reflect_retry_utils.js +142 -0
  81. package/dist/cjs/plugins/base_plugin.js +46 -61
  82. package/dist/cjs/plugins/reflect_retry_model_plugin.js +274 -0
  83. package/dist/cjs/plugins/reflect_retry_tool_plugin.js +276 -0
  84. package/dist/cjs/runner/runner.js +29 -26
  85. package/dist/cjs/sessions/database_session_service.js +78 -43
  86. package/dist/cjs/sessions/db/operations.js +229 -22
  87. package/dist/cjs/sessions/db/schema.js +113 -159
  88. package/dist/cjs/sessions/registry.js +5 -1
  89. package/dist/cjs/sessions/vertex_ai_session_service.js +2 -2
  90. package/dist/cjs/telemetry/setup.js +1 -1
  91. package/dist/cjs/telemetry/tracing.js +11 -1
  92. package/dist/cjs/tools/agent_tool.js +4 -5
  93. package/dist/cjs/tools/base_tool.js +14 -4
  94. package/dist/cjs/tools/base_toolset.js +4 -4
  95. package/dist/cjs/tools/built_in_tool.js +75 -0
  96. package/dist/cjs/tools/enterprise_web_search_tool.js +3 -6
  97. package/dist/cjs/tools/example_tool.js +1 -1
  98. package/dist/cjs/tools/forwarding_artifact_service.js +18 -13
  99. package/dist/cjs/tools/function_tool.js +6 -3
  100. package/dist/cjs/tools/google_maps_grounding_tool.js +3 -6
  101. package/dist/cjs/tools/google_search_tool.js +3 -6
  102. package/dist/cjs/tools/load_artifacts_tool.js +47 -23
  103. package/dist/cjs/tools/load_web_page.js +6 -172
  104. package/dist/cjs/tools/mcp/load_mcp_resource_tool.js +34 -5
  105. package/dist/cjs/tools/mcp/mcp_session_manager.js +14 -8
  106. package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +292 -4
  107. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +15 -1
  108. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/base_auth_credential_exchanger.js +70 -0
  109. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +120 -0
  110. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +10 -10
  111. package/dist/cjs/tools/openapi_tool/common/common.js +139 -0
  112. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +11 -6
  113. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/operation_parser.js +74 -14
  114. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +146 -34
  115. package/dist/cjs/tools/openapi_tool/openapi_toolset.js +14 -2
  116. package/dist/cjs/tools/openapi_tool/rest_api_tool.js +106 -46
  117. package/dist/cjs/tools/preload_memory_tool.js +1 -1
  118. package/dist/cjs/tools/resume_inputs.js +27 -0
  119. package/dist/cjs/tools/retrieval/base_retrieval_tool.js +60 -0
  120. package/dist/cjs/tools/retrieval/files_retrieval.js +95 -0
  121. package/dist/cjs/tools/retrieval/llama_index_retrieval.js +57 -0
  122. package/dist/cjs/tools/skill/skill_toolset.js +2 -0
  123. package/dist/cjs/tools/tool_context.js +41 -0
  124. package/dist/cjs/tools/url_context_tool.js +3 -6
  125. package/dist/cjs/tools/vertex_ai_search_tool.js +4 -8
  126. package/dist/cjs/tools/vertex_rag_retrieval_tool.js +3 -10
  127. package/dist/cjs/tools/webmcp/index.js +37 -0
  128. package/dist/cjs/tools/webmcp/webmcp_tool.js +156 -0
  129. package/dist/cjs/tools/webmcp/webmcp_toolset.js +116 -0
  130. package/dist/cjs/tools/webmcp/webmcp_types.js +50 -0
  131. package/dist/cjs/utils/case_utils.js +52 -2
  132. package/dist/cjs/utils/client_labels.js +67 -0
  133. package/dist/cjs/utils/crypto_shim.js +16 -0
  134. package/dist/cjs/utils/gemini_schema_util.js +103 -9
  135. package/dist/cjs/utils/hash_utils.js +73 -0
  136. package/dist/cjs/utils/live_connection_utils.js +10 -9
  137. package/dist/cjs/utils/logger.js +15 -50
  138. package/dist/cjs/utils/logger_browser.js +86 -0
  139. package/dist/cjs/utils/logger_node.js +119 -0
  140. package/dist/cjs/utils/model_name.js +17 -2
  141. package/dist/cjs/utils/redact_inline_data.js +46 -0
  142. package/dist/cjs/utils/redact_uri.js +15 -1
  143. package/dist/cjs/utils/schema.js +1 -1
  144. package/dist/cjs/utils/simple_zod_to_json.js +5 -0
  145. package/dist/cjs/utils/ssrf_guard.js +262 -0
  146. package/dist/cjs/version.js +1 -1
  147. package/dist/cjs/workflow/base_node.js +1 -1
  148. package/dist/cjs/workflow/graph.js +1 -1
  149. package/dist/cjs/workflow/nodes/node_tool.js +2 -11
  150. package/dist/cjs/workflow/request_input.js +1 -1
  151. package/dist/cjs/workflow/run_llm_agent_as_node.js +1 -1
  152. package/dist/cjs/workflow/workflow.js +1 -1
  153. package/dist/esm/a2a/a2a_event.js +0 -28
  154. package/dist/esm/a2a/a2a_remote_agent.js +10 -5
  155. package/dist/esm/a2a/a2a_remote_agent_utils.js +102 -2
  156. package/dist/esm/a2a/agent_card.js +71 -6
  157. package/dist/esm/a2a/agent_executor.js +18 -6
  158. package/dist/esm/a2a/agent_to_a2a.js +8 -2
  159. package/dist/esm/a2a/event_processor_utils.js +1 -2
  160. package/dist/esm/a2a/executor_context.js +4 -2
  161. package/dist/esm/a2a/index.js +7 -1
  162. package/dist/esm/a2a/request_metadata.js +68 -0
  163. package/dist/esm/agents/base_agent.js +9 -8
  164. package/dist/esm/agents/context.js +7 -0
  165. package/dist/esm/agents/functions.js +152 -48
  166. package/dist/esm/agents/invocation_context.js +1 -0
  167. package/dist/esm/agents/llm_agent.js +24 -6
  168. package/dist/esm/agents/loop_agent.js +1 -1
  169. package/dist/esm/agents/parallel_agent.js +1 -1
  170. package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +26 -5
  171. package/dist/esm/agents/processors/code_execution_request_processor.js +2 -2
  172. package/dist/esm/agents/processors/content_processor_utils.js +15 -7
  173. package/dist/esm/agents/processors/content_request_processor.js +4 -1
  174. package/dist/esm/agents/processors/nl_planning_processor.js +87 -0
  175. package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +19 -12
  176. package/dist/esm/agents/processors/request_input_llm_request_processor.js +3 -7
  177. package/dist/esm/agents/readonly_context.js +6 -0
  178. package/dist/esm/agents/routed_agent.js +1 -1
  179. package/dist/esm/agents/sequential_agent.js +1 -1
  180. package/dist/esm/apps/app.js +1 -1
  181. package/dist/esm/artifacts/file_artifact_service.js +1 -2
  182. package/dist/esm/artifacts/gcs_artifact_service.js +13 -7
  183. package/dist/esm/artifacts/scoped_artifact_service.js +9 -0
  184. package/dist/esm/artifacts/session_artifact_service.js +12 -0
  185. package/dist/esm/auth/auth_credential.js +11 -1
  186. package/dist/esm/auth/auth_handler.js +47 -8
  187. package/dist/esm/auth/oauth2/oauth2_credential_refresher.js +1 -1
  188. package/dist/esm/auth/oauth2/oauth2_utils.js +15 -2
  189. package/dist/esm/code_executors/base_code_executor.js +1 -1
  190. package/dist/esm/code_executors/built_in_code_executor.js +1 -1
  191. package/dist/esm/code_executors/code_execution_utils.js +5 -5
  192. package/dist/esm/code_executors/container_code_executor.js +155 -0
  193. package/dist/esm/code_executors/docker_container.js +265 -0
  194. package/dist/esm/code_executors/unsafe_local_code_executor.js +11 -6
  195. package/dist/esm/common.js +111 -40
  196. package/dist/esm/context/agent_controlled_context_compactor.js +10 -5
  197. package/dist/esm/context/anchored_context_compactor.js +45 -19
  198. package/dist/esm/context/compaction_utils.js +13 -5
  199. package/dist/esm/context/token_based_context_compactor.js +10 -2
  200. package/dist/esm/context/trajectory_thought_pruning_compactor.js +17 -10
  201. package/dist/esm/context/truncating_context_compactor.js +17 -5
  202. package/dist/esm/errors/already_exists_error.js +23 -0
  203. package/dist/esm/errors/input_validation_error.js +23 -0
  204. package/dist/{web/auth/refresher/base_credential_refresher.js → esm/errors/not_found_error.js} +9 -6
  205. package/dist/esm/errors/session_not_found_error.js +23 -0
  206. package/dist/esm/errors/tool_execution_error.js +40 -0
  207. package/dist/esm/events/event.js +1 -1
  208. package/dist/esm/events/event_actions.js +6 -0
  209. package/dist/esm/examples/base_example_provider.js +1 -1
  210. package/dist/esm/examples/example.js +85 -0
  211. package/dist/esm/examples/example_util.js +25 -3
  212. package/dist/{web/auth/credential_service/base_credential_service.js → esm/examples/index.js} +4 -0
  213. package/dist/{web/version.js → esm/examples/vertex_ai_example_store.js} +2 -2
  214. package/dist/esm/index.js +87 -0
  215. package/dist/esm/index_web.js +2 -0
  216. package/dist/esm/integrations/agent_registry/agent_registry.js +3 -2
  217. package/dist/esm/memory/rag_memory_transcript.js +106 -0
  218. package/dist/esm/memory/vertex_ai_memory_bank_service.js +19 -7
  219. package/dist/esm/memory/vertex_ai_rag_api.js +93 -0
  220. package/dist/esm/memory/vertex_ai_rag_memory_service.js +208 -0
  221. package/dist/esm/models/apigee_llm.js +1 -1
  222. package/dist/esm/models/base_llm.js +3 -8
  223. package/dist/esm/models/chrome_prompt_llm.js +302 -0
  224. package/dist/esm/models/chrome_prompt_utils.js +241 -0
  225. package/dist/esm/models/gemini_llm_connection.js +6 -5
  226. package/dist/esm/models/google_llm.js +9 -4
  227. package/dist/esm/models/interactions_utils.js +2 -3
  228. package/dist/esm/models/registry.js +2 -0
  229. package/dist/esm/planners/base_planner.js +28 -0
  230. package/dist/esm/planners/built_in_planner.js +57 -0
  231. package/dist/esm/planners/plan_re_act_planner.js +145 -0
  232. package/dist/esm/plugins/_reflect_retry_utils.js +111 -0
  233. package/dist/esm/plugins/base_plugin.js +46 -61
  234. package/dist/esm/plugins/reflect_retry_model_plugin.js +250 -0
  235. package/dist/esm/plugins/reflect_retry_tool_plugin.js +254 -0
  236. package/dist/esm/runner/runner.js +35 -27
  237. package/dist/esm/sessions/database_session_service.js +58 -25
  238. package/dist/esm/sessions/db/operations.js +229 -22
  239. package/dist/esm/sessions/db/schema.js +111 -160
  240. package/dist/esm/sessions/registry.js +5 -1
  241. package/dist/esm/sessions/vertex_ai_session_service.js +1 -1
  242. package/dist/esm/telemetry/setup.js +1 -1
  243. package/dist/esm/telemetry/tracing.js +11 -1
  244. package/dist/esm/tools/agent_tool.js +4 -5
  245. package/dist/esm/tools/base_tool.js +11 -3
  246. package/dist/esm/tools/base_toolset.js +4 -4
  247. package/dist/esm/tools/built_in_tool.js +51 -0
  248. package/dist/esm/tools/enterprise_web_search_tool.js +3 -6
  249. package/dist/esm/tools/example_tool.js +1 -1
  250. package/dist/esm/tools/forwarding_artifact_service.js +18 -13
  251. package/dist/esm/tools/function_tool.js +6 -3
  252. package/dist/esm/tools/google_maps_grounding_tool.js +3 -6
  253. package/dist/esm/tools/google_search_tool.js +3 -6
  254. package/dist/esm/tools/load_artifacts_tool.js +48 -24
  255. package/dist/esm/tools/load_web_page.js +10 -170
  256. package/dist/esm/tools/mcp/load_mcp_resource_tool.js +34 -5
  257. package/dist/esm/tools/mcp/mcp_session_manager.js +14 -8
  258. package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +285 -3
  259. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +15 -1
  260. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/base_auth_credential_exchanger.js +43 -0
  261. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +93 -0
  262. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +10 -12
  263. package/dist/esm/tools/openapi_tool/common/common.js +112 -0
  264. package/dist/esm/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +11 -6
  265. package/dist/esm/tools/openapi_tool/openapi_spec_parser/operation_parser.js +81 -14
  266. package/dist/esm/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +146 -33
  267. package/dist/esm/tools/openapi_tool/openapi_toolset.js +14 -2
  268. package/dist/esm/tools/openapi_tool/rest_api_tool.js +105 -46
  269. package/dist/esm/tools/preload_memory_tool.js +1 -1
  270. package/dist/esm/tools/retrieval/base_retrieval_tool.js +33 -0
  271. package/dist/esm/tools/retrieval/files_retrieval.js +81 -0
  272. package/dist/esm/tools/retrieval/llama_index_retrieval.js +30 -0
  273. package/dist/esm/tools/skill/skill_toolset.js +2 -0
  274. package/dist/{web/context/base_context_compactor.js → esm/tools/tool_context.js} +8 -0
  275. package/dist/esm/tools/url_context_tool.js +3 -6
  276. package/dist/esm/tools/vertex_ai_search_tool.js +4 -8
  277. package/dist/esm/tools/vertex_rag_retrieval_tool.js +3 -10
  278. package/dist/{web/auth/base_auth_provider.js → esm/tools/webmcp/index.js} +3 -0
  279. package/dist/esm/tools/webmcp/webmcp_tool.js +131 -0
  280. package/dist/esm/tools/webmcp/webmcp_toolset.js +89 -0
  281. package/dist/{web/utils/crypto_shim.js → esm/tools/webmcp/webmcp_types.js} +10 -6
  282. package/dist/esm/utils/case_utils.js +49 -1
  283. package/dist/esm/utils/client_labels.js +65 -0
  284. package/dist/esm/utils/crypto_shim.js +14 -0
  285. package/dist/esm/utils/gemini_schema_util.js +102 -9
  286. package/dist/esm/utils/hash_utils.js +45 -0
  287. package/dist/esm/utils/live_connection_utils.js +11 -10
  288. package/dist/esm/utils/logger.js +14 -40
  289. package/dist/esm/utils/logger_browser.js +58 -0
  290. package/dist/esm/utils/logger_node.js +81 -0
  291. package/dist/esm/utils/model_name.js +15 -2
  292. package/dist/esm/utils/redact_inline_data.js +19 -0
  293. package/dist/esm/utils/redact_uri.js +15 -1
  294. package/dist/esm/utils/schema.js +1 -1
  295. package/dist/esm/utils/simple_zod_to_json.js +5 -0
  296. package/dist/{web/tools/load_web_page.js → esm/utils/ssrf_guard.js} +95 -107
  297. package/dist/esm/version.js +1 -1
  298. package/dist/esm/workflow/base_node.js +1 -1
  299. package/dist/esm/workflow/graph.js +1 -1
  300. package/dist/esm/workflow/nodes/node_tool.js +2 -11
  301. package/dist/esm/workflow/request_input.js +1 -1
  302. package/dist/esm/workflow/run_llm_agent_as_node.js +1 -1
  303. package/dist/esm/workflow/workflow.js +1 -1
  304. package/dist/types/a2a/a2a_event.d.ts +7 -10
  305. package/dist/types/a2a/a2a_remote_agent.d.ts +5 -0
  306. package/dist/types/a2a/a2a_remote_agent_utils.d.ts +25 -0
  307. package/dist/types/a2a/agent_card.d.ts +9 -0
  308. package/dist/types/a2a/agent_executor.d.ts +1 -1
  309. package/dist/types/a2a/agent_to_a2a.d.ts +2 -0
  310. package/dist/types/a2a/auth.d.ts +5 -1
  311. package/dist/types/a2a/executor_context.d.ts +7 -1
  312. package/dist/types/a2a/index.d.ts +1 -1
  313. package/dist/types/a2a/request_metadata.d.ts +22 -0
  314. package/dist/types/agents/base_agent.d.ts +19 -16
  315. package/dist/types/agents/context.d.ts +8 -0
  316. package/dist/types/agents/functions.d.ts +72 -6
  317. package/dist/types/agents/invocation_context.d.ts +11 -3
  318. package/dist/types/agents/llm_agent.d.ts +20 -7
  319. package/dist/types/agents/processors/agent_transfer_llm_request_processor.d.ts +16 -1
  320. package/dist/types/agents/processors/nl_planning_processor.d.ts +30 -0
  321. package/dist/types/agents/readonly_context.d.ts +4 -0
  322. package/dist/types/agents/run_config.d.ts +21 -8
  323. package/dist/types/artifacts/scoped_artifact_service.d.ts +13 -0
  324. package/dist/types/artifacts/session_artifact_service.d.ts +8 -1
  325. package/dist/types/auth/auth_credential.d.ts +22 -8
  326. package/dist/types/auth/auth_handler.d.ts +12 -1
  327. package/dist/types/auth/oauth2/oauth2_credential_refresher.d.ts +1 -1
  328. package/dist/types/auth/oauth2/oauth2_utils.d.ts +9 -0
  329. package/dist/types/auth/refresher/base_credential_refresher.d.ts +1 -1
  330. package/dist/types/code_executors/code_execution_utils.d.ts +1 -1
  331. package/dist/types/code_executors/container_code_executor.d.ts +89 -0
  332. package/dist/types/code_executors/docker_container.d.ts +79 -0
  333. package/dist/types/common.d.ts +37 -23
  334. package/dist/types/context/compaction_utils.d.ts +9 -1
  335. package/dist/types/errors/already_exists_error.d.ts +14 -0
  336. package/dist/types/errors/input_validation_error.d.ts +14 -0
  337. package/dist/types/errors/not_found_error.d.ts +14 -0
  338. package/dist/types/errors/session_not_found_error.d.ts +14 -0
  339. package/dist/types/errors/tool_execution_error.d.ts +36 -0
  340. package/dist/types/events/event_actions.d.ts +13 -0
  341. package/dist/types/examples/base_example_provider.d.ts +2 -2
  342. package/dist/types/examples/example.d.ts +75 -0
  343. package/dist/types/examples/example_util.d.ts +13 -2
  344. package/dist/types/examples/index.d.ts +18 -0
  345. package/dist/types/examples/vertex_ai_example_store.d.ts +7 -0
  346. package/dist/types/index.d.ts +31 -1
  347. package/dist/types/memory/memory_entry.d.ts +15 -0
  348. package/dist/types/memory/rag_memory_transcript.d.ts +55 -0
  349. package/dist/types/memory/vertex_ai_memory_bank_service.d.ts +9 -0
  350. package/dist/types/memory/vertex_ai_rag_api.d.ts +89 -0
  351. package/dist/types/memory/vertex_ai_rag_memory_service.d.ts +68 -0
  352. package/dist/types/models/chrome_prompt_llm.d.ts +210 -0
  353. package/dist/types/models/chrome_prompt_utils.d.ts +97 -0
  354. package/dist/types/models/google_llm.d.ts +8 -3
  355. package/dist/types/models/registry.d.ts +3 -2
  356. package/dist/types/planners/base_planner.d.ts +50 -0
  357. package/dist/types/planners/built_in_planner.d.ts +53 -0
  358. package/dist/types/planners/plan_re_act_planner.d.ts +21 -0
  359. package/dist/types/plugins/_reflect_retry_utils.d.ts +72 -0
  360. package/dist/types/plugins/base_plugin.d.ts +64 -62
  361. package/dist/types/plugins/logging_plugin.d.ts +3 -2
  362. package/dist/types/plugins/reflect_retry_model_plugin.d.ts +132 -0
  363. package/dist/types/plugins/reflect_retry_tool_plugin.d.ts +187 -0
  364. package/dist/types/runner/runner.d.ts +7 -8
  365. package/dist/types/sessions/database_session_service.d.ts +1 -1
  366. package/dist/types/sessions/db/operations.d.ts +13 -1
  367. package/dist/types/sessions/db/schema.d.ts +23 -9
  368. package/dist/types/skills/skill_registry.d.ts +8 -0
  369. package/dist/types/tools/base_tool.d.ts +11 -0
  370. package/dist/types/tools/base_toolset.d.ts +3 -4
  371. package/dist/types/tools/built_in_tool.d.ts +41 -0
  372. package/dist/types/tools/enterprise_web_search_tool.d.ts +4 -4
  373. package/dist/types/tools/forwarding_artifact_service.d.ts +23 -10
  374. package/dist/types/tools/function_tool.d.ts +42 -9
  375. package/dist/types/tools/google_maps_grounding_tool.d.ts +4 -4
  376. package/dist/types/tools/google_search_tool.d.ts +4 -4
  377. package/dist/types/tools/long_running_tool.d.ts +1 -1
  378. package/dist/types/tools/mcp/mcp_toolset.d.ts +11 -10
  379. package/dist/types/tools/openapi_tool/auth/auth_helpers.d.ts +115 -1
  380. package/dist/types/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.d.ts +31 -2
  381. package/dist/types/tools/openapi_tool/auth/credential_exchangers/base_auth_credential_exchanger.d.ts +35 -0
  382. package/dist/types/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.d.ts +54 -0
  383. package/dist/types/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.d.ts +0 -1
  384. package/dist/types/tools/openapi_tool/common/common.d.ts +60 -0
  385. package/dist/types/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.d.ts +7 -0
  386. package/dist/types/tools/openapi_tool/openapi_spec_parser/operation_parser.d.ts +56 -2
  387. package/dist/types/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.d.ts +73 -5
  388. package/dist/types/tools/openapi_tool/openapi_toolset.d.ts +11 -0
  389. package/dist/types/tools/openapi_tool/rest_api_tool.d.ts +42 -8
  390. package/dist/types/tools/preload_memory_tool.d.ts +1 -1
  391. package/dist/types/tools/resume_inputs.d.ts +25 -0
  392. package/dist/types/tools/retrieval/base_retrieval_tool.d.ts +21 -0
  393. package/dist/types/tools/retrieval/files_retrieval.d.ts +50 -0
  394. package/dist/types/tools/retrieval/llama_index_retrieval.d.ts +62 -0
  395. package/dist/types/tools/tool_context.d.ts +19 -0
  396. package/dist/types/tools/url_context_tool.d.ts +4 -4
  397. package/dist/types/tools/vertex_ai_search_tool.d.ts +4 -4
  398. package/dist/types/tools/vertex_rag_retrieval_tool.d.ts +13 -12
  399. package/dist/types/tools/webmcp/index.d.ts +12 -0
  400. package/dist/types/tools/webmcp/webmcp_tool.d.ts +47 -0
  401. package/dist/types/tools/webmcp/webmcp_toolset.d.ts +67 -0
  402. package/dist/types/tools/webmcp/webmcp_types.d.ts +69 -0
  403. package/dist/types/utils/case_utils.d.ts +36 -0
  404. package/dist/types/utils/client_labels.d.ts +33 -0
  405. package/dist/types/utils/crypto_shim.d.ts +16 -0
  406. package/dist/types/utils/gemini_schema_util.d.ts +18 -7
  407. package/dist/types/utils/hash_utils.d.ts +25 -0
  408. package/dist/types/utils/logger.d.ts +33 -3
  409. package/dist/types/utils/logger_browser.d.ts +28 -0
  410. package/dist/types/utils/logger_node.d.ts +20 -0
  411. package/dist/types/utils/model_name.d.ts +30 -2
  412. package/dist/types/utils/output_schema_utils.d.ts +3 -3
  413. package/dist/types/utils/redact_inline_data.d.ts +16 -0
  414. package/dist/types/utils/redact_uri.d.ts +12 -8
  415. package/dist/types/utils/ssrf_guard.d.ts +32 -0
  416. package/dist/types/version.d.ts +1 -1
  417. package/dist/web/index_web.js +337 -3
  418. package/dist/web/index_web.js.map +7 -0
  419. package/package.json +24 -15
  420. package/dist/web/a2a/a2a_event.js +0 -290
  421. package/dist/web/a2a/a2a_remote_agent.js +0 -200
  422. package/dist/web/a2a/a2a_remote_agent_run_processor.js +0 -189
  423. package/dist/web/a2a/a2a_remote_agent_utils.js +0 -141
  424. package/dist/web/a2a/agent_card.js +0 -373
  425. package/dist/web/a2a/agent_executor.js +0 -246
  426. package/dist/web/a2a/agent_to_a2a.js +0 -126
  427. package/dist/web/a2a/auth.js +0 -41
  428. package/dist/web/a2a/event_converter_utils.js +0 -242
  429. package/dist/web/a2a/event_processor_utils.js +0 -209
  430. package/dist/web/a2a/executor_context.js +0 -28
  431. package/dist/web/a2a/index.js +0 -20
  432. package/dist/web/a2a/metadata_converter_utils.js +0 -115
  433. package/dist/web/a2a/part_converter_utils.js +0 -201
  434. package/dist/web/agents/active_streaming_tool.js +0 -25
  435. package/dist/web/agents/base_agent.js +0 -462
  436. package/dist/web/agents/context.js +0 -146
  437. package/dist/web/agents/framework_function_calls.js +0 -34
  438. package/dist/web/agents/functions.js +0 -462
  439. package/dist/web/agents/instructions.js +0 -188
  440. package/dist/web/agents/invocation_context.js +0 -126
  441. package/dist/web/agents/live_request_queue.js +0 -151
  442. package/dist/web/agents/llm_agent.js +0 -1514
  443. package/dist/web/agents/loop_agent.js +0 -131
  444. package/dist/web/agents/parallel_agent.js +0 -122
  445. package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +0 -113
  446. package/dist/web/agents/processors/base_llm_processor.js +0 -21
  447. package/dist/web/agents/processors/basic_llm_request_processor.js +0 -84
  448. package/dist/web/agents/processors/code_execution_request_processor.js +0 -381
  449. package/dist/web/agents/processors/content_processor_utils.js +0 -432
  450. package/dist/web/agents/processors/content_request_processor.js +0 -73
  451. package/dist/web/agents/processors/context_compactor_request_processor.js +0 -78
  452. package/dist/web/agents/processors/identity_llm_request_processor.js +0 -59
  453. package/dist/web/agents/processors/instructions_llm_request_processor.js +0 -85
  454. package/dist/web/agents/processors/interactions_request_processor.js +0 -56
  455. package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +0 -393
  456. package/dist/web/agents/processors/request_input_llm_request_processor.js +0 -228
  457. package/dist/web/agents/processors/tool_filter_request_processor.js +0 -72
  458. package/dist/web/agents/readonly_context.js +0 -60
  459. package/dist/web/agents/routed_agent.js +0 -161
  460. package/dist/web/agents/run_config.js +0 -74
  461. package/dist/web/agents/sequential_agent.js +0 -141
  462. package/dist/web/agents/transcription_entry.js +0 -7
  463. package/dist/web/agents/user_input_request.js +0 -135
  464. package/dist/web/apps/app.js +0 -52
  465. package/dist/web/apps/resumability_config.js +0 -33
  466. package/dist/web/artifacts/base_artifact_service.js +0 -7
  467. package/dist/web/artifacts/file_artifact_service.js +0 -568
  468. package/dist/web/artifacts/gcs_artifact_service.js +0 -298
  469. package/dist/web/artifacts/in_memory_artifact_service.js +0 -172
  470. package/dist/web/artifacts/registry.js +0 -36
  471. package/dist/web/artifacts/scoped_artifact_service.js +0 -89
  472. package/dist/web/auth/auth_credential.js +0 -18
  473. package/dist/web/auth/auth_handler.js +0 -151
  474. package/dist/web/auth/auth_preprocessor.js +0 -184
  475. package/dist/web/auth/auth_provider_registry.js +0 -37
  476. package/dist/web/auth/auth_schemes.js +0 -36
  477. package/dist/web/auth/auth_tool.js +0 -7
  478. package/dist/web/auth/credential_response_binding.js +0 -91
  479. package/dist/web/auth/credential_service/in_memory_credential_service.js +0 -50
  480. package/dist/web/auth/credential_service/session_state_credential_service.js +0 -27
  481. package/dist/web/auth/exchanger/base_credential_exchanger.js +0 -16
  482. package/dist/web/auth/exchanger/credential_exchanger_registry.js +0 -35
  483. package/dist/web/auth/oauth2/oauth2_credential_exchanger.js +0 -194
  484. package/dist/web/auth/oauth2/oauth2_credential_refresher.js +0 -105
  485. package/dist/web/auth/oauth2/oauth2_discovery.js +0 -196
  486. package/dist/web/auth/oauth2/oauth2_utils.js +0 -105
  487. package/dist/web/auth/refresher/credential_refresher_registry.js +0 -44
  488. package/dist/web/code_executors/agent_engine_sandbox_code_executor.js +0 -284
  489. package/dist/web/code_executors/base_code_executor.js +0 -68
  490. package/dist/web/code_executors/built_in_code_executor.js +0 -50
  491. package/dist/web/code_executors/code_execution_utils.js +0 -131
  492. package/dist/web/code_executors/code_executor_context.js +0 -174
  493. package/dist/web/code_executors/unsafe_local_code_executor.js +0 -221
  494. package/dist/web/common.js +0 -452
  495. package/dist/web/context/agent_controlled_context_compactor.js +0 -76
  496. package/dist/web/context/anchored_context_compactor.js +0 -120
  497. package/dist/web/context/compaction_utils.js +0 -42
  498. package/dist/web/context/summarizers/base_summarizer.js +0 -7
  499. package/dist/web/context/summarizers/llm_summarizer.js +0 -91
  500. package/dist/web/context/token_based_context_compactor.js +0 -118
  501. package/dist/web/context/trajectory_thought_pruning_compactor.js +0 -47
  502. package/dist/web/context/truncating_context_compactor.js +0 -34
  503. package/dist/web/environment/base_environment.js +0 -71
  504. package/dist/web/environment/local_environment.js +0 -165
  505. package/dist/web/events/compacted_event.js +0 -51
  506. package/dist/web/events/event.js +0 -208
  507. package/dist/web/events/event_actions.js +0 -74
  508. package/dist/web/events/structured_events.js +0 -79
  509. package/dist/web/examples/base_example_provider.js +0 -32
  510. package/dist/web/examples/example.js +0 -7
  511. package/dist/web/examples/example_util.js +0 -83
  512. package/dist/web/features/feature_registry.js +0 -115
  513. package/dist/web/index.js +0 -57
  514. package/dist/web/integrations/agent_registry/agent_registry.js +0 -337
  515. package/dist/web/integrations/agent_registry/agent_registry_mcp_toolset.js +0 -120
  516. package/dist/web/integrations/agent_registry/helpers.js +0 -32
  517. package/dist/web/integrations/agent_registry/types.js +0 -20
  518. package/dist/web/memory/base_memory_service.js +0 -7
  519. package/dist/web/memory/in_memory_memory_service.js +0 -89
  520. package/dist/web/memory/memory_entry.js +0 -7
  521. package/dist/web/memory/vertex_ai_memory_bank_service.js +0 -496
  522. package/dist/web/models/apigee_llm.js +0 -227
  523. package/dist/web/models/base_llm.js +0 -78
  524. package/dist/web/models/base_llm_connection.js +0 -7
  525. package/dist/web/models/gemini_llm_connection.js +0 -183
  526. package/dist/web/models/google_llm.js +0 -396
  527. package/dist/web/models/interactions_utils.js +0 -745
  528. package/dist/web/models/llm_request.js +0 -57
  529. package/dist/web/models/llm_response.js +0 -48
  530. package/dist/web/models/registry.js +0 -100
  531. package/dist/web/models/routed_llm.js +0 -112
  532. package/dist/web/plugins/base_plugin.js +0 -305
  533. package/dist/web/plugins/global_instruction_plugin.js +0 -71
  534. package/dist/web/plugins/logging_plugin.js +0 -241
  535. package/dist/web/plugins/plugin_manager.js +0 -318
  536. package/dist/web/plugins/security_plugin.js +0 -148
  537. package/dist/web/runner/in_memory_runner.js +0 -50
  538. package/dist/web/runner/runner.js +0 -747
  539. package/dist/web/sessions/base_session_service.js +0 -123
  540. package/dist/web/sessions/database_session_service.js +0 -440
  541. package/dist/web/sessions/db/operations.js +0 -124
  542. package/dist/web/sessions/db/schema.js +0 -216
  543. package/dist/web/sessions/in_memory_session_service.js +0 -251
  544. package/dist/web/sessions/registry.js +0 -38
  545. package/dist/web/sessions/session.js +0 -23
  546. package/dist/web/sessions/state.js +0 -159
  547. package/dist/web/sessions/state_write_order.js +0 -74
  548. package/dist/web/sessions/vertex_ai_session_service.js +0 -546
  549. package/dist/web/skills/gcp_skill_registry.js +0 -80
  550. package/dist/web/skills/loader.js +0 -372
  551. package/dist/web/skills/prompt.js +0 -34
  552. package/dist/web/skills/skill.js +0 -67
  553. package/dist/web/skills/skill_registry.js +0 -7
  554. package/dist/web/telemetry/google_cloud.js +0 -99
  555. package/dist/web/telemetry/setup.js +0 -89
  556. package/dist/web/telemetry/tracing.js +0 -304
  557. package/dist/web/tools/agent_tool.js +0 -150
  558. package/dist/web/tools/base_tool.js +0 -116
  559. package/dist/web/tools/base_toolset.js +0 -62
  560. package/dist/web/tools/consolidate_context_tool.js +0 -55
  561. package/dist/web/tools/enterprise_web_search_tool.js +0 -60
  562. package/dist/web/tools/example_tool.js +0 -46
  563. package/dist/web/tools/exit_loop_tool.js +0 -47
  564. package/dist/web/tools/finish_task_tool.js +0 -92
  565. package/dist/web/tools/forwarding_artifact_service.js +0 -51
  566. package/dist/web/tools/function_tool.js +0 -151
  567. package/dist/web/tools/get_user_choice_tool.js +0 -27
  568. package/dist/web/tools/google_maps_grounding_tool.js +0 -59
  569. package/dist/web/tools/google_search_tool.js +0 -55
  570. package/dist/web/tools/load_artifacts_tool.js +0 -159
  571. package/dist/web/tools/load_memory_tool.js +0 -83
  572. package/dist/web/tools/long_running_tool.js +0 -58
  573. package/dist/web/tools/mcp/index.js +0 -11
  574. package/dist/web/tools/mcp/load_mcp_resource_tool.js +0 -111
  575. package/dist/web/tools/mcp/mcp_session_manager.js +0 -114
  576. package/dist/web/tools/mcp/mcp_tool.js +0 -47
  577. package/dist/web/tools/mcp/mcp_toolset.js +0 -144
  578. package/dist/web/tools/openapi_tool/auth/auth_helpers.js +0 -53
  579. package/dist/web/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +0 -62
  580. package/dist/web/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +0 -113
  581. package/dist/web/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +0 -242
  582. package/dist/web/tools/openapi_tool/openapi_spec_parser/operation_parser.js +0 -200
  583. package/dist/web/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +0 -98
  584. package/dist/web/tools/openapi_tool/openapi_toolset.js +0 -99
  585. package/dist/web/tools/openapi_tool/rest_api_tool.js +0 -247
  586. package/dist/web/tools/preload_memory_tool.js +0 -81
  587. package/dist/web/tools/request_input_tool.js +0 -29
  588. package/dist/web/tools/skill/list_skills_tool.js +0 -52
  589. package/dist/web/tools/skill/load_skill_resource_tool.js +0 -192
  590. package/dist/web/tools/skill/load_skill_tool.js +0 -96
  591. package/dist/web/tools/skill/run_skill_inline_script_tool.js +0 -191
  592. package/dist/web/tools/skill/run_skill_script_tool.js +0 -227
  593. package/dist/web/tools/skill/search_skills_tool.js +0 -84
  594. package/dist/web/tools/skill/skill_toolset.js +0 -185
  595. package/dist/web/tools/tool_confirmation.js +0 -43
  596. package/dist/web/tools/url_context_tool.js +0 -48
  597. package/dist/web/tools/vertex_ai_search_tool.js +0 -107
  598. package/dist/web/tools/vertex_rag_retrieval_tool.js +0 -40
  599. package/dist/web/utils/async_hooks_shim.js +0 -28
  600. package/dist/web/utils/async_queue.js +0 -88
  601. package/dist/web/utils/branch_trie.js +0 -16
  602. package/dist/web/utils/case_utils.js +0 -28
  603. package/dist/web/utils/client_labels.js +0 -70
  604. package/dist/web/utils/deprecated.js +0 -40
  605. package/dist/web/utils/env_aware_utils.js +0 -115
  606. package/dist/web/utils/error_utils.js +0 -101
  607. package/dist/web/utils/experimental.js +0 -54
  608. package/dist/web/utils/failover_utils.js +0 -100
  609. package/dist/web/utils/file_extension_utils.js +0 -55
  610. package/dist/web/utils/file_utils.js +0 -108
  611. package/dist/web/utils/gemini_schema_util.js +0 -177
  612. package/dist/web/utils/genai_schema_to_json.js +0 -80
  613. package/dist/web/utils/live_connection_utils.js +0 -257
  614. package/dist/web/utils/logger.js +0 -140
  615. package/dist/web/utils/model_name.js +0 -75
  616. package/dist/web/utils/object_notation_utils.js +0 -54
  617. package/dist/web/utils/optional_peer.js +0 -38
  618. package/dist/web/utils/output_schema_utils.js +0 -18
  619. package/dist/web/utils/partial_copy.js +0 -26
  620. package/dist/web/utils/redact_uri.js +0 -39
  621. package/dist/web/utils/schema.js +0 -167
  622. package/dist/web/utils/simple_zod_to_json.js +0 -134
  623. package/dist/web/utils/streaming_utils.js +0 -438
  624. package/dist/web/utils/task.js +0 -38
  625. package/dist/web/utils/variant_utils.js +0 -23
  626. package/dist/web/utils/vertex_ai_utils.js +0 -27
  627. package/dist/web/workflow/base_node.js +0 -215
  628. package/dist/web/workflow/branch_path.js +0 -77
  629. package/dist/web/workflow/dynamic_node_scheduler.js +0 -202
  630. package/dist/web/workflow/errors.js +0 -140
  631. package/dist/web/workflow/graph.js +0 -127
  632. package/dist/web/workflow/index.js +0 -80
  633. package/dist/web/workflow/node.js +0 -87
  634. package/dist/web/workflow/node_builders.js +0 -40
  635. package/dist/web/workflow/node_context.js +0 -236
  636. package/dist/web/workflow/node_error_event.js +0 -86
  637. package/dist/web/workflow/node_runner.js +0 -481
  638. package/dist/web/workflow/node_state.js +0 -43
  639. package/dist/web/workflow/node_status.js +0 -20
  640. package/dist/web/workflow/nodes/function_node.js +0 -221
  641. package/dist/web/workflow/nodes/join_node.js +0 -47
  642. package/dist/web/workflow/nodes/node_tool.js +0 -131
  643. package/dist/web/workflow/nodes/parallel_worker.js +0 -120
  644. package/dist/web/workflow/nodes/tool_node.js +0 -126
  645. package/dist/web/workflow/request_input.js +0 -36
  646. package/dist/web/workflow/retry_config.js +0 -43
  647. package/dist/web/workflow/run_llm_agent_as_node.js +0 -266
  648. package/dist/web/workflow/run_node_as_invocation.js +0 -170
  649. package/dist/web/workflow/schedule_dynamic_node.js +0 -26
  650. package/dist/web/workflow/trigger.js +0 -7
  651. package/dist/web/workflow/utils/graph_parser.js +0 -188
  652. package/dist/web/workflow/utils/graph_validation.js +0 -189
  653. package/dist/web/workflow/utils/hitl_utils.js +0 -239
  654. package/dist/web/workflow/utils/rehydration_utils.js +0 -342
  655. package/dist/web/workflow/utils/retry_utils.js +0 -82
  656. package/dist/web/workflow/utils/workflow_graph_utils.js +0 -115
  657. package/dist/web/workflow/workflow.js +0 -529
  658. /package/dist/{web/artifacts/session_artifact_service.js → esm/tools/resume_inputs.js} +0 -0
@@ -17,15 +17,37 @@ var __decorateClass = (decorators, target, key, kind) => {
17
17
  * SPDX-License-Identifier: Apache-2.0
18
18
  */
19
19
  import { experimental } from "../../utils/experimental.js";
20
+ import { openApiSchemaToGeminiSchema } from "../../utils/gemini_schema_util.js";
20
21
  import { BaseTool } from "../base_tool.js";
21
22
  import { applyCredential } from "./auth/auth_helpers.js";
22
23
  import {
23
24
  OperationParser
24
25
  } from "./openapi_spec_parser/operation_parser.js";
25
26
  import { ToolAuthHandler } from "./openapi_spec_parser/tool_auth_handler.js";
27
+ const MAX_TOOL_NAME_LENGTH = 60;
28
+ const SECURITY_SCHEME_TYPES = [
29
+ "apiKey",
30
+ "http",
31
+ "oauth2",
32
+ "openIdConnect"
33
+ ];
34
+ function readSchemeType(value) {
35
+ return typeof value === "object" && value !== null && "type" in value ? value.type : void 0;
36
+ }
37
+ __name(readSchemeType, "readSchemeType");
38
+ function isSecurityScheme(value) {
39
+ const type = readSchemeType(value);
40
+ return typeof type === "string" && SECURITY_SCHEME_TYPES.includes(type);
41
+ }
42
+ __name(isSecurityScheme, "isSecurityScheme");
43
+ function serializeCookieHeader(cookies) {
44
+ return Object.entries(cookies).map(([name, value]) => `${name}=${encodeURIComponent(value)}`).join("; ");
45
+ }
46
+ __name(serializeCookieHeader, "serializeCookieHeader");
26
47
  let RestApiTool = class extends BaseTool {
27
48
  constructor(name, description, endpoint, operation, authScheme, authCredential, options = {}) {
28
- super({ name, description });
49
+ var _a;
50
+ super({ name: name.slice(0, MAX_TOOL_NAME_LENGTH), description });
29
51
  this.endpoint = endpoint;
30
52
  this.operation = operation;
31
53
  this.authScheme = authScheme;
@@ -34,7 +56,7 @@ let RestApiTool = class extends BaseTool {
34
56
  this.authCredential = authCredential;
35
57
  this.headerProvider = options.headerProvider;
36
58
  this.credentialKey = options.credentialKey;
37
- this.operationParser = new OperationParser(operation, options);
59
+ this.operationParser = (_a = options.operationParser) != null ? _a : new OperationParser(operation, options);
38
60
  }
39
61
  configureAuthScheme(authScheme) {
40
62
  this.authScheme = authScheme;
@@ -46,14 +68,16 @@ let RestApiTool = class extends BaseTool {
46
68
  this.credentialKey = credentialKey;
47
69
  }
48
70
  _getDeclaration() {
49
- const schema = this.operationParser.getJsonSchema();
50
71
  return {
51
72
  name: this.name,
52
73
  description: this.description,
53
- parameters: schema
74
+ parameters: openApiSchemaToGeminiSchema(
75
+ this.operationParser.getJsonSchema()
76
+ )
54
77
  };
55
78
  }
56
79
  async runAsync(request) {
80
+ var _a;
57
81
  const context = request.toolContext;
58
82
  const args = request.args;
59
83
  const authHandler = ToolAuthHandler.fromToolContext(
@@ -75,7 +99,8 @@ let RestApiTool = class extends BaseTool {
75
99
  url: initialUrl,
76
100
  headers,
77
101
  body: parsedBody,
78
- bodyData
102
+ bodyData,
103
+ cookies
79
104
  } = prepareRequestParams(
80
105
  this.endpoint,
81
106
  this.operationParser.getParameters(),
@@ -91,30 +116,36 @@ let RestApiTool = class extends BaseTool {
91
116
  initialUrl,
92
117
  headers,
93
118
  credential,
94
- this.authScheme
119
+ (_a = authResult.authScheme) != null ? _a : this.authScheme
95
120
  );
96
121
  if (this.headerProvider) {
97
122
  const providerHeaders = this.headerProvider(context);
98
123
  Object.assign(headers, providerHeaders);
99
124
  }
100
- try {
101
- const response = await globalThis.fetch(url, {
102
- method,
103
- headers,
104
- // eslint-disable-next-line no-undef
105
- body
106
- });
107
- const contentType = response.headers.get("content-type");
108
- if (contentType && contentType.includes("application/json")) {
109
- return await response.json();
110
- } else {
111
- return await response.text();
112
- }
113
- } catch (error) {
125
+ const hasCookieHeader = Object.keys(headers).some(
126
+ (header) => header.toLowerCase() === "cookie"
127
+ );
128
+ if (Object.keys(cookies).length > 0 && !hasCookieHeader) {
129
+ headers["Cookie"] = serializeCookieHeader(cookies);
130
+ }
131
+ const response = await globalThis.fetch(url, {
132
+ method,
133
+ headers,
134
+ // eslint-disable-next-line no-undef
135
+ body
136
+ });
137
+ if (response.status >= 400) {
138
+ const errorDetails = await response.text();
114
139
  return {
115
- error: `Failed to execute API call: ${error.message}`
140
+ error: `Tool ${this.name} execution failed. Analyze this execution error and your inputs. Retry with adjustments if applicable. But make sure don't retry more than 3 times. Execution Error: ${errorDetails}`
116
141
  };
117
142
  }
143
+ const text = await response.text();
144
+ try {
145
+ return JSON.parse(text);
146
+ } catch {
147
+ return { text };
148
+ }
118
149
  }
119
150
  };
120
151
  __name(RestApiTool, "RestApiTool");
@@ -148,6 +179,7 @@ __name(encodePathParamValue, "encodePathParamValue");
148
179
  function prepareRequestParams(endpoint, parameters, args) {
149
180
  const headers = {};
150
181
  const queryParams = new URLSearchParams();
182
+ const cookies = {};
151
183
  let body = void 0;
152
184
  const paramsMap = new Map(parameters.map((p) => [p.name, p]));
153
185
  const pathParams = {};
@@ -163,9 +195,13 @@ function prepareRequestParams(endpoint, parameters, args) {
163
195
  String(argValue)
164
196
  );
165
197
  } else if (location === "query") {
166
- queryParams.append(originalName, String(argValue));
198
+ if (argValue !== void 0 && argValue !== null && argValue !== "") {
199
+ queryParams.append(originalName, String(argValue));
200
+ }
167
201
  } else if (location === "header") {
168
202
  headers[originalName] = String(argValue);
203
+ } else if (location === "cookie") {
204
+ cookies[originalName] = String(argValue);
169
205
  } else if (location === "body") {
170
206
  if (originalName === "body" || originalName === "array" || originalName === "") {
171
207
  body = argValue;
@@ -178,7 +214,8 @@ function prepareRequestParams(endpoint, parameters, args) {
178
214
  /\{([^{}]+)\}/g,
179
215
  (placeholder, name) => Object.hasOwn(pathParams, name) ? pathParams[name] : placeholder
180
216
  );
181
- let url = `${endpoint.baseUrl}${resolvedPath}`;
217
+ const baseUrl = endpoint.baseUrl.endsWith("/") ? endpoint.baseUrl.slice(0, -1) : endpoint.baseUrl;
218
+ let url = `${baseUrl}${resolvedPath}`;
182
219
  const urlParts = url.split("?");
183
220
  if (urlParts.length > 1) {
184
221
  const pathQueryParams = new URLSearchParams(urlParts[1]);
@@ -191,34 +228,39 @@ function prepareRequestParams(endpoint, parameters, args) {
191
228
  if (queryString) {
192
229
  url += `?${queryString}`;
193
230
  }
194
- return { url, headers, body, bodyData };
231
+ return { url, headers, body, bodyData, cookies };
195
232
  }
196
233
  __name(prepareRequestParams, "prepareRequestParams");
234
+ function isRawBody(value) {
235
+ return typeof value === "string" || ArrayBuffer.isView(value) || value instanceof ArrayBuffer || value instanceof Blob;
236
+ }
237
+ __name(isRawBody, "isRawBody");
197
238
  function prepareRequestBody(requestBody, body, bodyData, headers) {
198
239
  const finalData = body !== void 0 ? body : Object.keys(bodyData).length > 0 ? bodyData : void 0;
199
240
  if (requestBody && "content" in requestBody) {
200
241
  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
- }
242
+ const mimeType = Object.keys(content)[0];
243
+ if (mimeType && finalData !== void 0) {
244
+ if (mimeType === "application/json" || mimeType.endsWith("+json")) {
245
+ headers["Content-Type"] = mimeType;
246
+ return typeof finalData === "string" ? finalData : JSON.stringify(finalData);
247
+ } else if (mimeType === "application/x-www-form-urlencoded") {
248
+ return new URLSearchParams(finalData);
249
+ } else if (mimeType === "multipart/form-data") {
250
+ const formData = new FormData();
251
+ if (typeof finalData === "object" && finalData !== null) {
252
+ for (const [key, value] of Object.entries(finalData)) {
253
+ formData.append(key, String(value));
214
254
  }
215
- return formData;
216
- } else if (mimeType === "text/plain") {
217
- headers["Content-Type"] = mimeType;
218
- return String(finalData);
219
255
  }
256
+ return formData;
257
+ } else if (mimeType === "application/octet-stream") {
258
+ headers["Content-Type"] = mimeType;
259
+ return isRawBody(finalData) ? finalData : String(finalData);
260
+ } else if (mimeType === "text/plain") {
261
+ headers["Content-Type"] = mimeType;
262
+ return String(finalData);
220
263
  }
221
- break;
222
264
  }
223
265
  } else if (finalData !== void 0) {
224
266
  headers["Content-Type"] = "application/json";
@@ -228,20 +270,37 @@ function prepareRequestBody(requestBody, body, bodyData, headers) {
228
270
  }
229
271
  __name(prepareRequestBody, "prepareRequestBody");
230
272
  function createRestApiTool(parsed, options = {}) {
273
+ var _a, _b;
274
+ const operationParser = parsed.parameters ? OperationParser.load(
275
+ parsed.operation,
276
+ parsed.parameters,
277
+ parsed.returnValue
278
+ ) : new OperationParser(parsed.operation, options);
231
279
  return new RestApiTool(
232
- parsed.name,
233
- parsed.description,
280
+ (_a = parsed.name) != null ? _a : operationParser.getFunctionName(),
281
+ (_b = parsed.description) != null ? _b : operationParser.getDescription(),
234
282
  parsed.endpoint,
235
283
  parsed.operation,
236
284
  parsed.authScheme,
237
- void 0,
238
- options
285
+ parsed.authCredential,
286
+ { ...options, operationParser }
239
287
  );
240
288
  }
241
289
  __name(createRestApiTool, "createRestApiTool");
290
+ function createRestApiToolFromJson(parsedOperationJson) {
291
+ const parsed = JSON.parse(parsedOperationJson);
292
+ if (parsed.authScheme && !isSecurityScheme(parsed.authScheme)) {
293
+ throw new Error(
294
+ `Unsupported security scheme type: ${JSON.stringify(readSchemeType(parsed.authScheme))}. Expected one of: ${SECURITY_SCHEME_TYPES.join(", ")}.`
295
+ );
296
+ }
297
+ return createRestApiTool(parsed);
298
+ }
299
+ __name(createRestApiToolFromJson, "createRestApiToolFromJson");
242
300
  export {
243
301
  RestApiTool,
244
302
  createRestApiTool,
303
+ createRestApiToolFromJson,
245
304
  prepareRequestBody,
246
305
  prepareRequestParams
247
306
  };
@@ -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
+ };
@@ -74,7 +74,9 @@ let SkillToolset = class extends BaseToolset {
74
74
  return [...this.tools, ...dynamicTools];
75
75
  }
76
76
  async close() {
77
+ var _a, _b;
77
78
  this.fetchedSkillCache.clear();
79
+ await ((_b = (_a = this.registry) == null ? void 0 : _a.close) == null ? void 0 : _b.call(_a));
78
80
  }
79
81
  getSkill(name) {
80
82
  return this.skills[name];
@@ -5,3 +5,11 @@ const require = topLevelCreateRequire(import.meta.url);
5
5
  * Copyright 2026 Google LLC
6
6
  * SPDX-License-Identifier: Apache-2.0
7
7
  */
8
+ import {
9
+ Context,
10
+ Context as Context2
11
+ } from "../agents/context.js";
12
+ export {
13
+ Context as CallbackContext,
14
+ Context2 as ToolContext
15
+ };
@@ -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
  }) {
@@ -7,8 +7,8 @@ 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 { BaseTool } from "./base_tool.js";
11
- const _VertexRagRetrievalTool = class _VertexRagRetrievalTool extends BaseTool {
10
+ import { BuiltInTool } from "./built_in_tool.js";
11
+ const _VertexRagRetrievalTool = class _VertexRagRetrievalTool extends BuiltInTool {
12
12
  constructor(config) {
13
13
  super({
14
14
  name: "vertex_rag_retrieval",
@@ -16,14 +16,7 @@ const _VertexRagRetrievalTool = class _VertexRagRetrievalTool extends BaseTool {
16
16
  });
17
17
  this.vertexRagStore = config;
18
18
  }
19
- /**
20
- * This tool is executed server-side by the Vertex AI RAG Engine.
21
- * Local execution is not required.
22
- */
23
- runAsync() {
24
- return Promise.resolve();
25
- }
26
- async processLlmRequest({
19
+ async applyBuiltInConfig({
27
20
  llmRequest
28
21
  }) {
29
22
  llmRequest.config = llmRequest.config || {};
@@ -5,3 +5,6 @@ const require = topLevelCreateRequire(import.meta.url);
5
5
  * Copyright 2026 Google LLC
6
6
  * SPDX-License-Identifier: Apache-2.0
7
7
  */
8
+ export * from "./webmcp_tool.js";
9
+ export * from "./webmcp_toolset.js";
10
+ export * from "./webmcp_types.js";
@@ -0,0 +1,131 @@
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 { toGeminiSchema } from "../../utils/gemini_schema_util.js";
12
+ import { logger } from "../../utils/logger.js";
13
+ import { BaseTool } from "../base_tool.js";
14
+ import {
15
+ getModelContext
16
+ } from "./webmcp_types.js";
17
+ const argEncodingByContext = /* @__PURE__ */ new WeakMap();
18
+ function isArgParseFailure(value) {
19
+ var _a, _b;
20
+ let text = "";
21
+ if (typeof value === "string") {
22
+ text = value;
23
+ } else if (value && typeof value === "object") {
24
+ const candidate = value;
25
+ text = String((_b = (_a = candidate.error) != null ? _a : candidate.message) != null ? _b : "");
26
+ }
27
+ return /failed to parse input arguments|could not parse .*arguments/i.test(
28
+ text
29
+ );
30
+ }
31
+ __name(isArgParseFailure, "isArgParseFailure");
32
+ const _WebMCPTool = class _WebMCPTool extends BaseTool {
33
+ constructor(params) {
34
+ var _a, _b;
35
+ super({
36
+ name: (_a = params.name) != null ? _a : params.tool.name,
37
+ description: (_b = params.tool.description) != null ? _b : ""
38
+ });
39
+ this.webmcpTool = params.tool;
40
+ this.doc = params.document;
41
+ }
42
+ /**
43
+ * The tool's JSON Schema as an object.
44
+ *
45
+ * `inputSchema` is specified as an object, but a browser handing back a JSON
46
+ * string would otherwise convert to a parameterless declaration, leaving the
47
+ * model no argument names to fill in — it then calls the tool with `{}`.
48
+ */
49
+ resolveInputSchema() {
50
+ const raw = this.webmcpTool.inputSchema;
51
+ if (raw == null) return void 0;
52
+ if (typeof raw === "string") {
53
+ try {
54
+ const parsed = JSON.parse(raw);
55
+ return typeof parsed === "object" && parsed !== null ? parsed : void 0;
56
+ } catch {
57
+ logger.warn(
58
+ `WebMCP tool '${this.webmcpTool.name}' has an inputSchema string that is not valid JSON; exposing it with no parameters.`
59
+ );
60
+ return void 0;
61
+ }
62
+ }
63
+ if (typeof raw === "object") return raw;
64
+ return void 0;
65
+ }
66
+ _getDeclaration() {
67
+ var _a;
68
+ const schema = this.resolveInputSchema();
69
+ const parameters = schema ? (_a = toGeminiSchema(schema)) != null ? _a : { type: Type.OBJECT, properties: {} } : { type: Type.OBJECT, properties: {} };
70
+ if (schema && !parameters.properties) {
71
+ logger.warn(
72
+ `WebMCP tool '${this.webmcpTool.name}' declared an inputSchema that produced no parameters; the model will be unable to pass arguments.`
73
+ );
74
+ }
75
+ return {
76
+ name: this.name,
77
+ description: this.description,
78
+ parameters
79
+ };
80
+ }
81
+ async checkRequireConfirmation() {
82
+ var _a;
83
+ return !!((_a = this.webmcpTool.annotations) == null ? void 0 : _a.consequentialHint);
84
+ }
85
+ async runAsync(request) {
86
+ var _a, _b;
87
+ const modelContext = getModelContext(this.doc);
88
+ if (!modelContext) {
89
+ throw new Error(
90
+ "document.modelContext is unavailable, so WebMCP tools cannot be executed. WebMCP requires a browser with the API enabled."
91
+ );
92
+ }
93
+ const args = (_a = request.args) != null ? _a : {};
94
+ const signal = (_b = request.toolContext) == null ? void 0 : _b.abortSignal;
95
+ const options = signal ? { signal } : void 0;
96
+ const invoke = /* @__PURE__ */ __name((encoding) => modelContext.executeTool(
97
+ this.webmcpTool,
98
+ encoding === "json-string" ? JSON.stringify(args) : args,
99
+ options
100
+ ), "invoke");
101
+ const known = argEncodingByContext.get(modelContext);
102
+ if (known) {
103
+ return await invoke(known);
104
+ }
105
+ let firstResult;
106
+ try {
107
+ firstResult = await invoke("object");
108
+ if (!isArgParseFailure(firstResult)) {
109
+ argEncodingByContext.set(modelContext, "object");
110
+ return firstResult;
111
+ }
112
+ } catch (err) {
113
+ if (!isArgParseFailure(err)) throw err;
114
+ firstResult = err;
115
+ }
116
+ const retried = await invoke("json-string");
117
+ if (isArgParseFailure(retried)) {
118
+ return firstResult;
119
+ }
120
+ argEncodingByContext.set(modelContext, "json-string");
121
+ logger.debug(
122
+ "This browser expects JSON-string WebMCP tool arguments; using that encoding."
123
+ );
124
+ return retried;
125
+ }
126
+ };
127
+ __name(_WebMCPTool, "WebMCPTool");
128
+ let WebMCPTool = _WebMCPTool;
129
+ export {
130
+ WebMCPTool
131
+ };