@n8n/ai-utilities 0.23.3 → 0.24.1

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 (282) hide show
  1. package/dist/cjs/adapters/langchain-chat-model.js +174 -184
  2. package/dist/cjs/adapters/langchain-chat-model.js.map +1 -1
  3. package/dist/cjs/adapters/langchain-history.js +23 -33
  4. package/dist/cjs/adapters/langchain-history.js.map +1 -1
  5. package/dist/cjs/adapters/langchain-memory.js +32 -42
  6. package/dist/cjs/adapters/langchain-memory.js.map +1 -1
  7. package/dist/cjs/agent-config/config-normalization.d.ts +11 -0
  8. package/dist/cjs/agent-config/config-normalization.js +134 -0
  9. package/dist/cjs/agent-config/config-normalization.js.map +1 -0
  10. package/dist/cjs/agent-config/from-ai-node-parameters.d.ts +7 -0
  11. package/dist/cjs/agent-config/from-ai-node-parameters.js +43 -0
  12. package/dist/cjs/agent-config/from-ai-node-parameters.js.map +1 -0
  13. package/dist/cjs/agent-config/index.d.ts +3 -0
  14. package/dist/cjs/agent-config/index.js +17 -0
  15. package/dist/cjs/agent-config/index.js.map +1 -0
  16. package/dist/cjs/agent-config/model-id.d.ts +5 -0
  17. package/dist/cjs/agent-config/model-id.js +16 -0
  18. package/dist/cjs/agent-config/model-id.js.map +1 -0
  19. package/dist/cjs/agent-config/native-web-search-provider-tools.d.ts +7 -0
  20. package/dist/cjs/agent-config/native-web-search-provider-tools.js +55 -0
  21. package/dist/cjs/agent-config/native-web-search-provider-tools.js.map +1 -0
  22. package/dist/cjs/ai-node-sdk-version.js +4 -14
  23. package/dist/cjs/ai-node-sdk-version.js.map +1 -1
  24. package/dist/cjs/chat-model/base.js +21 -31
  25. package/dist/cjs/chat-model/base.js.map +1 -1
  26. package/dist/cjs/converters/message.js +308 -318
  27. package/dist/cjs/converters/message.js.map +1 -1
  28. package/dist/cjs/converters/tool.js +50 -60
  29. package/dist/cjs/converters/tool.js.map +1 -1
  30. package/dist/cjs/guards.js +26 -36
  31. package/dist/cjs/guards.js.map +1 -1
  32. package/dist/cjs/index.js +99 -108
  33. package/dist/cjs/index.js.map +1 -1
  34. package/dist/cjs/memory/base-chat-history.js +9 -19
  35. package/dist/cjs/memory/base-chat-history.js.map +1 -1
  36. package/dist/cjs/memory/base-chat-memory.js +6 -16
  37. package/dist/cjs/memory/base-chat-memory.js.map +1 -1
  38. package/dist/cjs/memory/windowed-chat-memory.js +33 -43
  39. package/dist/cjs/memory/windowed-chat-memory.js.map +1 -1
  40. package/dist/cjs/model-discovery/index.js +61 -71
  41. package/dist/cjs/model-discovery/index.js.map +1 -1
  42. package/dist/cjs/model-discovery/providers/anthropic.js +12 -22
  43. package/dist/cjs/model-discovery/providers/anthropic.js.map +1 -1
  44. package/dist/cjs/model-discovery/providers/cohere.js +12 -22
  45. package/dist/cjs/model-discovery/providers/cohere.js.map +1 -1
  46. package/dist/cjs/model-discovery/providers/deepseek.js +5 -15
  47. package/dist/cjs/model-discovery/providers/deepseek.js.map +1 -1
  48. package/dist/cjs/model-discovery/providers/google.js +15 -25
  49. package/dist/cjs/model-discovery/providers/google.js.map +1 -1
  50. package/dist/cjs/model-discovery/providers/groq.js +9 -19
  51. package/dist/cjs/model-discovery/providers/groq.js.map +1 -1
  52. package/dist/cjs/model-discovery/providers/mistral.js +11 -21
  53. package/dist/cjs/model-discovery/providers/mistral.js.map +1 -1
  54. package/dist/cjs/model-discovery/providers/nvidia.js +21 -31
  55. package/dist/cjs/model-discovery/providers/nvidia.js.map +1 -1
  56. package/dist/cjs/model-discovery/providers/openai.js +31 -41
  57. package/dist/cjs/model-discovery/providers/openai.js.map +1 -1
  58. package/dist/cjs/model-discovery/providers/openrouter.js +5 -15
  59. package/dist/cjs/model-discovery/providers/openrouter.js.map +1 -1
  60. package/dist/cjs/model-discovery/providers/vercel.js +5 -15
  61. package/dist/cjs/model-discovery/providers/vercel.js.map +1 -1
  62. package/dist/cjs/model-discovery/providers/xai.js +5 -15
  63. package/dist/cjs/model-discovery/providers/xai.js.map +1 -1
  64. package/dist/cjs/model-discovery/request.js +40 -50
  65. package/dist/cjs/model-discovery/request.js.map +1 -1
  66. package/dist/cjs/model-discovery/types.js +2 -12
  67. package/dist/cjs/node-catalog/discriminator-utils.js +75 -85
  68. package/dist/cjs/node-catalog/discriminator-utils.js.map +1 -1
  69. package/dist/cjs/node-catalog/dynamic-node-parameters.js +169 -179
  70. package/dist/cjs/node-catalog/dynamic-node-parameters.js.map +1 -1
  71. package/dist/cjs/node-catalog/get.js +349 -359
  72. package/dist/cjs/node-catalog/get.js.map +1 -1
  73. package/dist/cjs/node-catalog/index.js +42 -52
  74. package/dist/cjs/node-catalog/index.js.map +1 -1
  75. package/dist/cjs/node-catalog/lean-node-type.js +46 -56
  76. package/dist/cjs/node-catalog/lean-node-type.js.map +1 -1
  77. package/dist/cjs/node-catalog/node-type-parser.js +61 -71
  78. package/dist/cjs/node-catalog/node-type-parser.js.map +1 -1
  79. package/dist/cjs/node-catalog/resource-operation-extractor.js +133 -143
  80. package/dist/cjs/node-catalog/resource-operation-extractor.js.map +1 -1
  81. package/dist/cjs/node-catalog/search-engine.js +285 -295
  82. package/dist/cjs/node-catalog/search-engine.js.map +1 -1
  83. package/dist/cjs/node-catalog/search.js +280 -290
  84. package/dist/cjs/node-catalog/search.js.map +1 -1
  85. package/dist/cjs/node-catalog/suggested-nodes-data.js +235 -245
  86. package/dist/cjs/node-catalog/suggested-nodes-data.js.map +1 -1
  87. package/dist/cjs/node-catalog/suggested.js +63 -73
  88. package/dist/cjs/node-catalog/suggested.js.map +1 -1
  89. package/dist/cjs/node-catalog/types.js +2 -12
  90. package/dist/cjs/suppliers/supplyMemory.js +13 -23
  91. package/dist/cjs/suppliers/supplyMemory.js.map +1 -1
  92. package/dist/cjs/suppliers/supplyModel.js +72 -82
  93. package/dist/cjs/suppliers/supplyModel.js.map +1 -1
  94. package/dist/cjs/typecheck.tsbuildinfo +1 -1
  95. package/dist/cjs/types/chat-model.js +2 -12
  96. package/dist/cjs/types/json.js +2 -12
  97. package/dist/cjs/types/memory.js +2 -12
  98. package/dist/cjs/types/message.js +2 -12
  99. package/dist/cjs/types/openai.js +2 -12
  100. package/dist/cjs/types/output.js +2 -12
  101. package/dist/cjs/types/tool.js +2 -12
  102. package/dist/cjs/utils/embeddings-input-validation.js +24 -34
  103. package/dist/cjs/utils/embeddings-input-validation.js.map +1 -1
  104. package/dist/cjs/utils/failed-attempt-handler/n8nDefaultFailedAttemptHandler.js +27 -37
  105. package/dist/cjs/utils/failed-attempt-handler/n8nDefaultFailedAttemptHandler.js.map +1 -1
  106. package/dist/cjs/utils/failed-attempt-handler/n8nLlmFailedAttemptHandler.d.ts +1 -1
  107. package/dist/cjs/utils/failed-attempt-handler/n8nLlmFailedAttemptHandler.js +23 -33
  108. package/dist/cjs/utils/failed-attempt-handler/n8nLlmFailedAttemptHandler.js.map +1 -1
  109. package/dist/cjs/utils/follow-redirects.js +38 -48
  110. package/dist/cjs/utils/follow-redirects.js.map +1 -1
  111. package/dist/cjs/utils/fromai-helpers.js +21 -31
  112. package/dist/cjs/utils/fromai-helpers.js.map +1 -1
  113. package/dist/cjs/utils/fromai-tool-factory.js +18 -28
  114. package/dist/cjs/utils/fromai-tool-factory.js.map +1 -1
  115. package/dist/cjs/utils/helpers.js +44 -54
  116. package/dist/cjs/utils/helpers.js.map +1 -1
  117. package/dist/cjs/utils/http-proxy-agent.js +38 -48
  118. package/dist/cjs/utils/http-proxy-agent.js.map +1 -1
  119. package/dist/cjs/utils/lazy-import.d.ts +1 -0
  120. package/dist/cjs/utils/lazy-import.js +7 -0
  121. package/dist/cjs/utils/lazy-import.js.map +1 -0
  122. package/dist/cjs/utils/loaders/n8n-pdf-loader.js +50 -94
  123. package/dist/cjs/utils/loaders/n8n-pdf-loader.js.map +1 -1
  124. package/dist/cjs/utils/log-ai-event.js +10 -20
  125. package/dist/cjs/utils/log-ai-event.js.map +1 -1
  126. package/dist/cjs/utils/log-wrapper.d.ts +1 -1
  127. package/dist/cjs/utils/log-wrapper.js +313 -323
  128. package/dist/cjs/utils/log-wrapper.js.map +1 -1
  129. package/dist/cjs/utils/n8n-binary-loader.js +143 -153
  130. package/dist/cjs/utils/n8n-binary-loader.js.map +1 -1
  131. package/dist/cjs/utils/n8n-json-loader.js +57 -67
  132. package/dist/cjs/utils/n8n-json-loader.js.map +1 -1
  133. package/dist/cjs/utils/n8n-llm-tracing.js +164 -174
  134. package/dist/cjs/utils/n8n-llm-tracing.js.map +1 -1
  135. package/dist/cjs/utils/redact-headers.js +42 -52
  136. package/dist/cjs/utils/redact-headers.js.map +1 -1
  137. package/dist/cjs/utils/shared-fields.js +137 -147
  138. package/dist/cjs/utils/shared-fields.js.map +1 -1
  139. package/dist/cjs/utils/sse.js +83 -93
  140. package/dist/cjs/utils/sse.js.map +1 -1
  141. package/dist/cjs/utils/text-editor.js +274 -284
  142. package/dist/cjs/utils/text-editor.js.map +1 -1
  143. package/dist/cjs/utils/tokenizer/tiktoken.js +38 -48
  144. package/dist/cjs/utils/tokenizer/tiktoken.js.map +1 -1
  145. package/dist/cjs/utils/tokenizer/token-estimator.js +86 -96
  146. package/dist/cjs/utils/tokenizer/token-estimator.js.map +1 -1
  147. package/dist/cjs/utils/vector-store/MemoryManager/MemoryCalculator.js +43 -53
  148. package/dist/cjs/utils/vector-store/MemoryManager/MemoryCalculator.js.map +1 -1
  149. package/dist/cjs/utils/vector-store/MemoryManager/MemoryVectorStoreManager.js +154 -164
  150. package/dist/cjs/utils/vector-store/MemoryManager/MemoryVectorStoreManager.js.map +1 -1
  151. package/dist/cjs/utils/vector-store/MemoryManager/StoreCleanupService.js +82 -92
  152. package/dist/cjs/utils/vector-store/MemoryManager/StoreCleanupService.js.map +1 -1
  153. package/dist/cjs/utils/vector-store/MemoryManager/config.js +34 -44
  154. package/dist/cjs/utils/vector-store/MemoryManager/config.js.map +1 -1
  155. package/dist/cjs/utils/vector-store/MemoryManager/types.js +2 -12
  156. package/dist/cjs/utils/vector-store/createVectorStoreNode/constants.js +44 -54
  157. package/dist/cjs/utils/vector-store/createVectorStoreNode/constants.js.map +1 -1
  158. package/dist/cjs/utils/vector-store/createVectorStoreNode/createVectorStoreNode.js +229 -229
  159. package/dist/cjs/utils/vector-store/createVectorStoreNode/createVectorStoreNode.js.map +1 -1
  160. package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/index.js +8 -18
  161. package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/index.js.map +1 -1
  162. package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/insertOperation.js +33 -43
  163. package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/insertOperation.js.map +1 -1
  164. package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/loadOperation.js +41 -51
  165. package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/loadOperation.js.map +1 -1
  166. package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/retrieveAsToolExecuteOperation.js +59 -69
  167. package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/retrieveAsToolExecuteOperation.js.map +1 -1
  168. package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/retrieveAsToolOperation.js +58 -68
  169. package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/retrieveAsToolOperation.js.map +1 -1
  170. package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/retrieveOperation.js +26 -36
  171. package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/retrieveOperation.js.map +1 -1
  172. package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/updateOperation.js +34 -44
  173. package/dist/cjs/utils/vector-store/createVectorStoreNode/operations/updateOperation.js.map +1 -1
  174. package/dist/cjs/utils/vector-store/createVectorStoreNode/types.js +2 -12
  175. package/dist/cjs/utils/vector-store/createVectorStoreNode/utils.d.ts +2 -1
  176. package/dist/cjs/utils/vector-store/createVectorStoreNode/utils.js +34 -29
  177. package/dist/cjs/utils/vector-store/createVectorStoreNode/utils.js.map +1 -1
  178. package/dist/cjs/utils/vector-store/processDocuments.js +37 -47
  179. package/dist/cjs/utils/vector-store/processDocuments.js.map +1 -1
  180. package/dist/cjs/utils/workflow-text-editor.js +50 -60
  181. package/dist/cjs/utils/workflow-text-editor.js.map +1 -1
  182. package/dist/cjs/web-search/brave-search.js +38 -48
  183. package/dist/cjs/web-search/brave-search.js.map +1 -1
  184. package/dist/cjs/web-search/index.js +7 -17
  185. package/dist/cjs/web-search/index.js.map +1 -1
  186. package/dist/cjs/web-search/searxng-search.js +35 -45
  187. package/dist/cjs/web-search/searxng-search.js.map +1 -1
  188. package/dist/cjs/web-search/types.js +2 -12
  189. package/dist/esm/adapters/langchain-chat-model.js.map +1 -1
  190. package/dist/esm/adapters/langchain-history.js.map +1 -1
  191. package/dist/esm/adapters/langchain-memory.js.map +1 -1
  192. package/dist/esm/agent-config/config-normalization.d.ts +11 -0
  193. package/dist/esm/agent-config/config-normalization.js +134 -0
  194. package/dist/esm/agent-config/config-normalization.js.map +1 -0
  195. package/dist/esm/agent-config/from-ai-node-parameters.d.ts +7 -0
  196. package/dist/esm/agent-config/from-ai-node-parameters.js +43 -0
  197. package/dist/esm/agent-config/from-ai-node-parameters.js.map +1 -0
  198. package/dist/esm/agent-config/index.d.ts +3 -0
  199. package/dist/esm/agent-config/index.js +17 -0
  200. package/dist/esm/agent-config/index.js.map +1 -0
  201. package/dist/esm/agent-config/model-id.d.ts +5 -0
  202. package/dist/esm/agent-config/model-id.js +16 -0
  203. package/dist/esm/agent-config/model-id.js.map +1 -0
  204. package/dist/esm/agent-config/native-web-search-provider-tools.d.ts +7 -0
  205. package/dist/esm/agent-config/native-web-search-provider-tools.js +55 -0
  206. package/dist/esm/agent-config/native-web-search-provider-tools.js.map +1 -0
  207. package/dist/esm/chat-model/base.js.map +1 -1
  208. package/dist/esm/converters/message.js.map +1 -1
  209. package/dist/esm/converters/tool.js.map +1 -1
  210. package/dist/esm/guards.js.map +1 -1
  211. package/dist/esm/index.js.map +1 -1
  212. package/dist/esm/memory/base-chat-history.js.map +1 -1
  213. package/dist/esm/memory/base-chat-memory.js.map +1 -1
  214. package/dist/esm/memory/windowed-chat-memory.js.map +1 -1
  215. package/dist/esm/model-discovery/index.js.map +1 -1
  216. package/dist/esm/model-discovery/providers/anthropic.js.map +1 -1
  217. package/dist/esm/model-discovery/providers/cohere.js.map +1 -1
  218. package/dist/esm/model-discovery/providers/google.js.map +1 -1
  219. package/dist/esm/model-discovery/providers/groq.js.map +1 -1
  220. package/dist/esm/model-discovery/providers/mistral.js.map +1 -1
  221. package/dist/esm/model-discovery/providers/nvidia.js.map +1 -1
  222. package/dist/esm/model-discovery/providers/openai.js.map +1 -1
  223. package/dist/esm/model-discovery/request.js.map +1 -1
  224. package/dist/esm/node-catalog/discriminator-utils.js.map +1 -1
  225. package/dist/esm/node-catalog/dynamic-node-parameters.js.map +1 -1
  226. package/dist/esm/node-catalog/get.js.map +1 -1
  227. package/dist/esm/node-catalog/lean-node-type.js.map +1 -1
  228. package/dist/esm/node-catalog/node-type-parser.js.map +1 -1
  229. package/dist/esm/node-catalog/resource-operation-extractor.js.map +1 -1
  230. package/dist/esm/node-catalog/search-engine.js.map +1 -1
  231. package/dist/esm/node-catalog/search.js.map +1 -1
  232. package/dist/esm/node-catalog/suggested-nodes-data.js.map +1 -1
  233. package/dist/esm/node-catalog/suggested.js.map +1 -1
  234. package/dist/esm/suppliers/supplyMemory.js.map +1 -1
  235. package/dist/esm/suppliers/supplyModel.js.map +1 -1
  236. package/dist/esm/typecheck.tsbuildinfo +1 -1
  237. package/dist/esm/utils/embeddings-input-validation.js.map +1 -1
  238. package/dist/esm/utils/failed-attempt-handler/n8nDefaultFailedAttemptHandler.js.map +1 -1
  239. package/dist/esm/utils/failed-attempt-handler/n8nLlmFailedAttemptHandler.d.ts +1 -1
  240. package/dist/esm/utils/failed-attempt-handler/n8nLlmFailedAttemptHandler.js.map +1 -1
  241. package/dist/esm/utils/follow-redirects.js.map +1 -1
  242. package/dist/esm/utils/fromai-helpers.js.map +1 -1
  243. package/dist/esm/utils/fromai-tool-factory.js.map +1 -1
  244. package/dist/esm/utils/helpers.js.map +1 -1
  245. package/dist/esm/utils/http-proxy-agent.js.map +1 -1
  246. package/dist/esm/utils/lazy-import.d.ts +1 -0
  247. package/dist/esm/utils/lazy-import.js +7 -0
  248. package/dist/esm/utils/lazy-import.js.map +1 -0
  249. package/dist/esm/utils/loaders/n8n-pdf-loader.js +2 -35
  250. package/dist/esm/utils/loaders/n8n-pdf-loader.js.map +1 -1
  251. package/dist/esm/utils/log-ai-event.js.map +1 -1
  252. package/dist/esm/utils/log-wrapper.d.ts +1 -1
  253. package/dist/esm/utils/log-wrapper.js.map +1 -1
  254. package/dist/esm/utils/n8n-binary-loader.js.map +1 -1
  255. package/dist/esm/utils/n8n-json-loader.js.map +1 -1
  256. package/dist/esm/utils/n8n-llm-tracing.js.map +1 -1
  257. package/dist/esm/utils/redact-headers.js.map +1 -1
  258. package/dist/esm/utils/shared-fields.js.map +1 -1
  259. package/dist/esm/utils/sse.js.map +1 -1
  260. package/dist/esm/utils/text-editor.js.map +1 -1
  261. package/dist/esm/utils/tokenizer/tiktoken.js.map +1 -1
  262. package/dist/esm/utils/tokenizer/token-estimator.js.map +1 -1
  263. package/dist/esm/utils/vector-store/MemoryManager/MemoryCalculator.js.map +1 -1
  264. package/dist/esm/utils/vector-store/MemoryManager/MemoryVectorStoreManager.js.map +1 -1
  265. package/dist/esm/utils/vector-store/MemoryManager/StoreCleanupService.js.map +1 -1
  266. package/dist/esm/utils/vector-store/MemoryManager/config.js.map +1 -1
  267. package/dist/esm/utils/vector-store/createVectorStoreNode/createVectorStoreNode.js +43 -33
  268. package/dist/esm/utils/vector-store/createVectorStoreNode/createVectorStoreNode.js.map +1 -1
  269. package/dist/esm/utils/vector-store/createVectorStoreNode/operations/insertOperation.js.map +1 -1
  270. package/dist/esm/utils/vector-store/createVectorStoreNode/operations/loadOperation.js.map +1 -1
  271. package/dist/esm/utils/vector-store/createVectorStoreNode/operations/retrieveAsToolExecuteOperation.js.map +1 -1
  272. package/dist/esm/utils/vector-store/createVectorStoreNode/operations/retrieveAsToolOperation.js.map +1 -1
  273. package/dist/esm/utils/vector-store/createVectorStoreNode/operations/retrieveOperation.js.map +1 -1
  274. package/dist/esm/utils/vector-store/createVectorStoreNode/operations/updateOperation.js.map +1 -1
  275. package/dist/esm/utils/vector-store/createVectorStoreNode/utils.d.ts +2 -1
  276. package/dist/esm/utils/vector-store/createVectorStoreNode/utils.js +15 -0
  277. package/dist/esm/utils/vector-store/createVectorStoreNode/utils.js.map +1 -1
  278. package/dist/esm/utils/vector-store/processDocuments.js.map +1 -1
  279. package/dist/esm/utils/workflow-text-editor.js.map +1 -1
  280. package/dist/esm/web-search/brave-search.js.map +1 -1
  281. package/dist/esm/web-search/searxng-search.js.map +1 -1
  282. package/package.json +22 -7
@@ -1,186 +1,176 @@
1
- (function (factory) {
2
- if (typeof module === "object" && typeof module.exports === "object") {
3
- var v = factory(require, exports);
4
- if (v !== undefined) module.exports = v;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MemoryVectorStoreManager = void 0;
4
+ const memory_1 = require("@langchain/classic/vectorstores/memory");
5
+ const config_1 = require("./config");
6
+ const MemoryCalculator_1 = require("./MemoryCalculator");
7
+ const StoreCleanupService_1 = require("./StoreCleanupService");
8
+ class MemoryVectorStoreManager {
9
+ constructor(embeddings, logger) {
10
+ this.embeddings = embeddings;
11
+ this.logger = logger;
12
+ this.memoryUsageBytes = 0;
13
+ this.ttlCleanupIntervalId = null;
14
+ this.vectorStoreBuffer = new Map();
15
+ this.storeMetadata = new Map();
16
+ this.logger = logger;
17
+ const config = (0, config_1.getConfig)();
18
+ this.maxMemorySizeBytes = (0, config_1.mbToBytes)(config.maxMemoryMB);
19
+ this.inactiveTtlMs = (0, config_1.hoursToMs)(config.ttlHours);
20
+ this.memoryCalculator = new MemoryCalculator_1.MemoryCalculator();
21
+ this.cleanupService = new StoreCleanupService_1.StoreCleanupService(this.maxMemorySizeBytes, this.inactiveTtlMs, this.vectorStoreBuffer, this.storeMetadata, this.handleCleanup.bind(this));
22
+ this.setupTtlCleanup();
5
23
  }
6
- else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports", "@langchain/classic/vectorstores/memory", "./config", "./MemoryCalculator", "./StoreCleanupService"], factory);
8
- }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.MemoryVectorStoreManager = void 0;
13
- const memory_1 = require("@langchain/classic/vectorstores/memory");
14
- const config_1 = require("./config");
15
- const MemoryCalculator_1 = require("./MemoryCalculator");
16
- const StoreCleanupService_1 = require("./StoreCleanupService");
17
- class MemoryVectorStoreManager {
18
- constructor(embeddings, logger) {
19
- this.embeddings = embeddings;
20
- this.logger = logger;
21
- this.memoryUsageBytes = 0;
22
- this.ttlCleanupIntervalId = null;
23
- this.vectorStoreBuffer = new Map();
24
- this.storeMetadata = new Map();
25
- this.logger = logger;
26
- const config = (0, config_1.getConfig)();
27
- this.maxMemorySizeBytes = (0, config_1.mbToBytes)(config.maxMemoryMB);
28
- this.inactiveTtlMs = (0, config_1.hoursToMs)(config.ttlHours);
29
- this.memoryCalculator = new MemoryCalculator_1.MemoryCalculator();
30
- this.cleanupService = new StoreCleanupService_1.StoreCleanupService(this.maxMemorySizeBytes, this.inactiveTtlMs, this.vectorStoreBuffer, this.storeMetadata, this.handleCleanup.bind(this));
31
- this.setupTtlCleanup();
24
+ static getInstance(embeddings, logger) {
25
+ if (!MemoryVectorStoreManager.instance) {
26
+ MemoryVectorStoreManager.instance = new MemoryVectorStoreManager(embeddings, logger);
32
27
  }
33
- static getInstance(embeddings, logger) {
34
- if (!MemoryVectorStoreManager.instance) {
35
- MemoryVectorStoreManager.instance = new MemoryVectorStoreManager(embeddings, logger);
36
- }
37
- else {
38
- MemoryVectorStoreManager.instance.embeddings = embeddings;
39
- MemoryVectorStoreManager.instance.vectorStoreBuffer.forEach((vectorStoreInstance) => {
40
- vectorStoreInstance.embeddings = embeddings;
41
- });
42
- }
43
- return MemoryVectorStoreManager.instance;
28
+ else {
29
+ MemoryVectorStoreManager.instance.embeddings = embeddings;
30
+ MemoryVectorStoreManager.instance.vectorStoreBuffer.forEach((vectorStoreInstance) => {
31
+ vectorStoreInstance.embeddings = embeddings;
32
+ });
44
33
  }
45
- setupTtlCleanup() {
46
- if (this.inactiveTtlMs <= 0) {
47
- return;
48
- }
49
- const CLEANUP_INTERVAL_MS = 60 * 60 * 1000;
50
- if (this.ttlCleanupIntervalId) {
51
- clearInterval(this.ttlCleanupIntervalId);
52
- }
53
- this.ttlCleanupIntervalId = setInterval(() => {
54
- this.cleanupService.cleanupInactiveStores();
55
- }, CLEANUP_INTERVAL_MS);
34
+ return MemoryVectorStoreManager.instance;
35
+ }
36
+ setupTtlCleanup() {
37
+ if (this.inactiveTtlMs <= 0) {
38
+ return;
56
39
  }
57
- handleCleanup(removedKeys, freedBytes, reason) {
58
- this.memoryUsageBytes -= freedBytes;
59
- if (reason === 'ttl') {
60
- const ttlHours = Math.round(this.inactiveTtlMs / (60 * 60 * 1000));
61
- this.logger.info(`TTL cleanup: removed ${removedKeys.length} inactive vector stores (${ttlHours}h TTL) to free ${Math.round(freedBytes / (1024 * 1024))}MB of memory`);
62
- }
63
- else {
64
- this.logger.info(`Memory cleanup: removed ${removedKeys.length} oldest vector stores to free ${Math.round(freedBytes / (1024 * 1024))}MB of memory`);
65
- }
40
+ const CLEANUP_INTERVAL_MS = 60 * 60 * 1000;
41
+ if (this.ttlCleanupIntervalId) {
42
+ clearInterval(this.ttlCleanupIntervalId);
66
43
  }
67
- getMemoryKeysList() {
68
- return Array.from(this.vectorStoreBuffer.keys());
44
+ this.ttlCleanupIntervalId = setInterval(() => {
45
+ this.cleanupService.cleanupInactiveStores();
46
+ }, CLEANUP_INTERVAL_MS);
47
+ }
48
+ handleCleanup(removedKeys, freedBytes, reason) {
49
+ this.memoryUsageBytes -= freedBytes;
50
+ if (reason === 'ttl') {
51
+ const ttlHours = Math.round(this.inactiveTtlMs / (60 * 60 * 1000));
52
+ this.logger.info(`TTL cleanup: removed ${removedKeys.length} inactive vector stores (${ttlHours}h TTL) to free ${Math.round(freedBytes / (1024 * 1024))}MB of memory`);
69
53
  }
70
- async getVectorStore(memoryKey) {
71
- let vectorStoreInstance = this.vectorStoreBuffer.get(memoryKey);
72
- if (!vectorStoreInstance) {
73
- vectorStoreInstance = await memory_1.MemoryVectorStore.fromExistingIndex(this.embeddings);
74
- this.vectorStoreBuffer.set(memoryKey, vectorStoreInstance);
75
- this.storeMetadata.set(memoryKey, {
76
- size: 0,
77
- createdAt: new Date(),
78
- lastAccessed: new Date(),
79
- });
80
- }
81
- else {
82
- const metadata = this.storeMetadata.get(memoryKey);
83
- if (metadata) {
84
- metadata.lastAccessed = new Date();
85
- }
86
- }
87
- return vectorStoreInstance;
54
+ else {
55
+ this.logger.info(`Memory cleanup: removed ${removedKeys.length} oldest vector stores to free ${Math.round(freedBytes / (1024 * 1024))}MB of memory`);
88
56
  }
89
- clearStoreMetadata(memoryKey) {
57
+ }
58
+ getMemoryKeysList() {
59
+ return Array.from(this.vectorStoreBuffer.keys());
60
+ }
61
+ async getVectorStore(memoryKey) {
62
+ let vectorStoreInstance = this.vectorStoreBuffer.get(memoryKey);
63
+ if (!vectorStoreInstance) {
64
+ vectorStoreInstance = await memory_1.MemoryVectorStore.fromExistingIndex(this.embeddings);
65
+ this.vectorStoreBuffer.set(memoryKey, vectorStoreInstance);
66
+ this.storeMetadata.set(memoryKey, {
67
+ size: 0,
68
+ createdAt: new Date(),
69
+ lastAccessed: new Date(),
70
+ });
71
+ }
72
+ else {
90
73
  const metadata = this.storeMetadata.get(memoryKey);
91
74
  if (metadata) {
92
- this.memoryUsageBytes -= metadata.size;
93
- metadata.size = 0;
94
75
  metadata.lastAccessed = new Date();
95
76
  }
96
77
  }
97
- getMemoryUsage() {
98
- return this.memoryUsageBytes;
99
- }
100
- getMemoryUsageFormatted() {
101
- return `${Math.round(this.memoryUsageBytes / (1024 * 1024))}MB`;
102
- }
103
- recalculateMemoryUsage() {
104
- this.memoryUsageBytes = 0;
105
- for (const [key, vectorStore] of this.vectorStoreBuffer.entries()) {
106
- const storeSize = this.memoryCalculator.calculateVectorStoreSize(vectorStore);
107
- const metadata = this.storeMetadata.get(key);
108
- if (metadata) {
109
- metadata.size = storeSize;
110
- this.memoryUsageBytes += storeSize;
111
- }
112
- }
113
- this.logger.debug(`Recalculated vector store memory: ${this.getMemoryUsageFormatted()}`);
78
+ return vectorStoreInstance;
79
+ }
80
+ clearStoreMetadata(memoryKey) {
81
+ const metadata = this.storeMetadata.get(memoryKey);
82
+ if (metadata) {
83
+ this.memoryUsageBytes -= metadata.size;
84
+ metadata.size = 0;
85
+ metadata.lastAccessed = new Date();
114
86
  }
115
- async addDocuments(memoryKey, documents, clearStore) {
116
- if (clearStore) {
117
- this.clearStoreMetadata(memoryKey);
118
- this.vectorStoreBuffer.delete(memoryKey);
119
- }
120
- const estimatedAddedSize = this.memoryCalculator.estimateBatchSize(documents);
121
- this.cleanupService.cleanupOldestStores(estimatedAddedSize);
122
- const vectorStoreInstance = await this.getVectorStore(memoryKey);
123
- const vectorCountBefore = vectorStoreInstance.memoryVectors?.length || 0;
124
- await vectorStoreInstance.addDocuments(documents);
125
- const metadata = this.storeMetadata.get(memoryKey);
87
+ }
88
+ getMemoryUsage() {
89
+ return this.memoryUsageBytes;
90
+ }
91
+ getMemoryUsageFormatted() {
92
+ return `${Math.round(this.memoryUsageBytes / (1024 * 1024))}MB`;
93
+ }
94
+ recalculateMemoryUsage() {
95
+ this.memoryUsageBytes = 0;
96
+ for (const [key, vectorStore] of this.vectorStoreBuffer.entries()) {
97
+ const storeSize = this.memoryCalculator.calculateVectorStoreSize(vectorStore);
98
+ const metadata = this.storeMetadata.get(key);
126
99
  if (metadata) {
127
- metadata.size += estimatedAddedSize;
128
- metadata.lastAccessed = new Date();
129
- this.memoryUsageBytes += estimatedAddedSize;
100
+ metadata.size = storeSize;
101
+ this.memoryUsageBytes += storeSize;
130
102
  }
131
- const vectorCount = vectorStoreInstance.memoryVectors?.length || 0;
132
- if ((vectorCount > 0 && vectorCount % 100 === 0) ||
133
- documents.length > 20 ||
134
- (vectorCountBefore === 0 && vectorCount > 0)) {
135
- this.recalculateMemoryUsage();
136
- }
137
- const maxMemoryMB = this.maxMemorySizeBytes > 0
138
- ? (this.maxMemorySizeBytes / (1024 * 1024)).toFixed(0)
139
- : 'unlimited';
140
- this.logger.debug(`Vector store memory: ${this.getMemoryUsageFormatted()}/${maxMemoryMB}MB (${vectorCount} vectors in ${this.vectorStoreBuffer.size} stores)`);
141
103
  }
142
- getStats() {
143
- const now = Date.now();
144
- let inactiveStoreCount = 0;
104
+ this.logger.debug(`Recalculated vector store memory: ${this.getMemoryUsageFormatted()}`);
105
+ }
106
+ async addDocuments(memoryKey, documents, clearStore) {
107
+ if (clearStore) {
108
+ this.clearStoreMetadata(memoryKey);
109
+ this.vectorStoreBuffer.delete(memoryKey);
110
+ }
111
+ const estimatedAddedSize = this.memoryCalculator.estimateBatchSize(documents);
112
+ this.cleanupService.cleanupOldestStores(estimatedAddedSize);
113
+ const vectorStoreInstance = await this.getVectorStore(memoryKey);
114
+ const vectorCountBefore = vectorStoreInstance.memoryVectors?.length || 0;
115
+ await vectorStoreInstance.addDocuments(documents);
116
+ const metadata = this.storeMetadata.get(memoryKey);
117
+ if (metadata) {
118
+ metadata.size += estimatedAddedSize;
119
+ metadata.lastAccessed = new Date();
120
+ this.memoryUsageBytes += estimatedAddedSize;
121
+ }
122
+ const vectorCount = vectorStoreInstance.memoryVectors?.length || 0;
123
+ if ((vectorCount > 0 && vectorCount % 100 === 0) ||
124
+ documents.length > 20 ||
125
+ (vectorCountBefore === 0 && vectorCount > 0)) {
145
126
  this.recalculateMemoryUsage();
146
- const stats = {
147
- totalSizeBytes: this.memoryUsageBytes,
148
- totalSizeMB: Math.round((this.memoryUsageBytes / (1024 * 1024)) * 100) / 100,
149
- percentOfLimit: this.maxMemorySizeBytes > 0
150
- ? Math.round((this.memoryUsageBytes / this.maxMemorySizeBytes) * 100)
151
- : 0,
152
- maxMemoryMB: this.maxMemorySizeBytes > 0 ? this.maxMemorySizeBytes / (1024 * 1024) : -1,
153
- storeCount: this.vectorStoreBuffer.size,
154
- inactiveStoreCount: 0,
155
- ttlHours: this.inactiveTtlMs > 0 ? this.inactiveTtlMs / (60 * 60 * 1000) : -1,
156
- stores: {},
157
- };
158
- for (const [key, metadata] of this.storeMetadata.entries()) {
159
- const store = this.vectorStoreBuffer.get(key);
160
- if (store) {
161
- const lastAccessedTime = metadata.lastAccessed.getTime();
162
- const inactiveTimeMs = now - lastAccessedTime;
163
- const isInactive = this.cleanupService.isStoreInactive(metadata);
164
- if (isInactive) {
165
- inactiveStoreCount++;
166
- }
167
- stats.stores[key] = {
168
- sizeBytes: metadata.size,
169
- sizeMB: Math.round((metadata.size / (1024 * 1024)) * 100) / 100,
170
- percentOfTotal: Math.round((metadata.size / this.memoryUsageBytes) * 100) || 0,
171
- vectors: store.memoryVectors?.length || 0,
172
- createdAt: metadata.createdAt.toISOString(),
173
- lastAccessed: metadata.lastAccessed.toISOString(),
174
- inactive: isInactive,
175
- inactiveForHours: Math.round(inactiveTimeMs / (60 * 60 * 1000)),
176
- };
127
+ }
128
+ const maxMemoryMB = this.maxMemorySizeBytes > 0
129
+ ? (this.maxMemorySizeBytes / (1024 * 1024)).toFixed(0)
130
+ : 'unlimited';
131
+ this.logger.debug(`Vector store memory: ${this.getMemoryUsageFormatted()}/${maxMemoryMB}MB (${vectorCount} vectors in ${this.vectorStoreBuffer.size} stores)`);
132
+ }
133
+ getStats() {
134
+ const now = Date.now();
135
+ let inactiveStoreCount = 0;
136
+ this.recalculateMemoryUsage();
137
+ const stats = {
138
+ totalSizeBytes: this.memoryUsageBytes,
139
+ totalSizeMB: Math.round((this.memoryUsageBytes / (1024 * 1024)) * 100) / 100,
140
+ percentOfLimit: this.maxMemorySizeBytes > 0
141
+ ? Math.round((this.memoryUsageBytes / this.maxMemorySizeBytes) * 100)
142
+ : 0,
143
+ maxMemoryMB: this.maxMemorySizeBytes > 0 ? this.maxMemorySizeBytes / (1024 * 1024) : -1,
144
+ storeCount: this.vectorStoreBuffer.size,
145
+ inactiveStoreCount: 0,
146
+ ttlHours: this.inactiveTtlMs > 0 ? this.inactiveTtlMs / (60 * 60 * 1000) : -1,
147
+ stores: {},
148
+ };
149
+ for (const [key, metadata] of this.storeMetadata.entries()) {
150
+ const store = this.vectorStoreBuffer.get(key);
151
+ if (store) {
152
+ const lastAccessedTime = metadata.lastAccessed.getTime();
153
+ const inactiveTimeMs = now - lastAccessedTime;
154
+ const isInactive = this.cleanupService.isStoreInactive(metadata);
155
+ if (isInactive) {
156
+ inactiveStoreCount++;
177
157
  }
158
+ stats.stores[key] = {
159
+ sizeBytes: metadata.size,
160
+ sizeMB: Math.round((metadata.size / (1024 * 1024)) * 100) / 100,
161
+ percentOfTotal: Math.round((metadata.size / this.memoryUsageBytes) * 100) || 0,
162
+ vectors: store.memoryVectors?.length || 0,
163
+ createdAt: metadata.createdAt.toISOString(),
164
+ lastAccessed: metadata.lastAccessed.toISOString(),
165
+ inactive: isInactive,
166
+ inactiveForHours: Math.round(inactiveTimeMs / (60 * 60 * 1000)),
167
+ };
178
168
  }
179
- stats.inactiveStoreCount = inactiveStoreCount;
180
- return stats;
181
169
  }
170
+ stats.inactiveStoreCount = inactiveStoreCount;
171
+ return stats;
182
172
  }
183
- exports.MemoryVectorStoreManager = MemoryVectorStoreManager;
184
- MemoryVectorStoreManager.instance = null;
185
- });
173
+ }
174
+ exports.MemoryVectorStoreManager = MemoryVectorStoreManager;
175
+ MemoryVectorStoreManager.instance = null;
186
176
  //# sourceMappingURL=MemoryVectorStoreManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryVectorStoreManager.js","sourceRoot":"","sources":["../../../../../src/utils/vector-store/MemoryManager/MemoryVectorStoreManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MemoryVectorStoreManager.js","sourceRoot":"","sources":["../../../../../src/utils/vector-store/MemoryManager/MemoryVectorStoreManager.ts"],"names":[],"mappings":"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"}
@@ -1,105 +1,95 @@
1
- (function (factory) {
2
- if (typeof module === "object" && typeof module.exports === "object") {
3
- var v = factory(require, exports);
4
- if (v !== undefined) module.exports = v;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StoreCleanupService = void 0;
4
+ class StoreCleanupService {
5
+ constructor(maxMemorySizeBytes, inactiveTtlMs, vectorStores, storeMetadata, onCleanup) {
6
+ this.maxMemorySizeBytes = maxMemorySizeBytes;
7
+ this.inactiveTtlMs = inactiveTtlMs;
8
+ this.vectorStores = vectorStores;
9
+ this.storeMetadata = storeMetadata;
10
+ this.onCleanup = onCleanup;
11
+ this.oldestStoreKeys = [];
12
+ this.lastSortTime = 0;
13
+ this.CACHE_TTL_MS = 5000;
5
14
  }
6
- else if (typeof define === "function" && define.amd) {
7
- define(["require", "exports"], factory);
15
+ isStoreInactive(metadata) {
16
+ if (this.inactiveTtlMs <= 0) {
17
+ return false;
18
+ }
19
+ const now = Date.now();
20
+ const lastAccessedTime = metadata.lastAccessed.getTime();
21
+ return now - lastAccessedTime > this.inactiveTtlMs;
8
22
  }
9
- })(function (require, exports) {
10
- "use strict";
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.StoreCleanupService = void 0;
13
- class StoreCleanupService {
14
- constructor(maxMemorySizeBytes, inactiveTtlMs, vectorStores, storeMetadata, onCleanup) {
15
- this.maxMemorySizeBytes = maxMemorySizeBytes;
16
- this.inactiveTtlMs = inactiveTtlMs;
17
- this.vectorStores = vectorStores;
18
- this.storeMetadata = storeMetadata;
19
- this.onCleanup = onCleanup;
20
- this.oldestStoreKeys = [];
21
- this.lastSortTime = 0;
22
- this.CACHE_TTL_MS = 5000;
23
+ cleanupInactiveStores() {
24
+ if (this.inactiveTtlMs <= 0) {
25
+ return;
23
26
  }
24
- isStoreInactive(metadata) {
25
- if (this.inactiveTtlMs <= 0) {
26
- return false;
27
+ let freedBytes = 0;
28
+ const removedStores = [];
29
+ for (const [key, metadata] of this.storeMetadata.entries()) {
30
+ if (this.isStoreInactive(metadata)) {
31
+ this.vectorStores.delete(key);
32
+ freedBytes += metadata.size;
33
+ removedStores.push(key);
27
34
  }
28
- const now = Date.now();
29
- const lastAccessedTime = metadata.lastAccessed.getTime();
30
- return now - lastAccessedTime > this.inactiveTtlMs;
31
35
  }
32
- cleanupInactiveStores() {
33
- if (this.inactiveTtlMs <= 0) {
34
- return;
35
- }
36
- let freedBytes = 0;
37
- const removedStores = [];
36
+ for (const key of removedStores) {
37
+ this.storeMetadata.delete(key);
38
+ }
39
+ if (removedStores.length > 0) {
40
+ this.oldestStoreKeys = [];
41
+ this.onCleanup(removedStores, freedBytes, 'ttl');
42
+ }
43
+ }
44
+ cleanupOldestStores(requiredBytes) {
45
+ if (this.maxMemorySizeBytes <= 0) {
46
+ return;
47
+ }
48
+ let currentMemoryUsage = 0;
49
+ for (const metadata of this.storeMetadata.values()) {
50
+ currentMemoryUsage += metadata.size;
51
+ }
52
+ this.cleanupInactiveStores();
53
+ currentMemoryUsage = 0;
54
+ for (const metadata of this.storeMetadata.values()) {
55
+ currentMemoryUsage += metadata.size;
56
+ }
57
+ if (currentMemoryUsage + requiredBytes <= this.maxMemorySizeBytes) {
58
+ return;
59
+ }
60
+ const now = Date.now();
61
+ if (this.oldestStoreKeys.length === 0 || now - this.lastSortTime > this.CACHE_TTL_MS) {
62
+ const stores = [];
38
63
  for (const [key, metadata] of this.storeMetadata.entries()) {
39
- if (this.isStoreInactive(metadata)) {
40
- this.vectorStores.delete(key);
41
- freedBytes += metadata.size;
42
- removedStores.push(key);
43
- }
44
- }
45
- for (const key of removedStores) {
46
- this.storeMetadata.delete(key);
47
- }
48
- if (removedStores.length > 0) {
49
- this.oldestStoreKeys = [];
50
- this.onCleanup(removedStores, freedBytes, 'ttl');
64
+ stores.push([key, metadata.createdAt.getTime()]);
51
65
  }
66
+ stores.sort((a, b) => a[1] - b[1]);
67
+ this.oldestStoreKeys = stores.map(([key]) => key);
68
+ this.lastSortTime = now;
52
69
  }
53
- cleanupOldestStores(requiredBytes) {
54
- if (this.maxMemorySizeBytes <= 0) {
55
- return;
56
- }
57
- let currentMemoryUsage = 0;
58
- for (const metadata of this.storeMetadata.values()) {
59
- currentMemoryUsage += metadata.size;
60
- }
61
- this.cleanupInactiveStores();
62
- currentMemoryUsage = 0;
63
- for (const metadata of this.storeMetadata.values()) {
64
- currentMemoryUsage += metadata.size;
65
- }
66
- if (currentMemoryUsage + requiredBytes <= this.maxMemorySizeBytes) {
67
- return;
70
+ let freedBytes = 0;
71
+ const removedStores = [];
72
+ for (const key of this.oldestStoreKeys) {
73
+ if (!this.storeMetadata.has(key))
74
+ continue;
75
+ if (currentMemoryUsage - freedBytes + requiredBytes <= this.maxMemorySizeBytes) {
76
+ break;
68
77
  }
69
- const now = Date.now();
70
- if (this.oldestStoreKeys.length === 0 || now - this.lastSortTime > this.CACHE_TTL_MS) {
71
- const stores = [];
72
- for (const [key, metadata] of this.storeMetadata.entries()) {
73
- stores.push([key, metadata.createdAt.getTime()]);
74
- }
75
- stores.sort((a, b) => a[1] - b[1]);
76
- this.oldestStoreKeys = stores.map(([key]) => key);
77
- this.lastSortTime = now;
78
- }
79
- let freedBytes = 0;
80
- const removedStores = [];
81
- for (const key of this.oldestStoreKeys) {
82
- if (!this.storeMetadata.has(key))
83
- continue;
84
- if (currentMemoryUsage - freedBytes + requiredBytes <= this.maxMemorySizeBytes) {
85
- break;
86
- }
87
- const metadata = this.storeMetadata.get(key);
88
- if (metadata) {
89
- this.vectorStores.delete(key);
90
- freedBytes += metadata.size;
91
- removedStores.push(key);
92
- }
93
- }
94
- for (const key of removedStores) {
95
- this.storeMetadata.delete(key);
96
- }
97
- if (removedStores.length > 0) {
98
- this.oldestStoreKeys = this.oldestStoreKeys.filter((key) => !removedStores.includes(key));
99
- this.onCleanup(removedStores, freedBytes, 'memory');
78
+ const metadata = this.storeMetadata.get(key);
79
+ if (metadata) {
80
+ this.vectorStores.delete(key);
81
+ freedBytes += metadata.size;
82
+ removedStores.push(key);
100
83
  }
101
84
  }
85
+ for (const key of removedStores) {
86
+ this.storeMetadata.delete(key);
87
+ }
88
+ if (removedStores.length > 0) {
89
+ this.oldestStoreKeys = this.oldestStoreKeys.filter((key) => !removedStores.includes(key));
90
+ this.onCleanup(removedStores, freedBytes, 'memory');
91
+ }
102
92
  }
103
- exports.StoreCleanupService = StoreCleanupService;
104
- });
93
+ }
94
+ exports.StoreCleanupService = StoreCleanupService;
105
95
  //# sourceMappingURL=StoreCleanupService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StoreCleanupService.js","sourceRoot":"","sources":["../../../../../src/utils/vector-store/MemoryManager/StoreCleanupService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StoreCleanupService.js","sourceRoot":"","sources":["../../../../../src/utils/vector-store/MemoryManager/StoreCleanupService.ts"],"names":[],"mappings":"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"}