@devflow-tools/memory-engine 0.16.11 → 0.16.13

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 (69) hide show
  1. package/dist/embedding-model-store.d.ts +67 -0
  2. package/dist/embedding-model-store.d.ts.map +1 -0
  3. package/dist/embedding-model-store.js +350 -0
  4. package/dist/embedding-model-store.js.map +1 -0
  5. package/dist/embedding-provider.d.ts +8 -0
  6. package/dist/embedding-provider.d.ts.map +1 -1
  7. package/dist/embedding-provider.js +68 -11
  8. package/dist/embedding-provider.js.map +1 -1
  9. package/dist/explicit-memory-enricher.d.ts +24 -0
  10. package/dist/explicit-memory-enricher.d.ts.map +1 -0
  11. package/dist/explicit-memory-enricher.js +292 -0
  12. package/dist/explicit-memory-enricher.js.map +1 -0
  13. package/dist/hybrid-search.d.ts +31 -0
  14. package/dist/hybrid-search.d.ts.map +1 -1
  15. package/dist/hybrid-search.js +132 -32
  16. package/dist/hybrid-search.js.map +1 -1
  17. package/dist/index.d.ts +8 -2
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +4 -1
  20. package/dist/index.js.map +1 -1
  21. package/dist/memory-engine.d.ts +22 -0
  22. package/dist/memory-engine.d.ts.map +1 -1
  23. package/dist/memory-engine.js +199 -47
  24. package/dist/memory-engine.js.map +1 -1
  25. package/dist/memory-gate.d.ts +20 -1
  26. package/dist/memory-gate.d.ts.map +1 -1
  27. package/dist/memory-gate.js +89 -56
  28. package/dist/memory-gate.js.map +1 -1
  29. package/dist/memory-maintenance.d.ts.map +1 -1
  30. package/dist/memory-maintenance.js +4 -2
  31. package/dist/memory-maintenance.js.map +1 -1
  32. package/dist/memory-relevance.d.ts +38 -0
  33. package/dist/memory-relevance.d.ts.map +1 -0
  34. package/dist/memory-relevance.js +289 -0
  35. package/dist/memory-relevance.js.map +1 -0
  36. package/dist/memory-store.d.ts +52 -2
  37. package/dist/memory-store.d.ts.map +1 -1
  38. package/dist/memory-store.js +599 -20
  39. package/dist/memory-store.js.map +1 -1
  40. package/dist/migrations/v2-to-v3.js +1 -1
  41. package/dist/migrations/v2-to-v3.js.map +1 -1
  42. package/dist/migrations/v3-to-v4.d.ts.map +1 -1
  43. package/dist/migrations/v3-to-v4.js +4 -0
  44. package/dist/migrations/v3-to-v4.js.map +1 -1
  45. package/dist/migrations/v6-to-v7.d.ts +3 -0
  46. package/dist/migrations/v6-to-v7.d.ts.map +1 -0
  47. package/dist/migrations/v6-to-v7.js +18 -0
  48. package/dist/migrations/v6-to-v7.js.map +1 -0
  49. package/dist/migrations/v6-to-v7.test.d.ts +2 -0
  50. package/dist/migrations/v6-to-v7.test.d.ts.map +1 -0
  51. package/dist/migrations/v6-to-v7.test.js +33 -0
  52. package/dist/migrations/v6-to-v7.test.js.map +1 -0
  53. package/dist/migrations/v7-to-v8.d.ts +3 -0
  54. package/dist/migrations/v7-to-v8.d.ts.map +1 -0
  55. package/dist/migrations/v7-to-v8.js +20 -0
  56. package/dist/migrations/v7-to-v8.js.map +1 -0
  57. package/dist/migrations/v8-to-v9.d.ts +3 -0
  58. package/dist/migrations/v8-to-v9.d.ts.map +1 -0
  59. package/dist/migrations/v8-to-v9.js +18 -0
  60. package/dist/migrations/v8-to-v9.js.map +1 -0
  61. package/dist/preference-conflicts.d.ts +19 -0
  62. package/dist/preference-conflicts.d.ts.map +1 -0
  63. package/dist/preference-conflicts.js +293 -0
  64. package/dist/preference-conflicts.js.map +1 -0
  65. package/dist/preference-conflicts.test.d.ts +2 -0
  66. package/dist/preference-conflicts.test.d.ts.map +1 -0
  67. package/dist/preference-conflicts.test.js +72 -0
  68. package/dist/preference-conflicts.test.js.map +1 -0
  69. package/package.json +4 -4
@@ -6,8 +6,11 @@ import { EmbeddingProvider } from './embedding-provider.js';
6
6
  import { HybridSearch } from './hybrid-search.js';
7
7
  import { GraphStore } from './graph-store.js';
8
8
  import { extractRuleMemories } from './rule-extractor.js';
9
- import { isObservationType, observationDedupKey } from './observation-types.js';
9
+ import { isObservationType } from './observation-types.js';
10
10
  import { classifyFailureCategory, evaluateStoredObservationQuality, observationClusterKey, } from './observation-quality.js';
11
+ import { buildPreferenceConflictDiagnostics, normalizeExplicitPreferenceContent, } from './preference-conflicts.js';
12
+ import { enrichExplicitMemory, } from './explicit-memory-enricher.js';
13
+ import { evaluateBootstrapMemory, MEMORY_SELECTION_THRESHOLD, normalizeMemoryEntities, } from './memory-relevance.js';
11
14
  function estimateMemoryTokens(text) {
12
15
  const cjkCharacters = text.match(/[\u3400-\u9fff\uf900-\ufaff]/g)?.length ?? 0;
13
16
  return Math.max(1, cjkCharacters + Math.ceil((text.length - cjkCharacters) / 4));
@@ -26,6 +29,11 @@ function parseStringArray(value) {
26
29
  function isDurableObservationType(type) {
27
30
  return isObservationType(type);
28
31
  }
32
+ function observationEffectiveTimestamp(observation) {
33
+ return observation.source === 'explicit_intent'
34
+ ? observation.explicit_accepted_at ?? observation.timestamp
35
+ : observation.timestamp;
36
+ }
29
37
  const SOURCE_WEIGHTS = {
30
38
  explicit_intent: 1.5,
31
39
  manual: 1.2,
@@ -52,12 +60,35 @@ export class MemoryEngine {
52
60
  this.embedder = embedder ?? new EmbeddingProvider();
53
61
  this.searcher = new HybridSearch(this.store, this.embedder, this);
54
62
  this.graph = new GraphStore(this.store);
63
+ this.reconcileHistoricalExplicitPreferences();
55
64
  }
56
65
  _initPromise = null;
57
66
  _embedderAvailable = true;
67
+ _explicitPreferencesReconciled = false;
68
+ reconcileHistoricalExplicitPreferences() {
69
+ if (this._explicitPreferencesReconciled)
70
+ return;
71
+ this.store.reconcileExplicitPreferenceConflicts(this.rootPath);
72
+ this._explicitPreferencesReconciled = true;
73
+ }
74
+ getExplicitPreferenceConflictState() {
75
+ const conflicts = buildPreferenceConflictDiagnostics(this.store.listCurrentExplicitPreferences(this.rootPath));
76
+ return {
77
+ conflicts,
78
+ withheldIds: new Set(conflicts.flatMap(conflict => conflict.memoryIds)),
79
+ };
80
+ }
81
+ isSearchResultVisible(result, withheldIds) {
82
+ if (result.entry.source !== 'observation')
83
+ return true;
84
+ return isDurableObservationType(result.entry.type)
85
+ && result.entry.resolutionState !== 'superseded'
86
+ && !withheldIds.has(result.entry.id);
87
+ }
58
88
  async ensureInit() {
59
89
  if (!this._initPromise) {
60
90
  this._initPromise = (async () => {
91
+ this.reconcileHistoricalExplicitPreferences();
61
92
  this._embedderAvailable = await this.embedder.warmup();
62
93
  })();
63
94
  }
@@ -199,8 +230,9 @@ export class MemoryEngine {
199
230
  }
200
231
  async searchGlobal(query) {
201
232
  await this.ensureInit();
202
- const results = await this.searcher.search(query, { limit: 10 });
203
- return results.filter(r => r.entry.source !== 'observation' || isDurableObservationType(r.entry.type)).map(r => ({
233
+ const { withheldIds } = this.getExplicitPreferenceConflictState();
234
+ const results = await this.searcher.search(query, { limit: 10, excludedIds: withheldIds });
235
+ return results.filter(result => this.isSearchResultVisible(result, withheldIds)).map(r => ({
204
236
  id: r.entry.id,
205
237
  source: r.entry.source === 'observation' ? 'observation' : r.entry.type,
206
238
  title: r.entry.title || r.entry.content.slice(0, 80),
@@ -214,14 +246,28 @@ export class MemoryEngine {
214
246
  async getAll(options = {}) {
215
247
  const normalized = typeof options === 'string' ? { query: options } : options;
216
248
  const budgetTokens = Math.max(1, Math.floor(normalized.budgetTokens ?? 2000));
249
+ const { conflicts, withheldIds: withheldPreferenceIds } = this.getExplicitPreferenceConflictState();
217
250
  const [project, user] = await Promise.all([this.getProjectContext(), this.getUserPreferences()]);
218
251
  const retrievalOptions = normalized;
219
252
  const candidates = [];
253
+ let retrievalCandidateCount = 0;
254
+ const rejectionCategories = {};
220
255
  const bootstrapEvents = normalized.purpose === 'session_bootstrap'
221
256
  ? this.store.listAllEvents()
222
257
  : [];
223
258
  if (normalized.query?.trim()) {
224
- const results = await this.searcher.search(normalized.query.trim(), { limit: 100, recordAccess: false });
259
+ const searchOutcome = await this.searcher.searchWithDiagnostics(normalized.query.trim(), {
260
+ limit: 100,
261
+ recordAccess: false,
262
+ excludedIds: withheldPreferenceIds,
263
+ purpose: normalized.purpose,
264
+ sessionId: normalized.sessionId,
265
+ requestId: normalized.requestId,
266
+ executionId: normalized.executionId,
267
+ });
268
+ const results = searchOutcome.results;
269
+ retrievalCandidateCount = searchOutcome.diagnostics.candidateCount;
270
+ Object.assign(rejectionCategories, searchOutcome.diagnostics.rejectionCategories);
225
271
  for (const result of results) {
226
272
  const row = this.store.get(result.entry.id);
227
273
  const observation = row ? null : this.store.getObservation(result.entry.id);
@@ -229,6 +275,10 @@ export class MemoryEngine {
229
275
  continue;
230
276
  if (observation && !isDurableObservationType(observation.type))
231
277
  continue;
278
+ if (observation?.resolution_state === 'superseded')
279
+ continue;
280
+ if (observation && withheldPreferenceIds.has(observation.id))
281
+ continue;
232
282
  const source = row?.source ?? observation?.source ?? 'distill';
233
283
  const scope = row?.scope ?? observation?.project ?? '';
234
284
  if (normalized.scopes?.length && !normalized.scopes.includes(scope))
@@ -244,7 +294,7 @@ export class MemoryEngine {
244
294
  confidence: row?.confidence ?? observation.confidence,
245
295
  importance,
246
296
  score: result.score,
247
- createdAt: row?.created_at ?? observation.timestamp,
297
+ createdAt: row?.created_at ?? observationEffectiveTimestamp(observation),
248
298
  memoryId: row ? row.id : undefined,
249
299
  observationId: observation ? observation.id : undefined,
250
300
  clusterKey: observationClusterKey({
@@ -258,6 +308,10 @@ export class MemoryEngine {
258
308
  ?? classifyFailureCategory(`${observation.title}\n${observation.narrative}`)
259
309
  : classifyFailureCategory(`${row.title}\n${row.content}`),
260
310
  resolutionState: observation?.resolution_state ?? 'current',
311
+ concepts: observation ? parseStringArray(observation.concepts) : [],
312
+ evidenceStatus: observation?.evidence_status
313
+ ?? (row?.source === 'manual' ? 'verified' : 'unverified'),
314
+ applicability: result.applicability ?? [],
261
315
  });
262
316
  }
263
317
  }
@@ -273,6 +327,9 @@ export class MemoryEngine {
273
327
  clusterKey: observationClusterKey({ type: row.type, title: row.title, narrative: row.content }),
274
328
  failureCategory: classifyFailureCategory(`${row.title}\n${row.content}`),
275
329
  resolutionState: 'current',
330
+ concepts: [],
331
+ evidenceStatus: row.source === 'manual' ? 'verified' : 'unverified',
332
+ applicability: ['session_bootstrap'],
276
333
  });
277
334
  }
278
335
  for (const observation of this.store.listObservations({ qualityStatus: 'accepted' })) {
@@ -280,6 +337,8 @@ export class MemoryEngine {
280
337
  continue;
281
338
  if (observation.resolution_state === 'superseded')
282
339
  continue;
340
+ if (withheldPreferenceIds.has(observation.id))
341
+ continue;
283
342
  if (normalized.purpose === 'session_bootstrap'
284
343
  && evaluateStoredObservationQuality(observation, bootstrapEvents).status !== 'accepted')
285
344
  continue;
@@ -290,7 +349,7 @@ export class MemoryEngine {
290
349
  content: observation.narrative, source: observation.source,
291
350
  scope: observation.project, confidence: observation.confidence,
292
351
  importance: Math.max(1, Math.min(10, observation.importance)), score: 0,
293
- createdAt: observation.timestamp, observationId: observation.id,
352
+ createdAt: observationEffectiveTimestamp(observation), observationId: observation.id,
294
353
  clusterKey: observationClusterKey({
295
354
  type: observation.type,
296
355
  title: observation.title,
@@ -300,8 +359,12 @@ export class MemoryEngine {
300
359
  failureCategory: observation.failure_category
301
360
  ?? classifyFailureCategory(`${observation.title}\n${observation.narrative}`),
302
361
  resolutionState: observation.resolution_state,
362
+ concepts: parseStringArray(observation.concepts),
363
+ evidenceStatus: observation.evidence_status,
364
+ applicability: ['session_bootstrap'],
303
365
  });
304
366
  }
367
+ retrievalCandidateCount = candidates.length;
305
368
  }
306
369
  const maxHybridScore = Math.max(0, ...candidates.map(candidate => candidate.score));
307
370
  const newestResolutionByCategory = new Map();
@@ -310,7 +373,32 @@ export class MemoryEngine {
310
373
  continue;
311
374
  newestResolutionByCategory.set(candidate.failureCategory, Math.max(newestResolutionByCategory.get(candidate.failureCategory) ?? 0, candidate.createdAt));
312
375
  }
313
- const ranked = candidates.map(candidate => {
376
+ const ranked = candidates.flatMap(candidate => {
377
+ if (normalized.query?.trim())
378
+ return [candidate];
379
+ const evaluation = evaluateBootstrapMemory({
380
+ purpose: normalized.purpose,
381
+ type: candidate.type,
382
+ source: candidate.source,
383
+ title: candidate.title,
384
+ content: candidate.content,
385
+ concepts: candidate.concepts,
386
+ evidenceStatus: candidate.evidenceStatus,
387
+ confidence: candidate.confidence,
388
+ importance: candidate.importance,
389
+ createdAt: candidate.createdAt,
390
+ resolutionState: candidate.resolutionState,
391
+ failureCategory: candidate.failureCategory,
392
+ });
393
+ if (!evaluation.eligible) {
394
+ const reason = evaluation.rejectionReason ?? 'no_applicable_signal';
395
+ rejectionCategories[reason] = (rejectionCategories[reason] ?? 0) + 1;
396
+ return [];
397
+ }
398
+ return [{ ...candidate, score: evaluation.score, applicability: evaluation.applicability }];
399
+ }).map(candidate => {
400
+ if (normalized.query?.trim())
401
+ return candidate;
314
402
  const row = candidate.memoryId ? this.store.get(candidate.memoryId) : this.store.getObservation(candidate.observationId);
315
403
  const accessCount = row && 'access_count' in row ? row.access_count : 0;
316
404
  const lastAccessedAt = row && 'last_accessed_at' in row ? row.last_accessed_at ?? undefined : row && 'updated_at' in row ? row.updated_at : undefined;
@@ -323,11 +411,10 @@ export class MemoryEngine {
323
411
  const sourceWeight = SOURCE_WEIGHTS[candidate.source] ?? 0.8;
324
412
  const typeWeight = DURABLE_TYPE_WEIGHTS[candidate.type] ?? 1.0;
325
413
  const hybridScore = maxHybridScore > 0 ? candidate.score / maxHybridScore : 0;
326
- let score = normalized.purpose === 'session_bootstrap'
327
- ? candidate.importance * sourceWeight * typeWeight
328
- * Math.exp(-Math.max(0, Date.now() - candidate.createdAt) / (90 * 86400000))
329
- : 0.4 * hybridScore + 0.3 * (candidate.importance / 10) + 0.2 * effectiveConfidence
330
- + 0.1 * sourceWeight + 0.05 * (typeWeight - 1);
414
+ let score = candidate.score > 0
415
+ ? candidate.score
416
+ : candidate.importance * sourceWeight * typeWeight
417
+ * Math.exp(-Math.max(0, Date.now() - candidate.createdAt) / (90 * 86400000));
331
418
  if (candidate.scope === this.rootPath)
332
419
  score *= 1.1;
333
420
  if (candidate.resolutionState === 'resolved')
@@ -360,6 +447,8 @@ export class MemoryEngine {
360
447
  content: candidate.content, source: candidate.source, scope: candidate.scope,
361
448
  confidence: candidate.confidence, importance: candidate.importance,
362
449
  score: Math.round(candidate.score * 10000) / 10000, createdAt: candidate.createdAt,
450
+ applicability: candidate.applicability,
451
+ evidenceStatus: candidate.evidenceStatus,
363
452
  });
364
453
  tokenCount += itemTokens;
365
454
  clusters.add(candidate.clusterKey);
@@ -367,16 +456,19 @@ export class MemoryEngine {
367
456
  failureCounts.set(candidate.failureCategory, (failureCounts.get(candidate.failureCategory) ?? 0) + 1);
368
457
  }
369
458
  try {
370
- this.store.recordRetrievalAccess({
459
+ const access = {
371
460
  sourceType: candidate.memoryId ? 'memory' : 'observation',
372
461
  sourceId: candidate.memoryId ?? candidate.observationId,
373
- accessType: 'agent_use',
374
462
  sessionId: retrievalOptions.sessionId,
375
463
  query: normalized.query,
376
464
  purpose: normalized.purpose ?? 'get_memory',
377
465
  rank: memories.length,
378
466
  score: candidate.score,
379
- });
467
+ requestId: normalized.requestId,
468
+ executionId: normalized.executionId,
469
+ };
470
+ this.store.recordRetrievalAccess({ ...access, accessType: 'selected' });
471
+ this.store.recordRetrievalAccess({ ...access, accessType: 'exposed' });
380
472
  }
381
473
  catch { /* access reinforcement is non-critical */ }
382
474
  }
@@ -386,50 +478,109 @@ export class MemoryEngine {
386
478
  memories,
387
479
  budgetTokens,
388
480
  tokenCount,
389
- truncatedCount: Math.max(0, ranked.length - memories.length),
481
+ truncatedCount: Math.max(0, retrievalCandidateCount - memories.length),
390
482
  purpose: normalized.purpose,
483
+ conflicts,
484
+ retrieval: {
485
+ threshold: normalized.query?.trim() ? MEMORY_SELECTION_THRESHOLD : 0,
486
+ candidateCount: retrievalCandidateCount,
487
+ selectedCount: memories.length,
488
+ rejectedCount: Math.max(0, retrievalCandidateCount - memories.length),
489
+ rejectionCategories,
490
+ },
391
491
  relevant: [],
392
492
  };
393
493
  }
394
494
  async saveExplicitMemoryIntent(content, sessionId, sourceEventId) {
395
- const title = content.slice(0, 120);
396
- const exact = this.store.findObservationByDedupKey(observationDedupKey('user_preference', title));
397
- if (exact) {
398
- const promoted = this.store.promoteObservationToExplicitIntent(exact.id) ?? exact;
399
- if (sourceEventId) {
400
- this.store.linkObservationToEvents(promoted.id, [sourceEventId]);
401
- this.store.markEventsProcessed([sourceEventId]);
402
- }
403
- return {
404
- id: promoted.id, type: promoted.type, title: promoted.title, content: promoted.narrative,
405
- source: promoted.source, scope: promoted.project, confidence: promoted.confidence,
406
- importance: promoted.importance, score: 1, createdAt: promoted.timestamp,
407
- indexStatus: promoted.embedding ? 'indexed' : 'pending',
408
- };
409
- }
495
+ const normalizedContent = normalizeExplicitPreferenceContent(content);
496
+ if (!normalizedContent)
497
+ throw new Error('Explicit memory content must be nonblank');
498
+ const title = [...normalizedContent].slice(0, 120).join('');
410
499
  const observationSessionId = sessionId ?? `explicit:${Date.now()}`;
411
- await this.ensureSession(observationSessionId, this.rootPath, 'Explicit memory intent');
412
- const row = this.store.addObservation({
500
+ const row = this.store.acceptExplicitPreference({
413
501
  sessionId: observationSessionId,
414
502
  project: this.rootPath,
415
- type: 'user_preference',
416
503
  title,
417
- narrative: content,
418
- importance: 10,
419
- confidence: 0.95,
420
- source: 'explicit_intent',
421
- sourceEventIds: sourceEventId ? [sourceEventId] : [],
422
- qualityStatus: 'accepted',
504
+ content: normalizedContent,
505
+ sourceEventId,
423
506
  });
424
- if (sourceEventId)
425
- this.store.markEventsProcessed([sourceEventId]);
426
507
  return {
427
508
  id: row.id, type: row.type, title: row.title, content: row.narrative,
428
509
  source: row.source, scope: row.project, confidence: row.confidence,
429
- importance: row.importance, score: 1, createdAt: row.timestamp,
430
- indexStatus: 'pending',
510
+ importance: row.importance, score: 1, createdAt: observationEffectiveTimestamp(row),
511
+ indexStatus: row.embedding ? 'indexed' : 'pending',
431
512
  };
432
513
  }
514
+ enrichExplicitMemoryObservation(observationId) {
515
+ const observation = this.store.getObservation(observationId);
516
+ if (!observation)
517
+ throw new Error(`Observation ${observationId} not found`);
518
+ const enrichment = enrichExplicitMemory({
519
+ projectRoot: this.rootPath,
520
+ content: observation.narrative,
521
+ sourceEventIds: parseStringArray(observation.source_event_ids),
522
+ });
523
+ this.store.applyExplicitMemoryEnrichment(observationId, enrichment);
524
+ return enrichment;
525
+ }
526
+ attributeRetrievalBenefits(options) {
527
+ const selectedRows = this.store.listRetrievalAccessForAttribution(options.sessionId, options.executionId);
528
+ const unique = new Map(selectedRows.map(row => [row.source_id, row]));
529
+ const answerEntities = normalizeMemoryEntities(options.finalAnswer ?? '');
530
+ const normalizedAnswer = (options.finalAnswer ?? '').normalize('NFKC').toLocaleLowerCase('en-US');
531
+ let adopted = 0;
532
+ for (const row of unique.values()) {
533
+ const memory = row.source_type === 'memory' ? this.store.get(row.source_id) : null;
534
+ const observation = row.source_type === 'observation' ? this.store.getObservation(row.source_id) : null;
535
+ if (!memory && !observation)
536
+ continue;
537
+ const title = memory?.title ?? observation.title;
538
+ const content = memory?.content ?? observation.narrative;
539
+ const concepts = observation ? parseStringArray(observation.concepts) : [];
540
+ const sourceEntities = normalizeMemoryEntities(`${title}\n${content}\n${concepts.join(' ')}`);
541
+ const entityAdopted = [...sourceEntities].some(entity => answerEntities.has(entity));
542
+ const factAdopted = parseStringArray(observation?.facts ?? '[]').some(fact => {
543
+ const normalizedFact = fact.normalize('NFKC').toLocaleLowerCase('en-US').trim();
544
+ return normalizedFact.length >= 12 && normalizedAnswer.includes(normalizedFact);
545
+ });
546
+ if (!entityAdopted && !factAdopted)
547
+ continue;
548
+ this.store.recordRetrievalAccess({
549
+ sourceType: row.source_type,
550
+ sourceId: row.source_id,
551
+ accessType: 'adopted',
552
+ sessionId: row.session_id ?? options.sessionId,
553
+ requestId: row.request_id ?? undefined,
554
+ executionId: row.execution_id ?? options.executionId,
555
+ query: row.query ?? undefined,
556
+ purpose: row.purpose ?? 'session_final_answer',
557
+ rank: row.rank ?? undefined,
558
+ score: row.score ?? undefined,
559
+ });
560
+ adopted += 1;
561
+ }
562
+ return { selected: unique.size, adopted, unknown: Math.max(0, unique.size - adopted) };
563
+ }
564
+ recordContextEnvelopeSelection(options) {
565
+ for (const [index, id] of [...new Set(options.memoryIds)].entries()) {
566
+ const sourceType = this.store.getObservation(id) ? 'observation' : this.store.get(id) ? 'memory' : null;
567
+ if (!sourceType)
568
+ continue;
569
+ for (const accessType of ['selected', 'exposed']) {
570
+ this.store.recordRetrievalAccess({
571
+ sourceType,
572
+ sourceId: id,
573
+ accessType,
574
+ sessionId: options.sessionId,
575
+ executionId: options.executionId,
576
+ requestId: options.requestId,
577
+ query: options.query,
578
+ purpose: 'task_context_envelope',
579
+ rank: index + 1,
580
+ });
581
+ }
582
+ }
583
+ }
433
584
  listObservationMemories(source) {
434
585
  return this.store.listObservations({ qualityStatus: 'accepted' })
435
586
  .filter(observation => isDurableObservationType(observation.type))
@@ -445,7 +596,7 @@ export class MemoryEngine {
445
596
  confidence: observation.confidence,
446
597
  importance: observation.importance,
447
598
  score: 0,
448
- createdAt: observation.timestamp,
599
+ createdAt: observationEffectiveTimestamp(observation),
449
600
  }));
450
601
  }
451
602
  async getCandidates() {
@@ -467,8 +618,9 @@ export class MemoryEngine {
467
618
  // --- New API methods ---
468
619
  async search(query, options) {
469
620
  await this.ensureInit();
470
- const results = await this.searcher.search(query, options);
471
- return results.filter(result => result.entry.source !== 'observation' || isDurableObservationType(result.entry.type));
621
+ const { withheldIds } = this.getExplicitPreferenceConflictState();
622
+ const results = await this.searcher.search(query, { ...options, excludedIds: withheldIds });
623
+ return results.filter(result => this.isSearchResultVisible(result, withheldIds));
472
624
  }
473
625
  async listMemories(filter) {
474
626
  const rows = this.store.list({
@@ -1 +1 @@
1
- {"version":3,"file":"memory-engine.js","sourceRoot":"","sources":["../src/memory-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-engine.js","sourceRoot":"","sources":["../src/memory-engine.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import type { IMemoryEngine, UserPrefs, Convention, ProjectContext, SessionEntry
2
2
  import { EmbeddingProvider } from './embedding-provider.js';
3
3
  import { type ParsedObservation } from './session-summarizer.js';
4
4
  import { LeaseStore } from './lease-store.js';
5
+ import type { DecidedTurnEventReconciliation, MemoryTurnWindow } from './memory-store.js';
5
6
  type GateState = 'cold' | 'warming' | 'hot';
6
7
  export interface PendingDistillData {
7
8
  batchId: string;
@@ -77,7 +78,8 @@ export declare class MemoryGate implements IMemoryEngine {
77
78
  */
78
79
  saveDistilledObservations(observations: ParsedObservation[], sessionId: string): Promise<number>;
79
80
  /** Returns the count of unprocessed events (for session-start hook). */
80
- getPendingEventCount(): number;
81
+ getPendingEventCount(sessionId?: string, triage?: boolean): number;
82
+ reconcileDecidedTurnEventWindows(sessionId: string, turns: MemoryTurnWindow[], sessionEndAt?: number): Promise<DecidedTurnEventReconciliation>;
81
83
  private discardLowValuePendingEvents;
82
84
  private getActiveSessionIds;
83
85
  private maybeWarmUp;
@@ -100,6 +102,23 @@ export declare class MemoryGate implements IMemoryEngine {
100
102
  relevant: KnowledgeEntry[];
101
103
  }>;
102
104
  saveExplicitMemoryIntent(content: string, sessionId?: string, sourceEventId?: string): Promise<MemorySnapshotItem>;
105
+ enrichExplicitMemoryObservation(observationId: string): Promise<import('./explicit-memory-enricher.js').ExplicitMemoryEvidence>;
106
+ attributeRetrievalBenefits(options: {
107
+ sessionId: string;
108
+ executionId?: string;
109
+ finalAnswer?: string;
110
+ }): Promise<{
111
+ selected: number;
112
+ adopted: number;
113
+ unknown: number;
114
+ }>;
115
+ recordContextEnvelopeSelection(options: {
116
+ memoryIds: string[];
117
+ sessionId?: string;
118
+ executionId?: string;
119
+ requestId?: string;
120
+ query: string;
121
+ }): Promise<void>;
103
122
  listObservationMemories(source?: string): Promise<MemorySnapshotItem[]>;
104
123
  backfillObservationVectors(options?: {
105
124
  batchSize?: number;