@traqr/memory 0.1.3 → 0.1.4
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/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/client.d.ts +6 -0
- package/dist/lib/client.js +23 -1
- package/dist/lib/client.js.map +1 -1
- package/dist/lib/entity-pipeline.js +4 -15
- package/dist/lib/entity-pipeline.js.map +1 -1
- package/dist/lib/memory.js +4 -30
- package/dist/lib/memory.js.map +1 -1
- package/dist/lib/retrieval.d.ts +2 -3
- package/dist/lib/retrieval.js +0 -5
- package/dist/lib/retrieval.js.map +1 -1
- package/dist/routes/entity-cron.js +2 -7
- package/dist/routes/entity-cron.js.map +1 -1
- package/dist/vectordb/converters.d.ts +58 -0
- package/dist/vectordb/converters.js +57 -0
- package/dist/vectordb/converters.js.map +1 -0
- package/dist/vectordb/index.d.ts +6 -2
- package/dist/vectordb/index.js +30 -13
- package/dist/vectordb/index.js.map +1 -1
- package/dist/vectordb/postgres.d.ts +76 -0
- package/dist/vectordb/postgres.js +574 -0
- package/dist/vectordb/postgres.js.map +1 -0
- package/dist/vectordb/supabase.d.ts +10 -1
- package/dist/vectordb/supabase.js +88 -52
- package/dist/vectordb/supabase.js.map +1 -1
- package/dist/vectordb/types.d.ts +58 -2
- package/dist/vectordb/types.js.map +1 -1
- package/package.json +1 -1
package/dist/vectordb/index.d.ts
CHANGED
|
@@ -2,12 +2,16 @@
|
|
|
2
2
|
* VectorDB Provider Factory
|
|
3
3
|
*
|
|
4
4
|
* Abstraction layer for vector database operations.
|
|
5
|
-
*
|
|
5
|
+
* Supports Supabase (PostgREST) and raw Postgres (pg wire protocol).
|
|
6
|
+
* Auto-detects from DATABASE_URL vs SUPABASE_URL.
|
|
6
7
|
*/
|
|
7
8
|
import type { VectorDBProvider, ProviderConfig } from './types.js';
|
|
8
9
|
export * from './types.js';
|
|
9
10
|
/**
|
|
10
|
-
* Get the configured vector database provider
|
|
11
|
+
* Get the configured vector database provider.
|
|
12
|
+
* Auto-detects from config or env vars:
|
|
13
|
+
* DATABASE_URL → PostgresVectorProvider
|
|
14
|
+
* SUPABASE_URL → SupabaseVectorProvider
|
|
11
15
|
*/
|
|
12
16
|
export declare function getVectorDB(config?: ProviderConfig): VectorDBProvider;
|
|
13
17
|
/**
|
package/dist/vectordb/index.js
CHANGED
|
@@ -2,30 +2,46 @@
|
|
|
2
2
|
* VectorDB Provider Factory
|
|
3
3
|
*
|
|
4
4
|
* Abstraction layer for vector database operations.
|
|
5
|
-
*
|
|
5
|
+
* Supports Supabase (PostgREST) and raw Postgres (pg wire protocol).
|
|
6
|
+
* Auto-detects from DATABASE_URL vs SUPABASE_URL.
|
|
6
7
|
*/
|
|
7
8
|
import { SupabaseVectorProvider } from './supabase.js';
|
|
9
|
+
import { PostgresVectorProvider, resetPostgresPool } from './postgres.js';
|
|
10
|
+
import { getMemoryConfig } from '../lib/client.js';
|
|
8
11
|
// Re-export types for convenience
|
|
9
12
|
export * from './types.js';
|
|
10
13
|
// Singleton instance
|
|
11
14
|
let providerInstance = null;
|
|
12
15
|
/**
|
|
13
|
-
* Get the configured vector database provider
|
|
16
|
+
* Get the configured vector database provider.
|
|
17
|
+
* Auto-detects from config or env vars:
|
|
18
|
+
* DATABASE_URL → PostgresVectorProvider
|
|
19
|
+
* SUPABASE_URL → SupabaseVectorProvider
|
|
14
20
|
*/
|
|
15
21
|
export function getVectorDB(config) {
|
|
16
22
|
if (providerInstance)
|
|
17
23
|
return providerInstance;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
24
|
+
// Explicit type takes priority
|
|
25
|
+
if (config?.type) {
|
|
26
|
+
switch (config.type) {
|
|
27
|
+
case 'postgres':
|
|
28
|
+
providerInstance = new PostgresVectorProvider();
|
|
29
|
+
break;
|
|
30
|
+
case 'supabase':
|
|
31
|
+
providerInstance = new SupabaseVectorProvider();
|
|
32
|
+
break;
|
|
33
|
+
default:
|
|
34
|
+
throw new Error(`Unknown provider type: ${config.type}`);
|
|
35
|
+
}
|
|
36
|
+
return providerInstance;
|
|
37
|
+
}
|
|
38
|
+
// Auto-detect from stored config / env vars
|
|
39
|
+
const memConfig = getMemoryConfig();
|
|
40
|
+
if (memConfig.databaseUrl) {
|
|
41
|
+
providerInstance = new PostgresVectorProvider();
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
providerInstance = new SupabaseVectorProvider();
|
|
29
45
|
}
|
|
30
46
|
return providerInstance;
|
|
31
47
|
}
|
|
@@ -34,6 +50,7 @@ export function getVectorDB(config) {
|
|
|
34
50
|
*/
|
|
35
51
|
export function resetVectorDB() {
|
|
36
52
|
providerInstance = null;
|
|
53
|
+
resetPostgresPool();
|
|
37
54
|
}
|
|
38
55
|
export default getVectorDB;
|
|
39
56
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vectordb/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/vectordb/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAGlD,kCAAkC;AAClC,cAAc,YAAY,CAAA;AAE1B,qBAAqB;AACrB,IAAI,gBAAgB,GAA4B,IAAI,CAAA;AAEpD;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,MAAuB;IACjD,IAAI,gBAAgB;QAAE,OAAO,gBAAgB,CAAA;IAE7C,+BAA+B;IAC/B,IAAI,MAAM,EAAE,IAAI,EAAE,CAAC;QACjB,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,UAAU;gBACb,gBAAgB,GAAG,IAAI,sBAAsB,EAAE,CAAA;gBAC/C,MAAK;YACP,KAAK,UAAU;gBACb,gBAAgB,GAAG,IAAI,sBAAsB,EAAE,CAAA;gBAC/C,MAAK;YACP;gBACE,MAAM,IAAI,KAAK,CAAC,0BAA0B,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;QAC5D,CAAC;QACD,OAAO,gBAAgB,CAAA;IACzB,CAAC;IAED,4CAA4C;IAC5C,MAAM,SAAS,GAAG,eAAe,EAAE,CAAA;IACnC,IAAI,SAAS,CAAC,WAAW,EAAE,CAAC;QAC1B,gBAAgB,GAAG,IAAI,sBAAsB,EAAE,CAAA;IACjD,CAAC;SAAM,CAAC;QACN,gBAAgB,GAAG,IAAI,sBAAsB,EAAE,CAAA;IACjD,CAAC;IAED,OAAO,gBAAgB,CAAA;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,gBAAgB,GAAG,IAAI,CAAA;IACvB,iBAAiB,EAAE,CAAA;AACrB,CAAC;AAED,eAAe,WAAW,CAAA"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Postgres VectorDB Provider
|
|
3
|
+
*
|
|
4
|
+
* Implementation of VectorDBProvider using raw pg wire protocol.
|
|
5
|
+
* Calls the same SQL functions as SupabaseVectorProvider, but via
|
|
6
|
+
* parameterized queries instead of PostgREST RPC.
|
|
7
|
+
*
|
|
8
|
+
* Requires: npm install pg (dynamic import — not a hard dependency)
|
|
9
|
+
*/
|
|
10
|
+
import type { VectorDBProvider, Memory, MemoryInput, MemorySearchResult, MemoryUpdate, MemoryExport, MemoryDomain, SearchOptions, BrowseResult, BM25SearchResult, TemporalSearchResult, GraphSearchResult } from './types.js';
|
|
11
|
+
/** Reset pool (for testing or reconfiguration) */
|
|
12
|
+
export declare function resetPostgresPool(): void;
|
|
13
|
+
export declare class PostgresVectorProvider implements VectorDBProvider {
|
|
14
|
+
store(input: MemoryInput, domainId?: string): Promise<Memory>;
|
|
15
|
+
search(queryText: string, options?: SearchOptions & {
|
|
16
|
+
precomputedEmbedding?: string;
|
|
17
|
+
}): Promise<MemorySearchResult[]>;
|
|
18
|
+
getById(id: string): Promise<Memory | null>;
|
|
19
|
+
update(id: string, updates: MemoryUpdate): Promise<Memory>;
|
|
20
|
+
delete(id: string): Promise<void>;
|
|
21
|
+
validate(id: string): Promise<Memory>;
|
|
22
|
+
archive(id: string, reason?: string): Promise<Memory>;
|
|
23
|
+
unarchive(id: string): Promise<Memory>;
|
|
24
|
+
exportAll(domainId?: string): Promise<MemoryExport[]>;
|
|
25
|
+
importBulk(memories: MemoryExport[], domainId: string): Promise<number>;
|
|
26
|
+
createDomain(name: string, description?: string, userId?: string): Promise<MemoryDomain>;
|
|
27
|
+
getDomain(name: string): Promise<MemoryDomain | null>;
|
|
28
|
+
getDefaultDomain(): Promise<MemoryDomain>;
|
|
29
|
+
bm25Search(queryText: string, options?: {
|
|
30
|
+
projectId?: string;
|
|
31
|
+
domain?: string;
|
|
32
|
+
category?: string;
|
|
33
|
+
limit?: number;
|
|
34
|
+
minScore?: number;
|
|
35
|
+
}): Promise<BM25SearchResult[]>;
|
|
36
|
+
temporalSearch(queryText: string, dateStart: Date, dateEnd: Date, options?: {
|
|
37
|
+
projectId?: string;
|
|
38
|
+
similarityThreshold?: number;
|
|
39
|
+
limit?: number;
|
|
40
|
+
precomputedEmbedding?: string;
|
|
41
|
+
}): Promise<TemporalSearchResult[]>;
|
|
42
|
+
graphSearch(seedIds: string[], options?: {
|
|
43
|
+
edgeTypes?: string[];
|
|
44
|
+
maxDepth?: number;
|
|
45
|
+
limit?: number;
|
|
46
|
+
}): Promise<GraphSearchResult[]>;
|
|
47
|
+
invalidate(id: string): Promise<void>;
|
|
48
|
+
supersede(id: string): Promise<void>;
|
|
49
|
+
findEntityByName(name: string, entityType: string): Promise<any | null>;
|
|
50
|
+
findEntityByNameFuzzy(name: string, entityType: string): Promise<any | null>;
|
|
51
|
+
findEntityByEmbedding(embeddingStr: string, entityType: string, threshold?: number): Promise<any | null>;
|
|
52
|
+
createEntity(entity: {
|
|
53
|
+
name: string;
|
|
54
|
+
entityType: string;
|
|
55
|
+
embedding?: string;
|
|
56
|
+
userId?: string;
|
|
57
|
+
}): Promise<any>;
|
|
58
|
+
incrementEntityMentions(entityId: string): Promise<void>;
|
|
59
|
+
linkMemoryToEntity(memoryId: string, entityId: string, role?: string): Promise<void>;
|
|
60
|
+
findEntitiesByNames(names: string[]): Promise<{
|
|
61
|
+
id: string;
|
|
62
|
+
name: string;
|
|
63
|
+
}[]>;
|
|
64
|
+
findOrphanedEntities(): Promise<string[]>;
|
|
65
|
+
archiveEntities(ids: string[]): Promise<number>;
|
|
66
|
+
browse(options?: {
|
|
67
|
+
domain?: string;
|
|
68
|
+
category?: string;
|
|
69
|
+
limit?: number;
|
|
70
|
+
}): Promise<BrowseResult[]>;
|
|
71
|
+
forget(id: string): Promise<void>;
|
|
72
|
+
createRelationship(sourceId: string, targetId: string, edgeType: string, metadata?: Record<string, unknown>): Promise<string | null>;
|
|
73
|
+
countEntityMentions(name: string, userId: string): Promise<number>;
|
|
74
|
+
schemaVersion(): Promise<number | null>;
|
|
75
|
+
ping(): Promise<boolean>;
|
|
76
|
+
}
|