agent-memory-graph 0.1.1 → 0.2.0
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/plugin/entry.js +176 -55
- package/dist/src/extract/dedup.d.ts +9 -1
- package/dist/src/extract/dedup.d.ts.map +1 -1
- package/dist/src/extract/dedup.js +40 -4
- package/dist/src/extract/dedup.js.map +1 -1
- package/dist/src/extract/extractor.d.ts +1 -0
- package/dist/src/extract/extractor.d.ts.map +1 -1
- package/dist/src/extract/extractor.js +6 -2
- package/dist/src/extract/extractor.js.map +1 -1
- package/dist/src/graph/engine.d.ts +1 -0
- package/dist/src/graph/engine.d.ts.map +1 -1
- package/dist/src/graph/engine.js +13 -3
- package/dist/src/graph/engine.js.map +1 -1
- package/dist/src/graph/schema.d.ts.map +1 -1
- package/dist/src/graph/schema.js +12 -2
- package/dist/src/graph/schema.js.map +1 -1
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +15 -1
- package/dist/src/index.js.map +1 -1
- package/openclaw.plugin.json +41 -6
- package/package.json +5 -1
package/dist/plugin/entry.js
CHANGED
|
@@ -16,7 +16,7 @@ var SCHEMA_VERSION, SCHEMA_SQL, SchemaManager;
|
|
|
16
16
|
var init_schema = __esm({
|
|
17
17
|
"src/graph/schema.js"() {
|
|
18
18
|
"use strict";
|
|
19
|
-
SCHEMA_VERSION =
|
|
19
|
+
SCHEMA_VERSION = 2;
|
|
20
20
|
SCHEMA_SQL = `
|
|
21
21
|
-- Schema version tracking
|
|
22
22
|
CREATE TABLE IF NOT EXISTS _meta (
|
|
@@ -33,7 +33,8 @@ CREATE TABLE IF NOT EXISTS entities (
|
|
|
33
33
|
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
34
34
|
updated_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
35
35
|
source TEXT,
|
|
36
|
-
confidence REAL DEFAULT 1.0
|
|
36
|
+
confidence REAL DEFAULT 1.0,
|
|
37
|
+
mention_count INTEGER DEFAULT 1
|
|
37
38
|
);
|
|
38
39
|
|
|
39
40
|
-- Relationships (graph edges)
|
|
@@ -106,14 +107,25 @@ END;
|
|
|
106
107
|
/** Initialize schema (idempotent) */
|
|
107
108
|
initialize() {
|
|
108
109
|
this.db.exec(SCHEMA_SQL);
|
|
109
|
-
const
|
|
110
|
+
const currentVersion = this.getVersion();
|
|
111
|
+
if (currentVersion < 2) {
|
|
112
|
+
try {
|
|
113
|
+
this.db.exec(`ALTER TABLE entities ADD COLUMN mention_count INTEGER DEFAULT 1`);
|
|
114
|
+
} catch (_) {
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
const stmt = this.db.prepare(
|
|
118
|
+
`INSERT OR REPLACE INTO _meta (key, value) VALUES ('schema_version', ?)`
|
|
119
|
+
);
|
|
110
120
|
stmt.run(String(SCHEMA_VERSION));
|
|
111
121
|
return this.db;
|
|
112
122
|
}
|
|
113
123
|
/** Get current schema version */
|
|
114
124
|
getVersion() {
|
|
115
125
|
try {
|
|
116
|
-
const row = this.db.prepare(
|
|
126
|
+
const row = this.db.prepare(
|
|
127
|
+
`SELECT value FROM _meta WHERE key = 'schema_version'`
|
|
128
|
+
).get();
|
|
117
129
|
return row ? parseInt(row.value, 10) : 0;
|
|
118
130
|
} catch {
|
|
119
131
|
return 0;
|
|
@@ -144,6 +156,7 @@ var init_engine = __esm({
|
|
|
144
156
|
addEntity(name, type, properties = {}, options = {}) {
|
|
145
157
|
const existing = this.findEntityByName(name, type);
|
|
146
158
|
if (existing) {
|
|
159
|
+
this.db.prepare(`UPDATE entities SET mention_count = mention_count + 1 WHERE id = ?`).run(existing.id);
|
|
147
160
|
return this.updateEntity(existing.id, { properties, ...options });
|
|
148
161
|
}
|
|
149
162
|
const id = `e-${nanoid(12)}`;
|
|
@@ -151,7 +164,16 @@ var init_engine = __esm({
|
|
|
151
164
|
this.db.prepare(`
|
|
152
165
|
INSERT INTO entities (id, name, type, properties, created_at, updated_at, source, confidence)
|
|
153
166
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
|
154
|
-
`).run(
|
|
167
|
+
`).run(
|
|
168
|
+
id,
|
|
169
|
+
name,
|
|
170
|
+
type,
|
|
171
|
+
JSON.stringify(properties),
|
|
172
|
+
now,
|
|
173
|
+
now,
|
|
174
|
+
options.source ?? null,
|
|
175
|
+
options.confidence ?? 1
|
|
176
|
+
);
|
|
155
177
|
return { id, name, type, properties, created_at: now, updated_at: now, source: options.source, confidence: options.confidence ?? 1 };
|
|
156
178
|
}
|
|
157
179
|
getEntity(id) {
|
|
@@ -165,8 +187,7 @@ var init_engine = __esm({
|
|
|
165
187
|
}
|
|
166
188
|
updateEntity(id, updates) {
|
|
167
189
|
const existing = this.getEntity(id);
|
|
168
|
-
if (!existing)
|
|
169
|
-
throw new Error(`Entity ${id} not found`);
|
|
190
|
+
if (!existing) throw new Error(`Entity ${id} not found`);
|
|
170
191
|
const merged = {
|
|
171
192
|
name: updates.name ?? existing.name,
|
|
172
193
|
type: updates.type ?? existing.type,
|
|
@@ -178,16 +199,31 @@ var init_engine = __esm({
|
|
|
178
199
|
this.db.prepare(`
|
|
179
200
|
UPDATE entities SET name = ?, type = ?, properties = ?, source = ?, confidence = ?, updated_at = ?
|
|
180
201
|
WHERE id = ?
|
|
181
|
-
`).run(
|
|
202
|
+
`).run(
|
|
203
|
+
merged.name,
|
|
204
|
+
merged.type,
|
|
205
|
+
JSON.stringify(merged.properties),
|
|
206
|
+
merged.source ?? null,
|
|
207
|
+
merged.confidence,
|
|
208
|
+
now,
|
|
209
|
+
id
|
|
210
|
+
);
|
|
182
211
|
return { ...existing, ...merged, updated_at: now };
|
|
183
212
|
}
|
|
184
213
|
deleteEntity(id) {
|
|
185
214
|
const result = this.db.prepare(`DELETE FROM entities WHERE id = ?`).run(id);
|
|
186
215
|
return result.changes > 0;
|
|
187
216
|
}
|
|
217
|
+
reassignRelationships(fromEntityId, toEntityId) {
|
|
218
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
219
|
+
const r1 = this.db.prepare(`UPDATE relationships SET from_id = ?, updated_at = ? WHERE from_id = ?`).run(toEntityId, now, fromEntityId);
|
|
220
|
+
const r2 = this.db.prepare(`UPDATE relationships SET to_id = ?, updated_at = ? WHERE to_id = ?`).run(toEntityId, now, fromEntityId);
|
|
221
|
+
this.db.prepare(`DELETE FROM relationships WHERE from_id = to_id`).run();
|
|
222
|
+
return r1.changes + r2.changes;
|
|
223
|
+
}
|
|
188
224
|
listEntities(options = {}) {
|
|
189
225
|
const { type, limit = 100, offset = 0 } = options;
|
|
190
|
-
const query = type ? `SELECT * FROM entities WHERE type = ? COLLATE NOCASE ORDER BY updated_at DESC LIMIT ? OFFSET ?` : `SELECT * FROM entities ORDER BY updated_at DESC LIMIT ? OFFSET ?`;
|
|
226
|
+
const query = type ? `SELECT * FROM entities WHERE type = ? COLLATE NOCASE ORDER BY mention_count DESC, updated_at DESC LIMIT ? OFFSET ?` : `SELECT * FROM entities ORDER BY mention_count DESC, updated_at DESC LIMIT ? OFFSET ?`;
|
|
191
227
|
const rows = type ? this.db.prepare(query).all(type, limit, offset) : this.db.prepare(query).all(limit, offset);
|
|
192
228
|
return rows.map((r) => this.rowToEntity(r));
|
|
193
229
|
}
|
|
@@ -217,7 +253,17 @@ var init_engine = __esm({
|
|
|
217
253
|
this.db.prepare(`
|
|
218
254
|
INSERT INTO relationships (id, from_id, to_id, relation, properties, created_at, updated_at, source, confidence)
|
|
219
255
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
220
|
-
`).run(
|
|
256
|
+
`).run(
|
|
257
|
+
id,
|
|
258
|
+
fromEntity.id,
|
|
259
|
+
toEntity.id,
|
|
260
|
+
relation,
|
|
261
|
+
JSON.stringify(options.properties ?? {}),
|
|
262
|
+
now,
|
|
263
|
+
now,
|
|
264
|
+
options.source ?? null,
|
|
265
|
+
options.confidence ?? 1
|
|
266
|
+
);
|
|
221
267
|
return {
|
|
222
268
|
id,
|
|
223
269
|
from_id: fromEntity.id,
|
|
@@ -286,16 +332,14 @@ var init_engine = __esm({
|
|
|
286
332
|
findPath(fromName, toName, maxHops = 3) {
|
|
287
333
|
const fromEntity = this.findEntityByName(fromName);
|
|
288
334
|
const toEntity = this.findEntityByName(toName);
|
|
289
|
-
if (!fromEntity || !toEntity)
|
|
290
|
-
return null;
|
|
335
|
+
if (!fromEntity || !toEntity) return null;
|
|
291
336
|
const queue = [
|
|
292
337
|
{ entityId: fromEntity.id, path: [fromEntity.name], relations: [] }
|
|
293
338
|
];
|
|
294
339
|
const visited = /* @__PURE__ */ new Set([fromEntity.id]);
|
|
295
340
|
while (queue.length > 0) {
|
|
296
341
|
const current = queue.shift();
|
|
297
|
-
if (current.path.length > maxHops + 1)
|
|
298
|
-
break;
|
|
342
|
+
if (current.path.length > maxHops + 1) break;
|
|
299
343
|
const outgoing = this.db.prepare(`
|
|
300
344
|
SELECT r.relation, r.to_id as neighbor_id, e.name as neighbor_name
|
|
301
345
|
FROM relationships r JOIN entities e ON r.to_id = e.id
|
|
@@ -334,8 +378,7 @@ var init_engine = __esm({
|
|
|
334
378
|
*/
|
|
335
379
|
getNeighborhood(entityName, hops = 1) {
|
|
336
380
|
const entity = this.findEntityByName(entityName);
|
|
337
|
-
if (!entity)
|
|
338
|
-
return { entities: [], relationships: [] };
|
|
381
|
+
if (!entity) return { entities: [], relationships: [] };
|
|
339
382
|
const entityIds = /* @__PURE__ */ new Set([entity.id]);
|
|
340
383
|
const relIds = /* @__PURE__ */ new Set();
|
|
341
384
|
let frontier = [entity.id];
|
|
@@ -498,7 +541,9 @@ var init_defaults = __esm({
|
|
|
498
541
|
function buildPrompt(text, domains) {
|
|
499
542
|
const domainContext = domains.length > 0 ? `
|
|
500
543
|
Domain hints (use these to improve accuracy):
|
|
501
|
-
${domains.map(
|
|
544
|
+
${domains.map(
|
|
545
|
+
(d) => `- ${d.name}: entities=[${d.entityHints.join(", ")}], relations=[${d.relationHints.join(", ")}]`
|
|
546
|
+
).join("\n")}
|
|
502
547
|
` : "";
|
|
503
548
|
return `You are an entity and relationship extractor. Given text, extract all meaningful entities and their relationships.
|
|
504
549
|
|
|
@@ -511,14 +556,18 @@ Rules:
|
|
|
511
556
|
6. Do NOT hallucinate entities not mentioned or strongly implied in the text
|
|
512
557
|
7. Normalize entity names (capitalize properly, use full names when available)
|
|
513
558
|
8. Use UPPER_SNAKE_CASE for relationship types (WORKS_ON, USES, OWNS, etc.)
|
|
559
|
+
9. Extract temporal context when mentioned (dates, timeframes, "last year", "in 2024", "recently"). Store as properties: {"when": "2024", "temporal": "joined in 2024"}
|
|
560
|
+
10. For relationships with time context, include a "when" property: {"from": "X", "relation": "JOINED", "to": "Y", "when": "2024"}
|
|
561
|
+
11. Do NOT extract tokens, API keys, passwords, hashes, or secrets as entities
|
|
562
|
+
12. Do NOT extract CLI commands (/new, /reset, /status) as entities
|
|
514
563
|
${domainContext}
|
|
515
564
|
Return ONLY valid JSON (no markdown, no explanation):
|
|
516
565
|
{
|
|
517
566
|
"entities": [
|
|
518
|
-
{"name": "Entity Name", "type": "Type", "properties": {}, "confidence": 0.9}
|
|
567
|
+
{"name": "Entity Name", "type": "Type", "properties": {"role": "CTO", "when": "2024"}, "confidence": 0.9}
|
|
519
568
|
],
|
|
520
569
|
"relationships": [
|
|
521
|
-
{"from": "Entity A", "relation": "RELATION_TYPE", "to": "Entity B", "fromType": "TypeA", "toType": "TypeB", "confidence": 0.85}
|
|
570
|
+
{"from": "Entity A", "relation": "RELATION_TYPE", "to": "Entity B", "fromType": "TypeA", "toType": "TypeB", "confidence": 0.85, "when": "optional temporal context"}
|
|
522
571
|
]
|
|
523
572
|
}
|
|
524
573
|
|
|
@@ -534,17 +583,17 @@ function detectProvider(config) {
|
|
|
534
583
|
if (config.extraction.provider !== "auto") {
|
|
535
584
|
return config.extraction.provider;
|
|
536
585
|
}
|
|
537
|
-
if (process.env.OPENAI_API_KEY)
|
|
538
|
-
|
|
539
|
-
if (process.env.
|
|
540
|
-
return "anthropic";
|
|
541
|
-
if (process.env.OLLAMA_HOST || process.env.OLLAMA_URL)
|
|
542
|
-
return "ollama";
|
|
586
|
+
if (process.env.OPENAI_API_KEY) return "openai";
|
|
587
|
+
if (process.env.ANTHROPIC_API_KEY) return "anthropic";
|
|
588
|
+
if (process.env.OLLAMA_HOST || process.env.OLLAMA_URL) return "ollama";
|
|
543
589
|
return null;
|
|
544
590
|
}
|
|
545
591
|
async function callOpenAI(prompt, model) {
|
|
546
592
|
const { default: OpenAI } = await import("openai");
|
|
547
|
-
const client = new OpenAI(
|
|
593
|
+
const client = new OpenAI({
|
|
594
|
+
apiKey: process.env.OPENAI_API_KEY || "sk-local",
|
|
595
|
+
baseURL: process.env.OPENAI_BASE_URL || "http://127.0.0.1:20128/v1"
|
|
596
|
+
});
|
|
548
597
|
const response = await client.chat.completions.create({
|
|
549
598
|
model: model === "auto" ? "gpt-4o-mini" : model,
|
|
550
599
|
messages: [{ role: "user", content: prompt }],
|
|
@@ -585,7 +634,9 @@ async function callOllama(prompt, model) {
|
|
|
585
634
|
async function extractFromText(text, config) {
|
|
586
635
|
const provider = detectProvider(config);
|
|
587
636
|
if (!provider) {
|
|
588
|
-
throw new Error(
|
|
637
|
+
throw new Error(
|
|
638
|
+
"No LLM provider available. Set OPENAI_API_KEY, ANTHROPIC_API_KEY, or OLLAMA_HOST."
|
|
639
|
+
);
|
|
589
640
|
}
|
|
590
641
|
const prompt = buildPrompt(text, config.domains);
|
|
591
642
|
const model = config.extraction.model;
|
|
@@ -1221,13 +1272,10 @@ function findDuplicates(engine, threshold = 0.85) {
|
|
|
1221
1272
|
const duplicates = [];
|
|
1222
1273
|
const processed = /* @__PURE__ */ new Set();
|
|
1223
1274
|
for (let i = 0; i < entities.length; i++) {
|
|
1224
|
-
if (processed.has(entities[i].id))
|
|
1225
|
-
continue;
|
|
1275
|
+
if (processed.has(entities[i].id)) continue;
|
|
1226
1276
|
for (let j = i + 1; j < entities.length; j++) {
|
|
1227
|
-
if (processed.has(entities[j].id))
|
|
1228
|
-
|
|
1229
|
-
if (entities[i].type.toLowerCase() !== entities[j].type.toLowerCase())
|
|
1230
|
-
continue;
|
|
1277
|
+
if (processed.has(entities[j].id)) continue;
|
|
1278
|
+
if (entities[i].type.toLowerCase() !== entities[j].type.toLowerCase()) continue;
|
|
1231
1279
|
const sim = nameSimilarity(entities[i].name, entities[j].name);
|
|
1232
1280
|
if (sim >= threshold) {
|
|
1233
1281
|
duplicates.push({
|
|
@@ -1244,20 +1292,38 @@ function findDuplicates(engine, threshold = 0.85) {
|
|
|
1244
1292
|
function mergeEntities(engine, keepId, mergeId) {
|
|
1245
1293
|
const keep = engine.getEntity(keepId);
|
|
1246
1294
|
const merge = engine.getEntity(mergeId);
|
|
1247
|
-
if (!keep || !merge)
|
|
1248
|
-
return false;
|
|
1295
|
+
if (!keep || !merge) return false;
|
|
1249
1296
|
const mergedProps = { ...merge.properties, ...keep.properties };
|
|
1250
1297
|
engine.updateEntity(keepId, { properties: mergedProps });
|
|
1298
|
+
engine.reassignRelationships(mergeId, keepId);
|
|
1251
1299
|
engine.deleteEntity(mergeId);
|
|
1252
1300
|
return true;
|
|
1253
1301
|
}
|
|
1302
|
+
function autoDedup(engine) {
|
|
1303
|
+
const entities = engine.listEntities({ limit: 1e4 });
|
|
1304
|
+
let mergeCount = 0;
|
|
1305
|
+
const merged = /* @__PURE__ */ new Set();
|
|
1306
|
+
for (let i = 0; i < entities.length; i++) {
|
|
1307
|
+
if (merged.has(entities[i].id)) continue;
|
|
1308
|
+
for (let j = i + 1; j < entities.length; j++) {
|
|
1309
|
+
if (merged.has(entities[j].id)) continue;
|
|
1310
|
+
if (entities[i].type.toLowerCase() !== entities[j].type.toLowerCase()) continue;
|
|
1311
|
+
const sim = nameSimilarity(entities[i].name, entities[j].name);
|
|
1312
|
+
if (sim >= 0.9) {
|
|
1313
|
+
const [keep, remove] = entities[i].name.length >= entities[j].name.length ? [entities[i], entities[j]] : [entities[j], entities[i]];
|
|
1314
|
+
mergeEntities(engine, keep.id, remove.id);
|
|
1315
|
+
merged.add(remove.id);
|
|
1316
|
+
mergeCount++;
|
|
1317
|
+
}
|
|
1318
|
+
}
|
|
1319
|
+
}
|
|
1320
|
+
return mergeCount;
|
|
1321
|
+
}
|
|
1254
1322
|
function nameSimilarity(a, b) {
|
|
1255
1323
|
const na = a.toLowerCase().trim();
|
|
1256
1324
|
const nb = b.toLowerCase().trim();
|
|
1257
|
-
if (na === nb)
|
|
1258
|
-
|
|
1259
|
-
if (na.includes(nb) || nb.includes(na))
|
|
1260
|
-
return 0.9;
|
|
1325
|
+
if (na === nb) return 1;
|
|
1326
|
+
if (na.includes(nb) || nb.includes(na)) return 0.9;
|
|
1261
1327
|
const dist = levenshtein(na, nb);
|
|
1262
1328
|
const maxLen = Math.max(na.length, nb.length);
|
|
1263
1329
|
return maxLen === 0 ? 1 : 1 - dist / maxLen;
|
|
@@ -1266,10 +1332,8 @@ function levenshtein(a, b) {
|
|
|
1266
1332
|
const m = a.length;
|
|
1267
1333
|
const n = b.length;
|
|
1268
1334
|
const dp = Array.from({ length: m + 1 }, () => Array(n + 1).fill(0));
|
|
1269
|
-
for (let i = 0; i <= m; i++)
|
|
1270
|
-
|
|
1271
|
-
for (let j = 0; j <= n; j++)
|
|
1272
|
-
dp[0][j] = j;
|
|
1335
|
+
for (let i = 0; i <= m; i++) dp[i][0] = i;
|
|
1336
|
+
for (let j = 0; j <= n; j++) dp[0][j] = j;
|
|
1273
1337
|
for (let i = 1; i <= m; i++) {
|
|
1274
1338
|
for (let j = 1; j <= n; j++) {
|
|
1275
1339
|
dp[i][j] = a[i - 1] === b[j - 1] ? dp[i - 1][j - 1] : 1 + Math.min(dp[i - 1][j], dp[i][j - 1], dp[i - 1][j - 1]);
|
|
@@ -1303,6 +1367,9 @@ var init_src = __esm({
|
|
|
1303
1367
|
MemoryGraph = class {
|
|
1304
1368
|
engine;
|
|
1305
1369
|
config;
|
|
1370
|
+
ingestCount = 0;
|
|
1371
|
+
DEDUP_INTERVAL = 10;
|
|
1372
|
+
// Run auto-dedup every N ingestions
|
|
1306
1373
|
constructor(options = {}) {
|
|
1307
1374
|
this.config = loadConfig(options.configPath);
|
|
1308
1375
|
if (options.config) {
|
|
@@ -1324,14 +1391,24 @@ var init_src = __esm({
|
|
|
1324
1391
|
});
|
|
1325
1392
|
}
|
|
1326
1393
|
for (const rel of result.relationships) {
|
|
1394
|
+
const props = {};
|
|
1395
|
+
if (rel.when) props.when = rel.when;
|
|
1327
1396
|
this.engine.addRelation(rel.from, rel.relation, rel.to, {
|
|
1328
1397
|
source: options.source,
|
|
1329
1398
|
confidence: rel.confidence,
|
|
1330
1399
|
fromType: rel.fromType,
|
|
1331
|
-
toType: rel.toType
|
|
1400
|
+
toType: rel.toType,
|
|
1401
|
+
properties: props
|
|
1332
1402
|
});
|
|
1333
1403
|
}
|
|
1334
1404
|
this.engine.logExtraction(text, result.entities, result.relationships, options.sessionId);
|
|
1405
|
+
this.ingestCount++;
|
|
1406
|
+
if (this.ingestCount % this.DEDUP_INTERVAL === 0) {
|
|
1407
|
+
try {
|
|
1408
|
+
autoDedup(this.engine);
|
|
1409
|
+
} catch (_) {
|
|
1410
|
+
}
|
|
1411
|
+
}
|
|
1335
1412
|
return result;
|
|
1336
1413
|
}
|
|
1337
1414
|
/**
|
|
@@ -1379,8 +1456,7 @@ var init_src = __esm({
|
|
|
1379
1456
|
*/
|
|
1380
1457
|
deleteEntity(nameOrId) {
|
|
1381
1458
|
const entity = this.engine.getEntity(nameOrId) ?? this.engine.findEntityByName(nameOrId);
|
|
1382
|
-
if (!entity)
|
|
1383
|
-
return false;
|
|
1459
|
+
if (!entity) return false;
|
|
1384
1460
|
return this.engine.deleteEntity(entity.id);
|
|
1385
1461
|
}
|
|
1386
1462
|
// ─── Graph Operations ──────────────────────────────────────────
|
|
@@ -1500,6 +1576,39 @@ async function getGraph(config) {
|
|
|
1500
1576
|
}
|
|
1501
1577
|
return graphInstance;
|
|
1502
1578
|
}
|
|
1579
|
+
var messageBuffer = [];
|
|
1580
|
+
var batchTimer = null;
|
|
1581
|
+
var BATCH_WINDOW_MS = 15e3;
|
|
1582
|
+
var BATCH_MAX_MESSAGES = 5;
|
|
1583
|
+
async function flushBatch(config) {
|
|
1584
|
+
if (messageBuffer.length === 0) return;
|
|
1585
|
+
const batch = messageBuffer.splice(0, messageBuffer.length);
|
|
1586
|
+
const combinedText = batch.map((m) => m.text).join("\n");
|
|
1587
|
+
const source = `chat:${batch[0].senderId}`;
|
|
1588
|
+
const sessionKey = batch[0].sessionKey;
|
|
1589
|
+
try {
|
|
1590
|
+
const graph = await getGraph(config);
|
|
1591
|
+
await graph.ingest(combinedText, { source, sessionId: sessionKey });
|
|
1592
|
+
} catch (err) {
|
|
1593
|
+
console.warn("[memory-graph] Batch ingest failed:", err.message);
|
|
1594
|
+
}
|
|
1595
|
+
}
|
|
1596
|
+
var COMMAND_PATTERNS = /^\s*[\/!](new|reset|status|help|start|stop|restart|approve|elevated|exec|reasoning|model|clear)\b/i;
|
|
1597
|
+
var TOKEN_PATTERNS = /(?:npm_|clh_|ghp_|gho_|sk-|xox[bpas]-|Bearer\s+|token[:\s]+\S{20,}|[A-Za-z0-9_-]{40,})/;
|
|
1598
|
+
var CASUAL_PATTERNS = /^\s*(ok|oke|okie|oki|yes|no|yep|nope|sure|đi|đc|dc|ừ|ờ|uh|hmm|hm|ah|oh|wow|nice|cool|good|great|thanks|thx|cảm ơn|sao rồi|sao r|ổn không|ổn k|gà ơi|gà|em ơi|sếp ơi|aira ơi|tiếp|tiếp đi|continue|go|done|xong|rồi|chưa|có|không|ko|k|đúng|sai|được|đc rồi|ok em|ok anh)\s*[?!.]*\s*$/i;
|
|
1599
|
+
var URL_ONLY_PATTERN = /^\s*(https?:\/\/\S+\s*)+$/;
|
|
1600
|
+
var MIN_MEANINGFUL_LENGTH = 30;
|
|
1601
|
+
var MIN_WORD_COUNT = 5;
|
|
1602
|
+
function shouldIngest(text) {
|
|
1603
|
+
if (text.length < MIN_MEANINGFUL_LENGTH) return false;
|
|
1604
|
+
if (COMMAND_PATTERNS.test(text)) return false;
|
|
1605
|
+
if (TOKEN_PATTERNS.test(text)) return false;
|
|
1606
|
+
if (CASUAL_PATTERNS.test(text)) return false;
|
|
1607
|
+
if (URL_ONLY_PATTERN.test(text)) return false;
|
|
1608
|
+
const wordCount = text.split(/\s+/).filter((w) => w.length > 1).length;
|
|
1609
|
+
if (wordCount < MIN_WORD_COUNT) return false;
|
|
1610
|
+
return true;
|
|
1611
|
+
}
|
|
1503
1612
|
var entry_default = definePluginEntry({
|
|
1504
1613
|
id: "memory-graph",
|
|
1505
1614
|
name: "Memory Graph",
|
|
@@ -1511,16 +1620,28 @@ var entry_default = definePluginEntry({
|
|
|
1511
1620
|
const config = event.context?.pluginConfig;
|
|
1512
1621
|
if (config?.autoIngest === false) return;
|
|
1513
1622
|
const text = typeof event.content === "string" ? event.content : event.content?.text || event.content?.body || "";
|
|
1514
|
-
if (!text || text
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1623
|
+
if (!text || !shouldIngest(text)) return;
|
|
1624
|
+
messageBuffer.push({
|
|
1625
|
+
text,
|
|
1626
|
+
senderId: event.senderId || "unknown",
|
|
1627
|
+
sessionKey: event.sessionKey || "",
|
|
1628
|
+
timestamp: Date.now()
|
|
1629
|
+
});
|
|
1630
|
+
if (messageBuffer.length >= BATCH_MAX_MESSAGES) {
|
|
1631
|
+
if (batchTimer) {
|
|
1632
|
+
clearTimeout(batchTimer);
|
|
1633
|
+
batchTimer = null;
|
|
1634
|
+
}
|
|
1635
|
+
await flushBatch(config);
|
|
1636
|
+
return;
|
|
1523
1637
|
}
|
|
1638
|
+
if (batchTimer) clearTimeout(batchTimer);
|
|
1639
|
+
batchTimer = setTimeout(() => {
|
|
1640
|
+
batchTimer = null;
|
|
1641
|
+
flushBatch(config).catch((err) => {
|
|
1642
|
+
console.warn("[memory-graph] Batch flush failed:", err.message);
|
|
1643
|
+
});
|
|
1644
|
+
}, BATCH_WINDOW_MS);
|
|
1524
1645
|
},
|
|
1525
1646
|
{ priority: 10 }
|
|
1526
1647
|
);
|
|
@@ -8,7 +8,15 @@ export declare function findDuplicates(engine: GraphEngine, threshold?: number):
|
|
|
8
8
|
similarity: number;
|
|
9
9
|
}>;
|
|
10
10
|
/**
|
|
11
|
-
* Merge duplicate entity into target (moves all relationships).
|
|
11
|
+
* Merge duplicate entity into target (moves all relationships, then deletes duplicate).
|
|
12
12
|
*/
|
|
13
13
|
export declare function mergeEntities(engine: GraphEngine, keepId: string, mergeId: string): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Auto-dedup: find and merge entities that are clearly the same.
|
|
16
|
+
* Uses stricter rules than findDuplicates for automatic merging:
|
|
17
|
+
* - Same type
|
|
18
|
+
* - One name contains the other (e.g., "KL" vs "Sếp KL")
|
|
19
|
+
* - Or Levenshtein similarity >= 0.9
|
|
20
|
+
*/
|
|
21
|
+
export declare function autoDedup(engine: GraphEngine): number;
|
|
14
22
|
//# sourceMappingURL=dedup.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dedup.d.ts","sourceRoot":"","sources":["../../../src/extract/dedup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE9D;;GAEG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,WAAW,EACnB,SAAS,SAAO,GACf,KAAK,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CA2BpE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,OAAO,
|
|
1
|
+
{"version":3,"file":"dedup.d.ts","sourceRoot":"","sources":["../../../src/extract/dedup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE9D;;GAEG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,WAAW,EACnB,SAAS,SAAO,GACf,KAAK,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CA2BpE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,WAAW,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAgBT;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CA+BrD"}
|
|
@@ -28,21 +28,57 @@ export function findDuplicates(engine, threshold = 0.85) {
|
|
|
28
28
|
return duplicates;
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
31
|
-
* Merge duplicate entity into target (moves all relationships).
|
|
31
|
+
* Merge duplicate entity into target (moves all relationships, then deletes duplicate).
|
|
32
32
|
*/
|
|
33
33
|
export function mergeEntities(engine, keepId, mergeId) {
|
|
34
34
|
const keep = engine.getEntity(keepId);
|
|
35
35
|
const merge = engine.getEntity(mergeId);
|
|
36
36
|
if (!keep || !merge)
|
|
37
37
|
return false;
|
|
38
|
-
// Merge properties
|
|
38
|
+
// Merge properties (keep's properties take priority)
|
|
39
39
|
const mergedProps = { ...merge.properties, ...keep.properties };
|
|
40
40
|
engine.updateEntity(keepId, { properties: mergedProps });
|
|
41
|
-
//
|
|
42
|
-
|
|
41
|
+
// Move all relationships from merge → keep
|
|
42
|
+
engine.reassignRelationships(mergeId, keepId);
|
|
43
|
+
// Delete the duplicate
|
|
43
44
|
engine.deleteEntity(mergeId);
|
|
44
45
|
return true;
|
|
45
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Auto-dedup: find and merge entities that are clearly the same.
|
|
49
|
+
* Uses stricter rules than findDuplicates for automatic merging:
|
|
50
|
+
* - Same type
|
|
51
|
+
* - One name contains the other (e.g., "KL" vs "Sếp KL")
|
|
52
|
+
* - Or Levenshtein similarity >= 0.9
|
|
53
|
+
*/
|
|
54
|
+
export function autoDedup(engine) {
|
|
55
|
+
const entities = engine.listEntities({ limit: 10000 });
|
|
56
|
+
let mergeCount = 0;
|
|
57
|
+
const merged = new Set();
|
|
58
|
+
for (let i = 0; i < entities.length; i++) {
|
|
59
|
+
if (merged.has(entities[i].id))
|
|
60
|
+
continue;
|
|
61
|
+
for (let j = i + 1; j < entities.length; j++) {
|
|
62
|
+
if (merged.has(entities[j].id))
|
|
63
|
+
continue;
|
|
64
|
+
// Same type required
|
|
65
|
+
if (entities[i].type.toLowerCase() !== entities[j].type.toLowerCase())
|
|
66
|
+
continue;
|
|
67
|
+
const sim = nameSimilarity(entities[i].name, entities[j].name);
|
|
68
|
+
// Only auto-merge at very high confidence (0.9+)
|
|
69
|
+
if (sim >= 0.9) {
|
|
70
|
+
// Keep the longer/more descriptive name
|
|
71
|
+
const [keep, remove] = entities[i].name.length >= entities[j].name.length
|
|
72
|
+
? [entities[i], entities[j]]
|
|
73
|
+
: [entities[j], entities[i]];
|
|
74
|
+
mergeEntities(engine, keep.id, remove.id);
|
|
75
|
+
merged.add(remove.id);
|
|
76
|
+
mergeCount++;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return mergeCount;
|
|
81
|
+
}
|
|
46
82
|
/**
|
|
47
83
|
* Simple name similarity using normalized Levenshtein distance.
|
|
48
84
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dedup.js","sourceRoot":"","sources":["../../../src/extract/dedup.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAmB,EACnB,SAAS,GAAG,IAAI;IAEhB,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACvD,MAAM,UAAU,GAAuE,EAAE,CAAC;IAC1F,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IAEpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAAE,SAAS;QAE5C,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAAE,SAAS;YAE5C,kBAAkB;YAClB,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE;gBAAE,SAAS;YAEhF,MAAM,GAAG,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/D,IAAI,GAAG,IAAI,SAAS,EAAE,CAAC;gBACrB,UAAU,CAAC,IAAI,CAAC;oBACd,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;oBACnB,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;oBACxB,UAAU,EAAE,GAAG;iBAChB,CAAC,CAAC;gBACH,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,MAAmB,EACnB,MAAc,EACd,OAAe;IAEf,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAElC,
|
|
1
|
+
{"version":3,"file":"dedup.js","sourceRoot":"","sources":["../../../src/extract/dedup.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAmB,EACnB,SAAS,GAAG,IAAI;IAEhB,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACvD,MAAM,UAAU,GAAuE,EAAE,CAAC;IAC1F,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IAEpC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAAE,SAAS;QAE5C,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,IAAI,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAAE,SAAS;YAE5C,kBAAkB;YAClB,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE;gBAAE,SAAS;YAEhF,MAAM,GAAG,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/D,IAAI,GAAG,IAAI,SAAS,EAAE,CAAC;gBACrB,UAAU,CAAC,IAAI,CAAC;oBACd,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;oBACnB,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC;oBACxB,UAAU,EAAE,GAAG;iBAChB,CAAC,CAAC;gBACH,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,MAAmB,EACnB,MAAc,EACd,OAAe;IAEf,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACxC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IAElC,qDAAqD;IACrD,MAAM,WAAW,GAAG,EAAE,GAAG,KAAK,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;IAChE,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC;IAEzD,2CAA2C;IAC3C,MAAM,CAAC,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAE9C,uBAAuB;IACvB,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAE7B,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,MAAmB;IAC3C,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACvD,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAAE,SAAS;QAEzC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAAE,SAAS;YAEzC,qBAAqB;YACrB,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE;gBAAE,SAAS;YAEhF,MAAM,GAAG,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAE/D,iDAAiD;YACjD,IAAI,GAAG,IAAI,GAAG,EAAE,CAAC;gBACf,wCAAwC;gBACxC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;oBACvE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAC5B,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE/B,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;gBAC1C,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBACtB,UAAU,EAAE,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,CAAS,EAAE,CAAS;IAC1C,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAClC,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;IAElC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,GAAG,CAAC;IAE1B,kCAAkC;IAClC,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QAAE,OAAO,GAAG,CAAC;IAEnD,uBAAuB;IACvB,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IAC9C,OAAO,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,GAAG,MAAM,CAAC;AAClD,CAAC;AAED,SAAS,WAAW,CAAC,CAAS,EAAE,CAAS;IACvC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IACnB,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;IACnB,MAAM,EAAE,GAAe,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;QAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;QAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAE1C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAC9B,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBAClB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../../src/extract/extractor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAU,MAAM,qBAAqB,CAAC;AAE1D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../../../src/extract/extractor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAU,MAAM,qBAAqB,CAAC;AAE1D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,aAAa,EAAE,iBAAiB,EAAE,CAAC;CACpC;AA6HD;;GAEG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA4D7F"}
|
|
@@ -16,14 +16,18 @@ Rules:
|
|
|
16
16
|
6. Do NOT hallucinate entities not mentioned or strongly implied in the text
|
|
17
17
|
7. Normalize entity names (capitalize properly, use full names when available)
|
|
18
18
|
8. Use UPPER_SNAKE_CASE for relationship types (WORKS_ON, USES, OWNS, etc.)
|
|
19
|
+
9. Extract temporal context when mentioned (dates, timeframes, "last year", "in 2024", "recently"). Store as properties: {"when": "2024", "temporal": "joined in 2024"}
|
|
20
|
+
10. For relationships with time context, include a "when" property: {"from": "X", "relation": "JOINED", "to": "Y", "when": "2024"}
|
|
21
|
+
11. Do NOT extract tokens, API keys, passwords, hashes, or secrets as entities
|
|
22
|
+
12. Do NOT extract CLI commands (/new, /reset, /status) as entities
|
|
19
23
|
${domainContext}
|
|
20
24
|
Return ONLY valid JSON (no markdown, no explanation):
|
|
21
25
|
{
|
|
22
26
|
"entities": [
|
|
23
|
-
{"name": "Entity Name", "type": "Type", "properties": {}, "confidence": 0.9}
|
|
27
|
+
{"name": "Entity Name", "type": "Type", "properties": {"role": "CTO", "when": "2024"}, "confidence": 0.9}
|
|
24
28
|
],
|
|
25
29
|
"relationships": [
|
|
26
|
-
{"from": "Entity A", "relation": "RELATION_TYPE", "to": "Entity B", "fromType": "TypeA", "toType": "TypeB", "confidence": 0.85}
|
|
30
|
+
{"from": "Entity A", "relation": "RELATION_TYPE", "to": "Entity B", "fromType": "TypeA", "toType": "TypeB", "confidence": 0.85, "when": "optional temporal context"}
|
|
27
31
|
]
|
|
28
32
|
}
|
|
29
33
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractor.js","sourceRoot":"","sources":["../../../src/extract/extractor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"extractor.js","sourceRoot":"","sources":["../../../src/extract/extractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/graph/engine.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,EAAE,CAAoB;gBAElB,MAAM,EAAE,MAAM;IAO1B,SAAS,CACP,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,UAAU,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,EACxC,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO,GACrD,MAAM;
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/graph/engine.ts"],"names":[],"mappings":"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"}
|
package/dist/src/graph/engine.js
CHANGED
|
@@ -10,7 +10,8 @@ export class GraphEngine {
|
|
|
10
10
|
addEntity(name, type, properties = {}, options = {}) {
|
|
11
11
|
const existing = this.findEntityByName(name, type);
|
|
12
12
|
if (existing) {
|
|
13
|
-
//
|
|
13
|
+
// Increment mention count + update
|
|
14
|
+
this.db.prepare(`UPDATE entities SET mention_count = mention_count + 1 WHERE id = ?`).run(existing.id);
|
|
14
15
|
return this.updateEntity(existing.id, { properties, ...options });
|
|
15
16
|
}
|
|
16
17
|
const id = `e-${nanoid(12)}`;
|
|
@@ -56,11 +57,20 @@ export class GraphEngine {
|
|
|
56
57
|
const result = this.db.prepare(`DELETE FROM entities WHERE id = ?`).run(id);
|
|
57
58
|
return result.changes > 0;
|
|
58
59
|
}
|
|
60
|
+
reassignRelationships(fromEntityId, toEntityId) {
|
|
61
|
+
const now = new Date().toISOString();
|
|
62
|
+
const r1 = this.db.prepare(`UPDATE relationships SET from_id = ?, updated_at = ? WHERE from_id = ?`).run(toEntityId, now, fromEntityId);
|
|
63
|
+
const r2 = this.db.prepare(`UPDATE relationships SET to_id = ?, updated_at = ? WHERE to_id = ?`).run(toEntityId, now, fromEntityId);
|
|
64
|
+
// Remove self-referencing relationships that may have been created
|
|
65
|
+
this.db.prepare(`DELETE FROM relationships WHERE from_id = to_id`).run();
|
|
66
|
+
return r1.changes + r2.changes;
|
|
67
|
+
}
|
|
59
68
|
listEntities(options = {}) {
|
|
60
69
|
const { type, limit = 100, offset = 0 } = options;
|
|
70
|
+
// Sort by relevance: mention_count DESC, then updated_at DESC
|
|
61
71
|
const query = type
|
|
62
|
-
? `SELECT * FROM entities WHERE type = ? COLLATE NOCASE ORDER BY updated_at DESC LIMIT ? OFFSET ?`
|
|
63
|
-
: `SELECT * FROM entities ORDER BY updated_at DESC LIMIT ? OFFSET ?`;
|
|
72
|
+
? `SELECT * FROM entities WHERE type = ? COLLATE NOCASE ORDER BY mention_count DESC, updated_at DESC LIMIT ? OFFSET ?`
|
|
73
|
+
: `SELECT * FROM entities ORDER BY mention_count DESC, updated_at DESC LIMIT ? OFFSET ?`;
|
|
64
74
|
const rows = type
|
|
65
75
|
? this.db.prepare(query).all(type, limit, offset)
|
|
66
76
|
: this.db.prepare(query).all(limit, offset);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/graph/engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/graph/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/graph/schema.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/graph/schema.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAqFtC,qBAAa,aAAa;IACxB,OAAO,CAAC,EAAE,CAAoB;gBAElB,MAAM,EAAE,MAAM;IAU1B,qCAAqC;IACrC,UAAU,IAAI,QAAQ,CAAC,QAAQ;IAqB/B,iCAAiC;IACjC,UAAU,IAAI,MAAM;IAWpB,gCAAgC;IAChC,KAAK,IAAI,IAAI;CAGd"}
|
package/dist/src/graph/schema.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import Database from 'better-sqlite3';
|
|
2
2
|
import { resolve } from 'node:path';
|
|
3
3
|
import { mkdirSync } from 'node:fs';
|
|
4
|
-
const SCHEMA_VERSION =
|
|
4
|
+
const SCHEMA_VERSION = 2;
|
|
5
5
|
const SCHEMA_SQL = `
|
|
6
6
|
-- Schema version tracking
|
|
7
7
|
CREATE TABLE IF NOT EXISTS _meta (
|
|
@@ -18,7 +18,8 @@ CREATE TABLE IF NOT EXISTS entities (
|
|
|
18
18
|
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
19
19
|
updated_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
20
20
|
source TEXT,
|
|
21
|
-
confidence REAL DEFAULT 1.0
|
|
21
|
+
confidence REAL DEFAULT 1.0,
|
|
22
|
+
mention_count INTEGER DEFAULT 1
|
|
22
23
|
);
|
|
23
24
|
|
|
24
25
|
-- Relationships (graph edges)
|
|
@@ -92,6 +93,15 @@ export class SchemaManager {
|
|
|
92
93
|
/** Initialize schema (idempotent) */
|
|
93
94
|
initialize() {
|
|
94
95
|
this.db.exec(SCHEMA_SQL);
|
|
96
|
+
// Migrations
|
|
97
|
+
const currentVersion = this.getVersion();
|
|
98
|
+
if (currentVersion < 2) {
|
|
99
|
+
// Add mention_count column if missing (v1 → v2)
|
|
100
|
+
try {
|
|
101
|
+
this.db.exec(`ALTER TABLE entities ADD COLUMN mention_count INTEGER DEFAULT 1`);
|
|
102
|
+
}
|
|
103
|
+
catch (_) { /* column already exists */ }
|
|
104
|
+
}
|
|
95
105
|
// Set schema version
|
|
96
106
|
const stmt = this.db.prepare(`INSERT OR REPLACE INTO _meta (key, value) VALUES ('schema_version', ?)`);
|
|
97
107
|
stmt.run(String(SCHEMA_VERSION));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/graph/schema.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,MAAM,cAAc,GAAG,CAAC,CAAC;AAEzB,MAAM,UAAU,GAAG
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/graph/schema.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,MAAM,cAAc,GAAG,CAAC,CAAC;AAEzB,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6ElB,CAAC;AAEF,MAAM,OAAO,aAAa;IAChB,EAAE,CAAoB;IAE9B,YAAY,MAAc;QACxB,0BAA0B;QAC1B,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAClC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEpC,IAAI,CAAC,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;QACrC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IACtC,CAAC;IAED,qCAAqC;IACrC,UAAU;QACR,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEzB,aAAa;QACb,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACzC,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;YACvB,gDAAgD;YAChD,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,iEAAiE,CAAC,CAAC;YAClF,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC,CAAC,2BAA2B,CAAC,CAAC;QAC7C,CAAC;QAED,qBAAqB;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAC1B,wEAAwE,CACzE,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC;QAEjC,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;IAED,iCAAiC;IACjC,UAAU;QACR,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CACzB,sDAAsD,CACvD,CAAC,GAAG,EAAmC,CAAC;YACzC,OAAO,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,KAAK;QACH,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;CACF"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -30,6 +30,8 @@ export interface MemoryGraphOptions {
|
|
|
30
30
|
export declare class MemoryGraph {
|
|
31
31
|
private engine;
|
|
32
32
|
private config;
|
|
33
|
+
private ingestCount;
|
|
34
|
+
private readonly DEDUP_INTERVAL;
|
|
33
35
|
constructor(options?: MemoryGraphOptions);
|
|
34
36
|
/**
|
|
35
37
|
* Ingest text: extract entities and relationships, store in graph.
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,MAAM,EAAE,KAAK,YAAY,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACjG,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAgB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAwB,KAAK,aAAa,EAAE,MAAM,8BAA8B,CAAC;AACxF,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAIlE,MAAM,WAAW,kBAAkB;IACjC,mCAAmC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wCAAwC;IACxC,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1B;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,MAAM,CAAS;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
|
@@ -5,7 +5,7 @@ import { hybridSearch } from './search/hybrid.js';
|
|
|
5
5
|
import { naturalLanguageQuery } from './search/natural-language.js';
|
|
6
6
|
import { exportGraph } from './sync/export.js';
|
|
7
7
|
import { importFromMemoryMd, importFromDirectory } from './sync/memory-md.js';
|
|
8
|
-
import { findDuplicates, mergeEntities } from './extract/dedup.js';
|
|
8
|
+
import { findDuplicates, mergeEntities, autoDedup } from './extract/dedup.js';
|
|
9
9
|
/**
|
|
10
10
|
* MemoryGraph — Domain-agnostic knowledge graph for AI agents.
|
|
11
11
|
*
|
|
@@ -24,6 +24,8 @@ import { findDuplicates, mergeEntities } from './extract/dedup.js';
|
|
|
24
24
|
export class MemoryGraph {
|
|
25
25
|
engine;
|
|
26
26
|
config;
|
|
27
|
+
ingestCount = 0;
|
|
28
|
+
DEDUP_INTERVAL = 10; // Run auto-dedup every N ingestions
|
|
27
29
|
constructor(options = {}) {
|
|
28
30
|
this.config = loadConfig(options.configPath);
|
|
29
31
|
// Apply inline overrides
|
|
@@ -48,15 +50,27 @@ export class MemoryGraph {
|
|
|
48
50
|
}
|
|
49
51
|
// Store relationships
|
|
50
52
|
for (const rel of result.relationships) {
|
|
53
|
+
const props = {};
|
|
54
|
+
if (rel.when)
|
|
55
|
+
props.when = rel.when;
|
|
51
56
|
this.engine.addRelation(rel.from, rel.relation, rel.to, {
|
|
52
57
|
source: options.source,
|
|
53
58
|
confidence: rel.confidence,
|
|
54
59
|
fromType: rel.fromType,
|
|
55
60
|
toType: rel.toType,
|
|
61
|
+
properties: props,
|
|
56
62
|
});
|
|
57
63
|
}
|
|
58
64
|
// Log extraction
|
|
59
65
|
this.engine.logExtraction(text, result.entities, result.relationships, options.sessionId);
|
|
66
|
+
// Auto-dedup every N ingestions
|
|
67
|
+
this.ingestCount++;
|
|
68
|
+
if (this.ingestCount % this.DEDUP_INTERVAL === 0) {
|
|
69
|
+
try {
|
|
70
|
+
autoDedup(this.engine);
|
|
71
|
+
}
|
|
72
|
+
catch (_) { /* non-blocking */ }
|
|
73
|
+
}
|
|
60
74
|
return result;
|
|
61
75
|
}
|
|
62
76
|
/**
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAmD,MAAM,mBAAmB,CAAC;AACjG,OAAO,EAAE,UAAU,EAAe,MAAM,sBAAsB,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAyB,MAAM,wBAAwB,CAAC;AAChF,OAAO,EAAE,YAAY,EAAqB,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAsB,MAAM,8BAA8B,CAAC;AACxF,OAAO,EAAE,WAAW,EAAqB,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/openclaw.plugin.json
CHANGED
|
@@ -3,7 +3,13 @@
|
|
|
3
3
|
"name": "Memory Graph",
|
|
4
4
|
"description": "Auto-builds a knowledge graph from conversations. Extracts entities and relationships from every message, stores in local SQLite, and exposes query/search/path tools to the agent.",
|
|
5
5
|
"contracts": {
|
|
6
|
-
"tools": [
|
|
6
|
+
"tools": [
|
|
7
|
+
"memory_graph_query",
|
|
8
|
+
"memory_graph_ingest",
|
|
9
|
+
"memory_graph_search",
|
|
10
|
+
"memory_graph_path",
|
|
11
|
+
"memory_graph_stats"
|
|
12
|
+
]
|
|
7
13
|
},
|
|
8
14
|
"activation": {
|
|
9
15
|
"onStartup": true
|
|
@@ -42,14 +48,43 @@
|
|
|
42
48
|
"items": {
|
|
43
49
|
"type": "object",
|
|
44
50
|
"properties": {
|
|
45
|
-
"name": {
|
|
46
|
-
|
|
47
|
-
|
|
51
|
+
"name": {
|
|
52
|
+
"type": "string"
|
|
53
|
+
},
|
|
54
|
+
"entityHints": {
|
|
55
|
+
"type": "array",
|
|
56
|
+
"items": {
|
|
57
|
+
"type": "string"
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
"relationHints": {
|
|
61
|
+
"type": "array",
|
|
62
|
+
"items": {
|
|
63
|
+
"type": "string"
|
|
64
|
+
}
|
|
65
|
+
}
|
|
48
66
|
}
|
|
49
67
|
},
|
|
50
68
|
"default": []
|
|
51
69
|
}
|
|
52
70
|
},
|
|
53
71
|
"additionalProperties": false
|
|
54
|
-
}
|
|
55
|
-
|
|
72
|
+
},
|
|
73
|
+
"build": {
|
|
74
|
+
"openclawVersion": ">=2026.3.24",
|
|
75
|
+
"entry": "dist/plugin/entry.js"
|
|
76
|
+
},
|
|
77
|
+
"version": "0.1.1",
|
|
78
|
+
"author": "KLSGG",
|
|
79
|
+
"repository": "https://github.com/KLSGG/agent-memory-graph",
|
|
80
|
+
"license": "MIT",
|
|
81
|
+
"keywords": [
|
|
82
|
+
"memory",
|
|
83
|
+
"knowledge-graph",
|
|
84
|
+
"entities",
|
|
85
|
+
"relationships",
|
|
86
|
+
"sqlite",
|
|
87
|
+
"llm",
|
|
88
|
+
"auto-ingest"
|
|
89
|
+
]
|
|
90
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agent-memory-graph",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Domain-agnostic knowledge graph memory for AI agents. Zero-config, local-first, SQLite-powered. Works as OpenClaw skill (CLI) or plugin (auto-hook).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/src/index.js",
|
|
@@ -15,6 +15,10 @@
|
|
|
15
15
|
"compat": {
|
|
16
16
|
"pluginApi": ">=2026.3.24-beta.2",
|
|
17
17
|
"minGatewayVersion": "2026.3.24-beta.2"
|
|
18
|
+
},
|
|
19
|
+
"build": {
|
|
20
|
+
"openclawVersion": ">=2026.3.24",
|
|
21
|
+
"entry": "dist/plugin/entry.js"
|
|
18
22
|
}
|
|
19
23
|
},
|
|
20
24
|
"scripts": {
|