@cogitator-ai/memory 0.10.0 → 0.11.1
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/README.md +212 -89
- package/dist/adapters/index.d.ts +10 -2
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/mongodb.d.ts +6 -0
- package/dist/adapters/mongodb.d.ts.map +1 -1
- package/dist/adapters/mongodb.js +60 -37
- package/dist/adapters/mongodb.js.map +1 -1
- package/dist/adapters/pgvector.d.ts +46 -0
- package/dist/adapters/pgvector.d.ts.map +1 -0
- package/dist/adapters/pgvector.js +55 -0
- package/dist/adapters/pgvector.js.map +1 -0
- package/dist/adapters/postgres.d.ts +4 -0
- package/dist/adapters/postgres.d.ts.map +1 -1
- package/dist/adapters/postgres.js +149 -68
- package/dist/adapters/postgres.js.map +1 -1
- package/dist/adapters/qdrant.d.ts +1 -0
- package/dist/adapters/qdrant.d.ts.map +1 -1
- package/dist/adapters/qdrant.js +49 -42
- package/dist/adapters/qdrant.js.map +1 -1
- package/dist/adapters/sqlite-driver.d.ts +11 -0
- package/dist/adapters/sqlite-driver.d.ts.map +1 -0
- package/dist/adapters/sqlite-driver.js +2 -0
- package/dist/adapters/sqlite-driver.js.map +1 -0
- package/dist/adapters/sqlite.d.ts +1 -0
- package/dist/adapters/sqlite.d.ts.map +1 -1
- package/dist/adapters/sqlite.js +18 -18
- package/dist/adapters/sqlite.js.map +1 -1
- package/dist/compaction.d.ts +14 -1
- package/dist/compaction.d.ts.map +1 -1
- package/dist/compaction.js +4 -1
- package/dist/compaction.js.map +1 -1
- package/dist/context-builder.d.ts +5 -0
- package/dist/context-builder.d.ts.map +1 -1
- package/dist/context-builder.js +10 -11
- package/dist/context-builder.js.map +1 -1
- package/dist/core-facts.d.ts +5 -0
- package/dist/core-facts.d.ts.map +1 -1
- package/dist/core-facts.js +1 -2
- package/dist/core-facts.js.map +1 -1
- package/dist/embedding/openai.d.ts +5 -0
- package/dist/embedding/openai.d.ts.map +1 -1
- package/dist/embedding/openai.js +24 -4
- package/dist/embedding/openai.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/knowledge-graph/entity-extractor.d.ts +24 -11
- package/dist/knowledge-graph/entity-extractor.d.ts.map +1 -1
- package/dist/knowledge-graph/entity-extractor.js +15 -3
- package/dist/knowledge-graph/entity-extractor.js.map +1 -1
- package/dist/knowledge-graph/graph-adapter.d.ts +1 -0
- package/dist/knowledge-graph/graph-adapter.d.ts.map +1 -1
- package/dist/knowledge-graph/graph-adapter.js +477 -453
- package/dist/knowledge-graph/graph-adapter.js.map +1 -1
- package/dist/knowledge-graph/sqlite-graph-adapter.d.ts +1 -0
- package/dist/knowledge-graph/sqlite-graph-adapter.d.ts.map +1 -1
- package/dist/knowledge-graph/sqlite-graph-adapter.js +461 -439
- package/dist/knowledge-graph/sqlite-graph-adapter.js.map +1 -1
- package/dist/schema.d.ts +4 -0
- package/dist/schema.d.ts.map +1 -1
- package/dist/schema.js +2 -0
- package/dist/schema.js.map +1 -1
- package/package.json +3 -3
|
@@ -7,12 +7,18 @@
|
|
|
7
7
|
* - Embeddings with pgvector (EmbeddingAdapter)
|
|
8
8
|
*/
|
|
9
9
|
import { BaseMemoryAdapter } from './base.js';
|
|
10
|
+
import { detectVectorSearchTuning, ensureHnswCosineIndex, hnswSearchSettings, } from './pgvector.js';
|
|
11
|
+
/** JSON text for a JSONB parameter. node-pg would send a JS array as a Postgres array literal. */
|
|
12
|
+
function toJsonb(value) {
|
|
13
|
+
return value === undefined || value === null ? null : JSON.stringify(value);
|
|
14
|
+
}
|
|
10
15
|
export class PostgresAdapter extends BaseMemoryAdapter {
|
|
11
16
|
provider = 'postgres';
|
|
12
17
|
pool = null;
|
|
13
18
|
config;
|
|
14
19
|
schema;
|
|
15
20
|
vectorDimensions = 768;
|
|
21
|
+
vectorTuning = { iterativeScan: false };
|
|
16
22
|
constructor(config) {
|
|
17
23
|
super();
|
|
18
24
|
this.config = config;
|
|
@@ -104,14 +110,16 @@ export class PostgresAdapter extends BaseMemoryAdapter {
|
|
|
104
110
|
ON ${this.schema}.facts(agent_id, category)
|
|
105
111
|
`);
|
|
106
112
|
try {
|
|
107
|
-
await this.pool
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
113
|
+
await ensureHnswCosineIndex(this.pool, {
|
|
114
|
+
schema: this.schema,
|
|
115
|
+
table: 'embeddings',
|
|
116
|
+
column: 'vector',
|
|
117
|
+
index: 'idx_embeddings_vector',
|
|
118
|
+
});
|
|
119
|
+
this.vectorTuning = await detectVectorSearchTuning(this.pool);
|
|
112
120
|
}
|
|
113
121
|
catch (err) {
|
|
114
|
-
console.warn('Failed to create
|
|
122
|
+
console.warn('Failed to create the HNSW vector index:', err.message);
|
|
115
123
|
}
|
|
116
124
|
try {
|
|
117
125
|
await this.pool.query(`
|
|
@@ -129,11 +137,18 @@ export class PostgresAdapter extends BaseMemoryAdapter {
|
|
|
129
137
|
}
|
|
130
138
|
}
|
|
131
139
|
async disconnect() {
|
|
132
|
-
if (this.pool)
|
|
140
|
+
if (!this.pool)
|
|
141
|
+
return this.success(undefined);
|
|
142
|
+
try {
|
|
133
143
|
await this.pool.end();
|
|
144
|
+
return this.success(undefined);
|
|
145
|
+
}
|
|
146
|
+
catch (err) {
|
|
147
|
+
return this.failure(err.message);
|
|
148
|
+
}
|
|
149
|
+
finally {
|
|
134
150
|
this.pool = null;
|
|
135
151
|
}
|
|
136
|
-
return this.success(undefined);
|
|
137
152
|
}
|
|
138
153
|
async createThread(agentId, metadata = {}, threadId) {
|
|
139
154
|
if (!this.pool)
|
|
@@ -141,10 +156,14 @@ export class PostgresAdapter extends BaseMemoryAdapter {
|
|
|
141
156
|
const id = threadId ?? this.generateId('thread');
|
|
142
157
|
const now = new Date();
|
|
143
158
|
try {
|
|
144
|
-
await this.pool.query(`INSERT INTO ${this.schema}.threads (id, agent_id, metadata, created_at, updated_at)
|
|
145
|
-
VALUES ($1, $2, $3, $4, $4)
|
|
146
|
-
ON CONFLICT (id) DO UPDATE SET agent_id = $2, metadata = $3, updated_at = $4
|
|
147
|
-
|
|
159
|
+
const result = await this.pool.query(`INSERT INTO ${this.schema}.threads (id, agent_id, metadata, created_at, updated_at)
|
|
160
|
+
VALUES ($1, $2, $3::jsonb, $4, $4)
|
|
161
|
+
ON CONFLICT (id) DO UPDATE SET agent_id = $2, metadata = $3::jsonb, updated_at = $4
|
|
162
|
+
RETURNING *`, [id, agentId, toJsonb(metadata), now]);
|
|
163
|
+
const row = result.rows[0];
|
|
164
|
+
if (!row)
|
|
165
|
+
return this.failure(`Failed to create thread: ${id}`);
|
|
166
|
+
return this.success(this.rowToThread(row));
|
|
148
167
|
}
|
|
149
168
|
catch (err) {
|
|
150
169
|
return this.failure(err.message);
|
|
@@ -153,38 +172,34 @@ export class PostgresAdapter extends BaseMemoryAdapter {
|
|
|
153
172
|
async getThread(threadId) {
|
|
154
173
|
if (!this.pool)
|
|
155
174
|
return this.failure('Not connected');
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
updatedAt: new Date(row.updated_at),
|
|
168
|
-
});
|
|
175
|
+
try {
|
|
176
|
+
const result = await this.pool.query(`SELECT * FROM ${this.schema}.threads WHERE id = $1`, [
|
|
177
|
+
threadId,
|
|
178
|
+
]);
|
|
179
|
+
if (result.rows.length === 0)
|
|
180
|
+
return this.success(null);
|
|
181
|
+
return this.success(this.rowToThread(result.rows[0]));
|
|
182
|
+
}
|
|
183
|
+
catch (err) {
|
|
184
|
+
return this.failure(err.message);
|
|
185
|
+
}
|
|
169
186
|
}
|
|
170
187
|
async updateThread(threadId, metadata) {
|
|
171
188
|
if (!this.pool)
|
|
172
189
|
return this.failure('Not connected');
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
190
|
+
try {
|
|
191
|
+
const result = await this.pool.query(`UPDATE ${this.schema}.threads
|
|
192
|
+
SET metadata = COALESCE(metadata, '{}'::jsonb) || $2::jsonb, updated_at = NOW()
|
|
193
|
+
WHERE id = $1
|
|
194
|
+
RETURNING *`, [threadId, toJsonb(metadata)]);
|
|
195
|
+
if (result.rows.length === 0) {
|
|
196
|
+
return this.failure(`Thread not found: ${threadId}`);
|
|
197
|
+
}
|
|
198
|
+
return this.success(this.rowToThread(result.rows[0]));
|
|
199
|
+
}
|
|
200
|
+
catch (err) {
|
|
201
|
+
return this.failure(err.message);
|
|
179
202
|
}
|
|
180
|
-
const row = result.rows[0];
|
|
181
|
-
return this.success({
|
|
182
|
-
id: row.id,
|
|
183
|
-
agentId: row.agent_id,
|
|
184
|
-
metadata: row.metadata,
|
|
185
|
-
createdAt: new Date(row.created_at),
|
|
186
|
-
updatedAt: new Date(row.updated_at),
|
|
187
|
-
});
|
|
188
203
|
}
|
|
189
204
|
async deleteThread(threadId) {
|
|
190
205
|
if (!this.pool)
|
|
@@ -205,14 +220,14 @@ export class PostgresAdapter extends BaseMemoryAdapter {
|
|
|
205
220
|
try {
|
|
206
221
|
await this.pool.query(`INSERT INTO ${this.schema}.entries
|
|
207
222
|
(id, thread_id, message, tool_calls, tool_results, token_count, metadata, created_at)
|
|
208
|
-
VALUES ($1, $2, $3, $4, $5, $6, $7, $8)`, [
|
|
223
|
+
VALUES ($1, $2, $3::jsonb, $4::jsonb, $5::jsonb, $6, $7::jsonb, $8)`, [
|
|
209
224
|
id,
|
|
210
225
|
entry.threadId,
|
|
211
|
-
entry.message,
|
|
212
|
-
entry.toolCalls
|
|
213
|
-
entry.toolResults
|
|
226
|
+
toJsonb(entry.message),
|
|
227
|
+
toJsonb(entry.toolCalls),
|
|
228
|
+
toJsonb(entry.toolResults),
|
|
214
229
|
entry.tokenCount,
|
|
215
|
-
entry.metadata ?? {},
|
|
230
|
+
toJsonb(entry.metadata ?? {}),
|
|
216
231
|
now,
|
|
217
232
|
]);
|
|
218
233
|
return this.success({ ...entry, id, createdAt: now });
|
|
@@ -243,7 +258,13 @@ export class PostgresAdapter extends BaseMemoryAdapter {
|
|
|
243
258
|
else {
|
|
244
259
|
query += ' ORDER BY created_at ASC';
|
|
245
260
|
}
|
|
246
|
-
|
|
261
|
+
let result;
|
|
262
|
+
try {
|
|
263
|
+
result = await this.pool.query(query, params);
|
|
264
|
+
}
|
|
265
|
+
catch (err) {
|
|
266
|
+
return this.failure(err.message);
|
|
267
|
+
}
|
|
247
268
|
return this.success(result.rows.map((row) => ({
|
|
248
269
|
id: row.id,
|
|
249
270
|
threadId: row.thread_id,
|
|
@@ -262,9 +283,15 @@ export class PostgresAdapter extends BaseMemoryAdapter {
|
|
|
262
283
|
async getEntry(entryId) {
|
|
263
284
|
if (!this.pool)
|
|
264
285
|
return this.failure('Not connected');
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
286
|
+
let result;
|
|
287
|
+
try {
|
|
288
|
+
result = await this.pool.query(`SELECT * FROM ${this.schema}.entries WHERE id = $1`, [
|
|
289
|
+
entryId,
|
|
290
|
+
]);
|
|
291
|
+
}
|
|
292
|
+
catch (err) {
|
|
293
|
+
return this.failure(err.message);
|
|
294
|
+
}
|
|
268
295
|
if (result.rows.length === 0)
|
|
269
296
|
return this.success(null);
|
|
270
297
|
const row = result.rows[0];
|
|
@@ -309,14 +336,14 @@ export class PostgresAdapter extends BaseMemoryAdapter {
|
|
|
309
336
|
try {
|
|
310
337
|
await this.pool.query(`INSERT INTO ${this.schema}.facts
|
|
311
338
|
(id, agent_id, content, category, confidence, source, metadata, expires_at, created_at, updated_at)
|
|
312
|
-
VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $9)`, [
|
|
339
|
+
VALUES ($1, $2, $3, $4, $5, $6, $7::jsonb, $8, $9, $9)`, [
|
|
313
340
|
id,
|
|
314
341
|
fact.agentId,
|
|
315
342
|
fact.content,
|
|
316
343
|
fact.category,
|
|
317
344
|
fact.confidence,
|
|
318
345
|
fact.source,
|
|
319
|
-
fact.metadata ?? {},
|
|
346
|
+
toJsonb(fact.metadata ?? {}),
|
|
320
347
|
fact.expiresAt ?? null,
|
|
321
348
|
now,
|
|
322
349
|
]);
|
|
@@ -337,7 +364,13 @@ export class PostgresAdapter extends BaseMemoryAdapter {
|
|
|
337
364
|
}
|
|
338
365
|
query += ' AND (expires_at IS NULL OR expires_at > NOW())';
|
|
339
366
|
query += ' ORDER BY confidence DESC, updated_at DESC';
|
|
340
|
-
|
|
367
|
+
let result;
|
|
368
|
+
try {
|
|
369
|
+
result = await this.pool.query(query, params);
|
|
370
|
+
}
|
|
371
|
+
catch (err) {
|
|
372
|
+
return this.failure(err.message);
|
|
373
|
+
}
|
|
341
374
|
return this.success(result.rows.map((row) => ({
|
|
342
375
|
id: row.id,
|
|
343
376
|
agentId: row.agent_id,
|
|
@@ -370,15 +403,21 @@ export class PostgresAdapter extends BaseMemoryAdapter {
|
|
|
370
403
|
params.push(updates.confidence);
|
|
371
404
|
}
|
|
372
405
|
if (updates.metadata !== undefined) {
|
|
373
|
-
setClauses.push(`metadata = $${paramIndex++}`);
|
|
374
|
-
params.push(updates.metadata);
|
|
406
|
+
setClauses.push(`metadata = $${paramIndex++}::jsonb`);
|
|
407
|
+
params.push(toJsonb(updates.metadata));
|
|
375
408
|
}
|
|
376
409
|
if (updates.expiresAt !== undefined) {
|
|
377
410
|
setClauses.push(`expires_at = $${paramIndex++}`);
|
|
378
411
|
params.push(updates.expiresAt);
|
|
379
412
|
}
|
|
380
413
|
params.push(factId);
|
|
381
|
-
|
|
414
|
+
let result;
|
|
415
|
+
try {
|
|
416
|
+
result = await this.pool.query(`UPDATE ${this.schema}.facts SET ${setClauses.join(', ')} WHERE id = $${paramIndex} RETURNING *`, params);
|
|
417
|
+
}
|
|
418
|
+
catch (err) {
|
|
419
|
+
return this.failure(err.message);
|
|
420
|
+
}
|
|
382
421
|
if (result.rows.length === 0) {
|
|
383
422
|
return this.failure(`Fact not found: ${factId}`);
|
|
384
423
|
}
|
|
@@ -441,13 +480,13 @@ export class PostgresAdapter extends BaseMemoryAdapter {
|
|
|
441
480
|
try {
|
|
442
481
|
await this.pool.query(`INSERT INTO ${this.schema}.embeddings
|
|
443
482
|
(id, source_id, source_type, vector, content, metadata, created_at)
|
|
444
|
-
VALUES ($1, $2, $3, $4, $5, $6, $7)`, [
|
|
483
|
+
VALUES ($1, $2, $3, $4, $5, $6::jsonb, $7)`, [
|
|
445
484
|
id,
|
|
446
485
|
embedding.sourceId,
|
|
447
486
|
embedding.sourceType,
|
|
448
487
|
vectorStr,
|
|
449
488
|
embedding.content,
|
|
450
|
-
embedding.metadata ?? {},
|
|
489
|
+
toJsonb(embedding.metadata ?? {}),
|
|
451
490
|
now,
|
|
452
491
|
]);
|
|
453
492
|
return this.success({ ...embedding, id, createdAt: now });
|
|
@@ -465,21 +504,29 @@ export class PostgresAdapter extends BaseMemoryAdapter {
|
|
|
465
504
|
const vectorStr = `[${options.vector.join(',')}]`;
|
|
466
505
|
const limit = options.limit ?? 10;
|
|
467
506
|
const threshold = options.threshold ?? 0.7;
|
|
468
|
-
|
|
469
|
-
SELECT *, 1 - (vector <=> $1) as score
|
|
470
|
-
FROM ${this.schema}.embeddings
|
|
471
|
-
WHERE 1 - (vector <=> $1) >= $2
|
|
472
|
-
`;
|
|
507
|
+
const settings = hnswSearchSettings(limit, this.vectorTuning);
|
|
473
508
|
const params = [vectorStr, threshold];
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
query
|
|
479
|
-
|
|
509
|
+
const filter = this.embeddingFilterClause(options.filter, params, 3);
|
|
510
|
+
params.push(settings.candidates, limit);
|
|
511
|
+
const candidatesParam = filter.nextIndex;
|
|
512
|
+
const limitParam = filter.nextIndex + 1;
|
|
513
|
+
const query = `
|
|
514
|
+
SELECT * FROM (
|
|
515
|
+
SELECT *, 1 - (vector <=> $1) as score
|
|
516
|
+
FROM ${this.schema}.embeddings
|
|
517
|
+
WHERE 1 - (vector <=> $1) >= $2${filter.sql}
|
|
518
|
+
ORDER BY vector <=> $1
|
|
519
|
+
LIMIT $${candidatesParam}
|
|
520
|
+
) nearest
|
|
521
|
+
ORDER BY score DESC, id
|
|
522
|
+
LIMIT $${limitParam}
|
|
523
|
+
`;
|
|
480
524
|
let result;
|
|
481
525
|
try {
|
|
482
|
-
result = await this.
|
|
526
|
+
result = await this.inTransaction(async (client) => {
|
|
527
|
+
await client.query(settings.sql, settings.params);
|
|
528
|
+
return client.query(query, params);
|
|
529
|
+
});
|
|
483
530
|
}
|
|
484
531
|
catch (err) {
|
|
485
532
|
return this.failure(err.message);
|
|
@@ -582,6 +629,40 @@ export class PostgresAdapter extends BaseMemoryAdapter {
|
|
|
582
629
|
}
|
|
583
630
|
return { sql, nextIndex: index };
|
|
584
631
|
}
|
|
632
|
+
/** Runs `work` on one pooled connection inside a transaction, so `SET LOCAL` style settings apply to it only. */
|
|
633
|
+
async inTransaction(work) {
|
|
634
|
+
if (!this.pool)
|
|
635
|
+
throw new Error('Not connected');
|
|
636
|
+
const client = await this.pool.connect();
|
|
637
|
+
let broken = false;
|
|
638
|
+
try {
|
|
639
|
+
await client.query('BEGIN');
|
|
640
|
+
const result = await work(client);
|
|
641
|
+
await client.query('COMMIT');
|
|
642
|
+
return result;
|
|
643
|
+
}
|
|
644
|
+
catch (err) {
|
|
645
|
+
try {
|
|
646
|
+
await client.query('ROLLBACK');
|
|
647
|
+
}
|
|
648
|
+
catch {
|
|
649
|
+
broken = true;
|
|
650
|
+
}
|
|
651
|
+
throw err;
|
|
652
|
+
}
|
|
653
|
+
finally {
|
|
654
|
+
client.release(broken);
|
|
655
|
+
}
|
|
656
|
+
}
|
|
657
|
+
rowToThread(row) {
|
|
658
|
+
return {
|
|
659
|
+
id: row.id,
|
|
660
|
+
agentId: row.agent_id,
|
|
661
|
+
metadata: row.metadata,
|
|
662
|
+
createdAt: new Date(row.created_at),
|
|
663
|
+
updatedAt: new Date(row.updated_at),
|
|
664
|
+
};
|
|
665
|
+
}
|
|
585
666
|
setVectorDimensions(dimensions) {
|
|
586
667
|
if (this.pool) {
|
|
587
668
|
throw new Error('Cannot change vector dimensions after connecting');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../src/adapters/postgres.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../src/adapters/postgres.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ export declare class QdrantAdapter implements EmbeddingAdapter {
|
|
|
7
7
|
private dimensions;
|
|
8
8
|
constructor(config: QdrantAdapterConfig);
|
|
9
9
|
connect(): Promise<MemoryResult<void>>;
|
|
10
|
+
/** The REST client holds no connection, so disconnecting only drops it. */
|
|
10
11
|
disconnect(): Promise<MemoryResult<void>>;
|
|
11
12
|
addEmbedding(embedding: Omit<Embedding, 'id' | 'createdAt'>): Promise<MemoryResult<Embedding>>;
|
|
12
13
|
search(options: SemanticSearchOptions): Promise<MemoryResult<(Embedding & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"qdrant.d.ts","sourceRoot":"","sources":["../../src/adapters/qdrant.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,qBAAqB,EACrB,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"qdrant.d.ts","sourceRoot":"","sources":["../../src/adapters/qdrant.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EACT,qBAAqB,EACrB,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,qBAAqB,CAAC;AAgC7B,qBAAa,aAAc,YAAW,gBAAgB;IACpD,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;gBAEf,MAAM,EAAE,mBAAmB;IAOjC,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IA+B5C,2EAA2E;IACrE,UAAU,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAKzC,YAAY,CAChB,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,GAAG,WAAW,CAAC,GAC7C,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;IAgC7B,MAAM,CACV,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,YAAY,CAAC,CAAC,SAAS,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC,CAAC;IA0DrD,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAcjE,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAcnE,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,OAAO;CAGhB"}
|
package/dist/adapters/qdrant.js
CHANGED
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
import { nanoid } from 'nanoid';
|
|
2
|
+
import { createHash } from 'node:crypto';
|
|
3
|
+
const POINT_ID_NAMESPACE = Buffer.from('a165b27944774045b57221d3df84e73b', 'hex');
|
|
4
|
+
/**
|
|
5
|
+
* Qdrant only accepts unsigned integers and UUIDs as point ids, so each embedding id is mapped
|
|
6
|
+
* to a name-based (version 5) UUID. The mapping is deterministic, which lets deletes address a
|
|
7
|
+
* point by embedding id without a lookup; the embedding id itself travels in the payload.
|
|
8
|
+
*/
|
|
9
|
+
function qdrantPointId(embeddingId) {
|
|
10
|
+
const hash = createHash('sha1').update(POINT_ID_NAMESPACE).update(embeddingId).digest();
|
|
11
|
+
hash[6] = (hash[6] & 0x0f) | 0x50;
|
|
12
|
+
hash[8] = (hash[8] & 0x3f) | 0x80;
|
|
13
|
+
const hex = hash.subarray(0, 16).toString('hex');
|
|
14
|
+
return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
|
|
15
|
+
}
|
|
2
16
|
export class QdrantAdapter {
|
|
3
17
|
client = null;
|
|
4
18
|
url;
|
|
@@ -14,45 +28,32 @@ export class QdrantAdapter {
|
|
|
14
28
|
async connect() {
|
|
15
29
|
if (this.client)
|
|
16
30
|
return this.success(undefined);
|
|
17
|
-
let
|
|
31
|
+
let qdrant;
|
|
18
32
|
try {
|
|
19
|
-
|
|
20
|
-
QdrantClient = qdrant.QdrantClient;
|
|
33
|
+
qdrant = await import('@qdrant/js-client-rest');
|
|
21
34
|
}
|
|
22
35
|
catch {
|
|
23
36
|
return this.failure('@qdrant/js-client-rest not installed. Run: pnpm add @qdrant/js-client-rest');
|
|
24
37
|
}
|
|
25
38
|
try {
|
|
26
|
-
|
|
27
|
-
const collections = await
|
|
39
|
+
const client = new qdrant.QdrantClient({ url: this.url, apiKey: this.apiKey });
|
|
40
|
+
const collections = await client.getCollections();
|
|
28
41
|
const exists = collections.collections.some((c) => c.name === this.collection);
|
|
29
42
|
if (!exists) {
|
|
30
|
-
await
|
|
43
|
+
await client.createCollection(this.collection, {
|
|
31
44
|
vectors: { size: this.dimensions, distance: 'Cosine' },
|
|
32
45
|
});
|
|
33
46
|
}
|
|
47
|
+
this.client = client;
|
|
34
48
|
return this.success(undefined);
|
|
35
49
|
}
|
|
36
50
|
catch (err) {
|
|
37
51
|
return this.failure(err.message);
|
|
38
52
|
}
|
|
39
53
|
}
|
|
54
|
+
/** The REST client holds no connection, so disconnecting only drops it. */
|
|
40
55
|
async disconnect() {
|
|
41
|
-
|
|
42
|
-
try {
|
|
43
|
-
const client = this.client;
|
|
44
|
-
if (typeof client.close === 'function') {
|
|
45
|
-
await client.close();
|
|
46
|
-
}
|
|
47
|
-
return this.success(undefined);
|
|
48
|
-
}
|
|
49
|
-
catch (err) {
|
|
50
|
-
return this.failure(err.message);
|
|
51
|
-
}
|
|
52
|
-
finally {
|
|
53
|
-
this.client = null;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
+
this.client = null;
|
|
56
57
|
return this.success(undefined);
|
|
57
58
|
}
|
|
58
59
|
async addEmbedding(embedding) {
|
|
@@ -67,7 +68,7 @@ export class QdrantAdapter {
|
|
|
67
68
|
await this.client.upsert(this.collection, {
|
|
68
69
|
points: [
|
|
69
70
|
{
|
|
70
|
-
id: full.id,
|
|
71
|
+
id: qdrantPointId(full.id),
|
|
71
72
|
vector: full.vector,
|
|
72
73
|
payload: {
|
|
73
74
|
embeddingId: full.id,
|
|
@@ -93,20 +94,19 @@ export class QdrantAdapter {
|
|
|
93
94
|
return this.failure('vector is required for Qdrant search');
|
|
94
95
|
}
|
|
95
96
|
try {
|
|
96
|
-
const
|
|
97
|
+
const must = [];
|
|
97
98
|
if (options.filter) {
|
|
98
|
-
filter.must = [];
|
|
99
99
|
if (options.filter.sourceType) {
|
|
100
|
-
|
|
100
|
+
must.push({ key: 'sourceType', match: { value: options.filter.sourceType } });
|
|
101
101
|
}
|
|
102
102
|
if (options.filter.threadId) {
|
|
103
|
-
|
|
103
|
+
must.push({ key: 'metadata.threadId', match: { value: options.filter.threadId } });
|
|
104
104
|
}
|
|
105
105
|
if (options.filter.agentId) {
|
|
106
|
-
|
|
106
|
+
must.push({ key: 'metadata.agentId', match: { value: options.filter.agentId } });
|
|
107
107
|
}
|
|
108
108
|
if (options.filter.userId) {
|
|
109
|
-
|
|
109
|
+
must.push({
|
|
110
110
|
should: [
|
|
111
111
|
{ key: 'metadata.userId', match: { value: options.filter.userId } },
|
|
112
112
|
{ is_empty: { key: 'metadata.userId' } },
|
|
@@ -114,22 +114,27 @@ export class QdrantAdapter {
|
|
|
114
114
|
});
|
|
115
115
|
}
|
|
116
116
|
}
|
|
117
|
-
const
|
|
118
|
-
|
|
117
|
+
const filter = must.length > 0 ? { must } : undefined;
|
|
118
|
+
const { points } = await this.client.query(this.collection, {
|
|
119
|
+
query: options.vector,
|
|
119
120
|
limit: options.limit ?? 10,
|
|
120
121
|
score_threshold: options.threshold,
|
|
121
|
-
|
|
122
|
+
with_payload: true,
|
|
123
|
+
filter,
|
|
124
|
+
});
|
|
125
|
+
const embeddings = points.map((point) => {
|
|
126
|
+
const payload = point.payload ?? {};
|
|
127
|
+
return {
|
|
128
|
+
id: typeof payload.embeddingId === 'string' ? payload.embeddingId : String(point.id),
|
|
129
|
+
sourceId: payload.sourceId,
|
|
130
|
+
sourceType: payload.sourceType,
|
|
131
|
+
vector: [],
|
|
132
|
+
content: payload.content,
|
|
133
|
+
createdAt: new Date(payload.createdAt),
|
|
134
|
+
metadata: payload.metadata ?? {},
|
|
135
|
+
score: point.score,
|
|
136
|
+
};
|
|
122
137
|
});
|
|
123
|
-
const embeddings = results.map((r) => ({
|
|
124
|
-
id: r.payload.embeddingId ?? r.id,
|
|
125
|
-
sourceId: r.payload.sourceId,
|
|
126
|
-
sourceType: r.payload.sourceType,
|
|
127
|
-
vector: [],
|
|
128
|
-
content: r.payload.content,
|
|
129
|
-
createdAt: new Date(r.payload.createdAt),
|
|
130
|
-
metadata: r.payload.metadata ?? {},
|
|
131
|
-
score: r.score,
|
|
132
|
-
}));
|
|
133
138
|
return this.success(embeddings);
|
|
134
139
|
}
|
|
135
140
|
catch (err) {
|
|
@@ -141,7 +146,8 @@ export class QdrantAdapter {
|
|
|
141
146
|
return this.failure('Not connected');
|
|
142
147
|
try {
|
|
143
148
|
await this.client.delete(this.collection, {
|
|
144
|
-
|
|
149
|
+
wait: true,
|
|
150
|
+
points: [qdrantPointId(embeddingId)],
|
|
145
151
|
});
|
|
146
152
|
return this.success(undefined);
|
|
147
153
|
}
|
|
@@ -154,6 +160,7 @@ export class QdrantAdapter {
|
|
|
154
160
|
return this.failure('Not connected');
|
|
155
161
|
try {
|
|
156
162
|
await this.client.delete(this.collection, {
|
|
163
|
+
wait: true,
|
|
157
164
|
filter: { must: [{ key: 'sourceId', match: { value: sourceId } }] },
|
|
158
165
|
});
|
|
159
166
|
return this.success(undefined);
|