@google/adk 2.3.0 → 2.5.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 (396) hide show
  1. package/dist/cjs/a2a/a2a_remote_agent.js +17 -2
  2. package/dist/cjs/a2a/a2a_remote_agent_utils.js +8 -4
  3. package/dist/cjs/a2a/agent_card.js +5 -81
  4. package/dist/cjs/a2a/agent_to_a2a.js +7 -0
  5. package/dist/cjs/a2a/event_converter_utils.js +10 -3
  6. package/dist/cjs/agents/agent_engine_client.js +399 -0
  7. package/dist/cjs/agents/base_agent.js +127 -68
  8. package/dist/cjs/agents/functions.js +64 -59
  9. package/dist/cjs/agents/instructions.js +8 -6
  10. package/dist/cjs/agents/invocation_context.js +2 -2
  11. package/dist/cjs/agents/llm_agent.js +124 -101
  12. package/dist/cjs/agents/processors/basic_llm_request_processor.js +1 -1
  13. package/dist/cjs/agents/processors/code_execution_request_processor.js +8 -0
  14. package/dist/cjs/agents/processors/content_processor_utils.js +72 -17
  15. package/dist/cjs/agents/processors/content_request_processor.js +51 -2
  16. package/dist/cjs/agents/processors/context_compactor_request_processor.js +5 -1
  17. package/dist/cjs/agents/processors/instructions_llm_request_processor.js +1 -1
  18. package/dist/cjs/agents/processors/nl_planning_processor.js +13 -3
  19. package/dist/cjs/artifacts/file_artifact_service.js +1 -1
  20. package/dist/cjs/cli/cli_eval.js +884 -17
  21. package/dist/cjs/cli/utils/cleanup.js +84 -0
  22. package/dist/cjs/cli/utils/envs.js +33 -2
  23. package/dist/cjs/cli/utils/evals.js +75 -8
  24. package/dist/cjs/cli/utils/logs.js +134 -15
  25. package/dist/cjs/cli/utils/path_validation.js +83 -0
  26. package/dist/cjs/code_executors/container_code_executor.js +171 -38
  27. package/dist/cjs/code_executors/unsafe_local_code_executor.js +6 -1
  28. package/dist/cjs/common.js +59 -32
  29. package/dist/cjs/context/compaction_utils.js +19 -0
  30. package/dist/cjs/errors/input_validation_error.js +3 -2
  31. package/dist/cjs/events/event.js +7 -3
  32. package/dist/cjs/features/feature_registry.js +5 -0
  33. package/dist/cjs/index.js +34 -12
  34. package/dist/cjs/models/google_llm.js +33 -2
  35. package/dist/cjs/models/interactions_utils.js +3 -0
  36. package/dist/cjs/plugins/base_plugin.js +54 -40
  37. package/dist/cjs/plugins/plugin_manager.js +27 -0
  38. package/dist/cjs/runner/runner.js +306 -189
  39. package/dist/cjs/sessions/base_session_service.js +15 -12
  40. package/dist/cjs/sessions/database_session_service.js +232 -38
  41. package/dist/cjs/sessions/db/operations.js +70 -1
  42. package/dist/cjs/sessions/db/schema.js +4 -0
  43. package/dist/cjs/sessions/in_memory_session_service.js +2 -2
  44. package/dist/cjs/sessions/stale_session_error.js +59 -0
  45. package/dist/cjs/sessions/vertex_ai_session_service.js +11 -3
  46. package/dist/cjs/skills/loader.js +76 -41
  47. package/dist/cjs/telemetry/api/instrumentation.js +632 -0
  48. package/dist/cjs/telemetry/api/internal/common/accumulators.js +169 -0
  49. package/dist/cjs/telemetry/api/internal/common/attributes.js +131 -0
  50. package/dist/cjs/telemetry/api/internal/common/config.js +159 -0
  51. package/dist/cjs/telemetry/api/internal/common/error.js +98 -0
  52. package/dist/cjs/telemetry/api/internal/common/finish_reason.js +63 -0
  53. package/dist/cjs/telemetry/api/internal/common/genai_messages.js +217 -0
  54. package/dist/cjs/telemetry/api/internal/common/http_exchange.js +169 -0
  55. package/dist/cjs/telemetry/api/internal/common/provider_name.js +87 -0
  56. package/dist/cjs/telemetry/api/internal/common/redaction.js +148 -0
  57. package/dist/cjs/telemetry/api/internal/common/serialization.js +58 -0
  58. package/dist/cjs/telemetry/api/internal/common/token_usage.js +118 -0
  59. package/dist/cjs/telemetry/api/internal/logs/inference.js +50 -0
  60. package/dist/cjs/telemetry/api/internal/logs/logger.js +46 -0
  61. package/dist/cjs/telemetry/api/internal/logs/mcp.js +141 -0
  62. package/dist/cjs/telemetry/api/internal/metrics/agent.js +128 -0
  63. package/dist/cjs/telemetry/api/internal/metrics/inference_start_hook.js +56 -0
  64. package/dist/cjs/telemetry/api/internal/metrics/meters.js +189 -0
  65. package/dist/cjs/telemetry/api/internal/metrics/tool.js +147 -0
  66. package/dist/cjs/telemetry/api/internal/metrics/workflow.js +132 -0
  67. package/dist/cjs/telemetry/api/internal/trace/agent.js +52 -0
  68. package/dist/cjs/telemetry/api/internal/trace/compaction.js +78 -0
  69. package/dist/cjs/telemetry/api/internal/trace/inference.js +132 -0
  70. package/dist/cjs/telemetry/api/internal/trace/live.js +52 -0
  71. package/dist/cjs/telemetry/api/internal/trace/node.js +73 -0
  72. package/dist/cjs/telemetry/api/internal/trace/propagation.js +67 -0
  73. package/dist/cjs/telemetry/api/internal/trace/tool.js +122 -0
  74. package/dist/cjs/telemetry/api/internal/trace/tracer.js +77 -0
  75. package/dist/cjs/telemetry/api/internal/trace/workflow.js +77 -0
  76. package/dist/cjs/telemetry/export/agent_engine.js +90 -0
  77. package/dist/cjs/telemetry/export/agent_runtime.js +73 -0
  78. package/dist/cjs/telemetry/export/google_cloud.js +763 -0
  79. package/dist/cjs/telemetry/export/request_driven_metric_reader.js +303 -0
  80. package/dist/cjs/telemetry/{setup.js → export/setup.js} +72 -6
  81. package/dist/cjs/tools/agent_tool.js +9 -1
  82. package/dist/cjs/tools/apihub_tool/apihub_toolset.js +18 -23
  83. package/dist/cjs/tools/application_integration_tool/application_integration_toolset.js +109 -43
  84. package/dist/cjs/tools/application_integration_tool/clients/connections_client.js +222 -114
  85. package/dist/cjs/tools/application_integration_tool/clients/integration_client.js +34 -14
  86. package/dist/cjs/tools/application_integration_tool/integration_connector_tool.js +175 -0
  87. package/dist/cjs/tools/base_toolset.js +1 -1
  88. package/dist/cjs/tools/computer_use/base_computer.js +125 -0
  89. package/dist/cjs/tools/computer_use/computer_use_actions.js +502 -0
  90. package/dist/cjs/tools/computer_use/computer_use_tool.js +244 -0
  91. package/dist/cjs/tools/computer_use/computer_use_toolset.js +360 -0
  92. package/dist/cjs/tools/function_tool.js +15 -5
  93. package/dist/cjs/tools/google_api_tool/google_api_tool.js +4 -1
  94. package/dist/cjs/tools/google_api_tool/google_api_toolset.js +174 -0
  95. package/dist/cjs/tools/google_api_tool/google_api_toolsets.js +124 -0
  96. package/dist/cjs/tools/google_api_tool/googleapi_to_openapi_converter.js +5 -3
  97. package/dist/cjs/tools/google_api_tool/index.js +20 -23
  98. package/dist/cjs/tools/load_artifacts_tool.js +27 -11
  99. package/dist/cjs/tools/load_memory_tool.js +14 -15
  100. package/dist/cjs/tools/mcp/mcp_session_manager.js +23 -3
  101. package/dist/cjs/tools/mcp/mcp_tool.js +7 -3
  102. package/dist/cjs/tools/mcp/mcp_toolset.js +19 -20
  103. package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +30 -29
  104. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +4 -4
  105. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +20 -6
  106. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/operation_parser.js +17 -6
  107. package/dist/cjs/tools/openapi_tool/openapi_toolset.js +7 -13
  108. package/dist/cjs/tools/openapi_tool/rest_api_tool.js +57 -10
  109. package/dist/cjs/tools/skill/load_skill_resource_tool.js +7 -0
  110. package/dist/cjs/tools/skill/load_skill_tool.js +3 -0
  111. package/dist/cjs/tools/skill/run_skill_script_tool.js +12 -2
  112. package/dist/cjs/tools/toolbox_toolset.js +193 -0
  113. package/dist/cjs/tools/webmcp/webmcp_toolset.js +1 -14
  114. package/dist/cjs/utils/async_queue.js +37 -3
  115. package/dist/cjs/utils/client_labels.js +17 -2
  116. package/dist/cjs/utils/env_aware_utils.js +13 -7
  117. package/dist/cjs/utils/error_utils.js +40 -2
  118. package/dist/cjs/utils/failover_utils.js +11 -10
  119. package/dist/cjs/utils/gemini_schema_util.js +145 -14
  120. package/dist/cjs/utils/id_provider.js +63 -0
  121. package/dist/cjs/utils/logger_node.js +4 -0
  122. package/dist/cjs/utils/model_name.js +15 -0
  123. package/dist/cjs/utils/output_schema_utils.js +5 -2
  124. package/dist/cjs/utils/simple_zod_to_json.js +13 -31
  125. package/dist/cjs/utils/ssrf_guard.js +46 -16
  126. package/dist/cjs/utils/task.js +1 -1
  127. package/dist/cjs/version.js +1 -1
  128. package/dist/cjs/workflow/index.js +2 -0
  129. package/dist/cjs/workflow/node_runner.js +24 -80
  130. package/dist/cjs/workflow/nodes/parallel_worker.js +18 -7
  131. package/dist/cjs/workflow/run_llm_agent_as_node.js +19 -14
  132. package/dist/cjs/workflow/utils/retry_utils.js +2 -2
  133. package/dist/cjs/workflow/workflow.js +12 -12
  134. package/dist/esm/a2a/a2a_remote_agent.js +23 -3
  135. package/dist/esm/a2a/a2a_remote_agent_utils.js +8 -4
  136. package/dist/esm/a2a/agent_card.js +5 -83
  137. package/dist/esm/a2a/agent_to_a2a.js +7 -0
  138. package/dist/esm/a2a/event_converter_utils.js +10 -3
  139. package/dist/esm/agents/agent_engine_client.js +382 -0
  140. package/dist/esm/agents/base_agent.js +127 -72
  141. package/dist/esm/agents/functions.js +69 -63
  142. package/dist/esm/agents/instructions.js +8 -6
  143. package/dist/esm/agents/invocation_context.js +2 -2
  144. package/dist/esm/agents/llm_agent.js +130 -106
  145. package/dist/esm/agents/processors/basic_llm_request_processor.js +1 -1
  146. package/dist/esm/agents/processors/code_execution_request_processor.js +8 -0
  147. package/dist/esm/agents/processors/content_processor_utils.js +72 -17
  148. package/dist/esm/agents/processors/content_request_processor.js +51 -2
  149. package/dist/esm/agents/processors/context_compactor_request_processor.js +5 -1
  150. package/dist/esm/agents/processors/instructions_llm_request_processor.js +1 -1
  151. package/dist/esm/agents/processors/nl_planning_processor.js +13 -3
  152. package/dist/esm/artifacts/file_artifact_service.js +1 -1
  153. package/dist/esm/cli/cli_eval.js +880 -17
  154. package/dist/esm/cli/utils/cleanup.js +56 -0
  155. package/dist/esm/cli/utils/envs.js +33 -2
  156. package/dist/esm/cli/utils/evals.js +74 -8
  157. package/dist/esm/cli/utils/logs.js +132 -13
  158. package/dist/esm/cli/utils/path_validation.js +45 -0
  159. package/dist/esm/code_executors/container_code_executor.js +171 -38
  160. package/dist/esm/code_executors/unsafe_local_code_executor.js +6 -1
  161. package/dist/esm/common.js +59 -19
  162. package/dist/esm/context/compaction_utils.js +19 -0
  163. package/dist/esm/errors/input_validation_error.js +3 -2
  164. package/dist/esm/events/event.js +7 -3
  165. package/dist/esm/features/feature_registry.js +5 -0
  166. package/dist/esm/index.js +36 -10
  167. package/dist/esm/models/google_llm.js +33 -2
  168. package/dist/esm/models/interactions_utils.js +3 -0
  169. package/dist/esm/plugins/base_plugin.js +54 -40
  170. package/dist/esm/plugins/plugin_manager.js +27 -0
  171. package/dist/esm/runner/runner.js +310 -192
  172. package/dist/esm/sessions/base_session_service.js +13 -11
  173. package/dist/esm/sessions/database_session_service.js +231 -38
  174. package/dist/esm/sessions/db/operations.js +70 -1
  175. package/dist/esm/sessions/db/schema.js +4 -0
  176. package/dist/esm/sessions/in_memory_session_service.js +2 -2
  177. package/dist/esm/sessions/stale_session_error.js +31 -0
  178. package/dist/esm/sessions/vertex_ai_session_service.js +11 -3
  179. package/dist/esm/skills/loader.js +76 -41
  180. package/dist/esm/telemetry/api/instrumentation.js +655 -0
  181. package/dist/esm/telemetry/api/internal/common/accumulators.js +139 -0
  182. package/dist/esm/telemetry/api/internal/common/attributes.js +94 -0
  183. package/dist/esm/telemetry/api/internal/common/config.js +128 -0
  184. package/dist/esm/telemetry/api/internal/common/error.js +69 -0
  185. package/dist/esm/telemetry/api/internal/common/finish_reason.js +35 -0
  186. package/dist/esm/telemetry/api/internal/common/genai_messages.js +188 -0
  187. package/dist/esm/telemetry/api/internal/common/http_exchange.js +142 -0
  188. package/dist/esm/telemetry/api/internal/common/provider_name.js +59 -0
  189. package/dist/esm/telemetry/api/internal/common/redaction.js +121 -0
  190. package/dist/esm/telemetry/api/internal/common/serialization.js +30 -0
  191. package/dist/esm/telemetry/api/internal/common/token_usage.js +85 -0
  192. package/dist/esm/telemetry/api/internal/logs/inference.js +23 -0
  193. package/dist/esm/telemetry/api/internal/logs/logger.js +19 -0
  194. package/dist/esm/telemetry/api/internal/logs/mcp.js +113 -0
  195. package/dist/esm/telemetry/api/internal/metrics/agent.js +107 -0
  196. package/dist/esm/telemetry/api/internal/metrics/inference_start_hook.js +29 -0
  197. package/dist/esm/telemetry/api/internal/metrics/meters.js +165 -0
  198. package/dist/esm/telemetry/api/internal/metrics/tool.js +119 -0
  199. package/dist/esm/telemetry/api/internal/metrics/workflow.js +112 -0
  200. package/dist/esm/telemetry/api/internal/trace/agent.js +25 -0
  201. package/dist/esm/telemetry/api/internal/trace/compaction.js +50 -0
  202. package/dist/esm/telemetry/api/internal/trace/inference.js +107 -0
  203. package/dist/esm/telemetry/api/internal/trace/live.js +28 -0
  204. package/dist/esm/telemetry/api/internal/trace/node.js +44 -0
  205. package/dist/esm/telemetry/api/internal/trace/propagation.js +39 -0
  206. package/dist/esm/telemetry/api/internal/trace/tool.js +96 -0
  207. package/dist/esm/telemetry/api/internal/trace/tracer.js +52 -0
  208. package/dist/esm/telemetry/api/internal/trace/workflow.js +54 -0
  209. package/dist/esm/telemetry/export/agent_engine.js +67 -0
  210. package/dist/esm/telemetry/export/agent_runtime.js +46 -0
  211. package/dist/esm/telemetry/export/google_cloud.js +733 -0
  212. package/dist/esm/telemetry/export/request_driven_metric_reader.js +276 -0
  213. package/dist/esm/telemetry/export/setup.js +160 -0
  214. package/dist/esm/tools/agent_tool.js +9 -1
  215. package/dist/esm/tools/apihub_tool/apihub_toolset.js +17 -22
  216. package/dist/esm/tools/application_integration_tool/application_integration_toolset.js +114 -44
  217. package/dist/esm/tools/application_integration_tool/clients/connections_client.js +226 -115
  218. package/dist/esm/tools/application_integration_tool/clients/integration_client.js +34 -14
  219. package/dist/esm/tools/application_integration_tool/integration_connector_tool.js +149 -0
  220. package/dist/esm/tools/base_toolset.js +1 -1
  221. package/dist/esm/tools/computer_use/base_computer.js +99 -0
  222. package/dist/esm/tools/computer_use/computer_use_actions.js +477 -0
  223. package/dist/esm/tools/computer_use/computer_use_tool.js +217 -0
  224. package/dist/esm/tools/computer_use/computer_use_toolset.js +344 -0
  225. package/dist/esm/tools/function_tool.js +15 -5
  226. package/dist/esm/tools/google_api_tool/google_api_tool.js +4 -1
  227. package/dist/esm/tools/google_api_tool/google_api_toolset.js +147 -0
  228. package/dist/esm/tools/google_api_tool/google_api_toolsets.js +94 -0
  229. package/dist/esm/tools/google_api_tool/googleapi_to_openapi_converter.js +5 -3
  230. package/dist/esm/tools/google_api_tool/index.js +18 -20
  231. package/dist/esm/tools/load_artifacts_tool.js +25 -10
  232. package/dist/esm/tools/load_memory_tool.js +14 -15
  233. package/dist/esm/tools/mcp/mcp_session_manager.js +23 -3
  234. package/dist/esm/tools/mcp/mcp_tool.js +7 -3
  235. package/dist/esm/tools/mcp/mcp_toolset.js +19 -20
  236. package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +27 -26
  237. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +4 -4
  238. package/dist/esm/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +20 -6
  239. package/dist/esm/tools/openapi_tool/openapi_spec_parser/operation_parser.js +17 -6
  240. package/dist/esm/tools/openapi_tool/openapi_toolset.js +6 -12
  241. package/dist/esm/tools/openapi_tool/rest_api_tool.js +57 -10
  242. package/dist/esm/tools/skill/load_skill_resource_tool.js +7 -0
  243. package/dist/esm/tools/skill/load_skill_tool.js +3 -0
  244. package/dist/esm/tools/skill/run_skill_script_tool.js +12 -2
  245. package/dist/esm/tools/toolbox_toolset.js +167 -0
  246. package/dist/esm/tools/webmcp/webmcp_toolset.js +1 -14
  247. package/dist/esm/utils/async_queue.js +37 -3
  248. package/dist/esm/utils/client_labels.js +17 -2
  249. package/dist/esm/utils/env_aware_utils.js +12 -7
  250. package/dist/esm/utils/error_utils.js +37 -1
  251. package/dist/esm/utils/failover_utils.js +11 -10
  252. package/dist/esm/utils/gemini_schema_util.js +144 -14
  253. package/dist/esm/utils/id_provider.js +33 -0
  254. package/dist/esm/utils/logger_node.js +4 -0
  255. package/dist/esm/utils/model_name.js +14 -0
  256. package/dist/esm/utils/output_schema_utils.js +5 -2
  257. package/dist/esm/utils/simple_zod_to_json.js +13 -31
  258. package/dist/esm/utils/ssrf_guard.js +55 -15
  259. package/dist/esm/utils/task.js +1 -1
  260. package/dist/esm/version.js +1 -1
  261. package/dist/esm/workflow/index.js +2 -1
  262. package/dist/esm/workflow/node_runner.js +26 -80
  263. package/dist/esm/workflow/nodes/parallel_worker.js +16 -6
  264. package/dist/esm/workflow/run_llm_agent_as_node.js +19 -14
  265. package/dist/esm/workflow/utils/retry_utils.js +2 -2
  266. package/dist/esm/workflow/workflow.js +12 -12
  267. package/dist/types/a2a/a2a_remote_agent.d.ts +6 -0
  268. package/dist/types/a2a/a2a_remote_agent_utils.d.ts +3 -2
  269. package/dist/types/agents/agent_engine_client.d.ts +155 -0
  270. package/dist/types/agents/base_agent.d.ts +14 -0
  271. package/dist/types/agents/llm_agent.d.ts +5 -1
  272. package/dist/types/agents/processors/content_processor_utils.d.ts +12 -10
  273. package/dist/types/agents/processors/nl_planning_processor.d.ts +2 -1
  274. package/dist/types/agents/run_config.d.ts +14 -0
  275. package/dist/types/cli/cli_eval.d.ts +172 -9
  276. package/dist/types/cli/utils/cleanup.d.ts +18 -0
  277. package/dist/types/cli/utils/envs.d.ts +13 -3
  278. package/dist/types/cli/utils/evals.d.ts +64 -1
  279. package/dist/types/cli/utils/logs.d.ts +20 -3
  280. package/dist/types/cli/utils/path_validation.d.ts +30 -0
  281. package/dist/types/code_executors/container_code_executor.d.ts +62 -9
  282. package/dist/types/common.d.ts +21 -18
  283. package/dist/types/context/compaction_utils.d.ts +13 -1
  284. package/dist/types/errors/input_validation_error.d.ts +2 -1
  285. package/dist/types/events/event.d.ts +3 -0
  286. package/dist/types/features/feature_registry.d.ts +1 -0
  287. package/dist/types/index.d.ts +11 -6
  288. package/dist/types/plugins/base_plugin.d.ts +50 -31
  289. package/dist/types/plugins/plugin_manager.d.ts +13 -0
  290. package/dist/types/runner/runner.d.ts +11 -0
  291. package/dist/types/sessions/base_session_service.d.ts +5 -2
  292. package/dist/types/sessions/database_session_service.d.ts +17 -1
  293. package/dist/types/sessions/db/operations.d.ts +2 -1
  294. package/dist/types/sessions/db/schema.d.ts +5 -3
  295. package/dist/types/sessions/stale_session_error.d.ts +21 -0
  296. package/dist/types/skills/loader.d.ts +3 -2
  297. package/dist/types/telemetry/api/instrumentation.d.ts +259 -0
  298. package/dist/types/telemetry/api/internal/common/accumulators.d.ts +91 -0
  299. package/dist/types/telemetry/api/internal/common/attributes.d.ts +90 -0
  300. package/dist/types/telemetry/api/internal/common/config.d.ts +61 -0
  301. package/dist/types/telemetry/api/internal/common/error.d.ts +29 -0
  302. package/dist/types/telemetry/api/internal/common/finish_reason.d.ts +18 -0
  303. package/dist/types/telemetry/api/internal/common/genai_messages.d.ts +26 -0
  304. package/dist/types/telemetry/api/internal/common/http_exchange.d.ts +50 -0
  305. package/dist/types/telemetry/api/internal/common/provider_name.d.ts +16 -0
  306. package/dist/types/telemetry/api/internal/common/redaction.d.ts +14 -0
  307. package/dist/types/telemetry/api/internal/common/serialization.d.ts +18 -0
  308. package/dist/types/telemetry/api/internal/common/token_usage.d.ts +47 -0
  309. package/dist/types/telemetry/api/internal/logs/inference.d.ts +15 -0
  310. package/dist/types/telemetry/api/internal/logs/logger.d.ts +13 -0
  311. package/dist/types/telemetry/api/internal/logs/mcp.d.ts +31 -0
  312. package/dist/types/telemetry/api/internal/metrics/agent.d.ts +28 -0
  313. package/dist/types/telemetry/api/internal/metrics/inference_start_hook.d.ts +12 -0
  314. package/dist/types/telemetry/api/internal/metrics/meters.d.ts +57 -0
  315. package/dist/types/telemetry/api/internal/metrics/tool.d.ts +44 -0
  316. package/dist/types/telemetry/api/internal/metrics/workflow.d.ts +32 -0
  317. package/dist/types/telemetry/api/internal/trace/agent.d.ts +14 -0
  318. package/dist/types/telemetry/api/internal/trace/compaction.d.ts +20 -0
  319. package/dist/types/telemetry/api/internal/trace/inference.d.ts +31 -0
  320. package/dist/types/telemetry/api/internal/trace/live.d.ts +21 -0
  321. package/dist/types/telemetry/api/internal/trace/node.d.ts +22 -0
  322. package/dist/types/telemetry/api/internal/trace/propagation.d.ts +22 -0
  323. package/dist/types/telemetry/api/internal/trace/tool.d.ts +57 -0
  324. package/dist/types/telemetry/api/internal/trace/tracer.d.ts +31 -0
  325. package/dist/types/telemetry/api/internal/trace/workflow.d.ts +21 -0
  326. package/dist/types/telemetry/export/agent_engine.d.ts +23 -0
  327. package/dist/types/telemetry/export/agent_runtime.d.ts +40 -0
  328. package/dist/types/telemetry/export/google_cloud.d.ts +189 -0
  329. package/dist/types/telemetry/export/request_driven_metric_reader.d.ts +144 -0
  330. package/dist/types/telemetry/{setup.d.ts → export/setup.d.ts} +3 -0
  331. package/dist/types/tools/agent_tool.d.ts +1 -1
  332. package/dist/types/tools/apihub_tool/apihub_toolset.d.ts +14 -21
  333. package/dist/types/tools/application_integration_tool/application_integration_toolset.d.ts +32 -9
  334. package/dist/types/tools/application_integration_tool/clients/connections_client.d.ts +35 -12
  335. package/dist/types/tools/application_integration_tool/clients/integration_client.d.ts +3 -3
  336. package/dist/types/tools/application_integration_tool/integration_connector_tool.d.ts +70 -0
  337. package/dist/types/tools/base_toolset.d.ts +7 -6
  338. package/dist/types/tools/computer_use/base_computer.d.ts +281 -0
  339. package/dist/types/tools/computer_use/computer_use_actions.d.ts +53 -0
  340. package/dist/types/tools/computer_use/computer_use_tool.d.ts +108 -0
  341. package/dist/types/tools/computer_use/computer_use_toolset.d.ts +132 -0
  342. package/dist/types/tools/google_api_tool/google_api_tool.d.ts +10 -3
  343. package/dist/types/tools/google_api_tool/google_api_toolset.d.ts +57 -0
  344. package/dist/types/tools/google_api_tool/google_api_toolsets.d.ts +48 -0
  345. package/dist/types/tools/google_api_tool/googleapi_to_openapi_converter.d.ts +5 -4
  346. package/dist/types/tools/google_api_tool/index.d.ts +4 -5
  347. package/dist/types/tools/load_artifacts_tool.d.ts +18 -1
  348. package/dist/types/tools/load_memory_tool.d.ts +32 -4
  349. package/dist/types/tools/mcp/mcp_session_manager.d.ts +16 -0
  350. package/dist/types/tools/openapi_tool/auth/auth_helpers.d.ts +8 -8
  351. package/dist/types/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.d.ts +12 -0
  352. package/dist/types/tools/openapi_tool/openapi_spec_parser/operation_parser.d.ts +15 -3
  353. package/dist/types/tools/openapi_tool/openapi_toolset.d.ts +5 -0
  354. package/dist/types/tools/openapi_tool/rest_api_tool.d.ts +10 -0
  355. package/dist/types/tools/toolbox_toolset.d.ts +154 -0
  356. package/dist/types/utils/async_queue.d.ts +14 -0
  357. package/dist/types/utils/client_labels.d.ts +2 -1
  358. package/dist/types/utils/env_aware_utils.d.ts +11 -0
  359. package/dist/types/utils/error_utils.d.ts +4 -0
  360. package/dist/types/utils/gemini_schema_util.d.ts +29 -0
  361. package/dist/types/utils/id_provider.d.ts +43 -0
  362. package/dist/types/utils/model_name.d.ts +8 -0
  363. package/dist/types/utils/output_schema_utils.d.ts +3 -2
  364. package/dist/types/utils/simple_zod_to_json.d.ts +1 -2
  365. package/dist/types/utils/ssrf_guard.d.ts +2 -0
  366. package/dist/types/version.d.ts +1 -1
  367. package/dist/types/workflow/index.d.ts +1 -1
  368. package/dist/types/workflow/nodes/parallel_worker.d.ts +8 -1
  369. package/dist/web/index_web.js +94 -88
  370. package/dist/web/index_web.js.map +4 -4
  371. package/package.json +43 -38
  372. package/dist/cjs/agents/remote_agent.js +0 -187
  373. package/dist/cjs/telemetry/google_cloud.js +0 -116
  374. package/dist/cjs/telemetry/tracing.js +0 -350
  375. package/dist/cjs/tools/crewai_tool.js +0 -132
  376. package/dist/cjs/tools/google_api_tool/google_api_tool_set.js +0 -226
  377. package/dist/cjs/tools/google_api_tool/google_api_tool_sets.js +0 -58
  378. package/dist/cjs/tools/langchain_tool.js +0 -172
  379. package/dist/cjs/tools/toolbox_tool.js +0 -108
  380. package/dist/esm/agents/remote_agent.js +0 -164
  381. package/dist/esm/telemetry/google_cloud.js +0 -99
  382. package/dist/esm/telemetry/setup.js +0 -89
  383. package/dist/esm/telemetry/tracing.js +0 -315
  384. package/dist/esm/tools/crewai_tool.js +0 -107
  385. package/dist/esm/tools/google_api_tool/google_api_tool_set.js +0 -188
  386. package/dist/esm/tools/google_api_tool/google_api_tool_sets.js +0 -24
  387. package/dist/esm/tools/langchain_tool.js +0 -148
  388. package/dist/esm/tools/toolbox_tool.js +0 -80
  389. package/dist/types/agents/remote_agent.d.ts +0 -68
  390. package/dist/types/telemetry/google_cloud.d.ts +0 -9
  391. package/dist/types/telemetry/tracing.d.ts +0 -129
  392. package/dist/types/tools/crewai_tool.d.ts +0 -85
  393. package/dist/types/tools/google_api_tool/google_api_tool_set.d.ts +0 -78
  394. package/dist/types/tools/google_api_tool/google_api_tool_sets.d.ts +0 -33
  395. package/dist/types/tools/langchain_tool.d.ts +0 -103
  396. package/dist/types/tools/toolbox_tool.d.ts +0 -73
@@ -0,0 +1,344 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
+ var __decorateClass = (decorators, target, key, kind) => {
7
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
8
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
9
+ if (decorator = decorators[i])
10
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
11
+ if (kind && result) __defProp(target, key, result);
12
+ return result;
13
+ };
14
+ /**
15
+ * @license
16
+ * Copyright 2026 Google LLC
17
+ * SPDX-License-Identifier: Apache-2.0
18
+ */
19
+ var _a, _b;
20
+ import { Environment } from "@google/genai";
21
+ import { experimental } from "../../utils/experimental.js";
22
+ import { logger } from "../../utils/logger.js";
23
+ import { getGeminiMajorVersion } from "../../utils/model_name.js";
24
+ import { BaseToolset } from "../base_toolset.js";
25
+ import {
26
+ checkComputerUseEnabled,
27
+ ComputerEnvironment
28
+ } from "./base_computer.js";
29
+ import {
30
+ createComputerActions,
31
+ LEGACY_ACTION_NAMES,
32
+ OPTIONAL_KEY_ACTIONS,
33
+ OPTIONAL_MOUSE_ACTIONS,
34
+ unimplementedOptionalActions
35
+ } from "./computer_use_actions.js";
36
+ import {
37
+ ComputerUseTool,
38
+ isComputerUseTool
39
+ } from "./computer_use_tool.js";
40
+ const DIRECT_EXCLUSION_MAP = Object.freeze({
41
+ // Legacy -> modern.
42
+ click_at: ["click"],
43
+ hover_at: ["move"],
44
+ type_text_at: ["type"],
45
+ type_text: ["type"],
46
+ scroll_at: ["scroll"],
47
+ // Whole-page scroll has no modern counterpart.
48
+ scroll_document: [],
49
+ current_state: ["take_screenshot"],
50
+ key_combination: ["press_key", "hotkey"],
51
+ wait_5_seconds: ["wait"],
52
+ // Modern -> legacy.
53
+ click: ["click_at"],
54
+ move: ["hover_at"],
55
+ type: ["type_text_at"],
56
+ // Does not drop scroll_document.
57
+ scroll: ["scroll_at"],
58
+ take_screenshot: ["current_state"],
59
+ // key_combination is dropped only when both of these are excluded.
60
+ press_key: [],
61
+ hotkey: [],
62
+ wait: ["wait_5_seconds"]
63
+ });
64
+ const LEGACY_EXCLUSION_NAMES = /* @__PURE__ */ new Set([
65
+ "click_at",
66
+ "hover_at",
67
+ "type_text_at",
68
+ "type_text",
69
+ "scroll_at",
70
+ "scroll_document",
71
+ "current_state",
72
+ "key_combination",
73
+ "wait_5_seconds"
74
+ ]);
75
+ const MODERN_EXCLUSION_NAMES = /* @__PURE__ */ new Set([
76
+ "click",
77
+ "move",
78
+ "type",
79
+ "scroll",
80
+ "take_screenshot",
81
+ "press_key",
82
+ "hotkey",
83
+ "wait",
84
+ ...OPTIONAL_MOUSE_ACTIONS,
85
+ ...OPTIONAL_KEY_ACTIONS
86
+ ]);
87
+ const TYPING_ACTIONS = ["type", "type_text_at", "type_text"];
88
+ const computerQueues = /* @__PURE__ */ new WeakMap();
89
+ function expandLocalExclusions(excludedNames) {
90
+ var _a2;
91
+ const expanded = new Set(excludedNames);
92
+ for (const name of excludedNames) {
93
+ for (const counterpart of (_a2 = DIRECT_EXCLUSION_MAP[name]) != null ? _a2 : []) {
94
+ expanded.add(counterpart);
95
+ }
96
+ }
97
+ if (TYPING_ACTIONS.some((name) => expanded.has(name))) {
98
+ TYPING_ACTIONS.forEach((name) => expanded.add(name));
99
+ }
100
+ if (expanded.has("press_key") && expanded.has("hotkey")) {
101
+ expanded.add("key_combination");
102
+ }
103
+ return expanded;
104
+ }
105
+ __name(expandLocalExclusions, "expandLocalExclusions");
106
+ function resolveExcludedPredefinedFunctions({
107
+ excludedNames,
108
+ model,
109
+ unimplementedActions
110
+ }) {
111
+ var _a2;
112
+ const major = getGeminiMajorVersion(model);
113
+ if (major !== void 0 && major < 3) {
114
+ if (excludedNames === void 0) {
115
+ return void 0;
116
+ }
117
+ const bothModernKeys = excludedNames.includes("press_key") && excludedNames.includes("hotkey");
118
+ const resolved2 = [];
119
+ for (const name of excludedNames) {
120
+ if (name === "press_key" || name === "hotkey") {
121
+ if (bothModernKeys) {
122
+ resolved2.push("key_combination");
123
+ }
124
+ } else if (name === "type_text") {
125
+ resolved2.push("type_text_at");
126
+ } else if (MODERN_EXCLUSION_NAMES.has(name)) {
127
+ resolved2.push(...(_a2 = DIRECT_EXCLUSION_MAP[name]) != null ? _a2 : []);
128
+ } else {
129
+ resolved2.push(name);
130
+ }
131
+ }
132
+ return [...new Set(resolved2)];
133
+ }
134
+ const resolved = [];
135
+ for (const name of excludedNames != null ? excludedNames : []) {
136
+ if (LEGACY_EXCLUSION_NAMES.has(name)) {
137
+ resolved.push(...DIRECT_EXCLUSION_MAP[name]);
138
+ } else {
139
+ resolved.push(name);
140
+ }
141
+ }
142
+ if (major !== void 0 && major >= 3) {
143
+ resolved.push(...unimplementedActions);
144
+ }
145
+ const deduped = [...new Set(resolved)];
146
+ if (deduped.length === 0 && excludedNames === void 0) {
147
+ return void 0;
148
+ }
149
+ return deduped;
150
+ }
151
+ __name(resolveExcludedPredefinedFunctions, "resolveExcludedPredefinedFunctions");
152
+ async function runExclusive(computer, action) {
153
+ var _a2;
154
+ const previous = (_a2 = computerQueues.get(computer)) != null ? _a2 : Promise.resolve();
155
+ const result = previous.then(action);
156
+ computerQueues.set(
157
+ computer,
158
+ result.then(
159
+ () => void 0,
160
+ () => void 0
161
+ )
162
+ );
163
+ return result;
164
+ }
165
+ __name(runExclusive, "runExclusive");
166
+ function toGenaiEnvironment(environment) {
167
+ switch (environment) {
168
+ case ComputerEnvironment.ENVIRONMENT_UNSPECIFIED:
169
+ return Environment.ENVIRONMENT_UNSPECIFIED;
170
+ case ComputerEnvironment.ENVIRONMENT_BROWSER:
171
+ return Environment.ENVIRONMENT_BROWSER;
172
+ default: {
173
+ const exhaustive = environment;
174
+ throw new Error(`Unknown computer environment: ${exhaustive}`);
175
+ }
176
+ }
177
+ }
178
+ __name(toGenaiEnvironment, "toGenaiEnvironment");
179
+ function isComputerUseConfig(tool) {
180
+ return "computerUse" in tool && tool.computerUse !== void 0;
181
+ }
182
+ __name(isComputerUseConfig, "isComputerUseConfig");
183
+ async function adaptComputerUseTool({
184
+ methodName,
185
+ adapter,
186
+ llmRequest
187
+ }) {
188
+ if (!LEGACY_ACTION_NAMES.includes(methodName)) {
189
+ logger.warn(`Method ${methodName} is not a valid BaseComputer method`);
190
+ return;
191
+ }
192
+ const original = Object.hasOwn(llmRequest.toolsDict, methodName) ? llmRequest.toolsDict[methodName] : void 0;
193
+ if (!isComputerUseTool(original)) {
194
+ logger.warn(`Method ${methodName} not found in toolsDict`);
195
+ return;
196
+ }
197
+ const adapted = await adapter(original.func);
198
+ llmRequest.toolsDict[adapted.name] = new ComputerUseTool({
199
+ ...adapted,
200
+ screenSize: original.screenSize,
201
+ virtualScreenSize: original.virtualScreenSize
202
+ });
203
+ if (adapted.name !== methodName) {
204
+ delete llmRequest.toolsDict[methodName];
205
+ }
206
+ logger.debug(`Adapted tool ${methodName} to ${adapted.name}`);
207
+ }
208
+ __name(adaptComputerUseTool, "adaptComputerUseTool");
209
+ const COMPUTER_USE_TOOLSET_SIGNATURE_SYMBOL = /* @__PURE__ */ Symbol.for(
210
+ "google.adk.computerUseToolset"
211
+ );
212
+ function isComputerUseToolset(obj) {
213
+ return typeof obj === "object" && obj !== null && COMPUTER_USE_TOOLSET_SIGNATURE_SYMBOL in obj && obj[COMPUTER_USE_TOOLSET_SIGNATURE_SYMBOL] === true;
214
+ }
215
+ __name(isComputerUseToolset, "isComputerUseToolset");
216
+ let ComputerUseToolset = class extends (_b = BaseToolset, _a = COMPUTER_USE_TOOLSET_SIGNATURE_SYMBOL, _b) {
217
+ /**
218
+ * @param options The computer and its configuration.
219
+ */
220
+ constructor(options) {
221
+ var _a2;
222
+ checkComputerUseEnabled();
223
+ super([]);
224
+ /** A unique symbol to identify ADK computer use toolset class. */
225
+ this[_a] = true;
226
+ this.closed = false;
227
+ this.computer = options.computer;
228
+ this.excludedPredefinedFunctions = options.excludedPredefinedFunctions;
229
+ this.allowPrivateNetworkAccess = (_a2 = options.allowPrivateNetworkAccess) != null ? _a2 : false;
230
+ }
231
+ /**
232
+ * Returns a tool for every action the computer supports, except the
233
+ * excluded ones. The computer is initialized on the first call, and the
234
+ * tools are cached until {@link close}.
235
+ */
236
+ async getTools() {
237
+ var _a2;
238
+ (_a2 = this.loadingTools) != null ? _a2 : this.loadingTools = this.loadTools();
239
+ try {
240
+ return await this.loadingTools;
241
+ } catch (error) {
242
+ this.loadingTools = void 0;
243
+ throw error;
244
+ }
245
+ }
246
+ /**
247
+ * Closes the computer and drops the cached tools. The next call to
248
+ * {@link getTools} initializes the computer again.
249
+ */
250
+ async close() {
251
+ if (!this.closed) {
252
+ await this.computer.close();
253
+ this.closed = true;
254
+ }
255
+ this.initializing = void 0;
256
+ this.loadingTools = void 0;
257
+ }
258
+ /**
259
+ * Registers the computer use tools in the request and adds the computer use
260
+ * configuration, unless the request already has one.
261
+ *
262
+ * @param _toolContext The context of the tool.
263
+ * @param llmRequest The outgoing request.
264
+ */
265
+ async processLlmRequest(_toolContext, llmRequest) {
266
+ var _a2, _b2, _c;
267
+ for (const tool of await this.getTools()) {
268
+ llmRequest.toolsDict[tool.name] = tool;
269
+ }
270
+ (_a2 = llmRequest.config) != null ? _a2 : llmRequest.config = {};
271
+ (_c = (_b2 = llmRequest.config).tools) != null ? _c : _b2.tools = [];
272
+ if (llmRequest.config.tools.some(isComputerUseConfig)) {
273
+ logger.debug("Computer use already configured in LLM request");
274
+ return;
275
+ }
276
+ const environment = toGenaiEnvironment(await this.computer.environment());
277
+ const excludedPredefinedFunctions = resolveExcludedPredefinedFunctions({
278
+ excludedNames: this.excludedPredefinedFunctions,
279
+ model: llmRequest.model,
280
+ unimplementedActions: unimplementedOptionalActions(this.computer)
281
+ });
282
+ llmRequest.config.tools.push({
283
+ computerUse: excludedPredefinedFunctions === void 0 ? { environment } : { environment, excludedPredefinedFunctions }
284
+ });
285
+ logger.debug(
286
+ `Added computer use tool with environment: ${environment}, excluded functions: ${excludedPredefinedFunctions}`
287
+ );
288
+ }
289
+ ensureInitialized() {
290
+ var _a2;
291
+ (_a2 = this.initializing) != null ? _a2 : this.initializing = this.computer.initialize().then(
292
+ () => {
293
+ this.closed = false;
294
+ },
295
+ (error) => {
296
+ this.initializing = void 0;
297
+ throw error;
298
+ }
299
+ );
300
+ return this.initializing;
301
+ }
302
+ async loadTools() {
303
+ var _a2;
304
+ await this.ensureInitialized();
305
+ const screenSize = await this.computer.screenSize();
306
+ const excluded = expandLocalExclusions(
307
+ (_a2 = this.excludedPredefinedFunctions) != null ? _a2 : []
308
+ );
309
+ return createComputerActions({
310
+ computer: this.computer,
311
+ allowPrivateNetworkAccess: this.allowPrivateNetworkAccess
312
+ }).filter((action) => !excluded.has(action.name)).map(
313
+ (action) => new ComputerUseTool({
314
+ name: action.name,
315
+ description: action.description,
316
+ parameters: action.parameters,
317
+ execute: this.bindToComputer(action),
318
+ screenSize
319
+ })
320
+ );
321
+ }
322
+ /**
323
+ * Wraps an action so it runs exclusively on the computer, after the
324
+ * computer has prepared for the calling session.
325
+ */
326
+ bindToComputer(action) {
327
+ const computer = this.computer;
328
+ return (args, toolContext) => runExclusive(computer, async () => {
329
+ if (toolContext) {
330
+ await computer.prepare(toolContext);
331
+ }
332
+ return action.execute(args);
333
+ });
334
+ }
335
+ };
336
+ __name(ComputerUseToolset, "ComputerUseToolset");
337
+ ComputerUseToolset = __decorateClass([
338
+ experimental
339
+ ], ComputerUseToolset);
340
+ export {
341
+ ComputerUseToolset,
342
+ adaptComputerUseTool,
343
+ isComputerUseToolset
344
+ };
@@ -29,9 +29,10 @@ function toResponseSchema(response) {
29
29
  return zodObjectToSchema(response);
30
30
  }
31
31
  if (typeof response === "object" && response !== null && "safeParse" in response && typeof response.safeParse === "function") {
32
- return (_a2 = toGeminiSchema(
33
- toJsonSchema(response)
34
- )) != null ? _a2 : { type: Type.TYPE_UNSPECIFIED };
32
+ const jsonSchema = toJsonSchema(response);
33
+ return (_a2 = toGeminiSchema(jsonSchema)) != null ? _a2 : {
34
+ type: Type.TYPE_UNSPECIFIED
35
+ };
35
36
  }
36
37
  return response;
37
38
  }
@@ -251,6 +252,11 @@ function annotateNullableFields(schema) {
251
252
  if (!isPlainRecord(propertySchema)) {
252
253
  continue;
253
254
  }
255
+ const propType = propertySchema["type"];
256
+ if (propType === null || propType === "null" || propType === Type.NULL) {
257
+ propertySchema["type"] = Type.OBJECT;
258
+ propertySchema["nullable"] = true;
259
+ }
254
260
  const anyOf = propertySchema["anyOf"];
255
261
  if (!Array.isArray(anyOf)) {
256
262
  continue;
@@ -353,8 +359,12 @@ function processParameterSchema(vertexai, schema) {
353
359
  __name(processParameterSchema, "processParameterSchema");
354
360
  function mapPropertySchemaType(propertySchema) {
355
361
  var _a2, _b2;
356
- if (typeof propertySchema["type"] === "string") {
357
- propertySchema["type"] = (_a2 = SCHEMA_TYPE_MAP[propertySchema["type"]]) != null ? _a2 : Type.TYPE_UNSPECIFIED;
362
+ const rawType = propertySchema["type"];
363
+ if (rawType === null || rawType === "null" || rawType === Type.NULL) {
364
+ propertySchema["type"] = Type.OBJECT;
365
+ propertySchema["nullable"] = true;
366
+ } else if (typeof rawType === "string") {
367
+ propertySchema["type"] = (_a2 = SCHEMA_TYPE_MAP[rawType]) != null ? _a2 : Type.TYPE_UNSPECIFIED;
358
368
  if (propertySchema["type"] === Type.ARRAY && isPlainRecord(propertySchema["items"])) {
359
369
  mapPropertySchemaType(propertySchema["items"]);
360
370
  }
@@ -26,7 +26,7 @@ function isGoogleApiTool(obj) {
26
26
  }
27
27
  __name(isGoogleApiTool, "isGoogleApiTool");
28
28
  let GoogleApiTool = class extends (_b = BaseTool, _a = GOOGLE_API_TOOL_SIGNATURE_SYMBOL, _b) {
29
- constructor(restApiTool) {
29
+ constructor(restApiTool, options = {}) {
30
30
  super({
31
31
  name: restApiTool.name,
32
32
  description: restApiTool.description,
@@ -34,6 +34,9 @@ let GoogleApiTool = class extends (_b = BaseTool, _a = GOOGLE_API_TOOL_SIGNATURE
34
34
  });
35
35
  this[_a] = true;
36
36
  this.restApiTool = restApiTool;
37
+ if (options.clientId !== void 0 || options.clientSecret !== void 0) {
38
+ this.configureAuth(options.clientId, options.clientSecret);
39
+ }
37
40
  }
38
41
  _getDeclaration() {
39
42
  return this.restApiTool._getDeclaration();
@@ -0,0 +1,147 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
+ var __decorateClass = (decorators, target, key, kind) => {
7
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
8
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
9
+ if (decorator = decorators[i])
10
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
11
+ if (kind && result) __defProp(target, key, result);
12
+ return result;
13
+ };
14
+ /**
15
+ * @license
16
+ * Copyright 2026 Google LLC
17
+ * SPDX-License-Identifier: Apache-2.0
18
+ */
19
+ var _a, _b;
20
+ import { experimental } from "../../utils/experimental.js";
21
+ import { BaseToolset } from "../base_toolset.js";
22
+ import { OpenAPIToolset } from "../openapi_tool/openapi_toolset.js";
23
+ import { GoogleApiTool } from "./google_api_tool.js";
24
+ import { GoogleApiToOpenApiConverter } from "./googleapi_to_openapi_converter.js";
25
+ const GOOGLE_API_TOOLSET_SIGNATURE_SYMBOL = /* @__PURE__ */ Symbol.for(
26
+ "google.adk.googleApiToolset"
27
+ );
28
+ const GOOGLE_OIDC_AUTH_ENDPOINT = "https://accounts.google.com/o/oauth2/v2/auth";
29
+ const GOOGLE_OIDC_TOKEN_ENDPOINT = "https://oauth2.googleapis.com/token";
30
+ const GOOGLE_OIDC_USERINFO_ENDPOINT = "https://openidconnect.googleapis.com/v1/userinfo";
31
+ const GOOGLE_OIDC_REVOCATION_ENDPOINT = "https://oauth2.googleapis.com/revoke";
32
+ function isGoogleApiToolset(obj) {
33
+ return typeof obj === "object" && obj !== null && GOOGLE_API_TOOLSET_SIGNATURE_SYMBOL in obj && obj[GOOGLE_API_TOOLSET_SIGNATURE_SYMBOL] === true;
34
+ }
35
+ __name(isGoogleApiToolset, "isGoogleApiToolset");
36
+ let GoogleApiToolset = class extends (_b = BaseToolset, _a = GOOGLE_API_TOOLSET_SIGNATURE_SYMBOL, _b) {
37
+ constructor(options = {}) {
38
+ var _a2;
39
+ const toolFilter = (_a2 = options.toolFilter) != null ? _a2 : [];
40
+ super(toolFilter);
41
+ this[_a] = true;
42
+ this.tools = [];
43
+ this.toolFilter = toolFilter;
44
+ this.apiName = options.apiName;
45
+ this.apiVersion = options.apiVersion;
46
+ this.clientId = options.clientId;
47
+ this.clientSecret = options.clientSecret;
48
+ this.scopes = options.scopes ? [...options.scopes] : void 0;
49
+ }
50
+ async loadToolsetWithOidcAuth() {
51
+ var _a2, _b2, _c, _d, _e;
52
+ if (!this.apiName || !this.apiVersion) {
53
+ throw new Error(
54
+ "Both apiName and apiVersion are required to load a GoogleApiToolset."
55
+ );
56
+ }
57
+ const specDict = await new GoogleApiToOpenApiConverter(
58
+ this.apiName,
59
+ this.apiVersion
60
+ ).convert();
61
+ const oauth2Scheme = (_b2 = (_a2 = specDict.components) == null ? void 0 : _a2.securitySchemes) == null ? void 0 : _b2["oauth2"];
62
+ const scopesMap = (_e = (_d = (_c = oauth2Scheme == null ? void 0 : oauth2Scheme.flows) == null ? void 0 : _c.authorizationCode) == null ? void 0 : _d.scopes) != null ? _e : {};
63
+ const firstScope = Object.keys(scopesMap)[0];
64
+ const scopes = this.scopes !== void 0 ? [...this.scopes] : firstScope ? [firstScope] : void 0;
65
+ const authScheme = {
66
+ type: "openIdConnect",
67
+ openIdConnectUrl: "",
68
+ authorizationEndpoint: GOOGLE_OIDC_AUTH_ENDPOINT,
69
+ tokenEndpoint: GOOGLE_OIDC_TOKEN_ENDPOINT,
70
+ userinfoEndpoint: GOOGLE_OIDC_USERINFO_ENDPOINT,
71
+ revocationEndpoint: GOOGLE_OIDC_REVOCATION_ENDPOINT,
72
+ tokenEndpointAuthMethodsSupported: [
73
+ "client_secret_post",
74
+ "client_secret_basic"
75
+ ],
76
+ grantTypesSupported: ["authorization_code"],
77
+ scopes
78
+ };
79
+ return new OpenAPIToolset({
80
+ specDict,
81
+ specType: "yaml",
82
+ authScheme
83
+ });
84
+ }
85
+ async ensureToolsLoaded() {
86
+ var _a2;
87
+ if (this.openapiToolset) {
88
+ return;
89
+ }
90
+ (_a2 = this.loadingPromise) != null ? _a2 : this.loadingPromise = (async () => {
91
+ try {
92
+ const openapiToolset = await this.loadToolsetWithOidcAuth();
93
+ const restTools = await openapiToolset.getTools();
94
+ this.tools = restTools.map(
95
+ (tool) => new GoogleApiTool(tool, {
96
+ clientId: this.clientId,
97
+ clientSecret: this.clientSecret
98
+ })
99
+ );
100
+ this.openapiToolset = openapiToolset;
101
+ } catch (error) {
102
+ this.loadingPromise = void 0;
103
+ throw error;
104
+ }
105
+ })();
106
+ await this.loadingPromise;
107
+ }
108
+ async getTools(context) {
109
+ await this.ensureToolsLoaded();
110
+ return this.tools.filter((tool) => this.isToolSelected(tool, context));
111
+ }
112
+ setToolFilter(toolFilter) {
113
+ this.toolFilter = toolFilter;
114
+ }
115
+ configureAuth(clientId, clientSecret) {
116
+ this.clientId = clientId;
117
+ this.clientSecret = clientSecret;
118
+ for (const tool of this.tools) {
119
+ tool.configureAuth(clientId, clientSecret);
120
+ }
121
+ }
122
+ async close() {
123
+ if (this.openapiToolset) {
124
+ await this.openapiToolset.close();
125
+ }
126
+ }
127
+ };
128
+ __name(GoogleApiToolset, "GoogleApiToolset");
129
+ __decorateClass([
130
+ experimental
131
+ ], GoogleApiToolset.prototype, "getTools", 1);
132
+ __decorateClass([
133
+ experimental
134
+ ], GoogleApiToolset.prototype, "setToolFilter", 1);
135
+ __decorateClass([
136
+ experimental
137
+ ], GoogleApiToolset.prototype, "configureAuth", 1);
138
+ __decorateClass([
139
+ experimental
140
+ ], GoogleApiToolset.prototype, "close", 1);
141
+ GoogleApiToolset = __decorateClass([
142
+ experimental
143
+ ], GoogleApiToolset);
144
+ export {
145
+ GoogleApiToolset,
146
+ isGoogleApiToolset
147
+ };
@@ -0,0 +1,94 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
6
+ var __decorateClass = (decorators, target, key, kind) => {
7
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
8
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
9
+ if (decorator = decorators[i])
10
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
11
+ if (kind && result) __defProp(target, key, result);
12
+ return result;
13
+ };
14
+ /**
15
+ * @license
16
+ * Copyright 2026 Google LLC
17
+ * SPDX-License-Identifier: Apache-2.0
18
+ */
19
+ import { experimental } from "../../utils/experimental.js";
20
+ import {
21
+ GoogleApiToolset
22
+ } from "./google_api_toolset.js";
23
+ let BigQueryToolset = class extends GoogleApiToolset {
24
+ constructor(options = {}) {
25
+ super({ ...options, apiName: "bigquery", apiVersion: "v2" });
26
+ }
27
+ };
28
+ __name(BigQueryToolset, "BigQueryToolset");
29
+ BigQueryToolset = __decorateClass([
30
+ experimental
31
+ ], BigQueryToolset);
32
+ let CalendarToolset = class extends GoogleApiToolset {
33
+ constructor(options = {}) {
34
+ super({ ...options, apiName: "calendar", apiVersion: "v3" });
35
+ }
36
+ };
37
+ __name(CalendarToolset, "CalendarToolset");
38
+ CalendarToolset = __decorateClass([
39
+ experimental
40
+ ], CalendarToolset);
41
+ let GmailToolset = class extends GoogleApiToolset {
42
+ constructor(options = {}) {
43
+ super({ ...options, apiName: "gmail", apiVersion: "v1" });
44
+ }
45
+ };
46
+ __name(GmailToolset, "GmailToolset");
47
+ GmailToolset = __decorateClass([
48
+ experimental
49
+ ], GmailToolset);
50
+ let YoutubeToolset = class extends GoogleApiToolset {
51
+ constructor(options = {}) {
52
+ super({ ...options, apiName: "youtube", apiVersion: "v3" });
53
+ }
54
+ };
55
+ __name(YoutubeToolset, "YoutubeToolset");
56
+ YoutubeToolset = __decorateClass([
57
+ experimental
58
+ ], YoutubeToolset);
59
+ let SlidesToolset = class extends GoogleApiToolset {
60
+ constructor(options = {}) {
61
+ super({ ...options, apiName: "slides", apiVersion: "v1" });
62
+ }
63
+ };
64
+ __name(SlidesToolset, "SlidesToolset");
65
+ SlidesToolset = __decorateClass([
66
+ experimental
67
+ ], SlidesToolset);
68
+ let SheetsToolset = class extends GoogleApiToolset {
69
+ constructor(options = {}) {
70
+ super({ ...options, apiName: "sheets", apiVersion: "v4" });
71
+ }
72
+ };
73
+ __name(SheetsToolset, "SheetsToolset");
74
+ SheetsToolset = __decorateClass([
75
+ experimental
76
+ ], SheetsToolset);
77
+ let DocsToolset = class extends GoogleApiToolset {
78
+ constructor(options = {}) {
79
+ super({ ...options, apiName: "docs", apiVersion: "v1" });
80
+ }
81
+ };
82
+ __name(DocsToolset, "DocsToolset");
83
+ DocsToolset = __decorateClass([
84
+ experimental
85
+ ], DocsToolset);
86
+ export {
87
+ BigQueryToolset,
88
+ CalendarToolset,
89
+ DocsToolset,
90
+ GmailToolset,
91
+ SheetsToolset,
92
+ SlidesToolset,
93
+ YoutubeToolset
94
+ };
@@ -205,11 +205,13 @@ function convertOperation(methodData, pathParams) {
205
205
  var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;
206
206
  const parameters = [];
207
207
  for (const paramName of pathParams) {
208
+ const paramData = methodData.parameters && Object.hasOwn(methodData.parameters, paramName) ? methodData.parameters[paramName] : void 0;
208
209
  parameters.push({
209
210
  name: paramName,
210
211
  in: "path",
212
+ ...(paramData == null ? void 0 : paramData.description) !== void 0 ? { description: paramData.description } : {},
211
213
  required: true,
212
- schema: { type: "string" }
214
+ schema: paramData ? convertParameterSchema(paramData) : { type: "string" }
213
215
  });
214
216
  }
215
217
  const pathParamSet = new Set(pathParams);
@@ -273,10 +275,10 @@ function convertOperation(methodData, pathParams) {
273
275
  }
274
276
  __name(convertOperation, "convertOperation");
275
277
  function convertMethods(methods, _resourcePath, openapiSpec) {
276
- var _a, _b;
278
+ var _a, _b, _c;
277
279
  for (const methodData of Object.values(methods)) {
278
280
  const httpMethod = ((_a = methodData.httpMethod) != null ? _a : "GET").toLowerCase();
279
- let restPath = ((_b = methodData.path) != null ? _b : "/").replace(
281
+ let restPath = ((_c = (_b = methodData.flatPath) != null ? _b : methodData.path) != null ? _c : "/").replace(
280
282
  /\{\+([^{}]+)\}/g,
281
283
  (_match, paramName) => `{${paramName}}`
282
284
  );