n8n-nodes-smart-memory 1.0.66 → 1.0.68

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.
@@ -20,7 +20,9 @@ export declare class RedisStorage implements MemoryStorage {
20
20
  private ttl;
21
21
  private connected;
22
22
  private config;
23
+ private clientCreated;
23
24
  constructor(config: RedisStorageConfig);
25
+ private ensureClient;
24
26
  private createRedisClient;
25
27
  initialize(): Promise<void>;
26
28
  private getKey;
@@ -29,25 +31,12 @@ export declare class RedisStorage implements MemoryStorage {
29
31
  saveMemory(chatId: string, memory: CleanMemoryStructure): Promise<void>;
30
32
  private serializeMemory;
31
33
  clearMemory(chatId: string): Promise<void>;
32
- /**
33
- * Tests the Redis connection
34
- * @returns True if connection is working
35
- */
36
34
  testConnection(): Promise<boolean>;
37
- /**
38
- * Get statistics about stored memories
39
- */
40
35
  getStats(): Promise<{
41
36
  totalKeys: number;
42
37
  memoryUsage: number;
43
38
  }>;
44
- /**
45
- * Clear all memories (use with caution!)
46
- */
47
39
  clearAll(): Promise<void>;
48
- /**
49
- * Close the Redis connection
50
- */
51
40
  close(): Promise<void>;
52
41
  }
53
42
  //# sourceMappingURL=RedisStorage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RedisStorage.d.ts","sourceRoot":"","sources":["../../src/storage/RedisStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAGtE,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,YAAa,YAAW,aAAa;IAChD,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAqB;gBAEvB,MAAM,EAAE,kBAAkB;IAuBtC,OAAO,CAAC,iBAAiB;IAmCnB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAoEjC,OAAO,CAAC,MAAM;IAIR,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAgBrE,OAAO,CAAC,iBAAiB;IASnB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB7E,OAAO,CAAC,eAAe;IAIjB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAchD;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAUxC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IA0BF;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAe/B;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAoB7B"}
1
+ {"version":3,"file":"RedisStorage.d.ts","sourceRoot":"","sources":["../../src/storage/RedisStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAGtE,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,YAAa,YAAW,aAAa;IAChD,OAAO,CAAC,MAAM,CAAM;IACpB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,aAAa,CAAS;gBAElB,MAAM,EAAE,kBAAkB;IAYtC,OAAO,CAAC,YAAY;IAsBpB,OAAO,CAAC,iBAAiB;IAmCnB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAuEjC,OAAO,CAAC,MAAM;IAIR,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAiBrE,OAAO,CAAC,iBAAiB;IASnB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB7E,OAAO,CAAC,eAAe;IAIjB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAe1C,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAWlC,QAAQ,IAAI,OAAO,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IA2BI,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAoB7B"}
@@ -5,18 +5,28 @@ const redis_1 = require("redis");
5
5
  class RedisStorage {
6
6
  constructor(config) {
7
7
  this.connected = false;
8
+ this.clientCreated = false;
8
9
  this.config = config;
9
10
  this.keyPrefix = config.keyPrefix || 'smart_memory:';
10
11
  this.ttl = config.ttl || 604800;
11
12
  if (this.ttl < 0) {
12
13
  throw new Error('TTL must be a positive number or zero (no expiration)');
13
14
  }
15
+ // Don't create client yet - do it lazily when needed
16
+ }
17
+ ensureClient() {
18
+ if (this.clientCreated)
19
+ return;
14
20
  try {
15
21
  // Create the Redis client with proper socket configuration
16
22
  this.client = this.createRedisClient();
17
- this.client.on('error', (error) => {
18
- console.error('Redis client error:', error.message);
19
- });
23
+ // Only set up error logging if debug is enabled
24
+ if (this.config.debug) {
25
+ this.client.on('error', (error) => {
26
+ console.error('Redis client error:', error.message);
27
+ });
28
+ }
29
+ this.clientCreated = true;
20
30
  }
21
31
  catch (error) {
22
32
  throw new Error(`Failed to initialize Redis client. Make sure 'redis' is installed: ${error instanceof Error ? error.message : 'Unknown error'}`);
@@ -54,6 +64,8 @@ class RedisStorage {
54
64
  if (this.connected) {
55
65
  return;
56
66
  }
67
+ // Ensure client exists before connecting
68
+ this.ensureClient();
57
69
  if (this.config.debug) {
58
70
  console.log('RedisStorage: Initializing connection...');
59
71
  }
@@ -115,6 +127,7 @@ class RedisStorage {
115
127
  return `${this.keyPrefix}${chatId}`;
116
128
  }
117
129
  async getMemory(chatId) {
130
+ this.ensureClient();
118
131
  try {
119
132
  const key = this.getKey(chatId);
120
133
  const data = await this.client.get(key);
@@ -138,6 +151,7 @@ class RedisStorage {
138
151
  }
139
152
  }
140
153
  async saveMemory(chatId, memory) {
154
+ this.ensureClient();
141
155
  try {
142
156
  const key = this.getKey(chatId);
143
157
  const serialized = this.serializeMemory(memory);
@@ -155,6 +169,7 @@ class RedisStorage {
155
169
  return JSON.stringify(memory);
156
170
  }
157
171
  async clearMemory(chatId) {
172
+ this.ensureClient();
158
173
  try {
159
174
  const key = this.getKey(chatId);
160
175
  const result = await this.client.del(key);
@@ -167,11 +182,8 @@ class RedisStorage {
167
182
  throw new Error(`Failed to clear memory for chat ${chatId}: ${message}`);
168
183
  }
169
184
  }
170
- /**
171
- * Tests the Redis connection
172
- * @returns True if connection is working
173
- */
174
185
  async testConnection() {
186
+ this.ensureClient();
175
187
  try {
176
188
  await this.client.ping();
177
189
  return true;
@@ -181,10 +193,8 @@ class RedisStorage {
181
193
  throw new Error(`Connection test command failed: ${message}`);
182
194
  }
183
195
  }
184
- /**
185
- * Get statistics about stored memories
186
- */
187
196
  async getStats() {
197
+ this.ensureClient();
188
198
  try {
189
199
  const pattern = `${this.keyPrefix}*`;
190
200
  const keys = await this.client.keys(pattern);
@@ -206,10 +216,8 @@ class RedisStorage {
206
216
  throw new Error(`Failed to get storage stats: ${error instanceof Error ? error.message : 'Unknown error'}`);
207
217
  }
208
218
  }
209
- /**
210
- * Clear all memories (use with caution!)
211
- */
212
219
  async clearAll() {
220
+ this.ensureClient();
213
221
  try {
214
222
  const pattern = `${this.keyPrefix}*`;
215
223
  const keys = await this.client.keys(pattern);
@@ -221,12 +229,9 @@ class RedisStorage {
221
229
  throw new Error(`Failed to clear all memories: ${error instanceof Error ? error.message : 'Unknown error'}`);
222
230
  }
223
231
  }
224
- /**
225
- * Close the Redis connection
226
- */
227
232
  async close() {
228
233
  try {
229
- if (this.client.isOpen) {
234
+ if (this.clientCreated && this.client && this.client.isOpen) {
230
235
  // Try graceful quit first
231
236
  try {
232
237
  await this.client.quit();
@@ -1 +1 @@
1
- {"version":3,"file":"RedisStorage.js","sourceRoot":"","sources":["../../src/storage/RedisStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RedisStorage.js","sourceRoot":"","sources":["../../src/storage/RedisStorage.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,9 @@ export interface SqliteStorageConfig {
4
4
  filename: string;
5
5
  tableName?: string;
6
6
  debug?: boolean;
7
+ enableRag?: boolean;
8
+ enableGraph?: boolean;
9
+ embeddingModel?: string;
7
10
  }
8
11
  export declare class SqliteStorage implements MemoryStorage {
9
12
  private db;
@@ -21,5 +24,43 @@ export declare class SqliteStorage implements MemoryStorage {
21
24
  }>;
22
25
  clearAll(): Promise<void>;
23
26
  close(): Promise<void>;
27
+ storeEmbedding(chatId: string, messageIndex: number, content: string, embedding: number[]): Promise<void>;
28
+ semanticSearch(chatId: string, queryEmbedding: number[], limit?: number): Promise<Array<{
29
+ messageIndex: number;
30
+ similarity: number;
31
+ content: string;
32
+ }>>;
33
+ private cosineSimilarity;
34
+ extractAndStoreEntities(chatId: string, memory: CleanMemoryStructure): Promise<void>;
35
+ private extractEntitiesFromMessage;
36
+ private extractRelationshipsFromMessage;
37
+ private storeEntities;
38
+ private storeRelationships;
39
+ private getEntityId;
40
+ queryGraph(chatId: string, entityType?: string, relationshipType?: string): Promise<{
41
+ entities: Array<{
42
+ id: number;
43
+ type: string;
44
+ name: string;
45
+ metadata: any;
46
+ }>;
47
+ relationships: Array<{
48
+ source: {
49
+ id: number;
50
+ type: string;
51
+ name: string;
52
+ };
53
+ target: {
54
+ id: number;
55
+ type: string;
56
+ name: string;
57
+ };
58
+ type: string;
59
+ confidence: number;
60
+ context: any;
61
+ }>;
62
+ }>;
63
+ private queryEntities;
64
+ private queryRelationships;
24
65
  }
25
66
  //# sourceMappingURL=SqliteStorage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SqliteStorage.d.ts","sourceRoot":"","sources":["../../src/storage/SqliteStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAGtE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,aAAc,YAAW,aAAa;IACjD,OAAO,CAAC,EAAE,CAAmB;IAC7B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAsB;gBAExB,MAAM,EAAE,mBAAmB;IAMjC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAyD3B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IA0C/D,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkDvE,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB1C,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAYlC,QAAQ,IAAI,OAAO,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IAuBI,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAY7B"}
1
+ {"version":3,"file":"SqliteStorage.d.ts","sourceRoot":"","sources":["../../src/storage/SqliteStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAGtE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,aAAc,YAAW,aAAa;IACjD,OAAO,CAAC,EAAE,CAAmB;IAC7B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAsB;gBAExB,MAAM,EAAE,mBAAmB;IAMjC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAwK3B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IA0C/D,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkDvE,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB1C,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAYlC,QAAQ,IAAI,OAAO,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IAuBI,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IActB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BzG,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,KAAK,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC;IAkD/J,OAAO,CAAC,gBAAgB;IAmBlB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoC1F,OAAO,CAAC,0BAA0B;IA4ClC,OAAO,CAAC,+BAA+B;YA+DzB,aAAa;YA0Bb,kBAAkB;YA+DlB,WAAW;IAgBnB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QACxF,QAAQ,EAAE,KAAK,CAAC;YAAC,EAAE,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,GAAG,CAAA;SAAC,CAAC,CAAC;QACzE,aAAa,EAAE,KAAK,CAAC;YACnB,MAAM,EAAE;gBAAC,EAAE,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAA;aAAC,CAAC;YACjD,MAAM,EAAE;gBAAC,EAAE,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAA;aAAC,CAAC;YACjD,IAAI,EAAE,MAAM,CAAC;YACb,UAAU,EAAE,MAAM,CAAC;YACnB,OAAO,EAAE,GAAG,CAAA;SACb,CAAC,CAAA;KACH,CAAC;YAYY,aAAa;YA8Bb,kBAAkB;CAmDjC"}
@@ -43,50 +43,154 @@ class SqliteStorage {
43
43
  }
44
44
  async initialize() {
45
45
  return new Promise((resolve, reject) => {
46
- // Store structured metadata + JSON messages for best of both worlds
47
- const createTableSQL = `
48
- CREATE TABLE IF NOT EXISTS ${this.tableName} (
49
- "chat_id" TEXT PRIMARY KEY,
50
- "chat_type" TEXT,
51
- "chat_name" TEXT,
52
- "user_count" INTEGER DEFAULT 0,
53
- "message_count" INTEGER DEFAULT 0,
54
- "created_at" INTEGER NOT NULL,
55
- "updated_at" INTEGER NOT NULL,
56
- "messages_json" TEXT NOT NULL
57
- )
58
- `;
59
- this.db.exec(createTableSQL, (err) => {
46
+ // Check if table exists and has correct schema
47
+ this.db.get(`SELECT sql FROM sqlite_master WHERE type='table' AND name='${this.tableName}'`, (err, row) => {
60
48
  if (err) {
61
- reject(new Error(`Failed to create table: ${err.message}`));
49
+ reject(new Error(`Failed to check table schema: ${err.message}`));
62
50
  return;
63
51
  }
64
- // Create indexes one by one for better error handling
65
- const indexes = [
66
- `CREATE INDEX IF NOT EXISTS idx_${this.tableName}_chat_type ON ${this.tableName}("chat_type")`,
67
- `CREATE INDEX IF NOT EXISTS idx_${this.tableName}_updated_at ON ${this.tableName}("updated_at")`,
68
- `CREATE INDEX IF NOT EXISTS idx_${this.tableName}_message_count ON ${this.tableName}("message_count")`,
69
- `CREATE INDEX IF NOT EXISTS idx_${this.tableName}_user_count ON ${this.tableName}("user_count")`,
70
- ];
71
- let indexIndex = 0;
72
- const createNextIndex = () => {
73
- if (indexIndex >= indexes.length) {
74
- if (this.config.debug) {
75
- console.log(`SqliteStorage: Table '${this.tableName}' initialized with structured columns and indexes`);
52
+ const expectedColumns = ['"chat_id"', '"chat_type"', '"chat_name"', '"user_count"', '"message_count"', '"created_at"', '"updated_at"', '"messages_json"'];
53
+ const hasCorrectSchema = row && row.sql && expectedColumns.every(col => row.sql.includes(col));
54
+ const createTable = () => {
55
+ // Store structured metadata + JSON messages for best of both worlds
56
+ const createTableSQL = `
57
+ CREATE TABLE ${this.tableName} (
58
+ "chat_id" TEXT PRIMARY KEY,
59
+ "chat_type" TEXT,
60
+ "chat_name" TEXT,
61
+ "user_count" INTEGER DEFAULT 0,
62
+ "message_count" INTEGER DEFAULT 0,
63
+ "created_at" INTEGER NOT NULL,
64
+ "updated_at" INTEGER NOT NULL,
65
+ "messages_json" TEXT NOT NULL
66
+ )
67
+ `;
68
+ this.db.exec(createTableSQL, (err) => {
69
+ if (err) {
70
+ reject(new Error(`Failed to create table: ${err.message}`));
71
+ return;
76
72
  }
77
- resolve();
78
- return;
79
- }
80
- this.db.exec(indexes[indexIndex], (indexErr) => {
81
- if (indexErr) {
82
- reject(new Error(`Failed to create index ${indexIndex + 1}: ${indexErr.message}`));
73
+ // Create RAG tables if enabled
74
+ if (this.config.enableRag) {
75
+ createRagTables();
76
+ }
77
+ else if (this.config.enableGraph) {
78
+ createGraphTables();
79
+ }
80
+ else {
81
+ createIndexes();
82
+ }
83
+ });
84
+ };
85
+ const createRagTables = () => {
86
+ const ragTablesSQL = `
87
+ CREATE TABLE ${this.tableName}_embeddings (
88
+ "id" INTEGER PRIMARY KEY,
89
+ "chat_id" TEXT NOT NULL,
90
+ "message_index" INTEGER NOT NULL,
91
+ "embedding" TEXT NOT NULL, -- JSON array of floats
92
+ "content_hash" TEXT NOT NULL,
93
+ "created_at" INTEGER NOT NULL,
94
+ FOREIGN KEY ("chat_id") REFERENCES ${this.tableName}("chat_id") ON DELETE CASCADE
95
+ );
96
+
97
+ CREATE INDEX idx_${this.tableName}_embeddings_chat_id ON ${this.tableName}_embeddings("chat_id");
98
+ CREATE INDEX idx_${this.tableName}_embeddings_content_hash ON ${this.tableName}_embeddings("content_hash");
99
+ `;
100
+ this.db.exec(ragTablesSQL, (ragErr) => {
101
+ if (ragErr) {
102
+ reject(new Error(`Failed to create RAG tables: ${ragErr.message}`));
83
103
  return;
84
104
  }
85
- indexIndex++;
86
- createNextIndex();
105
+ createIndexes();
87
106
  });
88
107
  };
89
- createNextIndex();
108
+ const createGraphTables = () => {
109
+ const graphTablesSQL = `
110
+ CREATE TABLE ${this.tableName}_entities (
111
+ "id" INTEGER PRIMARY KEY,
112
+ "entity_type" TEXT NOT NULL, -- 'user', 'topic', 'location', etc.
113
+ "entity_name" TEXT NOT NULL,
114
+ "entity_id" TEXT, -- Optional external ID
115
+ "metadata" TEXT, -- JSON metadata
116
+ "created_at" INTEGER NOT NULL,
117
+ "updated_at" INTEGER NOT NULL,
118
+ UNIQUE("entity_type", "entity_name")
119
+ );
120
+
121
+ CREATE TABLE ${this.tableName}_relationships (
122
+ "id" INTEGER PRIMARY KEY,
123
+ "chat_id" TEXT NOT NULL,
124
+ "source_entity_id" INTEGER NOT NULL,
125
+ "target_entity_id" INTEGER NOT NULL,
126
+ "relationship_type" TEXT NOT NULL, -- 'mentions', 'discusses', 'located_at', etc.
127
+ "confidence" REAL DEFAULT 1.0,
128
+ "context" TEXT, -- JSON context from message
129
+ "created_at" INTEGER NOT NULL,
130
+ FOREIGN KEY ("chat_id") REFERENCES ${this.tableName}("chat_id") ON DELETE CASCADE,
131
+ FOREIGN KEY ("source_entity_id") REFERENCES ${this.tableName}_entities("id") ON DELETE CASCADE,
132
+ FOREIGN KEY ("target_entity_id") REFERENCES ${this.tableName}_entities("id") ON DELETE CASCADE
133
+ );
134
+
135
+ CREATE INDEX idx_${this.tableName}_entities_type_name ON ${this.tableName}_entities("entity_type", "entity_name");
136
+ CREATE INDEX idx_${this.tableName}_relationships_chat ON ${this.tableName}_relationships("chat_id");
137
+ CREATE INDEX idx_${this.tableName}_relationships_entities ON ${this.tableName}_relationships("source_entity_id", "target_entity_id");
138
+ `;
139
+ this.db.exec(graphTablesSQL, (graphErr) => {
140
+ if (graphErr) {
141
+ reject(new Error(`Failed to create graph tables: ${graphErr.message}`));
142
+ return;
143
+ }
144
+ createIndexes();
145
+ });
146
+ };
147
+ const createIndexes = () => {
148
+ // Create indexes one by one for better error handling
149
+ const indexes = [
150
+ `CREATE INDEX IF NOT EXISTS idx_${this.tableName}_chat_type ON ${this.tableName}("chat_type")`,
151
+ `CREATE INDEX IF NOT EXISTS idx_${this.tableName}_updated_at ON ${this.tableName}("updated_at")`,
152
+ `CREATE INDEX IF NOT EXISTS idx_${this.tableName}_message_count ON ${this.tableName}("message_count")`,
153
+ `CREATE INDEX IF NOT EXISTS idx_${this.tableName}_user_count ON ${this.tableName}("user_count")`,
154
+ ];
155
+ let indexIndex = 0;
156
+ const createNextIndex = () => {
157
+ if (indexIndex >= indexes.length) {
158
+ if (this.config.debug) {
159
+ console.log(`SqliteStorage: Table '${this.tableName}' initialized with structured columns and indexes`);
160
+ }
161
+ resolve();
162
+ return;
163
+ }
164
+ this.db.exec(indexes[indexIndex], (indexErr) => {
165
+ if (indexErr) {
166
+ reject(new Error(`Failed to create index ${indexIndex + 1}: ${indexErr.message}`));
167
+ return;
168
+ }
169
+ indexIndex++;
170
+ createNextIndex();
171
+ });
172
+ };
173
+ createNextIndex();
174
+ };
175
+ if (!hasCorrectSchema) {
176
+ // Drop and recreate table if schema is wrong
177
+ if (row) {
178
+ this.db.exec(`DROP TABLE IF EXISTS ${this.tableName}`, (dropErr) => {
179
+ if (dropErr) {
180
+ reject(new Error(`Failed to drop old table: ${dropErr.message}`));
181
+ return;
182
+ }
183
+ createTable();
184
+ });
185
+ }
186
+ else {
187
+ createTable();
188
+ }
189
+ }
190
+ else {
191
+ // Table exists and has correct schema, just create indexes
192
+ createIndexes();
193
+ }
90
194
  });
91
195
  });
92
196
  }
@@ -234,6 +338,345 @@ class SqliteStorage {
234
338
  });
235
339
  });
236
340
  }
341
+ // RAG Methods
342
+ async storeEmbedding(chatId, messageIndex, content, embedding) {
343
+ if (!this.config.enableRag) {
344
+ throw new Error('RAG not enabled for this storage instance');
345
+ }
346
+ return new Promise((resolve, reject) => {
347
+ const contentHash = require('crypto').createHash('md5').update(content).digest('hex');
348
+ const embeddingJson = JSON.stringify(embedding);
349
+ const now = Date.now();
350
+ this.db.run(`INSERT OR REPLACE INTO ${this.tableName}_embeddings
351
+ ("chat_id", "message_index", "embedding", "content_hash", "created_at")
352
+ VALUES (?, ?, ?, ?, ?)`, [chatId, messageIndex, embeddingJson, contentHash, now], (err) => {
353
+ if (err) {
354
+ reject(new Error(`Failed to store embedding: ${err.message}`));
355
+ return;
356
+ }
357
+ resolve();
358
+ });
359
+ });
360
+ }
361
+ async semanticSearch(chatId, queryEmbedding, limit = 10) {
362
+ if (!this.config.enableRag) {
363
+ throw new Error('RAG not enabled for this storage instance');
364
+ }
365
+ return new Promise((resolve, reject) => {
366
+ // Get all embeddings for this chat
367
+ this.db.all(`SELECT "message_index", "embedding" FROM ${this.tableName}_embeddings WHERE "chat_id" = ?`, [chatId], (err, rows) => {
368
+ if (err) {
369
+ reject(new Error(`Failed to retrieve embeddings: ${err.message}`));
370
+ return;
371
+ }
372
+ // Calculate cosine similarity for each embedding
373
+ const results = rows.map(row => {
374
+ const embedding = JSON.parse(row.embedding);
375
+ const similarity = this.cosineSimilarity(queryEmbedding, embedding);
376
+ return {
377
+ messageIndex: row.message_index,
378
+ similarity,
379
+ content: '' // We'll need to get this from the main messages
380
+ };
381
+ });
382
+ // Sort by similarity and take top results
383
+ results.sort((a, b) => b.similarity - a.similarity);
384
+ const topResults = results.slice(0, limit);
385
+ // Get the actual message content for the top results
386
+ this.getMemory(chatId).then(memory => {
387
+ if (!memory) {
388
+ resolve([]);
389
+ return;
390
+ }
391
+ const enrichedResults = topResults.map(result => ({
392
+ ...result,
393
+ content: memory.messages[result.messageIndex]?.content || ''
394
+ }));
395
+ resolve(enrichedResults);
396
+ }).catch(reject);
397
+ });
398
+ });
399
+ }
400
+ cosineSimilarity(a, b) {
401
+ if (!a || !b || a.length !== b.length)
402
+ return 0;
403
+ let dotProduct = 0;
404
+ let normA = 0;
405
+ let normB = 0;
406
+ for (let i = 0; i < a.length; i++) {
407
+ dotProduct += (a[i] || 0) * (b[i] || 0);
408
+ normA += (a[i] || 0) * (a[i] || 0);
409
+ normB += (b[i] || 0) * (b[i] || 0);
410
+ }
411
+ if (normA === 0 || normB === 0)
412
+ return 0;
413
+ return dotProduct / (Math.sqrt(normA) * Math.sqrt(normB));
414
+ }
415
+ // Graph Methods
416
+ async extractAndStoreEntities(chatId, memory) {
417
+ if (!this.config.enableGraph) {
418
+ throw new Error('Graph memory not enabled for this storage instance');
419
+ }
420
+ const entities = new Map();
421
+ const relationships = [];
422
+ // Extract entities and relationships from messages
423
+ memory.messages.forEach((message, index) => {
424
+ const messageEntities = this.extractEntitiesFromMessage(message);
425
+ const messageRelationships = this.extractRelationshipsFromMessage(message, messageEntities, chatId, index);
426
+ // Merge entities
427
+ messageEntities.forEach(entity => {
428
+ const key = `${entity.type}:${entity.name}`;
429
+ if (!entities.has(key)) {
430
+ entities.set(key, {
431
+ type: entity.type,
432
+ name: entity.name,
433
+ id: entity.id,
434
+ metadata: entity.metadata || {},
435
+ created_at: Date.now(),
436
+ updated_at: Date.now()
437
+ });
438
+ }
439
+ });
440
+ relationships.push(...messageRelationships);
441
+ });
442
+ // Store entities and relationships
443
+ await this.storeEntities(Array.from(entities.values()));
444
+ await this.storeRelationships(relationships, chatId);
445
+ }
446
+ extractEntitiesFromMessage(message) {
447
+ const entities = [];
448
+ // Extract user entities
449
+ if (message.userInfo?.userId) {
450
+ entities.push({
451
+ type: 'user',
452
+ name: message.userInfo.displayName || message.userInfo.username || 'Unknown User',
453
+ id: message.userInfo.userId,
454
+ metadata: {
455
+ username: message.userInfo.username,
456
+ role: message.role
457
+ }
458
+ });
459
+ }
460
+ // Extract mentioned users from content (simple regex for @mentions)
461
+ const mentionRegex = /@(\w+)/g;
462
+ let match;
463
+ while ((match = mentionRegex.exec(message.content)) !== null) {
464
+ if (match[1]) {
465
+ entities.push({
466
+ type: 'user',
467
+ name: match[1],
468
+ metadata: { mentioned: true }
469
+ });
470
+ }
471
+ }
472
+ // Extract topics (simple keyword detection)
473
+ const topicKeywords = ['project', 'feature', 'bug', 'issue', 'task', 'meeting'];
474
+ topicKeywords.forEach(keyword => {
475
+ if (message.content.toLowerCase().includes(keyword)) {
476
+ entities.push({
477
+ type: 'topic',
478
+ name: keyword,
479
+ metadata: { context: 'keyword' }
480
+ });
481
+ }
482
+ });
483
+ return entities;
484
+ }
485
+ extractRelationshipsFromMessage(message, entities, chatId, messageIndex) {
486
+ const relationships = [];
487
+ // User mentions topic relationships
488
+ const userEntity = entities.find(e => e.type === 'user' && e.id === message.userInfo?.userId);
489
+ const topicEntities = entities.filter(e => e.type === 'topic');
490
+ if (userEntity) {
491
+ topicEntities.forEach(topic => {
492
+ relationships.push({
493
+ sourceEntity: { type: userEntity.type, name: userEntity.name },
494
+ targetEntity: { type: topic.type, name: topic.name },
495
+ type: 'discusses',
496
+ confidence: 0.8,
497
+ context: {
498
+ chatId,
499
+ messageIndex,
500
+ content: message.content.substring(0, 100),
501
+ timestamp: message.timestamp
502
+ }
503
+ });
504
+ });
505
+ }
506
+ // User mentions other users
507
+ const mentionedUsers = entities.filter(e => e.type === 'user' && e.metadata?.mentioned);
508
+ if (userEntity) {
509
+ mentionedUsers.forEach(mentionedUser => {
510
+ relationships.push({
511
+ sourceEntity: { type: userEntity.type, name: userEntity.name },
512
+ targetEntity: { type: mentionedUser.type, name: mentionedUser.name },
513
+ type: 'mentions',
514
+ confidence: 0.9,
515
+ context: {
516
+ chatId,
517
+ messageIndex,
518
+ content: message.content.substring(0, 100),
519
+ timestamp: message.timestamp
520
+ }
521
+ });
522
+ });
523
+ }
524
+ return relationships;
525
+ }
526
+ async storeEntities(entities) {
527
+ const promises = entities.map(entity => {
528
+ return new Promise((resolve, reject) => {
529
+ this.db.run(`INSERT OR REPLACE INTO ${this.tableName}_entities
530
+ ("entity_type", "entity_name", "entity_id", "metadata", "created_at", "updated_at")
531
+ VALUES (?, ?, ?, ?, ?, ?)`, [
532
+ entity.type,
533
+ entity.name,
534
+ entity.id || null,
535
+ JSON.stringify(entity.metadata || {}),
536
+ entity.created_at,
537
+ entity.updated_at
538
+ ], (err) => {
539
+ if (err)
540
+ reject(err);
541
+ else
542
+ resolve();
543
+ });
544
+ });
545
+ });
546
+ await Promise.all(promises);
547
+ }
548
+ async storeRelationships(relationships, chatId) {
549
+ // First get entity IDs
550
+ const entityIds = new Map();
551
+ for (const rel of relationships) {
552
+ const sourceKey = `${rel.sourceEntity.type}:${rel.sourceEntity.name}`;
553
+ const targetKey = `${rel.targetEntity.type}:${rel.targetEntity.name}`;
554
+ if (!entityIds.has(sourceKey)) {
555
+ const sourceId = await this.getEntityId(rel.sourceEntity.type, rel.sourceEntity.name);
556
+ if (sourceId)
557
+ entityIds.set(sourceKey, sourceId);
558
+ }
559
+ if (!entityIds.has(targetKey)) {
560
+ const targetId = await this.getEntityId(rel.targetEntity.type, rel.targetEntity.name);
561
+ if (targetId)
562
+ entityIds.set(targetKey, targetId);
563
+ }
564
+ }
565
+ // Store relationships
566
+ const promises = relationships.map(rel => {
567
+ return new Promise((resolve, reject) => {
568
+ const sourceKey = `${rel.sourceEntity.type}:${rel.sourceEntity.name}`;
569
+ const targetKey = `${rel.targetEntity.type}:${rel.targetEntity.name}`;
570
+ const sourceId = entityIds.get(sourceKey);
571
+ const targetId = entityIds.get(targetKey);
572
+ if (!sourceId || !targetId) {
573
+ resolve(); // Skip if entities not found
574
+ return;
575
+ }
576
+ this.db.run(`INSERT INTO ${this.tableName}_relationships
577
+ ("chat_id", "source_entity_id", "target_entity_id", "relationship_type", "confidence", "context", "created_at")
578
+ VALUES (?, ?, ?, ?, ?, ?, ?)`, [
579
+ rel.context.chatId || chatId,
580
+ sourceId,
581
+ targetId,
582
+ rel.type,
583
+ rel.confidence,
584
+ JSON.stringify(rel.context),
585
+ Date.now()
586
+ ], (err) => {
587
+ if (err)
588
+ reject(err);
589
+ else
590
+ resolve();
591
+ });
592
+ });
593
+ });
594
+ await Promise.all(promises);
595
+ }
596
+ async getEntityId(type, name) {
597
+ return new Promise((resolve, reject) => {
598
+ this.db.get(`SELECT "id" FROM ${this.tableName}_entities WHERE "entity_type" = ? AND "entity_name" = ?`, [type, name], (err, row) => {
599
+ if (err) {
600
+ reject(err);
601
+ return;
602
+ }
603
+ resolve(row ? row.id : null);
604
+ });
605
+ });
606
+ }
607
+ async queryGraph(chatId, entityType, relationshipType) {
608
+ if (!this.config.enableGraph) {
609
+ throw new Error('Graph memory not enabled for this storage instance');
610
+ }
611
+ // This is a simplified graph query - in practice you'd want more sophisticated graph traversal
612
+ const entities = await this.queryEntities(entityType);
613
+ const relationships = await this.queryRelationships(chatId, relationshipType);
614
+ return { entities, relationships };
615
+ }
616
+ async queryEntities(type) {
617
+ return new Promise((resolve, reject) => {
618
+ let query = `SELECT * FROM ${this.tableName}_entities`;
619
+ const params = [];
620
+ if (type) {
621
+ query += ' WHERE "entity_type" = ?';
622
+ params.push(type);
623
+ }
624
+ query += ' ORDER BY "updated_at" DESC LIMIT 100';
625
+ this.db.all(query, params, (err, rows) => {
626
+ if (err) {
627
+ reject(err);
628
+ return;
629
+ }
630
+ const entities = rows.map(row => ({
631
+ id: row.id,
632
+ type: row.entity_type,
633
+ name: row.entity_name,
634
+ metadata: JSON.parse(row.metadata || '{}')
635
+ }));
636
+ resolve(entities);
637
+ });
638
+ });
639
+ }
640
+ async queryRelationships(chatId, type) {
641
+ return new Promise((resolve, reject) => {
642
+ let query = `
643
+ SELECT r.*, e1.entity_type as source_type, e1.entity_name as source_name,
644
+ e2.entity_type as target_type, e2.entity_name as target_name
645
+ FROM ${this.tableName}_relationships r
646
+ JOIN ${this.tableName}_entities e1 ON r.source_entity_id = e1.id
647
+ JOIN ${this.tableName}_entities e2 ON r.target_entity_id = e2.id
648
+ WHERE r.chat_id = ?
649
+ `;
650
+ const params = [chatId];
651
+ if (type) {
652
+ query += ' AND r.relationship_type = ?';
653
+ params.push(type);
654
+ }
655
+ query += ' ORDER BY r.created_at DESC LIMIT 50';
656
+ this.db.all(query, params, (err, rows) => {
657
+ if (err) {
658
+ reject(err);
659
+ return;
660
+ }
661
+ const relationships = rows.map(row => ({
662
+ source: {
663
+ id: row.source_entity_id,
664
+ type: row.source_type,
665
+ name: row.source_name
666
+ },
667
+ target: {
668
+ id: row.target_entity_id,
669
+ type: row.target_type,
670
+ name: row.target_name
671
+ },
672
+ type: row.relationship_type,
673
+ confidence: row.confidence,
674
+ context: JSON.parse(row.context || '{}')
675
+ }));
676
+ resolve(relationships);
677
+ });
678
+ });
679
+ }
237
680
  }
238
681
  exports.SqliteStorage = SqliteStorage;
239
682
  //# sourceMappingURL=SqliteStorage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SqliteStorage.js","sourceRoot":"","sources":["../../src/storage/SqliteStorage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SqliteStorage.js","sourceRoot":"","sources":["../../src/storage/SqliteStorage.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-nodes-smart-memory",
3
- "version": "1.0.66",
3
+ "version": "1.0.68",
4
4
  "description": "Flexible memory management node for n8n with support for multiple storage backends",
5
5
  "main": "dist/SmartMemory.node.js",
6
6
  "scripts": {