@devflow-tools/memory-engine 0.16.2 → 0.16.3
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/embedding-provider.d.ts +2 -0
- package/dist/embedding-provider.d.ts.map +1 -1
- package/dist/embedding-provider.js +15 -0
- package/dist/embedding-provider.js.map +1 -1
- package/dist/hybrid-search.d.ts +9 -0
- package/dist/hybrid-search.d.ts.map +1 -1
- package/dist/hybrid-search.js +97 -19
- package/dist/hybrid-search.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lease-store.d.ts +8 -0
- package/dist/lease-store.d.ts.map +1 -1
- package/dist/lease-store.js +20 -0
- package/dist/lease-store.js.map +1 -1
- package/dist/memory-engine.d.ts.map +1 -1
- package/dist/memory-engine.js +81 -10
- package/dist/memory-engine.js.map +1 -1
- package/dist/memory-gate.d.ts +1 -1
- package/dist/memory-gate.d.ts.map +1 -1
- package/dist/memory-gate.js +51 -15
- package/dist/memory-gate.js.map +1 -1
- package/dist/memory-maintenance.d.ts +123 -0
- package/dist/memory-maintenance.d.ts.map +1 -0
- package/dist/memory-maintenance.js +594 -0
- package/dist/memory-maintenance.js.map +1 -0
- package/dist/memory-store.d.ts +81 -0
- package/dist/memory-store.d.ts.map +1 -1
- package/dist/memory-store.js +342 -27
- package/dist/memory-store.js.map +1 -1
- package/dist/migrations/v3-to-v4.d.ts +3 -0
- package/dist/migrations/v3-to-v4.d.ts.map +1 -0
- package/dist/migrations/v3-to-v4.js +93 -0
- package/dist/migrations/v3-to-v4.js.map +1 -0
- package/dist/observation-quality.d.ts +39 -0
- package/dist/observation-quality.d.ts.map +1 -0
- package/dist/observation-quality.js +190 -0
- package/dist/observation-quality.js.map +1 -0
- package/dist/session-summarizer.d.ts +1 -1
- package/dist/session-summarizer.d.ts.map +1 -1
- package/dist/session-summarizer.js +3 -0
- package/dist/session-summarizer.js.map +1 -1
- package/package.json +4 -4
package/dist/memory-engine.js
CHANGED
|
@@ -7,10 +7,22 @@ import { HybridSearch } from './hybrid-search.js';
|
|
|
7
7
|
import { GraphStore } from './graph-store.js';
|
|
8
8
|
import { extractRuleMemories } from './rule-extractor.js';
|
|
9
9
|
import { observationDedupKey } from './observation-types.js';
|
|
10
|
+
import { classifyFailureCategory, observationClusterKey, } from './observation-quality.js';
|
|
10
11
|
function estimateMemoryTokens(text) {
|
|
11
12
|
const cjkCharacters = text.match(/[\u3400-\u9fff\uf900-\ufaff]/g)?.length ?? 0;
|
|
12
13
|
return Math.max(1, cjkCharacters + Math.ceil((text.length - cjkCharacters) / 4));
|
|
13
14
|
}
|
|
15
|
+
function parseStringArray(value) {
|
|
16
|
+
try {
|
|
17
|
+
const parsed = JSON.parse(value);
|
|
18
|
+
return Array.isArray(parsed)
|
|
19
|
+
? parsed.filter((entry) => typeof entry === 'string')
|
|
20
|
+
: [];
|
|
21
|
+
}
|
|
22
|
+
catch {
|
|
23
|
+
return [];
|
|
24
|
+
}
|
|
25
|
+
}
|
|
14
26
|
export class MemoryEngine {
|
|
15
27
|
store;
|
|
16
28
|
embedder;
|
|
@@ -186,6 +198,7 @@ export class MemoryEngine {
|
|
|
186
198
|
const normalized = typeof options === 'string' ? { query: options } : options;
|
|
187
199
|
const budgetTokens = Math.max(1, Math.floor(normalized.budgetTokens ?? 2000));
|
|
188
200
|
const [project, user] = await Promise.all([this.getProjectContext(), this.getUserPreferences()]);
|
|
201
|
+
const retrievalOptions = normalized;
|
|
189
202
|
const candidates = [];
|
|
190
203
|
if (normalized.query?.trim()) {
|
|
191
204
|
const results = await this.searcher.search(normalized.query.trim(), { limit: 100, recordAccess: false });
|
|
@@ -212,6 +225,17 @@ export class MemoryEngine {
|
|
|
212
225
|
createdAt: row?.created_at ?? observation.timestamp,
|
|
213
226
|
memoryId: row ? row.id : undefined,
|
|
214
227
|
observationId: observation ? observation.id : undefined,
|
|
228
|
+
clusterKey: observationClusterKey({
|
|
229
|
+
type: row?.type ?? observation.type,
|
|
230
|
+
title: row?.title ?? observation.title,
|
|
231
|
+
narrative: row?.content ?? observation.narrative,
|
|
232
|
+
facts: observation ? parseStringArray(observation.facts) : undefined,
|
|
233
|
+
}),
|
|
234
|
+
failureCategory: observation
|
|
235
|
+
? observation.failure_category
|
|
236
|
+
?? classifyFailureCategory(`${observation.title}\n${observation.narrative}`)
|
|
237
|
+
: classifyFailureCategory(`${row.title}\n${row.content}`),
|
|
238
|
+
resolutionState: observation?.resolution_state ?? 'current',
|
|
215
239
|
});
|
|
216
240
|
}
|
|
217
241
|
}
|
|
@@ -224,9 +248,14 @@ export class MemoryEngine {
|
|
|
224
248
|
source: row.source, scope: row.scope, confidence: row.confidence,
|
|
225
249
|
importance: Math.max(1, Math.min(10, Math.round(row.strength * 10))), score: 0,
|
|
226
250
|
createdAt: row.created_at, memoryId: row.id,
|
|
251
|
+
clusterKey: observationClusterKey({ type: row.type, title: row.title, narrative: row.content }),
|
|
252
|
+
failureCategory: classifyFailureCategory(`${row.title}\n${row.content}`),
|
|
253
|
+
resolutionState: 'current',
|
|
227
254
|
});
|
|
228
255
|
}
|
|
229
|
-
for (const observation of this.store.listObservations()) {
|
|
256
|
+
for (const observation of this.store.listObservations({ qualityStatus: 'accepted' })) {
|
|
257
|
+
if (observation.resolution_state === 'superseded')
|
|
258
|
+
continue;
|
|
230
259
|
if (normalized.scopes?.length && !normalized.scopes.includes(observation.project))
|
|
231
260
|
continue;
|
|
232
261
|
candidates.push({
|
|
@@ -235,6 +264,15 @@ export class MemoryEngine {
|
|
|
235
264
|
scope: observation.project, confidence: observation.confidence,
|
|
236
265
|
importance: Math.max(1, Math.min(10, observation.importance)), score: 0,
|
|
237
266
|
createdAt: observation.timestamp, observationId: observation.id,
|
|
267
|
+
clusterKey: observationClusterKey({
|
|
268
|
+
type: observation.type,
|
|
269
|
+
title: observation.title,
|
|
270
|
+
narrative: observation.narrative,
|
|
271
|
+
facts: parseStringArray(observation.facts),
|
|
272
|
+
}),
|
|
273
|
+
failureCategory: observation.failure_category
|
|
274
|
+
?? classifyFailureCategory(`${observation.title}\n${observation.narrative}`),
|
|
275
|
+
resolutionState: observation.resolution_state,
|
|
238
276
|
});
|
|
239
277
|
}
|
|
240
278
|
}
|
|
@@ -242,6 +280,12 @@ export class MemoryEngine {
|
|
|
242
280
|
explicit_intent: 1.5, manual: 1.2, distill: 1.0,
|
|
243
281
|
};
|
|
244
282
|
const maxHybridScore = Math.max(0, ...candidates.map(candidate => candidate.score));
|
|
283
|
+
const newestResolutionByCategory = new Map();
|
|
284
|
+
for (const candidate of candidates) {
|
|
285
|
+
if (candidate.type !== 'error_resolution' || !candidate.failureCategory)
|
|
286
|
+
continue;
|
|
287
|
+
newestResolutionByCategory.set(candidate.failureCategory, Math.max(newestResolutionByCategory.get(candidate.failureCategory) ?? 0, candidate.createdAt));
|
|
288
|
+
}
|
|
245
289
|
const ranked = candidates.map(candidate => {
|
|
246
290
|
const row = candidate.memoryId ? this.store.get(candidate.memoryId) : this.store.getObservation(candidate.observationId);
|
|
247
291
|
const accessCount = row && 'access_count' in row ? row.access_count : 0;
|
|
@@ -254,17 +298,33 @@ export class MemoryEngine {
|
|
|
254
298
|
});
|
|
255
299
|
const sourceWeight = sourceWeights[candidate.source] ?? 0.8;
|
|
256
300
|
const hybridScore = maxHybridScore > 0 ? candidate.score / maxHybridScore : 0;
|
|
257
|
-
|
|
301
|
+
let score = normalized.purpose === 'session_bootstrap'
|
|
258
302
|
? candidate.importance * sourceWeight * Math.exp(-Math.max(0, Date.now() - candidate.createdAt) / (90 * 86400000))
|
|
259
303
|
: 0.4 * hybridScore + 0.3 * (candidate.importance / 10) + 0.2 * effectiveConfidence + 0.1 * sourceWeight;
|
|
304
|
+
if (candidate.scope === this.rootPath)
|
|
305
|
+
score *= 1.1;
|
|
306
|
+
if (candidate.resolutionState === 'resolved')
|
|
307
|
+
score *= 0.85;
|
|
308
|
+
const newerResolution = candidate.failureCategory
|
|
309
|
+
? newestResolutionByCategory.get(candidate.failureCategory)
|
|
310
|
+
: undefined;
|
|
311
|
+
if (candidate.type !== 'error_resolution' && newerResolution && newerResolution > candidate.createdAt) {
|
|
312
|
+
score *= 0.3;
|
|
313
|
+
}
|
|
260
314
|
return { ...candidate, score };
|
|
261
315
|
}).sort((a, b) => b.score - a.score || b.createdAt - a.createdAt || a.id.localeCompare(b.id));
|
|
262
316
|
const memories = [];
|
|
263
317
|
const limit = Math.max(0, Math.floor(normalized.limit ?? Number.MAX_SAFE_INTEGER));
|
|
264
318
|
let tokenCount = 0;
|
|
319
|
+
const clusters = new Set();
|
|
320
|
+
const failureCounts = new Map();
|
|
265
321
|
for (const candidate of ranked) {
|
|
266
322
|
if (memories.length >= limit)
|
|
267
323
|
continue;
|
|
324
|
+
if (clusters.has(candidate.clusterKey))
|
|
325
|
+
continue;
|
|
326
|
+
if (candidate.failureCategory && (failureCounts.get(candidate.failureCategory) ?? 0) >= 2)
|
|
327
|
+
continue;
|
|
268
328
|
const itemTokens = estimateMemoryTokens(`${candidate.title}\n${candidate.content}`);
|
|
269
329
|
if (tokenCount + itemTokens > budgetTokens)
|
|
270
330
|
continue;
|
|
@@ -275,11 +335,21 @@ export class MemoryEngine {
|
|
|
275
335
|
score: Math.round(candidate.score * 10000) / 10000, createdAt: candidate.createdAt,
|
|
276
336
|
});
|
|
277
337
|
tokenCount += itemTokens;
|
|
338
|
+
clusters.add(candidate.clusterKey);
|
|
339
|
+
if (candidate.failureCategory) {
|
|
340
|
+
failureCounts.set(candidate.failureCategory, (failureCounts.get(candidate.failureCategory) ?? 0) + 1);
|
|
341
|
+
}
|
|
278
342
|
try {
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
343
|
+
this.store.recordRetrievalAccess({
|
|
344
|
+
sourceType: candidate.memoryId ? 'memory' : 'observation',
|
|
345
|
+
sourceId: candidate.memoryId ?? candidate.observationId,
|
|
346
|
+
accessType: 'agent_use',
|
|
347
|
+
sessionId: retrievalOptions.sessionId,
|
|
348
|
+
query: normalized.query,
|
|
349
|
+
purpose: normalized.purpose ?? 'get_memory',
|
|
350
|
+
rank: memories.length,
|
|
351
|
+
score: candidate.score,
|
|
352
|
+
});
|
|
283
353
|
}
|
|
284
354
|
catch { /* access reinforcement is non-critical */ }
|
|
285
355
|
}
|
|
@@ -310,7 +380,7 @@ export class MemoryEngine {
|
|
|
310
380
|
}
|
|
311
381
|
const observationSessionId = sessionId ?? `explicit:${Date.now()}`;
|
|
312
382
|
await this.ensureSession(observationSessionId, this.rootPath, 'Explicit memory intent');
|
|
313
|
-
const row = this.store.
|
|
383
|
+
const row = this.store.addObservationWithEmbedding({
|
|
314
384
|
sessionId: observationSessionId,
|
|
315
385
|
project: this.rootPath,
|
|
316
386
|
type: 'user_preference',
|
|
@@ -319,8 +389,8 @@ export class MemoryEngine {
|
|
|
319
389
|
importance: 10,
|
|
320
390
|
confidence: 0.95,
|
|
321
391
|
source: 'explicit_intent',
|
|
322
|
-
|
|
323
|
-
|
|
392
|
+
qualityStatus: 'accepted',
|
|
393
|
+
}, embedding);
|
|
324
394
|
return {
|
|
325
395
|
id: row.id, type: row.type, title: row.title, content: row.narrative,
|
|
326
396
|
source: row.source, scope: row.project, confidence: row.confidence,
|
|
@@ -328,7 +398,8 @@ export class MemoryEngine {
|
|
|
328
398
|
};
|
|
329
399
|
}
|
|
330
400
|
listObservationMemories(source) {
|
|
331
|
-
return this.store.listObservations()
|
|
401
|
+
return this.store.listObservations({ qualityStatus: 'accepted' })
|
|
402
|
+
.filter(observation => observation.resolution_state !== 'superseded')
|
|
332
403
|
.filter(observation => !source || observation.source === source)
|
|
333
404
|
.map(observation => ({
|
|
334
405
|
id: observation.id,
|
|
@@ -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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"}
|
package/dist/memory-gate.d.ts
CHANGED
|
@@ -66,7 +66,7 @@ export declare class MemoryGate implements IMemoryEngine {
|
|
|
66
66
|
* Saves distilled observations from Claude and marks source events as processed.
|
|
67
67
|
* @deprecated Use saveDistilledObservationsByBatch(batchId, observations) instead.
|
|
68
68
|
*/
|
|
69
|
-
saveDistilledObservations(observations: ParsedObservation[], sessionId: string): number
|
|
69
|
+
saveDistilledObservations(observations: ParsedObservation[], sessionId: string): Promise<number>;
|
|
70
70
|
/** Returns the count of unprocessed events (for session-start hook). */
|
|
71
71
|
getPendingEventCount(): number;
|
|
72
72
|
private maybeWarmUp;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-gate.d.ts","sourceRoot":"","sources":["../src/memory-gate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EACpD,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAC5D,iBAAiB,EAAE,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EACxE,iBAAiB,EACjB,gBAAgB,EAAE,eAAe,EAAE,kBAAkB,EACtD,MAAM,oBAAoB,CAAC;AAK5B,OAAO,
|
|
1
|
+
{"version":3,"file":"memory-gate.d.ts","sourceRoot":"","sources":["../src/memory-gate.ts"],"names":[],"mappings":"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"}
|
package/dist/memory-gate.js
CHANGED
|
@@ -2,7 +2,7 @@ import { SignalBuffer } from './signal-buffer.js';
|
|
|
2
2
|
import { validateProjectRoot, hasForceInitSentinel, writeForceInitSentinel } from './project-validator.js';
|
|
3
3
|
import { MemoryEngine } from './memory-engine.js';
|
|
4
4
|
import { SignalAnalyzer } from './signal-analyzer.js';
|
|
5
|
-
import { EmbeddingProvider } from './embedding-provider.js';
|
|
5
|
+
import { assertEmbeddingBatch, EmbeddingProvider } from './embedding-provider.js';
|
|
6
6
|
import { groupEvents, triageGroups } from './event-grouper.js';
|
|
7
7
|
import { SUMMARY_SYSTEM, buildSummaryPrompt } from './session-summarizer.js';
|
|
8
8
|
import { LeaseStore } from './lease-store.js';
|
|
@@ -10,6 +10,7 @@ import { appendFileSync, mkdirSync } from 'node:fs';
|
|
|
10
10
|
import { homedir } from 'node:os';
|
|
11
11
|
import { join } from 'node:path';
|
|
12
12
|
import { isObservationType, observationDedupKey, } from './observation-types.js';
|
|
13
|
+
import { evaluateObservationQuality } from './observation-quality.js';
|
|
13
14
|
const BATCH_CONCEPT_STOP_WORDS = new Set([
|
|
14
15
|
'a', 'an', 'the', 'is', 'are', 'was', 'were', 'be', 'been', 'being',
|
|
15
16
|
'have', 'has', 'had', 'do', 'does', 'did', 'will', 'would', 'should',
|
|
@@ -260,8 +261,11 @@ export class MemoryGate {
|
|
|
260
261
|
const groups = groupEvents(events);
|
|
261
262
|
const selected = triageGroups(groups);
|
|
262
263
|
if (selected.length === 0) {
|
|
263
|
-
|
|
264
|
-
|
|
264
|
+
const eventIds = events.map(event => event.id);
|
|
265
|
+
const sessionIds = [...new Set(events.map(event => event.session_id).filter(Boolean))];
|
|
266
|
+
const batchId = leases.createLease(eventIds, sessionIds);
|
|
267
|
+
engine.store.discardEvents(eventIds, 'low_value_triage', batchId);
|
|
268
|
+
leases.commitLease(batchId);
|
|
265
269
|
return null;
|
|
266
270
|
}
|
|
267
271
|
const selectedGroupIds = new Set(selected.map(group => group.id));
|
|
@@ -318,30 +322,38 @@ export class MemoryGate {
|
|
|
318
322
|
throw new Error(this.embedder.getLastError() ?? 'Observation embedding warmup failed');
|
|
319
323
|
}
|
|
320
324
|
const embeddings = await this.embedder.embedBatch(validObs.map(observation => `${observation.title}\n${observation.narrative ?? ''}`));
|
|
321
|
-
|
|
322
|
-
throw new Error(`Observation vector count mismatch: ${validObs.length} observations, ${embeddings.length} vectors`);
|
|
323
|
-
}
|
|
325
|
+
assertEmbeddingBatch(embeddings, validObs.length);
|
|
324
326
|
leases.expireOverdueLeases();
|
|
325
327
|
const currentLease = leases.getLease(batchId);
|
|
326
328
|
if (!currentLease || currentLease.status !== 'pending') {
|
|
327
329
|
throw new Error(`Distill batch ${batchId} is ${currentLease?.status ?? 'missing'} and cannot be saved`);
|
|
328
330
|
}
|
|
331
|
+
const sourceEvents = engine.store.listAllEvents()
|
|
332
|
+
.filter(event => lease.eventIds.includes(event.id));
|
|
333
|
+
let committedObservationCount = 0;
|
|
329
334
|
const transaction = this.getStoreDb().transaction(() => {
|
|
330
335
|
for (let index = 0; index < validObs.length; index++) {
|
|
331
336
|
const obs = validObs[index];
|
|
337
|
+
const quality = evaluateObservationQuality({
|
|
338
|
+
...obs,
|
|
339
|
+
source: 'distill',
|
|
340
|
+
sourceEventIds: lease.eventIds,
|
|
341
|
+
}, sourceEvents);
|
|
332
342
|
const exact = engine.store.findObservationByDedupKey(observationDedupKey(obs.type, obs.title));
|
|
333
343
|
if (exact) {
|
|
334
344
|
engine.store.linkObservationToEvents(exact.id, lease.eventIds);
|
|
335
345
|
engine.store.incrementObservationAccess(exact.id);
|
|
346
|
+
committedObservationCount += 1;
|
|
336
347
|
continue;
|
|
337
348
|
}
|
|
338
349
|
const semantic = engine.store.findSemanticObservationDuplicate(obs.type, embeddings[index], Date.now() - 90 * 86400000, 0.9);
|
|
339
350
|
if (semantic) {
|
|
340
351
|
engine.store.linkObservationToEvents(semantic.id, lease.eventIds);
|
|
341
352
|
engine.store.incrementObservationAccess(semantic.id);
|
|
353
|
+
committedObservationCount += 1;
|
|
342
354
|
continue;
|
|
343
355
|
}
|
|
344
|
-
const row = engine.store.
|
|
356
|
+
const row = engine.store.addObservationWithEmbedding({
|
|
345
357
|
sessionId: lease.sessionIds[0] ?? '',
|
|
346
358
|
project: this.projectRoot,
|
|
347
359
|
type: obs.type,
|
|
@@ -353,10 +365,15 @@ export class MemoryGate {
|
|
|
353
365
|
confidence: obs.confidence,
|
|
354
366
|
source: 'distill',
|
|
355
367
|
sourceEventIds: lease.eventIds,
|
|
356
|
-
|
|
357
|
-
|
|
368
|
+
qualityStatus: quality.status,
|
|
369
|
+
quarantineReason: quality.reason,
|
|
370
|
+
qualityDetails: quality.details,
|
|
371
|
+
failureCategory: quality.failureCategory ?? undefined,
|
|
372
|
+
}, embeddings[index]);
|
|
373
|
+
committedObservationCount += 1;
|
|
358
374
|
}
|
|
359
|
-
|
|
375
|
+
if (committedObservationCount > 0)
|
|
376
|
+
engine.store.markEventsProcessed(lease.eventIds);
|
|
360
377
|
leases.commitLease(batchId);
|
|
361
378
|
});
|
|
362
379
|
transaction();
|
|
@@ -374,7 +391,7 @@ export class MemoryGate {
|
|
|
374
391
|
* Saves distilled observations from Claude and marks source events as processed.
|
|
375
392
|
* @deprecated Use saveDistilledObservationsByBatch(batchId, observations) instead.
|
|
376
393
|
*/
|
|
377
|
-
saveDistilledObservations(observations, sessionId) {
|
|
394
|
+
async saveDistilledObservations(observations, sessionId) {
|
|
378
395
|
console.warn('[MemoryGate] saveDistilledObservations by sessionId is deprecated; use saveDistilledObservationsByBatch instead');
|
|
379
396
|
if (!this.engine)
|
|
380
397
|
return 0;
|
|
@@ -387,9 +404,22 @@ export class MemoryGate {
|
|
|
387
404
|
engine.store.ensureSession(sessionId, this.projectRoot, 'Distilled observation');
|
|
388
405
|
const events = engine.store.getSessionEvents(sessionId);
|
|
389
406
|
const unprocessedIds = events.filter(e => !e.processed).map(e => e.id);
|
|
407
|
+
const warmed = await this.embedder.warmup();
|
|
408
|
+
if (!warmed) {
|
|
409
|
+
throw new Error(this.embedder.getLastError() ?? 'Observation embedding warmup failed');
|
|
410
|
+
}
|
|
411
|
+
const embeddings = await this.embedder.embedBatch(validObs.map(observation => `${observation.title}\n${observation.narrative ?? ''}`));
|
|
412
|
+
assertEmbeddingBatch(embeddings, validObs.length);
|
|
413
|
+
let committedObservationCount = 0;
|
|
390
414
|
const transaction = this.getStoreDb().transaction(() => {
|
|
391
|
-
for (
|
|
392
|
-
const
|
|
415
|
+
for (let index = 0; index < validObs.length; index += 1) {
|
|
416
|
+
const obs = validObs[index];
|
|
417
|
+
const quality = evaluateObservationQuality({
|
|
418
|
+
...obs,
|
|
419
|
+
source: 'distill',
|
|
420
|
+
sourceEventIds: unprocessedIds,
|
|
421
|
+
}, events.filter(event => unprocessedIds.includes(event.id)));
|
|
422
|
+
const row = engine.store.addObservationWithEmbedding({
|
|
393
423
|
sessionId,
|
|
394
424
|
project: this.projectRoot,
|
|
395
425
|
type: obs.type,
|
|
@@ -401,10 +431,16 @@ export class MemoryGate {
|
|
|
401
431
|
confidence: obs.confidence,
|
|
402
432
|
source: 'distill',
|
|
403
433
|
sourceEventIds: unprocessedIds,
|
|
404
|
-
|
|
434
|
+
qualityStatus: quality.status,
|
|
435
|
+
quarantineReason: quality.reason,
|
|
436
|
+
qualityDetails: quality.details,
|
|
437
|
+
failureCategory: quality.failureCategory ?? undefined,
|
|
438
|
+
}, embeddings[index]);
|
|
405
439
|
engine.store.linkObservationToEvents(row.id, unprocessedIds);
|
|
440
|
+
committedObservationCount += 1;
|
|
406
441
|
}
|
|
407
|
-
|
|
442
|
+
if (committedObservationCount > 0)
|
|
443
|
+
engine.store.markEventsProcessed(unprocessedIds);
|
|
408
444
|
});
|
|
409
445
|
transaction();
|
|
410
446
|
console.log('[MemoryGate] Distilled observations saved', {
|