@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
@@ -9,6 +9,7 @@ var __defProp = Object.defineProperty;
9
9
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
10
  var __getOwnPropNames = Object.getOwnPropertyNames;
11
11
  var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
12
13
  var __export = (target, all) => {
13
14
  for (var name in all)
14
15
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -33,6 +34,8 @@ __export(runner_exports, {
33
34
  module.exports = __toCommonJS(runner_exports);
34
35
  var import_genai = require("@google/genai");
35
36
  var import_api = require("@opentelemetry/api");
37
+ var import_base_agent = require("../agents/base_agent.js");
38
+ var import_framework_function_calls = require("../agents/framework_function_calls.js");
36
39
  var import_functions = require("../agents/functions.js");
37
40
  var import_invocation_context = require("../agents/invocation_context.js");
38
41
  var import_llm_agent = require("../agents/llm_agent.js");
@@ -46,6 +49,7 @@ var import_tracing = require("../telemetry/tracing.js");
46
49
  var import_base_toolset = require("../tools/base_toolset.js");
47
50
  var import_logger = require("../utils/logger.js");
48
51
  var import_model_name = require("../utils/model_name.js");
52
+ var import_run_node_as_invocation = require("../workflow/run_node_as_invocation.js");
49
53
  /**
50
54
  * @license
51
55
  * Copyright 2025 Google LLC
@@ -56,8 +60,9 @@ const RUNNER_SIGNATURE_SYMBOL = Symbol.for("google.adk.runner");
56
60
  function isRunner(obj) {
57
61
  return typeof obj === "object" && obj !== null && RUNNER_SIGNATURE_SYMBOL in obj && obj[RUNNER_SIGNATURE_SYMBOL] === true;
58
62
  }
63
+ __name(isRunner, "isRunner");
59
64
  _a = RUNNER_SIGNATURE_SYMBOL;
60
- class Runner {
65
+ const _Runner = class _Runner {
61
66
  /**
62
67
  * Creates a new Runner instance.
63
68
  *
@@ -74,7 +79,7 @@ class Runner {
74
79
  );
75
80
  }
76
81
  this.appName = appName;
77
- this.agent = agent;
82
+ this.agent = (0, import_run_node_as_invocation.asRunnableRoot)(agent);
78
83
  const appPlugins = (_f = (_e = input.app) == null ? void 0 : _e.plugins) != null ? _f : [];
79
84
  const configPlugins = (_g = input.plugins) != null ? _g : [];
80
85
  this.pluginManager = new import_plugin_manager.PluginManager([...appPlugins, ...configPlugins]);
@@ -135,6 +140,7 @@ class Runner {
135
140
  if (newMessage && !newMessage.role) {
136
141
  newMessage.role = "user";
137
142
  }
143
+ rejectReservedFunctionCalls(newMessage);
138
144
  const span = import_tracing.tracer.startSpan("invocation");
139
145
  const ctx = import_api.trace.setSpan(import_api.context.active(), span);
140
146
  try {
@@ -181,7 +187,7 @@ class Runner {
181
187
  memoryService: this.memoryService,
182
188
  credentialService: this.credentialService,
183
189
  invocationId: (0, import_invocation_context.newInvocationContextId)(),
184
- agent: this.agent,
190
+ agent: (0, import_base_agent.isBaseAgent)(this.agent) ? this.agent : void 0,
185
191
  session,
186
192
  userContent: newMessage,
187
193
  runConfig,
@@ -227,10 +233,12 @@ class Runner {
227
233
  return;
228
234
  }
229
235
  }
230
- invocationContext.agent = this.determineAgentForResumption(
231
- session,
232
- this.agent
233
- );
236
+ if ((0, import_base_agent.isBaseAgent)(this.agent)) {
237
+ invocationContext.agent = this.determineAgentForResumption(
238
+ session,
239
+ this.agent
240
+ );
241
+ }
234
242
  if (newMessage) {
235
243
  const beforeRunCallbackResponse = await this.pluginManager.runBeforeRunCallback({
236
244
  invocationContext
@@ -253,9 +261,7 @@ class Runner {
253
261
  }
254
262
  yield earlyExitEvent;
255
263
  } else {
256
- for await (const event of invocationContext.agent.runAsync(
257
- invocationContext
258
- )) {
264
+ for await (const event of this.runRoot(invocationContext)) {
259
265
  if ((_h = params.abortSignal) == null ? void 0 : _h.aborted) {
260
266
  return;
261
267
  }
@@ -292,10 +298,29 @@ class Runner {
292
298
  );
293
299
  } finally {
294
300
  span.end();
295
- const toolsets = getAllToolsets(this.agent);
301
+ const toolsets = (0, import_base_agent.isBaseAgent)(this.agent) ? getAllToolsets(this.agent) : [];
296
302
  await Promise.allSettled(toolsets.map((t) => t.close()));
297
303
  }
298
304
  }
305
+ /**
306
+ * Runs whatever this runner was given as its root.
307
+ *
308
+ * An agent is run through `runAsync`, as always. A bare node — a `Workflow`
309
+ * handed to the runner directly — is driven by {@link runNodeAsInvocation}.
310
+ *
311
+ * Only the execution differs. Everything around it (the run callbacks, event
312
+ * persistence, cancellation) is shared, so the node path cannot drift from
313
+ * the agent path on the things that are not about execution. adk-python has
314
+ * two separate loops here and a TODO noting its node one lacks tracing and
315
+ * plugins; there is nothing to lack if there is only one loop.
316
+ */
317
+ async *runRoot(invocationContext) {
318
+ if ((0, import_base_agent.isBaseAgent)(this.agent)) {
319
+ yield* (0, import_invocation_context.requireAgent)(invocationContext).runAsync(invocationContext);
320
+ return;
321
+ }
322
+ yield* (0, import_run_node_as_invocation.runNodeAsInvocation)(this.agent, invocationContext);
323
+ }
299
324
  /**
300
325
  * Saves artifacts from the message parts and replaces the inline data with
301
326
  * a file name placeholder and optional file reference.
@@ -394,8 +419,150 @@ class Runner {
394
419
  isRoutableLlmAgent(agentToRun) {
395
420
  return isRoutableLlmAgent(agentToRun);
396
421
  }
397
- // TODO - b/425992518: Implement runLive and related methods.
422
+ /**
423
+ * Runs the agent in the live (bidirectional streaming) mode.
424
+ *
425
+ * Model media events that carry raw inline bytes (audio, video, or image)
426
+ * are yielded but not appended to the session to avoid persisting large
427
+ * blobs; events with `fileData` references and most other live events
428
+ * (transcriptions, tool calls, usage) are persisted as in `runAsync`.
429
+ *
430
+ * This feature is **experimental** and its API may change.
431
+ *
432
+ * @param params.userId The user ID of the session.
433
+ * @param params.sessionId The session ID of the session.
434
+ * @param params.liveRequestQueue The queue used to feed the live model.
435
+ * @param params.runConfig The run config for the agent.
436
+ * @param params.abortSignal Optional signal to abort the live run.
437
+ * @param params.liveSessionResumptionHandle Optional session resumption
438
+ * handle observed from a prior `runLive` cycle on the same conversation.
439
+ * When set, the agent's live flow opens the connection with
440
+ * `liveConnectConfig.sessionResumption.handle` so the server restores its
441
+ * state instead of relying on client-side history replay.
442
+ * @yields The events generated by the agent.
443
+ */
444
+ async *runLive(params) {
445
+ var _a2, _b, _c, _d;
446
+ if (!params.liveRequestQueue) {
447
+ throw new Error("liveRequestQueue is required for runLive.");
448
+ }
449
+ if (!(0, import_base_agent.isBaseAgent)(this.agent)) {
450
+ throw new Error("runLive is only supported for agents.");
451
+ }
452
+ const agent = this.agent;
453
+ const runConfig = (0, import_run_config.createRunConfig)(params.runConfig);
454
+ if (!((_a2 = runConfig.responseModalities) == null ? void 0 : _a2.length)) {
455
+ runConfig.responseModalities = [import_genai.Modality.AUDIO];
456
+ }
457
+ if ((_b = agent.subAgents) == null ? void 0 : _b.length) {
458
+ if (runConfig.responseModalities.includes(import_genai.Modality.AUDIO)) {
459
+ (_c = runConfig.outputAudioTranscription) != null ? _c : runConfig.outputAudioTranscription = {};
460
+ }
461
+ (_d = runConfig.inputAudioTranscription) != null ? _d : runConfig.inputAudioTranscription = {};
462
+ }
463
+ const span = import_tracing.tracer.startSpan("invocation");
464
+ const ctx = import_api.trace.setSpan(import_api.context.active(), span);
465
+ try {
466
+ yield* (0, import_tracing.runAsyncGeneratorWithOtelContext)(
467
+ ctx,
468
+ this,
469
+ async function* () {
470
+ var _a3, _b2, _c2, _d2;
471
+ const session = await this.sessionService.getOrCreateSession({
472
+ appName: this.appName,
473
+ userId: params.userId,
474
+ sessionId: params.sessionId
475
+ });
476
+ if ((_a3 = params.abortSignal) == null ? void 0 : _a3.aborted) {
477
+ return;
478
+ }
479
+ const invocationContext = new import_invocation_context.InvocationContext({
480
+ artifactService: this.artifactService ? new import_scoped_artifact_service.ScopedArtifactService(
481
+ this.artifactService,
482
+ this.appName,
483
+ params.userId,
484
+ params.sessionId
485
+ ) : void 0,
486
+ sessionService: this.sessionService,
487
+ memoryService: this.memoryService,
488
+ credentialService: this.credentialService,
489
+ invocationId: (0, import_invocation_context.newInvocationContextId)(),
490
+ agent,
491
+ session,
492
+ runConfig,
493
+ pluginManager: this.pluginManager,
494
+ liveRequestQueue: params.liveRequestQueue,
495
+ abortSignal: params.abortSignal,
496
+ liveSessionResumptionHandle: params.liveSessionResumptionHandle
497
+ });
498
+ invocationContext.agent = this.determineAgentForResumption(
499
+ session,
500
+ agent
501
+ );
502
+ const beforeRunCallbackResponse = await this.pluginManager.runBeforeRunCallback({
503
+ invocationContext
504
+ });
505
+ if ((_b2 = params.abortSignal) == null ? void 0 : _b2.aborted) {
506
+ return;
507
+ }
508
+ if (beforeRunCallbackResponse) {
509
+ const earlyExitEvent = (0, import_event.createEvent)({
510
+ invocationId: invocationContext.invocationId,
511
+ author: "model",
512
+ content: beforeRunCallbackResponse
513
+ });
514
+ await this.sessionService.appendEvent({
515
+ session,
516
+ event: earlyExitEvent
517
+ });
518
+ yield earlyExitEvent;
519
+ return;
520
+ }
521
+ for await (const event of (0, import_invocation_context.requireAgent)(invocationContext).runLive(
522
+ invocationContext
523
+ )) {
524
+ if ((_c2 = params.abortSignal) == null ? void 0 : _c2.aborted) {
525
+ return;
526
+ }
527
+ const modifiedEvent = await this.pluginManager.runOnEventCallback({
528
+ invocationContext,
529
+ event
530
+ });
531
+ if ((_d2 = params.abortSignal) == null ? void 0 : _d2.aborted) {
532
+ return;
533
+ }
534
+ const eventToProcess = modifiedEvent != null ? modifiedEvent : event;
535
+ if (!eventToProcess.partial && !isLiveModelMediaEventWithInlineData(eventToProcess)) {
536
+ await this.sessionService.appendEvent({
537
+ session,
538
+ event: eventToProcess
539
+ });
540
+ }
541
+ yield eventToProcess;
542
+ }
543
+ await this.pluginManager.runAfterRunCallback({ invocationContext });
544
+ }
545
+ );
546
+ } finally {
547
+ span.end();
548
+ }
549
+ }
550
+ };
551
+ __name(_Runner, "Runner");
552
+ let Runner = _Runner;
553
+ function isLiveModelMediaEventWithInlineData(event) {
554
+ var _a2;
555
+ const parts = (_a2 = event.content) == null ? void 0 : _a2.parts;
556
+ if (!(parts == null ? void 0 : parts.length)) {
557
+ return false;
558
+ }
559
+ return parts.some((part) => {
560
+ var _a3, _b;
561
+ const mimeType = (_b = (_a3 = part.inlineData) == null ? void 0 : _a3.mimeType) == null ? void 0 : _b.toLowerCase();
562
+ return mimeType !== void 0 && (mimeType.startsWith("audio/") || mimeType.startsWith("video/") || mimeType.startsWith("image/"));
563
+ });
398
564
  }
565
+ __name(isLiveModelMediaEventWithInlineData, "isLiveModelMediaEventWithInlineData");
399
566
  function determineAgentForResumption(session, rootAgent, resumabilityConfig) {
400
567
  const event = findEventByLastFunctionResponseId(session.events);
401
568
  const isResumable = Boolean(resumabilityConfig == null ? void 0 : resumabilityConfig.isResumable);
@@ -404,9 +571,11 @@ function determineAgentForResumption(session, rootAgent, resumabilityConfig) {
404
571
  if (resumedAgent) {
405
572
  return resumedAgent;
406
573
  }
407
- import_logger.logger.warn(
408
- `Function response from an unknown agent: ${event.author}, event id: ${event.id}`
409
- );
574
+ if (!isWorkflowNodeEvent(event)) {
575
+ import_logger.logger.warn(
576
+ `Function response from an unknown agent: ${event.author}, event id: ${event.id}`
577
+ );
578
+ }
410
579
  }
411
580
  for (let i = session.events.length - 1; i >= 0; i--) {
412
581
  import_logger.logger.debug("event:", JSON.stringify(session.events[i]));
@@ -419,9 +588,11 @@ function determineAgentForResumption(session, rootAgent, resumabilityConfig) {
419
588
  }
420
589
  const agent = rootAgent.findSubAgent(event2.author);
421
590
  if (!agent) {
422
- import_logger.logger.warn(
423
- `Event from an unknown agent: ${event2.author}, event id: ${event2.id}`
424
- );
591
+ if (!isWorkflowNodeEvent(event2)) {
592
+ import_logger.logger.warn(
593
+ `Event from an unknown agent: ${event2.author}, event id: ${event2.id}`
594
+ );
595
+ }
425
596
  continue;
426
597
  }
427
598
  if (isRoutableLlmAgent(agent)) {
@@ -430,6 +601,12 @@ function determineAgentForResumption(session, rootAgent, resumabilityConfig) {
430
601
  }
431
602
  return rootAgent;
432
603
  }
604
+ __name(determineAgentForResumption, "determineAgentForResumption");
605
+ function isWorkflowNodeEvent(event) {
606
+ var _a2;
607
+ return Boolean((_a2 = event.nodeInfo) == null ? void 0 : _a2.path);
608
+ }
609
+ __name(isWorkflowNodeEvent, "isWorkflowNodeEvent");
433
610
  function isRoutableLlmAgent(agentToRun) {
434
611
  let agent = agentToRun;
435
612
  while (agent) {
@@ -443,10 +620,12 @@ function isRoutableLlmAgent(agentToRun) {
443
620
  }
444
621
  return true;
445
622
  }
623
+ __name(isRoutableLlmAgent, "isRoutableLlmAgent");
446
624
  function findEventByLastFunctionResponseId(events) {
447
625
  var _a2;
448
626
  return (_a2 = (0, import_functions.findMatchingFunctionCall)(events)) != null ? _a2 : null;
449
627
  }
628
+ __name(findEventByLastFunctionResponseId, "findEventByLastFunctionResponseId");
450
629
  function getAllToolsets(agent) {
451
630
  const toolsets = [];
452
631
  const visited = /* @__PURE__ */ new Set();
@@ -464,9 +643,20 @@ function getAllToolsets(agent) {
464
643
  traverse(sub);
465
644
  }
466
645
  }
646
+ __name(traverse, "traverse");
467
647
  traverse(agent);
468
648
  return toolsets;
469
649
  }
650
+ __name(getAllToolsets, "getAllToolsets");
651
+ function rejectReservedFunctionCalls(newMessage) {
652
+ const reserved = (0, import_framework_function_calls.reservedFunctionCallName)(newMessage);
653
+ if (reserved) {
654
+ throw new Error(
655
+ `A client message may not contain a '${reserved}' function call: it is raised by the framework, and can only be answered with a function response.`
656
+ );
657
+ }
658
+ }
659
+ __name(rejectReservedFunctionCalls, "rejectReservedFunctionCalls");
470
660
  // Annotate the CommonJS export names for ESM import in node:
471
661
  0 && (module.exports = {
472
662
  Runner,
@@ -9,6 +9,7 @@ var __defProp = Object.defineProperty;
9
9
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
10
  var __getOwnPropNames = Object.getOwnPropertyNames;
11
11
  var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
12
13
  var __export = (target, all) => {
13
14
  for (var name in all)
14
15
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -32,12 +33,13 @@ __export(base_session_service_exports, {
32
33
  module.exports = __toCommonJS(base_session_service_exports);
33
34
  var import_lodash_es = require("lodash-es");
34
35
  var import_state = require("./state.js");
36
+ var import_state_write_order = require("./state_write_order.js");
35
37
  /**
36
38
  * @license
37
39
  * Copyright 2025 Google LLC
38
40
  * SPDX-License-Identifier: Apache-2.0
39
41
  */
40
- class BaseSessionService {
42
+ const _BaseSessionService = class _BaseSessionService {
41
43
  /**
42
44
  * Gets a session or creates one if it doesn't exist.
43
45
  *
@@ -91,6 +93,9 @@ class BaseSessionService {
91
93
  if (key.startsWith(import_state.State.TEMP_PREFIX)) {
92
94
  continue;
93
95
  }
96
+ if (!(0, import_state_write_order.shouldApplyDeltaWrite)(session.state, event.actions.stateDelta, key)) {
97
+ continue;
98
+ }
94
99
  Object.defineProperty(session.state, key, {
95
100
  value,
96
101
  writable: true,
@@ -99,7 +104,9 @@ class BaseSessionService {
99
104
  });
100
105
  }
101
106
  }
102
- }
107
+ };
108
+ __name(_BaseSessionService, "BaseSessionService");
109
+ let BaseSessionService = _BaseSessionService;
103
110
  function trimTempDeltaState(event) {
104
111
  if (!event.actions || !event.actions.stateDelta) {
105
112
  return event;
@@ -111,9 +118,11 @@ function trimTempDeltaState(event) {
111
118
  filteredStateDelta[key] = value;
112
119
  }
113
120
  }
121
+ (0, import_state_write_order.carryDeltaStamps)(stateDelta, filteredStateDelta);
114
122
  event.actions.stateDelta = filteredStateDelta;
115
123
  return event;
116
124
  }
125
+ __name(trimTempDeltaState, "trimTempDeltaState");
117
126
  function trimTempState(state) {
118
127
  const filteredState = /* @__PURE__ */ Object.create(null);
119
128
  for (const [key, value] of Object.entries(state)) {
@@ -123,6 +132,7 @@ function trimTempState(state) {
123
132
  }
124
133
  return filteredState;
125
134
  }
135
+ __name(trimTempState, "trimTempState");
126
136
  function mergeStates(appState = {}, userState = {}, sessionState = {}) {
127
137
  const merged = (0, import_lodash_es.cloneDeep)(sessionState);
128
138
  for (const [k, v] of Object.entries(appState)) {
@@ -133,6 +143,7 @@ function mergeStates(appState = {}, userState = {}, sessionState = {}) {
133
143
  }
134
144
  return merged;
135
145
  }
146
+ __name(mergeStates, "mergeStates");
136
147
  // Annotate the CommonJS export names for ESM import in node:
137
148
  0 && (module.exports = {
138
149
  BaseSessionService,
@@ -9,6 +9,7 @@ var __defProp = Object.defineProperty;
9
9
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
10
  var __getOwnPropNames = Object.getOwnPropertyNames;
11
11
  var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
12
13
  var __export = (target, all) => {
13
14
  for (var name in all)
14
15
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -46,7 +47,8 @@ function isDatabaseConnectionString(uri) {
46
47
  }
47
48
  return uri.startsWith("postgres://") || uri.startsWith("postgresql://") || uri.startsWith("mysql://") || uri.startsWith("mariadb://") || uri.startsWith("mssql://") || uri.startsWith("sqlite://");
48
49
  }
49
- class DatabaseSessionService extends import_base_session_service.BaseSessionService {
50
+ __name(isDatabaseConnectionString, "isDatabaseConnectionString");
51
+ const _DatabaseSessionService = class _DatabaseSessionService extends import_base_session_service.BaseSessionService {
50
52
  constructor(connectionStringOrOptions) {
51
53
  super();
52
54
  this.initialized = false;
@@ -422,7 +424,9 @@ class DatabaseSessionService extends import_base_session_service.BaseSessionServ
422
424
  });
423
425
  return event;
424
426
  }
425
- }
427
+ };
428
+ __name(_DatabaseSessionService, "DatabaseSessionService");
429
+ let DatabaseSessionService = _DatabaseSessionService;
426
430
  // Annotate the CommonJS export names for ESM import in node:
427
431
  0 && (module.exports = {
428
432
  DatabaseSessionService,
@@ -11,6 +11,7 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
11
11
  var __getOwnPropNames = Object.getOwnPropertyNames;
12
12
  var __getProtoOf = Object.getPrototypeOf;
13
13
  var __hasOwnProp = Object.prototype.hasOwnProperty;
14
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
14
15
  var __export = (target, all) => {
15
16
  for (var name in all)
16
17
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -39,31 +40,55 @@ __export(operations_exports, {
39
40
  validateDatabaseSchemaVersion: () => validateDatabaseSchemaVersion
40
41
  });
41
42
  module.exports = __toCommonJS(operations_exports);
43
+ var import_optional_peer = require("../../utils/optional_peer.js");
44
+ var import_redact_uri = require("../../utils/redact_uri.js");
42
45
  var import_schema = require("./schema.js");
43
46
  /**
44
47
  * @license
45
48
  * Copyright 2026 Google LLC
46
49
  * SPDX-License-Identifier: Apache-2.0
47
50
  */
51
+ function driverPeer(packageName, scheme) {
52
+ return {
53
+ packageName,
54
+ feature: `DatabaseSessionService with a "${scheme}" connection string`
55
+ };
56
+ }
57
+ __name(driverPeer, "driverPeer");
48
58
  async function getConnectionOptionsFromUri(uri) {
49
59
  let driver;
50
60
  if (uri.startsWith("postgres://") || uri.startsWith("postgresql://")) {
51
- const { PostgreSqlDriver } = await Promise.resolve().then(() => __toESM(require("@mikro-orm/postgresql"), 1));
61
+ const { PostgreSqlDriver } = await (0, import_optional_peer.loadOptionalPeer)(
62
+ driverPeer("@mikro-orm/postgresql", "postgres"),
63
+ () => Promise.resolve().then(() => __toESM(require("@mikro-orm/postgresql"), 1))
64
+ );
52
65
  driver = PostgreSqlDriver;
53
66
  } else if (uri.startsWith("mysql://")) {
54
- const { MySqlDriver } = await Promise.resolve().then(() => __toESM(require("@mikro-orm/mysql"), 1));
67
+ const { MySqlDriver } = await (0, import_optional_peer.loadOptionalPeer)(
68
+ driverPeer("@mikro-orm/mysql", "mysql"),
69
+ () => Promise.resolve().then(() => __toESM(require("@mikro-orm/mysql"), 1))
70
+ );
55
71
  driver = MySqlDriver;
56
72
  } else if (uri.startsWith("mariadb://")) {
57
- const { MariaDbDriver } = await Promise.resolve().then(() => __toESM(require("@mikro-orm/mariadb"), 1));
73
+ const { MariaDbDriver } = await (0, import_optional_peer.loadOptionalPeer)(
74
+ driverPeer("@mikro-orm/mariadb", "mariadb"),
75
+ () => Promise.resolve().then(() => __toESM(require("@mikro-orm/mariadb"), 1))
76
+ );
58
77
  driver = MariaDbDriver;
59
78
  } else if (uri.startsWith("sqlite://")) {
60
- const { SqliteDriver } = await Promise.resolve().then(() => __toESM(require("@mikro-orm/sqlite"), 1));
79
+ const { SqliteDriver } = await (0, import_optional_peer.loadOptionalPeer)(
80
+ driverPeer("@mikro-orm/sqlite", "sqlite"),
81
+ () => Promise.resolve().then(() => __toESM(require("@mikro-orm/sqlite"), 1))
82
+ );
61
83
  driver = SqliteDriver;
62
84
  } else if (uri.startsWith("mssql://")) {
63
- const { MsSqlDriver } = await Promise.resolve().then(() => __toESM(require("@mikro-orm/mssql"), 1));
85
+ const { MsSqlDriver } = await (0, import_optional_peer.loadOptionalPeer)(
86
+ driverPeer("@mikro-orm/mssql", "mssql"),
87
+ () => Promise.resolve().then(() => __toESM(require("@mikro-orm/mssql"), 1))
88
+ );
64
89
  driver = MsSqlDriver;
65
90
  } else {
66
- throw new Error(`Unsupported database URI: ${uri}`);
91
+ throw new Error(`Unsupported database URI: ${(0, import_redact_uri.redactUriPassword)(uri)}`);
67
92
  }
68
93
  if (uri.startsWith("sqlite://")) {
69
94
  return {
@@ -78,10 +103,12 @@ async function getConnectionOptionsFromUri(uri) {
78
103
  driver
79
104
  };
80
105
  }
106
+ __name(getConnectionOptionsFromUri, "getConnectionOptionsFromUri");
81
107
  async function ensureDatabaseCreated(orm) {
82
108
  await orm.schema.ensureDatabase();
83
109
  await orm.schema.updateSchema({ safe: true });
84
110
  }
111
+ __name(ensureDatabaseCreated, "ensureDatabaseCreated");
85
112
  async function validateDatabaseSchemaVersion(orm) {
86
113
  const em = orm.em.fork();
87
114
  const existing = await em.findOne(import_schema.StorageMetadata, {
@@ -101,6 +128,7 @@ async function validateDatabaseSchemaVersion(orm) {
101
128
  });
102
129
  await em.persist(newVersion).flush();
103
130
  }
131
+ __name(validateDatabaseSchemaVersion, "validateDatabaseSchemaVersion");
104
132
  // Annotate the CommonJS export names for ESM import in node:
105
133
  0 && (module.exports = {
106
134
  ensureDatabaseCreated,
@@ -9,6 +9,7 @@ var __defProp = Object.defineProperty;
9
9
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
10
  var __getOwnPropNames = Object.getOwnPropertyNames;
11
11
  var __hasOwnProp = Object.prototype.hasOwnProperty;
12
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
12
13
  var __export = (target, all) => {
13
14
  for (var name in all)
14
15
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -53,7 +54,7 @@ var import_event = require("../../events/event.js");
53
54
  const SCHEMA_VERSION_KEY = "schema_version";
54
55
  const SCHEMA_VERSION_1_JSON = "1";
55
56
  const STORAGE_KEY_COLUMN_LENGTH = 191;
56
- class CamelCaseToSnakeCaseJsonType extends import_core.JsonType {
57
+ const _CamelCaseToSnakeCaseJsonType = class _CamelCaseToSnakeCaseJsonType extends import_core.JsonType {
57
58
  convertToDatabaseValue(value) {
58
59
  return JSON.stringify((0, import_event.transformToSnakeCaseEvent)(value));
59
60
  }
@@ -63,9 +64,12 @@ class CamelCaseToSnakeCaseJsonType extends import_core.JsonType {
63
64
  }
64
65
  return (0, import_event.transformToCamelCaseEvent)(value);
65
66
  }
66
- }
67
+ };
68
+ __name(_CamelCaseToSnakeCaseJsonType, "CamelCaseToSnakeCaseJsonType");
69
+ let CamelCaseToSnakeCaseJsonType = _CamelCaseToSnakeCaseJsonType;
67
70
  let StorageMetadata = class {
68
71
  };
72
+ __name(StorageMetadata, "StorageMetadata");
69
73
  __decorateClass([
70
74
  (0, import_core.PrimaryKey)({ type: "string" })
71
75
  ], StorageMetadata.prototype, "key", 2);
@@ -80,6 +84,7 @@ let StorageAppState = class {
80
84
  this.updateTime = /* @__PURE__ */ new Date();
81
85
  }
82
86
  };
87
+ __name(StorageAppState, "StorageAppState");
83
88
  __decorateClass([
84
89
  (0, import_core.PrimaryKey)({
85
90
  type: "string",
@@ -94,8 +99,8 @@ __decorateClass([
94
99
  (0, import_core.Property)({
95
100
  type: "datetime",
96
101
  fieldName: "update_time",
97
- onCreate: () => /* @__PURE__ */ new Date(),
98
- onUpdate: () => /* @__PURE__ */ new Date()
102
+ onCreate: /* @__PURE__ */ __name(() => /* @__PURE__ */ new Date(), "onCreate"),
103
+ onUpdate: /* @__PURE__ */ __name(() => /* @__PURE__ */ new Date(), "onUpdate")
99
104
  })
100
105
  ], StorageAppState.prototype, "updateTime", 2);
101
106
  StorageAppState = __decorateClass([
@@ -107,6 +112,7 @@ let StorageUserState = class {
107
112
  this.updateTime = /* @__PURE__ */ new Date();
108
113
  }
109
114
  };
115
+ __name(StorageUserState, "StorageUserState");
110
116
  __decorateClass([
111
117
  (0, import_core.PrimaryKey)({
112
118
  type: "string",
@@ -128,8 +134,8 @@ __decorateClass([
128
134
  (0, import_core.Property)({
129
135
  type: "datetime",
130
136
  fieldName: "update_time",
131
- onCreate: () => /* @__PURE__ */ new Date(),
132
- onUpdate: () => /* @__PURE__ */ new Date()
137
+ onCreate: /* @__PURE__ */ __name(() => /* @__PURE__ */ new Date(), "onCreate"),
138
+ onUpdate: /* @__PURE__ */ __name(() => /* @__PURE__ */ new Date(), "onUpdate")
133
139
  })
134
140
  ], StorageUserState.prototype, "updateTime", 2);
135
141
  StorageUserState = __decorateClass([
@@ -142,6 +148,7 @@ let StorageSession = class {
142
148
  this.updateTime = /* @__PURE__ */ new Date();
143
149
  }
144
150
  };
151
+ __name(StorageSession, "StorageSession");
145
152
  __decorateClass([
146
153
  (0, import_core.PrimaryKey)({ type: "string", length: STORAGE_KEY_COLUMN_LENGTH })
147
154
  ], StorageSession.prototype, "id", 2);
@@ -166,14 +173,14 @@ __decorateClass([
166
173
  (0, import_core.Property)({
167
174
  type: "datetime",
168
175
  fieldName: "create_time",
169
- onCreate: () => /* @__PURE__ */ new Date()
176
+ onCreate: /* @__PURE__ */ __name(() => /* @__PURE__ */ new Date(), "onCreate")
170
177
  })
171
178
  ], StorageSession.prototype, "createTime", 2);
172
179
  __decorateClass([
173
180
  (0, import_core.Property)({
174
181
  type: "datetime",
175
182
  fieldName: "update_time",
176
- onCreate: () => /* @__PURE__ */ new Date()
183
+ onCreate: /* @__PURE__ */ __name(() => /* @__PURE__ */ new Date(), "onCreate")
177
184
  })
178
185
  ], StorageSession.prototype, "updateTime", 2);
179
186
  StorageSession = __decorateClass([
@@ -182,6 +189,7 @@ StorageSession = __decorateClass([
182
189
  import_core.PrimaryKey.name;
183
190
  let StorageEvent = class {
184
191
  };
192
+ __name(StorageEvent, "StorageEvent");
185
193
  __decorateClass([
186
194
  (0, import_core.PrimaryKey)({ type: "string", length: STORAGE_KEY_COLUMN_LENGTH })
187
195
  ], StorageEvent.prototype, "id", 2);