@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
@@ -23,6 +23,7 @@ var __spreadValues = (a, b) => {
23
23
  return a;
24
24
  };
25
25
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
26
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
26
27
  var __await = function(promise, isYieldStar) {
27
28
  this[0] = promise;
28
29
  this[1] = isYieldStar;
@@ -73,12 +74,15 @@ var __forAwait = (obj, it, method) => (it = obj[__knownSymbol("asyncIterator")])
73
74
  * SPDX-License-Identifier: Apache-2.0
74
75
  */
75
76
  var _a;
76
- import { createPartFromText } from "@google/genai";
77
+ import { createPartFromText, Modality } from "@google/genai";
77
78
  import { context, trace } from "@opentelemetry/api";
79
+ import { isBaseAgent } from "../agents/base_agent.js";
80
+ import { reservedFunctionCallName } from "../agents/framework_function_calls.js";
78
81
  import { findMatchingFunctionCall } from "../agents/functions.js";
79
82
  import {
80
83
  InvocationContext,
81
- newInvocationContextId
84
+ newInvocationContextId,
85
+ requireAgent
82
86
  } from "../agents/invocation_context.js";
83
87
  import { isLlmAgent } from "../agents/llm_agent.js";
84
88
  import { createRunConfig } from "../agents/run_config.js";
@@ -97,12 +101,17 @@ import {
97
101
  import { isBaseToolset } from "../tools/base_toolset.js";
98
102
  import { logger } from "../utils/logger.js";
99
103
  import { isGemini2OrAbove } from "../utils/model_name.js";
104
+ import {
105
+ asRunnableRoot,
106
+ runNodeAsInvocation
107
+ } from "../workflow/run_node_as_invocation.js";
100
108
  const RUNNER_SIGNATURE_SYMBOL = Symbol.for("google.adk.runner");
101
109
  function isRunner(obj) {
102
110
  return typeof obj === "object" && obj !== null && RUNNER_SIGNATURE_SYMBOL in obj && obj[RUNNER_SIGNATURE_SYMBOL] === true;
103
111
  }
112
+ __name(isRunner, "isRunner");
104
113
  _a = RUNNER_SIGNATURE_SYMBOL;
105
- class Runner {
114
+ const _Runner = class _Runner {
106
115
  /**
107
116
  * Creates a new Runner instance.
108
117
  *
@@ -119,7 +128,7 @@ class Runner {
119
128
  );
120
129
  }
121
130
  this.appName = appName;
122
- this.agent = agent;
131
+ this.agent = asRunnableRoot(agent);
123
132
  const appPlugins = (_f = (_e = input.app) == null ? void 0 : _e.plugins) != null ? _f : [];
124
133
  const configPlugins = (_g = input.plugins) != null ? _g : [];
125
134
  this.pluginManager = new PluginManager([...appPlugins, ...configPlugins]);
@@ -183,6 +192,7 @@ class Runner {
183
192
  if (newMessage && !newMessage.role) {
184
193
  newMessage.role = "user";
185
194
  }
195
+ rejectReservedFunctionCalls(newMessage);
186
196
  const span = tracer.startSpan("invocation");
187
197
  const ctx = trace.setSpan(context.active(), span);
188
198
  try {
@@ -230,7 +240,7 @@ class Runner {
230
240
  memoryService: this.memoryService,
231
241
  credentialService: this.credentialService,
232
242
  invocationId: newInvocationContextId(),
233
- agent: this.agent,
243
+ agent: isBaseAgent(this.agent) ? this.agent : void 0,
234
244
  session,
235
245
  userContent: newMessage,
236
246
  runConfig,
@@ -276,10 +286,12 @@ class Runner {
276
286
  return;
277
287
  }
278
288
  }
279
- invocationContext.agent = this.determineAgentForResumption(
280
- session,
281
- this.agent
282
- );
289
+ if (isBaseAgent(this.agent)) {
290
+ invocationContext.agent = this.determineAgentForResumption(
291
+ session,
292
+ this.agent
293
+ );
294
+ }
283
295
  if (newMessage) {
284
296
  const beforeRunCallbackResponse = yield new __await(this.pluginManager.runBeforeRunCallback({
285
297
  invocationContext
@@ -303,9 +315,7 @@ class Runner {
303
315
  yield earlyExitEvent;
304
316
  } else {
305
317
  try {
306
- for (var iter = __forAwait(invocationContext.agent.runAsync(
307
- invocationContext
308
- )), more, temp, error; more = !(temp = yield new __await(iter.next())).done; more = false) {
318
+ for (var iter = __forAwait(this.runRoot(invocationContext)), more, temp, error; more = !(temp = yield new __await(iter.next())).done; more = false) {
309
319
  const event = temp.value;
310
320
  if ((_h = params.abortSignal) == null ? void 0 : _h.aborted) {
311
321
  return;
@@ -353,11 +363,32 @@ class Runner {
353
363
  ));
354
364
  } finally {
355
365
  span.end();
356
- const toolsets = getAllToolsets(this.agent);
366
+ const toolsets = isBaseAgent(this.agent) ? getAllToolsets(this.agent) : [];
357
367
  yield new __await(Promise.allSettled(toolsets.map((t) => t.close())));
358
368
  }
359
369
  });
360
370
  }
371
+ /**
372
+ * Runs whatever this runner was given as its root.
373
+ *
374
+ * An agent is run through `runAsync`, as always. A bare node — a `Workflow`
375
+ * handed to the runner directly — is driven by {@link runNodeAsInvocation}.
376
+ *
377
+ * Only the execution differs. Everything around it (the run callbacks, event
378
+ * persistence, cancellation) is shared, so the node path cannot drift from
379
+ * the agent path on the things that are not about execution. adk-python has
380
+ * two separate loops here and a TODO noting its node one lacks tracing and
381
+ * plugins; there is nothing to lack if there is only one loop.
382
+ */
383
+ runRoot(invocationContext) {
384
+ return __asyncGenerator(this, null, function* () {
385
+ if (isBaseAgent(this.agent)) {
386
+ yield* __yieldStar(requireAgent(invocationContext).runAsync(invocationContext));
387
+ return;
388
+ }
389
+ yield* __yieldStar(runNodeAsInvocation(this.agent, invocationContext));
390
+ });
391
+ }
361
392
  /**
362
393
  * Saves artifacts from the message parts and replaces the inline data with
363
394
  * a file name placeholder and optional file reference.
@@ -453,8 +484,166 @@ class Runner {
453
484
  isRoutableLlmAgent(agentToRun) {
454
485
  return isRoutableLlmAgent(agentToRun);
455
486
  }
456
- // TODO - b/425992518: Implement runLive and related methods.
487
+ /**
488
+ * Runs the agent in the live (bidirectional streaming) mode.
489
+ *
490
+ * Model media events that carry raw inline bytes (audio, video, or image)
491
+ * are yielded but not appended to the session to avoid persisting large
492
+ * blobs; events with `fileData` references and most other live events
493
+ * (transcriptions, tool calls, usage) are persisted as in `runAsync`.
494
+ *
495
+ * This feature is **experimental** and its API may change.
496
+ *
497
+ * @param params.userId The user ID of the session.
498
+ * @param params.sessionId The session ID of the session.
499
+ * @param params.liveRequestQueue The queue used to feed the live model.
500
+ * @param params.runConfig The run config for the agent.
501
+ * @param params.abortSignal Optional signal to abort the live run.
502
+ * @param params.liveSessionResumptionHandle Optional session resumption
503
+ * handle observed from a prior `runLive` cycle on the same conversation.
504
+ * When set, the agent's live flow opens the connection with
505
+ * `liveConnectConfig.sessionResumption.handle` so the server restores its
506
+ * state instead of relying on client-side history replay.
507
+ * @yields The events generated by the agent.
508
+ */
509
+ runLive(params) {
510
+ return __asyncGenerator(this, null, function* () {
511
+ var _a2, _b, _c, _d;
512
+ if (!params.liveRequestQueue) {
513
+ throw new Error("liveRequestQueue is required for runLive.");
514
+ }
515
+ if (!isBaseAgent(this.agent)) {
516
+ throw new Error("runLive is only supported for agents.");
517
+ }
518
+ const agent = this.agent;
519
+ const runConfig = createRunConfig(params.runConfig);
520
+ if (!((_a2 = runConfig.responseModalities) == null ? void 0 : _a2.length)) {
521
+ runConfig.responseModalities = [Modality.AUDIO];
522
+ }
523
+ if ((_b = agent.subAgents) == null ? void 0 : _b.length) {
524
+ if (runConfig.responseModalities.includes(Modality.AUDIO)) {
525
+ (_c = runConfig.outputAudioTranscription) != null ? _c : runConfig.outputAudioTranscription = {};
526
+ }
527
+ (_d = runConfig.inputAudioTranscription) != null ? _d : runConfig.inputAudioTranscription = {};
528
+ }
529
+ const span = tracer.startSpan("invocation");
530
+ const ctx = trace.setSpan(context.active(), span);
531
+ try {
532
+ yield* __yieldStar(runAsyncGeneratorWithOtelContext(
533
+ ctx,
534
+ this,
535
+ function() {
536
+ return __asyncGenerator(this, null, function* () {
537
+ var _a3, _b2, _c2, _d2;
538
+ const session = yield new __await(this.sessionService.getOrCreateSession({
539
+ appName: this.appName,
540
+ userId: params.userId,
541
+ sessionId: params.sessionId
542
+ }));
543
+ if ((_a3 = params.abortSignal) == null ? void 0 : _a3.aborted) {
544
+ return;
545
+ }
546
+ const invocationContext = new InvocationContext({
547
+ artifactService: this.artifactService ? new ScopedArtifactService(
548
+ this.artifactService,
549
+ this.appName,
550
+ params.userId,
551
+ params.sessionId
552
+ ) : void 0,
553
+ sessionService: this.sessionService,
554
+ memoryService: this.memoryService,
555
+ credentialService: this.credentialService,
556
+ invocationId: newInvocationContextId(),
557
+ agent,
558
+ session,
559
+ runConfig,
560
+ pluginManager: this.pluginManager,
561
+ liveRequestQueue: params.liveRequestQueue,
562
+ abortSignal: params.abortSignal,
563
+ liveSessionResumptionHandle: params.liveSessionResumptionHandle
564
+ });
565
+ invocationContext.agent = this.determineAgentForResumption(
566
+ session,
567
+ agent
568
+ );
569
+ const beforeRunCallbackResponse = yield new __await(this.pluginManager.runBeforeRunCallback({
570
+ invocationContext
571
+ }));
572
+ if ((_b2 = params.abortSignal) == null ? void 0 : _b2.aborted) {
573
+ return;
574
+ }
575
+ if (beforeRunCallbackResponse) {
576
+ const earlyExitEvent = createEvent({
577
+ invocationId: invocationContext.invocationId,
578
+ author: "model",
579
+ content: beforeRunCallbackResponse
580
+ });
581
+ yield new __await(this.sessionService.appendEvent({
582
+ session,
583
+ event: earlyExitEvent
584
+ }));
585
+ yield earlyExitEvent;
586
+ return;
587
+ }
588
+ try {
589
+ for (var iter = __forAwait(requireAgent(invocationContext).runLive(
590
+ invocationContext
591
+ )), more, temp, error; more = !(temp = yield new __await(iter.next())).done; more = false) {
592
+ const event = temp.value;
593
+ if ((_c2 = params.abortSignal) == null ? void 0 : _c2.aborted) {
594
+ return;
595
+ }
596
+ const modifiedEvent = yield new __await(this.pluginManager.runOnEventCallback({
597
+ invocationContext,
598
+ event
599
+ }));
600
+ if ((_d2 = params.abortSignal) == null ? void 0 : _d2.aborted) {
601
+ return;
602
+ }
603
+ const eventToProcess = modifiedEvent != null ? modifiedEvent : event;
604
+ if (!eventToProcess.partial && !isLiveModelMediaEventWithInlineData(eventToProcess)) {
605
+ yield new __await(this.sessionService.appendEvent({
606
+ session,
607
+ event: eventToProcess
608
+ }));
609
+ }
610
+ yield eventToProcess;
611
+ }
612
+ } catch (temp) {
613
+ error = [temp];
614
+ } finally {
615
+ try {
616
+ more && (temp = iter.return) && (yield new __await(temp.call(iter)));
617
+ } finally {
618
+ if (error)
619
+ throw error[0];
620
+ }
621
+ }
622
+ yield new __await(this.pluginManager.runAfterRunCallback({ invocationContext }));
623
+ });
624
+ }
625
+ ));
626
+ } finally {
627
+ span.end();
628
+ }
629
+ });
630
+ }
631
+ };
632
+ __name(_Runner, "Runner");
633
+ let Runner = _Runner;
634
+ function isLiveModelMediaEventWithInlineData(event) {
635
+ var _a2;
636
+ const parts = (_a2 = event.content) == null ? void 0 : _a2.parts;
637
+ if (!(parts == null ? void 0 : parts.length)) {
638
+ return false;
639
+ }
640
+ return parts.some((part) => {
641
+ var _a3, _b;
642
+ const mimeType = (_b = (_a3 = part.inlineData) == null ? void 0 : _a3.mimeType) == null ? void 0 : _b.toLowerCase();
643
+ return mimeType !== void 0 && (mimeType.startsWith("audio/") || mimeType.startsWith("video/") || mimeType.startsWith("image/"));
644
+ });
457
645
  }
646
+ __name(isLiveModelMediaEventWithInlineData, "isLiveModelMediaEventWithInlineData");
458
647
  function determineAgentForResumption(session, rootAgent, resumabilityConfig) {
459
648
  const event = findEventByLastFunctionResponseId(session.events);
460
649
  const isResumable = Boolean(resumabilityConfig == null ? void 0 : resumabilityConfig.isResumable);
@@ -463,9 +652,11 @@ function determineAgentForResumption(session, rootAgent, resumabilityConfig) {
463
652
  if (resumedAgent) {
464
653
  return resumedAgent;
465
654
  }
466
- logger.warn(
467
- "Function response from an unknown agent: ".concat(event.author, ", event id: ").concat(event.id)
468
- );
655
+ if (!isWorkflowNodeEvent(event)) {
656
+ logger.warn(
657
+ "Function response from an unknown agent: ".concat(event.author, ", event id: ").concat(event.id)
658
+ );
659
+ }
469
660
  }
470
661
  for (let i = session.events.length - 1; i >= 0; i--) {
471
662
  logger.debug("event:", JSON.stringify(session.events[i]));
@@ -478,9 +669,11 @@ function determineAgentForResumption(session, rootAgent, resumabilityConfig) {
478
669
  }
479
670
  const agent = rootAgent.findSubAgent(event2.author);
480
671
  if (!agent) {
481
- logger.warn(
482
- "Event from an unknown agent: ".concat(event2.author, ", event id: ").concat(event2.id)
483
- );
672
+ if (!isWorkflowNodeEvent(event2)) {
673
+ logger.warn(
674
+ "Event from an unknown agent: ".concat(event2.author, ", event id: ").concat(event2.id)
675
+ );
676
+ }
484
677
  continue;
485
678
  }
486
679
  if (isRoutableLlmAgent(agent)) {
@@ -489,6 +682,12 @@ function determineAgentForResumption(session, rootAgent, resumabilityConfig) {
489
682
  }
490
683
  return rootAgent;
491
684
  }
685
+ __name(determineAgentForResumption, "determineAgentForResumption");
686
+ function isWorkflowNodeEvent(event) {
687
+ var _a2;
688
+ return Boolean((_a2 = event.nodeInfo) == null ? void 0 : _a2.path);
689
+ }
690
+ __name(isWorkflowNodeEvent, "isWorkflowNodeEvent");
492
691
  function isRoutableLlmAgent(agentToRun) {
493
692
  let agent = agentToRun;
494
693
  while (agent) {
@@ -502,10 +701,12 @@ function isRoutableLlmAgent(agentToRun) {
502
701
  }
503
702
  return true;
504
703
  }
704
+ __name(isRoutableLlmAgent, "isRoutableLlmAgent");
505
705
  function findEventByLastFunctionResponseId(events) {
506
706
  var _a2;
507
707
  return (_a2 = findMatchingFunctionCall(events)) != null ? _a2 : null;
508
708
  }
709
+ __name(findEventByLastFunctionResponseId, "findEventByLastFunctionResponseId");
509
710
  function getAllToolsets(agent) {
510
711
  const toolsets = [];
511
712
  const visited = /* @__PURE__ */ new Set();
@@ -523,9 +724,20 @@ function getAllToolsets(agent) {
523
724
  traverse(sub);
524
725
  }
525
726
  }
727
+ __name(traverse, "traverse");
526
728
  traverse(agent);
527
729
  return toolsets;
528
730
  }
731
+ __name(getAllToolsets, "getAllToolsets");
732
+ function rejectReservedFunctionCalls(newMessage) {
733
+ const reserved = reservedFunctionCallName(newMessage);
734
+ if (reserved) {
735
+ throw new Error(
736
+ "A client message may not contain a '".concat(reserved, "' function call: it is ") + "raised by the framework, and can only be answered with a function response."
737
+ );
738
+ }
739
+ }
740
+ __name(rejectReservedFunctionCalls, "rejectReservedFunctionCalls");
529
741
  export {
530
742
  Runner,
531
743
  determineAgentForResumption,
@@ -1,5 +1,7 @@
1
1
  import {createRequire as topLevelCreateRequire} from 'module';
2
2
  const require = topLevelCreateRequire(import.meta.url);
3
+ var __defProp = Object.defineProperty;
4
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
5
  /**
4
6
  * @license
5
7
  * Copyright 2025 Google LLC
@@ -7,7 +9,8 @@ const require = topLevelCreateRequire(import.meta.url);
7
9
  */
8
10
  import { cloneDeep } from "lodash-es";
9
11
  import { State } from "./state.js";
10
- class BaseSessionService {
12
+ import { carryDeltaStamps, shouldApplyDeltaWrite } from "./state_write_order.js";
13
+ const _BaseSessionService = class _BaseSessionService {
11
14
  /**
12
15
  * Gets a session or creates one if it doesn't exist.
13
16
  *
@@ -61,6 +64,9 @@ class BaseSessionService {
61
64
  if (key.startsWith(State.TEMP_PREFIX)) {
62
65
  continue;
63
66
  }
67
+ if (!shouldApplyDeltaWrite(session.state, event.actions.stateDelta, key)) {
68
+ continue;
69
+ }
64
70
  Object.defineProperty(session.state, key, {
65
71
  value,
66
72
  writable: true,
@@ -69,7 +75,9 @@ class BaseSessionService {
69
75
  });
70
76
  }
71
77
  }
72
- }
78
+ };
79
+ __name(_BaseSessionService, "BaseSessionService");
80
+ let BaseSessionService = _BaseSessionService;
73
81
  function trimTempDeltaState(event) {
74
82
  if (!event.actions || !event.actions.stateDelta) {
75
83
  return event;
@@ -81,9 +89,11 @@ function trimTempDeltaState(event) {
81
89
  filteredStateDelta[key] = value;
82
90
  }
83
91
  }
92
+ carryDeltaStamps(stateDelta, filteredStateDelta);
84
93
  event.actions.stateDelta = filteredStateDelta;
85
94
  return event;
86
95
  }
96
+ __name(trimTempDeltaState, "trimTempDeltaState");
87
97
  function trimTempState(state) {
88
98
  const filteredState = /* @__PURE__ */ Object.create(null);
89
99
  for (const [key, value] of Object.entries(state)) {
@@ -93,6 +103,7 @@ function trimTempState(state) {
93
103
  }
94
104
  return filteredState;
95
105
  }
106
+ __name(trimTempState, "trimTempState");
96
107
  function mergeStates(appState = {}, userState = {}, sessionState = {}) {
97
108
  const merged = cloneDeep(sessionState);
98
109
  for (const [k, v] of Object.entries(appState)) {
@@ -103,6 +114,7 @@ function mergeStates(appState = {}, userState = {}, sessionState = {}) {
103
114
  }
104
115
  return merged;
105
116
  }
117
+ __name(mergeStates, "mergeStates");
106
118
  export {
107
119
  BaseSessionService,
108
120
  mergeStates,
@@ -19,6 +19,7 @@ var __spreadValues = (a, b) => {
19
19
  return a;
20
20
  };
21
21
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
22
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
22
23
  /**
23
24
  * @license
24
25
  * Copyright 2026 Google LLC
@@ -54,7 +55,8 @@ function isDatabaseConnectionString(uri) {
54
55
  }
55
56
  return uri.startsWith("postgres://") || uri.startsWith("postgresql://") || uri.startsWith("mysql://") || uri.startsWith("mariadb://") || uri.startsWith("mssql://") || uri.startsWith("sqlite://");
56
57
  }
57
- class DatabaseSessionService extends BaseSessionService {
58
+ __name(isDatabaseConnectionString, "isDatabaseConnectionString");
59
+ const _DatabaseSessionService = class _DatabaseSessionService extends BaseSessionService {
58
60
  constructor(connectionStringOrOptions) {
59
61
  super();
60
62
  this.initialized = false;
@@ -429,7 +431,9 @@ class DatabaseSessionService extends BaseSessionService {
429
431
  });
430
432
  return event;
431
433
  }
432
- }
434
+ };
435
+ __name(_DatabaseSessionService, "DatabaseSessionService");
436
+ let DatabaseSessionService = _DatabaseSessionService;
433
437
  export {
434
438
  DatabaseSessionService,
435
439
  isDatabaseConnectionString
@@ -6,6 +6,7 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
6
  var __getOwnPropNames = Object.getOwnPropertyNames;
7
7
  var __getProtoOf = Object.getPrototypeOf;
8
8
  var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
9
10
  var __copyProps = (to, from, except, desc) => {
10
11
  if (from && typeof from === "object" || typeof from === "function") {
11
12
  for (let key of __getOwnPropNames(from))
@@ -27,31 +28,55 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
27
28
  * Copyright 2026 Google LLC
28
29
  * SPDX-License-Identifier: Apache-2.0
29
30
  */
31
+ import { loadOptionalPeer } from "../../utils/optional_peer.js";
32
+ import { redactUriPassword } from "../../utils/redact_uri.js";
30
33
  import {
31
34
  ENTITIES,
32
35
  SCHEMA_VERSION_1_JSON,
33
36
  SCHEMA_VERSION_KEY,
34
37
  StorageMetadata
35
38
  } from "./schema.js";
39
+ function driverPeer(packageName, scheme) {
40
+ return {
41
+ packageName,
42
+ feature: 'DatabaseSessionService with a "'.concat(scheme, '" connection string')
43
+ };
44
+ }
45
+ __name(driverPeer, "driverPeer");
36
46
  async function getConnectionOptionsFromUri(uri) {
37
47
  let driver;
38
48
  if (uri.startsWith("postgres://") || uri.startsWith("postgresql://")) {
39
- const { PostgreSqlDriver } = await Promise.resolve().then(() => __toESM(require("@mikro-orm/postgresql"), 1));
49
+ const { PostgreSqlDriver } = await loadOptionalPeer(
50
+ driverPeer("@mikro-orm/postgresql", "postgres"),
51
+ () => Promise.resolve().then(() => __toESM(require("@mikro-orm/postgresql"), 1))
52
+ );
40
53
  driver = PostgreSqlDriver;
41
54
  } else if (uri.startsWith("mysql://")) {
42
- const { MySqlDriver } = await Promise.resolve().then(() => __toESM(require("@mikro-orm/mysql"), 1));
55
+ const { MySqlDriver } = await loadOptionalPeer(
56
+ driverPeer("@mikro-orm/mysql", "mysql"),
57
+ () => Promise.resolve().then(() => __toESM(require("@mikro-orm/mysql"), 1))
58
+ );
43
59
  driver = MySqlDriver;
44
60
  } else if (uri.startsWith("mariadb://")) {
45
- const { MariaDbDriver } = await Promise.resolve().then(() => __toESM(require("@mikro-orm/mariadb"), 1));
61
+ const { MariaDbDriver } = await loadOptionalPeer(
62
+ driverPeer("@mikro-orm/mariadb", "mariadb"),
63
+ () => Promise.resolve().then(() => __toESM(require("@mikro-orm/mariadb"), 1))
64
+ );
46
65
  driver = MariaDbDriver;
47
66
  } else if (uri.startsWith("sqlite://")) {
48
- const { SqliteDriver } = await Promise.resolve().then(() => __toESM(require("@mikro-orm/sqlite"), 1));
67
+ const { SqliteDriver } = await loadOptionalPeer(
68
+ driverPeer("@mikro-orm/sqlite", "sqlite"),
69
+ () => Promise.resolve().then(() => __toESM(require("@mikro-orm/sqlite"), 1))
70
+ );
49
71
  driver = SqliteDriver;
50
72
  } else if (uri.startsWith("mssql://")) {
51
- const { MsSqlDriver } = await Promise.resolve().then(() => __toESM(require("@mikro-orm/mssql"), 1));
73
+ const { MsSqlDriver } = await loadOptionalPeer(
74
+ driverPeer("@mikro-orm/mssql", "mssql"),
75
+ () => Promise.resolve().then(() => __toESM(require("@mikro-orm/mssql"), 1))
76
+ );
52
77
  driver = MsSqlDriver;
53
78
  } else {
54
- throw new Error("Unsupported database URI: ".concat(uri));
79
+ throw new Error("Unsupported database URI: ".concat(redactUriPassword(uri)));
55
80
  }
56
81
  if (uri.startsWith("sqlite://")) {
57
82
  return {
@@ -66,10 +91,12 @@ async function getConnectionOptionsFromUri(uri) {
66
91
  driver
67
92
  };
68
93
  }
94
+ __name(getConnectionOptionsFromUri, "getConnectionOptionsFromUri");
69
95
  async function ensureDatabaseCreated(orm) {
70
96
  await orm.schema.ensureDatabase();
71
97
  await orm.schema.updateSchema({ safe: true });
72
98
  }
99
+ __name(ensureDatabaseCreated, "ensureDatabaseCreated");
73
100
  async function validateDatabaseSchemaVersion(orm) {
74
101
  const em = orm.em.fork();
75
102
  const existing = await em.findOne(StorageMetadata, {
@@ -89,6 +116,7 @@ async function validateDatabaseSchemaVersion(orm) {
89
116
  });
90
117
  await em.persist(newVersion).flush();
91
118
  }
119
+ __name(validateDatabaseSchemaVersion, "validateDatabaseSchemaVersion");
92
120
  export {
93
121
  ensureDatabaseCreated,
94
122
  getConnectionOptionsFromUri,
@@ -2,6 +2,7 @@ import {createRequire as topLevelCreateRequire} from 'module';
2
2
  const require = topLevelCreateRequire(import.meta.url);
3
3
  var __defProp = Object.defineProperty;
4
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
5
6
  var __decorateClass = (decorators, target, key, kind) => {
6
7
  var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
7
8
  for (var i = decorators.length - 1, decorator; i >= 0; i--)
@@ -23,7 +24,7 @@ import {
23
24
  const SCHEMA_VERSION_KEY = "schema_version";
24
25
  const SCHEMA_VERSION_1_JSON = "1";
25
26
  const STORAGE_KEY_COLUMN_LENGTH = 191;
26
- class CamelCaseToSnakeCaseJsonType extends JsonType {
27
+ const _CamelCaseToSnakeCaseJsonType = class _CamelCaseToSnakeCaseJsonType extends JsonType {
27
28
  convertToDatabaseValue(value) {
28
29
  return JSON.stringify(transformToSnakeCaseEvent(value));
29
30
  }
@@ -33,9 +34,12 @@ class CamelCaseToSnakeCaseJsonType extends JsonType {
33
34
  }
34
35
  return transformToCamelCaseEvent(value);
35
36
  }
36
- }
37
+ };
38
+ __name(_CamelCaseToSnakeCaseJsonType, "CamelCaseToSnakeCaseJsonType");
39
+ let CamelCaseToSnakeCaseJsonType = _CamelCaseToSnakeCaseJsonType;
37
40
  let StorageMetadata = class {
38
41
  };
42
+ __name(StorageMetadata, "StorageMetadata");
39
43
  __decorateClass([
40
44
  PrimaryKey({ type: "string" })
41
45
  ], StorageMetadata.prototype, "key", 2);
@@ -50,6 +54,7 @@ let StorageAppState = class {
50
54
  this.updateTime = /* @__PURE__ */ new Date();
51
55
  }
52
56
  };
57
+ __name(StorageAppState, "StorageAppState");
53
58
  __decorateClass([
54
59
  PrimaryKey({
55
60
  type: "string",
@@ -64,8 +69,8 @@ __decorateClass([
64
69
  Property({
65
70
  type: "datetime",
66
71
  fieldName: "update_time",
67
- onCreate: () => /* @__PURE__ */ new Date(),
68
- onUpdate: () => /* @__PURE__ */ new Date()
72
+ onCreate: /* @__PURE__ */ __name(() => /* @__PURE__ */ new Date(), "onCreate"),
73
+ onUpdate: /* @__PURE__ */ __name(() => /* @__PURE__ */ new Date(), "onUpdate")
69
74
  })
70
75
  ], StorageAppState.prototype, "updateTime", 2);
71
76
  StorageAppState = __decorateClass([
@@ -77,6 +82,7 @@ let StorageUserState = class {
77
82
  this.updateTime = /* @__PURE__ */ new Date();
78
83
  }
79
84
  };
85
+ __name(StorageUserState, "StorageUserState");
80
86
  __decorateClass([
81
87
  PrimaryKey({
82
88
  type: "string",
@@ -98,8 +104,8 @@ __decorateClass([
98
104
  Property({
99
105
  type: "datetime",
100
106
  fieldName: "update_time",
101
- onCreate: () => /* @__PURE__ */ new Date(),
102
- onUpdate: () => /* @__PURE__ */ new Date()
107
+ onCreate: /* @__PURE__ */ __name(() => /* @__PURE__ */ new Date(), "onCreate"),
108
+ onUpdate: /* @__PURE__ */ __name(() => /* @__PURE__ */ new Date(), "onUpdate")
103
109
  })
104
110
  ], StorageUserState.prototype, "updateTime", 2);
105
111
  StorageUserState = __decorateClass([
@@ -112,6 +118,7 @@ let StorageSession = class {
112
118
  this.updateTime = /* @__PURE__ */ new Date();
113
119
  }
114
120
  };
121
+ __name(StorageSession, "StorageSession");
115
122
  __decorateClass([
116
123
  PrimaryKey({ type: "string", length: STORAGE_KEY_COLUMN_LENGTH })
117
124
  ], StorageSession.prototype, "id", 2);
@@ -136,14 +143,14 @@ __decorateClass([
136
143
  Property({
137
144
  type: "datetime",
138
145
  fieldName: "create_time",
139
- onCreate: () => /* @__PURE__ */ new Date()
146
+ onCreate: /* @__PURE__ */ __name(() => /* @__PURE__ */ new Date(), "onCreate")
140
147
  })
141
148
  ], StorageSession.prototype, "createTime", 2);
142
149
  __decorateClass([
143
150
  Property({
144
151
  type: "datetime",
145
152
  fieldName: "update_time",
146
- onCreate: () => /* @__PURE__ */ new Date()
153
+ onCreate: /* @__PURE__ */ __name(() => /* @__PURE__ */ new Date(), "onCreate")
147
154
  })
148
155
  ], StorageSession.prototype, "updateTime", 2);
149
156
  StorageSession = __decorateClass([
@@ -152,6 +159,7 @@ StorageSession = __decorateClass([
152
159
  PrimaryKey.name;
153
160
  let StorageEvent = class {
154
161
  };
162
+ __name(StorageEvent, "StorageEvent");
155
163
  __decorateClass([
156
164
  PrimaryKey({ type: "string", length: STORAGE_KEY_COLUMN_LENGTH })
157
165
  ], StorageEvent.prototype, "id", 2);