@google/adk 1.5.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (796) hide show
  1. package/dist/cjs/a2a/a2a_event.js +18 -0
  2. package/dist/cjs/a2a/a2a_remote_agent.js +17 -4
  3. package/dist/cjs/a2a/a2a_remote_agent_run_processor.js +7 -3
  4. package/dist/cjs/a2a/a2a_remote_agent_utils.js +9 -2
  5. package/dist/cjs/a2a/agent_card.js +33 -3
  6. package/dist/cjs/a2a/agent_executor.js +25 -16
  7. package/dist/cjs/a2a/agent_to_a2a.js +22 -11
  8. package/dist/cjs/a2a/auth.js +68 -0
  9. package/dist/cjs/a2a/event_converter_utils.js +50 -15
  10. package/dist/cjs/a2a/event_processor_utils.js +71 -35
  11. package/dist/cjs/a2a/executor_context.js +2 -0
  12. package/dist/cjs/a2a/index.js +53 -0
  13. package/dist/cjs/a2a/metadata_converter_utils.js +5 -0
  14. package/dist/cjs/a2a/part_converter_utils.js +12 -0
  15. package/dist/cjs/agents/active_streaming_tool.js +5 -2
  16. package/dist/cjs/agents/base_agent.js +46 -9
  17. package/dist/cjs/agents/context.js +5 -2
  18. package/dist/cjs/agents/framework_function_calls.js +64 -0
  19. package/dist/cjs/agents/functions.js +58 -23
  20. package/dist/cjs/agents/instructions.js +51 -12
  21. package/dist/cjs/agents/invocation_context.js +42 -8
  22. package/dist/cjs/agents/live_request_queue.js +29 -5
  23. package/dist/cjs/agents/llm_agent.js +536 -45
  24. package/dist/cjs/agents/loop_agent.js +19 -2
  25. package/dist/cjs/agents/parallel_agent.js +21 -2
  26. package/dist/cjs/agents/processors/agent_transfer_llm_request_processor.js +7 -4
  27. package/dist/cjs/agents/processors/base_llm_processor.js +9 -4
  28. package/dist/cjs/agents/processors/basic_llm_request_processor.js +8 -4
  29. package/dist/cjs/agents/processors/code_execution_request_processor.js +18 -5
  30. package/dist/cjs/agents/processors/content_processor_utils.js +85 -15
  31. package/dist/cjs/agents/processors/content_request_processor.js +11 -25
  32. package/dist/cjs/agents/processors/context_compactor_request_processor.js +5 -2
  33. package/dist/cjs/agents/processors/identity_llm_request_processor.js +12 -4
  34. package/dist/cjs/agents/processors/instructions_llm_request_processor.js +8 -3
  35. package/dist/cjs/agents/processors/interactions_request_processor.js +5 -2
  36. package/dist/cjs/agents/processors/request_confirmation_llm_request_processor.js +313 -92
  37. package/dist/cjs/agents/processors/request_input_llm_request_processor.js +218 -0
  38. package/dist/cjs/agents/processors/tool_filter_request_processor.js +5 -2
  39. package/dist/cjs/agents/readonly_context.js +7 -3
  40. package/dist/cjs/agents/routed_agent.js +6 -13
  41. package/dist/cjs/agents/run_config.js +12 -0
  42. package/dist/cjs/agents/sequential_agent.js +20 -3
  43. package/dist/cjs/agents/user_input_request.js +145 -0
  44. package/dist/cjs/apps/app.js +11 -11
  45. package/dist/cjs/apps/resumability_config.js +2 -0
  46. package/dist/cjs/artifacts/file_artifact_service.js +21 -2
  47. package/dist/cjs/artifacts/gcs_artifact_service.js +46 -11
  48. package/dist/cjs/artifacts/in_memory_artifact_service.js +19 -11
  49. package/dist/cjs/artifacts/registry.js +6 -1
  50. package/dist/cjs/artifacts/scoped_artifact_service.js +5 -2
  51. package/dist/cjs/auth/auth_handler.js +5 -2
  52. package/dist/cjs/auth/auth_preprocessor.js +48 -40
  53. package/dist/cjs/auth/auth_provider_registry.js +5 -2
  54. package/dist/cjs/auth/auth_schemes.js +2 -0
  55. package/dist/cjs/auth/credential_response_binding.js +101 -0
  56. package/dist/cjs/auth/credential_service/in_memory_credential_service.js +19 -5
  57. package/dist/cjs/auth/credential_service/session_state_credential_service.js +5 -2
  58. package/dist/cjs/auth/exchanger/base_credential_exchanger.js +5 -2
  59. package/dist/cjs/auth/exchanger/credential_exchanger_registry.js +5 -2
  60. package/dist/cjs/auth/oauth2/oauth2_credential_exchanger.js +8 -2
  61. package/dist/cjs/auth/oauth2/oauth2_credential_refresher.js +5 -2
  62. package/dist/cjs/auth/oauth2/oauth2_discovery.js +7 -2
  63. package/dist/cjs/auth/oauth2/oauth2_utils.js +6 -0
  64. package/dist/cjs/auth/refresher/base_credential_refresher.js +5 -2
  65. package/dist/cjs/auth/refresher/credential_refresher_registry.js +5 -2
  66. package/dist/cjs/code_executors/agent_engine_sandbox_code_executor.js +3 -0
  67. package/dist/cjs/code_executors/base_code_executor.js +6 -2
  68. package/dist/cjs/code_executors/built_in_code_executor.js +6 -2
  69. package/dist/cjs/code_executors/code_execution_utils.js +6 -0
  70. package/dist/cjs/code_executors/code_executor_context.js +5 -2
  71. package/dist/cjs/code_executors/unsafe_local_code_executor.js +31 -14
  72. package/dist/cjs/common.js +112 -1
  73. package/dist/cjs/context/agent_controlled_context_compactor.js +7 -13
  74. package/dist/cjs/context/anchored_context_compactor.js +5 -2
  75. package/dist/cjs/context/compaction_utils.js +17 -2
  76. package/dist/cjs/context/summarizers/llm_summarizer.js +5 -2
  77. package/dist/cjs/context/token_based_context_compactor.js +11 -23
  78. package/dist/cjs/context/trajectory_thought_pruning_compactor.js +5 -2
  79. package/dist/cjs/context/truncating_context_compactor.js +5 -2
  80. package/dist/cjs/environment/base_environment.js +97 -0
  81. package/dist/cjs/environment/local_environment.js +186 -0
  82. package/dist/cjs/events/compacted_event.js +4 -0
  83. package/dist/cjs/events/event.js +38 -3
  84. package/dist/cjs/events/event_actions.js +5 -0
  85. package/dist/cjs/events/structured_events.js +2 -0
  86. package/dist/cjs/examples/base_example_provider.js +6 -2
  87. package/dist/cjs/examples/example_util.js +3 -0
  88. package/dist/cjs/features/feature_registry.js +7 -0
  89. package/dist/cjs/index.js +7 -22
  90. package/dist/cjs/integrations/agent_registry/agent_registry.js +7 -4
  91. package/dist/cjs/integrations/agent_registry/agent_registry_mcp_toolset.js +7 -4
  92. package/dist/cjs/integrations/agent_registry/helpers.js +3 -0
  93. package/dist/cjs/memory/in_memory_memory_service.js +21 -4
  94. package/dist/cjs/memory/vertex_ai_memory_bank_service.js +20 -2
  95. package/dist/cjs/models/apigee_llm.js +9 -3
  96. package/dist/cjs/models/base_llm.js +7 -3
  97. package/dist/cjs/models/gemini_llm_connection.js +5 -2
  98. package/dist/cjs/models/google_llm.js +24 -12
  99. package/dist/cjs/models/interactions_utils.js +16 -0
  100. package/dist/cjs/models/llm_request.js +4 -0
  101. package/dist/cjs/models/llm_response.js +2 -0
  102. package/dist/cjs/models/registry.js +6 -2
  103. package/dist/cjs/models/routed_llm.js +4 -13
  104. package/dist/cjs/plugins/base_plugin.js +43 -7
  105. package/dist/cjs/plugins/global_instruction_plugin.js +5 -2
  106. package/dist/cjs/plugins/logging_plugin.js +13 -8
  107. package/dist/cjs/plugins/plugin_manager.js +37 -2
  108. package/dist/cjs/plugins/security_plugin.js +15 -8
  109. package/dist/cjs/runner/in_memory_runner.js +5 -2
  110. package/dist/cjs/runner/runner.js +226 -29
  111. package/dist/cjs/sessions/base_session_service.js +21 -5
  112. package/dist/cjs/sessions/database_session_service.js +6 -2
  113. package/dist/cjs/sessions/db/operations.js +34 -6
  114. package/dist/cjs/sessions/db/schema.js +16 -8
  115. package/dist/cjs/sessions/in_memory_session_service.js +30 -22
  116. package/dist/cjs/sessions/registry.js +4 -1
  117. package/dist/cjs/sessions/session.js +2 -0
  118. package/dist/cjs/sessions/state.js +80 -8
  119. package/dist/cjs/sessions/state_write_order.js +105 -0
  120. package/dist/cjs/sessions/vertex_ai_session_service.js +132 -25
  121. package/dist/cjs/skills/gcp_skill_registry.js +2 -0
  122. package/dist/cjs/skills/loader.js +62 -16
  123. package/dist/cjs/skills/prompt.js +3 -0
  124. package/dist/cjs/telemetry/google_cloud.js +42 -9
  125. package/dist/cjs/telemetry/setup.js +5 -0
  126. package/dist/cjs/telemetry/tracing.js +60 -4
  127. package/dist/cjs/tools/agent_tool.js +6 -2
  128. package/dist/cjs/tools/base_tool.js +24 -2
  129. package/dist/cjs/tools/base_toolset.js +6 -2
  130. package/dist/cjs/tools/consolidate_context_tool.js +5 -2
  131. package/dist/cjs/tools/enterprise_web_search_tool.js +6 -2
  132. package/dist/cjs/tools/example_tool.js +5 -2
  133. package/dist/cjs/tools/exit_loop_tool.js +5 -2
  134. package/dist/cjs/tools/finish_task_tool.js +119 -0
  135. package/dist/cjs/tools/forwarding_artifact_service.js +5 -2
  136. package/dist/cjs/tools/function_tool.js +73 -8
  137. package/dist/cjs/tools/get_user_choice_tool.js +54 -0
  138. package/dist/cjs/tools/google_maps_grounding_tool.js +6 -2
  139. package/dist/cjs/tools/google_search_tool.js +5 -2
  140. package/dist/cjs/tools/load_artifacts_tool.js +8 -2
  141. package/dist/cjs/tools/load_memory_tool.js +5 -2
  142. package/dist/cjs/tools/load_web_page.js +21 -1
  143. package/dist/cjs/tools/long_running_tool.js +5 -2
  144. package/dist/cjs/tools/mcp/index.js +39 -0
  145. package/dist/cjs/tools/mcp/load_mcp_resource_tool.js +5 -2
  146. package/dist/cjs/tools/mcp/mcp_session_manager.js +69 -27
  147. package/dist/cjs/tools/mcp/mcp_tool.js +5 -2
  148. package/dist/cjs/tools/mcp/mcp_toolset.js +5 -2
  149. package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +4 -0
  150. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +2 -0
  151. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +2 -0
  152. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +30 -9
  153. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/operation_parser.js +2 -0
  154. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +6 -2
  155. package/dist/cjs/tools/openapi_tool/openapi_toolset.js +2 -0
  156. package/dist/cjs/tools/openapi_tool/rest_api_tool.js +23 -5
  157. package/dist/cjs/tools/preload_memory_tool.js +5 -2
  158. package/dist/cjs/tools/request_input_tool.js +56 -0
  159. package/dist/cjs/tools/skill/list_skills_tool.js +2 -0
  160. package/dist/cjs/tools/skill/load_skill_resource_tool.js +2 -0
  161. package/dist/cjs/tools/skill/load_skill_tool.js +4 -1
  162. package/dist/cjs/tools/skill/run_skill_inline_script_tool.js +8 -2
  163. package/dist/cjs/tools/skill/run_skill_script_tool.js +10 -2
  164. package/dist/cjs/tools/skill/search_skills_tool.js +2 -0
  165. package/dist/cjs/tools/skill/skill_toolset.js +35 -0
  166. package/dist/cjs/tools/tool_confirmation.js +26 -3
  167. package/dist/cjs/tools/url_context_tool.js +5 -2
  168. package/dist/cjs/tools/vertex_ai_search_tool.js +5 -2
  169. package/dist/cjs/tools/vertex_rag_retrieval_tool.js +5 -2
  170. package/dist/cjs/utils/async_hooks_shim.js +5 -2
  171. package/dist/cjs/utils/async_queue.js +45 -18
  172. package/dist/cjs/utils/branch_trie.js +2 -0
  173. package/dist/cjs/utils/case_utils.js +2 -0
  174. package/dist/cjs/utils/client_labels.js +5 -0
  175. package/dist/cjs/utils/crypto_shim.js +45 -0
  176. package/dist/cjs/utils/deprecated.js +68 -0
  177. package/dist/cjs/utils/env_aware_utils.js +56 -13
  178. package/dist/cjs/utils/error_utils.js +128 -0
  179. package/dist/cjs/utils/experimental.js +9 -2
  180. package/dist/cjs/utils/failover_utils.js +3 -0
  181. package/dist/cjs/utils/file_extension_utils.js +3 -0
  182. package/dist/cjs/utils/file_utils.js +12 -4
  183. package/dist/cjs/utils/gemini_schema_util.js +6 -2
  184. package/dist/cjs/utils/genai_schema_to_json.js +107 -0
  185. package/dist/cjs/utils/live_connection_utils.js +5 -2
  186. package/dist/cjs/utils/logger.js +13 -4
  187. package/dist/cjs/utils/model_name.js +8 -0
  188. package/dist/cjs/utils/object_notation_utils.js +7 -3
  189. package/dist/cjs/utils/optional_peer.js +68 -0
  190. package/dist/cjs/utils/output_schema_utils.js +45 -0
  191. package/dist/cjs/utils/partial_copy.js +2 -0
  192. package/dist/cjs/utils/redact_uri.js +66 -0
  193. package/dist/cjs/utils/schema.js +178 -0
  194. package/dist/cjs/utils/simple_zod_to_json.js +17 -4
  195. package/dist/cjs/utils/streaming_utils.js +14 -6
  196. package/dist/cjs/utils/task.js +7 -4
  197. package/dist/cjs/utils/variant_utils.js +3 -1
  198. package/dist/cjs/utils/vertex_ai_utils.js +6 -1
  199. package/dist/cjs/version.js +1 -1
  200. package/dist/cjs/workflow/base_node.js +211 -0
  201. package/dist/cjs/workflow/branch_path.js +108 -0
  202. package/dist/cjs/workflow/dynamic_node_scheduler.js +220 -0
  203. package/dist/cjs/workflow/errors.js +178 -0
  204. package/dist/cjs/workflow/graph.js +158 -0
  205. package/dist/cjs/workflow/index.js +131 -0
  206. package/dist/cjs/workflow/node.js +65 -0
  207. package/dist/cjs/workflow/node_builders.js +68 -0
  208. package/dist/cjs/workflow/node_context.js +246 -0
  209. package/dist/cjs/workflow/node_error_event.js +86 -0
  210. package/dist/cjs/workflow/node_runner.js +459 -0
  211. package/dist/cjs/workflow/node_state.js +57 -0
  212. package/dist/cjs/workflow/node_status.js +48 -0
  213. package/dist/cjs/workflow/nodes/function_node.js +195 -0
  214. package/dist/cjs/workflow/nodes/join_node.js +56 -0
  215. package/dist/cjs/workflow/nodes/node_tool.js +156 -0
  216. package/dist/cjs/workflow/nodes/parallel_worker.js +129 -0
  217. package/dist/cjs/workflow/nodes/tool_node.js +117 -0
  218. package/dist/cjs/workflow/request_input.js +64 -0
  219. package/dist/cjs/workflow/retry_config.js +71 -0
  220. package/dist/cjs/workflow/run_llm_agent_as_node.js +192 -0
  221. package/dist/cjs/workflow/run_node_as_invocation.js +165 -0
  222. package/dist/cjs/workflow/schedule_dynamic_node.js +53 -0
  223. package/dist/cjs/workflow/trigger.js +27 -0
  224. package/dist/cjs/workflow/utils/graph_parser.js +212 -0
  225. package/dist/cjs/workflow/utils/graph_validation.js +216 -0
  226. package/dist/cjs/workflow/utils/hitl_utils.js +252 -0
  227. package/dist/cjs/workflow/utils/rehydration_utils.js +373 -0
  228. package/dist/cjs/workflow/utils/retry_utils.js +112 -0
  229. package/dist/cjs/workflow/utils/workflow_graph_utils.js +144 -0
  230. package/dist/cjs/workflow/workflow.js +509 -0
  231. package/dist/esm/a2a/a2a_event.js +19 -0
  232. package/dist/esm/a2a/a2a_remote_agent.js +18 -4
  233. package/dist/esm/a2a/a2a_remote_agent_run_processor.js +8 -3
  234. package/dist/esm/a2a/a2a_remote_agent_utils.js +10 -2
  235. package/dist/esm/a2a/agent_card.js +34 -3
  236. package/dist/esm/a2a/agent_executor.js +27 -17
  237. package/dist/esm/a2a/agent_to_a2a.js +44 -16
  238. package/dist/esm/a2a/auth.js +41 -0
  239. package/dist/esm/a2a/event_converter_utils.js +51 -15
  240. package/dist/esm/a2a/event_processor_utils.js +74 -34
  241. package/dist/esm/a2a/executor_context.js +3 -0
  242. package/dist/esm/a2a/index.js +20 -0
  243. package/dist/esm/a2a/metadata_converter_utils.js +6 -0
  244. package/dist/esm/a2a/part_converter_utils.js +13 -0
  245. package/dist/esm/agents/active_streaming_tool.js +6 -2
  246. package/dist/esm/agents/base_agent.js +47 -9
  247. package/dist/esm/agents/context.js +6 -2
  248. package/dist/esm/agents/framework_function_calls.js +34 -0
  249. package/dist/esm/agents/functions.js +62 -20
  250. package/dist/esm/agents/instructions.js +52 -12
  251. package/dist/esm/agents/invocation_context.js +41 -7
  252. package/dist/esm/agents/live_request_queue.js +30 -5
  253. package/dist/esm/agents/llm_agent.js +537 -45
  254. package/dist/esm/agents/loop_agent.js +21 -2
  255. package/dist/esm/agents/parallel_agent.js +23 -2
  256. package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +8 -4
  257. package/dist/esm/agents/processors/base_llm_processor.js +10 -4
  258. package/dist/esm/agents/processors/basic_llm_request_processor.js +9 -4
  259. package/dist/esm/agents/processors/code_execution_request_processor.js +19 -5
  260. package/dist/esm/agents/processors/content_processor_utils.js +88 -16
  261. package/dist/esm/agents/processors/content_request_processor.js +12 -25
  262. package/dist/esm/agents/processors/context_compactor_request_processor.js +6 -2
  263. package/dist/esm/agents/processors/identity_llm_request_processor.js +13 -4
  264. package/dist/esm/agents/processors/instructions_llm_request_processor.js +9 -3
  265. package/dist/esm/agents/processors/interactions_request_processor.js +6 -2
  266. package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +318 -93
  267. package/dist/esm/agents/processors/request_input_llm_request_processor.js +197 -0
  268. package/dist/esm/agents/processors/tool_filter_request_processor.js +6 -2
  269. package/dist/esm/agents/readonly_context.js +8 -3
  270. package/dist/esm/agents/routed_agent.js +6 -14
  271. package/dist/esm/agents/run_config.js +13 -0
  272. package/dist/esm/agents/sequential_agent.js +22 -3
  273. package/dist/esm/agents/user_input_request.js +120 -0
  274. package/dist/esm/apps/app.js +14 -11
  275. package/dist/esm/apps/resumability_config.js +3 -0
  276. package/dist/esm/artifacts/file_artifact_service.js +22 -2
  277. package/dist/esm/artifacts/gcs_artifact_service.js +58 -11
  278. package/dist/esm/artifacts/in_memory_artifact_service.js +20 -11
  279. package/dist/esm/artifacts/registry.js +7 -1
  280. package/dist/esm/artifacts/scoped_artifact_service.js +6 -2
  281. package/dist/esm/auth/auth_handler.js +6 -2
  282. package/dist/esm/auth/auth_preprocessor.js +50 -41
  283. package/dist/esm/auth/auth_provider_registry.js +6 -2
  284. package/dist/esm/auth/auth_schemes.js +3 -0
  285. package/dist/esm/auth/credential_response_binding.js +74 -0
  286. package/dist/esm/auth/credential_service/in_memory_credential_service.js +20 -5
  287. package/dist/esm/auth/credential_service/session_state_credential_service.js +6 -2
  288. package/dist/esm/auth/exchanger/base_credential_exchanger.js +6 -2
  289. package/dist/esm/auth/exchanger/credential_exchanger_registry.js +6 -2
  290. package/dist/esm/auth/oauth2/oauth2_credential_exchanger.js +9 -2
  291. package/dist/esm/auth/oauth2/oauth2_credential_refresher.js +6 -2
  292. package/dist/esm/auth/oauth2/oauth2_discovery.js +8 -2
  293. package/dist/esm/auth/oauth2/oauth2_utils.js +7 -0
  294. package/dist/esm/auth/refresher/base_credential_refresher.js +6 -2
  295. package/dist/esm/auth/refresher/credential_refresher_registry.js +6 -2
  296. package/dist/esm/code_executors/agent_engine_sandbox_code_executor.js +3 -0
  297. package/dist/esm/code_executors/base_code_executor.js +7 -2
  298. package/dist/esm/code_executors/built_in_code_executor.js +7 -2
  299. package/dist/esm/code_executors/code_execution_utils.js +7 -0
  300. package/dist/esm/code_executors/code_executor_context.js +6 -2
  301. package/dist/esm/code_executors/unsafe_local_code_executor.js +31 -13
  302. package/dist/esm/common.js +113 -4
  303. package/dist/esm/context/agent_controlled_context_compactor.js +8 -13
  304. package/dist/esm/context/anchored_context_compactor.js +6 -2
  305. package/dist/esm/context/compaction_utils.js +16 -1
  306. package/dist/esm/context/summarizers/llm_summarizer.js +6 -2
  307. package/dist/esm/context/token_based_context_compactor.js +16 -24
  308. package/dist/esm/context/trajectory_thought_pruning_compactor.js +6 -2
  309. package/dist/esm/context/truncating_context_compactor.js +6 -2
  310. package/dist/esm/environment/base_environment.js +71 -0
  311. package/dist/esm/environment/local_environment.js +150 -0
  312. package/dist/esm/events/compacted_event.js +5 -0
  313. package/dist/esm/events/event.js +38 -3
  314. package/dist/esm/events/event_actions.js +6 -0
  315. package/dist/esm/events/structured_events.js +3 -0
  316. package/dist/esm/examples/base_example_provider.js +7 -2
  317. package/dist/esm/examples/example_util.js +4 -0
  318. package/dist/esm/features/feature_registry.js +8 -0
  319. package/dist/esm/index.js +4 -13
  320. package/dist/esm/integrations/agent_registry/agent_registry.js +8 -4
  321. package/dist/esm/integrations/agent_registry/agent_registry_mcp_toolset.js +6 -2
  322. package/dist/esm/integrations/agent_registry/helpers.js +4 -0
  323. package/dist/esm/memory/in_memory_memory_service.js +22 -4
  324. package/dist/esm/memory/vertex_ai_memory_bank_service.js +25 -3
  325. package/dist/esm/models/apigee_llm.js +10 -3
  326. package/dist/esm/models/base_llm.js +8 -3
  327. package/dist/esm/models/gemini_llm_connection.js +6 -2
  328. package/dist/esm/models/google_llm.js +26 -13
  329. package/dist/esm/models/interactions_utils.js +17 -0
  330. package/dist/esm/models/llm_request.js +5 -0
  331. package/dist/esm/models/llm_response.js +3 -0
  332. package/dist/esm/models/registry.js +7 -2
  333. package/dist/esm/models/routed_llm.js +4 -14
  334. package/dist/esm/plugins/base_plugin.js +43 -7
  335. package/dist/esm/plugins/global_instruction_plugin.js +6 -2
  336. package/dist/esm/plugins/logging_plugin.js +14 -8
  337. package/dist/esm/plugins/plugin_manager.js +38 -2
  338. package/dist/esm/plugins/security_plugin.js +14 -6
  339. package/dist/esm/runner/in_memory_runner.js +6 -2
  340. package/dist/esm/runner/runner.js +233 -31
  341. package/dist/esm/sessions/base_session_service.js +22 -5
  342. package/dist/esm/sessions/database_session_service.js +7 -2
  343. package/dist/esm/sessions/db/operations.js +34 -6
  344. package/dist/esm/sessions/db/schema.js +16 -8
  345. package/dist/esm/sessions/in_memory_session_service.js +31 -22
  346. package/dist/esm/sessions/registry.js +5 -1
  347. package/dist/esm/sessions/session.js +3 -0
  348. package/dist/esm/sessions/state.js +78 -7
  349. package/dist/esm/sessions/state_write_order.js +74 -0
  350. package/dist/esm/sessions/vertex_ai_session_service.js +136 -26
  351. package/dist/esm/skills/gcp_skill_registry.js +2 -0
  352. package/dist/esm/skills/loader.js +63 -16
  353. package/dist/esm/skills/prompt.js +4 -0
  354. package/dist/esm/telemetry/google_cloud.js +54 -9
  355. package/dist/esm/telemetry/setup.js +6 -0
  356. package/dist/esm/telemetry/tracing.js +59 -4
  357. package/dist/esm/tools/agent_tool.js +7 -2
  358. package/dist/esm/tools/base_tool.js +25 -2
  359. package/dist/esm/tools/base_toolset.js +7 -2
  360. package/dist/esm/tools/consolidate_context_tool.js +6 -2
  361. package/dist/esm/tools/enterprise_web_search_tool.js +7 -2
  362. package/dist/esm/tools/example_tool.js +6 -2
  363. package/dist/esm/tools/exit_loop_tool.js +6 -2
  364. package/dist/esm/tools/finish_task_tool.js +92 -0
  365. package/dist/esm/tools/forwarding_artifact_service.js +6 -2
  366. package/dist/esm/tools/function_tool.js +74 -8
  367. package/dist/esm/tools/get_user_choice_tool.js +27 -0
  368. package/dist/esm/tools/google_maps_grounding_tool.js +7 -2
  369. package/dist/esm/tools/google_search_tool.js +6 -2
  370. package/dist/esm/tools/load_artifacts_tool.js +9 -2
  371. package/dist/esm/tools/load_memory_tool.js +6 -2
  372. package/dist/esm/tools/load_web_page.js +22 -1
  373. package/dist/esm/tools/long_running_tool.js +6 -2
  374. package/dist/esm/tools/mcp/index.js +11 -0
  375. package/dist/esm/tools/mcp/load_mcp_resource_tool.js +6 -2
  376. package/dist/esm/tools/mcp/mcp_session_manager.js +80 -30
  377. package/dist/esm/tools/mcp/mcp_tool.js +6 -2
  378. package/dist/esm/tools/mcp/mcp_toolset.js +6 -2
  379. package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +5 -0
  380. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +2 -0
  381. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +2 -0
  382. package/dist/esm/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +30 -9
  383. package/dist/esm/tools/openapi_tool/openapi_spec_parser/operation_parser.js +2 -0
  384. package/dist/esm/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +6 -2
  385. package/dist/esm/tools/openapi_tool/openapi_toolset.js +2 -0
  386. package/dist/esm/tools/openapi_tool/rest_api_tool.js +23 -5
  387. package/dist/esm/tools/preload_memory_tool.js +6 -2
  388. package/dist/esm/tools/request_input_tool.js +29 -0
  389. package/dist/esm/tools/skill/list_skills_tool.js +2 -0
  390. package/dist/esm/tools/skill/load_skill_resource_tool.js +2 -0
  391. package/dist/esm/tools/skill/load_skill_tool.js +4 -1
  392. package/dist/esm/tools/skill/run_skill_inline_script_tool.js +8 -2
  393. package/dist/esm/tools/skill/run_skill_script_tool.js +10 -2
  394. package/dist/esm/tools/skill/search_skills_tool.js +2 -0
  395. package/dist/esm/tools/skill/skill_toolset.js +25 -0
  396. package/dist/esm/tools/tool_confirmation.js +24 -2
  397. package/dist/esm/tools/url_context_tool.js +6 -2
  398. package/dist/esm/tools/vertex_ai_search_tool.js +6 -2
  399. package/dist/esm/tools/vertex_rag_retrieval_tool.js +6 -2
  400. package/dist/esm/utils/async_hooks_shim.js +6 -2
  401. package/dist/esm/utils/async_queue.js +46 -18
  402. package/dist/esm/utils/branch_trie.js +3 -0
  403. package/dist/esm/utils/case_utils.js +3 -0
  404. package/dist/esm/utils/client_labels.js +6 -0
  405. package/dist/esm/utils/crypto_shim.js +18 -0
  406. package/dist/esm/utils/deprecated.js +40 -0
  407. package/dist/esm/utils/env_aware_utils.js +56 -13
  408. package/dist/esm/utils/error_utils.js +101 -0
  409. package/dist/esm/utils/experimental.js +10 -2
  410. package/dist/esm/utils/failover_utils.js +4 -0
  411. package/dist/esm/utils/file_extension_utils.js +4 -0
  412. package/dist/esm/utils/file_utils.js +13 -4
  413. package/dist/esm/utils/gemini_schema_util.js +7 -2
  414. package/dist/esm/utils/genai_schema_to_json.js +80 -0
  415. package/dist/esm/utils/live_connection_utils.js +6 -2
  416. package/dist/esm/utils/logger.js +14 -4
  417. package/dist/esm/utils/model_name.js +9 -0
  418. package/dist/esm/utils/object_notation_utils.js +8 -3
  419. package/dist/esm/utils/optional_peer.js +41 -0
  420. package/dist/esm/utils/output_schema_utils.js +18 -0
  421. package/dist/esm/utils/partial_copy.js +3 -0
  422. package/dist/esm/utils/redact_uri.js +39 -0
  423. package/dist/esm/utils/schema.js +152 -0
  424. package/dist/esm/utils/simple_zod_to_json.js +15 -4
  425. package/dist/esm/utils/streaming_utils.js +15 -6
  426. package/dist/esm/utils/task.js +8 -4
  427. package/dist/esm/utils/variant_utils.js +5 -2
  428. package/dist/esm/utils/vertex_ai_utils.js +7 -2
  429. package/dist/esm/version.js +1 -1
  430. package/dist/esm/workflow/base_node.js +182 -0
  431. package/dist/esm/workflow/branch_path.js +77 -0
  432. package/dist/esm/workflow/dynamic_node_scheduler.js +202 -0
  433. package/dist/esm/workflow/errors.js +140 -0
  434. package/dist/esm/workflow/graph.js +127 -0
  435. package/dist/esm/workflow/index.js +80 -0
  436. package/dist/esm/workflow/node.js +38 -0
  437. package/dist/esm/workflow/node_builders.js +40 -0
  438. package/dist/esm/workflow/node_context.js +219 -0
  439. package/dist/esm/workflow/node_error_event.js +57 -0
  440. package/dist/esm/workflow/node_runner.js +439 -0
  441. package/dist/esm/workflow/node_state.js +29 -0
  442. package/dist/esm/workflow/node_status.js +20 -0
  443. package/dist/esm/workflow/nodes/function_node.js +172 -0
  444. package/dist/esm/workflow/nodes/join_node.js +29 -0
  445. package/dist/esm/workflow/nodes/node_tool.js +131 -0
  446. package/dist/esm/workflow/nodes/parallel_worker.js +102 -0
  447. package/dist/esm/workflow/nodes/tool_node.js +90 -0
  448. package/dist/esm/workflow/request_input.js +36 -0
  449. package/dist/esm/workflow/retry_config.js +43 -0
  450. package/dist/esm/workflow/run_llm_agent_as_node.js +172 -0
  451. package/dist/esm/workflow/run_node_as_invocation.js +139 -0
  452. package/dist/esm/workflow/schedule_dynamic_node.js +26 -0
  453. package/dist/esm/workflow/trigger.js +7 -0
  454. package/dist/esm/workflow/utils/graph_parser.js +188 -0
  455. package/dist/esm/workflow/utils/graph_validation.js +189 -0
  456. package/dist/esm/workflow/utils/hitl_utils.js +222 -0
  457. package/dist/esm/workflow/utils/rehydration_utils.js +342 -0
  458. package/dist/esm/workflow/utils/retry_utils.js +82 -0
  459. package/dist/esm/workflow/utils/workflow_graph_utils.js +115 -0
  460. package/dist/esm/workflow/workflow.js +493 -0
  461. package/dist/types/a2a/agent_card.d.ts +3 -3
  462. package/dist/types/a2a/agent_to_a2a.d.ts +4 -4
  463. package/dist/types/a2a/auth.d.ts +30 -0
  464. package/dist/types/a2a/event_converter_utils.d.ts +4 -1
  465. package/dist/types/a2a/event_processor_utils.d.ts +17 -2
  466. package/dist/types/a2a/index.d.ts +18 -0
  467. package/dist/types/agents/base_agent.d.ts +37 -9
  468. package/dist/types/agents/framework_function_calls.d.ts +26 -0
  469. package/dist/types/agents/functions.d.ts +1 -2
  470. package/dist/types/agents/invocation_context.d.ts +95 -3
  471. package/dist/types/agents/live_request_queue.d.ts +7 -1
  472. package/dist/types/agents/llm_agent.d.ts +77 -1
  473. package/dist/types/agents/loop_agent.d.ts +5 -0
  474. package/dist/types/agents/parallel_agent.d.ts +5 -0
  475. package/dist/types/agents/processors/content_processor_utils.d.ts +3 -2
  476. package/dist/types/agents/processors/identity_llm_request_processor.d.ts +4 -1
  477. package/dist/types/agents/processors/request_input_llm_request_processor.d.ts +21 -0
  478. package/dist/types/agents/run_config.d.ts +57 -2
  479. package/dist/types/agents/sequential_agent.d.ts +5 -0
  480. package/dist/types/agents/user_input_request.d.ts +71 -0
  481. package/dist/types/apps/app.d.ts +8 -3
  482. package/dist/types/artifacts/gcs_artifact_service.d.ts +9 -2
  483. package/dist/types/auth/credential_response_binding.d.ts +24 -0
  484. package/dist/types/auth/credential_service/in_memory_credential_service.d.ts +11 -0
  485. package/dist/types/code_executors/unsafe_local_code_executor.d.ts +5 -1
  486. package/dist/types/common.d.ts +20 -8
  487. package/dist/types/context/agent_controlled_context_compactor.d.ts +0 -1
  488. package/dist/types/context/compaction_utils.d.ts +8 -0
  489. package/dist/types/context/token_based_context_compactor.d.ts +0 -1
  490. package/dist/types/environment/base_environment.d.ts +101 -0
  491. package/dist/types/environment/local_environment.d.ts +72 -0
  492. package/dist/types/events/event.d.ts +94 -1
  493. package/dist/types/events/event_actions.d.ts +10 -0
  494. package/dist/types/index.d.ts +6 -13
  495. package/dist/types/memory/in_memory_memory_service.d.ts +11 -0
  496. package/dist/types/models/apigee_llm.d.ts +4 -4
  497. package/dist/types/models/google_llm.d.ts +2 -1
  498. package/dist/types/plugins/base_plugin.d.ts +39 -2
  499. package/dist/types/plugins/plugin_manager.d.ts +20 -0
  500. package/dist/types/plugins/security_plugin.d.ts +4 -2
  501. package/dist/types/runner/in_memory_runner.d.ts +2 -2
  502. package/dist/types/runner/runner.d.ts +59 -3
  503. package/dist/types/sessions/base_session_service.d.ts +10 -2
  504. package/dist/types/sessions/in_memory_session_service.d.ts +9 -0
  505. package/dist/types/sessions/state.d.ts +34 -1
  506. package/dist/types/sessions/state_write_order.d.ts +39 -0
  507. package/dist/types/sessions/vertex_ai_session_service.d.ts +19 -1
  508. package/dist/types/skills/loader.d.ts +5 -0
  509. package/dist/types/telemetry/tracing.d.ts +15 -0
  510. package/dist/types/tools/base_tool.d.ts +15 -0
  511. package/dist/types/tools/finish_task_tool.d.ts +47 -0
  512. package/dist/types/tools/function_tool.d.ts +46 -1
  513. package/dist/types/tools/get_user_choice_tool.d.ts +14 -0
  514. package/dist/types/tools/mcp/index.d.ts +13 -0
  515. package/dist/types/tools/mcp/mcp_session_manager.d.ts +3 -3
  516. package/dist/types/tools/mcp/mcp_tool.d.ts +1 -1
  517. package/dist/types/tools/mcp/mcp_toolset.d.ts +1 -1
  518. package/dist/types/tools/request_input_tool.d.ts +20 -0
  519. package/dist/types/tools/skill/skill_toolset.d.ts +26 -0
  520. package/dist/types/tools/tool_confirmation.d.ts +47 -0
  521. package/dist/types/utils/async_queue.d.ts +34 -2
  522. package/dist/types/utils/crypto_shim.d.ts +16 -0
  523. package/dist/types/utils/deprecated.d.ts +21 -0
  524. package/dist/types/utils/env_aware_utils.d.ts +39 -0
  525. package/dist/types/utils/error_utils.d.ts +18 -0
  526. package/dist/types/utils/file_utils.d.ts +10 -2
  527. package/dist/types/utils/genai_schema_to_json.d.ts +25 -0
  528. package/dist/types/utils/optional_peer.d.ts +36 -0
  529. package/dist/types/utils/output_schema_utils.d.ts +18 -0
  530. package/dist/types/utils/redact_uri.d.ts +28 -0
  531. package/dist/types/utils/schema.d.ts +73 -0
  532. package/dist/types/utils/simple_zod_to_json.d.ts +8 -0
  533. package/dist/types/utils/vertex_ai_utils.d.ts +5 -0
  534. package/dist/types/version.d.ts +1 -1
  535. package/dist/types/workflow/base_node.d.ts +142 -0
  536. package/dist/types/workflow/branch_path.d.ts +40 -0
  537. package/dist/types/workflow/dynamic_node_scheduler.d.ts +64 -0
  538. package/dist/types/workflow/errors.d.ts +132 -0
  539. package/dist/types/workflow/graph.d.ts +127 -0
  540. package/dist/types/workflow/index.d.ts +46 -0
  541. package/dist/types/workflow/node.d.ts +48 -0
  542. package/dist/types/workflow/node_builders.d.ts +25 -0
  543. package/dist/types/workflow/node_context.d.ts +208 -0
  544. package/dist/types/workflow/node_error_event.d.ts +18 -0
  545. package/dist/types/workflow/node_runner.d.ts +82 -0
  546. package/dist/types/workflow/node_state.d.ts +47 -0
  547. package/dist/types/workflow/node_status.d.ts +28 -0
  548. package/dist/types/workflow/nodes/function_node.d.ts +78 -0
  549. package/dist/types/workflow/nodes/join_node.d.ts +24 -0
  550. package/dist/types/workflow/nodes/node_tool.d.ts +53 -0
  551. package/dist/types/workflow/nodes/parallel_worker.d.ts +55 -0
  552. package/dist/types/workflow/nodes/tool_node.d.ts +34 -0
  553. package/dist/types/workflow/request_input.d.ts +73 -0
  554. package/dist/types/workflow/retry_config.d.ts +84 -0
  555. package/dist/types/workflow/run_llm_agent_as_node.d.ts +28 -0
  556. package/dist/types/workflow/run_node_as_invocation.d.ts +72 -0
  557. package/dist/types/workflow/schedule_dynamic_node.d.ts +66 -0
  558. package/dist/types/workflow/trigger.d.ts +22 -0
  559. package/dist/types/workflow/utils/graph_parser.d.ts +8 -0
  560. package/dist/types/workflow/utils/graph_validation.d.ts +18 -0
  561. package/dist/types/workflow/utils/hitl_utils.d.ts +92 -0
  562. package/dist/types/workflow/utils/rehydration_utils.d.ts +132 -0
  563. package/dist/types/workflow/utils/retry_utils.d.ts +54 -0
  564. package/dist/types/workflow/utils/workflow_graph_utils.d.ts +76 -0
  565. package/dist/types/workflow/workflow.d.ts +115 -0
  566. package/dist/web/a2a/a2a_event.js +19 -0
  567. package/dist/web/a2a/a2a_remote_agent.js +18 -4
  568. package/dist/web/a2a/a2a_remote_agent_run_processor.js +8 -3
  569. package/dist/web/a2a/a2a_remote_agent_utils.js +10 -2
  570. package/dist/web/a2a/agent_card.js +34 -3
  571. package/dist/web/a2a/agent_executor.js +45 -17
  572. package/dist/web/a2a/agent_to_a2a.js +44 -16
  573. package/dist/web/a2a/auth.js +41 -0
  574. package/dist/web/a2a/event_converter_utils.js +50 -15
  575. package/dist/web/a2a/event_processor_utils.js +73 -34
  576. package/dist/web/a2a/executor_context.js +3 -0
  577. package/dist/web/a2a/index.js +20 -0
  578. package/dist/web/a2a/metadata_converter_utils.js +5 -0
  579. package/dist/web/a2a/part_converter_utils.js +13 -0
  580. package/dist/web/agents/active_streaming_tool.js +6 -2
  581. package/dist/web/agents/base_agent.js +48 -9
  582. package/dist/web/agents/context.js +6 -2
  583. package/dist/web/agents/framework_function_calls.js +34 -0
  584. package/dist/web/agents/functions.js +62 -20
  585. package/dist/web/agents/instructions.js +52 -12
  586. package/dist/web/agents/invocation_context.js +56 -7
  587. package/dist/web/agents/live_request_queue.js +30 -5
  588. package/dist/web/agents/llm_agent.js +631 -52
  589. package/dist/web/agents/loop_agent.js +21 -2
  590. package/dist/web/agents/parallel_agent.js +23 -2
  591. package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +8 -4
  592. package/dist/web/agents/processors/base_llm_processor.js +10 -4
  593. package/dist/web/agents/processors/basic_llm_request_processor.js +8 -4
  594. package/dist/web/agents/processors/code_execution_request_processor.js +19 -5
  595. package/dist/web/agents/processors/content_processor_utils.js +87 -16
  596. package/dist/web/agents/processors/content_request_processor.js +12 -25
  597. package/dist/web/agents/processors/context_compactor_request_processor.js +6 -2
  598. package/dist/web/agents/processors/identity_llm_request_processor.js +13 -4
  599. package/dist/web/agents/processors/instructions_llm_request_processor.js +9 -3
  600. package/dist/web/agents/processors/interactions_request_processor.js +6 -2
  601. package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +329 -104
  602. package/dist/web/agents/processors/request_input_llm_request_processor.js +228 -0
  603. package/dist/web/agents/processors/tool_filter_request_processor.js +6 -2
  604. package/dist/web/agents/readonly_context.js +8 -3
  605. package/dist/web/agents/routed_agent.js +6 -14
  606. package/dist/web/agents/run_config.js +12 -0
  607. package/dist/web/agents/sequential_agent.js +22 -3
  608. package/dist/web/agents/user_input_request.js +135 -0
  609. package/dist/web/apps/app.js +14 -11
  610. package/dist/web/apps/resumability_config.js +2 -0
  611. package/dist/web/artifacts/file_artifact_service.js +22 -2
  612. package/dist/web/artifacts/gcs_artifact_service.js +56 -11
  613. package/dist/web/artifacts/in_memory_artifact_service.js +20 -11
  614. package/dist/web/artifacts/registry.js +7 -1
  615. package/dist/web/artifacts/scoped_artifact_service.js +5 -2
  616. package/dist/web/auth/auth_handler.js +5 -2
  617. package/dist/web/auth/auth_preprocessor.js +50 -41
  618. package/dist/web/auth/auth_provider_registry.js +6 -2
  619. package/dist/web/auth/auth_schemes.js +3 -0
  620. package/dist/web/auth/credential_response_binding.js +91 -0
  621. package/dist/web/auth/credential_service/in_memory_credential_service.js +20 -5
  622. package/dist/web/auth/credential_service/session_state_credential_service.js +6 -2
  623. package/dist/web/auth/exchanger/base_credential_exchanger.js +6 -2
  624. package/dist/web/auth/exchanger/credential_exchanger_registry.js +6 -2
  625. package/dist/web/auth/oauth2/oauth2_credential_exchanger.js +8 -2
  626. package/dist/web/auth/oauth2/oauth2_credential_refresher.js +5 -2
  627. package/dist/web/auth/oauth2/oauth2_discovery.js +8 -2
  628. package/dist/web/auth/oauth2/oauth2_utils.js +7 -0
  629. package/dist/web/auth/refresher/base_credential_refresher.js +6 -2
  630. package/dist/web/auth/refresher/credential_refresher_registry.js +6 -2
  631. package/dist/web/code_executors/agent_engine_sandbox_code_executor.js +3 -0
  632. package/dist/web/code_executors/base_code_executor.js +7 -2
  633. package/dist/web/code_executors/built_in_code_executor.js +7 -2
  634. package/dist/web/code_executors/code_execution_utils.js +7 -0
  635. package/dist/web/code_executors/code_executor_context.js +6 -2
  636. package/dist/web/code_executors/unsafe_local_code_executor.js +31 -13
  637. package/dist/web/common.js +113 -4
  638. package/dist/web/context/agent_controlled_context_compactor.js +8 -13
  639. package/dist/web/context/anchored_context_compactor.js +5 -2
  640. package/dist/web/context/compaction_utils.js +16 -1
  641. package/dist/web/context/summarizers/llm_summarizer.js +6 -2
  642. package/dist/web/context/token_based_context_compactor.js +16 -24
  643. package/dist/web/context/trajectory_thought_pruning_compactor.js +6 -2
  644. package/dist/web/context/truncating_context_compactor.js +6 -2
  645. package/dist/web/environment/base_environment.js +71 -0
  646. package/dist/web/environment/local_environment.js +165 -0
  647. package/dist/web/events/compacted_event.js +4 -0
  648. package/dist/web/events/event.js +37 -3
  649. package/dist/web/events/event_actions.js +5 -0
  650. package/dist/web/events/structured_events.js +3 -0
  651. package/dist/web/examples/base_example_provider.js +7 -2
  652. package/dist/web/examples/example_util.js +4 -0
  653. package/dist/web/features/feature_registry.js +8 -0
  654. package/dist/web/index.js +4 -13
  655. package/dist/web/integrations/agent_registry/agent_registry.js +8 -4
  656. package/dist/web/integrations/agent_registry/agent_registry_mcp_toolset.js +5 -2
  657. package/dist/web/integrations/agent_registry/helpers.js +4 -0
  658. package/dist/web/memory/in_memory_memory_service.js +22 -4
  659. package/dist/web/memory/vertex_ai_memory_bank_service.js +24 -3
  660. package/dist/web/models/apigee_llm.js +9 -3
  661. package/dist/web/models/base_llm.js +8 -3
  662. package/dist/web/models/gemini_llm_connection.js +6 -2
  663. package/dist/web/models/google_llm.js +25 -13
  664. package/dist/web/models/interactions_utils.js +17 -0
  665. package/dist/web/models/llm_request.js +5 -0
  666. package/dist/web/models/llm_response.js +3 -0
  667. package/dist/web/models/registry.js +7 -2
  668. package/dist/web/models/routed_llm.js +4 -14
  669. package/dist/web/plugins/base_plugin.js +43 -7
  670. package/dist/web/plugins/global_instruction_plugin.js +6 -2
  671. package/dist/web/plugins/logging_plugin.js +14 -8
  672. package/dist/web/plugins/plugin_manager.js +38 -2
  673. package/dist/web/plugins/security_plugin.js +14 -6
  674. package/dist/web/runner/in_memory_runner.js +6 -2
  675. package/dist/web/runner/runner.js +249 -31
  676. package/dist/web/sessions/base_session_service.js +22 -5
  677. package/dist/web/sessions/database_session_service.js +6 -2
  678. package/dist/web/sessions/db/operations.js +34 -6
  679. package/dist/web/sessions/db/schema.js +16 -8
  680. package/dist/web/sessions/in_memory_session_service.js +31 -22
  681. package/dist/web/sessions/registry.js +5 -1
  682. package/dist/web/sessions/session.js +3 -0
  683. package/dist/web/sessions/state.js +77 -7
  684. package/dist/web/sessions/state_write_order.js +74 -0
  685. package/dist/web/sessions/vertex_ai_session_service.js +142 -26
  686. package/dist/web/skills/gcp_skill_registry.js +2 -0
  687. package/dist/web/skills/loader.js +62 -16
  688. package/dist/web/skills/prompt.js +4 -0
  689. package/dist/web/telemetry/google_cloud.js +54 -9
  690. package/dist/web/telemetry/setup.js +6 -0
  691. package/dist/web/telemetry/tracing.js +77 -7
  692. package/dist/web/tools/agent_tool.js +7 -2
  693. package/dist/web/tools/base_tool.js +25 -2
  694. package/dist/web/tools/base_toolset.js +7 -2
  695. package/dist/web/tools/consolidate_context_tool.js +6 -2
  696. package/dist/web/tools/enterprise_web_search_tool.js +7 -2
  697. package/dist/web/tools/example_tool.js +6 -2
  698. package/dist/web/tools/exit_loop_tool.js +6 -2
  699. package/dist/web/tools/finish_task_tool.js +92 -0
  700. package/dist/web/tools/forwarding_artifact_service.js +6 -2
  701. package/dist/web/tools/function_tool.js +74 -8
  702. package/dist/web/tools/get_user_choice_tool.js +27 -0
  703. package/dist/web/tools/google_maps_grounding_tool.js +7 -2
  704. package/dist/web/tools/google_search_tool.js +6 -2
  705. package/dist/web/tools/load_artifacts_tool.js +9 -2
  706. package/dist/web/tools/load_memory_tool.js +6 -2
  707. package/dist/web/tools/load_web_page.js +22 -1
  708. package/dist/web/tools/long_running_tool.js +5 -2
  709. package/dist/web/tools/mcp/index.js +11 -0
  710. package/dist/web/tools/mcp/load_mcp_resource_tool.js +6 -2
  711. package/dist/web/tools/mcp/mcp_session_manager.js +80 -30
  712. package/dist/web/tools/mcp/mcp_tool.js +6 -2
  713. package/dist/web/tools/mcp/mcp_toolset.js +5 -2
  714. package/dist/web/tools/openapi_tool/auth/auth_helpers.js +5 -0
  715. package/dist/web/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +2 -0
  716. package/dist/web/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +2 -0
  717. package/dist/web/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +30 -9
  718. package/dist/web/tools/openapi_tool/openapi_spec_parser/operation_parser.js +2 -0
  719. package/dist/web/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +6 -2
  720. package/dist/web/tools/openapi_tool/openapi_toolset.js +2 -0
  721. package/dist/web/tools/openapi_tool/rest_api_tool.js +23 -5
  722. package/dist/web/tools/preload_memory_tool.js +6 -2
  723. package/dist/web/tools/request_input_tool.js +29 -0
  724. package/dist/web/tools/skill/list_skills_tool.js +2 -0
  725. package/dist/web/tools/skill/load_skill_resource_tool.js +2 -0
  726. package/dist/web/tools/skill/load_skill_tool.js +4 -1
  727. package/dist/web/tools/skill/run_skill_inline_script_tool.js +26 -2
  728. package/dist/web/tools/skill/run_skill_script_tool.js +28 -2
  729. package/dist/web/tools/skill/search_skills_tool.js +2 -0
  730. package/dist/web/tools/skill/skill_toolset.js +25 -0
  731. package/dist/web/tools/tool_confirmation.js +24 -2
  732. package/dist/web/tools/url_context_tool.js +6 -2
  733. package/dist/web/tools/vertex_ai_search_tool.js +6 -2
  734. package/dist/web/tools/vertex_rag_retrieval_tool.js +6 -2
  735. package/dist/web/utils/async_hooks_shim.js +6 -2
  736. package/dist/web/utils/async_queue.js +46 -18
  737. package/dist/web/utils/branch_trie.js +3 -0
  738. package/dist/web/utils/case_utils.js +3 -0
  739. package/dist/web/utils/client_labels.js +6 -0
  740. package/dist/web/utils/crypto_shim.js +18 -0
  741. package/dist/web/utils/deprecated.js +40 -0
  742. package/dist/web/utils/env_aware_utils.js +56 -13
  743. package/dist/web/utils/error_utils.js +101 -0
  744. package/dist/web/utils/experimental.js +10 -2
  745. package/dist/web/utils/failover_utils.js +4 -0
  746. package/dist/web/utils/file_extension_utils.js +4 -0
  747. package/dist/web/utils/file_utils.js +12 -4
  748. package/dist/web/utils/gemini_schema_util.js +6 -2
  749. package/dist/web/utils/genai_schema_to_json.js +80 -0
  750. package/dist/web/utils/live_connection_utils.js +5 -2
  751. package/dist/web/utils/logger.js +14 -4
  752. package/dist/web/utils/model_name.js +9 -0
  753. package/dist/web/utils/object_notation_utils.js +8 -3
  754. package/dist/web/utils/optional_peer.js +38 -0
  755. package/dist/web/utils/output_schema_utils.js +18 -0
  756. package/dist/web/utils/partial_copy.js +3 -0
  757. package/dist/web/utils/redact_uri.js +39 -0
  758. package/dist/web/utils/schema.js +167 -0
  759. package/dist/web/utils/simple_zod_to_json.js +15 -4
  760. package/dist/web/utils/streaming_utils.js +14 -6
  761. package/dist/web/utils/task.js +8 -4
  762. package/dist/web/utils/variant_utils.js +5 -2
  763. package/dist/web/utils/vertex_ai_utils.js +7 -2
  764. package/dist/web/version.js +1 -1
  765. package/dist/web/workflow/base_node.js +215 -0
  766. package/dist/web/workflow/branch_path.js +77 -0
  767. package/dist/web/workflow/dynamic_node_scheduler.js +202 -0
  768. package/dist/web/workflow/errors.js +140 -0
  769. package/dist/web/workflow/graph.js +127 -0
  770. package/dist/web/workflow/index.js +80 -0
  771. package/dist/web/workflow/node.js +87 -0
  772. package/dist/web/workflow/node_builders.js +40 -0
  773. package/dist/web/workflow/node_context.js +236 -0
  774. package/dist/web/workflow/node_error_event.js +86 -0
  775. package/dist/web/workflow/node_runner.js +481 -0
  776. package/dist/web/workflow/node_state.js +43 -0
  777. package/dist/web/workflow/node_status.js +20 -0
  778. package/dist/web/workflow/nodes/function_node.js +221 -0
  779. package/dist/web/workflow/nodes/join_node.js +47 -0
  780. package/dist/web/workflow/nodes/node_tool.js +131 -0
  781. package/dist/web/workflow/nodes/parallel_worker.js +120 -0
  782. package/dist/web/workflow/nodes/tool_node.js +126 -0
  783. package/dist/web/workflow/request_input.js +36 -0
  784. package/dist/web/workflow/retry_config.js +43 -0
  785. package/dist/web/workflow/run_llm_agent_as_node.js +266 -0
  786. package/dist/web/workflow/run_node_as_invocation.js +170 -0
  787. package/dist/web/workflow/schedule_dynamic_node.js +26 -0
  788. package/dist/web/workflow/trigger.js +7 -0
  789. package/dist/web/workflow/utils/graph_parser.js +188 -0
  790. package/dist/web/workflow/utils/graph_validation.js +189 -0
  791. package/dist/web/workflow/utils/hitl_utils.js +239 -0
  792. package/dist/web/workflow/utils/rehydration_utils.js +342 -0
  793. package/dist/web/workflow/utils/retry_utils.js +82 -0
  794. package/dist/web/workflow/utils/workflow_graph_utils.js +115 -0
  795. package/dist/web/workflow/workflow.js +529 -0
  796. package/package.json +82 -8
@@ -0,0 +1,71 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * Inspection helpers for the "paused, waiting on a human" state.
8
+ *
9
+ * A pause is not visible in an event's text: it is carried in a `functionCall`
10
+ * part named `adk_request_*`, with the prompt buried in that call's `args`. A
11
+ * client that renders only text parts therefore shows the user nothing while
12
+ * the run sits blocked. These helpers flatten the three encodings into one
13
+ * shape so a caller need not know how each kind stores its id and prompt.
14
+ */
15
+ import { AuthConfig } from '../auth/auth_tool.js';
16
+ import { Event } from '../events/event.js';
17
+ /**
18
+ * What a paused run is waiting for.
19
+ *
20
+ * - `input`: free-form or structured data (`RequestInput`).
21
+ * - `credential`: an auth credential, e.g. an API key or an OAuth flow.
22
+ * - `confirmation`: approval to run a tool guarded by `requireConfirmation`.
23
+ */
24
+ export type UserInputKind = 'input' | 'credential' | 'confirmation';
25
+ /** A single request for user input carried by an event. */
26
+ export interface UserInputRequest {
27
+ kind: UserInputKind;
28
+ /**
29
+ * The id that answers this request: reply with a `functionResponse` carrying
30
+ * this same id (and {@link functionCallName}).
31
+ */
32
+ interruptId: string;
33
+ /** The name to answer with, alongside {@link interruptId}. */
34
+ functionCallName: string;
35
+ /** The node or agent that raised the request. */
36
+ author?: string;
37
+ /**
38
+ * Human-readable prompt for the user. Populated for every kind: the
39
+ * `RequestInput` message, the credential prompt, or the tool-confirmation
40
+ * hint. Absent when the raiser supplied none.
41
+ */
42
+ message?: string;
43
+ /** Structured data attached to the request (`RequestInput.payload`). */
44
+ payload?: unknown;
45
+ /** JSON schema the reply is expected to satisfy, when declared. */
46
+ responseSchema?: unknown;
47
+ /** `confirmation` only: the tool awaiting approval. */
48
+ toolName?: string;
49
+ /** `credential` only: the auth config to complete. */
50
+ authConfig?: AuthConfig;
51
+ }
52
+ /**
53
+ * Returns every user-input request carried by a single event, in part order.
54
+ *
55
+ * This reports what the event *asks for*; it does not know whether the request
56
+ * was later answered. Use {@link getPendingUserInputRequests} over a session's
57
+ * events to get only the ones still outstanding.
58
+ */
59
+ export declare function getUserInputRequests(event: Event): UserInputRequest[];
60
+ /** Whether this event asks the user for something. */
61
+ export declare function requiresUserInput(event: Event): boolean;
62
+ /**
63
+ * Returns the requests across a sequence of events that have not been answered
64
+ * yet, in the order they were raised.
65
+ *
66
+ * A request is answered by a later `functionResponse` part carrying the same
67
+ * id, which is how a resumed session records the user's reply. Pass a session's
68
+ * events to answer "is this session waiting on the user right now, and for
69
+ * what?".
70
+ */
71
+ export declare function getPendingUserInputRequests(events: readonly Event[]): UserInputRequest[];
@@ -3,8 +3,8 @@
3
3
  * Copyright 2026 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { BaseAgent } from '../agents/base_agent.js';
7
6
  import { BasePlugin } from '../plugins/base_plugin.js';
7
+ import { RunnableRoot } from '../workflow/run_node_as_invocation.js';
8
8
  import { ResumabilityConfig } from './resumability_config.js';
9
9
  /**
10
10
  * Ensures the provided application name is safe and intuitive.
@@ -26,7 +26,12 @@ export declare function isApp(obj: unknown): obj is App;
26
26
  */
27
27
  export interface AppOptions {
28
28
  name: string;
29
- rootAgent: BaseAgent;
29
+ /**
30
+ * The root of the application. A bare node — a `Workflow`, most usefully —
31
+ * is accepted and adapted, so a graph does not have to be wrapped by hand to
32
+ * be an app root. Accepts the same set a `Runner` does.
33
+ */
34
+ rootAgent: RunnableRoot;
30
35
  plugins?: BasePlugin[];
31
36
  resumabilityConfig?: ResumabilityConfig;
32
37
  }
@@ -44,7 +49,7 @@ export interface AppOptions {
44
49
  export declare class App {
45
50
  readonly [APP_SIGNATURE_SYMBOL] = true;
46
51
  readonly name: string;
47
- readonly rootAgent: BaseAgent | any;
52
+ readonly rootAgent: RunnableRoot;
48
53
  readonly plugins: BasePlugin[];
49
54
  readonly resumabilityConfig?: ResumabilityConfig;
50
55
  constructor(options: AppOptions);
@@ -3,12 +3,19 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { StorageOptions } from '@google-cloud/storage';
6
+ import type { StorageOptions } from '@google-cloud/storage';
7
7
  import { Part } from '@google/genai';
8
8
  import { ArtifactVersion, BaseArtifactService, DeleteArtifactRequest, ListArtifactKeysRequest, ListVersionsRequest, LoadArtifactRequest, SaveArtifactRequest } from './base_artifact_service.js';
9
9
  export declare class GcsArtifactService implements BaseArtifactService {
10
- private readonly bucket;
10
+ private readonly bucketName;
11
+ private readonly storageOptions?;
12
+ private bucketPromise?;
11
13
  constructor(bucket: string, options?: StorageOptions);
14
+ /**
15
+ * Resolves the GCS bucket handle, loading the `@google-cloud/storage`
16
+ * optional peer on first use.
17
+ */
18
+ private getBucket;
12
19
  saveArtifact(request: SaveArtifactRequest): Promise<number>;
13
20
  loadArtifact(request: LoadArtifactRequest): Promise<Part | undefined>;
14
21
  listArtifactKeys(request: ListArtifactKeysRequest): Promise<string[]>;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { AuthConfig } from './auth_tool.js';
7
+ /**
8
+ * Reconciles a credential response with the request that asked for it.
9
+ *
10
+ * The request is agent-authored and defines the question: which scheme, from
11
+ * which authorization server, under which key, on behalf of which client. The
12
+ * response is client-authored and carries one thing — the credential material
13
+ * the user obtained. Everything else it contains is discarded, because a
14
+ * response that gets to restate the question also decides whether the
15
+ * credential is exchanged at all, where the exchange sends the client secret,
16
+ * and which waiting tool picks the result up.
17
+ *
18
+ * The request is typed loosely on purpose: it is read back off the wire out of
19
+ * a function call's args, so it can arrive missing the fields its type
20
+ * promises. Returns `undefined` when it is too incomplete to be an authority,
21
+ * or when the response carries nothing that answers it — either way there is
22
+ * nothing that can safely be stored.
23
+ */
24
+ export declare function bindCredentialResponse(request: Partial<AuthConfig>, response: unknown): AuthConfig | undefined;
@@ -12,6 +12,17 @@ import { BaseCredentialService } from './base_credential_service.js';
12
12
  * implementation of credential service
13
13
  */
14
14
  export declare class InMemoryCredentialService implements BaseCredentialService {
15
+ /**
16
+ * A map from app name to a map from user ID to a map from credential key to
17
+ * credential.
18
+ *
19
+ * `appName`, `userId` and `credentialKey` are all attacker-influenced, so
20
+ * every level is created with `Object.create(null)`. On an ordinary `{}`
21
+ * literal a key of `__proto__` resolves to the inherited `__proto__`
22
+ * accessor rather than creating an own property, so nested assignment
23
+ * pollutes every object in the process, and a lookup of an inherited key
24
+ * such as `toString` returns a function instead of `undefined`.
25
+ */
15
26
  private readonly credentials;
16
27
  loadCredential(authConfig: AuthConfig, toolContext: Context): Promise<AuthCredential | undefined>;
17
28
  saveCredential(authConfig: AuthConfig, toolContext: Context): Promise<void>;
@@ -23,6 +23,10 @@ export interface UnsafeLocalCodeExecutorOptions {
23
23
  pythonCommandPath?: string;
24
24
  /**
25
25
  * The command to run Shell code. Default is `bash`.
26
+ *
27
+ * When it names `powershell` or `pwsh` (with or without `.exe`) the script
28
+ * is written as `.ps1` and run through PowerShell rather than as a bare
29
+ * shell script.
26
30
  */
27
31
  shellCommandPath?: string;
28
32
  }
@@ -33,7 +37,7 @@ export interface UnsafeLocalCodeExecutorOptions {
33
37
  * **Execution Details**:
34
38
  * - **JavaScript**: Executed via `node` (defaults to `process.execPath`).
35
39
  * - **Python**: Executed via `python3` on Unix, and `python` on Windows.
36
- * - **Shell**: Executed via `bash` on Unix, and defaults to `powershell` (injecting ExecutionPolicy Bypass) or `cmd.exe` on Windows.
40
+ * - **Shell**: Executed via `bash` on Unix, and defaults to `powershell` (injecting `-NoProfile` and `-ExecutionPolicy Bypass`) or `cmd.exe` (injecting `/D`) on Windows.
37
41
  *
38
42
  * WARNING: This executor runs code in the local environment without sandboxing or security restrictions.
39
43
  * Use with caution and only for trusted code.
@@ -8,9 +8,9 @@ export type { ActiveStreamingToolParams } from './agents/active_streaming_tool.j
8
8
  export { BaseAgent, isBaseAgent } from './agents/base_agent.js';
9
9
  export type { AfterAgentCallback, BaseAgentConfig, BeforeAgentCallback, SingleAgentCallback, } from './agents/base_agent.js';
10
10
  export { Context } from './agents/context.js';
11
- export { findEventByFunctionCallId, findMatchingFunctionCall, functionsExportedForTestingOnly, } from './agents/functions.js';
12
- export { InvocationContext } from './agents/invocation_context.js';
13
- export type { InvocationContextParams } from './agents/invocation_context.js';
11
+ export { REQUEST_CONFIRMATION_FUNCTION_CALL_NAME, REQUEST_CREDENTIAL_FUNCTION_CALL_NAME, REQUEST_INPUT_FUNCTION_CALL_NAME, findEventByFunctionCallId, findMatchingFunctionCall, functionsExportedForTestingOnly, } from './agents/functions.js';
12
+ export { InvocationContext, requireAgent } from './agents/invocation_context.js';
13
+ export type { InvocationContextParams, WorkflowInstructionScope, } from './agents/invocation_context.js';
14
14
  export { LiveRequestQueue } from './agents/live_request_queue.js';
15
15
  export type { LiveRequest } from './agents/live_request_queue.js';
16
16
  export { LlmAgent as Agent, LlmAgent, isLlmAgent } from './agents/llm_agent.js';
@@ -30,6 +30,8 @@ export { StreamingMode } from './agents/run_config.js';
30
30
  export type { RunConfig } from './agents/run_config.js';
31
31
  export { SequentialAgent, isSequentialAgent } from './agents/sequential_agent.js';
32
32
  export type { TranscriptionEntry } from './agents/transcription_entry.js';
33
+ export { getPendingUserInputRequests, getUserInputRequests, requiresUserInput, } from './agents/user_input_request.js';
34
+ export type { UserInputKind, UserInputRequest, } from './agents/user_input_request.js';
33
35
  export { createResumabilityConfig } from './apps/resumability_config.js';
34
36
  export type { ResumabilityConfig } from './apps/resumability_config.js';
35
37
  export type { BaseArtifactService, DeleteArtifactRequest, ListArtifactKeysRequest, ListVersionsRequest, LoadArtifactRequest, SaveArtifactRequest, } from './artifacts/base_artifact_service.js';
@@ -70,10 +72,12 @@ export { TrajectoryThoughtPruningCompactor } from './context/trajectory_thought_
70
72
  export type { TrajectoryThoughtPruningCompactorOptions } from './context/trajectory_thought_pruning_compactor.js';
71
73
  export { TruncatingContextCompactor } from './context/truncating_context_compactor.js';
72
74
  export type { TruncatingContextCompactorOptions } from './context/truncating_context_compactor.js';
75
+ export { BaseEnvironment } from './environment/base_environment.js';
76
+ export type { ExecutionResult } from './environment/base_environment.js';
73
77
  export { isCompactedEvent, isScratchpadEvent } from './events/compacted_event.js';
74
78
  export type { CompactedEvent } from './events/compacted_event.js';
75
79
  export { createEvent, generateClientFunctionCallId, getFunctionCalls, getFunctionResponses, hasThoughts, hasTrailingCodeExecutionResult, isFinalResponse, populateClientFunctionCallId, pruneThoughts, stringifyContent, } from './events/event.js';
76
- export type { Event } from './events/event.js';
80
+ export type { CreateEventParams, Event, NodeInfo, Route, RouteKey, } from './events/event.js';
77
81
  export { createEventActions } from './events/event_actions.js';
78
82
  export type { EventActions } from './events/event_actions.js';
79
83
  export { EventType, toStructuredEvents } from './events/structured_events.js';
@@ -101,7 +105,7 @@ export { BasePlugin, ContextCompactionTrigger } from './plugins/base_plugin.js';
101
105
  export { GlobalInstructionPlugin } from './plugins/global_instruction_plugin.js';
102
106
  export { LoggingPlugin } from './plugins/logging_plugin.js';
103
107
  export { PluginManager } from './plugins/plugin_manager.js';
104
- export { InMemoryPolicyEngine, PolicyOutcome, REQUEST_CONFIRMATION_FUNCTION_CALL_NAME, SecurityPlugin, getAskUserConfirmationFunctionCalls, } from './plugins/security_plugin.js';
108
+ export { InMemoryPolicyEngine, PolicyOutcome, SecurityPlugin, getAskUserConfirmationFunctionCalls, } from './plugins/security_plugin.js';
105
109
  export type { BasePolicyEngine, PolicyCheckResult, ToolCallPolicyContext, } from './plugins/security_plugin.js';
106
110
  export { InMemoryRunner } from './runner/in_memory_runner.js';
107
111
  export { Runner, determineAgentForResumption, findEventByLastFunctionResponseId, isRoutableLlmAgent, isRunner, } from './runner/runner.js';
@@ -111,7 +115,7 @@ export type { AppendEventRequest, CreateSessionRequest, DeleteSessionRequest, Ge
111
115
  export { InMemorySessionService } from './sessions/in_memory_session_service.js';
112
116
  export { createSession } from './sessions/session.js';
113
117
  export type { CompositeSessionKey, Session } from './sessions/session.js';
114
- export { State } from './sessions/state.js';
118
+ export { State, StateSchemaError, isStateSchemaError } from './sessions/state.js';
115
119
  export { AgentTool, isAgentTool } from './tools/agent_tool.js';
116
120
  export type { AgentToolConfig } from './tools/agent_tool.js';
117
121
  export { BaseTool, isBaseTool } from './tools/base_tool.js';
@@ -122,8 +126,10 @@ export { ConsolidateContextTool } from './tools/consolidate_context_tool.js';
122
126
  export { ENTERPRISE_WEB_SEARCH, EnterpriseWebSearchTool, } from './tools/enterprise_web_search_tool.js';
123
127
  export { ExampleTool } from './tools/example_tool.js';
124
128
  export { EXIT_LOOP, ExitLoopTool } from './tools/exit_loop_tool.js';
129
+ export { FINISH_TASK_SUCCESS_RESULT, FINISH_TASK_TOOL_NAME, FinishTaskTool, } from './tools/finish_task_tool.js';
125
130
  export { FunctionTool, isFunctionTool } from './tools/function_tool.js';
126
- export type { ToolExecuteArgument, ToolExecuteFunction, ToolInputParameters, ToolOptions, } from './tools/function_tool.js';
131
+ export type { RequireConfirmation, ToolExecuteArgument, ToolExecuteFunction, ToolInputParameters, ToolOptions, } from './tools/function_tool.js';
132
+ export { getUserChoiceTool } from './tools/get_user_choice_tool.js';
127
133
  export { GOOGLE_MAPS_GROUNDING, GoogleMapsGroundingTool, } from './tools/google_maps_grounding_tool.js';
128
134
  export { GOOGLE_SEARCH, GoogleSearchTool } from './tools/google_search_tool.js';
129
135
  export { LOAD_ARTIFACTS, LoadArtifactsTool, } from './tools/load_artifacts_tool.js';
@@ -132,15 +138,19 @@ export { LOAD_WEB_PAGE, loadWebPage } from './tools/load_web_page.js';
132
138
  export type { LoadWebPageOptions } from './tools/load_web_page.js';
133
139
  export { LongRunningFunctionTool } from './tools/long_running_tool.js';
134
140
  export { PRELOAD_MEMORY, PreloadMemoryTool, } from './tools/preload_memory_tool.js';
135
- export { ToolConfirmation } from './tools/tool_confirmation.js';
141
+ export { requestInputTool } from './tools/request_input_tool.js';
142
+ export { IntentMismatchError, ToolConfirmation, isIntentMismatchError, } from './tools/tool_confirmation.js';
143
+ export type { IntentMismatchReason } from './tools/tool_confirmation.js';
136
144
  export { URL_CONTEXT, UrlContextTool } from './tools/url_context_tool.js';
137
145
  export { VertexAiSearchTool } from './tools/vertex_ai_search_tool.js';
138
146
  export type { DataStoreParams, SearchEngineParams, VertexAISearchConfig, VertexAISearchDataStoreSpec, VertexAiSearchToolParams, } from './tools/vertex_ai_search_tool.js';
139
147
  export { VertexRagRetrievalTool } from './tools/vertex_rag_retrieval_tool.js';
148
+ export { AsyncQueue } from './utils/async_queue.js';
140
149
  export { getClientLabels, runWithClientLabel } from './utils/client_labels.js';
141
150
  export { LogLevel, getLogger, setLogLevel, setLogger } from './utils/logger.js';
142
151
  export type { Logger } from './utils/logger.js';
143
152
  export { isGemini2OrAbove, isGemini3xFlashLive } from './utils/model_name.js';
153
+ export type { SchemaLike } from './utils/schema.js';
144
154
  export { zodObjectToSchema } from './utils/simple_zod_to_json.js';
145
155
  export { Task } from './utils/task.js';
146
156
  export type { TaskExecutable } from './utils/task.js';
@@ -169,6 +179,8 @@ export { ToolAuthHandler } from './tools/openapi_tool/openapi_spec_parser/tool_a
169
179
  export type { AuthPreparationResult } from './tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js';
170
180
  export { OpenAPIToolset } from './tools/openapi_tool/openapi_toolset.js';
171
181
  export { RestApiTool, createRestApiTool, } from './tools/openapi_tool/rest_api_tool.js';
182
+ export { BaseNode, BranchPath, DEFAULT_ROUTE, Edge, FunctionNode, Graph, JoinNode, NodeContext, NodeReportedError, NodeSchemaValidationError, NodeStatus, NodeTimeoutError, NodeTool, ParallelWorker, RequestInput, START, ToolNode, Workflow, WorkflowNode, asRunnableRoot, commonPrefixOf, createNodeErrorEvent, createNodeState, createSubBranch, isNodeErrorEvent, isNodeReportedError, isNodeSchemaValidationError, isNodeState, isNodeTimeoutError, isRequestInput, isRunnableRoot, isWorkflow, node, normalizeRetryExceptions, prepareRetryConfig, } from './workflow/index.js';
183
+ export type { BaseNodeConfig, BuildNodeOptions, ChainElement, CreateNodeErrorEventParams, DynamicEntry, EdgeItem, ErrorClass, FunctionNodeConfig, FunctionNodeHandler, FunctionNodeResult, NodeContextOptions, NodeErrorEvent, NodeLike, NodeOptions, NodeResult, NodeState, ParallelWorkerConfig, PreparedRetryConfig, RequestInputParams, RetryConfig, RouteValue, RoutingMap, RunNodeOptions, RunnableNode, RunnableRoot, ScheduleDynamicNode, ScheduleDynamicNodeOptions, ToolNodeConfig, WorkflowConfig, } from './workflow/index.js';
172
184
  export * from './apps/app.js';
173
185
  export * from './artifacts/base_artifact_service.js';
174
186
  export * from './features/feature_registry.js';
@@ -20,5 +20,4 @@ export declare class AgentControlledContextCompactor implements BaseContextCompa
20
20
  shouldCompact(invocationContext: InvocationContext): boolean;
21
21
  compact(invocationContext: InvocationContext): Promise<void>;
22
22
  private clearFlags;
23
- private getActiveEvents;
24
23
  }
@@ -4,6 +4,14 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { Event } from '../events/event.js';
7
+ /**
8
+ * Filters the events to return only the active events since the latest compaction.
9
+ * If no compaction has occurred, returns all events.
10
+ *
11
+ * @param events The full history of events.
12
+ * @returns The active events, starting with the latest CompactedEvent if present.
13
+ */
14
+ export declare function getActiveEvents(events: Event[]): Event[];
7
15
  /**
8
16
  * Determines the baseline index to retain from active raw events,
9
17
  * ensuring we don't split between a function call and its response.
@@ -32,7 +32,6 @@ export declare class TokenBasedContextCompactor implements BaseContextCompactor
32
32
  private readonly eventRetentionSize;
33
33
  private readonly summarizer;
34
34
  constructor(options: TokenBasedContextCompactorOptions);
35
- private getActiveEvents;
36
35
  shouldCompact(invocationContext: InvocationContext): boolean | Promise<boolean>;
37
36
  compact(invocationContext: InvocationContext): Promise<void>;
38
37
  }
@@ -0,0 +1,101 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * Result of a shell command executed in a {@link BaseEnvironment}.
8
+ *
9
+ * This is distinct from `CodeExecutionResult`, which is produced by the code
10
+ * executors: a code executor runs a code *snippet* and reports the files it
11
+ * produced, whereas an environment runs a *shell command* inside a working
12
+ * directory and reports its process exit status.
13
+ *
14
+ * A command that succeeds with no output yields
15
+ * `{exitCode: 0, stdout: '', stderr: '', timedOut: false}`.
16
+ */
17
+ export interface ExecutionResult {
18
+ /** The exit code of the process. `0` on success. */
19
+ exitCode: number;
20
+ /** Standard output captured from the process. `''` when nothing was written. */
21
+ stdout: string;
22
+ /** Standard error captured from the process. `''` when nothing was written. */
23
+ stderr: string;
24
+ /** Whether the execution exceeded the timeout. `false` when it completed. */
25
+ timedOut: boolean;
26
+ }
27
+ /**
28
+ * Abstract base class for code execution environments.
29
+ *
30
+ * An environment provides the ability to execute shell commands, read files,
31
+ * and write files within a working directory. Concrete implementations include
32
+ * local subprocess execution, sandboxed execution, container environments, and
33
+ * cloud-hosted environments.
34
+ *
35
+ * Lifecycle:
36
+ * 1. Construct the environment.
37
+ * 2. Call {@link initialize} before first use.
38
+ * 3. Use {@link execute}, {@link readFile}, {@link writeFile}.
39
+ * 4. Call {@link close} when done.
40
+ */
41
+ export declare abstract class BaseEnvironment {
42
+ /**
43
+ * Backing flag for {@link isInitialized}.
44
+ *
45
+ * Subclasses own this flag: set it in {@link initialize} and clear it in
46
+ * {@link close}.
47
+ */
48
+ protected initialized: boolean;
49
+ /** Whether the environment has been initialized. */
50
+ get isInitialized(): boolean;
51
+ /**
52
+ * Initializes the environment (e.g. creates the working directory).
53
+ *
54
+ * Called before first use. The default implementation is a no-op and leaves
55
+ * {@link isInitialized} `false`. Subclasses must be idempotent and must set
56
+ * {@link initialized}.
57
+ */
58
+ initialize(): Promise<void>;
59
+ /**
60
+ * Releases resources held by the environment.
61
+ *
62
+ * The default implementation is a no-op. Subclasses must be idempotent and
63
+ * must clear {@link initialized}.
64
+ */
65
+ close(): Promise<void>;
66
+ /** The absolute path to the environment's working directory. */
67
+ abstract get workingDir(): string;
68
+ /**
69
+ * Executes a shell command in the working directory.
70
+ *
71
+ * @param command The shell command string to execute.
72
+ * @param timeoutSeconds Maximum execution time in seconds. `undefined` means
73
+ * no limit.
74
+ * @returns The exit code, stdout, stderr, and timeout status. A non-zero exit
75
+ * code is reported in the result, not thrown.
76
+ */
77
+ abstract execute(command: string, timeoutSeconds?: number): Promise<ExecutionResult>;
78
+ /**
79
+ * Reads a file from the environment's filesystem.
80
+ *
81
+ * @param filePath Absolute or working-dir-relative path to the file.
82
+ * @returns The raw file contents.
83
+ */
84
+ abstract readFile(filePath: string): Promise<Uint8Array>;
85
+ /**
86
+ * Writes content to a file in the environment's filesystem.
87
+ *
88
+ * Parent directories are created automatically if they do not exist.
89
+ *
90
+ * @param filePath Absolute or working-dir-relative path to the file.
91
+ * @param content The string or raw bytes to write.
92
+ */
93
+ abstract writeFile(filePath: string, content: string | Uint8Array): Promise<void>;
94
+ /**
95
+ * Throws if {@link initialize} has not been called.
96
+ *
97
+ * Implementations should call this at the start of every operation that needs
98
+ * a live working directory.
99
+ */
100
+ protected assertInitialized(): void;
101
+ }
@@ -0,0 +1,72 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { BaseEnvironment, ExecutionResult } from './base_environment.js';
7
+ /** Options for {@link LocalEnvironment}. */
8
+ export interface LocalEnvironmentOptions {
9
+ /**
10
+ * Absolute path to the workspace directory. Created by
11
+ * {@link LocalEnvironment.initialize} if it does not exist, and never deleted
12
+ * by {@link LocalEnvironment.close}. If omitted, a temporary directory is
13
+ * created on `initialize()` and removed on `close()`.
14
+ */
15
+ workingDir?: string;
16
+ /** Extra variables merged over `process.env` for every executed command. */
17
+ envVars?: Record<string, string>;
18
+ }
19
+ /**
20
+ * Executes commands via local child processes, scoped to a working directory.
21
+ *
22
+ * When `workingDir` is not specified, a temporary directory is created on
23
+ * {@link initialize} and removed on {@link close}.
24
+ *
25
+ * WARNING: this class runs arbitrary shell strings on the host with **no
26
+ * sandboxing** and no sanitisation — the caller is responsible for trusting the
27
+ * command. It is a building block; tools built on top of it are responsible for
28
+ * gating execution behind an explicit user confirmation.
29
+ *
30
+ * Further limitations, all shared with the adk-python reference implementation:
31
+ * - stdout and stderr are buffered fully in memory with no cap, so a command
32
+ * producing unbounded output will grow the heap until it fails.
33
+ * - The child inherits the whole of `process.env`, so any secret in the parent
34
+ * environment is visible to the command.
35
+ * - A timeout sends `SIGKILL` to the spawned shell; processes it forked itself
36
+ * may survive, and anything they write after the kill is not captured. On
37
+ * Windows such a survivor also keeps the working directory locked, so a
38
+ * {@link close} following a timeout can fail to remove a temporary workspace.
39
+ * - File paths are confined to the working directory by a lexical check only
40
+ * (see {@link readFile} and {@link writeFile}).
41
+ */
42
+ export declare class LocalEnvironment extends BaseEnvironment {
43
+ private currentWorkingDir?;
44
+ private readonly envVars?;
45
+ private autoCreated;
46
+ constructor(options?: LocalEnvironmentOptions);
47
+ get workingDir(): string;
48
+ initialize(): Promise<void>;
49
+ close(): Promise<void>;
50
+ execute(command: string, timeoutSeconds?: number): Promise<ExecutionResult>;
51
+ /**
52
+ * Reads a file from the working directory.
53
+ *
54
+ * `filePath` is confined to the working directory by a lexical check on the
55
+ * resolved path, which is not a sandbox.
56
+ *
57
+ * @throws If the environment is not initialized, if the path escapes the
58
+ * working directory, or — as `ENOENT` — if the file does not exist.
59
+ */
60
+ readFile(filePath: string): Promise<Uint8Array>;
61
+ /**
62
+ * Writes a file in the working directory, creating parent directories.
63
+ *
64
+ * `filePath` is confined to the working directory by a lexical check on the
65
+ * resolved path, which is not a sandbox. No newline translation is applied,
66
+ * so explicit CRLF sequences are preserved.
67
+ *
68
+ * @throws If the environment is not initialized or the path escapes the
69
+ * working directory.
70
+ */
71
+ writeFile(filePath: string, content: string | Uint8Array): Promise<void>;
72
+ }
@@ -6,6 +6,53 @@
6
6
  import { FunctionCall, FunctionResponse } from '@google/genai';
7
7
  import { LlmResponse } from '../models/llm_response.js';
8
8
  import { EventActions } from './event_actions.js';
9
+ /**
10
+ * A unique symbol identifying ADK Event objects.
11
+ *
12
+ * Events are plain objects produced by {@link createEvent} rather than class
13
+ * instances, so they carry this signature as a brand and `isEvent` checks for
14
+ * it — mirroring the `Symbol.for('google.adk.*')` guards used across ADK (e.g.
15
+ * `isBaseTool`, `isBaseAgent`).
16
+ */
17
+ declare const EVENT_SIGNATURE_SYMBOL: unique symbol;
18
+ /**
19
+ * A single route key emitted by a routing node and matched against graph edge
20
+ * routes. Mirrors the graph's `RouteValue`.
21
+ */
22
+ export type RouteKey = string | number | boolean;
23
+ /**
24
+ * The route(s) a routing node emits: a single key fires one branch; an array
25
+ * fires every branch whose route matches any listed key (multi-route dispatch).
26
+ */
27
+ export type Route = RouteKey | RouteKey[];
28
+ /**
29
+ * Workflow-node provenance attached to an event.
30
+ *
31
+ * Mirrors `google/adk-python` `Event.node_info`. Present only on events emitted
32
+ * from within a workflow node.
33
+ */
34
+ export interface NodeInfo {
35
+ /** The workflow node path that produced this event (e.g. `wf.child.0`). */
36
+ path?: string;
37
+ /**
38
+ * The node paths this event's output serves as the output for: the emitting
39
+ * node first, then any ancestor that delegated its own output to it.
40
+ *
41
+ * A node that runs a child with `useAsOutput` takes the child's output as its
42
+ * own, so one event is the result for several nodes at once. Recording that
43
+ * on the event is what lets a resumed run tell which nodes already produced a
44
+ * result, instead of re-running an ancestor whose output only ever existed on
45
+ * a descendant's event.
46
+ *
47
+ * Mirrors adk-python's `node_info.output_for`, which is likewise a list.
48
+ */
49
+ outputFor?: string[];
50
+ /**
51
+ * Whether the event's textual content should be promoted to the node's
52
+ * structured output.
53
+ */
54
+ messageAsOutput?: boolean;
55
+ }
9
56
  /**
10
57
  * Represents an event in a conversation between agents and users.
11
58
 
@@ -13,6 +60,14 @@ import { EventActions } from './event_actions.js';
13
60
  taken by the agents like function calls, etc.
14
61
  */
15
62
  export interface Event extends LlmResponse {
63
+ /**
64
+ * Signature brand identifying this object as an ADK {@link Event}.
65
+ *
66
+ * Set by {@link createEvent} and checked by `isEvent`. Optional because
67
+ * events are also reconstructed from storage/session payloads, where the
68
+ * (non-serializable) brand is absent.
69
+ */
70
+ readonly [EVENT_SIGNATURE_SYMBOL]?: true;
16
71
  /**
17
72
  * The unique identifier of the event.
18
73
  * Do not assign the ID. It will be assigned by the session.
@@ -51,6 +106,36 @@ export interface Event extends LlmResponse {
51
106
  * The timestamp of the event.
52
107
  */
53
108
  timestamp: number;
109
+ /**
110
+ * Workflow: the structured output produced by the emitting node, if any.
111
+ *
112
+ * First-class field mirroring `google/adk-python` `Event.output`. Used by the
113
+ * workflow engine to carry a node's return value alongside its content.
114
+ */
115
+ output?: unknown;
116
+ /**
117
+ * Workflow: the route key(s) emitted by a routing node, used by the graph to
118
+ * select the matching outgoing edge(s). A single value fires one branch; an
119
+ * array fires every branch whose route matches any listed value (multi-route
120
+ * dispatch). Mirrors Python `Event.route`.
121
+ */
122
+ route?: Route;
123
+ /**
124
+ * Workflow: provenance of the emitting node. Mirrors Python `Event.node_info`.
125
+ */
126
+ nodeInfo?: NodeInfo;
127
+ /**
128
+ * Workflow: scope tag used to isolate multi-agent conversations so peer
129
+ * scopes don't see each other's events. Mirrors Python
130
+ * `Event.isolation_scope`.
131
+ */
132
+ isolationScope?: string;
133
+ }
134
+ /**
135
+ * Parameters for creating an event with partial fields.
136
+ */
137
+ export interface CreateEventParams extends Omit<Partial<Event>, 'actions'> {
138
+ actions?: Partial<EventActions>;
54
139
  }
55
140
  /**
56
141
  * Creates an event from a partial event.
@@ -58,7 +143,7 @@ export interface Event extends LlmResponse {
58
143
  * @param params The partial event to create the event from.
59
144
  * @returns The event.
60
145
  */
61
- export declare function createEvent(params?: Partial<Event>): Event;
146
+ export declare function createEvent(params?: CreateEventParams): Event;
62
147
  /**
63
148
  * Returns whether the event is the final response of the agent.
64
149
  */
@@ -103,6 +188,13 @@ export declare function hasThoughts(event: Event): boolean;
103
188
  * Returns a copy of the event with all thought parts removed.
104
189
  */
105
190
  export declare function pruneThoughts(event: Event): Event;
191
+ /**
192
+ * Type guard to check if an object is an instance of Event.
193
+ *
194
+ * @param obj The object to check.
195
+ * @returns True if the object matches the Event structure.
196
+ */
197
+ export declare function isEvent(obj: unknown): obj is Event;
106
198
  /**
107
199
  * Generates a new unique ID for the event.
108
200
  */
@@ -121,3 +213,4 @@ export declare function transformToCamelCaseEvent(event: Record<string, unknown>
121
213
  * @returns The snake_cased Event object.
122
214
  */
123
215
  export declare function transformToSnakeCaseEvent(event: Event): Record<string, unknown>;
216
+ export {};
@@ -56,6 +56,16 @@ export interface EventActions {
56
56
  requestedToolConfirmations: {
57
57
  [key: string]: ToolConfirmation;
58
58
  };
59
+ /**
60
+ * Workflow: a serialized node/agent state snapshot used for resumable
61
+ * checkpointing. Mirrors Python `EventActions.agent_state`.
62
+ */
63
+ agentState?: Record<string, unknown>;
64
+ /**
65
+ * Workflow: marks that the emitting agent/workflow has reached the end of its
66
+ * execution for this invocation. Mirrors Python `EventActions.end_of_agent`.
67
+ */
68
+ endOfAgent?: boolean;
59
69
  }
60
70
  /**
61
71
  * Creates an {@link EventActions} object with default empty-dict values for