@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.
Files changed (65) hide show
  1. package/README.md +212 -89
  2. package/dist/adapters/index.d.ts +10 -2
  3. package/dist/adapters/index.d.ts.map +1 -1
  4. package/dist/adapters/index.js.map +1 -1
  5. package/dist/adapters/mongodb.d.ts +6 -0
  6. package/dist/adapters/mongodb.d.ts.map +1 -1
  7. package/dist/adapters/mongodb.js +60 -37
  8. package/dist/adapters/mongodb.js.map +1 -1
  9. package/dist/adapters/pgvector.d.ts +46 -0
  10. package/dist/adapters/pgvector.d.ts.map +1 -0
  11. package/dist/adapters/pgvector.js +55 -0
  12. package/dist/adapters/pgvector.js.map +1 -0
  13. package/dist/adapters/postgres.d.ts +4 -0
  14. package/dist/adapters/postgres.d.ts.map +1 -1
  15. package/dist/adapters/postgres.js +149 -68
  16. package/dist/adapters/postgres.js.map +1 -1
  17. package/dist/adapters/qdrant.d.ts +1 -0
  18. package/dist/adapters/qdrant.d.ts.map +1 -1
  19. package/dist/adapters/qdrant.js +49 -42
  20. package/dist/adapters/qdrant.js.map +1 -1
  21. package/dist/adapters/sqlite-driver.d.ts +11 -0
  22. package/dist/adapters/sqlite-driver.d.ts.map +1 -0
  23. package/dist/adapters/sqlite-driver.js +2 -0
  24. package/dist/adapters/sqlite-driver.js.map +1 -0
  25. package/dist/adapters/sqlite.d.ts +1 -0
  26. package/dist/adapters/sqlite.d.ts.map +1 -1
  27. package/dist/adapters/sqlite.js +18 -18
  28. package/dist/adapters/sqlite.js.map +1 -1
  29. package/dist/compaction.d.ts +14 -1
  30. package/dist/compaction.d.ts.map +1 -1
  31. package/dist/compaction.js +4 -1
  32. package/dist/compaction.js.map +1 -1
  33. package/dist/context-builder.d.ts +5 -0
  34. package/dist/context-builder.d.ts.map +1 -1
  35. package/dist/context-builder.js +10 -11
  36. package/dist/context-builder.js.map +1 -1
  37. package/dist/core-facts.d.ts +5 -0
  38. package/dist/core-facts.d.ts.map +1 -1
  39. package/dist/core-facts.js +1 -2
  40. package/dist/core-facts.js.map +1 -1
  41. package/dist/embedding/openai.d.ts +5 -0
  42. package/dist/embedding/openai.d.ts.map +1 -1
  43. package/dist/embedding/openai.js +24 -4
  44. package/dist/embedding/openai.js.map +1 -1
  45. package/dist/index.d.ts +2 -2
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +1 -1
  48. package/dist/index.js.map +1 -1
  49. package/dist/knowledge-graph/entity-extractor.d.ts +24 -11
  50. package/dist/knowledge-graph/entity-extractor.d.ts.map +1 -1
  51. package/dist/knowledge-graph/entity-extractor.js +15 -3
  52. package/dist/knowledge-graph/entity-extractor.js.map +1 -1
  53. package/dist/knowledge-graph/graph-adapter.d.ts +1 -0
  54. package/dist/knowledge-graph/graph-adapter.d.ts.map +1 -1
  55. package/dist/knowledge-graph/graph-adapter.js +477 -453
  56. package/dist/knowledge-graph/graph-adapter.js.map +1 -1
  57. package/dist/knowledge-graph/sqlite-graph-adapter.d.ts +1 -0
  58. package/dist/knowledge-graph/sqlite-graph-adapter.d.ts.map +1 -1
  59. package/dist/knowledge-graph/sqlite-graph-adapter.js +461 -439
  60. package/dist/knowledge-graph/sqlite-graph-adapter.js.map +1 -1
  61. package/dist/schema.d.ts +4 -0
  62. package/dist/schema.d.ts.map +1 -1
  63. package/dist/schema.js +2 -0
  64. package/dist/schema.js.map +1 -1
  65. 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.query(`
108
- CREATE INDEX IF NOT EXISTS idx_embeddings_vector
109
- ON ${this.schema}.embeddings
110
- USING ivfflat (vector vector_cosine_ops) WITH (lists = 100)
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 ivfflat index:', err.message);
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`, [id, agentId, metadata, now]);
147
- return this.success({ id, agentId, metadata, createdAt: now, updatedAt: now });
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
- const result = await this.pool.query(`SELECT * FROM ${this.schema}.threads WHERE id = $1`, [
157
- threadId,
158
- ]);
159
- if (result.rows.length === 0)
160
- return this.success(null);
161
- const row = result.rows[0];
162
- return this.success({
163
- id: row.id,
164
- agentId: row.agent_id,
165
- metadata: row.metadata,
166
- createdAt: new Date(row.created_at),
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
- const result = await this.pool.query(`UPDATE ${this.schema}.threads
174
- SET metadata = metadata || $2, updated_at = NOW()
175
- WHERE id = $1
176
- RETURNING *`, [threadId, metadata]);
177
- if (result.rows.length === 0) {
178
- return this.failure(`Thread not found: ${threadId}`);
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 ?? null,
213
- entry.toolResults ?? null,
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
- const result = await this.pool.query(query, params);
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
- const result = await this.pool.query(`SELECT * FROM ${this.schema}.entries WHERE id = $1`, [
266
- entryId,
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
- const result = await this.pool.query(query, params);
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
- const result = await this.pool.query(`UPDATE ${this.schema}.facts SET ${setClauses.join(', ')} WHERE id = $${paramIndex} RETURNING *`, params);
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
- let query = `
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
- let paramIndex = 3;
475
- const filterClause = this.embeddingFilterClause(options.filter, params, paramIndex);
476
- query += filterClause.sql;
477
- paramIndex = filterClause.nextIndex;
478
- query += ` ORDER BY vector <=> $1 LIMIT $${paramIndex}`;
479
- params.push(limit);
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.pool.query(query, params);
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;AA2C7B,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;IAkCtC,UAAU,IAAI,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAiBzC,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;IAsDrD,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAajE,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAanE,OAAO,CAAC,OAAO;IAIf,OAAO,CAAC,OAAO;CAGhB"}
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"}
@@ -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 QdrantClient;
31
+ let qdrant;
18
32
  try {
19
- const qdrant = await import('@qdrant/js-client-rest');
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
- this.client = new QdrantClient({ url: this.url, apiKey: this.apiKey });
27
- const collections = await this.client.getCollections();
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 this.client.createCollection(this.collection, {
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
- if (this.client) {
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 filter = {};
97
+ const must = [];
97
98
  if (options.filter) {
98
- filter.must = [];
99
99
  if (options.filter.sourceType) {
100
- filter.must.push({ key: 'sourceType', match: { value: options.filter.sourceType } });
100
+ must.push({ key: 'sourceType', match: { value: options.filter.sourceType } });
101
101
  }
102
102
  if (options.filter.threadId) {
103
- filter.must.push({ key: 'metadata.threadId', match: { value: options.filter.threadId } });
103
+ must.push({ key: 'metadata.threadId', match: { value: options.filter.threadId } });
104
104
  }
105
105
  if (options.filter.agentId) {
106
- filter.must.push({ key: 'metadata.agentId', match: { value: options.filter.agentId } });
106
+ must.push({ key: 'metadata.agentId', match: { value: options.filter.agentId } });
107
107
  }
108
108
  if (options.filter.userId) {
109
- filter.must.push({
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 results = await this.client.search(this.collection, {
118
- vector: options.vector,
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
- filter: filter.must?.length ? filter : undefined,
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
- points: [embeddingId],
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);