@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
@@ -5,6 +5,8 @@
5
5
  */
6
6
  import { Content } from '@google/genai';
7
7
  import { Event } from '../events/event.js';
8
+ import { BaseNode, BaseNodeConfig } from '../workflow/base_node.js';
9
+ import type { NodeContext } from '../workflow/node_context.js';
8
10
  import { Context } from './context.js';
9
11
  import { InvocationContext } from './invocation_context.js';
10
12
  /**
@@ -23,8 +25,13 @@ export type BeforeAgentCallback = SingleAgentCallback | SingleAgentCallback[];
23
25
  export type AfterAgentCallback = SingleAgentCallback | SingleAgentCallback[];
24
26
  /**
25
27
  * The config of a base agent.
28
+ *
29
+ * Extends {@link BaseNodeConfig}, so every agent also accepts the node-level
30
+ * options — `retryConfig`, `timeout`, `inputSchema`, `outputSchema`,
31
+ * `stateSchema`, `rerunOnResume`, `waitForOutput` — which apply when the agent
32
+ * runs inside a workflow.
26
33
  */
27
- export interface BaseAgentConfig {
34
+ export interface BaseAgentConfig extends BaseNodeConfig {
28
35
  name: string;
29
36
  description?: string;
30
37
  parentAgent?: BaseAgent;
@@ -49,8 +56,13 @@ export declare function isBaseAgent(obj: unknown): obj is BaseAgent;
49
56
  * The class is generic over its config type so that {@link clone} can be typed
50
57
  * per subclass (e.g. `LlmAgent.clone({instruction})`). The default keeps bare
51
58
  * `BaseAgent` references valid as `BaseAgent<BaseAgentConfig>`.
59
+ *
60
+ * An agent **is** a {@link BaseNode}, so any agent can be dropped straight into
61
+ * a workflow graph without a wrapper — mirroring adk-python, where
62
+ * `BaseAgent(BaseNode)`. {@link runImpl} bridges the two contracts: the node
63
+ * runner calls it, and it delegates to the agent's own {@link runAsync}.
52
64
  */
53
- export declare abstract class BaseAgent<TConfig extends BaseAgentConfig = BaseAgentConfig> {
65
+ export declare abstract class BaseAgent<TConfig extends BaseAgentConfig = BaseAgentConfig> extends BaseNode {
54
66
  /**
55
67
  * A unique symbol to identify ADK agent classes.
56
68
  */
@@ -70,13 +82,6 @@ export declare abstract class BaseAgent<TConfig extends BaseAgentConfig = BaseAg
70
82
  * Agent name cannot be "user", since it's reserved for end-user's input.
71
83
  */
72
84
  readonly name: string;
73
- /**
74
- * Description about the agent's capability.
75
- *
76
- * The model uses this to determine whether to delegate control to the agent.
77
- * One-line description is enough and preferred.
78
- */
79
- readonly description?: string;
80
85
  /**
81
86
  * Root agent of this agent.
82
87
  * Computed dynamically by traversing up the parent chain.
@@ -148,6 +153,29 @@ export declare abstract class BaseAgent<TConfig extends BaseAgentConfig = BaseAg
148
153
  * @returns An AsyncGenerator that yields the events generated by the agent.
149
154
  */
150
155
  runAsync(parentContext: InvocationContext): AsyncGenerator<Event, void, void>;
156
+ /**
157
+ * Runs this agent as a workflow node.
158
+ *
159
+ * The node runner calls this; it delegates to {@link runAsync}, so an agent
160
+ * behaves identically whether it is run directly or as a node. Mirrors
161
+ * adk-python `BaseAgent._run_impl`.
162
+ *
163
+ * The invocation context comes from {@link NodeContext.getInvocationContext}
164
+ * rather than the raw field, so the agent runs against whatever view of the
165
+ * session the workflow wants it to see.
166
+ *
167
+ * Unlike adk-python's `_run_impl`, nothing is stamped onto the events here.
168
+ * Python has to fix up the author and the node path because it authors
169
+ * in-workflow events as the workflow itself; the TypeScript node runner
170
+ * already owns both (`enrichEvent` keeps an author the node set, and always
171
+ * stamps the true node path), so repeating it would be dead code.
172
+ *
173
+ * `nodeInput` is intentionally unused: an agent's input is its conversation,
174
+ * which the workflow supplies through the session. A node that needs to read
175
+ * its input — an `LlmAgent` injecting it into the prompt, say — does so in
176
+ * its own wrapper.
177
+ */
178
+ protected runImpl(ctx: NodeContext, _nodeInput: unknown): AsyncGenerator<Event, void, void>;
151
179
  /**
152
180
  * Entry method to run an agent via video/audio-based conversation.
153
181
  *
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Content } from '@google/genai';
7
+ /**
8
+ * The function call the framework emits to ask a human to approve a pending
9
+ * tool call.
10
+ */
11
+ export declare const REQUEST_CONFIRMATION_FUNCTION_CALL_NAME = "adk_request_confirmation";
12
+ /** The function call the framework emits to ask a client for credentials. */
13
+ export declare const REQUEST_CREDENTIAL_FUNCTION_CALL_NAME = "adk_request_credential";
14
+ /** The function call the framework emits to ask a client for input. */
15
+ export declare const REQUEST_INPUT_FUNCTION_CALL_NAME = "adk_request_input";
16
+ /**
17
+ * The first reserved function call in `content`, if it carries one.
18
+ *
19
+ * Used to keep client input out of the framework's own control plane. Function
20
+ * responses are untouched: answering a pending request is exactly what a client
21
+ * is supposed to do.
22
+ *
23
+ * @param content The content to inspect.
24
+ * @return The reserved call's name, or undefined when there is none.
25
+ */
26
+ export declare function reservedFunctionCallName(content: Content | undefined): string | undefined;
@@ -10,8 +10,7 @@ import { BaseTool } from '../tools/base_tool.js';
10
10
  import { ToolConfirmation } from '../tools/tool_confirmation.js';
11
11
  import { SingleAfterToolCallback, SingleBeforeToolCallback } from './llm_agent.js';
12
12
  export { AF_FUNCTION_CALL_ID_PREFIX, generateClientFunctionCallId, populateClientFunctionCallId, } from '../events/event.js';
13
- export declare const REQUEST_EUC_FUNCTION_CALL_NAME = "adk_request_credential";
14
- export declare const REQUEST_CONFIRMATION_FUNCTION_CALL_NAME = "adk_request_confirmation";
13
+ export { REQUEST_CONFIRMATION_FUNCTION_CALL_NAME, REQUEST_CREDENTIAL_FUNCTION_CALL_NAME, REQUEST_INPUT_FUNCTION_CALL_NAME, reservedFunctionCallName, } from './framework_function_calls.js';
15
14
  export declare const functionsExportedForTestingOnly: {
16
15
  handleFunctionCallList: typeof handleFunctionCallList;
17
16
  generateAuthEvent: typeof generateAuthEvent;
@@ -6,14 +6,29 @@
6
6
  import { Content } from '@google/genai';
7
7
  import { SessionArtifactService } from '../artifacts/session_artifact_service.js';
8
8
  import { BaseCredentialService } from '../auth/credential_service/base_credential_service.js';
9
+ import { Event } from '../events/event.js';
9
10
  import { BaseMemoryService } from '../memory/base_memory_service.js';
10
11
  import { PluginManager } from '../plugins/plugin_manager.js';
11
12
  import { BaseSessionService } from '../sessions/base_session_service.js';
12
13
  import { Session } from '../sessions/session.js';
14
+ import { AsyncQueue } from '../utils/async_queue.js';
13
15
  import { ActiveStreamingTool } from './active_streaming_tool.js';
14
16
  import { BaseAgent } from './base_agent.js';
17
+ import { LiveRequestQueue } from './live_request_queue.js';
15
18
  import { RunConfig } from './run_config.js';
16
19
  import { TranscriptionEntry } from './transcription_entry.js';
20
+ /**
21
+ * Workflow: data exposed to `{Class.field}` and `<Class.field from source_node>`
22
+ * instruction placeholders when an LlmAgent runs as a workflow node. Populated by
23
+ * `LLMAgentWrapper`; absent for ordinary (non-workflow) agent runs, in which case
24
+ * those placeholders are left untouched.
25
+ */
26
+ export interface WorkflowInstructionScope {
27
+ /** The current node's input, exposing fields for `{Class.field}`. */
28
+ input?: unknown;
29
+ /** Predecessor node outputs keyed by node name, for `<Class.field from node>`. */
30
+ outputsByNode?: Record<string, unknown>;
31
+ }
17
32
  /**
18
33
  * The parameters for creating an invocation context.
19
34
  */
@@ -24,7 +39,7 @@ export interface InvocationContextParams {
24
39
  credentialService?: BaseCredentialService;
25
40
  invocationId: string;
26
41
  branch?: string;
27
- agent: BaseAgent;
42
+ agent?: BaseAgent;
28
43
  userContent?: Content;
29
44
  session: Session;
30
45
  endInvocation?: boolean;
@@ -33,6 +48,12 @@ export interface InvocationContextParams {
33
48
  activeStreamingTools?: Record<string, ActiveStreamingTool>;
34
49
  pluginManager: PluginManager;
35
50
  abortSignal?: AbortSignal;
51
+ workflowInstructionScope?: WorkflowInstructionScope;
52
+ isolationScope?: string;
53
+ /** Nesting depth of node-as-tool executions; used to bound recursion. */
54
+ nodeToolDepth?: number;
55
+ liveRequestQueue?: LiveRequestQueue;
56
+ liveSessionResumptionHandle?: string;
36
57
  }
37
58
  /**
38
59
  * An invocation context represents the data of a single invocation of an agent.
@@ -93,9 +114,19 @@ export declare class InvocationContext {
93
114
  */
94
115
  branch?: string;
95
116
  /**
96
- * The current agent of this invocation context.
117
+ * The agent driving this invocation.
118
+ *
119
+ * Unset when the root being run is a bare {@link BaseNode} — a `Workflow`
120
+ * handed straight to the `Runner` — because there is no agent in play at
121
+ * that level. Nodes deeper in the graph that *are* agents get their own
122
+ * contexts with this set. Mirrors adk-python, whose field is
123
+ * `BaseAgent | BaseNode | None` and which passes `None` on the node path.
124
+ *
125
+ * Most code reaches this from inside an agent's own execution, where it is
126
+ * always set; prefer {@link requireAgent} there, so a broken invariant
127
+ * fails by name rather than as a property access on `undefined`.
97
128
  */
98
- agent: BaseAgent;
129
+ agent?: BaseAgent;
99
130
  /**
100
131
  * The user content that started this invocation.
101
132
  */
@@ -135,6 +166,41 @@ export declare class InvocationContext {
135
166
  */
136
167
  pluginManager: PluginManager;
137
168
  readonly abortSignal?: AbortSignal;
169
+ /**
170
+ * An optional channel into which a running tool can push events to be
171
+ * interleaved into the agent's output stream. Set by the LLM flow around tool
172
+ * execution so a {@link NodeTool} (running a node/workflow) can surface the
173
+ * node's intermediate and interrupt events. Cleared once tools finish.
174
+ */
175
+ eventQueue?: AsyncQueue<Event>;
176
+ /**
177
+ * Workflow: field-resolution scope for `{Class.field}` /
178
+ * `<Class.field from node>` instruction placeholders (set by
179
+ * `LLMAgentWrapper`).
180
+ */
181
+ workflowInstructionScope?: WorkflowInstructionScope;
182
+ /**
183
+ * Workflow: the isolation scope of the node this context runs in. Events
184
+ * carrying a different scope are withheld from this agent's LLM request.
185
+ */
186
+ isolationScope?: string;
187
+ /**
188
+ * Nesting depth of node-as-tool ({@link NodeTool}) executions in this
189
+ * invocation. Incremented each time a node runs as a tool (via a depth+1
190
+ * clone), so `NodeTool` can bound `node -> tool -> node` recursion.
191
+ */
192
+ readonly nodeToolDepth: number;
193
+ /**
194
+ * The live request queue feeding the model on the bidirectional (live) path.
195
+ * Set only for invocations started via `runner.runLive`.
196
+ */
197
+ readonly liveRequestQueue?: LiveRequestQueue;
198
+ /**
199
+ * The most recent session resumption handle observed on the live path.
200
+ * Updated as the server emits resumption updates so a reconnect can restore
201
+ * server-side state instead of replaying history. Mutable by design.
202
+ */
203
+ liveSessionResumptionHandle?: string;
138
204
  /**
139
205
  * @param params The parameters for creating an invocation context.
140
206
  */
@@ -153,5 +219,31 @@ export declare class InvocationContext {
153
219
  * @throws If number of llm calls made exceed the set threshold.
154
220
  */
155
221
  incrementLlmCallCount(): void;
222
+ /**
223
+ * Returns a copy of this context with `overrides` applied. The spread carries
224
+ * every own field over (including the shared cost manager), so the copy keeps
225
+ * a single LLM-call counter for the invocation.
226
+ *
227
+ * Note: this copies own enumerable fields by value — scalar mutable fields
228
+ * (e.g. `endInvocation`) are decoupled from the original, while object-valued
229
+ * fields (`session`, …) stay shared by reference.
230
+ */
231
+ clone(overrides?: Partial<InvocationContextParams>): InvocationContext;
156
232
  }
157
233
  export declare function newInvocationContextId(): string;
234
+ /**
235
+ * The agent driving `ctx`, for code that only runs because one is.
236
+ *
237
+ * An LLM flow, an agent transfer, a tool call: each is reached from inside an
238
+ * agent's own execution, so {@link InvocationContext.agent} is set by
239
+ * construction. Going through here says that out loud, and turns a violated
240
+ * assumption into a named error rather than a property access on `undefined`
241
+ * several frames away.
242
+ *
243
+ * A free function rather than an accessor on the class, because a good deal of
244
+ * code (and most tests) passes a duck-typed context object; a getter would be
245
+ * simply absent on those, which fails less clearly than not having the agent.
246
+ *
247
+ * @throws if the invocation is driving a bare node rather than an agent.
248
+ */
249
+ export declare function requireAgent(ctx: InvocationContext): BaseAgent;
@@ -35,9 +35,15 @@ export declare class LiveRequestQueue {
35
35
  /**
36
36
  * Retrieves a request from the queue. If the queue is empty, it will
37
37
  * wait until a request is available.
38
+ *
39
+ * @param abortSignal When provided, a parked (pending) read is released by
40
+ * rejecting with an abort error once the signal fires. The live send
41
+ * loop passes the connection's abort signal so a waiter is not stranded
42
+ * across reconnect/teardown, where it could otherwise steal a request
43
+ * from the next connection's send loop.
38
44
  * @returns A promise that resolves with the next available request.
39
45
  */
40
- get(): Promise<LiveRequest>;
46
+ get(abortSignal?: AbortSignal): Promise<LiveRequest>;
41
47
  /**
42
48
  * Sends a close signal to the queue.
43
49
  */
@@ -4,6 +4,9 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { GenerateContentConfig, Schema } from '@google/genai';
7
+ import { FinishTaskTool } from '../tools/finish_task_tool.js';
8
+ import { type BaseNode } from '../workflow/base_node.js';
9
+ import { NodeContext } from '../workflow/node_context.js';
7
10
  import { z as z3 } from 'zod/v3';
8
11
  import { z as z4 } from 'zod/v4';
9
12
  import { BaseCodeExecutor } from '../code_executors/base_code_executor.js';
@@ -16,6 +19,7 @@ import { LlmResponse } from '../models/llm_response.js';
16
19
  import { BaseTool } from '../tools/base_tool.js';
17
20
  import { BaseToolset } from '../tools/base_toolset.js';
18
21
  import { Context } from './context.js';
22
+ import { SchemaLike } from '../utils/schema.js';
19
23
  import { BaseAgent, BaseAgentConfig } from './base_agent.js';
20
24
  import { BaseLlmRequestProcessor, BaseLlmResponseProcessor } from './processors/base_llm_processor.js';
21
25
  import { BaseContextCompactor } from '../context/base_context_compactor.js';
@@ -112,7 +116,7 @@ export type AfterToolCallback = SingleAfterToolCallback | SingleAfterToolCallbac
112
116
  /** A list of examples or an example provider. */
113
117
  export type ExamplesUnion = Example[] | BaseExampleProvider;
114
118
  /** A union of tool types that can be provided to an agent. */
115
- export type ToolUnion = BaseTool | BaseToolset;
119
+ export type ToolUnion = BaseTool | BaseToolset | BaseNode;
116
120
  /**
117
121
  * The configuration options for creating an LLM-based agent.
118
122
  */
@@ -166,6 +170,15 @@ export interface LlmAgentConfig extends BaseAgentConfig {
166
170
  * instruction and input
167
171
  */
168
172
  includeContents?: 'default' | 'none';
173
+ /**
174
+ * The agent's execution mode when run as a workflow node.
175
+ *
176
+ * - `single_turn` (default): the agent runs once against the node input.
177
+ * - `task`: the agent is given a `finish_task` tool and runs a multi-round
178
+ * loop until it calls `finish_task`, whose arguments (conforming to
179
+ * `outputSchema`) become the node output. Mirrors Python's `Agent(mode=...)`.
180
+ */
181
+ mode?: 'single_turn' | 'task';
169
182
  /** The input schema when agent is used as a tool. */
170
183
  inputSchema?: LlmAgentSchema;
171
184
  /** The output schema when agent replies. */
@@ -238,9 +251,34 @@ export declare class LlmAgent extends BaseAgent<LlmAgentConfig> {
238
251
  disallowTransferToParent: boolean;
239
252
  disallowTransferToPeers: boolean;
240
253
  includeContents: 'default' | 'none';
254
+ /**
255
+ * Whether {@link includeContents} was set by the caller rather than defaulted.
256
+ *
257
+ * A workflow node runs its agent for a single turn on the input the graph
258
+ * handed it, so the agent must not also read the surrounding conversation —
259
+ * unless the author asked for it. Mirrors Python checking
260
+ * `'include_contents' in agent.model_fields_set`.
261
+ */
262
+ readonly includeContentsExplicit: boolean;
263
+ mode?: 'single_turn' | 'task';
241
264
  inputSchema?: Schema;
242
265
  outputSchema?: Schema;
266
+ /**
267
+ * The input schema exactly as it was supplied, before conversion into the
268
+ * genai dialect.
269
+ *
270
+ * `inputSchema` is normalized to a genai `Schema` because that is what the
271
+ * model API and function declarations require, but that conversion is lossy:
272
+ * a Zod refinement, transform, or custom error message has no genai
273
+ * equivalent. Validation therefore uses the original, falling back to the
274
+ * converted form when the schema was given in the genai dialect to begin
275
+ * with.
276
+ */
277
+ readonly inputSchemaSource?: SchemaLike;
278
+ /** The output schema as supplied — see {@link inputSchemaSource}. */
279
+ readonly outputSchemaSource?: SchemaLike;
243
280
  outputKey?: string;
281
+ private _finishTaskTool?;
244
282
  beforeModelCallback?: BeforeModelCallback;
245
283
  afterModelCallback?: AfterModelCallback;
246
284
  beforeToolCallback?: BeforeToolCallback;
@@ -255,6 +293,11 @@ export declare class LlmAgent extends BaseAgent<LlmAgentConfig> {
255
293
  * When not set, the agent will inherit the model from its ancestor.
256
294
  */
257
295
  get canonicalModel(): BaseLlm;
296
+ /**
297
+ * The `finish_task` tool for this agent (task mode). Lazily created and cached
298
+ * so its declaration (derived from `outputSchema`) is stable across turns.
299
+ */
300
+ get finishTaskTool(): FinishTaskTool;
258
301
  /**
259
302
  * The resolved instruction field to construct instruction for this
260
303
  * agent.
@@ -329,6 +372,28 @@ export declare class LlmAgent extends BaseAgent<LlmAgentConfig> {
329
372
  * @param event The event to process.
330
373
  */
331
374
  private maybeSaveOutputToState;
375
+ /**
376
+ * Validates a value against this agent's output schema, in whichever dialect
377
+ * it was declared, and returns the parsed value.
378
+ *
379
+ * Prefers the schema as supplied ({@link outputSchemaSource}) over the genai
380
+ * form derived from it, since the conversion drops constraints Zod can
381
+ * express and genai cannot.
382
+ *
383
+ * @throws if the value does not satisfy the schema.
384
+ */
385
+ validateOutput(value: unknown): unknown;
386
+ /**
387
+ * Runs this agent as a workflow node.
388
+ *
389
+ * Where {@link BaseAgent.runImpl} delegates straight to `runAsync`, an
390
+ * `LlmAgent` has a node input to inject into the conversation, instruction
391
+ * placeholders to resolve against it, a reply to promote to node output, and
392
+ * — in `task` mode — a `finish_task` round-trip to drive. All of that lives
393
+ * in `runLlmAgentAsNode`, mirroring adk-python's `LlmAgent._run_impl`
394
+ * delegating to `run_llm_agent_as_node`.
395
+ */
396
+ protected runImpl(ctx: NodeContext, nodeInput: unknown): AsyncGenerator<Event, void, void>;
332
397
  protected runAsyncImpl(context: InvocationContext): AsyncGenerator<Event, void, void>;
333
398
  protected runLiveImpl(context: InvocationContext): AsyncGenerator<Event, void, void>;
334
399
  /**
@@ -346,6 +411,17 @@ export declare class LlmAgent extends BaseAgent<LlmAgentConfig> {
346
411
  * already holds the conversation state associated with the handle.
347
412
  */
348
413
  private runLiveFlow;
414
+ private runLivePreprocess;
415
+ private runSendLoop;
416
+ private dispatchLiveRequest;
417
+ /**
418
+ * Tears down a live attempt: stops the send loop, closes the connection
419
+ * (swallowing close errors), and waits for the send task to settle. Used
420
+ * before reconnecting or propagating an error.
421
+ */
422
+ private teardownLiveConnection;
423
+ private runReceiveLoop;
424
+ private postprocessLive;
349
425
  private runOneStepAsync;
350
426
  private postprocess;
351
427
  /**
@@ -33,6 +33,11 @@ export declare function isLoopAgent(obj: unknown): obj is LoopAgent;
33
33
  *
34
34
  * When sub-agent generates an event with escalate or max_iterations are
35
35
  * reached, the loop agent will stop.
36
+ *
37
+ * @deprecated Use `Workflow` instead, which expresses the same ordering as a
38
+ * graph and adds routing, retries, HITL and resumability. This class will be
39
+ * removed in a future version. Note that a `Workflow` cannot yet be an
40
+ * `LlmAgent` sub-agent.
36
41
  */
37
42
  export declare class LoopAgent extends BaseAgent<LoopAgentConfig> {
38
43
  /**
@@ -25,6 +25,11 @@ export declare function isParallelAgent(obj: unknown): obj is ParallelAgent;
25
25
  *
26
26
  * - Running different algorithms simultaneously.
27
27
  * - Generating multiple responses for review by a subsequent evaluation agent.
28
+ *
29
+ * @deprecated Use `Workflow` instead, which expresses the same ordering as a
30
+ * graph and adds routing, retries, HITL and resumability. This class will be
31
+ * removed in a future version. Note that a `Workflow` cannot yet be an
32
+ * `LlmAgent` sub-agent.
28
33
  */
29
34
  export declare class ParallelAgent extends BaseAgent {
30
35
  /**
@@ -19,10 +19,11 @@ export declare function removeClientFunctionCallId(content: Content): void;
19
19
  * @param events: A list of all session events.
20
20
  * @param agentName: The name of the agent.
21
21
  * @param currentBranch: The current branch of the agent.
22
+ * @param currentIsolationScope: The isolation scope of the current node, if any.
22
23
  *
23
24
  * @returns A list of processed contents.
24
25
  */
25
- export declare function getContents(events: Event[], agentName: string, currentBranch?: string): Content[];
26
+ export declare function getContents(events: Event[], agentName: string, currentBranch?: string, currentIsolationScope?: string): Content[];
26
27
  /**
27
28
  * Get contents for the current turn only (no conversation history).
28
29
  *
@@ -41,7 +42,7 @@ export declare function getContents(events: Event[], agentName: string, currentB
41
42
  * @returns A list of contents for the current turn only, preserving context
42
43
  * needed for proper tool execution while excluding conversation history.
43
44
  */
44
- export declare function getCurrentTurnContents(events: Event[], agentName: string, currentBranch?: string): Content[];
45
+ export declare function getCurrentTurnContents(events: Event[], agentName: string, currentBranch?: string, currentIsolationScope?: string): Content[];
45
46
  /**
46
47
  * Merges a list of function_response events into one event.
47
48
  *
@@ -10,11 +10,14 @@ import { BaseLlmRequestProcessor } from './base_llm_processor.js';
10
10
  /**
11
11
  * Appends identity instructions to the {@link LlmRequest} system prompt,
12
12
  * informing the model of the agent's name and description.
13
+ *
14
+ * The instructions are omitted for an agent that cannot transfer control
15
+ * anywhere, since nothing in the prompt consumes the identity in that case.
13
16
  */
14
17
  export declare class IdentityLlmRequestProcessor extends BaseLlmRequestProcessor {
15
18
  /**
16
19
  * Appends agent name and description as identity instructions to the system
17
- * prompt of the request.
20
+ * prompt of the request, unless the agent has no reachable transfer target.
18
21
  *
19
22
  * @param invocationContext - The current invocation context.
20
23
  * @param llmRequest - The request object to append instructions to.
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Event } from '../../events/event.js';
7
+ import { InvocationContext } from '../invocation_context.js';
8
+ import { BaseLlmRequestProcessor } from './base_llm_processor.js';
9
+ /**
10
+ * Resumes a {@link NodeTool} call that paused for input. When a node/workflow
11
+ * run inside a node-tool raises a `RequestInput` interrupt, the node-tool's
12
+ * function call is left pending (no response) and the invocation pauses. On the
13
+ * next turn, once the user answers the `adk_request_input` interrupt, this
14
+ * processor re-runs the pending node-tool with the answer(s) threaded as
15
+ * `resumeInputs`, then emits the tool's function response so the agent can
16
+ * continue. Analogous to {@link RequestConfirmationLlmRequestProcessor}.
17
+ */
18
+ export declare class RequestInputLlmRequestProcessor extends BaseLlmRequestProcessor {
19
+ runAsync(invocationContext: InvocationContext): AsyncGenerator<Event, void, void>;
20
+ }
21
+ export declare const REQUEST_INPUT_LLM_REQUEST_PROCESSOR: RequestInputLlmRequestProcessor;
@@ -3,13 +3,18 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { AudioTranscriptionConfig, Modality, ProactivityConfig, RealtimeInputConfig, SpeechConfig } from '@google/genai';
6
+ import { AudioTranscriptionConfig, ContextWindowCompressionConfig, Modality, ProactivityConfig, RealtimeInputConfig, SpeechConfig } from '@google/genai';
7
7
  /**
8
8
  * The streaming mode for the run config.
9
9
  */
10
10
  export declare enum StreamingMode {
11
11
  NONE = "none",
12
12
  SSE = "sse",
13
+ /**
14
+ * Bidirectional streaming. Not yet supported; passing this value to
15
+ * `createRunConfig` throws. Use {@link StreamingMode.SSE} for token
16
+ * streaming.
17
+ */
13
18
  BIDI = "bidi"
14
19
  }
15
20
  /**
@@ -38,7 +43,9 @@ export interface RunConfig {
38
43
  */
39
44
  supportCfc?: boolean;
40
45
  /**
41
- * Streaming mode, None or StreamingMode.SSE or StreamingMode.BIDI.
46
+ * Streaming mode. Supported values are {@link StreamingMode.NONE} and
47
+ * {@link StreamingMode.SSE}. {@link StreamingMode.BIDI} is not yet
48
+ * supported and is rejected by `createRunConfig`.
42
49
  */
43
50
  streamingMode?: StreamingMode;
44
51
  /**
@@ -63,6 +70,11 @@ export interface RunConfig {
63
70
  * Realtime input config for live agents with audio input from user.
64
71
  */
65
72
  realtimeInputConfig?: RealtimeInputConfig;
73
+ /**
74
+ * Context window compression config. When the running context exceeds
75
+ * `triggerTokens`, the server compresses older history to `targetTokens`.
76
+ */
77
+ contextWindowCompression?: ContextWindowCompressionConfig;
66
78
  /**
67
79
  * A limit on the total number of llm calls for a given run.
68
80
  *
@@ -77,6 +89,44 @@ export interface RunConfig {
77
89
  * to intercept and execute tools (Client-Side Tool Execution).
78
90
  */
79
91
  pauseOnToolCalls?: boolean;
92
+ /**
93
+ * If true, a plain-text user reply (e.g. "yes"/"no") may resolve a pending
94
+ * `requireConfirmation` tool gate. Off by default so an ordinary chat message
95
+ * on a web/API surface is never silently reinterpreted as a security
96
+ * decision; interactive front-ends (e.g. `adk run`) opt in explicitly.
97
+ */
98
+ plainTextToolConfirmation?: boolean;
99
+ /**
100
+ * If true, a `requireConfirmation` gate may be answered by a message that
101
+ * arrived over A2A.
102
+ *
103
+ * Off by default: a remote peer is not the human operator, and a peer that
104
+ * can post to the task would otherwise be able to approve a dangerous tool
105
+ * call on the operator's behalf — the thing the gate exists to prevent. Turn
106
+ * it on only where the peer is a trusted relay for a real person: a front-end
107
+ * that renders the prompt and sends back what they chose.
108
+ *
109
+ * A deliberate divergence from adk-python, which refuses a remote-delivered
110
+ * confirmation outright and offers no way back. The default matches; the
111
+ * option does not exist there.
112
+ */
113
+ allowRemoteToolConfirmation?: boolean;
114
+ /**
115
+ * Set by the A2A executor to record that this run's message came from a
116
+ * remote peer. Not part of the configuration surface: an application setting
117
+ * it by hand is asserting something about the message's provenance that only
118
+ * the transport can know.
119
+ *
120
+ * Read by the tool-confirmation resume path only. The other two interrupts a
121
+ * peer can answer — `adk_request_credential` and `adk_request_input` — are
122
+ * answerable by a client by design: a credential is something a client holds,
123
+ * and an input request asks for data, not for judgement. Confirmation is the
124
+ * one that asks a specific human to take responsibility for an action, which
125
+ * is why it is the one a peer cannot stand in for.
126
+ *
127
+ * @internal
128
+ */
129
+ remoteDelivered?: boolean;
80
130
  }
81
131
  /**
82
132
  * Creates a {@link RunConfig} with production-safe defaults.
@@ -92,6 +142,7 @@ export interface RunConfig {
92
142
  * @param params - Optional partial {@link RunConfig} overriding defaults.
93
143
  * @returns A merged {@link RunConfig} object.
94
144
  * @throws {Error} When `params.maxLlmCalls` exceeds `Number.MAX_SAFE_INTEGER`.
145
+ * @throws {Error} When `params.streamingMode` is {@link StreamingMode.BIDI}.
95
146
  */
96
147
  export declare function createRunConfig(params?: Partial<RunConfig>): {
97
148
  maxLlmCalls: number;
@@ -105,5 +156,9 @@ export declare function createRunConfig(params?: Partial<RunConfig>): {
105
156
  enableAffectiveDialog: boolean;
106
157
  proactivity?: ProactivityConfig | undefined;
107
158
  realtimeInputConfig?: RealtimeInputConfig | undefined;
159
+ contextWindowCompression?: ContextWindowCompressionConfig | undefined;
108
160
  pauseOnToolCalls: boolean;
161
+ plainTextToolConfirmation?: boolean | undefined;
162
+ allowRemoteToolConfirmation?: boolean | undefined;
163
+ remoteDelivered?: boolean | undefined;
109
164
  };
@@ -19,6 +19,11 @@ declare const SEQUENTIAL_AGENT_SIGNATURE_SYMBOL: unique symbol;
19
19
  export declare function isSequentialAgent(obj: unknown): obj is SequentialAgent;
20
20
  /**
21
21
  * A shell agent that runs its sub-agents in a sequential order.
22
+ *
23
+ * @deprecated Use `Workflow` instead, which expresses the same ordering as a
24
+ * graph and adds routing, retries, HITL and resumability. This class will be
25
+ * removed in a future version. Note that a `Workflow` cannot yet be an
26
+ * `LlmAgent` sub-agent.
22
27
  */
23
28
  export declare class SequentialAgent extends BaseAgent {
24
29
  /**