@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
@@ -3,15 +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 type { ExecutorContext } from './a2a/executor_context.js';
6
+ export * from './a2a/index.js';
14
7
  export { InvocationContext } from './agents/invocation_context.js';
8
+ export type { WorkflowInstructionScope } from './agents/invocation_context.js';
15
9
  export { FileArtifactService } from './artifacts/file_artifact_service.js';
16
10
  export { GcsArtifactService } from './artifacts/gcs_artifact_service.js';
17
11
  export { getArtifactServiceFromUri } from './artifacts/registry.js';
@@ -19,17 +13,16 @@ export { AgentEngineSandboxCodeExecutor, type AgentEngineSandboxCodeExecutorOpti
19
13
  export { CodeExecutionLanguage } from './code_executors/code_execution_utils.js';
20
14
  export { UnsafeLocalCodeExecutor, type UnsafeLocalCodeExecutorOptions, } from './code_executors/unsafe_local_code_executor.js';
21
15
  export * from './common.js';
16
+ export { LocalEnvironment } from './environment/local_environment.js';
17
+ export type { LocalEnvironmentOptions } from './environment/local_environment.js';
22
18
  export { DatabaseSessionService } from './sessions/database_session_service.js';
23
19
  export { getSessionServiceFromUri } from './sessions/registry.js';
24
20
  export { VertexAiSessionService } from './sessions/vertex_ai_session_service.js';
25
- export type { VertexAiSessionServiceOptions } from './sessions/vertex_ai_session_service.js';
21
+ export type { VertexAiCreateSessionRequest, VertexAiSessionServiceOptions, } from './sessions/vertex_ai_session_service.js';
26
22
  export { loadAllSkillsInDir, loadSkillFromDir, validateSkillDir, } from './skills/loader.js';
27
23
  export { RunSkillInlineScriptErrorCode, RunSkillInlineScriptTool, } from './tools/skill/run_skill_inline_script_tool.js';
28
24
  export { RunSkillScriptTool } from './tools/skill/run_skill_script_tool.js';
29
25
  export * from './integrations/agent_registry/agent_registry.js';
30
26
  export * from './telemetry/google_cloud.js';
31
27
  export * from './telemetry/setup.js';
32
- export * from './tools/mcp/load_mcp_resource_tool.js';
33
- export * from './tools/mcp/mcp_session_manager.js';
34
- export * from './tools/mcp/mcp_tool.js';
35
- export * from './tools/mcp/mcp_toolset.js';
28
+ export * from './tools/mcp/index.js';
@@ -12,6 +12,17 @@ import { BaseMemoryService, SearchMemoryRequest, SearchMemoryResponse } from './
12
12
  */
13
13
  export declare class InMemoryMemoryService implements BaseMemoryService {
14
14
  private readonly memories;
15
+ /**
16
+ * A map from user key to a map from session ID to events.
17
+ *
18
+ * The inner map is keyed by `session.id`, which arrives off the request path
19
+ * and contains no `/`, so it can be exactly `__proto__`. On a plain object
20
+ * literal that key would reach the inherited `__proto__` setter and
21
+ * re-parent the map instead of creating an own property, silently dropping
22
+ * the session from the `Object.values` scan in `searchMemory`. The outer key
23
+ * always contains a `/` (see `getUserKey`) and cannot collide, but is
24
+ * created the same way for consistency.
25
+ */
15
26
  private readonly sessionEvents;
16
27
  addSessionToMemory(session: Session): Promise<void>;
17
28
  searchMemory(req: SearchMemoryRequest): Promise<SearchMemoryResponse>;
@@ -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
  /**
@@ -11,6 +11,8 @@ import { Event } from '../events/event.js';
11
11
  import { LlmRequest } from '../models/llm_request.js';
12
12
  import { LlmResponse } from '../models/llm_response.js';
13
13
  import { BaseTool } from '../tools/base_tool.js';
14
+ import type { BaseNode } from '../workflow/base_node.js';
15
+ import type { NodeContext } from '../workflow/node_context.js';
14
16
  /**
15
17
  * Trigger for context compaction.
16
18
  */
@@ -151,8 +153,10 @@ export declare abstract class BasePlugin {
151
153
  * @param params.invocationContext The context for the entire invocation.
152
154
  * @param params.event The event raised by the runner.
153
155
  * @returns An optional value. A non-`undefined` return may be used by the
154
- * framework to modify or replace the response. Returning `undefined`
155
- * allows the original response to be used.
156
+ * framework to modify or replace the response. Copy `params.event` when
157
+ * constructing a replacement to preserve fields that are not being
158
+ * modified, such as event actions. Returning `undefined` allows the
159
+ * original response to be used.
156
160
  */
157
161
  onEventCallback(params: {
158
162
  invocationContext: InvocationContext;
@@ -202,6 +206,39 @@ export declare abstract class BasePlugin {
202
206
  agent: BaseAgent;
203
207
  callbackContext: Context;
204
208
  }): Promise<Content | undefined>;
209
+ /**
210
+ * Callback executed before a workflow node runs.
211
+ *
212
+ * @param params.node The node that is about to run.
213
+ * @param params.nodeContext The node's execution context.
214
+ * @param params.input The input the node is about to receive.
215
+ * @returns An optional value. If anything other than `undefined` is returned,
216
+ * the node's body is skipped and the returned value becomes its output,
217
+ * which is how a plugin implements a node-level cache or a stub.
218
+ * Returning `undefined` lets the node run normally.
219
+ */
220
+ beforeNodeCallback(params: {
221
+ node: BaseNode;
222
+ nodeContext: NodeContext;
223
+ input: unknown;
224
+ }): Promise<unknown>;
225
+ /**
226
+ * Callback executed after a workflow node has run.
227
+ *
228
+ * Not called for a node whose body was skipped by `beforeNodeCallback`, and
229
+ * not called when the node throws.
230
+ *
231
+ * @param params.node The node that has just run.
232
+ * @param params.nodeContext The node's execution context.
233
+ * @param params.output The output the node produced.
234
+ * @returns An optional value replacing the node's output. Returning
235
+ * `undefined` keeps the original.
236
+ */
237
+ afterNodeCallback(params: {
238
+ node: BaseNode;
239
+ nodeContext: NodeContext;
240
+ output: unknown;
241
+ }): Promise<unknown>;
205
242
  /**
206
243
  * Callback executed before a request is sent to the model.
207
244
  *
@@ -11,6 +11,8 @@ import { Event } from '../events/event.js';
11
11
  import { LlmRequest } from '../models/llm_request.js';
12
12
  import { LlmResponse } from '../models/llm_response.js';
13
13
  import { BaseTool } from '../tools/base_tool.js';
14
+ import type { BaseNode } from '../workflow/base_node.js';
15
+ import type { NodeContext } from '../workflow/node_context.js';
14
16
  import { BasePlugin, ContextCompactionTrigger } from './base_plugin.js';
15
17
  /**
16
18
  * Manages the registration and execution of plugins.
@@ -28,6 +30,8 @@ import { BasePlugin, ContextCompactionTrigger } from './base_plugin.js';
28
30
  */
29
31
  export declare class PluginManager {
30
32
  private readonly plugins;
33
+ /** Whether any plugin is registered. */
34
+ get hasPlugins(): boolean;
31
35
  /**
32
36
  * Initializes the plugin service.
33
37
  *
@@ -103,6 +107,22 @@ export declare class PluginManager {
103
107
  agent: BaseAgent;
104
108
  callbackContext: Context;
105
109
  }): Promise<Content | undefined>;
110
+ /**
111
+ * Runs the `beforeNodeCallback` for all plugins.
112
+ */
113
+ runBeforeNodeCallback({ node, nodeContext, input, }: {
114
+ node: BaseNode;
115
+ nodeContext: NodeContext;
116
+ input: unknown;
117
+ }): Promise<unknown>;
118
+ /**
119
+ * Runs the `afterNodeCallback` for all plugins.
120
+ */
121
+ runAfterNodeCallback({ node, nodeContext, output, }: {
122
+ node: BaseNode;
123
+ nodeContext: NodeContext;
124
+ output: unknown;
125
+ }): Promise<unknown>;
106
126
  /**
107
127
  * Runs the `beforeToolSelection` for all plugins.
108
128
  */
@@ -5,10 +5,11 @@
5
5
  */
6
6
  import { FunctionCall } from '@google/genai';
7
7
  import { Context } from '../agents/context.js';
8
+ import { REQUEST_CONFIRMATION_FUNCTION_CALL_NAME } from '../agents/functions.js';
8
9
  import { Event } from '../events/event.js';
9
10
  import { BasePlugin } from '../plugins/base_plugin.js';
10
11
  import { BaseTool } from '../tools/base_tool.js';
11
- export declare const REQUEST_CONFIRMATION_FUNCTION_CALL_NAME = "adk_request_confirmation";
12
+ export { REQUEST_CONFIRMATION_FUNCTION_CALL_NAME };
12
13
  /**
13
14
  * The outcome of a policy check.
14
15
  */
@@ -46,9 +47,10 @@ export declare class InMemoryPolicyEngine implements BasePolicyEngine {
46
47
  /**
47
48
  * Always returns {@link PolicyOutcome.ALLOW} for every tool call.
48
49
  *
50
+ * @param _context - The tool and its arguments; ignored.
49
51
  * @returns A promise resolving to an ALLOW result.
50
52
  */
51
- evaluate(): Promise<PolicyCheckResult>;
53
+ evaluate(_context: ToolCallPolicyContext): Promise<PolicyCheckResult>;
52
54
  }
53
55
  /**
54
56
  * Security Plugin for running Orcas agents.
@@ -3,10 +3,10 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { BaseAgent } from '../agents/base_agent.js';
7
6
  import { App } from '../apps/app.js';
8
7
  import { ResumabilityConfig } from '../apps/resumability_config.js';
9
8
  import { BasePlugin } from '../plugins/base_plugin.js';
9
+ import { RunnableRoot } from '../workflow/run_node_as_invocation.js';
10
10
  import { Runner } from './runner.js';
11
11
  /**
12
12
  * A {@link Runner} pre-configured with in-memory services.
@@ -40,7 +40,7 @@ export declare class InMemoryRunner extends Runner {
40
40
  */
41
41
  constructor(params: {
42
42
  app?: App;
43
- agent?: BaseAgent;
43
+ agent?: RunnableRoot;
44
44
  appName?: string;
45
45
  plugins?: BasePlugin[];
46
46
  resumabilityConfig?: ResumabilityConfig;
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import { Content } from '@google/genai';
7
7
  import { BaseAgent } from '../agents/base_agent.js';
8
+ import { LiveRequestQueue } from '../agents/live_request_queue.js';
8
9
  import { RunConfig } from '../agents/run_config.js';
9
10
  import { App } from '../apps/app.js';
10
11
  import { ResumabilityConfig } from '../apps/resumability_config.js';
@@ -16,6 +17,8 @@ import { BasePlugin } from '../plugins/base_plugin.js';
16
17
  import { PluginManager } from '../plugins/plugin_manager.js';
17
18
  import { BaseSessionService } from '../sessions/base_session_service.js';
18
19
  import { Session } from '../sessions/session.js';
20
+ import type { RunnableNode } from '../workflow/graph.js';
21
+ import { RunnableRoot } from '../workflow/run_node_as_invocation.js';
19
22
  /**
20
23
  * The configuration parameters for the Runner.
21
24
  */
@@ -29,9 +32,15 @@ export interface RunnerConfig {
29
32
  */
30
33
  appName?: string;
31
34
  /**
32
- * The agent to run. Required if `app` is not provided.
35
+ * The agent or workflow to run. Required if `app` is not provided.
36
+ *
37
+ * A bare node — a `Workflow`, most usefully — is accepted as the root and
38
+ * driven directly, so a graph does not have to be wrapped by hand to be run.
39
+ * The accepted set is the one an edge takes: any other node-like value
40
+ * becomes the single node of a one-node workflow. Mirrors adk-python, whose
41
+ * `Runner.agent` is typed `BaseNode`.
33
42
  */
34
- agent?: BaseAgent;
43
+ agent?: RunnableNode;
35
44
  /**
36
45
  * An optional list of plugins to apply globally across all agents.
37
46
  */
@@ -96,7 +105,11 @@ export declare function isRunner(obj: unknown): obj is Runner;
96
105
  export declare class Runner {
97
106
  readonly [RUNNER_SIGNATURE_SYMBOL] = true;
98
107
  readonly appName: string;
99
- readonly agent: BaseAgent;
108
+ /**
109
+ * The root being run: an agent, or a bare node (a `Workflow`) that the
110
+ * runner drives directly.
111
+ */
112
+ readonly agent: RunnableRoot;
100
113
  readonly pluginManager: PluginManager;
101
114
  readonly artifactService?: BaseArtifactService;
102
115
  readonly sessionService: BaseSessionService;
@@ -145,6 +158,19 @@ export declare class Runner {
145
158
  abortSignal?: AbortSignal;
146
159
  customMetadata?: Record<string, unknown>;
147
160
  }): AsyncGenerator<Event, void, undefined>;
161
+ /**
162
+ * Runs whatever this runner was given as its root.
163
+ *
164
+ * An agent is run through `runAsync`, as always. A bare node — a `Workflow`
165
+ * handed to the runner directly — is driven by {@link runNodeAsInvocation}.
166
+ *
167
+ * Only the execution differs. Everything around it (the run callbacks, event
168
+ * persistence, cancellation) is shared, so the node path cannot drift from
169
+ * the agent path on the things that are not about execution. adk-python has
170
+ * two separate loops here and a TODO noting its node one lacks tracing and
171
+ * plugins; there is nothing to lack if there is only one loop.
172
+ */
173
+ private runRoot;
148
174
  /**
149
175
  * Saves artifacts from the message parts and replaces the inline data with
150
176
  * a file name placeholder and optional file reference.
@@ -171,6 +197,36 @@ export declare class Runner {
171
197
  * @returns True if the agent can transfer, False otherwise.
172
198
  */
173
199
  private isRoutableLlmAgent;
200
+ /**
201
+ * Runs the agent in the live (bidirectional streaming) mode.
202
+ *
203
+ * Model media events that carry raw inline bytes (audio, video, or image)
204
+ * are yielded but not appended to the session to avoid persisting large
205
+ * blobs; events with `fileData` references and most other live events
206
+ * (transcriptions, tool calls, usage) are persisted as in `runAsync`.
207
+ *
208
+ * This feature is **experimental** and its API may change.
209
+ *
210
+ * @param params.userId The user ID of the session.
211
+ * @param params.sessionId The session ID of the session.
212
+ * @param params.liveRequestQueue The queue used to feed the live model.
213
+ * @param params.runConfig The run config for the agent.
214
+ * @param params.abortSignal Optional signal to abort the live run.
215
+ * @param params.liveSessionResumptionHandle Optional session resumption
216
+ * handle observed from a prior `runLive` cycle on the same conversation.
217
+ * When set, the agent's live flow opens the connection with
218
+ * `liveConnectConfig.sessionResumption.handle` so the server restores its
219
+ * state instead of relying on client-side history replay.
220
+ * @yields The events generated by the agent.
221
+ */
222
+ runLive(params: {
223
+ userId: string;
224
+ sessionId: string;
225
+ liveRequestQueue: LiveRequestQueue;
226
+ runConfig?: RunConfig;
227
+ abortSignal?: AbortSignal;
228
+ liveSessionResumptionHandle?: string;
229
+ }): AsyncGenerator<Event, void, undefined>;
174
230
  }
175
231
  /**
176
232
  * Determines the next agent to run to continue the session. This is primarily
@@ -40,8 +40,8 @@ export interface GetSessionRequest extends CompositeSessionKey {
40
40
  export interface ListSessionsRequest {
41
41
  /** The name of the application. */
42
42
  appName: string;
43
- /** The ID of the user. */
44
- userId: string;
43
+ /** The ID of the user. Sessions of every user are listed if omitted. */
44
+ userId?: string;
45
45
  /** Maximum number of sessions to return. */
46
46
  limit?: number;
47
47
  /** Zero-based index of the first session to return. Ignored if `page` is set. */
@@ -145,6 +145,14 @@ export declare abstract class BaseSessionService {
145
145
  export declare function trimTempDeltaState(event: Event): Event;
146
146
  /**
147
147
  * Removes temporary state keys from the state.
148
+ *
149
+ * The result is a null-prototype map. `state` comes straight off the request
150
+ * body on a dev server (`POST /apps/:appName/users/:userId/sessions/:sessionId`),
151
+ * and `JSON.parse` makes `__proto__` an own key, so copying it into a plain
152
+ * object literal would invoke the inherited `__proto__` setter: the entry is
153
+ * dropped and the new state object is re-parented onto the attacker's object.
154
+ * `State.get`/`State.has` use the `in` operator, so every key on that object
155
+ * would then read back as session state.
148
156
  */
149
157
  export declare function trimTempState(state: Record<string, unknown>): Record<string, unknown>;
150
158
  /**
@@ -7,6 +7,15 @@ import { Session } from './session.js';
7
7
  export declare function isInMemoryConnectionString(uri?: string): boolean;
8
8
  /**
9
9
  * An in-memory implementation of the session service.
10
+ *
11
+ * Every map below is keyed by untrusted input — `appName`, `userId`,
12
+ * `sessionId` and state keys all arrive straight off the request path or body
13
+ * on a dev server — so each is created with `Object.create(null)`. On an
14
+ * ordinary `{}` literal a key of `__proto__` resolves to the inherited
15
+ * `__proto__` accessor instead of creating an own property, so
16
+ * `map[appName][userId] = ...` writes onto `Object.prototype` and pollutes
17
+ * every object in the process. A null-prototype map has no such accessor, so
18
+ * those keys become ordinary own properties.
10
19
  */
11
20
  export declare class InMemorySessionService extends BaseSessionService {
12
21
  /**
@@ -3,6 +3,13 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { SchemaLike } from '../utils/schema.js';
7
+ /** Raised when a state mutation violates the declared state schema. */
8
+ export declare class StateSchemaError extends TypeError {
9
+ constructor(message: string);
10
+ }
11
+ /** Type guard for {@link StateSchemaError}. */
12
+ export declare function isStateSchemaError(e: unknown): e is StateSchemaError;
6
13
  /**
7
14
  * A state mapping that maintains the current value and the pending-commit
8
15
  * delta.
@@ -12,6 +19,11 @@ export declare class State {
12
19
  private value;
13
20
  /** The delta change to the current value that hasn't been committed. */
14
21
  private delta;
22
+ /**
23
+ * Declares the keys this state may hold and their types. When set, every
24
+ * mutation is checked against it; prefixed keys are exempt.
25
+ */
26
+ readonly schema?: SchemaLike | undefined;
15
27
  static readonly APP_PREFIX = "app:";
16
28
  static readonly USER_PREFIX = "user:";
17
29
  static readonly TEMP_PREFIX = "temp:";
@@ -19,7 +31,28 @@ export declare class State {
19
31
  /** The current value of the state. */
20
32
  value?: Record<string, unknown>,
21
33
  /** The delta change to the current value that hasn't been committed. */
22
- delta?: Record<string, unknown>);
34
+ delta?: Record<string, unknown>,
35
+ /**
36
+ * Declares the keys this state may hold and their types. When set, every
37
+ * mutation is checked against it; prefixed keys are exempt.
38
+ */
39
+ schema?: SchemaLike | undefined);
40
+ /**
41
+ * Checks a whole delta against {@link schema}, for writes that reach the
42
+ * session without passing through this object — a node emitting an event
43
+ * that carries its own `stateDelta`.
44
+ */
45
+ validateDelta(delta: Record<string, unknown>): void;
46
+ /**
47
+ * Checks one key/value pair against {@link schema}, throwing
48
+ * {@link StateSchemaError} when the key is undeclared or its value does not
49
+ * match the declared type.
50
+ *
51
+ * Prefixed keys (`app:`, `user:`, `temp:`, or any other namespace) belong to
52
+ * a scope wider than this state and are never validated — the same carve-out
53
+ * adk-python makes.
54
+ */
55
+ private validate;
23
56
  /**
24
57
  * Returns the value of the state dict for the given key.
25
58
  *
@@ -0,0 +1,39 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * Records a direct write of `key` into `state`, and — when the same write is
8
+ * being recorded in `delta` for later commit — stamps it there too, so the
9
+ * commit can tell whether it has since been superseded.
10
+ */
11
+ export declare function recordStateWrite(state: object, delta: object | undefined, key: string): void;
12
+ /**
13
+ * Copies the stamp `delta` holds for `key` onto `state`, for a writer that
14
+ * mirrors one logical write into more than one state object (a workflow node
15
+ * writes through to `session.state` as well as to its own view). Both objects
16
+ * then carry the same stamp, so neither can roll the other back.
17
+ */
18
+ export declare function adoptDeltaStamp(state: object, delta: object, key: string): void;
19
+ /**
20
+ * Whether committing `key` from `delta` into `state` should go ahead, recording
21
+ * the write when it should.
22
+ *
23
+ * Returns false only when the delta entry is stamped and a newer write to that
24
+ * key has already landed — the rollback this module exists to prevent.
25
+ */
26
+ export declare function shouldApplyDeltaWrite(state: object, delta: object, key: string): boolean;
27
+ /**
28
+ * Carries the stamp for one key from one delta object to another.
29
+ *
30
+ * A delta is copied several times between the write and the commit — a node
31
+ * drains its pending entries into a fresh map, `createEventActions` copies that
32
+ * into the event, `trimTempDeltaState` rebuilds it again — and each copy is a
33
+ * new object, so the stamps have to be carried with it. An entry that arrives
34
+ * at the commit unstamped is applied unconditionally, which is the old
35
+ * behaviour, so a missed hop degrades rather than breaks.
36
+ */
37
+ export declare function carryDeltaStamp(from: object, to: object, key: string): void;
38
+ /** {@link carryDeltaStamp} for every key `from` carries a stamp for. */
39
+ export declare function carryDeltaStamps(from: object, to: object): void;
@@ -26,6 +26,19 @@ export interface VertexAiSessionServiceOptions {
26
26
  expressModeApiKey?: string;
27
27
  sessions?: Sessions;
28
28
  }
29
+ /**
30
+ * The parameters for `VertexAiSessionService.createSession`.
31
+ *
32
+ * Extends the common {@link CreateSessionRequest} with the mutually exclusive
33
+ * session-expiration options supported by Vertex AI Agent Engine Sessions. See
34
+ * https://cloud.google.com/vertex-ai/generative-ai/docs/reference/rest/v1beta1/projects.locations.reasoningEngines.sessions
35
+ */
36
+ export interface VertexAiCreateSessionRequest extends CreateSessionRequest {
37
+ /** Lifetime relative to creation, in seconds, e.g. `'7200s'`. */
38
+ ttl?: string;
39
+ /** Absolute RFC 3339 UTC expiration, e.g. `'2025-10-01T00:00:00Z'`. */
40
+ expireTime?: string;
41
+ }
29
42
  /**
30
43
  * A session service implementation that integrates with Vertex AI Agent Engine Sessions.
31
44
  */
@@ -37,7 +50,12 @@ export declare class VertexAiSessionService extends BaseSessionService {
37
50
  private location?;
38
51
  constructor(options: VertexAiSessionServiceOptions);
39
52
  private getReasoningEngineId;
40
- createSession({ appName, userId, state, sessionId, }: CreateSessionRequest): Promise<Session>;
53
+ /**
54
+ * Creates a session on Vertex AI Agent Engine.
55
+ *
56
+ * @throws if both `ttl` and `expireTime` are specified.
57
+ */
58
+ createSession({ appName, userId, state, sessionId, ttl, expireTime, }: VertexAiCreateSessionRequest): Promise<Session>;
41
59
  getSession({ appName, userId, sessionId, config, }: GetSessionRequest): Promise<Session | undefined>;
42
60
  listSessions({ appName, userId, limit, offset, page, order, }: ListSessionsRequest): Promise<ListSessionsResponse>;
43
61
  deleteSession({ appName, userId, sessionId, }: DeleteSessionRequest): Promise<void>;
@@ -39,7 +39,12 @@ export declare function loadAllSkillsInDir(skillsBasePath: string): Promise<Reco
39
39
  /**
40
40
  * Loads a complete skill directly from in-memory zip file buffer.
41
41
  *
42
+ * The whole archive is rejected if any member name escapes the extraction
43
+ * root, and the skill name must be a bare path segment.
44
+ *
42
45
  * @param zipBuffer - The raw Buffer of the zip file containing the skill.
43
46
  * @returns A Skill object with all components loaded.
47
+ * @throws {Error} If a member name is a traversal path, if SKILL.md is missing,
48
+ * or if the skill name is missing or is not a bare path segment.
44
49
  */
45
50
  export declare function loadSkillFromZipBuffer(zipBuffer: Buffer): Skill;
@@ -44,6 +44,21 @@ export interface TraceAgentInvocationParams {
44
44
  * `server.*` attributes are not set pending confirmation from aabmass.
45
45
  */
46
46
  export declare function traceAgentInvocation({ agent, invocationContext, }: TraceAgentInvocationParams): void;
47
+ export interface TraceWorkflowInvocationParams {
48
+ workflowName: string;
49
+ nodePath: string;
50
+ sessionId: string;
51
+ }
52
+ export declare function traceWorkflowInvocation({ workflowName, nodePath, sessionId, }: TraceWorkflowInvocationParams): void;
53
+ export type NodeExecutionStatus = 'completed' | 'waiting' | 'failed';
54
+ export interface TraceNodeExecutionParams {
55
+ nodePath: string;
56
+ runId: string;
57
+ attempt: number;
58
+ status: NodeExecutionStatus;
59
+ interruptCount: number;
60
+ }
61
+ export declare function traceNodeExecution({ nodePath, runId, attempt, status, interruptCount, }: TraceNodeExecutionParams): void;
47
62
  export interface TraceToolCallParams {
48
63
  tool: BaseTool;
49
64
  args: Record<string, unknown>;
@@ -80,6 +80,21 @@ export declare abstract class BaseTool {
80
80
  * @return A promise that resolves to the tool response.
81
81
  */
82
82
  abstract runAsync(request: RunAsyncToolRequest): Promise<unknown>;
83
+ /**
84
+ * Whether this tool needs a human to approve `args` before it runs.
85
+ *
86
+ * The gate itself lives in the tool that owns it (see `FunctionTool`), but
87
+ * the resume path has to ask the same question a turn later, to check that an
88
+ * approval it is about to honour belongs to a tool that gates at all. A tool
89
+ * that never gates returns false here, which is the safe default: an approval
90
+ * naming it is meaningless and gets rejected rather than executed. Mirrors
91
+ * Python's `BaseTool.check_require_confirmation`.
92
+ *
93
+ * @param _args The arguments the tool would run with.
94
+ * @param _toolContext The context of the call, when there is one.
95
+ * @return Whether the call requires confirmation.
96
+ */
97
+ checkRequireConfirmation(_args: Record<string, unknown>, _toolContext?: Context): Promise<boolean>;
83
98
  /**
84
99
  * Processes the outgoing LLM request for this tool.
85
100
  *
@@ -0,0 +1,47 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { FunctionDeclaration, Schema } from '@google/genai';
7
+ import { BaseTool, RunAsyncToolRequest, ToolProcessLlmRequest } from './base_tool.js';
8
+ /** The name of the finish_task tool. */
9
+ export declare const FINISH_TASK_TOOL_NAME = "finish_task";
10
+ /**
11
+ * The result returned by {@link FinishTaskTool.runAsync} when validation passes.
12
+ * The task-mode wrapper uses this to distinguish a successful completion from a
13
+ * validation-error retry signal.
14
+ */
15
+ export declare const FINISH_TASK_SUCCESS_RESULT = "Task completed.";
16
+ /**
17
+ * Tool for signaling that a task-mode {@link LlmAgent} has completed its task.
18
+ *
19
+ * The tool's parameters mirror the agent's `outputSchema` (or a default single
20
+ * `result` string). The task-mode wrapper sniffs the `finish_task` function call
21
+ * and, on a successful function response, promotes the call's arguments to the
22
+ * node's output.
23
+ *
24
+ * Ported from `google/adk-python`
25
+ * `agents/llm/task/_finish_task_tool.py::FinishTaskTool`.
26
+ */
27
+ export declare class FinishTaskTool extends BaseTool {
28
+ /** The schema describing the expected task output. */
29
+ private readonly outputSchema;
30
+ /**
31
+ * When the output schema is a non-object (primitive/array), the value is
32
+ * wrapped under this key (the GenAI API requires object-typed parameters).
33
+ * `undefined` for object schemas (the value lives at the top level of args).
34
+ */
35
+ readonly wrapperKey?: string;
36
+ constructor(outputSchema?: Schema);
37
+ _getDeclaration(): FunctionDeclaration;
38
+ processLlmRequest(request: ToolProcessLlmRequest): Promise<void>;
39
+ /**
40
+ * Extracts the task output from a `finish_task` call's arguments, applying the
41
+ * wrapper-key unwrapping when the schema is a non-object.
42
+ */
43
+ extractOutput(args: Record<string, unknown>): unknown;
44
+ runAsync({ args }: RunAsyncToolRequest): Promise<unknown>;
45
+ /** Returns any `required` keys the schema declares that are absent. */
46
+ private missingRequiredKeys;
47
+ }