@@ -18,8 +18,7 @@ import { Database } from "./types.ts";
18
18
19
19
export class SqlJsDatabaseAdapter
20
20
extends DatabaseAdapter < Database >
21
- implements IDatabaseCacheAdapter
22
- {
21
+ implements IDatabaseCacheAdapter {
23
22
constructor ( db : Database ) {
24
23
super ( ) ;
25
24
this . db = db ;
@@ -71,19 +70,17 @@ export class SqlJsDatabaseAdapter
71
70
}
72
71
73
72
async getMemoriesByRoomIds ( params : {
73
+ agentId : UUID ;
74
74
roomIds : UUID [ ] ;
75
75
tableName : string ;
76
- agentId ?: UUID ;
77
76
} ) : Promise < Memory [ ] > {
78
77
const placeholders = params . roomIds . map ( ( ) => "?" ) . join ( ", " ) ;
79
- let sql = `SELECT * FROM memories WHERE type = ? AND roomId IN (${ placeholders } )` ;
78
+ let sql = `SELECT * FROM memories WHERE ' type' = ? AND agentId = ? AND roomId IN (${ placeholders } )` ;
80
79
const stmt = this . db . prepare ( sql ) ;
81
- const queryParams = [ params . tableName , ...params . roomIds ] ;
82
- if ( params . agentId ) {
83
- sql += " AND userId = ?" ;
84
- queryParams . push ( params . agentId ) ;
85
- }
80
+ const queryParams = [ params . tableName , params . agentId , ...params . roomIds ] ;
81
+ console . log ( { queryParams } )
86
82
stmt . bind ( queryParams ) ;
83
+ console . log ( { queryParams } )
87
84
88
85
const memories : Memory [ ] = [ ] ;
89
86
while ( stmt . step ( ) ) {
@@ -224,6 +221,7 @@ export class SqlJsDatabaseAdapter
224
221
const similarMemories = await this . searchMemoriesByEmbedding (
225
222
memory . embedding ,
226
223
{
224
+ agentId : memory . agentId ,
227
225
tableName,
228
226
roomId : memory . roomId ,
229
227
match_threshold : 0.95 , // 5% similarity threshold
@@ -256,6 +254,7 @@ export class SqlJsDatabaseAdapter
256
254
257
255
async searchMemories ( params : {
258
256
tableName : string ;
257
+ agentId : UUID ;
259
258
roomId : UUID ;
260
259
embedding : number [ ] ;
261
260
match_threshold : number ;
@@ -268,7 +267,7 @@ export class SqlJsDatabaseAdapter
268
267
// TODO: Uncomment when we compile sql.js with vss
269
268
// `, (1 - vss_distance_l2(embedding, ?)) AS similarity` +
270
269
` FROM memories
271
- WHERE type = ?
270
+ WHERE type = ? AND agentId = ?
272
271
AND roomId = ?` ;
273
272
274
273
if ( params . unique ) {
@@ -280,6 +279,7 @@ export class SqlJsDatabaseAdapter
280
279
stmt . bind ( [
281
280
// JSON.stringify(params.embedding),
282
281
params . tableName ,
282
+ params . agentId ,
283
283
params . roomId ,
284
284
// params.match_count,
285
285
] ) ;
@@ -300,10 +300,10 @@ export class SqlJsDatabaseAdapter
300
300
async searchMemoriesByEmbedding (
301
301
_embedding : number [ ] ,
302
302
params : {
303
+ agentId : UUID ;
303
304
match_threshold ?: number ;
304
305
count ?: number ;
305
306
roomId ?: UUID ;
306
- agentId ?: UUID ;
307
307
unique ?: boolean ;
308
308
tableName : string ;
309
309
}
@@ -313,7 +313,7 @@ export class SqlJsDatabaseAdapter
313
313
// TODO: Uncomment when we compile sql.js with vss
314
314
// `, (1 - vss_distance_l2(embedding, ?)) AS similarity`+
315
315
` FROM memories
316
- WHERE type = ?` ;
316
+ WHERE type = ? AND agentId = ? ` ;
317
317
318
318
if ( params . unique ) {
319
319
sql += " AND `unique` = 1" ;
@@ -336,6 +336,7 @@ export class SqlJsDatabaseAdapter
336
336
const bindings = [
337
337
// JSON.stringify(embedding),
338
338
params . tableName ,
339
+ params . agentId ,
339
340
] ;
340
341
if ( params . roomId ) {
341
342
bindings . push ( params . roomId ) ;
@@ -752,13 +753,13 @@ export class SqlJsDatabaseAdapter
752
753
753
754
stmt . bind ( [ params . key , params . agentId ] ) ;
754
755
755
- let cached = undefined ;
756
+ let cached : { value : string } | undefined = undefined ;
756
757
if ( stmt . step ( ) ) {
757
758
cached = stmt . getAsObject ( ) as unknown as { value : string } ;
758
759
}
759
760
stmt . free ( ) ;
760
761
761
- return cached . value ;
762
+ return cached ? .value ?? undefined ;
762
763
}
763
764
764
765
async setCache ( params : {
@@ -785,6 +786,7 @@ export class SqlJsDatabaseAdapter
785
786
const stmt = this . db . prepare ( sql ) ;
786
787
stmt . run ( [ params . key , params . agentId ] ) ;
787
788
stmt . free ( ) ;
789
+ return true ;
788
790
} catch ( error ) {
789
791
console . log ( "Error removing cache" , error ) ;
790
792
return false ;
0 commit comments