@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
@@ -9,6 +9,7 @@ var __defProp = Object.defineProperty;
9
9
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
10
  var __getOwnPropNames = Object.getOwnPropertyNames;
11
11
  var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
12
13
  var __export = (target, all) => {
13
14
  for (var name in all)
14
15
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -29,8 +30,14 @@ __export(llm_agent_exports, {
29
30
  });
30
31
  module.exports = __toCommonJS(llm_agent_exports);
31
32
  var import_api = require("@opentelemetry/api");
33
+ var import_finish_task_tool = require("../tools/finish_task_tool.js");
32
34
  var import_function_tool = require("../tools/function_tool.js");
35
+ var import_async_queue = require("../utils/async_queue.js");
36
+ var import_base_node = require("../workflow/base_node.js");
37
+ var import_node_tool = require("../workflow/nodes/node_tool.js");
38
+ var import_run_llm_agent_as_node = require("../workflow/run_llm_agent_as_node.js");
33
39
  var import_event = require("../events/event.js");
40
+ var import_event_actions = require("../events/event_actions.js");
34
41
  var import_base_llm = require("../models/base_llm.js");
35
42
  var import_registry = require("../models/registry.js");
36
43
  var import_base_tool = require("../tools/base_tool.js");
@@ -38,10 +45,12 @@ var import_logger = require("../utils/logger.js");
38
45
  var import_output_schema_utils = require("../utils/output_schema_utils.js");
39
46
  var import_context = require("./context.js");
40
47
  var import_tracing = require("../telemetry/tracing.js");
48
+ var import_schema = require("../utils/schema.js");
41
49
  var import_simple_zod_to_json = require("../utils/simple_zod_to_json.js");
42
50
  var import_base_agent = require("./base_agent.js");
43
51
  var import_functions = require("./functions.js");
44
52
  var import_auth_preprocessor = require("../auth/auth_preprocessor.js");
53
+ var import_invocation_context = require("./invocation_context.js");
45
54
  var import_agent_transfer_llm_request_processor = require("./processors/agent_transfer_llm_request_processor.js");
46
55
  var import_basic_llm_request_processor = require("./processors/basic_llm_request_processor.js");
47
56
  var import_code_execution_request_processor = require("./processors/code_execution_request_processor.js");
@@ -51,6 +60,7 @@ var import_identity_llm_request_processor = require("./processors/identity_llm_r
51
60
  var import_instructions_llm_request_processor = require("./processors/instructions_llm_request_processor.js");
52
61
  var import_interactions_request_processor = require("./processors/interactions_request_processor.js");
53
62
  var import_request_confirmation_llm_request_processor = require("./processors/request_confirmation_llm_request_processor.js");
63
+ var import_request_input_llm_request_processor = require("./processors/request_input_llm_request_processor.js");
54
64
  var import_tool_filter_request_processor = require("./processors/tool_filter_request_processor.js");
55
65
  var import_readonly_context = require("./readonly_context.js");
56
66
  var import_run_config = require("./run_config.js");
@@ -60,45 +70,109 @@ var import_run_config = require("./run_config.js");
60
70
  * SPDX-License-Identifier: Apache-2.0
61
71
  */
62
72
  var _a, _b;
73
+ const MAX_LIVE_RECONNECT_ATTEMPTS = 5;
74
+ const TRANSFER_AGENT_DELAY_MS = 1e3;
75
+ const _LiveReconnectSignal = class _LiveReconnectSignal extends Error {
76
+ constructor(reason) {
77
+ super(`live reconnect requested: ${reason}`);
78
+ this.reason = reason;
79
+ this.name = "LiveReconnectSignal";
80
+ }
81
+ };
82
+ __name(_LiveReconnectSignal, "LiveReconnectSignal");
83
+ let LiveReconnectSignal = _LiveReconnectSignal;
84
+ function isRecoverableLiveError(err) {
85
+ var _a2;
86
+ if (err instanceof LiveReconnectSignal) return true;
87
+ if (!(err instanceof Error)) return false;
88
+ const code = err.code;
89
+ if (code === 1006 || code === 1011 || code === 1012) {
90
+ return true;
91
+ }
92
+ const message = (_a2 = err.message) != null ? _a2 : "";
93
+ return /ConnectionClosed|connection closed|ECONNRESET|socket hang up/i.test(
94
+ message
95
+ );
96
+ }
97
+ __name(isRecoverableLiveError, "isRecoverableLiveError");
98
+ function sleep(ms) {
99
+ return new Promise((resolve) => setTimeout(resolve, ms));
100
+ }
101
+ __name(sleep, "sleep");
102
+ const LIVE_KEYS = [
103
+ "responseModalities",
104
+ "speechConfig",
105
+ "outputAudioTranscription",
106
+ "inputAudioTranscription",
107
+ "realtimeInputConfig",
108
+ "contextWindowCompression",
109
+ "proactivity",
110
+ "enableAffectiveDialog"
111
+ ];
112
+ function applyLiveRunConfig(runConfig, llmRequest) {
113
+ var _a2;
114
+ if (!runConfig) return;
115
+ const liveConfig = (_a2 = llmRequest.liveConnectConfig) != null ? _a2 : llmRequest.liveConnectConfig = {};
116
+ for (const k of LIVE_KEYS) {
117
+ if (runConfig[k] !== void 0) {
118
+ liveConfig[k] = runConfig[k];
119
+ }
120
+ }
121
+ }
122
+ __name(applyLiveRunConfig, "applyLiveRunConfig");
63
123
  const ADK_AGENT_NAME_LABEL_KEY = "adk_agent_name";
64
124
  async function convertToolUnionToTools(toolUnion, context2) {
65
125
  if ((0, import_base_tool.isBaseTool)(toolUnion)) {
66
126
  return [toolUnion];
67
127
  }
128
+ if ((0, import_base_node.isBaseNode)(toolUnion)) {
129
+ return [new import_node_tool.NodeTool(toolUnion)];
130
+ }
68
131
  return await toolUnion.getTools(context2);
69
132
  }
70
- const LLM_AGENT_SIGNATURE_SYMBOL = Symbol.for("google.adk.llmAgent");
133
+ __name(convertToolUnionToTools, "convertToolUnionToTools");
134
+ const LLM_AGENT_SIGNATURE_SYMBOL = /* @__PURE__ */ Symbol.for("google.adk.llmAgent");
71
135
  function isLlmAgent(obj) {
72
136
  return typeof obj === "object" && obj !== null && LLM_AGENT_SIGNATURE_SYMBOL in obj && obj[LLM_AGENT_SIGNATURE_SYMBOL] === true;
73
137
  }
74
- class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
138
+ __name(isLlmAgent, "isLlmAgent");
139
+ const _LlmAgent = class _LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATURE_SYMBOL, _b) {
75
140
  constructor(config) {
76
- var _a2, _b2, _c, _d, _e, _f, _g, _h, _i;
77
- super(config);
141
+ var _a2, _b2, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;
142
+ super({
143
+ ...config,
144
+ rerunOnResume: (_a2 = config.rerunOnResume) != null ? _a2 : true,
145
+ waitForOutput: (_b2 = config.waitForOutput) != null ? _b2 : config.mode === "task"
146
+ });
78
147
  /** A unique symbol to identify ADK LLM agent class. */
79
148
  this[_a] = true;
80
149
  this.model = config.model;
81
- this.instruction = (_a2 = config.instruction) != null ? _a2 : "";
82
- this.globalInstruction = (_b2 = config.globalInstruction) != null ? _b2 : "";
83
- this.tools = (_c = config.tools) != null ? _c : [];
150
+ this.instruction = (_c = config.instruction) != null ? _c : "";
151
+ this.globalInstruction = (_d = config.globalInstruction) != null ? _d : "";
152
+ this.tools = (_e = config.tools) != null ? _e : [];
84
153
  this.generateContentConfig = config.generateContentConfig;
85
- this.disallowTransferToParent = (_d = config.disallowTransferToParent) != null ? _d : false;
86
- this.disallowTransferToPeers = (_e = config.disallowTransferToPeers) != null ? _e : false;
87
- this.includeContents = (_f = config.includeContents) != null ? _f : "default";
154
+ this.disallowTransferToParent = (_f = config.disallowTransferToParent) != null ? _f : false;
155
+ this.disallowTransferToPeers = (_g = config.disallowTransferToPeers) != null ? _g : false;
156
+ this.includeContents = (_h = config.includeContents) != null ? _h : "default";
157
+ this.includeContentsExplicit = config.includeContents !== void 0;
158
+ this.inputSchemaSource = config.inputSchema;
159
+ this.outputSchemaSource = config.outputSchema;
88
160
  this.inputSchema = (0, import_simple_zod_to_json.isZodObject)(config.inputSchema) ? (0, import_simple_zod_to_json.zodObjectToSchema)(config.inputSchema) : config.inputSchema;
89
161
  this.outputSchema = (0, import_simple_zod_to_json.isZodObject)(config.outputSchema) ? (0, import_simple_zod_to_json.zodObjectToSchema)(config.outputSchema) : config.outputSchema;
162
+ this.mode = config.mode;
90
163
  this.outputKey = config.outputKey;
91
164
  this.beforeModelCallback = config.beforeModelCallback;
92
165
  this.afterModelCallback = config.afterModelCallback;
93
166
  this.beforeToolCallback = config.beforeToolCallback;
94
167
  this.afterToolCallback = config.afterToolCallback;
95
168
  this.codeExecutor = config.codeExecutor;
96
- this.requestProcessors = (_g = config.requestProcessors) != null ? _g : [
169
+ this.requestProcessors = (_i = config.requestProcessors) != null ? _i : [
97
170
  import_basic_llm_request_processor.BASIC_LLM_REQUEST_PROCESSOR,
98
171
  import_auth_preprocessor.AUTH_PREPROCESSOR,
99
172
  import_identity_llm_request_processor.IDENTITY_LLM_REQUEST_PROCESSOR,
100
173
  import_instructions_llm_request_processor.INSTRUCTIONS_LLM_REQUEST_PROCESSOR,
101
174
  import_request_confirmation_llm_request_processor.REQUEST_CONFIRMATION_LLM_REQUEST_PROCESSOR,
175
+ import_request_input_llm_request_processor.REQUEST_INPUT_LLM_REQUEST_PROCESSOR,
102
176
  import_content_request_processor.CONTENT_REQUEST_PROCESSOR,
103
177
  import_interactions_request_processor.INTERACTIONS_REQUEST_PROCESSOR,
104
178
  import_code_execution_request_processor.CODE_EXECUTION_REQUEST_PROCESSOR,
@@ -120,8 +194,8 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
120
194
  );
121
195
  }
122
196
  }
123
- this.responseProcessors = (_h = config.responseProcessors) != null ? _h : [];
124
- const agentTransferDisabled = this.disallowTransferToParent && this.disallowTransferToPeers && !((_i = this.subAgents) == null ? void 0 : _i.length);
197
+ this.responseProcessors = (_j = config.responseProcessors) != null ? _j : [];
198
+ const agentTransferDisabled = this.disallowTransferToParent && this.disallowTransferToPeers && !((_k = this.subAgents) == null ? void 0 : _k.length);
125
199
  if (!agentTransferDisabled) {
126
200
  this.requestProcessors.push(import_agent_transfer_llm_request_processor.AGENT_TRANSFER_LLM_REQUEST_PROCESSOR);
127
201
  }
@@ -143,13 +217,14 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
143
217
  this.generateContentConfig = {};
144
218
  }
145
219
  if (this.outputSchema) {
146
- if (!this.disallowTransferToParent || !this.disallowTransferToPeers) {
220
+ const transferRequested = config.disallowTransferToParent === false || config.disallowTransferToPeers === false || !!((_l = this.subAgents) == null ? void 0 : _l.length);
221
+ if (transferRequested) {
147
222
  import_logger.logger.warn(
148
223
  `Invalid config for agent ${this.name}: outputSchema cannot co-exist with agent transfer configurations. Setting disallowTransferToParent=true, disallowTransferToPeers=true`
149
224
  );
150
- this.disallowTransferToParent = true;
151
- this.disallowTransferToPeers = true;
152
225
  }
226
+ this.disallowTransferToParent = true;
227
+ this.disallowTransferToPeers = true;
153
228
  }
154
229
  }
155
230
  /**
@@ -173,6 +248,16 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
173
248
  }
174
249
  throw new Error(`No model found for ${this.name}.`);
175
250
  }
251
+ /**
252
+ * The `finish_task` tool for this agent (task mode). Lazily created and cached
253
+ * so its declaration (derived from `outputSchema`) is stable across turns.
254
+ */
255
+ get finishTaskTool() {
256
+ if (!this._finishTaskTool) {
257
+ this._finishTaskTool = new import_finish_task_tool.FinishTaskTool(this.outputSchema);
258
+ }
259
+ return this._finishTaskTool;
260
+ }
176
261
  /**
177
262
  * The resolved instruction field to construct instruction for this
178
263
  * agent.
@@ -245,7 +330,7 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
245
330
  * This method is only for use by Agent Development Kit.
246
331
  */
247
332
  get canonicalBeforeModelCallbacks() {
248
- return LlmAgent.normalizeCallbackArray(this.beforeModelCallback);
333
+ return _LlmAgent.normalizeCallbackArray(this.beforeModelCallback);
249
334
  }
250
335
  /**
251
336
  * The resolved afterModelCallback field as a list of
@@ -254,7 +339,7 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
254
339
  * This method is only for use by Agent Development Kit.
255
340
  */
256
341
  get canonicalAfterModelCallbacks() {
257
- return LlmAgent.normalizeCallbackArray(this.afterModelCallback);
342
+ return _LlmAgent.normalizeCallbackArray(this.afterModelCallback);
258
343
  }
259
344
  /**
260
345
  * The resolved beforeToolCallback field as a list of
@@ -263,7 +348,7 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
263
348
  * This method is only for use by Agent Development Kit.
264
349
  */
265
350
  get canonicalBeforeToolCallbacks() {
266
- return LlmAgent.normalizeCallbackArray(this.beforeToolCallback);
351
+ return _LlmAgent.normalizeCallbackArray(this.beforeToolCallback);
267
352
  }
268
353
  /**
269
354
  * The resolved afterToolCallback field as a list of AfterToolCallback.
@@ -271,7 +356,7 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
271
356
  * This method is only for use by Agent Development Kit.
272
357
  */
273
358
  get canonicalAfterToolCallbacks() {
274
- return LlmAgent.normalizeCallbackArray(this.afterToolCallback);
359
+ return _LlmAgent.normalizeCallbackArray(this.afterToolCallback);
275
360
  }
276
361
  /**
277
362
  * Saves the agent's final response to the session state if configured.
@@ -314,14 +399,53 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
314
399
  if (!resultStr.trim()) {
315
400
  return;
316
401
  }
402
+ let parsed;
317
403
  try {
318
- result = JSON.parse(resultStr);
404
+ parsed = JSON.parse(resultStr);
319
405
  } catch (e) {
320
406
  import_logger.logger.error(`Error parsing output for agent ${this.name}`, e);
407
+ event.actions.stateDelta[this.outputKey] = resultStr;
408
+ return;
409
+ }
410
+ try {
411
+ result = this.validateOutput(parsed);
412
+ } catch (e) {
413
+ import_logger.logger.error(
414
+ `Output for agent ${this.name} does not satisfy its output schema`,
415
+ e
416
+ );
417
+ result = parsed;
321
418
  }
322
419
  }
323
420
  event.actions.stateDelta[this.outputKey] = result;
324
421
  }
422
+ /**
423
+ * Validates a value against this agent's output schema, in whichever dialect
424
+ * it was declared, and returns the parsed value.
425
+ *
426
+ * Prefers the schema as supplied ({@link outputSchemaSource}) over the genai
427
+ * form derived from it, since the conversion drops constraints Zod can
428
+ * express and genai cannot.
429
+ *
430
+ * @throws if the value does not satisfy the schema.
431
+ */
432
+ validateOutput(value) {
433
+ var _a2;
434
+ return (0, import_schema.parseWithSchema)((_a2 = this.outputSchemaSource) != null ? _a2 : this.outputSchema, value);
435
+ }
436
+ /**
437
+ * Runs this agent as a workflow node.
438
+ *
439
+ * Where {@link BaseAgent.runImpl} delegates straight to `runAsync`, an
440
+ * `LlmAgent` has a node input to inject into the conversation, instruction
441
+ * placeholders to resolve against it, a reply to promote to node output, and
442
+ * — in `task` mode — a `finish_task` round-trip to drive. All of that lives
443
+ * in `runLlmAgentAsNode`, mirroring adk-python's `LlmAgent._run_impl`
444
+ * delegating to `run_llm_agent_as_node`.
445
+ */
446
+ async *runImpl(ctx, nodeInput) {
447
+ yield* (0, import_run_llm_agent_as_node.runLlmAgentAsNode)(this, ctx, nodeInput);
448
+ }
325
449
  async *runAsyncImpl(context2) {
326
450
  var _a2, _b2;
327
451
  while (true) {
@@ -341,7 +465,7 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
341
465
  if (!lastEvent) {
342
466
  break;
343
467
  }
344
- const isEmptyMetadataEvent = lastEvent.author === this.name && !lastEvent.partial && (!((_b2 = lastEvent.content) == null ? void 0 : _b2.parts) || lastEvent.content.parts.length === 0);
468
+ const isEmptyMetadataEvent = lastEvent.author === this.name && !lastEvent.partial && (!((_b2 = lastEvent.content) == null ? void 0 : _b2.parts) || lastEvent.content.parts.length === 0) && (0, import_event_actions.isDefaultEventActions)(lastEvent.actions);
345
469
  if ((0, import_event.isFinalResponse)(lastEvent) && !(isEmptyMetadataEvent && stepHadToolCalls)) {
346
470
  break;
347
471
  }
@@ -381,10 +505,350 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
381
505
  * times. Subsequent reconnects skip `sendHistory` because the server
382
506
  * already holds the conversation state associated with the handle.
383
507
  */
384
- // eslint-disable-next-line require-yield
385
- async *runLiveFlow(_invocationContext) {
386
- await Promise.resolve();
387
- throw new Error("LlmAgent.runLiveFlow not implemented");
508
+ async *runLiveFlow(invocationContext) {
509
+ var _a2, _b2, _c, _d;
510
+ if (!invocationContext.liveRequestQueue) {
511
+ throw new Error("liveRequestQueue is required for LlmAgent.runLiveFlow.");
512
+ }
513
+ const llmRequest = {
514
+ contents: [],
515
+ toolsDict: {},
516
+ liveConnectConfig: {}
517
+ };
518
+ for await (const event of this.runLivePreprocess(
519
+ invocationContext,
520
+ llmRequest
521
+ )) {
522
+ yield event;
523
+ }
524
+ if (invocationContext.endInvocation || ((_a2 = invocationContext.abortSignal) == null ? void 0 : _a2.aborted)) {
525
+ return;
526
+ }
527
+ applyLiveRunConfig(invocationContext.runConfig, llmRequest);
528
+ const llm = this.canonicalModel;
529
+ let reconnectAttempts = 0;
530
+ while (true) {
531
+ if ((_b2 = invocationContext.abortSignal) == null ? void 0 : _b2.aborted) {
532
+ return;
533
+ }
534
+ const handle = invocationContext.liveSessionResumptionHandle;
535
+ if (handle) {
536
+ (_c = llmRequest.liveConnectConfig) != null ? _c : llmRequest.liveConnectConfig = {};
537
+ llmRequest.liveConnectConfig.sessionResumption = {
538
+ handle,
539
+ transparent: true
540
+ };
541
+ }
542
+ let connection;
543
+ try {
544
+ connection = await llm.connect(llmRequest);
545
+ } catch (err) {
546
+ if (isRecoverableLiveError(err) && invocationContext.liveSessionResumptionHandle) {
547
+ reconnectAttempts += 1;
548
+ if (reconnectAttempts > MAX_LIVE_RECONNECT_ATTEMPTS) {
549
+ import_logger.logger.error(
550
+ `Max live reconnection attempts reached (${reconnectAttempts}).`,
551
+ err
552
+ );
553
+ throw err;
554
+ }
555
+ import_logger.logger.info(
556
+ `Live connect failed (attempt ${reconnectAttempts}); retrying with session handle.`,
557
+ err
558
+ );
559
+ continue;
560
+ }
561
+ throw err;
562
+ }
563
+ if (llmRequest.contents.length > 0 && !invocationContext.liveSessionResumptionHandle) {
564
+ await connection.sendHistory(llmRequest.contents);
565
+ }
566
+ let sendError;
567
+ const sendAbort = new AbortController();
568
+ const combinedAbort = invocationContext.abortSignal ? AbortSignal.any([invocationContext.abortSignal, sendAbort.signal]) : sendAbort.signal;
569
+ const sendTask = this.runSendLoop(
570
+ connection,
571
+ invocationContext.liveRequestQueue,
572
+ combinedAbort,
573
+ invocationContext.abortSignal
574
+ );
575
+ sendTask.catch((error) => {
576
+ import_logger.logger.error("Error in live send loop:", error);
577
+ sendError = error;
578
+ sendAbort.abort(error);
579
+ connection.close().catch((err) => {
580
+ import_logger.logger.warn("Error closing connection after send loop failure:", err);
581
+ });
582
+ });
583
+ let reconnect = false;
584
+ try {
585
+ yield* this.runReceiveLoop(
586
+ invocationContext,
587
+ connection,
588
+ llmRequest,
589
+ sendAbort
590
+ );
591
+ } catch (err) {
592
+ const canReconnect = !!invocationContext.liveSessionResumptionHandle && (err instanceof LiveReconnectSignal || isRecoverableLiveError(err));
593
+ if (canReconnect) {
594
+ reconnect = true;
595
+ import_logger.logger.info(
596
+ "Live connection closed; will reconnect with session handle.",
597
+ err
598
+ );
599
+ } else {
600
+ await this.teardownLiveConnection(sendAbort, connection, sendTask);
601
+ throw err;
602
+ }
603
+ }
604
+ await this.teardownLiveConnection(sendAbort, connection, sendTask);
605
+ if ((_d = invocationContext.abortSignal) == null ? void 0 : _d.aborted) {
606
+ return;
607
+ }
608
+ if (sendError) {
609
+ throw sendError;
610
+ }
611
+ if (!reconnect) {
612
+ return;
613
+ }
614
+ reconnectAttempts += 1;
615
+ if (reconnectAttempts > MAX_LIVE_RECONNECT_ATTEMPTS) {
616
+ throw new Error(
617
+ `Max live reconnection attempts reached (${reconnectAttempts}).`
618
+ );
619
+ }
620
+ }
621
+ }
622
+ async *runLivePreprocess(invocationContext, llmRequest) {
623
+ var _a2, _b2;
624
+ for (const processor of this.requestProcessors) {
625
+ for await (const event of processor.runAsync(
626
+ invocationContext,
627
+ llmRequest
628
+ )) {
629
+ if ((_a2 = invocationContext.abortSignal) == null ? void 0 : _a2.aborted) {
630
+ return;
631
+ }
632
+ yield event;
633
+ }
634
+ }
635
+ for (const toolUnion of this.tools) {
636
+ const toolContext = new import_context.Context({ invocationContext });
637
+ const tools = (await convertToolUnionToTools(
638
+ toolUnion,
639
+ new import_readonly_context.ReadonlyContext(invocationContext)
640
+ )).filter(
641
+ (tool) => !llmRequest.allowedTools || llmRequest.allowedTools.includes(tool.name)
642
+ );
643
+ for (const tool of tools) {
644
+ await tool.processLlmRequest({ toolContext, llmRequest });
645
+ if ((_b2 = invocationContext.abortSignal) == null ? void 0 : _b2.aborted) {
646
+ return;
647
+ }
648
+ }
649
+ }
650
+ }
651
+ async runSendLoop(connection, liveRequestQueue, sendAbortSignal, invocationAbortSignal) {
652
+ while (true) {
653
+ if ((sendAbortSignal == null ? void 0 : sendAbortSignal.aborted) || (invocationAbortSignal == null ? void 0 : invocationAbortSignal.aborted)) {
654
+ return;
655
+ }
656
+ let liveRequest;
657
+ try {
658
+ liveRequest = await liveRequestQueue.get(sendAbortSignal);
659
+ } catch (error) {
660
+ if ((sendAbortSignal == null ? void 0 : sendAbortSignal.aborted) || (invocationAbortSignal == null ? void 0 : invocationAbortSignal.aborted)) {
661
+ return;
662
+ }
663
+ throw error;
664
+ }
665
+ try {
666
+ await this.dispatchLiveRequest(connection, liveRequest);
667
+ } catch (error) {
668
+ if ((sendAbortSignal == null ? void 0 : sendAbortSignal.aborted) || (invocationAbortSignal == null ? void 0 : invocationAbortSignal.aborted)) {
669
+ import_logger.logger.debug("Send failed after teardown:", error);
670
+ return;
671
+ }
672
+ import_logger.logger.error("Error dispatching live request to model:", error);
673
+ throw error;
674
+ }
675
+ await Promise.resolve();
676
+ if (liveRequest.close) {
677
+ return;
678
+ }
679
+ }
680
+ }
681
+ async dispatchLiveRequest(connection, liveRequest) {
682
+ var _a2, _b2;
683
+ if (liveRequest.close) {
684
+ await connection.close();
685
+ return;
686
+ }
687
+ if (liveRequest.activityStart) {
688
+ await ((_a2 = connection.sendActivityStart) == null ? void 0 : _a2.call(connection));
689
+ return;
690
+ }
691
+ if (liveRequest.activityEnd) {
692
+ await ((_b2 = connection.sendActivityEnd) == null ? void 0 : _b2.call(connection));
693
+ return;
694
+ }
695
+ if (liveRequest.blob) {
696
+ await connection.sendRealtime(liveRequest.blob);
697
+ return;
698
+ }
699
+ if (liveRequest.content) {
700
+ await connection.sendContent(liveRequest.content);
701
+ }
702
+ }
703
+ /**
704
+ * Tears down a live attempt: stops the send loop, closes the connection
705
+ * (swallowing close errors), and waits for the send task to settle. Used
706
+ * before reconnecting or propagating an error.
707
+ */
708
+ async teardownLiveConnection(sendAbort, connection, sendTask) {
709
+ sendAbort.abort();
710
+ try {
711
+ await connection.close();
712
+ } catch (error) {
713
+ import_logger.logger.warn("Error closing live connection:", error);
714
+ }
715
+ await sendTask.catch(() => void 0);
716
+ }
717
+ async *runReceiveLoop(invocationContext, connection, llmRequest, sendAbort) {
718
+ var _a2, _b2, _c, _d;
719
+ for await (const llmResponse of connection.receive()) {
720
+ if ((_a2 = invocationContext.abortSignal) == null ? void 0 : _a2.aborted) {
721
+ return;
722
+ }
723
+ if (sendAbort.signal.aborted) {
724
+ return;
725
+ }
726
+ if ((_b2 = llmResponse.liveSessionResumptionUpdate) == null ? void 0 : _b2.newHandle) {
727
+ invocationContext.liveSessionResumptionHandle = llmResponse.liveSessionResumptionUpdate.newHandle;
728
+ }
729
+ if (llmResponse.goAway) {
730
+ import_logger.logger.info("Received goAway from live server; triggering reconnect.");
731
+ throw new LiveReconnectSignal("goAway");
732
+ }
733
+ const author = llmResponse.inputTranscription || ((_c = llmResponse.content) == null ? void 0 : _c.role) === "user" ? "user" : this.name;
734
+ const modelResponseEvent = (0, import_event.createEvent)({
735
+ invocationId: invocationContext.invocationId,
736
+ author,
737
+ branch: invocationContext.branch
738
+ });
739
+ for await (const event of this.postprocessLive(
740
+ invocationContext,
741
+ llmRequest,
742
+ llmResponse,
743
+ modelResponseEvent
744
+ )) {
745
+ yield event;
746
+ if (event.content && (0, import_event.getFunctionResponses)(event).length > 0) {
747
+ await connection.sendContent(event.content);
748
+ }
749
+ const taskCompleted = (0, import_event.getFunctionResponses)(event).some(
750
+ (r) => r.name === "task_completed"
751
+ );
752
+ if (taskCompleted) {
753
+ await sleep(TRANSFER_AGENT_DELAY_MS);
754
+ return;
755
+ }
756
+ const transferTo = (_d = event.actions) == null ? void 0 : _d.transferToAgent;
757
+ if (transferTo) {
758
+ await sleep(TRANSFER_AGENT_DELAY_MS);
759
+ sendAbort.abort();
760
+ await connection.close();
761
+ const agent = (0, import_invocation_context.requireAgent)(invocationContext);
762
+ const subAgent = agent.rootAgent.findAgent(transferTo);
763
+ if (subAgent) {
764
+ const previousAgent = invocationContext.agent;
765
+ invocationContext.agent = subAgent;
766
+ const previousHandle = invocationContext.liveSessionResumptionHandle;
767
+ invocationContext.liveSessionResumptionHandle = void 0;
768
+ try {
769
+ for await (const subEvent of subAgent.runLive(
770
+ invocationContext
771
+ )) {
772
+ yield subEvent;
773
+ }
774
+ } finally {
775
+ invocationContext.agent = previousAgent;
776
+ invocationContext.liveSessionResumptionHandle = previousHandle;
777
+ }
778
+ }
779
+ return;
780
+ }
781
+ }
782
+ }
783
+ }
784
+ async *postprocessLive(invocationContext, llmRequest, llmResponse, modelResponseEvent) {
785
+ for (const processor of this.responseProcessors) {
786
+ for await (const event of processor.runAsync(
787
+ invocationContext,
788
+ llmResponse
789
+ )) {
790
+ yield event;
791
+ }
792
+ }
793
+ if (!llmResponse.content && !llmResponse.errorCode && !llmResponse.interrupted && !llmResponse.turnComplete && !llmResponse.inputTranscription && !llmResponse.outputTranscription && !llmResponse.usageMetadata && !llmResponse.liveSessionResumptionUpdate) {
794
+ return;
795
+ }
796
+ if (llmResponse.liveSessionResumptionUpdate) {
797
+ yield (0, import_event.createEvent)({
798
+ ...modelResponseEvent,
799
+ liveSessionResumptionUpdate: llmResponse.liveSessionResumptionUpdate
800
+ });
801
+ return;
802
+ }
803
+ if (llmResponse.inputTranscription) {
804
+ yield (0, import_event.createEvent)({
805
+ ...modelResponseEvent,
806
+ inputTranscription: llmResponse.inputTranscription,
807
+ partial: llmResponse.partial
808
+ });
809
+ return;
810
+ }
811
+ if (llmResponse.outputTranscription) {
812
+ yield (0, import_event.createEvent)({
813
+ ...modelResponseEvent,
814
+ outputTranscription: llmResponse.outputTranscription,
815
+ partial: llmResponse.partial
816
+ });
817
+ return;
818
+ }
819
+ const mergedEvent = (0, import_event.createEvent)({
820
+ ...modelResponseEvent,
821
+ ...llmResponse
822
+ });
823
+ const functionCalls = (0, import_event.getFunctionCalls)(mergedEvent);
824
+ if (mergedEvent.content && functionCalls.length) {
825
+ (0, import_event.populateClientFunctionCallId)(mergedEvent);
826
+ mergedEvent.longRunningToolIds = Array.from(
827
+ (0, import_functions.getLongRunningFunctionCalls)(functionCalls, llmRequest.toolsDict)
828
+ );
829
+ }
830
+ yield mergedEvent;
831
+ if (!functionCalls.length) {
832
+ return;
833
+ }
834
+ const functionResponseEvent = await (0, import_functions.handleFunctionCallsAsync)({
835
+ invocationContext,
836
+ functionCallEvent: mergedEvent,
837
+ toolsDict: llmRequest.toolsDict,
838
+ beforeToolCallbacks: this.canonicalBeforeToolCallbacks,
839
+ afterToolCallbacks: this.canonicalAfterToolCallbacks
840
+ });
841
+ if (!functionResponseEvent) {
842
+ return;
843
+ }
844
+ const authEvent = (0, import_functions.generateAuthEvent)(
845
+ invocationContext,
846
+ functionResponseEvent
847
+ );
848
+ if (authEvent) {
849
+ yield authEvent;
850
+ }
851
+ yield functionResponseEvent;
388
852
  }
389
853
  async *runOneStepAsync(invocationContext) {
390
854
  var _a2, _b2, _c;
@@ -405,22 +869,32 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
405
869
  }
406
870
  }
407
871
  const allTools = [...this.tools];
408
- if (this.outputSchema && allTools.length > 0 && !(0, import_output_schema_utils.canUseOutputSchemaWithTools)(this.canonicalModel.model)) {
872
+ if (this.mode === "task") {
873
+ allTools.push(this.finishTaskTool);
874
+ } else if (this.outputSchema && allTools.length > 0 && !(0, import_output_schema_utils.canUseOutputSchemaWithTools)(this.canonicalModel.model)) {
409
875
  const setModelResponseTool = new import_function_tool.FunctionTool({
410
876
  name: "set_model_response",
411
877
  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.",
412
878
  parameters: this.outputSchema,
413
- execute: async (args, toolContext) => {
879
+ execute: /* @__PURE__ */ __name(async (args, toolContext) => {
414
880
  if (toolContext) {
415
881
  toolContext.actions.skipSummarization = true;
416
882
  }
417
883
  return JSON.stringify(args);
418
- }
884
+ }, "execute")
419
885
  });
420
886
  allTools.push(setModelResponseTool);
421
887
  }
888
+ const modelResponseEvent = (0, import_event.createEvent)({
889
+ invocationId: invocationContext.invocationId,
890
+ author: this.name,
891
+ branch: invocationContext.branch
892
+ });
422
893
  for (const toolUnion of allTools) {
423
- const toolContext = new import_context.Context({ invocationContext });
894
+ const toolContext = new import_context.Context({
895
+ invocationContext,
896
+ eventActions: modelResponseEvent.actions
897
+ });
424
898
  const tools = (await convertToolUnionToTools(
425
899
  toolUnion,
426
900
  new import_readonly_context.ReadonlyContext(invocationContext)
@@ -437,18 +911,13 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
437
911
  if (invocationContext.endInvocation || ((_c = invocationContext.abortSignal) == null ? void 0 : _c.aborted)) {
438
912
  return;
439
913
  }
440
- const modelResponseEvent = (0, import_event.createEvent)({
441
- invocationId: invocationContext.invocationId,
442
- author: this.name,
443
- branch: invocationContext.branch
444
- });
445
914
  const span = import_tracing.tracer.startSpan("call_llm");
446
915
  const ctx = import_api.trace.setSpan(import_api.context.active(), span);
447
916
  yield* (0, import_tracing.runAsyncGeneratorWithOtelContext)(
448
917
  ctx,
449
918
  this,
450
919
  async function* () {
451
- const responsesGenerator = async function* () {
920
+ const responsesGenerator = /* @__PURE__ */ __name(async function* () {
452
921
  var _a3, _b3;
453
922
  for await (const llmResponse of this.callLlmAsync(
454
923
  invocationContext,
@@ -472,7 +941,7 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
472
941
  yield event;
473
942
  }
474
943
  }
475
- };
944
+ }, "responsesGenerator");
476
945
  yield* this.runAndHandleError(
477
946
  responsesGenerator.call(this),
478
947
  invocationContext,
@@ -496,7 +965,8 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
496
965
  yield event;
497
966
  }
498
967
  }
499
- if ((!llmResponse.content || ((_b2 = llmResponse.content.parts) == null ? void 0 : _b2.length) === 0) && !llmResponse.errorCode && !llmResponse.interrupted) {
968
+ const isUsageOnlyReport = !llmResponse.content && !!llmResponse.usageMetadata;
969
+ if ((!llmResponse.content || ((_b2 = llmResponse.content.parts) == null ? void 0 : _b2.length) === 0) && !llmResponse.errorCode && !llmResponse.interrupted && !isUsageOnlyReport) {
500
970
  return;
501
971
  }
502
972
  const mergedEvent = (0, import_event.createEvent)({
@@ -527,13 +997,32 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
527
997
  invocationContext.endInvocation = true;
528
998
  return;
529
999
  }
530
- const functionResponseEvent = await (0, import_functions.handleFunctionCallsAsync)({
531
- invocationContext,
532
- functionCallEvent: mergedEvent,
533
- toolsDict: llmRequest.toolsDict,
534
- beforeToolCallbacks: this.canonicalBeforeToolCallbacks,
535
- afterToolCallbacks: this.canonicalAfterToolCallbacks
536
- });
1000
+ const eventQueue = new import_async_queue.AsyncQueue();
1001
+ invocationContext.eventQueue = eventQueue;
1002
+ const toolTask = (async () => {
1003
+ try {
1004
+ const event = await (0, import_functions.handleFunctionCallsAsync)({
1005
+ invocationContext,
1006
+ functionCallEvent: mergedEvent,
1007
+ toolsDict: llmRequest.toolsDict,
1008
+ beforeToolCallbacks: this.canonicalBeforeToolCallbacks,
1009
+ afterToolCallbacks: this.canonicalAfterToolCallbacks
1010
+ });
1011
+ return { event };
1012
+ } catch (error) {
1013
+ return { event: null, error };
1014
+ } finally {
1015
+ eventQueue.close();
1016
+ }
1017
+ })();
1018
+ for await (const queuedEvent of eventQueue) {
1019
+ yield queuedEvent;
1020
+ }
1021
+ const { event: functionResponseEvent, error: toolError } = await toolTask;
1022
+ invocationContext.eventQueue = void 0;
1023
+ if (toolError) {
1024
+ throw toolError;
1025
+ }
537
1026
  if (!functionResponseEvent || ((_e = invocationContext.abortSignal) == null ? void 0 : _e.aborted)) {
538
1027
  return;
539
1028
  }
@@ -579,7 +1068,7 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
579
1068
  * @throws Error if the agent is not found.
580
1069
  */
581
1070
  getAgentByName(invocationContext, agentName) {
582
- const rootAgent = invocationContext.agent.rootAgent;
1071
+ const rootAgent = (0, import_invocation_context.requireAgent)(invocationContext).rootAgent;
583
1072
  const agentToRun = rootAgent.findAgent(agentName);
584
1073
  if (!agentToRun) {
585
1074
  throw new Error(`Agent ${agentName} not found in the agent tree.`);
@@ -751,10 +1240,12 @@ class LlmAgent extends (_b = import_base_agent.BaseAgent, _a = LLM_AGENT_SIGNATU
751
1240
  // --------------------------------------------------------------------------
752
1241
  // #END LlmFlow Logic
753
1242
  // --------------------------------------------------------------------------
754
- // TODO - b/425992518: omitted Py LlmAgent features.
755
- // - code_executor
756
- // - configurable agents by yaml config
757
- }
1243
+ // TODO - b/425992518: LlmAgent features not implemented yet.
1244
+ // - codeExecutor
1245
+ // - configuring agents from a YAML file
1246
+ };
1247
+ __name(_LlmAgent, "LlmAgent");
1248
+ let LlmAgent = _LlmAgent;
758
1249
  // Annotate the CommonJS export names for ESM import in node:
759
1250
  0 && (module.exports = {
760
1251
  LlmAgent,