@n8n/n8n-nodes-langchain 0.0.2 → 0.2.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 (177) hide show
  1. package/README.md +1 -1
  2. package/dist/build.tsbuildinfo +1 -0
  3. package/dist/known/credentials.json +87 -0
  4. package/dist/known/nodes.json +214 -0
  5. package/dist/nodes/agents/Agent/agents/ConversationalAgent/description.js +1 -0
  6. package/dist/nodes/agents/Agent/agents/ConversationalAgent/description.js.map +1 -1
  7. package/dist/nodes/agents/Agent/agents/ConversationalAgent/execute.js +3 -0
  8. package/dist/nodes/agents/Agent/agents/ConversationalAgent/execute.js.map +1 -1
  9. package/dist/nodes/agents/Agent/agents/OpenAiFunctionsAgent/description.js +1 -0
  10. package/dist/nodes/agents/Agent/agents/OpenAiFunctionsAgent/description.js.map +1 -1
  11. package/dist/nodes/agents/Agent/agents/OpenAiFunctionsAgent/execute.js +3 -0
  12. package/dist/nodes/agents/Agent/agents/OpenAiFunctionsAgent/execute.js.map +1 -1
  13. package/dist/nodes/agents/Agent/agents/ReActAgent/description.js +1 -0
  14. package/dist/nodes/agents/Agent/agents/ReActAgent/description.js.map +1 -1
  15. package/dist/nodes/agents/Agent/agents/ReActAgent/execute.js +4 -0
  16. package/dist/nodes/agents/Agent/agents/ReActAgent/execute.js.map +1 -1
  17. package/dist/nodes/agents/Agent/agents/SqlAgent/execute.js +3 -0
  18. package/dist/nodes/agents/Agent/agents/SqlAgent/execute.js.map +1 -1
  19. package/dist/nodes/chains/ChainLLM/ChainLlm.node.js +24 -22
  20. package/dist/nodes/chains/ChainLLM/ChainLlm.node.js.map +1 -1
  21. package/dist/nodes/chains/ChainRetrievalQA/ChainRetrievalQa.node.js +7 -2
  22. package/dist/nodes/chains/ChainRetrievalQA/ChainRetrievalQa.node.js.map +1 -1
  23. package/dist/nodes/code/Code.node.d.ts +1 -1
  24. package/dist/nodes/code/Code.node.js +7 -8
  25. package/dist/nodes/code/Code.node.js.map +1 -1
  26. package/dist/nodes/document_loaders/DocumentGithubLoader/DocumentGithubLoader.node.d.ts +1 -1
  27. package/dist/nodes/document_loaders/DocumentGithubLoader/DocumentGithubLoader.node.js +3 -3
  28. package/dist/nodes/document_loaders/DocumentGithubLoader/DocumentGithubLoader.node.js.map +1 -1
  29. package/dist/nodes/document_loaders/DocumentJSONInputLoader/DocumentJsonInputLoader.node.js.map +1 -1
  30. package/dist/nodes/embeddings/EmbeddingsCohere/EmbeddingsCohere.node.d.ts +1 -1
  31. package/dist/nodes/embeddings/EmbeddingsCohere/EmbeddingsCohere.node.js +2 -2
  32. package/dist/nodes/embeddings/EmbeddingsCohere/EmbeddingsCohere.node.js.map +1 -1
  33. package/dist/nodes/embeddings/EmbeddingsGooglePalm/EmbeddingsGooglePalm.node.d.ts +1 -1
  34. package/dist/nodes/embeddings/EmbeddingsGooglePalm/EmbeddingsGooglePalm.node.js +2 -2
  35. package/dist/nodes/embeddings/EmbeddingsGooglePalm/EmbeddingsGooglePalm.node.js.map +1 -1
  36. package/dist/nodes/embeddings/EmbeddingsHuggingFaceInference/EmbeddingsHuggingFaceInference.node.d.ts +1 -1
  37. package/dist/nodes/embeddings/EmbeddingsHuggingFaceInference/EmbeddingsHuggingFaceInference.node.js +2 -2
  38. package/dist/nodes/embeddings/EmbeddingsHuggingFaceInference/EmbeddingsHuggingFaceInference.node.js.map +1 -1
  39. package/dist/nodes/embeddings/EmbeddingsOpenAI/EmbeddingsOpenAi.node.d.ts +1 -1
  40. package/dist/nodes/embeddings/EmbeddingsOpenAI/EmbeddingsOpenAi.node.js +13 -3
  41. package/dist/nodes/embeddings/EmbeddingsOpenAI/EmbeddingsOpenAi.node.js.map +1 -1
  42. package/dist/nodes/llms/LMChatAnthropic/LmChatAnthropic.node.d.ts +1 -1
  43. package/dist/nodes/llms/LMChatAnthropic/LmChatAnthropic.node.js +1 -2
  44. package/dist/nodes/llms/LMChatAnthropic/LmChatAnthropic.node.js.map +1 -1
  45. package/dist/nodes/llms/LMChatOllama/LmChatOllama.node.d.ts +1 -1
  46. package/dist/nodes/llms/LMChatOllama/LmChatOllama.node.js +45 -20
  47. package/dist/nodes/llms/LMChatOllama/LmChatOllama.node.js.map +1 -1
  48. package/dist/nodes/llms/LMChatOpenAi/LmChatOpenAi.node.d.ts +1 -1
  49. package/dist/nodes/llms/LMChatOpenAi/LmChatOpenAi.node.js +15 -4
  50. package/dist/nodes/llms/LMChatOpenAi/LmChatOpenAi.node.js.map +1 -1
  51. package/dist/nodes/llms/LMCohere/LmCohere.node.d.ts +1 -1
  52. package/dist/nodes/llms/LMCohere/LmCohere.node.js +1 -2
  53. package/dist/nodes/llms/LMCohere/LmCohere.node.js.map +1 -1
  54. package/dist/nodes/llms/LMOllama/LmOllama.node.d.ts +1 -1
  55. package/dist/nodes/llms/LMOllama/LmOllama.node.js +45 -20
  56. package/dist/nodes/llms/LMOllama/LmOllama.node.js.map +1 -1
  57. package/dist/nodes/llms/LMOpenAi/LmOpenAi.node.d.ts +1 -1
  58. package/dist/nodes/llms/LMOpenAi/LmOpenAi.node.js +15 -4
  59. package/dist/nodes/llms/LMOpenAi/LmOpenAi.node.js.map +1 -1
  60. package/dist/nodes/llms/LMOpenHuggingFaceInference/LmOpenHuggingFaceInference.node.d.ts +1 -1
  61. package/dist/nodes/llms/LMOpenHuggingFaceInference/LmOpenHuggingFaceInference.node.js +1 -2
  62. package/dist/nodes/llms/LMOpenHuggingFaceInference/LmOpenHuggingFaceInference.node.js.map +1 -1
  63. package/dist/nodes/llms/LmChatGooglePalm/LmChatGooglePalm.node.d.ts +1 -1
  64. package/dist/nodes/llms/LmChatGooglePalm/LmChatGooglePalm.node.js +3 -3
  65. package/dist/nodes/llms/LmChatGooglePalm/LmChatGooglePalm.node.js.map +1 -1
  66. package/dist/nodes/llms/LmGooglePalm/LmGooglePalm.node.d.ts +1 -1
  67. package/dist/nodes/llms/LmGooglePalm/LmGooglePalm.node.js +3 -3
  68. package/dist/nodes/llms/LmGooglePalm/LmGooglePalm.node.js.map +1 -1
  69. package/dist/nodes/memory/MemoryBufferWindow/MemoryBufferWindow.node.d.ts +1 -1
  70. package/dist/nodes/memory/MemoryBufferWindow/MemoryBufferWindow.node.js +8 -8
  71. package/dist/nodes/memory/MemoryBufferWindow/MemoryBufferWindow.node.js.map +1 -1
  72. package/dist/nodes/memory/MemoryMotorhead/MemoryMotorhead.node.d.ts +1 -1
  73. package/dist/nodes/memory/MemoryMotorhead/MemoryMotorhead.node.js +1 -2
  74. package/dist/nodes/memory/MemoryMotorhead/MemoryMotorhead.node.js.map +1 -1
  75. package/dist/nodes/memory/MemoryRedisChat/MemoryRedisChat.node.d.ts +1 -1
  76. package/dist/nodes/memory/MemoryRedisChat/MemoryRedisChat.node.js +3 -3
  77. package/dist/nodes/memory/MemoryRedisChat/MemoryRedisChat.node.js.map +1 -1
  78. package/dist/nodes/memory/MemoryXata/MemoryXata.node.d.ts +1 -1
  79. package/dist/nodes/memory/MemoryXata/MemoryXata.node.js +1 -2
  80. package/dist/nodes/memory/MemoryXata/MemoryXata.node.js.map +1 -1
  81. package/dist/nodes/memory/MemoryZep/MemoryZep.node.d.ts +1 -1
  82. package/dist/nodes/memory/MemoryZep/MemoryZep.node.js +1 -2
  83. package/dist/nodes/memory/MemoryZep/MemoryZep.node.js.map +1 -1
  84. package/dist/nodes/output_parser/OutputParserAutofixing/OutputParserAutofixing.node.d.ts +1 -1
  85. package/dist/nodes/output_parser/OutputParserAutofixing/OutputParserAutofixing.node.js +3 -3
  86. package/dist/nodes/output_parser/OutputParserAutofixing/OutputParserAutofixing.node.js.map +1 -1
  87. package/dist/nodes/output_parser/OutputParserItemList/OutputParserItemList.node.d.ts +1 -1
  88. package/dist/nodes/output_parser/OutputParserItemList/OutputParserItemList.node.js +1 -2
  89. package/dist/nodes/output_parser/OutputParserItemList/OutputParserItemList.node.js.map +1 -1
  90. package/dist/nodes/output_parser/OutputParserStructured/OutputParserStructured.node.d.ts +1 -1
  91. package/dist/nodes/output_parser/OutputParserStructured/OutputParserStructured.node.js +1 -2
  92. package/dist/nodes/output_parser/OutputParserStructured/OutputParserStructured.node.js.map +1 -1
  93. package/dist/nodes/retrievers/RetrieverContextualCompression/RetrieverContextualCompression.node.d.ts +1 -1
  94. package/dist/nodes/retrievers/RetrieverContextualCompression/RetrieverContextualCompression.node.js +3 -3
  95. package/dist/nodes/retrievers/RetrieverContextualCompression/RetrieverContextualCompression.node.js.map +1 -1
  96. package/dist/nodes/retrievers/RetrieverMultiQuery/RetrieverMultiQuery.node.d.ts +1 -1
  97. package/dist/nodes/retrievers/RetrieverMultiQuery/RetrieverMultiQuery.node.js +3 -4
  98. package/dist/nodes/retrievers/RetrieverMultiQuery/RetrieverMultiQuery.node.js.map +1 -1
  99. package/dist/nodes/retrievers/RetrieverVectorStore/RetrieverVectorStore.node.d.ts +1 -1
  100. package/dist/nodes/retrievers/RetrieverVectorStore/RetrieverVectorStore.node.js +3 -3
  101. package/dist/nodes/retrievers/RetrieverVectorStore/RetrieverVectorStore.node.js.map +1 -1
  102. package/dist/nodes/retrievers/RetrieverWorkflow/RetrieverWorkflow.node.d.ts +1 -1
  103. package/dist/nodes/retrievers/RetrieverWorkflow/RetrieverWorkflow.node.js +4 -5
  104. package/dist/nodes/retrievers/RetrieverWorkflow/RetrieverWorkflow.node.js.map +1 -1
  105. package/dist/nodes/text_splitters/TextSplitterCharacterTextSplitter/TextSplitterCharacterTextSplitter.node.d.ts +1 -1
  106. package/dist/nodes/text_splitters/TextSplitterCharacterTextSplitter/TextSplitterCharacterTextSplitter.node.js +1 -2
  107. package/dist/nodes/text_splitters/TextSplitterCharacterTextSplitter/TextSplitterCharacterTextSplitter.node.js.map +1 -1
  108. package/dist/nodes/text_splitters/TextSplitterRecursiveCharacterTextSplitter/TextSplitterRecursiveCharacterTextSplitter.node.d.ts +1 -1
  109. package/dist/nodes/text_splitters/TextSplitterRecursiveCharacterTextSplitter/TextSplitterRecursiveCharacterTextSplitter.node.js +3 -3
  110. package/dist/nodes/text_splitters/TextSplitterRecursiveCharacterTextSplitter/TextSplitterRecursiveCharacterTextSplitter.node.js.map +1 -1
  111. package/dist/nodes/text_splitters/TextSplitterTokenSplitter/TextSplitterTokenSplitter.node.d.ts +1 -1
  112. package/dist/nodes/text_splitters/TextSplitterTokenSplitter/TextSplitterTokenSplitter.node.js +1 -2
  113. package/dist/nodes/text_splitters/TextSplitterTokenSplitter/TextSplitterTokenSplitter.node.js.map +1 -1
  114. package/dist/nodes/tools/ToolCode/ToolCode.node.d.ts +1 -1
  115. package/dist/nodes/tools/ToolCode/ToolCode.node.js +2 -3
  116. package/dist/nodes/tools/ToolCode/ToolCode.node.js.map +1 -1
  117. package/dist/nodes/tools/ToolGoogleCalendar/ToolGoogleCalendar.node.js +2 -0
  118. package/dist/nodes/tools/ToolGoogleCalendar/ToolGoogleCalendar.node.js.map +1 -0
  119. package/dist/nodes/tools/ToolGoogleCalendar/googleCalendar.svg +1 -0
  120. package/dist/nodes/tools/ToolSerpApi/ToolSerpApi.node.d.ts +1 -1
  121. package/dist/nodes/tools/ToolSerpApi/ToolSerpApi.node.js +1 -2
  122. package/dist/nodes/tools/ToolSerpApi/ToolSerpApi.node.js.map +1 -1
  123. package/dist/nodes/tools/ToolWorkflow/ToolWorkflow.node.d.ts +1 -1
  124. package/dist/nodes/tools/ToolWorkflow/ToolWorkflow.node.js +5 -6
  125. package/dist/nodes/tools/ToolWorkflow/ToolWorkflow.node.js.map +1 -1
  126. package/dist/nodes/vector_store/VectorStoreInMemoryInsert/VectorStoreInMemoryInsert.node.d.ts +5 -0
  127. package/dist/nodes/vector_store/VectorStoreInMemoryInsert/VectorStoreInMemoryInsert.node.js +85 -0
  128. package/dist/nodes/vector_store/VectorStoreInMemoryInsert/VectorStoreInMemoryInsert.node.js.map +1 -0
  129. package/dist/nodes/vector_store/VectorStoreInMemoryLoad/VectorStoreInMemoryLoad.node.d.ts +5 -0
  130. package/dist/nodes/vector_store/VectorStoreInMemoryLoad/VectorStoreInMemoryLoad.node.js +64 -0
  131. package/dist/nodes/vector_store/VectorStoreInMemoryLoad/VectorStoreInMemoryLoad.node.js.map +1 -0
  132. package/dist/nodes/vector_store/VectorStorePineconeInsert/VectorStorePineconeInsert.node.js +2 -12
  133. package/dist/nodes/vector_store/VectorStorePineconeInsert/VectorStorePineconeInsert.node.js.map +1 -1
  134. package/dist/nodes/vector_store/VectorStorePineconeLoad/VectorStorePineconeLoad.node.d.ts +1 -1
  135. package/dist/nodes/vector_store/VectorStorePineconeLoad/VectorStorePineconeLoad.node.js +4 -4
  136. package/dist/nodes/vector_store/VectorStorePineconeLoad/VectorStorePineconeLoad.node.js.map +1 -1
  137. package/dist/nodes/vector_store/VectorStoreSupabaseInsert/VectorStoreSupabaseInsert.node.js +2 -12
  138. package/dist/nodes/vector_store/VectorStoreSupabaseInsert/VectorStoreSupabaseInsert.node.js.map +1 -1
  139. package/dist/nodes/vector_store/VectorStoreSupabaseLoad/VectorStoreSupabaseLoad.node.d.ts +1 -1
  140. package/dist/nodes/vector_store/VectorStoreSupabaseLoad/VectorStoreSupabaseLoad.node.js +4 -4
  141. package/dist/nodes/vector_store/VectorStoreSupabaseLoad/VectorStoreSupabaseLoad.node.js.map +1 -1
  142. package/dist/nodes/vector_store/VectorStoreZepInsert/VectorStoreZepInsert.node.js +3 -12
  143. package/dist/nodes/vector_store/VectorStoreZepInsert/VectorStoreZepInsert.node.js.map +1 -1
  144. package/dist/nodes/vector_store/VectorStoreZepLoad/VectorStoreZepLoad.node.d.ts +1 -1
  145. package/dist/nodes/vector_store/VectorStoreZepLoad/VectorStoreZepLoad.node.js +4 -3
  146. package/dist/nodes/vector_store/VectorStoreZepLoad/VectorStoreZepLoad.node.js.map +1 -1
  147. package/dist/nodes/vector_store/shared/MemoryVectorStoreManager.d.ts +12 -0
  148. package/dist/nodes/vector_store/shared/MemoryVectorStoreManager.js +34 -0
  149. package/dist/nodes/vector_store/shared/MemoryVectorStoreManager.js.map +1 -0
  150. package/dist/nodes/vector_store/shared/processDocuments.d.ts +12 -0
  151. package/dist/nodes/vector_store/shared/processDocuments.js +23 -0
  152. package/dist/nodes/vector_store/shared/processDocuments.js.map +1 -0
  153. package/dist/types/nodes.json +13 -12
  154. package/dist/utils/logWrapper.d.ts +1 -2
  155. package/dist/utils/logWrapper.js +4 -2
  156. package/dist/utils/logWrapper.js.map +1 -1
  157. package/package.json +8 -5
  158. package/dist/nodes/agents/ConversationalAgent/ConversationalAgent.node.js +0 -2
  159. package/dist/nodes/agents/ConversationalAgent/ConversationalAgent.node.js.map +0 -1
  160. package/dist/nodes/retrievers/RetrieverContextualCompression copy/RetrieverContextualCompression.node.d.ts +0 -5
  161. package/dist/nodes/retrievers/RetrieverContextualCompression copy/RetrieverContextualCompression.node.js +0 -71
  162. package/dist/nodes/retrievers/RetrieverContextualCompression copy/RetrieverContextualCompression.node.js.map +0 -1
  163. package/dist/nodes/retrievers/RetrieverMultiQuery/RetrieverContextualCompression.node.d.ts +0 -5
  164. package/dist/nodes/retrievers/RetrieverMultiQuery/RetrieverContextualCompression.node.js +0 -71
  165. package/dist/nodes/retrievers/RetrieverMultiQuery/RetrieverContextualCompression.node.js.map +0 -1
  166. package/dist/nodes/retrievers/RetrieverMultiQuery copy/RetrieverMultiQuery.node.d.ts +0 -5
  167. package/dist/nodes/retrievers/RetrieverMultiQuery copy/RetrieverMultiQuery.node.js +0 -69
  168. package/dist/nodes/retrievers/RetrieverMultiQuery copy/RetrieverMultiQuery.node.js.map +0 -1
  169. package/dist/nodes/retrievers/RetrieverWorkflow/RetrieverMultiQuery.node.d.ts +0 -5
  170. package/dist/nodes/retrievers/RetrieverWorkflow/RetrieverMultiQuery.node.js +0 -69
  171. package/dist/nodes/retrievers/RetrieverWorkflow/RetrieverMultiQuery.node.js.map +0 -1
  172. package/dist/nodes/vector_store/VectorStoreInMemory/VectorStoreInMemory.node.d.ts +0 -5
  173. package/dist/nodes/vector_store/VectorStoreInMemory/VectorStoreInMemory.node.js +0 -66
  174. package/dist/nodes/vector_store/VectorStoreInMemory/VectorStoreInMemory.node.js.map +0 -1
  175. package/dist/tsconfig.build.tsbuildinfo +0 -1
  176. package/dist/tsconfig.tsbuildinfo +0 -1
  177. /package/dist/nodes/{agents/ConversationalAgent/ConversationalAgent.node.d.ts → tools/ToolGoogleCalendar/ToolGoogleCalendar.node.d.ts} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConversationalAgent.node.js","sourceRoot":"","sources":["../../../../nodes/agents/ConversationalAgent/ConversationalAgent.node.ts"],"names":[],"mappings":""}
@@ -1,5 +0,0 @@
1
- import { type IExecuteFunctions, type INodeType, type INodeTypeDescription, type SupplyData } from 'n8n-workflow';
2
- export declare class RetrieverContextualCompression implements INodeType {
3
- description: INodeTypeDescription;
4
- supplyData(this: IExecuteFunctions): Promise<SupplyData>;
5
- }
@@ -1,71 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RetrieverContextualCompression = void 0;
4
- const contextual_compression_1 = require("langchain/retrievers/contextual_compression");
5
- const chain_extract_1 = require("langchain/retrievers/document_compressors/chain_extract");
6
- const logWrapper_1 = require("../../../utils/logWrapper");
7
- class RetrieverContextualCompression {
8
- constructor() {
9
- this.description = {
10
- displayName: 'Contextual Compression Retriever',
11
- name: 'retrieverContextualCompression',
12
- icon: 'fa:box-open',
13
- group: ['transform'],
14
- version: 1,
15
- description: 'Enhances document similarity search by contextual compression.',
16
- defaults: {
17
- name: 'Contextual Compression Retriever',
18
- },
19
- codex: {
20
- categories: ['AI'],
21
- subcategories: {
22
- AI: ['Retrievers'],
23
- },
24
- resources: {
25
- primaryDocumentation: [
26
- {
27
- url: 'https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.retrievercontextualcompression/',
28
- },
29
- ],
30
- },
31
- },
32
- inputs: [
33
- {
34
- displayName: 'Model',
35
- maxConnections: 1,
36
- type: "ai_languageModel",
37
- required: true,
38
- },
39
- {
40
- displayName: 'Retriever',
41
- maxConnections: 1,
42
- type: "ai_retriever",
43
- required: true,
44
- },
45
- ],
46
- outputs: [
47
- {
48
- displayName: 'Retriever',
49
- maxConnections: 1,
50
- type: "ai_retriever",
51
- },
52
- ],
53
- properties: [],
54
- };
55
- }
56
- async supplyData() {
57
- this.logger.verbose('Supplying data for Contextual Compression Retriever');
58
- const model = (await this.getInputConnectionData("ai_languageModel", 0));
59
- const baseRetriever = (await this.getInputConnectionData("ai_retriever", 0));
60
- const baseCompressor = chain_extract_1.LLMChainExtractor.fromLLM(model);
61
- const retriever = new contextual_compression_1.ContextualCompressionRetriever({
62
- baseCompressor,
63
- baseRetriever,
64
- });
65
- return {
66
- response: (0, logWrapper_1.logWrapper)(retriever, this),
67
- };
68
- }
69
- }
70
- exports.RetrieverContextualCompression = RetrieverContextualCompression;
71
- //# sourceMappingURL=RetrieverContextualCompression.node.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RetrieverContextualCompression.node.js","sourceRoot":"","sources":["../../../../nodes/retrievers/RetrieverContextualCompression copy/RetrieverContextualCompression.node.ts"],"names":[],"mappings":";;;AASA,wFAA6F;AAC7F,2FAA4F;AAI5F,0DAAuD;AAEvD,MAAa,8BAA8B;IAA3C;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,kCAAkC;YAC/C,IAAI,EAAE,gCAAgC;YACtC,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,gEAAgE;YAC7E,QAAQ,EAAE;gBACT,IAAI,EAAE,kCAAkC;aACxC;YACD,KAAK,EAAE;gBACN,UAAU,EAAE,CAAC,IAAI,CAAC;gBAClB,aAAa,EAAE;oBACd,EAAE,EAAE,CAAC,YAAY,CAAC;iBAClB;gBACD,SAAS,EAAE;oBACV,oBAAoB,EAAE;wBACrB;4BACC,GAAG,EAAE,sHAAsH;yBAC3H;qBACD;iBACD;aACD;YAED,MAAM,EAAE;gBACP;oBACC,WAAW,EAAE,OAAO;oBACpB,cAAc,EAAE,CAAC;oBACjB,IAAI,oBAAoC;oBACxC,QAAQ,EAAE,IAAI;iBACd;gBACD;oBACC,WAAW,EAAE,WAAW;oBACxB,cAAc,EAAE,CAAC;oBACjB,IAAI,gBAAgC;oBACpC,QAAQ,EAAE,IAAI;iBACd;aACD;YACD,OAAO,EAAE;gBACR;oBACC,WAAW,EAAE,WAAW;oBACxB,cAAc,EAAE,CAAC;oBACjB,IAAI,gBAAgC;iBACpC;aACD;YACD,UAAU,EAAE,EAAE;SACd,CAAC;IA0BH,CAAC;IAxBA,KAAK,CAAC,UAAU;QACf,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,qDAAqD,CAAC,CAAC;QAE3E,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,sBAAsB,qBAE/C,CAAC,CACD,CAAsB,CAAC;QAExB,MAAM,aAAa,GAAG,CAAC,MAAM,IAAI,CAAC,sBAAsB,iBAEvD,CAAC,CACD,CAAkB,CAAC;QAEpB,MAAM,cAAc,GAAG,iCAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAExD,MAAM,SAAS,GAAG,IAAI,uDAA8B,CAAC;YACpD,cAAc;YACd,aAAa;SACb,CAAC,CAAC;QAEH,OAAO;YACN,QAAQ,EAAE,IAAA,uBAAU,EAAC,SAAS,EAAE,IAAI,CAAC;SACrC,CAAC;IACH,CAAC;CACD;AAzED,wEAyEC"}
@@ -1,5 +0,0 @@
1
- import { type IExecuteFunctions, type INodeType, type INodeTypeDescription, type SupplyData } from 'n8n-workflow';
2
- export declare class RetrieverContextualCompression implements INodeType {
3
- description: INodeTypeDescription;
4
- supplyData(this: IExecuteFunctions): Promise<SupplyData>;
5
- }
@@ -1,71 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RetrieverContextualCompression = void 0;
4
- const contextual_compression_1 = require("langchain/retrievers/contextual_compression");
5
- const chain_extract_1 = require("langchain/retrievers/document_compressors/chain_extract");
6
- const logWrapper_1 = require("../../../utils/logWrapper");
7
- class RetrieverContextualCompression {
8
- constructor() {
9
- this.description = {
10
- displayName: 'Contextual Compression Retriever',
11
- name: 'retrieverContextualCompression',
12
- icon: 'fa:box-open',
13
- group: ['transform'],
14
- version: 1,
15
- description: 'Enhances document similarity search by contextual compression.',
16
- defaults: {
17
- name: 'Contextual Compression Retriever',
18
- },
19
- codex: {
20
- categories: ['AI'],
21
- subcategories: {
22
- AI: ['Retrievers'],
23
- },
24
- resources: {
25
- primaryDocumentation: [
26
- {
27
- url: 'https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.retrievercontextualcompression/',
28
- },
29
- ],
30
- },
31
- },
32
- inputs: [
33
- {
34
- displayName: 'Model',
35
- maxConnections: 1,
36
- type: "ai_languageModel",
37
- required: true,
38
- },
39
- {
40
- displayName: 'Retriever',
41
- maxConnections: 1,
42
- type: "ai_retriever",
43
- required: true,
44
- },
45
- ],
46
- outputs: [
47
- {
48
- displayName: 'Retriever',
49
- maxConnections: 1,
50
- type: "ai_retriever",
51
- },
52
- ],
53
- properties: [],
54
- };
55
- }
56
- async supplyData() {
57
- this.logger.verbose('Supplying data for Contextual Compression Retriever');
58
- const model = (await this.getInputConnectionData("ai_languageModel", 0));
59
- const baseRetriever = (await this.getInputConnectionData("ai_retriever", 0));
60
- const baseCompressor = chain_extract_1.LLMChainExtractor.fromLLM(model);
61
- const retriever = new contextual_compression_1.ContextualCompressionRetriever({
62
- baseCompressor,
63
- baseRetriever,
64
- });
65
- return {
66
- response: (0, logWrapper_1.logWrapper)(retriever, this),
67
- };
68
- }
69
- }
70
- exports.RetrieverContextualCompression = RetrieverContextualCompression;
71
- //# sourceMappingURL=RetrieverContextualCompression.node.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RetrieverContextualCompression.node.js","sourceRoot":"","sources":["../../../../nodes/retrievers/RetrieverMultiQuery/RetrieverContextualCompression.node.ts"],"names":[],"mappings":";;;AASA,wFAA6F;AAC7F,2FAA4F;AAI5F,0DAAuD;AAEvD,MAAa,8BAA8B;IAA3C;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,kCAAkC;YAC/C,IAAI,EAAE,gCAAgC;YACtC,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,gEAAgE;YAC7E,QAAQ,EAAE;gBACT,IAAI,EAAE,kCAAkC;aACxC;YACD,KAAK,EAAE;gBACN,UAAU,EAAE,CAAC,IAAI,CAAC;gBAClB,aAAa,EAAE;oBACd,EAAE,EAAE,CAAC,YAAY,CAAC;iBAClB;gBACD,SAAS,EAAE;oBACV,oBAAoB,EAAE;wBACrB;4BACC,GAAG,EAAE,sHAAsH;yBAC3H;qBACD;iBACD;aACD;YAED,MAAM,EAAE;gBACP;oBACC,WAAW,EAAE,OAAO;oBACpB,cAAc,EAAE,CAAC;oBACjB,IAAI,oBAAoC;oBACxC,QAAQ,EAAE,IAAI;iBACd;gBACD;oBACC,WAAW,EAAE,WAAW;oBACxB,cAAc,EAAE,CAAC;oBACjB,IAAI,gBAAgC;oBACpC,QAAQ,EAAE,IAAI;iBACd;aACD;YACD,OAAO,EAAE;gBACR;oBACC,WAAW,EAAE,WAAW;oBACxB,cAAc,EAAE,CAAC;oBACjB,IAAI,gBAAgC;iBACpC;aACD;YACD,UAAU,EAAE,EAAE;SACd,CAAC;IA0BH,CAAC;IAxBA,KAAK,CAAC,UAAU;QACf,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,qDAAqD,CAAC,CAAC;QAE3E,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,sBAAsB,qBAE/C,CAAC,CACD,CAAsB,CAAC;QAExB,MAAM,aAAa,GAAG,CAAC,MAAM,IAAI,CAAC,sBAAsB,iBAEvD,CAAC,CACD,CAAkB,CAAC;QAEpB,MAAM,cAAc,GAAG,iCAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAExD,MAAM,SAAS,GAAG,IAAI,uDAA8B,CAAC;YACpD,cAAc;YACd,aAAa;SACb,CAAC,CAAC;QAEH,OAAO;YACN,QAAQ,EAAE,IAAA,uBAAU,EAAC,SAAS,EAAE,IAAI,CAAC;SACrC,CAAC;IACH,CAAC;CACD;AAzED,wEAyEC"}
@@ -1,5 +0,0 @@
1
- import { type IExecuteFunctions, type INodeType, type INodeTypeDescription, type SupplyData } from 'n8n-workflow';
2
- export declare class RetrieverMultiQuery implements INodeType {
3
- description: INodeTypeDescription;
4
- supplyData(this: IExecuteFunctions): Promise<SupplyData>;
5
- }
@@ -1,69 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RetrieverMultiQuery = void 0;
4
- const multi_query_1 = require("langchain/retrievers/multi_query");
5
- const logWrapper_1 = require("../../../utils/logWrapper");
6
- class RetrieverMultiQuery {
7
- constructor() {
8
- this.description = {
9
- displayName: 'MultiQuery Retriever',
10
- name: 'retrieverMultiQuery',
11
- icon: 'fa:box-open',
12
- group: ['transform'],
13
- version: 1,
14
- description: 'Automates prompt tuning, generates diverse queries and expands document pool for enhanced retrieval.',
15
- defaults: {
16
- name: 'MultiQuery Retriever',
17
- },
18
- codex: {
19
- categories: ['AI'],
20
- subcategories: {
21
- AI: ['Retrievers'],
22
- },
23
- resources: {
24
- primaryDocumentation: [
25
- {
26
- url: 'https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.retrievermultiquery/',
27
- },
28
- ],
29
- },
30
- },
31
- inputs: [
32
- {
33
- displayName: 'Model',
34
- maxConnections: 1,
35
- type: "ai_languageModel",
36
- required: true,
37
- },
38
- {
39
- displayName: 'Retriever',
40
- maxConnections: 1,
41
- type: "ai_retriever",
42
- required: true,
43
- },
44
- ],
45
- outputs: [
46
- {
47
- displayName: 'Retriever',
48
- maxConnections: 1,
49
- type: "ai_retriever",
50
- },
51
- ],
52
- properties: [],
53
- };
54
- }
55
- async supplyData() {
56
- this.logger.verbose('Supplying data for MultiQuery Retriever');
57
- const model = (await this.getInputConnectionData("ai_languageModel", 0));
58
- const baseRetriever = (await this.getInputConnectionData("ai_retriever", 0));
59
- const retriever = multi_query_1.MultiQueryRetriever.fromLLM({
60
- llm: model,
61
- retriever: baseRetriever,
62
- });
63
- return {
64
- response: (0, logWrapper_1.logWrapper)(retriever, this),
65
- };
66
- }
67
- }
68
- exports.RetrieverMultiQuery = RetrieverMultiQuery;
69
- //# sourceMappingURL=RetrieverMultiQuery.node.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RetrieverMultiQuery.node.js","sourceRoot":"","sources":["../../../../nodes/retrievers/RetrieverMultiQuery copy/RetrieverMultiQuery.node.ts"],"names":[],"mappings":";;;AASA,kEAAuE;AAIvE,0DAAuD;AAEvD,MAAa,mBAAmB;IAAhC;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,sBAAsB;YACnC,IAAI,EAAE,qBAAqB;YAC3B,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC;YACV,WAAW,EACV,sGAAsG;YACvG,QAAQ,EAAE;gBACT,IAAI,EAAE,sBAAsB;aAC5B;YACD,KAAK,EAAE;gBACN,UAAU,EAAE,CAAC,IAAI,CAAC;gBAClB,aAAa,EAAE;oBACd,EAAE,EAAE,CAAC,YAAY,CAAC;iBAClB;gBACD,SAAS,EAAE;oBACV,oBAAoB,EAAE;wBACrB;4BACC,GAAG,EAAE,2GAA2G;yBAChH;qBACD;iBACD;aACD;YAED,MAAM,EAAE;gBACP;oBACC,WAAW,EAAE,OAAO;oBACpB,cAAc,EAAE,CAAC;oBACjB,IAAI,oBAAoC;oBACxC,QAAQ,EAAE,IAAI;iBACd;gBACD;oBACC,WAAW,EAAE,WAAW;oBACxB,cAAc,EAAE,CAAC;oBACjB,IAAI,gBAAgC;oBACpC,QAAQ,EAAE,IAAI;iBACd;aACD;YACD,OAAO,EAAE;gBACR;oBACC,WAAW,EAAE,WAAW;oBACxB,cAAc,EAAE,CAAC;oBACjB,IAAI,gBAAgC;iBACpC;aACD;YACD,UAAU,EAAE,EAAE;SACd,CAAC;IA2BH,CAAC;IAzBA,KAAK,CAAC,UAAU;QACf,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC;QAE/D,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,sBAAsB,qBAE/C,CAAC,CACD,CAAsB,CAAC;QAExB,MAAM,aAAa,GAAG,CAAC,MAAM,IAAI,CAAC,sBAAsB,iBAEvD,CAAC,CACD,CAAkB,CAAC;QAKpB,MAAM,SAAS,GAAG,iCAAmB,CAAC,OAAO,CAAC;YAC7C,GAAG,EAAE,KAAK;YACV,SAAS,EAAE,aAAa;SACxB,CAAC,CAAC;QAEH,OAAO;YACN,QAAQ,EAAE,IAAA,uBAAU,EAAC,SAAS,EAAE,IAAI,CAAC;SACrC,CAAC;IACH,CAAC;CACD;AA3ED,kDA2EC"}
@@ -1,5 +0,0 @@
1
- import { type IExecuteFunctions, type INodeType, type INodeTypeDescription, type SupplyData } from 'n8n-workflow';
2
- export declare class RetrieverMultiQuery implements INodeType {
3
- description: INodeTypeDescription;
4
- supplyData(this: IExecuteFunctions): Promise<SupplyData>;
5
- }
@@ -1,69 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RetrieverMultiQuery = void 0;
4
- const multi_query_1 = require("langchain/retrievers/multi_query");
5
- const logWrapper_1 = require("../../../utils/logWrapper");
6
- class RetrieverMultiQuery {
7
- constructor() {
8
- this.description = {
9
- displayName: 'MultiQuery Retriever',
10
- name: 'retrieverMultiQuery',
11
- icon: 'fa:box-open',
12
- group: ['transform'],
13
- version: 1,
14
- description: 'Automates prompt tuning, generates diverse queries and expands document pool for enhanced retrieval.',
15
- defaults: {
16
- name: 'MultiQuery Retriever',
17
- },
18
- codex: {
19
- categories: ['AI'],
20
- subcategories: {
21
- AI: ['Retrievers'],
22
- },
23
- resources: {
24
- primaryDocumentation: [
25
- {
26
- url: 'https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.retrievermultiquery/',
27
- },
28
- ],
29
- },
30
- },
31
- inputs: [
32
- {
33
- displayName: 'Model',
34
- maxConnections: 1,
35
- type: "ai_languageModel",
36
- required: true,
37
- },
38
- {
39
- displayName: 'Retriever',
40
- maxConnections: 1,
41
- type: "ai_retriever",
42
- required: true,
43
- },
44
- ],
45
- outputs: [
46
- {
47
- displayName: 'Retriever',
48
- maxConnections: 1,
49
- type: "ai_retriever",
50
- },
51
- ],
52
- properties: [],
53
- };
54
- }
55
- async supplyData() {
56
- this.logger.verbose('Supplying data for MultiQuery Retriever');
57
- const model = (await this.getInputConnectionData("ai_languageModel", 0));
58
- const baseRetriever = (await this.getInputConnectionData("ai_retriever", 0));
59
- const retriever = multi_query_1.MultiQueryRetriever.fromLLM({
60
- llm: model,
61
- retriever: baseRetriever,
62
- });
63
- return {
64
- response: (0, logWrapper_1.logWrapper)(retriever, this),
65
- };
66
- }
67
- }
68
- exports.RetrieverMultiQuery = RetrieverMultiQuery;
69
- //# sourceMappingURL=RetrieverMultiQuery.node.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RetrieverMultiQuery.node.js","sourceRoot":"","sources":["../../../../nodes/retrievers/RetrieverWorkflow/RetrieverMultiQuery.node.ts"],"names":[],"mappings":";;;AASA,kEAAuE;AAIvE,0DAAuD;AAEvD,MAAa,mBAAmB;IAAhC;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,sBAAsB;YACnC,IAAI,EAAE,qBAAqB;YAC3B,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC;YACV,WAAW,EACV,sGAAsG;YACvG,QAAQ,EAAE;gBACT,IAAI,EAAE,sBAAsB;aAC5B;YACD,KAAK,EAAE;gBACN,UAAU,EAAE,CAAC,IAAI,CAAC;gBAClB,aAAa,EAAE;oBACd,EAAE,EAAE,CAAC,YAAY,CAAC;iBAClB;gBACD,SAAS,EAAE;oBACV,oBAAoB,EAAE;wBACrB;4BACC,GAAG,EAAE,2GAA2G;yBAChH;qBACD;iBACD;aACD;YAED,MAAM,EAAE;gBACP;oBACC,WAAW,EAAE,OAAO;oBACpB,cAAc,EAAE,CAAC;oBACjB,IAAI,oBAAoC;oBACxC,QAAQ,EAAE,IAAI;iBACd;gBACD;oBACC,WAAW,EAAE,WAAW;oBACxB,cAAc,EAAE,CAAC;oBACjB,IAAI,gBAAgC;oBACpC,QAAQ,EAAE,IAAI;iBACd;aACD;YACD,OAAO,EAAE;gBACR;oBACC,WAAW,EAAE,WAAW;oBACxB,cAAc,EAAE,CAAC;oBACjB,IAAI,gBAAgC;iBACpC;aACD;YACD,UAAU,EAAE,EAAE;SACd,CAAC;IA2BH,CAAC;IAzBA,KAAK,CAAC,UAAU;QACf,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC;QAE/D,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,sBAAsB,qBAE/C,CAAC,CACD,CAAsB,CAAC;QAExB,MAAM,aAAa,GAAG,CAAC,MAAM,IAAI,CAAC,sBAAsB,iBAEvD,CAAC,CACD,CAAkB,CAAC;QAKpB,MAAM,SAAS,GAAG,iCAAmB,CAAC,OAAO,CAAC;YAC7C,GAAG,EAAE,KAAK;YACV,SAAS,EAAE,aAAa;SACxB,CAAC,CAAC;QAEH,OAAO;YACN,QAAQ,EAAE,IAAA,uBAAU,EAAC,SAAS,EAAE,IAAI,CAAC;SACrC,CAAC;IACH,CAAC;CACD;AA3ED,kDA2EC"}
@@ -1,5 +0,0 @@
1
- import { type IExecuteFunctions, type INodeType, type INodeTypeDescription, type SupplyData } from 'n8n-workflow';
2
- export declare class VectorStoreInMemory implements INodeType {
3
- description: INodeTypeDescription;
4
- supplyData(this: IExecuteFunctions): Promise<SupplyData>;
5
- }
@@ -1,66 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VectorStoreInMemory = void 0;
4
- const memory_1 = require("langchain/vectorstores/memory");
5
- const logWrapper_1 = require("../../../utils/logWrapper");
6
- class VectorStoreInMemory {
7
- constructor() {
8
- this.description = {
9
- displayName: 'In Memory Vector Store',
10
- name: 'vectorStoreInMemory',
11
- icon: 'fa:database',
12
- group: ['transform'],
13
- version: 1,
14
- description: 'Stores vectors in memory',
15
- defaults: {
16
- name: 'In Memory Vector Store',
17
- },
18
- codex: {
19
- categories: ['AI'],
20
- subcategories: {
21
- AI: ['Vector Stores'],
22
- },
23
- resources: {
24
- primaryDocumentation: [
25
- {
26
- url: 'https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.vectorstoreinmemory/',
27
- },
28
- ],
29
- },
30
- },
31
- inputs: [
32
- {
33
- displayName: 'Document',
34
- type: "ai_document",
35
- required: false,
36
- },
37
- {
38
- displayName: 'Embedding',
39
- maxConnections: 1,
40
- type: "ai_embedding",
41
- required: false,
42
- },
43
- ],
44
- outputs: ["ai_vectorRetriever"],
45
- outputNames: ['Vector Retriever'],
46
- properties: [
47
- {
48
- displayName: 'Specify the document to load in the document loader sub-node',
49
- name: 'notice',
50
- type: 'notice',
51
- default: '',
52
- },
53
- ],
54
- };
55
- }
56
- async supplyData() {
57
- const documents = (await this.getInputConnectionData("ai_document", 0));
58
- const embeddings = (await this.getInputConnectionData("ai_embedding", 0));
59
- const documentsStore = await memory_1.MemoryVectorStore.fromDocuments(documents, embeddings);
60
- return {
61
- response: (0, logWrapper_1.logWrapper)(documentsStore, this),
62
- };
63
- }
64
- }
65
- exports.VectorStoreInMemory = VectorStoreInMemory;
66
- //# sourceMappingURL=VectorStoreInMemory.node.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VectorStoreInMemory.node.js","sourceRoot":"","sources":["../../../../nodes/vector_store/VectorStoreInMemory/VectorStoreInMemory.node.ts"],"names":[],"mappings":";;;AASA,0DAAkE;AAElE,0DAAuD;AAEvD,MAAa,mBAAmB;IAAhC;QACC,gBAAW,GAAyB;YACnC,WAAW,EAAE,wBAAwB;YACrC,IAAI,EAAE,qBAAqB;YAC3B,IAAI,EAAE,aAAa;YACnB,KAAK,EAAE,CAAC,WAAW,CAAC;YACpB,OAAO,EAAE,CAAC;YACV,WAAW,EAAE,0BAA0B;YACvC,QAAQ,EAAE;gBACT,IAAI,EAAE,wBAAwB;aAC9B;YACD,KAAK,EAAE;gBACN,UAAU,EAAE,CAAC,IAAI,CAAC;gBAClB,aAAa,EAAE;oBACd,EAAE,EAAE,CAAC,eAAe,CAAC;iBACrB;gBACD,SAAS,EAAE;oBACV,oBAAoB,EAAE;wBACrB;4BACC,GAAG,EAAE,2GAA2G;yBAChH;qBACD;iBACD;aACD;YAED,MAAM,EAAE;gBACP;oBACC,WAAW,EAAE,UAAU;oBACvB,IAAI,eAA+B;oBACnC,QAAQ,EAAE,KAAK;iBACf;gBACD;oBACC,WAAW,EAAE,WAAW;oBACxB,cAAc,EAAE,CAAC;oBACjB,IAAI,gBAAgC;oBACpC,QAAQ,EAAE,KAAK;iBACf;aACD;YAED,OAAO,EAAE,sBAAsC;YAC/C,WAAW,EAAE,CAAC,kBAAkB,CAAC;YACjC,UAAU,EAAE;gBACX;oBACC,WAAW,EAAE,8DAA8D;oBAC3E,IAAI,EAAE,QAAQ;oBACd,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,EAAE;iBACX;aACD;SACD,CAAC;IAkBH,CAAC;IAhBA,KAAK,CAAC,UAAU;QACf,MAAM,SAAS,GAAG,CAAC,MAAM,IAAI,CAAC,sBAAsB,gBAEnD,CAAC,CACD,CAAe,CAAC;QACjB,MAAM,UAAU,GAAG,CAAC,MAAM,IAAI,CAAC,sBAAsB,iBAEpD,CAAC,CACD,CAAe,CAAC;QAEjB,MAAM,cAAc,GAAG,MAAM,0BAAiB,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAEpF,OAAO;YACN,QAAQ,EAAE,IAAA,uBAAU,EAAC,cAAc,EAAE,IAAI,CAAC;SAC1C,CAAC;IACH,CAAC;CACD;AAnED,kDAmEC"}