Skip to content

Commit 036fefa

Browse files
authored
Merge pull request elizaOS#606 from bmgalego/fix-sqljs
fix: db queries in sqljs database adapter not using agentId
2 parents f9ba2bd + c673731 commit 036fefa

File tree

2 files changed

+18
-15
lines changed

2 files changed

+18
-15
lines changed

packages/adapter-sqljs/src/index.ts

+16-14
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@ import { Database } from "./types.ts";
1818

1919
export class SqlJsDatabaseAdapter
2020
extends DatabaseAdapter<Database>
21-
implements IDatabaseCacheAdapter
22-
{
21+
implements IDatabaseCacheAdapter {
2322
constructor(db: Database) {
2423
super();
2524
this.db = db;
@@ -71,19 +70,17 @@ export class SqlJsDatabaseAdapter
7170
}
7271

7372
async getMemoriesByRoomIds(params: {
73+
agentId: UUID;
7474
roomIds: UUID[];
7575
tableName: string;
76-
agentId?: UUID;
7776
}): Promise<Memory[]> {
7877
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})`;
8079
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 })
8682
stmt.bind(queryParams);
83+
console.log({ queryParams })
8784

8885
const memories: Memory[] = [];
8986
while (stmt.step()) {
@@ -224,6 +221,7 @@ export class SqlJsDatabaseAdapter
224221
const similarMemories = await this.searchMemoriesByEmbedding(
225222
memory.embedding,
226223
{
224+
agentId: memory.agentId,
227225
tableName,
228226
roomId: memory.roomId,
229227
match_threshold: 0.95, // 5% similarity threshold
@@ -256,6 +254,7 @@ export class SqlJsDatabaseAdapter
256254

257255
async searchMemories(params: {
258256
tableName: string;
257+
agentId: UUID;
259258
roomId: UUID;
260259
embedding: number[];
261260
match_threshold: number;
@@ -268,7 +267,7 @@ export class SqlJsDatabaseAdapter
268267
// TODO: Uncomment when we compile sql.js with vss
269268
// `, (1 - vss_distance_l2(embedding, ?)) AS similarity` +
270269
` FROM memories
271-
WHERE type = ?
270+
WHERE type = ? AND agentId = ?
272271
AND roomId = ?`;
273272

274273
if (params.unique) {
@@ -280,6 +279,7 @@ export class SqlJsDatabaseAdapter
280279
stmt.bind([
281280
// JSON.stringify(params.embedding),
282281
params.tableName,
282+
params.agentId,
283283
params.roomId,
284284
// params.match_count,
285285
]);
@@ -300,10 +300,10 @@ export class SqlJsDatabaseAdapter
300300
async searchMemoriesByEmbedding(
301301
_embedding: number[],
302302
params: {
303+
agentId: UUID;
303304
match_threshold?: number;
304305
count?: number;
305306
roomId?: UUID;
306-
agentId?: UUID;
307307
unique?: boolean;
308308
tableName: string;
309309
}
@@ -313,7 +313,7 @@ export class SqlJsDatabaseAdapter
313313
// TODO: Uncomment when we compile sql.js with vss
314314
// `, (1 - vss_distance_l2(embedding, ?)) AS similarity`+
315315
` FROM memories
316-
WHERE type = ?`;
316+
WHERE type = ? AND agentId = ?`;
317317

318318
if (params.unique) {
319319
sql += " AND `unique` = 1";
@@ -336,6 +336,7 @@ export class SqlJsDatabaseAdapter
336336
const bindings = [
337337
// JSON.stringify(embedding),
338338
params.tableName,
339+
params.agentId,
339340
];
340341
if (params.roomId) {
341342
bindings.push(params.roomId);
@@ -752,13 +753,13 @@ export class SqlJsDatabaseAdapter
752753

753754
stmt.bind([params.key, params.agentId]);
754755

755-
let cached = undefined;
756+
let cached: { value: string } | undefined = undefined;
756757
if (stmt.step()) {
757758
cached = stmt.getAsObject() as unknown as { value: string };
758759
}
759760
stmt.free();
760761

761-
return cached.value;
762+
return cached?.value ?? undefined;
762763
}
763764

764765
async setCache(params: {
@@ -785,6 +786,7 @@ export class SqlJsDatabaseAdapter
785786
const stmt = this.db.prepare(sql);
786787
stmt.run([params.key, params.agentId]);
787788
stmt.free();
789+
return true;
788790
} catch (error) {
789791
console.log("Error removing cache", error);
790792
return false;

packages/adapter-sqljs/tsconfig.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
"extends": "../../tsconfig.json",
33
"compilerOptions": {
44
"outDir": "dist",
5-
"rootDir": "src"
5+
"rootDir": "src",
6+
"strict": true
67
},
78
"include": ["src/**/*.ts"]
89
}

0 commit comments

Comments
 (0)