@google/adk 2.4.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 (326) 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 +282 -55
  7. package/dist/cjs/agents/base_agent.js +111 -68
  8. package/dist/cjs/agents/functions.js +62 -85
  9. package/dist/cjs/agents/instructions.js +7 -6
  10. package/dist/cjs/agents/invocation_context.js +2 -2
  11. package/dist/cjs/agents/llm_agent.js +105 -95
  12. package/dist/cjs/agents/processors/content_processor_utils.js +42 -15
  13. package/dist/cjs/agents/processors/content_request_processor.js +28 -11
  14. package/dist/cjs/agents/processors/context_compactor_request_processor.js +5 -1
  15. package/dist/cjs/agents/processors/instructions_llm_request_processor.js +1 -1
  16. package/dist/cjs/agents/processors/nl_planning_processor.js +2 -1
  17. package/dist/cjs/artifacts/file_artifact_service.js +1 -1
  18. package/dist/cjs/cli/cli_eval.js +884 -17
  19. package/dist/cjs/cli/utils/cleanup.js +84 -0
  20. package/dist/cjs/cli/utils/envs.js +33 -2
  21. package/dist/cjs/cli/utils/evals.js +75 -8
  22. package/dist/cjs/cli/utils/logs.js +128 -9
  23. package/dist/cjs/cli/utils/path_validation.js +83 -0
  24. package/dist/cjs/code_executors/container_code_executor.js +158 -36
  25. package/dist/cjs/common.js +50 -12
  26. package/dist/cjs/context/compaction_utils.js +19 -0
  27. package/dist/cjs/events/event.js +7 -3
  28. package/dist/cjs/features/feature_registry.js +5 -0
  29. package/dist/cjs/index.js +29 -14
  30. package/dist/cjs/models/google_llm.js +33 -2
  31. package/dist/cjs/models/interactions_utils.js +3 -0
  32. package/dist/cjs/plugins/base_plugin.js +45 -21
  33. package/dist/cjs/plugins/plugin_manager.js +27 -0
  34. package/dist/cjs/runner/runner.js +306 -189
  35. package/dist/cjs/sessions/base_session_service.js +1 -4
  36. package/dist/cjs/sessions/database_session_service.js +191 -19
  37. package/dist/cjs/sessions/db/operations.js +70 -1
  38. package/dist/cjs/sessions/db/schema.js +4 -0
  39. package/dist/cjs/sessions/in_memory_session_service.js +2 -2
  40. package/dist/cjs/sessions/vertex_ai_session_service.js +11 -3
  41. package/dist/cjs/skills/loader.js +29 -28
  42. package/dist/cjs/telemetry/api/instrumentation.js +632 -0
  43. package/dist/cjs/telemetry/api/internal/common/accumulators.js +169 -0
  44. package/dist/cjs/telemetry/api/internal/common/attributes.js +131 -0
  45. package/dist/cjs/telemetry/api/internal/common/config.js +159 -0
  46. package/dist/cjs/telemetry/api/internal/common/error.js +98 -0
  47. package/dist/cjs/telemetry/api/internal/common/finish_reason.js +63 -0
  48. package/dist/cjs/telemetry/api/internal/common/genai_messages.js +217 -0
  49. package/dist/cjs/telemetry/api/internal/common/http_exchange.js +169 -0
  50. package/dist/cjs/telemetry/api/internal/common/provider_name.js +87 -0
  51. package/dist/cjs/telemetry/api/internal/common/redaction.js +148 -0
  52. package/dist/cjs/telemetry/api/internal/common/serialization.js +58 -0
  53. package/dist/cjs/telemetry/api/internal/common/token_usage.js +118 -0
  54. package/dist/cjs/telemetry/api/internal/logs/inference.js +50 -0
  55. package/dist/cjs/telemetry/api/internal/logs/logger.js +46 -0
  56. package/dist/cjs/telemetry/api/internal/logs/mcp.js +141 -0
  57. package/dist/cjs/telemetry/api/internal/metrics/agent.js +128 -0
  58. package/dist/cjs/telemetry/api/internal/metrics/inference_start_hook.js +56 -0
  59. package/dist/cjs/telemetry/api/internal/metrics/meters.js +189 -0
  60. package/dist/cjs/telemetry/api/internal/metrics/tool.js +147 -0
  61. package/dist/cjs/telemetry/api/internal/metrics/workflow.js +132 -0
  62. package/dist/cjs/telemetry/api/internal/trace/agent.js +52 -0
  63. package/dist/cjs/telemetry/api/internal/trace/compaction.js +78 -0
  64. package/dist/cjs/telemetry/api/internal/trace/inference.js +132 -0
  65. package/dist/cjs/telemetry/api/internal/trace/live.js +52 -0
  66. package/dist/cjs/telemetry/api/internal/trace/node.js +73 -0
  67. package/dist/cjs/telemetry/api/internal/trace/propagation.js +67 -0
  68. package/dist/cjs/telemetry/api/internal/trace/tool.js +122 -0
  69. package/dist/cjs/telemetry/api/internal/trace/tracer.js +77 -0
  70. package/dist/cjs/telemetry/api/internal/trace/workflow.js +77 -0
  71. package/dist/cjs/telemetry/export/agent_engine.js +90 -0
  72. package/dist/cjs/telemetry/export/agent_runtime.js +73 -0
  73. package/dist/cjs/telemetry/export/google_cloud.js +763 -0
  74. package/dist/cjs/telemetry/export/request_driven_metric_reader.js +303 -0
  75. package/dist/cjs/telemetry/{setup.js → export/setup.js} +72 -5
  76. package/dist/cjs/tools/agent_tool.js +9 -1
  77. package/dist/cjs/tools/application_integration_tool/application_integration_toolset.js +22 -34
  78. package/dist/cjs/tools/application_integration_tool/clients/connections_client.js +60 -20
  79. package/dist/cjs/tools/application_integration_tool/clients/integration_client.js +26 -10
  80. package/dist/cjs/tools/application_integration_tool/integration_connector_tool.js +14 -23
  81. package/dist/cjs/tools/base_toolset.js +1 -1
  82. package/dist/cjs/tools/computer_use/base_computer.js +125 -0
  83. package/dist/cjs/tools/computer_use/computer_use_actions.js +502 -0
  84. package/dist/cjs/tools/computer_use/computer_use_tool.js +244 -0
  85. package/dist/cjs/tools/computer_use/computer_use_toolset.js +360 -0
  86. package/dist/cjs/tools/function_tool.js +15 -5
  87. package/dist/cjs/tools/google_api_tool/google_api_toolset.js +3 -2
  88. package/dist/cjs/tools/google_api_tool/googleapi_to_openapi_converter.js +3 -1
  89. package/dist/cjs/tools/load_artifacts_tool.js +15 -5
  90. package/dist/cjs/tools/load_memory_tool.js +2 -5
  91. package/dist/cjs/tools/mcp/mcp_session_manager.js +23 -3
  92. package/dist/cjs/tools/mcp/mcp_tool.js +7 -3
  93. package/dist/cjs/tools/mcp/mcp_toolset.js +18 -6
  94. package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +30 -29
  95. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +2 -2
  96. package/dist/cjs/tools/openapi_tool/rest_api_tool.js +45 -14
  97. package/dist/cjs/tools/skill/load_skill_resource_tool.js +7 -0
  98. package/dist/cjs/tools/skill/load_skill_tool.js +3 -0
  99. package/dist/cjs/tools/skill/run_skill_script_tool.js +12 -2
  100. package/dist/cjs/tools/toolbox_toolset.js +47 -28
  101. package/dist/cjs/utils/async_queue.js +37 -3
  102. package/dist/cjs/utils/client_labels.js +9 -11
  103. package/dist/cjs/utils/env_aware_utils.js +13 -7
  104. package/dist/cjs/utils/error_utils.js +40 -2
  105. package/dist/cjs/utils/failover_utils.js +10 -9
  106. package/dist/cjs/utils/gemini_schema_util.js +125 -12
  107. package/dist/cjs/utils/id_provider.js +63 -0
  108. package/dist/cjs/utils/model_name.js +15 -0
  109. package/dist/cjs/utils/simple_zod_to_json.js +13 -31
  110. package/dist/cjs/utils/ssrf_guard.js +46 -16
  111. package/dist/cjs/version.js +1 -1
  112. package/dist/cjs/workflow/index.js +2 -0
  113. package/dist/cjs/workflow/node_runner.js +24 -80
  114. package/dist/cjs/workflow/nodes/parallel_worker.js +18 -7
  115. package/dist/cjs/workflow/run_llm_agent_as_node.js +19 -14
  116. package/dist/cjs/workflow/utils/retry_utils.js +2 -2
  117. package/dist/cjs/workflow/workflow.js +12 -12
  118. package/dist/esm/a2a/a2a_remote_agent.js +23 -3
  119. package/dist/esm/a2a/a2a_remote_agent_utils.js +8 -4
  120. package/dist/esm/a2a/agent_card.js +5 -83
  121. package/dist/esm/a2a/agent_to_a2a.js +7 -0
  122. package/dist/esm/a2a/event_converter_utils.js +10 -3
  123. package/dist/esm/agents/agent_engine_client.js +293 -55
  124. package/dist/esm/agents/base_agent.js +111 -72
  125. package/dist/esm/agents/functions.js +67 -89
  126. package/dist/esm/agents/instructions.js +7 -6
  127. package/dist/esm/agents/invocation_context.js +2 -2
  128. package/dist/esm/agents/llm_agent.js +111 -100
  129. package/dist/esm/agents/processors/content_processor_utils.js +42 -15
  130. package/dist/esm/agents/processors/content_request_processor.js +28 -11
  131. package/dist/esm/agents/processors/context_compactor_request_processor.js +5 -1
  132. package/dist/esm/agents/processors/instructions_llm_request_processor.js +1 -1
  133. package/dist/esm/agents/processors/nl_planning_processor.js +2 -1
  134. package/dist/esm/artifacts/file_artifact_service.js +1 -1
  135. package/dist/esm/cli/cli_eval.js +880 -17
  136. package/dist/esm/cli/utils/cleanup.js +56 -0
  137. package/dist/esm/cli/utils/envs.js +33 -2
  138. package/dist/esm/cli/utils/evals.js +74 -8
  139. package/dist/esm/cli/utils/logs.js +128 -9
  140. package/dist/esm/cli/utils/path_validation.js +45 -0
  141. package/dist/esm/code_executors/container_code_executor.js +158 -36
  142. package/dist/esm/common.js +49 -6
  143. package/dist/esm/context/compaction_utils.js +19 -0
  144. package/dist/esm/events/event.js +7 -3
  145. package/dist/esm/features/feature_registry.js +5 -0
  146. package/dist/esm/index.js +27 -15
  147. package/dist/esm/models/google_llm.js +33 -2
  148. package/dist/esm/models/interactions_utils.js +3 -0
  149. package/dist/esm/plugins/base_plugin.js +45 -21
  150. package/dist/esm/plugins/plugin_manager.js +27 -0
  151. package/dist/esm/runner/runner.js +310 -192
  152. package/dist/esm/sessions/base_session_service.js +1 -4
  153. package/dist/esm/sessions/database_session_service.js +191 -19
  154. package/dist/esm/sessions/db/operations.js +70 -1
  155. package/dist/esm/sessions/db/schema.js +4 -0
  156. package/dist/esm/sessions/in_memory_session_service.js +2 -2
  157. package/dist/esm/sessions/vertex_ai_session_service.js +11 -3
  158. package/dist/esm/skills/loader.js +29 -28
  159. package/dist/esm/telemetry/api/instrumentation.js +655 -0
  160. package/dist/esm/telemetry/api/internal/common/accumulators.js +139 -0
  161. package/dist/esm/telemetry/api/internal/common/attributes.js +94 -0
  162. package/dist/esm/telemetry/api/internal/common/config.js +128 -0
  163. package/dist/esm/telemetry/api/internal/common/error.js +69 -0
  164. package/dist/esm/telemetry/api/internal/common/finish_reason.js +35 -0
  165. package/dist/esm/telemetry/api/internal/common/genai_messages.js +188 -0
  166. package/dist/esm/telemetry/api/internal/common/http_exchange.js +142 -0
  167. package/dist/esm/telemetry/api/internal/common/provider_name.js +59 -0
  168. package/dist/esm/telemetry/api/internal/common/redaction.js +121 -0
  169. package/dist/esm/telemetry/api/internal/common/serialization.js +30 -0
  170. package/dist/esm/telemetry/api/internal/common/token_usage.js +85 -0
  171. package/dist/esm/telemetry/api/internal/logs/inference.js +23 -0
  172. package/dist/esm/telemetry/api/internal/logs/logger.js +19 -0
  173. package/dist/esm/telemetry/api/internal/logs/mcp.js +113 -0
  174. package/dist/esm/telemetry/api/internal/metrics/agent.js +107 -0
  175. package/dist/esm/telemetry/api/internal/metrics/inference_start_hook.js +29 -0
  176. package/dist/esm/telemetry/api/internal/metrics/meters.js +165 -0
  177. package/dist/esm/telemetry/api/internal/metrics/tool.js +119 -0
  178. package/dist/esm/telemetry/api/internal/metrics/workflow.js +112 -0
  179. package/dist/esm/telemetry/api/internal/trace/agent.js +25 -0
  180. package/dist/esm/telemetry/api/internal/trace/compaction.js +50 -0
  181. package/dist/esm/telemetry/api/internal/trace/inference.js +107 -0
  182. package/dist/esm/telemetry/api/internal/trace/live.js +28 -0
  183. package/dist/esm/telemetry/api/internal/trace/node.js +44 -0
  184. package/dist/esm/telemetry/api/internal/trace/propagation.js +39 -0
  185. package/dist/esm/telemetry/api/internal/trace/tool.js +96 -0
  186. package/dist/esm/telemetry/api/internal/trace/tracer.js +52 -0
  187. package/dist/esm/telemetry/api/internal/trace/workflow.js +54 -0
  188. package/dist/esm/telemetry/export/agent_engine.js +67 -0
  189. package/dist/esm/telemetry/export/agent_runtime.js +46 -0
  190. package/dist/esm/telemetry/export/google_cloud.js +733 -0
  191. package/dist/esm/telemetry/export/request_driven_metric_reader.js +276 -0
  192. package/dist/esm/telemetry/export/setup.js +160 -0
  193. package/dist/esm/tools/agent_tool.js +9 -1
  194. package/dist/esm/tools/application_integration_tool/application_integration_toolset.js +23 -35
  195. package/dist/esm/tools/application_integration_tool/clients/connections_client.js +64 -21
  196. package/dist/esm/tools/application_integration_tool/clients/integration_client.js +26 -10
  197. package/dist/esm/tools/application_integration_tool/integration_connector_tool.js +14 -23
  198. package/dist/esm/tools/base_toolset.js +1 -1
  199. package/dist/esm/tools/computer_use/base_computer.js +99 -0
  200. package/dist/esm/tools/computer_use/computer_use_actions.js +477 -0
  201. package/dist/esm/tools/computer_use/computer_use_tool.js +217 -0
  202. package/dist/esm/tools/computer_use/computer_use_toolset.js +344 -0
  203. package/dist/esm/tools/function_tool.js +15 -5
  204. package/dist/esm/tools/google_api_tool/google_api_toolset.js +3 -2
  205. package/dist/esm/tools/google_api_tool/googleapi_to_openapi_converter.js +3 -1
  206. package/dist/esm/tools/load_artifacts_tool.js +15 -5
  207. package/dist/esm/tools/load_memory_tool.js +2 -5
  208. package/dist/esm/tools/mcp/mcp_session_manager.js +23 -3
  209. package/dist/esm/tools/mcp/mcp_tool.js +7 -3
  210. package/dist/esm/tools/mcp/mcp_toolset.js +18 -6
  211. package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +27 -26
  212. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/oauth2_exchanger.js +2 -2
  213. package/dist/esm/tools/openapi_tool/rest_api_tool.js +45 -14
  214. package/dist/esm/tools/skill/load_skill_resource_tool.js +7 -0
  215. package/dist/esm/tools/skill/load_skill_tool.js +3 -0
  216. package/dist/esm/tools/skill/run_skill_script_tool.js +12 -2
  217. package/dist/esm/tools/toolbox_toolset.js +47 -28
  218. package/dist/esm/utils/async_queue.js +37 -3
  219. package/dist/esm/utils/client_labels.js +9 -11
  220. package/dist/esm/utils/env_aware_utils.js +12 -7
  221. package/dist/esm/utils/error_utils.js +37 -1
  222. package/dist/esm/utils/failover_utils.js +10 -9
  223. package/dist/esm/utils/gemini_schema_util.js +124 -11
  224. package/dist/esm/utils/id_provider.js +33 -0
  225. package/dist/esm/utils/model_name.js +14 -0
  226. package/dist/esm/utils/simple_zod_to_json.js +13 -31
  227. package/dist/esm/utils/ssrf_guard.js +55 -15
  228. package/dist/esm/version.js +1 -1
  229. package/dist/esm/workflow/index.js +2 -1
  230. package/dist/esm/workflow/node_runner.js +26 -80
  231. package/dist/esm/workflow/nodes/parallel_worker.js +16 -6
  232. package/dist/esm/workflow/run_llm_agent_as_node.js +19 -14
  233. package/dist/esm/workflow/utils/retry_utils.js +2 -2
  234. package/dist/esm/workflow/workflow.js +12 -12
  235. package/dist/types/a2a/a2a_remote_agent.d.ts +6 -0
  236. package/dist/types/a2a/a2a_remote_agent_utils.d.ts +3 -2
  237. package/dist/types/agents/agent_engine_client.d.ts +121 -3
  238. package/dist/types/agents/base_agent.d.ts +2 -0
  239. package/dist/types/agents/processors/content_processor_utils.d.ts +9 -9
  240. package/dist/types/agents/run_config.d.ts +14 -0
  241. package/dist/types/cli/cli_eval.d.ts +172 -9
  242. package/dist/types/cli/utils/cleanup.d.ts +18 -0
  243. package/dist/types/cli/utils/envs.d.ts +13 -3
  244. package/dist/types/cli/utils/evals.d.ts +64 -1
  245. package/dist/types/cli/utils/logs.d.ts +19 -2
  246. package/dist/types/cli/utils/path_validation.d.ts +30 -0
  247. package/dist/types/code_executors/container_code_executor.d.ts +49 -8
  248. package/dist/types/common.d.ts +16 -9
  249. package/dist/types/context/compaction_utils.d.ts +13 -1
  250. package/dist/types/events/event.d.ts +3 -0
  251. package/dist/types/features/feature_registry.d.ts +1 -0
  252. package/dist/types/index.d.ts +9 -6
  253. package/dist/types/plugins/base_plugin.d.ts +50 -21
  254. package/dist/types/plugins/plugin_manager.d.ts +13 -0
  255. package/dist/types/runner/runner.d.ts +11 -0
  256. package/dist/types/sessions/base_session_service.d.ts +0 -2
  257. package/dist/types/sessions/db/operations.d.ts +2 -1
  258. package/dist/types/sessions/db/schema.d.ts +5 -3
  259. package/dist/types/telemetry/api/instrumentation.d.ts +259 -0
  260. package/dist/types/telemetry/api/internal/common/accumulators.d.ts +91 -0
  261. package/dist/types/telemetry/api/internal/common/attributes.d.ts +90 -0
  262. package/dist/types/telemetry/api/internal/common/config.d.ts +61 -0
  263. package/dist/types/telemetry/api/internal/common/error.d.ts +29 -0
  264. package/dist/types/telemetry/api/internal/common/finish_reason.d.ts +18 -0
  265. package/dist/types/telemetry/api/internal/common/genai_messages.d.ts +26 -0
  266. package/dist/types/telemetry/api/internal/common/http_exchange.d.ts +50 -0
  267. package/dist/types/telemetry/api/internal/common/provider_name.d.ts +16 -0
  268. package/dist/types/telemetry/api/internal/common/redaction.d.ts +14 -0
  269. package/dist/types/telemetry/api/internal/common/serialization.d.ts +18 -0
  270. package/dist/types/telemetry/api/internal/common/token_usage.d.ts +47 -0
  271. package/dist/types/telemetry/api/internal/logs/inference.d.ts +15 -0
  272. package/dist/types/telemetry/api/internal/logs/logger.d.ts +13 -0
  273. package/dist/types/telemetry/api/internal/logs/mcp.d.ts +31 -0
  274. package/dist/types/telemetry/api/internal/metrics/agent.d.ts +28 -0
  275. package/dist/types/telemetry/api/internal/metrics/inference_start_hook.d.ts +12 -0
  276. package/dist/types/telemetry/api/internal/metrics/meters.d.ts +57 -0
  277. package/dist/types/telemetry/api/internal/metrics/tool.d.ts +44 -0
  278. package/dist/types/telemetry/api/internal/metrics/workflow.d.ts +32 -0
  279. package/dist/types/telemetry/api/internal/trace/agent.d.ts +14 -0
  280. package/dist/types/telemetry/api/internal/trace/compaction.d.ts +20 -0
  281. package/dist/types/telemetry/api/internal/trace/inference.d.ts +31 -0
  282. package/dist/types/telemetry/api/internal/trace/live.d.ts +21 -0
  283. package/dist/types/telemetry/api/internal/trace/node.d.ts +22 -0
  284. package/dist/types/telemetry/api/internal/trace/propagation.d.ts +22 -0
  285. package/dist/types/telemetry/api/internal/trace/tool.d.ts +57 -0
  286. package/dist/types/telemetry/api/internal/trace/tracer.d.ts +31 -0
  287. package/dist/types/telemetry/api/internal/trace/workflow.d.ts +21 -0
  288. package/dist/types/telemetry/export/agent_engine.d.ts +23 -0
  289. package/dist/types/telemetry/export/agent_runtime.d.ts +40 -0
  290. package/dist/types/telemetry/export/google_cloud.d.ts +189 -0
  291. package/dist/types/telemetry/export/request_driven_metric_reader.d.ts +144 -0
  292. package/dist/types/telemetry/{setup.d.ts → export/setup.d.ts} +3 -0
  293. package/dist/types/tools/agent_tool.d.ts +1 -1
  294. package/dist/types/tools/application_integration_tool/clients/connections_client.d.ts +13 -4
  295. package/dist/types/tools/base_toolset.d.ts +1 -1
  296. package/dist/types/tools/computer_use/base_computer.d.ts +281 -0
  297. package/dist/types/tools/computer_use/computer_use_actions.d.ts +53 -0
  298. package/dist/types/tools/computer_use/computer_use_tool.d.ts +108 -0
  299. package/dist/types/tools/computer_use/computer_use_toolset.d.ts +132 -0
  300. package/dist/types/tools/google_api_tool/google_api_toolset.d.ts +2 -0
  301. package/dist/types/tools/load_artifacts_tool.d.ts +5 -1
  302. package/dist/types/tools/load_memory_tool.d.ts +13 -7
  303. package/dist/types/tools/mcp/mcp_session_manager.d.ts +16 -0
  304. package/dist/types/tools/openapi_tool/auth/auth_helpers.d.ts +8 -8
  305. package/dist/types/tools/openapi_tool/openapi_spec_parser/operation_parser.d.ts +7 -3
  306. package/dist/types/tools/toolbox_toolset.d.ts +15 -20
  307. package/dist/types/utils/async_queue.d.ts +14 -0
  308. package/dist/types/utils/env_aware_utils.d.ts +11 -0
  309. package/dist/types/utils/error_utils.d.ts +4 -0
  310. package/dist/types/utils/gemini_schema_util.d.ts +27 -6
  311. package/dist/types/utils/id_provider.d.ts +43 -0
  312. package/dist/types/utils/model_name.d.ts +8 -0
  313. package/dist/types/utils/ssrf_guard.d.ts +2 -0
  314. package/dist/types/version.d.ts +1 -1
  315. package/dist/types/workflow/index.d.ts +1 -1
  316. package/dist/types/workflow/nodes/parallel_worker.d.ts +8 -1
  317. package/dist/web/index_web.js +86 -88
  318. package/dist/web/index_web.js.map +4 -4
  319. package/package.json +13 -15
  320. package/dist/cjs/telemetry/google_cloud.js +0 -116
  321. package/dist/cjs/telemetry/tracing.js +0 -393
  322. package/dist/esm/telemetry/google_cloud.js +0 -99
  323. package/dist/esm/telemetry/setup.js +0 -88
  324. package/dist/esm/telemetry/tracing.js +0 -361
  325. package/dist/types/telemetry/google_cloud.d.ts +0 -9
  326. package/dist/types/telemetry/tracing.d.ts +0 -143
@@ -0,0 +1,502 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ "use strict";
8
+ var __defProp = Object.defineProperty;
9
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
+ var __getOwnPropNames = Object.getOwnPropertyNames;
11
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
13
+ var __export = (target, all) => {
14
+ for (var name in all)
15
+ __defProp(target, name, { get: all[name], enumerable: true });
16
+ };
17
+ var __copyProps = (to, from, except, desc) => {
18
+ if (from && typeof from === "object" || typeof from === "function") {
19
+ for (let key of __getOwnPropNames(from))
20
+ if (!__hasOwnProp.call(to, key) && key !== except)
21
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
22
+ }
23
+ return to;
24
+ };
25
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
26
+ var computer_use_actions_exports = {};
27
+ __export(computer_use_actions_exports, {
28
+ LEGACY_ACTION_NAMES: () => LEGACY_ACTION_NAMES,
29
+ OPTIONAL_KEY_ACTIONS: () => OPTIONAL_KEY_ACTIONS,
30
+ OPTIONAL_MOUSE_ACTIONS: () => OPTIONAL_MOUSE_ACTIONS,
31
+ createComputerActions: () => createComputerActions,
32
+ unimplementedOptionalActions: () => unimplementedOptionalActions
33
+ });
34
+ module.exports = __toCommonJS(computer_use_actions_exports);
35
+ var import_genai = require("@google/genai");
36
+ var import_env_aware_utils = require("../../utils/env_aware_utils.js");
37
+ var import_logger = require("../../utils/logger.js");
38
+ var import_ssrf_guard = require("../../utils/ssrf_guard.js");
39
+ /**
40
+ * @license
41
+ * Copyright 2026 Google LLC
42
+ * SPDX-License-Identifier: Apache-2.0
43
+ */
44
+ const LEGACY_ACTION_NAMES = [
45
+ "open_web_browser",
46
+ "click_at",
47
+ "hover_at",
48
+ "type_text_at",
49
+ "scroll_document",
50
+ "scroll_at",
51
+ "wait",
52
+ "go_back",
53
+ "go_forward",
54
+ "search",
55
+ "navigate",
56
+ "key_combination",
57
+ "drag_and_drop",
58
+ "current_state"
59
+ ];
60
+ const OPTIONAL_MOUSE_ACTIONS = [
61
+ "double_click",
62
+ "triple_click",
63
+ "middle_click",
64
+ "right_click",
65
+ "mouse_down",
66
+ "mouse_up"
67
+ ];
68
+ const OPTIONAL_KEY_ACTIONS = ["key_down", "key_up"];
69
+ const MOUSE_METHODS = {
70
+ double_click: "doubleClick",
71
+ triple_click: "tripleClick",
72
+ middle_click: "middleClick",
73
+ right_click: "rightClick",
74
+ mouse_down: "mouseDown",
75
+ mouse_up: "mouseUp"
76
+ };
77
+ const KEY_METHODS = {
78
+ key_down: "keyDown",
79
+ key_up: "keyUp"
80
+ };
81
+ const SCROLL_DIRECTIONS = [
82
+ "up",
83
+ "down",
84
+ "left",
85
+ "right"
86
+ ];
87
+ const BLOCKED_HOSTNAMES = /* @__PURE__ */ new Set(["localhost", "metadata", "metadata.goog"]);
88
+ const BLOCKED_HOSTNAME_SUFFIXES = [
89
+ ".localhost",
90
+ ".local",
91
+ ".internal",
92
+ ".metadata.goog"
93
+ ];
94
+ const URL_AUTHORITY = /^[a-z][a-z0-9+.-]*:\/\/([^/?#]*)/i;
95
+ const URL_REFUSED_ERROR = "navigate refused: url must be http(s) and must not target a private or link-local address.";
96
+ const INTEGER = { type: import_genai.Type.INTEGER };
97
+ const NUMBER = { type: import_genai.Type.NUMBER };
98
+ const STRING = { type: import_genai.Type.STRING };
99
+ const BOOLEAN = { type: import_genai.Type.BOOLEAN };
100
+ const STRING_ARRAY = { type: import_genai.Type.ARRAY, items: { type: import_genai.Type.STRING } };
101
+ const DIRECTION = { type: import_genai.Type.STRING, enum: [...SCROLL_DIRECTIONS] };
102
+ function unimplementedOptionalActions(computer) {
103
+ return [
104
+ ...OPTIONAL_MOUSE_ACTIONS.filter(
105
+ (name) => typeof computer[MOUSE_METHODS[name]] !== "function"
106
+ ),
107
+ ...OPTIONAL_KEY_ACTIONS.filter(
108
+ (name) => typeof computer[KEY_METHODS[name]] !== "function"
109
+ )
110
+ ];
111
+ }
112
+ __name(unimplementedOptionalActions, "unimplementedOptionalActions");
113
+ function createComputerActions(options) {
114
+ return [
115
+ ...createLegacyActions(options),
116
+ ...createModernActions(options.computer),
117
+ ...createOptionalActions(options.computer)
118
+ ];
119
+ }
120
+ __name(createComputerActions, "createComputerActions");
121
+ function createLegacyActions({
122
+ computer,
123
+ allowPrivateNetworkAccess
124
+ }) {
125
+ return [
126
+ {
127
+ name: "open_web_browser",
128
+ description: "Opens the web browser.",
129
+ parameters: objectSchema({}),
130
+ execute: /* @__PURE__ */ __name(() => computer.openWebBrowser(), "execute")
131
+ },
132
+ {
133
+ name: "click_at",
134
+ description: "Clicks at a specific x, y coordinate on the webpage.",
135
+ parameters: objectSchema({ x: INTEGER, y: INTEGER }),
136
+ execute: /* @__PURE__ */ __name((args) => computer.clickAt(readNumber(args, "x"), readNumber(args, "y")), "execute")
137
+ },
138
+ {
139
+ name: "hover_at",
140
+ description: "Hovers at a specific x, y coordinate on the webpage. May be used to explore sub-menus that appear on hover.",
141
+ parameters: objectSchema({ x: INTEGER, y: INTEGER }),
142
+ execute: /* @__PURE__ */ __name((args) => computer.hoverAt(readNumber(args, "x"), readNumber(args, "y")), "execute")
143
+ },
144
+ {
145
+ name: "type_text_at",
146
+ description: "Types text at a specific x, y coordinate. Presses ENTER after typing unless press_enter is false, and clears existing content before typing unless clear_before_typing is false.",
147
+ parameters: objectSchema(
148
+ {
149
+ x: INTEGER,
150
+ y: INTEGER,
151
+ text: STRING,
152
+ press_enter: BOOLEAN,
153
+ clear_before_typing: BOOLEAN
154
+ },
155
+ ["x", "y", "text"]
156
+ ),
157
+ execute: /* @__PURE__ */ __name((args) => computer.typeTextAt(
158
+ readNumber(args, "x"),
159
+ readNumber(args, "y"),
160
+ readString(args, "text"),
161
+ readBoolean(args, "press_enter", true),
162
+ readBoolean(args, "clear_before_typing", true)
163
+ ), "execute")
164
+ },
165
+ {
166
+ name: "scroll_document",
167
+ description: 'Scrolls the entire webpage "up", "down", "left" or "right" based on direction.',
168
+ parameters: objectSchema({ direction: DIRECTION }),
169
+ execute: /* @__PURE__ */ __name((args) => computer.scrollDocument(readDirection(args)), "execute")
170
+ },
171
+ {
172
+ name: "scroll_at",
173
+ description: "Scrolls up, down, right, or left at an x, y coordinate by magnitude.",
174
+ parameters: objectSchema({
175
+ x: INTEGER,
176
+ y: INTEGER,
177
+ direction: DIRECTION,
178
+ magnitude: INTEGER
179
+ }),
180
+ execute: /* @__PURE__ */ __name((args) => computer.scrollAt(
181
+ readNumber(args, "x"),
182
+ readNumber(args, "y"),
183
+ readDirection(args),
184
+ readNumber(args, "magnitude")
185
+ ), "execute")
186
+ },
187
+ {
188
+ name: "wait",
189
+ description: "Waits for the specified number of seconds.",
190
+ parameters: objectSchema({ seconds: NUMBER }, []),
191
+ execute: /* @__PURE__ */ __name((args) => computer.wait(Math.max(0, Math.ceil(readNumber(args, "seconds", 1)))), "execute")
192
+ },
193
+ {
194
+ name: "go_back",
195
+ description: "Navigates back to the previous webpage in the browser history.",
196
+ parameters: objectSchema({}),
197
+ execute: /* @__PURE__ */ __name(() => computer.goBack(), "execute")
198
+ },
199
+ {
200
+ name: "go_forward",
201
+ description: "Navigates forward to the next webpage in the browser history.",
202
+ parameters: objectSchema({}),
203
+ execute: /* @__PURE__ */ __name(() => computer.goForward(), "execute")
204
+ },
205
+ {
206
+ name: "search",
207
+ description: "Directly jumps to a search engine home page. Used when you need to start with a search.",
208
+ parameters: objectSchema({}),
209
+ execute: /* @__PURE__ */ __name(() => computer.search(), "execute")
210
+ },
211
+ {
212
+ name: "navigate",
213
+ description: "Navigates directly to a specified URL.",
214
+ parameters: objectSchema({ url: STRING }),
215
+ execute: /* @__PURE__ */ __name((args) => navigate({ computer, url: args["url"], allowPrivateNetworkAccess }), "execute")
216
+ },
217
+ {
218
+ name: "key_combination",
219
+ description: 'Presses keyboard keys and combinations, such as "control+c" or "enter".',
220
+ parameters: objectSchema({ keys: STRING_ARRAY }),
221
+ execute: /* @__PURE__ */ __name((args) => computer.keyCombination(readStringArray(args, "keys")), "execute")
222
+ },
223
+ {
224
+ name: "drag_and_drop",
225
+ description: "Drags an element from an x, y coordinate and drops it at a destination_x, destination_y coordinate.",
226
+ parameters: objectSchema({
227
+ x: INTEGER,
228
+ y: INTEGER,
229
+ destination_x: INTEGER,
230
+ destination_y: INTEGER
231
+ }),
232
+ execute: /* @__PURE__ */ __name((args) => computer.dragAndDrop(
233
+ readNumber(args, "x", args["start_x"]),
234
+ readNumber(args, "y", args["start_y"]),
235
+ readNumber(args, "destination_x", args["end_x"]),
236
+ readNumber(args, "destination_y", args["end_y"])
237
+ ), "execute")
238
+ },
239
+ {
240
+ name: "current_state",
241
+ description: "Returns the current state of the current webpage.",
242
+ parameters: objectSchema({}),
243
+ execute: /* @__PURE__ */ __name(() => computer.currentState(), "execute")
244
+ }
245
+ ];
246
+ }
247
+ __name(createLegacyActions, "createLegacyActions");
248
+ function createModernActions(computer) {
249
+ var _a, _b, _c, _d, _e, _f, _g;
250
+ const click = (_a = computer.click) == null ? void 0 : _a.bind(computer);
251
+ const move = (_b = computer.move) == null ? void 0 : _b.bind(computer);
252
+ const type = (_c = computer.type) == null ? void 0 : _c.bind(computer);
253
+ const scroll = (_d = computer.scroll) == null ? void 0 : _d.bind(computer);
254
+ const takeScreenshot = (_e = computer.takeScreenshot) == null ? void 0 : _e.bind(computer);
255
+ const pressKey = (_f = computer.pressKey) == null ? void 0 : _f.bind(computer);
256
+ const hotkey = (_g = computer.hotkey) == null ? void 0 : _g.bind(computer);
257
+ return [
258
+ {
259
+ name: "click",
260
+ description: "Clicks at the specified (x, y) coordinates.",
261
+ parameters: click ? objectSchema({ x: INTEGER, y: INTEGER, button: STRING }, ["x", "y"]) : objectSchema({ x: INTEGER, y: INTEGER }),
262
+ execute: /* @__PURE__ */ __name((args) => {
263
+ const x = readNumber(args, "x");
264
+ const y = readNumber(args, "y");
265
+ return click ? click(x, y, readOptional(args, "button", readString)) : computer.clickAt(x, y);
266
+ }, "execute")
267
+ },
268
+ {
269
+ name: "move",
270
+ description: "Moves the cursor to the specified (x, y) coordinates.",
271
+ parameters: objectSchema({ x: INTEGER, y: INTEGER }),
272
+ execute: /* @__PURE__ */ __name((args) => (move != null ? move : computer.hoverAt.bind(computer))(
273
+ readNumber(args, "x"),
274
+ readNumber(args, "y")
275
+ ), "execute")
276
+ },
277
+ {
278
+ name: "type",
279
+ description: "Types text into the currently focused element.",
280
+ parameters: objectSchema({ text: STRING, press_enter: BOOLEAN }, ["text"]),
281
+ execute: /* @__PURE__ */ __name((args) => {
282
+ const text = readString(args, "text");
283
+ return type ? type(
284
+ text,
285
+ readOptional(
286
+ args,
287
+ "press_enter",
288
+ (a, n) => readBoolean(a, n, false)
289
+ )
290
+ ) : computer.typeText(text, readBoolean(args, "press_enter", false));
291
+ }, "execute")
292
+ },
293
+ {
294
+ name: "scroll",
295
+ description: "Scrolls the webpage at the specified coordinates.",
296
+ parameters: objectSchema(
297
+ {
298
+ x: INTEGER,
299
+ y: INTEGER,
300
+ direction: DIRECTION,
301
+ magnitude_in_pixels: INTEGER
302
+ },
303
+ scroll ? ["x", "y", "direction"] : ["x", "y"]
304
+ ),
305
+ execute: /* @__PURE__ */ __name((args) => {
306
+ const x = readNumber(args, "x");
307
+ const y = readNumber(args, "y");
308
+ return scroll ? scroll(
309
+ x,
310
+ y,
311
+ readDirection(args),
312
+ readOptional(args, "magnitude_in_pixels", readNumber)
313
+ ) : computer.scrollAt(
314
+ x,
315
+ y,
316
+ readDirection(args, "down"),
317
+ readNumber(args, "magnitude_in_pixels", 300)
318
+ );
319
+ }, "execute")
320
+ },
321
+ {
322
+ name: "take_screenshot",
323
+ description: "Takes a screenshot of the current webpage state.",
324
+ parameters: objectSchema({}),
325
+ execute: /* @__PURE__ */ __name(() => takeScreenshot ? takeScreenshot() : computer.currentState(), "execute")
326
+ },
327
+ {
328
+ name: "press_key",
329
+ description: "Presses a single keyboard key.",
330
+ parameters: objectSchema({ key: STRING }),
331
+ execute: /* @__PURE__ */ __name((args) => {
332
+ const key = readString(args, "key");
333
+ return pressKey ? pressKey(key) : computer.keyCombination([key]);
334
+ }, "execute")
335
+ },
336
+ {
337
+ name: "hotkey",
338
+ description: "Presses a combination of keyboard keys simultaneously.",
339
+ parameters: objectSchema({ keys: STRING_ARRAY }),
340
+ execute: /* @__PURE__ */ __name((args) => (hotkey != null ? hotkey : computer.keyCombination.bind(computer))(
341
+ readStringArray(args, "keys")
342
+ ), "execute")
343
+ }
344
+ ];
345
+ }
346
+ __name(createModernActions, "createModernActions");
347
+ function createOptionalActions(computer) {
348
+ var _a, _b;
349
+ const actions = [];
350
+ for (const name of OPTIONAL_MOUSE_ACTIONS) {
351
+ const method = (_a = computer[MOUSE_METHODS[name]]) == null ? void 0 : _a.bind(computer);
352
+ if (!method) {
353
+ continue;
354
+ }
355
+ actions.push({
356
+ name,
357
+ description: `Performs ${name.replace("_", " ")} at the specified (x, y) coordinates.`,
358
+ parameters: objectSchema({ x: INTEGER, y: INTEGER, button: STRING }, [
359
+ "x",
360
+ "y"
361
+ ]),
362
+ execute: /* @__PURE__ */ __name((args) => {
363
+ const button = args["button"];
364
+ return button === void 0 ? method(readNumber(args, "x"), readNumber(args, "y")) : method(
365
+ readNumber(args, "x"),
366
+ readNumber(args, "y"),
367
+ readString(args, "button")
368
+ );
369
+ }, "execute")
370
+ });
371
+ }
372
+ for (const name of OPTIONAL_KEY_ACTIONS) {
373
+ const method = (_b = computer[KEY_METHODS[name]]) == null ? void 0 : _b.bind(computer);
374
+ if (!method) {
375
+ continue;
376
+ }
377
+ actions.push({
378
+ name,
379
+ description: name === "key_down" ? "Presses a keyboard key down and holds it." : "Releases a keyboard key.",
380
+ parameters: objectSchema({ key: STRING }),
381
+ execute: /* @__PURE__ */ __name((args) => method(readString(args, "key")), "execute")
382
+ });
383
+ }
384
+ return actions;
385
+ }
386
+ __name(createOptionalActions, "createOptionalActions");
387
+ async function navigate({
388
+ computer,
389
+ url,
390
+ allowPrivateNetworkAccess
391
+ }) {
392
+ if (typeof url === "string" && await isSafeNavigationUrl(url, allowPrivateNetworkAccess)) {
393
+ return computer.navigate(url);
394
+ }
395
+ import_logger.logger.warn("Refusing navigate(): url failed safety validation.");
396
+ const state = await computer.currentState();
397
+ return { error: URL_REFUSED_ERROR, url: state.url };
398
+ }
399
+ __name(navigate, "navigate");
400
+ async function isSafeNavigationUrl(url, allowPrivateNetworkAccess) {
401
+ var _a;
402
+ if ((_a = URL_AUTHORITY.exec(url)) == null ? void 0 : _a[1].includes("\\")) {
403
+ return false;
404
+ }
405
+ let parsed;
406
+ try {
407
+ parsed = new URL(url);
408
+ } catch {
409
+ return false;
410
+ }
411
+ const hostname = (0, import_ssrf_guard.normalizeHost)(parsed.hostname);
412
+ if (!(0, import_ssrf_guard.isHttpUrl)(parsed) || !hostname) {
413
+ return false;
414
+ }
415
+ if (allowPrivateNetworkAccess) {
416
+ return true;
417
+ }
418
+ if (isBlockedHostname(hostname)) {
419
+ return false;
420
+ }
421
+ if ((0, import_env_aware_utils.isBrowser)() && !(0, import_ssrf_guard.isIpAddress)(hostname)) {
422
+ return true;
423
+ }
424
+ try {
425
+ const addresses = await (0, import_ssrf_guard.resolveHostAddresses)(hostname);
426
+ return !addresses.some(import_ssrf_guard.isNonGlobalAddress);
427
+ } catch {
428
+ return false;
429
+ }
430
+ }
431
+ __name(isSafeNavigationUrl, "isSafeNavigationUrl");
432
+ function isBlockedHostname(hostname) {
433
+ const normalized = hostname.replace(/\.+$/, "").toLowerCase();
434
+ return BLOCKED_HOSTNAMES.has(normalized) || BLOCKED_HOSTNAME_SUFFIXES.some((suffix) => normalized.endsWith(suffix));
435
+ }
436
+ __name(isBlockedHostname, "isBlockedHostname");
437
+ function objectSchema(properties, required = Object.keys(properties)) {
438
+ return { type: import_genai.Type.OBJECT, properties, required };
439
+ }
440
+ __name(objectSchema, "objectSchema");
441
+ function readNumber(args, name, fallback) {
442
+ var _a;
443
+ const value = (_a = args[name]) != null ? _a : fallback;
444
+ if (typeof value !== "number" || !Number.isFinite(value)) {
445
+ throw new Error(argumentError(name, "a number", value));
446
+ }
447
+ return value;
448
+ }
449
+ __name(readNumber, "readNumber");
450
+ function readString(args, name) {
451
+ const value = args[name];
452
+ if (typeof value !== "string") {
453
+ throw new Error(argumentError(name, "a string", value));
454
+ }
455
+ return value;
456
+ }
457
+ __name(readString, "readString");
458
+ function readBoolean(args, name, fallback) {
459
+ var _a;
460
+ const value = (_a = args[name]) != null ? _a : fallback;
461
+ if (typeof value !== "boolean") {
462
+ throw new Error(argumentError(name, "a boolean", value));
463
+ }
464
+ return value;
465
+ }
466
+ __name(readBoolean, "readBoolean");
467
+ function readOptional(args, name, read) {
468
+ return args[name] === void 0 ? void 0 : read(args, name);
469
+ }
470
+ __name(readOptional, "readOptional");
471
+ function readStringArray(args, name) {
472
+ const value = args[name];
473
+ if (!Array.isArray(value) || !value.every((item) => typeof item === "string")) {
474
+ throw new Error(argumentError(name, "a list of strings", value));
475
+ }
476
+ return value;
477
+ }
478
+ __name(readStringArray, "readStringArray");
479
+ function readDirection(args, fallback) {
480
+ var _a;
481
+ const value = (_a = args["direction"]) != null ? _a : fallback;
482
+ const direction = SCROLL_DIRECTIONS.find((d) => d === value);
483
+ if (!direction) {
484
+ throw new Error(
485
+ argumentError("direction", "one of up, down, left, right", value)
486
+ );
487
+ }
488
+ return direction;
489
+ }
490
+ __name(readDirection, "readDirection");
491
+ function argumentError(name, expected, value) {
492
+ return value === void 0 ? `Missing required argument '${name}'.` : `Argument '${name}' must be ${expected}, got ${typeof value}.`;
493
+ }
494
+ __name(argumentError, "argumentError");
495
+ // Annotate the CommonJS export names for ESM import in node:
496
+ 0 && (module.exports = {
497
+ LEGACY_ACTION_NAMES,
498
+ OPTIONAL_KEY_ACTIONS,
499
+ OPTIONAL_MOUSE_ACTIONS,
500
+ createComputerActions,
501
+ unimplementedOptionalActions
502
+ });