@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
@@ -1,6 +1,8 @@
1
1
  import {createRequire as topLevelCreateRequire} from 'module';
2
2
  const require = topLevelCreateRequire(import.meta.url);
3
3
  var __defProp = Object.defineProperty;
4
+ var __defProps = Object.defineProperties;
5
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
6
  var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
8
  var __propIsEnum = Object.prototype.propertyIsEnumerable;
@@ -20,6 +22,8 @@ var __spreadValues = (a, b) => {
20
22
  }
21
23
  return a;
22
24
  };
25
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
26
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
23
27
  var __await = function(promise, isYieldStar) {
24
28
  this[0] = promise;
25
29
  this[1] = isYieldStar;
@@ -71,7 +75,12 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
71
75
  */
72
76
  var _a, _b;
73
77
  import { context, trace } from "@opentelemetry/api";
78
+ import { FinishTaskTool } from "../tools/finish_task_tool.js";
74
79
  import { FunctionTool } from "../tools/function_tool.js";
80
+ import { AsyncQueue } from "../utils/async_queue.js";
81
+ import { isBaseNode } from "../workflow/base_node.js";
82
+ import { NodeTool } from "../workflow/nodes/node_tool.js";
83
+ import { runLlmAgentAsNode } from "../workflow/run_llm_agent_as_node.js";
75
84
  import {
76
85
  createEvent,
77
86
  createNewEventId,
@@ -91,6 +100,7 @@ import {
91
100
  traceCallLlm,
92
101
  tracer
93
102
  } from "../telemetry/tracing.js";
103
+ import { parseWithSchema } from "../utils/schema.js";
94
104
  import { isZodObject, zodObjectToSchema } from "../utils/simple_zod_to_json.js";
95
105
  import { BaseAgent } from "./base_agent.js";
96
106
  import {
@@ -100,6 +110,7 @@ import {
100
110
  handleFunctionCallsAsync
101
111
  } from "./functions.js";
102
112
  import { AUTH_PREPROCESSOR } from "../auth/auth_preprocessor.js";
113
+ import { requireAgent } from "./invocation_context.js";
103
114
  import { AGENT_TRANSFER_LLM_REQUEST_PROCESSOR } from "./processors/agent_transfer_llm_request_processor.js";
104
115
  import { BASIC_LLM_REQUEST_PROCESSOR } from "./processors/basic_llm_request_processor.js";
105
116
  import { CODE_EXECUTION_REQUEST_PROCESSOR } from "./processors/code_execution_request_processor.js";
@@ -109,48 +120,112 @@ import { IDENTITY_LLM_REQUEST_PROCESSOR } from "./processors/identity_llm_reques
109
120
  import { INSTRUCTIONS_LLM_REQUEST_PROCESSOR } from "./processors/instructions_llm_request_processor.js";
110
121
  import { INTERACTIONS_REQUEST_PROCESSOR } from "./processors/interactions_request_processor.js";
111
122
  import { REQUEST_CONFIRMATION_LLM_REQUEST_PROCESSOR } from "./processors/request_confirmation_llm_request_processor.js";
123
+ import { REQUEST_INPUT_LLM_REQUEST_PROCESSOR } from "./processors/request_input_llm_request_processor.js";
112
124
  import { TOOL_FILTER_REQUEST_PROCESSOR } from "./processors/tool_filter_request_processor.js";
113
125
  import { ReadonlyContext } from "./readonly_context.js";
114
126
  import { StreamingMode } from "./run_config.js";
127
+ const MAX_LIVE_RECONNECT_ATTEMPTS = 5;
128
+ const TRANSFER_AGENT_DELAY_MS = 1e3;
129
+ const _LiveReconnectSignal = class _LiveReconnectSignal extends Error {
130
+ constructor(reason) {
131
+ super("live reconnect requested: ".concat(reason));
132
+ this.reason = reason;
133
+ this.name = "LiveReconnectSignal";
134
+ }
135
+ };
136
+ __name(_LiveReconnectSignal, "LiveReconnectSignal");
137
+ let LiveReconnectSignal = _LiveReconnectSignal;
138
+ function isRecoverableLiveError(err) {
139
+ var _a2;
140
+ if (err instanceof LiveReconnectSignal) return true;
141
+ if (!(err instanceof Error)) return false;
142
+ const code = err.code;
143
+ if (code === 1006 || code === 1011 || code === 1012) {
144
+ return true;
145
+ }
146
+ const message = (_a2 = err.message) != null ? _a2 : "";
147
+ return /ConnectionClosed|connection closed|ECONNRESET|socket hang up/i.test(
148
+ message
149
+ );
150
+ }
151
+ __name(isRecoverableLiveError, "isRecoverableLiveError");
152
+ function sleep(ms) {
153
+ return new Promise((resolve) => setTimeout(resolve, ms));
154
+ }
155
+ __name(sleep, "sleep");
156
+ const LIVE_KEYS = [
157
+ "responseModalities",
158
+ "speechConfig",
159
+ "outputAudioTranscription",
160
+ "inputAudioTranscription",
161
+ "realtimeInputConfig",
162
+ "contextWindowCompression",
163
+ "proactivity",
164
+ "enableAffectiveDialog"
165
+ ];
166
+ function applyLiveRunConfig(runConfig, llmRequest) {
167
+ var _a2;
168
+ if (!runConfig) return;
169
+ const liveConfig = (_a2 = llmRequest.liveConnectConfig) != null ? _a2 : llmRequest.liveConnectConfig = {};
170
+ for (const k of LIVE_KEYS) {
171
+ if (runConfig[k] !== void 0) {
172
+ liveConfig[k] = runConfig[k];
173
+ }
174
+ }
175
+ }
176
+ __name(applyLiveRunConfig, "applyLiveRunConfig");
115
177
  const ADK_AGENT_NAME_LABEL_KEY = "adk_agent_name";
116
178
  async function convertToolUnionToTools(toolUnion, context2) {
117
179
  if (isBaseTool(toolUnion)) {
118
180
  return [toolUnion];
119
181
  }
182
+ if (isBaseNode(toolUnion)) {
183
+ return [new NodeTool(toolUnion)];
184
+ }
120
185
  return await toolUnion.getTools(context2);
121
186
  }
187
+ __name(convertToolUnionToTools, "convertToolUnionToTools");
122
188
  const LLM_AGENT_SIGNATURE_SYMBOL = Symbol.for("google.adk.llmAgent");
123
189
  function isLlmAgent(obj) {
124
190
  return typeof obj === "object" && obj !== null && LLM_AGENT_SIGNATURE_SYMBOL in obj && obj[LLM_AGENT_SIGNATURE_SYMBOL] === true;
125
191
  }
126
- class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
192
+ __name(isLlmAgent, "isLlmAgent");
193
+ const _LlmAgent = class _LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
127
194
  constructor(config) {
128
- var _a2, _b2, _c, _d, _e, _f, _g, _h, _i;
129
- super(config);
195
+ var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
196
+ super(__spreadProps(__spreadValues({}, config), {
197
+ rerunOnResume: (_a2 = config.rerunOnResume) != null ? _a2 : true,
198
+ waitForOutput: (_b2 = config.waitForOutput) != null ? _b2 : config.mode === "task"
199
+ }));
130
200
  /** A unique symbol to identify ADK LLM agent class. */
131
201
  this[_a] = true;
132
202
  this.model = config.model;
133
- this.instruction = (_a2 = config.instruction) != null ? _a2 : "";
134
- this.globalInstruction = (_b2 = config.globalInstruction) != null ? _b2 : "";
135
- this.tools = (_c = config.tools) != null ? _c : [];
203
+ this.instruction = (_c = config.instruction) != null ? _c : "";
204
+ this.globalInstruction = (_d = config.globalInstruction) != null ? _d : "";
205
+ this.tools = (_e = config.tools) != null ? _e : [];
136
206
  this.generateContentConfig = config.generateContentConfig;
137
- this.disallowTransferToParent = (_d = config.disallowTransferToParent) != null ? _d : false;
138
- this.disallowTransferToPeers = (_e = config.disallowTransferToPeers) != null ? _e : false;
139
- this.includeContents = (_f = config.includeContents) != null ? _f : "default";
207
+ this.disallowTransferToParent = (_f = config.disallowTransferToParent) != null ? _f : false;
208
+ this.disallowTransferToPeers = (_g = config.disallowTransferToPeers) != null ? _g : false;
209
+ this.includeContents = (_h = config.includeContents) != null ? _h : "default";
210
+ this.includeContentsExplicit = config.includeContents !== void 0;
211
+ this.inputSchemaSource = config.inputSchema;
212
+ this.outputSchemaSource = config.outputSchema;
140
213
  this.inputSchema = isZodObject(config.inputSchema) ? zodObjectToSchema(config.inputSchema) : config.inputSchema;
141
214
  this.outputSchema = isZodObject(config.outputSchema) ? zodObjectToSchema(config.outputSchema) : config.outputSchema;
215
+ this.mode = config.mode;
142
216
  this.outputKey = config.outputKey;
143
217
  this.beforeModelCallback = config.beforeModelCallback;
144
218
  this.afterModelCallback = config.afterModelCallback;
145
219
  this.beforeToolCallback = config.beforeToolCallback;
146
220
  this.afterToolCallback = config.afterToolCallback;
147
221
  this.codeExecutor = config.codeExecutor;
148
- this.requestProcessors = (_g = config.requestProcessors) != null ? _g : [
222
+ this.requestProcessors = (_i = config.requestProcessors) != null ? _i : [
149
223
  BASIC_LLM_REQUEST_PROCESSOR,
150
224
  AUTH_PREPROCESSOR,
151
225
  IDENTITY_LLM_REQUEST_PROCESSOR,
152
226
  INSTRUCTIONS_LLM_REQUEST_PROCESSOR,
153
227
  REQUEST_CONFIRMATION_LLM_REQUEST_PROCESSOR,
228
+ REQUEST_INPUT_LLM_REQUEST_PROCESSOR,
154
229
  CONTENT_REQUEST_PROCESSOR,
155
230
  INTERACTIONS_REQUEST_PROCESSOR,
156
231
  CODE_EXECUTION_REQUEST_PROCESSOR,
@@ -172,8 +247,8 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
172
247
  );
173
248
  }
174
249
  }
175
- this.responseProcessors = (_h = config.responseProcessors) != null ? _h : [];
176
- const agentTransferDisabled = this.disallowTransferToParent && this.disallowTransferToPeers && !((_i = this.subAgents) == null ? void 0 : _i.length);
250
+ this.responseProcessors = (_j = config.responseProcessors) != null ? _j : [];
251
+ const agentTransferDisabled = this.disallowTransferToParent && this.disallowTransferToPeers && !((_k = this.subAgents) == null ? void 0 : _k.length);
177
252
  if (!agentTransferDisabled) {
178
253
  this.requestProcessors.push(AGENT_TRANSFER_LLM_REQUEST_PROCESSOR);
179
254
  }
@@ -195,13 +270,14 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
195
270
  this.generateContentConfig = {};
196
271
  }
197
272
  if (this.outputSchema) {
198
- if (!this.disallowTransferToParent || !this.disallowTransferToPeers) {
273
+ const transferRequested = config.disallowTransferToParent === false || config.disallowTransferToPeers === false || !!((_l = this.subAgents) == null ? void 0 : _l.length);
274
+ if (transferRequested) {
199
275
  logger.warn(
200
276
  "Invalid config for agent ".concat(this.name, ": outputSchema cannot co-exist with agent transfer configurations. Setting disallowTransferToParent=true, disallowTransferToPeers=true")
201
277
  );
202
- this.disallowTransferToParent = true;
203
- this.disallowTransferToPeers = true;
204
278
  }
279
+ this.disallowTransferToParent = true;
280
+ this.disallowTransferToPeers = true;
205
281
  }
206
282
  }
207
283
  /**
@@ -225,6 +301,16 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
225
301
  }
226
302
  throw new Error("No model found for ".concat(this.name, "."));
227
303
  }
304
+ /**
305
+ * The `finish_task` tool for this agent (task mode). Lazily created and cached
306
+ * so its declaration (derived from `outputSchema`) is stable across turns.
307
+ */
308
+ get finishTaskTool() {
309
+ if (!this._finishTaskTool) {
310
+ this._finishTaskTool = new FinishTaskTool(this.outputSchema);
311
+ }
312
+ return this._finishTaskTool;
313
+ }
228
314
  /**
229
315
  * The resolved instruction field to construct instruction for this
230
316
  * agent.
@@ -297,7 +383,7 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
297
383
  * This method is only for use by Agent Development Kit.
298
384
  */
299
385
  get canonicalBeforeModelCallbacks() {
300
- return LlmAgent.normalizeCallbackArray(this.beforeModelCallback);
386
+ return _LlmAgent.normalizeCallbackArray(this.beforeModelCallback);
301
387
  }
302
388
  /**
303
389
  * The resolved afterModelCallback field as a list of
@@ -306,7 +392,7 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
306
392
  * This method is only for use by Agent Development Kit.
307
393
  */
308
394
  get canonicalAfterModelCallbacks() {
309
- return LlmAgent.normalizeCallbackArray(this.afterModelCallback);
395
+ return _LlmAgent.normalizeCallbackArray(this.afterModelCallback);
310
396
  }
311
397
  /**
312
398
  * The resolved beforeToolCallback field as a list of
@@ -315,7 +401,7 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
315
401
  * This method is only for use by Agent Development Kit.
316
402
  */
317
403
  get canonicalBeforeToolCallbacks() {
318
- return LlmAgent.normalizeCallbackArray(this.beforeToolCallback);
404
+ return _LlmAgent.normalizeCallbackArray(this.beforeToolCallback);
319
405
  }
320
406
  /**
321
407
  * The resolved afterToolCallback field as a list of AfterToolCallback.
@@ -323,7 +409,7 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
323
409
  * This method is only for use by Agent Development Kit.
324
410
  */
325
411
  get canonicalAfterToolCallbacks() {
326
- return LlmAgent.normalizeCallbackArray(this.afterToolCallback);
412
+ return _LlmAgent.normalizeCallbackArray(this.afterToolCallback);
327
413
  }
328
414
  /**
329
415
  * Saves the agent's final response to the session state if configured.
@@ -366,14 +452,55 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
366
452
  if (!resultStr.trim()) {
367
453
  return;
368
454
  }
455
+ let parsed;
369
456
  try {
370
- result = JSON.parse(resultStr);
457
+ parsed = JSON.parse(resultStr);
371
458
  } catch (e) {
372
459
  logger.error("Error parsing output for agent ".concat(this.name), e);
460
+ event.actions.stateDelta[this.outputKey] = resultStr;
461
+ return;
462
+ }
463
+ try {
464
+ result = this.validateOutput(parsed);
465
+ } catch (e) {
466
+ logger.error(
467
+ "Output for agent ".concat(this.name, " does not satisfy its output schema"),
468
+ e
469
+ );
470
+ result = parsed;
373
471
  }
374
472
  }
375
473
  event.actions.stateDelta[this.outputKey] = result;
376
474
  }
475
+ /**
476
+ * Validates a value against this agent's output schema, in whichever dialect
477
+ * it was declared, and returns the parsed value.
478
+ *
479
+ * Prefers the schema as supplied ({@link outputSchemaSource}) over the genai
480
+ * form derived from it, since the conversion drops constraints Zod can
481
+ * express and genai cannot.
482
+ *
483
+ * @throws if the value does not satisfy the schema.
484
+ */
485
+ validateOutput(value) {
486
+ var _a2;
487
+ return parseWithSchema((_a2 = this.outputSchemaSource) != null ? _a2 : this.outputSchema, value);
488
+ }
489
+ /**
490
+ * Runs this agent as a workflow node.
491
+ *
492
+ * Where {@link BaseAgent.runImpl} delegates straight to `runAsync`, an
493
+ * `LlmAgent` has a node input to inject into the conversation, instruction
494
+ * placeholders to resolve against it, a reply to promote to node output, and
495
+ * — in `task` mode — a `finish_task` round-trip to drive. All of that lives
496
+ * in `runLlmAgentAsNode`, mirroring adk-python's `LlmAgent._run_impl`
497
+ * delegating to `run_llm_agent_as_node`.
498
+ */
499
+ runImpl(ctx, nodeInput) {
500
+ return __asyncGenerator(this, null, function* () {
501
+ yield* __yieldStar(runLlmAgentAsNode(this, ctx, nodeInput));
502
+ });
503
+ }
377
504
  runAsyncImpl(context2) {
378
505
  return __asyncGenerator(this, null, function* () {
379
506
  var _a2, _b2;
@@ -461,11 +588,423 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
461
588
  * times. Subsequent reconnects skip `sendHistory` because the server
462
589
  * already holds the conversation state associated with the handle.
463
590
  */
464
- // eslint-disable-next-line require-yield
465
- runLiveFlow(_invocationContext) {
591
+ runLiveFlow(invocationContext) {
466
592
  return __asyncGenerator(this, null, function* () {
467
- yield new __await(Promise.resolve());
468
- throw new Error("LlmAgent.runLiveFlow not implemented");
593
+ var _a2, _b2, _c, _d;
594
+ if (!invocationContext.liveRequestQueue) {
595
+ throw new Error("liveRequestQueue is required for LlmAgent.runLiveFlow.");
596
+ }
597
+ const llmRequest = {
598
+ contents: [],
599
+ toolsDict: {},
600
+ liveConnectConfig: {}
601
+ };
602
+ try {
603
+ for (var iter = __forAwait(this.runLivePreprocess(
604
+ invocationContext,
605
+ llmRequest
606
+ )), more, temp, error; more = !(temp = yield new __await(iter.next())).done; more = false) {
607
+ const event = temp.value;
608
+ yield event;
609
+ }
610
+ } catch (temp) {
611
+ error = [temp];
612
+ } finally {
613
+ try {
614
+ more && (temp = iter.return) && (yield new __await(temp.call(iter)));
615
+ } finally {
616
+ if (error)
617
+ throw error[0];
618
+ }
619
+ }
620
+ if (invocationContext.endInvocation || ((_a2 = invocationContext.abortSignal) == null ? void 0 : _a2.aborted)) {
621
+ return;
622
+ }
623
+ applyLiveRunConfig(invocationContext.runConfig, llmRequest);
624
+ const llm = this.canonicalModel;
625
+ let reconnectAttempts = 0;
626
+ while (true) {
627
+ if ((_b2 = invocationContext.abortSignal) == null ? void 0 : _b2.aborted) {
628
+ return;
629
+ }
630
+ const handle = invocationContext.liveSessionResumptionHandle;
631
+ if (handle) {
632
+ (_c = llmRequest.liveConnectConfig) != null ? _c : llmRequest.liveConnectConfig = {};
633
+ llmRequest.liveConnectConfig.sessionResumption = {
634
+ handle,
635
+ transparent: true
636
+ };
637
+ }
638
+ let connection;
639
+ try {
640
+ connection = yield new __await(llm.connect(llmRequest));
641
+ } catch (err) {
642
+ if (isRecoverableLiveError(err) && invocationContext.liveSessionResumptionHandle) {
643
+ reconnectAttempts += 1;
644
+ if (reconnectAttempts > MAX_LIVE_RECONNECT_ATTEMPTS) {
645
+ logger.error(
646
+ "Max live reconnection attempts reached (".concat(reconnectAttempts, ")."),
647
+ err
648
+ );
649
+ throw err;
650
+ }
651
+ logger.info(
652
+ "Live connect failed (attempt ".concat(reconnectAttempts, "); retrying with session handle."),
653
+ err
654
+ );
655
+ continue;
656
+ }
657
+ throw err;
658
+ }
659
+ if (llmRequest.contents.length > 0 && !invocationContext.liveSessionResumptionHandle) {
660
+ yield new __await(connection.sendHistory(llmRequest.contents));
661
+ }
662
+ let sendError;
663
+ const sendAbort = new AbortController();
664
+ const combinedAbort = invocationContext.abortSignal ? AbortSignal.any([invocationContext.abortSignal, sendAbort.signal]) : sendAbort.signal;
665
+ const sendTask = this.runSendLoop(
666
+ connection,
667
+ invocationContext.liveRequestQueue,
668
+ combinedAbort,
669
+ invocationContext.abortSignal
670
+ );
671
+ sendTask.catch((error2) => {
672
+ logger.error("Error in live send loop:", error2);
673
+ sendError = error2;
674
+ sendAbort.abort(error2);
675
+ connection.close().catch((err) => {
676
+ logger.warn("Error closing connection after send loop failure:", err);
677
+ });
678
+ });
679
+ let reconnect = false;
680
+ try {
681
+ yield* __yieldStar(this.runReceiveLoop(
682
+ invocationContext,
683
+ connection,
684
+ llmRequest,
685
+ sendAbort
686
+ ));
687
+ } catch (err) {
688
+ const canReconnect = !!invocationContext.liveSessionResumptionHandle && (err instanceof LiveReconnectSignal || isRecoverableLiveError(err));
689
+ if (canReconnect) {
690
+ reconnect = true;
691
+ logger.info(
692
+ "Live connection closed; will reconnect with session handle.",
693
+ err
694
+ );
695
+ } else {
696
+ yield new __await(this.teardownLiveConnection(sendAbort, connection, sendTask));
697
+ throw err;
698
+ }
699
+ }
700
+ yield new __await(this.teardownLiveConnection(sendAbort, connection, sendTask));
701
+ if ((_d = invocationContext.abortSignal) == null ? void 0 : _d.aborted) {
702
+ return;
703
+ }
704
+ if (sendError) {
705
+ throw sendError;
706
+ }
707
+ if (!reconnect) {
708
+ return;
709
+ }
710
+ reconnectAttempts += 1;
711
+ if (reconnectAttempts > MAX_LIVE_RECONNECT_ATTEMPTS) {
712
+ throw new Error(
713
+ "Max live reconnection attempts reached (".concat(reconnectAttempts, ").")
714
+ );
715
+ }
716
+ }
717
+ });
718
+ }
719
+ runLivePreprocess(invocationContext, llmRequest) {
720
+ return __asyncGenerator(this, null, function* () {
721
+ var _a2, _b2;
722
+ for (const processor of this.requestProcessors) {
723
+ try {
724
+ for (var iter = __forAwait(processor.runAsync(
725
+ invocationContext,
726
+ llmRequest
727
+ )), more, temp, error; more = !(temp = yield new __await(iter.next())).done; more = false) {
728
+ const event = temp.value;
729
+ if ((_a2 = invocationContext.abortSignal) == null ? void 0 : _a2.aborted) {
730
+ return;
731
+ }
732
+ yield event;
733
+ }
734
+ } catch (temp) {
735
+ error = [temp];
736
+ } finally {
737
+ try {
738
+ more && (temp = iter.return) && (yield new __await(temp.call(iter)));
739
+ } finally {
740
+ if (error)
741
+ throw error[0];
742
+ }
743
+ }
744
+ }
745
+ for (const toolUnion of this.tools) {
746
+ const toolContext = new Context({ invocationContext });
747
+ const tools = (yield new __await(convertToolUnionToTools(
748
+ toolUnion,
749
+ new ReadonlyContext(invocationContext)
750
+ ))).filter(
751
+ (tool) => !llmRequest.allowedTools || llmRequest.allowedTools.includes(tool.name)
752
+ );
753
+ for (const tool of tools) {
754
+ yield new __await(tool.processLlmRequest({ toolContext, llmRequest }));
755
+ if ((_b2 = invocationContext.abortSignal) == null ? void 0 : _b2.aborted) {
756
+ return;
757
+ }
758
+ }
759
+ }
760
+ });
761
+ }
762
+ async runSendLoop(connection, liveRequestQueue, sendAbortSignal, invocationAbortSignal) {
763
+ while (true) {
764
+ if ((sendAbortSignal == null ? void 0 : sendAbortSignal.aborted) || (invocationAbortSignal == null ? void 0 : invocationAbortSignal.aborted)) {
765
+ return;
766
+ }
767
+ let liveRequest;
768
+ try {
769
+ liveRequest = await liveRequestQueue.get(sendAbortSignal);
770
+ } catch (error) {
771
+ if ((sendAbortSignal == null ? void 0 : sendAbortSignal.aborted) || (invocationAbortSignal == null ? void 0 : invocationAbortSignal.aborted)) {
772
+ return;
773
+ }
774
+ throw error;
775
+ }
776
+ try {
777
+ await this.dispatchLiveRequest(connection, liveRequest);
778
+ } catch (error) {
779
+ if ((sendAbortSignal == null ? void 0 : sendAbortSignal.aborted) || (invocationAbortSignal == null ? void 0 : invocationAbortSignal.aborted)) {
780
+ logger.debug("Send failed after teardown:", error);
781
+ return;
782
+ }
783
+ logger.error("Error dispatching live request to model:", error);
784
+ throw error;
785
+ }
786
+ await Promise.resolve();
787
+ if (liveRequest.close) {
788
+ return;
789
+ }
790
+ }
791
+ }
792
+ async dispatchLiveRequest(connection, liveRequest) {
793
+ var _a2, _b2;
794
+ if (liveRequest.close) {
795
+ await connection.close();
796
+ return;
797
+ }
798
+ if (liveRequest.activityStart) {
799
+ await ((_a2 = connection.sendActivityStart) == null ? void 0 : _a2.call(connection));
800
+ return;
801
+ }
802
+ if (liveRequest.activityEnd) {
803
+ await ((_b2 = connection.sendActivityEnd) == null ? void 0 : _b2.call(connection));
804
+ return;
805
+ }
806
+ if (liveRequest.blob) {
807
+ await connection.sendRealtime(liveRequest.blob);
808
+ return;
809
+ }
810
+ if (liveRequest.content) {
811
+ await connection.sendContent(liveRequest.content);
812
+ }
813
+ }
814
+ /**
815
+ * Tears down a live attempt: stops the send loop, closes the connection
816
+ * (swallowing close errors), and waits for the send task to settle. Used
817
+ * before reconnecting or propagating an error.
818
+ */
819
+ async teardownLiveConnection(sendAbort, connection, sendTask) {
820
+ sendAbort.abort();
821
+ try {
822
+ await connection.close();
823
+ } catch (error) {
824
+ logger.warn("Error closing live connection:", error);
825
+ }
826
+ await sendTask.catch(() => void 0);
827
+ }
828
+ runReceiveLoop(invocationContext, connection, llmRequest, sendAbort) {
829
+ return __asyncGenerator(this, null, function* () {
830
+ var _a2, _b2, _c, _d;
831
+ try {
832
+ for (var iter3 = __forAwait(connection.receive()), more3, temp3, error3; more3 = !(temp3 = yield new __await(iter3.next())).done; more3 = false) {
833
+ const llmResponse = temp3.value;
834
+ if ((_a2 = invocationContext.abortSignal) == null ? void 0 : _a2.aborted) {
835
+ return;
836
+ }
837
+ if (sendAbort.signal.aborted) {
838
+ return;
839
+ }
840
+ if ((_b2 = llmResponse.liveSessionResumptionUpdate) == null ? void 0 : _b2.newHandle) {
841
+ invocationContext.liveSessionResumptionHandle = llmResponse.liveSessionResumptionUpdate.newHandle;
842
+ }
843
+ if (llmResponse.goAway) {
844
+ logger.info("Received goAway from live server; triggering reconnect.");
845
+ throw new LiveReconnectSignal("goAway");
846
+ }
847
+ const author = llmResponse.inputTranscription || ((_c = llmResponse.content) == null ? void 0 : _c.role) === "user" ? "user" : this.name;
848
+ const modelResponseEvent = createEvent({
849
+ invocationId: invocationContext.invocationId,
850
+ author,
851
+ branch: invocationContext.branch
852
+ });
853
+ try {
854
+ for (var iter2 = __forAwait(this.postprocessLive(
855
+ invocationContext,
856
+ llmRequest,
857
+ llmResponse,
858
+ modelResponseEvent
859
+ )), more2, temp2, error2; more2 = !(temp2 = yield new __await(iter2.next())).done; more2 = false) {
860
+ const event = temp2.value;
861
+ yield event;
862
+ if (event.content && getFunctionResponses(event).length > 0) {
863
+ yield new __await(connection.sendContent(event.content));
864
+ }
865
+ const taskCompleted = getFunctionResponses(event).some(
866
+ (r) => r.name === "task_completed"
867
+ );
868
+ if (taskCompleted) {
869
+ yield new __await(sleep(TRANSFER_AGENT_DELAY_MS));
870
+ return;
871
+ }
872
+ const transferTo = (_d = event.actions) == null ? void 0 : _d.transferToAgent;
873
+ if (transferTo) {
874
+ yield new __await(sleep(TRANSFER_AGENT_DELAY_MS));
875
+ sendAbort.abort();
876
+ yield new __await(connection.close());
877
+ const agent = requireAgent(invocationContext);
878
+ const subAgent = agent.rootAgent.findAgent(transferTo);
879
+ if (subAgent) {
880
+ const previousAgent = invocationContext.agent;
881
+ invocationContext.agent = subAgent;
882
+ const previousHandle = invocationContext.liveSessionResumptionHandle;
883
+ invocationContext.liveSessionResumptionHandle = void 0;
884
+ try {
885
+ try {
886
+ for (var iter = __forAwait(subAgent.runLive(
887
+ invocationContext
888
+ )), more, temp, error; more = !(temp = yield new __await(iter.next())).done; more = false) {
889
+ const subEvent = temp.value;
890
+ yield subEvent;
891
+ }
892
+ } catch (temp) {
893
+ error = [temp];
894
+ } finally {
895
+ try {
896
+ more && (temp = iter.return) && (yield new __await(temp.call(iter)));
897
+ } finally {
898
+ if (error)
899
+ throw error[0];
900
+ }
901
+ }
902
+ } finally {
903
+ invocationContext.agent = previousAgent;
904
+ invocationContext.liveSessionResumptionHandle = previousHandle;
905
+ }
906
+ }
907
+ return;
908
+ }
909
+ }
910
+ } catch (temp2) {
911
+ error2 = [temp2];
912
+ } finally {
913
+ try {
914
+ more2 && (temp2 = iter2.return) && (yield new __await(temp2.call(iter2)));
915
+ } finally {
916
+ if (error2)
917
+ throw error2[0];
918
+ }
919
+ }
920
+ }
921
+ } catch (temp3) {
922
+ error3 = [temp3];
923
+ } finally {
924
+ try {
925
+ more3 && (temp3 = iter3.return) && (yield new __await(temp3.call(iter3)));
926
+ } finally {
927
+ if (error3)
928
+ throw error3[0];
929
+ }
930
+ }
931
+ });
932
+ }
933
+ postprocessLive(invocationContext, llmRequest, llmResponse, modelResponseEvent) {
934
+ return __asyncGenerator(this, null, function* () {
935
+ for (const processor of this.responseProcessors) {
936
+ try {
937
+ for (var iter = __forAwait(processor.runAsync(
938
+ invocationContext,
939
+ llmResponse
940
+ )), more, temp, error; more = !(temp = yield new __await(iter.next())).done; more = false) {
941
+ const event = temp.value;
942
+ yield event;
943
+ }
944
+ } catch (temp) {
945
+ error = [temp];
946
+ } finally {
947
+ try {
948
+ more && (temp = iter.return) && (yield new __await(temp.call(iter)));
949
+ } finally {
950
+ if (error)
951
+ throw error[0];
952
+ }
953
+ }
954
+ }
955
+ if (!llmResponse.content && !llmResponse.errorCode && !llmResponse.interrupted && !llmResponse.turnComplete && !llmResponse.inputTranscription && !llmResponse.outputTranscription && !llmResponse.usageMetadata && !llmResponse.liveSessionResumptionUpdate) {
956
+ return;
957
+ }
958
+ if (llmResponse.liveSessionResumptionUpdate) {
959
+ yield createEvent(__spreadProps(__spreadValues({}, modelResponseEvent), {
960
+ liveSessionResumptionUpdate: llmResponse.liveSessionResumptionUpdate
961
+ }));
962
+ return;
963
+ }
964
+ if (llmResponse.inputTranscription) {
965
+ yield createEvent(__spreadProps(__spreadValues({}, modelResponseEvent), {
966
+ inputTranscription: llmResponse.inputTranscription,
967
+ partial: llmResponse.partial
968
+ }));
969
+ return;
970
+ }
971
+ if (llmResponse.outputTranscription) {
972
+ yield createEvent(__spreadProps(__spreadValues({}, modelResponseEvent), {
973
+ outputTranscription: llmResponse.outputTranscription,
974
+ partial: llmResponse.partial
975
+ }));
976
+ return;
977
+ }
978
+ const mergedEvent = createEvent(__spreadValues(__spreadValues({}, modelResponseEvent), llmResponse));
979
+ const functionCalls = getFunctionCalls(mergedEvent);
980
+ if (mergedEvent.content && functionCalls.length) {
981
+ populateClientFunctionCallId(mergedEvent);
982
+ mergedEvent.longRunningToolIds = Array.from(
983
+ getLongRunningFunctionCalls(functionCalls, llmRequest.toolsDict)
984
+ );
985
+ }
986
+ yield mergedEvent;
987
+ if (!functionCalls.length) {
988
+ return;
989
+ }
990
+ const functionResponseEvent = yield new __await(handleFunctionCallsAsync({
991
+ invocationContext,
992
+ functionCallEvent: mergedEvent,
993
+ toolsDict: llmRequest.toolsDict,
994
+ beforeToolCallbacks: this.canonicalBeforeToolCallbacks,
995
+ afterToolCallbacks: this.canonicalAfterToolCallbacks
996
+ }));
997
+ if (!functionResponseEvent) {
998
+ return;
999
+ }
1000
+ const authEvent = generateAuthEvent(
1001
+ invocationContext,
1002
+ functionResponseEvent
1003
+ );
1004
+ if (authEvent) {
1005
+ yield authEvent;
1006
+ }
1007
+ yield functionResponseEvent;
469
1008
  });
470
1009
  }
471
1010
  runOneStepAsync(invocationContext) {
@@ -500,22 +1039,32 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
500
1039
  }
501
1040
  }
502
1041
  const allTools = [...this.tools];
503
- if (this.outputSchema && allTools.length > 0 && !canUseOutputSchemaWithTools(this.canonicalModel.model)) {
1042
+ if (this.mode === "task") {
1043
+ allTools.push(this.finishTaskTool);
1044
+ } else if (this.outputSchema && allTools.length > 0 && !canUseOutputSchemaWithTools(this.canonicalModel.model)) {
504
1045
  const setModelResponseTool = new FunctionTool({
505
1046
  name: "set_model_response",
506
1047
  description: "Call this tool to submit your final response conforming to the output schema. Use this tool only when you have collected all the information and are ready to return the final answer.",
507
1048
  parameters: this.outputSchema,
508
- execute: async (args, toolContext) => {
1049
+ execute: /* @__PURE__ */ __name(async (args, toolContext) => {
509
1050
  if (toolContext) {
510
1051
  toolContext.actions.skipSummarization = true;
511
1052
  }
512
1053
  return JSON.stringify(args);
513
- }
1054
+ }, "execute")
514
1055
  });
515
1056
  allTools.push(setModelResponseTool);
516
1057
  }
1058
+ const modelResponseEvent = createEvent({
1059
+ invocationId: invocationContext.invocationId,
1060
+ author: this.name,
1061
+ branch: invocationContext.branch
1062
+ });
517
1063
  for (const toolUnion of allTools) {
518
- const toolContext = new Context({ invocationContext });
1064
+ const toolContext = new Context({
1065
+ invocationContext,
1066
+ eventActions: modelResponseEvent.actions
1067
+ });
519
1068
  const tools = (yield new __await(convertToolUnionToTools(
520
1069
  toolUnion,
521
1070
  new ReadonlyContext(invocationContext)
@@ -532,11 +1081,6 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
532
1081
  if (invocationContext.endInvocation || ((_c = invocationContext.abortSignal) == null ? void 0 : _c.aborted)) {
533
1082
  return;
534
1083
  }
535
- const modelResponseEvent = createEvent({
536
- invocationId: invocationContext.invocationId,
537
- author: this.name,
538
- branch: invocationContext.branch
539
- });
540
1084
  const span = tracer.startSpan("call_llm");
541
1085
  const ctx = trace.setSpan(context.active(), span);
542
1086
  yield* __yieldStar(runAsyncGeneratorWithOtelContext(
@@ -544,7 +1088,7 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
544
1088
  this,
545
1089
  function() {
546
1090
  return __asyncGenerator(this, null, function* () {
547
- const responsesGenerator = function() {
1091
+ const responsesGenerator = /* @__PURE__ */ __name(function() {
548
1092
  return __asyncGenerator(this, null, function* () {
549
1093
  var _a3, _b3;
550
1094
  try {
@@ -594,7 +1138,7 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
594
1138
  }
595
1139
  }
596
1140
  });
597
- };
1141
+ }, "responsesGenerator");
598
1142
  yield* __yieldStar(this.runAndHandleError(
599
1143
  responsesGenerator.call(this),
600
1144
  invocationContext,
@@ -633,7 +1177,8 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
633
1177
  }
634
1178
  }
635
1179
  }
636
- if ((!llmResponse.content || ((_b2 = llmResponse.content.parts) == null ? void 0 : _b2.length) === 0) && !llmResponse.errorCode && !llmResponse.interrupted) {
1180
+ const isUsageOnlyReport = !llmResponse.content && !!llmResponse.usageMetadata;
1181
+ if ((!llmResponse.content || ((_b2 = llmResponse.content.parts) == null ? void 0 : _b2.length) === 0) && !llmResponse.errorCode && !llmResponse.interrupted && !isUsageOnlyReport) {
637
1182
  return;
638
1183
  }
639
1184
  const mergedEvent = createEvent(__spreadValues(__spreadValues({}, modelResponseEvent), llmResponse));
@@ -661,13 +1206,44 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
661
1206
  invocationContext.endInvocation = true;
662
1207
  return;
663
1208
  }
664
- const functionResponseEvent = yield new __await(handleFunctionCallsAsync({
665
- invocationContext,
666
- functionCallEvent: mergedEvent,
667
- toolsDict: llmRequest.toolsDict,
668
- beforeToolCallbacks: this.canonicalBeforeToolCallbacks,
669
- afterToolCallbacks: this.canonicalAfterToolCallbacks
670
- }));
1209
+ const eventQueue = new AsyncQueue();
1210
+ invocationContext.eventQueue = eventQueue;
1211
+ const toolTask = (async () => {
1212
+ try {
1213
+ const event = await handleFunctionCallsAsync({
1214
+ invocationContext,
1215
+ functionCallEvent: mergedEvent,
1216
+ toolsDict: llmRequest.toolsDict,
1217
+ beforeToolCallbacks: this.canonicalBeforeToolCallbacks,
1218
+ afterToolCallbacks: this.canonicalAfterToolCallbacks
1219
+ });
1220
+ return { event };
1221
+ } catch (error4) {
1222
+ return { event: null, error: error4 };
1223
+ } finally {
1224
+ eventQueue.close();
1225
+ }
1226
+ })();
1227
+ try {
1228
+ for (var iter2 = __forAwait(eventQueue), more2, temp2, error2; more2 = !(temp2 = yield new __await(iter2.next())).done; more2 = false) {
1229
+ const queuedEvent = temp2.value;
1230
+ yield queuedEvent;
1231
+ }
1232
+ } catch (temp2) {
1233
+ error2 = [temp2];
1234
+ } finally {
1235
+ try {
1236
+ more2 && (temp2 = iter2.return) && (yield new __await(temp2.call(iter2)));
1237
+ } finally {
1238
+ if (error2)
1239
+ throw error2[0];
1240
+ }
1241
+ }
1242
+ const { event: functionResponseEvent, error: toolError } = yield new __await(toolTask);
1243
+ invocationContext.eventQueue = void 0;
1244
+ if (toolError) {
1245
+ throw toolError;
1246
+ }
671
1247
  if (!functionResponseEvent || ((_e = invocationContext.abortSignal) == null ? void 0 : _e.aborted)) {
672
1248
  return;
673
1249
  }
@@ -693,21 +1269,21 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
693
1269
  if (nextAgentName) {
694
1270
  const nextAgent = this.getAgentByName(invocationContext, nextAgentName);
695
1271
  try {
696
- for (var iter2 = __forAwait(nextAgent.runAsync(invocationContext)), more2, temp2, error2; more2 = !(temp2 = yield new __await(iter2.next())).done; more2 = false) {
697
- const event = temp2.value;
1272
+ for (var iter3 = __forAwait(nextAgent.runAsync(invocationContext)), more3, temp3, error3; more3 = !(temp3 = yield new __await(iter3.next())).done; more3 = false) {
1273
+ const event = temp3.value;
698
1274
  if ((_f = invocationContext.abortSignal) == null ? void 0 : _f.aborted) {
699
1275
  return;
700
1276
  }
701
1277
  yield event;
702
1278
  }
703
- } catch (temp2) {
704
- error2 = [temp2];
1279
+ } catch (temp3) {
1280
+ error3 = [temp3];
705
1281
  } finally {
706
1282
  try {
707
- more2 && (temp2 = iter2.return) && (yield new __await(temp2.call(iter2)));
1283
+ more3 && (temp3 = iter3.return) && (yield new __await(temp3.call(iter3)));
708
1284
  } finally {
709
- if (error2)
710
- throw error2[0];
1285
+ if (error3)
1286
+ throw error3[0];
711
1287
  }
712
1288
  }
713
1289
  }
@@ -726,7 +1302,7 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
726
1302
  * @throws Error if the agent is not found.
727
1303
  */
728
1304
  getAgentByName(invocationContext, agentName) {
729
- const rootAgent = invocationContext.agent.rootAgent;
1305
+ const rootAgent = requireAgent(invocationContext).rootAgent;
730
1306
  const agentToRun = rootAgent.findAgent(agentName);
731
1307
  if (!agentToRun) {
732
1308
  throw new Error("Agent ".concat(agentName, " not found in the agent tree."));
@@ -929,7 +1505,9 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
929
1505
  // TODO - b/425992518: omitted Py LlmAgent features.
930
1506
  // - code_executor
931
1507
  // - configurable agents by yaml config
932
- }
1508
+ };
1509
+ __name(_LlmAgent, "LlmAgent");
1510
+ let LlmAgent = _LlmAgent;
933
1511
  export {
934
1512
  LlmAgent,
935
1513
  isLlmAgent