@google/adk 1.6.0 → 2.1.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 (869) hide show
  1. package/dist/cjs/a2a/a2a_event.js +17 -28
  2. package/dist/cjs/a2a/a2a_remote_agent.js +13 -7
  3. package/dist/cjs/a2a/a2a_remote_agent_run_processor.js +7 -3
  4. package/dist/cjs/a2a/a2a_remote_agent_utils.js +111 -2
  5. package/dist/cjs/a2a/agent_card.js +90 -8
  6. package/dist/cjs/a2a/agent_executor.js +34 -18
  7. package/dist/cjs/a2a/agent_to_a2a.js +28 -11
  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 +6 -2
  12. package/dist/cjs/a2a/index.js +57 -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/a2a/request_metadata.js +94 -0
  16. package/dist/cjs/agents/active_streaming_tool.js +5 -2
  17. package/dist/cjs/agents/base_agent.js +55 -17
  18. package/dist/cjs/agents/context.js +12 -2
  19. package/dist/cjs/agents/framework_function_calls.js +64 -0
  20. package/dist/cjs/agents/functions.js +185 -60
  21. package/dist/cjs/agents/instructions.js +51 -12
  22. package/dist/cjs/agents/invocation_context.js +43 -8
  23. package/dist/cjs/agents/live_request_queue.js +29 -5
  24. package/dist/cjs/agents/llm_agent.js +541 -50
  25. package/dist/cjs/agents/loop_agent.js +20 -3
  26. package/dist/cjs/agents/parallel_agent.js +22 -3
  27. package/dist/cjs/agents/processors/agent_transfer_llm_request_processor.js +32 -8
  28. package/dist/cjs/agents/processors/base_llm_processor.js +9 -4
  29. package/dist/cjs/agents/processors/basic_llm_request_processor.js +6 -3
  30. package/dist/cjs/agents/processors/code_execution_request_processor.js +20 -7
  31. package/dist/cjs/agents/processors/content_processor_utils.js +85 -15
  32. package/dist/cjs/agents/processors/content_request_processor.js +13 -5
  33. package/dist/cjs/agents/processors/context_compactor_request_processor.js +5 -2
  34. package/dist/cjs/agents/processors/identity_llm_request_processor.js +12 -4
  35. package/dist/cjs/agents/processors/instructions_llm_request_processor.js +5 -2
  36. package/dist/cjs/agents/processors/interactions_request_processor.js +5 -2
  37. package/dist/cjs/agents/processors/request_confirmation_llm_request_processor.js +320 -92
  38. package/dist/cjs/agents/processors/request_input_llm_request_processor.js +214 -0
  39. package/dist/cjs/agents/processors/tool_filter_request_processor.js +5 -2
  40. package/dist/cjs/agents/readonly_context.js +13 -3
  41. package/dist/cjs/agents/routed_agent.js +7 -14
  42. package/dist/cjs/agents/run_config.js +12 -0
  43. package/dist/cjs/agents/sequential_agent.js +21 -4
  44. package/dist/cjs/agents/user_input_request.js +145 -0
  45. package/dist/cjs/apps/app.js +12 -12
  46. package/dist/cjs/apps/resumability_config.js +2 -0
  47. package/dist/cjs/artifacts/file_artifact_service.js +22 -4
  48. package/dist/cjs/artifacts/gcs_artifact_service.js +46 -11
  49. package/dist/cjs/artifacts/in_memory_artifact_service.js +9 -2
  50. package/dist/cjs/artifacts/registry.js +6 -1
  51. package/dist/cjs/artifacts/scoped_artifact_service.js +14 -2
  52. package/dist/cjs/artifacts/session_artifact_service.js +19 -0
  53. package/dist/cjs/auth/auth_handler.js +49 -10
  54. package/dist/cjs/auth/auth_preprocessor.js +48 -40
  55. package/dist/cjs/auth/auth_provider_registry.js +5 -2
  56. package/dist/cjs/auth/auth_schemes.js +2 -0
  57. package/dist/cjs/auth/credential_response_binding.js +101 -0
  58. package/dist/cjs/auth/credential_service/in_memory_credential_service.js +5 -2
  59. package/dist/cjs/auth/credential_service/session_state_credential_service.js +5 -2
  60. package/dist/cjs/auth/exchanger/base_credential_exchanger.js +5 -2
  61. package/dist/cjs/auth/exchanger/credential_exchanger_registry.js +5 -2
  62. package/dist/cjs/auth/oauth2/oauth2_credential_exchanger.js +8 -2
  63. package/dist/cjs/auth/oauth2/oauth2_credential_refresher.js +6 -3
  64. package/dist/cjs/auth/oauth2/oauth2_discovery.js +7 -2
  65. package/dist/cjs/auth/oauth2/oauth2_utils.js +23 -2
  66. package/dist/cjs/auth/refresher/base_credential_refresher.js +5 -2
  67. package/dist/cjs/auth/refresher/credential_refresher_registry.js +5 -2
  68. package/dist/cjs/code_executors/agent_engine_sandbox_code_executor.js +3 -0
  69. package/dist/cjs/code_executors/base_code_executor.js +7 -3
  70. package/dist/cjs/code_executors/built_in_code_executor.js +7 -3
  71. package/dist/cjs/code_executors/code_execution_utils.js +8 -2
  72. package/dist/cjs/code_executors/code_executor_context.js +5 -2
  73. package/dist/cjs/code_executors/container_code_executor.js +186 -0
  74. package/dist/cjs/code_executors/docker_container.js +282 -0
  75. package/dist/cjs/code_executors/unsafe_local_code_executor.js +19 -8
  76. package/dist/cjs/common.js +180 -46
  77. package/dist/cjs/context/agent_controlled_context_compactor.js +15 -7
  78. package/dist/cjs/context/anchored_context_compactor.js +46 -20
  79. package/dist/cjs/context/compaction_utils.js +18 -6
  80. package/dist/cjs/context/summarizers/llm_summarizer.js +5 -2
  81. package/dist/cjs/context/token_based_context_compactor.js +19 -5
  82. package/dist/cjs/context/trajectory_thought_pruning_compactor.js +22 -12
  83. package/dist/cjs/context/truncating_context_compactor.js +22 -7
  84. package/dist/cjs/environment/base_environment.js +97 -0
  85. package/dist/cjs/environment/local_environment.js +186 -0
  86. package/dist/cjs/errors/already_exists_error.js +50 -0
  87. package/dist/cjs/errors/input_validation_error.js +50 -0
  88. package/dist/cjs/errors/not_found_error.js +50 -0
  89. package/dist/cjs/errors/session_not_found_error.js +50 -0
  90. package/dist/cjs/errors/tool_execution_error.js +68 -0
  91. package/dist/cjs/events/compacted_event.js +4 -0
  92. package/dist/cjs/events/event.js +38 -3
  93. package/dist/cjs/events/event_actions.js +12 -0
  94. package/dist/cjs/events/structured_events.js +2 -0
  95. package/dist/cjs/examples/base_example_provider.js +7 -3
  96. package/dist/cjs/examples/example_util.js +3 -0
  97. package/dist/cjs/features/feature_registry.js +7 -0
  98. package/dist/cjs/index.js +54 -25
  99. package/dist/cjs/index_web.js +2 -0
  100. package/dist/cjs/integrations/agent_registry/agent_registry.js +10 -6
  101. package/dist/cjs/integrations/agent_registry/agent_registry_mcp_toolset.js +7 -4
  102. package/dist/cjs/integrations/agent_registry/helpers.js +3 -0
  103. package/dist/cjs/memory/in_memory_memory_service.js +8 -2
  104. package/dist/cjs/memory/rag_memory_transcript.js +136 -0
  105. package/dist/cjs/memory/vertex_ai_memory_bank_service.js +19 -4
  106. package/dist/cjs/memory/vertex_ai_rag_api.js +120 -0
  107. package/dist/cjs/memory/vertex_ai_rag_memory_service.js +228 -0
  108. package/dist/cjs/models/apigee_llm.js +10 -4
  109. package/dist/cjs/models/base_llm.js +8 -4
  110. package/dist/cjs/models/chrome_prompt_llm.js +304 -0
  111. package/dist/cjs/models/chrome_prompt_utils.js +229 -0
  112. package/dist/cjs/models/gemini_llm_connection.js +5 -2
  113. package/dist/cjs/models/google_llm.js +33 -16
  114. package/dist/cjs/models/interactions_utils.js +18 -3
  115. package/dist/cjs/models/llm_request.js +4 -0
  116. package/dist/cjs/models/llm_response.js +2 -0
  117. package/dist/cjs/models/registry.js +8 -2
  118. package/dist/cjs/models/routed_llm.js +4 -13
  119. package/dist/cjs/plugins/_reflect_retry_utils.js +142 -0
  120. package/dist/cjs/plugins/base_plugin.js +39 -5
  121. package/dist/cjs/plugins/global_instruction_plugin.js +5 -2
  122. package/dist/cjs/plugins/logging_plugin.js +13 -8
  123. package/dist/cjs/plugins/plugin_manager.js +37 -2
  124. package/dist/cjs/plugins/reflect_retry_model_plugin.js +274 -0
  125. package/dist/cjs/plugins/reflect_retry_tool_plugin.js +276 -0
  126. package/dist/cjs/plugins/security_plugin.js +15 -8
  127. package/dist/cjs/runner/in_memory_runner.js +5 -2
  128. package/dist/cjs/runner/runner.js +236 -43
  129. package/dist/cjs/sessions/base_session_service.js +13 -2
  130. package/dist/cjs/sessions/database_session_service.js +84 -45
  131. package/dist/cjs/sessions/db/operations.js +259 -24
  132. package/dist/cjs/sessions/db/schema.js +118 -156
  133. package/dist/cjs/sessions/in_memory_session_service.js +22 -14
  134. package/dist/cjs/sessions/registry.js +9 -2
  135. package/dist/cjs/sessions/session.js +2 -0
  136. package/dist/cjs/sessions/state.js +80 -8
  137. package/dist/cjs/sessions/state_write_order.js +105 -0
  138. package/dist/cjs/sessions/vertex_ai_session_service.js +112 -17
  139. package/dist/cjs/skills/gcp_skill_registry.js +2 -0
  140. package/dist/cjs/skills/loader.js +22 -10
  141. package/dist/cjs/skills/prompt.js +3 -0
  142. package/dist/cjs/telemetry/google_cloud.js +42 -9
  143. package/dist/cjs/telemetry/setup.js +6 -1
  144. package/dist/cjs/telemetry/tracing.js +71 -5
  145. package/dist/cjs/tools/agent_tool.js +10 -7
  146. package/dist/cjs/tools/base_tool.js +38 -6
  147. package/dist/cjs/tools/base_toolset.js +10 -6
  148. package/dist/cjs/tools/built_in_tool.js +75 -0
  149. package/dist/cjs/tools/consolidate_context_tool.js +5 -2
  150. package/dist/cjs/tools/enterprise_web_search_tool.js +8 -7
  151. package/dist/cjs/tools/example_tool.js +5 -2
  152. package/dist/cjs/tools/exit_loop_tool.js +5 -2
  153. package/dist/cjs/tools/finish_task_tool.js +119 -0
  154. package/dist/cjs/tools/forwarding_artifact_service.js +23 -15
  155. package/dist/cjs/tools/function_tool.js +79 -11
  156. package/dist/cjs/tools/get_user_choice_tool.js +3 -2
  157. package/dist/cjs/tools/google_maps_grounding_tool.js +8 -7
  158. package/dist/cjs/tools/google_search_tool.js +7 -7
  159. package/dist/cjs/tools/load_artifacts_tool.js +55 -25
  160. package/dist/cjs/tools/load_memory_tool.js +5 -2
  161. package/dist/cjs/tools/load_web_page.js +14 -160
  162. package/dist/cjs/tools/long_running_tool.js +5 -2
  163. package/dist/cjs/tools/mcp/index.js +39 -0
  164. package/dist/cjs/tools/mcp/load_mcp_resource_tool.js +39 -7
  165. package/dist/cjs/tools/mcp/mcp_session_manager.js +36 -8
  166. package/dist/cjs/tools/mcp/mcp_tool.js +5 -2
  167. package/dist/cjs/tools/mcp/mcp_toolset.js +5 -2
  168. package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +15 -2
  169. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +2 -0
  170. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +2 -0
  171. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +30 -9
  172. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/operation_parser.js +3 -1
  173. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +6 -2
  174. package/dist/cjs/tools/openapi_tool/openapi_toolset.js +2 -0
  175. package/dist/cjs/tools/openapi_tool/rest_api_tool.js +39 -23
  176. package/dist/cjs/tools/preload_memory_tool.js +6 -3
  177. package/dist/cjs/tools/request_input_tool.js +6 -4
  178. package/dist/cjs/tools/resume_inputs.js +27 -0
  179. package/dist/cjs/tools/retrieval/base_retrieval_tool.js +60 -0
  180. package/dist/cjs/tools/retrieval/files_retrieval.js +95 -0
  181. package/dist/cjs/tools/retrieval/llama_index_retrieval.js +57 -0
  182. package/dist/cjs/tools/skill/list_skills_tool.js +2 -0
  183. package/dist/cjs/tools/skill/load_skill_resource_tool.js +2 -0
  184. package/dist/cjs/tools/skill/load_skill_tool.js +4 -1
  185. package/dist/cjs/tools/skill/run_skill_inline_script_tool.js +8 -2
  186. package/dist/cjs/tools/skill/run_skill_script_tool.js +10 -2
  187. package/dist/cjs/tools/skill/search_skills_tool.js +2 -0
  188. package/dist/cjs/tools/skill/skill_toolset.js +35 -0
  189. package/dist/cjs/tools/tool_confirmation.js +26 -3
  190. package/dist/cjs/tools/url_context_tool.js +7 -7
  191. package/dist/cjs/tools/vertex_ai_search_tool.js +8 -9
  192. package/dist/cjs/tools/vertex_rag_retrieval_tool.js +7 -11
  193. package/dist/cjs/utils/async_hooks_shim.js +5 -2
  194. package/dist/cjs/utils/async_queue.js +45 -18
  195. package/dist/cjs/utils/branch_trie.js +2 -0
  196. package/dist/cjs/utils/case_utils.js +2 -0
  197. package/dist/cjs/utils/client_labels.js +5 -0
  198. package/dist/cjs/utils/crypto_shim.js +18 -0
  199. package/dist/cjs/utils/deprecated.js +68 -0
  200. package/dist/cjs/utils/env_aware_utils.js +41 -0
  201. package/dist/cjs/utils/error_utils.js +8 -0
  202. package/dist/cjs/utils/experimental.js +9 -2
  203. package/dist/cjs/utils/failover_utils.js +3 -0
  204. package/dist/cjs/utils/file_extension_utils.js +3 -0
  205. package/dist/cjs/utils/file_utils.js +7 -2
  206. package/dist/cjs/utils/gemini_schema_util.js +6 -8
  207. package/dist/cjs/utils/genai_schema_to_json.js +107 -0
  208. package/dist/cjs/utils/live_connection_utils.js +5 -2
  209. package/dist/cjs/utils/logger.js +28 -54
  210. package/dist/cjs/utils/logger_browser.js +86 -0
  211. package/dist/cjs/utils/logger_node.js +119 -0
  212. package/dist/cjs/utils/model_name.js +8 -0
  213. package/dist/cjs/utils/object_notation_utils.js +7 -3
  214. package/dist/cjs/utils/optional_peer.js +68 -0
  215. package/dist/cjs/utils/output_schema_utils.js +2 -0
  216. package/dist/cjs/utils/partial_copy.js +2 -0
  217. package/dist/cjs/utils/redact_inline_data.js +46 -0
  218. package/dist/cjs/utils/redact_uri.js +80 -0
  219. package/dist/cjs/utils/schema.js +178 -0
  220. package/dist/cjs/utils/simple_zod_to_json.js +17 -4
  221. package/dist/cjs/utils/ssrf_guard.js +262 -0
  222. package/dist/cjs/utils/streaming_utils.js +14 -6
  223. package/dist/cjs/utils/task.js +7 -4
  224. package/dist/cjs/utils/variant_utils.js +3 -1
  225. package/dist/cjs/utils/vertex_ai_utils.js +3 -1
  226. package/dist/cjs/version.js +1 -1
  227. package/dist/cjs/workflow/base_node.js +211 -0
  228. package/dist/cjs/workflow/branch_path.js +108 -0
  229. package/dist/cjs/workflow/dynamic_node_scheduler.js +220 -0
  230. package/dist/cjs/workflow/errors.js +178 -0
  231. package/dist/cjs/workflow/graph.js +158 -0
  232. package/dist/cjs/workflow/index.js +131 -0
  233. package/dist/cjs/workflow/node.js +65 -0
  234. package/dist/cjs/workflow/node_builders.js +68 -0
  235. package/dist/cjs/workflow/node_context.js +246 -0
  236. package/dist/cjs/workflow/node_error_event.js +86 -0
  237. package/dist/cjs/workflow/node_runner.js +459 -0
  238. package/dist/cjs/workflow/node_state.js +57 -0
  239. package/dist/cjs/workflow/node_status.js +48 -0
  240. package/dist/cjs/workflow/nodes/function_node.js +195 -0
  241. package/dist/cjs/workflow/nodes/join_node.js +56 -0
  242. package/dist/cjs/workflow/nodes/node_tool.js +147 -0
  243. package/dist/cjs/workflow/nodes/parallel_worker.js +129 -0
  244. package/dist/cjs/workflow/nodes/tool_node.js +117 -0
  245. package/dist/cjs/workflow/request_input.js +64 -0
  246. package/dist/cjs/workflow/retry_config.js +71 -0
  247. package/dist/cjs/workflow/run_llm_agent_as_node.js +192 -0
  248. package/dist/cjs/workflow/run_node_as_invocation.js +165 -0
  249. package/dist/cjs/workflow/schedule_dynamic_node.js +53 -0
  250. package/dist/cjs/workflow/trigger.js +27 -0
  251. package/dist/cjs/workflow/utils/graph_parser.js +212 -0
  252. package/dist/cjs/workflow/utils/graph_validation.js +216 -0
  253. package/dist/cjs/workflow/utils/hitl_utils.js +252 -0
  254. package/dist/cjs/workflow/utils/rehydration_utils.js +373 -0
  255. package/dist/cjs/workflow/utils/retry_utils.js +112 -0
  256. package/dist/cjs/workflow/utils/workflow_graph_utils.js +144 -0
  257. package/dist/cjs/workflow/workflow.js +509 -0
  258. package/dist/esm/a2a/a2a_event.js +18 -27
  259. package/dist/esm/a2a/a2a_remote_agent.js +16 -7
  260. package/dist/esm/a2a/a2a_remote_agent_run_processor.js +8 -3
  261. package/dist/esm/a2a/a2a_remote_agent_utils.js +110 -2
  262. package/dist/esm/a2a/agent_card.js +96 -8
  263. package/dist/esm/a2a/agent_executor.js +36 -19
  264. package/dist/esm/a2a/agent_to_a2a.js +52 -17
  265. package/dist/esm/a2a/auth.js +4 -0
  266. package/dist/esm/a2a/event_converter_utils.js +11 -0
  267. package/dist/esm/a2a/event_processor_utils.js +74 -35
  268. package/dist/esm/a2a/executor_context.js +7 -2
  269. package/dist/esm/a2a/index.js +26 -0
  270. package/dist/esm/a2a/metadata_converter_utils.js +6 -0
  271. package/dist/esm/a2a/part_converter_utils.js +13 -0
  272. package/dist/esm/a2a/request_metadata.js +68 -0
  273. package/dist/esm/agents/active_streaming_tool.js +6 -2
  274. package/dist/esm/agents/base_agent.js +56 -17
  275. package/dist/esm/agents/context.js +13 -2
  276. package/dist/esm/agents/framework_function_calls.js +34 -0
  277. package/dist/esm/agents/functions.js +191 -58
  278. package/dist/esm/agents/instructions.js +52 -12
  279. package/dist/esm/agents/invocation_context.js +42 -7
  280. package/dist/esm/agents/live_request_queue.js +30 -5
  281. package/dist/esm/agents/llm_agent.js +542 -50
  282. package/dist/esm/agents/loop_agent.js +22 -3
  283. package/dist/esm/agents/parallel_agent.js +24 -3
  284. package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +33 -8
  285. package/dist/esm/agents/processors/base_llm_processor.js +10 -4
  286. package/dist/esm/agents/processors/basic_llm_request_processor.js +7 -3
  287. package/dist/esm/agents/processors/code_execution_request_processor.js +21 -7
  288. package/dist/esm/agents/processors/content_processor_utils.js +88 -16
  289. package/dist/esm/agents/processors/content_request_processor.js +14 -5
  290. package/dist/esm/agents/processors/context_compactor_request_processor.js +6 -2
  291. package/dist/esm/agents/processors/identity_llm_request_processor.js +13 -4
  292. package/dist/esm/agents/processors/instructions_llm_request_processor.js +6 -2
  293. package/dist/esm/agents/processors/interactions_request_processor.js +6 -2
  294. package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +325 -93
  295. package/dist/esm/agents/processors/request_input_llm_request_processor.js +193 -0
  296. package/dist/esm/agents/processors/tool_filter_request_processor.js +6 -2
  297. package/dist/esm/agents/readonly_context.js +14 -3
  298. package/dist/esm/agents/routed_agent.js +7 -15
  299. package/dist/esm/agents/run_config.js +13 -0
  300. package/dist/esm/agents/sequential_agent.js +23 -4
  301. package/dist/esm/agents/user_input_request.js +120 -0
  302. package/dist/esm/apps/app.js +15 -12
  303. package/dist/esm/apps/resumability_config.js +3 -0
  304. package/dist/esm/artifacts/file_artifact_service.js +23 -4
  305. package/dist/esm/artifacts/gcs_artifact_service.js +58 -11
  306. package/dist/esm/artifacts/in_memory_artifact_service.js +10 -2
  307. package/dist/esm/artifacts/registry.js +7 -1
  308. package/dist/esm/artifacts/scoped_artifact_service.js +15 -2
  309. package/dist/esm/artifacts/session_artifact_service.js +12 -0
  310. package/dist/esm/auth/auth_handler.js +53 -10
  311. package/dist/esm/auth/auth_preprocessor.js +50 -41
  312. package/dist/esm/auth/auth_provider_registry.js +6 -2
  313. package/dist/esm/auth/auth_schemes.js +3 -0
  314. package/dist/esm/auth/credential_response_binding.js +74 -0
  315. package/dist/esm/auth/credential_service/in_memory_credential_service.js +6 -2
  316. package/dist/esm/auth/credential_service/session_state_credential_service.js +6 -2
  317. package/dist/esm/auth/exchanger/base_credential_exchanger.js +6 -2
  318. package/dist/esm/auth/exchanger/credential_exchanger_registry.js +6 -2
  319. package/dist/esm/auth/oauth2/oauth2_credential_exchanger.js +9 -2
  320. package/dist/esm/auth/oauth2/oauth2_credential_refresher.js +7 -3
  321. package/dist/esm/auth/oauth2/oauth2_discovery.js +8 -2
  322. package/dist/esm/auth/oauth2/oauth2_utils.js +22 -2
  323. package/dist/esm/auth/refresher/base_credential_refresher.js +6 -2
  324. package/dist/esm/auth/refresher/credential_refresher_registry.js +6 -2
  325. package/dist/esm/code_executors/agent_engine_sandbox_code_executor.js +3 -0
  326. package/dist/esm/code_executors/base_code_executor.js +8 -3
  327. package/dist/esm/code_executors/built_in_code_executor.js +8 -3
  328. package/dist/esm/code_executors/code_execution_utils.js +9 -2
  329. package/dist/esm/code_executors/code_executor_context.js +6 -2
  330. package/dist/esm/code_executors/container_code_executor.js +155 -0
  331. package/dist/esm/code_executors/docker_container.js +265 -0
  332. package/dist/esm/code_executors/unsafe_local_code_executor.js +20 -8
  333. package/dist/esm/common.js +181 -41
  334. package/dist/esm/context/agent_controlled_context_compactor.js +16 -7
  335. package/dist/esm/context/anchored_context_compactor.js +51 -21
  336. package/dist/esm/context/compaction_utils.js +17 -5
  337. package/dist/esm/context/summarizers/llm_summarizer.js +6 -2
  338. package/dist/esm/context/token_based_context_compactor.js +20 -5
  339. package/dist/esm/context/trajectory_thought_pruning_compactor.js +23 -12
  340. package/dist/esm/context/truncating_context_compactor.js +23 -7
  341. package/dist/esm/environment/base_environment.js +71 -0
  342. package/dist/esm/environment/local_environment.js +150 -0
  343. package/dist/esm/errors/already_exists_error.js +23 -0
  344. package/dist/esm/errors/input_validation_error.js +23 -0
  345. package/dist/esm/errors/not_found_error.js +23 -0
  346. package/dist/esm/errors/session_not_found_error.js +23 -0
  347. package/dist/esm/errors/tool_execution_error.js +40 -0
  348. package/dist/esm/events/compacted_event.js +5 -0
  349. package/dist/esm/events/event.js +38 -3
  350. package/dist/esm/events/event_actions.js +12 -0
  351. package/dist/esm/events/structured_events.js +3 -0
  352. package/dist/esm/examples/base_example_provider.js +8 -3
  353. package/dist/esm/examples/example_util.js +4 -0
  354. package/dist/esm/features/feature_registry.js +8 -0
  355. package/dist/esm/index.js +41 -15
  356. package/dist/esm/index_web.js +2 -0
  357. package/dist/esm/integrations/agent_registry/agent_registry.js +11 -6
  358. package/dist/esm/integrations/agent_registry/agent_registry_mcp_toolset.js +6 -2
  359. package/dist/esm/integrations/agent_registry/helpers.js +4 -0
  360. package/dist/esm/memory/in_memory_memory_service.js +9 -2
  361. package/dist/esm/memory/rag_memory_transcript.js +106 -0
  362. package/dist/esm/memory/vertex_ai_memory_bank_service.js +20 -4
  363. package/dist/esm/memory/vertex_ai_rag_api.js +93 -0
  364. package/dist/esm/memory/vertex_ai_rag_memory_service.js +208 -0
  365. package/dist/esm/models/apigee_llm.js +11 -4
  366. package/dist/esm/models/base_llm.js +9 -4
  367. package/dist/esm/models/chrome_prompt_llm.js +285 -0
  368. package/dist/esm/models/chrome_prompt_utils.js +192 -0
  369. package/dist/esm/models/gemini_llm_connection.js +6 -2
  370. package/dist/esm/models/google_llm.js +35 -17
  371. package/dist/esm/models/interactions_utils.js +19 -3
  372. package/dist/esm/models/llm_request.js +5 -0
  373. package/dist/esm/models/llm_response.js +3 -0
  374. package/dist/esm/models/registry.js +9 -2
  375. package/dist/esm/models/routed_llm.js +4 -14
  376. package/dist/esm/plugins/_reflect_retry_utils.js +111 -0
  377. package/dist/esm/plugins/base_plugin.js +39 -5
  378. package/dist/esm/plugins/global_instruction_plugin.js +6 -2
  379. package/dist/esm/plugins/logging_plugin.js +14 -8
  380. package/dist/esm/plugins/plugin_manager.js +38 -2
  381. package/dist/esm/plugins/reflect_retry_model_plugin.js +250 -0
  382. package/dist/esm/plugins/reflect_retry_tool_plugin.js +254 -0
  383. package/dist/esm/plugins/security_plugin.js +14 -6
  384. package/dist/esm/runner/in_memory_runner.js +6 -2
  385. package/dist/esm/runner/runner.js +249 -46
  386. package/dist/esm/sessions/base_session_service.js +14 -2
  387. package/dist/esm/sessions/database_session_service.js +65 -27
  388. package/dist/esm/sessions/db/operations.js +259 -24
  389. package/dist/esm/sessions/db/schema.js +116 -157
  390. package/dist/esm/sessions/in_memory_session_service.js +23 -14
  391. package/dist/esm/sessions/registry.js +10 -2
  392. package/dist/esm/sessions/session.js +3 -0
  393. package/dist/esm/sessions/state.js +78 -7
  394. package/dist/esm/sessions/state_write_order.js +74 -0
  395. package/dist/esm/sessions/vertex_ai_session_service.js +111 -16
  396. package/dist/esm/skills/gcp_skill_registry.js +2 -0
  397. package/dist/esm/skills/loader.js +23 -10
  398. package/dist/esm/skills/prompt.js +4 -0
  399. package/dist/esm/telemetry/google_cloud.js +54 -9
  400. package/dist/esm/telemetry/setup.js +7 -1
  401. package/dist/esm/telemetry/tracing.js +70 -5
  402. package/dist/esm/tools/agent_tool.js +11 -7
  403. package/dist/esm/tools/base_tool.js +36 -5
  404. package/dist/esm/tools/base_toolset.js +11 -6
  405. package/dist/esm/tools/built_in_tool.js +51 -0
  406. package/dist/esm/tools/consolidate_context_tool.js +6 -2
  407. package/dist/esm/tools/enterprise_web_search_tool.js +9 -7
  408. package/dist/esm/tools/example_tool.js +6 -2
  409. package/dist/esm/tools/exit_loop_tool.js +6 -2
  410. package/dist/esm/tools/finish_task_tool.js +92 -0
  411. package/dist/esm/tools/forwarding_artifact_service.js +24 -15
  412. package/dist/esm/tools/function_tool.js +80 -11
  413. package/dist/esm/tools/get_user_choice_tool.js +4 -2
  414. package/dist/esm/tools/google_maps_grounding_tool.js +9 -7
  415. package/dist/esm/tools/google_search_tool.js +8 -7
  416. package/dist/esm/tools/load_artifacts_tool.js +57 -26
  417. package/dist/esm/tools/load_memory_tool.js +6 -2
  418. package/dist/esm/tools/load_web_page.js +19 -158
  419. package/dist/esm/tools/long_running_tool.js +6 -2
  420. package/dist/{web/context/summarizers/base_summarizer.js → esm/tools/mcp/index.js} +4 -0
  421. package/dist/esm/tools/mcp/load_mcp_resource_tool.js +40 -7
  422. package/dist/esm/tools/mcp/mcp_session_manager.js +45 -9
  423. package/dist/esm/tools/mcp/mcp_tool.js +6 -2
  424. package/dist/esm/tools/mcp/mcp_toolset.js +6 -2
  425. package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +18 -2
  426. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +2 -0
  427. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +2 -0
  428. package/dist/esm/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +30 -9
  429. package/dist/esm/tools/openapi_tool/openapi_spec_parser/operation_parser.js +3 -1
  430. package/dist/esm/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +6 -2
  431. package/dist/esm/tools/openapi_tool/openapi_toolset.js +2 -0
  432. package/dist/esm/tools/openapi_tool/rest_api_tool.js +39 -23
  433. package/dist/esm/tools/preload_memory_tool.js +7 -3
  434. package/dist/esm/tools/request_input_tool.js +7 -4
  435. package/dist/esm/tools/retrieval/base_retrieval_tool.js +33 -0
  436. package/dist/esm/tools/retrieval/files_retrieval.js +81 -0
  437. package/dist/esm/tools/retrieval/llama_index_retrieval.js +30 -0
  438. package/dist/esm/tools/skill/list_skills_tool.js +2 -0
  439. package/dist/esm/tools/skill/load_skill_resource_tool.js +2 -0
  440. package/dist/esm/tools/skill/load_skill_tool.js +4 -1
  441. package/dist/esm/tools/skill/run_skill_inline_script_tool.js +8 -2
  442. package/dist/esm/tools/skill/run_skill_script_tool.js +10 -2
  443. package/dist/esm/tools/skill/search_skills_tool.js +2 -0
  444. package/dist/esm/tools/skill/skill_toolset.js +25 -0
  445. package/dist/esm/tools/tool_confirmation.js +24 -2
  446. package/dist/esm/tools/url_context_tool.js +8 -7
  447. package/dist/esm/tools/vertex_ai_search_tool.js +9 -9
  448. package/dist/esm/tools/vertex_rag_retrieval_tool.js +8 -11
  449. package/dist/esm/utils/async_hooks_shim.js +6 -2
  450. package/dist/esm/utils/async_queue.js +46 -18
  451. package/dist/esm/utils/branch_trie.js +3 -0
  452. package/dist/esm/utils/case_utils.js +3 -0
  453. package/dist/esm/utils/client_labels.js +6 -0
  454. package/dist/esm/utils/crypto_shim.js +17 -0
  455. package/dist/esm/utils/deprecated.js +40 -0
  456. package/dist/esm/utils/env_aware_utils.js +41 -0
  457. package/dist/esm/utils/error_utils.js +9 -0
  458. package/dist/esm/utils/experimental.js +10 -2
  459. package/dist/esm/utils/failover_utils.js +4 -0
  460. package/dist/esm/utils/file_extension_utils.js +4 -0
  461. package/dist/esm/utils/file_utils.js +8 -2
  462. package/dist/esm/utils/gemini_schema_util.js +7 -8
  463. package/dist/esm/utils/genai_schema_to_json.js +80 -0
  464. package/dist/esm/utils/live_connection_utils.js +6 -2
  465. package/dist/esm/utils/logger.js +28 -44
  466. package/dist/esm/utils/logger_browser.js +58 -0
  467. package/dist/esm/utils/logger_node.js +81 -0
  468. package/dist/esm/utils/model_name.js +9 -0
  469. package/dist/esm/utils/object_notation_utils.js +8 -3
  470. package/dist/esm/utils/optional_peer.js +41 -0
  471. package/dist/esm/utils/output_schema_utils.js +3 -0
  472. package/dist/esm/utils/partial_copy.js +3 -0
  473. package/dist/esm/utils/redact_inline_data.js +19 -0
  474. package/dist/esm/utils/redact_uri.js +53 -0
  475. package/dist/esm/utils/schema.js +152 -0
  476. package/dist/esm/utils/simple_zod_to_json.js +15 -4
  477. package/dist/esm/utils/ssrf_guard.js +230 -0
  478. package/dist/esm/utils/streaming_utils.js +15 -6
  479. package/dist/esm/utils/task.js +8 -4
  480. package/dist/esm/utils/variant_utils.js +5 -2
  481. package/dist/esm/utils/vertex_ai_utils.js +5 -2
  482. package/dist/esm/version.js +1 -1
  483. package/dist/esm/workflow/base_node.js +182 -0
  484. package/dist/esm/workflow/branch_path.js +77 -0
  485. package/dist/esm/workflow/dynamic_node_scheduler.js +202 -0
  486. package/dist/esm/workflow/errors.js +140 -0
  487. package/dist/esm/workflow/graph.js +127 -0
  488. package/dist/esm/workflow/index.js +80 -0
  489. package/dist/esm/workflow/node.js +38 -0
  490. package/dist/esm/workflow/node_builders.js +40 -0
  491. package/dist/esm/workflow/node_context.js +219 -0
  492. package/dist/esm/workflow/node_error_event.js +57 -0
  493. package/dist/esm/workflow/node_runner.js +439 -0
  494. package/dist/esm/workflow/node_state.js +29 -0
  495. package/dist/esm/workflow/node_status.js +20 -0
  496. package/dist/esm/workflow/nodes/function_node.js +172 -0
  497. package/dist/esm/workflow/nodes/join_node.js +29 -0
  498. package/dist/esm/workflow/nodes/node_tool.js +122 -0
  499. package/dist/esm/workflow/nodes/parallel_worker.js +102 -0
  500. package/dist/esm/workflow/nodes/tool_node.js +90 -0
  501. package/dist/esm/workflow/request_input.js +36 -0
  502. package/dist/esm/workflow/retry_config.js +43 -0
  503. package/dist/esm/workflow/run_llm_agent_as_node.js +172 -0
  504. package/dist/esm/workflow/run_node_as_invocation.js +139 -0
  505. package/dist/esm/workflow/schedule_dynamic_node.js +26 -0
  506. package/dist/esm/workflow/utils/graph_parser.js +188 -0
  507. package/dist/esm/workflow/utils/graph_validation.js +189 -0
  508. package/dist/esm/workflow/utils/hitl_utils.js +222 -0
  509. package/dist/esm/workflow/utils/rehydration_utils.js +342 -0
  510. package/dist/esm/workflow/utils/retry_utils.js +82 -0
  511. package/dist/esm/workflow/utils/workflow_graph_utils.js +115 -0
  512. package/dist/esm/workflow/workflow.js +493 -0
  513. package/dist/types/a2a/a2a_event.d.ts +7 -10
  514. package/dist/types/a2a/a2a_remote_agent.d.ts +5 -0
  515. package/dist/types/a2a/a2a_remote_agent_utils.d.ts +25 -0
  516. package/dist/types/a2a/agent_card.d.ts +12 -3
  517. package/dist/types/a2a/agent_executor.d.ts +1 -1
  518. package/dist/types/a2a/agent_to_a2a.d.ts +6 -4
  519. package/dist/types/a2a/auth.d.ts +5 -1
  520. package/dist/types/a2a/event_processor_utils.d.ts +17 -2
  521. package/dist/types/a2a/executor_context.d.ts +7 -1
  522. package/dist/types/a2a/index.d.ts +18 -0
  523. package/dist/types/a2a/request_metadata.d.ts +22 -0
  524. package/dist/types/agents/base_agent.d.ts +56 -25
  525. package/dist/types/agents/context.d.ts +8 -0
  526. package/dist/types/agents/framework_function_calls.d.ts +26 -0
  527. package/dist/types/agents/functions.d.ts +73 -8
  528. package/dist/types/agents/invocation_context.d.ts +106 -6
  529. package/dist/types/agents/live_request_queue.d.ts +7 -1
  530. package/dist/types/agents/llm_agent.d.ts +86 -8
  531. package/dist/types/agents/loop_agent.d.ts +5 -0
  532. package/dist/types/agents/parallel_agent.d.ts +5 -0
  533. package/dist/types/agents/processors/agent_transfer_llm_request_processor.d.ts +16 -1
  534. package/dist/types/agents/processors/content_processor_utils.d.ts +3 -2
  535. package/dist/types/agents/processors/identity_llm_request_processor.d.ts +4 -1
  536. package/dist/types/agents/processors/request_input_llm_request_processor.d.ts +21 -0
  537. package/dist/types/agents/readonly_context.d.ts +4 -0
  538. package/dist/types/agents/run_config.d.ts +72 -4
  539. package/dist/types/agents/sequential_agent.d.ts +5 -0
  540. package/dist/types/agents/user_input_request.d.ts +71 -0
  541. package/dist/types/apps/app.d.ts +8 -3
  542. package/dist/types/artifacts/gcs_artifact_service.d.ts +9 -2
  543. package/dist/types/artifacts/scoped_artifact_service.d.ts +13 -0
  544. package/dist/types/artifacts/session_artifact_service.d.ts +8 -1
  545. package/dist/types/auth/auth_credential.d.ts +13 -8
  546. package/dist/types/auth/auth_handler.d.ts +12 -1
  547. package/dist/types/auth/credential_response_binding.d.ts +24 -0
  548. package/dist/types/auth/oauth2/oauth2_credential_refresher.d.ts +1 -1
  549. package/dist/types/auth/oauth2/oauth2_utils.d.ts +9 -0
  550. package/dist/types/auth/refresher/base_credential_refresher.d.ts +1 -1
  551. package/dist/types/code_executors/code_execution_utils.d.ts +1 -1
  552. package/dist/types/code_executors/container_code_executor.d.ts +89 -0
  553. package/dist/types/code_executors/docker_container.d.ts +79 -0
  554. package/dist/types/common.d.ts +39 -27
  555. package/dist/types/context/compaction_utils.d.ts +9 -1
  556. package/dist/types/environment/base_environment.d.ts +101 -0
  557. package/dist/types/environment/local_environment.d.ts +72 -0
  558. package/dist/types/errors/already_exists_error.d.ts +14 -0
  559. package/dist/types/errors/input_validation_error.d.ts +14 -0
  560. package/dist/types/errors/not_found_error.d.ts +14 -0
  561. package/dist/types/errors/session_not_found_error.d.ts +14 -0
  562. package/dist/types/errors/tool_execution_error.d.ts +36 -0
  563. package/dist/types/events/event.d.ts +94 -1
  564. package/dist/types/events/event_actions.d.ts +23 -0
  565. package/dist/types/index.d.ts +27 -14
  566. package/dist/types/memory/rag_memory_transcript.d.ts +55 -0
  567. package/dist/types/memory/vertex_ai_rag_api.d.ts +89 -0
  568. package/dist/types/memory/vertex_ai_rag_memory_service.d.ts +68 -0
  569. package/dist/types/models/apigee_llm.d.ts +4 -4
  570. package/dist/types/models/chrome_prompt_llm.d.ts +210 -0
  571. package/dist/types/models/chrome_prompt_utils.d.ts +68 -0
  572. package/dist/types/models/google_llm.d.ts +10 -4
  573. package/dist/types/models/registry.d.ts +3 -2
  574. package/dist/types/plugins/_reflect_retry_utils.d.ts +72 -0
  575. package/dist/types/plugins/base_plugin.d.ts +47 -10
  576. package/dist/types/plugins/logging_plugin.d.ts +3 -2
  577. package/dist/types/plugins/plugin_manager.d.ts +20 -0
  578. package/dist/types/plugins/reflect_retry_model_plugin.d.ts +132 -0
  579. package/dist/types/plugins/reflect_retry_tool_plugin.d.ts +187 -0
  580. package/dist/types/plugins/security_plugin.d.ts +4 -2
  581. package/dist/types/runner/in_memory_runner.d.ts +2 -2
  582. package/dist/types/runner/runner.d.ts +64 -9
  583. package/dist/types/sessions/base_session_service.d.ts +2 -2
  584. package/dist/types/sessions/database_session_service.d.ts +1 -1
  585. package/dist/types/sessions/db/operations.d.ts +13 -1
  586. package/dist/types/sessions/db/schema.d.ts +23 -9
  587. package/dist/types/sessions/state.d.ts +34 -1
  588. package/dist/types/sessions/state_write_order.d.ts +39 -0
  589. package/dist/types/telemetry/tracing.d.ts +15 -0
  590. package/dist/types/tools/base_tool.d.ts +26 -0
  591. package/dist/types/tools/base_toolset.d.ts +3 -4
  592. package/dist/types/tools/built_in_tool.d.ts +41 -0
  593. package/dist/types/tools/enterprise_web_search_tool.d.ts +4 -4
  594. package/dist/types/tools/finish_task_tool.d.ts +47 -0
  595. package/dist/types/tools/forwarding_artifact_service.d.ts +23 -10
  596. package/dist/types/tools/function_tool.d.ts +88 -10
  597. package/dist/types/tools/google_maps_grounding_tool.d.ts +4 -4
  598. package/dist/types/tools/google_search_tool.d.ts +4 -4
  599. package/dist/types/tools/long_running_tool.d.ts +1 -1
  600. package/dist/types/tools/mcp/index.d.ts +13 -0
  601. package/dist/types/tools/mcp/mcp_session_manager.d.ts +3 -3
  602. package/dist/types/tools/mcp/mcp_tool.d.ts +1 -1
  603. package/dist/types/tools/mcp/mcp_toolset.d.ts +12 -11
  604. package/dist/types/tools/openapi_tool/auth/auth_helpers.d.ts +5 -0
  605. package/dist/types/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.d.ts +0 -1
  606. package/dist/types/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.d.ts +0 -1
  607. package/dist/types/tools/preload_memory_tool.d.ts +1 -1
  608. package/dist/types/tools/request_input_tool.d.ts +6 -1
  609. package/dist/types/tools/resume_inputs.d.ts +25 -0
  610. package/dist/types/tools/retrieval/base_retrieval_tool.d.ts +21 -0
  611. package/dist/types/tools/retrieval/files_retrieval.d.ts +50 -0
  612. package/dist/types/tools/retrieval/llama_index_retrieval.d.ts +62 -0
  613. package/dist/types/tools/skill/skill_toolset.d.ts +26 -0
  614. package/dist/types/tools/tool_confirmation.d.ts +47 -0
  615. package/dist/types/tools/url_context_tool.d.ts +4 -4
  616. package/dist/types/tools/vertex_ai_search_tool.d.ts +4 -4
  617. package/dist/types/tools/vertex_rag_retrieval_tool.d.ts +13 -12
  618. package/dist/types/utils/async_queue.d.ts +34 -2
  619. package/dist/types/utils/crypto_shim.d.ts +16 -0
  620. package/dist/types/utils/deprecated.d.ts +21 -0
  621. package/dist/types/utils/env_aware_utils.d.ts +16 -0
  622. package/dist/types/utils/file_utils.d.ts +10 -2
  623. package/dist/types/utils/gemini_schema_util.d.ts +5 -7
  624. package/dist/types/utils/genai_schema_to_json.d.ts +25 -0
  625. package/dist/types/utils/logger.d.ts +23 -1
  626. package/dist/types/utils/logger_browser.d.ts +28 -0
  627. package/dist/types/utils/logger_node.d.ts +20 -0
  628. package/dist/types/utils/optional_peer.d.ts +36 -0
  629. package/dist/types/utils/output_schema_utils.d.ts +3 -3
  630. package/dist/types/utils/redact_inline_data.d.ts +16 -0
  631. package/dist/types/utils/redact_uri.d.ts +32 -0
  632. package/dist/types/utils/schema.d.ts +73 -0
  633. package/dist/types/utils/simple_zod_to_json.d.ts +8 -0
  634. package/dist/types/utils/ssrf_guard.d.ts +32 -0
  635. package/dist/types/utils/vertex_ai_utils.d.ts +4 -0
  636. package/dist/types/version.d.ts +1 -1
  637. package/dist/types/workflow/base_node.d.ts +142 -0
  638. package/dist/types/workflow/branch_path.d.ts +40 -0
  639. package/dist/types/workflow/dynamic_node_scheduler.d.ts +64 -0
  640. package/dist/types/workflow/errors.d.ts +132 -0
  641. package/dist/types/workflow/graph.d.ts +127 -0
  642. package/dist/types/workflow/index.d.ts +46 -0
  643. package/dist/types/workflow/node.d.ts +48 -0
  644. package/dist/types/workflow/node_builders.d.ts +25 -0
  645. package/dist/types/workflow/node_context.d.ts +208 -0
  646. package/dist/types/workflow/node_error_event.d.ts +18 -0
  647. package/dist/types/workflow/node_runner.d.ts +82 -0
  648. package/dist/types/workflow/node_state.d.ts +47 -0
  649. package/dist/types/workflow/node_status.d.ts +28 -0
  650. package/dist/types/workflow/nodes/function_node.d.ts +78 -0
  651. package/dist/types/workflow/nodes/join_node.d.ts +24 -0
  652. package/dist/types/workflow/nodes/node_tool.d.ts +53 -0
  653. package/dist/types/workflow/nodes/parallel_worker.d.ts +55 -0
  654. package/dist/types/workflow/nodes/tool_node.d.ts +34 -0
  655. package/dist/types/workflow/request_input.d.ts +73 -0
  656. package/dist/types/workflow/retry_config.d.ts +84 -0
  657. package/dist/types/workflow/run_llm_agent_as_node.d.ts +28 -0
  658. package/dist/types/workflow/run_node_as_invocation.d.ts +72 -0
  659. package/dist/types/workflow/schedule_dynamic_node.d.ts +66 -0
  660. package/dist/types/workflow/trigger.d.ts +22 -0
  661. package/dist/types/workflow/utils/graph_parser.d.ts +8 -0
  662. package/dist/types/workflow/utils/graph_validation.d.ts +18 -0
  663. package/dist/types/workflow/utils/hitl_utils.d.ts +92 -0
  664. package/dist/types/workflow/utils/rehydration_utils.d.ts +132 -0
  665. package/dist/types/workflow/utils/retry_utils.d.ts +54 -0
  666. package/dist/types/workflow/utils/workflow_graph_utils.d.ts +76 -0
  667. package/dist/types/workflow/workflow.d.ts +115 -0
  668. package/dist/web/index_web.js +304 -3
  669. package/dist/web/index_web.js.map +7 -0
  670. package/package.json +97 -20
  671. package/dist/web/a2a/a2a_event.js +0 -271
  672. package/dist/web/a2a/a2a_remote_agent.js +0 -196
  673. package/dist/web/a2a/a2a_remote_agent_run_processor.js +0 -184
  674. package/dist/web/a2a/a2a_remote_agent_utils.js +0 -133
  675. package/dist/web/a2a/agent_card.js +0 -342
  676. package/dist/web/a2a/agent_executor.js +0 -218
  677. package/dist/web/a2a/agent_to_a2a.js +0 -97
  678. package/dist/web/a2a/auth.js +0 -37
  679. package/dist/web/a2a/event_converter_utils.js +0 -232
  680. package/dist/web/a2a/event_processor_utils.js +0 -170
  681. package/dist/web/a2a/executor_context.js +0 -25
  682. package/dist/web/a2a/metadata_converter_utils.js +0 -110
  683. package/dist/web/a2a/part_converter_utils.js +0 -188
  684. package/dist/web/agents/active_streaming_tool.js +0 -21
  685. package/dist/web/agents/base_agent.js +0 -423
  686. package/dist/web/agents/context.js +0 -142
  687. package/dist/web/agents/functions.js +0 -433
  688. package/dist/web/agents/instructions.js +0 -148
  689. package/dist/web/agents/invocation_context.js +0 -77
  690. package/dist/web/agents/live_request_queue.js +0 -126
  691. package/dist/web/agents/llm_agent.js +0 -936
  692. package/dist/web/agents/loop_agent.js +0 -112
  693. package/dist/web/agents/parallel_agent.js +0 -101
  694. package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +0 -109
  695. package/dist/web/agents/processors/base_llm_processor.js +0 -15
  696. package/dist/web/agents/processors/basic_llm_request_processor.js +0 -81
  697. package/dist/web/agents/processors/code_execution_request_processor.js +0 -367
  698. package/dist/web/agents/processors/content_processor_utils.js +0 -361
  699. package/dist/web/agents/processors/content_request_processor.js +0 -67
  700. package/dist/web/agents/processors/context_compactor_request_processor.js +0 -74
  701. package/dist/web/agents/processors/identity_llm_request_processor.js +0 -50
  702. package/dist/web/agents/processors/instructions_llm_request_processor.js +0 -81
  703. package/dist/web/agents/processors/interactions_request_processor.js +0 -52
  704. package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +0 -168
  705. package/dist/web/agents/processors/tool_filter_request_processor.js +0 -68
  706. package/dist/web/agents/readonly_context.js +0 -55
  707. package/dist/web/agents/routed_agent.js +0 -169
  708. package/dist/web/agents/run_config.js +0 -62
  709. package/dist/web/agents/sequential_agent.js +0 -122
  710. package/dist/web/agents/transcription_entry.js +0 -7
  711. package/dist/web/apps/app.js +0 -49
  712. package/dist/web/apps/resumability_config.js +0 -31
  713. package/dist/web/artifacts/base_artifact_service.js +0 -7
  714. package/dist/web/artifacts/file_artifact_service.js +0 -548
  715. package/dist/web/artifacts/gcs_artifact_service.js +0 -253
  716. package/dist/web/artifacts/in_memory_artifact_service.js +0 -164
  717. package/dist/web/artifacts/registry.js +0 -30
  718. package/dist/web/artifacts/scoped_artifact_service.js +0 -86
  719. package/dist/web/auth/auth_credential.js +0 -18
  720. package/dist/web/auth/auth_handler.js +0 -148
  721. package/dist/web/auth/auth_preprocessor.js +0 -175
  722. package/dist/web/auth/auth_provider_registry.js +0 -33
  723. package/dist/web/auth/auth_schemes.js +0 -33
  724. package/dist/web/auth/auth_tool.js +0 -7
  725. package/dist/web/auth/credential_service/base_credential_service.js +0 -7
  726. package/dist/web/auth/credential_service/in_memory_credential_service.js +0 -46
  727. package/dist/web/auth/credential_service/session_state_credential_service.js +0 -23
  728. package/dist/web/auth/exchanger/base_credential_exchanger.js +0 -12
  729. package/dist/web/auth/exchanger/credential_exchanger_registry.js +0 -31
  730. package/dist/web/auth/oauth2/oauth2_credential_exchanger.js +0 -188
  731. package/dist/web/auth/oauth2/oauth2_credential_refresher.js +0 -102
  732. package/dist/web/auth/oauth2/oauth2_discovery.js +0 -190
  733. package/dist/web/auth/oauth2/oauth2_utils.js +0 -98
  734. package/dist/web/auth/refresher/base_credential_refresher.js +0 -16
  735. package/dist/web/auth/refresher/credential_refresher_registry.js +0 -40
  736. package/dist/web/code_executors/agent_engine_sandbox_code_executor.js +0 -281
  737. package/dist/web/code_executors/base_code_executor.js +0 -63
  738. package/dist/web/code_executors/built_in_code_executor.js +0 -45
  739. package/dist/web/code_executors/code_execution_utils.js +0 -124
  740. package/dist/web/code_executors/code_executor_context.js +0 -170
  741. package/dist/web/code_executors/unsafe_local_code_executor.js +0 -214
  742. package/dist/web/common.js +0 -347
  743. package/dist/web/context/agent_controlled_context_compactor.js +0 -72
  744. package/dist/web/context/anchored_context_compactor.js +0 -117
  745. package/dist/web/context/base_context_compactor.js +0 -7
  746. package/dist/web/context/compaction_utils.js +0 -38
  747. package/dist/web/context/summarizers/llm_summarizer.js +0 -87
  748. package/dist/web/context/token_based_context_compactor.js +0 -111
  749. package/dist/web/context/trajectory_thought_pruning_compactor.js +0 -43
  750. package/dist/web/context/truncating_context_compactor.js +0 -30
  751. package/dist/web/events/compacted_event.js +0 -47
  752. package/dist/web/events/event.js +0 -174
  753. package/dist/web/events/event_actions.js +0 -69
  754. package/dist/web/events/structured_events.js +0 -76
  755. package/dist/web/examples/base_example_provider.js +0 -27
  756. package/dist/web/examples/example.js +0 -7
  757. package/dist/web/examples/example_util.js +0 -79
  758. package/dist/web/features/feature_registry.js +0 -107
  759. package/dist/web/index.js +0 -68
  760. package/dist/web/integrations/agent_registry/agent_registry.js +0 -333
  761. package/dist/web/integrations/agent_registry/agent_registry_mcp_toolset.js +0 -117
  762. package/dist/web/integrations/agent_registry/helpers.js +0 -28
  763. package/dist/web/integrations/agent_registry/types.js +0 -20
  764. package/dist/web/memory/base_memory_service.js +0 -7
  765. package/dist/web/memory/in_memory_memory_service.js +0 -82
  766. package/dist/web/memory/memory_entry.js +0 -7
  767. package/dist/web/memory/vertex_ai_memory_bank_service.js +0 -481
  768. package/dist/web/models/apigee_llm.js +0 -221
  769. package/dist/web/models/base_llm.js +0 -73
  770. package/dist/web/models/base_llm_connection.js +0 -7
  771. package/dist/web/models/gemini_llm_connection.js +0 -179
  772. package/dist/web/models/google_llm.js +0 -384
  773. package/dist/web/models/interactions_utils.js +0 -728
  774. package/dist/web/models/llm_request.js +0 -52
  775. package/dist/web/models/llm_response.js +0 -45
  776. package/dist/web/models/registry.js +0 -95
  777. package/dist/web/models/routed_llm.js +0 -122
  778. package/dist/web/plugins/base_plugin.js +0 -271
  779. package/dist/web/plugins/global_instruction_plugin.js +0 -67
  780. package/dist/web/plugins/logging_plugin.js +0 -235
  781. package/dist/web/plugins/plugin_manager.js +0 -282
  782. package/dist/web/plugins/security_plugin.js +0 -140
  783. package/dist/web/runner/in_memory_runner.js +0 -46
  784. package/dist/web/runner/runner.js +0 -535
  785. package/dist/web/sessions/base_session_service.js +0 -111
  786. package/dist/web/sessions/database_session_service.js +0 -436
  787. package/dist/web/sessions/db/operations.js +0 -96
  788. package/dist/web/sessions/db/schema.js +0 -208
  789. package/dist/web/sessions/in_memory_session_service.js +0 -242
  790. package/dist/web/sessions/registry.js +0 -34
  791. package/dist/web/sessions/session.js +0 -20
  792. package/dist/web/sessions/state.js +0 -89
  793. package/dist/web/sessions/vertex_ai_session_service.js +0 -443
  794. package/dist/web/skills/gcp_skill_registry.js +0 -78
  795. package/dist/web/skills/loader.js +0 -360
  796. package/dist/web/skills/prompt.js +0 -30
  797. package/dist/web/skills/skill.js +0 -67
  798. package/dist/web/skills/skill_registry.js +0 -7
  799. package/dist/web/telemetry/google_cloud.js +0 -54
  800. package/dist/web/telemetry/setup.js +0 -83
  801. package/dist/web/telemetry/tracing.js +0 -234
  802. package/dist/web/tools/agent_tool.js +0 -145
  803. package/dist/web/tools/base_tool.js +0 -93
  804. package/dist/web/tools/base_toolset.js +0 -57
  805. package/dist/web/tools/consolidate_context_tool.js +0 -51
  806. package/dist/web/tools/enterprise_web_search_tool.js +0 -55
  807. package/dist/web/tools/example_tool.js +0 -42
  808. package/dist/web/tools/exit_loop_tool.js +0 -43
  809. package/dist/web/tools/forwarding_artifact_service.js +0 -47
  810. package/dist/web/tools/function_tool.js +0 -85
  811. package/dist/web/tools/get_user_choice_tool.js +0 -25
  812. package/dist/web/tools/google_maps_grounding_tool.js +0 -54
  813. package/dist/web/tools/google_search_tool.js +0 -51
  814. package/dist/web/tools/load_artifacts_tool.js +0 -152
  815. package/dist/web/tools/load_memory_tool.js +0 -79
  816. package/dist/web/tools/load_web_page.js +0 -221
  817. package/dist/web/tools/long_running_tool.js +0 -55
  818. package/dist/web/tools/mcp/load_mcp_resource_tool.js +0 -107
  819. package/dist/web/tools/mcp/mcp_session_manager.js +0 -78
  820. package/dist/web/tools/mcp/mcp_tool.js +0 -43
  821. package/dist/web/tools/mcp/mcp_toolset.js +0 -141
  822. package/dist/web/tools/openapi_tool/auth/auth_helpers.js +0 -48
  823. package/dist/web/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +0 -60
  824. package/dist/web/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +0 -111
  825. package/dist/web/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +0 -221
  826. package/dist/web/tools/openapi_tool/openapi_spec_parser/operation_parser.js +0 -198
  827. package/dist/web/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +0 -94
  828. package/dist/web/tools/openapi_tool/openapi_toolset.js +0 -97
  829. package/dist/web/tools/openapi_tool/rest_api_tool.js +0 -229
  830. package/dist/web/tools/preload_memory_tool.js +0 -77
  831. package/dist/web/tools/request_input_tool.js +0 -26
  832. package/dist/web/tools/skill/list_skills_tool.js +0 -50
  833. package/dist/web/tools/skill/load_skill_resource_tool.js +0 -190
  834. package/dist/web/tools/skill/load_skill_tool.js +0 -93
  835. package/dist/web/tools/skill/run_skill_inline_script_tool.js +0 -167
  836. package/dist/web/tools/skill/run_skill_script_tool.js +0 -201
  837. package/dist/web/tools/skill/search_skills_tool.js +0 -82
  838. package/dist/web/tools/skill/skill_toolset.js +0 -160
  839. package/dist/web/tools/tool_confirmation.js +0 -21
  840. package/dist/web/tools/url_context_tool.js +0 -44
  841. package/dist/web/tools/vertex_ai_search_tool.js +0 -103
  842. package/dist/web/tools/vertex_rag_retrieval_tool.js +0 -36
  843. package/dist/web/utils/async_hooks_shim.js +0 -24
  844. package/dist/web/utils/async_queue.js +0 -60
  845. package/dist/web/utils/branch_trie.js +0 -13
  846. package/dist/web/utils/case_utils.js +0 -25
  847. package/dist/web/utils/client_labels.js +0 -64
  848. package/dist/web/utils/crypto_shim.js +0 -15
  849. package/dist/web/utils/env_aware_utils.js +0 -74
  850. package/dist/web/utils/error_utils.js +0 -92
  851. package/dist/web/utils/experimental.js +0 -46
  852. package/dist/web/utils/failover_utils.js +0 -96
  853. package/dist/web/utils/file_extension_utils.js +0 -51
  854. package/dist/web/utils/file_utils.js +0 -103
  855. package/dist/web/utils/gemini_schema_util.js +0 -173
  856. package/dist/web/utils/live_connection_utils.js +0 -254
  857. package/dist/web/utils/logger.js +0 -130
  858. package/dist/web/utils/model_name.js +0 -66
  859. package/dist/web/utils/object_notation_utils.js +0 -49
  860. package/dist/web/utils/output_schema_utils.js +0 -15
  861. package/dist/web/utils/partial_copy.js +0 -23
  862. package/dist/web/utils/simple_zod_to_json.js +0 -123
  863. package/dist/web/utils/streaming_utils.js +0 -430
  864. package/dist/web/utils/task.js +0 -34
  865. package/dist/web/utils/variant_utils.js +0 -20
  866. package/dist/web/utils/vertex_ai_utils.js +0 -24
  867. package/dist/web/version.js +0 -11
  868. /package/dist/{web/artifacts/session_artifact_service.js → esm/tools/resume_inputs.js} +0 -0
  869. /package/dist/{web/auth/base_auth_provider.js → esm/workflow/trigger.js} +0 -0
@@ -1,5 +1,7 @@
1
1
  import {createRequire as topLevelCreateRequire} from 'module';
2
2
  const require = topLevelCreateRequire(import.meta.url);
3
+ var __defProp = Object.defineProperty;
4
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
5
  /**
4
6
  * @license
5
7
  * Copyright 2025 Google LLC
@@ -7,7 +9,12 @@ const require = topLevelCreateRequire(import.meta.url);
7
9
  */
8
10
  var _a, _b;
9
11
  import { context, trace } from "@opentelemetry/api";
12
+ import { FinishTaskTool } from "../tools/finish_task_tool.js";
10
13
  import { FunctionTool } from "../tools/function_tool.js";
14
+ import { AsyncQueue } from "../utils/async_queue.js";
15
+ import { isBaseNode } from "../workflow/base_node.js";
16
+ import { NodeTool } from "../workflow/nodes/node_tool.js";
17
+ import { runLlmAgentAsNode } from "../workflow/run_llm_agent_as_node.js";
11
18
  import {
12
19
  createEvent,
13
20
  createNewEventId,
@@ -16,6 +23,7 @@ import {
16
23
  isFinalResponse,
17
24
  populateClientFunctionCallId
18
25
  } from "../events/event.js";
26
+ import { isDefaultEventActions } from "../events/event_actions.js";
19
27
  import { isBaseLlm } from "../models/base_llm.js";
20
28
  import { LLMRegistry } from "../models/registry.js";
21
29
  import { isBaseTool } from "../tools/base_tool.js";
@@ -27,6 +35,7 @@ import {
27
35
  traceCallLlm,
28
36
  tracer
29
37
  } from "../telemetry/tracing.js";
38
+ import { parseWithSchema } from "../utils/schema.js";
30
39
  import { isZodObject, zodObjectToSchema } from "../utils/simple_zod_to_json.js";
31
40
  import { BaseAgent } from "./base_agent.js";
32
41
  import {
@@ -36,6 +45,7 @@ import {
36
45
  handleFunctionCallsAsync
37
46
  } from "./functions.js";
38
47
  import { AUTH_PREPROCESSOR } from "../auth/auth_preprocessor.js";
48
+ import { requireAgent } from "./invocation_context.js";
39
49
  import { AGENT_TRANSFER_LLM_REQUEST_PROCESSOR } from "./processors/agent_transfer_llm_request_processor.js";
40
50
  import { BASIC_LLM_REQUEST_PROCESSOR } from "./processors/basic_llm_request_processor.js";
41
51
  import { CODE_EXECUTION_REQUEST_PROCESSOR } from "./processors/code_execution_request_processor.js";
@@ -45,48 +55,113 @@ import { IDENTITY_LLM_REQUEST_PROCESSOR } from "./processors/identity_llm_reques
45
55
  import { INSTRUCTIONS_LLM_REQUEST_PROCESSOR } from "./processors/instructions_llm_request_processor.js";
46
56
  import { INTERACTIONS_REQUEST_PROCESSOR } from "./processors/interactions_request_processor.js";
47
57
  import { REQUEST_CONFIRMATION_LLM_REQUEST_PROCESSOR } from "./processors/request_confirmation_llm_request_processor.js";
58
+ import { REQUEST_INPUT_LLM_REQUEST_PROCESSOR } from "./processors/request_input_llm_request_processor.js";
48
59
  import { TOOL_FILTER_REQUEST_PROCESSOR } from "./processors/tool_filter_request_processor.js";
49
60
  import { ReadonlyContext } from "./readonly_context.js";
50
61
  import { StreamingMode } from "./run_config.js";
62
+ const MAX_LIVE_RECONNECT_ATTEMPTS = 5;
63
+ const TRANSFER_AGENT_DELAY_MS = 1e3;
64
+ const _LiveReconnectSignal = class _LiveReconnectSignal extends Error {
65
+ constructor(reason) {
66
+ super(`live reconnect requested: ${reason}`);
67
+ this.reason = reason;
68
+ this.name = "LiveReconnectSignal";
69
+ }
70
+ };
71
+ __name(_LiveReconnectSignal, "LiveReconnectSignal");
72
+ let LiveReconnectSignal = _LiveReconnectSignal;
73
+ function isRecoverableLiveError(err) {
74
+ var _a2;
75
+ if (err instanceof LiveReconnectSignal) return true;
76
+ if (!(err instanceof Error)) return false;
77
+ const code = err.code;
78
+ if (code === 1006 || code === 1011 || code === 1012) {
79
+ return true;
80
+ }
81
+ const message = (_a2 = err.message) != null ? _a2 : "";
82
+ return /ConnectionClosed|connection closed|ECONNRESET|socket hang up/i.test(
83
+ message
84
+ );
85
+ }
86
+ __name(isRecoverableLiveError, "isRecoverableLiveError");
87
+ function sleep(ms) {
88
+ return new Promise((resolve) => setTimeout(resolve, ms));
89
+ }
90
+ __name(sleep, "sleep");
91
+ const LIVE_KEYS = [
92
+ "responseModalities",
93
+ "speechConfig",
94
+ "outputAudioTranscription",
95
+ "inputAudioTranscription",
96
+ "realtimeInputConfig",
97
+ "contextWindowCompression",
98
+ "proactivity",
99
+ "enableAffectiveDialog"
100
+ ];
101
+ function applyLiveRunConfig(runConfig, llmRequest) {
102
+ var _a2;
103
+ if (!runConfig) return;
104
+ const liveConfig = (_a2 = llmRequest.liveConnectConfig) != null ? _a2 : llmRequest.liveConnectConfig = {};
105
+ for (const k of LIVE_KEYS) {
106
+ if (runConfig[k] !== void 0) {
107
+ liveConfig[k] = runConfig[k];
108
+ }
109
+ }
110
+ }
111
+ __name(applyLiveRunConfig, "applyLiveRunConfig");
51
112
  const ADK_AGENT_NAME_LABEL_KEY = "adk_agent_name";
52
113
  async function convertToolUnionToTools(toolUnion, context2) {
53
114
  if (isBaseTool(toolUnion)) {
54
115
  return [toolUnion];
55
116
  }
117
+ if (isBaseNode(toolUnion)) {
118
+ return [new NodeTool(toolUnion)];
119
+ }
56
120
  return await toolUnion.getTools(context2);
57
121
  }
58
- const LLM_AGENT_SIGNATURE_SYMBOL = Symbol.for("google.adk.llmAgent");
122
+ __name(convertToolUnionToTools, "convertToolUnionToTools");
123
+ const LLM_AGENT_SIGNATURE_SYMBOL = /* @__PURE__ */ Symbol.for("google.adk.llmAgent");
59
124
  function isLlmAgent(obj) {
60
125
  return typeof obj === "object" && obj !== null && LLM_AGENT_SIGNATURE_SYMBOL in obj && obj[LLM_AGENT_SIGNATURE_SYMBOL] === true;
61
126
  }
62
- class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
127
+ __name(isLlmAgent, "isLlmAgent");
128
+ const _LlmAgent = class _LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
63
129
  constructor(config) {
64
- var _a2, _b2, _c, _d, _e, _f, _g, _h, _i;
65
- super(config);
130
+ var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
131
+ super({
132
+ ...config,
133
+ rerunOnResume: (_a2 = config.rerunOnResume) != null ? _a2 : true,
134
+ waitForOutput: (_b2 = config.waitForOutput) != null ? _b2 : config.mode === "task"
135
+ });
66
136
  /** A unique symbol to identify ADK LLM agent class. */
67
137
  this[_a] = true;
68
138
  this.model = config.model;
69
- this.instruction = (_a2 = config.instruction) != null ? _a2 : "";
70
- this.globalInstruction = (_b2 = config.globalInstruction) != null ? _b2 : "";
71
- this.tools = (_c = config.tools) != null ? _c : [];
139
+ this.instruction = (_c = config.instruction) != null ? _c : "";
140
+ this.globalInstruction = (_d = config.globalInstruction) != null ? _d : "";
141
+ this.tools = (_e = config.tools) != null ? _e : [];
72
142
  this.generateContentConfig = config.generateContentConfig;
73
- this.disallowTransferToParent = (_d = config.disallowTransferToParent) != null ? _d : false;
74
- this.disallowTransferToPeers = (_e = config.disallowTransferToPeers) != null ? _e : false;
75
- this.includeContents = (_f = config.includeContents) != null ? _f : "default";
143
+ this.disallowTransferToParent = (_f = config.disallowTransferToParent) != null ? _f : false;
144
+ this.disallowTransferToPeers = (_g = config.disallowTransferToPeers) != null ? _g : false;
145
+ this.includeContents = (_h = config.includeContents) != null ? _h : "default";
146
+ this.includeContentsExplicit = config.includeContents !== void 0;
147
+ this.inputSchemaSource = config.inputSchema;
148
+ this.outputSchemaSource = config.outputSchema;
76
149
  this.inputSchema = isZodObject(config.inputSchema) ? zodObjectToSchema(config.inputSchema) : config.inputSchema;
77
150
  this.outputSchema = isZodObject(config.outputSchema) ? zodObjectToSchema(config.outputSchema) : config.outputSchema;
151
+ this.mode = config.mode;
78
152
  this.outputKey = config.outputKey;
79
153
  this.beforeModelCallback = config.beforeModelCallback;
80
154
  this.afterModelCallback = config.afterModelCallback;
81
155
  this.beforeToolCallback = config.beforeToolCallback;
82
156
  this.afterToolCallback = config.afterToolCallback;
83
157
  this.codeExecutor = config.codeExecutor;
84
- this.requestProcessors = (_g = config.requestProcessors) != null ? _g : [
158
+ this.requestProcessors = (_i = config.requestProcessors) != null ? _i : [
85
159
  BASIC_LLM_REQUEST_PROCESSOR,
86
160
  AUTH_PREPROCESSOR,
87
161
  IDENTITY_LLM_REQUEST_PROCESSOR,
88
162
  INSTRUCTIONS_LLM_REQUEST_PROCESSOR,
89
163
  REQUEST_CONFIRMATION_LLM_REQUEST_PROCESSOR,
164
+ REQUEST_INPUT_LLM_REQUEST_PROCESSOR,
90
165
  CONTENT_REQUEST_PROCESSOR,
91
166
  INTERACTIONS_REQUEST_PROCESSOR,
92
167
  CODE_EXECUTION_REQUEST_PROCESSOR,
@@ -108,8 +183,8 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
108
183
  );
109
184
  }
110
185
  }
111
- this.responseProcessors = (_h = config.responseProcessors) != null ? _h : [];
112
- const agentTransferDisabled = this.disallowTransferToParent && this.disallowTransferToPeers && !((_i = this.subAgents) == null ? void 0 : _i.length);
186
+ this.responseProcessors = (_j = config.responseProcessors) != null ? _j : [];
187
+ const agentTransferDisabled = this.disallowTransferToParent && this.disallowTransferToPeers && !((_k = this.subAgents) == null ? void 0 : _k.length);
113
188
  if (!agentTransferDisabled) {
114
189
  this.requestProcessors.push(AGENT_TRANSFER_LLM_REQUEST_PROCESSOR);
115
190
  }
@@ -131,13 +206,14 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
131
206
  this.generateContentConfig = {};
132
207
  }
133
208
  if (this.outputSchema) {
134
- if (!this.disallowTransferToParent || !this.disallowTransferToPeers) {
209
+ const transferRequested = config.disallowTransferToParent === false || config.disallowTransferToPeers === false || !!((_l = this.subAgents) == null ? void 0 : _l.length);
210
+ if (transferRequested) {
135
211
  logger.warn(
136
212
  `Invalid config for agent ${this.name}: outputSchema cannot co-exist with agent transfer configurations. Setting disallowTransferToParent=true, disallowTransferToPeers=true`
137
213
  );
138
- this.disallowTransferToParent = true;
139
- this.disallowTransferToPeers = true;
140
214
  }
215
+ this.disallowTransferToParent = true;
216
+ this.disallowTransferToPeers = true;
141
217
  }
142
218
  }
143
219
  /**
@@ -161,6 +237,16 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
161
237
  }
162
238
  throw new Error(`No model found for ${this.name}.`);
163
239
  }
240
+ /**
241
+ * The `finish_task` tool for this agent (task mode). Lazily created and cached
242
+ * so its declaration (derived from `outputSchema`) is stable across turns.
243
+ */
244
+ get finishTaskTool() {
245
+ if (!this._finishTaskTool) {
246
+ this._finishTaskTool = new FinishTaskTool(this.outputSchema);
247
+ }
248
+ return this._finishTaskTool;
249
+ }
164
250
  /**
165
251
  * The resolved instruction field to construct instruction for this
166
252
  * agent.
@@ -233,7 +319,7 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
233
319
  * This method is only for use by Agent Development Kit.
234
320
  */
235
321
  get canonicalBeforeModelCallbacks() {
236
- return LlmAgent.normalizeCallbackArray(this.beforeModelCallback);
322
+ return _LlmAgent.normalizeCallbackArray(this.beforeModelCallback);
237
323
  }
238
324
  /**
239
325
  * The resolved afterModelCallback field as a list of
@@ -242,7 +328,7 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
242
328
  * This method is only for use by Agent Development Kit.
243
329
  */
244
330
  get canonicalAfterModelCallbacks() {
245
- return LlmAgent.normalizeCallbackArray(this.afterModelCallback);
331
+ return _LlmAgent.normalizeCallbackArray(this.afterModelCallback);
246
332
  }
247
333
  /**
248
334
  * The resolved beforeToolCallback field as a list of
@@ -251,7 +337,7 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
251
337
  * This method is only for use by Agent Development Kit.
252
338
  */
253
339
  get canonicalBeforeToolCallbacks() {
254
- return LlmAgent.normalizeCallbackArray(this.beforeToolCallback);
340
+ return _LlmAgent.normalizeCallbackArray(this.beforeToolCallback);
255
341
  }
256
342
  /**
257
343
  * The resolved afterToolCallback field as a list of AfterToolCallback.
@@ -259,7 +345,7 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
259
345
  * This method is only for use by Agent Development Kit.
260
346
  */
261
347
  get canonicalAfterToolCallbacks() {
262
- return LlmAgent.normalizeCallbackArray(this.afterToolCallback);
348
+ return _LlmAgent.normalizeCallbackArray(this.afterToolCallback);
263
349
  }
264
350
  /**
265
351
  * Saves the agent's final response to the session state if configured.
@@ -302,14 +388,53 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
302
388
  if (!resultStr.trim()) {
303
389
  return;
304
390
  }
391
+ let parsed;
305
392
  try {
306
- result = JSON.parse(resultStr);
393
+ parsed = JSON.parse(resultStr);
307
394
  } catch (e) {
308
395
  logger.error(`Error parsing output for agent ${this.name}`, e);
396
+ event.actions.stateDelta[this.outputKey] = resultStr;
397
+ return;
398
+ }
399
+ try {
400
+ result = this.validateOutput(parsed);
401
+ } catch (e) {
402
+ logger.error(
403
+ `Output for agent ${this.name} does not satisfy its output schema`,
404
+ e
405
+ );
406
+ result = parsed;
309
407
  }
310
408
  }
311
409
  event.actions.stateDelta[this.outputKey] = result;
312
410
  }
411
+ /**
412
+ * Validates a value against this agent's output schema, in whichever dialect
413
+ * it was declared, and returns the parsed value.
414
+ *
415
+ * Prefers the schema as supplied ({@link outputSchemaSource}) over the genai
416
+ * form derived from it, since the conversion drops constraints Zod can
417
+ * express and genai cannot.
418
+ *
419
+ * @throws if the value does not satisfy the schema.
420
+ */
421
+ validateOutput(value) {
422
+ var _a2;
423
+ return parseWithSchema((_a2 = this.outputSchemaSource) != null ? _a2 : this.outputSchema, value);
424
+ }
425
+ /**
426
+ * Runs this agent as a workflow node.
427
+ *
428
+ * Where {@link BaseAgent.runImpl} delegates straight to `runAsync`, an
429
+ * `LlmAgent` has a node input to inject into the conversation, instruction
430
+ * placeholders to resolve against it, a reply to promote to node output, and
431
+ * — in `task` mode — a `finish_task` round-trip to drive. All of that lives
432
+ * in `runLlmAgentAsNode`, mirroring adk-python's `LlmAgent._run_impl`
433
+ * delegating to `run_llm_agent_as_node`.
434
+ */
435
+ async *runImpl(ctx, nodeInput) {
436
+ yield* runLlmAgentAsNode(this, ctx, nodeInput);
437
+ }
313
438
  async *runAsyncImpl(context2) {
314
439
  var _a2, _b2;
315
440
  while (true) {
@@ -329,7 +454,7 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
329
454
  if (!lastEvent) {
330
455
  break;
331
456
  }
332
- const isEmptyMetadataEvent = lastEvent.author === this.name && !lastEvent.partial && (!((_b2 = lastEvent.content) == null ? void 0 : _b2.parts) || lastEvent.content.parts.length === 0);
457
+ const isEmptyMetadataEvent = lastEvent.author === this.name && !lastEvent.partial && (!((_b2 = lastEvent.content) == null ? void 0 : _b2.parts) || lastEvent.content.parts.length === 0) && isDefaultEventActions(lastEvent.actions);
333
458
  if (isFinalResponse(lastEvent) && !(isEmptyMetadataEvent && stepHadToolCalls)) {
334
459
  break;
335
460
  }
@@ -369,10 +494,350 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
369
494
  * times. Subsequent reconnects skip `sendHistory` because the server
370
495
  * already holds the conversation state associated with the handle.
371
496
  */
372
- // eslint-disable-next-line require-yield
373
- async *runLiveFlow(_invocationContext) {
374
- await Promise.resolve();
375
- throw new Error("LlmAgent.runLiveFlow not implemented");
497
+ async *runLiveFlow(invocationContext) {
498
+ var _a2, _b2, _c, _d;
499
+ if (!invocationContext.liveRequestQueue) {
500
+ throw new Error("liveRequestQueue is required for LlmAgent.runLiveFlow.");
501
+ }
502
+ const llmRequest = {
503
+ contents: [],
504
+ toolsDict: {},
505
+ liveConnectConfig: {}
506
+ };
507
+ for await (const event of this.runLivePreprocess(
508
+ invocationContext,
509
+ llmRequest
510
+ )) {
511
+ yield event;
512
+ }
513
+ if (invocationContext.endInvocation || ((_a2 = invocationContext.abortSignal) == null ? void 0 : _a2.aborted)) {
514
+ return;
515
+ }
516
+ applyLiveRunConfig(invocationContext.runConfig, llmRequest);
517
+ const llm = this.canonicalModel;
518
+ let reconnectAttempts = 0;
519
+ while (true) {
520
+ if ((_b2 = invocationContext.abortSignal) == null ? void 0 : _b2.aborted) {
521
+ return;
522
+ }
523
+ const handle = invocationContext.liveSessionResumptionHandle;
524
+ if (handle) {
525
+ (_c = llmRequest.liveConnectConfig) != null ? _c : llmRequest.liveConnectConfig = {};
526
+ llmRequest.liveConnectConfig.sessionResumption = {
527
+ handle,
528
+ transparent: true
529
+ };
530
+ }
531
+ let connection;
532
+ try {
533
+ connection = await llm.connect(llmRequest);
534
+ } catch (err) {
535
+ if (isRecoverableLiveError(err) && invocationContext.liveSessionResumptionHandle) {
536
+ reconnectAttempts += 1;
537
+ if (reconnectAttempts > MAX_LIVE_RECONNECT_ATTEMPTS) {
538
+ logger.error(
539
+ `Max live reconnection attempts reached (${reconnectAttempts}).`,
540
+ err
541
+ );
542
+ throw err;
543
+ }
544
+ logger.info(
545
+ `Live connect failed (attempt ${reconnectAttempts}); retrying with session handle.`,
546
+ err
547
+ );
548
+ continue;
549
+ }
550
+ throw err;
551
+ }
552
+ if (llmRequest.contents.length > 0 && !invocationContext.liveSessionResumptionHandle) {
553
+ await connection.sendHistory(llmRequest.contents);
554
+ }
555
+ let sendError;
556
+ const sendAbort = new AbortController();
557
+ const combinedAbort = invocationContext.abortSignal ? AbortSignal.any([invocationContext.abortSignal, sendAbort.signal]) : sendAbort.signal;
558
+ const sendTask = this.runSendLoop(
559
+ connection,
560
+ invocationContext.liveRequestQueue,
561
+ combinedAbort,
562
+ invocationContext.abortSignal
563
+ );
564
+ sendTask.catch((error) => {
565
+ logger.error("Error in live send loop:", error);
566
+ sendError = error;
567
+ sendAbort.abort(error);
568
+ connection.close().catch((err) => {
569
+ logger.warn("Error closing connection after send loop failure:", err);
570
+ });
571
+ });
572
+ let reconnect = false;
573
+ try {
574
+ yield* this.runReceiveLoop(
575
+ invocationContext,
576
+ connection,
577
+ llmRequest,
578
+ sendAbort
579
+ );
580
+ } catch (err) {
581
+ const canReconnect = !!invocationContext.liveSessionResumptionHandle && (err instanceof LiveReconnectSignal || isRecoverableLiveError(err));
582
+ if (canReconnect) {
583
+ reconnect = true;
584
+ logger.info(
585
+ "Live connection closed; will reconnect with session handle.",
586
+ err
587
+ );
588
+ } else {
589
+ await this.teardownLiveConnection(sendAbort, connection, sendTask);
590
+ throw err;
591
+ }
592
+ }
593
+ await this.teardownLiveConnection(sendAbort, connection, sendTask);
594
+ if ((_d = invocationContext.abortSignal) == null ? void 0 : _d.aborted) {
595
+ return;
596
+ }
597
+ if (sendError) {
598
+ throw sendError;
599
+ }
600
+ if (!reconnect) {
601
+ return;
602
+ }
603
+ reconnectAttempts += 1;
604
+ if (reconnectAttempts > MAX_LIVE_RECONNECT_ATTEMPTS) {
605
+ throw new Error(
606
+ `Max live reconnection attempts reached (${reconnectAttempts}).`
607
+ );
608
+ }
609
+ }
610
+ }
611
+ async *runLivePreprocess(invocationContext, llmRequest) {
612
+ var _a2, _b2;
613
+ for (const processor of this.requestProcessors) {
614
+ for await (const event of processor.runAsync(
615
+ invocationContext,
616
+ llmRequest
617
+ )) {
618
+ if ((_a2 = invocationContext.abortSignal) == null ? void 0 : _a2.aborted) {
619
+ return;
620
+ }
621
+ yield event;
622
+ }
623
+ }
624
+ for (const toolUnion of this.tools) {
625
+ const toolContext = new Context({ invocationContext });
626
+ const tools = (await convertToolUnionToTools(
627
+ toolUnion,
628
+ new ReadonlyContext(invocationContext)
629
+ )).filter(
630
+ (tool) => !llmRequest.allowedTools || llmRequest.allowedTools.includes(tool.name)
631
+ );
632
+ for (const tool of tools) {
633
+ await tool.processLlmRequest({ toolContext, llmRequest });
634
+ if ((_b2 = invocationContext.abortSignal) == null ? void 0 : _b2.aborted) {
635
+ return;
636
+ }
637
+ }
638
+ }
639
+ }
640
+ async runSendLoop(connection, liveRequestQueue, sendAbortSignal, invocationAbortSignal) {
641
+ while (true) {
642
+ if ((sendAbortSignal == null ? void 0 : sendAbortSignal.aborted) || (invocationAbortSignal == null ? void 0 : invocationAbortSignal.aborted)) {
643
+ return;
644
+ }
645
+ let liveRequest;
646
+ try {
647
+ liveRequest = await liveRequestQueue.get(sendAbortSignal);
648
+ } catch (error) {
649
+ if ((sendAbortSignal == null ? void 0 : sendAbortSignal.aborted) || (invocationAbortSignal == null ? void 0 : invocationAbortSignal.aborted)) {
650
+ return;
651
+ }
652
+ throw error;
653
+ }
654
+ try {
655
+ await this.dispatchLiveRequest(connection, liveRequest);
656
+ } catch (error) {
657
+ if ((sendAbortSignal == null ? void 0 : sendAbortSignal.aborted) || (invocationAbortSignal == null ? void 0 : invocationAbortSignal.aborted)) {
658
+ logger.debug("Send failed after teardown:", error);
659
+ return;
660
+ }
661
+ logger.error("Error dispatching live request to model:", error);
662
+ throw error;
663
+ }
664
+ await Promise.resolve();
665
+ if (liveRequest.close) {
666
+ return;
667
+ }
668
+ }
669
+ }
670
+ async dispatchLiveRequest(connection, liveRequest) {
671
+ var _a2, _b2;
672
+ if (liveRequest.close) {
673
+ await connection.close();
674
+ return;
675
+ }
676
+ if (liveRequest.activityStart) {
677
+ await ((_a2 = connection.sendActivityStart) == null ? void 0 : _a2.call(connection));
678
+ return;
679
+ }
680
+ if (liveRequest.activityEnd) {
681
+ await ((_b2 = connection.sendActivityEnd) == null ? void 0 : _b2.call(connection));
682
+ return;
683
+ }
684
+ if (liveRequest.blob) {
685
+ await connection.sendRealtime(liveRequest.blob);
686
+ return;
687
+ }
688
+ if (liveRequest.content) {
689
+ await connection.sendContent(liveRequest.content);
690
+ }
691
+ }
692
+ /**
693
+ * Tears down a live attempt: stops the send loop, closes the connection
694
+ * (swallowing close errors), and waits for the send task to settle. Used
695
+ * before reconnecting or propagating an error.
696
+ */
697
+ async teardownLiveConnection(sendAbort, connection, sendTask) {
698
+ sendAbort.abort();
699
+ try {
700
+ await connection.close();
701
+ } catch (error) {
702
+ logger.warn("Error closing live connection:", error);
703
+ }
704
+ await sendTask.catch(() => void 0);
705
+ }
706
+ async *runReceiveLoop(invocationContext, connection, llmRequest, sendAbort) {
707
+ var _a2, _b2, _c, _d;
708
+ for await (const llmResponse of connection.receive()) {
709
+ if ((_a2 = invocationContext.abortSignal) == null ? void 0 : _a2.aborted) {
710
+ return;
711
+ }
712
+ if (sendAbort.signal.aborted) {
713
+ return;
714
+ }
715
+ if ((_b2 = llmResponse.liveSessionResumptionUpdate) == null ? void 0 : _b2.newHandle) {
716
+ invocationContext.liveSessionResumptionHandle = llmResponse.liveSessionResumptionUpdate.newHandle;
717
+ }
718
+ if (llmResponse.goAway) {
719
+ logger.info("Received goAway from live server; triggering reconnect.");
720
+ throw new LiveReconnectSignal("goAway");
721
+ }
722
+ const author = llmResponse.inputTranscription || ((_c = llmResponse.content) == null ? void 0 : _c.role) === "user" ? "user" : this.name;
723
+ const modelResponseEvent = createEvent({
724
+ invocationId: invocationContext.invocationId,
725
+ author,
726
+ branch: invocationContext.branch
727
+ });
728
+ for await (const event of this.postprocessLive(
729
+ invocationContext,
730
+ llmRequest,
731
+ llmResponse,
732
+ modelResponseEvent
733
+ )) {
734
+ yield event;
735
+ if (event.content && getFunctionResponses(event).length > 0) {
736
+ await connection.sendContent(event.content);
737
+ }
738
+ const taskCompleted = getFunctionResponses(event).some(
739
+ (r) => r.name === "task_completed"
740
+ );
741
+ if (taskCompleted) {
742
+ await sleep(TRANSFER_AGENT_DELAY_MS);
743
+ return;
744
+ }
745
+ const transferTo = (_d = event.actions) == null ? void 0 : _d.transferToAgent;
746
+ if (transferTo) {
747
+ await sleep(TRANSFER_AGENT_DELAY_MS);
748
+ sendAbort.abort();
749
+ await connection.close();
750
+ const agent = requireAgent(invocationContext);
751
+ const subAgent = agent.rootAgent.findAgent(transferTo);
752
+ if (subAgent) {
753
+ const previousAgent = invocationContext.agent;
754
+ invocationContext.agent = subAgent;
755
+ const previousHandle = invocationContext.liveSessionResumptionHandle;
756
+ invocationContext.liveSessionResumptionHandle = void 0;
757
+ try {
758
+ for await (const subEvent of subAgent.runLive(
759
+ invocationContext
760
+ )) {
761
+ yield subEvent;
762
+ }
763
+ } finally {
764
+ invocationContext.agent = previousAgent;
765
+ invocationContext.liveSessionResumptionHandle = previousHandle;
766
+ }
767
+ }
768
+ return;
769
+ }
770
+ }
771
+ }
772
+ }
773
+ async *postprocessLive(invocationContext, llmRequest, llmResponse, modelResponseEvent) {
774
+ for (const processor of this.responseProcessors) {
775
+ for await (const event of processor.runAsync(
776
+ invocationContext,
777
+ llmResponse
778
+ )) {
779
+ yield event;
780
+ }
781
+ }
782
+ if (!llmResponse.content && !llmResponse.errorCode && !llmResponse.interrupted && !llmResponse.turnComplete && !llmResponse.inputTranscription && !llmResponse.outputTranscription && !llmResponse.usageMetadata && !llmResponse.liveSessionResumptionUpdate) {
783
+ return;
784
+ }
785
+ if (llmResponse.liveSessionResumptionUpdate) {
786
+ yield createEvent({
787
+ ...modelResponseEvent,
788
+ liveSessionResumptionUpdate: llmResponse.liveSessionResumptionUpdate
789
+ });
790
+ return;
791
+ }
792
+ if (llmResponse.inputTranscription) {
793
+ yield createEvent({
794
+ ...modelResponseEvent,
795
+ inputTranscription: llmResponse.inputTranscription,
796
+ partial: llmResponse.partial
797
+ });
798
+ return;
799
+ }
800
+ if (llmResponse.outputTranscription) {
801
+ yield createEvent({
802
+ ...modelResponseEvent,
803
+ outputTranscription: llmResponse.outputTranscription,
804
+ partial: llmResponse.partial
805
+ });
806
+ return;
807
+ }
808
+ const mergedEvent = createEvent({
809
+ ...modelResponseEvent,
810
+ ...llmResponse
811
+ });
812
+ const functionCalls = getFunctionCalls(mergedEvent);
813
+ if (mergedEvent.content && functionCalls.length) {
814
+ populateClientFunctionCallId(mergedEvent);
815
+ mergedEvent.longRunningToolIds = Array.from(
816
+ getLongRunningFunctionCalls(functionCalls, llmRequest.toolsDict)
817
+ );
818
+ }
819
+ yield mergedEvent;
820
+ if (!functionCalls.length) {
821
+ return;
822
+ }
823
+ const functionResponseEvent = await handleFunctionCallsAsync({
824
+ invocationContext,
825
+ functionCallEvent: mergedEvent,
826
+ toolsDict: llmRequest.toolsDict,
827
+ beforeToolCallbacks: this.canonicalBeforeToolCallbacks,
828
+ afterToolCallbacks: this.canonicalAfterToolCallbacks
829
+ });
830
+ if (!functionResponseEvent) {
831
+ return;
832
+ }
833
+ const authEvent = generateAuthEvent(
834
+ invocationContext,
835
+ functionResponseEvent
836
+ );
837
+ if (authEvent) {
838
+ yield authEvent;
839
+ }
840
+ yield functionResponseEvent;
376
841
  }
377
842
  async *runOneStepAsync(invocationContext) {
378
843
  var _a2, _b2, _c;
@@ -393,22 +858,32 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
393
858
  }
394
859
  }
395
860
  const allTools = [...this.tools];
396
- if (this.outputSchema && allTools.length > 0 && !canUseOutputSchemaWithTools(this.canonicalModel.model)) {
861
+ if (this.mode === "task") {
862
+ allTools.push(this.finishTaskTool);
863
+ } else if (this.outputSchema && allTools.length > 0 && !canUseOutputSchemaWithTools(this.canonicalModel.model)) {
397
864
  const setModelResponseTool = new FunctionTool({
398
865
  name: "set_model_response",
399
866
  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.",
400
867
  parameters: this.outputSchema,
401
- execute: async (args, toolContext) => {
868
+ execute: /* @__PURE__ */ __name(async (args, toolContext) => {
402
869
  if (toolContext) {
403
870
  toolContext.actions.skipSummarization = true;
404
871
  }
405
872
  return JSON.stringify(args);
406
- }
873
+ }, "execute")
407
874
  });
408
875
  allTools.push(setModelResponseTool);
409
876
  }
877
+ const modelResponseEvent = createEvent({
878
+ invocationId: invocationContext.invocationId,
879
+ author: this.name,
880
+ branch: invocationContext.branch
881
+ });
410
882
  for (const toolUnion of allTools) {
411
- const toolContext = new Context({ invocationContext });
883
+ const toolContext = new Context({
884
+ invocationContext,
885
+ eventActions: modelResponseEvent.actions
886
+ });
412
887
  const tools = (await convertToolUnionToTools(
413
888
  toolUnion,
414
889
  new ReadonlyContext(invocationContext)
@@ -425,18 +900,13 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
425
900
  if (invocationContext.endInvocation || ((_c = invocationContext.abortSignal) == null ? void 0 : _c.aborted)) {
426
901
  return;
427
902
  }
428
- const modelResponseEvent = createEvent({
429
- invocationId: invocationContext.invocationId,
430
- author: this.name,
431
- branch: invocationContext.branch
432
- });
433
903
  const span = tracer.startSpan("call_llm");
434
904
  const ctx = trace.setSpan(context.active(), span);
435
905
  yield* runAsyncGeneratorWithOtelContext(
436
906
  ctx,
437
907
  this,
438
908
  async function* () {
439
- const responsesGenerator = async function* () {
909
+ const responsesGenerator = /* @__PURE__ */ __name(async function* () {
440
910
  var _a3, _b3;
441
911
  for await (const llmResponse of this.callLlmAsync(
442
912
  invocationContext,
@@ -460,7 +930,7 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
460
930
  yield event;
461
931
  }
462
932
  }
463
- };
933
+ }, "responsesGenerator");
464
934
  yield* this.runAndHandleError(
465
935
  responsesGenerator.call(this),
466
936
  invocationContext,
@@ -484,7 +954,8 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
484
954
  yield event;
485
955
  }
486
956
  }
487
- if ((!llmResponse.content || ((_b2 = llmResponse.content.parts) == null ? void 0 : _b2.length) === 0) && !llmResponse.errorCode && !llmResponse.interrupted) {
957
+ const isUsageOnlyReport = !llmResponse.content && !!llmResponse.usageMetadata;
958
+ if ((!llmResponse.content || ((_b2 = llmResponse.content.parts) == null ? void 0 : _b2.length) === 0) && !llmResponse.errorCode && !llmResponse.interrupted && !isUsageOnlyReport) {
488
959
  return;
489
960
  }
490
961
  const mergedEvent = createEvent({
@@ -515,13 +986,32 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
515
986
  invocationContext.endInvocation = true;
516
987
  return;
517
988
  }
518
- const functionResponseEvent = await handleFunctionCallsAsync({
519
- invocationContext,
520
- functionCallEvent: mergedEvent,
521
- toolsDict: llmRequest.toolsDict,
522
- beforeToolCallbacks: this.canonicalBeforeToolCallbacks,
523
- afterToolCallbacks: this.canonicalAfterToolCallbacks
524
- });
989
+ const eventQueue = new AsyncQueue();
990
+ invocationContext.eventQueue = eventQueue;
991
+ const toolTask = (async () => {
992
+ try {
993
+ const event = await handleFunctionCallsAsync({
994
+ invocationContext,
995
+ functionCallEvent: mergedEvent,
996
+ toolsDict: llmRequest.toolsDict,
997
+ beforeToolCallbacks: this.canonicalBeforeToolCallbacks,
998
+ afterToolCallbacks: this.canonicalAfterToolCallbacks
999
+ });
1000
+ return { event };
1001
+ } catch (error) {
1002
+ return { event: null, error };
1003
+ } finally {
1004
+ eventQueue.close();
1005
+ }
1006
+ })();
1007
+ for await (const queuedEvent of eventQueue) {
1008
+ yield queuedEvent;
1009
+ }
1010
+ const { event: functionResponseEvent, error: toolError } = await toolTask;
1011
+ invocationContext.eventQueue = void 0;
1012
+ if (toolError) {
1013
+ throw toolError;
1014
+ }
525
1015
  if (!functionResponseEvent || ((_e = invocationContext.abortSignal) == null ? void 0 : _e.aborted)) {
526
1016
  return;
527
1017
  }
@@ -567,7 +1057,7 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
567
1057
  * @throws Error if the agent is not found.
568
1058
  */
569
1059
  getAgentByName(invocationContext, agentName) {
570
- const rootAgent = invocationContext.agent.rootAgent;
1060
+ const rootAgent = requireAgent(invocationContext).rootAgent;
571
1061
  const agentToRun = rootAgent.findAgent(agentName);
572
1062
  if (!agentToRun) {
573
1063
  throw new Error(`Agent ${agentName} not found in the agent tree.`);
@@ -739,10 +1229,12 @@ class LlmAgent extends (_b = BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
739
1229
  // --------------------------------------------------------------------------
740
1230
  // #END LlmFlow Logic
741
1231
  // --------------------------------------------------------------------------
742
- // TODO - b/425992518: omitted Py LlmAgent features.
743
- // - code_executor
744
- // - configurable agents by yaml config
745
- }
1232
+ // TODO - b/425992518: LlmAgent features not implemented yet.
1233
+ // - codeExecutor
1234
+ // - configuring agents from a YAML file
1235
+ };
1236
+ __name(_LlmAgent, "LlmAgent");
1237
+ let LlmAgent = _LlmAgent;
746
1238
  export {
747
1239
  LlmAgent,
748
1240
  isLlmAgent