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.
- package/dist/storage/RedisStorage.d.ts +2 -13
- package/dist/storage/RedisStorage.d.ts.map +1 -1
- package/dist/storage/RedisStorage.js +22 -17
- package/dist/storage/RedisStorage.js.map +1 -1
- package/dist/storage/SqliteStorage.d.ts +41 -0
- package/dist/storage/SqliteStorage.d.ts.map +1 -1
- package/dist/storage/SqliteStorage.js +479 -36
- package/dist/storage/SqliteStorage.js.map +1 -1
- package/package.json +1 -1
|
@@ -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;
|
|
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
|
-
|
|
18
|
-
|
|
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":";;;AAEA,iCAAqC;AAiBrC,MAAa,YAAY;
|
|
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;
|
|
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
|
-
//
|
|
47
|
-
|
|
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
|
|
49
|
+
reject(new Error(`Failed to check table schema: ${err.message}`));
|
|
62
50
|
return;
|
|
63
51
|
}
|
|
64
|
-
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
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
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
if (
|
|
82
|
-
|
|
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
|
-
|
|
86
|
-
createNextIndex();
|
|
105
|
+
createIndexes();
|
|
87
106
|
});
|
|
88
107
|
};
|
|
89
|
-
|
|
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