@cogitator-ai/memory 0.6.14 → 0.6.21
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/LICENSE +21 -0
- package/dist/adapters/index.d.ts +2 -2
- package/dist/adapters/index.js +8 -8
- package/dist/adapters/memory-embedding.js +1 -1
- package/dist/adapters/memory.d.ts +1 -1
- package/dist/adapters/memory.js +1 -1
- package/dist/adapters/mongodb.d.ts +1 -1
- package/dist/adapters/mongodb.js +1 -1
- package/dist/adapters/postgres.d.ts +1 -1
- package/dist/adapters/postgres.js +1 -1
- package/dist/adapters/qdrant.d.ts.map +1 -1
- package/dist/adapters/qdrant.js.map +1 -1
- package/dist/adapters/redis.d.ts +1 -1
- package/dist/adapters/redis.js +1 -1
- package/dist/adapters/sqlite.d.ts +1 -1
- package/dist/adapters/sqlite.js +1 -1
- package/dist/compaction.d.ts +16 -0
- package/dist/compaction.d.ts.map +1 -0
- package/dist/compaction.js +89 -0
- package/dist/compaction.js.map +1 -0
- package/dist/context-builder.d.ts +2 -0
- package/dist/context-builder.d.ts.map +1 -1
- package/dist/context-builder.js +40 -3
- package/dist/context-builder.js.map +1 -1
- package/dist/core-facts.d.ts +43 -0
- package/dist/core-facts.d.ts.map +1 -0
- package/dist/core-facts.js +99 -0
- package/dist/core-facts.js.map +1 -0
- package/dist/embedding/factory.js +3 -3
- package/dist/embedding/index.d.ts +4 -4
- package/dist/embedding/index.js +4 -4
- package/dist/index.d.ts +19 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -13
- package/dist/index.js.map +1 -1
- package/dist/knowledge-graph/entity-extractor.js +1 -1
- package/dist/knowledge-graph/graph-adapter.d.ts.map +1 -1
- package/dist/knowledge-graph/graph-adapter.js +1 -1
- package/dist/knowledge-graph/graph-adapter.js.map +1 -1
- package/dist/knowledge-graph/index.d.ts +10 -8
- package/dist/knowledge-graph/index.d.ts.map +1 -1
- package/dist/knowledge-graph/index.js +6 -5
- package/dist/knowledge-graph/index.js.map +1 -1
- package/dist/knowledge-graph/inference-engine.d.ts.map +1 -1
- package/dist/knowledge-graph/inference-engine.js +23 -6
- package/dist/knowledge-graph/inference-engine.js.map +1 -1
- package/dist/knowledge-graph/schema.d.ts +15 -15
- package/dist/knowledge-graph/sqlite-graph-adapter.d.ts +48 -0
- package/dist/knowledge-graph/sqlite-graph-adapter.d.ts.map +1 -0
- package/dist/knowledge-graph/sqlite-graph-adapter.js +694 -0
- package/dist/knowledge-graph/sqlite-graph-adapter.js.map +1 -0
- package/dist/schema.d.ts +4 -4
- package/dist/search/bm25.d.ts +1 -1
- package/dist/search/bm25.js +1 -1
- package/dist/search/hybrid-search.js +2 -2
- package/dist/search/index.d.ts +4 -4
- package/dist/search/index.js +4 -4
- package/dist/session-manager.d.ts +19 -0
- package/dist/session-manager.d.ts.map +1 -0
- package/dist/session-manager.js +167 -0
- package/dist/session-manager.js.map +1 -0
- package/package.json +14 -14
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
export declare const EntityTypeSchema: z.ZodEnum<{
|
|
3
3
|
object: "object";
|
|
4
|
-
custom: "custom";
|
|
5
4
|
person: "person";
|
|
6
5
|
organization: "organization";
|
|
7
6
|
location: "location";
|
|
8
7
|
concept: "concept";
|
|
9
8
|
event: "event";
|
|
9
|
+
custom: "custom";
|
|
10
10
|
}>;
|
|
11
11
|
export declare const RelationTypeSchema: z.ZodEnum<{
|
|
12
12
|
custom: "custom";
|
|
@@ -23,20 +23,20 @@ export declare const RelationTypeSchema: z.ZodEnum<{
|
|
|
23
23
|
}>;
|
|
24
24
|
export declare const NodeSourceSchema: z.ZodEnum<{
|
|
25
25
|
user: "user";
|
|
26
|
-
inferred: "inferred";
|
|
27
26
|
extracted: "extracted";
|
|
27
|
+
inferred: "inferred";
|
|
28
28
|
}>;
|
|
29
29
|
export declare const GraphNodeSchema: z.ZodObject<{
|
|
30
30
|
id: z.ZodString;
|
|
31
31
|
agentId: z.ZodString;
|
|
32
32
|
type: z.ZodEnum<{
|
|
33
33
|
object: "object";
|
|
34
|
-
custom: "custom";
|
|
35
34
|
person: "person";
|
|
36
35
|
organization: "organization";
|
|
37
36
|
location: "location";
|
|
38
37
|
concept: "concept";
|
|
39
38
|
event: "event";
|
|
39
|
+
custom: "custom";
|
|
40
40
|
}>;
|
|
41
41
|
name: z.ZodString;
|
|
42
42
|
aliases: z.ZodDefault<z.ZodArray<z.ZodString>>;
|
|
@@ -46,8 +46,8 @@ export declare const GraphNodeSchema: z.ZodObject<{
|
|
|
46
46
|
confidence: z.ZodNumber;
|
|
47
47
|
source: z.ZodEnum<{
|
|
48
48
|
user: "user";
|
|
49
|
-
inferred: "inferred";
|
|
50
49
|
extracted: "extracted";
|
|
50
|
+
inferred: "inferred";
|
|
51
51
|
}>;
|
|
52
52
|
createdAt: z.ZodDate;
|
|
53
53
|
updatedAt: z.ZodDate;
|
|
@@ -80,8 +80,8 @@ export declare const GraphEdgeSchema: z.ZodObject<{
|
|
|
80
80
|
confidence: z.ZodNumber;
|
|
81
81
|
source: z.ZodEnum<{
|
|
82
82
|
user: "user";
|
|
83
|
-
inferred: "inferred";
|
|
84
83
|
extracted: "extracted";
|
|
84
|
+
inferred: "inferred";
|
|
85
85
|
}>;
|
|
86
86
|
createdAt: z.ZodDate;
|
|
87
87
|
updatedAt: z.ZodDate;
|
|
@@ -93,12 +93,12 @@ export declare const ExtractedEntitySchema: z.ZodObject<{
|
|
|
93
93
|
name: z.ZodString;
|
|
94
94
|
type: z.ZodEnum<{
|
|
95
95
|
object: "object";
|
|
96
|
-
custom: "custom";
|
|
97
96
|
person: "person";
|
|
98
97
|
organization: "organization";
|
|
99
98
|
location: "location";
|
|
100
99
|
concept: "concept";
|
|
101
100
|
event: "event";
|
|
101
|
+
custom: "custom";
|
|
102
102
|
}>;
|
|
103
103
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
104
104
|
description: z.ZodOptional<z.ZodString>;
|
|
@@ -132,12 +132,12 @@ export declare const ExtractionResultSchema: z.ZodObject<{
|
|
|
132
132
|
name: z.ZodString;
|
|
133
133
|
type: z.ZodEnum<{
|
|
134
134
|
object: "object";
|
|
135
|
-
custom: "custom";
|
|
136
135
|
person: "person";
|
|
137
136
|
organization: "organization";
|
|
138
137
|
location: "location";
|
|
139
138
|
concept: "concept";
|
|
140
139
|
event: "event";
|
|
140
|
+
custom: "custom";
|
|
141
141
|
}>;
|
|
142
142
|
aliases: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
143
143
|
description: z.ZodOptional<z.ZodString>;
|
|
@@ -173,12 +173,12 @@ export declare const NodeQuerySchema: z.ZodObject<{
|
|
|
173
173
|
agentId: z.ZodString;
|
|
174
174
|
types: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
175
175
|
object: "object";
|
|
176
|
-
custom: "custom";
|
|
177
176
|
person: "person";
|
|
178
177
|
organization: "organization";
|
|
179
178
|
location: "location";
|
|
180
179
|
concept: "concept";
|
|
181
180
|
event: "event";
|
|
181
|
+
custom: "custom";
|
|
182
182
|
}>>>;
|
|
183
183
|
namePattern: z.ZodOptional<z.ZodString>;
|
|
184
184
|
minConfidence: z.ZodOptional<z.ZodNumber>;
|
|
@@ -208,18 +208,18 @@ export declare const EdgeQuerySchema: z.ZodObject<{
|
|
|
208
208
|
limit: z.ZodOptional<z.ZodNumber>;
|
|
209
209
|
}, z.core.$strip>;
|
|
210
210
|
export declare const TraversalDirectionSchema: z.ZodEnum<{
|
|
211
|
+
both: "both";
|
|
211
212
|
outgoing: "outgoing";
|
|
212
213
|
incoming: "incoming";
|
|
213
|
-
both: "both";
|
|
214
214
|
}>;
|
|
215
215
|
export declare const TraversalOptionsSchema: z.ZodObject<{
|
|
216
216
|
agentId: z.ZodString;
|
|
217
217
|
startNodeId: z.ZodString;
|
|
218
218
|
maxDepth: z.ZodDefault<z.ZodNumber>;
|
|
219
219
|
direction: z.ZodDefault<z.ZodEnum<{
|
|
220
|
+
both: "both";
|
|
220
221
|
outgoing: "outgoing";
|
|
221
222
|
incoming: "incoming";
|
|
222
|
-
both: "both";
|
|
223
223
|
}>>;
|
|
224
224
|
edgeTypes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
225
225
|
custom: "custom";
|
|
@@ -246,12 +246,12 @@ export declare const GraphSemanticSearchOptionsSchema: z.ZodObject<{
|
|
|
246
246
|
threshold: z.ZodOptional<z.ZodNumber>;
|
|
247
247
|
entityTypes: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
248
248
|
object: "object";
|
|
249
|
-
custom: "custom";
|
|
250
249
|
person: "person";
|
|
251
250
|
organization: "organization";
|
|
252
251
|
location: "location";
|
|
253
252
|
concept: "concept";
|
|
254
253
|
event: "event";
|
|
254
|
+
custom: "custom";
|
|
255
255
|
}>>>;
|
|
256
256
|
}, z.core.$strip>;
|
|
257
257
|
export declare const InferencePatternSchema: z.ZodObject<{
|
|
@@ -272,12 +272,12 @@ export declare const InferencePatternSchema: z.ZodObject<{
|
|
|
272
272
|
maxPathLength: z.ZodNumber;
|
|
273
273
|
nodeTypeConstraints: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodEnum<{
|
|
274
274
|
object: "object";
|
|
275
|
-
custom: "custom";
|
|
276
275
|
person: "person";
|
|
277
276
|
organization: "organization";
|
|
278
277
|
location: "location";
|
|
279
278
|
concept: "concept";
|
|
280
279
|
event: "event";
|
|
280
|
+
custom: "custom";
|
|
281
281
|
}>>>>;
|
|
282
282
|
}, z.core.$strip>;
|
|
283
283
|
export declare const InferenceConclusionSchema: z.ZodObject<{
|
|
@@ -325,12 +325,12 @@ export declare const InferenceRuleSchema: z.ZodObject<{
|
|
|
325
325
|
maxPathLength: z.ZodNumber;
|
|
326
326
|
nodeTypeConstraints: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodEnum<{
|
|
327
327
|
object: "object";
|
|
328
|
-
custom: "custom";
|
|
329
328
|
person: "person";
|
|
330
329
|
organization: "organization";
|
|
331
330
|
location: "location";
|
|
332
331
|
concept: "concept";
|
|
333
332
|
event: "event";
|
|
333
|
+
custom: "custom";
|
|
334
334
|
}>>>>;
|
|
335
335
|
}, z.core.$strip>;
|
|
336
336
|
conclusion: z.ZodObject<{
|
|
@@ -392,12 +392,12 @@ export declare const KnowledgeGraphInferenceConfigSchema: z.ZodObject<{
|
|
|
392
392
|
maxPathLength: z.ZodNumber;
|
|
393
393
|
nodeTypeConstraints: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodEnum<{
|
|
394
394
|
object: "object";
|
|
395
|
-
custom: "custom";
|
|
396
395
|
person: "person";
|
|
397
396
|
organization: "organization";
|
|
398
397
|
location: "location";
|
|
399
398
|
concept: "concept";
|
|
400
399
|
event: "event";
|
|
400
|
+
custom: "custom";
|
|
401
401
|
}>>>>;
|
|
402
402
|
}, z.core.$strip>;
|
|
403
403
|
conclusion: z.ZodObject<{
|
|
@@ -466,12 +466,12 @@ export declare const KnowledgeGraphConfigSchema: z.ZodObject<{
|
|
|
466
466
|
maxPathLength: z.ZodNumber;
|
|
467
467
|
nodeTypeConstraints: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodEnum<{
|
|
468
468
|
object: "object";
|
|
469
|
-
custom: "custom";
|
|
470
469
|
person: "person";
|
|
471
470
|
organization: "organization";
|
|
472
471
|
location: "location";
|
|
473
472
|
concept: "concept";
|
|
474
473
|
event: "event";
|
|
474
|
+
custom: "custom";
|
|
475
475
|
}>>>>;
|
|
476
476
|
}, z.core.$strip>;
|
|
477
477
|
conclusion: z.ZodObject<{
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { GraphAdapter, GraphNode, GraphEdge, NodeQuery, EdgeQuery, TraversalOptions, TraversalResult, GraphPath, GraphSemanticSearchOptions, GraphStats, MemoryResult, TraversalDirection } from '@cogitator-ai/types';
|
|
2
|
+
export interface SQLiteGraphAdapterConfig {
|
|
3
|
+
path: string;
|
|
4
|
+
walMode?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare class SQLiteGraphAdapter implements GraphAdapter {
|
|
7
|
+
private db;
|
|
8
|
+
private path;
|
|
9
|
+
private walMode;
|
|
10
|
+
private initialized;
|
|
11
|
+
constructor(config: SQLiteGraphAdapterConfig);
|
|
12
|
+
initialize(): Promise<void>;
|
|
13
|
+
close(): Promise<void>;
|
|
14
|
+
private ensureDb;
|
|
15
|
+
private success;
|
|
16
|
+
private failure;
|
|
17
|
+
private generateId;
|
|
18
|
+
private rowToNode;
|
|
19
|
+
private rowToEdge;
|
|
20
|
+
private neighborRowToEdge;
|
|
21
|
+
private cosineSimilarity;
|
|
22
|
+
addNode(node: Omit<GraphNode, 'id' | 'createdAt' | 'updatedAt' | 'lastAccessedAt' | 'accessCount'>): Promise<MemoryResult<GraphNode>>;
|
|
23
|
+
getNode(nodeId: string): Promise<MemoryResult<GraphNode | null>>;
|
|
24
|
+
getNodeByName(agentId: string, name: string): Promise<MemoryResult<GraphNode | null>>;
|
|
25
|
+
updateNode(nodeId: string, updates: Partial<Pick<GraphNode, 'name' | 'aliases' | 'description' | 'properties' | 'confidence' | 'metadata' | 'embedding'>>): Promise<MemoryResult<GraphNode>>;
|
|
26
|
+
deleteNode(nodeId: string): Promise<MemoryResult<void>>;
|
|
27
|
+
queryNodes(query: NodeQuery): Promise<MemoryResult<GraphNode[]>>;
|
|
28
|
+
searchNodesSemantic(options: GraphSemanticSearchOptions): Promise<MemoryResult<(GraphNode & {
|
|
29
|
+
score: number;
|
|
30
|
+
})[]>>;
|
|
31
|
+
addEdge(edge: Omit<GraphEdge, 'id' | 'createdAt' | 'updatedAt'>): Promise<MemoryResult<GraphEdge>>;
|
|
32
|
+
getEdge(edgeId: string): Promise<MemoryResult<GraphEdge | null>>;
|
|
33
|
+
getEdgesBetween(sourceNodeId: string, targetNodeId: string): Promise<MemoryResult<GraphEdge[]>>;
|
|
34
|
+
updateEdge(edgeId: string, updates: Partial<Pick<GraphEdge, 'weight' | 'label' | 'properties' | 'confidence' | 'validFrom' | 'validUntil' | 'metadata'>>): Promise<MemoryResult<GraphEdge>>;
|
|
35
|
+
deleteEdge(edgeId: string): Promise<MemoryResult<void>>;
|
|
36
|
+
queryEdges(query: EdgeQuery): Promise<MemoryResult<GraphEdge[]>>;
|
|
37
|
+
traverse(options: TraversalOptions): Promise<MemoryResult<TraversalResult>>;
|
|
38
|
+
private traverseRecursive;
|
|
39
|
+
findShortestPath(_agentId: string, startNodeId: string, endNodeId: string, maxDepth?: number): Promise<MemoryResult<GraphPath | null>>;
|
|
40
|
+
getNeighbors(nodeId: string, direction?: TraversalDirection): Promise<MemoryResult<{
|
|
41
|
+
node: GraphNode;
|
|
42
|
+
edge: GraphEdge;
|
|
43
|
+
}[]>>;
|
|
44
|
+
mergeNodes(targetNodeId: string, sourceNodeIds: string[]): Promise<MemoryResult<GraphNode>>;
|
|
45
|
+
clearGraph(agentId: string): Promise<MemoryResult<void>>;
|
|
46
|
+
getGraphStats(agentId: string): Promise<MemoryResult<GraphStats>>;
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=sqlite-graph-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sqlite-graph-adapter.d.ts","sourceRoot":"","sources":["../../src/knowledge-graph/sqlite-graph-adapter.ts"],"names":[],"mappings":"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"}
|