@google/adk 1.6.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (781) hide show
  1. package/dist/cjs/a2a/a2a_event.js +18 -0
  2. package/dist/cjs/a2a/a2a_remote_agent.js +5 -2
  3. package/dist/cjs/a2a/a2a_remote_agent_run_processor.js +7 -3
  4. package/dist/cjs/a2a/a2a_remote_agent_utils.js +9 -2
  5. package/dist/cjs/a2a/agent_card.js +33 -3
  6. package/dist/cjs/a2a/agent_executor.js +25 -16
  7. package/dist/cjs/a2a/agent_to_a2a.js +22 -10
  8. package/dist/cjs/a2a/auth.js +3 -0
  9. package/dist/cjs/a2a/event_converter_utils.js +10 -0
  10. package/dist/cjs/a2a/event_processor_utils.js +71 -35
  11. package/dist/cjs/a2a/executor_context.js +2 -0
  12. package/dist/cjs/a2a/index.js +53 -0
  13. package/dist/cjs/a2a/metadata_converter_utils.js +5 -0
  14. package/dist/cjs/a2a/part_converter_utils.js +12 -0
  15. package/dist/cjs/agents/active_streaming_tool.js +5 -2
  16. package/dist/cjs/agents/base_agent.js +46 -9
  17. package/dist/cjs/agents/context.js +5 -2
  18. package/dist/cjs/agents/framework_function_calls.js +64 -0
  19. package/dist/cjs/agents/functions.js +38 -16
  20. package/dist/cjs/agents/instructions.js +51 -12
  21. package/dist/cjs/agents/invocation_context.js +42 -8
  22. package/dist/cjs/agents/live_request_queue.js +29 -5
  23. package/dist/cjs/agents/llm_agent.js +535 -45
  24. package/dist/cjs/agents/loop_agent.js +19 -2
  25. package/dist/cjs/agents/parallel_agent.js +21 -2
  26. package/dist/cjs/agents/processors/agent_transfer_llm_request_processor.js +7 -4
  27. package/dist/cjs/agents/processors/base_llm_processor.js +9 -4
  28. package/dist/cjs/agents/processors/basic_llm_request_processor.js +6 -3
  29. package/dist/cjs/agents/processors/code_execution_request_processor.js +18 -5
  30. package/dist/cjs/agents/processors/content_processor_utils.js +85 -15
  31. package/dist/cjs/agents/processors/content_request_processor.js +9 -4
  32. package/dist/cjs/agents/processors/context_compactor_request_processor.js +5 -2
  33. package/dist/cjs/agents/processors/identity_llm_request_processor.js +12 -4
  34. package/dist/cjs/agents/processors/instructions_llm_request_processor.js +5 -2
  35. package/dist/cjs/agents/processors/interactions_request_processor.js +5 -2
  36. package/dist/cjs/agents/processors/request_confirmation_llm_request_processor.js +313 -92
  37. package/dist/cjs/agents/processors/request_input_llm_request_processor.js +218 -0
  38. package/dist/cjs/agents/processors/tool_filter_request_processor.js +5 -2
  39. package/dist/cjs/agents/readonly_context.js +7 -3
  40. package/dist/cjs/agents/routed_agent.js +6 -13
  41. package/dist/cjs/agents/run_config.js +12 -0
  42. package/dist/cjs/agents/sequential_agent.js +20 -3
  43. package/dist/cjs/agents/user_input_request.js +145 -0
  44. package/dist/cjs/apps/app.js +11 -11
  45. package/dist/cjs/apps/resumability_config.js +2 -0
  46. package/dist/cjs/artifacts/file_artifact_service.js +21 -2
  47. package/dist/cjs/artifacts/gcs_artifact_service.js +46 -11
  48. package/dist/cjs/artifacts/in_memory_artifact_service.js +9 -2
  49. package/dist/cjs/artifacts/registry.js +6 -1
  50. package/dist/cjs/artifacts/scoped_artifact_service.js +5 -2
  51. package/dist/cjs/auth/auth_handler.js +5 -2
  52. package/dist/cjs/auth/auth_preprocessor.js +48 -40
  53. package/dist/cjs/auth/auth_provider_registry.js +5 -2
  54. package/dist/cjs/auth/auth_schemes.js +2 -0
  55. package/dist/cjs/auth/credential_response_binding.js +101 -0
  56. package/dist/cjs/auth/credential_service/in_memory_credential_service.js +5 -2
  57. package/dist/cjs/auth/credential_service/session_state_credential_service.js +5 -2
  58. package/dist/cjs/auth/exchanger/base_credential_exchanger.js +5 -2
  59. package/dist/cjs/auth/exchanger/credential_exchanger_registry.js +5 -2
  60. package/dist/cjs/auth/oauth2/oauth2_credential_exchanger.js +8 -2
  61. package/dist/cjs/auth/oauth2/oauth2_credential_refresher.js +5 -2
  62. package/dist/cjs/auth/oauth2/oauth2_discovery.js +7 -2
  63. package/dist/cjs/auth/oauth2/oauth2_utils.js +6 -0
  64. package/dist/cjs/auth/refresher/base_credential_refresher.js +5 -2
  65. package/dist/cjs/auth/refresher/credential_refresher_registry.js +5 -2
  66. package/dist/cjs/code_executors/agent_engine_sandbox_code_executor.js +3 -0
  67. package/dist/cjs/code_executors/base_code_executor.js +6 -2
  68. package/dist/cjs/code_executors/built_in_code_executor.js +6 -2
  69. package/dist/cjs/code_executors/code_execution_utils.js +6 -0
  70. package/dist/cjs/code_executors/code_executor_context.js +5 -2
  71. package/dist/cjs/code_executors/unsafe_local_code_executor.js +8 -2
  72. package/dist/cjs/common.js +106 -1
  73. package/dist/cjs/context/agent_controlled_context_compactor.js +5 -2
  74. package/dist/cjs/context/anchored_context_compactor.js +5 -2
  75. package/dist/cjs/context/compaction_utils.js +3 -0
  76. package/dist/cjs/context/summarizers/llm_summarizer.js +5 -2
  77. package/dist/cjs/context/token_based_context_compactor.js +9 -3
  78. package/dist/cjs/context/trajectory_thought_pruning_compactor.js +5 -2
  79. package/dist/cjs/context/truncating_context_compactor.js +5 -2
  80. package/dist/cjs/environment/base_environment.js +97 -0
  81. package/dist/cjs/environment/local_environment.js +186 -0
  82. package/dist/cjs/events/compacted_event.js +4 -0
  83. package/dist/cjs/events/event.js +38 -3
  84. package/dist/cjs/events/event_actions.js +5 -0
  85. package/dist/cjs/events/structured_events.js +2 -0
  86. package/dist/cjs/examples/base_example_provider.js +6 -2
  87. package/dist/cjs/examples/example_util.js +3 -0
  88. package/dist/cjs/features/feature_registry.js +7 -0
  89. package/dist/cjs/index.js +7 -25
  90. package/dist/cjs/integrations/agent_registry/agent_registry.js +7 -4
  91. package/dist/cjs/integrations/agent_registry/agent_registry_mcp_toolset.js +7 -4
  92. package/dist/cjs/integrations/agent_registry/helpers.js +3 -0
  93. package/dist/cjs/memory/in_memory_memory_service.js +8 -2
  94. package/dist/cjs/memory/vertex_ai_memory_bank_service.js +17 -2
  95. package/dist/cjs/models/apigee_llm.js +9 -3
  96. package/dist/cjs/models/base_llm.js +7 -3
  97. package/dist/cjs/models/gemini_llm_connection.js +5 -2
  98. package/dist/cjs/models/google_llm.js +24 -12
  99. package/dist/cjs/models/interactions_utils.js +16 -0
  100. package/dist/cjs/models/llm_request.js +4 -0
  101. package/dist/cjs/models/llm_response.js +2 -0
  102. package/dist/cjs/models/registry.js +6 -2
  103. package/dist/cjs/models/routed_llm.js +4 -13
  104. package/dist/cjs/plugins/base_plugin.js +39 -5
  105. package/dist/cjs/plugins/global_instruction_plugin.js +5 -2
  106. package/dist/cjs/plugins/logging_plugin.js +13 -8
  107. package/dist/cjs/plugins/plugin_manager.js +37 -2
  108. package/dist/cjs/plugins/security_plugin.js +15 -8
  109. package/dist/cjs/runner/in_memory_runner.js +5 -2
  110. package/dist/cjs/runner/runner.js +208 -18
  111. package/dist/cjs/sessions/base_session_service.js +13 -2
  112. package/dist/cjs/sessions/database_session_service.js +6 -2
  113. package/dist/cjs/sessions/db/operations.js +34 -6
  114. package/dist/cjs/sessions/db/schema.js +16 -8
  115. package/dist/cjs/sessions/in_memory_session_service.js +22 -14
  116. package/dist/cjs/sessions/registry.js +4 -1
  117. package/dist/cjs/sessions/session.js +2 -0
  118. package/dist/cjs/sessions/state.js +80 -8
  119. package/dist/cjs/sessions/state_write_order.js +105 -0
  120. package/dist/cjs/sessions/vertex_ai_session_service.js +110 -15
  121. package/dist/cjs/skills/gcp_skill_registry.js +2 -0
  122. package/dist/cjs/skills/loader.js +22 -10
  123. package/dist/cjs/skills/prompt.js +3 -0
  124. package/dist/cjs/telemetry/google_cloud.js +42 -9
  125. package/dist/cjs/telemetry/setup.js +5 -0
  126. package/dist/cjs/telemetry/tracing.js +60 -4
  127. package/dist/cjs/tools/agent_tool.js +6 -2
  128. package/dist/cjs/tools/base_tool.js +24 -2
  129. package/dist/cjs/tools/base_toolset.js +6 -2
  130. package/dist/cjs/tools/consolidate_context_tool.js +5 -2
  131. package/dist/cjs/tools/enterprise_web_search_tool.js +6 -2
  132. package/dist/cjs/tools/example_tool.js +5 -2
  133. package/dist/cjs/tools/exit_loop_tool.js +5 -2
  134. package/dist/cjs/tools/finish_task_tool.js +119 -0
  135. package/dist/cjs/tools/forwarding_artifact_service.js +5 -2
  136. package/dist/cjs/tools/function_tool.js +73 -8
  137. package/dist/cjs/tools/get_user_choice_tool.js +3 -2
  138. package/dist/cjs/tools/google_maps_grounding_tool.js +6 -2
  139. package/dist/cjs/tools/google_search_tool.js +5 -2
  140. package/dist/cjs/tools/load_artifacts_tool.js +8 -2
  141. package/dist/cjs/tools/load_memory_tool.js +5 -2
  142. package/dist/cjs/tools/load_web_page.js +21 -1
  143. package/dist/cjs/tools/long_running_tool.js +5 -2
  144. package/dist/cjs/tools/mcp/index.js +39 -0
  145. package/dist/cjs/tools/mcp/load_mcp_resource_tool.js +5 -2
  146. package/dist/cjs/tools/mcp/mcp_session_manager.js +36 -8
  147. package/dist/cjs/tools/mcp/mcp_tool.js +5 -2
  148. package/dist/cjs/tools/mcp/mcp_toolset.js +5 -2
  149. package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +4 -0
  150. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +2 -0
  151. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +2 -0
  152. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +30 -9
  153. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/operation_parser.js +2 -0
  154. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +6 -2
  155. package/dist/cjs/tools/openapi_tool/openapi_toolset.js +2 -0
  156. package/dist/cjs/tools/openapi_tool/rest_api_tool.js +23 -5
  157. package/dist/cjs/tools/preload_memory_tool.js +5 -2
  158. package/dist/cjs/tools/request_input_tool.js +6 -4
  159. package/dist/cjs/tools/skill/list_skills_tool.js +2 -0
  160. package/dist/cjs/tools/skill/load_skill_resource_tool.js +2 -0
  161. package/dist/cjs/tools/skill/load_skill_tool.js +4 -1
  162. package/dist/cjs/tools/skill/run_skill_inline_script_tool.js +8 -2
  163. package/dist/cjs/tools/skill/run_skill_script_tool.js +10 -2
  164. package/dist/cjs/tools/skill/search_skills_tool.js +2 -0
  165. package/dist/cjs/tools/skill/skill_toolset.js +35 -0
  166. package/dist/cjs/tools/tool_confirmation.js +26 -3
  167. package/dist/cjs/tools/url_context_tool.js +5 -2
  168. package/dist/cjs/tools/vertex_ai_search_tool.js +5 -2
  169. package/dist/cjs/tools/vertex_rag_retrieval_tool.js +5 -2
  170. package/dist/cjs/utils/async_hooks_shim.js +5 -2
  171. package/dist/cjs/utils/async_queue.js +45 -18
  172. package/dist/cjs/utils/branch_trie.js +2 -0
  173. package/dist/cjs/utils/case_utils.js +2 -0
  174. package/dist/cjs/utils/client_labels.js +5 -0
  175. package/dist/cjs/utils/crypto_shim.js +2 -0
  176. package/dist/cjs/utils/deprecated.js +68 -0
  177. package/dist/cjs/utils/env_aware_utils.js +41 -0
  178. package/dist/cjs/utils/error_utils.js +8 -0
  179. package/dist/cjs/utils/experimental.js +9 -2
  180. package/dist/cjs/utils/failover_utils.js +3 -0
  181. package/dist/cjs/utils/file_extension_utils.js +3 -0
  182. package/dist/cjs/utils/file_utils.js +7 -2
  183. package/dist/cjs/utils/gemini_schema_util.js +6 -2
  184. package/dist/cjs/utils/genai_schema_to_json.js +107 -0
  185. package/dist/cjs/utils/live_connection_utils.js +5 -2
  186. package/dist/cjs/utils/logger.js +13 -4
  187. package/dist/cjs/utils/model_name.js +8 -0
  188. package/dist/cjs/utils/object_notation_utils.js +7 -3
  189. package/dist/cjs/utils/optional_peer.js +68 -0
  190. package/dist/cjs/utils/output_schema_utils.js +2 -0
  191. package/dist/cjs/utils/partial_copy.js +2 -0
  192. package/dist/cjs/utils/redact_uri.js +66 -0
  193. package/dist/cjs/utils/schema.js +178 -0
  194. package/dist/cjs/utils/simple_zod_to_json.js +17 -4
  195. package/dist/cjs/utils/streaming_utils.js +14 -6
  196. package/dist/cjs/utils/task.js +7 -4
  197. package/dist/cjs/utils/variant_utils.js +3 -1
  198. package/dist/cjs/utils/vertex_ai_utils.js +3 -1
  199. package/dist/cjs/version.js +1 -1
  200. package/dist/cjs/workflow/base_node.js +211 -0
  201. package/dist/cjs/workflow/branch_path.js +108 -0
  202. package/dist/cjs/workflow/dynamic_node_scheduler.js +220 -0
  203. package/dist/cjs/workflow/errors.js +178 -0
  204. package/dist/cjs/workflow/graph.js +158 -0
  205. package/dist/cjs/workflow/index.js +131 -0
  206. package/dist/cjs/workflow/node.js +65 -0
  207. package/dist/cjs/workflow/node_builders.js +68 -0
  208. package/dist/cjs/workflow/node_context.js +246 -0
  209. package/dist/cjs/workflow/node_error_event.js +86 -0
  210. package/dist/cjs/workflow/node_runner.js +459 -0
  211. package/dist/cjs/workflow/node_state.js +57 -0
  212. package/dist/cjs/workflow/node_status.js +48 -0
  213. package/dist/cjs/workflow/nodes/function_node.js +195 -0
  214. package/dist/cjs/workflow/nodes/join_node.js +56 -0
  215. package/dist/cjs/workflow/nodes/node_tool.js +156 -0
  216. package/dist/cjs/workflow/nodes/parallel_worker.js +129 -0
  217. package/dist/cjs/workflow/nodes/tool_node.js +117 -0
  218. package/dist/cjs/workflow/request_input.js +64 -0
  219. package/dist/cjs/workflow/retry_config.js +71 -0
  220. package/dist/cjs/workflow/run_llm_agent_as_node.js +192 -0
  221. package/dist/cjs/workflow/run_node_as_invocation.js +165 -0
  222. package/dist/cjs/workflow/schedule_dynamic_node.js +53 -0
  223. package/dist/cjs/workflow/trigger.js +27 -0
  224. package/dist/cjs/workflow/utils/graph_parser.js +212 -0
  225. package/dist/cjs/workflow/utils/graph_validation.js +216 -0
  226. package/dist/cjs/workflow/utils/hitl_utils.js +252 -0
  227. package/dist/cjs/workflow/utils/rehydration_utils.js +373 -0
  228. package/dist/cjs/workflow/utils/retry_utils.js +112 -0
  229. package/dist/cjs/workflow/utils/workflow_graph_utils.js +144 -0
  230. package/dist/cjs/workflow/workflow.js +509 -0
  231. package/dist/esm/a2a/a2a_event.js +19 -0
  232. package/dist/esm/a2a/a2a_remote_agent.js +6 -2
  233. package/dist/esm/a2a/a2a_remote_agent_run_processor.js +8 -3
  234. package/dist/esm/a2a/a2a_remote_agent_utils.js +10 -2
  235. package/dist/esm/a2a/agent_card.js +34 -3
  236. package/dist/esm/a2a/agent_executor.js +27 -17
  237. package/dist/esm/a2a/agent_to_a2a.js +44 -15
  238. package/dist/esm/a2a/auth.js +4 -0
  239. package/dist/esm/a2a/event_converter_utils.js +11 -0
  240. package/dist/esm/a2a/event_processor_utils.js +74 -34
  241. package/dist/esm/a2a/executor_context.js +3 -0
  242. package/dist/esm/a2a/index.js +20 -0
  243. package/dist/esm/a2a/metadata_converter_utils.js +6 -0
  244. package/dist/esm/a2a/part_converter_utils.js +13 -0
  245. package/dist/esm/agents/active_streaming_tool.js +6 -2
  246. package/dist/esm/agents/base_agent.js +47 -9
  247. package/dist/esm/agents/context.js +6 -2
  248. package/dist/esm/agents/framework_function_calls.js +34 -0
  249. package/dist/esm/agents/functions.js +42 -13
  250. package/dist/esm/agents/instructions.js +52 -12
  251. package/dist/esm/agents/invocation_context.js +41 -7
  252. package/dist/esm/agents/live_request_queue.js +30 -5
  253. package/dist/esm/agents/llm_agent.js +536 -45
  254. package/dist/esm/agents/loop_agent.js +21 -2
  255. package/dist/esm/agents/parallel_agent.js +23 -2
  256. package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +8 -4
  257. package/dist/esm/agents/processors/base_llm_processor.js +10 -4
  258. package/dist/esm/agents/processors/basic_llm_request_processor.js +7 -3
  259. package/dist/esm/agents/processors/code_execution_request_processor.js +19 -5
  260. package/dist/esm/agents/processors/content_processor_utils.js +88 -16
  261. package/dist/esm/agents/processors/content_request_processor.js +10 -4
  262. package/dist/esm/agents/processors/context_compactor_request_processor.js +6 -2
  263. package/dist/esm/agents/processors/identity_llm_request_processor.js +13 -4
  264. package/dist/esm/agents/processors/instructions_llm_request_processor.js +6 -2
  265. package/dist/esm/agents/processors/interactions_request_processor.js +6 -2
  266. package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +318 -93
  267. package/dist/esm/agents/processors/request_input_llm_request_processor.js +197 -0
  268. package/dist/esm/agents/processors/tool_filter_request_processor.js +6 -2
  269. package/dist/esm/agents/readonly_context.js +8 -3
  270. package/dist/esm/agents/routed_agent.js +6 -14
  271. package/dist/esm/agents/run_config.js +13 -0
  272. package/dist/esm/agents/sequential_agent.js +22 -3
  273. package/dist/esm/agents/user_input_request.js +120 -0
  274. package/dist/esm/apps/app.js +14 -11
  275. package/dist/esm/apps/resumability_config.js +3 -0
  276. package/dist/esm/artifacts/file_artifact_service.js +22 -2
  277. package/dist/esm/artifacts/gcs_artifact_service.js +58 -11
  278. package/dist/esm/artifacts/in_memory_artifact_service.js +10 -2
  279. package/dist/esm/artifacts/registry.js +7 -1
  280. package/dist/esm/artifacts/scoped_artifact_service.js +6 -2
  281. package/dist/esm/auth/auth_handler.js +6 -2
  282. package/dist/esm/auth/auth_preprocessor.js +50 -41
  283. package/dist/esm/auth/auth_provider_registry.js +6 -2
  284. package/dist/esm/auth/auth_schemes.js +3 -0
  285. package/dist/esm/auth/credential_response_binding.js +74 -0
  286. package/dist/esm/auth/credential_service/in_memory_credential_service.js +6 -2
  287. package/dist/esm/auth/credential_service/session_state_credential_service.js +6 -2
  288. package/dist/esm/auth/exchanger/base_credential_exchanger.js +6 -2
  289. package/dist/esm/auth/exchanger/credential_exchanger_registry.js +6 -2
  290. package/dist/esm/auth/oauth2/oauth2_credential_exchanger.js +9 -2
  291. package/dist/esm/auth/oauth2/oauth2_credential_refresher.js +6 -2
  292. package/dist/esm/auth/oauth2/oauth2_discovery.js +8 -2
  293. package/dist/esm/auth/oauth2/oauth2_utils.js +7 -0
  294. package/dist/esm/auth/refresher/base_credential_refresher.js +6 -2
  295. package/dist/esm/auth/refresher/credential_refresher_registry.js +6 -2
  296. package/dist/esm/code_executors/agent_engine_sandbox_code_executor.js +3 -0
  297. package/dist/esm/code_executors/base_code_executor.js +7 -2
  298. package/dist/esm/code_executors/built_in_code_executor.js +7 -2
  299. package/dist/esm/code_executors/code_execution_utils.js +7 -0
  300. package/dist/esm/code_executors/code_executor_context.js +6 -2
  301. package/dist/esm/code_executors/unsafe_local_code_executor.js +9 -2
  302. package/dist/esm/common.js +109 -4
  303. package/dist/esm/context/agent_controlled_context_compactor.js +6 -2
  304. package/dist/esm/context/anchored_context_compactor.js +6 -2
  305. package/dist/esm/context/compaction_utils.js +4 -0
  306. package/dist/esm/context/summarizers/llm_summarizer.js +6 -2
  307. package/dist/esm/context/token_based_context_compactor.js +10 -3
  308. package/dist/esm/context/trajectory_thought_pruning_compactor.js +6 -2
  309. package/dist/esm/context/truncating_context_compactor.js +6 -2
  310. package/dist/esm/environment/base_environment.js +71 -0
  311. package/dist/esm/environment/local_environment.js +150 -0
  312. package/dist/esm/events/compacted_event.js +5 -0
  313. package/dist/esm/events/event.js +38 -3
  314. package/dist/esm/events/event_actions.js +6 -0
  315. package/dist/esm/events/structured_events.js +3 -0
  316. package/dist/esm/examples/base_example_provider.js +7 -2
  317. package/dist/esm/examples/example_util.js +4 -0
  318. package/dist/esm/features/feature_registry.js +8 -0
  319. package/dist/esm/index.js +4 -15
  320. package/dist/esm/integrations/agent_registry/agent_registry.js +8 -4
  321. package/dist/esm/integrations/agent_registry/agent_registry_mcp_toolset.js +6 -2
  322. package/dist/esm/integrations/agent_registry/helpers.js +4 -0
  323. package/dist/esm/memory/in_memory_memory_service.js +9 -2
  324. package/dist/esm/memory/vertex_ai_memory_bank_service.js +18 -2
  325. package/dist/esm/models/apigee_llm.js +10 -3
  326. package/dist/esm/models/base_llm.js +8 -3
  327. package/dist/esm/models/gemini_llm_connection.js +6 -2
  328. package/dist/esm/models/google_llm.js +26 -13
  329. package/dist/esm/models/interactions_utils.js +17 -0
  330. package/dist/esm/models/llm_request.js +5 -0
  331. package/dist/esm/models/llm_response.js +3 -0
  332. package/dist/esm/models/registry.js +7 -2
  333. package/dist/esm/models/routed_llm.js +4 -14
  334. package/dist/esm/plugins/base_plugin.js +39 -5
  335. package/dist/esm/plugins/global_instruction_plugin.js +6 -2
  336. package/dist/esm/plugins/logging_plugin.js +14 -8
  337. package/dist/esm/plugins/plugin_manager.js +38 -2
  338. package/dist/esm/plugins/security_plugin.js +14 -6
  339. package/dist/esm/runner/in_memory_runner.js +6 -2
  340. package/dist/esm/runner/runner.js +215 -20
  341. package/dist/esm/sessions/base_session_service.js +14 -2
  342. package/dist/esm/sessions/database_session_service.js +7 -2
  343. package/dist/esm/sessions/db/operations.js +34 -6
  344. package/dist/esm/sessions/db/schema.js +16 -8
  345. package/dist/esm/sessions/in_memory_session_service.js +23 -14
  346. package/dist/esm/sessions/registry.js +5 -1
  347. package/dist/esm/sessions/session.js +3 -0
  348. package/dist/esm/sessions/state.js +78 -7
  349. package/dist/esm/sessions/state_write_order.js +74 -0
  350. package/dist/esm/sessions/vertex_ai_session_service.js +110 -15
  351. package/dist/esm/skills/gcp_skill_registry.js +2 -0
  352. package/dist/esm/skills/loader.js +23 -10
  353. package/dist/esm/skills/prompt.js +4 -0
  354. package/dist/esm/telemetry/google_cloud.js +54 -9
  355. package/dist/esm/telemetry/setup.js +6 -0
  356. package/dist/esm/telemetry/tracing.js +59 -4
  357. package/dist/esm/tools/agent_tool.js +7 -2
  358. package/dist/esm/tools/base_tool.js +25 -2
  359. package/dist/esm/tools/base_toolset.js +7 -2
  360. package/dist/esm/tools/consolidate_context_tool.js +6 -2
  361. package/dist/esm/tools/enterprise_web_search_tool.js +7 -2
  362. package/dist/esm/tools/example_tool.js +6 -2
  363. package/dist/esm/tools/exit_loop_tool.js +6 -2
  364. package/dist/esm/tools/finish_task_tool.js +92 -0
  365. package/dist/esm/tools/forwarding_artifact_service.js +6 -2
  366. package/dist/esm/tools/function_tool.js +74 -8
  367. package/dist/esm/tools/get_user_choice_tool.js +4 -2
  368. package/dist/esm/tools/google_maps_grounding_tool.js +7 -2
  369. package/dist/esm/tools/google_search_tool.js +6 -2
  370. package/dist/esm/tools/load_artifacts_tool.js +9 -2
  371. package/dist/esm/tools/load_memory_tool.js +6 -2
  372. package/dist/esm/tools/load_web_page.js +22 -1
  373. package/dist/esm/tools/long_running_tool.js +6 -2
  374. package/dist/esm/tools/mcp/index.js +11 -0
  375. package/dist/esm/tools/mcp/load_mcp_resource_tool.js +6 -2
  376. package/dist/esm/tools/mcp/mcp_session_manager.js +45 -9
  377. package/dist/esm/tools/mcp/mcp_tool.js +6 -2
  378. package/dist/esm/tools/mcp/mcp_toolset.js +6 -2
  379. package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +5 -0
  380. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +2 -0
  381. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +2 -0
  382. package/dist/esm/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +30 -9
  383. package/dist/esm/tools/openapi_tool/openapi_spec_parser/operation_parser.js +2 -0
  384. package/dist/esm/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +6 -2
  385. package/dist/esm/tools/openapi_tool/openapi_toolset.js +2 -0
  386. package/dist/esm/tools/openapi_tool/rest_api_tool.js +23 -5
  387. package/dist/esm/tools/preload_memory_tool.js +6 -2
  388. package/dist/esm/tools/request_input_tool.js +7 -4
  389. package/dist/esm/tools/skill/list_skills_tool.js +2 -0
  390. package/dist/esm/tools/skill/load_skill_resource_tool.js +2 -0
  391. package/dist/esm/tools/skill/load_skill_tool.js +4 -1
  392. package/dist/esm/tools/skill/run_skill_inline_script_tool.js +8 -2
  393. package/dist/esm/tools/skill/run_skill_script_tool.js +10 -2
  394. package/dist/esm/tools/skill/search_skills_tool.js +2 -0
  395. package/dist/esm/tools/skill/skill_toolset.js +25 -0
  396. package/dist/esm/tools/tool_confirmation.js +24 -2
  397. package/dist/esm/tools/url_context_tool.js +6 -2
  398. package/dist/esm/tools/vertex_ai_search_tool.js +6 -2
  399. package/dist/esm/tools/vertex_rag_retrieval_tool.js +6 -2
  400. package/dist/esm/utils/async_hooks_shim.js +6 -2
  401. package/dist/esm/utils/async_queue.js +46 -18
  402. package/dist/esm/utils/branch_trie.js +3 -0
  403. package/dist/esm/utils/case_utils.js +3 -0
  404. package/dist/esm/utils/client_labels.js +6 -0
  405. package/dist/esm/utils/crypto_shim.js +3 -0
  406. package/dist/esm/utils/deprecated.js +40 -0
  407. package/dist/esm/utils/env_aware_utils.js +41 -0
  408. package/dist/esm/utils/error_utils.js +9 -0
  409. package/dist/esm/utils/experimental.js +10 -2
  410. package/dist/esm/utils/failover_utils.js +4 -0
  411. package/dist/esm/utils/file_extension_utils.js +4 -0
  412. package/dist/esm/utils/file_utils.js +8 -2
  413. package/dist/esm/utils/gemini_schema_util.js +7 -2
  414. package/dist/esm/utils/genai_schema_to_json.js +80 -0
  415. package/dist/esm/utils/live_connection_utils.js +6 -2
  416. package/dist/esm/utils/logger.js +14 -4
  417. package/dist/esm/utils/model_name.js +9 -0
  418. package/dist/esm/utils/object_notation_utils.js +8 -3
  419. package/dist/esm/utils/optional_peer.js +41 -0
  420. package/dist/esm/utils/output_schema_utils.js +3 -0
  421. package/dist/esm/utils/partial_copy.js +3 -0
  422. package/dist/esm/utils/redact_uri.js +39 -0
  423. package/dist/esm/utils/schema.js +152 -0
  424. package/dist/esm/utils/simple_zod_to_json.js +15 -4
  425. package/dist/esm/utils/streaming_utils.js +15 -6
  426. package/dist/esm/utils/task.js +8 -4
  427. package/dist/esm/utils/variant_utils.js +5 -2
  428. package/dist/esm/utils/vertex_ai_utils.js +5 -2
  429. package/dist/esm/version.js +1 -1
  430. package/dist/esm/workflow/base_node.js +182 -0
  431. package/dist/esm/workflow/branch_path.js +77 -0
  432. package/dist/esm/workflow/dynamic_node_scheduler.js +202 -0
  433. package/dist/esm/workflow/errors.js +140 -0
  434. package/dist/esm/workflow/graph.js +127 -0
  435. package/dist/esm/workflow/index.js +80 -0
  436. package/dist/esm/workflow/node.js +38 -0
  437. package/dist/esm/workflow/node_builders.js +40 -0
  438. package/dist/esm/workflow/node_context.js +219 -0
  439. package/dist/esm/workflow/node_error_event.js +57 -0
  440. package/dist/esm/workflow/node_runner.js +439 -0
  441. package/dist/esm/workflow/node_state.js +29 -0
  442. package/dist/esm/workflow/node_status.js +20 -0
  443. package/dist/esm/workflow/nodes/function_node.js +172 -0
  444. package/dist/esm/workflow/nodes/join_node.js +29 -0
  445. package/dist/esm/workflow/nodes/node_tool.js +131 -0
  446. package/dist/esm/workflow/nodes/parallel_worker.js +102 -0
  447. package/dist/esm/workflow/nodes/tool_node.js +90 -0
  448. package/dist/esm/workflow/request_input.js +36 -0
  449. package/dist/esm/workflow/retry_config.js +43 -0
  450. package/dist/esm/workflow/run_llm_agent_as_node.js +172 -0
  451. package/dist/esm/workflow/run_node_as_invocation.js +139 -0
  452. package/dist/esm/workflow/schedule_dynamic_node.js +26 -0
  453. package/dist/esm/workflow/trigger.js +7 -0
  454. package/dist/esm/workflow/utils/graph_parser.js +188 -0
  455. package/dist/esm/workflow/utils/graph_validation.js +189 -0
  456. package/dist/esm/workflow/utils/hitl_utils.js +222 -0
  457. package/dist/esm/workflow/utils/rehydration_utils.js +342 -0
  458. package/dist/esm/workflow/utils/retry_utils.js +82 -0
  459. package/dist/esm/workflow/utils/workflow_graph_utils.js +115 -0
  460. package/dist/esm/workflow/workflow.js +493 -0
  461. package/dist/types/a2a/agent_card.d.ts +3 -3
  462. package/dist/types/a2a/agent_to_a2a.d.ts +4 -4
  463. package/dist/types/a2a/event_processor_utils.d.ts +17 -2
  464. package/dist/types/a2a/index.d.ts +18 -0
  465. package/dist/types/agents/base_agent.d.ts +37 -9
  466. package/dist/types/agents/framework_function_calls.d.ts +26 -0
  467. package/dist/types/agents/functions.d.ts +1 -2
  468. package/dist/types/agents/invocation_context.d.ts +95 -3
  469. package/dist/types/agents/live_request_queue.d.ts +7 -1
  470. package/dist/types/agents/llm_agent.d.ts +77 -1
  471. package/dist/types/agents/loop_agent.d.ts +5 -0
  472. package/dist/types/agents/parallel_agent.d.ts +5 -0
  473. package/dist/types/agents/processors/content_processor_utils.d.ts +3 -2
  474. package/dist/types/agents/processors/identity_llm_request_processor.d.ts +4 -1
  475. package/dist/types/agents/processors/request_input_llm_request_processor.d.ts +21 -0
  476. package/dist/types/agents/run_config.d.ts +57 -2
  477. package/dist/types/agents/sequential_agent.d.ts +5 -0
  478. package/dist/types/agents/user_input_request.d.ts +71 -0
  479. package/dist/types/apps/app.d.ts +8 -3
  480. package/dist/types/artifacts/gcs_artifact_service.d.ts +9 -2
  481. package/dist/types/auth/credential_response_binding.d.ts +24 -0
  482. package/dist/types/common.d.ts +18 -8
  483. package/dist/types/environment/base_environment.d.ts +101 -0
  484. package/dist/types/environment/local_environment.d.ts +72 -0
  485. package/dist/types/events/event.d.ts +94 -1
  486. package/dist/types/events/event_actions.d.ts +10 -0
  487. package/dist/types/index.d.ts +5 -13
  488. package/dist/types/models/apigee_llm.d.ts +4 -4
  489. package/dist/types/models/google_llm.d.ts +2 -1
  490. package/dist/types/plugins/base_plugin.d.ts +35 -0
  491. package/dist/types/plugins/plugin_manager.d.ts +20 -0
  492. package/dist/types/plugins/security_plugin.d.ts +4 -2
  493. package/dist/types/runner/in_memory_runner.d.ts +2 -2
  494. package/dist/types/runner/runner.d.ts +59 -3
  495. package/dist/types/sessions/base_session_service.d.ts +2 -2
  496. package/dist/types/sessions/state.d.ts +34 -1
  497. package/dist/types/sessions/state_write_order.d.ts +39 -0
  498. package/dist/types/telemetry/tracing.d.ts +15 -0
  499. package/dist/types/tools/base_tool.d.ts +15 -0
  500. package/dist/types/tools/finish_task_tool.d.ts +47 -0
  501. package/dist/types/tools/function_tool.d.ts +46 -1
  502. package/dist/types/tools/mcp/index.d.ts +13 -0
  503. package/dist/types/tools/mcp/mcp_session_manager.d.ts +3 -3
  504. package/dist/types/tools/mcp/mcp_tool.d.ts +1 -1
  505. package/dist/types/tools/mcp/mcp_toolset.d.ts +1 -1
  506. package/dist/types/tools/request_input_tool.d.ts +6 -1
  507. package/dist/types/tools/skill/skill_toolset.d.ts +26 -0
  508. package/dist/types/tools/tool_confirmation.d.ts +47 -0
  509. package/dist/types/utils/async_queue.d.ts +34 -2
  510. package/dist/types/utils/deprecated.d.ts +21 -0
  511. package/dist/types/utils/env_aware_utils.d.ts +16 -0
  512. package/dist/types/utils/file_utils.d.ts +10 -2
  513. package/dist/types/utils/genai_schema_to_json.d.ts +25 -0
  514. package/dist/types/utils/optional_peer.d.ts +36 -0
  515. package/dist/types/utils/redact_uri.d.ts +28 -0
  516. package/dist/types/utils/schema.d.ts +73 -0
  517. package/dist/types/utils/simple_zod_to_json.d.ts +8 -0
  518. package/dist/types/utils/vertex_ai_utils.d.ts +4 -0
  519. package/dist/types/version.d.ts +1 -1
  520. package/dist/types/workflow/base_node.d.ts +142 -0
  521. package/dist/types/workflow/branch_path.d.ts +40 -0
  522. package/dist/types/workflow/dynamic_node_scheduler.d.ts +64 -0
  523. package/dist/types/workflow/errors.d.ts +132 -0
  524. package/dist/types/workflow/graph.d.ts +127 -0
  525. package/dist/types/workflow/index.d.ts +46 -0
  526. package/dist/types/workflow/node.d.ts +48 -0
  527. package/dist/types/workflow/node_builders.d.ts +25 -0
  528. package/dist/types/workflow/node_context.d.ts +208 -0
  529. package/dist/types/workflow/node_error_event.d.ts +18 -0
  530. package/dist/types/workflow/node_runner.d.ts +82 -0
  531. package/dist/types/workflow/node_state.d.ts +47 -0
  532. package/dist/types/workflow/node_status.d.ts +28 -0
  533. package/dist/types/workflow/nodes/function_node.d.ts +78 -0
  534. package/dist/types/workflow/nodes/join_node.d.ts +24 -0
  535. package/dist/types/workflow/nodes/node_tool.d.ts +53 -0
  536. package/dist/types/workflow/nodes/parallel_worker.d.ts +55 -0
  537. package/dist/types/workflow/nodes/tool_node.d.ts +34 -0
  538. package/dist/types/workflow/request_input.d.ts +73 -0
  539. package/dist/types/workflow/retry_config.d.ts +84 -0
  540. package/dist/types/workflow/run_llm_agent_as_node.d.ts +28 -0
  541. package/dist/types/workflow/run_node_as_invocation.d.ts +72 -0
  542. package/dist/types/workflow/schedule_dynamic_node.d.ts +66 -0
  543. package/dist/types/workflow/trigger.d.ts +22 -0
  544. package/dist/types/workflow/utils/graph_parser.d.ts +8 -0
  545. package/dist/types/workflow/utils/graph_validation.d.ts +18 -0
  546. package/dist/types/workflow/utils/hitl_utils.d.ts +92 -0
  547. package/dist/types/workflow/utils/rehydration_utils.d.ts +132 -0
  548. package/dist/types/workflow/utils/retry_utils.d.ts +54 -0
  549. package/dist/types/workflow/utils/workflow_graph_utils.d.ts +76 -0
  550. package/dist/types/workflow/workflow.d.ts +115 -0
  551. package/dist/web/a2a/a2a_event.js +19 -0
  552. package/dist/web/a2a/a2a_remote_agent.js +6 -2
  553. package/dist/web/a2a/a2a_remote_agent_run_processor.js +8 -3
  554. package/dist/web/a2a/a2a_remote_agent_utils.js +10 -2
  555. package/dist/web/a2a/agent_card.js +34 -3
  556. package/dist/web/a2a/agent_executor.js +45 -17
  557. package/dist/web/a2a/agent_to_a2a.js +44 -15
  558. package/dist/web/a2a/auth.js +4 -0
  559. package/dist/web/a2a/event_converter_utils.js +10 -0
  560. package/dist/web/a2a/event_processor_utils.js +73 -34
  561. package/dist/web/a2a/executor_context.js +3 -0
  562. package/dist/web/a2a/index.js +20 -0
  563. package/dist/web/a2a/metadata_converter_utils.js +5 -0
  564. package/dist/web/a2a/part_converter_utils.js +13 -0
  565. package/dist/web/agents/active_streaming_tool.js +6 -2
  566. package/dist/web/agents/base_agent.js +48 -9
  567. package/dist/web/agents/context.js +6 -2
  568. package/dist/web/agents/framework_function_calls.js +34 -0
  569. package/dist/web/agents/functions.js +42 -13
  570. package/dist/web/agents/instructions.js +52 -12
  571. package/dist/web/agents/invocation_context.js +56 -7
  572. package/dist/web/agents/live_request_queue.js +30 -5
  573. package/dist/web/agents/llm_agent.js +630 -52
  574. package/dist/web/agents/loop_agent.js +21 -2
  575. package/dist/web/agents/parallel_agent.js +23 -2
  576. package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +8 -4
  577. package/dist/web/agents/processors/base_llm_processor.js +10 -4
  578. package/dist/web/agents/processors/basic_llm_request_processor.js +6 -3
  579. package/dist/web/agents/processors/code_execution_request_processor.js +19 -5
  580. package/dist/web/agents/processors/content_processor_utils.js +87 -16
  581. package/dist/web/agents/processors/content_request_processor.js +10 -4
  582. package/dist/web/agents/processors/context_compactor_request_processor.js +6 -2
  583. package/dist/web/agents/processors/identity_llm_request_processor.js +13 -4
  584. package/dist/web/agents/processors/instructions_llm_request_processor.js +6 -2
  585. package/dist/web/agents/processors/interactions_request_processor.js +6 -2
  586. package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +329 -104
  587. package/dist/web/agents/processors/request_input_llm_request_processor.js +228 -0
  588. package/dist/web/agents/processors/tool_filter_request_processor.js +6 -2
  589. package/dist/web/agents/readonly_context.js +8 -3
  590. package/dist/web/agents/routed_agent.js +6 -14
  591. package/dist/web/agents/run_config.js +12 -0
  592. package/dist/web/agents/sequential_agent.js +22 -3
  593. package/dist/web/agents/user_input_request.js +135 -0
  594. package/dist/web/apps/app.js +14 -11
  595. package/dist/web/apps/resumability_config.js +2 -0
  596. package/dist/web/artifacts/file_artifact_service.js +22 -2
  597. package/dist/web/artifacts/gcs_artifact_service.js +56 -11
  598. package/dist/web/artifacts/in_memory_artifact_service.js +10 -2
  599. package/dist/web/artifacts/registry.js +7 -1
  600. package/dist/web/artifacts/scoped_artifact_service.js +5 -2
  601. package/dist/web/auth/auth_handler.js +5 -2
  602. package/dist/web/auth/auth_preprocessor.js +50 -41
  603. package/dist/web/auth/auth_provider_registry.js +6 -2
  604. package/dist/web/auth/auth_schemes.js +3 -0
  605. package/dist/web/auth/credential_response_binding.js +91 -0
  606. package/dist/web/auth/credential_service/in_memory_credential_service.js +6 -2
  607. package/dist/web/auth/credential_service/session_state_credential_service.js +6 -2
  608. package/dist/web/auth/exchanger/base_credential_exchanger.js +6 -2
  609. package/dist/web/auth/exchanger/credential_exchanger_registry.js +6 -2
  610. package/dist/web/auth/oauth2/oauth2_credential_exchanger.js +8 -2
  611. package/dist/web/auth/oauth2/oauth2_credential_refresher.js +5 -2
  612. package/dist/web/auth/oauth2/oauth2_discovery.js +8 -2
  613. package/dist/web/auth/oauth2/oauth2_utils.js +7 -0
  614. package/dist/web/auth/refresher/base_credential_refresher.js +6 -2
  615. package/dist/web/auth/refresher/credential_refresher_registry.js +6 -2
  616. package/dist/web/code_executors/agent_engine_sandbox_code_executor.js +3 -0
  617. package/dist/web/code_executors/base_code_executor.js +7 -2
  618. package/dist/web/code_executors/built_in_code_executor.js +7 -2
  619. package/dist/web/code_executors/code_execution_utils.js +7 -0
  620. package/dist/web/code_executors/code_executor_context.js +6 -2
  621. package/dist/web/code_executors/unsafe_local_code_executor.js +9 -2
  622. package/dist/web/common.js +109 -4
  623. package/dist/web/context/agent_controlled_context_compactor.js +6 -2
  624. package/dist/web/context/anchored_context_compactor.js +5 -2
  625. package/dist/web/context/compaction_utils.js +4 -0
  626. package/dist/web/context/summarizers/llm_summarizer.js +6 -2
  627. package/dist/web/context/token_based_context_compactor.js +10 -3
  628. package/dist/web/context/trajectory_thought_pruning_compactor.js +6 -2
  629. package/dist/web/context/truncating_context_compactor.js +6 -2
  630. package/dist/web/environment/base_environment.js +71 -0
  631. package/dist/web/environment/local_environment.js +165 -0
  632. package/dist/web/events/compacted_event.js +4 -0
  633. package/dist/web/events/event.js +37 -3
  634. package/dist/web/events/event_actions.js +5 -0
  635. package/dist/web/events/structured_events.js +3 -0
  636. package/dist/web/examples/base_example_provider.js +7 -2
  637. package/dist/web/examples/example_util.js +4 -0
  638. package/dist/web/features/feature_registry.js +8 -0
  639. package/dist/web/index.js +4 -15
  640. package/dist/web/integrations/agent_registry/agent_registry.js +8 -4
  641. package/dist/web/integrations/agent_registry/agent_registry_mcp_toolset.js +5 -2
  642. package/dist/web/integrations/agent_registry/helpers.js +4 -0
  643. package/dist/web/memory/in_memory_memory_service.js +9 -2
  644. package/dist/web/memory/vertex_ai_memory_bank_service.js +17 -2
  645. package/dist/web/models/apigee_llm.js +9 -3
  646. package/dist/web/models/base_llm.js +8 -3
  647. package/dist/web/models/gemini_llm_connection.js +6 -2
  648. package/dist/web/models/google_llm.js +25 -13
  649. package/dist/web/models/interactions_utils.js +17 -0
  650. package/dist/web/models/llm_request.js +5 -0
  651. package/dist/web/models/llm_response.js +3 -0
  652. package/dist/web/models/registry.js +7 -2
  653. package/dist/web/models/routed_llm.js +4 -14
  654. package/dist/web/plugins/base_plugin.js +39 -5
  655. package/dist/web/plugins/global_instruction_plugin.js +6 -2
  656. package/dist/web/plugins/logging_plugin.js +14 -8
  657. package/dist/web/plugins/plugin_manager.js +38 -2
  658. package/dist/web/plugins/security_plugin.js +14 -6
  659. package/dist/web/runner/in_memory_runner.js +6 -2
  660. package/dist/web/runner/runner.js +232 -20
  661. package/dist/web/sessions/base_session_service.js +14 -2
  662. package/dist/web/sessions/database_session_service.js +6 -2
  663. package/dist/web/sessions/db/operations.js +34 -6
  664. package/dist/web/sessions/db/schema.js +16 -8
  665. package/dist/web/sessions/in_memory_session_service.js +23 -14
  666. package/dist/web/sessions/registry.js +5 -1
  667. package/dist/web/sessions/session.js +3 -0
  668. package/dist/web/sessions/state.js +77 -7
  669. package/dist/web/sessions/state_write_order.js +74 -0
  670. package/dist/web/sessions/vertex_ai_session_service.js +118 -15
  671. package/dist/web/skills/gcp_skill_registry.js +2 -0
  672. package/dist/web/skills/loader.js +22 -10
  673. package/dist/web/skills/prompt.js +4 -0
  674. package/dist/web/telemetry/google_cloud.js +54 -9
  675. package/dist/web/telemetry/setup.js +6 -0
  676. package/dist/web/telemetry/tracing.js +77 -7
  677. package/dist/web/tools/agent_tool.js +7 -2
  678. package/dist/web/tools/base_tool.js +25 -2
  679. package/dist/web/tools/base_toolset.js +7 -2
  680. package/dist/web/tools/consolidate_context_tool.js +6 -2
  681. package/dist/web/tools/enterprise_web_search_tool.js +7 -2
  682. package/dist/web/tools/example_tool.js +6 -2
  683. package/dist/web/tools/exit_loop_tool.js +6 -2
  684. package/dist/web/tools/finish_task_tool.js +92 -0
  685. package/dist/web/tools/forwarding_artifact_service.js +6 -2
  686. package/dist/web/tools/function_tool.js +74 -8
  687. package/dist/web/tools/get_user_choice_tool.js +4 -2
  688. package/dist/web/tools/google_maps_grounding_tool.js +7 -2
  689. package/dist/web/tools/google_search_tool.js +6 -2
  690. package/dist/web/tools/load_artifacts_tool.js +9 -2
  691. package/dist/web/tools/load_memory_tool.js +6 -2
  692. package/dist/web/tools/load_web_page.js +22 -1
  693. package/dist/web/tools/long_running_tool.js +5 -2
  694. package/dist/web/tools/mcp/index.js +11 -0
  695. package/dist/web/tools/mcp/load_mcp_resource_tool.js +6 -2
  696. package/dist/web/tools/mcp/mcp_session_manager.js +45 -9
  697. package/dist/web/tools/mcp/mcp_tool.js +6 -2
  698. package/dist/web/tools/mcp/mcp_toolset.js +5 -2
  699. package/dist/web/tools/openapi_tool/auth/auth_helpers.js +5 -0
  700. package/dist/web/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +2 -0
  701. package/dist/web/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +2 -0
  702. package/dist/web/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +30 -9
  703. package/dist/web/tools/openapi_tool/openapi_spec_parser/operation_parser.js +2 -0
  704. package/dist/web/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +6 -2
  705. package/dist/web/tools/openapi_tool/openapi_toolset.js +2 -0
  706. package/dist/web/tools/openapi_tool/rest_api_tool.js +23 -5
  707. package/dist/web/tools/preload_memory_tool.js +6 -2
  708. package/dist/web/tools/request_input_tool.js +7 -4
  709. package/dist/web/tools/skill/list_skills_tool.js +2 -0
  710. package/dist/web/tools/skill/load_skill_resource_tool.js +2 -0
  711. package/dist/web/tools/skill/load_skill_tool.js +4 -1
  712. package/dist/web/tools/skill/run_skill_inline_script_tool.js +26 -2
  713. package/dist/web/tools/skill/run_skill_script_tool.js +28 -2
  714. package/dist/web/tools/skill/search_skills_tool.js +2 -0
  715. package/dist/web/tools/skill/skill_toolset.js +25 -0
  716. package/dist/web/tools/tool_confirmation.js +24 -2
  717. package/dist/web/tools/url_context_tool.js +6 -2
  718. package/dist/web/tools/vertex_ai_search_tool.js +6 -2
  719. package/dist/web/tools/vertex_rag_retrieval_tool.js +6 -2
  720. package/dist/web/utils/async_hooks_shim.js +6 -2
  721. package/dist/web/utils/async_queue.js +46 -18
  722. package/dist/web/utils/branch_trie.js +3 -0
  723. package/dist/web/utils/case_utils.js +3 -0
  724. package/dist/web/utils/client_labels.js +6 -0
  725. package/dist/web/utils/crypto_shim.js +3 -0
  726. package/dist/web/utils/deprecated.js +40 -0
  727. package/dist/web/utils/env_aware_utils.js +41 -0
  728. package/dist/web/utils/error_utils.js +9 -0
  729. package/dist/web/utils/experimental.js +10 -2
  730. package/dist/web/utils/failover_utils.js +4 -0
  731. package/dist/web/utils/file_extension_utils.js +4 -0
  732. package/dist/web/utils/file_utils.js +7 -2
  733. package/dist/web/utils/gemini_schema_util.js +6 -2
  734. package/dist/web/utils/genai_schema_to_json.js +80 -0
  735. package/dist/web/utils/live_connection_utils.js +5 -2
  736. package/dist/web/utils/logger.js +14 -4
  737. package/dist/web/utils/model_name.js +9 -0
  738. package/dist/web/utils/object_notation_utils.js +8 -3
  739. package/dist/web/utils/optional_peer.js +38 -0
  740. package/dist/web/utils/output_schema_utils.js +3 -0
  741. package/dist/web/utils/partial_copy.js +3 -0
  742. package/dist/web/utils/redact_uri.js +39 -0
  743. package/dist/web/utils/schema.js +167 -0
  744. package/dist/web/utils/simple_zod_to_json.js +15 -4
  745. package/dist/web/utils/streaming_utils.js +14 -6
  746. package/dist/web/utils/task.js +8 -4
  747. package/dist/web/utils/variant_utils.js +5 -2
  748. package/dist/web/utils/vertex_ai_utils.js +5 -2
  749. package/dist/web/version.js +1 -1
  750. package/dist/web/workflow/base_node.js +215 -0
  751. package/dist/web/workflow/branch_path.js +77 -0
  752. package/dist/web/workflow/dynamic_node_scheduler.js +202 -0
  753. package/dist/web/workflow/errors.js +140 -0
  754. package/dist/web/workflow/graph.js +127 -0
  755. package/dist/web/workflow/index.js +80 -0
  756. package/dist/web/workflow/node.js +87 -0
  757. package/dist/web/workflow/node_builders.js +40 -0
  758. package/dist/web/workflow/node_context.js +236 -0
  759. package/dist/web/workflow/node_error_event.js +86 -0
  760. package/dist/web/workflow/node_runner.js +481 -0
  761. package/dist/web/workflow/node_state.js +43 -0
  762. package/dist/web/workflow/node_status.js +20 -0
  763. package/dist/web/workflow/nodes/function_node.js +221 -0
  764. package/dist/web/workflow/nodes/join_node.js +47 -0
  765. package/dist/web/workflow/nodes/node_tool.js +131 -0
  766. package/dist/web/workflow/nodes/parallel_worker.js +120 -0
  767. package/dist/web/workflow/nodes/tool_node.js +126 -0
  768. package/dist/web/workflow/request_input.js +36 -0
  769. package/dist/web/workflow/retry_config.js +43 -0
  770. package/dist/web/workflow/run_llm_agent_as_node.js +266 -0
  771. package/dist/web/workflow/run_node_as_invocation.js +170 -0
  772. package/dist/web/workflow/schedule_dynamic_node.js +26 -0
  773. package/dist/web/workflow/trigger.js +7 -0
  774. package/dist/web/workflow/utils/graph_parser.js +188 -0
  775. package/dist/web/workflow/utils/graph_validation.js +189 -0
  776. package/dist/web/workflow/utils/hitl_utils.js +239 -0
  777. package/dist/web/workflow/utils/rehydration_utils.js +342 -0
  778. package/dist/web/workflow/utils/retry_utils.js +82 -0
  779. package/dist/web/workflow/utils/workflow_graph_utils.js +115 -0
  780. package/dist/web/workflow/workflow.js +529 -0
  781. package/package.json +82 -8
@@ -1,5 +1,7 @@
1
1
  import {createRequire as topLevelCreateRequire} from 'module';
2
2
  const require = topLevelCreateRequire(import.meta.url);
3
+ var __defProp = Object.defineProperty;
4
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
5
  /**
4
6
  * @license
5
7
  * Copyright 2026 Google LLC
@@ -8,7 +10,7 @@ const require = topLevelCreateRequire(import.meta.url);
8
10
  import { injectSessionState } from "../agents/instructions.js";
9
11
  import { ReadonlyContext } from "../agents/readonly_context.js";
10
12
  import { BasePlugin } from "./base_plugin.js";
11
- class GlobalInstructionPlugin extends BasePlugin {
13
+ const _GlobalInstructionPlugin = class _GlobalInstructionPlugin extends BasePlugin {
12
14
  /**
13
15
  * Initializes the GlobalInstructionPlugin.
14
16
  *
@@ -63,7 +65,9 @@ ${existingInstruction}`;
63
65
  }
64
66
  return await this.globalInstruction(readonlyContext);
65
67
  }
66
- }
68
+ };
69
+ __name(_GlobalInstructionPlugin, "GlobalInstructionPlugin");
70
+ let GlobalInstructionPlugin = _GlobalInstructionPlugin;
67
71
  export {
68
72
  GlobalInstructionPlugin
69
73
  };
@@ -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
@@ -12,7 +14,7 @@ import {
12
14
  } from "../events/event.js";
13
15
  import { logger } from "../utils/logger.js";
14
16
  import { BasePlugin } from "./base_plugin.js";
15
- class LoggingPlugin extends BasePlugin {
17
+ const _LoggingPlugin = class _LoggingPlugin extends BasePlugin {
16
18
  /**
17
19
  * Initialize the logging plugin.
18
20
  *
@@ -25,13 +27,13 @@ class LoggingPlugin extends BasePlugin {
25
27
  invocationContext,
26
28
  userMessage
27
29
  }) {
28
- var _a;
30
+ var _a, _b;
29
31
  this.log("\u{1F680} USER MESSAGE RECEIVED");
30
32
  this.log(` Invocation ID: ${invocationContext.invocationId}`);
31
33
  this.log(` Session ID: ${invocationContext.session.id}`);
32
34
  this.log(` User ID: ${invocationContext.userId}`);
33
35
  this.log(` App Name: ${invocationContext.appName}`);
34
- this.log(` Root Agent: ${(_a = invocationContext.agent.name) != null ? _a : "Unknown"}`);
36
+ this.log(` Root Agent: ${(_b = (_a = invocationContext.agent) == null ? void 0 : _a.name) != null ? _b : "Unknown"}`);
35
37
  this.log(` User Content: ${this.formatContent(userMessage)}`);
36
38
  if (invocationContext.branch) {
37
39
  this.log(` Branch: ${invocationContext.branch}`);
@@ -41,10 +43,12 @@ class LoggingPlugin extends BasePlugin {
41
43
  async beforeRunCallback({
42
44
  invocationContext
43
45
  }) {
44
- var _a;
46
+ var _a, _b;
45
47
  this.log("\u{1F3C3} INVOCATION STARTING");
46
48
  this.log(` Invocation ID: ${invocationContext.invocationId}`);
47
- this.log(` Starting Agent: ${(_a = invocationContext.agent.name) != null ? _a : "Unknown"}`);
49
+ this.log(
50
+ ` Starting Agent: ${(_b = (_a = invocationContext.agent) == null ? void 0 : _a.name) != null ? _b : "Unknown"}`
51
+ );
48
52
  return void 0;
49
53
  }
50
54
  async onEventCallback({
@@ -73,10 +77,10 @@ class LoggingPlugin extends BasePlugin {
73
77
  async afterRunCallback({
74
78
  invocationContext
75
79
  }) {
76
- var _a;
80
+ var _a, _b;
77
81
  this.log("\u2705 INVOCATION COMPLETED");
78
82
  this.log(` Invocation ID: ${invocationContext.invocationId}`);
79
- this.log(` Final Agent: ${(_a = invocationContext.agent.name) != null ? _a : "Unknown"}`);
83
+ this.log(` Final Agent: ${(_b = (_a = invocationContext.agent) == null ? void 0 : _a.name) != null ? _b : "Unknown"}`);
80
84
  return void 0;
81
85
  }
82
86
  async beforeAgentCallback({
@@ -229,7 +233,9 @@ class LoggingPlugin extends BasePlugin {
229
233
  }
230
234
  return formatted;
231
235
  }
232
- }
236
+ };
237
+ __name(_LoggingPlugin, "LoggingPlugin");
238
+ let LoggingPlugin = _LoggingPlugin;
233
239
  export {
234
240
  LoggingPlugin
235
241
  };
@@ -1,12 +1,14 @@
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
6
8
  * SPDX-License-Identifier: Apache-2.0
7
9
  */
8
10
  import { logger } from "../utils/logger.js";
9
- class PluginManager {
11
+ const _PluginManager = class _PluginManager {
10
12
  /**
11
13
  * Initializes the plugin service.
12
14
  *
@@ -21,6 +23,10 @@ class PluginManager {
21
23
  }
22
24
  }
23
25
  }
26
+ /** Whether any plugin is registered. */
27
+ get hasPlugins() {
28
+ return this.plugins.size > 0;
29
+ }
24
30
  /**
25
31
  * Registers a new plugin.
26
32
  *
@@ -153,6 +159,34 @@ class PluginManager {
153
159
  "afterAgentCallback"
154
160
  );
155
161
  }
162
+ /**
163
+ * Runs the `beforeNodeCallback` for all plugins.
164
+ */
165
+ async runBeforeNodeCallback({
166
+ node,
167
+ nodeContext,
168
+ input
169
+ }) {
170
+ return this.runCallbacks(
171
+ this.plugins,
172
+ (plugin) => plugin.beforeNodeCallback({ node, nodeContext, input }),
173
+ "beforeNodeCallback"
174
+ );
175
+ }
176
+ /**
177
+ * Runs the `afterNodeCallback` for all plugins.
178
+ */
179
+ async runAfterNodeCallback({
180
+ node,
181
+ nodeContext,
182
+ output
183
+ }) {
184
+ return this.runCallbacks(
185
+ this.plugins,
186
+ (plugin) => plugin.afterNodeCallback({ node, nodeContext, output }),
187
+ "afterNodeCallback"
188
+ );
189
+ }
156
190
  /**
157
191
  * Runs the `beforeToolSelection` for all plugins.
158
192
  */
@@ -276,7 +310,9 @@ class PluginManager {
276
310
  "onToolErrorCallback"
277
311
  );
278
312
  }
279
- }
313
+ };
314
+ __name(_PluginManager, "PluginManager");
315
+ let PluginManager = _PluginManager;
280
316
  export {
281
317
  PluginManager
282
318
  };
@@ -1,12 +1,14 @@
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
6
8
  * SPDX-License-Identifier: Apache-2.0
7
9
  */
10
+ import { REQUEST_CONFIRMATION_FUNCTION_CALL_NAME } from "../agents/functions.js";
8
11
  import { BasePlugin } from "../plugins/base_plugin.js";
9
- const REQUEST_CONFIRMATION_FUNCTION_CALL_NAME = "adk_request_confirmation";
10
12
  const TOOL_CALL_SECURITY_CHECK_STATES = "orcas_tool_call_security_check_states";
11
13
  const INTERMEDIATE_REQUIRE_TOOL_CALL_CONFIRMATION_ERROR = "This tool call needs external confirmation before completion.";
12
14
  var PolicyOutcome = /* @__PURE__ */ ((PolicyOutcome2) => {
@@ -15,20 +17,23 @@ var PolicyOutcome = /* @__PURE__ */ ((PolicyOutcome2) => {
15
17
  PolicyOutcome2["ALLOW"] = "ALLOW";
16
18
  return PolicyOutcome2;
17
19
  })(PolicyOutcome || {});
18
- class InMemoryPolicyEngine {
20
+ const _InMemoryPolicyEngine = class _InMemoryPolicyEngine {
19
21
  /**
20
22
  * Always returns {@link PolicyOutcome.ALLOW} for every tool call.
21
23
  *
24
+ * @param _context - The tool and its arguments; ignored.
22
25
  * @returns A promise resolving to an ALLOW result.
23
26
  */
24
- async evaluate() {
27
+ async evaluate(_context) {
25
28
  return Promise.resolve({
26
29
  outcome: "ALLOW" /* ALLOW */,
27
30
  reason: "For prototyping purpose, all tool calls are allowed."
28
31
  });
29
32
  }
30
- }
31
- class SecurityPlugin extends BasePlugin {
33
+ };
34
+ __name(_InMemoryPolicyEngine, "InMemoryPolicyEngine");
35
+ let InMemoryPolicyEngine = _InMemoryPolicyEngine;
36
+ const _SecurityPlugin = class _SecurityPlugin extends BasePlugin {
32
37
  /**
33
38
  * @param params - Optional configuration. Defaults to {@link InMemoryPolicyEngine}
34
39
  * when no policy engine is provided.
@@ -118,7 +123,9 @@ class SecurityPlugin extends BasePlugin {
118
123
  return;
119
124
  }
120
125
  }
121
- }
126
+ };
127
+ __name(_SecurityPlugin, "SecurityPlugin");
128
+ let SecurityPlugin = _SecurityPlugin;
122
129
  function getAskUserConfirmationFunctionCalls(event) {
123
130
  if (!event.content || !event.content.parts) {
124
131
  return [];
@@ -131,6 +138,7 @@ function getAskUserConfirmationFunctionCalls(event) {
131
138
  }
132
139
  return results;
133
140
  }
141
+ __name(getAskUserConfirmationFunctionCalls, "getAskUserConfirmationFunctionCalls");
134
142
  export {
135
143
  InMemoryPolicyEngine,
136
144
  PolicyOutcome,
@@ -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
@@ -9,7 +11,7 @@ import { InMemoryArtifactService } from "../artifacts/in_memory_artifact_service
9
11
  import { InMemoryMemoryService } from "../memory/in_memory_memory_service.js";
10
12
  import { InMemorySessionService } from "../sessions/in_memory_session_service.js";
11
13
  import { Runner } from "./runner.js";
12
- class InMemoryRunner extends Runner {
14
+ const _InMemoryRunner = class _InMemoryRunner extends Runner {
13
15
  /**
14
16
  * Creates a new InMemoryRunner instance.
15
17
  *
@@ -40,7 +42,9 @@ class InMemoryRunner extends Runner {
40
42
  resumabilityConfig: (_a = app == null ? void 0 : app.resumabilityConfig) != null ? _a : resumabilityConfig
41
43
  });
42
44
  }
43
- }
45
+ };
46
+ __name(_InMemoryRunner, "InMemoryRunner");
47
+ let InMemoryRunner = _InMemoryRunner;
44
48
  export {
45
49
  InMemoryRunner
46
50
  };
@@ -1,17 +1,22 @@
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
6
8
  * SPDX-License-Identifier: Apache-2.0
7
9
  */
8
10
  var _a;
9
- import { createPartFromText } from "@google/genai";
11
+ import { createPartFromText, Modality } from "@google/genai";
10
12
  import { context, trace } from "@opentelemetry/api";
13
+ import { isBaseAgent } from "../agents/base_agent.js";
14
+ import { reservedFunctionCallName } from "../agents/framework_function_calls.js";
11
15
  import { findMatchingFunctionCall } from "../agents/functions.js";
12
16
  import {
13
17
  InvocationContext,
14
- newInvocationContextId
18
+ newInvocationContextId,
19
+ requireAgent
15
20
  } from "../agents/invocation_context.js";
16
21
  import { isLlmAgent } from "../agents/llm_agent.js";
17
22
  import { createRunConfig } from "../agents/run_config.js";
@@ -30,12 +35,17 @@ import {
30
35
  import { isBaseToolset } from "../tools/base_toolset.js";
31
36
  import { logger } from "../utils/logger.js";
32
37
  import { isGemini2OrAbove } from "../utils/model_name.js";
38
+ import {
39
+ asRunnableRoot,
40
+ runNodeAsInvocation
41
+ } from "../workflow/run_node_as_invocation.js";
33
42
  const RUNNER_SIGNATURE_SYMBOL = Symbol.for("google.adk.runner");
34
43
  function isRunner(obj) {
35
44
  return typeof obj === "object" && obj !== null && RUNNER_SIGNATURE_SYMBOL in obj && obj[RUNNER_SIGNATURE_SYMBOL] === true;
36
45
  }
46
+ __name(isRunner, "isRunner");
37
47
  _a = RUNNER_SIGNATURE_SYMBOL;
38
- class Runner {
48
+ const _Runner = class _Runner {
39
49
  /**
40
50
  * Creates a new Runner instance.
41
51
  *
@@ -52,7 +62,7 @@ class Runner {
52
62
  );
53
63
  }
54
64
  this.appName = appName;
55
- this.agent = agent;
65
+ this.agent = asRunnableRoot(agent);
56
66
  const appPlugins = (_f = (_e = input.app) == null ? void 0 : _e.plugins) != null ? _f : [];
57
67
  const configPlugins = (_g = input.plugins) != null ? _g : [];
58
68
  this.pluginManager = new PluginManager([...appPlugins, ...configPlugins]);
@@ -113,6 +123,7 @@ class Runner {
113
123
  if (newMessage && !newMessage.role) {
114
124
  newMessage.role = "user";
115
125
  }
126
+ rejectReservedFunctionCalls(newMessage);
116
127
  const span = tracer.startSpan("invocation");
117
128
  const ctx = trace.setSpan(context.active(), span);
118
129
  try {
@@ -159,7 +170,7 @@ class Runner {
159
170
  memoryService: this.memoryService,
160
171
  credentialService: this.credentialService,
161
172
  invocationId: newInvocationContextId(),
162
- agent: this.agent,
173
+ agent: isBaseAgent(this.agent) ? this.agent : void 0,
163
174
  session,
164
175
  userContent: newMessage,
165
176
  runConfig,
@@ -205,10 +216,12 @@ class Runner {
205
216
  return;
206
217
  }
207
218
  }
208
- invocationContext.agent = this.determineAgentForResumption(
209
- session,
210
- this.agent
211
- );
219
+ if (isBaseAgent(this.agent)) {
220
+ invocationContext.agent = this.determineAgentForResumption(
221
+ session,
222
+ this.agent
223
+ );
224
+ }
212
225
  if (newMessage) {
213
226
  const beforeRunCallbackResponse = await this.pluginManager.runBeforeRunCallback({
214
227
  invocationContext
@@ -231,9 +244,7 @@ class Runner {
231
244
  }
232
245
  yield earlyExitEvent;
233
246
  } else {
234
- for await (const event of invocationContext.agent.runAsync(
235
- invocationContext
236
- )) {
247
+ for await (const event of this.runRoot(invocationContext)) {
237
248
  if ((_h = params.abortSignal) == null ? void 0 : _h.aborted) {
238
249
  return;
239
250
  }
@@ -270,10 +281,29 @@ class Runner {
270
281
  );
271
282
  } finally {
272
283
  span.end();
273
- const toolsets = getAllToolsets(this.agent);
284
+ const toolsets = isBaseAgent(this.agent) ? getAllToolsets(this.agent) : [];
274
285
  await Promise.allSettled(toolsets.map((t) => t.close()));
275
286
  }
276
287
  }
288
+ /**
289
+ * Runs whatever this runner was given as its root.
290
+ *
291
+ * An agent is run through `runAsync`, as always. A bare node — a `Workflow`
292
+ * handed to the runner directly — is driven by {@link runNodeAsInvocation}.
293
+ *
294
+ * Only the execution differs. Everything around it (the run callbacks, event
295
+ * persistence, cancellation) is shared, so the node path cannot drift from
296
+ * the agent path on the things that are not about execution. adk-python has
297
+ * two separate loops here and a TODO noting its node one lacks tracing and
298
+ * plugins; there is nothing to lack if there is only one loop.
299
+ */
300
+ async *runRoot(invocationContext) {
301
+ if (isBaseAgent(this.agent)) {
302
+ yield* requireAgent(invocationContext).runAsync(invocationContext);
303
+ return;
304
+ }
305
+ yield* runNodeAsInvocation(this.agent, invocationContext);
306
+ }
277
307
  /**
278
308
  * Saves artifacts from the message parts and replaces the inline data with
279
309
  * a file name placeholder and optional file reference.
@@ -372,8 +402,150 @@ class Runner {
372
402
  isRoutableLlmAgent(agentToRun) {
373
403
  return isRoutableLlmAgent(agentToRun);
374
404
  }
375
- // TODO - b/425992518: Implement runLive and related methods.
405
+ /**
406
+ * Runs the agent in the live (bidirectional streaming) mode.
407
+ *
408
+ * Model media events that carry raw inline bytes (audio, video, or image)
409
+ * are yielded but not appended to the session to avoid persisting large
410
+ * blobs; events with `fileData` references and most other live events
411
+ * (transcriptions, tool calls, usage) are persisted as in `runAsync`.
412
+ *
413
+ * This feature is **experimental** and its API may change.
414
+ *
415
+ * @param params.userId The user ID of the session.
416
+ * @param params.sessionId The session ID of the session.
417
+ * @param params.liveRequestQueue The queue used to feed the live model.
418
+ * @param params.runConfig The run config for the agent.
419
+ * @param params.abortSignal Optional signal to abort the live run.
420
+ * @param params.liveSessionResumptionHandle Optional session resumption
421
+ * handle observed from a prior `runLive` cycle on the same conversation.
422
+ * When set, the agent's live flow opens the connection with
423
+ * `liveConnectConfig.sessionResumption.handle` so the server restores its
424
+ * state instead of relying on client-side history replay.
425
+ * @yields The events generated by the agent.
426
+ */
427
+ async *runLive(params) {
428
+ var _a2, _b, _c, _d;
429
+ if (!params.liveRequestQueue) {
430
+ throw new Error("liveRequestQueue is required for runLive.");
431
+ }
432
+ if (!isBaseAgent(this.agent)) {
433
+ throw new Error("runLive is only supported for agents.");
434
+ }
435
+ const agent = this.agent;
436
+ const runConfig = createRunConfig(params.runConfig);
437
+ if (!((_a2 = runConfig.responseModalities) == null ? void 0 : _a2.length)) {
438
+ runConfig.responseModalities = [Modality.AUDIO];
439
+ }
440
+ if ((_b = agent.subAgents) == null ? void 0 : _b.length) {
441
+ if (runConfig.responseModalities.includes(Modality.AUDIO)) {
442
+ (_c = runConfig.outputAudioTranscription) != null ? _c : runConfig.outputAudioTranscription = {};
443
+ }
444
+ (_d = runConfig.inputAudioTranscription) != null ? _d : runConfig.inputAudioTranscription = {};
445
+ }
446
+ const span = tracer.startSpan("invocation");
447
+ const ctx = trace.setSpan(context.active(), span);
448
+ try {
449
+ yield* runAsyncGeneratorWithOtelContext(
450
+ ctx,
451
+ this,
452
+ async function* () {
453
+ var _a3, _b2, _c2, _d2;
454
+ const session = await this.sessionService.getOrCreateSession({
455
+ appName: this.appName,
456
+ userId: params.userId,
457
+ sessionId: params.sessionId
458
+ });
459
+ if ((_a3 = params.abortSignal) == null ? void 0 : _a3.aborted) {
460
+ return;
461
+ }
462
+ const invocationContext = new InvocationContext({
463
+ artifactService: this.artifactService ? new ScopedArtifactService(
464
+ this.artifactService,
465
+ this.appName,
466
+ params.userId,
467
+ params.sessionId
468
+ ) : void 0,
469
+ sessionService: this.sessionService,
470
+ memoryService: this.memoryService,
471
+ credentialService: this.credentialService,
472
+ invocationId: newInvocationContextId(),
473
+ agent,
474
+ session,
475
+ runConfig,
476
+ pluginManager: this.pluginManager,
477
+ liveRequestQueue: params.liveRequestQueue,
478
+ abortSignal: params.abortSignal,
479
+ liveSessionResumptionHandle: params.liveSessionResumptionHandle
480
+ });
481
+ invocationContext.agent = this.determineAgentForResumption(
482
+ session,
483
+ agent
484
+ );
485
+ const beforeRunCallbackResponse = await this.pluginManager.runBeforeRunCallback({
486
+ invocationContext
487
+ });
488
+ if ((_b2 = params.abortSignal) == null ? void 0 : _b2.aborted) {
489
+ return;
490
+ }
491
+ if (beforeRunCallbackResponse) {
492
+ const earlyExitEvent = createEvent({
493
+ invocationId: invocationContext.invocationId,
494
+ author: "model",
495
+ content: beforeRunCallbackResponse
496
+ });
497
+ await this.sessionService.appendEvent({
498
+ session,
499
+ event: earlyExitEvent
500
+ });
501
+ yield earlyExitEvent;
502
+ return;
503
+ }
504
+ for await (const event of requireAgent(invocationContext).runLive(
505
+ invocationContext
506
+ )) {
507
+ if ((_c2 = params.abortSignal) == null ? void 0 : _c2.aborted) {
508
+ return;
509
+ }
510
+ const modifiedEvent = await this.pluginManager.runOnEventCallback({
511
+ invocationContext,
512
+ event
513
+ });
514
+ if ((_d2 = params.abortSignal) == null ? void 0 : _d2.aborted) {
515
+ return;
516
+ }
517
+ const eventToProcess = modifiedEvent != null ? modifiedEvent : event;
518
+ if (!eventToProcess.partial && !isLiveModelMediaEventWithInlineData(eventToProcess)) {
519
+ await this.sessionService.appendEvent({
520
+ session,
521
+ event: eventToProcess
522
+ });
523
+ }
524
+ yield eventToProcess;
525
+ }
526
+ await this.pluginManager.runAfterRunCallback({ invocationContext });
527
+ }
528
+ );
529
+ } finally {
530
+ span.end();
531
+ }
532
+ }
533
+ };
534
+ __name(_Runner, "Runner");
535
+ let Runner = _Runner;
536
+ function isLiveModelMediaEventWithInlineData(event) {
537
+ var _a2;
538
+ const parts = (_a2 = event.content) == null ? void 0 : _a2.parts;
539
+ if (!(parts == null ? void 0 : parts.length)) {
540
+ return false;
541
+ }
542
+ return parts.some((part) => {
543
+ var _a3, _b;
544
+ const mimeType = (_b = (_a3 = part.inlineData) == null ? void 0 : _a3.mimeType) == null ? void 0 : _b.toLowerCase();
545
+ return mimeType !== void 0 && (mimeType.startsWith("audio/") || mimeType.startsWith("video/") || mimeType.startsWith("image/"));
546
+ });
376
547
  }
548
+ __name(isLiveModelMediaEventWithInlineData, "isLiveModelMediaEventWithInlineData");
377
549
  function determineAgentForResumption(session, rootAgent, resumabilityConfig) {
378
550
  const event = findEventByLastFunctionResponseId(session.events);
379
551
  const isResumable = Boolean(resumabilityConfig == null ? void 0 : resumabilityConfig.isResumable);
@@ -382,9 +554,11 @@ function determineAgentForResumption(session, rootAgent, resumabilityConfig) {
382
554
  if (resumedAgent) {
383
555
  return resumedAgent;
384
556
  }
385
- logger.warn(
386
- `Function response from an unknown agent: ${event.author}, event id: ${event.id}`
387
- );
557
+ if (!isWorkflowNodeEvent(event)) {
558
+ logger.warn(
559
+ `Function response from an unknown agent: ${event.author}, event id: ${event.id}`
560
+ );
561
+ }
388
562
  }
389
563
  for (let i = session.events.length - 1; i >= 0; i--) {
390
564
  logger.debug("event:", JSON.stringify(session.events[i]));
@@ -397,9 +571,11 @@ function determineAgentForResumption(session, rootAgent, resumabilityConfig) {
397
571
  }
398
572
  const agent = rootAgent.findSubAgent(event2.author);
399
573
  if (!agent) {
400
- logger.warn(
401
- `Event from an unknown agent: ${event2.author}, event id: ${event2.id}`
402
- );
574
+ if (!isWorkflowNodeEvent(event2)) {
575
+ logger.warn(
576
+ `Event from an unknown agent: ${event2.author}, event id: ${event2.id}`
577
+ );
578
+ }
403
579
  continue;
404
580
  }
405
581
  if (isRoutableLlmAgent(agent)) {
@@ -408,6 +584,12 @@ function determineAgentForResumption(session, rootAgent, resumabilityConfig) {
408
584
  }
409
585
  return rootAgent;
410
586
  }
587
+ __name(determineAgentForResumption, "determineAgentForResumption");
588
+ function isWorkflowNodeEvent(event) {
589
+ var _a2;
590
+ return Boolean((_a2 = event.nodeInfo) == null ? void 0 : _a2.path);
591
+ }
592
+ __name(isWorkflowNodeEvent, "isWorkflowNodeEvent");
411
593
  function isRoutableLlmAgent(agentToRun) {
412
594
  let agent = agentToRun;
413
595
  while (agent) {
@@ -421,10 +603,12 @@ function isRoutableLlmAgent(agentToRun) {
421
603
  }
422
604
  return true;
423
605
  }
606
+ __name(isRoutableLlmAgent, "isRoutableLlmAgent");
424
607
  function findEventByLastFunctionResponseId(events) {
425
608
  var _a2;
426
609
  return (_a2 = findMatchingFunctionCall(events)) != null ? _a2 : null;
427
610
  }
611
+ __name(findEventByLastFunctionResponseId, "findEventByLastFunctionResponseId");
428
612
  function getAllToolsets(agent) {
429
613
  const toolsets = [];
430
614
  const visited = /* @__PURE__ */ new Set();
@@ -442,9 +626,20 @@ function getAllToolsets(agent) {
442
626
  traverse(sub);
443
627
  }
444
628
  }
629
+ __name(traverse, "traverse");
445
630
  traverse(agent);
446
631
  return toolsets;
447
632
  }
633
+ __name(getAllToolsets, "getAllToolsets");
634
+ function rejectReservedFunctionCalls(newMessage) {
635
+ const reserved = reservedFunctionCallName(newMessage);
636
+ if (reserved) {
637
+ throw new Error(
638
+ `A client message may not contain a '${reserved}' function call: it is raised by the framework, and can only be answered with a function response.`
639
+ );
640
+ }
641
+ }
642
+ __name(rejectReservedFunctionCalls, "rejectReservedFunctionCalls");
448
643
  export {
449
644
  Runner,
450
645
  determineAgentForResumption,
@@ -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,8 @@ const require = topLevelCreateRequire(import.meta.url);
7
9
  */
8
10
  import { cloneDeep } from "lodash-es";
9
11
  import { State } from "./state.js";
10
- class BaseSessionService {
12
+ import { carryDeltaStamps, shouldApplyDeltaWrite } from "./state_write_order.js";
13
+ const _BaseSessionService = class _BaseSessionService {
11
14
  /**
12
15
  * Gets a session or creates one if it doesn't exist.
13
16
  *
@@ -61,6 +64,9 @@ class BaseSessionService {
61
64
  if (key.startsWith(State.TEMP_PREFIX)) {
62
65
  continue;
63
66
  }
67
+ if (!shouldApplyDeltaWrite(session.state, event.actions.stateDelta, key)) {
68
+ continue;
69
+ }
64
70
  Object.defineProperty(session.state, key, {
65
71
  value,
66
72
  writable: true,
@@ -69,7 +75,9 @@ class BaseSessionService {
69
75
  });
70
76
  }
71
77
  }
72
- }
78
+ };
79
+ __name(_BaseSessionService, "BaseSessionService");
80
+ let BaseSessionService = _BaseSessionService;
73
81
  function trimTempDeltaState(event) {
74
82
  if (!event.actions || !event.actions.stateDelta) {
75
83
  return event;
@@ -81,9 +89,11 @@ function trimTempDeltaState(event) {
81
89
  filteredStateDelta[key] = value;
82
90
  }
83
91
  }
92
+ carryDeltaStamps(stateDelta, filteredStateDelta);
84
93
  event.actions.stateDelta = filteredStateDelta;
85
94
  return event;
86
95
  }
96
+ __name(trimTempDeltaState, "trimTempDeltaState");
87
97
  function trimTempState(state) {
88
98
  const filteredState = /* @__PURE__ */ Object.create(null);
89
99
  for (const [key, value] of Object.entries(state)) {
@@ -93,6 +103,7 @@ function trimTempState(state) {
93
103
  }
94
104
  return filteredState;
95
105
  }
106
+ __name(trimTempState, "trimTempState");
96
107
  function mergeStates(appState = {}, userState = {}, sessionState = {}) {
97
108
  const merged = cloneDeep(sessionState);
98
109
  for (const [k, v] of Object.entries(appState)) {
@@ -103,6 +114,7 @@ function mergeStates(appState = {}, userState = {}, sessionState = {}) {
103
114
  }
104
115
  return merged;
105
116
  }
117
+ __name(mergeStates, "mergeStates");
106
118
  export {
107
119
  BaseSessionService,
108
120
  mergeStates,