@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,193 @@
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 toolbox_toolset_exports = {};
27
+ __export(toolbox_toolset_exports, {
28
+ ToolboxToolset: () => ToolboxToolset,
29
+ isToolboxToolset: () => isToolboxToolset
30
+ });
31
+ module.exports = __toCommonJS(toolbox_toolset_exports);
32
+ var import_base_tool = require("./base_tool.js");
33
+ var import_base_toolset = require("./base_toolset.js");
34
+ var import_function_tool = require("./function_tool.js");
35
+ /**
36
+ * @license
37
+ * Copyright 2026 Google LLC
38
+ * SPDX-License-Identifier: Apache-2.0
39
+ */
40
+ var _a, _b;
41
+ const TOOLBOX_TOOLSET_SIGNATURE_SYMBOL = /* @__PURE__ */ Symbol.for(
42
+ "google.adk.toolboxToolset"
43
+ );
44
+ function isToolboxToolset(obj) {
45
+ return typeof obj === "object" && obj !== null && TOOLBOX_TOOLSET_SIGNATURE_SYMBOL in obj && obj[TOOLBOX_TOOLSET_SIGNATURE_SYMBOL] === true;
46
+ }
47
+ __name(isToolboxToolset, "isToolboxToolset");
48
+ function createUnconfiguredToolboxToolsetClient(serverUrl) {
49
+ const throwMissingClient = /* @__PURE__ */ __name(() => {
50
+ throw new Error(
51
+ `ToolboxToolset requires a ToolboxToolsetClientLike instance (for endpoint "${serverUrl}"). Pass {serverUrl, client} to the ToolboxToolset constructor.`
52
+ );
53
+ }, "throwMissingClient");
54
+ return {
55
+ loadTool: throwMissingClient,
56
+ loadToolset: throwMissingClient,
57
+ close: /* @__PURE__ */ __name(() => {
58
+ }, "close")
59
+ };
60
+ }
61
+ __name(createUnconfiguredToolboxToolsetClient, "createUnconfiguredToolboxToolsetClient");
62
+ function isToolOptionsObject(value) {
63
+ return typeof value === "object" && value !== null && "execute" in value && typeof value.execute === "function";
64
+ }
65
+ __name(isToolOptionsObject, "isToolOptionsObject");
66
+ function wrapPrefixedBaseTool(rawTool, name) {
67
+ return new Proxy(rawTool, {
68
+ get(target, prop, receiver) {
69
+ if (prop === "name") {
70
+ return name;
71
+ }
72
+ if (prop === "_getDeclaration") {
73
+ return () => {
74
+ const declaration = target._getDeclaration();
75
+ return declaration ? { ...declaration, name } : void 0;
76
+ };
77
+ }
78
+ const value = Reflect.get(target, prop, receiver);
79
+ return typeof value === "function" ? value.bind(target) : value;
80
+ }
81
+ });
82
+ }
83
+ __name(wrapPrefixedBaseTool, "wrapPrefixedBaseTool");
84
+ function wrapLoadedTool(rawTool, prefix) {
85
+ var _a2;
86
+ if ((0, import_base_tool.isBaseTool)(rawTool)) {
87
+ const name = prefix ? `${prefix}_${rawTool.name}` : rawTool.name;
88
+ if (name === rawTool.name) {
89
+ return rawTool;
90
+ }
91
+ return wrapPrefixedBaseTool(rawTool, name);
92
+ }
93
+ if (typeof rawTool === "function") {
94
+ const fn = rawTool;
95
+ const baseName = typeof fn.getName === "function" ? fn.getName() : fn.toolName || (fn.name && fn.name !== "callable" ? fn.name : void 0) || "toolbox_tool";
96
+ const name = prefix ? `${prefix}_${baseName}` : baseName;
97
+ const description = typeof fn.getDescription === "function" ? fn.getDescription() : (_a2 = fn.description) != null ? _a2 : "";
98
+ const parameters = typeof fn.getParamSchema === "function" ? fn.getParamSchema() : fn.parameters;
99
+ return new import_function_tool.FunctionTool({
100
+ name,
101
+ description,
102
+ parameters,
103
+ execute: fn
104
+ });
105
+ }
106
+ if (isToolOptionsObject(rawTool)) {
107
+ const baseTool = new import_function_tool.FunctionTool(rawTool);
108
+ if (!prefix) {
109
+ return baseTool;
110
+ }
111
+ return new import_function_tool.FunctionTool({
112
+ ...rawTool,
113
+ name: `${prefix}_${baseTool.name}`
114
+ });
115
+ }
116
+ throw new TypeError(
117
+ "Unsupported Toolbox tool shape: expected a BaseTool, ToolOptions object, or function."
118
+ );
119
+ }
120
+ __name(wrapLoadedTool, "wrapLoadedTool");
121
+ const _ToolboxToolset = class _ToolboxToolset extends (_b = import_base_toolset.BaseToolset, _a = TOOLBOX_TOOLSET_SIGNATURE_SYMBOL, _b) {
122
+ constructor(serverUrlOrOptions, extraOptions) {
123
+ var _a2, _b2, _c, _d, _e;
124
+ const options = typeof serverUrlOrOptions === "string" ? { serverUrl: serverUrlOrOptions, ...extraOptions } : serverUrlOrOptions;
125
+ const normalizedServerUrl = (_a2 = options.serverUrl) == null ? void 0 : _a2.trim();
126
+ if (!options.client && !normalizedServerUrl) {
127
+ throw new Error("Either client or a non-empty serverUrl is required.");
128
+ }
129
+ if ((!options.toolNames || options.toolNames.length === 0) && !options.toolsetName) {
130
+ throw new Error("toolNames and toolsetName cannot both be undefined.");
131
+ }
132
+ super((_b2 = options.toolFilter) != null ? _b2 : [], options.prefix);
133
+ /** A unique symbol to identify ADK ToolboxToolset class. */
134
+ this[_a] = true;
135
+ this.serverUrl = options.serverUrl;
136
+ this.toolsetName = options.toolsetName;
137
+ this.toolNames = options.toolNames;
138
+ this.authTokenGetters = (_c = options.authTokenGetters) != null ? _c : {};
139
+ this.boundParams = (_d = options.boundParams) != null ? _d : {};
140
+ this.toolboxClient = (_e = options.client) != null ? _e : createUnconfiguredToolboxToolsetClient(normalizedServerUrl != null ? normalizedServerUrl : "");
141
+ }
142
+ /**
143
+ * Loads the configured toolset and/or individual tools from the Toolbox
144
+ * client and returns the selected {@link BaseTool} instances.
145
+ */
146
+ async getTools(context) {
147
+ var _a2, _b2;
148
+ const tools = [];
149
+ if (this.toolsetName) {
150
+ const loader = (_a2 = this.toolboxClient.loadToolset) == null ? void 0 : _a2.bind(this.toolboxClient);
151
+ if (!loader) {
152
+ throw new Error("ToolboxClient does not implement loadToolset.");
153
+ }
154
+ const loadedToolset = await loader(
155
+ this.toolsetName,
156
+ this.authTokenGetters,
157
+ this.boundParams
158
+ );
159
+ for (const rawTool of loadedToolset) {
160
+ tools.push(wrapLoadedTool(rawTool, this.prefix));
161
+ }
162
+ }
163
+ if (this.toolNames && this.toolNames.length > 0) {
164
+ const loader = (_b2 = this.toolboxClient.loadTool) == null ? void 0 : _b2.bind(this.toolboxClient);
165
+ if (!loader) {
166
+ throw new Error("ToolboxClient does not implement loadTool.");
167
+ }
168
+ const loadedSingleTools = await Promise.all(
169
+ this.toolNames.map(
170
+ (toolName) => loader(toolName, this.authTokenGetters, this.boundParams)
171
+ )
172
+ );
173
+ for (const rawTool of loadedSingleTools) {
174
+ tools.push(wrapLoadedTool(rawTool, this.prefix));
175
+ }
176
+ }
177
+ return tools.filter((tool) => this.isToolSelected(tool, context));
178
+ }
179
+ /**
180
+ * Closes the underlying Toolbox client.
181
+ */
182
+ async close() {
183
+ var _a2, _b2;
184
+ await ((_b2 = (_a2 = this.toolboxClient).close) == null ? void 0 : _b2.call(_a2));
185
+ }
186
+ };
187
+ __name(_ToolboxToolset, "ToolboxToolset");
188
+ let ToolboxToolset = _ToolboxToolset;
189
+ // Annotate the CommonJS export names for ESM import in node:
190
+ 0 && (module.exports = {
191
+ ToolboxToolset,
192
+ isToolboxToolset
193
+ });
@@ -67,20 +67,7 @@ const _WebMCPToolset = class _WebMCPToolset extends import_base_toolset.BaseTool
67
67
  document: this.doc
68
68
  })
69
69
  );
70
- const filter = this.toolFilter;
71
- if (!filter || Array.isArray(filter) && filter.length === 0) {
72
- return tools;
73
- }
74
- if (Array.isArray(filter)) {
75
- return tools.filter((tool) => filter.includes(tool.name));
76
- }
77
- if (context) {
78
- return tools.filter((tool) => filter(tool, context));
79
- }
80
- import_logger.logger.warn(
81
- "WebMCPToolset: a ToolPredicate toolFilter was provided but getTools() was called without a ReadonlyContext. The filter will not be applied."
82
- );
83
- return tools;
70
+ return tools.filter((tool) => this.isToolSelected(tool, context));
84
71
  }
85
72
  /**
86
73
  * Subscribes to the WebMCP `toolchange` event, which fires when the page
@@ -52,14 +52,43 @@ const _AsyncQueue = class _AsyncQueue {
52
52
  * immediately; otherwise the value is buffered. No-op once closed/failed.
53
53
  */
54
54
  push(value) {
55
- if (this.closed) return;
55
+ this.enqueue(value);
56
+ }
57
+ /**
58
+ * Enqueues a value like {@link push}, and resolves once the consumer has
59
+ * finished with it: when it asks for the next item, or when the queue closes
60
+ * or fails. Resolves at once if the queue is already closed.
61
+ */
62
+ pushAndWait(value) {
63
+ return new Promise((resolve) => this.enqueue(value, resolve));
64
+ }
65
+ enqueue(value, ack) {
66
+ if (this.closed) {
67
+ ack == null ? void 0 : ack();
68
+ return;
69
+ }
56
70
  const resolver = this.resolvers.shift();
57
71
  if (resolver) {
72
+ this.deliveredAck = ack;
58
73
  resolver.resolve({ value, done: false });
59
74
  } else {
60
- this.queue.push(value);
75
+ this.queue.push({ value, ack });
76
+ }
77
+ }
78
+ /** Releases every producer still waiting in {@link pushAndWait}. */
79
+ releaseAll() {
80
+ var _a;
81
+ this.releaseDelivered();
82
+ for (const item of this.queue) {
83
+ (_a = item.ack) == null ? void 0 : _a.call(item);
84
+ item.ack = void 0;
61
85
  }
62
86
  }
87
+ releaseDelivered() {
88
+ const ack = this.deliveredAck;
89
+ this.deliveredAck = void 0;
90
+ ack == null ? void 0 : ack();
91
+ }
63
92
  /**
64
93
  * Signals that production failed. Buffered items are still delivered first;
65
94
  * once the buffer drains, the consumer's next `next()` rejects with `error`.
@@ -69,6 +98,7 @@ const _AsyncQueue = class _AsyncQueue {
69
98
  if (this.failure) return;
70
99
  this.failure = { error };
71
100
  this.closed = true;
101
+ this.releaseAll();
72
102
  while (this.resolvers.length > 0) {
73
103
  this.resolvers.shift().reject(error);
74
104
  }
@@ -84,6 +114,7 @@ const _AsyncQueue = class _AsyncQueue {
84
114
  close() {
85
115
  if (this.closed) return;
86
116
  this.closed = true;
117
+ this.releaseAll();
87
118
  while (this.resolvers.length > 0) {
88
119
  this.resolvers.shift().resolve({ value: void 0, done: true });
89
120
  }
@@ -91,8 +122,11 @@ const _AsyncQueue = class _AsyncQueue {
91
122
  [Symbol.asyncIterator]() {
92
123
  return {
93
124
  next: /* @__PURE__ */ __name(() => {
125
+ this.releaseDelivered();
94
126
  if (this.queue.length > 0) {
95
- return Promise.resolve({ value: this.queue.shift(), done: false });
127
+ const item = this.queue.shift();
128
+ this.deliveredAck = item.ack;
129
+ return Promise.resolve({ value: item.value, done: false });
96
130
  }
97
131
  if (this.failure) {
98
132
  return Promise.reject(this.failure.error);
@@ -129,7 +129,8 @@ function headerEntries(headers) {
129
129
  __name(headerEntries, "headerEntries");
130
130
  function mergeTrackingHeaders(headers) {
131
131
  var _a, _b;
132
- const merged = {};
132
+ const otherHeaders = new Headers();
133
+ const originalNames = /* @__PURE__ */ new Map();
133
134
  const callerValues = /* @__PURE__ */ new Map();
134
135
  for (const [name, value] of headerEntries(headers)) {
135
136
  const lowerName = name.toLowerCase();
@@ -139,9 +140,23 @@ function mergeTrackingHeaders(headers) {
139
140
  value
140
141
  ]);
141
142
  } else {
142
- merged[name] = value;
143
+ if (!originalNames.has(lowerName)) {
144
+ originalNames.set(lowerName, name);
145
+ }
146
+ otherHeaders.append(name, value);
143
147
  }
144
148
  }
149
+ const mergedEntries = /* @__PURE__ */ new Map();
150
+ otherHeaders.forEach((value, name) => {
151
+ var _a2;
152
+ const key = (_a2 = originalNames.get(name)) != null ? _a2 : name;
153
+ const existing = mergedEntries.get(key);
154
+ mergedEntries.set(
155
+ key,
156
+ existing !== void 0 ? `${existing}, ${value}` : value
157
+ );
158
+ });
159
+ const merged = Object.fromEntries(mergedEntries);
145
160
  for (const [name, trackingValue] of Object.entries(getTrackingHeaders())) {
146
161
  const tokens = trackingValue.split(" ");
147
162
  for (const value of (_b = callerValues.get(name)) != null ? _b : []) {
@@ -28,6 +28,7 @@ __export(env_aware_utils_exports, {
28
28
  base64Decode: () => base64Decode,
29
29
  base64Encode: () => base64Encode,
30
30
  getBooleanEnvVar: () => getBooleanEnvVar,
31
+ getEnvVar: () => getEnvVar,
31
32
  isBase64Encoded: () => isBase64Encoded,
32
33
  isBrowser: () => isBrowser,
33
34
  isEnterpriseModeEnabled: () => isEnterpriseModeEnabled,
@@ -97,11 +98,16 @@ function isBase64Encoded(data) {
97
98
  }
98
99
  }
99
100
  __name(isBase64Encoded, "isBase64Encoded");
100
- function getBooleanEnvVar(envVar) {
101
- if (!process.env) {
102
- return false;
101
+ function getEnvVar(envVar) {
102
+ var _a;
103
+ if (typeof process === "undefined") {
104
+ return void 0;
103
105
  }
104
- const envVarValue = (process.env[envVar] || "").toLowerCase();
106
+ return (_a = process.env) == null ? void 0 : _a[envVar];
107
+ }
108
+ __name(getEnvVar, "getEnvVar");
109
+ function getBooleanEnvVar(envVar) {
110
+ const envVarValue = (getEnvVar(envVar) || "").toLowerCase();
105
111
  return ["true", "1"].includes(envVarValue);
106
112
  }
107
113
  __name(getBooleanEnvVar, "getBooleanEnvVar");
@@ -115,9 +121,8 @@ function warnDeprecatedEnterpriseModeEnvVar(message) {
115
121
  }
116
122
  __name(warnDeprecatedEnterpriseModeEnvVar, "warnDeprecatedEnterpriseModeEnvVar");
117
123
  function isEnterpriseModeEnabled() {
118
- var _a, _b;
119
- const deprecatedIsSet = ((_a = process.env) == null ? void 0 : _a[DEPRECATED_ENTERPRISE_MODE_ENV_VAR]) !== void 0;
120
- if (((_b = process.env) == null ? void 0 : _b[ENTERPRISE_MODE_ENV_VAR]) !== void 0) {
124
+ const deprecatedIsSet = getEnvVar(DEPRECATED_ENTERPRISE_MODE_ENV_VAR) !== void 0;
125
+ if (getEnvVar(ENTERPRISE_MODE_ENV_VAR) !== void 0) {
121
126
  if (deprecatedIsSet) {
122
127
  warnDeprecatedEnterpriseModeEnvVar(
123
128
  `${DEPRECATED_ENTERPRISE_MODE_ENV_VAR} is set but ignored because ${ENTERPRISE_MODE_ENV_VAR} takes precedence. ${DEPRECATED_ENTERPRISE_MODE_ENV_VAR} is deprecated, please use ${ENTERPRISE_MODE_ENV_VAR} instead.`
@@ -139,6 +144,7 @@ __name(isEnterpriseModeEnabled, "isEnterpriseModeEnabled");
139
144
  base64Decode,
140
145
  base64Encode,
141
146
  getBooleanEnvVar,
147
+ getEnvVar,
142
148
  isBase64Encoded,
143
149
  isBrowser,
144
150
  isEnterpriseModeEnabled,
@@ -26,7 +26,9 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
26
26
  var error_utils_exports = {};
27
27
  __export(error_utils_exports, {
28
28
  formatError: () => formatError,
29
- getErrorMessage: () => getErrorMessage
29
+ getErrorMessage: () => getErrorMessage,
30
+ isInvocationCancellation: () => isInvocationCancellation,
31
+ toError: () => toError
30
32
  });
31
33
  module.exports = __toCommonJS(error_utils_exports);
32
34
  /**
@@ -43,6 +45,40 @@ function asRecord(value) {
43
45
  return value !== null && typeof value === "object" ? value : void 0;
44
46
  }
45
47
  __name(asRecord, "asRecord");
48
+ function toError(error) {
49
+ return error instanceof Error ? error : new Error("Execution threw a non-Error value.", { cause: error });
50
+ }
51
+ __name(toError, "toError");
52
+ function isInvocationCancellation(error, signal) {
53
+ if (!(signal == null ? void 0 : signal.aborted)) {
54
+ return false;
55
+ }
56
+ const seen = /* @__PURE__ */ new Set();
57
+ for (let depth = 0; depth < 32 && !seen.has(error); depth++) {
58
+ if (Object.is(error, signal.reason)) {
59
+ return true;
60
+ }
61
+ seen.add(error);
62
+ const record = asRecord(error);
63
+ if (!record) {
64
+ return false;
65
+ }
66
+ try {
67
+ const name = record["name"];
68
+ if (name === "AbortError" || name === "InvocationAbortedError") {
69
+ return true;
70
+ }
71
+ if (!("cause" in record)) {
72
+ return false;
73
+ }
74
+ error = record["cause"];
75
+ } catch {
76
+ return false;
77
+ }
78
+ }
79
+ return false;
80
+ }
81
+ __name(isInvocationCancellation, "isInvocationCancellation");
46
82
  function firstString(...values) {
47
83
  for (const value of values) {
48
84
  if (typeof value === "string") {
@@ -124,5 +160,7 @@ __name(formatError, "formatError");
124
160
  // Annotate the CommonJS export names for ESM import in node:
125
161
  0 && (module.exports = {
126
162
  formatError,
127
- getErrorMessage
163
+ getErrorMessage,
164
+ isInvocationCancellation,
165
+ toError
128
166
  });
@@ -41,15 +41,12 @@ async function* runWithRouting(items, context, router, runFn) {
41
41
  }
42
42
  let selectedKey = initialKey;
43
43
  import_logger.logger.debug(`Router selected initial key: ${selectedKey}`);
44
- let selectedItem = items[selectedKey];
45
- if (!selectedItem) {
46
- throw new Error(`Item not found for key: ${selectedKey}`);
47
- }
44
+ let selectedItem = getSelectedItem(items, selectedKey);
48
45
  const triedKeys = /* @__PURE__ */ new Set([selectedKey]);
49
46
  while (true) {
50
- const generatorOrPromise = runFn(selectedItem);
51
47
  let firstYielded = false;
52
48
  try {
49
+ const generatorOrPromise = runFn(selectedItem);
53
50
  if (isAsyncGenerator(generatorOrPromise)) {
54
51
  for await (const result2 of generatorOrPromise) {
55
52
  yield result2;
@@ -74,10 +71,7 @@ async function* runWithRouting(items, context, router, runFn) {
74
71
  throw error;
75
72
  }
76
73
  selectedKey = nextKey;
77
- selectedItem = items[selectedKey];
78
- if (!selectedItem) {
79
- throw new Error(`Item not found for key: ${selectedKey}`);
80
- }
74
+ selectedItem = getSelectedItem(items, selectedKey);
81
75
  triedKeys.add(selectedKey);
82
76
  } else {
83
77
  throw error;
@@ -86,8 +80,15 @@ async function* runWithRouting(items, context, router, runFn) {
86
80
  }
87
81
  }
88
82
  __name(runWithRouting, "runWithRouting");
83
+ function getSelectedItem(items, key) {
84
+ if (!Object.hasOwn(items, key) || items[key] === void 0) {
85
+ throw new Error(`Item not found for key: ${key}`);
86
+ }
87
+ return items[key];
88
+ }
89
+ __name(getSelectedItem, "getSelectedItem");
89
90
  function isAsyncGenerator(obj) {
90
- return typeof obj === "object" && typeof obj[Symbol.asyncIterator] === "function";
91
+ return typeof obj === "object" && obj !== null && typeof obj[Symbol.asyncIterator] === "function";
91
92
  }
92
93
  __name(isAsyncGenerator, "isAsyncGenerator");
93
94
  // Annotate the CommonJS export names for ESM import in node: