@n8n/n8n-nodes-langchain 1.85.3 → 1.87.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 (692) hide show
  1. package/dist/credentials/AnthropicApi.credentials.js +64 -41
  2. package/dist/credentials/AnthropicApi.credentials.js.map +1 -1
  3. package/dist/credentials/AzureOpenAiApi.credentials.js +70 -47
  4. package/dist/credentials/AzureOpenAiApi.credentials.js.map +1 -1
  5. package/dist/credentials/CohereApi.credentials.js +55 -32
  6. package/dist/credentials/CohereApi.credentials.js.map +1 -1
  7. package/dist/credentials/DeepSeekApi.credentials.js +61 -38
  8. package/dist/credentials/DeepSeekApi.credentials.js.map +1 -1
  9. package/dist/credentials/GooglePalmApi.credentials.js +61 -38
  10. package/dist/credentials/GooglePalmApi.credentials.js.map +1 -1
  11. package/dist/credentials/GroqApi.credentials.js +55 -32
  12. package/dist/credentials/GroqApi.credentials.js.map +1 -1
  13. package/dist/credentials/HuggingFaceApi.credentials.js +55 -32
  14. package/dist/credentials/HuggingFaceApi.credentials.js.map +1 -1
  15. package/dist/credentials/MistralCloudApi.credentials.js +56 -33
  16. package/dist/credentials/MistralCloudApi.credentials.js.map +1 -1
  17. package/dist/credentials/MotorheadApi.credentials.js +68 -45
  18. package/dist/credentials/MotorheadApi.credentials.js.map +1 -1
  19. package/dist/credentials/OllamaApi.credentials.js +47 -24
  20. package/dist/credentials/OllamaApi.credentials.js.map +1 -1
  21. package/dist/credentials/OpenRouterApi.credentials.js +61 -38
  22. package/dist/credentials/OpenRouterApi.credentials.js.map +1 -1
  23. package/dist/credentials/PineconeApi.credentials.js +57 -34
  24. package/dist/credentials/PineconeApi.credentials.js.map +1 -1
  25. package/dist/credentials/QdrantApi.credentials.js +64 -41
  26. package/dist/credentials/QdrantApi.credentials.js.map +1 -1
  27. package/dist/credentials/SerpApi.credentials.js +55 -32
  28. package/dist/credentials/SerpApi.credentials.js.map +1 -1
  29. package/dist/credentials/WolframAlphaApi.credentials.js +59 -36
  30. package/dist/credentials/WolframAlphaApi.credentials.js.map +1 -1
  31. package/dist/credentials/XAiApi.credentials.js +61 -38
  32. package/dist/credentials/XAiApi.credentials.js.map +1 -1
  33. package/dist/credentials/XataApi.credentials.js +69 -46
  34. package/dist/credentials/XataApi.credentials.js.map +1 -1
  35. package/dist/credentials/ZepApi.credentials.js +74 -51
  36. package/dist/credentials/ZepApi.credentials.js.map +1 -1
  37. package/dist/known/nodes.json +12 -0
  38. package/dist/nodes/agents/Agent/Agent.node.js +426 -405
  39. package/dist/nodes/agents/Agent/Agent.node.js.map +1 -1
  40. package/dist/nodes/agents/Agent/agents/ConversationalAgent/description.js +111 -87
  41. package/dist/nodes/agents/Agent/agents/ConversationalAgent/description.js.map +1 -1
  42. package/dist/nodes/agents/Agent/agents/ConversationalAgent/execute.js +99 -75
  43. package/dist/nodes/agents/Agent/agents/ConversationalAgent/execute.js.map +1 -1
  44. package/dist/nodes/agents/Agent/agents/ConversationalAgent/prompt.js +30 -4
  45. package/dist/nodes/agents/Agent/agents/ConversationalAgent/prompt.js.map +1 -1
  46. package/dist/nodes/agents/Agent/agents/OpenAiFunctionsAgent/description.js +101 -77
  47. package/dist/nodes/agents/Agent/agents/OpenAiFunctionsAgent/description.js.map +1 -1
  48. package/dist/nodes/agents/Agent/agents/OpenAiFunctionsAgent/execute.js +108 -83
  49. package/dist/nodes/agents/Agent/agents/OpenAiFunctionsAgent/execute.js.map +1 -1
  50. package/dist/nodes/agents/Agent/agents/OpenAiFunctionsAgent/prompt.js +27 -3
  51. package/dist/nodes/agents/Agent/agents/OpenAiFunctionsAgent/prompt.js.map +1 -1
  52. package/dist/nodes/agents/Agent/agents/PlanAndExecuteAgent/description.js +87 -63
  53. package/dist/nodes/agents/Agent/agents/PlanAndExecuteAgent/description.js.map +1 -1
  54. package/dist/nodes/agents/Agent/agents/PlanAndExecuteAgent/execute.js +90 -67
  55. package/dist/nodes/agents/Agent/agents/PlanAndExecuteAgent/execute.js.map +1 -1
  56. package/dist/nodes/agents/Agent/agents/PlanAndExecuteAgent/prompt.js +27 -3
  57. package/dist/nodes/agents/Agent/agents/PlanAndExecuteAgent/prompt.js.map +1 -1
  58. package/dist/nodes/agents/Agent/agents/ReActAgent/description.js +131 -107
  59. package/dist/nodes/agents/Agent/agents/ReActAgent/description.js.map +1 -1
  60. package/dist/nodes/agents/Agent/agents/ReActAgent/execute.js +101 -82
  61. package/dist/nodes/agents/Agent/agents/ReActAgent/execute.js.map +1 -1
  62. package/dist/nodes/agents/Agent/agents/ReActAgent/prompt.js +36 -6
  63. package/dist/nodes/agents/Agent/agents/ReActAgent/prompt.js.map +1 -1
  64. package/dist/nodes/agents/Agent/agents/SqlAgent/description.js +206 -181
  65. package/dist/nodes/agents/Agent/agents/SqlAgent/description.js.map +1 -1
  66. package/dist/nodes/agents/Agent/agents/SqlAgent/execute.js +130 -104
  67. package/dist/nodes/agents/Agent/agents/SqlAgent/execute.js.map +1 -1
  68. package/dist/nodes/agents/Agent/agents/SqlAgent/other/handlers/mysql.js +40 -16
  69. package/dist/nodes/agents/Agent/agents/SqlAgent/other/handlers/mysql.js.map +1 -1
  70. package/dist/nodes/agents/Agent/agents/SqlAgent/other/handlers/postgres.js +41 -17
  71. package/dist/nodes/agents/Agent/agents/SqlAgent/other/handlers/postgres.js.map +1 -1
  72. package/dist/nodes/agents/Agent/agents/SqlAgent/other/handlers/sqlite.js +67 -67
  73. package/dist/nodes/agents/Agent/agents/SqlAgent/other/handlers/sqlite.js.map +1 -1
  74. package/dist/nodes/agents/Agent/agents/SqlAgent/other/prompts.js +30 -4
  75. package/dist/nodes/agents/Agent/agents/SqlAgent/other/prompts.js.map +1 -1
  76. package/dist/nodes/agents/Agent/agents/ToolsAgent/description.js +72 -48
  77. package/dist/nodes/agents/Agent/agents/ToolsAgent/description.js.map +1 -1
  78. package/dist/nodes/agents/Agent/agents/ToolsAgent/execute.js +262 -216
  79. package/dist/nodes/agents/Agent/agents/ToolsAgent/execute.js.map +1 -1
  80. package/dist/nodes/agents/Agent/agents/ToolsAgent/prompt.js +27 -3
  81. package/dist/nodes/agents/Agent/agents/ToolsAgent/prompt.js.map +1 -1
  82. package/dist/nodes/agents/Agent/agents/utils.js +48 -17
  83. package/dist/nodes/agents/Agent/agents/utils.js.map +1 -1
  84. package/dist/nodes/agents/OpenAiAssistant/OpenAiAssistant.node.js +377 -355
  85. package/dist/nodes/agents/OpenAiAssistant/OpenAiAssistant.node.js.map +1 -1
  86. package/dist/nodes/agents/OpenAiAssistant/utils.js +53 -27
  87. package/dist/nodes/agents/OpenAiAssistant/utils.js.map +1 -1
  88. package/dist/nodes/chains/ChainLLM/ChainLlm.node.js +126 -95
  89. package/dist/nodes/chains/ChainLLM/ChainLlm.node.js.map +1 -1
  90. package/dist/nodes/chains/ChainLLM/methods/chainExecutor.js +101 -69
  91. package/dist/nodes/chains/ChainLLM/methods/chainExecutor.js.map +1 -1
  92. package/dist/nodes/chains/ChainLLM/methods/config.js +268 -243
  93. package/dist/nodes/chains/ChainLLM/methods/config.js.map +1 -1
  94. package/dist/nodes/chains/ChainLLM/methods/imageUtils.js +94 -60
  95. package/dist/nodes/chains/ChainLLM/methods/imageUtils.js.map +1 -1
  96. package/dist/nodes/chains/ChainLLM/methods/index.js +35 -9
  97. package/dist/nodes/chains/ChainLLM/methods/index.js.map +1 -1
  98. package/dist/nodes/chains/ChainLLM/methods/promptUtils.js +100 -60
  99. package/dist/nodes/chains/ChainLLM/methods/promptUtils.js.map +1 -1
  100. package/dist/nodes/chains/ChainLLM/methods/responseFormatter.js +46 -22
  101. package/dist/nodes/chains/ChainLLM/methods/responseFormatter.js.map +1 -1
  102. package/dist/nodes/chains/ChainLLM/methods/types.js +15 -1
  103. package/dist/nodes/chains/ChainLLM/methods/types.js.map +1 -1
  104. package/dist/nodes/chains/ChainRetrievalQA/ChainRetrievalQa.node.js +260 -233
  105. package/dist/nodes/chains/ChainRetrievalQA/ChainRetrievalQa.node.js.map +1 -1
  106. package/dist/nodes/chains/ChainSummarization/ChainSummarization.node.js +60 -37
  107. package/dist/nodes/chains/ChainSummarization/ChainSummarization.node.js.map +1 -1
  108. package/dist/nodes/chains/ChainSummarization/V1/ChainSummarizationV1.node.js +234 -208
  109. package/dist/nodes/chains/ChainSummarization/V1/ChainSummarizationV1.node.js.map +1 -1
  110. package/dist/nodes/chains/ChainSummarization/V2/ChainSummarizationV2.node.js +379 -334
  111. package/dist/nodes/chains/ChainSummarization/V2/ChainSummarizationV2.node.js.map +1 -1
  112. package/dist/nodes/chains/ChainSummarization/helpers.js +67 -43
  113. package/dist/nodes/chains/ChainSummarization/helpers.js.map +1 -1
  114. package/dist/nodes/chains/ChainSummarization/prompt.js +30 -4
  115. package/dist/nodes/chains/ChainSummarization/prompt.js.map +1 -1
  116. package/dist/nodes/chains/InformationExtractor/InformationExtractor.node.js +261 -229
  117. package/dist/nodes/chains/InformationExtractor/InformationExtractor.node.js.map +1 -1
  118. package/dist/nodes/chains/InformationExtractor/helpers.js +48 -28
  119. package/dist/nodes/chains/InformationExtractor/helpers.js.map +1 -1
  120. package/dist/nodes/chains/InformationExtractor/types.js +15 -1
  121. package/dist/nodes/chains/InformationExtractor/types.js.map +1 -1
  122. package/dist/nodes/chains/SentimentAnalysis/SentimentAnalysis.node.js +227 -197
  123. package/dist/nodes/chains/SentimentAnalysis/SentimentAnalysis.node.js.map +1 -1
  124. package/dist/nodes/chains/TextClassifier/TextClassifier.node.js +242 -215
  125. package/dist/nodes/chains/TextClassifier/TextClassifier.node.js.map +1 -1
  126. package/dist/nodes/code/Code.node.js +308 -267
  127. package/dist/nodes/code/Code.node.js.map +1 -1
  128. package/dist/nodes/document_loaders/DocumentBinaryInputLoader/DocumentBinaryInputLoader.node.js +199 -166
  129. package/dist/nodes/document_loaders/DocumentBinaryInputLoader/DocumentBinaryInputLoader.node.js.map +1 -1
  130. package/dist/nodes/document_loaders/DocumentDefaultDataLoader/DocumentDefaultDataLoader.node.js +303 -277
  131. package/dist/nodes/document_loaders/DocumentDefaultDataLoader/DocumentDefaultDataLoader.node.js.map +1 -1
  132. package/dist/nodes/document_loaders/DocumentGithubLoader/DocumentGithubLoader.node.js +136 -110
  133. package/dist/nodes/document_loaders/DocumentGithubLoader/DocumentGithubLoader.node.js.map +1 -1
  134. package/dist/nodes/document_loaders/DocumentJSONInputLoader/DocumentJsonInputLoader.node.js +107 -77
  135. package/dist/nodes/document_loaders/DocumentJSONInputLoader/DocumentJsonInputLoader.node.js.map +1 -1
  136. package/dist/nodes/embeddings/EmbeddingsAwsBedrock/EmbeddingsAwsBedrock.node.js +135 -110
  137. package/dist/nodes/embeddings/EmbeddingsAwsBedrock/EmbeddingsAwsBedrock.node.js.map +1 -1
  138. package/dist/nodes/embeddings/EmbeddingsAzureOpenAi/EmbeddingsAzureOpenAi.node.js +152 -126
  139. package/dist/nodes/embeddings/EmbeddingsAzureOpenAi/EmbeddingsAzureOpenAi.node.js.map +1 -1
  140. package/dist/nodes/embeddings/EmbeddingsCohere/EmbeddingsCohere.node.js +126 -101
  141. package/dist/nodes/embeddings/EmbeddingsCohere/EmbeddingsCohere.node.js.map +1 -1
  142. package/dist/nodes/embeddings/EmbeddingsGoogleGemini/EmbeddingsGoogleGemini.node.js +146 -117
  143. package/dist/nodes/embeddings/EmbeddingsGoogleGemini/EmbeddingsGoogleGemini.node.js.map +1 -1
  144. package/dist/nodes/embeddings/EmbeddingsGoogleVertex/EmbeddingsGoogleVertex.node.js +166 -0
  145. package/dist/nodes/embeddings/EmbeddingsGoogleVertex/EmbeddingsGoogleVertex.node.js.map +1 -0
  146. package/dist/nodes/embeddings/EmbeddingsGoogleVertex/google.svg +1 -0
  147. package/dist/nodes/embeddings/EmbeddingsHuggingFaceInference/EmbeddingsHuggingFaceInference.node.js +118 -89
  148. package/dist/nodes/embeddings/EmbeddingsHuggingFaceInference/EmbeddingsHuggingFaceInference.node.js.map +1 -1
  149. package/dist/nodes/embeddings/EmbeddingsMistralCloud/EmbeddingsMistralCloud.node.js +165 -136
  150. package/dist/nodes/embeddings/EmbeddingsMistralCloud/EmbeddingsMistralCloud.node.js.map +1 -1
  151. package/dist/nodes/embeddings/EmbeddingsOllama/EmbeddingsOllama.node.js +76 -51
  152. package/dist/nodes/embeddings/EmbeddingsOllama/EmbeddingsOllama.node.js.map +1 -1
  153. package/dist/nodes/embeddings/EmbeddingsOpenAI/EmbeddingsOpenAi.node.js +228 -201
  154. package/dist/nodes/embeddings/EmbeddingsOpenAI/EmbeddingsOpenAi.node.js.map +1 -1
  155. package/dist/nodes/llms/LMChatAnthropic/LmChatAnthropic.node.js +306 -272
  156. package/dist/nodes/llms/LMChatAnthropic/LmChatAnthropic.node.js.map +1 -1
  157. package/dist/nodes/llms/LMChatAnthropic/methods/searchModels.js +58 -36
  158. package/dist/nodes/llms/LMChatAnthropic/methods/searchModels.js.map +1 -1
  159. package/dist/nodes/llms/LMChatOllama/LmChatOllama.node.js +87 -61
  160. package/dist/nodes/llms/LMChatOllama/LmChatOllama.node.js.map +1 -1
  161. package/dist/nodes/llms/LMChatOpenAi/LmChatOpenAi.node.js +340 -316
  162. package/dist/nodes/llms/LMChatOpenAi/LmChatOpenAi.node.js.map +1 -1
  163. package/dist/nodes/llms/LMChatOpenAi/methods/loadModels.js +54 -30
  164. package/dist/nodes/llms/LMChatOpenAi/methods/loadModels.js.map +1 -1
  165. package/dist/nodes/llms/LMCohere/LmCohere.node.js +119 -93
  166. package/dist/nodes/llms/LMCohere/LmCohere.node.js.map +1 -1
  167. package/dist/nodes/llms/LMOllama/LmOllama.node.js +86 -60
  168. package/dist/nodes/llms/LMOllama/LmOllama.node.js.map +1 -1
  169. package/dist/nodes/llms/LMOllama/description.js +235 -207
  170. package/dist/nodes/llms/LMOllama/description.js.map +1 -1
  171. package/dist/nodes/llms/LMOpenAi/LmOpenAi.node.js +239 -214
  172. package/dist/nodes/llms/LMOpenAi/LmOpenAi.node.js.map +1 -1
  173. package/dist/nodes/llms/LMOpenHuggingFaceInference/LmOpenHuggingFaceInference.node.js +159 -133
  174. package/dist/nodes/llms/LMOpenHuggingFaceInference/LmOpenHuggingFaceInference.node.js.map +1 -1
  175. package/dist/nodes/llms/LmChatAwsBedrock/LmChatAwsBedrock.node.js +167 -140
  176. package/dist/nodes/llms/LmChatAwsBedrock/LmChatAwsBedrock.node.js.map +1 -1
  177. package/dist/nodes/llms/LmChatAzureOpenAi/LmChatAzureOpenAi.node.js +193 -168
  178. package/dist/nodes/llms/LmChatAzureOpenAi/LmChatAzureOpenAi.node.js.map +1 -1
  179. package/dist/nodes/llms/LmChatDeepSeek/LmChatDeepSeek.node.js +236 -212
  180. package/dist/nodes/llms/LmChatDeepSeek/LmChatDeepSeek.node.js.map +1 -1
  181. package/dist/nodes/llms/LmChatGoogleGemini/LmChatGoogleGemini.node.js +163 -133
  182. package/dist/nodes/llms/LmChatGoogleGemini/LmChatGoogleGemini.node.js.map +1 -1
  183. package/dist/nodes/llms/LmChatGoogleVertex/LmChatGoogleVertex.node.js +194 -164
  184. package/dist/nodes/llms/LmChatGoogleVertex/LmChatGoogleVertex.node.js.map +1 -1
  185. package/dist/nodes/llms/LmChatGoogleVertex/error-handling.js +36 -14
  186. package/dist/nodes/llms/LmChatGoogleVertex/error-handling.js.map +1 -1
  187. package/dist/nodes/llms/LmChatGroq/LmChatGroq.node.js +160 -134
  188. package/dist/nodes/llms/LmChatGroq/LmChatGroq.node.js.map +1 -1
  189. package/dist/nodes/llms/LmChatMistralCloud/LmChatMistralCloud.node.js +205 -179
  190. package/dist/nodes/llms/LmChatMistralCloud/LmChatMistralCloud.node.js.map +1 -1
  191. package/dist/nodes/llms/LmChatOpenRouter/LmChatOpenRouter.node.js +235 -212
  192. package/dist/nodes/llms/LmChatOpenRouter/LmChatOpenRouter.node.js.map +1 -1
  193. package/dist/nodes/llms/LmChatXAiGrok/LmChatXAiGrok.node.js +236 -212
  194. package/dist/nodes/llms/LmChatXAiGrok/LmChatXAiGrok.node.js.map +1 -1
  195. package/dist/nodes/llms/N8nLlmTracing.js +162 -127
  196. package/dist/nodes/llms/N8nLlmTracing.js.map +1 -1
  197. package/dist/nodes/llms/gemini-common/additional-options.js +103 -78
  198. package/dist/nodes/llms/gemini-common/additional-options.js.map +1 -1
  199. package/dist/nodes/llms/gemini-common/safety-options.js +75 -49
  200. package/dist/nodes/llms/gemini-common/safety-options.js.map +1 -1
  201. package/dist/nodes/llms/n8nDefaultFailedAttemptHandler.js +60 -24
  202. package/dist/nodes/llms/n8nDefaultFailedAttemptHandler.js.map +1 -1
  203. package/dist/nodes/llms/n8nLlmFailedAttemptHandler.js +46 -24
  204. package/dist/nodes/llms/n8nLlmFailedAttemptHandler.js.map +1 -1
  205. package/dist/nodes/memory/MemoryBufferWindow/MemoryBufferWindow.node.js +153 -130
  206. package/dist/nodes/memory/MemoryBufferWindow/MemoryBufferWindow.node.js.map +1 -1
  207. package/dist/nodes/memory/MemoryChatRetriever/MemoryChatRetriever.node.js +109 -84
  208. package/dist/nodes/memory/MemoryChatRetriever/MemoryChatRetriever.node.js.map +1 -1
  209. package/dist/nodes/memory/MemoryManager/MemoryManager.node.js +358 -318
  210. package/dist/nodes/memory/MemoryManager/MemoryManager.node.js.map +1 -1
  211. package/dist/nodes/memory/MemoryMongoDbChat/MemoryMongoDbChat.node.js +155 -0
  212. package/dist/nodes/memory/MemoryMongoDbChat/MemoryMongoDbChat.node.js.map +1 -0
  213. package/dist/nodes/memory/MemoryMongoDbChat/mongodb.dark.svg +3 -0
  214. package/dist/nodes/memory/MemoryMongoDbChat/mongodb.svg +3 -0
  215. package/dist/nodes/memory/MemoryMotorhead/MemoryMotorhead.node.js +128 -104
  216. package/dist/nodes/memory/MemoryMotorhead/MemoryMotorhead.node.js.map +1 -1
  217. package/dist/nodes/memory/MemoryPostgresChat/MemoryPostgresChat.node.js +120 -97
  218. package/dist/nodes/memory/MemoryPostgresChat/MemoryPostgresChat.node.js.map +1 -1
  219. package/dist/nodes/memory/MemoryRedisChat/MemoryRedisChat.node.js +172 -150
  220. package/dist/nodes/memory/MemoryRedisChat/MemoryRedisChat.node.js.map +1 -1
  221. package/dist/nodes/memory/MemoryXata/MemoryXata.node.js +153 -125
  222. package/dist/nodes/memory/MemoryXata/MemoryXata.node.js.map +1 -1
  223. package/dist/nodes/memory/MemoryZep/MemoryZep.node.js +159 -133
  224. package/dist/nodes/memory/MemoryZep/MemoryZep.node.js.map +1 -1
  225. package/dist/nodes/memory/descriptions.js +78 -48
  226. package/dist/nodes/memory/descriptions.js.map +1 -1
  227. package/dist/nodes/output_parser/OutputParserAutofixing/OutputParserAutofixing.node.js +129 -90
  228. package/dist/nodes/output_parser/OutputParserAutofixing/OutputParserAutofixing.node.js.map +1 -1
  229. package/dist/nodes/output_parser/OutputParserAutofixing/prompt.js +27 -3
  230. package/dist/nodes/output_parser/OutputParserAutofixing/prompt.js.map +1 -1
  231. package/dist/nodes/output_parser/OutputParserItemList/OutputParserItemList.node.js +103 -68
  232. package/dist/nodes/output_parser/OutputParserItemList/OutputParserItemList.node.js.map +1 -1
  233. package/dist/nodes/output_parser/OutputParserStructured/OutputParserStructured.node.js +129 -102
  234. package/dist/nodes/output_parser/OutputParserStructured/OutputParserStructured.node.js.map +1 -1
  235. package/dist/nodes/retrievers/RetrieverContextualCompression/RetrieverContextualCompression.node.js +99 -69
  236. package/dist/nodes/retrievers/RetrieverContextualCompression/RetrieverContextualCompression.node.js.map +1 -1
  237. package/dist/nodes/retrievers/RetrieverMultiQuery/RetrieverMultiQuery.node.js +118 -88
  238. package/dist/nodes/retrievers/RetrieverMultiQuery/RetrieverMultiQuery.node.js.map +1 -1
  239. package/dist/nodes/retrievers/RetrieverVectorStore/RetrieverVectorStore.node.js +88 -60
  240. package/dist/nodes/retrievers/RetrieverVectorStore/RetrieverVectorStore.node.js.map +1 -1
  241. package/dist/nodes/retrievers/RetrieverWorkflow/RetrieverWorkflow.node.js +400 -356
  242. package/dist/nodes/retrievers/RetrieverWorkflow/RetrieverWorkflow.node.js.map +1 -1
  243. package/dist/nodes/text_splitters/TextSplitterCharacterTextSplitter/TextSplitterCharacterTextSplitter.node.js +99 -74
  244. package/dist/nodes/text_splitters/TextSplitterCharacterTextSplitter/TextSplitterCharacterTextSplitter.node.js.map +1 -1
  245. package/dist/nodes/text_splitters/TextSplitterRecursiveCharacterTextSplitter/TextSplitterRecursiveCharacterTextSplitter.node.js +132 -103
  246. package/dist/nodes/text_splitters/TextSplitterRecursiveCharacterTextSplitter/TextSplitterRecursiveCharacterTextSplitter.node.js.map +1 -1
  247. package/dist/nodes/text_splitters/TextSplitterTokenSplitter/TextSplitterTokenSplitter.node.js +96 -68
  248. package/dist/nodes/text_splitters/TextSplitterTokenSplitter/TextSplitterTokenSplitter.node.js.map +1 -1
  249. package/dist/nodes/tools/ToolCalculator/ToolCalculator.node.js +69 -44
  250. package/dist/nodes/tools/ToolCalculator/ToolCalculator.node.js.map +1 -1
  251. package/dist/nodes/tools/ToolCode/ToolCode.node.js +261 -235
  252. package/dist/nodes/tools/ToolCode/ToolCode.node.js.map +1 -1
  253. package/dist/nodes/tools/ToolHttpRequest/ToolHttpRequest.node.js +384 -328
  254. package/dist/nodes/tools/ToolHttpRequest/ToolHttpRequest.node.js.map +1 -1
  255. package/dist/nodes/tools/ToolHttpRequest/descriptions.js +394 -357
  256. package/dist/nodes/tools/ToolHttpRequest/descriptions.js.map +1 -1
  257. package/dist/nodes/tools/ToolHttpRequest/interfaces.js +15 -1
  258. package/dist/nodes/tools/ToolHttpRequest/interfaces.js.map +1 -1
  259. package/dist/nodes/tools/ToolHttpRequest/utils.js +587 -551
  260. package/dist/nodes/tools/ToolHttpRequest/utils.js.map +1 -1
  261. package/dist/nodes/tools/ToolSerpApi/ToolSerpApi.node.js +131 -106
  262. package/dist/nodes/tools/ToolSerpApi/ToolSerpApi.node.js.map +1 -1
  263. package/dist/nodes/tools/ToolThink/ToolThink.node.js +94 -0
  264. package/dist/nodes/tools/ToolThink/ToolThink.node.js.map +1 -0
  265. package/dist/nodes/tools/ToolVectorStore/ToolVectorStore.node.js +131 -100
  266. package/dist/nodes/tools/ToolVectorStore/ToolVectorStore.node.js.map +1 -1
  267. package/dist/nodes/tools/ToolWikipedia/ToolWikipedia.node.js +70 -46
  268. package/dist/nodes/tools/ToolWikipedia/ToolWikipedia.node.js.map +1 -1
  269. package/dist/nodes/tools/ToolWolframAlpha/ToolWolframAlpha.node.js +75 -50
  270. package/dist/nodes/tools/ToolWolframAlpha/ToolWolframAlpha.node.js.map +1 -1
  271. package/dist/nodes/tools/ToolWorkflow/ToolWorkflow.node.js +64 -41
  272. package/dist/nodes/tools/ToolWorkflow/ToolWorkflow.node.js.map +1 -1
  273. package/dist/nodes/tools/ToolWorkflow/v1/ToolWorkflowV1.node.js +193 -185
  274. package/dist/nodes/tools/ToolWorkflow/v1/ToolWorkflowV1.node.js.map +1 -1
  275. package/dist/nodes/tools/ToolWorkflow/v1/versionDescription.js +326 -287
  276. package/dist/nodes/tools/ToolWorkflow/v1/versionDescription.js.map +1 -1
  277. package/dist/nodes/tools/ToolWorkflow/v2/ToolWorkflowV2.node.js +50 -27
  278. package/dist/nodes/tools/ToolWorkflow/v2/ToolWorkflowV2.node.js.map +1 -1
  279. package/dist/nodes/tools/ToolWorkflow/v2/methods/index.js +36 -35
  280. package/dist/nodes/tools/ToolWorkflow/v2/methods/index.js.map +1 -1
  281. package/dist/nodes/tools/ToolWorkflow/v2/methods/localResourceMapping.js +40 -18
  282. package/dist/nodes/tools/ToolWorkflow/v2/methods/localResourceMapping.js.map +1 -1
  283. package/dist/nodes/tools/ToolWorkflow/v2/utils/WorkflowToolService.js +256 -201
  284. package/dist/nodes/tools/ToolWorkflow/v2/utils/WorkflowToolService.js.map +1 -1
  285. package/dist/nodes/tools/ToolWorkflow/v2/versionDescription.js +159 -126
  286. package/dist/nodes/tools/ToolWorkflow/v2/versionDescription.js.map +1 -1
  287. package/dist/nodes/trigger/ChatTrigger/ChatTrigger.node.js +513 -489
  288. package/dist/nodes/trigger/ChatTrigger/ChatTrigger.node.js.map +1 -1
  289. package/dist/nodes/trigger/ChatTrigger/GenericFunctions.js +70 -41
  290. package/dist/nodes/trigger/ChatTrigger/GenericFunctions.js.map +1 -1
  291. package/dist/nodes/trigger/ChatTrigger/constants.js +27 -3
  292. package/dist/nodes/trigger/ChatTrigger/constants.js.map +1 -1
  293. package/dist/nodes/trigger/ChatTrigger/error.js +39 -17
  294. package/dist/nodes/trigger/ChatTrigger/error.js.map +1 -1
  295. package/dist/nodes/trigger/ChatTrigger/templates.js +73 -33
  296. package/dist/nodes/trigger/ChatTrigger/templates.js.map +1 -1
  297. package/dist/nodes/trigger/ChatTrigger/types.js +15 -1
  298. package/dist/nodes/trigger/ChatTrigger/types.js.map +1 -1
  299. package/dist/nodes/trigger/ManualChatTrigger/ManualChatTrigger.node.js +87 -63
  300. package/dist/nodes/trigger/ManualChatTrigger/ManualChatTrigger.node.js.map +1 -1
  301. package/dist/nodes/vector_store/VectorStoreInMemory/VectorStoreInMemory.node.js +75 -52
  302. package/dist/nodes/vector_store/VectorStoreInMemory/VectorStoreInMemory.node.js.map +1 -1
  303. package/dist/nodes/vector_store/VectorStoreInMemoryInsert/VectorStoreInMemoryInsert.node.js +117 -83
  304. package/dist/nodes/vector_store/VectorStoreInMemoryInsert/VectorStoreInMemoryInsert.node.js.map +1 -1
  305. package/dist/nodes/vector_store/VectorStoreInMemoryLoad/VectorStoreInMemoryLoad.node.js +91 -62
  306. package/dist/nodes/vector_store/VectorStoreInMemoryLoad/VectorStoreInMemoryLoad.node.js.map +1 -1
  307. package/dist/nodes/vector_store/VectorStoreMongoDBAtlas/VectorStoreMongoDBAtlas.node.js +240 -213
  308. package/dist/nodes/vector_store/VectorStoreMongoDBAtlas/VectorStoreMongoDBAtlas.node.js.map +1 -1
  309. package/dist/nodes/vector_store/VectorStorePGVector/VectorStorePGVector.node.js +256 -221
  310. package/dist/nodes/vector_store/VectorStorePGVector/VectorStorePGVector.node.js.map +1 -1
  311. package/dist/nodes/vector_store/VectorStorePinecone/VectorStorePinecone.node.js +131 -109
  312. package/dist/nodes/vector_store/VectorStorePinecone/VectorStorePinecone.node.js.map +1 -1
  313. package/dist/nodes/vector_store/VectorStorePineconeInsert/VectorStorePineconeInsert.node.js +137 -107
  314. package/dist/nodes/vector_store/VectorStorePineconeInsert/VectorStorePineconeInsert.node.js.map +1 -1
  315. package/dist/nodes/vector_store/VectorStorePineconeLoad/VectorStorePineconeLoad.node.js +125 -98
  316. package/dist/nodes/vector_store/VectorStorePineconeLoad/VectorStorePineconeLoad.node.js.map +1 -1
  317. package/dist/nodes/vector_store/VectorStoreQdrant/VectorStoreQdrant.node.js +124 -100
  318. package/dist/nodes/vector_store/VectorStoreQdrant/VectorStoreQdrant.node.js.map +1 -1
  319. package/dist/nodes/vector_store/VectorStoreSupabase/VectorStoreSupabase.node.js +116 -95
  320. package/dist/nodes/vector_store/VectorStoreSupabase/VectorStoreSupabase.node.js.map +1 -1
  321. package/dist/nodes/vector_store/VectorStoreSupabaseInsert/VectorStoreSupabaseInsert.node.js +129 -99
  322. package/dist/nodes/vector_store/VectorStoreSupabaseInsert/VectorStoreSupabaseInsert.node.js.map +1 -1
  323. package/dist/nodes/vector_store/VectorStoreSupabaseLoad/VectorStoreSupabaseLoad.node.js +121 -94
  324. package/dist/nodes/vector_store/VectorStoreSupabaseLoad/VectorStoreSupabaseLoad.node.js.map +1 -1
  325. package/dist/nodes/vector_store/VectorStoreZep/VectorStoreZep.node.js +133 -113
  326. package/dist/nodes/vector_store/VectorStoreZep/VectorStoreZep.node.js.map +1 -1
  327. package/dist/nodes/vector_store/VectorStoreZepInsert/VectorStoreZepInsert.node.js +141 -111
  328. package/dist/nodes/vector_store/VectorStoreZepInsert/VectorStoreZepInsert.node.js.map +1 -1
  329. package/dist/nodes/vector_store/VectorStoreZepLoad/VectorStoreZepLoad.node.js +121 -94
  330. package/dist/nodes/vector_store/VectorStoreZepLoad/VectorStoreZepLoad.node.js.map +1 -1
  331. package/dist/nodes/vector_store/shared/MemoryManager/MemoryCalculator.js +65 -37
  332. package/dist/nodes/vector_store/shared/MemoryManager/MemoryCalculator.js.map +1 -1
  333. package/dist/nodes/vector_store/shared/MemoryManager/MemoryVectorStoreManager.js +220 -159
  334. package/dist/nodes/vector_store/shared/MemoryManager/MemoryVectorStoreManager.js.map +1 -1
  335. package/dist/nodes/vector_store/shared/MemoryManager/StoreCleanupService.js +120 -87
  336. package/dist/nodes/vector_store/shared/MemoryManager/StoreCleanupService.js.map +1 -1
  337. package/dist/nodes/vector_store/shared/MemoryManager/config.js +50 -26
  338. package/dist/nodes/vector_store/shared/MemoryManager/config.js.map +1 -1
  339. package/dist/nodes/vector_store/shared/MemoryManager/types.js +15 -1
  340. package/dist/nodes/vector_store/shared/MemoryManager/types.js.map +1 -1
  341. package/dist/nodes/vector_store/shared/createVectorStoreNode/constants.js +67 -41
  342. package/dist/nodes/vector_store/shared/createVectorStoreNode/constants.js.map +1 -1
  343. package/dist/nodes/vector_store/shared/createVectorStoreNode/createVectorStoreNode.js +240 -194
  344. package/dist/nodes/vector_store/shared/createVectorStoreNode/createVectorStoreNode.js.map +1 -1
  345. package/dist/nodes/vector_store/shared/createVectorStoreNode/methods/listSearch.js +75 -50
  346. package/dist/nodes/vector_store/shared/createVectorStoreNode/methods/listSearch.js.map +1 -1
  347. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/index.js +28 -19
  348. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/index.js.map +1 -1
  349. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/insertOperation.js +58 -29
  350. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/insertOperation.js.map +1 -1
  351. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/loadOperation.js +62 -29
  352. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/loadOperation.js.map +1 -1
  353. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/retrieveAsToolOperation.js +72 -38
  354. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/retrieveAsToolOperation.js.map +1 -1
  355. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/retrieveOperation.js +36 -12
  356. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/retrieveOperation.js.map +1 -1
  357. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/updateOperation.js +64 -34
  358. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/updateOperation.js.map +1 -1
  359. package/dist/nodes/vector_store/shared/createVectorStoreNode/types.js +15 -1
  360. package/dist/nodes/vector_store/shared/createVectorStoreNode/types.js.map +1 -1
  361. package/dist/nodes/vector_store/shared/createVectorStoreNode/utils.js +40 -12
  362. package/dist/nodes/vector_store/shared/createVectorStoreNode/utils.js.map +1 -1
  363. package/dist/nodes/vector_store/shared/descriptions.js +93 -65
  364. package/dist/nodes/vector_store/shared/descriptions.js.map +1 -1
  365. package/dist/nodes/vector_store/shared/processDocuments.js +58 -35
  366. package/dist/nodes/vector_store/shared/processDocuments.js.map +1 -1
  367. package/dist/nodes/vendors/OpenAi/OpenAi.node.js +39 -16
  368. package/dist/nodes/vendors/OpenAi/OpenAi.node.js.map +1 -1
  369. package/dist/nodes/vendors/OpenAi/actions/assistant/create.operation.js +267 -228
  370. package/dist/nodes/vendors/OpenAi/actions/assistant/create.operation.js.map +1 -1
  371. package/dist/nodes/vendors/OpenAi/actions/assistant/deleteAssistant.operation.js +49 -24
  372. package/dist/nodes/vendors/OpenAi/actions/assistant/deleteAssistant.operation.js.map +1 -1
  373. package/dist/nodes/vendors/OpenAi/actions/assistant/index.js +100 -94
  374. package/dist/nodes/vendors/OpenAi/actions/assistant/index.js.map +1 -1
  375. package/dist/nodes/vendors/OpenAi/actions/assistant/list.operation.js +83 -59
  376. package/dist/nodes/vendors/OpenAi/actions/assistant/list.operation.js.map +1 -1
  377. package/dist/nodes/vendors/OpenAi/actions/assistant/message.operation.js +255 -227
  378. package/dist/nodes/vendors/OpenAi/actions/assistant/message.operation.js.map +1 -1
  379. package/dist/nodes/vendors/OpenAi/actions/assistant/update.operation.js +216 -171
  380. package/dist/nodes/vendors/OpenAi/actions/assistant/update.operation.js.map +1 -1
  381. package/dist/nodes/vendors/OpenAi/actions/audio/generate.operation.js +186 -157
  382. package/dist/nodes/vendors/OpenAi/actions/audio/generate.operation.js.map +1 -1
  383. package/dist/nodes/vendors/OpenAi/actions/audio/index.js +92 -88
  384. package/dist/nodes/vendors/OpenAi/actions/audio/index.js.map +1 -1
  385. package/dist/nodes/vendors/OpenAi/actions/audio/transcribe.operation.js +108 -76
  386. package/dist/nodes/vendors/OpenAi/actions/audio/transcribe.operation.js.map +1 -1
  387. package/dist/nodes/vendors/OpenAi/actions/audio/translate.operation.js +99 -67
  388. package/dist/nodes/vendors/OpenAi/actions/audio/translate.operation.js.map +1 -1
  389. package/dist/nodes/vendors/OpenAi/actions/descriptions.js +75 -50
  390. package/dist/nodes/vendors/OpenAi/actions/descriptions.js.map +1 -1
  391. package/dist/nodes/vendors/OpenAi/actions/file/deleteFile.operation.js +75 -50
  392. package/dist/nodes/vendors/OpenAi/actions/file/deleteFile.operation.js.map +1 -1
  393. package/dist/nodes/vendors/OpenAi/actions/file/index.js +80 -76
  394. package/dist/nodes/vendors/OpenAi/actions/file/index.js.map +1 -1
  395. package/dist/nodes/vendors/OpenAi/actions/file/list.operation.js +74 -49
  396. package/dist/nodes/vendors/OpenAi/actions/file/list.operation.js.map +1 -1
  397. package/dist/nodes/vendors/OpenAi/actions/file/upload.operation.js +108 -78
  398. package/dist/nodes/vendors/OpenAi/actions/file/upload.operation.js.map +1 -1
  399. package/dist/nodes/vendors/OpenAi/actions/image/analyze.operation.js +206 -187
  400. package/dist/nodes/vendors/OpenAi/actions/image/analyze.operation.js.map +1 -1
  401. package/dist/nodes/vendors/OpenAi/actions/image/generate.operation.js +240 -213
  402. package/dist/nodes/vendors/OpenAi/actions/image/generate.operation.js.map +1 -1
  403. package/dist/nodes/vendors/OpenAi/actions/image/index.js +70 -67
  404. package/dist/nodes/vendors/OpenAi/actions/image/index.js.map +1 -1
  405. package/dist/nodes/vendors/OpenAi/actions/node.type.js +15 -1
  406. package/dist/nodes/vendors/OpenAi/actions/node.type.js.map +1 -1
  407. package/dist/nodes/vendors/OpenAi/actions/router.js +100 -97
  408. package/dist/nodes/vendors/OpenAi/actions/router.js.map +1 -1
  409. package/dist/nodes/vendors/OpenAi/actions/text/classify.operation.js +93 -70
  410. package/dist/nodes/vendors/OpenAi/actions/text/classify.operation.js.map +1 -1
  411. package/dist/nodes/vendors/OpenAi/actions/text/index.js +71 -67
  412. package/dist/nodes/vendors/OpenAi/actions/text/index.js.map +1 -1
  413. package/dist/nodes/vendors/OpenAi/actions/text/message.operation.js +307 -278
  414. package/dist/nodes/vendors/OpenAi/actions/text/message.operation.js.map +1 -1
  415. package/dist/nodes/vendors/OpenAi/actions/versionDescription.js +143 -141
  416. package/dist/nodes/vendors/OpenAi/actions/versionDescription.js.map +1 -1
  417. package/dist/nodes/vendors/OpenAi/helpers/constants.js +47 -23
  418. package/dist/nodes/vendors/OpenAi/helpers/constants.js.map +1 -1
  419. package/dist/nodes/vendors/OpenAi/helpers/error-handling.js +42 -17
  420. package/dist/nodes/vendors/OpenAi/helpers/error-handling.js.map +1 -1
  421. package/dist/nodes/vendors/OpenAi/helpers/interfaces.js +15 -1
  422. package/dist/nodes/vendors/OpenAi/helpers/interfaces.js.map +1 -1
  423. package/dist/nodes/vendors/OpenAi/helpers/utils.js +56 -29
  424. package/dist/nodes/vendors/OpenAi/helpers/utils.js.map +1 -1
  425. package/dist/nodes/vendors/OpenAi/methods/index.js +39 -36
  426. package/dist/nodes/vendors/OpenAi/methods/index.js.map +1 -1
  427. package/dist/nodes/vendors/OpenAi/methods/listSearch.js +118 -95
  428. package/dist/nodes/vendors/OpenAi/methods/listSearch.js.map +1 -1
  429. package/dist/nodes/vendors/OpenAi/methods/loadOptions.js +36 -12
  430. package/dist/nodes/vendors/OpenAi/methods/loadOptions.js.map +1 -1
  431. package/dist/nodes/vendors/OpenAi/transport/index.js +44 -20
  432. package/dist/nodes/vendors/OpenAi/transport/index.js.map +1 -1
  433. package/dist/types/nodes.json +9 -6
  434. package/dist/types/types.js.map +1 -1
  435. package/dist/types/zod.types.js +15 -1
  436. package/dist/types/zod.types.js.map +1 -1
  437. package/dist/utils/N8nBinaryLoader.js +186 -142
  438. package/dist/utils/N8nBinaryLoader.js.map +1 -1
  439. package/dist/utils/N8nJsonLoader.js +82 -59
  440. package/dist/utils/N8nJsonLoader.js.map +1 -1
  441. package/dist/utils/N8nTool.js +95 -75
  442. package/dist/utils/N8nTool.js.map +1 -1
  443. package/dist/utils/descriptions.js +128 -92
  444. package/dist/utils/descriptions.js.map +1 -1
  445. package/dist/utils/helpers.js +153 -137
  446. package/dist/utils/helpers.js.map +1 -1
  447. package/dist/utils/logWrapper.js +328 -285
  448. package/dist/utils/logWrapper.js.map +1 -1
  449. package/dist/utils/output_parsers/N8nItemListOutputParser.js +57 -35
  450. package/dist/utils/output_parsers/N8nItemListOutputParser.js.map +1 -1
  451. package/dist/utils/output_parsers/N8nOutputFixingParser.js +94 -62
  452. package/dist/utils/output_parsers/N8nOutputFixingParser.js.map +1 -1
  453. package/dist/utils/output_parsers/N8nOutputParser.js +44 -15
  454. package/dist/utils/output_parsers/N8nOutputParser.js.map +1 -1
  455. package/dist/utils/output_parsers/N8nStructuredOutputParser.js +109 -79
  456. package/dist/utils/output_parsers/N8nStructuredOutputParser.js.map +1 -1
  457. package/dist/utils/output_parsers/prompt.js +48 -0
  458. package/dist/utils/output_parsers/prompt.js.map +1 -0
  459. package/dist/utils/schemaParsing.js +43 -14
  460. package/dist/utils/schemaParsing.js.map +1 -1
  461. package/dist/utils/sharedFields.js +130 -104
  462. package/dist/utils/sharedFields.js.map +1 -1
  463. package/dist/utils/tracing.js +37 -15
  464. package/dist/utils/tracing.js.map +1 -1
  465. package/package.json +14 -9
  466. package/dist/build.tsbuildinfo +0 -1
  467. package/dist/credentials/AnthropicApi.credentials.d.ts +0 -9
  468. package/dist/credentials/AzureOpenAiApi.credentials.d.ts +0 -8
  469. package/dist/credentials/CohereApi.credentials.d.ts +0 -9
  470. package/dist/credentials/DeepSeekApi.credentials.d.ts +0 -9
  471. package/dist/credentials/GooglePalmApi.credentials.d.ts +0 -9
  472. package/dist/credentials/GroqApi.credentials.d.ts +0 -9
  473. package/dist/credentials/HuggingFaceApi.credentials.d.ts +0 -9
  474. package/dist/credentials/MistralCloudApi.credentials.d.ts +0 -9
  475. package/dist/credentials/MotorheadApi.credentials.d.ts +0 -9
  476. package/dist/credentials/OllamaApi.credentials.d.ts +0 -8
  477. package/dist/credentials/OpenRouterApi.credentials.d.ts +0 -9
  478. package/dist/credentials/PineconeApi.credentials.d.ts +0 -9
  479. package/dist/credentials/QdrantApi.credentials.d.ts +0 -9
  480. package/dist/credentials/SerpApi.credentials.d.ts +0 -9
  481. package/dist/credentials/WolframAlphaApi.credentials.d.ts +0 -9
  482. package/dist/credentials/XAiApi.credentials.d.ts +0 -9
  483. package/dist/credentials/XataApi.credentials.d.ts +0 -9
  484. package/dist/credentials/ZepApi.credentials.d.ts +0 -9
  485. package/dist/nodes/agents/Agent/Agent.node.d.ts +0 -5
  486. package/dist/nodes/agents/Agent/agents/ConversationalAgent/description.d.ts +0 -2
  487. package/dist/nodes/agents/Agent/agents/ConversationalAgent/execute.d.ts +0 -2
  488. package/dist/nodes/agents/Agent/agents/ConversationalAgent/prompt.d.ts +0 -2
  489. package/dist/nodes/agents/Agent/agents/OpenAiFunctionsAgent/description.d.ts +0 -2
  490. package/dist/nodes/agents/Agent/agents/OpenAiFunctionsAgent/execute.d.ts +0 -2
  491. package/dist/nodes/agents/Agent/agents/OpenAiFunctionsAgent/prompt.d.ts +0 -1
  492. package/dist/nodes/agents/Agent/agents/PlanAndExecuteAgent/description.d.ts +0 -2
  493. package/dist/nodes/agents/Agent/agents/PlanAndExecuteAgent/execute.d.ts +0 -2
  494. package/dist/nodes/agents/Agent/agents/PlanAndExecuteAgent/prompt.d.ts +0 -1
  495. package/dist/nodes/agents/Agent/agents/ReActAgent/description.d.ts +0 -2
  496. package/dist/nodes/agents/Agent/agents/ReActAgent/execute.d.ts +0 -2
  497. package/dist/nodes/agents/Agent/agents/ReActAgent/prompt.d.ts +0 -4
  498. package/dist/nodes/agents/Agent/agents/SqlAgent/description.d.ts +0 -2
  499. package/dist/nodes/agents/Agent/agents/SqlAgent/execute.d.ts +0 -2
  500. package/dist/nodes/agents/Agent/agents/SqlAgent/other/handlers/mysql.d.ts +0 -3
  501. package/dist/nodes/agents/Agent/agents/SqlAgent/other/handlers/postgres.d.ts +0 -3
  502. package/dist/nodes/agents/Agent/agents/SqlAgent/other/handlers/sqlite.d.ts +0 -3
  503. package/dist/nodes/agents/Agent/agents/SqlAgent/other/prompts.d.ts +0 -2
  504. package/dist/nodes/agents/Agent/agents/ToolsAgent/description.d.ts +0 -2
  505. package/dist/nodes/agents/Agent/agents/ToolsAgent/execute.d.ts +0 -31
  506. package/dist/nodes/agents/Agent/agents/ToolsAgent/prompt.d.ts +0 -1
  507. package/dist/nodes/agents/Agent/agents/utils.d.ts +0 -8
  508. package/dist/nodes/agents/OpenAiAssistant/OpenAiAssistant.node.d.ts +0 -5
  509. package/dist/nodes/agents/OpenAiAssistant/utils.d.ts +0 -5
  510. package/dist/nodes/chains/ChainLLM/ChainLlm.node.d.ts +0 -5
  511. package/dist/nodes/chains/ChainLLM/methods/chainExecutor.d.ts +0 -19
  512. package/dist/nodes/chains/ChainLLM/methods/config.d.ts +0 -3
  513. package/dist/nodes/chains/ChainLLM/methods/imageUtils.d.ts +0 -12
  514. package/dist/nodes/chains/ChainLLM/methods/index.d.ts +0 -4
  515. package/dist/nodes/chains/ChainLLM/methods/promptUtils.d.ts +0 -3
  516. package/dist/nodes/chains/ChainLLM/methods/responseFormatter.d.ts +0 -2
  517. package/dist/nodes/chains/ChainLLM/methods/types.d.ts +0 -28
  518. package/dist/nodes/chains/ChainRetrievalQA/ChainRetrievalQa.node.d.ts +0 -5
  519. package/dist/nodes/chains/ChainSummarization/ChainSummarization.node.d.ts +0 -4
  520. package/dist/nodes/chains/ChainSummarization/V1/ChainSummarizationV1.node.d.ts +0 -6
  521. package/dist/nodes/chains/ChainSummarization/V2/ChainSummarizationV2.node.d.ts +0 -6
  522. package/dist/nodes/chains/ChainSummarization/helpers.d.ts +0 -9
  523. package/dist/nodes/chains/ChainSummarization/prompt.d.ts +0 -2
  524. package/dist/nodes/chains/InformationExtractor/InformationExtractor.node.d.ts +0 -5
  525. package/dist/nodes/chains/InformationExtractor/helpers.d.ts +0 -7
  526. package/dist/nodes/chains/InformationExtractor/types.d.ts +0 -6
  527. package/dist/nodes/chains/SentimentAnalysis/SentimentAnalysis.node.d.ts +0 -5
  528. package/dist/nodes/chains/TextClassifier/TextClassifier.node.d.ts +0 -5
  529. package/dist/nodes/code/Code.node.d.ts +0 -7
  530. package/dist/nodes/document_loaders/DocumentBinaryInputLoader/DocumentBinaryInputLoader.node.d.ts +0 -8
  531. package/dist/nodes/document_loaders/DocumentDefaultDataLoader/DocumentDefaultDataLoader.node.d.ts +0 -8
  532. package/dist/nodes/document_loaders/DocumentGithubLoader/DocumentGithubLoader.node.d.ts +0 -5
  533. package/dist/nodes/document_loaders/DocumentJSONInputLoader/DocumentJsonInputLoader.node.d.ts +0 -5
  534. package/dist/nodes/embeddings/EmbeddingsAwsBedrock/EmbeddingsAwsBedrock.node.d.ts +0 -5
  535. package/dist/nodes/embeddings/EmbeddingsAzureOpenAi/EmbeddingsAzureOpenAi.node.d.ts +0 -5
  536. package/dist/nodes/embeddings/EmbeddingsCohere/EmbeddingsCohere.node.d.ts +0 -5
  537. package/dist/nodes/embeddings/EmbeddingsGoogleGemini/EmbeddingsGoogleGemini.node.d.ts +0 -5
  538. package/dist/nodes/embeddings/EmbeddingsHuggingFaceInference/EmbeddingsHuggingFaceInference.node.d.ts +0 -5
  539. package/dist/nodes/embeddings/EmbeddingsMistralCloud/EmbeddingsMistralCloud.node.d.ts +0 -5
  540. package/dist/nodes/embeddings/EmbeddingsOllama/EmbeddingsOllama.node.d.ts +0 -5
  541. package/dist/nodes/embeddings/EmbeddingsOpenAI/EmbeddingsOpenAi.node.d.ts +0 -5
  542. package/dist/nodes/llms/LMChatAnthropic/LmChatAnthropic.node.d.ts +0 -11
  543. package/dist/nodes/llms/LMChatAnthropic/methods/searchModels.d.ts +0 -8
  544. package/dist/nodes/llms/LMChatOllama/LmChatOllama.node.d.ts +0 -5
  545. package/dist/nodes/llms/LMChatOpenAi/LmChatOpenAi.node.d.ts +0 -11
  546. package/dist/nodes/llms/LMChatOpenAi/methods/loadModels.d.ts +0 -2
  547. package/dist/nodes/llms/LMCohere/LmCohere.node.d.ts +0 -5
  548. package/dist/nodes/llms/LMOllama/LmOllama.node.d.ts +0 -5
  549. package/dist/nodes/llms/LMOllama/description.d.ts +0 -4
  550. package/dist/nodes/llms/LMOpenAi/LmOpenAi.node.d.ts +0 -15
  551. package/dist/nodes/llms/LMOpenHuggingFaceInference/LmOpenHuggingFaceInference.node.d.ts +0 -5
  552. package/dist/nodes/llms/LmChatAwsBedrock/LmChatAwsBedrock.node.d.ts +0 -5
  553. package/dist/nodes/llms/LmChatAzureOpenAi/LmChatAzureOpenAi.node.d.ts +0 -5
  554. package/dist/nodes/llms/LmChatDeepSeek/LmChatDeepSeek.node.d.ts +0 -5
  555. package/dist/nodes/llms/LmChatGoogleGemini/LmChatGoogleGemini.node.d.ts +0 -5
  556. package/dist/nodes/llms/LmChatGoogleVertex/LmChatGoogleVertex.node.d.ts +0 -15
  557. package/dist/nodes/llms/LmChatGoogleVertex/error-handling.d.ts +0 -8
  558. package/dist/nodes/llms/LmChatGroq/LmChatGroq.node.d.ts +0 -5
  559. package/dist/nodes/llms/LmChatMistralCloud/LmChatMistralCloud.node.d.ts +0 -5
  560. package/dist/nodes/llms/LmChatOpenRouter/LmChatOpenRouter.node.d.ts +0 -5
  561. package/dist/nodes/llms/LmChatXAiGrok/LmChatXAiGrok.node.d.ts +0 -5
  562. package/dist/nodes/llms/N8nLlmTracing.d.ts +0 -44
  563. package/dist/nodes/llms/gemini-common/additional-options.d.ts +0 -2
  564. package/dist/nodes/llms/gemini-common/safety-options.d.ts +0 -3
  565. package/dist/nodes/llms/n8nDefaultFailedAttemptHandler.d.ts +0 -1
  566. package/dist/nodes/llms/n8nLlmFailedAttemptHandler.d.ts +0 -3
  567. package/dist/nodes/memory/MemoryBufferWindow/MemoryBufferWindow.node.d.ts +0 -5
  568. package/dist/nodes/memory/MemoryChatRetriever/MemoryChatRetriever.node.d.ts +0 -5
  569. package/dist/nodes/memory/MemoryManager/MemoryManager.node.d.ts +0 -5
  570. package/dist/nodes/memory/MemoryMotorhead/MemoryMotorhead.node.d.ts +0 -5
  571. package/dist/nodes/memory/MemoryPostgresChat/MemoryPostgresChat.node.d.ts +0 -11
  572. package/dist/nodes/memory/MemoryRedisChat/MemoryRedisChat.node.d.ts +0 -5
  573. package/dist/nodes/memory/MemoryXata/MemoryXata.node.d.ts +0 -5
  574. package/dist/nodes/memory/MemoryZep/MemoryZep.node.d.ts +0 -5
  575. package/dist/nodes/memory/descriptions.d.ts +0 -5
  576. package/dist/nodes/output_parser/OutputParserAutofixing/OutputParserAutofixing.node.d.ts +0 -5
  577. package/dist/nodes/output_parser/OutputParserAutofixing/prompt.d.ts +0 -1
  578. package/dist/nodes/output_parser/OutputParserItemList/OutputParserItemList.node.d.ts +0 -5
  579. package/dist/nodes/output_parser/OutputParserStructured/OutputParserStructured.node.d.ts +0 -5
  580. package/dist/nodes/retrievers/RetrieverContextualCompression/RetrieverContextualCompression.node.d.ts +0 -5
  581. package/dist/nodes/retrievers/RetrieverMultiQuery/RetrieverMultiQuery.node.d.ts +0 -5
  582. package/dist/nodes/retrievers/RetrieverVectorStore/RetrieverVectorStore.node.d.ts +0 -5
  583. package/dist/nodes/retrievers/RetrieverWorkflow/RetrieverWorkflow.node.d.ts +0 -5
  584. package/dist/nodes/text_splitters/TextSplitterCharacterTextSplitter/TextSplitterCharacterTextSplitter.node.d.ts +0 -5
  585. package/dist/nodes/text_splitters/TextSplitterRecursiveCharacterTextSplitter/TextSplitterRecursiveCharacterTextSplitter.node.d.ts +0 -5
  586. package/dist/nodes/text_splitters/TextSplitterTokenSplitter/TextSplitterTokenSplitter.node.d.ts +0 -5
  587. package/dist/nodes/tools/ToolCalculator/ToolCalculator.node.d.ts +0 -5
  588. package/dist/nodes/tools/ToolCode/ToolCode.node.d.ts +0 -5
  589. package/dist/nodes/tools/ToolHttpRequest/ToolHttpRequest.node.d.ts +0 -5
  590. package/dist/nodes/tools/ToolHttpRequest/descriptions.d.ts +0 -7
  591. package/dist/nodes/tools/ToolHttpRequest/interfaces.d.ts +0 -20
  592. package/dist/nodes/tools/ToolHttpRequest/utils.d.ts +0 -25
  593. package/dist/nodes/tools/ToolSerpApi/ToolSerpApi.node.d.ts +0 -5
  594. package/dist/nodes/tools/ToolVectorStore/ToolVectorStore.node.d.ts +0 -5
  595. package/dist/nodes/tools/ToolWikipedia/ToolWikipedia.node.d.ts +0 -5
  596. package/dist/nodes/tools/ToolWolframAlpha/ToolWolframAlpha.node.d.ts +0 -5
  597. package/dist/nodes/tools/ToolWorkflow/ToolWorkflow.node.d.ts +0 -4
  598. package/dist/nodes/tools/ToolWorkflow/v1/ToolWorkflowV1.node.d.ts +0 -6
  599. package/dist/nodes/tools/ToolWorkflow/v1/versionDescription.d.ts +0 -2
  600. package/dist/nodes/tools/ToolWorkflow/v2/ToolWorkflowV2.node.d.ts +0 -10
  601. package/dist/nodes/tools/ToolWorkflow/v2/methods/index.d.ts +0 -1
  602. package/dist/nodes/tools/ToolWorkflow/v2/methods/localResourceMapping.d.ts +0 -2
  603. package/dist/nodes/tools/ToolWorkflow/v2/utils/WorkflowToolService.d.ts +0 -26
  604. package/dist/nodes/tools/ToolWorkflow/v2/versionDescription.d.ts +0 -2
  605. package/dist/nodes/trigger/ChatTrigger/ChatTrigger.node.d.ts +0 -7
  606. package/dist/nodes/trigger/ChatTrigger/GenericFunctions.d.ts +0 -2
  607. package/dist/nodes/trigger/ChatTrigger/constants.d.ts +0 -1
  608. package/dist/nodes/trigger/ChatTrigger/error.d.ts +0 -5
  609. package/dist/nodes/trigger/ChatTrigger/templates.d.ts +0 -16
  610. package/dist/nodes/trigger/ChatTrigger/types.d.ts +0 -2
  611. package/dist/nodes/trigger/ManualChatTrigger/ManualChatTrigger.node.d.ts +0 -5
  612. package/dist/nodes/vector_store/VectorStoreInMemory/VectorStoreInMemory.node.d.ts +0 -15
  613. package/dist/nodes/vector_store/VectorStoreInMemoryInsert/VectorStoreInMemoryInsert.node.d.ts +0 -5
  614. package/dist/nodes/vector_store/VectorStoreInMemoryLoad/VectorStoreInMemoryLoad.node.d.ts +0 -5
  615. package/dist/nodes/vector_store/VectorStoreMongoDBAtlas/VectorStoreMongoDBAtlas.node.d.ts +0 -16
  616. package/dist/nodes/vector_store/VectorStorePGVector/VectorStorePGVector.node.d.ts +0 -15
  617. package/dist/nodes/vector_store/VectorStorePinecone/VectorStorePinecone.node.d.ts +0 -15
  618. package/dist/nodes/vector_store/VectorStorePineconeInsert/VectorStorePineconeInsert.node.d.ts +0 -11
  619. package/dist/nodes/vector_store/VectorStorePineconeLoad/VectorStorePineconeLoad.node.d.ts +0 -11
  620. package/dist/nodes/vector_store/VectorStoreQdrant/VectorStoreQdrant.node.d.ts +0 -15
  621. package/dist/nodes/vector_store/VectorStoreSupabase/VectorStoreSupabase.node.d.ts +0 -15
  622. package/dist/nodes/vector_store/VectorStoreSupabaseInsert/VectorStoreSupabaseInsert.node.d.ts +0 -11
  623. package/dist/nodes/vector_store/VectorStoreSupabaseLoad/VectorStoreSupabaseLoad.node.d.ts +0 -11
  624. package/dist/nodes/vector_store/VectorStoreZep/VectorStoreZep.node.d.ts +0 -15
  625. package/dist/nodes/vector_store/VectorStoreZepInsert/VectorStoreZepInsert.node.d.ts +0 -5
  626. package/dist/nodes/vector_store/VectorStoreZepLoad/VectorStoreZepLoad.node.d.ts +0 -5
  627. package/dist/nodes/vector_store/shared/MemoryManager/MemoryCalculator.d.ts +0 -7
  628. package/dist/nodes/vector_store/shared/MemoryManager/MemoryVectorStoreManager.d.ts +0 -32
  629. package/dist/nodes/vector_store/shared/MemoryManager/StoreCleanupService.d.ts +0 -16
  630. package/dist/nodes/vector_store/shared/MemoryManager/config.d.ts +0 -4
  631. package/dist/nodes/vector_store/shared/MemoryManager/types.d.ts +0 -39
  632. package/dist/nodes/vector_store/shared/createVectorStoreNode/constants.d.ts +0 -4
  633. package/dist/nodes/vector_store/shared/createVectorStoreNode/createVectorStoreNode.d.ts +0 -15
  634. package/dist/nodes/vector_store/shared/createVectorStoreNode/methods/listSearch.d.ts +0 -19
  635. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/index.d.ts +0 -5
  636. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/insertOperation.d.ts +0 -5
  637. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/loadOperation.d.ts +0 -5
  638. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/retrieveAsToolOperation.d.ts +0 -5
  639. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/retrieveOperation.d.ts +0 -5
  640. package/dist/nodes/vector_store/shared/createVectorStoreNode/operations/updateOperation.d.ts +0 -5
  641. package/dist/nodes/vector_store/shared/createVectorStoreNode/types.d.ts +0 -31
  642. package/dist/nodes/vector_store/shared/createVectorStoreNode/utils.d.ts +0 -6
  643. package/dist/nodes/vector_store/shared/descriptions.d.ts +0 -4
  644. package/dist/nodes/vector_store/shared/processDocuments.d.ts +0 -25
  645. package/dist/nodes/vendors/OpenAi/OpenAi.node.d.ts +0 -10
  646. package/dist/nodes/vendors/OpenAi/actions/assistant/create.operation.d.ts +0 -26
  647. package/dist/nodes/vendors/OpenAi/actions/assistant/deleteAssistant.operation.d.ts +0 -26
  648. package/dist/nodes/vendors/OpenAi/actions/assistant/index.d.ts +0 -8
  649. package/dist/nodes/vendors/OpenAi/actions/assistant/list.operation.d.ts +0 -26
  650. package/dist/nodes/vendors/OpenAi/actions/assistant/message.operation.d.ts +0 -26
  651. package/dist/nodes/vendors/OpenAi/actions/assistant/update.operation.d.ts +0 -26
  652. package/dist/nodes/vendors/OpenAi/actions/audio/generate.operation.d.ts +0 -26
  653. package/dist/nodes/vendors/OpenAi/actions/audio/index.d.ts +0 -6
  654. package/dist/nodes/vendors/OpenAi/actions/audio/transcribe.operation.d.ts +0 -26
  655. package/dist/nodes/vendors/OpenAi/actions/audio/translate.operation.d.ts +0 -26
  656. package/dist/nodes/vendors/OpenAi/actions/descriptions.d.ts +0 -3
  657. package/dist/nodes/vendors/OpenAi/actions/file/deleteFile.operation.d.ts +0 -26
  658. package/dist/nodes/vendors/OpenAi/actions/file/index.d.ts +0 -6
  659. package/dist/nodes/vendors/OpenAi/actions/file/list.operation.d.ts +0 -26
  660. package/dist/nodes/vendors/OpenAi/actions/file/upload.operation.d.ts +0 -26
  661. package/dist/nodes/vendors/OpenAi/actions/image/analyze.operation.d.ts +0 -26
  662. package/dist/nodes/vendors/OpenAi/actions/image/generate.operation.d.ts +0 -26
  663. package/dist/nodes/vendors/OpenAi/actions/image/index.d.ts +0 -5
  664. package/dist/nodes/vendors/OpenAi/actions/node.type.d.ts +0 -10
  665. package/dist/nodes/vendors/OpenAi/actions/router.d.ts +0 -2
  666. package/dist/nodes/vendors/OpenAi/actions/text/classify.operation.d.ts +0 -26
  667. package/dist/nodes/vendors/OpenAi/actions/text/index.d.ts +0 -5
  668. package/dist/nodes/vendors/OpenAi/actions/text/message.operation.d.ts +0 -26
  669. package/dist/nodes/vendors/OpenAi/actions/versionDescription.d.ts +0 -2
  670. package/dist/nodes/vendors/OpenAi/helpers/constants.d.ts +0 -1
  671. package/dist/nodes/vendors/OpenAi/helpers/error-handling.d.ts +0 -4
  672. package/dist/nodes/vendors/OpenAi/helpers/interfaces.d.ts +0 -55
  673. package/dist/nodes/vendors/OpenAi/helpers/utils.d.ts +0 -8
  674. package/dist/nodes/vendors/OpenAi/methods/index.d.ts +0 -2
  675. package/dist/nodes/vendors/OpenAi/methods/listSearch.d.ts +0 -5
  676. package/dist/nodes/vendors/OpenAi/methods/loadOptions.d.ts +0 -2
  677. package/dist/nodes/vendors/OpenAi/transport/index.d.ts +0 -10
  678. package/dist/types/types.d.ts +0 -4
  679. package/dist/types/zod.types.d.ts +0 -2
  680. package/dist/utils/N8nBinaryLoader.d.ts +0 -18
  681. package/dist/utils/N8nJsonLoader.d.ts +0 -11
  682. package/dist/utils/N8nTool.d.ts +0 -10
  683. package/dist/utils/descriptions.d.ts +0 -13
  684. package/dist/utils/helpers.d.ts +0 -23
  685. package/dist/utils/logWrapper.d.ts +0 -27
  686. package/dist/utils/output_parsers/N8nItemListOutputParser.d.ts +0 -13
  687. package/dist/utils/output_parsers/N8nOutputFixingParser.d.ts +0 -18
  688. package/dist/utils/output_parsers/N8nOutputParser.d.ts +0 -7
  689. package/dist/utils/output_parsers/N8nStructuredOutputParser.d.ts +0 -12
  690. package/dist/utils/schemaParsing.d.ts +0 -6
  691. package/dist/utils/sharedFields.d.ts +0 -6
  692. package/dist/utils/tracing.d.ts +0 -7
@@ -1,6 +1,26 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MemoryCalculator = void 0;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var MemoryCalculator_exports = {};
20
+ __export(MemoryCalculator_exports, {
21
+ MemoryCalculator: () => MemoryCalculator
22
+ });
23
+ module.exports = __toCommonJS(MemoryCalculator_exports);
4
24
  const FLOAT_SIZE_BYTES = 8;
5
25
  const CHAR_SIZE_BYTES = 2;
6
26
  const VECTOR_OVERHEAD_BYTES = 200;
@@ -8,43 +28,51 @@ const EMBEDDING_DIMENSIONS = 1536;
8
28
  const EMBEDDING_SIZE_BYTES = EMBEDDING_DIMENSIONS * FLOAT_SIZE_BYTES;
9
29
  const AVG_METADATA_SIZE_BYTES = 100;
10
30
  class MemoryCalculator {
11
- estimateBatchSize(documents) {
12
- if (documents.length === 0)
13
- return 0;
14
- let totalContentSize = 0;
15
- let totalMetadataSize = 0;
16
- for (const doc of documents) {
17
- if (doc.pageContent) {
18
- totalContentSize += doc.pageContent.length * CHAR_SIZE_BYTES;
19
- }
20
- if (doc.metadata) {
21
- const metadataKeys = Object.keys(doc.metadata).length;
22
- if (metadataKeys > 0) {
23
- totalMetadataSize += metadataKeys * AVG_METADATA_SIZE_BYTES;
24
- }
25
- }
31
+ /**
32
+ * Fast batch size estimation for multiple documents
33
+ */
34
+ estimateBatchSize(documents) {
35
+ if (documents.length === 0) return 0;
36
+ let totalContentSize = 0;
37
+ let totalMetadataSize = 0;
38
+ for (const doc of documents) {
39
+ if (doc.pageContent) {
40
+ totalContentSize += doc.pageContent.length * CHAR_SIZE_BYTES;
41
+ }
42
+ if (doc.metadata) {
43
+ const metadataKeys = Object.keys(doc.metadata).length;
44
+ if (metadataKeys > 0) {
45
+ totalMetadataSize += metadataKeys * AVG_METADATA_SIZE_BYTES;
26
46
  }
27
- const embeddingSize = documents.length * EMBEDDING_SIZE_BYTES;
28
- const overhead = documents.length * VECTOR_OVERHEAD_BYTES;
29
- const calculatedSize = totalContentSize + totalMetadataSize + embeddingSize + overhead;
30
- return Math.ceil(calculatedSize);
47
+ }
31
48
  }
32
- calculateVectorStoreSize(vectorStore) {
33
- if (!vectorStore.memoryVectors || vectorStore.memoryVectors.length === 0) {
34
- return 0;
35
- }
36
- let storeSize = 0;
37
- for (const vector of vectorStore.memoryVectors) {
38
- storeSize += vector.embedding.length * FLOAT_SIZE_BYTES;
39
- storeSize += vector.content ? vector.content.length * CHAR_SIZE_BYTES : 0;
40
- if (vector.metadata) {
41
- const metadataStr = JSON.stringify(vector.metadata);
42
- storeSize += metadataStr.length * CHAR_SIZE_BYTES;
43
- }
44
- storeSize += VECTOR_OVERHEAD_BYTES;
45
- }
46
- return Math.ceil(storeSize);
49
+ const embeddingSize = documents.length * EMBEDDING_SIZE_BYTES;
50
+ const overhead = documents.length * VECTOR_OVERHEAD_BYTES;
51
+ const calculatedSize = totalContentSize + totalMetadataSize + embeddingSize + overhead;
52
+ return Math.ceil(calculatedSize);
53
+ }
54
+ /**
55
+ * Calculate the size of a vector store by examining its contents
56
+ */
57
+ calculateVectorStoreSize(vectorStore) {
58
+ if (!vectorStore.memoryVectors || vectorStore.memoryVectors.length === 0) {
59
+ return 0;
60
+ }
61
+ let storeSize = 0;
62
+ for (const vector of vectorStore.memoryVectors) {
63
+ storeSize += vector.embedding.length * FLOAT_SIZE_BYTES;
64
+ storeSize += vector.content ? vector.content.length * CHAR_SIZE_BYTES : 0;
65
+ if (vector.metadata) {
66
+ const metadataStr = JSON.stringify(vector.metadata);
67
+ storeSize += metadataStr.length * CHAR_SIZE_BYTES;
68
+ }
69
+ storeSize += VECTOR_OVERHEAD_BYTES;
47
70
  }
71
+ return Math.ceil(storeSize);
72
+ }
48
73
  }
49
- exports.MemoryCalculator = MemoryCalculator;
74
+ // Annotate the CommonJS export names for ESM import in node:
75
+ 0 && (module.exports = {
76
+ MemoryCalculator
77
+ });
50
78
  //# sourceMappingURL=MemoryCalculator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryCalculator.js","sourceRoot":"","sources":["../../../../../nodes/vector_store/shared/MemoryManager/MemoryCalculator.ts"],"names":[],"mappings":";;;AAMA,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,qBAAqB,GAAG,GAAG,CAAC;AAClC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAClC,MAAM,oBAAoB,GAAG,oBAAoB,GAAG,gBAAgB,CAAC;AACrE,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAKpC,MAAa,gBAAgB;IAI5B,iBAAiB,CAAC,SAAqB;QACtC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QAErC,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAG1B,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC7B,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;gBACrB,gBAAgB,IAAI,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,eAAe,CAAC;YAC9D,CAAC;YAGD,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBAElB,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;gBACtD,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;oBAGtB,iBAAiB,IAAI,YAAY,GAAG,uBAAuB,CAAC;gBAC7D,CAAC;YACF,CAAC;QACF,CAAC;QAID,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,GAAG,oBAAoB,CAAC;QAG9D,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,GAAG,qBAAqB,CAAC;QAG1D,MAAM,cAAc,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,aAAa,GAAG,QAAQ,CAAC;QAEvF,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAClC,CAAC;IAKD,wBAAwB,CAAC,WAA8B;QACtD,IAAI,CAAC,WAAW,CAAC,aAAa,IAAI,WAAW,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1E,OAAO,CAAC,CAAC;QACV,CAAC;QAED,IAAI,SAAS,GAAG,CAAC,CAAC;QAGlB,KAAK,MAAM,MAAM,IAAI,WAAW,CAAC,aAAa,EAAE,CAAC;YAEhD,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,gBAAgB,CAAC;YAGxD,SAAS,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;YAG1E,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBAErB,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACpD,SAAS,IAAI,WAAW,CAAC,MAAM,GAAG,eAAe,CAAC;YACnD,CAAC;YAGD,SAAS,IAAI,qBAAqB,CAAC;QACpC,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;CACD;AAxED,4CAwEC"}
1
+ {"version":3,"sources":["../../../../../nodes/vector_store/shared/MemoryManager/MemoryCalculator.ts"],"sourcesContent":["import type { Document } from '@langchain/core/documents';\nimport type { MemoryVectorStore } from 'langchain/vectorstores/memory';\n\nimport type { IMemoryCalculator } from './types';\n\n// Memory estimation constants\nconst FLOAT_SIZE_BYTES = 8; // Size of a float64 in bytes\nconst CHAR_SIZE_BYTES = 2; // Size of a JavaScript character in bytes(2 bytes per character in UTF-16)\nconst VECTOR_OVERHEAD_BYTES = 200; // Estimated overhead per vector\nconst EMBEDDING_DIMENSIONS = 1536; // Fixed embedding dimensions\nconst EMBEDDING_SIZE_BYTES = EMBEDDING_DIMENSIONS * FLOAT_SIZE_BYTES;\nconst AVG_METADATA_SIZE_BYTES = 100; // Average size for simple metadata\n\n/**\n * Calculates memory usage for vector stores and documents\n */\nexport class MemoryCalculator implements IMemoryCalculator {\n\t/**\n\t * Fast batch size estimation for multiple documents\n\t */\n\testimateBatchSize(documents: Document[]): number {\n\t\tif (documents.length === 0) return 0;\n\n\t\tlet totalContentSize = 0;\n\t\tlet totalMetadataSize = 0;\n\n\t\t// Single pass through documents for content and metadata estimation\n\t\tfor (const doc of documents) {\n\t\t\tif (doc.pageContent) {\n\t\t\t\ttotalContentSize += doc.pageContent.length * CHAR_SIZE_BYTES;\n\t\t\t}\n\n\t\t\t// Metadata size estimation\n\t\t\tif (doc.metadata) {\n\t\t\t\t// For simple objects, estimate based on key count\n\t\t\t\tconst metadataKeys = Object.keys(doc.metadata).length;\n\t\t\t\tif (metadataKeys > 0) {\n\t\t\t\t\t// For each key, estimate the key name plus a typical value\n\t\t\t\t\t// plus some overhead for object structure\n\t\t\t\t\ttotalMetadataSize += metadataKeys * AVG_METADATA_SIZE_BYTES;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Fixed size components (embedding vectors and overhead)\n\t\t// Each embedding is a fixed-size array of floating point numbers\n\t\tconst embeddingSize = documents.length * EMBEDDING_SIZE_BYTES;\n\n\t\t// Object overhead, each vector is stored with additional JS object structure\n\t\tconst overhead = documents.length * VECTOR_OVERHEAD_BYTES;\n\n\t\t// Calculate total batch size with a safety factor to avoid underestimation\n\t\tconst calculatedSize = totalContentSize + totalMetadataSize + embeddingSize + overhead;\n\n\t\treturn Math.ceil(calculatedSize);\n\t}\n\n\t/**\n\t * Calculate the size of a vector store by examining its contents\n\t */\n\tcalculateVectorStoreSize(vectorStore: MemoryVectorStore): number {\n\t\tif (!vectorStore.memoryVectors || vectorStore.memoryVectors.length === 0) {\n\t\t\treturn 0;\n\t\t}\n\n\t\tlet storeSize = 0;\n\n\t\t// Calculate size of each vector\n\t\tfor (const vector of vectorStore.memoryVectors) {\n\t\t\t// Size of embedding (float64 array)\n\t\t\tstoreSize += vector.embedding.length * FLOAT_SIZE_BYTES;\n\n\t\t\t// Size of content string (2 bytes per character in JS)\n\t\t\tstoreSize += vector.content ? vector.content.length * CHAR_SIZE_BYTES : 0;\n\n\t\t\t// Estimate metadata size\n\t\t\tif (vector.metadata) {\n\t\t\t\t// Use a more accurate calculation for metadata\n\t\t\t\tconst metadataStr = JSON.stringify(vector.metadata);\n\t\t\t\tstoreSize += metadataStr.length * CHAR_SIZE_BYTES;\n\t\t\t}\n\n\t\t\t// Add overhead for object structure\n\t\t\tstoreSize += VECTOR_OVERHEAD_BYTES;\n\t\t}\n\n\t\treturn Math.ceil(storeSize);\n\t}\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,MAAM,mBAAmB;AACzB,MAAM,kBAAkB;AACxB,MAAM,wBAAwB;AAC9B,MAAM,uBAAuB;AAC7B,MAAM,uBAAuB,uBAAuB;AACpD,MAAM,0BAA0B;AAKzB,MAAM,iBAA8C;AAAA;AAAA;AAAA;AAAA,EAI1D,kBAAkB,WAA+B;AAChD,QAAI,UAAU,WAAW,EAAG,QAAO;AAEnC,QAAI,mBAAmB;AACvB,QAAI,oBAAoB;AAGxB,eAAW,OAAO,WAAW;AAC5B,UAAI,IAAI,aAAa;AACpB,4BAAoB,IAAI,YAAY,SAAS;AAAA,MAC9C;AAGA,UAAI,IAAI,UAAU;AAEjB,cAAM,eAAe,OAAO,KAAK,IAAI,QAAQ,EAAE;AAC/C,YAAI,eAAe,GAAG;AAGrB,+BAAqB,eAAe;AAAA,QACrC;AAAA,MACD;AAAA,IACD;AAIA,UAAM,gBAAgB,UAAU,SAAS;AAGzC,UAAM,WAAW,UAAU,SAAS;AAGpC,UAAM,iBAAiB,mBAAmB,oBAAoB,gBAAgB;AAE9E,WAAO,KAAK,KAAK,cAAc;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA,EAKA,yBAAyB,aAAwC;AAChE,QAAI,CAAC,YAAY,iBAAiB,YAAY,cAAc,WAAW,GAAG;AACzE,aAAO;AAAA,IACR;AAEA,QAAI,YAAY;AAGhB,eAAW,UAAU,YAAY,eAAe;AAE/C,mBAAa,OAAO,UAAU,SAAS;AAGvC,mBAAa,OAAO,UAAU,OAAO,QAAQ,SAAS,kBAAkB;AAGxE,UAAI,OAAO,UAAU;AAEpB,cAAM,cAAc,KAAK,UAAU,OAAO,QAAQ;AAClD,qBAAa,YAAY,SAAS;AAAA,MACnC;AAGA,mBAAa;AAAA,IACd;AAEA,WAAO,KAAK,KAAK,SAAS;AAAA,EAC3B;AACD;","names":[]}
@@ -1,173 +1,234 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MemoryVectorStoreManager = void 0;
4
- const memory_1 = require("langchain/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();
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var MemoryVectorStoreManager_exports = {};
20
+ __export(MemoryVectorStoreManager_exports, {
21
+ MemoryVectorStoreManager: () => MemoryVectorStoreManager
22
+ });
23
+ module.exports = __toCommonJS(MemoryVectorStoreManager_exports);
24
+ var import_memory = require("langchain/vectorstores/memory");
25
+ var import_config = require("./config");
26
+ var import_MemoryCalculator = require("./MemoryCalculator");
27
+ var import_StoreCleanupService = require("./StoreCleanupService");
28
+ const _MemoryVectorStoreManager = class _MemoryVectorStoreManager {
29
+ constructor(embeddings, logger) {
30
+ this.embeddings = embeddings;
31
+ this.logger = logger;
32
+ this.memoryUsageBytes = 0;
33
+ // Inactive TTL cleanup timer
34
+ this.ttlCleanupIntervalId = null;
35
+ this.vectorStoreBuffer = /* @__PURE__ */ new Map();
36
+ this.storeMetadata = /* @__PURE__ */ new Map();
37
+ this.logger = logger;
38
+ const config = (0, import_config.getConfig)();
39
+ this.maxMemorySizeBytes = (0, import_config.mbToBytes)(config.maxMemoryMB);
40
+ this.inactiveTtlMs = (0, import_config.hoursToMs)(config.ttlHours);
41
+ this.memoryCalculator = new import_MemoryCalculator.MemoryCalculator();
42
+ this.cleanupService = new import_StoreCleanupService.StoreCleanupService(
43
+ this.maxMemorySizeBytes,
44
+ this.inactiveTtlMs,
45
+ this.vectorStoreBuffer,
46
+ this.storeMetadata,
47
+ this.handleCleanup.bind(this)
48
+ );
49
+ this.setupTtlCleanup();
50
+ }
51
+ /**
52
+ * Get singleton instance
53
+ */
54
+ static getInstance(embeddings, logger) {
55
+ if (!_MemoryVectorStoreManager.instance) {
56
+ _MemoryVectorStoreManager.instance = new _MemoryVectorStoreManager(embeddings, logger);
57
+ } else {
58
+ _MemoryVectorStoreManager.instance.embeddings = embeddings;
59
+ _MemoryVectorStoreManager.instance.vectorStoreBuffer.forEach((vectorStoreInstance) => {
60
+ vectorStoreInstance.embeddings = embeddings;
61
+ });
23
62
  }
24
- static getInstance(embeddings, logger) {
25
- if (!MemoryVectorStoreManager.instance) {
26
- MemoryVectorStoreManager.instance = new MemoryVectorStoreManager(embeddings, logger);
27
- }
28
- else {
29
- MemoryVectorStoreManager.instance.embeddings = embeddings;
30
- MemoryVectorStoreManager.instance.vectorStoreBuffer.forEach((vectorStoreInstance) => {
31
- vectorStoreInstance.embeddings = embeddings;
32
- });
33
- }
34
- return MemoryVectorStoreManager.instance;
63
+ return _MemoryVectorStoreManager.instance;
64
+ }
65
+ /**
66
+ * Set up timer for TTL-based cleanup
67
+ */
68
+ setupTtlCleanup() {
69
+ if (this.inactiveTtlMs <= 0) {
70
+ return;
35
71
  }
36
- setupTtlCleanup() {
37
- if (this.inactiveTtlMs <= 0) {
38
- return;
39
- }
40
- const CLEANUP_INTERVAL_MS = 60 * 60 * 1000;
41
- if (this.ttlCleanupIntervalId) {
42
- clearInterval(this.ttlCleanupIntervalId);
43
- }
44
- this.ttlCleanupIntervalId = setInterval(() => {
45
- this.cleanupService.cleanupInactiveStores();
46
- }, CLEANUP_INTERVAL_MS);
72
+ const CLEANUP_INTERVAL_MS = 60 * 60 * 1e3;
73
+ if (this.ttlCleanupIntervalId) {
74
+ clearInterval(this.ttlCleanupIntervalId);
47
75
  }
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`);
53
- }
54
- else {
55
- this.logger.info(`Memory cleanup: removed ${removedKeys.length} oldest vector stores to free ${Math.round(freedBytes / (1024 * 1024))}MB of memory`);
56
- }
76
+ this.ttlCleanupIntervalId = setInterval(() => {
77
+ this.cleanupService.cleanupInactiveStores();
78
+ }, CLEANUP_INTERVAL_MS);
79
+ }
80
+ /**
81
+ * Handle cleanup events from the cleanup service
82
+ */
83
+ handleCleanup(removedKeys, freedBytes, reason) {
84
+ this.memoryUsageBytes -= freedBytes;
85
+ if (reason === "ttl") {
86
+ const ttlHours = Math.round(this.inactiveTtlMs / (60 * 60 * 1e3));
87
+ this.logger.info(
88
+ `TTL cleanup: removed ${removedKeys.length} inactive vector stores (${ttlHours}h TTL) to free ${Math.round(freedBytes / (1024 * 1024))}MB of memory`
89
+ );
90
+ } else {
91
+ this.logger.info(
92
+ `Memory cleanup: removed ${removedKeys.length} oldest vector stores to free ${Math.round(freedBytes / (1024 * 1024))}MB of memory`
93
+ );
57
94
  }
58
- async getVectorStore(memoryKey) {
59
- let vectorStoreInstance = this.vectorStoreBuffer.get(memoryKey);
60
- if (!vectorStoreInstance) {
61
- vectorStoreInstance = await memory_1.MemoryVectorStore.fromExistingIndex(this.embeddings);
62
- this.vectorStoreBuffer.set(memoryKey, vectorStoreInstance);
63
- this.storeMetadata.set(memoryKey, {
64
- size: 0,
65
- createdAt: new Date(),
66
- lastAccessed: new Date(),
67
- });
68
- }
69
- else {
70
- const metadata = this.storeMetadata.get(memoryKey);
71
- if (metadata) {
72
- metadata.lastAccessed = new Date();
73
- }
74
- }
75
- return vectorStoreInstance;
95
+ }
96
+ /**
97
+ * Get or create a vector store by key
98
+ */
99
+ async getVectorStore(memoryKey) {
100
+ let vectorStoreInstance = this.vectorStoreBuffer.get(memoryKey);
101
+ if (!vectorStoreInstance) {
102
+ vectorStoreInstance = await import_memory.MemoryVectorStore.fromExistingIndex(this.embeddings);
103
+ this.vectorStoreBuffer.set(memoryKey, vectorStoreInstance);
104
+ this.storeMetadata.set(memoryKey, {
105
+ size: 0,
106
+ createdAt: /* @__PURE__ */ new Date(),
107
+ lastAccessed: /* @__PURE__ */ new Date()
108
+ });
109
+ } else {
110
+ const metadata = this.storeMetadata.get(memoryKey);
111
+ if (metadata) {
112
+ metadata.lastAccessed = /* @__PURE__ */ new Date();
113
+ }
76
114
  }
77
- clearStoreMetadata(memoryKey) {
78
- const metadata = this.storeMetadata.get(memoryKey);
79
- if (metadata) {
80
- this.memoryUsageBytes -= metadata.size;
81
- metadata.size = 0;
82
- metadata.lastAccessed = new Date();
83
- }
115
+ return vectorStoreInstance;
116
+ }
117
+ /**
118
+ * Reset a store's metadata when it's cleared
119
+ */
120
+ clearStoreMetadata(memoryKey) {
121
+ const metadata = this.storeMetadata.get(memoryKey);
122
+ if (metadata) {
123
+ this.memoryUsageBytes -= metadata.size;
124
+ metadata.size = 0;
125
+ metadata.lastAccessed = /* @__PURE__ */ new Date();
84
126
  }
85
- getMemoryUsage() {
86
- return this.memoryUsageBytes;
127
+ }
128
+ /**
129
+ * Get memory usage in bytes
130
+ */
131
+ getMemoryUsage() {
132
+ return this.memoryUsageBytes;
133
+ }
134
+ /**
135
+ * Get memory usage as a formatted string (MB)
136
+ */
137
+ getMemoryUsageFormatted() {
138
+ return `${Math.round(this.memoryUsageBytes / (1024 * 1024))}MB`;
139
+ }
140
+ /**
141
+ * Recalculate memory usage from actual vector store contents
142
+ * This ensures tracking accuracy for large stores
143
+ */
144
+ recalculateMemoryUsage() {
145
+ this.memoryUsageBytes = 0;
146
+ for (const [key, vectorStore] of this.vectorStoreBuffer.entries()) {
147
+ const storeSize = this.memoryCalculator.calculateVectorStoreSize(vectorStore);
148
+ const metadata = this.storeMetadata.get(key);
149
+ if (metadata) {
150
+ metadata.size = storeSize;
151
+ this.memoryUsageBytes += storeSize;
152
+ }
87
153
  }
88
- getMemoryUsageFormatted() {
89
- return `${Math.round(this.memoryUsageBytes / (1024 * 1024))}MB`;
154
+ this.logger.debug(`Recalculated vector store memory: ${this.getMemoryUsageFormatted()}`);
155
+ }
156
+ /**
157
+ * Add documents to a vector store
158
+ */
159
+ async addDocuments(memoryKey, documents, clearStore) {
160
+ if (clearStore) {
161
+ this.clearStoreMetadata(memoryKey);
162
+ this.vectorStoreBuffer.delete(memoryKey);
90
163
  }
91
- recalculateMemoryUsage() {
92
- this.memoryUsageBytes = 0;
93
- for (const [key, vectorStore] of this.vectorStoreBuffer.entries()) {
94
- const storeSize = this.memoryCalculator.calculateVectorStoreSize(vectorStore);
95
- const metadata = this.storeMetadata.get(key);
96
- if (metadata) {
97
- metadata.size = storeSize;
98
- this.memoryUsageBytes += storeSize;
99
- }
100
- }
101
- this.logger.debug(`Recalculated vector store memory: ${this.getMemoryUsageFormatted()}`);
164
+ const estimatedAddedSize = this.memoryCalculator.estimateBatchSize(documents);
165
+ this.cleanupService.cleanupOldestStores(estimatedAddedSize);
166
+ const vectorStoreInstance = await this.getVectorStore(memoryKey);
167
+ const vectorCountBefore = vectorStoreInstance.memoryVectors?.length || 0;
168
+ await vectorStoreInstance.addDocuments(documents);
169
+ const metadata = this.storeMetadata.get(memoryKey);
170
+ if (metadata) {
171
+ metadata.size += estimatedAddedSize;
172
+ metadata.lastAccessed = /* @__PURE__ */ new Date();
173
+ this.memoryUsageBytes += estimatedAddedSize;
102
174
  }
103
- async addDocuments(memoryKey, documents, clearStore) {
104
- if (clearStore) {
105
- this.clearStoreMetadata(memoryKey);
106
- this.vectorStoreBuffer.delete(memoryKey);
107
- }
108
- const estimatedAddedSize = this.memoryCalculator.estimateBatchSize(documents);
109
- this.cleanupService.cleanupOldestStores(estimatedAddedSize);
110
- const vectorStoreInstance = await this.getVectorStore(memoryKey);
111
- const vectorCountBefore = vectorStoreInstance.memoryVectors?.length || 0;
112
- await vectorStoreInstance.addDocuments(documents);
113
- const metadata = this.storeMetadata.get(memoryKey);
114
- if (metadata) {
115
- metadata.size += estimatedAddedSize;
116
- metadata.lastAccessed = new Date();
117
- this.memoryUsageBytes += estimatedAddedSize;
118
- }
119
- const vectorCount = vectorStoreInstance.memoryVectors?.length || 0;
120
- if ((vectorCount > 0 && vectorCount % 100 === 0) ||
121
- documents.length > 20 ||
122
- (vectorCountBefore === 0 && vectorCount > 0)) {
123
- this.recalculateMemoryUsage();
124
- }
125
- const maxMemoryMB = this.maxMemorySizeBytes > 0
126
- ? (this.maxMemorySizeBytes / (1024 * 1024)).toFixed(0)
127
- : 'unlimited';
128
- this.logger.debug(`Vector store memory: ${this.getMemoryUsageFormatted()}/${maxMemoryMB}MB (${vectorCount} vectors in ${this.vectorStoreBuffer.size} stores)`);
175
+ const vectorCount = vectorStoreInstance.memoryVectors?.length || 0;
176
+ if (vectorCount > 0 && vectorCount % 100 === 0 || documents.length > 20 || vectorCountBefore === 0 && vectorCount > 0) {
177
+ this.recalculateMemoryUsage();
129
178
  }
130
- getStats() {
131
- const now = Date.now();
132
- let inactiveStoreCount = 0;
133
- this.recalculateMemoryUsage();
134
- const stats = {
135
- totalSizeBytes: this.memoryUsageBytes,
136
- totalSizeMB: Math.round((this.memoryUsageBytes / (1024 * 1024)) * 100) / 100,
137
- percentOfLimit: this.maxMemorySizeBytes > 0
138
- ? Math.round((this.memoryUsageBytes / this.maxMemorySizeBytes) * 100)
139
- : 0,
140
- maxMemoryMB: this.maxMemorySizeBytes > 0 ? this.maxMemorySizeBytes / (1024 * 1024) : -1,
141
- storeCount: this.vectorStoreBuffer.size,
142
- inactiveStoreCount: 0,
143
- ttlHours: this.inactiveTtlMs > 0 ? this.inactiveTtlMs / (60 * 60 * 1000) : -1,
144
- stores: {},
145
- };
146
- for (const [key, metadata] of this.storeMetadata.entries()) {
147
- const store = this.vectorStoreBuffer.get(key);
148
- if (store) {
149
- const lastAccessedTime = metadata.lastAccessed.getTime();
150
- const inactiveTimeMs = now - lastAccessedTime;
151
- const isInactive = this.cleanupService.isStoreInactive(metadata);
152
- if (isInactive) {
153
- inactiveStoreCount++;
154
- }
155
- stats.stores[key] = {
156
- sizeBytes: metadata.size,
157
- sizeMB: Math.round((metadata.size / (1024 * 1024)) * 100) / 100,
158
- percentOfTotal: Math.round((metadata.size / this.memoryUsageBytes) * 100) || 0,
159
- vectors: store.memoryVectors?.length || 0,
160
- createdAt: metadata.createdAt.toISOString(),
161
- lastAccessed: metadata.lastAccessed.toISOString(),
162
- inactive: isInactive,
163
- inactiveForHours: Math.round(inactiveTimeMs / (60 * 60 * 1000)),
164
- };
165
- }
179
+ const maxMemoryMB = this.maxMemorySizeBytes > 0 ? (this.maxMemorySizeBytes / (1024 * 1024)).toFixed(0) : "unlimited";
180
+ this.logger.debug(
181
+ `Vector store memory: ${this.getMemoryUsageFormatted()}/${maxMemoryMB}MB (${vectorCount} vectors in ${this.vectorStoreBuffer.size} stores)`
182
+ );
183
+ }
184
+ /**
185
+ * Get statistics about the vector store memory usage
186
+ */
187
+ getStats() {
188
+ const now = Date.now();
189
+ let inactiveStoreCount = 0;
190
+ this.recalculateMemoryUsage();
191
+ const stats = {
192
+ totalSizeBytes: this.memoryUsageBytes,
193
+ totalSizeMB: Math.round(this.memoryUsageBytes / (1024 * 1024) * 100) / 100,
194
+ percentOfLimit: this.maxMemorySizeBytes > 0 ? Math.round(this.memoryUsageBytes / this.maxMemorySizeBytes * 100) : 0,
195
+ maxMemoryMB: this.maxMemorySizeBytes > 0 ? this.maxMemorySizeBytes / (1024 * 1024) : -1,
196
+ // -1 indicates unlimited
197
+ storeCount: this.vectorStoreBuffer.size,
198
+ inactiveStoreCount: 0,
199
+ ttlHours: this.inactiveTtlMs > 0 ? this.inactiveTtlMs / (60 * 60 * 1e3) : -1,
200
+ // -1 indicates disabled
201
+ stores: {}
202
+ };
203
+ for (const [key, metadata] of this.storeMetadata.entries()) {
204
+ const store = this.vectorStoreBuffer.get(key);
205
+ if (store) {
206
+ const lastAccessedTime = metadata.lastAccessed.getTime();
207
+ const inactiveTimeMs = now - lastAccessedTime;
208
+ const isInactive = this.cleanupService.isStoreInactive(metadata);
209
+ if (isInactive) {
210
+ inactiveStoreCount++;
166
211
  }
167
- stats.inactiveStoreCount = inactiveStoreCount;
168
- return stats;
212
+ stats.stores[key] = {
213
+ sizeBytes: metadata.size,
214
+ sizeMB: Math.round(metadata.size / (1024 * 1024) * 100) / 100,
215
+ percentOfTotal: Math.round(metadata.size / this.memoryUsageBytes * 100) || 0,
216
+ vectors: store.memoryVectors?.length || 0,
217
+ createdAt: metadata.createdAt.toISOString(),
218
+ lastAccessed: metadata.lastAccessed.toISOString(),
219
+ inactive: isInactive,
220
+ inactiveForHours: Math.round(inactiveTimeMs / (60 * 60 * 1e3))
221
+ };
222
+ }
169
223
  }
170
- }
171
- exports.MemoryVectorStoreManager = MemoryVectorStoreManager;
172
- MemoryVectorStoreManager.instance = null;
224
+ stats.inactiveStoreCount = inactiveStoreCount;
225
+ return stats;
226
+ }
227
+ };
228
+ _MemoryVectorStoreManager.instance = null;
229
+ let MemoryVectorStoreManager = _MemoryVectorStoreManager;
230
+ // Annotate the CommonJS export names for ESM import in node:
231
+ 0 && (module.exports = {
232
+ MemoryVectorStoreManager
233
+ });
173
234
  //# sourceMappingURL=MemoryVectorStoreManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryVectorStoreManager.js","sourceRoot":"","sources":["../../../../../nodes/vector_store/shared/MemoryManager/MemoryVectorStoreManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../../nodes/vector_store/shared/MemoryManager/MemoryVectorStoreManager.ts"],"sourcesContent":["import type { Document } from '@langchain/core/documents';\nimport type { Embeddings } from '@langchain/core/embeddings';\nimport { MemoryVectorStore } from 'langchain/vectorstores/memory';\nimport type { Logger } from 'n8n-workflow';\n\nimport { getConfig, mbToBytes, hoursToMs } from './config';\nimport { MemoryCalculator } from './MemoryCalculator';\nimport { StoreCleanupService } from './StoreCleanupService';\nimport type { VectorStoreMetadata, VectorStoreStats } from './types';\n\n/**\n * Manages in-memory vector stores with memory limits and auto-cleanup\n */\nexport class MemoryVectorStoreManager {\n\tprivate static instance: MemoryVectorStoreManager | null = null;\n\n\t// Storage\n\tprotected vectorStoreBuffer: Map<string, MemoryVectorStore>;\n\n\tprotected storeMetadata: Map<string, VectorStoreMetadata>;\n\n\tprotected memoryUsageBytes: number = 0;\n\n\t// Dependencies\n\tprotected memoryCalculator: MemoryCalculator;\n\n\tprotected cleanupService: StoreCleanupService;\n\n\tprotected static logger: Logger;\n\n\t// Config values\n\tprotected maxMemorySizeBytes: number;\n\n\tprotected inactiveTtlMs: number;\n\n\t// Inactive TTL cleanup timer\n\tprotected ttlCleanupIntervalId: NodeJS.Timeout | null = null;\n\n\tprotected constructor(\n\t\tprotected embeddings: Embeddings,\n\t\tprotected logger: Logger,\n\t) {\n\t\t// Initialize storage\n\t\tthis.vectorStoreBuffer = new Map();\n\t\tthis.storeMetadata = new Map();\n\t\tthis.logger = logger;\n\n\t\tconst config = getConfig();\n\t\tthis.maxMemorySizeBytes = mbToBytes(config.maxMemoryMB);\n\t\tthis.inactiveTtlMs = hoursToMs(config.ttlHours);\n\n\t\t// Initialize services\n\t\tthis.memoryCalculator = new MemoryCalculator();\n\t\tthis.cleanupService = new StoreCleanupService(\n\t\t\tthis.maxMemorySizeBytes,\n\t\t\tthis.inactiveTtlMs,\n\t\t\tthis.vectorStoreBuffer,\n\t\t\tthis.storeMetadata,\n\t\t\tthis.handleCleanup.bind(this),\n\t\t);\n\n\t\tthis.setupTtlCleanup();\n\t}\n\n\t/**\n\t * Get singleton instance\n\t */\n\tstatic getInstance(embeddings: Embeddings, logger: Logger): MemoryVectorStoreManager {\n\t\tif (!MemoryVectorStoreManager.instance) {\n\t\t\tMemoryVectorStoreManager.instance = new MemoryVectorStoreManager(embeddings, logger);\n\t\t} else {\n\t\t\t// We need to update the embeddings in the existing instance.\n\t\t\t// This is important as embeddings instance is wrapped in a logWrapper,\n\t\t\t// which relies on supplyDataFunctions context which changes on each workflow run\n\t\t\tMemoryVectorStoreManager.instance.embeddings = embeddings;\n\t\t\tMemoryVectorStoreManager.instance.vectorStoreBuffer.forEach((vectorStoreInstance) => {\n\t\t\t\tvectorStoreInstance.embeddings = embeddings;\n\t\t\t});\n\t\t}\n\n\t\treturn MemoryVectorStoreManager.instance;\n\t}\n\n\t/**\n\t * Set up timer for TTL-based cleanup\n\t */\n\tprivate setupTtlCleanup(): void {\n\t\t// Skip setup if TTL is disabled\n\t\tif (this.inactiveTtlMs <= 0) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Cleanup check interval (run every hour)\n\t\tconst CLEANUP_INTERVAL_MS = 60 * 60 * 1000;\n\n\t\t// Clear any existing interval\n\t\tif (this.ttlCleanupIntervalId) {\n\t\t\tclearInterval(this.ttlCleanupIntervalId);\n\t\t}\n\n\t\t// Setup new interval for TTL cleanup\n\t\tthis.ttlCleanupIntervalId = setInterval(() => {\n\t\t\tthis.cleanupService.cleanupInactiveStores();\n\t\t}, CLEANUP_INTERVAL_MS);\n\t}\n\n\t/**\n\t * Handle cleanup events from the cleanup service\n\t */\n\tprivate handleCleanup(removedKeys: string[], freedBytes: number, reason: 'ttl' | 'memory'): void {\n\t\t// Update total memory usage\n\t\tthis.memoryUsageBytes -= freedBytes;\n\n\t\t// Log cleanup event\n\t\tif (reason === 'ttl') {\n\t\t\tconst ttlHours = Math.round(this.inactiveTtlMs / (60 * 60 * 1000));\n\t\t\tthis.logger.info(\n\t\t\t\t`TTL cleanup: removed ${removedKeys.length} inactive vector stores (${ttlHours}h TTL) to free ${Math.round(freedBytes / (1024 * 1024))}MB of memory`,\n\t\t\t);\n\t\t} else {\n\t\t\tthis.logger.info(\n\t\t\t\t`Memory cleanup: removed ${removedKeys.length} oldest vector stores to free ${Math.round(freedBytes / (1024 * 1024))}MB of memory`,\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * Get or create a vector store by key\n\t */\n\tasync getVectorStore(memoryKey: string): Promise<MemoryVectorStore> {\n\t\tlet vectorStoreInstance = this.vectorStoreBuffer.get(memoryKey);\n\n\t\tif (!vectorStoreInstance) {\n\t\t\tvectorStoreInstance = await MemoryVectorStore.fromExistingIndex(this.embeddings);\n\t\t\tthis.vectorStoreBuffer.set(memoryKey, vectorStoreInstance);\n\n\t\t\tthis.storeMetadata.set(memoryKey, {\n\t\t\t\tsize: 0,\n\t\t\t\tcreatedAt: new Date(),\n\t\t\t\tlastAccessed: new Date(),\n\t\t\t});\n\t\t} else {\n\t\t\tconst metadata = this.storeMetadata.get(memoryKey);\n\t\t\tif (metadata) {\n\t\t\t\tmetadata.lastAccessed = new Date();\n\t\t\t}\n\t\t}\n\n\t\treturn vectorStoreInstance;\n\t}\n\n\t/**\n\t * Reset a store's metadata when it's cleared\n\t */\n\tprotected clearStoreMetadata(memoryKey: string): void {\n\t\tconst metadata = this.storeMetadata.get(memoryKey);\n\t\tif (metadata) {\n\t\t\tthis.memoryUsageBytes -= metadata.size;\n\t\t\tmetadata.size = 0;\n\t\t\tmetadata.lastAccessed = new Date();\n\t\t}\n\t}\n\n\t/**\n\t * Get memory usage in bytes\n\t */\n\tgetMemoryUsage(): number {\n\t\treturn this.memoryUsageBytes;\n\t}\n\n\t/**\n\t * Get memory usage as a formatted string (MB)\n\t */\n\tgetMemoryUsageFormatted(): string {\n\t\treturn `${Math.round(this.memoryUsageBytes / (1024 * 1024))}MB`;\n\t}\n\n\t/**\n\t * Recalculate memory usage from actual vector store contents\n\t * This ensures tracking accuracy for large stores\n\t */\n\trecalculateMemoryUsage(): void {\n\t\tthis.memoryUsageBytes = 0;\n\n\t\t// Recalculate for each store\n\t\tfor (const [key, vectorStore] of this.vectorStoreBuffer.entries()) {\n\t\t\tconst storeSize = this.memoryCalculator.calculateVectorStoreSize(vectorStore);\n\n\t\t\t// Update metadata\n\t\t\tconst metadata = this.storeMetadata.get(key);\n\t\t\tif (metadata) {\n\t\t\t\tmetadata.size = storeSize;\n\t\t\t\tthis.memoryUsageBytes += storeSize;\n\t\t\t}\n\t\t}\n\n\t\tthis.logger.debug(`Recalculated vector store memory: ${this.getMemoryUsageFormatted()}`);\n\t}\n\n\t/**\n\t * Add documents to a vector store\n\t */\n\tasync addDocuments(\n\t\tmemoryKey: string,\n\t\tdocuments: Document[],\n\t\tclearStore?: boolean,\n\t): Promise<void> {\n\t\tif (clearStore) {\n\t\t\tthis.clearStoreMetadata(memoryKey);\n\t\t\tthis.vectorStoreBuffer.delete(memoryKey);\n\t\t}\n\n\t\t// Fast batch estimation instead of per-document calculation\n\t\tconst estimatedAddedSize = this.memoryCalculator.estimateBatchSize(documents);\n\n\t\t// Clean up old stores if necessary\n\t\tthis.cleanupService.cleanupOldestStores(estimatedAddedSize);\n\n\t\tconst vectorStoreInstance = await this.getVectorStore(memoryKey);\n\n\t\t// Get vector count before adding documents\n\t\tconst vectorCountBefore = vectorStoreInstance.memoryVectors?.length || 0;\n\n\t\tawait vectorStoreInstance.addDocuments(documents);\n\n\t\t// Update store metadata and memory tracking\n\t\tconst metadata = this.storeMetadata.get(memoryKey);\n\t\tif (metadata) {\n\t\t\tmetadata.size += estimatedAddedSize;\n\t\t\tmetadata.lastAccessed = new Date();\n\t\t\tthis.memoryUsageBytes += estimatedAddedSize;\n\t\t}\n\n\t\t// Get updated vector count\n\t\tconst vectorCount = vectorStoreInstance.memoryVectors?.length || 0;\n\n\t\t// Periodically recalculate actual memory usage to avoid drift\n\t\tif (\n\t\t\t(vectorCount > 0 && vectorCount % 100 === 0) ||\n\t\t\tdocuments.length > 20 ||\n\t\t\t(vectorCountBefore === 0 && vectorCount > 0)\n\t\t) {\n\t\t\tthis.recalculateMemoryUsage();\n\t\t}\n\n\t\t// Logging memory usage\n\t\tconst maxMemoryMB =\n\t\t\tthis.maxMemorySizeBytes > 0\n\t\t\t\t? (this.maxMemorySizeBytes / (1024 * 1024)).toFixed(0)\n\t\t\t\t: 'unlimited';\n\n\t\tthis.logger.debug(\n\t\t\t`Vector store memory: ${this.getMemoryUsageFormatted()}/${maxMemoryMB}MB (${vectorCount} vectors in ${this.vectorStoreBuffer.size} stores)`,\n\t\t);\n\t}\n\n\t/**\n\t * Get statistics about the vector store memory usage\n\t */\n\tgetStats(): VectorStoreStats {\n\t\tconst now = Date.now();\n\t\tlet inactiveStoreCount = 0;\n\n\t\t// Always recalculate when getting stats to ensure accuracy\n\t\tthis.recalculateMemoryUsage();\n\n\t\tconst stats: VectorStoreStats = {\n\t\t\ttotalSizeBytes: this.memoryUsageBytes,\n\t\t\ttotalSizeMB: Math.round((this.memoryUsageBytes / (1024 * 1024)) * 100) / 100,\n\t\t\tpercentOfLimit:\n\t\t\t\tthis.maxMemorySizeBytes > 0\n\t\t\t\t\t? Math.round((this.memoryUsageBytes / this.maxMemorySizeBytes) * 100)\n\t\t\t\t\t: 0,\n\t\t\tmaxMemoryMB: this.maxMemorySizeBytes > 0 ? this.maxMemorySizeBytes / (1024 * 1024) : -1, // -1 indicates unlimited\n\t\t\tstoreCount: this.vectorStoreBuffer.size,\n\t\t\tinactiveStoreCount: 0,\n\t\t\tttlHours: this.inactiveTtlMs > 0 ? this.inactiveTtlMs / (60 * 60 * 1000) : -1, // -1 indicates disabled\n\t\t\tstores: {},\n\t\t};\n\n\t\t// Add stats for each store\n\t\tfor (const [key, metadata] of this.storeMetadata.entries()) {\n\t\t\tconst store = this.vectorStoreBuffer.get(key);\n\n\t\t\tif (store) {\n\t\t\t\tconst lastAccessedTime = metadata.lastAccessed.getTime();\n\t\t\t\tconst inactiveTimeMs = now - lastAccessedTime;\n\t\t\t\tconst isInactive = this.cleanupService.isStoreInactive(metadata);\n\n\t\t\t\tif (isInactive) {\n\t\t\t\t\tinactiveStoreCount++;\n\t\t\t\t}\n\n\t\t\t\tstats.stores[key] = {\n\t\t\t\t\tsizeBytes: metadata.size,\n\t\t\t\t\tsizeMB: Math.round((metadata.size / (1024 * 1024)) * 100) / 100,\n\t\t\t\t\tpercentOfTotal: Math.round((metadata.size / this.memoryUsageBytes) * 100) || 0,\n\t\t\t\t\tvectors: store.memoryVectors?.length || 0,\n\t\t\t\t\tcreatedAt: metadata.createdAt.toISOString(),\n\t\t\t\t\tlastAccessed: metadata.lastAccessed.toISOString(),\n\t\t\t\t\tinactive: isInactive,\n\t\t\t\t\tinactiveForHours: Math.round(inactiveTimeMs / (60 * 60 * 1000)),\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tstats.inactiveStoreCount = inactiveStoreCount;\n\n\t\treturn stats;\n\t}\n}\n"],"mappings":"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","names":[]}