@cartisien/engram 0.7.0 → 0.9.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/index.d.ts CHANGED
@@ -7,6 +7,13 @@ export interface MemoryEntry {
7
7
  timestamp: Date;
8
8
  tier: MemoryTier;
9
9
  consolidatedFrom?: string[];
10
+ importance: number;
11
+ certainty: number;
12
+ reinforcementCount: number;
13
+ lastVerified: Date;
14
+ memoryType: 'episodic' | 'semantic';
15
+ status: 'active' | 'superseded' | 'contradicted';
16
+ contradicts?: string[];
10
17
  metadata?: Record<string, unknown>;
11
18
  similarity?: number;
12
19
  }
@@ -47,9 +54,38 @@ export interface UserMemoryEntry {
47
54
  timestamp: Date;
48
55
  tier: MemoryTier;
49
56
  consolidatedFrom?: string[];
57
+ importance: number;
58
+ certainty: number;
59
+ reinforcementCount: number;
60
+ lastVerified: Date;
61
+ memoryType: 'episodic' | 'semantic';
62
+ status: 'active' | 'superseded' | 'contradicted';
50
63
  metadata?: Record<string, unknown>;
51
64
  similarity?: number;
52
65
  }
66
+ export interface ContradictionResult {
67
+ detected: boolean;
68
+ conflicting: Array<{
69
+ id: string;
70
+ content: string;
71
+ certainty: number;
72
+ similarity: number;
73
+ }>;
74
+ }
75
+ export interface ReinforcementResult {
76
+ id: string;
77
+ certainty: number;
78
+ reinforcementCount: number;
79
+ }
80
+ export interface TimelineEvent {
81
+ timestamp: Date;
82
+ event: 'created' | 'reinforced' | 'contradicted' | 'superseded' | 'consolidated';
83
+ memoryId: string;
84
+ content: string;
85
+ certainty?: number;
86
+ importance?: number;
87
+ relatedId?: string;
88
+ }
53
89
  export interface ConsolidateOptions {
54
90
  batch?: number;
55
91
  keep?: number;
@@ -75,6 +111,12 @@ export interface EngramConfig {
75
111
  consolidateKeep?: number;
76
112
  consolidateBatch?: number;
77
113
  consolidateModel?: string;
114
+ importanceScoring?: boolean;
115
+ importanceModel?: string;
116
+ importanceThreshold?: number;
117
+ contradictionDetection?: boolean;
118
+ contradictionModel?: string;
119
+ defaultMemoryType?: 'episodic' | 'semantic';
78
120
  }
79
121
  /**
80
122
  * Engram - Persistent semantic memory for AI agents
@@ -113,12 +155,32 @@ export declare class Engram {
113
155
  private consolidateKeep;
114
156
  private consolidateBatch;
115
157
  private consolidateModel;
158
+ private importanceScoring;
159
+ private importanceModel;
160
+ private importanceThreshold;
161
+ private contradictionDetection;
162
+ private contradictionModel;
163
+ private defaultMemoryType;
116
164
  constructor(config?: EngramConfig);
117
165
  private init;
118
166
  private embed;
119
167
  private extractGraph;
120
168
  private upsertNode;
121
169
  private storeEdge;
170
+ /**
171
+ * v0.8: Heuristic importance scorer — instant, no LLM needed.
172
+ * Signals: preferences/decisions/goals → high; small talk → low.
173
+ */
174
+ /** v0.9: Map a DB row to a full MemoryEntry */
175
+ private rowToEntry;
176
+ /** v0.9: Map a DB row to a full UserMemoryEntry */
177
+ private rowToUserEntry;
178
+ private scoreImportanceHeuristic;
179
+ /**
180
+ * v0.8: LLM importance scorer. Falls back to heuristic on failure.
181
+ */
182
+ private scoreImportanceLLM;
183
+ private scoreImportance;
122
184
  private cosineSimilarity;
123
185
  /**
124
186
  * Call LLM to summarize a batch of memories into consolidated entries.
@@ -176,6 +238,52 @@ export declare class Engram {
176
238
  graphNodes?: number;
177
239
  graphEdges?: number;
178
240
  }>;
241
+ /**
242
+ * v0.8: Manually set the importance of a memory (0.0–1.0).
243
+ * Use to protect a memory from consolidation or boost its recall rank.
244
+ *
245
+ * @example
246
+ * ```typescript
247
+ * await memory.setImportance(entryId, 0.95); // protected from consolidation
248
+ * await memory.setImportance(entryId, 0.1); // low priority, consolidate first
249
+ * ```
250
+ */
251
+ setImportance(id: string, importance: number): Promise<void>;
252
+ /**
253
+ * v0.9: Reinforce a memory — increase certainty and increment reinforcement count.
254
+ * Use when a memory is confirmed by the user or repeated evidence.
255
+ */
256
+ reinforce(id: string, boost?: number): Promise<ReinforcementResult>;
257
+ /**
258
+ * v0.9: Mark a memory as contradicted — lower certainty and update status.
259
+ * Optionally store the new contradicting content as a new memory.
260
+ * Returns the ID of the new memory if created.
261
+ */
262
+ contradict(sessionId: string, contradictedId: string, newContent: string, role?: 'user' | 'assistant' | 'system'): Promise<{
263
+ contradictedId: string;
264
+ newId?: string;
265
+ }>;
266
+ /**
267
+ * v0.9: Detect contradictions between new content and existing memories.
268
+ * Heuristic mode (default): keyword overlap + opposite polarity signals.
269
+ * LLM mode (opt-in via contradictionDetection: true): asks the model.
270
+ */
271
+ detectContradictions(sessionId: string, content: string, options?: {
272
+ limit?: number;
273
+ }): Promise<ContradictionResult>;
274
+ private detectContradictionsHeuristic;
275
+ private detectContradictionsLLM;
276
+ /**
277
+ * v0.9: Invalidate a memory — mark it as superseded so it's excluded from recall.
278
+ */
279
+ invalidate(id: string): Promise<void>;
280
+ /**
281
+ * v0.9: Get a chronological timeline of memory events for a session.
282
+ * Shows belief formation, reinforcement, contradiction, and consolidation.
283
+ */
284
+ timeline(sessionId: string, options?: {
285
+ limit?: number;
286
+ }): Promise<TimelineEvent[]>;
179
287
  private mapUserRow;
180
288
  /**
181
289
  * v0.5: Store a user-scoped memory that persists across all sessions.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -36,6 +36,12 @@ export class Engram {
36
36
  this.consolidateKeep = config.consolidateKeep ?? 20;
37
37
  this.consolidateBatch = config.consolidateBatch ?? 50;
38
38
  this.consolidateModel = config.consolidateModel || config.graphModel || 'qwen2.5:32b';
39
+ this.importanceScoring = config.importanceScoring === true;
40
+ this.importanceModel = config.importanceModel || config.graphModel || 'qwen2.5:32b';
41
+ this.importanceThreshold = config.importanceThreshold ?? 0.8;
42
+ this.contradictionDetection = config.contradictionDetection === true;
43
+ this.contradictionModel = config.contradictionModel || config.graphModel || 'qwen2.5:32b';
44
+ this.defaultMemoryType = config.defaultMemoryType ?? 'episodic';
39
45
  }
40
46
  async init() {
41
47
  if (this.initialized)
@@ -66,6 +72,13 @@ export class Engram {
66
72
  `ALTER TABLE memories ADD COLUMN embedding TEXT`,
67
73
  `ALTER TABLE memories ADD COLUMN tier TEXT NOT NULL DEFAULT 'working'`,
68
74
  `ALTER TABLE memories ADD COLUMN consolidated_from TEXT`,
75
+ `ALTER TABLE memories ADD COLUMN importance REAL NOT NULL DEFAULT 0.5`,
76
+ `ALTER TABLE memories ADD COLUMN certainty REAL NOT NULL DEFAULT 0.5`,
77
+ `ALTER TABLE memories ADD COLUMN reinforcement_count INTEGER NOT NULL DEFAULT 0`,
78
+ `ALTER TABLE memories ADD COLUMN last_verified INTEGER`,
79
+ `ALTER TABLE memories ADD COLUMN memory_type TEXT NOT NULL DEFAULT 'episodic'`,
80
+ `ALTER TABLE memories ADD COLUMN status TEXT NOT NULL DEFAULT 'active'`,
81
+ `ALTER TABLE memories ADD COLUMN contradicts TEXT`,
69
82
  ];
70
83
  for (const m of migrations) {
71
84
  try {
@@ -121,13 +134,33 @@ export class Engram {
121
134
  content_hash TEXT NOT NULL,
122
135
  embedding TEXT,
123
136
  tier TEXT NOT NULL DEFAULT 'working',
124
- consolidated_from TEXT
137
+ consolidated_from TEXT,
138
+ importance REAL NOT NULL DEFAULT 0.5,
139
+ certainty REAL NOT NULL DEFAULT 0.5,
140
+ reinforcement_count INTEGER NOT NULL DEFAULT 0,
141
+ last_verified INTEGER,
142
+ memory_type TEXT NOT NULL DEFAULT 'episodic',
143
+ status TEXT NOT NULL DEFAULT 'active'
125
144
  );
126
145
  CREATE INDEX IF NOT EXISTS idx_user_timestamp
127
146
  ON user_memories(user_id, timestamp DESC);
128
147
  CREATE INDEX IF NOT EXISTS idx_user_tier
129
148
  ON user_memories(user_id, tier);
130
149
  `);
150
+ // v0.9 migrations for user_memories
151
+ const userMigrations = [
152
+ `ALTER TABLE user_memories ADD COLUMN certainty REAL NOT NULL DEFAULT 0.5`,
153
+ `ALTER TABLE user_memories ADD COLUMN reinforcement_count INTEGER NOT NULL DEFAULT 0`,
154
+ `ALTER TABLE user_memories ADD COLUMN last_verified INTEGER`,
155
+ `ALTER TABLE user_memories ADD COLUMN memory_type TEXT NOT NULL DEFAULT 'episodic'`,
156
+ `ALTER TABLE user_memories ADD COLUMN status TEXT NOT NULL DEFAULT 'active'`,
157
+ ];
158
+ for (const m of userMigrations) {
159
+ try {
160
+ await this.db.exec(m);
161
+ }
162
+ catch { /* column exists */ }
163
+ }
131
164
  this.initialized = true;
132
165
  }
133
166
  async embed(text) {
@@ -201,6 +234,126 @@ JSON array:`;
201
234
  (id, session_id, from_entity, relation, to_entity, confidence, memory_id, created_at)
202
235
  VALUES (?, ?, ?, ?, ?, ?, ?, ?)`, [id, sessionId, edge.from, edge.relation, edge.to, edge.confidence ?? 1.0, memoryId, Date.now()]);
203
236
  }
237
+ /**
238
+ * v0.8: Heuristic importance scorer — instant, no LLM needed.
239
+ * Signals: preferences/decisions/goals → high; small talk → low.
240
+ */
241
+ /** v0.9: Map a DB row to a full MemoryEntry */
242
+ rowToEntry(row, similarity) {
243
+ return {
244
+ id: row.id,
245
+ sessionId: row.session_id,
246
+ content: row.content,
247
+ role: row.role,
248
+ timestamp: new Date(row.timestamp),
249
+ tier: row.tier || 'working',
250
+ importance: typeof row.importance === 'number' ? row.importance : 0.5,
251
+ certainty: typeof row.certainty === 'number' ? row.certainty : 0.5,
252
+ reinforcementCount: row.reinforcement_count ?? 0,
253
+ lastVerified: new Date(row.last_verified ?? row.timestamp),
254
+ memoryType: row.memory_type || 'episodic',
255
+ status: row.status || 'active',
256
+ ...(row.contradicts ? { contradicts: JSON.parse(row.contradicts) } : {}),
257
+ ...(row.consolidated_from ? { consolidatedFrom: JSON.parse(row.consolidated_from) } : {}),
258
+ ...(row.metadata ? { metadata: JSON.parse(row.metadata) } : {}),
259
+ ...(similarity !== undefined ? { similarity } : {}),
260
+ };
261
+ }
262
+ /** v0.9: Map a DB row to a full UserMemoryEntry */
263
+ rowToUserEntry(row, similarity) {
264
+ return {
265
+ id: row.id,
266
+ userId: row.user_id,
267
+ content: row.content,
268
+ role: row.role,
269
+ timestamp: new Date(row.timestamp),
270
+ tier: row.tier || 'working',
271
+ importance: typeof row.importance === 'number' ? row.importance : 0.5,
272
+ certainty: typeof row.certainty === 'number' ? row.certainty : 0.5,
273
+ reinforcementCount: row.reinforcement_count ?? 0,
274
+ lastVerified: new Date(row.last_verified ?? row.timestamp),
275
+ memoryType: row.memory_type || 'episodic',
276
+ status: row.status || 'active',
277
+ ...(row.consolidated_from ? { consolidatedFrom: JSON.parse(row.consolidated_from) } : {}),
278
+ ...(row.metadata ? { metadata: JSON.parse(row.metadata) } : {}),
279
+ ...(similarity !== undefined ? { similarity } : {}),
280
+ };
281
+ }
282
+ scoreImportanceHeuristic(content) {
283
+ const text = content.toLowerCase();
284
+ let score = 0.5;
285
+ // High-signal phrases
286
+ const highSignal = [
287
+ 'prefer', 'always', 'never', 'important', 'remember', 'critical',
288
+ 'must', 'need to', 'goal', 'decision', 'decided', 'agreed', 'confirmed',
289
+ 'password', 'api key', 'token', 'secret', 'deadline', 'due',
290
+ ];
291
+ // Low-signal phrases
292
+ const lowSignal = [
293
+ 'thanks', 'thank you', 'ok', 'okay', 'sure', 'got it', 'sounds good',
294
+ 'hello', 'hi', 'hey', 'bye', 'goodbye', 'lol', 'haha',
295
+ ];
296
+ const highMatches = highSignal.filter(s => text.includes(s)).length;
297
+ const lowMatches = lowSignal.filter(s => text.includes(s)).length;
298
+ score += highMatches * 0.08;
299
+ score -= lowMatches * 0.08;
300
+ // Dates and numbers → specificity → higher importance
301
+ const datePattern = /\b\d{4}-\d{2}-\d{2}\b|\b(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)\b/i;
302
+ if (datePattern.test(content))
303
+ score += 0.07;
304
+ if (/\$[\d,]+|\d+%|\b\d{4,}\b/.test(content))
305
+ score += 0.05;
306
+ // Longer = more specific = probably more important
307
+ if (content.length > 200)
308
+ score += 0.05;
309
+ if (content.length < 30)
310
+ score -= 0.05;
311
+ return Math.min(1.0, Math.max(0.0, Math.round(score * 100) / 100));
312
+ }
313
+ /**
314
+ * v0.8: LLM importance scorer. Falls back to heuristic on failure.
315
+ */
316
+ async scoreImportanceLLM(content) {
317
+ const prompt = `Rate the importance of this memory for an AI agent on a scale from 0.0 to 1.0.
318
+
319
+ High (0.8–1.0): user preferences, decisions, goals, constraints, credentials, deadlines, facts.
320
+ Medium (0.4–0.7): context, background info, situational details.
321
+ Low (0.0–0.3): casual remarks, pleasantries, obvious or temporary info.
322
+
323
+ Return ONLY a decimal number between 0.0 and 1.0. Nothing else.
324
+
325
+ Memory: "${content.slice(0, 300)}"`;
326
+ try {
327
+ const response = await fetch(`${this.embeddingUrl}/api/generate`, {
328
+ method: 'POST',
329
+ headers: { 'Content-Type': 'application/json' },
330
+ body: JSON.stringify({
331
+ model: this.importanceModel,
332
+ prompt,
333
+ stream: false,
334
+ options: { temperature: 0, num_predict: 8 }
335
+ }),
336
+ signal: AbortSignal.timeout(8000)
337
+ });
338
+ if (!response.ok)
339
+ return this.scoreImportanceHeuristic(content);
340
+ const data = await response.json();
341
+ const match = data.response.trim().match(/^(1\.0|0?\.\d+|\d+\.\d+)/);
342
+ if (!match)
343
+ return this.scoreImportanceHeuristic(content);
344
+ const score = parseFloat(match[1] ?? '0');
345
+ return isNaN(score) ? this.scoreImportanceHeuristic(content)
346
+ : Math.min(1.0, Math.max(0.0, Math.round(score * 100) / 100));
347
+ }
348
+ catch {
349
+ return this.scoreImportanceHeuristic(content);
350
+ }
351
+ }
352
+ async scoreImportance(content) {
353
+ return this.importanceScoring
354
+ ? this.scoreImportanceLLM(content)
355
+ : this.scoreImportanceHeuristic(content);
356
+ }
204
357
  cosineSimilarity(a, b) {
205
358
  let dot = 0, magA = 0, magB = 0;
206
359
  for (let i = 0; i < a.length; i++) {
@@ -274,25 +427,18 @@ JSON array of summary strings:`;
274
427
  const keep = options.keep ?? this.consolidateKeep;
275
428
  const model = options.model ?? this.consolidateModel;
276
429
  // Fetch working memories oldest-first, excluding the N most recent
277
- const rows = await this.db.all(`SELECT id, session_id, content, role, timestamp, metadata, tier, consolidated_from
430
+ // v0.8: also exclude high-importance memories (they survive consolidation)
431
+ const rows = await this.db.all(`SELECT id, session_id, content, role, timestamp, metadata, tier, consolidated_from, importance
278
432
  FROM memories
279
- WHERE session_id = ? AND tier = 'working'
433
+ WHERE session_id = ? AND tier = 'working' AND importance < ?
280
434
  ORDER BY timestamp ASC
281
- LIMIT ?`, [sessionId, batch + keep]);
435
+ LIMIT ?`, [sessionId, this.importanceThreshold, batch + keep]);
282
436
  // Drop the most recent `keep` entries — leave them as working memory
283
437
  const candidates = rows.slice(0, Math.max(0, rows.length - keep));
284
438
  if (candidates.length === 0) {
285
439
  return { summarized: 0, created: 0, archived: 0 };
286
440
  }
287
- const entries = candidates.map((row) => ({
288
- id: row.id,
289
- sessionId: row.session_id,
290
- content: row.content,
291
- role: row.role,
292
- timestamp: new Date(row.timestamp),
293
- tier: row.tier,
294
- metadata: row.metadata ? JSON.parse(row.metadata) : undefined,
295
- }));
441
+ const entries = candidates.map((row) => this.rowToEntry(row));
296
442
  // Get summaries from LLM
297
443
  const summaries = await this.summarizeMemories(entries, model);
298
444
  if (summaries.length === 0) {
@@ -352,15 +498,26 @@ JSON array of summary strings:`;
352
498
  if (vector)
353
499
  embeddingJson = JSON.stringify(vector);
354
500
  }
501
+ const importance = await this.scoreImportance(truncated);
502
+ const certainty = 0.5; // starts neutral; increases via reinforce()
503
+ const memoryType = this.defaultMemoryType;
504
+ const now = Date.now();
505
+ const contradicts = metadata?.contradicts;
355
506
  const entry = {
356
507
  id, sessionId, content: truncated, role,
357
- timestamp: new Date(), tier: 'working',
508
+ timestamp: new Date(now), tier: 'working', importance,
509
+ certainty, reinforcementCount: 0, lastVerified: new Date(now),
510
+ memoryType, status: 'active',
511
+ ...(contradicts !== undefined && { contradicts }),
358
512
  ...(metadata !== undefined && { metadata })
359
513
  };
360
514
  await this.db.run(`INSERT INTO memories
361
- (id, session_id, content, role, timestamp, metadata, content_hash, embedding, tier)
362
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, 'working')`, [id, sessionId, truncated, role, entry.timestamp.getTime(),
363
- metadata ? JSON.stringify(metadata) : null, contentHash, embeddingJson]);
515
+ (id, session_id, content, role, timestamp, metadata, content_hash, embedding, tier, importance,
516
+ certainty, reinforcement_count, last_verified, memory_type, status, contradicts)
517
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, 'working', ?, ?, 0, ?, ?, 'active', ?)`, [id, sessionId, truncated, role, now,
518
+ metadata ? JSON.stringify(metadata) : null, contentHash, embeddingJson, importance,
519
+ certainty, now, memoryType,
520
+ contradicts ? JSON.stringify(contradicts) : null]);
364
521
  // v0.3: Extract graph relationships
365
522
  if (this.graphMemory) {
366
523
  const edges = await this.extractGraph(truncated);
@@ -385,10 +542,12 @@ JSON array of summary strings:`;
385
542
  async recall(sessionId, query, limit = 10, options = {}) {
386
543
  await this.init();
387
544
  const tiers = options.tiers ?? ['working', 'long_term'];
545
+ const statusFilter = `AND status = 'active'`;
388
546
  const tierPlaceholders = tiers.map(() => '?').join(',');
389
547
  let sql = `
390
- SELECT id, session_id, content, role, timestamp, metadata, embedding, tier, consolidated_from
391
- FROM memories WHERE session_id = ? AND tier IN (${tierPlaceholders})
548
+ SELECT id, session_id, content, role, timestamp, metadata, embedding, tier, consolidated_from,
549
+ importance, certainty, reinforcement_count, last_verified, memory_type, status, contradicts
550
+ FROM memories WHERE session_id = ? AND tier IN (${tierPlaceholders}) AND status = 'active'
392
551
  `;
393
552
  const params = [sessionId, ...tiers];
394
553
  if (options.role) {
@@ -404,21 +563,7 @@ JSON array of summary strings:`;
404
563
  params.push(options.before.getTime());
405
564
  }
406
565
  const mapRow = (row, similarity) => {
407
- const entry = {
408
- id: row.id,
409
- sessionId: row.session_id,
410
- content: row.content,
411
- role: row.role,
412
- timestamp: new Date(row.timestamp),
413
- tier: row.tier,
414
- };
415
- if (row.consolidated_from)
416
- entry.consolidatedFrom = JSON.parse(row.consolidated_from);
417
- if (row.metadata)
418
- entry.metadata = JSON.parse(row.metadata);
419
- if (similarity !== undefined)
420
- entry.similarity = similarity;
421
- return entry;
566
+ return this.rowToEntry(row, similarity);
422
567
  };
423
568
  // Semantic search
424
569
  if (query && query.trim() && this.semanticSearch) {
@@ -434,9 +579,12 @@ JSON array of summary strings:`;
434
579
  }
435
580
  catch { /* skip */ }
436
581
  }
437
- return { row, similarity };
582
+ const importance = typeof row.importance === 'number' ? row.importance : 0.5;
583
+ // v0.8: blend similarity + importance for ranking
584
+ const rankScore = similarity * 0.7 + importance * 0.3;
585
+ return { row, similarity, rankScore };
438
586
  })
439
- .sort((a, b) => b.similarity - a.similarity)
587
+ .sort((a, b) => b.rankScore - a.rankScore)
440
588
  .slice(0, limit);
441
589
  const results = scored.map(({ row, similarity }) => mapRow(row, similarity));
442
590
  if (this.graphMemory && options.includeGraph !== false) {
@@ -480,6 +628,12 @@ JSON array of summary strings:`;
480
628
  role: u.role,
481
629
  timestamp: u.timestamp,
482
630
  tier: u.tier,
631
+ importance: u.importance,
632
+ certainty: u.certainty,
633
+ reinforcementCount: u.reinforcementCount,
634
+ lastVerified: u.lastVerified,
635
+ memoryType: u.memoryType,
636
+ status: u.status,
483
637
  metadata: { ...(u.metadata ?? {}), _userMemory: true, userId: u.userId },
484
638
  };
485
639
  if (u.consolidatedFrom)
@@ -510,19 +664,9 @@ JSON array of summary strings:`;
510
664
  if (graphMemoryIds.size === 0)
511
665
  return results;
512
666
  const placeholders = Array.from(graphMemoryIds).map(() => '?').join(',');
513
- const connectedRows = await this.db.all(`SELECT id, session_id, content, role, timestamp, metadata, tier, consolidated_from
667
+ const connectedRows = await this.db.all(`SELECT id, session_id, content, role, timestamp, metadata, tier, consolidated_from, importance
514
668
  FROM memories WHERE id IN (${placeholders})`, Array.from(graphMemoryIds));
515
- const connected = connectedRows.map((row) => ({
516
- id: row.id,
517
- sessionId: row.session_id,
518
- content: row.content,
519
- role: row.role,
520
- timestamp: new Date(row.timestamp),
521
- tier: row.tier,
522
- consolidatedFrom: row.consolidated_from ? JSON.parse(row.consolidated_from) : undefined,
523
- metadata: row.metadata ? JSON.parse(row.metadata) : undefined,
524
- similarity: 0
525
- }));
669
+ const connected = connectedRows.map((row) => this.rowToEntry(row, 0));
526
670
  return [...results, ...connected].slice(0, limit);
527
671
  }
528
672
  async graph(sessionId, entity) {
@@ -553,41 +697,23 @@ JSON array of summary strings:`;
553
697
  let relatedMemories = [];
554
698
  if (memoryIds.length > 0) {
555
699
  const placeholders = memoryIds.map(() => '?').join(',');
556
- const rows = await this.db.all(`SELECT id, session_id, content, role, timestamp, metadata, tier, consolidated_from
700
+ const rows = await this.db.all(`SELECT id, session_id, content, role, timestamp, metadata, tier, consolidated_from, importance,
701
+ certainty, reinforcement_count, last_verified, memory_type, status, contradicts
557
702
  FROM memories WHERE id IN (${placeholders})`, memoryIds);
558
- relatedMemories = rows.map((row) => ({
559
- id: row.id,
560
- sessionId: row.session_id,
561
- content: row.content,
562
- role: row.role,
563
- timestamp: new Date(row.timestamp),
564
- tier: row.tier,
565
- consolidatedFrom: row.consolidated_from ? JSON.parse(row.consolidated_from) : undefined,
566
- metadata: row.metadata ? JSON.parse(row.metadata) : undefined
567
- }));
703
+ relatedMemories = rows.map((row) => this.rowToEntry(row));
568
704
  }
569
705
  return { entity: ent, relationships, relatedMemories };
570
706
  }
571
707
  async history(sessionId, limit = 20) {
572
708
  await this.init();
573
709
  // Fetch newest N, then sort ASC for chronological display
574
- const rows = await this.db.all(`SELECT id, session_id, content, role, timestamp, metadata, tier, consolidated_from
710
+ const rows = await this.db.all(`SELECT id, session_id, content, role, timestamp, metadata, tier, consolidated_from, importance
575
711
  FROM (
576
712
  SELECT * FROM memories
577
713
  WHERE session_id = ? AND tier IN ('working', 'long_term')
578
714
  ORDER BY timestamp DESC LIMIT ?
579
715
  ) ORDER BY timestamp ASC`, [sessionId, limit]);
580
- return rows.map((row) => {
581
- const entry = {
582
- id: row.id, sessionId: row.session_id, content: row.content,
583
- role: row.role, timestamp: new Date(row.timestamp), tier: row.tier,
584
- };
585
- if (row.consolidated_from)
586
- entry.consolidatedFrom = JSON.parse(row.consolidated_from);
587
- if (row.metadata)
588
- entry.metadata = JSON.parse(row.metadata);
589
- return entry;
590
- });
716
+ return rows.map((row) => this.rowToEntry(row));
591
717
  }
592
718
  async forget(sessionId, options) {
593
719
  await this.init();
@@ -636,23 +762,225 @@ JSON array of summary strings:`;
636
762
  }
637
763
  return result;
638
764
  }
765
+ /**
766
+ * v0.8: Manually set the importance of a memory (0.0–1.0).
767
+ * Use to protect a memory from consolidation or boost its recall rank.
768
+ *
769
+ * @example
770
+ * ```typescript
771
+ * await memory.setImportance(entryId, 0.95); // protected from consolidation
772
+ * await memory.setImportance(entryId, 0.1); // low priority, consolidate first
773
+ * ```
774
+ */
775
+ async setImportance(id, importance) {
776
+ await this.init();
777
+ const clamped = Math.min(1.0, Math.max(0.0, importance));
778
+ // Try both memories and user_memories tables
779
+ await this.db.run(`UPDATE memories SET importance = ? WHERE id = ?`, [clamped, id]);
780
+ await this.db.run(`UPDATE user_memories SET importance = ? WHERE id = ?`, [clamped, id]);
781
+ }
782
+ // ── v0.9: Belief Revision ─────────────────────────────────────────────────
783
+ /**
784
+ * v0.9: Reinforce a memory — increase certainty and increment reinforcement count.
785
+ * Use when a memory is confirmed by the user or repeated evidence.
786
+ */
787
+ async reinforce(id, boost = 0.15) {
788
+ await this.init();
789
+ const now = Date.now();
790
+ await this.db.run(`UPDATE memories
791
+ SET certainty = MIN(1.0, certainty + ?),
792
+ reinforcement_count = reinforcement_count + 1,
793
+ last_verified = ?
794
+ WHERE id = ?`, [boost, now, id]);
795
+ await this.db.run(`UPDATE user_memories
796
+ SET certainty = MIN(1.0, certainty + ?),
797
+ reinforcement_count = reinforcement_count + 1,
798
+ last_verified = ?
799
+ WHERE id = ?`, [boost, now, id]);
800
+ const row = await this.db.get(`SELECT id, certainty, reinforcement_count FROM memories WHERE id = ?
801
+ UNION SELECT id, certainty, reinforcement_count FROM user_memories WHERE id = ?`, [id, id]);
802
+ return {
803
+ id,
804
+ certainty: row?.certainty ?? 0.5,
805
+ reinforcementCount: row?.reinforcement_count ?? 0,
806
+ };
807
+ }
808
+ /**
809
+ * v0.9: Mark a memory as contradicted — lower certainty and update status.
810
+ * Optionally store the new contradicting content as a new memory.
811
+ * Returns the ID of the new memory if created.
812
+ */
813
+ async contradict(sessionId, contradictedId, newContent, role = 'user') {
814
+ await this.init();
815
+ const now = Date.now();
816
+ // Lower certainty on the old memory, mark contradicted
817
+ await this.db.run(`UPDATE memories
818
+ SET certainty = MAX(0.0, certainty - 0.25),
819
+ status = 'contradicted',
820
+ last_verified = ?
821
+ WHERE id = ?`, [now, contradictedId]);
822
+ if (!newContent.trim())
823
+ return { contradictedId };
824
+ // Store new memory linking back to what it contradicts
825
+ const entry = await this.remember(sessionId, newContent, role, {
826
+ contradicts: [contradictedId],
827
+ });
828
+ return { contradictedId, newId: entry.id };
829
+ }
830
+ /**
831
+ * v0.9: Detect contradictions between new content and existing memories.
832
+ * Heuristic mode (default): keyword overlap + opposite polarity signals.
833
+ * LLM mode (opt-in via contradictionDetection: true): asks the model.
834
+ */
835
+ async detectContradictions(sessionId, content, options = {}) {
836
+ await this.init();
837
+ const limit = options.limit ?? 20;
838
+ // Pull recent active memories
839
+ const rows = await this.db.all(`SELECT id, content, certainty FROM memories
840
+ WHERE session_id = ? AND tier IN ('working', 'long_term') AND status = 'active'
841
+ ORDER BY timestamp DESC LIMIT ?`, [sessionId, limit]);
842
+ if (rows.length === 0)
843
+ return { detected: false, conflicting: [] };
844
+ if (this.contradictionDetection) {
845
+ return this.detectContradictionsLLM(content, rows);
846
+ }
847
+ return this.detectContradictionsHeuristic(content, rows);
848
+ }
849
+ detectContradictionsHeuristic(content, rows) {
850
+ const negators = ['not', "don't", "doesn't", "won't", 'never', 'no longer', 'stopped', 'switched', 'instead'];
851
+ const preferenceWords = ['prefer', 'like', 'use', 'love', 'want', 'need', 'hate', 'dislike'];
852
+ const contentLower = content.toLowerCase();
853
+ const contentHasNegation = negators.some(n => contentLower.includes(n));
854
+ const contentTokens = new Set(contentLower.split(/\W+/).filter(t => t.length > 3));
855
+ const conflicting = [];
856
+ for (const row of rows) {
857
+ const rowLower = row.content.toLowerCase();
858
+ const rowTokens = new Set(rowLower.split(/\W+/).filter((t) => t.length > 3));
859
+ const rowHasNegation = negators.some(n => rowLower.includes(n));
860
+ // Overlap score
861
+ let overlap = 0;
862
+ for (const t of contentTokens) {
863
+ if (rowTokens.has(t))
864
+ overlap++;
865
+ }
866
+ const similarity = overlap / Math.max(contentTokens.size, rowTokens.size, 1);
867
+ // Check for shared preference words + negation polarity flip
868
+ const bothHavePreference = preferenceWords.some(p => contentLower.includes(p) && rowLower.includes(p));
869
+ const polarityFlip = (contentHasNegation && !rowHasNegation) ||
870
+ (!contentHasNegation && rowHasNegation);
871
+ if (similarity > 0.3 && bothHavePreference && polarityFlip) {
872
+ conflicting.push({ id: row.id, content: row.content, certainty: row.certainty, similarity });
873
+ }
874
+ }
875
+ return { detected: conflicting.length > 0, conflicting };
876
+ }
877
+ async detectContradictionsLLM(content, rows) {
878
+ const numbered = rows
879
+ .map((r, i) => `[${i + 1}] (id:${r.id}) ${r.content}`)
880
+ .join('\n');
881
+ const prompt = `Does the new statement contradict any of the existing memories? ` +
882
+ `Reply with a JSON object: { "contradictions": [{ "index": N, "reason": "..." }] } or { "contradictions": [] }.\n\n` +
883
+ `New statement: "${content}"\n\nExisting memories:
884
+ ${numbered}
885
+
886
+ JSON:`;
887
+ let llmResult = null;
888
+ try {
889
+ const resp = await fetch(`${this.embeddingUrl}/api/generate`, {
890
+ method: 'POST',
891
+ headers: { 'Content-Type': 'application/json' },
892
+ body: JSON.stringify({ model: this.contradictionModel, prompt, stream: false, options: { temperature: 0, num_predict: 200 } }),
893
+ signal: AbortSignal.timeout(8000),
894
+ });
895
+ if (resp.ok)
896
+ llmResult = await resp.json();
897
+ }
898
+ catch { /* timeout / network */ }
899
+ if (!llmResult)
900
+ return this.detectContradictionsHeuristic(content, rows);
901
+ try {
902
+ const match = llmResult.response.match(/\{[\s\S]*\}/);
903
+ if (!match)
904
+ return { detected: false, conflicting: [] };
905
+ const parsed = JSON.parse(match[0]);
906
+ const conflicting = parsed.contradictions
907
+ .map((c) => {
908
+ const row = rows[c.index - 1];
909
+ return row ? { id: row.id, content: row.content, certainty: row.certainty, similarity: 0.8 } : null;
910
+ })
911
+ .filter((x) => x !== null);
912
+ return { detected: conflicting.length > 0, conflicting };
913
+ }
914
+ catch {
915
+ return this.detectContradictionsHeuristic(content, rows);
916
+ }
917
+ }
918
+ /**
919
+ * v0.9: Invalidate a memory — mark it as superseded so it's excluded from recall.
920
+ */
921
+ async invalidate(id) {
922
+ await this.init();
923
+ await this.db.run(`UPDATE memories SET status = 'superseded', last_verified = ? WHERE id = ?`, [Date.now(), id]);
924
+ await this.db.run(`UPDATE user_memories SET status = 'superseded', last_verified = ? WHERE id = ?`, [Date.now(), id]);
925
+ }
926
+ /**
927
+ * v0.9: Get a chronological timeline of memory events for a session.
928
+ * Shows belief formation, reinforcement, contradiction, and consolidation.
929
+ */
930
+ async timeline(sessionId, options = {}) {
931
+ await this.init();
932
+ const limit = options.limit ?? 50;
933
+ const rows = await this.db.all(`SELECT id, content, timestamp, certainty, importance, status, tier, consolidated_from,
934
+ reinforcement_count, last_verified
935
+ FROM memories
936
+ WHERE session_id = ?
937
+ ORDER BY timestamp ASC LIMIT ?`, [sessionId, limit]);
938
+ const events = [];
939
+ for (const row of rows) {
940
+ // Creation event
941
+ events.push({
942
+ timestamp: new Date(row.timestamp),
943
+ event: row.tier === 'long_term' ? 'consolidated' : 'created',
944
+ memoryId: row.id,
945
+ content: row.content,
946
+ certainty: row.certainty,
947
+ importance: row.importance,
948
+ });
949
+ // Status change events
950
+ if (row.status === 'contradicted') {
951
+ events.push({
952
+ timestamp: new Date(row.timestamp + 1),
953
+ event: 'contradicted',
954
+ memoryId: row.id,
955
+ content: row.content,
956
+ certainty: row.certainty,
957
+ });
958
+ }
959
+ else if (row.status === 'superseded') {
960
+ events.push({
961
+ timestamp: new Date(row.timestamp + 1),
962
+ event: 'superseded',
963
+ memoryId: row.id,
964
+ content: row.content,
965
+ certainty: row.certainty,
966
+ });
967
+ }
968
+ // Reinforcement indicator (certainty > 0.65)
969
+ if (row.reinforcement_count > 0) {
970
+ events.push({
971
+ timestamp: new Date((row.last_verified ?? row.timestamp)),
972
+ event: 'reinforced',
973
+ memoryId: row.id,
974
+ content: row.content,
975
+ certainty: row.certainty,
976
+ });
977
+ }
978
+ }
979
+ return events.sort((a, b) => a.timestamp.getTime() - b.timestamp.getTime());
980
+ }
639
981
  // ── v0.5: User-scoped memory (cross-session) ──────────────────────────────
640
982
  mapUserRow(row, similarity) {
641
- const entry = {
642
- id: row.id,
643
- userId: row.user_id,
644
- content: row.content,
645
- role: row.role,
646
- timestamp: new Date(row.timestamp),
647
- tier: row.tier,
648
- };
649
- if (row.consolidated_from)
650
- entry.consolidatedFrom = JSON.parse(row.consolidated_from);
651
- if (row.metadata)
652
- entry.metadata = JSON.parse(row.metadata);
653
- if (similarity !== undefined)
654
- entry.similarity = similarity;
655
- return entry;
983
+ return this.rowToUserEntry(row, similarity);
656
984
  }
657
985
  /**
658
986
  * v0.5: Store a user-scoped memory that persists across all sessions.
@@ -682,13 +1010,19 @@ JSON array of summary strings:`;
682
1010
  if (vector)
683
1011
  embeddingJson = JSON.stringify(vector);
684
1012
  }
1013
+ const importance = await this.scoreImportance(truncated);
1014
+ const now = Date.now();
685
1015
  await this.db.run(`INSERT INTO user_memories
686
- (id, user_id, content, role, timestamp, metadata, content_hash, embedding, tier)
687
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, 'working')`, [id, userId, truncated, role, Date.now(),
688
- metadata ? JSON.stringify(metadata) : null, contentHash, embeddingJson]);
1016
+ (id, user_id, content, role, timestamp, metadata, content_hash, embedding, tier, importance,
1017
+ certainty, reinforcement_count, last_verified, memory_type, status)
1018
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, 'working', ?, 0.5, 0, ?, ?, 'active')`, [id, userId, truncated, role, now,
1019
+ metadata ? JSON.stringify(metadata) : null, contentHash, embeddingJson, importance,
1020
+ now, this.defaultMemoryType]);
689
1021
  const entry = {
690
1022
  id, userId, content: truncated, role,
691
- timestamp: new Date(), tier: 'working',
1023
+ timestamp: new Date(now), tier: 'working', importance,
1024
+ certainty: 0.5, reinforcementCount: 0, lastVerified: new Date(now),
1025
+ memoryType: this.defaultMemoryType, status: 'active',
692
1026
  ...(metadata !== undefined && { metadata })
693
1027
  };
694
1028
  return entry;
@@ -700,6 +1034,7 @@ JSON array of summary strings:`;
700
1034
  async recallUser(userId, query, limit = 10, options = {}) {
701
1035
  await this.init();
702
1036
  const tiers = options.tiers ?? ['working', 'long_term'];
1037
+ const statusFilter = `AND status = 'active'`;
703
1038
  const tierPlaceholders = tiers.map(() => '?').join(',');
704
1039
  let sql = `SELECT * FROM user_memories WHERE user_id = ? AND tier IN (${tierPlaceholders})`;
705
1040
  const params = [userId, ...tiers];
@@ -770,18 +1105,14 @@ JSON array of summary strings:`;
770
1105
  const batch = options.batch ?? this.consolidateBatch;
771
1106
  const keep = options.keep ?? this.consolidateKeep;
772
1107
  const model = options.model ?? this.consolidateModel;
773
- const rows = await this.db.all(`SELECT * FROM user_memories WHERE user_id = ? AND tier = 'working'
774
- ORDER BY timestamp ASC LIMIT ?`, [userId, batch + keep]);
1108
+ const rows = await this.db.all(`SELECT * FROM user_memories WHERE user_id = ? AND tier = 'working' AND importance < ?
1109
+ ORDER BY timestamp ASC LIMIT ?`, [userId, this.importanceThreshold, batch + keep]);
775
1110
  const candidates = rows.slice(0, Math.max(0, rows.length - keep));
776
1111
  if (candidates.length === 0)
777
1112
  return { summarized: 0, created: 0, archived: 0 };
778
1113
  const entries = candidates.map((row) => ({
779
- id: row.id,
1114
+ ...this.rowToEntry(row),
780
1115
  sessionId: row.user_id,
781
- content: row.content,
782
- role: row.role,
783
- timestamp: new Date(row.timestamp),
784
- tier: row.tier,
785
1116
  }));
786
1117
  const summaries = await this.summarizeMemories(entries, model);
787
1118
  if (summaries.length === 0)
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cartisien/engram",
3
- "version": "0.7.0",
3
+ "version": "0.9.0",
4
4
  "description": "Persistent memory for AI assistants. SQLite-backed conversational memory with semantic search.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -44,4 +44,4 @@
44
44
  "engines": {
45
45
  "node": ">=18.0.0"
46
46
  }
47
- }
47
+ }