@google/adk 1.5.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 (796) hide show
  1. package/dist/cjs/a2a/a2a_event.js +18 -0
  2. package/dist/cjs/a2a/a2a_remote_agent.js +17 -4
  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 -11
  8. package/dist/cjs/a2a/auth.js +68 -0
  9. package/dist/cjs/a2a/event_converter_utils.js +50 -15
  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 +58 -23
  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 +536 -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 +8 -4
  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 +11 -25
  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 +8 -3
  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 +19 -11
  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 +19 -5
  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 +31 -14
  72. package/dist/cjs/common.js +112 -1
  73. package/dist/cjs/context/agent_controlled_context_compactor.js +7 -13
  74. package/dist/cjs/context/anchored_context_compactor.js +5 -2
  75. package/dist/cjs/context/compaction_utils.js +17 -2
  76. package/dist/cjs/context/summarizers/llm_summarizer.js +5 -2
  77. package/dist/cjs/context/token_based_context_compactor.js +11 -23
  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 -22
  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 +21 -4
  94. package/dist/cjs/memory/vertex_ai_memory_bank_service.js +20 -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 +43 -7
  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 +226 -29
  111. package/dist/cjs/sessions/base_session_service.js +21 -5
  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 +30 -22
  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 +132 -25
  121. package/dist/cjs/skills/gcp_skill_registry.js +2 -0
  122. package/dist/cjs/skills/loader.js +62 -16
  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 +54 -0
  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 +69 -27
  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 +56 -0
  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 +45 -0
  176. package/dist/cjs/utils/deprecated.js +68 -0
  177. package/dist/cjs/utils/env_aware_utils.js +56 -13
  178. package/dist/cjs/utils/error_utils.js +128 -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 +12 -4
  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 +45 -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 +6 -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 +18 -4
  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 -16
  238. package/dist/esm/a2a/auth.js +41 -0
  239. package/dist/esm/a2a/event_converter_utils.js +51 -15
  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 +62 -20
  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 +537 -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 +9 -4
  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 +12 -25
  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 +9 -3
  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 +20 -11
  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 +20 -5
  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 +31 -13
  302. package/dist/esm/common.js +113 -4
  303. package/dist/esm/context/agent_controlled_context_compactor.js +8 -13
  304. package/dist/esm/context/anchored_context_compactor.js +6 -2
  305. package/dist/esm/context/compaction_utils.js +16 -1
  306. package/dist/esm/context/summarizers/llm_summarizer.js +6 -2
  307. package/dist/esm/context/token_based_context_compactor.js +16 -24
  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 -13
  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 +22 -4
  324. package/dist/esm/memory/vertex_ai_memory_bank_service.js +25 -3
  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 +43 -7
  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 +233 -31
  341. package/dist/esm/sessions/base_session_service.js +22 -5
  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 +31 -22
  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 +136 -26
  351. package/dist/esm/skills/gcp_skill_registry.js +2 -0
  352. package/dist/esm/skills/loader.js +63 -16
  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 +27 -0
  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 +80 -30
  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 +29 -0
  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 +18 -0
  406. package/dist/esm/utils/deprecated.js +40 -0
  407. package/dist/esm/utils/env_aware_utils.js +56 -13
  408. package/dist/esm/utils/error_utils.js +101 -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 +13 -4
  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 +18 -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 +7 -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/auth.d.ts +30 -0
  464. package/dist/types/a2a/event_converter_utils.d.ts +4 -1
  465. package/dist/types/a2a/event_processor_utils.d.ts +17 -2
  466. package/dist/types/a2a/index.d.ts +18 -0
  467. package/dist/types/agents/base_agent.d.ts +37 -9
  468. package/dist/types/agents/framework_function_calls.d.ts +26 -0
  469. package/dist/types/agents/functions.d.ts +1 -2
  470. package/dist/types/agents/invocation_context.d.ts +95 -3
  471. package/dist/types/agents/live_request_queue.d.ts +7 -1
  472. package/dist/types/agents/llm_agent.d.ts +77 -1
  473. package/dist/types/agents/loop_agent.d.ts +5 -0
  474. package/dist/types/agents/parallel_agent.d.ts +5 -0
  475. package/dist/types/agents/processors/content_processor_utils.d.ts +3 -2
  476. package/dist/types/agents/processors/identity_llm_request_processor.d.ts +4 -1
  477. package/dist/types/agents/processors/request_input_llm_request_processor.d.ts +21 -0
  478. package/dist/types/agents/run_config.d.ts +57 -2
  479. package/dist/types/agents/sequential_agent.d.ts +5 -0
  480. package/dist/types/agents/user_input_request.d.ts +71 -0
  481. package/dist/types/apps/app.d.ts +8 -3
  482. package/dist/types/artifacts/gcs_artifact_service.d.ts +9 -2
  483. package/dist/types/auth/credential_response_binding.d.ts +24 -0
  484. package/dist/types/auth/credential_service/in_memory_credential_service.d.ts +11 -0
  485. package/dist/types/code_executors/unsafe_local_code_executor.d.ts +5 -1
  486. package/dist/types/common.d.ts +20 -8
  487. package/dist/types/context/agent_controlled_context_compactor.d.ts +0 -1
  488. package/dist/types/context/compaction_utils.d.ts +8 -0
  489. package/dist/types/context/token_based_context_compactor.d.ts +0 -1
  490. package/dist/types/environment/base_environment.d.ts +101 -0
  491. package/dist/types/environment/local_environment.d.ts +72 -0
  492. package/dist/types/events/event.d.ts +94 -1
  493. package/dist/types/events/event_actions.d.ts +10 -0
  494. package/dist/types/index.d.ts +6 -13
  495. package/dist/types/memory/in_memory_memory_service.d.ts +11 -0
  496. package/dist/types/models/apigee_llm.d.ts +4 -4
  497. package/dist/types/models/google_llm.d.ts +2 -1
  498. package/dist/types/plugins/base_plugin.d.ts +39 -2
  499. package/dist/types/plugins/plugin_manager.d.ts +20 -0
  500. package/dist/types/plugins/security_plugin.d.ts +4 -2
  501. package/dist/types/runner/in_memory_runner.d.ts +2 -2
  502. package/dist/types/runner/runner.d.ts +59 -3
  503. package/dist/types/sessions/base_session_service.d.ts +10 -2
  504. package/dist/types/sessions/in_memory_session_service.d.ts +9 -0
  505. package/dist/types/sessions/state.d.ts +34 -1
  506. package/dist/types/sessions/state_write_order.d.ts +39 -0
  507. package/dist/types/sessions/vertex_ai_session_service.d.ts +19 -1
  508. package/dist/types/skills/loader.d.ts +5 -0
  509. package/dist/types/telemetry/tracing.d.ts +15 -0
  510. package/dist/types/tools/base_tool.d.ts +15 -0
  511. package/dist/types/tools/finish_task_tool.d.ts +47 -0
  512. package/dist/types/tools/function_tool.d.ts +46 -1
  513. package/dist/types/tools/get_user_choice_tool.d.ts +14 -0
  514. package/dist/types/tools/mcp/index.d.ts +13 -0
  515. package/dist/types/tools/mcp/mcp_session_manager.d.ts +3 -3
  516. package/dist/types/tools/mcp/mcp_tool.d.ts +1 -1
  517. package/dist/types/tools/mcp/mcp_toolset.d.ts +1 -1
  518. package/dist/types/tools/request_input_tool.d.ts +20 -0
  519. package/dist/types/tools/skill/skill_toolset.d.ts +26 -0
  520. package/dist/types/tools/tool_confirmation.d.ts +47 -0
  521. package/dist/types/utils/async_queue.d.ts +34 -2
  522. package/dist/types/utils/crypto_shim.d.ts +16 -0
  523. package/dist/types/utils/deprecated.d.ts +21 -0
  524. package/dist/types/utils/env_aware_utils.d.ts +39 -0
  525. package/dist/types/utils/error_utils.d.ts +18 -0
  526. package/dist/types/utils/file_utils.d.ts +10 -2
  527. package/dist/types/utils/genai_schema_to_json.d.ts +25 -0
  528. package/dist/types/utils/optional_peer.d.ts +36 -0
  529. package/dist/types/utils/output_schema_utils.d.ts +18 -0
  530. package/dist/types/utils/redact_uri.d.ts +28 -0
  531. package/dist/types/utils/schema.d.ts +73 -0
  532. package/dist/types/utils/simple_zod_to_json.d.ts +8 -0
  533. package/dist/types/utils/vertex_ai_utils.d.ts +5 -0
  534. package/dist/types/version.d.ts +1 -1
  535. package/dist/types/workflow/base_node.d.ts +142 -0
  536. package/dist/types/workflow/branch_path.d.ts +40 -0
  537. package/dist/types/workflow/dynamic_node_scheduler.d.ts +64 -0
  538. package/dist/types/workflow/errors.d.ts +132 -0
  539. package/dist/types/workflow/graph.d.ts +127 -0
  540. package/dist/types/workflow/index.d.ts +46 -0
  541. package/dist/types/workflow/node.d.ts +48 -0
  542. package/dist/types/workflow/node_builders.d.ts +25 -0
  543. package/dist/types/workflow/node_context.d.ts +208 -0
  544. package/dist/types/workflow/node_error_event.d.ts +18 -0
  545. package/dist/types/workflow/node_runner.d.ts +82 -0
  546. package/dist/types/workflow/node_state.d.ts +47 -0
  547. package/dist/types/workflow/node_status.d.ts +28 -0
  548. package/dist/types/workflow/nodes/function_node.d.ts +78 -0
  549. package/dist/types/workflow/nodes/join_node.d.ts +24 -0
  550. package/dist/types/workflow/nodes/node_tool.d.ts +53 -0
  551. package/dist/types/workflow/nodes/parallel_worker.d.ts +55 -0
  552. package/dist/types/workflow/nodes/tool_node.d.ts +34 -0
  553. package/dist/types/workflow/request_input.d.ts +73 -0
  554. package/dist/types/workflow/retry_config.d.ts +84 -0
  555. package/dist/types/workflow/run_llm_agent_as_node.d.ts +28 -0
  556. package/dist/types/workflow/run_node_as_invocation.d.ts +72 -0
  557. package/dist/types/workflow/schedule_dynamic_node.d.ts +66 -0
  558. package/dist/types/workflow/trigger.d.ts +22 -0
  559. package/dist/types/workflow/utils/graph_parser.d.ts +8 -0
  560. package/dist/types/workflow/utils/graph_validation.d.ts +18 -0
  561. package/dist/types/workflow/utils/hitl_utils.d.ts +92 -0
  562. package/dist/types/workflow/utils/rehydration_utils.d.ts +132 -0
  563. package/dist/types/workflow/utils/retry_utils.d.ts +54 -0
  564. package/dist/types/workflow/utils/workflow_graph_utils.d.ts +76 -0
  565. package/dist/types/workflow/workflow.d.ts +115 -0
  566. package/dist/web/a2a/a2a_event.js +19 -0
  567. package/dist/web/a2a/a2a_remote_agent.js +18 -4
  568. package/dist/web/a2a/a2a_remote_agent_run_processor.js +8 -3
  569. package/dist/web/a2a/a2a_remote_agent_utils.js +10 -2
  570. package/dist/web/a2a/agent_card.js +34 -3
  571. package/dist/web/a2a/agent_executor.js +45 -17
  572. package/dist/web/a2a/agent_to_a2a.js +44 -16
  573. package/dist/web/a2a/auth.js +41 -0
  574. package/dist/web/a2a/event_converter_utils.js +50 -15
  575. package/dist/web/a2a/event_processor_utils.js +73 -34
  576. package/dist/web/a2a/executor_context.js +3 -0
  577. package/dist/web/a2a/index.js +20 -0
  578. package/dist/web/a2a/metadata_converter_utils.js +5 -0
  579. package/dist/web/a2a/part_converter_utils.js +13 -0
  580. package/dist/web/agents/active_streaming_tool.js +6 -2
  581. package/dist/web/agents/base_agent.js +48 -9
  582. package/dist/web/agents/context.js +6 -2
  583. package/dist/web/agents/framework_function_calls.js +34 -0
  584. package/dist/web/agents/functions.js +62 -20
  585. package/dist/web/agents/instructions.js +52 -12
  586. package/dist/web/agents/invocation_context.js +56 -7
  587. package/dist/web/agents/live_request_queue.js +30 -5
  588. package/dist/web/agents/llm_agent.js +631 -52
  589. package/dist/web/agents/loop_agent.js +21 -2
  590. package/dist/web/agents/parallel_agent.js +23 -2
  591. package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +8 -4
  592. package/dist/web/agents/processors/base_llm_processor.js +10 -4
  593. package/dist/web/agents/processors/basic_llm_request_processor.js +8 -4
  594. package/dist/web/agents/processors/code_execution_request_processor.js +19 -5
  595. package/dist/web/agents/processors/content_processor_utils.js +87 -16
  596. package/dist/web/agents/processors/content_request_processor.js +12 -25
  597. package/dist/web/agents/processors/context_compactor_request_processor.js +6 -2
  598. package/dist/web/agents/processors/identity_llm_request_processor.js +13 -4
  599. package/dist/web/agents/processors/instructions_llm_request_processor.js +9 -3
  600. package/dist/web/agents/processors/interactions_request_processor.js +6 -2
  601. package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +329 -104
  602. package/dist/web/agents/processors/request_input_llm_request_processor.js +228 -0
  603. package/dist/web/agents/processors/tool_filter_request_processor.js +6 -2
  604. package/dist/web/agents/readonly_context.js +8 -3
  605. package/dist/web/agents/routed_agent.js +6 -14
  606. package/dist/web/agents/run_config.js +12 -0
  607. package/dist/web/agents/sequential_agent.js +22 -3
  608. package/dist/web/agents/user_input_request.js +135 -0
  609. package/dist/web/apps/app.js +14 -11
  610. package/dist/web/apps/resumability_config.js +2 -0
  611. package/dist/web/artifacts/file_artifact_service.js +22 -2
  612. package/dist/web/artifacts/gcs_artifact_service.js +56 -11
  613. package/dist/web/artifacts/in_memory_artifact_service.js +20 -11
  614. package/dist/web/artifacts/registry.js +7 -1
  615. package/dist/web/artifacts/scoped_artifact_service.js +5 -2
  616. package/dist/web/auth/auth_handler.js +5 -2
  617. package/dist/web/auth/auth_preprocessor.js +50 -41
  618. package/dist/web/auth/auth_provider_registry.js +6 -2
  619. package/dist/web/auth/auth_schemes.js +3 -0
  620. package/dist/web/auth/credential_response_binding.js +91 -0
  621. package/dist/web/auth/credential_service/in_memory_credential_service.js +20 -5
  622. package/dist/web/auth/credential_service/session_state_credential_service.js +6 -2
  623. package/dist/web/auth/exchanger/base_credential_exchanger.js +6 -2
  624. package/dist/web/auth/exchanger/credential_exchanger_registry.js +6 -2
  625. package/dist/web/auth/oauth2/oauth2_credential_exchanger.js +8 -2
  626. package/dist/web/auth/oauth2/oauth2_credential_refresher.js +5 -2
  627. package/dist/web/auth/oauth2/oauth2_discovery.js +8 -2
  628. package/dist/web/auth/oauth2/oauth2_utils.js +7 -0
  629. package/dist/web/auth/refresher/base_credential_refresher.js +6 -2
  630. package/dist/web/auth/refresher/credential_refresher_registry.js +6 -2
  631. package/dist/web/code_executors/agent_engine_sandbox_code_executor.js +3 -0
  632. package/dist/web/code_executors/base_code_executor.js +7 -2
  633. package/dist/web/code_executors/built_in_code_executor.js +7 -2
  634. package/dist/web/code_executors/code_execution_utils.js +7 -0
  635. package/dist/web/code_executors/code_executor_context.js +6 -2
  636. package/dist/web/code_executors/unsafe_local_code_executor.js +31 -13
  637. package/dist/web/common.js +113 -4
  638. package/dist/web/context/agent_controlled_context_compactor.js +8 -13
  639. package/dist/web/context/anchored_context_compactor.js +5 -2
  640. package/dist/web/context/compaction_utils.js +16 -1
  641. package/dist/web/context/summarizers/llm_summarizer.js +6 -2
  642. package/dist/web/context/token_based_context_compactor.js +16 -24
  643. package/dist/web/context/trajectory_thought_pruning_compactor.js +6 -2
  644. package/dist/web/context/truncating_context_compactor.js +6 -2
  645. package/dist/web/environment/base_environment.js +71 -0
  646. package/dist/web/environment/local_environment.js +165 -0
  647. package/dist/web/events/compacted_event.js +4 -0
  648. package/dist/web/events/event.js +37 -3
  649. package/dist/web/events/event_actions.js +5 -0
  650. package/dist/web/events/structured_events.js +3 -0
  651. package/dist/web/examples/base_example_provider.js +7 -2
  652. package/dist/web/examples/example_util.js +4 -0
  653. package/dist/web/features/feature_registry.js +8 -0
  654. package/dist/web/index.js +4 -13
  655. package/dist/web/integrations/agent_registry/agent_registry.js +8 -4
  656. package/dist/web/integrations/agent_registry/agent_registry_mcp_toolset.js +5 -2
  657. package/dist/web/integrations/agent_registry/helpers.js +4 -0
  658. package/dist/web/memory/in_memory_memory_service.js +22 -4
  659. package/dist/web/memory/vertex_ai_memory_bank_service.js +24 -3
  660. package/dist/web/models/apigee_llm.js +9 -3
  661. package/dist/web/models/base_llm.js +8 -3
  662. package/dist/web/models/gemini_llm_connection.js +6 -2
  663. package/dist/web/models/google_llm.js +25 -13
  664. package/dist/web/models/interactions_utils.js +17 -0
  665. package/dist/web/models/llm_request.js +5 -0
  666. package/dist/web/models/llm_response.js +3 -0
  667. package/dist/web/models/registry.js +7 -2
  668. package/dist/web/models/routed_llm.js +4 -14
  669. package/dist/web/plugins/base_plugin.js +43 -7
  670. package/dist/web/plugins/global_instruction_plugin.js +6 -2
  671. package/dist/web/plugins/logging_plugin.js +14 -8
  672. package/dist/web/plugins/plugin_manager.js +38 -2
  673. package/dist/web/plugins/security_plugin.js +14 -6
  674. package/dist/web/runner/in_memory_runner.js +6 -2
  675. package/dist/web/runner/runner.js +249 -31
  676. package/dist/web/sessions/base_session_service.js +22 -5
  677. package/dist/web/sessions/database_session_service.js +6 -2
  678. package/dist/web/sessions/db/operations.js +34 -6
  679. package/dist/web/sessions/db/schema.js +16 -8
  680. package/dist/web/sessions/in_memory_session_service.js +31 -22
  681. package/dist/web/sessions/registry.js +5 -1
  682. package/dist/web/sessions/session.js +3 -0
  683. package/dist/web/sessions/state.js +77 -7
  684. package/dist/web/sessions/state_write_order.js +74 -0
  685. package/dist/web/sessions/vertex_ai_session_service.js +142 -26
  686. package/dist/web/skills/gcp_skill_registry.js +2 -0
  687. package/dist/web/skills/loader.js +62 -16
  688. package/dist/web/skills/prompt.js +4 -0
  689. package/dist/web/telemetry/google_cloud.js +54 -9
  690. package/dist/web/telemetry/setup.js +6 -0
  691. package/dist/web/telemetry/tracing.js +77 -7
  692. package/dist/web/tools/agent_tool.js +7 -2
  693. package/dist/web/tools/base_tool.js +25 -2
  694. package/dist/web/tools/base_toolset.js +7 -2
  695. package/dist/web/tools/consolidate_context_tool.js +6 -2
  696. package/dist/web/tools/enterprise_web_search_tool.js +7 -2
  697. package/dist/web/tools/example_tool.js +6 -2
  698. package/dist/web/tools/exit_loop_tool.js +6 -2
  699. package/dist/web/tools/finish_task_tool.js +92 -0
  700. package/dist/web/tools/forwarding_artifact_service.js +6 -2
  701. package/dist/web/tools/function_tool.js +74 -8
  702. package/dist/web/tools/get_user_choice_tool.js +27 -0
  703. package/dist/web/tools/google_maps_grounding_tool.js +7 -2
  704. package/dist/web/tools/google_search_tool.js +6 -2
  705. package/dist/web/tools/load_artifacts_tool.js +9 -2
  706. package/dist/web/tools/load_memory_tool.js +6 -2
  707. package/dist/web/tools/load_web_page.js +22 -1
  708. package/dist/web/tools/long_running_tool.js +5 -2
  709. package/dist/web/tools/mcp/index.js +11 -0
  710. package/dist/web/tools/mcp/load_mcp_resource_tool.js +6 -2
  711. package/dist/web/tools/mcp/mcp_session_manager.js +80 -30
  712. package/dist/web/tools/mcp/mcp_tool.js +6 -2
  713. package/dist/web/tools/mcp/mcp_toolset.js +5 -2
  714. package/dist/web/tools/openapi_tool/auth/auth_helpers.js +5 -0
  715. package/dist/web/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +2 -0
  716. package/dist/web/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +2 -0
  717. package/dist/web/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +30 -9
  718. package/dist/web/tools/openapi_tool/openapi_spec_parser/operation_parser.js +2 -0
  719. package/dist/web/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +6 -2
  720. package/dist/web/tools/openapi_tool/openapi_toolset.js +2 -0
  721. package/dist/web/tools/openapi_tool/rest_api_tool.js +23 -5
  722. package/dist/web/tools/preload_memory_tool.js +6 -2
  723. package/dist/web/tools/request_input_tool.js +29 -0
  724. package/dist/web/tools/skill/list_skills_tool.js +2 -0
  725. package/dist/web/tools/skill/load_skill_resource_tool.js +2 -0
  726. package/dist/web/tools/skill/load_skill_tool.js +4 -1
  727. package/dist/web/tools/skill/run_skill_inline_script_tool.js +26 -2
  728. package/dist/web/tools/skill/run_skill_script_tool.js +28 -2
  729. package/dist/web/tools/skill/search_skills_tool.js +2 -0
  730. package/dist/web/tools/skill/skill_toolset.js +25 -0
  731. package/dist/web/tools/tool_confirmation.js +24 -2
  732. package/dist/web/tools/url_context_tool.js +6 -2
  733. package/dist/web/tools/vertex_ai_search_tool.js +6 -2
  734. package/dist/web/tools/vertex_rag_retrieval_tool.js +6 -2
  735. package/dist/web/utils/async_hooks_shim.js +6 -2
  736. package/dist/web/utils/async_queue.js +46 -18
  737. package/dist/web/utils/branch_trie.js +3 -0
  738. package/dist/web/utils/case_utils.js +3 -0
  739. package/dist/web/utils/client_labels.js +6 -0
  740. package/dist/web/utils/crypto_shim.js +18 -0
  741. package/dist/web/utils/deprecated.js +40 -0
  742. package/dist/web/utils/env_aware_utils.js +56 -13
  743. package/dist/web/utils/error_utils.js +101 -0
  744. package/dist/web/utils/experimental.js +10 -2
  745. package/dist/web/utils/failover_utils.js +4 -0
  746. package/dist/web/utils/file_extension_utils.js +4 -0
  747. package/dist/web/utils/file_utils.js +12 -4
  748. package/dist/web/utils/gemini_schema_util.js +6 -2
  749. package/dist/web/utils/genai_schema_to_json.js +80 -0
  750. package/dist/web/utils/live_connection_utils.js +5 -2
  751. package/dist/web/utils/logger.js +14 -4
  752. package/dist/web/utils/model_name.js +9 -0
  753. package/dist/web/utils/object_notation_utils.js +8 -3
  754. package/dist/web/utils/optional_peer.js +38 -0
  755. package/dist/web/utils/output_schema_utils.js +18 -0
  756. package/dist/web/utils/partial_copy.js +3 -0
  757. package/dist/web/utils/redact_uri.js +39 -0
  758. package/dist/web/utils/schema.js +167 -0
  759. package/dist/web/utils/simple_zod_to_json.js +15 -4
  760. package/dist/web/utils/streaming_utils.js +14 -6
  761. package/dist/web/utils/task.js +8 -4
  762. package/dist/web/utils/variant_utils.js +5 -2
  763. package/dist/web/utils/vertex_ai_utils.js +7 -2
  764. package/dist/web/version.js +1 -1
  765. package/dist/web/workflow/base_node.js +215 -0
  766. package/dist/web/workflow/branch_path.js +77 -0
  767. package/dist/web/workflow/dynamic_node_scheduler.js +202 -0
  768. package/dist/web/workflow/errors.js +140 -0
  769. package/dist/web/workflow/graph.js +127 -0
  770. package/dist/web/workflow/index.js +80 -0
  771. package/dist/web/workflow/node.js +87 -0
  772. package/dist/web/workflow/node_builders.js +40 -0
  773. package/dist/web/workflow/node_context.js +236 -0
  774. package/dist/web/workflow/node_error_event.js +86 -0
  775. package/dist/web/workflow/node_runner.js +481 -0
  776. package/dist/web/workflow/node_state.js +43 -0
  777. package/dist/web/workflow/node_status.js +20 -0
  778. package/dist/web/workflow/nodes/function_node.js +221 -0
  779. package/dist/web/workflow/nodes/join_node.js +47 -0
  780. package/dist/web/workflow/nodes/node_tool.js +131 -0
  781. package/dist/web/workflow/nodes/parallel_worker.js +120 -0
  782. package/dist/web/workflow/nodes/tool_node.js +126 -0
  783. package/dist/web/workflow/request_input.js +36 -0
  784. package/dist/web/workflow/retry_config.js +43 -0
  785. package/dist/web/workflow/run_llm_agent_as_node.js +266 -0
  786. package/dist/web/workflow/run_node_as_invocation.js +170 -0
  787. package/dist/web/workflow/schedule_dynamic_node.js +26 -0
  788. package/dist/web/workflow/trigger.js +7 -0
  789. package/dist/web/workflow/utils/graph_parser.js +188 -0
  790. package/dist/web/workflow/utils/graph_validation.js +189 -0
  791. package/dist/web/workflow/utils/hitl_utils.js +239 -0
  792. package/dist/web/workflow/utils/rehydration_utils.js +342 -0
  793. package/dist/web/workflow/utils/retry_utils.js +82 -0
  794. package/dist/web/workflow/utils/workflow_graph_utils.js +115 -0
  795. package/dist/web/workflow/workflow.js +529 -0
  796. 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,
@@ -84,12 +93,14 @@ import { isBaseLlm } from "../models/base_llm.js";
84
93
  import { LLMRegistry } from "../models/registry.js";
85
94
  import { isBaseTool } from "../tools/base_tool.js";
86
95
  import { logger } from "../utils/logger.js";
96
+ import { canUseOutputSchemaWithTools } from "../utils/output_schema_utils.js";
87
97
  import { Context } from "./context.js";
88
98
  import {
89
99
  runAsyncGeneratorWithOtelContext,
90
100
  traceCallLlm,
91
101
  tracer
92
102
  } from "../telemetry/tracing.js";
103
+ import { parseWithSchema } from "../utils/schema.js";
93
104
  import { isZodObject, zodObjectToSchema } from "../utils/simple_zod_to_json.js";
94
105
  import { BaseAgent } from "./base_agent.js";
95
106
  import {
@@ -99,6 +110,7 @@ import {
99
110
  handleFunctionCallsAsync
100
111
  } from "./functions.js";
101
112
  import { AUTH_PREPROCESSOR } from "../auth/auth_preprocessor.js";
113
+ import { requireAgent } from "./invocation_context.js";
102
114
  import { AGENT_TRANSFER_LLM_REQUEST_PROCESSOR } from "./processors/agent_transfer_llm_request_processor.js";
103
115
  import { BASIC_LLM_REQUEST_PROCESSOR } from "./processors/basic_llm_request_processor.js";
104
116
  import { CODE_EXECUTION_REQUEST_PROCESSOR } from "./processors/code_execution_request_processor.js";
@@ -108,48 +120,112 @@ import { IDENTITY_LLM_REQUEST_PROCESSOR } from "./processors/identity_llm_reques
108
120
  import { INSTRUCTIONS_LLM_REQUEST_PROCESSOR } from "./processors/instructions_llm_request_processor.js";
109
121
  import { INTERACTIONS_REQUEST_PROCESSOR } from "./processors/interactions_request_processor.js";
110
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";
111
124
  import { TOOL_FILTER_REQUEST_PROCESSOR } from "./processors/tool_filter_request_processor.js";
112
125
  import { ReadonlyContext } from "./readonly_context.js";
113
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");
114
177
  const ADK_AGENT_NAME_LABEL_KEY = "adk_agent_name";
115
178
  async function convertToolUnionToTools(toolUnion, context2) {
116
179
  if (isBaseTool(toolUnion)) {
117
180
  return [toolUnion];
118
181
  }
182
+ if (isBaseNode(toolUnion)) {
183
+ return [new NodeTool(toolUnion)];
184
+ }
119
185
  return await toolUnion.getTools(context2);
120
186
  }
187
+ __name(convertToolUnionToTools, "convertToolUnionToTools");
121
188
  const LLM_AGENT_SIGNATURE_SYMBOL = Symbol.for("google.adk.llmAgent");
122
189
  function isLlmAgent(obj) {
123
190
  return typeof obj === "object" && obj !== null && LLM_AGENT_SIGNATURE_SYMBOL in obj && obj[LLM_AGENT_SIGNATURE_SYMBOL] === true;
124
191
  }
125
- 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) {
126
194
  constructor(config) {
127
- var _a2, _b2, _c, _d, _e, _f, _g, _h, _i;
128
- 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
+ }));
129
200
  /** A unique symbol to identify ADK LLM agent class. */
130
201
  this[_a] = true;
131
202
  this.model = config.model;
132
- this.instruction = (_a2 = config.instruction) != null ? _a2 : "";
133
- this.globalInstruction = (_b2 = config.globalInstruction) != null ? _b2 : "";
134
- 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 : [];
135
206
  this.generateContentConfig = config.generateContentConfig;
136
- this.disallowTransferToParent = (_d = config.disallowTransferToParent) != null ? _d : false;
137
- this.disallowTransferToPeers = (_e = config.disallowTransferToPeers) != null ? _e : false;
138
- 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;
139
213
  this.inputSchema = isZodObject(config.inputSchema) ? zodObjectToSchema(config.inputSchema) : config.inputSchema;
140
214
  this.outputSchema = isZodObject(config.outputSchema) ? zodObjectToSchema(config.outputSchema) : config.outputSchema;
215
+ this.mode = config.mode;
141
216
  this.outputKey = config.outputKey;
142
217
  this.beforeModelCallback = config.beforeModelCallback;
143
218
  this.afterModelCallback = config.afterModelCallback;
144
219
  this.beforeToolCallback = config.beforeToolCallback;
145
220
  this.afterToolCallback = config.afterToolCallback;
146
221
  this.codeExecutor = config.codeExecutor;
147
- this.requestProcessors = (_g = config.requestProcessors) != null ? _g : [
222
+ this.requestProcessors = (_i = config.requestProcessors) != null ? _i : [
148
223
  BASIC_LLM_REQUEST_PROCESSOR,
149
224
  AUTH_PREPROCESSOR,
150
225
  IDENTITY_LLM_REQUEST_PROCESSOR,
151
226
  INSTRUCTIONS_LLM_REQUEST_PROCESSOR,
152
227
  REQUEST_CONFIRMATION_LLM_REQUEST_PROCESSOR,
228
+ REQUEST_INPUT_LLM_REQUEST_PROCESSOR,
153
229
  CONTENT_REQUEST_PROCESSOR,
154
230
  INTERACTIONS_REQUEST_PROCESSOR,
155
231
  CODE_EXECUTION_REQUEST_PROCESSOR,
@@ -171,8 +247,8 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
171
247
  );
172
248
  }
173
249
  }
174
- this.responseProcessors = (_h = config.responseProcessors) != null ? _h : [];
175
- 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);
176
252
  if (!agentTransferDisabled) {
177
253
  this.requestProcessors.push(AGENT_TRANSFER_LLM_REQUEST_PROCESSOR);
178
254
  }
@@ -194,13 +270,14 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
194
270
  this.generateContentConfig = {};
195
271
  }
196
272
  if (this.outputSchema) {
197
- 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) {
198
275
  logger.warn(
199
276
  "Invalid config for agent ".concat(this.name, ": outputSchema cannot co-exist with agent transfer configurations. Setting disallowTransferToParent=true, disallowTransferToPeers=true")
200
277
  );
201
- this.disallowTransferToParent = true;
202
- this.disallowTransferToPeers = true;
203
278
  }
279
+ this.disallowTransferToParent = true;
280
+ this.disallowTransferToPeers = true;
204
281
  }
205
282
  }
206
283
  /**
@@ -224,6 +301,16 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
224
301
  }
225
302
  throw new Error("No model found for ".concat(this.name, "."));
226
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
+ }
227
314
  /**
228
315
  * The resolved instruction field to construct instruction for this
229
316
  * agent.
@@ -296,7 +383,7 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
296
383
  * This method is only for use by Agent Development Kit.
297
384
  */
298
385
  get canonicalBeforeModelCallbacks() {
299
- return LlmAgent.normalizeCallbackArray(this.beforeModelCallback);
386
+ return _LlmAgent.normalizeCallbackArray(this.beforeModelCallback);
300
387
  }
301
388
  /**
302
389
  * The resolved afterModelCallback field as a list of
@@ -305,7 +392,7 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
305
392
  * This method is only for use by Agent Development Kit.
306
393
  */
307
394
  get canonicalAfterModelCallbacks() {
308
- return LlmAgent.normalizeCallbackArray(this.afterModelCallback);
395
+ return _LlmAgent.normalizeCallbackArray(this.afterModelCallback);
309
396
  }
310
397
  /**
311
398
  * The resolved beforeToolCallback field as a list of
@@ -314,7 +401,7 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
314
401
  * This method is only for use by Agent Development Kit.
315
402
  */
316
403
  get canonicalBeforeToolCallbacks() {
317
- return LlmAgent.normalizeCallbackArray(this.beforeToolCallback);
404
+ return _LlmAgent.normalizeCallbackArray(this.beforeToolCallback);
318
405
  }
319
406
  /**
320
407
  * The resolved afterToolCallback field as a list of AfterToolCallback.
@@ -322,7 +409,7 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
322
409
  * This method is only for use by Agent Development Kit.
323
410
  */
324
411
  get canonicalAfterToolCallbacks() {
325
- return LlmAgent.normalizeCallbackArray(this.afterToolCallback);
412
+ return _LlmAgent.normalizeCallbackArray(this.afterToolCallback);
326
413
  }
327
414
  /**
328
415
  * Saves the agent's final response to the session state if configured.
@@ -365,14 +452,55 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
365
452
  if (!resultStr.trim()) {
366
453
  return;
367
454
  }
455
+ let parsed;
368
456
  try {
369
- result = JSON.parse(resultStr);
457
+ parsed = JSON.parse(resultStr);
370
458
  } catch (e) {
371
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;
372
471
  }
373
472
  }
374
473
  event.actions.stateDelta[this.outputKey] = result;
375
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
+ }
376
504
  runAsyncImpl(context2) {
377
505
  return __asyncGenerator(this, null, function* () {
378
506
  var _a2, _b2;
@@ -460,11 +588,423 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
460
588
  * times. Subsequent reconnects skip `sendHistory` because the server
461
589
  * already holds the conversation state associated with the handle.
462
590
  */
463
- // eslint-disable-next-line require-yield
464
- runLiveFlow(_invocationContext) {
591
+ runLiveFlow(invocationContext) {
465
592
  return __asyncGenerator(this, null, function* () {
466
- yield new __await(Promise.resolve());
467
- 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;
468
1008
  });
469
1009
  }
470
1010
  runOneStepAsync(invocationContext) {
@@ -499,22 +1039,32 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
499
1039
  }
500
1040
  }
501
1041
  const allTools = [...this.tools];
502
- if (this.outputSchema && allTools.length > 0) {
1042
+ if (this.mode === "task") {
1043
+ allTools.push(this.finishTaskTool);
1044
+ } else if (this.outputSchema && allTools.length > 0 && !canUseOutputSchemaWithTools(this.canonicalModel.model)) {
503
1045
  const setModelResponseTool = new FunctionTool({
504
1046
  name: "set_model_response",
505
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.",
506
1048
  parameters: this.outputSchema,
507
- execute: async (args, toolContext) => {
1049
+ execute: /* @__PURE__ */ __name(async (args, toolContext) => {
508
1050
  if (toolContext) {
509
1051
  toolContext.actions.skipSummarization = true;
510
1052
  }
511
1053
  return JSON.stringify(args);
512
- }
1054
+ }, "execute")
513
1055
  });
514
1056
  allTools.push(setModelResponseTool);
515
1057
  }
1058
+ const modelResponseEvent = createEvent({
1059
+ invocationId: invocationContext.invocationId,
1060
+ author: this.name,
1061
+ branch: invocationContext.branch
1062
+ });
516
1063
  for (const toolUnion of allTools) {
517
- const toolContext = new Context({ invocationContext });
1064
+ const toolContext = new Context({
1065
+ invocationContext,
1066
+ eventActions: modelResponseEvent.actions
1067
+ });
518
1068
  const tools = (yield new __await(convertToolUnionToTools(
519
1069
  toolUnion,
520
1070
  new ReadonlyContext(invocationContext)
@@ -531,11 +1081,6 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
531
1081
  if (invocationContext.endInvocation || ((_c = invocationContext.abortSignal) == null ? void 0 : _c.aborted)) {
532
1082
  return;
533
1083
  }
534
- const modelResponseEvent = createEvent({
535
- invocationId: invocationContext.invocationId,
536
- author: this.name,
537
- branch: invocationContext.branch
538
- });
539
1084
  const span = tracer.startSpan("call_llm");
540
1085
  const ctx = trace.setSpan(context.active(), span);
541
1086
  yield* __yieldStar(runAsyncGeneratorWithOtelContext(
@@ -543,7 +1088,7 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
543
1088
  this,
544
1089
  function() {
545
1090
  return __asyncGenerator(this, null, function* () {
546
- const responsesGenerator = function() {
1091
+ const responsesGenerator = /* @__PURE__ */ __name(function() {
547
1092
  return __asyncGenerator(this, null, function* () {
548
1093
  var _a3, _b3;
549
1094
  try {
@@ -593,7 +1138,7 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
593
1138
  }
594
1139
  }
595
1140
  });
596
- };
1141
+ }, "responsesGenerator");
597
1142
  yield* __yieldStar(this.runAndHandleError(
598
1143
  responsesGenerator.call(this),
599
1144
  invocationContext,
@@ -632,7 +1177,8 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
632
1177
  }
633
1178
  }
634
1179
  }
635
- 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) {
636
1182
  return;
637
1183
  }
638
1184
  const mergedEvent = createEvent(__spreadValues(__spreadValues({}, modelResponseEvent), llmResponse));
@@ -660,13 +1206,44 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
660
1206
  invocationContext.endInvocation = true;
661
1207
  return;
662
1208
  }
663
- const functionResponseEvent = yield new __await(handleFunctionCallsAsync({
664
- invocationContext,
665
- functionCallEvent: mergedEvent,
666
- toolsDict: llmRequest.toolsDict,
667
- beforeToolCallbacks: this.canonicalBeforeToolCallbacks,
668
- afterToolCallbacks: this.canonicalAfterToolCallbacks
669
- }));
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
+ }
670
1247
  if (!functionResponseEvent || ((_e = invocationContext.abortSignal) == null ? void 0 : _e.aborted)) {
671
1248
  return;
672
1249
  }
@@ -692,21 +1269,21 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
692
1269
  if (nextAgentName) {
693
1270
  const nextAgent = this.getAgentByName(invocationContext, nextAgentName);
694
1271
  try {
695
- for (var iter2 = __forAwait(nextAgent.runAsync(invocationContext)), more2, temp2, error2; more2 = !(temp2 = yield new __await(iter2.next())).done; more2 = false) {
696
- 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;
697
1274
  if ((_f = invocationContext.abortSignal) == null ? void 0 : _f.aborted) {
698
1275
  return;
699
1276
  }
700
1277
  yield event;
701
1278
  }
702
- } catch (temp2) {
703
- error2 = [temp2];
1279
+ } catch (temp3) {
1280
+ error3 = [temp3];
704
1281
  } finally {
705
1282
  try {
706
- more2 && (temp2 = iter2.return) && (yield new __await(temp2.call(iter2)));
1283
+ more3 && (temp3 = iter3.return) && (yield new __await(temp3.call(iter3)));
707
1284
  } finally {
708
- if (error2)
709
- throw error2[0];
1285
+ if (error3)
1286
+ throw error3[0];
710
1287
  }
711
1288
  }
712
1289
  }
@@ -725,7 +1302,7 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
725
1302
  * @throws Error if the agent is not found.
726
1303
  */
727
1304
  getAgentByName(invocationContext, agentName) {
728
- const rootAgent = invocationContext.agent.rootAgent;
1305
+ const rootAgent = requireAgent(invocationContext).rootAgent;
729
1306
  const agentToRun = rootAgent.findAgent(agentName);
730
1307
  if (!agentToRun) {
731
1308
  throw new Error("Agent ".concat(agentName, " not found in the agent tree."));
@@ -928,7 +1505,9 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
928
1505
  // TODO - b/425992518: omitted Py LlmAgent features.
929
1506
  // - code_executor
930
1507
  // - configurable agents by yaml config
931
- }
1508
+ };
1509
+ __name(_LlmAgent, "LlmAgent");
1510
+ let LlmAgent = _LlmAgent;
932
1511
  export {
933
1512
  LlmAgent,
934
1513
  isLlmAgent