@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
@@ -26,6 +26,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
26
26
  var model_name_exports = {};
27
27
  __export(model_name_exports, {
28
28
  extractModelName: () => extractModelName,
29
+ getGeminiMajorVersion: () => getGeminiMajorVersion,
29
30
  isGemini1Model: () => isGemini1Model,
30
31
  isGemini2OrAbove: () => isGemini2OrAbove,
31
32
  isGemini35LiveTranslate: () => isGemini35LiveTranslate,
@@ -68,6 +69,19 @@ function parseVersion(versionString) {
68
69
  };
69
70
  }
70
71
  __name(parseVersion, "parseVersion");
72
+ function getGeminiMajorVersion(modelString) {
73
+ if (!modelString) {
74
+ return void 0;
75
+ }
76
+ const modelName = extractModelName(modelString);
77
+ if (!modelName.startsWith("gemini-")) {
78
+ return void 0;
79
+ }
80
+ const versionString = modelName.slice("gemini-".length).split("-", 1)[0];
81
+ const parsedVersion = parseVersion(versionString);
82
+ return parsedVersion.valid ? parsedVersion.major : void 0;
83
+ }
84
+ __name(getGeminiMajorVersion, "getGeminiMajorVersion");
71
85
  function isGemini1Model(modelString) {
72
86
  const modelName = extractModelName(modelString);
73
87
  return modelName.startsWith("gemini-1");
@@ -112,6 +126,7 @@ __name(isGeminiModelIdCheckDisabled, "isGeminiModelIdCheckDisabled");
112
126
  // Annotate the CommonJS export names for ESM import in node:
113
127
  0 && (module.exports = {
114
128
  extractModelName,
129
+ getGeminiMajorVersion,
115
130
  isGemini1Model,
116
131
  isGemini2OrAbove,
117
132
  isGemini35LiveTranslate,
@@ -35,6 +35,7 @@ module.exports = __toCommonJS(simple_zod_to_json_exports);
35
35
  var import_genai = require("@google/genai");
36
36
  var import_zod_to_json_schema = require("zod-to-json-schema");
37
37
  var import_v4 = require("zod/v4");
38
+ var import_gemini_schema_util = require("./gemini_schema_util.js");
38
39
  /**
39
40
  * @license
40
41
  * Copyright 2025 Google LLC
@@ -86,21 +87,10 @@ function zodObjectToSchema(schema) {
86
87
  if (jsonSchema.readOnly !== void 0) {
87
88
  delete jsonSchema.readOnly;
88
89
  }
89
- if (jsonSchema.maxItems !== void 0) {
90
- jsonSchema.maxItems = jsonSchema.maxItems.toString();
91
- }
92
- if (jsonSchema.format === "email" || jsonSchema.format === "uuid") {
93
- delete jsonSchema.pattern;
94
- }
95
- if (jsonSchema.minItems !== void 0) {
96
- jsonSchema.minItems = jsonSchema.minItems.toString();
97
- }
98
- if (jsonSchema.minLength !== void 0) {
99
- jsonSchema.minLength = jsonSchema.minLength.toString();
100
- }
101
- if (jsonSchema.maxLength !== void 0) {
102
- jsonSchema.maxLength = jsonSchema.maxLength.toString();
103
- }
90
+ (0, import_gemini_schema_util.copySchemaConstraints)(
91
+ jsonSchema,
92
+ jsonSchema
93
+ );
104
94
  if (((_a = jsonSchema.enum) == null ? void 0 : _a.length) === 1 && jsonSchema.enum[0] === null) {
105
95
  jsonSchema.type = import_genai.Type.NULL;
106
96
  delete jsonSchema.enum;
@@ -121,32 +111,24 @@ function zodObjectToSchema(schema) {
121
111
  $refStrategy: "none",
122
112
  emailStrategy: "format:email",
123
113
  postProcess: /* @__PURE__ */ __name((jsonSchema) => {
124
- var _a, _b, _c, _d, _e, _f, _g;
114
+ var _a, _b, _c;
125
115
  if (!jsonSchema) {
126
116
  return;
127
117
  }
128
118
  if (jsonSchema.additionalProperties !== void 0) {
129
119
  delete jsonSchema.additionalProperties;
130
120
  }
131
- if (jsonSchema.maxItems !== void 0) {
132
- jsonSchema.maxItems = (_a = jsonSchema.maxItems) == null ? void 0 : _a.toString();
133
- }
134
- if (jsonSchema.minItems !== void 0) {
135
- jsonSchema.minItems = (_b = jsonSchema.minItems) == null ? void 0 : _b.toString();
136
- }
137
- if (jsonSchema.minLength !== void 0) {
138
- jsonSchema.minLength = (_c = jsonSchema.minLength) == null ? void 0 : _c.toString();
139
- }
140
- if (jsonSchema.maxLength !== void 0) {
141
- jsonSchema.maxLength = (_d = jsonSchema.maxLength) == null ? void 0 : _d.toString();
142
- }
143
- if (((_e = jsonSchema.enum) == null ? void 0 : _e.length) === 1 && jsonSchema.enum[0] === "null") {
121
+ (0, import_gemini_schema_util.copySchemaConstraints)(
122
+ jsonSchema,
123
+ jsonSchema
124
+ );
125
+ if (((_a = jsonSchema.enum) == null ? void 0 : _a.length) === 1 && jsonSchema.enum[0] === "null") {
144
126
  jsonSchema.type = import_genai.Type.NULL;
145
127
  delete jsonSchema.enum;
146
128
  }
147
129
  if (jsonSchema.type === "integer" && jsonSchema.format !== "int64") {
148
- (_f = jsonSchema.minimum) != null ? _f : jsonSchema.minimum = Number.MIN_SAFE_INTEGER;
149
- (_g = jsonSchema.maximum) != null ? _g : jsonSchema.maximum = Number.MAX_SAFE_INTEGER;
130
+ (_b = jsonSchema.minimum) != null ? _b : jsonSchema.minimum = Number.MIN_SAFE_INTEGER;
131
+ (_c = jsonSchema.maximum) != null ? _c : jsonSchema.maximum = Number.MAX_SAFE_INTEGER;
150
132
  }
151
133
  if (jsonSchema.type !== void 0) {
152
134
  jsonSchema.type = jsonSchema.type.toUpperCase();
@@ -5,9 +5,11 @@
5
5
  */
6
6
 
7
7
  "use strict";
8
+ var __create = Object.create;
8
9
  var __defProp = Object.defineProperty;
9
10
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
11
  var __getOwnPropNames = Object.getOwnPropertyNames;
12
+ var __getProtoOf = Object.getPrototypeOf;
11
13
  var __hasOwnProp = Object.prototype.hasOwnProperty;
12
14
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
13
15
  var __export = (target, all) => {
@@ -22,10 +24,19 @@ var __copyProps = (to, from, except, desc) => {
22
24
  }
23
25
  return to;
24
26
  };
27
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
28
+ // If the importer is in node compatibility mode or this is not an ESM
29
+ // file that has been converted to a CommonJS file using a Babel-
30
+ // compatible transform (i.e. "__esModule" has not been set), then set
31
+ // "default" to the CommonJS "module.exports" for node compatibility.
32
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
33
+ mod
34
+ ));
25
35
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
26
36
  var ssrf_guard_exports = {};
27
37
  __export(ssrf_guard_exports, {
28
38
  isHttpUrl: () => isHttpUrl,
39
+ isIpAddress: () => isIpAddress,
29
40
  isLinkLocalAddress: () => isLinkLocalAddress,
30
41
  isLocalhostHostname: () => isLocalhostHostname,
31
42
  isNonGlobalAddress: () => isNonGlobalAddress,
@@ -33,13 +44,13 @@ __export(ssrf_guard_exports, {
33
44
  resolveHostAddresses: () => resolveHostAddresses
34
45
  });
35
46
  module.exports = __toCommonJS(ssrf_guard_exports);
36
- var import_promises = require("node:dns/promises");
37
- var import_node_net = require("node:net");
38
47
  /**
39
48
  * @license
40
49
  * Copyright 2026 Google LLC
41
50
  * SPDX-License-Identifier: Apache-2.0
42
51
  */
52
+ const DNS_MODULE = "node:dns/promises";
53
+ const IPV6_CHARACTERS = /^[0-9a-f:.]+$/i;
43
54
  const HTTP_SCHEMES = /* @__PURE__ */ new Set(["http:", "https:"]);
44
55
  const NON_GLOBAL_IPV4_CIDRS = [
45
56
  "0.0.0.0/8",
@@ -118,11 +129,16 @@ function isLinkLocalAddress(address) {
118
129
  return classifyAddress(address, isLinkLocalIpv4, isLinkLocalIpv6);
119
130
  }
120
131
  __name(isLinkLocalAddress, "isLinkLocalAddress");
132
+ function isIpAddress(address) {
133
+ return parseIpv4(address) !== null || isIpv6Literal(address);
134
+ }
135
+ __name(isIpAddress, "isIpAddress");
121
136
  async function resolveHostAddresses(hostname) {
122
- if ((0, import_node_net.isIP)(hostname) !== 0) {
137
+ if (isIpAddress(hostname)) {
123
138
  return [hostname];
124
139
  }
125
- const records = await (0, import_promises.lookup)(hostname, { all: true });
140
+ const { lookup } = await Promise.resolve().then(() => __toESM(require(DNS_MODULE)));
141
+ const records = await lookup(hostname, { all: true });
126
142
  const addresses = [...new Set(records.map((record) => record.address))];
127
143
  if (addresses.length === 0) {
128
144
  throw new Error(`Unable to resolve host: ${hostname}`);
@@ -154,8 +170,20 @@ function parseIpv4(address) {
154
170
  return octets;
155
171
  }
156
172
  __name(parseIpv4, "parseIpv4");
173
+ function isIpv6Literal(address) {
174
+ if (!address.includes(":") || !IPV6_CHARACTERS.test(address)) {
175
+ return false;
176
+ }
177
+ try {
178
+ new URL(`http://[${address}]/`);
179
+ return true;
180
+ } catch {
181
+ return false;
182
+ }
183
+ }
184
+ __name(isIpv6Literal, "isIpv6Literal");
157
185
  function parseIpv6(address) {
158
- if ((0, import_node_net.isIP)(address) !== 6) {
186
+ if (!isIpv6Literal(address)) {
159
187
  return null;
160
188
  }
161
189
  const [head, tail] = address.split("::");
@@ -182,14 +210,6 @@ function ipv4ToInt(octets) {
182
210
  return (octets[0] << 24 | octets[1] << 16 | octets[2] << 8 | octets[3]) >>> 0;
183
211
  }
184
212
  __name(ipv4ToInt, "ipv4ToInt");
185
- function hextetsToBigInt(hextets) {
186
- let value = 0n;
187
- for (const hextet of hextets) {
188
- value = value << 16n | BigInt(hextet);
189
- }
190
- return value;
191
- }
192
- __name(hextetsToBigInt, "hextetsToBigInt");
193
213
  function parseIpv4Cidr(cidr) {
194
214
  const [address, prefix] = cidr.split("/");
195
215
  const mask = 4294967295 << 32 - Number(prefix) >>> 0;
@@ -198,7 +218,7 @@ function parseIpv4Cidr(cidr) {
198
218
  __name(parseIpv4Cidr, "parseIpv4Cidr");
199
219
  function parseIpv6Cidr(cidr) {
200
220
  const [address, prefix] = cidr.split("/");
201
- return { base: hextetsToBigInt(parseIpv6(address)), prefix: Number(prefix) };
221
+ return { base: parseIpv6(address), prefix: Number(prefix) };
202
222
  }
203
223
  __name(parseIpv6Cidr, "parseIpv6Cidr");
204
224
  function matchesIpv4Cidr(octets, { base, mask }) {
@@ -206,8 +226,17 @@ function matchesIpv4Cidr(octets, { base, mask }) {
206
226
  }
207
227
  __name(matchesIpv4Cidr, "matchesIpv4Cidr");
208
228
  function matchesIpv6Cidr(hextets, { base, prefix }) {
209
- const shift = BigInt(128 - prefix);
210
- return hextetsToBigInt(hextets) >> shift === base >> shift;
229
+ for (let i = 0; i < base.length; i++) {
230
+ const bits = Math.min(16, prefix - i * 16);
231
+ if (bits <= 0) {
232
+ return true;
233
+ }
234
+ const mask = 65535 << 16 - bits & 65535;
235
+ if ((hextets[i] & mask) !== (base[i] & mask)) {
236
+ return false;
237
+ }
238
+ }
239
+ return true;
211
240
  }
212
241
  __name(matchesIpv6Cidr, "matchesIpv6Cidr");
213
242
  function embeddedIpv4(hextets) {
@@ -254,6 +283,7 @@ __name(isLinkLocalIpv6, "isLinkLocalIpv6");
254
283
  // Annotate the CommonJS export names for ESM import in node:
255
284
  0 && (module.exports = {
256
285
  isHttpUrl,
286
+ isIpAddress,
257
287
  isLinkLocalAddress,
258
288
  isLocalhostHostname,
259
289
  isNonGlobalAddress,
@@ -32,7 +32,7 @@ module.exports = __toCommonJS(version_exports);
32
32
  * Copyright 2025 Google LLC
33
33
  * SPDX-License-Identifier: Apache-2.0
34
34
  */
35
- const version = "2.4.0";
35
+ const version = "2.5.0";
36
36
  // Annotate the CommonJS export names for ESM import in node:
37
37
  0 && (module.exports = {
38
38
  version
@@ -55,6 +55,7 @@ __export(workflow_exports, {
55
55
  isNodeSchemaValidationError: () => import_errors.isNodeSchemaValidationError,
56
56
  isNodeState: () => import_node_state.isNodeState,
57
57
  isNodeTimeoutError: () => import_errors.isNodeTimeoutError,
58
+ isParallelWorker: () => import_parallel_worker.isParallelWorker,
58
59
  isRequestInput: () => import_request_input.isRequestInput,
59
60
  isRunnableRoot: () => import_run_node_as_invocation.isRunnableRoot,
60
61
  isWorkflow: () => import_workflow.isWorkflow,
@@ -121,6 +122,7 @@ var import_node_error_event = require("./node_error_event.js");
121
122
  isNodeSchemaValidationError,
122
123
  isNodeState,
123
124
  isNodeTimeoutError,
125
+ isParallelWorker,
124
126
  isRequestInput,
125
127
  isRunnableRoot,
126
128
  isWorkflow,
@@ -28,11 +28,9 @@ __export(node_runner_exports, {
28
28
  executeChildNode: () => executeChildNode
29
29
  });
30
30
  module.exports = __toCommonJS(node_runner_exports);
31
- var import_api = require("@opentelemetry/api");
32
31
  var import_invocation_context = require("../agents/invocation_context.js");
33
32
  var import_event = require("../events/event.js");
34
- var import_tracing = require("../telemetry/tracing.js");
35
- var import_error_utils = require("../utils/error_utils.js");
33
+ var import_instrumentation = require("../telemetry/api/instrumentation.js");
36
34
  var import_branch_path = require("./branch_path.js");
37
35
  var import_errors = require("./errors.js");
38
36
  var import_node_context = require("./node_context.js");
@@ -50,11 +48,12 @@ function executeChildNode(params) {
50
48
  const { parent, node, options = {} } = params;
51
49
  const nodeName = (_a = options.nodeName) != null ? _a : node.name;
52
50
  const nodePath = (_b = options.overrideNodePath) != null ? _b : parent.nodePath ? `${parent.nodePath}.${nodeName}` : nodeName;
53
- const span = import_tracing.tracer.startSpan(`execute_node ${nodeName}`);
54
- return import_api.context.with(
55
- import_api.trace.setSpan(import_api.context.active(), span),
56
- () => runChildNode({ params, nodeName, nodePath, span })
57
- );
51
+ const scope = (0, import_instrumentation.recordNodeInvocation)({
52
+ node,
53
+ nodeName,
54
+ sessionId: parent.invocationContext.session.id
55
+ });
56
+ return scope.run(() => runChildNode({ params, nodeName, nodePath, scope }));
58
57
  }
59
58
  __name(executeChildNode, "executeChildNode");
60
59
  async function runChildNode({
@@ -69,7 +68,7 @@ async function runChildNode({
69
68
  },
70
69
  nodeName,
71
70
  nodePath,
72
- span
71
+ scope
73
72
  }) {
74
73
  var _a, _b, _c, _d;
75
74
  const runId = (_a = options.runId) != null ? _a : nodeName;
@@ -123,13 +122,6 @@ async function runChildNode({
123
122
  });
124
123
  if (skipOutput !== void 0) {
125
124
  child.output = skipOutput;
126
- (0, import_tracing.traceNodeExecution)({
127
- nodePath,
128
- runId,
129
- attempt: nodeState.attemptCount,
130
- status: "completed",
131
- interruptCount: child.interruptIds.length
132
- });
133
125
  if (options.useAsOutput) {
134
126
  parent.output = child.output;
135
127
  parent.route = child.route;
@@ -143,16 +135,14 @@ async function runChildNode({
143
135
  resetState(child);
144
136
  child.attemptCount = nodeState.attemptCount;
145
137
  try {
146
- inputRecorded = await runAttempt({
138
+ inputRecorded = await runOnce({
147
139
  node,
148
140
  child,
149
141
  input,
150
142
  nodeName,
151
143
  branch,
152
144
  isolationScope,
153
- nodePath,
154
- runId,
155
- attempt: nodeState.attemptCount
145
+ scope
156
146
  });
157
147
  failIfNodeReportedError(child, nodeName);
158
148
  succeeded = true;
@@ -179,13 +169,6 @@ async function runChildNode({
179
169
  if (!inputRecorded && child.interruptIds.length > 0) {
180
170
  recordInputForResume({ child, nodeName, branch, isolationScope, input });
181
171
  }
182
- (0, import_tracing.traceNodeExecution)({
183
- nodePath,
184
- runId,
185
- attempt: nodeState.attemptCount,
186
- status: child.interruptIds.length > 0 ? "waiting" : "completed",
187
- interruptCount: child.interruptIds.length
188
- });
189
172
  if (pluginManager == null ? void 0 : pluginManager.hasPlugins) {
190
173
  const replacedOutput = await pluginManager.runAfterNodeCallback({
191
174
  node,
@@ -203,58 +186,13 @@ async function runChildNode({
203
186
  }
204
187
  return child;
205
188
  } catch (err) {
206
- (0, import_tracing.traceNodeExecution)({
207
- nodePath,
208
- runId,
209
- attempt: nodeState.attemptCount,
210
- status: "failed",
211
- interruptCount: child.interruptIds.length
212
- });
213
- span.setStatus({ code: import_api.SpanStatusCode.ERROR, message: (0, import_error_utils.formatError)(err) });
189
+ scope.end(err);
214
190
  throw err;
215
191
  } finally {
216
- span.end();
192
+ scope.end();
217
193
  }
218
194
  }
219
195
  __name(runChildNode, "runChildNode");
220
- function runAttempt(params) {
221
- const { node, nodePath, runId, attempt } = params;
222
- if (!node.preparedRetryConfig) {
223
- return runOnce(params);
224
- }
225
- return import_tracing.tracer.startActiveSpan(
226
- `execute_node_attempt ${params.nodeName}`,
227
- async (span) => {
228
- try {
229
- const inputRecorded = await runOnce(params);
230
- (0, import_tracing.traceNodeExecution)({
231
- nodePath,
232
- runId,
233
- attempt,
234
- status: params.child.interruptIds.length > 0 ? "waiting" : "completed",
235
- interruptCount: params.child.interruptIds.length
236
- });
237
- return inputRecorded;
238
- } catch (err) {
239
- (0, import_tracing.traceNodeExecution)({
240
- nodePath,
241
- runId,
242
- attempt,
243
- status: "failed",
244
- interruptCount: params.child.interruptIds.length
245
- });
246
- span.setStatus({
247
- code: import_api.SpanStatusCode.ERROR,
248
- message: (0, import_error_utils.formatError)(err)
249
- });
250
- throw err;
251
- } finally {
252
- span.end();
253
- }
254
- }
255
- );
256
- }
257
- __name(runAttempt, "runAttempt");
258
196
  function failIfNodeReportedError(child, nodeName) {
259
197
  const reported = child.reportedError;
260
198
  if (!reported || child.output !== void 0 || child.route !== void 0 || child.interruptIds.length > 0) {
@@ -281,11 +219,12 @@ async function runOnce({
281
219
  input,
282
220
  nodeName,
283
221
  branch,
284
- isolationScope
222
+ isolationScope,
223
+ scope
285
224
  }) {
286
225
  var _a;
287
226
  let inputRecorded = false;
288
- const consume = /* @__PURE__ */ __name((event) => {
227
+ const consume = /* @__PURE__ */ __name(async (event) => {
289
228
  var _a2, _b, _c;
290
229
  enrichEvent({ event, child, nodeName, branch, isolationScope });
291
230
  const emittedDelta = (_a2 = event.actions) == null ? void 0 : _a2.stateDelta;
@@ -324,13 +263,18 @@ async function runOnce({
324
263
  };
325
264
  inputRecorded = true;
326
265
  }
327
- child.channel.push(event);
266
+ scope.recordEvent(event);
267
+ if (event.partial) {
268
+ child.channel.push(event);
269
+ } else {
270
+ await child.channel.pushAndWait(event);
271
+ }
328
272
  }, "consume");
329
273
  const parentSignal = child.invocationContext.abortSignal;
330
274
  const hasTimeout = typeof node.timeout === "number" && node.timeout > 0;
331
275
  if (!hasTimeout && !parentSignal) {
332
276
  for await (const event of node.run(child, input)) {
333
- consume(event);
277
+ await consume(event);
334
278
  }
335
279
  return inputRecorded;
336
280
  }
@@ -338,7 +282,7 @@ async function runOnce({
338
282
  child.abortSignal = parentSignal;
339
283
  try {
340
284
  for await (const event of node.run(child, input)) {
341
- consume(event);
285
+ await consume(event);
342
286
  }
343
287
  } finally {
344
288
  child.abortSignal = void 0;
@@ -378,7 +322,7 @@ async function runOnce({
378
322
  try {
379
323
  let result = await Promise.race([iterator.next(), aborted]);
380
324
  while (!result.done) {
381
- consume(result.value);
325
+ await Promise.race([consume(result.value), aborted]);
382
326
  result = await Promise.race([iterator.next(), aborted]);
383
327
  }
384
328
  } finally {
@@ -25,7 +25,8 @@ var __copyProps = (to, from, except, desc) => {
25
25
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
26
26
  var parallel_worker_exports = {};
27
27
  __export(parallel_worker_exports, {
28
- ParallelWorker: () => ParallelWorker
28
+ ParallelWorker: () => ParallelWorker,
29
+ isParallelWorker: () => isParallelWorker
29
30
  });
30
31
  module.exports = __toCommonJS(parallel_worker_exports);
31
32
  var import_base_node = require("../base_node.js");
@@ -36,11 +37,16 @@ var import_workflow_graph_utils = require("../utils/workflow_graph_utils.js");
36
37
  * Copyright 2026 Google LLC
37
38
  * SPDX-License-Identifier: Apache-2.0
38
39
  */
40
+ var _a, _b;
39
41
  const DEFAULT_MAX_PARALLEL_WORKERS = 8;
40
- const _ParallelWorker = class _ParallelWorker extends import_base_node.BaseNode {
42
+ const PARALLEL_WORKER_SIGNATURE_SYMBOL = /* @__PURE__ */ Symbol.for(
43
+ "google.adk.workflow.parallelWorker"
44
+ );
45
+ const _ParallelWorker = class _ParallelWorker extends (_b = import_base_node.BaseNode, _a = PARALLEL_WORKER_SIGNATURE_SYMBOL, _b) {
41
46
  constructor(inner, config = {}) {
42
47
  const built = (0, import_workflow_graph_utils.buildNode)(inner);
43
48
  super({ name: built.name, rerunOnResume: true });
49
+ this[_a] = true;
44
50
  if (config.maxParallelWorkers !== void 0 && config.maxParallelWorkers < 1) {
45
51
  throw new Error("maxParallelWorkers must be greater than or equal to 1.");
46
52
  }
@@ -48,7 +54,7 @@ const _ParallelWorker = class _ParallelWorker extends import_base_node.BaseNode
48
54
  this.maxParallelWorkers = config.maxParallelWorkers;
49
55
  }
50
56
  async *runImpl(ctx, input) {
51
- var _a;
57
+ var _a2;
52
58
  const items = Array.isArray(input) ? input : [input];
53
59
  if (items.length === 0) {
54
60
  yield [];
@@ -56,7 +62,7 @@ const _ParallelWorker = class _ParallelWorker extends import_base_node.BaseNode
56
62
  }
57
63
  const results = new Array(items.length);
58
64
  const poolSize = Math.min(
59
- (_a = this.maxParallelWorkers) != null ? _a : DEFAULT_MAX_PARALLEL_WORKERS,
65
+ (_a2 = this.maxParallelWorkers) != null ? _a2 : DEFAULT_MAX_PARALLEL_WORKERS,
60
66
  items.length
61
67
  );
62
68
  let nextIndex = 0;
@@ -65,8 +71,8 @@ const _ParallelWorker = class _ParallelWorker extends import_base_node.BaseNode
65
71
  let interrupted = false;
66
72
  const interruptIds = [];
67
73
  const isAborted = /* @__PURE__ */ __name(() => {
68
- var _a2, _b;
69
- return ((_a2 = ctx.abortSignal) == null ? void 0 : _a2.aborted) === true || ((_b = ctx.invocationContext.abortSignal) == null ? void 0 : _b.aborted) === true;
74
+ var _a3, _b2;
75
+ return ((_a3 = ctx.abortSignal) == null ? void 0 : _a3.aborted) === true || ((_b2 = ctx.invocationContext.abortSignal) == null ? void 0 : _b2.aborted) === true;
70
76
  }, "isAborted");
71
77
  const worker = /* @__PURE__ */ __name(async () => {
72
78
  while (!failed && !interrupted && !isAborted()) {
@@ -123,7 +129,12 @@ const _ParallelWorker = class _ParallelWorker extends import_base_node.BaseNode
123
129
  };
124
130
  __name(_ParallelWorker, "ParallelWorker");
125
131
  let ParallelWorker = _ParallelWorker;
132
+ function isParallelWorker(value) {
133
+ return typeof value === "object" && value !== null && PARALLEL_WORKER_SIGNATURE_SYMBOL in value && value[PARALLEL_WORKER_SIGNATURE_SYMBOL] === true;
134
+ }
135
+ __name(isParallelWorker, "isParallelWorker");
126
136
  // Annotate the CommonJS export names for ESM import in node:
127
137
  0 && (module.exports = {
128
- ParallelWorker
138
+ ParallelWorker,
139
+ isParallelWorker
129
140
  });
@@ -42,9 +42,7 @@ async function* runLlmAgentAsNode(agent, ctx, nodeInput) {
42
42
  if (!isTaskMode && !agent.includeContentsExplicit) {
43
43
  agent.includeContents = "none";
44
44
  }
45
- if (!isTaskMode) {
46
- await appendNodeInputAsUserTurn(ctx, nodeInput);
47
- }
45
+ const inputEvent = isTaskMode ? void 0 : pushNodeInputAsUserTurn(ctx, nodeInput);
48
46
  const agentIc = withWorkflowInstructionScope(ctx.getInvocationContext(), {
49
47
  input: nodeInput,
50
48
  outputsByNode: collectPredecessorOutputs(ctx)
@@ -53,15 +51,19 @@ async function* runLlmAgentAsNode(agent, ctx, nodeInput) {
53
51
  yield* runTaskMode(ctx, agentIc, agent);
54
52
  return;
55
53
  }
56
- for await (const event of agent.runAsync(agentIc)) {
57
- maybeSetOutput(agent, event);
58
- yield event;
54
+ try {
55
+ for await (const event of agent.runAsync(agentIc)) {
56
+ maybeSetOutput(agent, event);
57
+ yield event;
58
+ }
59
+ } finally {
60
+ removeEvent(ctx.session.events, inputEvent);
59
61
  }
60
62
  }
61
63
  __name(runLlmAgentAsNode, "runLlmAgentAsNode");
62
- async function appendNodeInputAsUserTurn(ctx, nodeInput) {
64
+ function pushNodeInputAsUserTurn(ctx, nodeInput) {
63
65
  if (nodeInput === void 0 || nodeInput === null) {
64
- return;
66
+ return void 0;
65
67
  }
66
68
  const userEvent = (0, import_event.createEvent)({
67
69
  author: "user",
@@ -72,14 +74,17 @@ async function appendNodeInputAsUserTurn(ctx, nodeInput) {
72
74
  if (ctx.isolationScope !== void 0) {
73
75
  userEvent.isolationScope = ctx.isolationScope;
74
76
  }
75
- const sessionService = ctx.invocationContext.sessionService;
76
- if (sessionService) {
77
- await sessionService.appendEvent({ session: ctx.session, event: userEvent });
78
- } else {
79
- ctx.session.events.push(userEvent);
77
+ ctx.session.events.push(userEvent);
78
+ return userEvent;
79
+ }
80
+ __name(pushNodeInputAsUserTurn, "pushNodeInputAsUserTurn");
81
+ function removeEvent(events, event) {
82
+ const index = event ? events.indexOf(event) : -1;
83
+ if (index !== -1) {
84
+ events.splice(index, 1);
80
85
  }
81
86
  }
82
- __name(appendNodeInputAsUserTurn, "appendNodeInputAsUserTurn");
87
+ __name(removeEvent, "removeEvent");
83
88
  async function* runTaskMode(ctx, agentIc, agent) {
84
89
  var _a, _b;
85
90
  const finishTool = agent.finishTaskTool;
@@ -42,7 +42,7 @@ const DEFAULT_MAX_DELAY_SECONDS = 60;
42
42
  const DEFAULT_BACKOFF_FACTOR = 2;
43
43
  const DEFAULT_JITTER = 1;
44
44
  function errorNames(error) {
45
- var _a;
45
+ var _a, _b, _c;
46
46
  if (error instanceof Error) {
47
47
  const names = [(_a = error.constructor) == null ? void 0 : _a.name, error.name].filter(
48
48
  (name) => !!name
@@ -50,7 +50,7 @@ function errorNames(error) {
50
50
  return [...new Set(names)];
51
51
  }
52
52
  if (typeof error === "object" && error !== null) {
53
- return [error.constructor.name];
53
+ return [(_c = (_b = error.constructor) == null ? void 0 : _b.name) != null ? _c : "Object"];
54
54
  }
55
55
  return [typeof error];
56
56
  }
@@ -37,8 +37,7 @@ __export(workflow_exports, {
37
37
  isWorkflow: () => isWorkflow
38
38
  });
39
39
  module.exports = __toCommonJS(workflow_exports);
40
- var import_api = require("@opentelemetry/api");
41
- var import_tracing = require("../telemetry/tracing.js");
40
+ var import_instrumentation = require("../telemetry/api/instrumentation.js");
42
41
  var import_experimental = require("../utils/experimental.js");
43
42
  var import_base_node = require("./base_node.js");
44
43
  var import_branch_path = require("./branch_path.js");
@@ -111,19 +110,20 @@ let Workflow = class extends (_b = import_base_node.BaseNode, _a = WORKFLOW_SIGN
111
110
  dynamicState,
112
111
  abort.controller.signal
113
112
  );
114
- const span = import_tracing.tracer.startSpan(`invoke_workflow ${this.name}`);
113
+ const telemetryScope = (0, import_instrumentation.recordWorkflowInvocation)({
114
+ workflow: this,
115
+ sessionId: ctx.invocationContext.session.id
116
+ });
115
117
  try {
116
- await import_api.context.with(import_api.trace.setSpan(import_api.context.active(), span), () => {
117
- (0, import_tracing.traceWorkflowInvocation)({
118
- workflowName: this.name,
119
- nodePath: ctx.nodePath,
120
- sessionId: ctx.invocationContext.session.id
121
- });
122
- return this.orchestrate(ctx, nodeInput, dynamicState, abort.controller);
123
- });
118
+ await telemetryScope.run(
119
+ () => this.orchestrate(ctx, nodeInput, dynamicState, abort.controller)
120
+ );
121
+ } catch (error) {
122
+ telemetryScope.end(error);
123
+ throw error;
124
124
  } finally {
125
125
  abort.dispose();
126
- span.end();
126
+ telemetryScope.end();
127
127
  }
128
128
  }
129
129
  /**