@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
@@ -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;
@@ -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,9 @@ 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';
127
132
  export { getUserChoiceTool } from './tools/get_user_choice_tool.js';
128
133
  export { GOOGLE_MAPS_GROUNDING, GoogleMapsGroundingTool, } from './tools/google_maps_grounding_tool.js';
129
134
  export { GOOGLE_SEARCH, GoogleSearchTool } from './tools/google_search_tool.js';
@@ -134,15 +139,18 @@ export type { LoadWebPageOptions } from './tools/load_web_page.js';
134
139
  export { LongRunningFunctionTool } from './tools/long_running_tool.js';
135
140
  export { PRELOAD_MEMORY, PreloadMemoryTool, } from './tools/preload_memory_tool.js';
136
141
  export { requestInputTool } from './tools/request_input_tool.js';
137
- export { ToolConfirmation } from './tools/tool_confirmation.js';
142
+ export { IntentMismatchError, ToolConfirmation, isIntentMismatchError, } from './tools/tool_confirmation.js';
143
+ export type { IntentMismatchReason } from './tools/tool_confirmation.js';
138
144
  export { URL_CONTEXT, UrlContextTool } from './tools/url_context_tool.js';
139
145
  export { VertexAiSearchTool } from './tools/vertex_ai_search_tool.js';
140
146
  export type { DataStoreParams, SearchEngineParams, VertexAISearchConfig, VertexAISearchDataStoreSpec, VertexAiSearchToolParams, } from './tools/vertex_ai_search_tool.js';
141
147
  export { VertexRagRetrievalTool } from './tools/vertex_rag_retrieval_tool.js';
148
+ export { AsyncQueue } from './utils/async_queue.js';
142
149
  export { getClientLabels, runWithClientLabel } from './utils/client_labels.js';
143
150
  export { LogLevel, getLogger, setLogLevel, setLogger } from './utils/logger.js';
144
151
  export type { Logger } from './utils/logger.js';
145
152
  export { isGemini2OrAbove, isGemini3xFlashLive } from './utils/model_name.js';
153
+ export type { SchemaLike } from './utils/schema.js';
146
154
  export { zodObjectToSchema } from './utils/simple_zod_to_json.js';
147
155
  export { Task } from './utils/task.js';
148
156
  export type { TaskExecutable } from './utils/task.js';
@@ -171,6 +179,8 @@ export { ToolAuthHandler } from './tools/openapi_tool/openapi_spec_parser/tool_a
171
179
  export type { AuthPreparationResult } from './tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js';
172
180
  export { OpenAPIToolset } from './tools/openapi_tool/openapi_toolset.js';
173
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';
174
184
  export * from './apps/app.js';
175
185
  export * from './artifacts/base_artifact_service.js';
176
186
  export * from './features/feature_registry.js';
@@ -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
@@ -3,16 +3,9 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- export { AGENT_CARD_PATH, RemoteA2AAgent } from './a2a/a2a_remote_agent.js';
7
- export type { A2AStreamEventData, AfterA2ARequestCallback, BeforeA2ARequestCallback, RemoteA2AAgentConfig, } from './a2a/a2a_remote_agent.js';
8
- export { getA2AAgentCard } from './a2a/agent_card.js';
9
- export { A2AAgentExecutor } from './a2a/agent_executor.js';
10
- export type { AfterEventCallback, AfterExecuteCallback, AgentExecutorConfig, BeforeExecuteCallback, RunnerOrRunnerConfig, } from './a2a/agent_executor.js';
11
- export { toA2a } from './a2a/agent_to_a2a.js';
12
- export type { A2aUserBuilder, ToA2aOptions } from './a2a/agent_to_a2a.js';
13
- export { bearerTokenUserBuilder } from './a2a/auth.js';
14
- export type { ExecutorContext } from './a2a/executor_context.js';
6
+ export * from './a2a/index.js';
15
7
  export { InvocationContext } from './agents/invocation_context.js';
8
+ export type { WorkflowInstructionScope } from './agents/invocation_context.js';
16
9
  export { FileArtifactService } from './artifacts/file_artifact_service.js';
17
10
  export { GcsArtifactService } from './artifacts/gcs_artifact_service.js';
18
11
  export { getArtifactServiceFromUri } from './artifacts/registry.js';
@@ -20,6 +13,8 @@ export { AgentEngineSandboxCodeExecutor, type AgentEngineSandboxCodeExecutorOpti
20
13
  export { CodeExecutionLanguage } from './code_executors/code_execution_utils.js';
21
14
  export { UnsafeLocalCodeExecutor, type UnsafeLocalCodeExecutorOptions, } from './code_executors/unsafe_local_code_executor.js';
22
15
  export * from './common.js';
16
+ export { LocalEnvironment } from './environment/local_environment.js';
17
+ export type { LocalEnvironmentOptions } from './environment/local_environment.js';
23
18
  export { DatabaseSessionService } from './sessions/database_session_service.js';
24
19
  export { getSessionServiceFromUri } from './sessions/registry.js';
25
20
  export { VertexAiSessionService } from './sessions/vertex_ai_session_service.js';
@@ -30,7 +25,4 @@ export { RunSkillScriptTool } from './tools/skill/run_skill_script_tool.js';
30
25
  export * from './integrations/agent_registry/agent_registry.js';
31
26
  export * from './telemetry/google_cloud.js';
32
27
  export * from './telemetry/setup.js';
33
- export * from './tools/mcp/load_mcp_resource_tool.js';
34
- export * from './tools/mcp/mcp_session_manager.js';
35
- export * from './tools/mcp/mcp_tool.js';
36
- export * from './tools/mcp/mcp_toolset.js';
28
+ export * from './tools/mcp/index.js';
@@ -33,10 +33,10 @@ export interface ApigeeLlmParams extends GeminiParams {
33
33
  */
34
34
  proxyUrl?: string;
35
35
  /**
36
- * API key to use. If not provided, it will look for
37
- * the GOOGLE_GENAI_API_KEY or GEMINI_API_KEY environment variable. If gemini
38
- * provider is selected and no key is provided, the fake key "-" will be
39
- * used for the "x-goog-api-key" header.
36
+ * API key to use. If not provided, it will look for the GOOGLE_GENAI_API_KEY,
37
+ * GOOGLE_API_KEY or GEMINI_API_KEY environment variable, in that order. If
38
+ * gemini provider is selected and no key is provided, the fake key "-" will
39
+ * be used for the "x-goog-api-key" header.
40
40
  */
41
41
  apiKey?: string;
42
42
  }
@@ -19,7 +19,8 @@ export interface GeminiParams {
19
19
  model?: string;
20
20
  /**
21
21
  * The API key to use for the Gemini API. If not provided, it will look for
22
- * the GOOGLE_GENAI_API_KEY or GEMINI_API_KEY environment variable.
22
+ * the GOOGLE_GENAI_API_KEY, GOOGLE_API_KEY or GEMINI_API_KEY environment
23
+ * variable, in that order.
23
24
  */
24
25
  apiKey?: string;
25
26
  /**