@google/adk 2.0.0 → 2.1.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 (566) hide show
  1. package/dist/cjs/a2a/a2a_event.js +0 -29
  2. package/dist/cjs/a2a/a2a_remote_agent.js +8 -5
  3. package/dist/cjs/a2a/a2a_remote_agent_utils.js +104 -2
  4. package/dist/cjs/a2a/agent_card.js +58 -6
  5. package/dist/cjs/a2a/agent_executor.js +10 -3
  6. package/dist/cjs/a2a/agent_to_a2a.js +6 -1
  7. package/dist/cjs/a2a/event_processor_utils.js +1 -1
  8. package/dist/cjs/a2a/executor_context.js +4 -2
  9. package/dist/cjs/a2a/index.js +4 -0
  10. package/dist/cjs/a2a/request_metadata.js +94 -0
  11. package/dist/cjs/agents/base_agent.js +9 -8
  12. package/dist/cjs/agents/context.js +7 -0
  13. package/dist/cjs/agents/functions.js +150 -47
  14. package/dist/cjs/agents/invocation_context.js +1 -0
  15. package/dist/cjs/agents/llm_agent.js +6 -5
  16. package/dist/cjs/agents/loop_agent.js +1 -1
  17. package/dist/cjs/agents/parallel_agent.js +1 -1
  18. package/dist/cjs/agents/processors/agent_transfer_llm_request_processor.js +26 -5
  19. package/dist/cjs/agents/processors/code_execution_request_processor.js +2 -2
  20. package/dist/cjs/agents/processors/content_processor_utils.js +5 -5
  21. package/dist/cjs/agents/processors/content_request_processor.js +4 -1
  22. package/dist/cjs/agents/processors/request_confirmation_llm_request_processor.js +19 -12
  23. package/dist/cjs/agents/processors/request_input_llm_request_processor.js +3 -7
  24. package/dist/cjs/agents/readonly_context.js +6 -0
  25. package/dist/cjs/agents/routed_agent.js +1 -1
  26. package/dist/cjs/agents/sequential_agent.js +1 -1
  27. package/dist/cjs/apps/app.js +1 -1
  28. package/dist/cjs/artifacts/file_artifact_service.js +1 -2
  29. package/dist/cjs/artifacts/scoped_artifact_service.js +9 -0
  30. package/dist/cjs/artifacts/session_artifact_service.js +19 -0
  31. package/dist/cjs/auth/auth_handler.js +44 -8
  32. package/dist/cjs/auth/oauth2/oauth2_credential_refresher.js +1 -1
  33. package/dist/cjs/auth/oauth2/oauth2_utils.js +17 -2
  34. package/dist/cjs/code_executors/base_code_executor.js +1 -1
  35. package/dist/cjs/code_executors/built_in_code_executor.js +1 -1
  36. package/dist/cjs/code_executors/code_execution_utils.js +2 -2
  37. package/dist/cjs/code_executors/container_code_executor.js +186 -0
  38. package/dist/cjs/code_executors/docker_container.js +282 -0
  39. package/dist/cjs/code_executors/unsafe_local_code_executor.js +11 -6
  40. package/dist/cjs/common.js +74 -45
  41. package/dist/cjs/context/agent_controlled_context_compactor.js +10 -5
  42. package/dist/cjs/context/anchored_context_compactor.js +41 -18
  43. package/dist/cjs/context/compaction_utils.js +15 -6
  44. package/dist/cjs/context/token_based_context_compactor.js +10 -2
  45. package/dist/cjs/context/trajectory_thought_pruning_compactor.js +17 -10
  46. package/dist/cjs/context/truncating_context_compactor.js +17 -5
  47. package/dist/cjs/errors/already_exists_error.js +50 -0
  48. package/dist/cjs/errors/input_validation_error.js +50 -0
  49. package/dist/cjs/errors/not_found_error.js +50 -0
  50. package/dist/cjs/errors/session_not_found_error.js +50 -0
  51. package/dist/cjs/errors/tool_execution_error.js +68 -0
  52. package/dist/cjs/events/event.js +1 -1
  53. package/dist/cjs/events/event_actions.js +7 -0
  54. package/dist/cjs/examples/base_example_provider.js +1 -1
  55. package/dist/cjs/index.js +47 -0
  56. package/dist/cjs/index_web.js +2 -0
  57. package/dist/cjs/integrations/agent_registry/agent_registry.js +3 -2
  58. package/dist/cjs/memory/rag_memory_transcript.js +136 -0
  59. package/dist/cjs/memory/vertex_ai_memory_bank_service.js +2 -2
  60. package/dist/cjs/memory/vertex_ai_rag_api.js +120 -0
  61. package/dist/cjs/memory/vertex_ai_rag_memory_service.js +228 -0
  62. package/dist/cjs/models/apigee_llm.js +1 -1
  63. package/dist/cjs/models/base_llm.js +1 -1
  64. package/dist/cjs/models/chrome_prompt_llm.js +304 -0
  65. package/dist/cjs/models/chrome_prompt_utils.js +229 -0
  66. package/dist/cjs/models/google_llm.js +9 -4
  67. package/dist/cjs/models/interactions_utils.js +2 -3
  68. package/dist/cjs/models/registry.js +2 -0
  69. package/dist/cjs/plugins/_reflect_retry_utils.js +142 -0
  70. package/dist/cjs/plugins/reflect_retry_model_plugin.js +274 -0
  71. package/dist/cjs/plugins/reflect_retry_tool_plugin.js +276 -0
  72. package/dist/cjs/runner/runner.js +29 -26
  73. package/dist/cjs/sessions/database_session_service.js +78 -43
  74. package/dist/cjs/sessions/db/operations.js +229 -22
  75. package/dist/cjs/sessions/db/schema.js +113 -159
  76. package/dist/cjs/sessions/registry.js +5 -1
  77. package/dist/cjs/sessions/vertex_ai_session_service.js +2 -2
  78. package/dist/cjs/telemetry/setup.js +1 -1
  79. package/dist/cjs/telemetry/tracing.js +11 -1
  80. package/dist/cjs/tools/agent_tool.js +4 -5
  81. package/dist/cjs/tools/base_tool.js +14 -4
  82. package/dist/cjs/tools/base_toolset.js +4 -4
  83. package/dist/cjs/tools/built_in_tool.js +75 -0
  84. package/dist/cjs/tools/enterprise_web_search_tool.js +3 -6
  85. package/dist/cjs/tools/forwarding_artifact_service.js +18 -13
  86. package/dist/cjs/tools/function_tool.js +6 -3
  87. package/dist/cjs/tools/google_maps_grounding_tool.js +3 -6
  88. package/dist/cjs/tools/google_search_tool.js +3 -6
  89. package/dist/cjs/tools/load_artifacts_tool.js +47 -23
  90. package/dist/cjs/tools/load_web_page.js +6 -172
  91. package/dist/cjs/tools/mcp/load_mcp_resource_tool.js +34 -5
  92. package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +11 -2
  93. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/operation_parser.js +1 -1
  94. package/dist/cjs/tools/openapi_tool/rest_api_tool.js +16 -18
  95. package/dist/cjs/tools/preload_memory_tool.js +1 -1
  96. package/dist/cjs/tools/resume_inputs.js +27 -0
  97. package/dist/cjs/tools/retrieval/base_retrieval_tool.js +60 -0
  98. package/dist/cjs/tools/retrieval/files_retrieval.js +95 -0
  99. package/dist/cjs/tools/retrieval/llama_index_retrieval.js +57 -0
  100. package/dist/cjs/tools/url_context_tool.js +3 -6
  101. package/dist/cjs/tools/vertex_ai_search_tool.js +4 -8
  102. package/dist/cjs/tools/vertex_rag_retrieval_tool.js +3 -10
  103. package/dist/cjs/utils/crypto_shim.js +16 -0
  104. package/dist/cjs/utils/gemini_schema_util.js +0 -6
  105. package/dist/cjs/utils/logger.js +15 -50
  106. package/dist/cjs/utils/logger_browser.js +86 -0
  107. package/dist/cjs/utils/logger_node.js +119 -0
  108. package/dist/cjs/utils/redact_inline_data.js +46 -0
  109. package/dist/cjs/utils/redact_uri.js +15 -1
  110. package/dist/cjs/utils/schema.js +1 -1
  111. package/dist/cjs/utils/ssrf_guard.js +262 -0
  112. package/dist/cjs/version.js +1 -1
  113. package/dist/cjs/workflow/base_node.js +1 -1
  114. package/dist/cjs/workflow/graph.js +1 -1
  115. package/dist/cjs/workflow/nodes/node_tool.js +2 -11
  116. package/dist/cjs/workflow/request_input.js +1 -1
  117. package/dist/cjs/workflow/run_llm_agent_as_node.js +1 -1
  118. package/dist/cjs/workflow/workflow.js +1 -1
  119. package/dist/esm/a2a/a2a_event.js +0 -28
  120. package/dist/esm/a2a/a2a_remote_agent.js +10 -5
  121. package/dist/esm/a2a/a2a_remote_agent_utils.js +102 -2
  122. package/dist/esm/a2a/agent_card.js +63 -6
  123. package/dist/esm/a2a/agent_executor.js +10 -3
  124. package/dist/esm/a2a/agent_to_a2a.js +8 -2
  125. package/dist/esm/a2a/event_processor_utils.js +1 -2
  126. package/dist/esm/a2a/executor_context.js +4 -2
  127. package/dist/esm/a2a/index.js +7 -1
  128. package/dist/esm/a2a/request_metadata.js +68 -0
  129. package/dist/esm/agents/base_agent.js +9 -8
  130. package/dist/esm/agents/context.js +7 -0
  131. package/dist/esm/agents/functions.js +152 -48
  132. package/dist/esm/agents/invocation_context.js +1 -0
  133. package/dist/esm/agents/llm_agent.js +6 -5
  134. package/dist/esm/agents/loop_agent.js +1 -1
  135. package/dist/esm/agents/parallel_agent.js +1 -1
  136. package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +26 -5
  137. package/dist/esm/agents/processors/code_execution_request_processor.js +2 -2
  138. package/dist/esm/agents/processors/content_processor_utils.js +5 -5
  139. package/dist/esm/agents/processors/content_request_processor.js +4 -1
  140. package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +19 -12
  141. package/dist/esm/agents/processors/request_input_llm_request_processor.js +3 -7
  142. package/dist/esm/agents/readonly_context.js +6 -0
  143. package/dist/esm/agents/routed_agent.js +1 -1
  144. package/dist/esm/agents/sequential_agent.js +1 -1
  145. package/dist/esm/apps/app.js +1 -1
  146. package/dist/esm/artifacts/file_artifact_service.js +1 -2
  147. package/dist/esm/artifacts/scoped_artifact_service.js +9 -0
  148. package/dist/esm/artifacts/session_artifact_service.js +12 -0
  149. package/dist/esm/auth/auth_handler.js +47 -8
  150. package/dist/esm/auth/oauth2/oauth2_credential_refresher.js +1 -1
  151. package/dist/esm/auth/oauth2/oauth2_utils.js +15 -2
  152. package/dist/esm/code_executors/base_code_executor.js +1 -1
  153. package/dist/esm/code_executors/built_in_code_executor.js +1 -1
  154. package/dist/esm/code_executors/code_execution_utils.js +2 -2
  155. package/dist/esm/code_executors/container_code_executor.js +155 -0
  156. package/dist/esm/code_executors/docker_container.js +265 -0
  157. package/dist/esm/code_executors/unsafe_local_code_executor.js +11 -6
  158. package/dist/esm/common.js +73 -38
  159. package/dist/esm/context/agent_controlled_context_compactor.js +10 -5
  160. package/dist/esm/context/anchored_context_compactor.js +45 -19
  161. package/dist/esm/context/compaction_utils.js +13 -5
  162. package/dist/esm/context/token_based_context_compactor.js +10 -2
  163. package/dist/esm/context/trajectory_thought_pruning_compactor.js +17 -10
  164. package/dist/esm/context/truncating_context_compactor.js +17 -5
  165. package/dist/esm/errors/already_exists_error.js +23 -0
  166. package/dist/esm/errors/input_validation_error.js +23 -0
  167. package/dist/{web/auth/refresher/base_credential_refresher.js → esm/errors/not_found_error.js} +9 -6
  168. package/dist/esm/errors/session_not_found_error.js +23 -0
  169. package/dist/esm/errors/tool_execution_error.js +40 -0
  170. package/dist/esm/events/event.js +1 -1
  171. package/dist/esm/events/event_actions.js +6 -0
  172. package/dist/esm/examples/base_example_provider.js +1 -1
  173. package/dist/esm/index.js +37 -0
  174. package/dist/esm/index_web.js +2 -0
  175. package/dist/esm/integrations/agent_registry/agent_registry.js +3 -2
  176. package/dist/esm/memory/rag_memory_transcript.js +106 -0
  177. package/dist/esm/memory/vertex_ai_memory_bank_service.js +2 -2
  178. package/dist/esm/memory/vertex_ai_rag_api.js +93 -0
  179. package/dist/esm/memory/vertex_ai_rag_memory_service.js +208 -0
  180. package/dist/esm/models/apigee_llm.js +1 -1
  181. package/dist/esm/models/base_llm.js +1 -1
  182. package/dist/esm/models/chrome_prompt_llm.js +285 -0
  183. package/dist/esm/models/chrome_prompt_utils.js +192 -0
  184. package/dist/esm/models/google_llm.js +9 -4
  185. package/dist/esm/models/interactions_utils.js +2 -3
  186. package/dist/esm/models/registry.js +2 -0
  187. package/dist/esm/plugins/_reflect_retry_utils.js +111 -0
  188. package/dist/esm/plugins/reflect_retry_model_plugin.js +250 -0
  189. package/dist/esm/plugins/reflect_retry_tool_plugin.js +254 -0
  190. package/dist/esm/runner/runner.js +35 -27
  191. package/dist/esm/sessions/database_session_service.js +58 -25
  192. package/dist/esm/sessions/db/operations.js +229 -22
  193. package/dist/esm/sessions/db/schema.js +111 -160
  194. package/dist/esm/sessions/registry.js +5 -1
  195. package/dist/esm/sessions/vertex_ai_session_service.js +1 -1
  196. package/dist/esm/telemetry/setup.js +1 -1
  197. package/dist/esm/telemetry/tracing.js +11 -1
  198. package/dist/esm/tools/agent_tool.js +4 -5
  199. package/dist/esm/tools/base_tool.js +11 -3
  200. package/dist/esm/tools/base_toolset.js +4 -4
  201. package/dist/esm/tools/built_in_tool.js +51 -0
  202. package/dist/esm/tools/enterprise_web_search_tool.js +3 -6
  203. package/dist/esm/tools/forwarding_artifact_service.js +18 -13
  204. package/dist/esm/tools/function_tool.js +6 -3
  205. package/dist/esm/tools/google_maps_grounding_tool.js +3 -6
  206. package/dist/esm/tools/google_search_tool.js +3 -6
  207. package/dist/esm/tools/load_artifacts_tool.js +48 -24
  208. package/dist/esm/tools/load_web_page.js +10 -170
  209. package/dist/esm/tools/mcp/load_mcp_resource_tool.js +34 -5
  210. package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +13 -2
  211. package/dist/esm/tools/openapi_tool/openapi_spec_parser/operation_parser.js +1 -1
  212. package/dist/esm/tools/openapi_tool/rest_api_tool.js +16 -18
  213. package/dist/esm/tools/preload_memory_tool.js +1 -1
  214. package/dist/esm/tools/retrieval/base_retrieval_tool.js +33 -0
  215. package/dist/esm/tools/retrieval/files_retrieval.js +81 -0
  216. package/dist/esm/tools/retrieval/llama_index_retrieval.js +30 -0
  217. package/dist/esm/tools/url_context_tool.js +3 -6
  218. package/dist/esm/tools/vertex_ai_search_tool.js +4 -8
  219. package/dist/esm/tools/vertex_rag_retrieval_tool.js +3 -10
  220. package/dist/esm/utils/crypto_shim.js +14 -0
  221. package/dist/esm/utils/gemini_schema_util.js +0 -6
  222. package/dist/esm/utils/logger.js +14 -40
  223. package/dist/esm/utils/logger_browser.js +58 -0
  224. package/dist/esm/utils/logger_node.js +81 -0
  225. package/dist/esm/utils/redact_inline_data.js +19 -0
  226. package/dist/esm/utils/redact_uri.js +15 -1
  227. package/dist/esm/utils/schema.js +1 -1
  228. package/dist/{web/tools/load_web_page.js → esm/utils/ssrf_guard.js} +95 -107
  229. package/dist/esm/version.js +1 -1
  230. package/dist/esm/workflow/base_node.js +1 -1
  231. package/dist/esm/workflow/graph.js +1 -1
  232. package/dist/esm/workflow/nodes/node_tool.js +2 -11
  233. package/dist/esm/workflow/request_input.js +1 -1
  234. package/dist/esm/workflow/run_llm_agent_as_node.js +1 -1
  235. package/dist/esm/workflow/workflow.js +1 -1
  236. package/dist/types/a2a/a2a_event.d.ts +7 -10
  237. package/dist/types/a2a/a2a_remote_agent.d.ts +5 -0
  238. package/dist/types/a2a/a2a_remote_agent_utils.d.ts +25 -0
  239. package/dist/types/a2a/agent_card.d.ts +9 -0
  240. package/dist/types/a2a/agent_executor.d.ts +1 -1
  241. package/dist/types/a2a/agent_to_a2a.d.ts +2 -0
  242. package/dist/types/a2a/auth.d.ts +5 -1
  243. package/dist/types/a2a/executor_context.d.ts +7 -1
  244. package/dist/types/a2a/index.d.ts +1 -1
  245. package/dist/types/a2a/request_metadata.d.ts +22 -0
  246. package/dist/types/agents/base_agent.d.ts +19 -16
  247. package/dist/types/agents/context.d.ts +8 -0
  248. package/dist/types/agents/functions.d.ts +72 -6
  249. package/dist/types/agents/invocation_context.d.ts +11 -3
  250. package/dist/types/agents/llm_agent.d.ts +9 -7
  251. package/dist/types/agents/processors/agent_transfer_llm_request_processor.d.ts +16 -1
  252. package/dist/types/agents/readonly_context.d.ts +4 -0
  253. package/dist/types/agents/run_config.d.ts +21 -8
  254. package/dist/types/artifacts/scoped_artifact_service.d.ts +13 -0
  255. package/dist/types/artifacts/session_artifact_service.d.ts +8 -1
  256. package/dist/types/auth/auth_credential.d.ts +13 -8
  257. package/dist/types/auth/auth_handler.d.ts +12 -1
  258. package/dist/types/auth/oauth2/oauth2_credential_refresher.d.ts +1 -1
  259. package/dist/types/auth/oauth2/oauth2_utils.d.ts +9 -0
  260. package/dist/types/auth/refresher/base_credential_refresher.d.ts +1 -1
  261. package/dist/types/code_executors/code_execution_utils.d.ts +1 -1
  262. package/dist/types/code_executors/container_code_executor.d.ts +89 -0
  263. package/dist/types/code_executors/docker_container.d.ts +79 -0
  264. package/dist/types/common.d.ts +22 -20
  265. package/dist/types/context/compaction_utils.d.ts +9 -1
  266. package/dist/types/errors/already_exists_error.d.ts +14 -0
  267. package/dist/types/errors/input_validation_error.d.ts +14 -0
  268. package/dist/types/errors/not_found_error.d.ts +14 -0
  269. package/dist/types/errors/session_not_found_error.d.ts +14 -0
  270. package/dist/types/errors/tool_execution_error.d.ts +36 -0
  271. package/dist/types/events/event_actions.d.ts +13 -0
  272. package/dist/types/index.d.ts +22 -1
  273. package/dist/types/memory/rag_memory_transcript.d.ts +55 -0
  274. package/dist/types/memory/vertex_ai_rag_api.d.ts +89 -0
  275. package/dist/types/memory/vertex_ai_rag_memory_service.d.ts +68 -0
  276. package/dist/types/models/chrome_prompt_llm.d.ts +210 -0
  277. package/dist/types/models/chrome_prompt_utils.d.ts +68 -0
  278. package/dist/types/models/google_llm.d.ts +8 -3
  279. package/dist/types/models/registry.d.ts +3 -2
  280. package/dist/types/plugins/_reflect_retry_utils.d.ts +72 -0
  281. package/dist/types/plugins/base_plugin.d.ts +12 -10
  282. package/dist/types/plugins/logging_plugin.d.ts +3 -2
  283. package/dist/types/plugins/reflect_retry_model_plugin.d.ts +132 -0
  284. package/dist/types/plugins/reflect_retry_tool_plugin.d.ts +187 -0
  285. package/dist/types/runner/runner.d.ts +7 -8
  286. package/dist/types/sessions/database_session_service.d.ts +1 -1
  287. package/dist/types/sessions/db/operations.d.ts +13 -1
  288. package/dist/types/sessions/db/schema.d.ts +23 -9
  289. package/dist/types/tools/base_tool.d.ts +11 -0
  290. package/dist/types/tools/base_toolset.d.ts +3 -4
  291. package/dist/types/tools/built_in_tool.d.ts +41 -0
  292. package/dist/types/tools/enterprise_web_search_tool.d.ts +4 -4
  293. package/dist/types/tools/forwarding_artifact_service.d.ts +23 -10
  294. package/dist/types/tools/function_tool.d.ts +42 -9
  295. package/dist/types/tools/google_maps_grounding_tool.d.ts +4 -4
  296. package/dist/types/tools/google_search_tool.d.ts +4 -4
  297. package/dist/types/tools/long_running_tool.d.ts +1 -1
  298. package/dist/types/tools/mcp/mcp_toolset.d.ts +11 -10
  299. package/dist/types/tools/openapi_tool/auth/auth_helpers.d.ts +5 -0
  300. package/dist/types/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.d.ts +0 -1
  301. package/dist/types/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.d.ts +0 -1
  302. package/dist/types/tools/preload_memory_tool.d.ts +1 -1
  303. package/dist/types/tools/resume_inputs.d.ts +25 -0
  304. package/dist/types/tools/retrieval/base_retrieval_tool.d.ts +21 -0
  305. package/dist/types/tools/retrieval/files_retrieval.d.ts +50 -0
  306. package/dist/types/tools/retrieval/llama_index_retrieval.d.ts +62 -0
  307. package/dist/types/tools/url_context_tool.d.ts +4 -4
  308. package/dist/types/tools/vertex_ai_search_tool.d.ts +4 -4
  309. package/dist/types/tools/vertex_rag_retrieval_tool.d.ts +13 -12
  310. package/dist/types/utils/crypto_shim.d.ts +16 -0
  311. package/dist/types/utils/gemini_schema_util.d.ts +5 -7
  312. package/dist/types/utils/logger.d.ts +23 -1
  313. package/dist/types/utils/logger_browser.d.ts +28 -0
  314. package/dist/types/utils/logger_node.d.ts +20 -0
  315. package/dist/types/utils/output_schema_utils.d.ts +3 -3
  316. package/dist/types/utils/redact_inline_data.d.ts +16 -0
  317. package/dist/types/utils/redact_uri.d.ts +12 -8
  318. package/dist/types/utils/ssrf_guard.d.ts +32 -0
  319. package/dist/types/version.d.ts +1 -1
  320. package/dist/web/index_web.js +304 -3
  321. package/dist/web/index_web.js.map +7 -0
  322. package/package.json +17 -14
  323. package/dist/web/a2a/a2a_event.js +0 -290
  324. package/dist/web/a2a/a2a_remote_agent.js +0 -200
  325. package/dist/web/a2a/a2a_remote_agent_run_processor.js +0 -189
  326. package/dist/web/a2a/a2a_remote_agent_utils.js +0 -141
  327. package/dist/web/a2a/agent_card.js +0 -373
  328. package/dist/web/a2a/agent_executor.js +0 -246
  329. package/dist/web/a2a/agent_to_a2a.js +0 -126
  330. package/dist/web/a2a/auth.js +0 -41
  331. package/dist/web/a2a/event_converter_utils.js +0 -242
  332. package/dist/web/a2a/event_processor_utils.js +0 -209
  333. package/dist/web/a2a/executor_context.js +0 -28
  334. package/dist/web/a2a/index.js +0 -20
  335. package/dist/web/a2a/metadata_converter_utils.js +0 -115
  336. package/dist/web/a2a/part_converter_utils.js +0 -201
  337. package/dist/web/agents/active_streaming_tool.js +0 -25
  338. package/dist/web/agents/base_agent.js +0 -462
  339. package/dist/web/agents/context.js +0 -146
  340. package/dist/web/agents/framework_function_calls.js +0 -34
  341. package/dist/web/agents/functions.js +0 -462
  342. package/dist/web/agents/instructions.js +0 -188
  343. package/dist/web/agents/invocation_context.js +0 -126
  344. package/dist/web/agents/live_request_queue.js +0 -151
  345. package/dist/web/agents/llm_agent.js +0 -1514
  346. package/dist/web/agents/loop_agent.js +0 -131
  347. package/dist/web/agents/parallel_agent.js +0 -122
  348. package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +0 -113
  349. package/dist/web/agents/processors/base_llm_processor.js +0 -21
  350. package/dist/web/agents/processors/basic_llm_request_processor.js +0 -84
  351. package/dist/web/agents/processors/code_execution_request_processor.js +0 -381
  352. package/dist/web/agents/processors/content_processor_utils.js +0 -432
  353. package/dist/web/agents/processors/content_request_processor.js +0 -73
  354. package/dist/web/agents/processors/context_compactor_request_processor.js +0 -78
  355. package/dist/web/agents/processors/identity_llm_request_processor.js +0 -59
  356. package/dist/web/agents/processors/instructions_llm_request_processor.js +0 -85
  357. package/dist/web/agents/processors/interactions_request_processor.js +0 -56
  358. package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +0 -393
  359. package/dist/web/agents/processors/request_input_llm_request_processor.js +0 -228
  360. package/dist/web/agents/processors/tool_filter_request_processor.js +0 -72
  361. package/dist/web/agents/readonly_context.js +0 -60
  362. package/dist/web/agents/routed_agent.js +0 -161
  363. package/dist/web/agents/run_config.js +0 -74
  364. package/dist/web/agents/sequential_agent.js +0 -141
  365. package/dist/web/agents/transcription_entry.js +0 -7
  366. package/dist/web/agents/user_input_request.js +0 -135
  367. package/dist/web/apps/app.js +0 -52
  368. package/dist/web/apps/resumability_config.js +0 -33
  369. package/dist/web/artifacts/base_artifact_service.js +0 -7
  370. package/dist/web/artifacts/file_artifact_service.js +0 -568
  371. package/dist/web/artifacts/gcs_artifact_service.js +0 -298
  372. package/dist/web/artifacts/in_memory_artifact_service.js +0 -172
  373. package/dist/web/artifacts/registry.js +0 -36
  374. package/dist/web/artifacts/scoped_artifact_service.js +0 -89
  375. package/dist/web/auth/auth_credential.js +0 -18
  376. package/dist/web/auth/auth_handler.js +0 -151
  377. package/dist/web/auth/auth_preprocessor.js +0 -184
  378. package/dist/web/auth/auth_provider_registry.js +0 -37
  379. package/dist/web/auth/auth_schemes.js +0 -36
  380. package/dist/web/auth/auth_tool.js +0 -7
  381. package/dist/web/auth/base_auth_provider.js +0 -7
  382. package/dist/web/auth/credential_response_binding.js +0 -91
  383. package/dist/web/auth/credential_service/base_credential_service.js +0 -7
  384. package/dist/web/auth/credential_service/in_memory_credential_service.js +0 -50
  385. package/dist/web/auth/credential_service/session_state_credential_service.js +0 -27
  386. package/dist/web/auth/exchanger/base_credential_exchanger.js +0 -16
  387. package/dist/web/auth/exchanger/credential_exchanger_registry.js +0 -35
  388. package/dist/web/auth/oauth2/oauth2_credential_exchanger.js +0 -194
  389. package/dist/web/auth/oauth2/oauth2_credential_refresher.js +0 -105
  390. package/dist/web/auth/oauth2/oauth2_discovery.js +0 -196
  391. package/dist/web/auth/oauth2/oauth2_utils.js +0 -105
  392. package/dist/web/auth/refresher/credential_refresher_registry.js +0 -44
  393. package/dist/web/code_executors/agent_engine_sandbox_code_executor.js +0 -284
  394. package/dist/web/code_executors/base_code_executor.js +0 -68
  395. package/dist/web/code_executors/built_in_code_executor.js +0 -50
  396. package/dist/web/code_executors/code_execution_utils.js +0 -131
  397. package/dist/web/code_executors/code_executor_context.js +0 -174
  398. package/dist/web/code_executors/unsafe_local_code_executor.js +0 -221
  399. package/dist/web/common.js +0 -452
  400. package/dist/web/context/agent_controlled_context_compactor.js +0 -76
  401. package/dist/web/context/anchored_context_compactor.js +0 -120
  402. package/dist/web/context/base_context_compactor.js +0 -7
  403. package/dist/web/context/compaction_utils.js +0 -42
  404. package/dist/web/context/summarizers/base_summarizer.js +0 -7
  405. package/dist/web/context/summarizers/llm_summarizer.js +0 -91
  406. package/dist/web/context/token_based_context_compactor.js +0 -118
  407. package/dist/web/context/trajectory_thought_pruning_compactor.js +0 -47
  408. package/dist/web/context/truncating_context_compactor.js +0 -34
  409. package/dist/web/environment/base_environment.js +0 -71
  410. package/dist/web/environment/local_environment.js +0 -165
  411. package/dist/web/events/compacted_event.js +0 -51
  412. package/dist/web/events/event.js +0 -208
  413. package/dist/web/events/event_actions.js +0 -74
  414. package/dist/web/events/structured_events.js +0 -79
  415. package/dist/web/examples/base_example_provider.js +0 -32
  416. package/dist/web/examples/example.js +0 -7
  417. package/dist/web/examples/example_util.js +0 -83
  418. package/dist/web/features/feature_registry.js +0 -115
  419. package/dist/web/index.js +0 -57
  420. package/dist/web/integrations/agent_registry/agent_registry.js +0 -337
  421. package/dist/web/integrations/agent_registry/agent_registry_mcp_toolset.js +0 -120
  422. package/dist/web/integrations/agent_registry/helpers.js +0 -32
  423. package/dist/web/integrations/agent_registry/types.js +0 -20
  424. package/dist/web/memory/base_memory_service.js +0 -7
  425. package/dist/web/memory/in_memory_memory_service.js +0 -89
  426. package/dist/web/memory/memory_entry.js +0 -7
  427. package/dist/web/memory/vertex_ai_memory_bank_service.js +0 -496
  428. package/dist/web/models/apigee_llm.js +0 -227
  429. package/dist/web/models/base_llm.js +0 -78
  430. package/dist/web/models/base_llm_connection.js +0 -7
  431. package/dist/web/models/gemini_llm_connection.js +0 -183
  432. package/dist/web/models/google_llm.js +0 -396
  433. package/dist/web/models/interactions_utils.js +0 -745
  434. package/dist/web/models/llm_request.js +0 -57
  435. package/dist/web/models/llm_response.js +0 -48
  436. package/dist/web/models/registry.js +0 -100
  437. package/dist/web/models/routed_llm.js +0 -112
  438. package/dist/web/plugins/base_plugin.js +0 -305
  439. package/dist/web/plugins/global_instruction_plugin.js +0 -71
  440. package/dist/web/plugins/logging_plugin.js +0 -241
  441. package/dist/web/plugins/plugin_manager.js +0 -318
  442. package/dist/web/plugins/security_plugin.js +0 -148
  443. package/dist/web/runner/in_memory_runner.js +0 -50
  444. package/dist/web/runner/runner.js +0 -747
  445. package/dist/web/sessions/base_session_service.js +0 -123
  446. package/dist/web/sessions/database_session_service.js +0 -440
  447. package/dist/web/sessions/db/operations.js +0 -124
  448. package/dist/web/sessions/db/schema.js +0 -216
  449. package/dist/web/sessions/in_memory_session_service.js +0 -251
  450. package/dist/web/sessions/registry.js +0 -38
  451. package/dist/web/sessions/session.js +0 -23
  452. package/dist/web/sessions/state.js +0 -159
  453. package/dist/web/sessions/state_write_order.js +0 -74
  454. package/dist/web/sessions/vertex_ai_session_service.js +0 -546
  455. package/dist/web/skills/gcp_skill_registry.js +0 -80
  456. package/dist/web/skills/loader.js +0 -372
  457. package/dist/web/skills/prompt.js +0 -34
  458. package/dist/web/skills/skill.js +0 -67
  459. package/dist/web/skills/skill_registry.js +0 -7
  460. package/dist/web/telemetry/google_cloud.js +0 -99
  461. package/dist/web/telemetry/setup.js +0 -89
  462. package/dist/web/telemetry/tracing.js +0 -304
  463. package/dist/web/tools/agent_tool.js +0 -150
  464. package/dist/web/tools/base_tool.js +0 -116
  465. package/dist/web/tools/base_toolset.js +0 -62
  466. package/dist/web/tools/consolidate_context_tool.js +0 -55
  467. package/dist/web/tools/enterprise_web_search_tool.js +0 -60
  468. package/dist/web/tools/example_tool.js +0 -46
  469. package/dist/web/tools/exit_loop_tool.js +0 -47
  470. package/dist/web/tools/finish_task_tool.js +0 -92
  471. package/dist/web/tools/forwarding_artifact_service.js +0 -51
  472. package/dist/web/tools/function_tool.js +0 -151
  473. package/dist/web/tools/get_user_choice_tool.js +0 -27
  474. package/dist/web/tools/google_maps_grounding_tool.js +0 -59
  475. package/dist/web/tools/google_search_tool.js +0 -55
  476. package/dist/web/tools/load_artifacts_tool.js +0 -159
  477. package/dist/web/tools/load_memory_tool.js +0 -83
  478. package/dist/web/tools/long_running_tool.js +0 -58
  479. package/dist/web/tools/mcp/index.js +0 -11
  480. package/dist/web/tools/mcp/load_mcp_resource_tool.js +0 -111
  481. package/dist/web/tools/mcp/mcp_session_manager.js +0 -114
  482. package/dist/web/tools/mcp/mcp_tool.js +0 -47
  483. package/dist/web/tools/mcp/mcp_toolset.js +0 -144
  484. package/dist/web/tools/openapi_tool/auth/auth_helpers.js +0 -53
  485. package/dist/web/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +0 -62
  486. package/dist/web/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +0 -113
  487. package/dist/web/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +0 -242
  488. package/dist/web/tools/openapi_tool/openapi_spec_parser/operation_parser.js +0 -200
  489. package/dist/web/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +0 -98
  490. package/dist/web/tools/openapi_tool/openapi_toolset.js +0 -99
  491. package/dist/web/tools/openapi_tool/rest_api_tool.js +0 -247
  492. package/dist/web/tools/preload_memory_tool.js +0 -81
  493. package/dist/web/tools/request_input_tool.js +0 -29
  494. package/dist/web/tools/skill/list_skills_tool.js +0 -52
  495. package/dist/web/tools/skill/load_skill_resource_tool.js +0 -192
  496. package/dist/web/tools/skill/load_skill_tool.js +0 -96
  497. package/dist/web/tools/skill/run_skill_inline_script_tool.js +0 -191
  498. package/dist/web/tools/skill/run_skill_script_tool.js +0 -227
  499. package/dist/web/tools/skill/search_skills_tool.js +0 -84
  500. package/dist/web/tools/skill/skill_toolset.js +0 -185
  501. package/dist/web/tools/tool_confirmation.js +0 -43
  502. package/dist/web/tools/url_context_tool.js +0 -48
  503. package/dist/web/tools/vertex_ai_search_tool.js +0 -107
  504. package/dist/web/tools/vertex_rag_retrieval_tool.js +0 -40
  505. package/dist/web/utils/async_hooks_shim.js +0 -28
  506. package/dist/web/utils/async_queue.js +0 -88
  507. package/dist/web/utils/branch_trie.js +0 -16
  508. package/dist/web/utils/case_utils.js +0 -28
  509. package/dist/web/utils/client_labels.js +0 -70
  510. package/dist/web/utils/crypto_shim.js +0 -18
  511. package/dist/web/utils/deprecated.js +0 -40
  512. package/dist/web/utils/env_aware_utils.js +0 -115
  513. package/dist/web/utils/error_utils.js +0 -101
  514. package/dist/web/utils/experimental.js +0 -54
  515. package/dist/web/utils/failover_utils.js +0 -100
  516. package/dist/web/utils/file_extension_utils.js +0 -55
  517. package/dist/web/utils/file_utils.js +0 -108
  518. package/dist/web/utils/gemini_schema_util.js +0 -177
  519. package/dist/web/utils/genai_schema_to_json.js +0 -80
  520. package/dist/web/utils/live_connection_utils.js +0 -257
  521. package/dist/web/utils/logger.js +0 -140
  522. package/dist/web/utils/model_name.js +0 -75
  523. package/dist/web/utils/object_notation_utils.js +0 -54
  524. package/dist/web/utils/optional_peer.js +0 -38
  525. package/dist/web/utils/output_schema_utils.js +0 -18
  526. package/dist/web/utils/partial_copy.js +0 -26
  527. package/dist/web/utils/redact_uri.js +0 -39
  528. package/dist/web/utils/schema.js +0 -167
  529. package/dist/web/utils/simple_zod_to_json.js +0 -134
  530. package/dist/web/utils/streaming_utils.js +0 -438
  531. package/dist/web/utils/task.js +0 -38
  532. package/dist/web/utils/variant_utils.js +0 -23
  533. package/dist/web/utils/vertex_ai_utils.js +0 -27
  534. package/dist/web/version.js +0 -11
  535. package/dist/web/workflow/base_node.js +0 -215
  536. package/dist/web/workflow/branch_path.js +0 -77
  537. package/dist/web/workflow/dynamic_node_scheduler.js +0 -202
  538. package/dist/web/workflow/errors.js +0 -140
  539. package/dist/web/workflow/graph.js +0 -127
  540. package/dist/web/workflow/index.js +0 -80
  541. package/dist/web/workflow/node.js +0 -87
  542. package/dist/web/workflow/node_builders.js +0 -40
  543. package/dist/web/workflow/node_context.js +0 -236
  544. package/dist/web/workflow/node_error_event.js +0 -86
  545. package/dist/web/workflow/node_runner.js +0 -481
  546. package/dist/web/workflow/node_state.js +0 -43
  547. package/dist/web/workflow/node_status.js +0 -20
  548. package/dist/web/workflow/nodes/function_node.js +0 -221
  549. package/dist/web/workflow/nodes/join_node.js +0 -47
  550. package/dist/web/workflow/nodes/node_tool.js +0 -131
  551. package/dist/web/workflow/nodes/parallel_worker.js +0 -120
  552. package/dist/web/workflow/nodes/tool_node.js +0 -126
  553. package/dist/web/workflow/request_input.js +0 -36
  554. package/dist/web/workflow/retry_config.js +0 -43
  555. package/dist/web/workflow/run_llm_agent_as_node.js +0 -266
  556. package/dist/web/workflow/run_node_as_invocation.js +0 -170
  557. package/dist/web/workflow/schedule_dynamic_node.js +0 -26
  558. package/dist/web/workflow/trigger.js +0 -7
  559. package/dist/web/workflow/utils/graph_parser.js +0 -188
  560. package/dist/web/workflow/utils/graph_validation.js +0 -189
  561. package/dist/web/workflow/utils/hitl_utils.js +0 -239
  562. package/dist/web/workflow/utils/rehydration_utils.js +0 -342
  563. package/dist/web/workflow/utils/retry_utils.js +0 -82
  564. package/dist/web/workflow/utils/workflow_graph_utils.js +0 -115
  565. package/dist/web/workflow/workflow.js +0 -529
  566. /package/dist/{web/artifacts/session_artifact_service.js → esm/tools/resume_inputs.js} +0 -0
@@ -12,7 +12,10 @@ import { createPartFromText, Modality } from "@google/genai";
12
12
  import { context, trace } from "@opentelemetry/api";
13
13
  import { isBaseAgent } from "../agents/base_agent.js";
14
14
  import { reservedFunctionCallName } from "../agents/framework_function_calls.js";
15
- import { findMatchingFunctionCall } from "../agents/functions.js";
15
+ import {
16
+ findMatchingFunctionCall,
17
+ getConflictingFunctionResponseAuthors
18
+ } from "../agents/functions.js";
16
19
  import {
17
20
  InvocationContext,
18
21
  newInvocationContextId,
@@ -21,6 +24,9 @@ import {
21
24
  import { isLlmAgent } from "../agents/llm_agent.js";
22
25
  import { createRunConfig } from "../agents/run_config.js";
23
26
  import { ScopedArtifactService } from "../artifacts/scoped_artifact_service.js";
27
+ import {
28
+ isSessionArtifactService
29
+ } from "../artifacts/session_artifact_service.js";
24
30
  import {
25
31
  BuiltInCodeExecutor,
26
32
  isBuiltInCodeExecutor
@@ -35,11 +41,12 @@ import {
35
41
  import { isBaseToolset } from "../tools/base_toolset.js";
36
42
  import { logger } from "../utils/logger.js";
37
43
  import { isGemini2OrAbove } from "../utils/model_name.js";
44
+ import { stringifyWithRedactedInlineData } from "../utils/redact_inline_data.js";
38
45
  import {
39
46
  asRunnableRoot,
40
47
  runNodeAsInvocation
41
48
  } from "../workflow/run_node_as_invocation.js";
42
- const RUNNER_SIGNATURE_SYMBOL = Symbol.for("google.adk.runner");
49
+ const RUNNER_SIGNATURE_SYMBOL = /* @__PURE__ */ Symbol.for("google.adk.runner");
43
50
  function isRunner(obj) {
44
51
  return typeof obj === "object" && obj !== null && RUNNER_SIGNATURE_SYMBOL in obj && obj[RUNNER_SIGNATURE_SYMBOL] === true;
45
52
  }
@@ -146,7 +153,9 @@ const _Runner = class _Runner {
146
153
  `Session lookup failed: appName must be provided in runner constructor (or via app.name)`
147
154
  );
148
155
  }
149
- throw new Error(`Session not found: ${sessionId}`);
156
+ throw new Error(
157
+ `Session not found: ${sessionId} (appName=${this.appName}, userId=${userId})`
158
+ );
150
159
  }
151
160
  if (runConfig.supportCfc && isLlmAgent(this.agent)) {
152
161
  const modelName = this.agent.canonicalModel.model;
@@ -160,7 +169,7 @@ const _Runner = class _Runner {
160
169
  }
161
170
  }
162
171
  const invocationContext = new InvocationContext({
163
- artifactService: this.artifactService ? new ScopedArtifactService(
172
+ artifactService: this.artifactService ? isSessionArtifactService(this.artifactService) ? this.artifactService : new ScopedArtifactService(
164
173
  this.artifactService,
165
174
  this.appName,
166
175
  userId,
@@ -174,6 +183,7 @@ const _Runner = class _Runner {
174
183
  session,
175
184
  userContent: newMessage,
176
185
  runConfig,
186
+ a2aMetadata: runConfig.a2aMetadata,
177
187
  pluginManager: this.pluginManager,
178
188
  abortSignal: params.abortSignal
179
189
  });
@@ -193,9 +203,8 @@ const _Runner = class _Runner {
193
203
  }
194
204
  if (runConfig.saveInputBlobsAsArtifacts) {
195
205
  newMessage = await this.saveArtifacts(
206
+ invocationContext.artifactService,
196
207
  invocationContext.invocationId,
197
- session.userId,
198
- session.id,
199
208
  newMessage
200
209
  );
201
210
  if ((_d = params.abortSignal) == null ? void 0 : _d.aborted) {
@@ -308,21 +317,15 @@ const _Runner = class _Runner {
308
317
  * Saves artifacts from the message parts and replaces the inline data with
309
318
  * a file name placeholder and optional file reference.
310
319
  *
320
+ * @param artifactService The session-scoped artifact service to save to.
311
321
  * @param invocationId The current invocation ID.
312
- * @param userId The user ID of the session.
313
- * @param sessionId The session ID of the session.
314
322
  * @param message The message containing parts to process.
315
323
  */
316
- async saveArtifacts(invocationId, userId, sessionId, message) {
324
+ async saveArtifacts(artifactService, invocationId, message) {
317
325
  var _a2;
318
- if (!this.artifactService || !((_a2 = message.parts) == null ? void 0 : _a2.length)) {
326
+ if (!artifactService || !((_a2 = message.parts) == null ? void 0 : _a2.length)) {
319
327
  return message;
320
328
  }
321
- const sessionKey = {
322
- appName: this.appName,
323
- userId,
324
- sessionId
325
- };
326
329
  const newParts = [];
327
330
  let modified = false;
328
331
  for (let i = 0; i < message.parts.length; i++) {
@@ -334,20 +337,16 @@ const _Runner = class _Runner {
334
337
  try {
335
338
  const inlineData = part.inlineData;
336
339
  const fileName = inlineData.displayName || `artifact_${invocationId}_${i}`;
337
- const version = await this.artifactService.saveArtifact({
338
- ...sessionKey,
340
+ const version = await artifactService.saveArtifact({
339
341
  filename: fileName,
340
342
  artifact: part
341
343
  });
342
344
  newParts.push(createPartFromText(`[Uploaded Artifact: "${fileName}"]`));
343
345
  try {
344
- const artifactVersion = await this.artifactService.getArtifactVersion(
345
- {
346
- ...sessionKey,
347
- filename: fileName,
348
- version
349
- }
350
- );
346
+ const artifactVersion = await artifactService.getArtifactVersion({
347
+ filename: fileName,
348
+ version
349
+ });
351
350
  if ((artifactVersion == null ? void 0 : artifactVersion.canonicalUri) && /^(gs|https?):/i.test(artifactVersion.canonicalUri)) {
352
351
  newParts.push({
353
352
  fileData: {
@@ -397,7 +396,7 @@ const _Runner = class _Runner {
397
396
  * Whether the agent to run can transfer to any other agent in the agent tree.
398
397
  *
399
398
  * @param agentToRun The agent to check for transferability.
400
- * @returns True if the agent can transfer, False otherwise.
399
+ * @returns True if the agent can transfer, false otherwise.
401
400
  */
402
401
  isRoutableLlmAgent(agentToRun) {
403
402
  return isRoutableLlmAgent(agentToRun);
@@ -460,7 +459,7 @@ const _Runner = class _Runner {
460
459
  return;
461
460
  }
462
461
  const invocationContext = new InvocationContext({
463
- artifactService: this.artifactService ? new ScopedArtifactService(
462
+ artifactService: this.artifactService ? isSessionArtifactService(this.artifactService) ? this.artifactService : new ScopedArtifactService(
464
463
  this.artifactService,
465
464
  this.appName,
466
465
  params.userId,
@@ -473,6 +472,7 @@ const _Runner = class _Runner {
473
472
  agent,
474
473
  session,
475
474
  runConfig,
475
+ a2aMetadata: runConfig.a2aMetadata,
476
476
  pluginManager: this.pluginManager,
477
477
  liveRequestQueue: params.liveRequestQueue,
478
478
  abortSignal: params.abortSignal,
@@ -550,6 +550,14 @@ function determineAgentForResumption(session, rootAgent, resumabilityConfig) {
550
550
  const event = findEventByLastFunctionResponseId(session.events);
551
551
  const isResumable = Boolean(resumabilityConfig == null ? void 0 : resumabilityConfig.isResumable);
552
552
  if (event && event.author && isResumable) {
553
+ const conflictingAuthors = getConflictingFunctionResponseAuthors(
554
+ session.events
555
+ );
556
+ if (conflictingAuthors) {
557
+ throw new Error(
558
+ `Function responses in the last event resolve to function calls from more than one agent (at least "${conflictingAuthors[0]}" and "${conflictingAuthors[1]}"); cannot determine a single agent to resume.`
559
+ );
560
+ }
553
561
  const resumedAgent = rootAgent.findAgent(event.author);
554
562
  if (resumedAgent) {
555
563
  return resumedAgent;
@@ -561,7 +569,7 @@ function determineAgentForResumption(session, rootAgent, resumabilityConfig) {
561
569
  }
562
570
  }
563
571
  for (let i = session.events.length - 1; i >= 0; i--) {
564
- logger.debug("event:", JSON.stringify(session.events[i]));
572
+ logger.debug("event:", stringifyWithRedactedInlineData(session.events[i]));
565
573
  const event2 = session.events[i];
566
574
  if (event2.author === "user" || !event2.author) {
567
575
  continue;
@@ -1,36 +1,72 @@
1
1
  import {createRequire as topLevelCreateRequire} from 'module';
2
2
  const require = topLevelCreateRequire(import.meta.url);
3
+ var __create = Object.create;
3
4
  var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
4
9
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
19
+ // If the importer is in node compatibility mode or this is not an ESM
20
+ // file that has been converted to a CommonJS file using a Babel-
21
+ // compatible transform (i.e. "__esModule" has not been set), then set
22
+ // "default" to the CommonJS "module.exports" for node compatibility.
23
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
24
+ mod
25
+ ));
5
26
  /**
6
27
  * @license
7
28
  * Copyright 2026 Google LLC
8
29
  * SPDX-License-Identifier: Apache-2.0
9
30
  */
10
- import {
11
- LockMode,
12
- MikroORM
13
- } from "@mikro-orm/core";
14
31
  import { randomUUID } from "../utils/env_aware_utils.js";
15
32
  import {
16
33
  BaseSessionService,
17
34
  mergeStates,
18
35
  trimTempDeltaState
19
36
  } from "./base_session_service.js";
20
- import {
21
- ensureDatabaseCreated,
22
- getConnectionOptionsFromUri,
23
- validateDatabaseSchemaVersion
24
- } from "./db/operations.js";
25
- import {
26
- ENTITIES,
27
- StorageAppState,
28
- StorageEvent,
29
- StorageSession,
30
- StorageUserState
31
- } from "./db/schema.js";
32
37
  import { createSession } from "./session.js";
33
38
  import { State } from "./state.js";
39
+ let MikroORM;
40
+ let LockMode;
41
+ let ENTITIES;
42
+ let StorageAppState;
43
+ let StorageEvent;
44
+ let StorageSession;
45
+ let StorageUserState;
46
+ let ensureDatabaseCreated;
47
+ let getConnectionOptionsFromUri;
48
+ let validateDatabaseSchemaVersion;
49
+ let mikroOrmLoad;
50
+ function loadMikroOrm() {
51
+ mikroOrmLoad != null ? mikroOrmLoad : mikroOrmLoad = importMikroOrm();
52
+ return mikroOrmLoad;
53
+ }
54
+ __name(loadMikroOrm, "loadMikroOrm");
55
+ async function importMikroOrm() {
56
+ const [core, schema, operations] = await Promise.all([
57
+ Promise.resolve().then(() => __toESM(require("@mikro-orm/core"), 1)),
58
+ Promise.resolve().then(() => __toESM(require("./db/schema.js"), 1)),
59
+ Promise.resolve().then(() => __toESM(require("./db/operations.js"), 1))
60
+ ]);
61
+ ({ MikroORM, LockMode } = core);
62
+ ({ ENTITIES, StorageAppState, StorageEvent, StorageSession, StorageUserState } = schema);
63
+ ({
64
+ ensureDatabaseCreated,
65
+ getConnectionOptionsFromUri,
66
+ validateDatabaseSchemaVersion
67
+ } = operations);
68
+ }
69
+ __name(importMikroOrm, "importMikroOrm");
34
70
  function isDatabaseConnectionString(uri) {
35
71
  if (!uri) {
36
72
  return false;
@@ -48,20 +84,17 @@ const _DatabaseSessionService = class _DatabaseSessionService extends BaseSessio
48
84
  if (!connectionStringOrOptions.driver) {
49
85
  throw new Error("Driver is required when passing options object.");
50
86
  }
51
- this.options = {
52
- ...connectionStringOrOptions,
53
- entities: ENTITIES
54
- };
87
+ this.options = connectionStringOrOptions;
55
88
  }
56
89
  }
57
90
  async init() {
58
91
  if (this.initialized) {
59
92
  return;
60
93
  }
61
- if (this.connectionString && (!this.options || !this.options.driver)) {
62
- this.options = await getConnectionOptionsFromUri(this.connectionString);
63
- }
64
- this.orm = await MikroORM.init(this.options);
94
+ await loadMikroOrm();
95
+ const options = this.connectionString ? await getConnectionOptionsFromUri(this.connectionString) : { ...this.options, entities: ENTITIES };
96
+ this.options = options;
97
+ this.orm = await MikroORM.init(options);
65
98
  await ensureDatabaseCreated(this.orm);
66
99
  await validateDatabaseSchemaVersion(this.orm);
67
100
  this.initialized = true;
@@ -396,8 +429,8 @@ const _DatabaseSessionService = class _DatabaseSessionService extends BaseSessio
396
429
  });
397
430
  txEm.persist(newStorageEvent);
398
431
  }
399
- await txEm.commit();
400
432
  storageSession.updateTime = new Date(event.timestamp);
433
+ txEm.persist([appStateModel, userStateModel, storageSession]);
401
434
  const newMergedState = mergeStates(
402
435
  appStateModel.state,
403
436
  userStateModel.state,
@@ -28,6 +28,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  * Copyright 2026 Google LLC
29
29
  * SPDX-License-Identifier: Apache-2.0
30
30
  */
31
+ import { logger } from "../../utils/logger.js";
31
32
  import { loadOptionalPeer } from "../../utils/optional_peer.js";
32
33
  import { redactUriPassword } from "../../utils/redact_uri.js";
33
34
  import {
@@ -43,58 +44,264 @@ function driverPeer(packageName, scheme) {
43
44
  };
44
45
  }
45
46
  __name(driverPeer, "driverPeer");
47
+ function safeDecode(value) {
48
+ try {
49
+ return decodeURIComponent(value);
50
+ } catch {
51
+ return void 0;
52
+ }
53
+ }
54
+ __name(safeDecode, "safeDecode");
55
+ function decodeOrRaw(raw) {
56
+ var _a;
57
+ return ((_a = safeDecode(raw)) != null ? _a : raw) || void 0;
58
+ }
59
+ __name(decodeOrRaw, "decodeOrRaw");
60
+ function remainingParams(params, exclude) {
61
+ const result = {};
62
+ for (const [key, value] of params.entries()) {
63
+ if (!exclude.includes(key)) {
64
+ result[key] = value;
65
+ }
66
+ }
67
+ return result;
68
+ }
69
+ __name(remainingParams, "remainingParams");
70
+ const RESERVED_OPTION_KEYS = [
71
+ "host",
72
+ "schema",
73
+ "socketPath",
74
+ "driver",
75
+ "entities",
76
+ "user",
77
+ "password",
78
+ "dbName",
79
+ "port",
80
+ "clientUrl",
81
+ "driverOptions"
82
+ ];
83
+ function parseSocketUri(uri) {
84
+ var _a, _b;
85
+ const schemeEnd = uri.indexOf("://");
86
+ if (schemeEnd === -1) {
87
+ return null;
88
+ }
89
+ const afterScheme = uri.slice(schemeEnd + 3);
90
+ const authorityEnd = afterScheme.search(/[/?#]/);
91
+ const authorityRegion = authorityEnd === -1 ? afterScheme : afterScheme.slice(0, authorityEnd);
92
+ const rest = authorityEnd === -1 ? "" : afterScheme.slice(authorityEnd);
93
+ const atIndex = authorityRegion.lastIndexOf("@");
94
+ const rawUserinfo = atIndex === -1 ? void 0 : authorityRegion.slice(0, atIndex);
95
+ const rawAuthority = atIndex === -1 ? authorityRegion : authorityRegion.slice(atIndex + 1);
96
+ const restMatch = /^(\/[^?#]*)?(?:\?([^#]*))?/.exec(rest);
97
+ const rawPath = restMatch == null ? void 0 : restMatch[1];
98
+ const rawQuery = restMatch == null ? void 0 : restMatch[2];
99
+ const params = new URLSearchParams(rawQuery != null ? rawQuery : "");
100
+ const queryHost = params.get("host");
101
+ const decodedAuthority = (_a = safeDecode(rawAuthority)) != null ? _a : "";
102
+ let socketPath;
103
+ let dbNameOverride;
104
+ let matchedBareSocket = false;
105
+ if (queryHost == null ? void 0 : queryHost.startsWith("/")) {
106
+ socketPath = queryHost;
107
+ if (decodedAuthority && !decodedAuthority.startsWith("/")) {
108
+ logger.warn(
109
+ `Connection URI names host "${decodedAuthority}" but the ?host= parameter overrides it with the Unix socket "${queryHost}"; connecting to the socket instead. URI: ${redactUriPassword(uri)}`
110
+ );
111
+ }
112
+ } else if (decodedAuthority.startsWith("/")) {
113
+ socketPath = decodedAuthority;
114
+ } else if (!decodedAuthority && rawPath) {
115
+ const segments = rawPath.split("/");
116
+ const colonIndex = segments.findIndex((segment) => segment.includes(":"));
117
+ if (colonIndex !== -1) {
118
+ socketPath = segments.slice(0, colonIndex + 1).join("/");
119
+ dbNameOverride = segments[colonIndex + 1];
120
+ matchedBareSocket = true;
121
+ }
122
+ }
123
+ if (!socketPath) {
124
+ return null;
125
+ }
126
+ let user;
127
+ let password;
128
+ if (rawUserinfo) {
129
+ const colonIndex = rawUserinfo.indexOf(":");
130
+ const rawUser = colonIndex === -1 ? rawUserinfo : rawUserinfo.slice(0, colonIndex);
131
+ const rawPassword = colonIndex === -1 ? void 0 : rawUserinfo.slice(colonIndex + 1);
132
+ user = rawUser ? decodeOrRaw(rawUser) : void 0;
133
+ password = rawPassword ? decodeOrRaw(rawPassword) : void 0;
134
+ }
135
+ return {
136
+ socketPath,
137
+ user,
138
+ password,
139
+ dbName: matchedBareSocket ? dbNameOverride ? decodeOrRaw(dbNameOverride) : void 0 : rawPath ? decodeOrRaw(rawPath.slice(1)) : void 0,
140
+ schema: (_b = params.get("schema")) != null ? _b : void 0,
141
+ extraParams: remainingParams(params, RESERVED_OPTION_KEYS)
142
+ };
143
+ }
144
+ __name(parseSocketUri, "parseSocketUri");
145
+ function buildPostgresOptions(uri, driver) {
146
+ let parsedUrl;
147
+ try {
148
+ parsedUrl = new URL(uri);
149
+ } catch {
150
+ parsedUrl = null;
151
+ }
152
+ if (parsedUrl) {
153
+ const queryHost = parsedUrl.searchParams.get("host");
154
+ const decodedHostname = parsedUrl.hostname ? safeDecode(parsedUrl.hostname) : void 0;
155
+ const socketPath = (queryHost == null ? void 0 : queryHost.startsWith("/")) ? queryHost : (decodedHostname == null ? void 0 : decodedHostname.startsWith("/")) ? decodedHostname : void 0;
156
+ if (socketPath) {
157
+ if ((queryHost == null ? void 0 : queryHost.startsWith("/")) && decodedHostname && !decodedHostname.startsWith("/")) {
158
+ logger.warn(
159
+ `Connection URI names host "${decodedHostname}" but the ?host= parameter overrides it with the Unix socket "${queryHost}"; connecting to the socket instead. URI: ${redactUriPassword(uri)}`
160
+ );
161
+ }
162
+ const schema = parsedUrl.searchParams.get("schema");
163
+ const extraParams = remainingParams(
164
+ parsedUrl.searchParams,
165
+ RESERVED_OPTION_KEYS
166
+ );
167
+ return {
168
+ entities: ENTITIES,
169
+ driver,
170
+ host: socketPath,
171
+ user: parsedUrl.username ? decodeOrRaw(parsedUrl.username) : void 0,
172
+ password: parsedUrl.password ? decodeOrRaw(parsedUrl.password) : void 0,
173
+ dbName: decodeOrRaw(parsedUrl.pathname.slice(1)),
174
+ ...parsedUrl.port ? { port: Number(parsedUrl.port) } : {},
175
+ ...schema ? { schema } : {},
176
+ driverOptions: extraParams
177
+ };
178
+ }
179
+ return { entities: ENTITIES, clientUrl: uri, driver };
180
+ }
181
+ const socket = parseSocketUri(uri);
182
+ if (socket) {
183
+ return {
184
+ entities: ENTITIES,
185
+ driver,
186
+ host: socket.socketPath,
187
+ user: socket.user,
188
+ password: socket.password,
189
+ dbName: socket.dbName,
190
+ ...socket.schema ? { schema: socket.schema } : {},
191
+ driverOptions: socket.extraParams
192
+ };
193
+ }
194
+ throw new Error(
195
+ `Unrecognized postgres connection URI: ${redactUriPassword(uri)}`
196
+ );
197
+ }
198
+ __name(buildPostgresOptions, "buildPostgresOptions");
199
+ function buildMySqlFamilyOptions(uri, driver) {
200
+ let parsedUrl = null;
201
+ try {
202
+ parsedUrl = new URL(uri);
203
+ } catch {
204
+ }
205
+ if (parsedUrl) {
206
+ const queryHost = parsedUrl.searchParams.get("host");
207
+ const decodedHostname = parsedUrl.hostname ? safeDecode(parsedUrl.hostname) : void 0;
208
+ const socketPath = (queryHost == null ? void 0 : queryHost.startsWith("/")) ? queryHost : (decodedHostname == null ? void 0 : decodedHostname.startsWith("/")) ? decodedHostname : void 0;
209
+ if (socketPath) {
210
+ if ((queryHost == null ? void 0 : queryHost.startsWith("/")) && decodedHostname && !decodedHostname.startsWith("/")) {
211
+ logger.warn(
212
+ `Connection URI names host "${decodedHostname}" but the ?host= parameter overrides it with the Unix socket "${queryHost}"; connecting to the socket instead. URI: ${redactUriPassword(uri)}`
213
+ );
214
+ }
215
+ const schema = parsedUrl.searchParams.get("schema");
216
+ const extraParams = remainingParams(
217
+ parsedUrl.searchParams,
218
+ RESERVED_OPTION_KEYS
219
+ );
220
+ return {
221
+ entities: ENTITIES,
222
+ driver,
223
+ user: parsedUrl.username ? decodeOrRaw(parsedUrl.username) : void 0,
224
+ password: parsedUrl.password ? decodeOrRaw(parsedUrl.password) : void 0,
225
+ dbName: decodeOrRaw(parsedUrl.pathname.slice(1)),
226
+ driverOptions: {
227
+ socketPath,
228
+ ...schema ? { schema } : {},
229
+ ...extraParams
230
+ }
231
+ };
232
+ }
233
+ return { entities: ENTITIES, clientUrl: uri, driver };
234
+ }
235
+ const socket = parseSocketUri(uri);
236
+ if (socket) {
237
+ return {
238
+ entities: ENTITIES,
239
+ driver,
240
+ user: socket.user,
241
+ password: socket.password,
242
+ dbName: socket.dbName,
243
+ driverOptions: {
244
+ socketPath: socket.socketPath,
245
+ ...socket.schema ? { schema: socket.schema } : {},
246
+ ...socket.extraParams
247
+ }
248
+ };
249
+ }
250
+ throw new Error(
251
+ `Unrecognized MySQL/MariaDB connection URI: ${redactUriPassword(uri)}`
252
+ );
253
+ }
254
+ __name(buildMySqlFamilyOptions, "buildMySqlFamilyOptions");
46
255
  async function getConnectionOptionsFromUri(uri) {
47
- let driver;
48
256
  if (uri.startsWith("postgres://") || uri.startsWith("postgresql://")) {
49
257
  const { PostgreSqlDriver } = await loadOptionalPeer(
50
258
  driverPeer("@mikro-orm/postgresql", "postgres"),
51
259
  () => Promise.resolve().then(() => __toESM(require("@mikro-orm/postgresql"), 1))
52
260
  );
53
- driver = PostgreSqlDriver;
54
- } else if (uri.startsWith("mysql://")) {
261
+ return buildPostgresOptions(uri, PostgreSqlDriver);
262
+ }
263
+ if (uri.startsWith("mysql://")) {
55
264
  const { MySqlDriver } = await loadOptionalPeer(
56
265
  driverPeer("@mikro-orm/mysql", "mysql"),
57
266
  () => Promise.resolve().then(() => __toESM(require("@mikro-orm/mysql"), 1))
58
267
  );
59
- driver = MySqlDriver;
60
- } else if (uri.startsWith("mariadb://")) {
268
+ return buildMySqlFamilyOptions(uri, MySqlDriver);
269
+ }
270
+ if (uri.startsWith("mariadb://")) {
61
271
  const { MariaDbDriver } = await loadOptionalPeer(
62
272
  driverPeer("@mikro-orm/mariadb", "mariadb"),
63
273
  () => Promise.resolve().then(() => __toESM(require("@mikro-orm/mariadb"), 1))
64
274
  );
65
- driver = MariaDbDriver;
66
- } else if (uri.startsWith("sqlite://")) {
275
+ return buildMySqlFamilyOptions(uri, MariaDbDriver);
276
+ }
277
+ if (uri.startsWith("sqlite://")) {
67
278
  const { SqliteDriver } = await loadOptionalPeer(
68
279
  driverPeer("@mikro-orm/sqlite", "sqlite"),
69
280
  () => Promise.resolve().then(() => __toESM(require("@mikro-orm/sqlite"), 1))
70
281
  );
71
- driver = SqliteDriver;
72
- } else if (uri.startsWith("mssql://")) {
282
+ return {
283
+ entities: ENTITIES,
284
+ dbName: uri === "sqlite://:memory:" ? ":memory:" : uri.substring("sqlite://".length),
285
+ driver: SqliteDriver
286
+ };
287
+ }
288
+ if (uri.startsWith("mssql://")) {
73
289
  const { MsSqlDriver } = await loadOptionalPeer(
74
290
  driverPeer("@mikro-orm/mssql", "mssql"),
75
291
  () => Promise.resolve().then(() => __toESM(require("@mikro-orm/mssql"), 1))
76
292
  );
77
- driver = MsSqlDriver;
78
- } else {
79
- throw new Error(`Unsupported database URI: ${redactUriPassword(uri)}`);
80
- }
81
- if (uri.startsWith("sqlite://")) {
82
293
  return {
83
294
  entities: ENTITIES,
84
- dbName: uri === "sqlite://:memory:" ? ":memory:" : uri.substring("sqlite://".length),
85
- driver
295
+ clientUrl: uri,
296
+ driver: MsSqlDriver
86
297
  };
87
298
  }
88
- return {
89
- entities: ENTITIES,
90
- clientUrl: uri,
91
- driver
92
- };
299
+ throw new Error(`Unsupported database URI: ${redactUriPassword(uri)}`);
93
300
  }
94
301
  __name(getConnectionOptionsFromUri, "getConnectionOptionsFromUri");
95
302
  async function ensureDatabaseCreated(orm) {
96
303
  await orm.schema.ensureDatabase();
97
- await orm.schema.updateSchema({ safe: true });
304
+ await orm.schema.update({ safe: true });
98
305
  }
99
306
  __name(ensureDatabaseCreated, "ensureDatabaseCreated");
100
307
  async function validateDatabaseSchemaVersion(orm) {