@cleocode/core 2026.8.2 → 2026.8.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/check/pr-gate.d.ts.map +1 -1
- package/dist/check/pr-gate.js +9 -0
- package/dist/check/pr-gate.js.map +1 -1
- package/dist/docs/export-document.js +66 -16
- package/dist/docs/export-document.js.map +3 -3
- package/dist/hooks/registry.d.ts +2 -2
- package/dist/hooks/registry.d.ts.map +1 -1
- package/dist/hooks/registry.js +5 -0
- package/dist/hooks/registry.js.map +1 -1
- package/dist/hooks/types.d.ts +59 -0
- package/dist/hooks/types.d.ts.map +1 -1
- package/dist/init/scaffold-workflows.d.ts +12 -0
- package/dist/init/scaffold-workflows.d.ts.map +1 -1
- package/dist/init/scaffold-workflows.js +16 -0
- package/dist/init/scaffold-workflows.js.map +1 -1
- package/dist/init/upgrade-workflows.d.ts.map +1 -1
- package/dist/init/upgrade-workflows.js +16 -0
- package/dist/init/upgrade-workflows.js.map +1 -1
- package/dist/init.d.ts.map +1 -1
- package/dist/init.js +16 -1
- package/dist/init.js.map +1 -1
- package/dist/internal.d.ts +1 -0
- package/dist/internal.d.ts.map +1 -1
- package/dist/internal.js +2 -0
- package/dist/internal.js.map +1 -1
- package/dist/llm/credentials.d.ts +16 -1
- package/dist/llm/credentials.d.ts.map +1 -1
- package/dist/llm/credentials.js.map +1 -1
- package/dist/llm/cross-provider-selector.d.ts +25 -0
- package/dist/llm/cross-provider-selector.d.ts.map +1 -1
- package/dist/llm/cross-provider-selector.js +76 -3
- package/dist/llm/cross-provider-selector.js.map +1 -1
- package/dist/llm/local-inference-probe.d.ts +101 -0
- package/dist/llm/local-inference-probe.d.ts.map +1 -0
- package/dist/llm/local-inference-probe.js +174 -0
- package/dist/llm/local-inference-probe.js.map +1 -0
- package/dist/llm/plugin-facade.js +199 -21
- package/dist/llm/plugin-facade.js.map +3 -3
- package/dist/llm/role-executor.d.ts.map +1 -1
- package/dist/llm/role-executor.js +95 -9
- package/dist/llm/role-executor.js.map +1 -1
- package/dist/llm/role-resolver.d.ts +10 -0
- package/dist/llm/role-resolver.d.ts.map +1 -1
- package/dist/llm/role-resolver.js +92 -1
- package/dist/llm/role-resolver.js.map +1 -1
- package/dist/llm/system-resolver.d.ts.map +1 -1
- package/dist/llm/system-resolver.js +2 -0
- package/dist/llm/system-resolver.js.map +1 -1
- package/dist/memory/brain-search.d.ts +109 -0
- package/dist/memory/brain-search.d.ts.map +1 -1
- package/dist/memory/brain-search.js +149 -37
- package/dist/memory/brain-search.js.map +1 -1
- package/dist/memory/brain-stub-prune.d.ts +109 -0
- package/dist/memory/brain-stub-prune.d.ts.map +1 -0
- package/dist/memory/brain-stub-prune.js +155 -0
- package/dist/memory/brain-stub-prune.js.map +1 -0
- package/dist/memory/engine-compat.d.ts.map +1 -1
- package/dist/memory/engine-compat.js +61 -3
- package/dist/memory/engine-compat.js.map +1 -1
- package/dist/nexus/analyze-orchestrator.d.ts.map +1 -1
- package/dist/nexus/analyze-orchestrator.js +28 -0
- package/dist/nexus/analyze-orchestrator.js.map +1 -1
- package/dist/nexus/context.d.ts.map +1 -1
- package/dist/nexus/context.js +3 -3
- package/dist/nexus/context.js.map +1 -1
- package/dist/nexus/impact.d.ts.map +1 -1
- package/dist/nexus/impact.js +3 -3
- package/dist/nexus/impact.js.map +1 -1
- package/dist/nexus/symbol-miss.d.ts +132 -0
- package/dist/nexus/symbol-miss.d.ts.map +1 -0
- package/dist/nexus/symbol-miss.js +168 -0
- package/dist/nexus/symbol-miss.js.map +1 -0
- package/dist/orchestrate/spawn-ops.d.ts +21 -1
- package/dist/orchestrate/spawn-ops.d.ts.map +1 -1
- package/dist/orchestrate/spawn-ops.js +39 -2
- package/dist/orchestrate/spawn-ops.js.map +1 -1
- package/dist/orchestrate/worker-verify.d.ts.map +1 -1
- package/dist/orchestrate/worker-verify.js +22 -0
- package/dist/orchestrate/worker-verify.js.map +1 -1
- package/dist/release/changesets-aggregator.d.ts.map +1 -1
- package/dist/release/changesets-aggregator.js +15 -1
- package/dist/release/changesets-aggregator.js.map +1 -1
- package/dist/release/open.d.ts +29 -2
- package/dist/release/open.d.ts.map +1 -1
- package/dist/release/open.js +48 -11
- package/dist/release/open.js.map +1 -1
- package/dist/resources/governor.d.ts +12 -2
- package/dist/resources/governor.d.ts.map +1 -1
- package/dist/resources/governor.js +12 -3
- package/dist/resources/governor.js.map +1 -1
- package/dist/scaffold/ensure-dirs.d.ts.map +1 -1
- package/dist/scaffold/ensure-dirs.js +14 -2
- package/dist/scaffold/ensure-dirs.js.map +1 -1
- package/dist/scaffold/project-detection.d.ts.map +1 -1
- package/dist/scaffold/project-detection.js +2 -1
- package/dist/scaffold/project-detection.js.map +1 -1
- package/dist/selfimprove/draft-pr.d.ts +14 -1
- package/dist/selfimprove/draft-pr.d.ts.map +1 -1
- package/dist/selfimprove/draft-pr.js.map +1 -1
- package/dist/selfimprove/fix-gen.d.ts +0 -21
- package/dist/selfimprove/fix-gen.d.ts.map +1 -1
- package/dist/selfimprove/fix-gen.js +276 -76
- package/dist/selfimprove/fix-gen.js.map +3 -3
- package/dist/selfimprove/run-loop.d.ts.map +1 -1
- package/dist/selfimprove/run-loop.js +50 -19
- package/dist/selfimprove/run-loop.js.map +1 -1
- package/dist/selfimprove/scenarios/dhq-replay-find/golden.json +114 -4
- package/dist/selfimprove/scenarios/dhq-replay-find/scenario.json +3 -3
- package/dist/sentient/dream-cycle.d.ts +20 -19
- package/dist/sentient/dream-cycle.d.ts.map +1 -1
- package/dist/sentient/dream-cycle.js +322 -11
- package/dist/sentient/dream-cycle.js.map +1 -1
- package/dist/sentient/dream-watermark.d.ts +134 -0
- package/dist/sentient/dream-watermark.d.ts.map +1 -0
- package/dist/sentient/dream-watermark.js +156 -0
- package/dist/sentient/dream-watermark.js.map +1 -0
- package/dist/sentient/state.d.ts +17 -0
- package/dist/sentient/state.d.ts.map +1 -1
- package/dist/sentient/state.js +22 -3
- package/dist/sentient/state.js.map +1 -1
- package/dist/sentient/tick.d.ts.map +1 -1
- package/dist/sentient/tick.js +79 -2
- package/dist/sentient/tick.js.map +1 -1
- package/dist/sessions/index.d.ts.map +1 -1
- package/dist/sessions/index.js +5 -1
- package/dist/sessions/index.js.map +1 -1
- package/dist/sessions/snapshot.d.ts.map +1 -1
- package/dist/sessions/snapshot.js +6 -3
- package/dist/sessions/snapshot.js.map +1 -1
- package/dist/store/checkpoint-git-dir.d.ts +95 -0
- package/dist/store/checkpoint-git-dir.d.ts.map +1 -0
- package/dist/store/checkpoint-git-dir.js +111 -0
- package/dist/store/checkpoint-git-dir.js.map +1 -0
- package/dist/store/git-checkpoint.d.ts.map +1 -1
- package/dist/store/git-checkpoint.js +6 -5
- package/dist/store/git-checkpoint.js.map +1 -1
- package/dist/system/health.d.ts.map +1 -1
- package/dist/system/health.js +2 -1
- package/dist/system/health.js.map +1 -1
- package/dist/tasks/add.d.ts.map +1 -1
- package/dist/tasks/add.js +40 -4
- package/dist/tasks/add.js.map +1 -1
- package/dist/tasks/collection.d.ts +51 -0
- package/dist/tasks/collection.d.ts.map +1 -0
- package/dist/tasks/collection.js +81 -0
- package/dist/tasks/collection.js.map +1 -0
- package/dist/tasks/complete.d.ts.map +1 -1
- package/dist/tasks/complete.js +8 -3
- package/dist/tasks/complete.js.map +1 -1
- package/dist/tasks/evidence.d.ts.map +1 -1
- package/dist/tasks/evidence.js +17 -0
- package/dist/tasks/evidence.js.map +1 -1
- package/dist/tasks/find.d.ts +50 -0
- package/dist/tasks/find.d.ts.map +1 -1
- package/dist/tasks/find.js +63 -2
- package/dist/tasks/find.js.map +1 -1
- package/dist/tasks/tool-resolver.d.ts +1 -1
- package/dist/tasks/tool-resolver.d.ts.map +1 -1
- package/dist/tasks/tool-resolver.js +83 -0
- package/dist/tasks/tool-resolver.js.map +1 -1
- package/dist/tasks/tool-semaphore.d.ts +82 -12
- package/dist/tasks/tool-semaphore.d.ts.map +1 -1
- package/dist/tasks/tool-semaphore.js +79 -17
- package/dist/tasks/tool-semaphore.js.map +1 -1
- package/package.json +13 -13
- package/templates/CLEO-INJECTION.md +40 -25
- package/templates/workflows/release-prepare.yml.tmpl +73 -16
|
@@ -251,12 +251,14 @@ function searchWithFts5(nativeDb, query, tables, limit, peerId, includeGlobal =
|
|
|
251
251
|
learnings: [],
|
|
252
252
|
observations: [],
|
|
253
253
|
};
|
|
254
|
-
//
|
|
255
|
-
|
|
254
|
+
// T12073: conjunctive-first. `fts5Queries.and` requires every term (high
|
|
255
|
+
// precision); the OR form is used only when AND matches nothing, preserving
|
|
256
|
+
// the recall the disjunctive builder was introduced for (T553).
|
|
257
|
+
const fts5Queries = buildFts5Queries(query);
|
|
256
258
|
if (tables.includes('decisions')) {
|
|
257
259
|
const { clause, params } = buildPeerClause('d', peerId, includeGlobal);
|
|
258
260
|
try {
|
|
259
|
-
const
|
|
261
|
+
const stmt = nativeDb.prepare(`
|
|
260
262
|
SELECT d.*
|
|
261
263
|
FROM brain_decisions_fts fts
|
|
262
264
|
JOIN brain_decisions d ON d.rowid = fts.rowid
|
|
@@ -265,7 +267,8 @@ function searchWithFts5(nativeDb, query, tables, limit, peerId, includeGlobal =
|
|
|
265
267
|
${clause}
|
|
266
268
|
ORDER BY bm25(brain_decisions_fts)
|
|
267
269
|
LIMIT ?
|
|
268
|
-
`)
|
|
270
|
+
`);
|
|
271
|
+
const rows = matchConjunctiveFirst((matchExpr) => typedAll(stmt, matchExpr, QUALITY_SCORE_THRESHOLD, ...params, limit), fts5Queries);
|
|
269
272
|
result.decisions = rows;
|
|
270
273
|
}
|
|
271
274
|
catch {
|
|
@@ -276,7 +279,7 @@ function searchWithFts5(nativeDb, query, tables, limit, peerId, includeGlobal =
|
|
|
276
279
|
if (tables.includes('patterns')) {
|
|
277
280
|
const { clause, params } = buildPeerClause('p', peerId, includeGlobal);
|
|
278
281
|
try {
|
|
279
|
-
const
|
|
282
|
+
const stmt = nativeDb.prepare(`
|
|
280
283
|
SELECT p.*
|
|
281
284
|
FROM brain_patterns_fts fts
|
|
282
285
|
JOIN brain_patterns p ON p.rowid = fts.rowid
|
|
@@ -285,7 +288,8 @@ function searchWithFts5(nativeDb, query, tables, limit, peerId, includeGlobal =
|
|
|
285
288
|
${clause}
|
|
286
289
|
ORDER BY bm25(brain_patterns_fts)
|
|
287
290
|
LIMIT ?
|
|
288
|
-
`)
|
|
291
|
+
`);
|
|
292
|
+
const rows = matchConjunctiveFirst((matchExpr) => typedAll(stmt, matchExpr, QUALITY_SCORE_THRESHOLD, ...params, limit), fts5Queries);
|
|
289
293
|
result.patterns = rows;
|
|
290
294
|
}
|
|
291
295
|
catch {
|
|
@@ -295,7 +299,7 @@ function searchWithFts5(nativeDb, query, tables, limit, peerId, includeGlobal =
|
|
|
295
299
|
if (tables.includes('learnings')) {
|
|
296
300
|
const { clause, params } = buildPeerClause('l', peerId, includeGlobal);
|
|
297
301
|
try {
|
|
298
|
-
const
|
|
302
|
+
const stmt = nativeDb.prepare(`
|
|
299
303
|
SELECT l.*
|
|
300
304
|
FROM brain_learnings_fts fts
|
|
301
305
|
JOIN brain_learnings l ON l.rowid = fts.rowid
|
|
@@ -304,7 +308,8 @@ function searchWithFts5(nativeDb, query, tables, limit, peerId, includeGlobal =
|
|
|
304
308
|
${clause}
|
|
305
309
|
ORDER BY bm25(brain_learnings_fts)
|
|
306
310
|
LIMIT ?
|
|
307
|
-
`)
|
|
311
|
+
`);
|
|
312
|
+
const rows = matchConjunctiveFirst((matchExpr) => typedAll(stmt, matchExpr, QUALITY_SCORE_THRESHOLD, ...params, limit), fts5Queries);
|
|
308
313
|
result.learnings = rows;
|
|
309
314
|
}
|
|
310
315
|
catch {
|
|
@@ -314,7 +319,7 @@ function searchWithFts5(nativeDb, query, tables, limit, peerId, includeGlobal =
|
|
|
314
319
|
if (tables.includes('observations')) {
|
|
315
320
|
const { clause, params } = buildPeerClause('o', peerId, includeGlobal);
|
|
316
321
|
try {
|
|
317
|
-
const
|
|
322
|
+
const stmt = nativeDb.prepare(`
|
|
318
323
|
SELECT o.*
|
|
319
324
|
FROM brain_observations_fts fts
|
|
320
325
|
JOIN brain_observations o ON o.rowid = fts.rowid
|
|
@@ -323,7 +328,8 @@ function searchWithFts5(nativeDb, query, tables, limit, peerId, includeGlobal =
|
|
|
323
328
|
${clause}
|
|
324
329
|
ORDER BY bm25(brain_observations_fts)
|
|
325
330
|
LIMIT ?
|
|
326
|
-
`)
|
|
331
|
+
`);
|
|
332
|
+
const rows = matchConjunctiveFirst((matchExpr) => typedAll(stmt, matchExpr, QUALITY_SCORE_THRESHOLD, ...params, limit), fts5Queries);
|
|
327
333
|
result.observations = rows;
|
|
328
334
|
}
|
|
329
335
|
catch {
|
|
@@ -424,14 +430,56 @@ function likeSearchObservations(nativeDb, query, limit, peerId, includeGlobal =
|
|
|
424
430
|
* ("EPIC:"), because FTS5's default tokenizer cannot index them and the
|
|
425
431
|
* AND semantics then guaranteed zero matches for the whole query. (T553 bug fix)
|
|
426
432
|
*/
|
|
427
|
-
function escapeFts5Query(query) {
|
|
433
|
+
export function escapeFts5Query(query) {
|
|
434
|
+
return buildFts5Queries(query).or;
|
|
435
|
+
}
|
|
436
|
+
/**
|
|
437
|
+
* Build the AND and OR MATCH expressions for a natural-language query.
|
|
438
|
+
*
|
|
439
|
+
* ## Why both, and why prefixes (T12073)
|
|
440
|
+
*
|
|
441
|
+
* The previous builder emitted `"tok1" OR "tok2"` — quoted terms joined by OR.
|
|
442
|
+
* Measured against the live 6,985-observation corpus, that has two failure
|
|
443
|
+
* modes that together make recall useless for anything but an exact rare token:
|
|
444
|
+
*
|
|
445
|
+
* **Quoted terms are exact, so morphological variants are invisible.** A search
|
|
446
|
+
* for `orphan` matched 113 documents; `orphan*` matched 189. Seventy-six
|
|
447
|
+
* documents saying "orphaned" or "orphans" could not be found by searching for
|
|
448
|
+
* "orphan". SQLite FTS5 has no stemmer on the `unicode61` tokenizer, so a
|
|
449
|
+
* prefix wildcard is the available substitute — and it is a good one, because
|
|
450
|
+
* it costs nothing on a prefix-indexed b-tree.
|
|
451
|
+
*
|
|
452
|
+
* **Pure OR plus BM25 ranks by term rarity, not by term coverage.** A short
|
|
453
|
+
* document matching ONE query term outranks a long one matching ALL of them,
|
|
454
|
+
* because BM25 normalises for length. On this corpus that is catastrophic:
|
|
455
|
+
* 30% of observations are sub-60-character auto-capture stubs, so the
|
|
456
|
+
* shortest, emptiest records win. Searching `nexus_symbols_fts orphan` under
|
|
457
|
+
* the old builder returned *"Consolidated: change observations (5 entries)"*
|
|
458
|
+
* as the top hit — a record with no content at all — while the conjunctive
|
|
459
|
+
* form returns only documents about orphans in nexus.
|
|
460
|
+
*
|
|
461
|
+
* So: require all terms first, and fall back to ANY only when the conjunction
|
|
462
|
+
* finds nothing. That preserves the recall the OR form was introduced for
|
|
463
|
+
* (T553: non-word tokens like em dashes zeroing out an implicit-AND query)
|
|
464
|
+
* without letting it dominate the common case.
|
|
465
|
+
*
|
|
466
|
+
* @param query - the raw user query.
|
|
467
|
+
* @returns AND/OR MATCH expressions and the usable term count.
|
|
468
|
+
*
|
|
469
|
+
* @example
|
|
470
|
+
* ```ts
|
|
471
|
+
* const q = buildFts5Queries('nexus_symbols_fts orphan');
|
|
472
|
+
* // q.and === 'nexus_symbols_fts* AND orphan*'
|
|
473
|
+
* // q.or === 'nexus_symbols_fts* OR orphan*'
|
|
474
|
+
* ```
|
|
475
|
+
*
|
|
476
|
+
* @task T553
|
|
477
|
+
* @task T12073
|
|
478
|
+
*/
|
|
479
|
+
export function buildFts5Queries(query) {
|
|
428
480
|
const rawTokens = query.trim().split(/\s+/).filter(Boolean);
|
|
429
|
-
if (rawTokens.length === 0)
|
|
430
|
-
return '""';
|
|
431
|
-
// Keep tokens that have at least one alphanumeric character and are not
|
|
432
|
-
// pure stop-words (length ≥ 2 after stripping leading/trailing punctuation).
|
|
433
481
|
const seen = new Set();
|
|
434
|
-
const
|
|
482
|
+
const terms = [];
|
|
435
483
|
for (const t of rawTokens) {
|
|
436
484
|
// Strip leading/trailing non-word characters (e.g. "EPIC:" → "EPIC", "—" → "")
|
|
437
485
|
const stripped = t.replace(/^\W+|\W+$/g, '');
|
|
@@ -443,12 +491,31 @@ function escapeFts5Query(query) {
|
|
|
443
491
|
if (seen.has(lower))
|
|
444
492
|
continue; // deduplicate
|
|
445
493
|
seen.add(lower);
|
|
446
|
-
|
|
494
|
+
// Quote to neutralise FTS5 syntax characters, then append the prefix
|
|
495
|
+
// operator OUTSIDE the quotes — `"foo"*` is the documented way to combine
|
|
496
|
+
// a quoted string with a prefix match.
|
|
497
|
+
terms.push(`"${stripped.replace(/"/g, '""')}"*`);
|
|
447
498
|
}
|
|
448
|
-
if (
|
|
449
|
-
return '""';
|
|
450
|
-
|
|
451
|
-
|
|
499
|
+
if (terms.length === 0)
|
|
500
|
+
return { and: '""', or: '""', termCount: 0 };
|
|
501
|
+
return { and: terms.join(' AND '), or: terms.join(' OR '), termCount: terms.length };
|
|
502
|
+
}
|
|
503
|
+
/**
|
|
504
|
+
* Run an FTS5-backed query conjunctively, falling back to disjunctive.
|
|
505
|
+
*
|
|
506
|
+
* Single-term queries skip the fallback entirely (AND and OR are identical).
|
|
507
|
+
*
|
|
508
|
+
* @param run - executes one MATCH expression and returns its rows.
|
|
509
|
+
* @param queries - the pair from {@link buildFts5Queries}.
|
|
510
|
+
* @returns conjunctive rows when non-empty, else disjunctive rows.
|
|
511
|
+
*
|
|
512
|
+
* @task T12073
|
|
513
|
+
*/
|
|
514
|
+
export function matchConjunctiveFirst(run, queries) {
|
|
515
|
+
const conjunctive = run(queries.and);
|
|
516
|
+
if (conjunctive.length > 0 || queries.termCount < 2)
|
|
517
|
+
return conjunctive;
|
|
518
|
+
return run(queries.or);
|
|
452
519
|
}
|
|
453
520
|
/**
|
|
454
521
|
* Reset the cached FTS5 availability flag.
|
|
@@ -469,6 +536,36 @@ export function resetFts5Cache() {
|
|
|
469
536
|
* standard value from Cormack, Clarke & Buettcher (SIGIR 2009).
|
|
470
537
|
*/
|
|
471
538
|
export const RRF_K = 60;
|
|
539
|
+
/**
|
|
540
|
+
* Round-robin interleave several independently-ranked lists.
|
|
541
|
+
*
|
|
542
|
+
* Takes rank 1 from every list, then rank 2 from every list, and so on, so a
|
|
543
|
+
* downstream consumer that scores by array position does not systematically
|
|
544
|
+
* favour whichever list happened to be concatenated first.
|
|
545
|
+
*
|
|
546
|
+
* @param lists - per-source lists, each already ordered best-first.
|
|
547
|
+
* @returns a single list preserving each source's internal order.
|
|
548
|
+
*
|
|
549
|
+
* @example
|
|
550
|
+
* ```ts
|
|
551
|
+
* interleaveRanked([['a1', 'a2'], ['b1'], ['c1', 'c2', 'c3']]);
|
|
552
|
+
* // ['a1', 'b1', 'c1', 'a2', 'c2', 'c3']
|
|
553
|
+
* ```
|
|
554
|
+
*
|
|
555
|
+
* @task T12073
|
|
556
|
+
*/
|
|
557
|
+
export function interleaveRanked(lists) {
|
|
558
|
+
const out = [];
|
|
559
|
+
const longest = lists.reduce((max, l) => Math.max(max, l.length), 0);
|
|
560
|
+
for (let i = 0; i < longest; i++) {
|
|
561
|
+
for (const list of lists) {
|
|
562
|
+
const item = list[i];
|
|
563
|
+
if (item !== undefined)
|
|
564
|
+
out.push(item);
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
return out;
|
|
568
|
+
}
|
|
472
569
|
/**
|
|
473
570
|
* Fuse ranked lists from multiple retrieval sources using Reciprocal Rank Fusion.
|
|
474
571
|
*
|
|
@@ -601,34 +698,49 @@ export async function hybridSearch(query, projectRoot, options) {
|
|
|
601
698
|
const vecResults = allResults[1];
|
|
602
699
|
const codeResults = (includeCode ? (allResults[2] ?? []) : []);
|
|
603
700
|
// --- 2. Project FTS results into ranked RrfHit list ---
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
701
|
+
//
|
|
702
|
+
// T12073: INTERLEAVE the four tables instead of concatenating them.
|
|
703
|
+
//
|
|
704
|
+
// RRF scores a hit by its POSITION in this array. Concatenating
|
|
705
|
+
// decisions → patterns → learnings → observations therefore encoded a fixed
|
|
706
|
+
// precedence that has nothing to do with relevance: every decision outranked
|
|
707
|
+
// every observation, always. With 128 decisions and 6,985 observations, the
|
|
708
|
+
// largest and most recent store was structurally the least reachable —
|
|
709
|
+
// `cleo memory find "caamp marker"` returned unrelated learnings while the
|
|
710
|
+
// ONE observation matching both terms (verified by direct MATCH) never
|
|
711
|
+
// placed.
|
|
712
|
+
//
|
|
713
|
+
// Each table is already BM25-ordered internally. Round-robin interleaving
|
|
714
|
+
// preserves that intra-table ordering while removing the inter-table bias,
|
|
715
|
+
// and avoids comparing BM25 scores across separate indexes — which is not
|
|
716
|
+
// meaningful, since each has its own corpus statistics.
|
|
717
|
+
const ftsRanked = [
|
|
718
|
+
ftsResults.decisions.map((d) => ({
|
|
607
719
|
id: d.id,
|
|
608
720
|
type: 'decision',
|
|
609
721
|
title: d.decision,
|
|
610
722
|
text: `${d.decision} — ${d.rationale}`,
|
|
611
|
-
})
|
|
612
|
-
|
|
613
|
-
for (const p of ftsResults.patterns) {
|
|
614
|
-
ftsHits.push({
|
|
723
|
+
})),
|
|
724
|
+
ftsResults.patterns.map((p) => ({
|
|
615
725
|
id: p.id,
|
|
616
726
|
type: 'pattern',
|
|
617
727
|
title: p.pattern,
|
|
618
728
|
text: `${p.pattern} — ${p.context}`,
|
|
619
|
-
})
|
|
620
|
-
|
|
621
|
-
for (const l of ftsResults.learnings) {
|
|
622
|
-
ftsHits.push({
|
|
729
|
+
})),
|
|
730
|
+
ftsResults.learnings.map((l) => ({
|
|
623
731
|
id: l.id,
|
|
624
732
|
type: 'learning',
|
|
625
733
|
title: l.insight,
|
|
626
734
|
text: `${l.insight} (source: ${l.source})`,
|
|
627
|
-
})
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
735
|
+
})),
|
|
736
|
+
ftsResults.observations.map((o) => ({
|
|
737
|
+
id: o.id,
|
|
738
|
+
type: 'observation',
|
|
739
|
+
title: o.title,
|
|
740
|
+
text: o.narrative ?? o.title,
|
|
741
|
+
})),
|
|
742
|
+
];
|
|
743
|
+
const ftsHits = interleaveRanked(ftsRanked);
|
|
632
744
|
// --- 3. Project vector results into ranked RrfHit list (ascending distance = descending quality) ---
|
|
633
745
|
const vecHits = vecResults.map((r) => ({
|
|
634
746
|
id: r.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"brain-search.js","sourceRoot":"","sources":["../../src/memory/brain-search.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAO/D,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAuC/D,mEAAmE;AACnE,IAAI,cAAc,GAAmB,IAAI,CAAC;AAE1C,2EAA2E;AAC3E,IAAI,gBAAgB,GAAG,KAAK,CAAC;AAE7B;;GAEG;AACH,SAAS,kBAAkB,CAAC,QAAsB;IAChD,IAAI,cAAc,KAAK,IAAI;QAAE,OAAO,cAAc,CAAC;IACnD,IAAI,CAAC;QACH,sCAAsC;QACtC,QAAQ,CAAC,OAAO,CAAC,iEAAiE,CAAC,CAAC,GAAG,EAAE,CAAC;QAC1F,QAAQ,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC,GAAG,EAAE,CAAC;QAC3D,cAAc,GAAG,IAAI,CAAC;IACxB,CAAC;IAAC,MAAM,CAAC;QACP,cAAc,GAAG,KAAK,CAAC;IACzB,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;GAGG;AACH,SAAS,OAAO,CAAC,QAAsB,EAAE,GAAW;IAClD,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;AAC9B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAsB;IACrD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gBAAgB;IAChB,OAAO,CACL,QAAQ,EACR;;;GAGD,CACA,CAAC;IAEF,eAAe;IACf,OAAO,CACL,QAAQ,EACR;;;GAGD,CACA,CAAC;IAEF,gBAAgB;IAChB,OAAO,CACL,QAAQ,EACR;;;GAGD,CACA,CAAC;IAEF,sCAAsC;IACtC,OAAO,CACL,QAAQ,EACR;;;;;GAKD,CACA,CAAC;IACF,OAAO,CACL,QAAQ,EACR;;;;;GAKD,CACA,CAAC;IACF,OAAO,CACL,QAAQ,EACR;;;;;;;GAOD,CACA,CAAC;IAEF,qCAAqC;IACrC,OAAO,CACL,QAAQ,EACR;;;;;GAKD,CACA,CAAC;IACF,OAAO,CACL,QAAQ,EACR;;;;;GAKD,CACA,CAAC;IACF,OAAO,CACL,QAAQ,EACR;;;;;;;GAOD,CACA,CAAC;IAEF,sCAAsC;IACtC,OAAO,CACL,QAAQ,EACR;;;;;GAKD,CACA,CAAC;IACF,OAAO,CACL,QAAQ,EACR;;;;;GAKD,CACA,CAAC;IACF,OAAO,CACL,QAAQ,EACR;;;;;;;GAOD,CACA,CAAC;IAEF,mBAAmB;IACnB,OAAO,CACL,QAAQ,EACR;;;GAGD,CACA,CAAC;IAEF,yCAAyC;IACzC,OAAO,CACL,QAAQ,EACR;;;;;GAKD,CACA,CAAC;IACF,OAAO,CACL,QAAQ,EACR;;;;;GAKD,CACA,CAAC;IACF,OAAO,CACL,QAAQ,EACR;;;;;;;GAOD,CACA,CAAC;IAEF,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAAsB;IACrD,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClC,OAAO;IACT,CAAC;IAED,QAAQ,CAAC,OAAO,CAAC,wEAAwE,CAAC,CAAC,GAAG,EAAE,CAAC;IACjG,QAAQ,CAAC,OAAO,CAAC,sEAAsE,CAAC,CAAC,GAAG,EAAE,CAAC;IAC/F,QAAQ,CAAC,OAAO,CAAC,wEAAwE,CAAC,CAAC,GAAG,EAAE,CAAC;IAEjG,kEAAkE;IAClE,IAAI,CAAC;QACH,QAAQ;aACL,OAAO,CAAC,8EAA8E,CAAC;aACvF,GAAG,EAAE,CAAC;IACX,CAAC;IAAC,MAAM,CAAC;QACP,gDAAgD;IAClD,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,WAAmB,EACnB,KAAa,EACb,OAA4B;IAE5B,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC;QACnB,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;IAC1E,CAAC;IAED,iCAAiC;IACjC,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;IACnF,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAE/C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;IAC1E,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;IACzF,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC;IAC/B,MAAM,aAAa,GAAG,OAAO,EAAE,aAAa,IAAI,IAAI,CAAC;IAErD,MAAM,YAAY,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAEhD,IAAI,YAAY,EAAE,CAAC;QACjB,gEAAgE;QAChE,qDAAqD;QACrD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,gBAAgB,GAAG,IAAI,CAAC;YACxB,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,cAAc,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IAC/E,CAAC;IAED,OAAO,cAAc,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;AAC/E,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,eAAe,CACtB,UAAkB,EAClB,MAA0B,EAC1B,aAAsB;IAEtB,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC/C,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO;YACL,MAAM,EAAE,SAAS,UAAU,mBAAmB,UAAU,sBAAsB;YAC9E,MAAM,EAAE,CAAC,MAAM,CAAC;SACjB,CAAC;IACJ,CAAC;IACD,OAAO;QACL,MAAM,EAAE,QAAQ,UAAU,cAAc;QACxC,MAAM,EAAE,CAAC,MAAM,CAAC;KACjB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CACrB,QAAsB,EACtB,KAAa,EACb,MAAsE,EACtE,KAAa,EACb,MAAe,EACf,aAAa,GAAG,IAAI;IAEpB,MAAM,MAAM,GAA4B;QACtC,SAAS,EAAE,EAAE;QACb,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,EAAE;QACb,YAAY,EAAE,EAAE;KACjB,CAAC;IAEF,4CAA4C;IAC5C,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAEzC,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACjC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QACvE,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,QAAQ,CACnB,QAAQ,CAAC,OAAO,CAAC;;;;;;YAMb,MAAM;;;OAGX,CAAC,EACA,SAAS,EACT,uBAAuB,EACvB,GAAG,MAAM,EACT,KAAK,CACN,CAAC;YACF,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,qDAAqD;YACrD,MAAM,CAAC,SAAS,GAAG,mBAAmB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAChC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QACvE,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,QAAQ,CACnB,QAAQ,CAAC,OAAO,CAAC;;;;;;YAMb,MAAM;;;OAGX,CAAC,EACA,SAAS,EACT,uBAAuB,EACvB,GAAG,MAAM,EACT,KAAK,CACN,CAAC;YACF,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACjC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QACvE,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,QAAQ,CACnB,QAAQ,CAAC,OAAO,CAAC;;;;;;YAMb,MAAM;;;OAGX,CAAC,EACA,SAAS,EACT,uBAAuB,EACvB,GAAG,MAAM,EACT,KAAK,CACN,CAAC;YACF,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC;QAC1B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,SAAS,GAAG,mBAAmB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QACxF,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QACpC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QACvE,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,QAAQ,CACnB,QAAQ,CAAC,OAAO,CAAC;;;;;;YAMb,MAAM;;;OAGX,CAAC,EACA,SAAS,EACT,uBAAuB,EACvB,GAAG,MAAM,EACT,KAAK,CACN,CAAC;YACF,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,YAAY,GAAG,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;QAC9F,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CACrB,QAAsB,EACtB,KAAa,EACb,MAAsE,EACtE,KAAa,EACb,MAAe,EACf,aAAa,GAAG,IAAI;IAEpB,MAAM,MAAM,GAA4B;QACtC,SAAS,EAAE,EAAE;QACb,QAAQ,EAAE,EAAE;QACZ,SAAS,EAAE,EAAE;QACb,YAAY,EAAE,EAAE;KACjB,CAAC;IAEF,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACjC,MAAM,CAAC,SAAS,GAAG,mBAAmB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IACxF,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAChC,MAAM,CAAC,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IACtF,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QACjC,MAAM,CAAC,SAAS,GAAG,mBAAmB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IACxF,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;QACpC,MAAM,CAAC,YAAY,GAAG,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IAC9F,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,mBAAmB,CAC1B,QAAsB,EACtB,KAAa,EACb,KAAa,EACb,MAAe,EACf,aAAa,GAAG,IAAI;IAEpB,MAAM,WAAW,GAAG,IAAI,KAAK,GAAG,CAAC;IACjC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,iBAAiB,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IACrF,OAAO,QAAQ,CACb,QAAQ,CAAC,OAAO,CAAC;;;;QAIb,MAAM;;;GAGX,CAAC,EACA,WAAW,EACX,WAAW,EACX,uBAAuB,EACvB,GAAG,MAAM,EACT,KAAK,CACN,CAAC;AACJ,CAAC;AAED,SAAS,kBAAkB,CACzB,QAAsB,EACtB,KAAa,EACb,KAAa,EACb,MAAe,EACf,aAAa,GAAG,IAAI;IAEpB,MAAM,WAAW,GAAG,IAAI,KAAK,GAAG,CAAC;IACjC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,gBAAgB,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IACpF,OAAO,QAAQ,CACb,QAAQ,CAAC,OAAO,CAAC;;;;QAIb,MAAM;;;GAGX,CAAC,EACA,WAAW,EACX,WAAW,EACX,uBAAuB,EACvB,GAAG,MAAM,EACT,KAAK,CACN,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,QAAsB,EACtB,KAAa,EACb,KAAa,EACb,MAAe,EACf,aAAa,GAAG,IAAI;IAEpB,MAAM,WAAW,GAAG,IAAI,KAAK,GAAG,CAAC;IACjC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,iBAAiB,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IACrF,OAAO,QAAQ,CACb,QAAQ,CAAC,OAAO,CAAC;;;;QAIb,MAAM;;;GAGX,CAAC,EACA,WAAW,EACX,WAAW,EACX,uBAAuB,EACvB,GAAG,MAAM,EACT,KAAK,CACN,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAC7B,QAAsB,EACtB,KAAa,EACb,KAAa,EACb,MAAe,EACf,aAAa,GAAG,IAAI;IAEpB,MAAM,WAAW,GAAG,IAAI,KAAK,GAAG,CAAC;IACjC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,oBAAoB,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IACxF,OAAO,QAAQ,CACb,QAAQ,CAAC,OAAO,CAAC;;;;QAIb,MAAM;;;GAGX,CAAC,EACA,WAAW,EACX,WAAW,EACX,uBAAuB,EACvB,GAAG,MAAM,EACT,KAAK,CACN,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAS,eAAe,CAAC,KAAa;IACpC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5D,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAExC,wEAAwE;IACxE,6EAA6E;IAC7E,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,+EAA+E;QAC/E,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAC7C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS,CAAC,kCAAkC;QACrE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;YAAE,SAAS,CAAC,iCAAiC;QACrE,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,SAAS,CAAC,cAAc;QAC7C,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChB,MAAM,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAErC,8EAA8E;IAC9E,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc;IAC5B,cAAc,GAAG,IAAI,CAAC;IACtB,gBAAgB,GAAG,KAAK,CAAC;AAC3B,CAAC;AAED,+EAA+E;AAC/E,kDAAkD;AAClD,+EAA+E;AAE/E;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;AA0BxB;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAGE,EACF,IAAY,KAAK;IAEjB,2CAA2C;IAC3C,MAAM,KAAK,GAAG,IAAI,GAAG,EAWlB,CAAC;IAEJ,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,OAAO,EAAE,CAAC;QACvC,KAAK,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;YAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAE,CAAC;YACxB,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;YAEpC,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACnC,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,QAAQ,IAAI,YAAY,CAAC;gBAClC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC7B,IAAI,MAAM,KAAK,KAAK;oBAAE,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;gBAC9C,IAAI,MAAM,KAAK,KAAK;oBAAE,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;YAChD,CAAC;iBAAM,CAAC;gBACN,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE;oBAChB,QAAQ,EAAE,YAAY;oBACtB,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,OAAO,EAAE,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;oBAC1B,OAAO,EAAE,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;oBAC5C,OAAO,EAAE,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;iBAC7C,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC;SACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACpB,EAAE;QACF,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAA4C;QACrE,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC,CAAC;SACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC7C,CAAC;AAsCD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,KAAa,EACb,WAAmB,EACnB,OAA6B;IAE7B,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE;QAAE,OAAO,EAAE,CAAC;IAE9B,MAAM,UAAU,GAAG,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,KAAK,CAAC;IACpC,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,KAAK,CAAC;IAElD,kEAAkE;IAClE,MAAM,QAAQ,GAAuB;QACnC,WAAW,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YACtE,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,EAAE;YACb,YAAY,EAAE,EAAE;SACjB,CAAC,CAAC;QACH,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,UAAU,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAwB,CAAC;KACxF,CAAC;IAEF,iCAAiC;IACjC,IAAI,iBAAiB,GAEV,IAAI,CAAC;IAChB,IAAI,WAAW,EAAE,CAAC;QAChB,iBAAiB,GAAG,CAAC,KAAK,IAAI,EAAE;YAC9B,IAAI,CAAC;gBACH,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;gBACxD,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,EAAE;oBACjC,UAAU,EAAE,UAAU,GAAG,CAAC;oBAC1B,OAAO,EAAE,WAAW;iBACrB,CAAC,CAAC;gBACH,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACzB,EAAE,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE;oBACtE,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;oBACpB,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI;oBACnB,KAAK,EAAE,CAAC,CAAC,KAAK;iBACf,CAAC,CAAC,CAAC;YACN,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QACL,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAA4B,CAAC;IAC5D,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAuB,CAAC;IACvD,MAAM,WAAW,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAK3D,CAAC;IAEH,yDAAyD;IACzD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC;YACX,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,CAAC,CAAC,QAAQ;YACjB,IAAI,EAAE,GAAG,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,SAAS,EAAE;SACvC,CAAC,CAAC;IACL,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC;YACX,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,CAAC,CAAC,OAAO;YAChB,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,OAAO,EAAE;SACpC,CAAC,CAAC;IACL,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;QACrC,OAAO,CAAC,IAAI,CAAC;YACX,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,CAAC,CAAC,OAAO;YAChB,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,GAAG;SAC3C,CAAC,CAAC;IACL,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,YAAY,EAAE,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,sGAAsG;IACtG,MAAM,OAAO,GAAa,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/C,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,IAAI,EAAE,CAAC,CAAC,IAAI;KACb,CAAC,CAAC,CAAC;IAEJ,0DAA0D;IAC1D,MAAM,QAAQ,GAAa,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,GAAG;KAC/B,CAAC,CAAC,CAAC;IAEJ,uCAAuC;IACvC,MAAM,UAAU,GAAwE,EAAE,CAAC;IAC3F,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1E,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1E,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE7E,oDAAoD;IACpD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,WAAW,CAAC,CAAC;QACrD,MAAM,eAAe,GAAG;YACtB,WAAW,KAAK,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE;YACrD,QAAQ,KAAK,EAAE;YACf,OAAO,KAAK,EAAE;SACf,CAAC;QAEF,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAChD,IAAI,CAAC,IAAI;gBAAE,SAAS;YACpB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;YACtD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,SAAS,CAAC,IAAI,CAAC;oBACb,EAAE,EAAE,QAAQ,CAAC,EAAE;oBACf,IAAI,EAAE,QAAQ,CAAC,QAAQ;oBACvB,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,IAAI,EAAE,QAAQ,CAAC,KAAK;iBACrB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC;YAAE,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;IAClF,CAAC;IAAC,MAAM,CAAC;QACP,oEAAoE;IACtE,CAAC;IAED,4CAA4C;IAC5C,MAAM,KAAK,GAAG,oBAAoB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IAErD,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5C,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,KAAK,EAAE,CAAC,CAAC,QAAQ;QACjB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,OAAO,EAAE,CAAC,CAAC,OAAO;KACnB,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
1
|
+
{"version":3,"file":"brain-search.js","sourceRoot":"","sources":["../../src/memory/brain-search.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Targeted prune of content-free BRAIN observations (T12073).
|
|
3
|
+
*
|
|
4
|
+
* ## Why (measured, 2026-08-06)
|
|
5
|
+
*
|
|
6
|
+
* Of 6,985 observations in this project's BRAIN:
|
|
7
|
+
*
|
|
8
|
+
* | count | share | shape |
|
|
9
|
+
* |-------|-------|------------------------------------------------|
|
|
10
|
+
* | 2,012 | 29% | narrative contains the literal `status: undefined` |
|
|
11
|
+
* | 2,035 | 29% | auto-hook `Task start:` / `Task complete:` stubs |
|
|
12
|
+
* | 2,064 | 30% | narrative under 60 characters |
|
|
13
|
+
* | 481 | 6.9% | narrative over 800 characters — i.e. substantive |
|
|
14
|
+
*
|
|
15
|
+
* The `status: undefined` rows are pure artefact: `PostToolUse` was dispatched
|
|
16
|
+
* with a field name the payload does not declare, so `handleToolComplete`
|
|
17
|
+
* interpolated `undefined` into every completion record. That defect is fixed
|
|
18
|
+
* (T12071) and can no longer produce new rows — but the existing ones remain,
|
|
19
|
+
* and they are not merely inert. FTS5's BM25 normalises for document length,
|
|
20
|
+
* so a 44-character record OUTRANKS a 4,000-character one for any term they
|
|
21
|
+
* share. The junk actively buries the knowledge.
|
|
22
|
+
*
|
|
23
|
+
* ## Safety
|
|
24
|
+
*
|
|
25
|
+
* This module is deliberately NOT the older `purgeBrainNoise`, which is a
|
|
26
|
+
* one-shot script hardcoded to a historical state: it deletes every learning,
|
|
27
|
+
* every decision but one specific id, and logs to stdout. Running it today
|
|
28
|
+
* would destroy 127 learnings and 127 decisions.
|
|
29
|
+
*
|
|
30
|
+
* Here, instead:
|
|
31
|
+
*
|
|
32
|
+
* - **Dry-run is the default.** Deleting requires an explicit `apply`.
|
|
33
|
+
* - Only OBSERVATIONS are considered. Decisions, patterns and learnings are
|
|
34
|
+
* never touched.
|
|
35
|
+
* - A row is a candidate only if it matches a named, narrow rule AND its
|
|
36
|
+
* narrative is under {@link MAX_STUB_NARRATIVE} characters, so a long
|
|
37
|
+
* record that merely happens to quote one of these strings survives.
|
|
38
|
+
* - Rows carrying `verified = 1` are always preserved.
|
|
39
|
+
* - The result reports per-rule counts and a sample, so the caller can see
|
|
40
|
+
* what would go before anything does.
|
|
41
|
+
*
|
|
42
|
+
* @task T12073
|
|
43
|
+
*/
|
|
44
|
+
import type { DatabaseSync } from 'node:sqlite';
|
|
45
|
+
/**
|
|
46
|
+
* Longest narrative still eligible for pruning.
|
|
47
|
+
*
|
|
48
|
+
* A genuine write-up that happens to contain "status: undefined" (this
|
|
49
|
+
* module's own documentation, for instance, or a post-mortem describing the
|
|
50
|
+
* bug) is far longer than this and is therefore never a candidate.
|
|
51
|
+
*/
|
|
52
|
+
export declare const MAX_STUB_NARRATIVE = 200;
|
|
53
|
+
/** A named prune rule with its SQL predicate. */
|
|
54
|
+
export interface StubPruneRule {
|
|
55
|
+
/** Stable identifier, reported in {@link StubPruneResult.byRule}. */
|
|
56
|
+
readonly id: string;
|
|
57
|
+
/** One-line explanation of what this rule removes and why it is safe. */
|
|
58
|
+
readonly reason: string;
|
|
59
|
+
/** SQL predicate over `brain_observations`, ANDed with the global guards. */
|
|
60
|
+
readonly predicate: string;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* The prune rules, each narrow and independently justified.
|
|
64
|
+
*
|
|
65
|
+
* Every predicate is ANDed with `length(narrative) <= MAX_STUB_NARRATIVE` and
|
|
66
|
+
* `verified IS NOT 1`, so no rule can reach a substantive or human-confirmed
|
|
67
|
+
* record on its own.
|
|
68
|
+
*/
|
|
69
|
+
export declare const STUB_PRUNE_RULES: readonly StubPruneRule[];
|
|
70
|
+
/** One candidate row, for reporting. */
|
|
71
|
+
export interface StubPruneCandidate {
|
|
72
|
+
readonly id: string;
|
|
73
|
+
readonly title: string;
|
|
74
|
+
readonly narrative: string;
|
|
75
|
+
readonly rule: string;
|
|
76
|
+
}
|
|
77
|
+
/** Outcome of a prune run. */
|
|
78
|
+
export interface StubPruneResult {
|
|
79
|
+
/** Whether rows were actually deleted (`false` = dry run). */
|
|
80
|
+
readonly applied: boolean;
|
|
81
|
+
/** Observation count before the run. */
|
|
82
|
+
readonly before: number;
|
|
83
|
+
/** Observation count after (equals `before` on a dry run). */
|
|
84
|
+
readonly after: number;
|
|
85
|
+
/** Number of rows matched (and deleted, when `applied`). */
|
|
86
|
+
readonly matched: number;
|
|
87
|
+
/** Per-rule match counts, keyed by {@link StubPruneRule.id}. */
|
|
88
|
+
readonly byRule: Record<string, number>;
|
|
89
|
+
/** Up to 5 example rows, so a dry run shows what would go. */
|
|
90
|
+
readonly sample: readonly StubPruneCandidate[];
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Count, sample and optionally delete content-free observation stubs.
|
|
94
|
+
*
|
|
95
|
+
* @param nativeDb - open handle to the database holding `brain_observations`.
|
|
96
|
+
* @param apply - when `true`, delete the matched rows; otherwise report only.
|
|
97
|
+
* @returns counts, per-rule breakdown and a sample of matched rows.
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* ```ts
|
|
101
|
+
* const preview = pruneObservationStubs(db, false);
|
|
102
|
+
* console.log(`${preview.matched} of ${preview.before} observations are stubs`);
|
|
103
|
+
* if (preview.matched > 0) pruneObservationStubs(db, true);
|
|
104
|
+
* ```
|
|
105
|
+
*
|
|
106
|
+
* @task T12073
|
|
107
|
+
*/
|
|
108
|
+
export declare function pruneObservationStubs(nativeDb: DatabaseSync, apply: boolean): StubPruneResult;
|
|
109
|
+
//# sourceMappingURL=brain-stub-prune.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brain-stub-prune.d.ts","sourceRoot":"","sources":["../../src/memory/brain-stub-prune.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC,iDAAiD;AACjD,MAAM,WAAW,aAAa;IAC5B,qEAAqE;IACrE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,yEAAyE;IACzE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,EAAE,SAAS,aAAa,EAoBpD,CAAC;AAEF,wCAAwC;AACxC,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED,8BAA8B;AAC9B,MAAM,WAAW,eAAe;IAC9B,8DAA8D;IAC9D,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,wCAAwC;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,gEAAgE;IAChE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,8DAA8D;IAC9D,QAAQ,CAAC,MAAM,EAAE,SAAS,kBAAkB,EAAE,CAAC;CAChD;AAYD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,OAAO,GAAG,eAAe,CAkD7F"}
|
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Targeted prune of content-free BRAIN observations (T12073).
|
|
3
|
+
*
|
|
4
|
+
* ## Why (measured, 2026-08-06)
|
|
5
|
+
*
|
|
6
|
+
* Of 6,985 observations in this project's BRAIN:
|
|
7
|
+
*
|
|
8
|
+
* | count | share | shape |
|
|
9
|
+
* |-------|-------|------------------------------------------------|
|
|
10
|
+
* | 2,012 | 29% | narrative contains the literal `status: undefined` |
|
|
11
|
+
* | 2,035 | 29% | auto-hook `Task start:` / `Task complete:` stubs |
|
|
12
|
+
* | 2,064 | 30% | narrative under 60 characters |
|
|
13
|
+
* | 481 | 6.9% | narrative over 800 characters — i.e. substantive |
|
|
14
|
+
*
|
|
15
|
+
* The `status: undefined` rows are pure artefact: `PostToolUse` was dispatched
|
|
16
|
+
* with a field name the payload does not declare, so `handleToolComplete`
|
|
17
|
+
* interpolated `undefined` into every completion record. That defect is fixed
|
|
18
|
+
* (T12071) and can no longer produce new rows — but the existing ones remain,
|
|
19
|
+
* and they are not merely inert. FTS5's BM25 normalises for document length,
|
|
20
|
+
* so a 44-character record OUTRANKS a 4,000-character one for any term they
|
|
21
|
+
* share. The junk actively buries the knowledge.
|
|
22
|
+
*
|
|
23
|
+
* ## Safety
|
|
24
|
+
*
|
|
25
|
+
* This module is deliberately NOT the older `purgeBrainNoise`, which is a
|
|
26
|
+
* one-shot script hardcoded to a historical state: it deletes every learning,
|
|
27
|
+
* every decision but one specific id, and logs to stdout. Running it today
|
|
28
|
+
* would destroy 127 learnings and 127 decisions.
|
|
29
|
+
*
|
|
30
|
+
* Here, instead:
|
|
31
|
+
*
|
|
32
|
+
* - **Dry-run is the default.** Deleting requires an explicit `apply`.
|
|
33
|
+
* - Only OBSERVATIONS are considered. Decisions, patterns and learnings are
|
|
34
|
+
* never touched.
|
|
35
|
+
* - A row is a candidate only if it matches a named, narrow rule AND its
|
|
36
|
+
* narrative is under {@link MAX_STUB_NARRATIVE} characters, so a long
|
|
37
|
+
* record that merely happens to quote one of these strings survives.
|
|
38
|
+
* - Rows carrying `verified = 1` are always preserved.
|
|
39
|
+
* - The result reports per-rule counts and a sample, so the caller can see
|
|
40
|
+
* what would go before anything does.
|
|
41
|
+
*
|
|
42
|
+
* @task T12073
|
|
43
|
+
*/
|
|
44
|
+
/**
|
|
45
|
+
* Longest narrative still eligible for pruning.
|
|
46
|
+
*
|
|
47
|
+
* A genuine write-up that happens to contain "status: undefined" (this
|
|
48
|
+
* module's own documentation, for instance, or a post-mortem describing the
|
|
49
|
+
* bug) is far longer than this and is therefore never a candidate.
|
|
50
|
+
*/
|
|
51
|
+
export const MAX_STUB_NARRATIVE = 200;
|
|
52
|
+
/**
|
|
53
|
+
* The prune rules, each narrow and independently justified.
|
|
54
|
+
*
|
|
55
|
+
* Every predicate is ANDed with `length(narrative) <= MAX_STUB_NARRATIVE` and
|
|
56
|
+
* `verified IS NOT 1`, so no rule can reach a substantive or human-confirmed
|
|
57
|
+
* record on its own.
|
|
58
|
+
*/
|
|
59
|
+
export const STUB_PRUNE_RULES = [
|
|
60
|
+
{
|
|
61
|
+
id: 'status-undefined',
|
|
62
|
+
reason: 'Artefact of T12071: PostToolUse was dispatched with `newStatus` while the payload declares `status`, so every completion interpolated the literal string "undefined". Carries no information beyond the task id, which the tasks table already holds.',
|
|
63
|
+
predicate: "narrative LIKE '%status: undefined%'",
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
id: 'task-start-stub',
|
|
67
|
+
reason: 'Auto-hook record of the form "Started work on T####: <title>". Both fields are already in the tasks table; the observation adds nothing and is short enough to outrank real memories under BM25.',
|
|
68
|
+
predicate: "title LIKE 'Task start: T%' AND narrative LIKE 'Started work on T%'",
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
id: 'task-complete-stub',
|
|
72
|
+
reason: 'Auto-hook record of the form "Task T#### completed with status: <status>". Duplicates the task row; retained only when it carries a real status AND some other content, which the length guard enforces.',
|
|
73
|
+
predicate: "title LIKE 'Task complete: T%' AND narrative LIKE 'Task T% completed with status:%'",
|
|
74
|
+
},
|
|
75
|
+
];
|
|
76
|
+
/** Build the WHERE clause shared by counting, sampling and deleting. */
|
|
77
|
+
function ruleClause(rule) {
|
|
78
|
+
return `(${rule.predicate}) AND length(COALESCE(narrative, '')) <= ${MAX_STUB_NARRATIVE} AND COALESCE(verified, 0) != 1`;
|
|
79
|
+
}
|
|
80
|
+
/** Combined predicate across every rule. */
|
|
81
|
+
function allRulesClause() {
|
|
82
|
+
return STUB_PRUNE_RULES.map(ruleClause).join(' OR ');
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Count, sample and optionally delete content-free observation stubs.
|
|
86
|
+
*
|
|
87
|
+
* @param nativeDb - open handle to the database holding `brain_observations`.
|
|
88
|
+
* @param apply - when `true`, delete the matched rows; otherwise report only.
|
|
89
|
+
* @returns counts, per-rule breakdown and a sample of matched rows.
|
|
90
|
+
*
|
|
91
|
+
* @example
|
|
92
|
+
* ```ts
|
|
93
|
+
* const preview = pruneObservationStubs(db, false);
|
|
94
|
+
* console.log(`${preview.matched} of ${preview.before} observations are stubs`);
|
|
95
|
+
* if (preview.matched > 0) pruneObservationStubs(db, true);
|
|
96
|
+
* ```
|
|
97
|
+
*
|
|
98
|
+
* @task T12073
|
|
99
|
+
*/
|
|
100
|
+
export function pruneObservationStubs(nativeDb, apply) {
|
|
101
|
+
const countAll = () => nativeDb.prepare('SELECT COUNT(*) AS c FROM brain_observations').get().c;
|
|
102
|
+
const before = countAll();
|
|
103
|
+
const byRule = {};
|
|
104
|
+
for (const rule of STUB_PRUNE_RULES) {
|
|
105
|
+
const row = nativeDb
|
|
106
|
+
.prepare(`SELECT COUNT(*) AS c FROM brain_observations WHERE ${ruleClause(rule)}`)
|
|
107
|
+
.get();
|
|
108
|
+
byRule[rule.id] = row.c;
|
|
109
|
+
}
|
|
110
|
+
const combined = allRulesClause();
|
|
111
|
+
const matched = nativeDb.prepare(`SELECT COUNT(*) AS c FROM brain_observations WHERE ${combined}`).get().c;
|
|
112
|
+
const sample = nativeDb
|
|
113
|
+
.prepare(`SELECT id, title, COALESCE(narrative, '') AS narrative FROM brain_observations WHERE ${combined} LIMIT 5`)
|
|
114
|
+
.all();
|
|
115
|
+
if (!apply || matched === 0) {
|
|
116
|
+
return {
|
|
117
|
+
applied: false,
|
|
118
|
+
before,
|
|
119
|
+
after: before,
|
|
120
|
+
matched,
|
|
121
|
+
byRule,
|
|
122
|
+
sample: sample.map((r) => ({ ...r, rule: matchingRule(r.narrative, r.title) })),
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
// Deleting from brain_observations fires the FTS delete trigger, so the
|
|
126
|
+
// shadow index stays in sync without a separate rebuild.
|
|
127
|
+
nativeDb.prepare(`DELETE FROM brain_observations WHERE ${combined}`).run();
|
|
128
|
+
return {
|
|
129
|
+
applied: true,
|
|
130
|
+
before,
|
|
131
|
+
after: countAll(),
|
|
132
|
+
matched,
|
|
133
|
+
byRule,
|
|
134
|
+
sample: sample.map((r) => ({ ...r, rule: matchingRule(r.narrative, r.title) })),
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Best-effort attribution of a sampled row to the rule that matched it.
|
|
139
|
+
*
|
|
140
|
+
* Reporting only — the delete uses the combined SQL predicate.
|
|
141
|
+
*
|
|
142
|
+
* @param narrative - the row's narrative text.
|
|
143
|
+
* @param title - the row's title.
|
|
144
|
+
* @returns the matching rule id, or `'unknown'`.
|
|
145
|
+
*/
|
|
146
|
+
function matchingRule(narrative, title) {
|
|
147
|
+
if (narrative.includes('status: undefined'))
|
|
148
|
+
return 'status-undefined';
|
|
149
|
+
if (title.startsWith('Task start: T'))
|
|
150
|
+
return 'task-start-stub';
|
|
151
|
+
if (title.startsWith('Task complete: T'))
|
|
152
|
+
return 'task-complete-stub';
|
|
153
|
+
return 'unknown';
|
|
154
|
+
}
|
|
155
|
+
//# sourceMappingURL=brain-stub-prune.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"brain-stub-prune.js","sourceRoot":"","sources":["../../src/memory/brain-stub-prune.ts"],"names":[],"mappings":"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"}
|