@devflow-tools/memory-engine 0.16.18 → 0.16.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/dist/explicit-memory-enricher.d.ts +9 -0
  2. package/dist/explicit-memory-enricher.d.ts.map +1 -1
  3. package/dist/explicit-memory-enricher.js +25 -5
  4. package/dist/explicit-memory-enricher.js.map +1 -1
  5. package/dist/hybrid-search.d.ts.map +1 -1
  6. package/dist/hybrid-search.js +20 -1
  7. package/dist/hybrid-search.js.map +1 -1
  8. package/dist/index.d.ts +3 -1
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +1 -0
  11. package/dist/index.js.map +1 -1
  12. package/dist/memory-engine.d.ts +8 -0
  13. package/dist/memory-engine.d.ts.map +1 -1
  14. package/dist/memory-engine.js +69 -28
  15. package/dist/memory-engine.js.map +1 -1
  16. package/dist/memory-gate.d.ts +8 -0
  17. package/dist/memory-gate.d.ts.map +1 -1
  18. package/dist/memory-gate.js +54 -31
  19. package/dist/memory-gate.js.map +1 -1
  20. package/dist/memory-relevance.js +2 -2
  21. package/dist/memory-store.d.ts +56 -0
  22. package/dist/memory-store.d.ts.map +1 -1
  23. package/dist/memory-store.js +348 -16
  24. package/dist/memory-store.js.map +1 -1
  25. package/dist/migrations/v10-to-v11.d.ts +3 -0
  26. package/dist/migrations/v10-to-v11.d.ts.map +1 -0
  27. package/dist/migrations/v10-to-v11.js +21 -0
  28. package/dist/migrations/v10-to-v11.js.map +1 -0
  29. package/dist/migrations/v9-to-v10.d.ts +3 -0
  30. package/dist/migrations/v9-to-v10.d.ts.map +1 -0
  31. package/dist/migrations/v9-to-v10.js +45 -0
  32. package/dist/migrations/v9-to-v10.js.map +1 -0
  33. package/dist/migrations/v9-to-v10.test.d.ts +2 -0
  34. package/dist/migrations/v9-to-v10.test.d.ts.map +1 -0
  35. package/dist/migrations/v9-to-v10.test.js +40 -0
  36. package/dist/migrations/v9-to-v10.test.js.map +1 -0
  37. package/dist/semantic-memory.d.ts +38 -0
  38. package/dist/semantic-memory.d.ts.map +1 -0
  39. package/dist/semantic-memory.js +205 -0
  40. package/dist/semantic-memory.js.map +1 -0
  41. package/dist/semantic-memory.test.d.ts +2 -0
  42. package/dist/semantic-memory.test.d.ts.map +1 -0
  43. package/dist/semantic-memory.test.js +39 -0
  44. package/dist/semantic-memory.test.js.map +1 -0
  45. package/dist/session-summarizer.d.ts +2 -1
  46. package/dist/session-summarizer.d.ts.map +1 -1
  47. package/dist/session-summarizer.js.map +1 -1
  48. package/package.json +3 -3
@@ -1,6 +1,7 @@
1
1
  import type { ExplicitMemoryEvidence } from './explicit-memory-enricher.js';
2
2
  import type { LeaseStore } from './lease-store.js';
3
3
  import { type ObservationSource, type ObservationType } from './observation-types.js';
4
+ import { type NormalizedSemanticMemory, type SemanticMemoryPolarity } from './semantic-memory.js';
4
5
  export interface MemoryRow {
5
6
  id: string;
6
7
  type: string;
@@ -57,6 +58,29 @@ export interface ObservationRow {
57
58
  failure_category: string | null;
58
59
  evidence_status: 'verified' | 'unverified';
59
60
  evidence_details: string;
61
+ semantic_subject: string;
62
+ semantic_predicate: string;
63
+ semantic_value: string;
64
+ semantic_polarity: SemanticMemoryPolarity;
65
+ semantic_key: string | null;
66
+ facet_key: string | null;
67
+ entities: string;
68
+ temporal: string | null;
69
+ reinforce_count: number;
70
+ last_reinforced_at: number | null;
71
+ }
72
+ export type SemanticObservationAction = 'ADD' | 'REINFORCE' | 'SUPERSEDE' | 'LINK' | 'HOLD';
73
+ export interface SemanticObservationWriteResult {
74
+ row: ObservationRow;
75
+ action: SemanticObservationAction;
76
+ supersededIds: string[];
77
+ linkedIds: string[];
78
+ }
79
+ export interface ObservationRelationRow {
80
+ source_observation_id: string;
81
+ target_observation_id: string;
82
+ type: 'related_to' | 'supersedes' | 'references';
83
+ created_at: number;
60
84
  }
61
85
  export interface EventRow {
62
86
  id: string;
@@ -105,6 +129,12 @@ export interface RetrievalAccessInput {
105
129
  rank?: number;
106
130
  score?: number;
107
131
  timestamp?: number;
132
+ workflowRunId?: string;
133
+ contextReceipt?: string;
134
+ toolEvidence?: string[];
135
+ outcomeReason?: string;
136
+ verificationReceipt?: string;
137
+ idempotencyKey?: string;
108
138
  }
109
139
  export interface RetrievalAccessRow {
110
140
  id: string;
@@ -120,6 +150,12 @@ export interface RetrievalAccessRow {
120
150
  rank: number | null;
121
151
  score: number | null;
122
152
  timestamp: number;
153
+ workflow_run_id: string | null;
154
+ context_receipt: string | null;
155
+ tool_evidence: string | null;
156
+ outcome_reason: string | null;
157
+ verification_receipt: string | null;
158
+ idempotency_key: string | null;
123
159
  }
124
160
  export interface MaintenanceCheckpoint {
125
161
  action: string;
@@ -312,7 +348,22 @@ export declare class MemoryStore {
312
348
  resolutionState?: 'current' | 'resolved' | 'superseded';
313
349
  evidenceStatus?: 'verified' | 'unverified';
314
350
  evidenceDetails?: Array<Record<string, unknown>>;
351
+ semantic?: NormalizedSemanticMemory;
315
352
  }): ObservationRow;
353
+ acceptSemanticObservation(obs: Parameters<MemoryStore['addObservation']>[0] & {
354
+ semantic: NormalizedSemanticMemory;
355
+ }): SemanticObservationWriteResult;
356
+ findCurrentObservationBySemanticKey(project: string, semanticKey: string): ObservationRow | null;
357
+ private findCurrentObservationByNarrative;
358
+ findCurrentObservationsByFacetKey(project: string, facetKey: string): ObservationRow[];
359
+ searchObservationEntities(project: string, entities: string[], limit?: number): ObservationRow[];
360
+ searchDefaultProjectObservationEntities(entities: string[], limit?: number): ObservationRow[];
361
+ listObservationRelations(observationId: string): ObservationRelationRow[];
362
+ private replaceObservationConcepts;
363
+ private replaceObservationEntities;
364
+ private findCurrentObservationIdsByEntities;
365
+ private addObservationRelation;
366
+ private supersedeSemanticFacetConflicts;
316
367
  addObservationWithEmbedding(obs: Parameters<MemoryStore['addObservation']>[0], embedding: Float32Array): ObservationRow;
317
368
  acceptExplicitPreference(input: {
318
369
  sessionId: string;
@@ -320,6 +371,7 @@ export declare class MemoryStore {
320
371
  title: string;
321
372
  content: string;
322
373
  sourceEventId?: string;
374
+ enrichment?: ExplicitMemoryEvidence;
323
375
  }): ObservationRow;
324
376
  applyExplicitMemoryEnrichment(observationId: string, enrichment: ExplicitMemoryEvidence): ObservationRow;
325
377
  reconcileExplicitPreferenceConflicts(project?: string): number;
@@ -393,6 +445,10 @@ export declare class MemoryStore {
393
445
  timestamp: number;
394
446
  }>;
395
447
  recordRetrievalAccess(input: RetrievalAccessInput): void;
448
+ getRetrievalOutcomeSignal(sourceType: 'memory' | 'observation', sourceId: string): {
449
+ positive: number;
450
+ negative: number;
451
+ };
396
452
  recordAccess(memoryId: string, accessType: string, sessionId?: string): void;
397
453
  incrementAccess(id: string): void;
398
454
  listRetrievalAccessLog(limit?: number): RetrievalAccessRow[];
@@ -1 +1 @@
1
- {"version":3,"file":"memory-store.d.ts","sourceRoot":"","sources":["../src/memory-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-store.d.ts","sourceRoot":"","sources":["../src/memory-store.ts"],"names":[],"mappings":"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"}
@@ -9,8 +9,11 @@ import { applyV4ToV5Migration } from './migrations/v4-to-v5.js';
9
9
  import { applyV6ToV7Migration } from './migrations/v6-to-v7.js';
10
10
  import { applyV7ToV8Migration } from './migrations/v7-to-v8.js';
11
11
  import { applyV8ToV9Migration } from './migrations/v8-to-v9.js';
12
+ import { applyV9ToV10Migration } from './migrations/v9-to-v10.js';
13
+ import { applyV10ToV11Migration } from './migrations/v10-to-v11.js';
12
14
  import { observationDedupKey, } from './observation-types.js';
13
15
  import { analysesConflict, analyzePreference, analyzePreferenceObservation, } from './preference-conflicts.js';
16
+ import { mergeSemanticEntities, normalizeEntityKey, normalizeSemanticMemory, } from './semantic-memory.js';
14
17
  // ── Schema ─────────────────────────────────────────────
15
18
  const SCHEMA_V2 = `
16
19
  -- ============================================================
@@ -176,7 +179,17 @@ CREATE TABLE IF NOT EXISTS observations (
176
179
  timestamp INTEGER NOT NULL,
177
180
  explicit_accepted_at INTEGER,
178
181
  evidence_status TEXT NOT NULL DEFAULT 'unverified',
179
- evidence_details TEXT NOT NULL DEFAULT '[]'
182
+ evidence_details TEXT NOT NULL DEFAULT '[]',
183
+ semantic_subject TEXT NOT NULL DEFAULT '',
184
+ semantic_predicate TEXT NOT NULL DEFAULT '',
185
+ semantic_value TEXT NOT NULL DEFAULT '',
186
+ semantic_polarity TEXT NOT NULL DEFAULT 'neutral',
187
+ semantic_key TEXT,
188
+ facet_key TEXT,
189
+ entities TEXT NOT NULL DEFAULT '[]',
190
+ temporal TEXT,
191
+ reinforce_count INTEGER NOT NULL DEFAULT 0,
192
+ last_reinforced_at INTEGER
180
193
  );
181
194
  CREATE INDEX IF NOT EXISTS idx_observations_session ON observations(session_id);
182
195
  CREATE INDEX IF NOT EXISTS idx_observations_project ON observations(project);
@@ -411,6 +424,8 @@ export class MemoryStore {
411
424
  applyV6ToV7Migration(this.db);
412
425
  applyV7ToV8Migration(this.db);
413
426
  applyV8ToV9Migration(this.db);
427
+ applyV9ToV10Migration(this.db);
428
+ applyV10ToV11Migration(this.db);
414
429
  this.repairOrphanSessions(rootPath);
415
430
  console.log('[MemoryStore] Schema initialized', {
416
431
  dbPath: this.dbPath,
@@ -1232,8 +1247,8 @@ export class MemoryStore {
1232
1247
  this.ensureSession(obs.sessionId, obs.project ?? this.defaultProjectRoot);
1233
1248
  const id = obs.id ?? `obs:${Date.now()}:${randomUUID().slice(0, 8)}`;
1234
1249
  const now = obs.timestamp ?? Date.now();
1235
- const dedupKey = observationDedupKey(obs.type, obs.title);
1236
- const duplicate = this.findObservationByDedupKey(dedupKey);
1250
+ const dedupKey = obs.semantic?.semanticKey ?? observationDedupKey(obs.type, obs.title);
1251
+ const duplicate = obs.semantic ? null : this.findObservationByDedupKey(dedupKey);
1237
1252
  if (duplicate) {
1238
1253
  this.linkObservationToEvents(duplicate.id, obs.sourceEventIds ?? []);
1239
1254
  this.incrementObservationAccess(duplicate.id, now);
@@ -1244,8 +1259,10 @@ export class MemoryStore {
1244
1259
  (id, session_id, project, type, title, narrative, facts, files, tools, concepts,
1245
1260
  importance, confidence, source, dedup_key, source_event_ids, timestamp, updated_at,
1246
1261
  quality_status, quarantine_reason, quality_details, quarantined_at,
1247
- failure_category, resolution_state, evidence_status, evidence_details)
1248
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
1262
+ failure_category, resolution_state, evidence_status, evidence_details,
1263
+ semantic_subject, semantic_predicate, semantic_value, semantic_polarity,
1264
+ semantic_key, facet_key, entities, temporal, reinforce_count, last_reinforced_at)
1265
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
1249
1266
  `).run(id, obs.sessionId, obs.project ?? this.defaultProjectRoot, obs.type, obs.title, obs.narrative ?? '', JSON.stringify(obs.facts ?? []), JSON.stringify(obs.files ?? []), JSON.stringify(obs.tools ?? []), JSON.stringify(obs.concepts ?? []), obs.importance ?? 5, obs.confidence ?? 0.5, obs.source ?? 'distill', dedupKey, JSON.stringify(obs.sourceEventIds ?? []), now, now, obs.qualityStatus ?? 'accepted', obs.quarantineReason ?? null, obs.qualityDetails ? JSON.stringify(obs.qualityDetails) : null, obs.qualityStatus === 'quarantined' ? now : null, obs.failureCategory ?? null, obs.resolutionState ?? 'current', obs.evidenceStatus
1250
1267
  ?? (obs.source === 'explicit_intent'
1251
1268
  ? 'unverified'
@@ -1255,7 +1272,7 @@ export class MemoryStore {
1255
1272
  kind: 'source_event',
1256
1273
  source,
1257
1274
  summary: 'Observation was accepted from an evidence-bound session event.',
1258
- }))));
1275
+ }))), obs.semantic?.subject ?? '', obs.semantic?.predicate ?? '', obs.semantic?.value ?? '', obs.semantic?.polarity ?? 'neutral', obs.semantic?.semanticKey ?? null, obs.semantic?.facetKey ?? null, JSON.stringify(obs.semantic?.entities ?? []), obs.semantic?.temporal ? JSON.stringify(obs.semantic.temporal) : null, 0, null);
1259
1276
  // Insert concept junction rows
1260
1277
  if (obs.concepts && obs.concepts.length > 0) {
1261
1278
  const insertConcept = this.db.prepare('INSERT OR IGNORE INTO observation_concepts (observation_id, concept) VALUES (?, ?)');
@@ -1263,11 +1280,184 @@ export class MemoryStore {
1263
1280
  insertConcept.run(id, concept);
1264
1281
  }
1265
1282
  }
1283
+ this.replaceObservationEntities(id, obs.project ?? this.defaultProjectRoot, obs.semantic?.entities ?? []);
1266
1284
  console.log('[MemoryStore] Observation added', {
1267
1285
  id, sessionId: obs.sessionId, type: obs.type, conceptCount: obs.concepts?.length ?? 0,
1268
1286
  });
1269
1287
  return this.getObservation(id);
1270
1288
  }
1289
+ acceptSemanticObservation(obs) {
1290
+ return this.db.transaction(() => {
1291
+ const project = obs.project ?? this.defaultProjectRoot;
1292
+ const now = obs.timestamp ?? Date.now();
1293
+ const exact = this.findCurrentObservationBySemanticKey(project, obs.semantic.semanticKey)
1294
+ ?? this.findCurrentObservationByNarrative(project, obs.narrative ?? '');
1295
+ if (exact) {
1296
+ const sourceEventIds = uniqueStrings([
1297
+ ...parseStringArray(exact.source_event_ids),
1298
+ ...(obs.sourceEventIds ?? []),
1299
+ ]);
1300
+ const facts = uniqueStrings([...parseStringArray(exact.facts), ...(obs.facts ?? [])]);
1301
+ const concepts = uniqueStrings([
1302
+ ...parseStringArray(exact.concepts),
1303
+ ...(obs.concepts ?? []),
1304
+ obs.semantic.subject,
1305
+ obs.semantic.predicate,
1306
+ obs.semantic.value,
1307
+ ...obs.semantic.entities.map(normalizeEntityKey),
1308
+ ]);
1309
+ const entities = mergeSemanticEntities(parseStringArray(exact.entities), obs.semantic.entities);
1310
+ const narrative = semanticRichness(obs.narrative ?? '') > semanticRichness(exact.narrative)
1311
+ ? obs.narrative ?? ''
1312
+ : exact.narrative;
1313
+ const title = semanticRichness(obs.title) > semanticRichness(exact.title) ? obs.title : exact.title;
1314
+ const contentChanged = exact.title !== title
1315
+ || exact.narrative !== narrative;
1316
+ this.db.prepare(`
1317
+ UPDATE observations
1318
+ SET type = ?, title = ?, narrative = ?, facts = ?, concepts = ?, importance = MAX(importance, ?),
1319
+ confidence = MAX(confidence, ?), source_event_ids = ?, updated_at = ?,
1320
+ access_count = access_count + 1, reinforce_count = reinforce_count + 1, last_reinforced_at = ?,
1321
+ source = CASE WHEN ? = 'explicit_intent' THEN 'explicit_intent' ELSE source END,
1322
+ quality_status = CASE WHEN quality_status = 'quarantined' AND ? = 'accepted' THEN 'accepted' ELSE quality_status END,
1323
+ quarantine_reason = CASE WHEN ? = 'accepted' THEN NULL ELSE quarantine_reason END,
1324
+ resolution_state = 'current', superseded_by_observation = NULL,
1325
+ semantic_subject = ?, semantic_predicate = ?, semantic_value = ?, semantic_polarity = ?,
1326
+ semantic_key = ?, facet_key = ?, dedup_key = ?, entities = ?,
1327
+ temporal = COALESCE(?, temporal), evidence_status = ?, evidence_details = ?,
1328
+ embedding = CASE WHEN ? = 1 THEN NULL ELSE embedding END
1329
+ WHERE id = ?
1330
+ `).run(obs.type, title, narrative, JSON.stringify(facts), JSON.stringify(concepts), obs.importance ?? 5, obs.confidence ?? 0.5, JSON.stringify(sourceEventIds), now, now, obs.source ?? 'distill', obs.qualityStatus ?? 'accepted', obs.qualityStatus ?? 'accepted', obs.semantic.subject, obs.semantic.predicate, obs.semantic.value, obs.semantic.polarity, obs.semantic.semanticKey, obs.semantic.facetKey, obs.semantic.semanticKey, JSON.stringify(entities), obs.semantic.temporal ? JSON.stringify(obs.semantic.temporal) : null, strongerEvidenceStatus(exact.evidence_status, obs.evidenceStatus), JSON.stringify(mergeEvidenceDetails(exact.evidence_details, obs.evidenceDetails ?? [])), contentChanged ? 1 : 0, exact.id);
1331
+ if (contentChanged) {
1332
+ this.db.prepare("DELETE FROM embeddings WHERE source_type = 'observation' AND source_id = ?").run(exact.id);
1333
+ }
1334
+ this.replaceObservationConcepts(exact.id, concepts);
1335
+ this.replaceObservationEntities(exact.id, project, entities);
1336
+ for (const eventId of obs.sourceEventIds ?? [])
1337
+ this.linkObservationToEvents(exact.id, [eventId]);
1338
+ const supersededIds = this.supersedeSemanticFacetConflicts(project, exact.id, obs.semantic, now);
1339
+ return { row: this.getObservation(exact.id), action: 'REINFORCE', supersededIds, linkedIds: [] };
1340
+ }
1341
+ const row = this.addObservation(obs);
1342
+ if ((obs.qualityStatus ?? 'accepted') === 'quarantined') {
1343
+ return { row, action: 'HOLD', supersededIds: [], linkedIds: [] };
1344
+ }
1345
+ const supersededIds = this.supersedeSemanticFacetConflicts(project, row.id, obs.semantic, now);
1346
+ const relatedIds = this.findCurrentObservationIdsByEntities(project, obs.semantic.entities, new Set([row.id, ...supersededIds])).slice(0, 12);
1347
+ for (const relatedId of relatedIds) {
1348
+ this.addObservationRelation(row.id, relatedId, 'related_to', now);
1349
+ }
1350
+ return {
1351
+ row: this.getObservation(row.id),
1352
+ action: supersededIds.length > 0 ? 'SUPERSEDE' : relatedIds.length > 0 ? 'LINK' : 'ADD',
1353
+ supersededIds,
1354
+ linkedIds: relatedIds,
1355
+ };
1356
+ })();
1357
+ }
1358
+ findCurrentObservationBySemanticKey(project, semanticKey) {
1359
+ return this.db.prepare(`
1360
+ SELECT * FROM observations
1361
+ WHERE project = ? AND semantic_key = ?
1362
+ ORDER BY CASE WHEN resolution_state = 'current' THEN 0 ELSE 1 END,
1363
+ COALESCE(explicit_accepted_at, timestamp) DESC, id DESC
1364
+ LIMIT 1
1365
+ `).get(project, semanticKey) ?? null;
1366
+ }
1367
+ findCurrentObservationByNarrative(project, narrative) {
1368
+ if (!narrative.trim())
1369
+ return null;
1370
+ return this.db.prepare(`
1371
+ SELECT * FROM observations
1372
+ WHERE project = ? AND narrative = ? AND resolution_state = 'current'
1373
+ AND quality_status = 'accepted'
1374
+ ORDER BY COALESCE(explicit_accepted_at, timestamp) DESC, id DESC
1375
+ LIMIT 1
1376
+ `).get(project, narrative) ?? null;
1377
+ }
1378
+ findCurrentObservationsByFacetKey(project, facetKey) {
1379
+ return this.db.prepare(`
1380
+ SELECT * FROM observations
1381
+ WHERE project = ? AND facet_key = ? AND resolution_state = 'current'
1382
+ AND quality_status = 'accepted'
1383
+ ORDER BY COALESCE(explicit_accepted_at, timestamp) DESC, id DESC
1384
+ `).all(project, facetKey);
1385
+ }
1386
+ searchObservationEntities(project, entities, limit = 30) {
1387
+ const normalized = uniqueStrings(entities.map(normalizeEntityKey)).filter(Boolean);
1388
+ if (normalized.length === 0)
1389
+ return [];
1390
+ const placeholders = normalized.map(() => '?').join(', ');
1391
+ return this.db.prepare(`
1392
+ SELECT o.*, COUNT(DISTINCT oe.normalized_entity) AS entity_match_count
1393
+ FROM observation_entities oe
1394
+ JOIN observations o ON o.id = oe.observation_id
1395
+ WHERE oe.project = ? AND oe.normalized_entity IN (${placeholders})
1396
+ AND o.quality_status = 'accepted' AND o.resolution_state = 'current'
1397
+ GROUP BY o.id
1398
+ ORDER BY entity_match_count DESC, COALESCE(o.explicit_accepted_at, o.timestamp) DESC
1399
+ LIMIT ?
1400
+ `).all(project, ...normalized, limit);
1401
+ }
1402
+ searchDefaultProjectObservationEntities(entities, limit = 30) {
1403
+ return this.searchObservationEntities(this.defaultProjectRoot, entities, limit);
1404
+ }
1405
+ listObservationRelations(observationId) {
1406
+ return this.db.prepare(`
1407
+ SELECT * FROM observation_relations
1408
+ WHERE source_observation_id = ? OR target_observation_id = ?
1409
+ ORDER BY created_at ASC, source_observation_id ASC, target_observation_id ASC
1410
+ `).all(observationId, observationId);
1411
+ }
1412
+ replaceObservationConcepts(observationId, concepts) {
1413
+ this.db.prepare('DELETE FROM observation_concepts WHERE observation_id = ?').run(observationId);
1414
+ const insert = this.db.prepare('INSERT OR IGNORE INTO observation_concepts (observation_id, concept) VALUES (?, ?)');
1415
+ for (const concept of uniqueStrings(concepts))
1416
+ insert.run(observationId, concept);
1417
+ }
1418
+ replaceObservationEntities(observationId, project, entities) {
1419
+ this.db.prepare('DELETE FROM observation_entities WHERE observation_id = ?').run(observationId);
1420
+ const insert = this.db.prepare(`
1421
+ INSERT OR IGNORE INTO observation_entities
1422
+ (observation_id, project, normalized_entity, display_entity)
1423
+ VALUES (?, ?, ?, ?)
1424
+ `);
1425
+ for (const entity of mergeSemanticEntities(entities)) {
1426
+ const normalized = normalizeEntityKey(entity);
1427
+ if (normalized)
1428
+ insert.run(observationId, project, normalized, entity);
1429
+ }
1430
+ }
1431
+ findCurrentObservationIdsByEntities(project, entities, excludedIds) {
1432
+ return this.searchObservationEntities(project, entities, 50)
1433
+ .map(observation => observation.id)
1434
+ .filter(id => !excludedIds.has(id));
1435
+ }
1436
+ addObservationRelation(sourceObservationId, targetObservationId, type, createdAt = Date.now()) {
1437
+ if (sourceObservationId === targetObservationId)
1438
+ return;
1439
+ this.db.prepare(`
1440
+ INSERT OR IGNORE INTO observation_relations
1441
+ (source_observation_id, target_observation_id, type, created_at)
1442
+ VALUES (?, ?, ?, ?)
1443
+ `).run(sourceObservationId, targetObservationId, type, createdAt);
1444
+ }
1445
+ supersedeSemanticFacetConflicts(project, winnerId, semantic, now) {
1446
+ const conflicts = this.findCurrentObservationsByFacetKey(project, semantic.facetKey)
1447
+ .filter(candidate => candidate.id !== winnerId)
1448
+ .filter(candidate => semanticObservationsConflict(candidate, semantic));
1449
+ const supersededIds = [];
1450
+ for (const conflict of conflicts) {
1451
+ this.db.prepare(`
1452
+ UPDATE observations
1453
+ SET resolution_state = 'superseded', superseded_by_observation = ?, dedup_key = NULL, updated_at = ?
1454
+ WHERE id = ? AND resolution_state = 'current'
1455
+ `).run(winnerId, now, conflict.id);
1456
+ this.addObservationRelation(winnerId, conflict.id, 'supersedes', now);
1457
+ supersededIds.push(conflict.id);
1458
+ }
1459
+ return supersededIds;
1460
+ }
1271
1461
  addObservationWithEmbedding(obs, embedding) {
1272
1462
  return this.db.transaction(() => {
1273
1463
  const row = this.addObservation(obs);
@@ -1276,6 +1466,67 @@ export class MemoryStore {
1276
1466
  })();
1277
1467
  }
1278
1468
  acceptExplicitPreference(input) {
1469
+ if (input.enrichment) {
1470
+ this.ensureSession(input.sessionId, input.project);
1471
+ const preferenceAnalysis = analyzePreference(input.content);
1472
+ const hold = preferenceAnalysis.status === 'ambiguous';
1473
+ const baseSemantic = semanticFromExplicitEnrichment(input.enrichment);
1474
+ const semantic = hold
1475
+ ? normalizeSemanticMemory({
1476
+ project: input.project,
1477
+ type: input.enrichment.type,
1478
+ title: input.enrichment.title,
1479
+ narrative: input.enrichment.narrative,
1480
+ subject: baseSemantic.subject,
1481
+ predicate: baseSemantic.predicate,
1482
+ value: input.content,
1483
+ polarity: 'neutral',
1484
+ entities: baseSemantic.entities,
1485
+ temporal: baseSemantic.temporal ?? undefined,
1486
+ })
1487
+ : baseSemantic;
1488
+ const result = this.acceptSemanticObservation({
1489
+ sessionId: input.sessionId,
1490
+ project: input.project,
1491
+ type: input.enrichment.type,
1492
+ title: input.enrichment.title,
1493
+ narrative: input.enrichment.narrative,
1494
+ facts: input.enrichment.facts,
1495
+ files: input.enrichment.files,
1496
+ tools: input.enrichment.tools,
1497
+ concepts: input.enrichment.concepts,
1498
+ importance: 10,
1499
+ confidence: 0.95,
1500
+ source: 'explicit_intent',
1501
+ sourceEventIds: input.sourceEventId ? [input.sourceEventId] : [],
1502
+ qualityStatus: hold ? 'quarantined' : 'accepted',
1503
+ quarantineReason: hold ? 'ambiguous_explicit_preference' : undefined,
1504
+ evidenceStatus: 'verified',
1505
+ evidenceDetails: [
1506
+ ...input.enrichment.evidence.map(item => ({ ...item })),
1507
+ ...(input.enrichment.evidence.length === 0 ? [{
1508
+ kind: 'source_event',
1509
+ source: input.sourceEventId ?? `explicit:${input.sessionId}`,
1510
+ summary: 'Observation was accepted from a direct explicit-memory request.',
1511
+ }] : []),
1512
+ ],
1513
+ semantic,
1514
+ });
1515
+ const latest = this.db.prepare(`
1516
+ SELECT MAX(COALESCE(explicit_accepted_at, timestamp)) AS latest
1517
+ FROM observations
1518
+ WHERE project = ? AND source = 'explicit_intent'
1519
+ `).get(input.project);
1520
+ const acceptedAt = Math.max(Date.now(), (latest.latest ?? 0) + 1);
1521
+ this.db.prepare(`
1522
+ UPDATE observations
1523
+ SET explicit_accepted_at = MAX(COALESCE(explicit_accepted_at, 0), ?), updated_at = MAX(updated_at, ?)
1524
+ WHERE id = ?
1525
+ `).run(acceptedAt, acceptedAt, result.row.id);
1526
+ if (input.sourceEventId)
1527
+ this.markEventsProcessed([input.sourceEventId]);
1528
+ return this.getObservation(result.row.id);
1529
+ }
1279
1530
  return this.db.transaction(() => {
1280
1531
  this.ensureSession(input.sessionId, input.project);
1281
1532
  const latest = this.db.prepare(`
@@ -1341,7 +1592,7 @@ export class MemoryStore {
1341
1592
  if (current.source !== 'explicit_intent') {
1342
1593
  throw new Error(`Observation ${observationId} is not an explicit memory`);
1343
1594
  }
1344
- const dedupKey = observationDedupKey(enrichment.type, enrichment.title);
1595
+ const dedupKey = enrichment.semanticKey;
1345
1596
  const collisions = this.db.prepare(`
1346
1597
  SELECT id, timestamp, explicit_accepted_at FROM observations
1347
1598
  WHERE project = ? AND dedup_key = ? AND id <> ?
@@ -1390,9 +1641,11 @@ export class MemoryStore {
1390
1641
  UPDATE observations
1391
1642
  SET type = ?, title = ?, narrative = ?, facts = ?, files = ?, tools = ?, concepts = ?,
1392
1643
  dedup_key = ?, evidence_status = ?, evidence_details = ?, updated_at = ?,
1393
- embedding = CASE WHEN ? = 1 THEN NULL ELSE embedding END
1644
+ embedding = CASE WHEN ? = 1 THEN NULL ELSE embedding END,
1645
+ semantic_subject = ?, semantic_predicate = ?, semantic_value = ?, semantic_polarity = ?,
1646
+ semantic_key = ?, facet_key = ?, entities = ?, temporal = ?
1394
1647
  WHERE id = ?
1395
- `).run(enrichment.type, enrichment.title, enrichment.narrative, nextFacts, nextFiles, nextTools, nextConcepts, dedupKeyForCurrent, enrichment.evidenceStatus, JSON.stringify(enrichment.evidence), now, semanticContentChanged ? 1 : 0, observationId);
1648
+ `).run(enrichment.type, enrichment.title, enrichment.narrative, nextFacts, nextFiles, nextTools, nextConcepts, dedupKeyForCurrent, enrichment.evidenceStatus, JSON.stringify(enrichment.evidence), now, semanticContentChanged ? 1 : 0, enrichment.subject, enrichment.predicate, enrichment.value, enrichment.polarity, enrichment.semanticKey, enrichment.facetKey, JSON.stringify(enrichment.entities), enrichment.temporal ? JSON.stringify(enrichment.temporal) : null, observationId);
1396
1649
  if (semanticContentChanged) {
1397
1650
  this.db.prepare("DELETE FROM embeddings WHERE source_type = 'observation' AND source_id = ?").run(observationId);
1398
1651
  }
@@ -1400,6 +1653,7 @@ export class MemoryStore {
1400
1653
  const insertConcept = this.db.prepare('INSERT OR IGNORE INTO observation_concepts (observation_id, concept) VALUES (?, ?)');
1401
1654
  for (const concept of enrichment.concepts)
1402
1655
  insertConcept.run(observationId, concept);
1656
+ this.replaceObservationEntities(observationId, current.project, enrichment.entities);
1403
1657
  this.reconcileExplicitPreferenceConflicts(current.project);
1404
1658
  return this.getObservation(observationId);
1405
1659
  })();
@@ -1697,7 +1951,14 @@ export class MemoryStore {
1697
1951
  const id = `racc:${timestamp}:${randomUUID().slice(0, 8)}`;
1698
1952
  this.db.transaction(() => {
1699
1953
  const accessType = input.accessType ?? 'exposed';
1700
- const reinforces = accessType === 'adopted';
1954
+ const inserted = this.db.prepare(`
1955
+ INSERT OR IGNORE INTO retrieval_access_log
1956
+ (id, source_type, source_id, access_type, project, session_id, request_id,
1957
+ execution_id, query, purpose, rank, score, timestamp, workflow_run_id,
1958
+ context_receipt, tool_evidence, outcome_reason, verification_receipt, idempotency_key)
1959
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
1960
+ `).run(id, input.sourceType, input.sourceId, accessType, input.project ?? this.defaultProjectRoot, input.sessionId ?? null, input.requestId ?? null, input.executionId ?? null, input.query ?? null, input.purpose ?? null, input.rank ?? null, input.score ?? null, timestamp, input.workflowRunId ?? null, input.contextReceipt ?? null, input.toolEvidence ? JSON.stringify([...new Set(input.toolEvidence)]) : null, input.outcomeReason ?? null, input.verificationReceipt ?? null, input.idempotencyKey ?? null).changes > 0;
1961
+ const reinforces = accessType === 'adopted' && inserted;
1701
1962
  if (input.sourceType === 'memory' && reinforces) {
1702
1963
  const updated = this.db.prepare(`
1703
1964
  UPDATE memories SET access_count = access_count + 1,
@@ -1722,14 +1983,17 @@ export class MemoryStore {
1722
1983
  if (updated.changes !== 1)
1723
1984
  throw new Error(`Observation ${input.sourceId} not found`);
1724
1985
  }
1725
- this.db.prepare(`
1726
- INSERT INTO retrieval_access_log
1727
- (id, source_type, source_id, access_type, project, session_id, request_id,
1728
- execution_id, query, purpose, rank, score, timestamp)
1729
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
1730
- `).run(id, input.sourceType, input.sourceId, accessType, input.project ?? this.defaultProjectRoot, input.sessionId ?? null, input.requestId ?? null, input.executionId ?? null, input.query ?? null, input.purpose ?? null, input.rank ?? null, input.score ?? null, timestamp);
1731
1986
  })();
1732
1987
  }
1988
+ getRetrievalOutcomeSignal(sourceType, sourceId) {
1989
+ const row = this.db.prepare(`
1990
+ SELECT
1991
+ SUM(CASE WHEN access_type = 'positive_outcome' THEN 1 ELSE 0 END) AS positive,
1992
+ SUM(CASE WHEN access_type = 'negative_outcome' THEN 1 ELSE 0 END) AS negative
1993
+ FROM retrieval_access_log WHERE source_type = ? AND source_id = ?
1994
+ `).get(sourceType, sourceId);
1995
+ return { positive: Number(row.positive ?? 0), negative: Number(row.negative ?? 0) };
1996
+ }
1733
1997
  recordAccess(memoryId, accessType, sessionId) {
1734
1998
  this.recordRetrievalAccess({
1735
1999
  sourceType: 'memory',
@@ -1971,6 +2235,74 @@ export class MemoryStore {
1971
2235
  }
1972
2236
  }
1973
2237
  // ── Helpers ────────────────────────────────────────────
2238
+ function uniqueStrings(values) {
2239
+ const result = [];
2240
+ const seen = new Set();
2241
+ for (const value of values) {
2242
+ const normalized = value.normalize('NFKC').trim();
2243
+ const key = normalized.toLocaleLowerCase('en-US');
2244
+ if (!normalized || seen.has(key))
2245
+ continue;
2246
+ seen.add(key);
2247
+ result.push(normalized);
2248
+ }
2249
+ return result;
2250
+ }
2251
+ function semanticRichness(value) {
2252
+ const exactIdentifiers = value.match(/@[a-z0-9._-]+\/[a-z0-9._-]+|--[a-z0-9-]+|[a-z0-9]+(?:[-./][a-z0-9]+)+/giu)?.length ?? 0;
2253
+ return [...value.normalize('NFKC').trim()].length + exactIdentifiers * 40;
2254
+ }
2255
+ function semanticObservationsConflict(existing, incoming) {
2256
+ if (existing.semantic_key === incoming.semanticKey)
2257
+ return false;
2258
+ if (existing.semantic_polarity === 'neutral' || incoming.polarity === 'neutral')
2259
+ return false;
2260
+ const existingValue = normalizeEntityKey(existing.semantic_value);
2261
+ const incomingValue = normalizeEntityKey(incoming.value);
2262
+ if (existingValue === incomingValue)
2263
+ return existing.semantic_polarity !== incoming.polarity;
2264
+ const subject = normalizeEntityKey(incoming.subject);
2265
+ if (new Set(['package manager', 'test runner', 'build tool']).has(subject))
2266
+ return true;
2267
+ if (incoming.predicate === 'version')
2268
+ return true;
2269
+ return ['use', 'prefer', 'require'].includes(incoming.predicate);
2270
+ }
2271
+ function strongerEvidenceStatus(existing, incoming) {
2272
+ return existing === 'verified' || incoming === 'verified' ? 'verified' : 'unverified';
2273
+ }
2274
+ function mergeEvidenceDetails(existing, incoming) {
2275
+ let parsed = [];
2276
+ try {
2277
+ const value = JSON.parse(existing);
2278
+ if (Array.isArray(value)) {
2279
+ parsed = value.filter(item => item && typeof item === 'object' && !Array.isArray(item));
2280
+ }
2281
+ }
2282
+ catch { /* malformed historical evidence is replaced by valid evidence */ }
2283
+ const result = [];
2284
+ const seen = new Set();
2285
+ for (const item of [...parsed, ...incoming]) {
2286
+ const key = JSON.stringify(item);
2287
+ if (seen.has(key))
2288
+ continue;
2289
+ seen.add(key);
2290
+ result.push(item);
2291
+ }
2292
+ return result.slice(0, 64);
2293
+ }
2294
+ function semanticFromExplicitEnrichment(enrichment) {
2295
+ return {
2296
+ subject: enrichment.subject,
2297
+ predicate: enrichment.predicate,
2298
+ value: enrichment.value,
2299
+ polarity: enrichment.polarity,
2300
+ entities: enrichment.entities,
2301
+ temporal: enrichment.temporal,
2302
+ semanticKey: enrichment.semanticKey,
2303
+ facetKey: enrichment.facetKey,
2304
+ };
2305
+ }
1974
2306
  function camelToSnake(str) {
1975
2307
  return str.replace(/[A-Z]/g, letter => `_${letter.toLowerCase()}`);
1976
2308
  }