@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,109 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
3
+ var __defProp = Object.defineProperty;
4
+ var __defProps = Object.defineProperties;
5
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
6
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
9
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
10
+ var __spreadValues = (a, b) => {
11
+ for (var prop in b || (b = {}))
12
+ if (__hasOwnProp.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ if (__getOwnPropSymbols)
15
+ for (var prop of __getOwnPropSymbols(b)) {
16
+ if (__propIsEnum.call(b, prop))
17
+ __defNormalProp(a, prop, b[prop]);
18
+ }
19
+ return a;
20
+ };
21
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
22
+ /**
23
+ * @license
24
+ * Copyright 2026 Google LLC
25
+ * SPDX-License-Identifier: Apache-2.0
26
+ */
27
+ import { BaseToolset } from "../../tools/base_toolset.js";
28
+ import {
29
+ MCPSessionManager
30
+ } from "../../tools/mcp/mcp_session_manager.js";
31
+ import { MCPTool } from "../../tools/mcp/mcp_tool.js";
32
+ import { GCP_MCP_SERVER_DESTINATION_ID } from "./types.js";
33
+ class AgentRegistrySingleMCPToolset extends BaseToolset {
34
+ /**
35
+ * @param options - Configuration for the MCP toolset.
36
+ * @param options.destinationResourceId - Telemetry identifier injected as
37
+ * `gcp.mcp.server.destination.id` into each resolved tool's custom metadata.
38
+ * @param options.connectionParams - HTTP connection parameters for the MCP server.
39
+ * @param options.toolFilter - Optional predicate or list of tool names to include.
40
+ * When omitted, all tools from the server are returned.
41
+ * @param options.prefix - Optional prefix prepended to each tool name (e.g. `myServer_toolName`).
42
+ * @param options.headerProvider - Optional async function called immediately before each
43
+ * {@link getTools} invocation to supply or refresh request headers (e.g. GCP auth tokens).
44
+ * @param options.authScheme - Optional auth scheme forwarded to each resolved tool.
45
+ * @param options.authCredential - Optional credential forwarded to each resolved tool.
46
+ */
47
+ constructor(options) {
48
+ super(options.toolFilter || [], options.prefix);
49
+ this.destinationResourceId = options.destinationResourceId;
50
+ this.connectionParams = options.connectionParams;
51
+ this.headerProvider = options.headerProvider;
52
+ this.authScheme = options.authScheme;
53
+ this.authCredential = options.authCredential;
54
+ }
55
+ /**
56
+ * Connects to the underlying MCP server, retrieves tool definitions, prefixes
57
+ * tool names, and injects destination telemetry metadata into each tool.
58
+ *
59
+ * The `headerProvider`, if configured, is invoked immediately before the
60
+ * connection is established so that tokens are always fresh.
61
+ *
62
+ * @param context - Optional readonly agent context passed to the header provider.
63
+ * @returns The resolved and optionally filtered list of {@link MCPTool} instances.
64
+ */
65
+ async getTools(context) {
66
+ var _a, _b, _c;
67
+ const headers = {};
68
+ if (this.headerProvider) {
69
+ const providerHeaders = await this.headerProvider(context);
70
+ Object.assign(headers, providerHeaders);
71
+ }
72
+ const connectionParamsCopy = __spreadProps(__spreadValues({}, this.connectionParams), {
73
+ transportOptions: __spreadProps(__spreadValues({}, this.connectionParams.transportOptions), {
74
+ requestInit: __spreadProps(__spreadValues({}, (_a = this.connectionParams.transportOptions) == null ? void 0 : _a.requestInit), {
75
+ headers: __spreadValues(__spreadValues({}, (_c = (_b = this.connectionParams.transportOptions) == null ? void 0 : _b.requestInit) == null ? void 0 : _c.headers), headers)
76
+ })
77
+ })
78
+ });
79
+ const sessionManager = new MCPSessionManager(connectionParamsCopy);
80
+ const session = await sessionManager.createSession();
81
+ const listResult = await session.listTools();
82
+ const tools = listResult.tools.map((tool) => {
83
+ const prefixedName = this.prefix ? "".concat(this.prefix, "_").concat(tool.name) : tool.name;
84
+ const mcpTool = new MCPTool(
85
+ __spreadProps(__spreadValues({}, tool), { name: prefixedName }),
86
+ sessionManager,
87
+ tool.name
88
+ );
89
+ const toolWithMetadata = mcpTool;
90
+ if (this.destinationResourceId) {
91
+ if (!toolWithMetadata.customMetadata) {
92
+ toolWithMetadata.customMetadata = {};
93
+ }
94
+ toolWithMetadata.customMetadata[GCP_MCP_SERVER_DESTINATION_ID] = this.destinationResourceId;
95
+ }
96
+ return mcpTool;
97
+ });
98
+ const filter = this.toolFilter;
99
+ if (!filter || Array.isArray(filter) && filter.length === 0) {
100
+ return tools;
101
+ }
102
+ return tools.filter((t) => this.isToolSelected(t, context));
103
+ }
104
+ async close() {
105
+ }
106
+ }
107
+ export {
108
+ AgentRegistrySingleMCPToolset
109
+ };
@@ -0,0 +1,28 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
3
+ /**
4
+ * @license
5
+ * Copyright 2026 Google LLC
6
+ * SPDX-License-Identifier: Apache-2.0
7
+ */
8
+ function isGoogleApi(url) {
9
+ try {
10
+ const parsed = new URL(url);
11
+ return parsed.hostname === "googleapis.com" || parsed.hostname.endsWith(".googleapis.com");
12
+ } catch (e) {
13
+ return false;
14
+ }
15
+ }
16
+ function cleanName(name) {
17
+ let clean = name.replace(/[^a-zA-Z0-9_]/g, "_");
18
+ clean = clean.replace(/_+/g, "_");
19
+ clean = clean.replace(/^_+|_+$/g, "");
20
+ if (clean && !/^[a-zA-Z_]/.test(clean)) {
21
+ clean = "_" + clean;
22
+ }
23
+ return clean;
24
+ }
25
+ export {
26
+ cleanName,
27
+ isGoogleApi
28
+ };
@@ -0,0 +1,20 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
3
+ /**
4
+ * @license
5
+ * Copyright 2026 Google LLC
6
+ * SPDX-License-Identifier: Apache-2.0
7
+ */
8
+ const AGENT_REGISTRY_BASE_URL = "https://agentregistry.googleapis.com/v1alpha";
9
+ const GCP_MCP_SERVER_DESTINATION_ID = "gcp.mcp.server.destination.id";
10
+ var ProtocolType = /* @__PURE__ */ ((ProtocolType2) => {
11
+ ProtocolType2["TYPE_UNSPECIFIED"] = "TYPE_UNSPECIFIED";
12
+ ProtocolType2["A2A_AGENT"] = "A2A_AGENT";
13
+ ProtocolType2["CUSTOM"] = "CUSTOM";
14
+ return ProtocolType2;
15
+ })(ProtocolType || {});
16
+ export {
17
+ AGENT_REGISTRY_BASE_URL,
18
+ GCP_MCP_SERVER_DESTINATION_ID,
19
+ ProtocolType
20
+ };
@@ -0,0 +1,475 @@
1
+ import {createRequire as topLevelCreateRequire} from 'module';
2
+ const require = topLevelCreateRequire(import.meta.url);
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ /**
20
+ * @license
21
+ * Copyright 2026 Google LLC
22
+ * SPDX-License-Identifier: Apache-2.0
23
+ */
24
+ import { Client } from "@google-cloud/vertexai";
25
+ import { createUserContent } from "@google/genai";
26
+ import { logger } from "../utils/logger.js";
27
+ import { getExpressModeApiKey } from "../utils/vertex_ai_utils.js";
28
+ const GENERATE_MEMORIES_KNOWN_FIELDS = [
29
+ "disableConsolidation",
30
+ "waitForCompletion",
31
+ "revisionLabels",
32
+ "revisionExpireTime",
33
+ "revisionTtl",
34
+ "disableMemoryRevisions",
35
+ "metadataMergeStrategy",
36
+ "allowedTopics"
37
+ ];
38
+ const CREATE_MEMORY_KNOWN_FIELDS = [
39
+ "displayName",
40
+ "description",
41
+ "waitForCompletion",
42
+ "ttl",
43
+ "expireTime",
44
+ "revisionExpireTime",
45
+ "revisionTtl",
46
+ "disableMemoryRevisions",
47
+ "topics",
48
+ "memoryId"
49
+ ];
50
+ const ENABLE_CONSOLIDATION_KEY = "enable_consolidation";
51
+ const MAX_DIRECT_MEMORIES_PER_GENERATE_CALL = 5;
52
+ function shouldFilterOutEvent(content) {
53
+ return !((content == null ? void 0 : content.parts) || []).some(
54
+ (p) => p.text || p.inlineData || p.fileData
55
+ );
56
+ }
57
+ function toVertexMetadataValue(key, value) {
58
+ if (typeof value === "boolean") {
59
+ return { boolValue: value };
60
+ }
61
+ if (typeof value === "number") {
62
+ return { doubleValue: value };
63
+ }
64
+ if (typeof value === "string") {
65
+ return { stringValue: value };
66
+ }
67
+ if (value instanceof Date) {
68
+ return { timestampValue: value.toISOString() };
69
+ }
70
+ if (typeof value === "object" && value !== null) {
71
+ const v = value;
72
+ if (v.boolValue !== void 0 || v.doubleValue !== void 0 || v.stringValue !== void 0 || v.timestampValue !== void 0) {
73
+ return v;
74
+ }
75
+ return { stringValue: JSON.stringify(value) };
76
+ }
77
+ if (value === null || value === void 0) {
78
+ logger.warn(
79
+ "Ignoring custom metadata key ".concat(key, " because its value is null or undefined.")
80
+ );
81
+ return void 0;
82
+ }
83
+ return { stringValue: String(value) };
84
+ }
85
+ class VertexAiMemoryBankService {
86
+ constructor(options) {
87
+ if (!options.agentEngineId) {
88
+ throw new Error(
89
+ "agentEngineId is required for VertexAiMemoryBankService."
90
+ );
91
+ }
92
+ this.projectId = options.projectId;
93
+ this.location = options.location;
94
+ this.agentEngineId = options.agentEngineId;
95
+ this.expressModeApiKey = getExpressModeApiKey(
96
+ options.projectId,
97
+ options.location,
98
+ options.expressModeApiKey
99
+ );
100
+ if (options.agentEngineId.includes("/")) {
101
+ logger.warn(
102
+ "agentEngineId appears to be a full resource path: '".concat(options.agentEngineId, "'. ") + "Expected just the ID (e.g., '456'). Extract the ID using: agentEngine.apiResource.name.split('/').pop()"
103
+ );
104
+ }
105
+ if (options.client) {
106
+ this.memories = options.client.agentEnginesInternal.memories;
107
+ } else {
108
+ const client = new Client({
109
+ project: this.projectId,
110
+ location: this.location
111
+ });
112
+ this.memories = client.agentEnginesInternal.memories;
113
+ }
114
+ }
115
+ async addSessionToMemory(session) {
116
+ await this.addEventsToMemoryFromEvents({
117
+ appName: session.appName,
118
+ userId: session.userId,
119
+ eventsToProcess: session.events
120
+ });
121
+ }
122
+ /**
123
+ * Adds events to Vertex AI Memory Bank via memories.generate.
124
+ */
125
+ async addEventsToMemory(request) {
126
+ await this.addEventsToMemoryFromEvents({
127
+ appName: request.appName,
128
+ userId: request.userId,
129
+ eventsToProcess: request.events,
130
+ customMetadata: request.customMetadata
131
+ });
132
+ }
133
+ /**
134
+ * Adds explicit memory items using Vertex Memory Bank.
135
+ */
136
+ async addMemory(request) {
137
+ if (isConsolidationEnabled(request.customMetadata)) {
138
+ return this.addMemoriesViaGenerateDirectMemoriesSource(request);
139
+ }
140
+ await this.addMemoriesViaCreate(request);
141
+ }
142
+ async searchMemory(request) {
143
+ const params = {
144
+ name: "reasoningEngines/".concat(this.agentEngineId),
145
+ scope: {
146
+ app_name: request.appName,
147
+ user_id: request.userId
148
+ },
149
+ similaritySearchParams: {
150
+ searchQuery: request.query
151
+ }
152
+ };
153
+ const retrievedMemoriesResponse = await this.memories.retrieveInternal(params);
154
+ logger.debug("Search memory response received.");
155
+ const memoryEvents = [];
156
+ const retrievedMemories = retrievedMemoriesResponse.retrievedMemories || [];
157
+ for (const retrievedMemory of retrievedMemories) {
158
+ logger.debug("Retrieved memory: ".concat(JSON.stringify(retrievedMemory)));
159
+ if (retrievedMemory.memory && retrievedMemory.memory.fact) {
160
+ const content = createUserContent(retrievedMemory.memory.fact);
161
+ memoryEvents.push({
162
+ author: "user",
163
+ content,
164
+ timestamp: retrievedMemory.memory.updateTime
165
+ });
166
+ }
167
+ }
168
+ return { memories: memoryEvents };
169
+ }
170
+ async addEventsToMemoryFromEvents(request) {
171
+ const directEvents = [];
172
+ for (const event of request.eventsToProcess) {
173
+ if (shouldFilterOutEvent(event.content)) {
174
+ continue;
175
+ }
176
+ directEvents.push({
177
+ content: JSON.parse(JSON.stringify(event.content))
178
+ });
179
+ }
180
+ if (directEvents.length > 0) {
181
+ const config = buildGenerateMemoriesConfig(request.customMetadata);
182
+ const params = {
183
+ name: "reasoningEngines/".concat(this.agentEngineId),
184
+ directContentsSource: { events: directEvents },
185
+ scope: {
186
+ app_name: request.appName,
187
+ user_id: request.userId
188
+ },
189
+ config
190
+ };
191
+ const operation = await this.memories.generateInternal(params);
192
+ logger.debug("Generate memory response received.");
193
+ logger.debug("Generate memory response: ".concat(JSON.stringify(operation)));
194
+ } else {
195
+ logger.info("No events to add to memory.");
196
+ }
197
+ }
198
+ async addMemoriesViaCreate(request) {
199
+ const validatedMemories = normalizeMemoriesForCreate(request.memories);
200
+ for (let index = 0; index < validatedMemories.length; index++) {
201
+ const memory = validatedMemories[index];
202
+ const memoryFact = memoryEntryToFact(memory, index);
203
+ const memoryMetadata = mergeCustomMetadataForMemory({
204
+ customMetadata: request.customMetadata,
205
+ memory
206
+ });
207
+ const memoryRevisionLabels = revisionLabelsForMemory(memory);
208
+ const config = buildCreateMemoryConfig({
209
+ customMetadata: memoryMetadata,
210
+ memoryRevisionLabels
211
+ });
212
+ const params = {
213
+ name: "reasoningEngines/".concat(this.agentEngineId),
214
+ fact: memoryFact,
215
+ scope: {
216
+ app_name: request.appName,
217
+ user_id: request.userId
218
+ },
219
+ config
220
+ };
221
+ const operation = await this.memories.createInternal(params);
222
+ logger.info("Create memory response received.");
223
+ logger.debug("Create memory response: ".concat(JSON.stringify(operation)));
224
+ }
225
+ }
226
+ async addMemoriesViaGenerateDirectMemoriesSource(request) {
227
+ const validatedMemories = normalizeMemoriesForCreate(request.memories);
228
+ const memoryTexts = validatedMemories.map(
229
+ (m, i) => memoryEntryToFact(m, i)
230
+ );
231
+ const config = buildGenerateMemoriesConfig(request.customMetadata);
232
+ const memoryBatches = iterMemoryBatches(memoryTexts);
233
+ for (const memoryBatch of memoryBatches) {
234
+ const params = {
235
+ name: "reasoningEngines/".concat(this.agentEngineId),
236
+ directMemoriesSource: {
237
+ directMemories: memoryBatch.map((fact) => ({ fact }))
238
+ },
239
+ scope: {
240
+ app_name: request.appName,
241
+ user_id: request.userId
242
+ },
243
+ config
244
+ };
245
+ const operation = await this.memories.generateInternal(params);
246
+ logger.info("Generate direct memory response received.");
247
+ logger.debug(
248
+ "Generate direct memory response: ".concat(JSON.stringify(operation))
249
+ );
250
+ }
251
+ }
252
+ }
253
+ function buildCreateMemoryConfig(params) {
254
+ const config = { waitForCompletion: false };
255
+ if (params.customMetadata) {
256
+ logger.debug(
257
+ "Memory creation metadata: ".concat(JSON.stringify(params.customMetadata))
258
+ );
259
+ }
260
+ const metadataByKey = {};
261
+ const customRevisionLabels = {};
262
+ for (const [key, value] of Object.entries(params.customMetadata || {})) {
263
+ if (key === ENABLE_CONSOLIDATION_KEY) {
264
+ continue;
265
+ }
266
+ if (key === "metadata") {
267
+ if (value === null || value === void 0) continue;
268
+ if (typeof value === "object" && !Array.isArray(value)) {
269
+ config["metadata"] = buildVertexMetadata(
270
+ value
271
+ );
272
+ } else {
273
+ logger.warn(
274
+ 'Ignoring metadata because customMetadata["metadata"] is not an object.'
275
+ );
276
+ }
277
+ continue;
278
+ }
279
+ if (key === "revisionLabels") {
280
+ if (value === null || value === void 0) continue;
281
+ const extractedLabels = extractRevisionLabels(
282
+ value,
283
+ 'customMetadata["revisionLabels"]'
284
+ );
285
+ if (extractedLabels) {
286
+ Object.assign(customRevisionLabels, extractedLabels);
287
+ }
288
+ continue;
289
+ }
290
+ if (CREATE_MEMORY_KNOWN_FIELDS.includes(key)) {
291
+ if (value !== null && value !== void 0) {
292
+ config[key] = value;
293
+ }
294
+ } else {
295
+ metadataByKey[key] = value;
296
+ }
297
+ }
298
+ if (Object.keys(metadataByKey).length > 0) {
299
+ const existingMetadata = config["metadata"];
300
+ if (!existingMetadata) {
301
+ config["metadata"] = buildVertexMetadata(metadataByKey);
302
+ } else {
303
+ config["metadata"] = __spreadValues(__spreadValues({}, existingMetadata), buildVertexMetadata(metadataByKey));
304
+ }
305
+ }
306
+ const revisionLabels = __spreadValues(__spreadValues({}, customRevisionLabels), params.memoryRevisionLabels);
307
+ if (Object.keys(revisionLabels).length > 0) {
308
+ config["revisionLabels"] = revisionLabels;
309
+ }
310
+ return config;
311
+ }
312
+ function extractRevisionLabels(value, source) {
313
+ if (typeof value !== "object" || value === null || Array.isArray(value)) {
314
+ logger.warn("Ignoring ".concat(source, " because it is not an object."));
315
+ return void 0;
316
+ }
317
+ const revisionLabels = {};
318
+ for (const [key, labelValue] of Object.entries(value)) {
319
+ if (typeof labelValue !== "string") {
320
+ logger.warn(
321
+ "Ignoring revision label ".concat(key, " from ").concat(source, " because its value is not a string.")
322
+ );
323
+ continue;
324
+ }
325
+ revisionLabels[key] = labelValue;
326
+ }
327
+ if (Object.keys(revisionLabels).length === 0) {
328
+ return void 0;
329
+ }
330
+ return revisionLabels;
331
+ }
332
+ function buildVertexMetadata(metadataByKey) {
333
+ const vertexMetadata = {};
334
+ for (const [key, value] of Object.entries(metadataByKey)) {
335
+ const convertedValue = toVertexMetadataValue(key, value);
336
+ if (convertedValue !== void 0) {
337
+ vertexMetadata[key] = convertedValue;
338
+ }
339
+ }
340
+ return vertexMetadata;
341
+ }
342
+ function buildGenerateMemoriesConfig(customMetadata) {
343
+ const config = { waitForCompletion: false };
344
+ if (!customMetadata) {
345
+ return config;
346
+ }
347
+ logger.debug("Memory generation metadata: ".concat(JSON.stringify(customMetadata)));
348
+ const metadataByKey = {};
349
+ for (const [key, value] of Object.entries(customMetadata)) {
350
+ if (key === ENABLE_CONSOLIDATION_KEY) {
351
+ continue;
352
+ }
353
+ if (key === "ttl") {
354
+ if (value === null || value === void 0) continue;
355
+ if (customMetadata["revisionTtl"] === void 0) {
356
+ config["revisionTtl"] = value;
357
+ }
358
+ continue;
359
+ }
360
+ if (key === "metadata") {
361
+ if (value === null || value === void 0) continue;
362
+ if (typeof value === "object" && !Array.isArray(value)) {
363
+ config["metadata"] = buildVertexMetadata(
364
+ value
365
+ );
366
+ } else {
367
+ logger.warn(
368
+ 'Ignoring metadata because customMetadata["metadata"] is not an object.'
369
+ );
370
+ }
371
+ continue;
372
+ }
373
+ if (GENERATE_MEMORIES_KNOWN_FIELDS.includes(key)) {
374
+ if (value !== null && value !== void 0) {
375
+ config[key] = value;
376
+ }
377
+ } else {
378
+ metadataByKey[key] = value;
379
+ }
380
+ }
381
+ if (Object.keys(metadataByKey).length > 0) {
382
+ const existingMetadata = config["metadata"];
383
+ if (!existingMetadata) {
384
+ config["metadata"] = buildVertexMetadata(metadataByKey);
385
+ } else {
386
+ config["metadata"] = __spreadValues(__spreadValues({}, existingMetadata), buildVertexMetadata(metadataByKey));
387
+ }
388
+ }
389
+ return config;
390
+ }
391
+ function normalizeMemoriesForCreate(memories) {
392
+ if (!Array.isArray(memories)) {
393
+ throw new TypeError("memories must be a sequence of memory items.");
394
+ }
395
+ if (memories.length === 0) {
396
+ throw new Error("memories must contain at least one entry.");
397
+ }
398
+ return memories;
399
+ }
400
+ function memoryEntryToFact(memory, index) {
401
+ const textParts = [];
402
+ if (memory.content && memory.content.parts) {
403
+ for (const part of memory.content.parts) {
404
+ if (part.inlineData || part.fileData) {
405
+ throw new Error(
406
+ "memories[".concat(index, "] must include text only; inlineData and fileData are not supported.")
407
+ );
408
+ }
409
+ if (part.text) {
410
+ const strippedText = part.text.trim();
411
+ if (strippedText) {
412
+ textParts.push(strippedText);
413
+ }
414
+ }
415
+ }
416
+ }
417
+ if (textParts.length === 0) {
418
+ throw new Error("memories[".concat(index, "] must include non-whitespace text."));
419
+ }
420
+ return textParts.join("\n");
421
+ }
422
+ function mergeCustomMetadataForMemory(params) {
423
+ const mergedMetadata = {};
424
+ if (params.customMetadata) {
425
+ Object.assign(mergedMetadata, params.customMetadata);
426
+ }
427
+ const memoryWithMetadata = params.memory;
428
+ if (memoryWithMetadata.customMetadata) {
429
+ Object.assign(mergedMetadata, memoryWithMetadata.customMetadata);
430
+ }
431
+ if (Object.keys(mergedMetadata).length === 0) {
432
+ return void 0;
433
+ }
434
+ return mergedMetadata;
435
+ }
436
+ function revisionLabelsForMemory(memory) {
437
+ const revisionLabels = {};
438
+ if (memory.author) {
439
+ revisionLabels["author"] = memory.author;
440
+ }
441
+ if (memory.timestamp) {
442
+ revisionLabels["timestamp"] = memory.timestamp;
443
+ }
444
+ if (Object.keys(revisionLabels).length === 0) {
445
+ return void 0;
446
+ }
447
+ return revisionLabels;
448
+ }
449
+ function isConsolidationEnabled(customMetadata) {
450
+ if (!customMetadata) {
451
+ return false;
452
+ }
453
+ const enableConsolidation = customMetadata[ENABLE_CONSOLIDATION_KEY];
454
+ if (enableConsolidation === void 0) {
455
+ return false;
456
+ }
457
+ if (typeof enableConsolidation !== "boolean") {
458
+ throw new TypeError(
459
+ 'customMetadata["'.concat(ENABLE_CONSOLIDATION_KEY, '"] must be a bool.')
460
+ );
461
+ }
462
+ return enableConsolidation;
463
+ }
464
+ function iterMemoryBatches(memories) {
465
+ const memoryBatches = [];
466
+ for (let index = 0; index < memories.length; index += MAX_DIRECT_MEMORIES_PER_GENERATE_CALL) {
467
+ memoryBatches.push(
468
+ memories.slice(index, index + MAX_DIRECT_MEMORIES_PER_GENERATE_CALL)
469
+ );
470
+ }
471
+ return memoryBatches;
472
+ }
473
+ export {
474
+ VertexAiMemoryBankService
475
+ };