@google/adk 1.1.0 → 1.3.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 (300) hide show
  1. package/dist/cjs/agents/base_agent.js +19 -1
  2. package/dist/cjs/agents/functions.js +4 -0
  3. package/dist/cjs/agents/instructions.js +81 -33
  4. package/dist/cjs/agents/invocation_context.js +0 -1
  5. package/dist/cjs/agents/llm_agent.js +52 -5
  6. package/dist/cjs/agents/processors/agent_transfer_llm_request_processor.js +7 -0
  7. package/dist/cjs/agents/processors/basic_llm_request_processor.js +8 -1
  8. package/dist/cjs/agents/processors/content_processor_utils.js +37 -24
  9. package/dist/cjs/agents/processors/content_request_processor.js +7 -0
  10. package/dist/cjs/agents/processors/context_compactor_request_processor.js +12 -0
  11. package/dist/cjs/agents/processors/identity_llm_request_processor.js +7 -0
  12. package/dist/cjs/agents/processors/instructions_llm_request_processor.js +5 -0
  13. package/dist/cjs/agents/processors/request_confirmation_llm_request_processor.js +9 -1
  14. package/dist/cjs/agents/processors/tool_filter_request_processor.js +7 -1
  15. package/dist/cjs/auth/auth_preprocessor.js +12 -10
  16. package/dist/cjs/auth/oauth2/oauth2_discovery.js +26 -2
  17. package/dist/cjs/code_executors/agent_engine_sandbox_code_executor.js +305 -0
  18. package/dist/cjs/code_executors/code_execution_utils.js +1 -1
  19. package/dist/cjs/code_executors/code_executor_context.js +7 -7
  20. package/dist/cjs/common.js +50 -0
  21. package/dist/cjs/context/summarizers/llm_summarizer.js +11 -0
  22. package/dist/cjs/context/token_based_context_compactor.js +1 -1
  23. package/dist/cjs/events/event.js +4 -2
  24. package/dist/cjs/index.js +14 -0
  25. package/dist/cjs/integrations/agent_registry/agent_registry.js +362 -0
  26. package/dist/cjs/integrations/agent_registry/agent_registry_mcp_toolset.js +122 -0
  27. package/dist/cjs/integrations/agent_registry/helpers.js +57 -0
  28. package/dist/cjs/integrations/agent_registry/types.js +50 -0
  29. package/dist/cjs/memory/vertex_ai_memory_bank_service.js +496 -0
  30. package/dist/cjs/models/gemini_llm_connection.js +62 -19
  31. package/dist/cjs/models/google_llm.js +26 -8
  32. package/dist/cjs/plugins/security_plugin.js +16 -0
  33. package/dist/cjs/runner/in_memory_runner.js +10 -5
  34. package/dist/cjs/runner/runner.js +32 -2
  35. package/dist/cjs/sessions/base_session_service.js +13 -2
  36. package/dist/cjs/sessions/database_session_service.js +51 -5
  37. package/dist/cjs/sessions/db/schema.js +45 -10
  38. package/dist/cjs/sessions/in_memory_session_service.js +72 -15
  39. package/dist/cjs/sessions/registry.js +4 -0
  40. package/dist/cjs/sessions/vertex_ai_session_service.js +429 -0
  41. package/dist/cjs/skills/gcp_skill_registry.js +104 -0
  42. package/dist/cjs/skills/loader.js +65 -0
  43. package/dist/cjs/skills/skill_registry.js +27 -0
  44. package/dist/cjs/tools/agent_tool.js +10 -5
  45. package/dist/cjs/tools/exit_loop_tool.js +9 -0
  46. package/dist/cjs/tools/function_tool.js +7 -2
  47. package/dist/cjs/tools/google_maps_grounding_tool.js +80 -0
  48. package/dist/cjs/tools/long_running_tool.js +2 -1
  49. package/dist/cjs/tools/mcp/mcp_session_manager.js +11 -0
  50. package/dist/cjs/tools/mcp/mcp_tool.js +10 -6
  51. package/dist/cjs/tools/mcp/mcp_toolset.js +26 -3
  52. package/dist/cjs/tools/openapi_tool/auth/auth_helpers.js +78 -0
  53. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +84 -0
  54. package/dist/cjs/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +133 -0
  55. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +232 -0
  56. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/operation_parser.js +224 -0
  57. package/dist/cjs/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +127 -0
  58. package/dist/cjs/tools/openapi_tool/openapi_toolset.js +133 -0
  59. package/dist/cjs/tools/openapi_tool/rest_api_tool.js +256 -0
  60. package/dist/cjs/tools/skill/load_skill_resource_tool.js +27 -28
  61. package/dist/cjs/tools/skill/load_skill_tool.js +12 -1
  62. package/dist/cjs/tools/skill/run_skill_script_tool.js +12 -1
  63. package/dist/cjs/tools/skill/search_skills_tool.js +108 -0
  64. package/dist/cjs/tools/skill/skill_toolset.js +40 -5
  65. package/dist/cjs/tools/vertex_rag_retrieval_tool.js +64 -0
  66. package/dist/cjs/utils/async_queue.js +88 -0
  67. package/dist/cjs/utils/case_utils.js +53 -0
  68. package/dist/cjs/utils/env_aware_utils.js +4 -0
  69. package/dist/cjs/utils/file_utils.js +28 -0
  70. package/dist/cjs/utils/gemini_schema_util.js +18 -0
  71. package/dist/cjs/utils/live_connection_utils.js +284 -0
  72. package/dist/cjs/utils/model_name.js +9 -0
  73. package/dist/cjs/utils/partial_copy.js +51 -0
  74. package/dist/cjs/utils/streaming_utils.js +169 -122
  75. package/dist/cjs/utils/vertex_ai_utils.js +50 -0
  76. package/dist/cjs/version.js +1 -1
  77. package/dist/esm/agents/base_agent.js +19 -1
  78. package/dist/esm/agents/functions.js +4 -0
  79. package/dist/esm/agents/instructions.js +81 -33
  80. package/dist/esm/agents/invocation_context.js +0 -1
  81. package/dist/esm/agents/llm_agent.js +53 -5
  82. package/dist/esm/agents/processors/agent_transfer_llm_request_processor.js +7 -0
  83. package/dist/esm/agents/processors/basic_llm_request_processor.js +8 -1
  84. package/dist/esm/agents/processors/content_processor_utils.js +35 -23
  85. package/dist/esm/agents/processors/content_request_processor.js +7 -0
  86. package/dist/esm/agents/processors/context_compactor_request_processor.js +12 -0
  87. package/dist/esm/agents/processors/identity_llm_request_processor.js +7 -0
  88. package/dist/esm/agents/processors/instructions_llm_request_processor.js +5 -0
  89. package/dist/esm/agents/processors/request_confirmation_llm_request_processor.js +9 -1
  90. package/dist/esm/agents/processors/tool_filter_request_processor.js +7 -1
  91. package/dist/esm/auth/auth_preprocessor.js +12 -10
  92. package/dist/esm/auth/oauth2/oauth2_discovery.js +26 -2
  93. package/dist/esm/code_executors/agent_engine_sandbox_code_executor.js +281 -0
  94. package/dist/esm/code_executors/code_execution_utils.js +1 -1
  95. package/dist/esm/code_executors/code_executor_context.js +7 -7
  96. package/dist/esm/common.js +43 -1
  97. package/dist/esm/context/summarizers/llm_summarizer.js +11 -0
  98. package/dist/esm/context/token_based_context_compactor.js +1 -1
  99. package/dist/esm/events/event.js +4 -2
  100. package/dist/esm/index.js +11 -0
  101. package/dist/esm/integrations/agent_registry/agent_registry.js +333 -0
  102. package/dist/esm/integrations/agent_registry/agent_registry_mcp_toolset.js +96 -0
  103. package/dist/esm/integrations/agent_registry/helpers.js +28 -0
  104. package/dist/esm/integrations/agent_registry/types.js +20 -0
  105. package/dist/esm/memory/vertex_ai_memory_bank_service.js +468 -0
  106. package/dist/esm/models/gemini_llm_connection.js +62 -19
  107. package/dist/esm/models/google_llm.js +26 -8
  108. package/dist/esm/plugins/security_plugin.js +16 -0
  109. package/dist/esm/runner/in_memory_runner.js +10 -5
  110. package/dist/esm/runner/runner.js +32 -2
  111. package/dist/esm/sessions/base_session_service.js +11 -1
  112. package/dist/esm/sessions/database_session_service.js +51 -5
  113. package/dist/esm/sessions/db/schema.js +44 -10
  114. package/dist/esm/sessions/in_memory_session_service.js +74 -16
  115. package/dist/esm/sessions/registry.js +7 -0
  116. package/dist/esm/sessions/vertex_ai_session_service.js +405 -0
  117. package/dist/esm/skills/gcp_skill_registry.js +78 -0
  118. package/dist/esm/skills/loader.js +64 -0
  119. package/dist/esm/skills/skill_registry.js +7 -0
  120. package/dist/esm/tools/agent_tool.js +10 -5
  121. package/dist/esm/tools/exit_loop_tool.js +9 -0
  122. package/dist/esm/tools/function_tool.js +7 -2
  123. package/dist/esm/tools/google_maps_grounding_tool.js +54 -0
  124. package/dist/esm/tools/long_running_tool.js +2 -1
  125. package/dist/esm/tools/mcp/mcp_session_manager.js +11 -0
  126. package/dist/esm/tools/mcp/mcp_tool.js +10 -6
  127. package/dist/esm/tools/mcp/mcp_toolset.js +26 -3
  128. package/dist/esm/tools/openapi_tool/auth/auth_helpers.js +48 -0
  129. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +60 -0
  130. package/dist/esm/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +111 -0
  131. package/dist/esm/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +206 -0
  132. package/dist/esm/tools/openapi_tool/openapi_spec_parser/operation_parser.js +198 -0
  133. package/dist/esm/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +101 -0
  134. package/dist/esm/tools/openapi_tool/openapi_toolset.js +97 -0
  135. package/dist/esm/tools/openapi_tool/rest_api_tool.js +229 -0
  136. package/dist/esm/tools/skill/load_skill_resource_tool.js +26 -27
  137. package/dist/esm/tools/skill/load_skill_tool.js +12 -1
  138. package/dist/esm/tools/skill/run_skill_script_tool.js +12 -1
  139. package/dist/esm/tools/skill/search_skills_tool.js +82 -0
  140. package/dist/esm/tools/skill/skill_toolset.js +40 -5
  141. package/dist/esm/tools/vertex_rag_retrieval_tool.js +36 -0
  142. package/dist/esm/utils/async_queue.js +60 -0
  143. package/dist/esm/utils/case_utils.js +25 -0
  144. package/dist/esm/utils/env_aware_utils.js +4 -0
  145. package/dist/esm/utils/file_utils.js +26 -0
  146. package/dist/esm/utils/gemini_schema_util.js +18 -0
  147. package/dist/esm/utils/live_connection_utils.js +256 -0
  148. package/dist/esm/utils/model_name.js +8 -0
  149. package/dist/esm/utils/partial_copy.js +23 -0
  150. package/dist/esm/utils/streaming_utils.js +167 -121
  151. package/dist/esm/utils/vertex_ai_utils.js +22 -0
  152. package/dist/esm/version.js +1 -1
  153. package/dist/types/a2a/a2a_remote_agent.d.ts +14 -0
  154. package/dist/types/a2a/a2a_remote_agent_utils.d.ts +29 -4
  155. package/dist/types/a2a/event_converter_utils.d.ts +14 -1
  156. package/dist/types/a2a/metadata_converter_utils.d.ts +18 -0
  157. package/dist/types/a2a/part_converter_utils.d.ts +51 -6
  158. package/dist/types/agents/invocation_context.d.ts +0 -9
  159. package/dist/types/agents/llm_agent.d.ts +14 -0
  160. package/dist/types/agents/processors/agent_transfer_llm_request_processor.d.ts +14 -0
  161. package/dist/types/agents/processors/base_llm_processor.d.ts +12 -4
  162. package/dist/types/agents/processors/basic_llm_request_processor.d.ts +12 -0
  163. package/dist/types/agents/processors/content_processor_utils.d.ts +26 -0
  164. package/dist/types/agents/processors/content_request_processor.d.ts +16 -0
  165. package/dist/types/agents/processors/context_compactor_request_processor.d.ts +12 -0
  166. package/dist/types/agents/processors/identity_llm_request_processor.d.ts +11 -0
  167. package/dist/types/agents/processors/request_confirmation_llm_request_processor.d.ts +14 -1
  168. package/dist/types/agents/processors/tool_filter_request_processor.d.ts +12 -1
  169. package/dist/types/agents/run_config.d.ts +15 -0
  170. package/dist/types/code_executors/agent_engine_sandbox_code_executor.d.ts +51 -0
  171. package/dist/types/common.d.ts +19 -1
  172. package/dist/types/context/summarizers/llm_summarizer.d.ts +17 -0
  173. package/dist/types/events/event_actions.d.ts +25 -8
  174. package/dist/types/events/structured_events.d.ts +13 -0
  175. package/dist/types/examples/example_util.d.ts +25 -0
  176. package/dist/types/index.d.ts +6 -0
  177. package/dist/types/integrations/agent_registry/agent_registry.d.ts +94 -0
  178. package/dist/types/integrations/agent_registry/agent_registry_mcp_toolset.d.ts +62 -0
  179. package/dist/types/integrations/agent_registry/helpers.d.ts +7 -0
  180. package/dist/types/integrations/agent_registry/types.d.ts +101 -0
  181. package/dist/types/memory/vertex_ai_memory_bank_service.d.ts +52 -0
  182. package/dist/types/models/base_llm_connection.d.ts +10 -0
  183. package/dist/types/models/gemini_llm_connection.d.ts +15 -4
  184. package/dist/types/models/llm_response.d.ts +10 -1
  185. package/dist/types/plugins/security_plugin.d.ts +30 -0
  186. package/dist/types/runner/in_memory_runner.d.ts +28 -1
  187. package/dist/types/runner/runner.d.ts +47 -0
  188. package/dist/types/sessions/base_session_service.d.ts +22 -0
  189. package/dist/types/sessions/database_session_service.d.ts +1 -1
  190. package/dist/types/sessions/db/schema.d.ts +1 -0
  191. package/dist/types/sessions/in_memory_session_service.d.ts +1 -1
  192. package/dist/types/sessions/vertex_ai_session_service.d.ts +37 -0
  193. package/dist/types/skills/gcp_skill_registry.d.ts +24 -0
  194. package/dist/types/skills/loader.d.ts +7 -0
  195. package/dist/types/skills/skill.d.ts +1 -1
  196. package/dist/types/skills/skill_registry.d.ts +29 -0
  197. package/dist/types/tools/exit_loop_tool.d.ts +9 -0
  198. package/dist/types/tools/function_tool.d.ts +22 -2
  199. package/dist/types/tools/google_maps_grounding_tool.d.ts +22 -0
  200. package/dist/types/tools/long_running_tool.d.ts +11 -1
  201. package/dist/types/tools/mcp/mcp_session_manager.d.ts +3 -0
  202. package/dist/types/tools/mcp/mcp_toolset.d.ts +2 -1
  203. package/dist/types/tools/openapi_tool/auth/auth_helpers.d.ts +25 -0
  204. package/dist/types/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.d.ts +20 -0
  205. package/dist/types/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.d.ts +20 -0
  206. package/dist/types/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.d.ts +34 -0
  207. package/dist/types/tools/openapi_tool/openapi_spec_parser/operation_parser.d.ts +59 -0
  208. package/dist/types/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.d.ts +23 -0
  209. package/dist/types/tools/openapi_tool/openapi_toolset.d.ts +27 -0
  210. package/dist/types/tools/openapi_tool/rest_api_tool.d.ts +50 -0
  211. package/dist/types/tools/skill/load_skill_resource_tool.d.ts +1 -1
  212. package/dist/types/tools/skill/search_skills_tool.d.ts +14 -0
  213. package/dist/types/tools/skill/skill_toolset.d.ts +5 -0
  214. package/dist/types/tools/vertex_rag_retrieval_tool.d.ts +42 -0
  215. package/dist/types/utils/async_queue.d.ts +18 -0
  216. package/dist/types/utils/case_utils.d.ts +12 -0
  217. package/dist/types/utils/file_utils.d.ts +2 -0
  218. package/dist/types/utils/live_connection_utils.d.ts +30 -0
  219. package/dist/types/utils/model_name.d.ts +7 -0
  220. package/dist/types/utils/partial_copy.d.ts +13 -0
  221. package/dist/types/utils/streaming_utils.d.ts +7 -17
  222. package/dist/types/utils/vertex_ai_utils.d.ts +14 -0
  223. package/dist/types/version.d.ts +1 -1
  224. package/dist/web/agents/base_agent.js +31 -1
  225. package/dist/web/agents/functions.js +4 -0
  226. package/dist/web/agents/instructions.js +81 -33
  227. package/dist/web/agents/invocation_context.js +0 -1
  228. package/dist/web/agents/llm_agent.js +53 -5
  229. package/dist/web/agents/processors/agent_transfer_llm_request_processor.js +7 -0
  230. package/dist/web/agents/processors/basic_llm_request_processor.js +8 -1
  231. package/dist/web/agents/processors/content_processor_utils.js +53 -23
  232. package/dist/web/agents/processors/content_request_processor.js +7 -0
  233. package/dist/web/agents/processors/context_compactor_request_processor.js +12 -0
  234. package/dist/web/agents/processors/identity_llm_request_processor.js +7 -0
  235. package/dist/web/agents/processors/instructions_llm_request_processor.js +5 -0
  236. package/dist/web/agents/processors/request_confirmation_llm_request_processor.js +9 -1
  237. package/dist/web/agents/processors/tool_filter_request_processor.js +7 -1
  238. package/dist/web/auth/auth_preprocessor.js +12 -10
  239. package/dist/web/auth/oauth2/oauth2_discovery.js +26 -2
  240. package/dist/web/code_executors/agent_engine_sandbox_code_executor.js +281 -0
  241. package/dist/web/code_executors/code_execution_utils.js +1 -1
  242. package/dist/web/code_executors/code_executor_context.js +7 -7
  243. package/dist/web/common.js +43 -1
  244. package/dist/web/context/summarizers/llm_summarizer.js +11 -0
  245. package/dist/web/context/token_based_context_compactor.js +1 -1
  246. package/dist/web/events/event.js +4 -2
  247. package/dist/web/index.js +11 -0
  248. package/dist/web/integrations/agent_registry/agent_registry.js +333 -0
  249. package/dist/web/integrations/agent_registry/agent_registry_mcp_toolset.js +109 -0
  250. package/dist/web/integrations/agent_registry/helpers.js +28 -0
  251. package/dist/web/integrations/agent_registry/types.js +20 -0
  252. package/dist/web/memory/vertex_ai_memory_bank_service.js +475 -0
  253. package/dist/web/models/gemini_llm_connection.js +75 -19
  254. package/dist/web/models/google_llm.js +26 -8
  255. package/dist/web/plugins/security_plugin.js +16 -0
  256. package/dist/web/runner/in_memory_runner.js +10 -5
  257. package/dist/web/runner/runner.js +32 -2
  258. package/dist/web/sessions/base_session_service.js +11 -1
  259. package/dist/web/sessions/database_session_service.js +51 -5
  260. package/dist/web/sessions/db/schema.js +44 -10
  261. package/dist/web/sessions/in_memory_session_service.js +74 -16
  262. package/dist/web/sessions/registry.js +7 -0
  263. package/dist/web/sessions/vertex_ai_session_service.js +416 -0
  264. package/dist/web/skills/gcp_skill_registry.js +78 -0
  265. package/dist/web/skills/loader.js +64 -0
  266. package/dist/web/skills/skill_registry.js +7 -0
  267. package/dist/web/tools/agent_tool.js +10 -5
  268. package/dist/web/tools/exit_loop_tool.js +9 -0
  269. package/dist/web/tools/function_tool.js +7 -2
  270. package/dist/web/tools/google_maps_grounding_tool.js +54 -0
  271. package/dist/web/tools/long_running_tool.js +2 -1
  272. package/dist/web/tools/mcp/mcp_session_manager.js +11 -0
  273. package/dist/web/tools/mcp/mcp_tool.js +10 -6
  274. package/dist/web/tools/mcp/mcp_toolset.js +26 -3
  275. package/dist/web/tools/openapi_tool/auth/auth_helpers.js +48 -0
  276. package/dist/web/tools/openapi_tool/auth/credential_exchangers/auto_auth_credential_exchanger.js +60 -0
  277. package/dist/web/tools/openapi_tool/auth/credential_exchangers/service_account_exchanger.js +111 -0
  278. package/dist/web/tools/openapi_tool/openapi_spec_parser/openapi_spec_parser.js +221 -0
  279. package/dist/web/tools/openapi_tool/openapi_spec_parser/operation_parser.js +198 -0
  280. package/dist/web/tools/openapi_tool/openapi_spec_parser/tool_auth_handler.js +101 -0
  281. package/dist/web/tools/openapi_tool/openapi_toolset.js +97 -0
  282. package/dist/web/tools/openapi_tool/rest_api_tool.js +229 -0
  283. package/dist/web/tools/skill/load_skill_resource_tool.js +26 -27
  284. package/dist/web/tools/skill/load_skill_tool.js +12 -1
  285. package/dist/web/tools/skill/run_skill_script_tool.js +12 -1
  286. package/dist/web/tools/skill/search_skills_tool.js +82 -0
  287. package/dist/web/tools/skill/skill_toolset.js +40 -5
  288. package/dist/web/tools/vertex_rag_retrieval_tool.js +36 -0
  289. package/dist/web/utils/async_queue.js +60 -0
  290. package/dist/web/utils/case_utils.js +25 -0
  291. package/dist/web/utils/env_aware_utils.js +4 -0
  292. package/dist/web/utils/file_utils.js +26 -0
  293. package/dist/web/utils/gemini_schema_util.js +18 -0
  294. package/dist/web/utils/live_connection_utils.js +254 -0
  295. package/dist/web/utils/model_name.js +8 -0
  296. package/dist/web/utils/partial_copy.js +23 -0
  297. package/dist/web/utils/streaming_utils.js +221 -122
  298. package/dist/web/utils/vertex_ai_utils.js +22 -0
  299. package/dist/web/version.js +1 -1
  300. package/package.json +4 -1
@@ -47,6 +47,11 @@ var PolicyOutcome = /* @__PURE__ */ ((PolicyOutcome2) => {
47
47
  return PolicyOutcome2;
48
48
  })(PolicyOutcome || {});
49
49
  class InMemoryPolicyEngine {
50
+ /**
51
+ * Always returns {@link PolicyOutcome.ALLOW} for every tool call.
52
+ *
53
+ * @returns A promise resolving to an ALLOW result.
54
+ */
50
55
  async evaluate() {
51
56
  return Promise.resolve({
52
57
  outcome: "ALLOW" /* ALLOW */,
@@ -55,11 +60,22 @@ class InMemoryPolicyEngine {
55
60
  }
56
61
  }
57
62
  class SecurityPlugin extends import_base_plugin.BasePlugin {
63
+ /**
64
+ * @param params - Optional configuration. Defaults to {@link InMemoryPolicyEngine}
65
+ * when no policy engine is provided.
66
+ */
58
67
  constructor(params) {
59
68
  var _a;
60
69
  super("security_plugin");
61
70
  this.policyEngine = (_a = params == null ? void 0 : params.policyEngine) != null ? _a : new InMemoryPolicyEngine();
62
71
  }
72
+ /**
73
+ * Intercepts tool calls, evaluating them against the policy engine before
74
+ * execution and handling confirmation flows for calls that require it.
75
+ *
76
+ * @returns A partial or error response object if the call is blocked or
77
+ * awaiting confirmation, or `undefined` to allow execution to proceed.
78
+ */
63
79
  async beforeToolCallback({
64
80
  tool,
65
81
  toolArgs,
@@ -37,11 +37,16 @@ var import_runner = require("./runner.js");
37
37
  * SPDX-License-Identifier: Apache-2.0
38
38
  */
39
39
  class InMemoryRunner extends import_runner.Runner {
40
- constructor({
41
- agent,
42
- appName = "InMemoryRunner",
43
- plugins = []
44
- }) {
40
+ /**
41
+ * Creates a new InMemoryRunner instance.
42
+ *
43
+ * @param params The configuration for the runner.
44
+ * @param params.agent The root agent to run.
45
+ * @param params.appName The application name. Defaults to `'InMemoryRunner'`.
46
+ * @param params.plugins An optional list of plugins.
47
+ */
48
+ constructor(params) {
49
+ const { agent, appName = "InMemoryRunner", plugins = [] } = params;
45
50
  super({
46
51
  appName,
47
52
  agent,
@@ -38,6 +38,7 @@ var import_event = require("../events/event.js");
38
38
  var import_event_actions = require("../events/event_actions.js");
39
39
  var import_plugin_manager = require("../plugins/plugin_manager.js");
40
40
  var import_tracing = require("../telemetry/tracing.js");
41
+ var import_base_toolset = require("../tools/base_toolset.js");
41
42
  var import_logger = require("../utils/logger.js");
42
43
  var import_model_name = require("../utils/model_name.js");
43
44
  /**
@@ -52,6 +53,11 @@ function isRunner(obj) {
52
53
  }
53
54
  _a = RUNNER_SIGNATURE_SYMBOL;
54
55
  class Runner {
56
+ /**
57
+ * Creates a new Runner instance.
58
+ *
59
+ * @param input The configuration for the runner.
60
+ */
55
61
  constructor(input) {
56
62
  this[_a] = true;
57
63
  var _a2;
@@ -84,7 +90,8 @@ class Runner {
84
90
  sessionId,
85
91
  newMessage: params.newMessage,
86
92
  stateDelta: params.stateDelta,
87
- runConfig: params.runConfig
93
+ runConfig: params.runConfig,
94
+ customMetadata: params.customMetadata
88
95
  });
89
96
  } finally {
90
97
  await this.sessionService.deleteSession({
@@ -189,7 +196,8 @@ class Runner {
189
196
  invocationId: invocationContext.invocationId,
190
197
  author: "user",
191
198
  actions: stateDelta ? (0, import_event_actions.createEventActions)({ stateDelta }) : void 0,
192
- content: newMessage
199
+ content: newMessage,
200
+ customMetadata: params.customMetadata
193
201
  })
194
202
  });
195
203
  if ((_e = params.abortSignal) == null ? void 0 : _e.aborted) {
@@ -254,6 +262,8 @@ class Runner {
254
262
  );
255
263
  } finally {
256
264
  span.end();
265
+ const toolsets = getAllToolsets(this.agent);
266
+ await Promise.allSettled(toolsets.map((t) => t.close()));
257
267
  }
258
268
  }
259
269
  /**
@@ -373,6 +383,26 @@ function findEventByLastFunctionResponseId(events) {
373
383
  }
374
384
  return null;
375
385
  }
386
+ function getAllToolsets(agent) {
387
+ const toolsets = [];
388
+ const visited = /* @__PURE__ */ new Set();
389
+ function traverse(curr) {
390
+ if (visited.has(curr)) return;
391
+ visited.add(curr);
392
+ if ((0, import_llm_agent.isLlmAgent)(curr)) {
393
+ for (const tool of curr.tools) {
394
+ if ((0, import_base_toolset.isBaseToolset)(tool)) {
395
+ toolsets.push(tool);
396
+ }
397
+ }
398
+ }
399
+ for (const sub of curr.subAgents) {
400
+ traverse(sub);
401
+ }
402
+ }
403
+ traverse(agent);
404
+ return toolsets;
405
+ }
376
406
  // Annotate the CommonJS export names for ESM import in node:
377
407
  0 && (module.exports = {
378
408
  Runner,
@@ -26,7 +26,8 @@ var base_session_service_exports = {};
26
26
  __export(base_session_service_exports, {
27
27
  BaseSessionService: () => BaseSessionService,
28
28
  mergeStates: () => mergeStates,
29
- trimTempDeltaState: () => trimTempDeltaState
29
+ trimTempDeltaState: () => trimTempDeltaState,
30
+ trimTempState: () => trimTempState
30
31
  });
31
32
  module.exports = __toCommonJS(base_session_service_exports);
32
33
  var import_lodash_es = require("lodash-es");
@@ -103,6 +104,15 @@ function trimTempDeltaState(event) {
103
104
  event.actions.stateDelta = filteredStateDelta;
104
105
  return event;
105
106
  }
107
+ function trimTempState(state) {
108
+ const filteredState = {};
109
+ for (const [key, value] of Object.entries(state)) {
110
+ if (!key.startsWith(import_state.State.TEMP_PREFIX)) {
111
+ filteredState[key] = value;
112
+ }
113
+ }
114
+ return filteredState;
115
+ }
106
116
  function mergeStates(appState = {}, userState = {}, sessionState = {}) {
107
117
  const merged = (0, import_lodash_es.cloneDeep)(sessionState);
108
118
  for (const [k, v] of Object.entries(appState)) {
@@ -117,5 +127,6 @@ function mergeStates(appState = {}, userState = {}, sessionState = {}) {
117
127
  0 && (module.exports = {
118
128
  BaseSessionService,
119
129
  mergeStates,
120
- trimTempDeltaState
130
+ trimTempDeltaState,
131
+ trimTempState
121
132
  });
@@ -119,7 +119,7 @@ class DatabaseSessionService extends import_base_session_service.BaseSessionServ
119
119
  appStateDelta[key.replace(import_state.State.APP_PREFIX, "")] = value;
120
120
  } else if (key.startsWith(import_state.State.USER_PREFIX)) {
121
121
  userStateDelta[key.replace(import_state.State.USER_PREFIX, "")] = value;
122
- } else {
122
+ } else if (!key.startsWith(import_state.State.TEMP_PREFIX)) {
123
123
  sessionState[key] = value;
124
124
  }
125
125
  }
@@ -204,7 +204,11 @@ class DatabaseSessionService extends import_base_session_service.BaseSessionServ
204
204
  }
205
205
  async listSessions({
206
206
  appName,
207
- userId
207
+ userId,
208
+ limit,
209
+ offset,
210
+ page,
211
+ order
208
212
  }) {
209
213
  await this.init();
210
214
  const em = this.orm.em.fork();
@@ -212,7 +216,49 @@ class DatabaseSessionService extends import_base_session_service.BaseSessionServ
212
216
  if (userId) {
213
217
  where.userId = userId;
214
218
  }
215
- const storageSessions = await em.find(import_schema.StorageSession, where);
219
+ const orderBy = order === "asc" ? { updateTime: "ASC", id: "ASC" } : order === "desc" ? { updateTime: "DESC", id: "ASC" } : void 0;
220
+ let storageSessions;
221
+ let paginationMeta;
222
+ if (limit !== void 0) {
223
+ const totalItems = await em.count(import_schema.StorageSession, where);
224
+ const totalPages = limit === 0 ? 0 : Math.ceil(totalItems / limit);
225
+ let effectiveOffset;
226
+ let effectivePage;
227
+ if (page !== void 0) {
228
+ effectiveOffset = (page - 1) * limit;
229
+ effectivePage = page;
230
+ } else {
231
+ effectiveOffset = offset != null ? offset : 0;
232
+ effectivePage = limit === 0 ? 1 : Math.floor(effectiveOffset / limit) + 1;
233
+ }
234
+ storageSessions = await em.find(import_schema.StorageSession, where, {
235
+ orderBy,
236
+ limit,
237
+ offset: effectiveOffset
238
+ });
239
+ paginationMeta = { page: effectivePage, limit, totalItems, totalPages };
240
+ } else if (offset) {
241
+ const totalItems = await em.count(import_schema.StorageSession, where);
242
+ storageSessions = await em.find(import_schema.StorageSession, where, {
243
+ orderBy,
244
+ offset
245
+ });
246
+ paginationMeta = {
247
+ page: 1,
248
+ limit: totalItems,
249
+ totalItems,
250
+ totalPages: totalItems === 0 ? 0 : 1
251
+ };
252
+ } else {
253
+ storageSessions = await em.find(import_schema.StorageSession, where, { orderBy });
254
+ const totalItems = storageSessions.length;
255
+ paginationMeta = {
256
+ page: 1,
257
+ limit: totalItems,
258
+ totalItems,
259
+ totalPages: totalItems === 0 ? 0 : 1
260
+ };
261
+ }
216
262
  const appStateModel = await em.findOne(import_schema.StorageAppState, { appName });
217
263
  const appState = (appStateModel == null ? void 0 : appStateModel.state) || {};
218
264
  const userStateMap = {};
@@ -237,7 +283,7 @@ class DatabaseSessionService extends import_base_session_service.BaseSessionServ
237
283
  lastUpdateTime: ss.updateTime.getTime()
238
284
  });
239
285
  });
240
- return { sessions };
286
+ return { sessions, ...paginationMeta };
241
287
  }
242
288
  async deleteSession({
243
289
  appName,
@@ -322,7 +368,7 @@ class DatabaseSessionService extends import_base_session_service.BaseSessionServ
322
368
  appDelta[key.replace(import_state.State.APP_PREFIX, "")] = value;
323
369
  } else if (key.startsWith(import_state.State.USER_PREFIX)) {
324
370
  userDelta[key.replace(import_state.State.USER_PREFIX, "")] = value;
325
- } else {
371
+ } else if (!key.startsWith(import_state.State.TEMP_PREFIX)) {
326
372
  sessionDelta[key] = value;
327
373
  }
328
374
  }
@@ -35,6 +35,7 @@ __export(schema_exports, {
35
35
  ENTITIES: () => ENTITIES,
36
36
  SCHEMA_VERSION_1_JSON: () => SCHEMA_VERSION_1_JSON,
37
37
  SCHEMA_VERSION_KEY: () => SCHEMA_VERSION_KEY,
38
+ STORAGE_KEY_COLUMN_LENGTH: () => STORAGE_KEY_COLUMN_LENGTH,
38
39
  StorageAppState: () => StorageAppState,
39
40
  StorageEvent: () => StorageEvent,
40
41
  StorageMetadata: () => StorageMetadata,
@@ -51,6 +52,7 @@ var import_event = require("../../events/event.js");
51
52
  */
52
53
  const SCHEMA_VERSION_KEY = "schema_version";
53
54
  const SCHEMA_VERSION_1_JSON = "1";
55
+ const STORAGE_KEY_COLUMN_LENGTH = 191;
54
56
  class CamelCaseToSnakeCaseJsonType extends import_core.JsonType {
55
57
  convertToDatabaseValue(value) {
56
58
  return JSON.stringify((0, import_event.transformToSnakeCaseEvent)(value));
@@ -79,7 +81,11 @@ let StorageAppState = class {
79
81
  }
80
82
  };
81
83
  __decorateClass([
82
- (0, import_core.PrimaryKey)({ type: "string", fieldName: "app_name" })
84
+ (0, import_core.PrimaryKey)({
85
+ type: "string",
86
+ fieldName: "app_name",
87
+ length: STORAGE_KEY_COLUMN_LENGTH
88
+ })
83
89
  ], StorageAppState.prototype, "appName", 2);
84
90
  __decorateClass([
85
91
  (0, import_core.Property)({ type: "json" })
@@ -102,10 +108,18 @@ let StorageUserState = class {
102
108
  }
103
109
  };
104
110
  __decorateClass([
105
- (0, import_core.PrimaryKey)({ type: "string", fieldName: "app_name" })
111
+ (0, import_core.PrimaryKey)({
112
+ type: "string",
113
+ fieldName: "app_name",
114
+ length: STORAGE_KEY_COLUMN_LENGTH
115
+ })
106
116
  ], StorageUserState.prototype, "appName", 2);
107
117
  __decorateClass([
108
- (0, import_core.PrimaryKey)({ type: "string", fieldName: "user_id" })
118
+ (0, import_core.PrimaryKey)({
119
+ type: "string",
120
+ fieldName: "user_id",
121
+ length: STORAGE_KEY_COLUMN_LENGTH
122
+ })
109
123
  ], StorageUserState.prototype, "userId", 2);
110
124
  __decorateClass([
111
125
  (0, import_core.Property)({ type: "json" })
@@ -129,13 +143,21 @@ let StorageSession = class {
129
143
  }
130
144
  };
131
145
  __decorateClass([
132
- (0, import_core.PrimaryKey)({ type: "string" })
146
+ (0, import_core.PrimaryKey)({ type: "string", length: STORAGE_KEY_COLUMN_LENGTH })
133
147
  ], StorageSession.prototype, "id", 2);
134
148
  __decorateClass([
135
- (0, import_core.PrimaryKey)({ type: "string", fieldName: "app_name" })
149
+ (0, import_core.PrimaryKey)({
150
+ type: "string",
151
+ fieldName: "app_name",
152
+ length: STORAGE_KEY_COLUMN_LENGTH
153
+ })
136
154
  ], StorageSession.prototype, "appName", 2);
137
155
  __decorateClass([
138
- (0, import_core.PrimaryKey)({ type: "string", fieldName: "user_id" })
156
+ (0, import_core.PrimaryKey)({
157
+ type: "string",
158
+ fieldName: "user_id",
159
+ length: STORAGE_KEY_COLUMN_LENGTH
160
+ })
139
161
  ], StorageSession.prototype, "userId", 2);
140
162
  __decorateClass([
141
163
  (0, import_core.Property)({ type: "json" })
@@ -161,16 +183,28 @@ import_core.PrimaryKey.name;
161
183
  let StorageEvent = class {
162
184
  };
163
185
  __decorateClass([
164
- (0, import_core.PrimaryKey)({ type: "string" })
186
+ (0, import_core.PrimaryKey)({ type: "string", length: STORAGE_KEY_COLUMN_LENGTH })
165
187
  ], StorageEvent.prototype, "id", 2);
166
188
  __decorateClass([
167
- (0, import_core.PrimaryKey)({ type: "string", fieldName: "app_name" })
189
+ (0, import_core.PrimaryKey)({
190
+ type: "string",
191
+ fieldName: "app_name",
192
+ length: STORAGE_KEY_COLUMN_LENGTH
193
+ })
168
194
  ], StorageEvent.prototype, "appName", 2);
169
195
  __decorateClass([
170
- (0, import_core.PrimaryKey)({ type: "string", fieldName: "user_id" })
196
+ (0, import_core.PrimaryKey)({
197
+ type: "string",
198
+ fieldName: "user_id",
199
+ length: STORAGE_KEY_COLUMN_LENGTH
200
+ })
171
201
  ], StorageEvent.prototype, "userId", 2);
172
202
  __decorateClass([
173
- (0, import_core.PrimaryKey)({ type: "string", fieldName: "session_id" })
203
+ (0, import_core.PrimaryKey)({
204
+ type: "string",
205
+ fieldName: "session_id",
206
+ length: STORAGE_KEY_COLUMN_LENGTH
207
+ })
174
208
  ], StorageEvent.prototype, "sessionId", 2);
175
209
  __decorateClass([
176
210
  (0, import_core.Property)({ type: "string", fieldName: "invocation_id" })
@@ -196,6 +230,7 @@ const ENTITIES = [
196
230
  ENTITIES,
197
231
  SCHEMA_VERSION_1_JSON,
198
232
  SCHEMA_VERSION_KEY,
233
+ STORAGE_KEY_COLUMN_LENGTH,
199
234
  StorageAppState,
200
235
  StorageEvent,
201
236
  StorageMetadata,
@@ -66,11 +66,12 @@ class InMemorySessionService extends import_base_session_service.BaseSessionServ
66
66
  sessionId
67
67
  }) {
68
68
  var _a;
69
+ const filteredState = state ? (0, import_base_session_service.trimTempState)(state) : void 0;
69
70
  const session = (0, import_session.createSession)({
70
71
  id: sessionId || (0, import_env_aware_utils.randomUUID)(),
71
72
  appName,
72
73
  userId,
73
- state,
74
+ state: filteredState,
74
75
  events: [],
75
76
  lastUpdateTime: Date.now()
76
77
  });
@@ -129,25 +130,81 @@ class InMemorySessionService extends import_base_session_service.BaseSessionServ
129
130
  }
130
131
  listSessions({
131
132
  appName,
132
- userId
133
+ userId,
134
+ limit,
135
+ offset,
136
+ page,
137
+ order
133
138
  }) {
134
139
  if (!this.sessions[appName] || !this.sessions[appName][userId]) {
135
- return Promise.resolve({ sessions: [] });
140
+ if (limit !== void 0) {
141
+ const effectiveOffset2 = page !== void 0 ? (page - 1) * limit : offset != null ? offset : 0;
142
+ const effectivePage2 = page !== void 0 ? page : limit === 0 ? 1 : Math.floor(effectiveOffset2 / limit) + 1;
143
+ return Promise.resolve({
144
+ sessions: [],
145
+ page: effectivePage2,
146
+ limit,
147
+ totalItems: 0,
148
+ totalPages: 0
149
+ });
150
+ }
151
+ return Promise.resolve({
152
+ sessions: [],
153
+ page: 1,
154
+ limit: 0,
155
+ totalItems: 0,
156
+ totalPages: 0
157
+ });
136
158
  }
137
- const sessionsWithoutEvents = [];
138
- for (const session of Object.values(this.sessions[appName][userId])) {
139
- sessionsWithoutEvents.push(
140
- (0, import_session.createSession)({
141
- id: session.id,
142
- appName: session.appName,
143
- userId: session.userId,
144
- state: {},
145
- events: [],
146
- lastUpdateTime: session.lastUpdateTime
147
- })
159
+ const all = Object.values(this.sessions[appName][userId]).map(
160
+ (session) => (0, import_session.createSession)({
161
+ id: session.id,
162
+ appName: session.appName,
163
+ userId: session.userId,
164
+ state: {},
165
+ events: [],
166
+ lastUpdateTime: session.lastUpdateTime
167
+ })
168
+ );
169
+ if (order === "asc") {
170
+ all.sort(
171
+ (a, b) => a.lastUpdateTime - b.lastUpdateTime || a.id.localeCompare(b.id)
172
+ );
173
+ } else if (order === "desc") {
174
+ all.sort(
175
+ (a, b) => b.lastUpdateTime - a.lastUpdateTime || a.id.localeCompare(b.id)
148
176
  );
149
177
  }
150
- return Promise.resolve({ sessions: sessionsWithoutEvents });
178
+ if (limit === void 0) {
179
+ const totalItems2 = all.length;
180
+ const sliced = offset ? all.slice(offset) : all;
181
+ return Promise.resolve({
182
+ sessions: sliced,
183
+ page: 1,
184
+ limit: totalItems2,
185
+ totalItems: totalItems2,
186
+ totalPages: totalItems2 === 0 ? 0 : 1
187
+ });
188
+ }
189
+ const totalItems = all.length;
190
+ const totalPages = limit === 0 ? 0 : Math.ceil(totalItems / limit);
191
+ let effectiveOffset;
192
+ let effectivePage;
193
+ if (page !== void 0) {
194
+ effectiveOffset = (page - 1) * limit;
195
+ effectivePage = page;
196
+ } else {
197
+ effectiveOffset = offset != null ? offset : 0;
198
+ effectivePage = limit === 0 ? 1 : Math.floor(effectiveOffset / limit) + 1;
199
+ }
200
+ const paginated = all.slice(effectiveOffset, effectiveOffset + limit);
201
+ return Promise.resolve({
202
+ sessions: paginated,
203
+ page: effectivePage,
204
+ limit,
205
+ totalItems,
206
+ totalPages
207
+ });
151
208
  }
152
209
  async deleteSession({
153
210
  appName,
@@ -29,6 +29,7 @@ __export(registry_exports, {
29
29
  module.exports = __toCommonJS(registry_exports);
30
30
  var import_database_session_service = require("./database_session_service.js");
31
31
  var import_in_memory_session_service = require("./in_memory_session_service.js");
32
+ var import_vertex_ai_session_service = require("./vertex_ai_session_service.js");
32
33
  /**
33
34
  * @license
34
35
  * Copyright 2026 Google LLC
@@ -41,6 +42,9 @@ function getSessionServiceFromUri(uri) {
41
42
  if ((0, import_database_session_service.isDatabaseConnectionString)(uri)) {
42
43
  return new import_database_session_service.DatabaseSessionService(uri);
43
44
  }
45
+ if ((0, import_vertex_ai_session_service.isVertexAiConnectionString)(uri)) {
46
+ return new import_vertex_ai_session_service.VertexAiSessionService({});
47
+ }
44
48
  throw new Error(`Unsupported session service URI: ${uri}`);
45
49
  }
46
50
  // Annotate the CommonJS export names for ESM import in node: