@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
@@ -0,0 +1,94 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Client, ClientFactory } from '@a2a-js/sdk/client';
7
+ import { RemoteA2AAgent } from '../../a2a/a2a_remote_agent.js';
8
+ import { ReadonlyContext } from '../../agents/readonly_context.js';
9
+ import { AuthCredential } from '../../auth/auth_credential.js';
10
+ import { AuthScheme } from '../../auth/auth_schemes.js';
11
+ import { AgentRegistrySingleMCPToolset } from './agent_registry_mcp_toolset.js';
12
+ import { AgentInfo, ConnectionUriFilter, ConnectionUriResult, Endpoint, ListAgentsResponse, ListEndpointsResponse, ListMcpServersResponse, McpServer, ProtocolType } from './types.js';
13
+ export * from './agent_registry_mcp_toolset.js';
14
+ export * from './helpers.js';
15
+ export * from './types.js';
16
+ /**
17
+ * Client for interacting with the Google Cloud Agent Registry service.
18
+ *
19
+ * Unlike a standard REST client library, this class provides higher-level
20
+ * abstractions for ADK integration. It surfaces the agent registry service
21
+ * methods along with helper methods like `getMcpToolset` and
22
+ * `getRemoteA2AAgent` that automatically resolve connection details,
23
+ * manage OAuth authentication schemes, and handle GCP credentials to produce
24
+ * ready-to-use ADK components.
25
+ */
26
+ export declare class AgentRegistry {
27
+ readonly projectId: string;
28
+ readonly location: string;
29
+ private readonly basePath;
30
+ private readonly headerProvider?;
31
+ private readonly auth;
32
+ constructor(options: {
33
+ projectId?: string | null;
34
+ location?: string | null;
35
+ headerProvider?: (context: ReadonlyContext) => Record<string, string>;
36
+ });
37
+ /**
38
+ * Resolves default Google Cloud credentials and returns standard headers.
39
+ * Automatically caches, fetches, and handles refreshing expired OAuth tokens.
40
+ * Injects the billing/quota project identifier `x-goog-user-project` if present.
41
+ */
42
+ getAuthHeaders(): Promise<Record<string, string>>;
43
+ /**
44
+ * Helper function to execute HTTP GET requests against the Agent Registry API.
45
+ * Handles path resolution, search query params compilation, and auth headers fetching.
46
+ */
47
+ makeRequest<T = unknown>(path: string, params?: Record<string, string>): Promise<T>;
48
+ /**
49
+ * Parses connection interfaces list from registry metadata and returns the first match
50
+ * corresponding to requested protocol types and binding options.
51
+ */
52
+ getConnectionUri(resourceDetails: {
53
+ interfaces?: Array<{
54
+ url?: string;
55
+ protocolBinding?: string;
56
+ }>;
57
+ protocols?: Array<{
58
+ type?: ProtocolType;
59
+ protocolVersion?: string;
60
+ interfaces?: Array<{
61
+ url?: string;
62
+ protocolBinding?: string;
63
+ }>;
64
+ }>;
65
+ }, filters?: ConnectionUriFilter): ConnectionUriResult;
66
+ listMcpServers(options?: {
67
+ filterStr?: string;
68
+ pageSize?: number;
69
+ pageToken?: string;
70
+ }): Promise<ListMcpServersResponse>;
71
+ getMcpServer(name: string): Promise<McpServer>;
72
+ getMcpToolset(mcpServerName: string, options?: {
73
+ authScheme?: AuthScheme;
74
+ authCredential?: AuthCredential;
75
+ continueUri?: string;
76
+ }): Promise<AgentRegistrySingleMCPToolset>;
77
+ listEndpoints(options?: {
78
+ filterStr?: string;
79
+ pageSize?: number;
80
+ pageToken?: string;
81
+ }): Promise<ListEndpointsResponse>;
82
+ getEndpoint(name: string): Promise<Endpoint>;
83
+ getModelName(endpointName: string): Promise<string>;
84
+ listAgents(options?: {
85
+ filterStr?: string;
86
+ pageSize?: number;
87
+ pageToken?: string;
88
+ }): Promise<ListAgentsResponse>;
89
+ getAgentInfo(name: string): Promise<AgentInfo>;
90
+ getRemoteA2AAgent(agentName: string, options?: {
91
+ client?: Client;
92
+ clientFactory?: ClientFactory;
93
+ }): Promise<RemoteA2AAgent>;
94
+ }
@@ -0,0 +1,62 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { ReadonlyContext } from '../../agents/readonly_context.js';
7
+ import { AuthCredential } from '../../auth/auth_credential.js';
8
+ import { AuthScheme } from '../../auth/auth_schemes.js';
9
+ import { BaseTool } from '../../tools/base_tool.js';
10
+ import { BaseToolset, ToolPredicate } from '../../tools/base_toolset.js';
11
+ import { StreamableHTTPConnectionParams } from '../../tools/mcp/mcp_session_manager.js';
12
+ /**
13
+ * A specialized BaseToolset subclass designed to represent a single registered MCP server.
14
+ *
15
+ * Unlike a standard MCPToolset, this class:
16
+ * 1. Supports a dynamic `headerProvider` to fetch/refresh authorization and custom headers
17
+ * immediately before establishing the MCP connection session.
18
+ * 2. Automatically injects the special `gcp.mcp.server.destination.id` telemetry metadata
19
+ * identifier into all resolved tools' custom metadata, allowing downstream execute_tool
20
+ * traces to be correctly attributed.
21
+ */
22
+ export declare class AgentRegistrySingleMCPToolset extends BaseToolset {
23
+ readonly destinationResourceId?: string;
24
+ readonly connectionParams: StreamableHTTPConnectionParams;
25
+ readonly headerProvider?: (context?: ReadonlyContext) => Promise<Record<string, string>> | Record<string, string>;
26
+ readonly authScheme?: AuthScheme;
27
+ readonly authCredential?: AuthCredential;
28
+ /**
29
+ * @param options - Configuration for the MCP toolset.
30
+ * @param options.destinationResourceId - Telemetry identifier injected as
31
+ * `gcp.mcp.server.destination.id` into each resolved tool's custom metadata.
32
+ * @param options.connectionParams - HTTP connection parameters for the MCP server.
33
+ * @param options.toolFilter - Optional predicate or list of tool names to include.
34
+ * When omitted, all tools from the server are returned.
35
+ * @param options.prefix - Optional prefix prepended to each tool name (e.g. `myServer_toolName`).
36
+ * @param options.headerProvider - Optional async function called immediately before each
37
+ * {@link getTools} invocation to supply or refresh request headers (e.g. GCP auth tokens).
38
+ * @param options.authScheme - Optional auth scheme forwarded to each resolved tool.
39
+ * @param options.authCredential - Optional credential forwarded to each resolved tool.
40
+ */
41
+ constructor(options: {
42
+ destinationResourceId?: string;
43
+ connectionParams: StreamableHTTPConnectionParams;
44
+ toolFilter?: ToolPredicate | string[];
45
+ prefix?: string;
46
+ headerProvider?: (context?: ReadonlyContext) => Promise<Record<string, string>> | Record<string, string>;
47
+ authScheme?: AuthScheme;
48
+ authCredential?: AuthCredential;
49
+ });
50
+ /**
51
+ * Connects to the underlying MCP server, retrieves tool definitions, prefixes
52
+ * tool names, and injects destination telemetry metadata into each tool.
53
+ *
54
+ * The `headerProvider`, if configured, is invoked immediately before the
55
+ * connection is established so that tokens are always fresh.
56
+ *
57
+ * @param context - Optional readonly agent context passed to the header provider.
58
+ * @returns The resolved and optionally filtered list of {@link MCPTool} instances.
59
+ */
60
+ getTools(context?: ReadonlyContext): Promise<BaseTool[]>;
61
+ close(): Promise<void>;
62
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export declare function isGoogleApi(url: string): boolean;
7
+ export declare function cleanName(name: string): string;
@@ -0,0 +1,101 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { AgentCard, TransportProtocol } from '@a2a-js/sdk';
7
+ export declare const AGENT_REGISTRY_BASE_URL = "https://agentregistry.googleapis.com/v1alpha";
8
+ export declare const GCP_MCP_SERVER_DESTINATION_ID = "gcp.mcp.server.destination.id";
9
+ export declare enum ProtocolType {
10
+ TYPE_UNSPECIFIED = "TYPE_UNSPECIFIED",
11
+ A2A_AGENT = "A2A_AGENT",
12
+ CUSTOM = "CUSTOM"
13
+ }
14
+ export interface Interface {
15
+ url?: string;
16
+ protocolBinding?: string;
17
+ }
18
+ export interface Endpoint {
19
+ name?: string;
20
+ endpointId?: string;
21
+ displayName?: string;
22
+ description?: string;
23
+ interfaces?: Interface[];
24
+ createTime?: string;
25
+ updateTime?: string;
26
+ attributes?: Record<string, unknown>;
27
+ }
28
+ export interface GcpAuthProviderScheme {
29
+ type: 'gcpAuthProviderScheme';
30
+ name: string;
31
+ scopes?: string[];
32
+ continueUri?: string;
33
+ }
34
+ export interface McpServer {
35
+ name?: string;
36
+ displayName?: string;
37
+ mcpServerId?: string;
38
+ interfaces?: Interface[];
39
+ protocols?: Array<{
40
+ type?: ProtocolType;
41
+ protocolVersion?: string;
42
+ interfaces?: Interface[];
43
+ }>;
44
+ [key: string]: unknown;
45
+ }
46
+ export interface Binding {
47
+ target?: {
48
+ identifier?: string;
49
+ };
50
+ authProviderBinding?: {
51
+ authProvider?: string;
52
+ };
53
+ }
54
+ export interface ListBindingsResponse {
55
+ bindings?: Binding[];
56
+ }
57
+ export interface ListMcpServersResponse {
58
+ mcpServers?: Array<Record<string, unknown>>;
59
+ nextPageToken?: string;
60
+ }
61
+ export interface ListEndpointsResponse {
62
+ endpoints?: Array<Endpoint>;
63
+ nextPageToken?: string;
64
+ }
65
+ export interface ListAgentsResponse {
66
+ agents?: Array<Record<string, unknown>>;
67
+ nextPageToken?: string;
68
+ }
69
+ export interface AgentSkillMetadata {
70
+ id?: string;
71
+ name?: string;
72
+ description?: string;
73
+ tags?: string[];
74
+ examples?: unknown[];
75
+ }
76
+ export interface AgentInfo {
77
+ displayName?: string;
78
+ description?: string;
79
+ version?: string;
80
+ card?: {
81
+ type?: string;
82
+ content?: AgentCard;
83
+ };
84
+ interfaces?: Interface[];
85
+ protocols?: Array<{
86
+ type?: ProtocolType;
87
+ protocolVersion?: string;
88
+ interfaces?: Interface[];
89
+ }>;
90
+ skills?: AgentSkillMetadata[];
91
+ [key: string]: unknown;
92
+ }
93
+ export interface ConnectionUriFilter {
94
+ protocolType?: ProtocolType;
95
+ protocolBinding?: string;
96
+ }
97
+ export interface ConnectionUriResult {
98
+ url?: string;
99
+ protocolVersion?: string;
100
+ protocolBinding?: TransportProtocol;
101
+ }
@@ -0,0 +1,52 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Client } from '@google-cloud/vertexai';
7
+ import { Event } from '../events/event.js';
8
+ import { Session } from '../sessions/session.js';
9
+ import { BaseMemoryService, SearchMemoryRequest, SearchMemoryResponse } from './base_memory_service.js';
10
+ import { MemoryEntry } from './memory_entry.js';
11
+ export interface VertexAiMemoryBankServiceOptions {
12
+ projectId?: string;
13
+ location?: string;
14
+ agentEngineId: string;
15
+ expressModeApiKey?: string;
16
+ client?: Client;
17
+ }
18
+ /**
19
+ * Implementation of the BaseMemoryService using Vertex AI Memory Bank.
20
+ */
21
+ export declare class VertexAiMemoryBankService implements BaseMemoryService {
22
+ private readonly projectId?;
23
+ private readonly location?;
24
+ private readonly agentEngineId;
25
+ private readonly expressModeApiKey?;
26
+ private readonly memories;
27
+ constructor(options: VertexAiMemoryBankServiceOptions);
28
+ addSessionToMemory(session: Session): Promise<void>;
29
+ /**
30
+ * Adds events to Vertex AI Memory Bank via memories.generate.
31
+ */
32
+ addEventsToMemory(request: {
33
+ appName: string;
34
+ userId: string;
35
+ events: Event[];
36
+ sessionId?: string;
37
+ customMetadata?: Record<string, unknown>;
38
+ }): Promise<void>;
39
+ /**
40
+ * Adds explicit memory items using Vertex Memory Bank.
41
+ */
42
+ addMemory(request: {
43
+ appName: string;
44
+ userId: string;
45
+ memories: MemoryEntry[];
46
+ customMetadata?: Record<string, unknown>;
47
+ }): Promise<void>;
48
+ searchMemory(request: SearchMemoryRequest): Promise<SearchMemoryResponse>;
49
+ private addEventsToMemoryFromEvents;
50
+ private addMemoriesViaCreate;
51
+ private addMemoriesViaGenerateDirectMemoriesSource;
52
+ }
@@ -38,6 +38,16 @@ export interface BaseLlmConnection {
38
38
  * @param blob The blob to send to the model.
39
39
  */
40
40
  sendRealtime(blob: Blob): Promise<void>;
41
+ /**
42
+ * Optionally signals the start of user activity (e.g. user begins speaking)
43
+ * for models that support manual activity boundaries.
44
+ */
45
+ sendActivityStart?(): Promise<void>;
46
+ /**
47
+ * Optionally signals the end of user activity (e.g. user finishes speaking)
48
+ * for models that support manual activity boundaries.
49
+ */
50
+ sendActivityEnd?(): Promise<void>;
41
51
  /**
42
52
  * Receives the model response using the llm server connection.
43
53
  *
@@ -1,15 +1,17 @@
1
1
  /**
2
2
  * @license
3
- * Copyright 2025 Google LLC
3
+ * Copyright 2026 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { Blob, Content, Session } from '@google/genai';
6
+ import { Blob, Content, LiveServerMessage, Session } from '@google/genai';
7
7
  import { BaseLlmConnection } from './base_llm_connection.js';
8
8
  import { LlmResponse } from './llm_response.js';
9
9
  /** The Gemini model connection. */
10
10
  export declare class GeminiLlmConnection implements BaseLlmConnection {
11
11
  private readonly geminiSession;
12
- constructor(geminiSession: Session);
12
+ private readonly modelVersion?;
13
+ private readonly messageQueue?;
14
+ constructor(geminiSession: Session, modelVersion?: string | undefined, messageQueue?: AsyncIterable<LiveServerMessage> | undefined);
13
15
  /**
14
16
  * Sends the conversation history to the gemini model.
15
17
  *
@@ -36,6 +38,14 @@ export declare class GeminiLlmConnection implements BaseLlmConnection {
36
38
  * @param blob The blob to send to the model.
37
39
  */
38
40
  sendRealtime(blob: Blob): Promise<void>;
41
+ /**
42
+ * Sends an activity start signal to the model.
43
+ */
44
+ sendActivityStart(): Promise<void>;
45
+ /**
46
+ * Sends an activity end signal to the model.
47
+ */
48
+ sendActivityEnd(): Promise<void>;
39
49
  /**
40
50
  * Builds a full text response.
41
51
  *
@@ -43,9 +53,10 @@ export declare class GeminiLlmConnection implements BaseLlmConnection {
43
53
  * partial.
44
54
  *
45
55
  * @param text The text to be included in the response.
56
+ * @param isThought Whether the text is a thought.
57
+ * @param groundingMetadata The grounding metadata to include.
46
58
  * @returns An LlmResponse containing the full text.
47
59
  */
48
- private buildFullTextResponse;
49
60
  receive(): AsyncGenerator<LlmResponse, void, void>;
50
61
  /**
51
62
  * Closes the llm server connection.
@@ -3,7 +3,7 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { CitationMetadata, Content, FinishReason, GenerateContentResponse, GenerateContentResponseUsageMetadata, GroundingMetadata, LiveServerSessionResumptionUpdate, Transcription } from '@google/genai';
6
+ import { CitationMetadata, Content, FinishReason, GenerateContentResponse, GenerateContentResponseUsageMetadata, GroundingMetadata, LiveServerGoAway, LiveServerSessionResumptionUpdate, Transcription } from '@google/genai';
7
7
  /**
8
8
  * LLM response class that provides the first candidate response from the
9
9
  * model if available. Otherwise, returns error code and message.
@@ -64,6 +64,11 @@ export interface LlmResponse {
64
64
  * The session resumption update of the LlmResponse
65
65
  */
66
66
  liveSessionResumptionUpdate?: LiveServerSessionResumptionUpdate;
67
+ /**
68
+ * Server-side signal that the live connection will be closed soon. The
69
+ * caller should reconnect using the latest session resumption handle.
70
+ */
71
+ goAway?: LiveServerGoAway;
67
72
  /**
68
73
  * Audio transcription of user input.
69
74
  */
@@ -72,6 +77,10 @@ export interface LlmResponse {
72
77
  * Audio transcription of model output.
73
78
  */
74
79
  outputTranscription?: Transcription;
80
+ /** The model version used to generate the response. */
81
+ modelVersion?: string;
82
+ /** The session ID of the Live session. */
83
+ liveSessionId?: string;
75
84
  }
76
85
  /**
77
86
  * Creates an LlmResponse from a GenerateContentResponse.
@@ -17,18 +17,37 @@ export declare enum PolicyOutcome {
17
17
  CONFIRM = "CONFIRM",
18
18
  ALLOW = "ALLOW"
19
19
  }
20
+ /** The result returned by a policy engine after evaluating a tool call. */
20
21
  export interface PolicyCheckResult {
22
+ /** The policy decision: `ALLOW`, `DENY`, or `CONFIRM`. */
21
23
  outcome: string;
24
+ /** Optional human-readable explanation of the decision. */
22
25
  reason?: string;
23
26
  }
27
+ /** Context passed to a policy engine when evaluating a tool call. */
24
28
  export interface ToolCallPolicyContext {
29
+ /** The tool being invoked. */
25
30
  tool: BaseTool;
31
+ /** The arguments supplied to the tool call. */
26
32
  toolArgs: Record<string, unknown>;
27
33
  }
34
+ /** Interface for policy engines that gate tool call execution. */
28
35
  export interface BasePolicyEngine {
36
+ /**
37
+ * Evaluates whether a tool call should be allowed, denied, or confirmed.
38
+ *
39
+ * @param context - The tool and its arguments to evaluate.
40
+ * @returns A promise resolving to the policy decision.
41
+ */
29
42
  evaluate(context: ToolCallPolicyContext): Promise<PolicyCheckResult>;
30
43
  }
44
+ /** In-memory policy engine that permits all tool calls. Intended for prototyping. */
31
45
  export declare class InMemoryPolicyEngine implements BasePolicyEngine {
46
+ /**
47
+ * Always returns {@link PolicyOutcome.ALLOW} for every tool call.
48
+ *
49
+ * @returns A promise resolving to an ALLOW result.
50
+ */
32
51
  evaluate(): Promise<PolicyCheckResult>;
33
52
  }
34
53
  /**
@@ -36,9 +55,20 @@ export declare class InMemoryPolicyEngine implements BasePolicyEngine {
36
55
  */
37
56
  export declare class SecurityPlugin extends BasePlugin {
38
57
  private readonly policyEngine;
58
+ /**
59
+ * @param params - Optional configuration. Defaults to {@link InMemoryPolicyEngine}
60
+ * when no policy engine is provided.
61
+ */
39
62
  constructor(params?: {
40
63
  policyEngine?: BasePolicyEngine;
41
64
  });
65
+ /**
66
+ * Intercepts tool calls, evaluating them against the policy engine before
67
+ * execution and handling confirmation flows for calls that require it.
68
+ *
69
+ * @returns A partial or error response object if the call is blocked or
70
+ * awaiting confirmation, or `undefined` to allow execution to proceed.
71
+ */
42
72
  beforeToolCallback({ tool, toolArgs, toolContext, }: {
43
73
  tool: BaseTool;
44
74
  toolArgs: {
@@ -6,8 +6,35 @@
6
6
  import { BaseAgent } from '../agents/base_agent.js';
7
7
  import { BasePlugin } from '../plugins/base_plugin.js';
8
8
  import { Runner } from './runner.js';
9
+ /**
10
+ * A {@link Runner} pre-configured with in-memory services.
11
+ *
12
+ * Suitable for local development, testing, and prototyping. All session,
13
+ * artifact, and memory data is stored in-process and is not persisted between
14
+ * runs.
15
+ *
16
+ * Example:
17
+ * ```typescript
18
+ * const runner = new InMemoryRunner({agent: myAgent});
19
+ *
20
+ * for await (const event of runner.runEphemeral({
21
+ * userId: 'user1',
22
+ * newMessage: {parts: [{text: 'Hello'}]},
23
+ * })) {
24
+ * console.log(event);
25
+ * }
26
+ * ```
27
+ */
9
28
  export declare class InMemoryRunner extends Runner {
10
- constructor({ agent, appName, plugins, }: {
29
+ /**
30
+ * Creates a new InMemoryRunner instance.
31
+ *
32
+ * @param params The configuration for the runner.
33
+ * @param params.agent The root agent to run.
34
+ * @param params.appName The application name. Defaults to `'InMemoryRunner'`.
35
+ * @param params.plugins An optional list of plugins.
36
+ */
37
+ constructor(params: {
11
38
  agent: BaseAgent;
12
39
  appName?: string;
13
40
  plugins?: BasePlugin[];
@@ -25,10 +25,25 @@ export interface RunnerConfig {
25
25
  * The agent to run.
26
26
  */
27
27
  agent: BaseAgent;
28
+ /**
29
+ * An optional list of plugins to apply globally across all agents.
30
+ */
28
31
  plugins?: BasePlugin[];
32
+ /**
33
+ * An optional service for storing and retrieving artifacts.
34
+ */
29
35
  artifactService?: BaseArtifactService;
36
+ /**
37
+ * The service for managing sessions.
38
+ */
30
39
  sessionService: BaseSessionService;
40
+ /**
41
+ * An optional service for storing and querying agent memory.
42
+ */
31
43
  memoryService?: BaseMemoryService;
44
+ /**
45
+ * An optional service for managing authentication credentials.
46
+ */
32
47
  credentialService?: BaseCredentialService;
33
48
  }
34
49
  /**
@@ -42,6 +57,31 @@ declare const RUNNER_SIGNATURE_SYMBOL: unique symbol;
42
57
  * @returns True if the object is an instance of Runner, false otherwise.
43
58
  */
44
59
  export declare function isRunner(obj: unknown): obj is Runner;
60
+ /**
61
+ * Orchestrates agent execution for a given application.
62
+ *
63
+ * The Runner manages the full lifecycle of an agent invocation: it loads the
64
+ * session, invokes plugin callbacks, runs the root agent, and yields the
65
+ * resulting events. Use {@link InMemoryRunner} for quick prototyping without
66
+ * external services.
67
+ *
68
+ * Example:
69
+ * ```typescript
70
+ * const runner = new Runner({
71
+ * appName: 'my_app',
72
+ * agent: myAgent,
73
+ * sessionService: new InMemorySessionService(),
74
+ * });
75
+ *
76
+ * for await (const event of runner.runAsync({
77
+ * userId: 'user1',
78
+ * sessionId: 'session1',
79
+ * newMessage: {parts: [{text: 'Hello'}]},
80
+ * })) {
81
+ * console.log(event);
82
+ * }
83
+ * ```
84
+ */
45
85
  export declare class Runner {
46
86
  readonly [RUNNER_SIGNATURE_SYMBOL] = true;
47
87
  readonly appName: string;
@@ -51,6 +91,11 @@ export declare class Runner {
51
91
  readonly sessionService: BaseSessionService;
52
92
  readonly memoryService?: BaseMemoryService;
53
93
  readonly credentialService?: BaseCredentialService;
94
+ /**
95
+ * Creates a new Runner instance.
96
+ *
97
+ * @param input The configuration for the runner.
98
+ */
54
99
  constructor(input: RunnerConfig);
55
100
  /**
56
101
  * Runs the agent with a new, ephemeral session.
@@ -66,6 +111,7 @@ export declare class Runner {
66
111
  newMessage: Content;
67
112
  stateDelta?: Record<string, unknown>;
68
113
  runConfig?: RunConfig;
114
+ customMetadata?: Record<string, unknown>;
69
115
  }): AsyncGenerator<Event, void, undefined>;
70
116
  /**
71
117
  * Runs the agent with the given message, and returns an async generator of
@@ -85,6 +131,7 @@ export declare class Runner {
85
131
  stateDelta?: Record<string, unknown>;
86
132
  runConfig?: RunConfig;
87
133
  abortSignal?: AbortSignal;
134
+ customMetadata?: Record<string, unknown>;
88
135
  }): AsyncGenerator<Event, void, undefined>;
89
136
  /**
90
137
  * Saves artifacts from the message parts and replaces the inline data with
@@ -48,6 +48,14 @@ export interface ListSessionsRequest {
48
48
  appName: string;
49
49
  /** The ID of the user. */
50
50
  userId: string;
51
+ /** Maximum number of sessions to return. */
52
+ limit?: number;
53
+ /** Zero-based index of the first session to return. Ignored if `page` is set. */
54
+ offset?: number;
55
+ /** 1-based page number. Requires `limit`. Takes precedence over `offset`. */
56
+ page?: number;
57
+ /** Sort direction by last update time. No ordering is applied if omitted. */
58
+ order?: 'asc' | 'desc';
51
59
  }
52
60
  /**
53
61
  * The parameters for `deleteSession`.
@@ -73,10 +81,20 @@ export interface AppendEventRequest {
73
81
  * The response of listing sessions.
74
82
  *
75
83
  * The events and states are not set within each Session object.
84
+ * When no pagination params were requested, `page` is 1, `limit` equals
85
+ * `totalItems`, and `totalPages` is 1 (or 0 when there are no sessions).
76
86
  */
77
87
  export interface ListSessionsResponse {
78
88
  /** A list of sessions. */
79
89
  sessions: Session[];
90
+ /** Current page number (1-based). */
91
+ page: number;
92
+ /** Page size used. Equals `totalItems` when no limit was requested. */
93
+ limit: number;
94
+ /** Total number of sessions matching the request. */
95
+ totalItems: number;
96
+ /** Total number of pages. */
97
+ totalPages: number;
80
98
  }
81
99
  /**
82
100
  * Base class for session services.
@@ -138,6 +156,10 @@ export declare abstract class BaseSessionService {
138
156
  * Removes temporary state delta keys from the event.
139
157
  */
140
158
  export declare function trimTempDeltaState(event: Event): Event;
159
+ /**
160
+ * Removes temporary state keys from the state.
161
+ */
162
+ export declare function trimTempState(state: Record<string, unknown>): Record<string, unknown>;
141
163
  /**
142
164
  * Merges app state, user state, and session state.
143
165
  *
@@ -26,7 +26,7 @@ export declare class DatabaseSessionService extends BaseSessionService {
26
26
  init(): Promise<void>;
27
27
  createSession({ appName, userId, state, sessionId, }: CreateSessionRequest): Promise<Session>;
28
28
  getSession({ appName, userId, sessionId, config, }: GetSessionRequest): Promise<Session | undefined>;
29
- listSessions({ appName, userId, }: ListSessionsRequest): Promise<ListSessionsResponse>;
29
+ listSessions({ appName, userId, limit, offset, page, order, }: ListSessionsRequest): Promise<ListSessionsResponse>;
30
30
  deleteSession({ appName, userId, sessionId, }: DeleteSessionRequest): Promise<void>;
31
31
  appendEvent({ session, event, }: AppendEventRequest): Promise<Event>;
32
32
  }
@@ -7,6 +7,7 @@ import { PrimaryKey } from '@mikro-orm/core';
7
7
  import { Event } from '../../events/event.js';
8
8
  export declare const SCHEMA_VERSION_KEY = "schema_version";
9
9
  export declare const SCHEMA_VERSION_1_JSON = "1";
10
+ export declare const STORAGE_KEY_COLUMN_LENGTH = 191;
10
11
  export declare class StorageMetadata {
11
12
  key: string;
12
13
  value: string;
@@ -24,7 +24,7 @@ export declare class InMemorySessionService extends BaseSessionService {
24
24
  private appState;
25
25
  createSession({ appName, userId, state, sessionId, }: CreateSessionRequest): Promise<Session>;
26
26
  getSession({ appName, userId, sessionId, config, }: GetSessionRequest): Promise<Session | undefined>;
27
- listSessions({ appName, userId, }: ListSessionsRequest): Promise<ListSessionsResponse>;
27
+ listSessions({ appName, userId, limit, offset, page, order, }: ListSessionsRequest): Promise<ListSessionsResponse>;
28
28
  deleteSession({ appName, userId, sessionId, }: DeleteSessionRequest): Promise<void>;
29
29
  appendEvent({ session, event, }: AppendEventRequest): Promise<Event>;
30
30
  }