@google/adk 1.6.0 → 2.0.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 (781) hide show
  1. package/dist/cjs/a2a/a2a_event.js +18 -0
  2. package/dist/cjs/a2a/a2a_remote_agent.js +5 -2
  3. package/dist/cjs/a2a/a2a_remote_agent_run_processor.js +7 -3
  4. package/dist/cjs/a2a/a2a_remote_agent_utils.js +9 -2
  5. package/dist/cjs/a2a/agent_card.js +33 -3
  6. package/dist/cjs/a2a/agent_executor.js +25 -16
  7. package/dist/cjs/a2a/agent_to_a2a.js +22 -10
  8. package/dist/cjs/a2a/auth.js +3 -0
  9. package/dist/cjs/a2a/event_converter_utils.js +10 -0
  10. package/dist/cjs/a2a/event_processor_utils.js +71 -35
  11. package/dist/cjs/a2a/executor_context.js +2 -0
  12. package/dist/cjs/a2a/index.js +53 -0
  13. package/dist/cjs/a2a/metadata_converter_utils.js +5 -0
  14. package/dist/cjs/a2a/part_converter_utils.js +12 -0
  15. package/dist/cjs/agents/active_streaming_tool.js +5 -2
  16. package/dist/cjs/agents/base_agent.js +46 -9
  17. package/dist/cjs/agents/context.js +5 -2
  18. package/dist/cjs/agents/framework_function_calls.js +64 -0
  19. package/dist/cjs/agents/functions.js +38 -16
  20. package/dist/cjs/agents/instructions.js +51 -12
  21. package/dist/cjs/agents/invocation_context.js +42 -8
  22. package/dist/cjs/agents/live_request_queue.js +29 -5
  23. package/dist/cjs/agents/llm_agent.js +535 -45
  24. package/dist/cjs/agents/loop_agent.js +19 -2
  25. package/dist/cjs/agents/parallel_agent.js +21 -2
  26. package/dist/cjs/agents/processors/agent_transfer_llm_request_processor.js +7 -4
  27. package/dist/cjs/agents/processors/base_llm_processor.js +9 -4
  28. package/dist/cjs/agents/processors/basic_llm_request_processor.js +6 -3
  29. package/dist/cjs/agents/processors/code_execution_request_processor.js +18 -5
  30. package/dist/cjs/agents/processors/content_processor_utils.js +85 -15
  31. package/dist/cjs/agents/processors/content_request_processor.js +9 -4
  32. package/dist/cjs/agents/processors/context_compactor_request_processor.js +5 -2
  33. package/dist/cjs/agents/processors/identity_llm_request_processor.js +12 -4
  34. package/dist/cjs/agents/processors/instructions_llm_request_processor.js +5 -2
  35. package/dist/cjs/agents/processors/interactions_request_processor.js +5 -2
  36. package/dist/cjs/agents/processors/request_confirmation_llm_request_processor.js +313 -92
  37. package/dist/cjs/agents/processors/request_input_llm_request_processor.js +218 -0
  38. package/dist/cjs/agents/processors/tool_filter_request_processor.js +5 -2
  39. package/dist/cjs/agents/readonly_context.js +7 -3
  40. package/dist/cjs/agents/routed_agent.js +6 -13
  41. package/dist/cjs/agents/run_config.js +12 -0
  42. package/dist/cjs/agents/sequential_agent.js +20 -3
  43. package/dist/cjs/agents/user_input_request.js +145 -0
  44. package/dist/cjs/apps/app.js +11 -11
  45. package/dist/cjs/apps/resumability_config.js +2 -0
  46. package/dist/cjs/artifacts/file_artifact_service.js +21 -2
  47. package/dist/cjs/artifacts/gcs_artifact_service.js +46 -11
  48. package/dist/cjs/artifacts/in_memory_artifact_service.js +9 -2
  49. package/dist/cjs/artifacts/registry.js +6 -1
  50. package/dist/cjs/artifacts/scoped_artifact_service.js +5 -2
  51. package/dist/cjs/auth/auth_handler.js +5 -2
  52. package/dist/cjs/auth/auth_preprocessor.js +48 -40
  53. package/dist/cjs/auth/auth_provider_registry.js +5 -2
  54. package/dist/cjs/auth/auth_schemes.js +2 -0
  55. package/dist/cjs/auth/credential_response_binding.js +101 -0
  56. package/dist/cjs/auth/credential_service/in_memory_credential_service.js +5 -2
  57. package/dist/cjs/auth/credential_service/session_state_credential_service.js +5 -2
  58. package/dist/cjs/auth/exchanger/base_credential_exchanger.js +5 -2
  59. package/dist/cjs/auth/exchanger/credential_exchanger_registry.js +5 -2
  60. package/dist/cjs/auth/oauth2/oauth2_credential_exchanger.js +8 -2
  61. package/dist/cjs/auth/oauth2/oauth2_credential_refresher.js +5 -2
  62. package/dist/cjs/auth/oauth2/oauth2_discovery.js +7 -2
  63. package/dist/cjs/auth/oauth2/oauth2_utils.js +6 -0
  64. package/dist/cjs/auth/refresher/base_credential_refresher.js +5 -2
  65. package/dist/cjs/auth/refresher/credential_refresher_registry.js +5 -2
  66. package/dist/cjs/code_executors/agent_engine_sandbox_code_executor.js +3 -0
  67. package/dist/cjs/code_executors/base_code_executor.js +6 -2
  68. package/dist/cjs/code_executors/built_in_code_executor.js +6 -2
  69. package/dist/cjs/code_executors/code_execution_utils.js +6 -0
  70. package/dist/cjs/code_executors/code_executor_context.js +5 -2
  71. package/dist/cjs/code_executors/unsafe_local_code_executor.js +8 -2
  72. package/dist/cjs/common.js +106 -1
  73. package/dist/cjs/context/agent_controlled_context_compactor.js +5 -2
  74. package/dist/cjs/context/anchored_context_compactor.js +5 -2
  75. package/dist/cjs/context/compaction_utils.js +3 -0
  76. package/dist/cjs/context/summarizers/llm_summarizer.js +5 -2
  77. package/dist/cjs/context/token_based_context_compactor.js +9 -3
  78. package/dist/cjs/context/trajectory_thought_pruning_compactor.js +5 -2
  79. package/dist/cjs/context/truncating_context_compactor.js +5 -2
  80. package/dist/cjs/environment/base_environment.js +97 -0
  81. package/dist/cjs/environment/local_environment.js +186 -0
  82. package/dist/cjs/events/compacted_event.js +4 -0
  83. package/dist/cjs/events/event.js +38 -3
  84. package/dist/cjs/events/event_actions.js +5 -0
  85. package/dist/cjs/events/structured_events.js +2 -0
  86. package/dist/cjs/examples/base_example_provider.js +6 -2
  87. package/dist/cjs/examples/example_util.js +3 -0
  88. package/dist/cjs/features/feature_registry.js +7 -0
  89. package/dist/cjs/index.js +7 -25
  90. package/dist/cjs/integrations/agent_registry/agent_registry.js +7 -4
  91. package/dist/cjs/integrations/agent_registry/agent_registry_mcp_toolset.js +7 -4
  92. package/dist/cjs/integrations/agent_registry/helpers.js +3 -0
  93. package/dist/cjs/memory/in_memory_memory_service.js +8 -2
  94. package/dist/cjs/memory/vertex_ai_memory_bank_service.js +17 -2
  95. package/dist/cjs/models/apigee_llm.js +9 -3
  96. package/dist/cjs/models/base_llm.js +7 -3
  97. package/dist/cjs/models/gemini_llm_connection.js +5 -2
  98. package/dist/cjs/models/google_llm.js +24 -12
  99. package/dist/cjs/models/interactions_utils.js +16 -0
  100. package/dist/cjs/models/llm_request.js +4 -0
  101. package/dist/cjs/models/llm_response.js +2 -0
  102. package/dist/cjs/models/registry.js +6 -2
  103. package/dist/cjs/models/routed_llm.js +4 -13
  104. package/dist/cjs/plugins/base_plugin.js +39 -5
  105. package/dist/cjs/plugins/global_instruction_plugin.js +5 -2
  106. package/dist/cjs/plugins/logging_plugin.js +13 -8
  107. package/dist/cjs/plugins/plugin_manager.js +37 -2
  108. package/dist/cjs/plugins/security_plugin.js +15 -8
  109. package/dist/cjs/runner/in_memory_runner.js +5 -2
  110. package/dist/cjs/runner/runner.js +208 -18
  111. package/dist/cjs/sessions/base_session_service.js +13 -2
  112. package/dist/cjs/sessions/database_session_service.js +6 -2
  113. package/dist/cjs/sessions/db/operations.js +34 -6
  114. package/dist/cjs/sessions/db/schema.js +16 -8
  115. package/dist/cjs/sessions/in_memory_session_service.js +22 -14
  116. package/dist/cjs/sessions/registry.js +4 -1
  117. package/dist/cjs/sessions/session.js +2 -0
  118. package/dist/cjs/sessions/state.js +80 -8
  119. package/dist/cjs/sessions/state_write_order.js +105 -0
  120. package/dist/cjs/sessions/vertex_ai_session_service.js +110 -15
  121. package/dist/cjs/skills/gcp_skill_registry.js +2 -0
  122. package/dist/cjs/skills/loader.js +22 -10
  123. package/dist/cjs/skills/prompt.js +3 -0
  124. package/dist/cjs/telemetry/google_cloud.js +42 -9
  125. package/dist/cjs/telemetry/setup.js +5 -0
  126. package/dist/cjs/telemetry/tracing.js +60 -4
  127. package/dist/cjs/tools/agent_tool.js +6 -2
  128. package/dist/cjs/tools/base_tool.js +24 -2
  129. package/dist/cjs/tools/base_toolset.js +6 -2
  130. package/dist/cjs/tools/consolidate_context_tool.js +5 -2
  131. package/dist/cjs/tools/enterprise_web_search_tool.js +6 -2
  132. package/dist/cjs/tools/example_tool.js +5 -2
  133. package/dist/cjs/tools/exit_loop_tool.js +5 -2
  134. package/dist/cjs/tools/finish_task_tool.js +119 -0
  135. package/dist/cjs/tools/forwarding_artifact_service.js +5 -2
  136. package/dist/cjs/tools/function_tool.js +73 -8
  137. package/dist/cjs/tools/get_user_choice_tool.js +3 -2
  138. package/dist/cjs/tools/google_maps_grounding_tool.js +6 -2
  139. package/dist/cjs/tools/google_search_tool.js +5 -2
  140. package/dist/cjs/tools/load_artifacts_tool.js +8 -2
  141. package/dist/cjs/tools/load_memory_tool.js +5 -2
  142. package/dist/cjs/tools/load_web_page.js +21 -1
  143. package/dist/cjs/tools/long_running_tool.js +5 -2
  144. package/dist/cjs/tools/mcp/index.js +39 -0
  145. package/dist/cjs/tools/mcp/load_mcp_resource_tool.js +5 -2
  146. package/dist/cjs/tools/mcp/mcp_session_manager.js +36 -8
  147. package/dist/cjs/tools/mcp/mcp_tool.js +5 -2
  148. package/dist/cjs/tools/mcp/mcp_toolset.js +5 -2
  149. package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +4 -0
  150. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +2 -0
  151. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +2 -0
  152. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +30 -9
  153. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/operation_parser.js +2 -0
  154. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +6 -2
  155. package/dist/cjs/tools/openapi_tool/openapi_toolset.js +2 -0
  156. package/dist/cjs/tools/openapi_tool/rest_api_tool.js +23 -5
  157. package/dist/cjs/tools/preload_memory_tool.js +5 -2
  158. package/dist/cjs/tools/request_input_tool.js +6 -4
  159. package/dist/cjs/tools/skill/list_skills_tool.js +2 -0
  160. package/dist/cjs/tools/skill/load_skill_resource_tool.js +2 -0
  161. package/dist/cjs/tools/skill/load_skill_tool.js +4 -1
  162. package/dist/cjs/tools/skill/run_skill_inline_script_tool.js +8 -2
  163. package/dist/cjs/tools/skill/run_skill_script_tool.js +10 -2
  164. package/dist/cjs/tools/skill/search_skills_tool.js +2 -0
  165. package/dist/cjs/tools/skill/skill_toolset.js +35 -0
  166. package/dist/cjs/tools/tool_confirmation.js +26 -3
  167. package/dist/cjs/tools/url_context_tool.js +5 -2
  168. package/dist/cjs/tools/vertex_ai_search_tool.js +5 -2
  169. package/dist/cjs/tools/vertex_rag_retrieval_tool.js +5 -2
  170. package/dist/cjs/utils/async_hooks_shim.js +5 -2
  171. package/dist/cjs/utils/async_queue.js +45 -18
  172. package/dist/cjs/utils/branch_trie.js +2 -0
  173. package/dist/cjs/utils/case_utils.js +2 -0
  174. package/dist/cjs/utils/client_labels.js +5 -0
  175. package/dist/cjs/utils/crypto_shim.js +2 -0
  176. package/dist/cjs/utils/deprecated.js +68 -0
  177. package/dist/cjs/utils/env_aware_utils.js +41 -0
  178. package/dist/cjs/utils/error_utils.js +8 -0
  179. package/dist/cjs/utils/experimental.js +9 -2
  180. package/dist/cjs/utils/failover_utils.js +3 -0
  181. package/dist/cjs/utils/file_extension_utils.js +3 -0
  182. package/dist/cjs/utils/file_utils.js +7 -2
  183. package/dist/cjs/utils/gemini_schema_util.js +6 -2
  184. package/dist/cjs/utils/genai_schema_to_json.js +107 -0
  185. package/dist/cjs/utils/live_connection_utils.js +5 -2
  186. package/dist/cjs/utils/logger.js +13 -4
  187. package/dist/cjs/utils/model_name.js +8 -0
  188. package/dist/cjs/utils/object_notation_utils.js +7 -3
  189. package/dist/cjs/utils/optional_peer.js +68 -0
  190. package/dist/cjs/utils/output_schema_utils.js +2 -0
  191. package/dist/cjs/utils/partial_copy.js +2 -0
  192. package/dist/cjs/utils/redact_uri.js +66 -0
  193. package/dist/cjs/utils/schema.js +178 -0
  194. package/dist/cjs/utils/simple_zod_to_json.js +17 -4
  195. package/dist/cjs/utils/streaming_utils.js +14 -6
  196. package/dist/cjs/utils/task.js +7 -4
  197. package/dist/cjs/utils/variant_utils.js +3 -1
  198. package/dist/cjs/utils/vertex_ai_utils.js +3 -1
  199. package/dist/cjs/version.js +1 -1
  200. package/dist/cjs/workflow/base_node.js +211 -0
  201. package/dist/cjs/workflow/branch_path.js +108 -0
  202. package/dist/cjs/workflow/dynamic_node_scheduler.js +220 -0
  203. package/dist/cjs/workflow/errors.js +178 -0
  204. package/dist/cjs/workflow/graph.js +158 -0
  205. package/dist/cjs/workflow/index.js +131 -0
  206. package/dist/cjs/workflow/node.js +65 -0
  207. package/dist/cjs/workflow/node_builders.js +68 -0
  208. package/dist/cjs/workflow/node_context.js +246 -0
  209. package/dist/cjs/workflow/node_error_event.js +86 -0
  210. package/dist/cjs/workflow/node_runner.js +459 -0
  211. package/dist/cjs/workflow/node_state.js +57 -0
  212. package/dist/cjs/workflow/node_status.js +48 -0
  213. package/dist/cjs/workflow/nodes/function_node.js +195 -0
  214. package/dist/cjs/workflow/nodes/join_node.js +56 -0
  215. package/dist/cjs/workflow/nodes/node_tool.js +156 -0
  216. package/dist/cjs/workflow/nodes/parallel_worker.js +129 -0
  217. package/dist/cjs/workflow/nodes/tool_node.js +117 -0
  218. package/dist/cjs/workflow/request_input.js +64 -0
  219. package/dist/cjs/workflow/retry_config.js +71 -0
  220. package/dist/cjs/workflow/run_llm_agent_as_node.js +192 -0
  221. package/dist/cjs/workflow/run_node_as_invocation.js +165 -0
  222. package/dist/cjs/workflow/schedule_dynamic_node.js +53 -0
  223. package/dist/cjs/workflow/trigger.js +27 -0
  224. package/dist/cjs/workflow/utils/graph_parser.js +212 -0
  225. package/dist/cjs/workflow/utils/graph_validation.js +216 -0
  226. package/dist/cjs/workflow/utils/hitl_utils.js +252 -0
  227. package/dist/cjs/workflow/utils/rehydration_utils.js +373 -0
  228. package/dist/cjs/workflow/utils/retry_utils.js +112 -0
  229. package/dist/cjs/workflow/utils/workflow_graph_utils.js +144 -0
  230. package/dist/cjs/workflow/workflow.js +509 -0
  231. package/dist/esm/a2a/a2a_event.js +19 -0
  232. package/dist/esm/a2a/a2a_remote_agent.js +6 -2
  233. package/dist/esm/a2a/a2a_remote_agent_run_processor.js +8 -3
  234. package/dist/esm/a2a/a2a_remote_agent_utils.js +10 -2
  235. package/dist/esm/a2a/agent_card.js +34 -3
  236. package/dist/esm/a2a/agent_executor.js +27 -17
  237. package/dist/esm/a2a/agent_to_a2a.js +44 -15
  238. package/dist/esm/a2a/auth.js +4 -0
  239. package/dist/esm/a2a/event_converter_utils.js +11 -0
  240. package/dist/esm/a2a/event_processor_utils.js +74 -34
  241. package/dist/esm/a2a/executor_context.js +3 -0
  242. package/dist/esm/a2a/index.js +20 -0
  243. package/dist/esm/a2a/metadata_converter_utils.js +6 -0
  244. package/dist/esm/a2a/part_converter_utils.js +13 -0
  245. package/dist/esm/agents/active_streaming_tool.js +6 -2
  246. package/dist/esm/agents/base_agent.js +47 -9
  247. package/dist/esm/agents/context.js +6 -2
  248. package/dist/esm/agents/framework_function_calls.js +34 -0
  249. package/dist/esm/agents/functions.js +42 -13
  250. package/dist/esm/agents/instructions.js +52 -12
  251. package/dist/esm/agents/invocation_context.js +41 -7
  252. package/dist/esm/agents/live_request_queue.js +30 -5
  253. package/dist/esm/agents/llm_agent.js +536 -45
  254. package/dist/esm/agents/loop_agent.js +21 -2
  255. package/dist/esm/agents/parallel_agent.js +23 -2
  256. package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +8 -4
  257. package/dist/esm/agents/processors/base_llm_processor.js +10 -4
  258. package/dist/esm/agents/processors/basic_llm_request_processor.js +7 -3
  259. package/dist/esm/agents/processors/code_execution_request_processor.js +19 -5
  260. package/dist/esm/agents/processors/content_processor_utils.js +88 -16
  261. package/dist/esm/agents/processors/content_request_processor.js +10 -4
  262. package/dist/esm/agents/processors/context_compactor_request_processor.js +6 -2
  263. package/dist/esm/agents/processors/identity_llm_request_processor.js +13 -4
  264. package/dist/esm/agents/processors/instructions_llm_request_processor.js +6 -2
  265. package/dist/esm/agents/processors/interactions_request_processor.js +6 -2
  266. package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +318 -93
  267. package/dist/esm/agents/processors/request_input_llm_request_processor.js +197 -0
  268. package/dist/esm/agents/processors/tool_filter_request_processor.js +6 -2
  269. package/dist/esm/agents/readonly_context.js +8 -3
  270. package/dist/esm/agents/routed_agent.js +6 -14
  271. package/dist/esm/agents/run_config.js +13 -0
  272. package/dist/esm/agents/sequential_agent.js +22 -3
  273. package/dist/esm/agents/user_input_request.js +120 -0
  274. package/dist/esm/apps/app.js +14 -11
  275. package/dist/esm/apps/resumability_config.js +3 -0
  276. package/dist/esm/artifacts/file_artifact_service.js +22 -2
  277. package/dist/esm/artifacts/gcs_artifact_service.js +58 -11
  278. package/dist/esm/artifacts/in_memory_artifact_service.js +10 -2
  279. package/dist/esm/artifacts/registry.js +7 -1
  280. package/dist/esm/artifacts/scoped_artifact_service.js +6 -2
  281. package/dist/esm/auth/auth_handler.js +6 -2
  282. package/dist/esm/auth/auth_preprocessor.js +50 -41
  283. package/dist/esm/auth/auth_provider_registry.js +6 -2
  284. package/dist/esm/auth/auth_schemes.js +3 -0
  285. package/dist/esm/auth/credential_response_binding.js +74 -0
  286. package/dist/esm/auth/credential_service/in_memory_credential_service.js +6 -2
  287. package/dist/esm/auth/credential_service/session_state_credential_service.js +6 -2
  288. package/dist/esm/auth/exchanger/base_credential_exchanger.js +6 -2
  289. package/dist/esm/auth/exchanger/credential_exchanger_registry.js +6 -2
  290. package/dist/esm/auth/oauth2/oauth2_credential_exchanger.js +9 -2
  291. package/dist/esm/auth/oauth2/oauth2_credential_refresher.js +6 -2
  292. package/dist/esm/auth/oauth2/oauth2_discovery.js +8 -2
  293. package/dist/esm/auth/oauth2/oauth2_utils.js +7 -0
  294. package/dist/esm/auth/refresher/base_credential_refresher.js +6 -2
  295. package/dist/esm/auth/refresher/credential_refresher_registry.js +6 -2
  296. package/dist/esm/code_executors/agent_engine_sandbox_code_executor.js +3 -0
  297. package/dist/esm/code_executors/base_code_executor.js +7 -2
  298. package/dist/esm/code_executors/built_in_code_executor.js +7 -2
  299. package/dist/esm/code_executors/code_execution_utils.js +7 -0
  300. package/dist/esm/code_executors/code_executor_context.js +6 -2
  301. package/dist/esm/code_executors/unsafe_local_code_executor.js +9 -2
  302. package/dist/esm/common.js +109 -4
  303. package/dist/esm/context/agent_controlled_context_compactor.js +6 -2
  304. package/dist/esm/context/anchored_context_compactor.js +6 -2
  305. package/dist/esm/context/compaction_utils.js +4 -0
  306. package/dist/esm/context/summarizers/llm_summarizer.js +6 -2
  307. package/dist/esm/context/token_based_context_compactor.js +10 -3
  308. package/dist/esm/context/trajectory_thought_pruning_compactor.js +6 -2
  309. package/dist/esm/context/truncating_context_compactor.js +6 -2
  310. package/dist/esm/environment/base_environment.js +71 -0
  311. package/dist/esm/environment/local_environment.js +150 -0
  312. package/dist/esm/events/compacted_event.js +5 -0
  313. package/dist/esm/events/event.js +38 -3
  314. package/dist/esm/events/event_actions.js +6 -0
  315. package/dist/esm/events/structured_events.js +3 -0
  316. package/dist/esm/examples/base_example_provider.js +7 -2
  317. package/dist/esm/examples/example_util.js +4 -0
  318. package/dist/esm/features/feature_registry.js +8 -0
  319. package/dist/esm/index.js +4 -15
  320. package/dist/esm/integrations/agent_registry/agent_registry.js +8 -4
  321. package/dist/esm/integrations/agent_registry/agent_registry_mcp_toolset.js +6 -2
  322. package/dist/esm/integrations/agent_registry/helpers.js +4 -0
  323. package/dist/esm/memory/in_memory_memory_service.js +9 -2
  324. package/dist/esm/memory/vertex_ai_memory_bank_service.js +18 -2
  325. package/dist/esm/models/apigee_llm.js +10 -3
  326. package/dist/esm/models/base_llm.js +8 -3
  327. package/dist/esm/models/gemini_llm_connection.js +6 -2
  328. package/dist/esm/models/google_llm.js +26 -13
  329. package/dist/esm/models/interactions_utils.js +17 -0
  330. package/dist/esm/models/llm_request.js +5 -0
  331. package/dist/esm/models/llm_response.js +3 -0
  332. package/dist/esm/models/registry.js +7 -2
  333. package/dist/esm/models/routed_llm.js +4 -14
  334. package/dist/esm/plugins/base_plugin.js +39 -5
  335. package/dist/esm/plugins/global_instruction_plugin.js +6 -2
  336. package/dist/esm/plugins/logging_plugin.js +14 -8
  337. package/dist/esm/plugins/plugin_manager.js +38 -2
  338. package/dist/esm/plugins/security_plugin.js +14 -6
  339. package/dist/esm/runner/in_memory_runner.js +6 -2
  340. package/dist/esm/runner/runner.js +215 -20
  341. package/dist/esm/sessions/base_session_service.js +14 -2
  342. package/dist/esm/sessions/database_session_service.js +7 -2
  343. package/dist/esm/sessions/db/operations.js +34 -6
  344. package/dist/esm/sessions/db/schema.js +16 -8
  345. package/dist/esm/sessions/in_memory_session_service.js +23 -14
  346. package/dist/esm/sessions/registry.js +5 -1
  347. package/dist/esm/sessions/session.js +3 -0
  348. package/dist/esm/sessions/state.js +78 -7
  349. package/dist/esm/sessions/state_write_order.js +74 -0
  350. package/dist/esm/sessions/vertex_ai_session_service.js +110 -15
  351. package/dist/esm/skills/gcp_skill_registry.js +2 -0
  352. package/dist/esm/skills/loader.js +23 -10
  353. package/dist/esm/skills/prompt.js +4 -0
  354. package/dist/esm/telemetry/google_cloud.js +54 -9
  355. package/dist/esm/telemetry/setup.js +6 -0
  356. package/dist/esm/telemetry/tracing.js +59 -4
  357. package/dist/esm/tools/agent_tool.js +7 -2
  358. package/dist/esm/tools/base_tool.js +25 -2
  359. package/dist/esm/tools/base_toolset.js +7 -2
  360. package/dist/esm/tools/consolidate_context_tool.js +6 -2
  361. package/dist/esm/tools/enterprise_web_search_tool.js +7 -2
  362. package/dist/esm/tools/example_tool.js +6 -2
  363. package/dist/esm/tools/exit_loop_tool.js +6 -2
  364. package/dist/esm/tools/finish_task_tool.js +92 -0
  365. package/dist/esm/tools/forwarding_artifact_service.js +6 -2
  366. package/dist/esm/tools/function_tool.js +74 -8
  367. package/dist/esm/tools/get_user_choice_tool.js +4 -2
  368. package/dist/esm/tools/google_maps_grounding_tool.js +7 -2
  369. package/dist/esm/tools/google_search_tool.js +6 -2
  370. package/dist/esm/tools/load_artifacts_tool.js +9 -2
  371. package/dist/esm/tools/load_memory_tool.js +6 -2
  372. package/dist/esm/tools/load_web_page.js +22 -1
  373. package/dist/esm/tools/long_running_tool.js +6 -2
  374. package/dist/esm/tools/mcp/index.js +11 -0
  375. package/dist/esm/tools/mcp/load_mcp_resource_tool.js +6 -2
  376. package/dist/esm/tools/mcp/mcp_session_manager.js +45 -9
  377. package/dist/esm/tools/mcp/mcp_tool.js +6 -2
  378. package/dist/esm/tools/mcp/mcp_toolset.js +6 -2
  379. package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +5 -0
  380. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +2 -0
  381. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +2 -0
  382. package/dist/esm/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +30 -9
  383. package/dist/esm/tools/openapi_tool/openapi_spec_parser/operation_parser.js +2 -0
  384. package/dist/esm/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +6 -2
  385. package/dist/esm/tools/openapi_tool/openapi_toolset.js +2 -0
  386. package/dist/esm/tools/openapi_tool/rest_api_tool.js +23 -5
  387. package/dist/esm/tools/preload_memory_tool.js +6 -2
  388. package/dist/esm/tools/request_input_tool.js +7 -4
  389. package/dist/esm/tools/skill/list_skills_tool.js +2 -0
  390. package/dist/esm/tools/skill/load_skill_resource_tool.js +2 -0
  391. package/dist/esm/tools/skill/load_skill_tool.js +4 -1
  392. package/dist/esm/tools/skill/run_skill_inline_script_tool.js +8 -2
  393. package/dist/esm/tools/skill/run_skill_script_tool.js +10 -2
  394. package/dist/esm/tools/skill/search_skills_tool.js +2 -0
  395. package/dist/esm/tools/skill/skill_toolset.js +25 -0
  396. package/dist/esm/tools/tool_confirmation.js +24 -2
  397. package/dist/esm/tools/url_context_tool.js +6 -2
  398. package/dist/esm/tools/vertex_ai_search_tool.js +6 -2
  399. package/dist/esm/tools/vertex_rag_retrieval_tool.js +6 -2
  400. package/dist/esm/utils/async_hooks_shim.js +6 -2
  401. package/dist/esm/utils/async_queue.js +46 -18
  402. package/dist/esm/utils/branch_trie.js +3 -0
  403. package/dist/esm/utils/case_utils.js +3 -0
  404. package/dist/esm/utils/client_labels.js +6 -0
  405. package/dist/esm/utils/crypto_shim.js +3 -0
  406. package/dist/esm/utils/deprecated.js +40 -0
  407. package/dist/esm/utils/env_aware_utils.js +41 -0
  408. package/dist/esm/utils/error_utils.js +9 -0
  409. package/dist/esm/utils/experimental.js +10 -2
  410. package/dist/esm/utils/failover_utils.js +4 -0
  411. package/dist/esm/utils/file_extension_utils.js +4 -0
  412. package/dist/esm/utils/file_utils.js +8 -2
  413. package/dist/esm/utils/gemini_schema_util.js +7 -2
  414. package/dist/esm/utils/genai_schema_to_json.js +80 -0
  415. package/dist/esm/utils/live_connection_utils.js +6 -2
  416. package/dist/esm/utils/logger.js +14 -4
  417. package/dist/esm/utils/model_name.js +9 -0
  418. package/dist/esm/utils/object_notation_utils.js +8 -3
  419. package/dist/esm/utils/optional_peer.js +41 -0
  420. package/dist/esm/utils/output_schema_utils.js +3 -0
  421. package/dist/esm/utils/partial_copy.js +3 -0
  422. package/dist/esm/utils/redact_uri.js +39 -0
  423. package/dist/esm/utils/schema.js +152 -0
  424. package/dist/esm/utils/simple_zod_to_json.js +15 -4
  425. package/dist/esm/utils/streaming_utils.js +15 -6
  426. package/dist/esm/utils/task.js +8 -4
  427. package/dist/esm/utils/variant_utils.js +5 -2
  428. package/dist/esm/utils/vertex_ai_utils.js +5 -2
  429. package/dist/esm/version.js +1 -1
  430. package/dist/esm/workflow/base_node.js +182 -0
  431. package/dist/esm/workflow/branch_path.js +77 -0
  432. package/dist/esm/workflow/dynamic_node_scheduler.js +202 -0
  433. package/dist/esm/workflow/errors.js +140 -0
  434. package/dist/esm/workflow/graph.js +127 -0
  435. package/dist/esm/workflow/index.js +80 -0
  436. package/dist/esm/workflow/node.js +38 -0
  437. package/dist/esm/workflow/node_builders.js +40 -0
  438. package/dist/esm/workflow/node_context.js +219 -0
  439. package/dist/esm/workflow/node_error_event.js +57 -0
  440. package/dist/esm/workflow/node_runner.js +439 -0
  441. package/dist/esm/workflow/node_state.js +29 -0
  442. package/dist/esm/workflow/node_status.js +20 -0
  443. package/dist/esm/workflow/nodes/function_node.js +172 -0
  444. package/dist/esm/workflow/nodes/join_node.js +29 -0
  445. package/dist/esm/workflow/nodes/node_tool.js +131 -0
  446. package/dist/esm/workflow/nodes/parallel_worker.js +102 -0
  447. package/dist/esm/workflow/nodes/tool_node.js +90 -0
  448. package/dist/esm/workflow/request_input.js +36 -0
  449. package/dist/esm/workflow/retry_config.js +43 -0
  450. package/dist/esm/workflow/run_llm_agent_as_node.js +172 -0
  451. package/dist/esm/workflow/run_node_as_invocation.js +139 -0
  452. package/dist/esm/workflow/schedule_dynamic_node.js +26 -0
  453. package/dist/esm/workflow/trigger.js +7 -0
  454. package/dist/esm/workflow/utils/graph_parser.js +188 -0
  455. package/dist/esm/workflow/utils/graph_validation.js +189 -0
  456. package/dist/esm/workflow/utils/hitl_utils.js +222 -0
  457. package/dist/esm/workflow/utils/rehydration_utils.js +342 -0
  458. package/dist/esm/workflow/utils/retry_utils.js +82 -0
  459. package/dist/esm/workflow/utils/workflow_graph_utils.js +115 -0
  460. package/dist/esm/workflow/workflow.js +493 -0
  461. package/dist/types/a2a/agent_card.d.ts +3 -3
  462. package/dist/types/a2a/agent_to_a2a.d.ts +4 -4
  463. package/dist/types/a2a/event_processor_utils.d.ts +17 -2
  464. package/dist/types/a2a/index.d.ts +18 -0
  465. package/dist/types/agents/base_agent.d.ts +37 -9
  466. package/dist/types/agents/framework_function_calls.d.ts +26 -0
  467. package/dist/types/agents/functions.d.ts +1 -2
  468. package/dist/types/agents/invocation_context.d.ts +95 -3
  469. package/dist/types/agents/live_request_queue.d.ts +7 -1
  470. package/dist/types/agents/llm_agent.d.ts +77 -1
  471. package/dist/types/agents/loop_agent.d.ts +5 -0
  472. package/dist/types/agents/parallel_agent.d.ts +5 -0
  473. package/dist/types/agents/processors/content_processor_utils.d.ts +3 -2
  474. package/dist/types/agents/processors/identity_llm_request_processor.d.ts +4 -1
  475. package/dist/types/agents/processors/request_input_llm_request_processor.d.ts +21 -0
  476. package/dist/types/agents/run_config.d.ts +57 -2
  477. package/dist/types/agents/sequential_agent.d.ts +5 -0
  478. package/dist/types/agents/user_input_request.d.ts +71 -0
  479. package/dist/types/apps/app.d.ts +8 -3
  480. package/dist/types/artifacts/gcs_artifact_service.d.ts +9 -2
  481. package/dist/types/auth/credential_response_binding.d.ts +24 -0
  482. package/dist/types/common.d.ts +18 -8
  483. package/dist/types/environment/base_environment.d.ts +101 -0
  484. package/dist/types/environment/local_environment.d.ts +72 -0
  485. package/dist/types/events/event.d.ts +94 -1
  486. package/dist/types/events/event_actions.d.ts +10 -0
  487. package/dist/types/index.d.ts +5 -13
  488. package/dist/types/models/apigee_llm.d.ts +4 -4
  489. package/dist/types/models/google_llm.d.ts +2 -1
  490. package/dist/types/plugins/base_plugin.d.ts +35 -0
  491. package/dist/types/plugins/plugin_manager.d.ts +20 -0
  492. package/dist/types/plugins/security_plugin.d.ts +4 -2
  493. package/dist/types/runner/in_memory_runner.d.ts +2 -2
  494. package/dist/types/runner/runner.d.ts +59 -3
  495. package/dist/types/sessions/base_session_service.d.ts +2 -2
  496. package/dist/types/sessions/state.d.ts +34 -1
  497. package/dist/types/sessions/state_write_order.d.ts +39 -0
  498. package/dist/types/telemetry/tracing.d.ts +15 -0
  499. package/dist/types/tools/base_tool.d.ts +15 -0
  500. package/dist/types/tools/finish_task_tool.d.ts +47 -0
  501. package/dist/types/tools/function_tool.d.ts +46 -1
  502. package/dist/types/tools/mcp/index.d.ts +13 -0
  503. package/dist/types/tools/mcp/mcp_session_manager.d.ts +3 -3
  504. package/dist/types/tools/mcp/mcp_tool.d.ts +1 -1
  505. package/dist/types/tools/mcp/mcp_toolset.d.ts +1 -1
  506. package/dist/types/tools/request_input_tool.d.ts +6 -1
  507. package/dist/types/tools/skill/skill_toolset.d.ts +26 -0
  508. package/dist/types/tools/tool_confirmation.d.ts +47 -0
  509. package/dist/types/utils/async_queue.d.ts +34 -2
  510. package/dist/types/utils/deprecated.d.ts +21 -0
  511. package/dist/types/utils/env_aware_utils.d.ts +16 -0
  512. package/dist/types/utils/file_utils.d.ts +10 -2
  513. package/dist/types/utils/genai_schema_to_json.d.ts +25 -0
  514. package/dist/types/utils/optional_peer.d.ts +36 -0
  515. package/dist/types/utils/redact_uri.d.ts +28 -0
  516. package/dist/types/utils/schema.d.ts +73 -0
  517. package/dist/types/utils/simple_zod_to_json.d.ts +8 -0
  518. package/dist/types/utils/vertex_ai_utils.d.ts +4 -0
  519. package/dist/types/version.d.ts +1 -1
  520. package/dist/types/workflow/base_node.d.ts +142 -0
  521. package/dist/types/workflow/branch_path.d.ts +40 -0
  522. package/dist/types/workflow/dynamic_node_scheduler.d.ts +64 -0
  523. package/dist/types/workflow/errors.d.ts +132 -0
  524. package/dist/types/workflow/graph.d.ts +127 -0
  525. package/dist/types/workflow/index.d.ts +46 -0
  526. package/dist/types/workflow/node.d.ts +48 -0
  527. package/dist/types/workflow/node_builders.d.ts +25 -0
  528. package/dist/types/workflow/node_context.d.ts +208 -0
  529. package/dist/types/workflow/node_error_event.d.ts +18 -0
  530. package/dist/types/workflow/node_runner.d.ts +82 -0
  531. package/dist/types/workflow/node_state.d.ts +47 -0
  532. package/dist/types/workflow/node_status.d.ts +28 -0
  533. package/dist/types/workflow/nodes/function_node.d.ts +78 -0
  534. package/dist/types/workflow/nodes/join_node.d.ts +24 -0
  535. package/dist/types/workflow/nodes/node_tool.d.ts +53 -0
  536. package/dist/types/workflow/nodes/parallel_worker.d.ts +55 -0
  537. package/dist/types/workflow/nodes/tool_node.d.ts +34 -0
  538. package/dist/types/workflow/request_input.d.ts +73 -0
  539. package/dist/types/workflow/retry_config.d.ts +84 -0
  540. package/dist/types/workflow/run_llm_agent_as_node.d.ts +28 -0
  541. package/dist/types/workflow/run_node_as_invocation.d.ts +72 -0
  542. package/dist/types/workflow/schedule_dynamic_node.d.ts +66 -0
  543. package/dist/types/workflow/trigger.d.ts +22 -0
  544. package/dist/types/workflow/utils/graph_parser.d.ts +8 -0
  545. package/dist/types/workflow/utils/graph_validation.d.ts +18 -0
  546. package/dist/types/workflow/utils/hitl_utils.d.ts +92 -0
  547. package/dist/types/workflow/utils/rehydration_utils.d.ts +132 -0
  548. package/dist/types/workflow/utils/retry_utils.d.ts +54 -0
  549. package/dist/types/workflow/utils/workflow_graph_utils.d.ts +76 -0
  550. package/dist/types/workflow/workflow.d.ts +115 -0
  551. package/dist/web/a2a/a2a_event.js +19 -0
  552. package/dist/web/a2a/a2a_remote_agent.js +6 -2
  553. package/dist/web/a2a/a2a_remote_agent_run_processor.js +8 -3
  554. package/dist/web/a2a/a2a_remote_agent_utils.js +10 -2
  555. package/dist/web/a2a/agent_card.js +34 -3
  556. package/dist/web/a2a/agent_executor.js +45 -17
  557. package/dist/web/a2a/agent_to_a2a.js +44 -15
  558. package/dist/web/a2a/auth.js +4 -0
  559. package/dist/web/a2a/event_converter_utils.js +10 -0
  560. package/dist/web/a2a/event_processor_utils.js +73 -34
  561. package/dist/web/a2a/executor_context.js +3 -0
  562. package/dist/web/a2a/index.js +20 -0
  563. package/dist/web/a2a/metadata_converter_utils.js +5 -0
  564. package/dist/web/a2a/part_converter_utils.js +13 -0
  565. package/dist/web/agents/active_streaming_tool.js +6 -2
  566. package/dist/web/agents/base_agent.js +48 -9
  567. package/dist/web/agents/context.js +6 -2
  568. package/dist/web/agents/framework_function_calls.js +34 -0
  569. package/dist/web/agents/functions.js +42 -13
  570. package/dist/web/agents/instructions.js +52 -12
  571. package/dist/web/agents/invocation_context.js +56 -7
  572. package/dist/web/agents/live_request_queue.js +30 -5
  573. package/dist/web/agents/llm_agent.js +630 -52
  574. package/dist/web/agents/loop_agent.js +21 -2
  575. package/dist/web/agents/parallel_agent.js +23 -2
  576. package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +8 -4
  577. package/dist/web/agents/processors/base_llm_processor.js +10 -4
  578. package/dist/web/agents/processors/basic_llm_request_processor.js +6 -3
  579. package/dist/web/agents/processors/code_execution_request_processor.js +19 -5
  580. package/dist/web/agents/processors/content_processor_utils.js +87 -16
  581. package/dist/web/agents/processors/content_request_processor.js +10 -4
  582. package/dist/web/agents/processors/context_compactor_request_processor.js +6 -2
  583. package/dist/web/agents/processors/identity_llm_request_processor.js +13 -4
  584. package/dist/web/agents/processors/instructions_llm_request_processor.js +6 -2
  585. package/dist/web/agents/processors/interactions_request_processor.js +6 -2
  586. package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +329 -104
  587. package/dist/web/agents/processors/request_input_llm_request_processor.js +228 -0
  588. package/dist/web/agents/processors/tool_filter_request_processor.js +6 -2
  589. package/dist/web/agents/readonly_context.js +8 -3
  590. package/dist/web/agents/routed_agent.js +6 -14
  591. package/dist/web/agents/run_config.js +12 -0
  592. package/dist/web/agents/sequential_agent.js +22 -3
  593. package/dist/web/agents/user_input_request.js +135 -0
  594. package/dist/web/apps/app.js +14 -11
  595. package/dist/web/apps/resumability_config.js +2 -0
  596. package/dist/web/artifacts/file_artifact_service.js +22 -2
  597. package/dist/web/artifacts/gcs_artifact_service.js +56 -11
  598. package/dist/web/artifacts/in_memory_artifact_service.js +10 -2
  599. package/dist/web/artifacts/registry.js +7 -1
  600. package/dist/web/artifacts/scoped_artifact_service.js +5 -2
  601. package/dist/web/auth/auth_handler.js +5 -2
  602. package/dist/web/auth/auth_preprocessor.js +50 -41
  603. package/dist/web/auth/auth_provider_registry.js +6 -2
  604. package/dist/web/auth/auth_schemes.js +3 -0
  605. package/dist/web/auth/credential_response_binding.js +91 -0
  606. package/dist/web/auth/credential_service/in_memory_credential_service.js +6 -2
  607. package/dist/web/auth/credential_service/session_state_credential_service.js +6 -2
  608. package/dist/web/auth/exchanger/base_credential_exchanger.js +6 -2
  609. package/dist/web/auth/exchanger/credential_exchanger_registry.js +6 -2
  610. package/dist/web/auth/oauth2/oauth2_credential_exchanger.js +8 -2
  611. package/dist/web/auth/oauth2/oauth2_credential_refresher.js +5 -2
  612. package/dist/web/auth/oauth2/oauth2_discovery.js +8 -2
  613. package/dist/web/auth/oauth2/oauth2_utils.js +7 -0
  614. package/dist/web/auth/refresher/base_credential_refresher.js +6 -2
  615. package/dist/web/auth/refresher/credential_refresher_registry.js +6 -2
  616. package/dist/web/code_executors/agent_engine_sandbox_code_executor.js +3 -0
  617. package/dist/web/code_executors/base_code_executor.js +7 -2
  618. package/dist/web/code_executors/built_in_code_executor.js +7 -2
  619. package/dist/web/code_executors/code_execution_utils.js +7 -0
  620. package/dist/web/code_executors/code_executor_context.js +6 -2
  621. package/dist/web/code_executors/unsafe_local_code_executor.js +9 -2
  622. package/dist/web/common.js +109 -4
  623. package/dist/web/context/agent_controlled_context_compactor.js +6 -2
  624. package/dist/web/context/anchored_context_compactor.js +5 -2
  625. package/dist/web/context/compaction_utils.js +4 -0
  626. package/dist/web/context/summarizers/llm_summarizer.js +6 -2
  627. package/dist/web/context/token_based_context_compactor.js +10 -3
  628. package/dist/web/context/trajectory_thought_pruning_compactor.js +6 -2
  629. package/dist/web/context/truncating_context_compactor.js +6 -2
  630. package/dist/web/environment/base_environment.js +71 -0
  631. package/dist/web/environment/local_environment.js +165 -0
  632. package/dist/web/events/compacted_event.js +4 -0
  633. package/dist/web/events/event.js +37 -3
  634. package/dist/web/events/event_actions.js +5 -0
  635. package/dist/web/events/structured_events.js +3 -0
  636. package/dist/web/examples/base_example_provider.js +7 -2
  637. package/dist/web/examples/example_util.js +4 -0
  638. package/dist/web/features/feature_registry.js +8 -0
  639. package/dist/web/index.js +4 -15
  640. package/dist/web/integrations/agent_registry/agent_registry.js +8 -4
  641. package/dist/web/integrations/agent_registry/agent_registry_mcp_toolset.js +5 -2
  642. package/dist/web/integrations/agent_registry/helpers.js +4 -0
  643. package/dist/web/memory/in_memory_memory_service.js +9 -2
  644. package/dist/web/memory/vertex_ai_memory_bank_service.js +17 -2
  645. package/dist/web/models/apigee_llm.js +9 -3
  646. package/dist/web/models/base_llm.js +8 -3
  647. package/dist/web/models/gemini_llm_connection.js +6 -2
  648. package/dist/web/models/google_llm.js +25 -13
  649. package/dist/web/models/interactions_utils.js +17 -0
  650. package/dist/web/models/llm_request.js +5 -0
  651. package/dist/web/models/llm_response.js +3 -0
  652. package/dist/web/models/registry.js +7 -2
  653. package/dist/web/models/routed_llm.js +4 -14
  654. package/dist/web/plugins/base_plugin.js +39 -5
  655. package/dist/web/plugins/global_instruction_plugin.js +6 -2
  656. package/dist/web/plugins/logging_plugin.js +14 -8
  657. package/dist/web/plugins/plugin_manager.js +38 -2
  658. package/dist/web/plugins/security_plugin.js +14 -6
  659. package/dist/web/runner/in_memory_runner.js +6 -2
  660. package/dist/web/runner/runner.js +232 -20
  661. package/dist/web/sessions/base_session_service.js +14 -2
  662. package/dist/web/sessions/database_session_service.js +6 -2
  663. package/dist/web/sessions/db/operations.js +34 -6
  664. package/dist/web/sessions/db/schema.js +16 -8
  665. package/dist/web/sessions/in_memory_session_service.js +23 -14
  666. package/dist/web/sessions/registry.js +5 -1
  667. package/dist/web/sessions/session.js +3 -0
  668. package/dist/web/sessions/state.js +77 -7
  669. package/dist/web/sessions/state_write_order.js +74 -0
  670. package/dist/web/sessions/vertex_ai_session_service.js +118 -15
  671. package/dist/web/skills/gcp_skill_registry.js +2 -0
  672. package/dist/web/skills/loader.js +22 -10
  673. package/dist/web/skills/prompt.js +4 -0
  674. package/dist/web/telemetry/google_cloud.js +54 -9
  675. package/dist/web/telemetry/setup.js +6 -0
  676. package/dist/web/telemetry/tracing.js +77 -7
  677. package/dist/web/tools/agent_tool.js +7 -2
  678. package/dist/web/tools/base_tool.js +25 -2
  679. package/dist/web/tools/base_toolset.js +7 -2
  680. package/dist/web/tools/consolidate_context_tool.js +6 -2
  681. package/dist/web/tools/enterprise_web_search_tool.js +7 -2
  682. package/dist/web/tools/example_tool.js +6 -2
  683. package/dist/web/tools/exit_loop_tool.js +6 -2
  684. package/dist/web/tools/finish_task_tool.js +92 -0
  685. package/dist/web/tools/forwarding_artifact_service.js +6 -2
  686. package/dist/web/tools/function_tool.js +74 -8
  687. package/dist/web/tools/get_user_choice_tool.js +4 -2
  688. package/dist/web/tools/google_maps_grounding_tool.js +7 -2
  689. package/dist/web/tools/google_search_tool.js +6 -2
  690. package/dist/web/tools/load_artifacts_tool.js +9 -2
  691. package/dist/web/tools/load_memory_tool.js +6 -2
  692. package/dist/web/tools/load_web_page.js +22 -1
  693. package/dist/web/tools/long_running_tool.js +5 -2
  694. package/dist/web/tools/mcp/index.js +11 -0
  695. package/dist/web/tools/mcp/load_mcp_resource_tool.js +6 -2
  696. package/dist/web/tools/mcp/mcp_session_manager.js +45 -9
  697. package/dist/web/tools/mcp/mcp_tool.js +6 -2
  698. package/dist/web/tools/mcp/mcp_toolset.js +5 -2
  699. package/dist/web/tools/openapi_tool/auth/auth_helpers.js +5 -0
  700. package/dist/web/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +2 -0
  701. package/dist/web/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +2 -0
  702. package/dist/web/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +30 -9
  703. package/dist/web/tools/openapi_tool/openapi_spec_parser/operation_parser.js +2 -0
  704. package/dist/web/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +6 -2
  705. package/dist/web/tools/openapi_tool/openapi_toolset.js +2 -0
  706. package/dist/web/tools/openapi_tool/rest_api_tool.js +23 -5
  707. package/dist/web/tools/preload_memory_tool.js +6 -2
  708. package/dist/web/tools/request_input_tool.js +7 -4
  709. package/dist/web/tools/skill/list_skills_tool.js +2 -0
  710. package/dist/web/tools/skill/load_skill_resource_tool.js +2 -0
  711. package/dist/web/tools/skill/load_skill_tool.js +4 -1
  712. package/dist/web/tools/skill/run_skill_inline_script_tool.js +26 -2
  713. package/dist/web/tools/skill/run_skill_script_tool.js +28 -2
  714. package/dist/web/tools/skill/search_skills_tool.js +2 -0
  715. package/dist/web/tools/skill/skill_toolset.js +25 -0
  716. package/dist/web/tools/tool_confirmation.js +24 -2
  717. package/dist/web/tools/url_context_tool.js +6 -2
  718. package/dist/web/tools/vertex_ai_search_tool.js +6 -2
  719. package/dist/web/tools/vertex_rag_retrieval_tool.js +6 -2
  720. package/dist/web/utils/async_hooks_shim.js +6 -2
  721. package/dist/web/utils/async_queue.js +46 -18
  722. package/dist/web/utils/branch_trie.js +3 -0
  723. package/dist/web/utils/case_utils.js +3 -0
  724. package/dist/web/utils/client_labels.js +6 -0
  725. package/dist/web/utils/crypto_shim.js +3 -0
  726. package/dist/web/utils/deprecated.js +40 -0
  727. package/dist/web/utils/env_aware_utils.js +41 -0
  728. package/dist/web/utils/error_utils.js +9 -0
  729. package/dist/web/utils/experimental.js +10 -2
  730. package/dist/web/utils/failover_utils.js +4 -0
  731. package/dist/web/utils/file_extension_utils.js +4 -0
  732. package/dist/web/utils/file_utils.js +7 -2
  733. package/dist/web/utils/gemini_schema_util.js +6 -2
  734. package/dist/web/utils/genai_schema_to_json.js +80 -0
  735. package/dist/web/utils/live_connection_utils.js +5 -2
  736. package/dist/web/utils/logger.js +14 -4
  737. package/dist/web/utils/model_name.js +9 -0
  738. package/dist/web/utils/object_notation_utils.js +8 -3
  739. package/dist/web/utils/optional_peer.js +38 -0
  740. package/dist/web/utils/output_schema_utils.js +3 -0
  741. package/dist/web/utils/partial_copy.js +3 -0
  742. package/dist/web/utils/redact_uri.js +39 -0
  743. package/dist/web/utils/schema.js +167 -0
  744. package/dist/web/utils/simple_zod_to_json.js +15 -4
  745. package/dist/web/utils/streaming_utils.js +14 -6
  746. package/dist/web/utils/task.js +8 -4
  747. package/dist/web/utils/variant_utils.js +5 -2
  748. package/dist/web/utils/vertex_ai_utils.js +5 -2
  749. package/dist/web/version.js +1 -1
  750. package/dist/web/workflow/base_node.js +215 -0
  751. package/dist/web/workflow/branch_path.js +77 -0
  752. package/dist/web/workflow/dynamic_node_scheduler.js +202 -0
  753. package/dist/web/workflow/errors.js +140 -0
  754. package/dist/web/workflow/graph.js +127 -0
  755. package/dist/web/workflow/index.js +80 -0
  756. package/dist/web/workflow/node.js +87 -0
  757. package/dist/web/workflow/node_builders.js +40 -0
  758. package/dist/web/workflow/node_context.js +236 -0
  759. package/dist/web/workflow/node_error_event.js +86 -0
  760. package/dist/web/workflow/node_runner.js +481 -0
  761. package/dist/web/workflow/node_state.js +43 -0
  762. package/dist/web/workflow/node_status.js +20 -0
  763. package/dist/web/workflow/nodes/function_node.js +221 -0
  764. package/dist/web/workflow/nodes/join_node.js +47 -0
  765. package/dist/web/workflow/nodes/node_tool.js +131 -0
  766. package/dist/web/workflow/nodes/parallel_worker.js +120 -0
  767. package/dist/web/workflow/nodes/tool_node.js +126 -0
  768. package/dist/web/workflow/request_input.js +36 -0
  769. package/dist/web/workflow/retry_config.js +43 -0
  770. package/dist/web/workflow/run_llm_agent_as_node.js +266 -0
  771. package/dist/web/workflow/run_node_as_invocation.js +170 -0
  772. package/dist/web/workflow/schedule_dynamic_node.js +26 -0
  773. package/dist/web/workflow/trigger.js +7 -0
  774. package/dist/web/workflow/utils/graph_parser.js +188 -0
  775. package/dist/web/workflow/utils/graph_validation.js +189 -0
  776. package/dist/web/workflow/utils/hitl_utils.js +239 -0
  777. package/dist/web/workflow/utils/rehydration_utils.js +342 -0
  778. package/dist/web/workflow/utils/retry_utils.js +82 -0
  779. package/dist/web/workflow/utils/workflow_graph_utils.js +115 -0
  780. package/dist/web/workflow/workflow.js +529 -0
  781. package/package.json +82 -8
@@ -0,0 +1,509 @@
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 __decorateClass = (decorators, target, key, kind) => {
27
+ var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
28
+ for (var i = decorators.length - 1, decorator; i >= 0; i--)
29
+ if (decorator = decorators[i])
30
+ result = (kind ? decorator(target, key, result) : decorator(result)) || result;
31
+ if (kind && result) __defProp(target, key, result);
32
+ return result;
33
+ };
34
+ var workflow_exports = {};
35
+ __export(workflow_exports, {
36
+ Workflow: () => Workflow,
37
+ isWorkflow: () => isWorkflow
38
+ });
39
+ module.exports = __toCommonJS(workflow_exports);
40
+ var import_api = require("@opentelemetry/api");
41
+ var import_tracing = require("../telemetry/tracing.js");
42
+ var import_experimental = require("../utils/experimental.js");
43
+ var import_base_node = require("./base_node.js");
44
+ var import_branch_path = require("./branch_path.js");
45
+ var import_dynamic_node_scheduler = require("./dynamic_node_scheduler.js");
46
+ var import_errors = require("./errors.js");
47
+ var import_graph = require("./graph.js");
48
+ var import_node_error_event = require("./node_error_event.js");
49
+ var import_node_runner = require("./node_runner.js");
50
+ var import_node_state = require("./node_state.js");
51
+ var import_node_status = require("./node_status.js");
52
+ var import_schedule_dynamic_node = require("./schedule_dynamic_node.js");
53
+ var import_rehydration_utils = require("./utils/rehydration_utils.js");
54
+ /**
55
+ * @license
56
+ * Copyright 2026 Google LLC
57
+ * SPDX-License-Identifier: Apache-2.0
58
+ */
59
+ var _a, _b;
60
+ const WORKFLOW_SIGNATURE_SYMBOL = Symbol.for("google.adk.workflow.workflow");
61
+ const _LoopState = class _LoopState {
62
+ constructor() {
63
+ this.nodes = /* @__PURE__ */ new Map();
64
+ this.nodeOutputs = /* @__PURE__ */ new Map();
65
+ this.nodeBranches = /* @__PURE__ */ new Map();
66
+ this.triggerBuffer = /* @__PURE__ */ new Map();
67
+ this.pending = /* @__PURE__ */ new Map();
68
+ this.interruptIds = /* @__PURE__ */ new Set();
69
+ /** Per-node state reconstructed from prior session events (resume). */
70
+ this.rehydrated = /* @__PURE__ */ new Map();
71
+ /** Nodes already activated in this turn, so a repeat activation is visible. */
72
+ this.activated = /* @__PURE__ */ new Set();
73
+ this.errorShutDown = false;
74
+ }
75
+ };
76
+ __name(_LoopState, "LoopState");
77
+ let LoopState = _LoopState;
78
+ let Workflow = class extends (_b = import_base_node.BaseNode, _a = WORKFLOW_SIGNATURE_SYMBOL, _b) {
79
+ constructor(config) {
80
+ var _a2;
81
+ super({ ...config, rerunOnResume: (_a2 = config.rerunOnResume) != null ? _a2 : true });
82
+ /** Brand identifying this object as a {@link Workflow} (see `isWorkflow`). */
83
+ this[_a] = true;
84
+ const hasEdges = !!config.edges && config.edges.length > 0;
85
+ if (hasEdges && config.dynamicEntry) {
86
+ throw new Error(
87
+ `Workflow "${this.name}": "edges" and "dynamicEntry" are mutually exclusive.`
88
+ );
89
+ }
90
+ if (!hasEdges && !config.dynamicEntry) {
91
+ throw new Error(
92
+ `Workflow "${this.name}" requires either "edges" or "dynamicEntry".`
93
+ );
94
+ }
95
+ if (config.maxConcurrency !== void 0 && (!Number.isInteger(config.maxConcurrency) || config.maxConcurrency < 1)) {
96
+ throw new Error(
97
+ `Workflow "${this.name}": "maxConcurrency" must be a positive integer (got ${config.maxConcurrency}).`
98
+ );
99
+ }
100
+ this.maxConcurrency = config.maxConcurrency;
101
+ this.dynamicEntry = config.dynamicEntry;
102
+ if (config.edges && config.edges.length > 0) {
103
+ this.graph = (0, import_graph.createGraphFromEdgeItems)(config.edges);
104
+ }
105
+ }
106
+ // eslint-disable-next-line require-yield -- child events stream out via ctx.channel/ctx.runNode; this orchestration generator itself yields nothing
107
+ async *runImpl(ctx, nodeInput) {
108
+ const dynamicState = new import_schedule_dynamic_node.DynamicNodeState();
109
+ const abort = createWorkflowAbort(ctx.invocationContext.abortSignal);
110
+ ctx.scheduler = new import_dynamic_node_scheduler.DynamicNodeScheduler(
111
+ dynamicState,
112
+ abort.controller.signal
113
+ );
114
+ const span = import_tracing.tracer.startSpan(`invoke_workflow ${this.name}`);
115
+ 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
+ });
124
+ } finally {
125
+ abort.dispose();
126
+ span.end();
127
+ }
128
+ }
129
+ /**
130
+ * The orchestration body, wrapped by {@link runImpl} so its workflow-scoped
131
+ * abort controller is always disposed.
132
+ */
133
+ async orchestrate(ctx, nodeInput, dynamicState, abortController) {
134
+ var _a2, _b2;
135
+ const runEvents = (0, import_rehydration_utils.eventsForCurrentRun)(
136
+ (_b2 = (_a2 = ctx.session) == null ? void 0 : _a2.events) != null ? _b2 : [],
137
+ ctx.invocationId
138
+ );
139
+ const rehydrated = (0, import_rehydration_utils.reconstructNodeRuns)(
140
+ runEvents,
141
+ ctx.nodePath || void 0
142
+ );
143
+ this.applyResumeInputs(ctx, runEvents);
144
+ if (this.dynamicEntry) {
145
+ await this.runDynamicEntry(ctx, nodeInput, dynamicState);
146
+ return;
147
+ }
148
+ const loop = new LoopState();
149
+ loop.rehydrated = rehydrated;
150
+ loop.abortSignal = abortController.signal;
151
+ this.seedStartTriggers(loop, nodeInput);
152
+ await this.runLoop(loop, ctx, abortController);
153
+ if (loop.errorShutDown) {
154
+ return;
155
+ }
156
+ this.collectRemainingInterrupts(loop);
157
+ for (const id of dynamicState.interruptIds) {
158
+ loop.interruptIds.add(id);
159
+ }
160
+ this.finalize(loop, ctx);
161
+ }
162
+ /**
163
+ * Runs an imperative `dynamicEntry` workflow. The entry drives execution via
164
+ * `ctx.runNode(...)` (routed through the scheduler) and returns the output.
165
+ */
166
+ async runDynamicEntry(ctx, nodeInput, dynamicState) {
167
+ const output = await this.dynamicEntry(ctx, nodeInput);
168
+ if (dynamicState.interruptIds.size > 0) {
169
+ ctx.interruptIds = [...dynamicState.interruptIds];
170
+ return;
171
+ }
172
+ if (output !== void 0) {
173
+ ctx.output = output;
174
+ }
175
+ }
176
+ /**
177
+ * Merges resolved interrupt responses from prior session events into
178
+ * `ctx.resumeInputs`, so waiting nodes (which read `ctx.resumeInputs[id]`)
179
+ * resume with the user's response. Shared by child contexts via propagation.
180
+ *
181
+ * Taken from the events rather than from `rehydrated`, because that view is
182
+ * scoped to this workflow's direct children: an interrupt raised deeper — by
183
+ * a `ctx.runNode` child, or inside a nested workflow — is keyed out of it,
184
+ * and its answer would never reach the node waiting on it.
185
+ */
186
+ applyResumeInputs(ctx, runEvents) {
187
+ for (const [interruptId, response] of (0, import_rehydration_utils.resolvedInterruptResponses)(
188
+ runEvents
189
+ )) {
190
+ ctx.resumeInputs[interruptId] = response;
191
+ }
192
+ }
193
+ // --- SETUP ---
194
+ seedStartTriggers(loop, nodeInput) {
195
+ const startEdges = this.graph.edges.filter(
196
+ (e) => e.fromNode.name === "__START__"
197
+ );
198
+ const useSubBranch = startEdges.length > 1;
199
+ for (const edge of startEdges) {
200
+ this.pushTrigger(loop, edge.toNode.name, {
201
+ input: nodeInput,
202
+ useSubBranch
203
+ });
204
+ }
205
+ }
206
+ // --- LOOP ---
207
+ async runLoop(loop, ctx, abortController) {
208
+ for (; ; ) {
209
+ this.scheduleReadyNodes(loop, ctx);
210
+ if (loop.pending.size === 0) {
211
+ break;
212
+ }
213
+ const result = await Promise.race(loop.pending.values());
214
+ loop.pending.delete(result.name);
215
+ if (result.error) {
216
+ const nodeState = loop.nodes.get(result.name);
217
+ if (nodeState) {
218
+ nodeState.status = import_node_status.NodeStatus.FAILED;
219
+ }
220
+ this.reportNodeError(loop, ctx, result.name, result.error);
221
+ loop.errorShutDown = true;
222
+ await this.cleanupPending(loop, abortController);
223
+ throw result.error;
224
+ }
225
+ await this.handleCompletion(loop, result.name, result.childCtx);
226
+ }
227
+ }
228
+ reportNodeError(loop, ctx, nodeName, error) {
229
+ var _a2, _b2, _c;
230
+ if ((0, import_errors.isInvocationAbortedError)(error) || ((_a2 = loop.abortSignal) == null ? void 0 : _a2.aborted)) {
231
+ return;
232
+ }
233
+ if (!(0, import_node_error_event.claimNodeErrorReport)(error, ctx.invocationId)) {
234
+ return;
235
+ }
236
+ ctx.emit(
237
+ (0, import_node_error_event.createNodeErrorEvent)({
238
+ error,
239
+ attemptCount: (_c = (_b2 = loop.nodes.get(nodeName)) == null ? void 0 : _b2.attemptCount) != null ? _c : 1,
240
+ author: nodeName,
241
+ invocationId: ctx.invocationId,
242
+ nodeInfo: {
243
+ path: ctx.nodePath ? `${ctx.nodePath}.${nodeName}` : nodeName
244
+ },
245
+ branch: ctx.branch,
246
+ isolationScope: ctx.isolationScope
247
+ })
248
+ );
249
+ }
250
+ // --- Scheduling ---
251
+ scheduleReadyNodes(loop, ctx) {
252
+ for (const nodeName of [...loop.triggerBuffer.keys()]) {
253
+ if (loop.pending.has(nodeName)) {
254
+ continue;
255
+ }
256
+ const state = loop.nodes.get(nodeName);
257
+ if (state) {
258
+ if (state.status === import_node_status.NodeStatus.RUNNING) {
259
+ continue;
260
+ }
261
+ if (state.status === import_node_status.NodeStatus.WAITING && state.interrupts.length > 0) {
262
+ continue;
263
+ }
264
+ }
265
+ if (this.atConcurrencyLimit(loop)) {
266
+ break;
267
+ }
268
+ const trigger = this.popTrigger(loop, nodeName);
269
+ if (!trigger) {
270
+ continue;
271
+ }
272
+ this.prepareNodeStateForStarting(loop, nodeName, trigger);
273
+ this.startNodeTask(loop, ctx, nodeName, trigger);
274
+ }
275
+ }
276
+ atConcurrencyLimit(loop) {
277
+ return this.maxConcurrency !== void 0 && loop.pending.size >= this.maxConcurrency;
278
+ }
279
+ prepareNodeStateForStarting(loop, nodeName, trigger) {
280
+ var _a2;
281
+ const existing = loop.nodes.get(nodeName);
282
+ const state = (0, import_node_state.createNodeState)({
283
+ runCounter: (_a2 = existing == null ? void 0 : existing.runCounter) != null ? _a2 : 0
284
+ });
285
+ state.input = trigger.input;
286
+ state.status = import_node_status.NodeStatus.RUNNING;
287
+ loop.nodes.set(nodeName, state);
288
+ }
289
+ startNodeTask(loop, ctx, nodeName, trigger) {
290
+ var _a2, _b2;
291
+ const node = this.getStaticNode(nodeName);
292
+ const nodeState = loop.nodes.get(nodeName);
293
+ const repeatActivation = loop.activated.has(nodeName);
294
+ loop.activated.add(nodeName);
295
+ const prior = (_a2 = loop.rehydrated.get(nodeName)) == null ? void 0 : _a2.shift();
296
+ if (prior && (0, import_rehydration_utils.isFastForwardable)(prior)) {
297
+ loop.pending.set(
298
+ nodeName,
299
+ Promise.resolve({
300
+ name: nodeName,
301
+ childCtx: (0, import_rehydration_utils.makeFastForwardResult)(ctx, prior)
302
+ })
303
+ );
304
+ return;
305
+ }
306
+ if (prior && !node.rerunOnResume && prior.output === void 0 && prior.interruptIds.size > 0) {
307
+ const values = [...prior.interruptIds].map((id) => ctx.resumeInputs[id]);
308
+ if (values.every((v) => v !== void 0)) {
309
+ const output = values.length === 1 ? values[0] : values;
310
+ const resumeResult = {
311
+ output,
312
+ route: void 0,
313
+ branch: (_b2 = prior.branch) != null ? _b2 : ctx.branch,
314
+ interruptIds: []
315
+ };
316
+ loop.pending.set(
317
+ nodeName,
318
+ Promise.resolve({ name: nodeName, childCtx: resumeResult })
319
+ );
320
+ return;
321
+ }
322
+ }
323
+ let runId = nodeState.runId;
324
+ if (!runId) {
325
+ nodeState.runCounter += 1;
326
+ runId = String(nodeState.runCounter);
327
+ nodeState.runId = runId;
328
+ }
329
+ const resuming = prior !== void 0 && prior.interruptIds.size > 0 && prior.input !== void 0;
330
+ const nodeInput = resuming ? prior.input : trigger.input;
331
+ const task = (0, import_node_runner.executeChildNode)({
332
+ parent: ctx,
333
+ node,
334
+ input: nodeInput,
335
+ abortSignal: loop.abortSignal,
336
+ nodeState,
337
+ resumeInputs: repeatActivation ? {} : void 0,
338
+ options: {
339
+ runId,
340
+ useSubBranch: trigger.useSubBranch,
341
+ overrideBranch: trigger.branch,
342
+ overrideIsolationScope: trigger.isolationScope
343
+ }
344
+ }).then(
345
+ (childCtx) => ({ name: nodeName, childCtx }),
346
+ (error) => ({ name: nodeName, error })
347
+ );
348
+ loop.pending.set(nodeName, task);
349
+ }
350
+ // --- Completion handling ---
351
+ async handleCompletion(loop, nodeName, childCtx) {
352
+ var _a2;
353
+ const nodeState = loop.nodes.get(nodeName);
354
+ const node = this.getStaticNode(nodeName);
355
+ if (childCtx.interruptIds.length > 0) {
356
+ nodeState.status = import_node_status.NodeStatus.WAITING;
357
+ nodeState.interrupts = [...childCtx.interruptIds];
358
+ childCtx.interruptIds.forEach((id) => loop.interruptIds.add(id));
359
+ return;
360
+ }
361
+ if (node.waitForOutput && childCtx.output === void 0 && childCtx.route === void 0) {
362
+ nodeState.status = import_node_status.NodeStatus.WAITING;
363
+ return;
364
+ }
365
+ nodeState.status = import_node_status.NodeStatus.COMPLETED;
366
+ if (childCtx.output !== void 0) {
367
+ loop.nodeOutputs.set(nodeName, childCtx.output);
368
+ }
369
+ loop.nodeBranches.set(nodeName, (_a2 = childCtx.branch) != null ? _a2 : "");
370
+ this.bufferDownstreamTriggers(
371
+ loop,
372
+ nodeName,
373
+ childCtx.output,
374
+ childCtx.route,
375
+ childCtx.branch
376
+ );
377
+ }
378
+ bufferDownstreamTriggers(loop, nodeName, output, route, branch) {
379
+ const nextNodes = this.graph.getNextPendingNodes(nodeName, route != null ? route : null);
380
+ const useSubBranch = nextNodes.length > 1;
381
+ for (const targetName of nextNodes) {
382
+ const targetNode = this.getStaticNode(targetName);
383
+ if (targetNode.requiresAllPredecessors) {
384
+ const predecessors = new Set(
385
+ this.graph.edges.filter((e) => e.toNode.name === targetName).map(
386
+ (e) => e.fromNode.name
387
+ )
388
+ );
389
+ const allCompleted = [...predecessors].every(
390
+ (p) => {
391
+ var _a2;
392
+ return ((_a2 = loop.nodes.get(p)) == null ? void 0 : _a2.status) === import_node_status.NodeStatus.COMPLETED;
393
+ }
394
+ );
395
+ if (allCompleted) {
396
+ const outputs = {};
397
+ for (const p of predecessors) {
398
+ outputs[p] = loop.nodeOutputs.get(p);
399
+ }
400
+ const branches = [...predecessors].map(
401
+ (p) => {
402
+ var _a2;
403
+ return (_a2 = loop.nodeBranches.get(p)) != null ? _a2 : "";
404
+ }
405
+ );
406
+ const commonBranch = (0, import_branch_path.commonPrefixOf)(branches);
407
+ this.pushTrigger(loop, targetName, {
408
+ input: outputs,
409
+ useSubBranch: false,
410
+ branch: commonBranch || void 0
411
+ });
412
+ }
413
+ } else {
414
+ this.pushTrigger(loop, targetName, {
415
+ input: output,
416
+ useSubBranch,
417
+ branch
418
+ });
419
+ }
420
+ }
421
+ }
422
+ collectRemainingInterrupts(loop) {
423
+ for (const nodeState of loop.nodes.values()) {
424
+ if (nodeState.status === import_node_status.NodeStatus.WAITING && nodeState.interrupts.length > 0) {
425
+ nodeState.interrupts.forEach((id) => loop.interruptIds.add(id));
426
+ }
427
+ }
428
+ }
429
+ // --- FINALIZE ---
430
+ finalize(loop, ctx) {
431
+ if (loop.interruptIds.size > 0) {
432
+ ctx.interruptIds = [...loop.interruptIds];
433
+ return;
434
+ }
435
+ const terminalOutputs = [...this.graph.terminalNodeNames].filter((name) => loop.nodeOutputs.has(name)).map((name) => loop.nodeOutputs.get(name));
436
+ if (terminalOutputs.length === 1) {
437
+ ctx.output = terminalOutputs[0];
438
+ } else if (terminalOutputs.length > 1) {
439
+ throw new Error(
440
+ `Workflow ${this.name}: multiple terminal nodes produced output (${terminalOutputs.length}). A workflow must have at most one terminal output.`
441
+ );
442
+ }
443
+ }
444
+ // --- Utilities ---
445
+ pushTrigger(loop, nodeName, trigger) {
446
+ const buffer = loop.triggerBuffer.get(nodeName);
447
+ if (buffer) {
448
+ buffer.push(trigger);
449
+ } else {
450
+ loop.triggerBuffer.set(nodeName, [trigger]);
451
+ }
452
+ }
453
+ popTrigger(loop, nodeName) {
454
+ const buffer = loop.triggerBuffer.get(nodeName);
455
+ if (!buffer || buffer.length === 0) {
456
+ return void 0;
457
+ }
458
+ const trigger = buffer.shift();
459
+ if (buffer.length === 0) {
460
+ loop.triggerBuffer.delete(nodeName);
461
+ }
462
+ return trigger;
463
+ }
464
+ getStaticNode(name) {
465
+ const node = this.graph.nodes.find((n) => n.name === name);
466
+ if (!node) {
467
+ throw new Error(`Node ${name} not found in graph.`);
468
+ }
469
+ return node;
470
+ }
471
+ async cleanupPending(loop, abortController) {
472
+ abortController.abort();
473
+ const outstanding = [...loop.pending.values()];
474
+ loop.pending.clear();
475
+ await Promise.allSettled(outstanding);
476
+ }
477
+ };
478
+ __name(Workflow, "Workflow");
479
+ Workflow = __decorateClass([
480
+ import_experimental.experimental
481
+ ], Workflow);
482
+ function isWorkflow(value) {
483
+ return typeof value === "object" && value !== null && WORKFLOW_SIGNATURE_SYMBOL in value && value[WORKFLOW_SIGNATURE_SYMBOL] === true;
484
+ }
485
+ __name(isWorkflow, "isWorkflow");
486
+ function createWorkflowAbort(parentSignal) {
487
+ const controller = new AbortController();
488
+ if (!parentSignal) {
489
+ return { controller, dispose: /* @__PURE__ */ __name(() => {
490
+ }, "dispose") };
491
+ }
492
+ if (parentSignal.aborted) {
493
+ controller.abort();
494
+ return { controller, dispose: /* @__PURE__ */ __name(() => {
495
+ }, "dispose") };
496
+ }
497
+ const onParentAbort = /* @__PURE__ */ __name(() => controller.abort(), "onParentAbort");
498
+ parentSignal.addEventListener("abort", onParentAbort, { once: true });
499
+ return {
500
+ controller,
501
+ dispose: /* @__PURE__ */ __name(() => parentSignal.removeEventListener("abort", onParentAbort), "dispose")
502
+ };
503
+ }
504
+ __name(createWorkflowAbort, "createWorkflowAbort");
505
+ // Annotate the CommonJS export names for ESM import in node:
506
+ 0 && (module.exports = {
507
+ Workflow,
508
+ isWorkflow
509
+ });
@@ -1,5 +1,7 @@
1
1
  import {createRequire as topLevelCreateRequire} from 'module';
2
2
  const require = topLevelCreateRequire(import.meta.url);
3
+ var __defProp = Object.defineProperty;
4
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
5
  /**
4
6
  * @license
5
7
  * Copyright 2026 Google LLC
@@ -24,15 +26,19 @@ var TaskState = /* @__PURE__ */ ((TaskState2) => {
24
26
  function isTaskStatusUpdateEvent(event) {
25
27
  return (event == null ? void 0 : event.kind) === "status-update";
26
28
  }
29
+ __name(isTaskStatusUpdateEvent, "isTaskStatusUpdateEvent");
27
30
  function isTaskArtifactUpdateEvent(event) {
28
31
  return (event == null ? void 0 : event.kind) === "artifact-update";
29
32
  }
33
+ __name(isTaskArtifactUpdateEvent, "isTaskArtifactUpdateEvent");
30
34
  function isMessage(event) {
31
35
  return (event == null ? void 0 : event.kind) === "message";
32
36
  }
37
+ __name(isMessage, "isMessage");
33
38
  function isTask(event) {
34
39
  return (event == null ? void 0 : event.kind) === "task";
35
40
  }
41
+ __name(isTask, "isTask");
36
42
  function getEventMetadata(event) {
37
43
  if (isTaskArtifactUpdateEvent(event)) {
38
44
  return event.artifact.metadata || {};
@@ -42,9 +48,11 @@ function getEventMetadata(event) {
42
48
  }
43
49
  return {};
44
50
  }
51
+ __name(getEventMetadata, "getEventMetadata");
45
52
  function isFailedTaskStatusUpdateEvent(event) {
46
53
  return (isTaskStatusUpdateEvent(event) || isTask(event)) && event.status.state === "failed" /* FAILED */;
47
54
  }
55
+ __name(isFailedTaskStatusUpdateEvent, "isFailedTaskStatusUpdateEvent");
48
56
  function isTerminalTaskStatusUpdateEvent(event) {
49
57
  return (isTaskStatusUpdateEvent(event) || isTask(event)) && [
50
58
  "completed" /* COMPLETED */,
@@ -53,9 +61,11 @@ function isTerminalTaskStatusUpdateEvent(event) {
53
61
  "rejected" /* REJECTED */
54
62
  ].includes(event.status.state);
55
63
  }
64
+ __name(isTerminalTaskStatusUpdateEvent, "isTerminalTaskStatusUpdateEvent");
56
65
  function isInputRequiredTaskStatusUpdateEvent(event) {
57
66
  return (isTaskStatusUpdateEvent(event) || isTask(event)) && event.status.state === "input-required" /* INPUT_REQUIRED */;
58
67
  }
68
+ __name(isInputRequiredTaskStatusUpdateEvent, "isInputRequiredTaskStatusUpdateEvent");
59
69
  function getFailedTaskStatusUpdateEventError(event) {
60
70
  var _a;
61
71
  if (!isFailedTaskStatusUpdateEvent(event)) {
@@ -70,6 +80,7 @@ function getFailedTaskStatusUpdateEventError(event) {
70
80
  }
71
81
  return parts[0].text;
72
82
  }
83
+ __name(getFailedTaskStatusUpdateEventError, "getFailedTaskStatusUpdateEventError");
73
84
  function createTaskSubmittedEvent({
74
85
  taskId,
75
86
  contextId,
@@ -89,6 +100,7 @@ function createTaskSubmittedEvent({
89
100
  metadata
90
101
  };
91
102
  }
103
+ __name(createTaskSubmittedEvent, "createTaskSubmittedEvent");
92
104
  function createTask({
93
105
  contextId,
94
106
  message,
@@ -107,6 +119,7 @@ function createTask({
107
119
  metadata
108
120
  };
109
121
  }
122
+ __name(createTask, "createTask");
110
123
  function createTaskWorkingEvent({
111
124
  taskId,
112
125
  contextId,
@@ -126,6 +139,7 @@ function createTaskWorkingEvent({
126
139
  metadata
127
140
  };
128
141
  }
142
+ __name(createTaskWorkingEvent, "createTaskWorkingEvent");
129
143
  function createTaskCompletedEvent({
130
144
  taskId,
131
145
  contextId,
@@ -143,6 +157,7 @@ function createTaskCompletedEvent({
143
157
  metadata
144
158
  };
145
159
  }
160
+ __name(createTaskCompletedEvent, "createTaskCompletedEvent");
146
161
  function createTaskArtifactUpdateEvent({
147
162
  taskId,
148
163
  contextId,
@@ -165,6 +180,7 @@ function createTaskArtifactUpdateEvent({
165
180
  metadata
166
181
  };
167
182
  }
183
+ __name(createTaskArtifactUpdateEvent, "createTaskArtifactUpdateEvent");
168
184
  function createTaskFailedEvent({
169
185
  taskId,
170
186
  contextId,
@@ -196,6 +212,7 @@ function createTaskFailedEvent({
196
212
  metadata
197
213
  };
198
214
  }
215
+ __name(createTaskFailedEvent, "createTaskFailedEvent");
199
216
  function createTaskInputRequiredEvent({
200
217
  taskId,
201
218
  contextId,
@@ -222,6 +239,7 @@ function createTaskInputRequiredEvent({
222
239
  metadata
223
240
  };
224
241
  }
242
+ __name(createTaskInputRequiredEvent, "createTaskInputRequiredEvent");
225
243
  function createInputMissingErrorEvent({
226
244
  taskId,
227
245
  contextId,
@@ -248,6 +266,7 @@ function createInputMissingErrorEvent({
248
266
  metadata
249
267
  };
250
268
  }
269
+ __name(createInputMissingErrorEvent, "createInputMissingErrorEvent");
251
270
  export {
252
271
  MessageRole,
253
272
  TaskState,
@@ -1,5 +1,7 @@
1
1
  import {createRequire as topLevelCreateRequire} from 'module';
2
2
  const require = topLevelCreateRequire(import.meta.url);
3
+ var __defProp = Object.defineProperty;
4
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
5
  /**
4
6
  * @license
5
7
  * Copyright 2026 Google LLC
@@ -23,7 +25,7 @@ import { resolveAgentCard } from "./agent_card.js";
23
25
  import { toAdkEvent } from "./event_converter_utils.js";
24
26
  import { getA2ASessionMetadata } from "./metadata_converter_utils.js";
25
27
  import { toA2AParts } from "./part_converter_utils.js";
26
- class RemoteA2AAgent extends BaseAgent {
28
+ const _RemoteA2AAgent = class _RemoteA2AAgent extends BaseAgent {
27
29
  constructor(a2aConfig) {
28
30
  super(a2aConfig);
29
31
  this.a2aConfig = a2aConfig;
@@ -158,7 +160,9 @@ class RemoteA2AAgent extends BaseAgent {
158
160
  runLiveImpl(_context) {
159
161
  throw new Error("Live mode is not supported in A2ARemoteAgent yet.");
160
162
  }
161
- }
163
+ };
164
+ __name(_RemoteA2AAgent, "RemoteA2AAgent");
165
+ let RemoteA2AAgent = _RemoteA2AAgent;
162
166
  export {
163
167
  AGENT_CARD_PATH,
164
168
  RemoteA2AAgent
@@ -1,5 +1,7 @@
1
1
  import {createRequire as topLevelCreateRequire} from 'module';
2
2
  const require = topLevelCreateRequire(import.meta.url);
3
+ var __defProp = Object.defineProperty;
4
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
5
  /**
4
6
  * @license
5
7
  * Copyright 2026 Google LLC
@@ -8,6 +10,7 @@ const require = topLevelCreateRequire(import.meta.url);
8
10
  import {
9
11
  createModelContent
10
12
  } from "@google/genai";
13
+ import { requireAgent } from "../agents/invocation_context.js";
11
14
  import { createEvent } from "../events/event.js";
12
15
  import {
13
16
  getEventMetadata,
@@ -16,7 +19,7 @@ import {
16
19
  isTaskStatusUpdateEvent
17
20
  } from "./a2a_event.js";
18
21
  import { A2AMetadataKeys } from "./metadata_converter_utils.js";
19
- class A2ARemoteAgentRunProcessor {
22
+ const _A2ARemoteAgentRunProcessor = class _A2ARemoteAgentRunProcessor {
20
23
  constructor(request) {
21
24
  this.request = request;
22
25
  this.aggregations = /* @__PURE__ */ new Map();
@@ -127,7 +130,7 @@ class A2ARemoteAgentRunProcessor {
127
130
  buildNonPartialAggregation(context, agg) {
128
131
  this.promoteTextBlocksToParts(agg);
129
132
  const result = createEvent({
130
- author: context.agent.name,
133
+ author: requireAgent(context).name,
131
134
  invocationId: context.invocationId,
132
135
  content: agg.parts.length > 0 ? createModelContent([...agg.parts]) : void 0,
133
136
  customMetadata: agg.customMeta,
@@ -178,7 +181,9 @@ class A2ARemoteAgentRunProcessor {
178
181
  event.customMetadata[`a2a:${k}`] = v;
179
182
  }
180
183
  }
181
- }
184
+ };
185
+ __name(_A2ARemoteAgentRunProcessor, "A2ARemoteAgentRunProcessor");
186
+ let A2ARemoteAgentRunProcessor = _A2ARemoteAgentRunProcessor;
182
187
  export {
183
188
  A2ARemoteAgentRunProcessor
184
189
  };