@cleocode/core 2026.4.35 → 2026.4.37

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 (91) hide show
  1. package/dist/config.d.ts.map +1 -1
  2. package/dist/config.js +7 -0
  3. package/dist/config.js.map +1 -1
  4. package/dist/hooks/handlers/conduit-hooks.d.ts +72 -0
  5. package/dist/hooks/handlers/conduit-hooks.d.ts.map +1 -0
  6. package/dist/hooks/handlers/conduit-hooks.js +229 -0
  7. package/dist/hooks/handlers/conduit-hooks.js.map +1 -0
  8. package/dist/hooks/handlers/index.d.ts +2 -0
  9. package/dist/hooks/handlers/index.d.ts.map +1 -1
  10. package/dist/hooks/handlers/index.js +3 -0
  11. package/dist/hooks/handlers/index.js.map +1 -1
  12. package/dist/hooks/handlers/session-hooks.d.ts +14 -0
  13. package/dist/hooks/handlers/session-hooks.d.ts.map +1 -1
  14. package/dist/hooks/handlers/session-hooks.js +33 -0
  15. package/dist/hooks/handlers/session-hooks.js.map +1 -1
  16. package/dist/hooks/handlers/task-hooks.d.ts +2 -0
  17. package/dist/hooks/handlers/task-hooks.d.ts.map +1 -1
  18. package/dist/hooks/handlers/task-hooks.js +14 -0
  19. package/dist/hooks/handlers/task-hooks.js.map +1 -1
  20. package/dist/index.js +54928 -46853
  21. package/dist/index.js.map +4 -4
  22. package/dist/internal.d.ts +2 -0
  23. package/dist/internal.d.ts.map +1 -1
  24. package/dist/internal.js +1 -0
  25. package/dist/internal.js.map +1 -1
  26. package/dist/memory/anthropic-key-resolver.d.ts +35 -0
  27. package/dist/memory/anthropic-key-resolver.d.ts.map +1 -0
  28. package/dist/memory/anthropic-key-resolver.js +105 -0
  29. package/dist/memory/anthropic-key-resolver.js.map +1 -0
  30. package/dist/memory/auto-extract.d.ts +38 -42
  31. package/dist/memory/auto-extract.d.ts.map +1 -1
  32. package/dist/memory/auto-extract.js +38 -57
  33. package/dist/memory/auto-extract.js.map +1 -1
  34. package/dist/memory/brain-retrieval.d.ts +6 -0
  35. package/dist/memory/brain-retrieval.d.ts.map +1 -1
  36. package/dist/memory/brain-retrieval.js +145 -13
  37. package/dist/memory/brain-retrieval.js.map +1 -1
  38. package/dist/memory/brain-search.d.ts +82 -15
  39. package/dist/memory/brain-search.d.ts.map +1 -1
  40. package/dist/memory/brain-search.js +178 -93
  41. package/dist/memory/brain-search.js.map +1 -1
  42. package/dist/memory/engine-compat.d.ts +16 -1
  43. package/dist/memory/engine-compat.d.ts.map +1 -1
  44. package/dist/memory/engine-compat.js +0 -3
  45. package/dist/memory/engine-compat.js.map +1 -1
  46. package/dist/memory/learnings.d.ts.map +1 -1
  47. package/dist/memory/learnings.js +4 -3
  48. package/dist/memory/learnings.js.map +1 -1
  49. package/dist/memory/llm-extraction.d.ts +107 -0
  50. package/dist/memory/llm-extraction.d.ts.map +1 -0
  51. package/dist/memory/llm-extraction.js +425 -0
  52. package/dist/memory/llm-extraction.js.map +1 -0
  53. package/dist/memory/memory-bridge.js +23 -11
  54. package/dist/memory/memory-bridge.js.map +1 -1
  55. package/dist/memory/observer-reflector.d.ts +157 -0
  56. package/dist/memory/observer-reflector.d.ts.map +1 -0
  57. package/dist/memory/observer-reflector.js +626 -0
  58. package/dist/memory/observer-reflector.js.map +1 -0
  59. package/dist/store/brain-schema.d.ts +131 -0
  60. package/dist/store/brain-schema.d.ts.map +1 -1
  61. package/dist/store/brain-schema.js +30 -0
  62. package/dist/store/brain-schema.js.map +1 -1
  63. package/dist/store/brain-sqlite.js +41 -1
  64. package/dist/store/brain-sqlite.js.map +1 -1
  65. package/dist/tasks/complete.d.ts.map +1 -1
  66. package/dist/tasks/complete.js +7 -8
  67. package/dist/tasks/complete.js.map +1 -1
  68. package/package.json +13 -12
  69. package/src/config.ts +7 -0
  70. package/src/hooks/handlers/__tests__/conduit-hooks.test.ts +356 -0
  71. package/src/hooks/handlers/conduit-hooks.ts +258 -0
  72. package/src/hooks/handlers/index.ts +7 -0
  73. package/src/hooks/handlers/session-hooks.ts +37 -0
  74. package/src/hooks/handlers/task-hooks.ts +14 -0
  75. package/src/internal.ts +8 -0
  76. package/src/memory/__tests__/auto-extract.test.ts +43 -114
  77. package/src/memory/__tests__/brain-automation.test.ts +16 -39
  78. package/src/memory/__tests__/brain-rrf.test.ts +431 -0
  79. package/src/memory/__tests__/llm-extraction.test.ts +342 -0
  80. package/src/memory/__tests__/observer-reflector.test.ts +475 -0
  81. package/src/memory/anthropic-key-resolver.ts +113 -0
  82. package/src/memory/auto-extract.ts +40 -72
  83. package/src/memory/brain-retrieval.ts +187 -18
  84. package/src/memory/brain-search.ts +196 -128
  85. package/src/memory/engine-compat.ts +16 -4
  86. package/src/memory/learnings.ts +4 -3
  87. package/src/memory/llm-extraction.ts +524 -0
  88. package/src/memory/memory-bridge.ts +29 -12
  89. package/src/memory/observer-reflector.ts +829 -0
  90. package/src/store/brain-schema.ts +44 -0
  91. package/src/tasks/complete.ts +7 -10
@@ -22,7 +22,7 @@ import { sessionExistsInTasksDb } from '../store/cross-db-cleanup.js';
22
22
  import { getDb } from '../store/sqlite.js';
23
23
  import { typedAll } from '../store/typed-query.js';
24
24
  import { embedText, isEmbeddingAvailable } from './brain-embedding.js';
25
- import { searchBrain } from './brain-search.js';
25
+ import { hybridSearch, searchBrain } from './brain-search.js';
26
26
  import { searchSimilar } from './brain-similarity.js';
27
27
  import { addGraphEdge, upsertGraphNode } from './graph-auto-populate.js';
28
28
  import { computeObservationQuality } from './quality-scoring.js';
@@ -41,16 +41,90 @@ import { computeObservationQuality } from './quality-scoring.js';
41
41
  * @returns Compact search results with token estimate
42
42
  */
43
43
  export async function searchBrainCompact(projectRoot, params) {
44
- const { query, limit, tables, dateStart, dateEnd, agent } = params;
44
+ const { query, limit, tables, dateStart, dateEnd, agent, useRRF = true } = params;
45
45
  if (!query?.trim()) {
46
46
  return { results: [], total: 0, tokensEstimated: 0 };
47
47
  }
48
- // T418: when agent filter is set, restrict search to observations table only
49
- const effectiveTables = agent !== undefined && agent !== null
48
+ const effectiveLimit = limit ?? 10;
49
+ // T418: agent filter always forces FTS-only on observations table
50
+ const agentFilter = agent !== undefined && agent !== null;
51
+ // ----- RRF path (default) -----
52
+ if (useRRF && !agentFilter) {
53
+ // Run FTS (for dates + table-level data) and RRF fusion in parallel.
54
+ // FTS gives us row-level dates; RRF gives us the fused ranking order.
55
+ const [ftsResult, rrfResults] = await Promise.all([
56
+ searchBrain(projectRoot, query, { limit: effectiveLimit * 3, tables }).catch(() => ({
57
+ decisions: [],
58
+ patterns: [],
59
+ learnings: [],
60
+ observations: [],
61
+ })),
62
+ hybridSearch(query, projectRoot, { limit: effectiveLimit * 2 }),
63
+ ]);
64
+ // Build a date map from FTS rows (id -> date string)
65
+ const dateMap = new Map();
66
+ for (const d of ftsResult.decisions) {
67
+ const raw = d;
68
+ dateMap.set(d.id, (d.createdAt ?? raw['created_at']) || '');
69
+ }
70
+ for (const p of ftsResult.patterns) {
71
+ const raw = p;
72
+ dateMap.set(p.id, (p.extractedAt ?? raw['extracted_at']) || '');
73
+ }
74
+ for (const l of ftsResult.learnings) {
75
+ const raw = l;
76
+ dateMap.set(l.id, (l.createdAt ?? raw['created_at']) || '');
77
+ }
78
+ for (const o of ftsResult.observations) {
79
+ const raw = o;
80
+ dateMap.set(o.id, (o.createdAt ?? raw['created_at']) || '');
81
+ }
82
+ // Apply table filter when specified (map singular type names to plural table names)
83
+ const singularToTable = {
84
+ decision: 'decisions',
85
+ pattern: 'patterns',
86
+ learning: 'learnings',
87
+ observation: 'observations',
88
+ };
89
+ let results = rrfResults
90
+ .map((r) => ({
91
+ id: r.id,
92
+ type: r.type,
93
+ title: r.title.slice(0, 80),
94
+ date: dateMap.get(r.id) ?? '',
95
+ relevance: r.score,
96
+ }))
97
+ .filter((r) => {
98
+ // Only include items that the FTS scan returned (ensures quality gating is respected)
99
+ return dateMap.has(r.id);
100
+ });
101
+ if (tables && tables.length > 0) {
102
+ results = results.filter((r) => tables.includes(singularToTable[r.type]));
103
+ }
104
+ // Apply date filters client-side
105
+ if (dateStart)
106
+ results = results.filter((r) => !r.date || r.date >= dateStart);
107
+ if (dateEnd)
108
+ results = results.filter((r) => !r.date || r.date <= dateEnd);
109
+ results = results.slice(0, effectiveLimit);
110
+ for (const hit of results) {
111
+ hit._next = memoryFindHitNext(hit.id);
112
+ }
113
+ if (results.length > 0) {
114
+ const returnedIds = results.map((r) => r.id);
115
+ setImmediate(() => {
116
+ incrementCitationCounts(projectRoot, returnedIds).catch(() => { });
117
+ logRetrieval(projectRoot, query, returnedIds, 'find-rrf', results.length * 50).catch(() => { });
118
+ });
119
+ }
120
+ return { results, total: results.length, tokensEstimated: results.length * 50 };
121
+ }
122
+ // ----- FTS-only path (useRRF=false or agent filter) -----
123
+ const effectiveTables = agentFilter
50
124
  ? ['observations']
51
125
  : tables;
52
126
  const searchResult = await searchBrain(projectRoot, query, {
53
- limit: limit ?? 10,
127
+ limit: effectiveLimit,
54
128
  tables: effectiveTables,
55
129
  });
56
130
  // Project full results to compact format.
@@ -58,7 +132,7 @@ export async function searchBrainCompact(projectRoot, params) {
58
132
  // snake_case column names, but the TypeScript types are camelCase.
59
133
  // We handle both naming conventions for robustness.
60
134
  let results = [];
61
- if (!agent) {
135
+ if (!agentFilter) {
62
136
  for (const d of searchResult.decisions) {
63
137
  const raw = d;
64
138
  results.push({
@@ -90,7 +164,7 @@ export async function searchBrainCompact(projectRoot, params) {
90
164
  for (const o of searchResult.observations) {
91
165
  const raw = o;
92
166
  // T418: apply agent post-filter when specified
93
- if (agent) {
167
+ if (agentFilter) {
94
168
  const rowAgent = o.agent ?? raw['agent'] ?? null;
95
169
  if (rowAgent !== agent)
96
170
  continue;
@@ -103,16 +177,22 @@ export async function searchBrainCompact(projectRoot, params) {
103
177
  });
104
178
  }
105
179
  // Apply date filters client-side if provided
106
- if (dateStart) {
180
+ if (dateStart)
107
181
  results = results.filter((r) => r.date >= dateStart);
108
- }
109
- if (dateEnd) {
182
+ if (dateEnd)
110
183
  results = results.filter((r) => r.date <= dateEnd);
111
- }
112
184
  // Enrich each hit with _next progressive disclosure directives
113
185
  for (const hit of results) {
114
186
  hit._next = memoryFindHitNext(hit.id);
115
187
  }
188
+ // Citation tracking + retrieval logging (non-blocking)
189
+ if (results.length > 0) {
190
+ const returnedIds = results.map((r) => r.id);
191
+ setImmediate(() => {
192
+ incrementCitationCounts(projectRoot, returnedIds).catch(() => { });
193
+ logRetrieval(projectRoot, query, returnedIds, 'find', results.length * 50).catch(() => { });
194
+ });
195
+ }
116
196
  return {
117
197
  results,
118
198
  total: results.length,
@@ -319,6 +399,14 @@ export async function fetchBrainEntries(projectRoot, params) {
319
399
  notFound.push(id);
320
400
  }
321
401
  }
402
+ // Citation tracking + retrieval logging (non-blocking)
403
+ if (results.length > 0) {
404
+ const fetchedIds = results.map((r) => r.id);
405
+ setImmediate(() => {
406
+ incrementCitationCounts(projectRoot, fetchedIds).catch(() => { });
407
+ logRetrieval(projectRoot, fetchedIds.join(','), fetchedIds, 'fetch', results.length * 500).catch(() => { });
408
+ });
409
+ }
322
410
  return {
323
411
  results,
324
412
  notFound,
@@ -379,7 +467,12 @@ export async function observeBrain(projectRoot, params) {
379
467
  // - sourceType 'manual' → 'owner' (owner-stated facts skip short-term in consolidator)
380
468
  // - sourceType 'session-debrief' → 'task-outcome' (synthesized summaries)
381
469
  // - otherwise → 'agent' (default for all hook/agent writes)
382
- // verified is always false at write time — consolidator sets true via corroboration gate.
470
+ // Source confidence routing (spec §4.1 Decision Tree):
471
+ // - sourceType 'manual' → 'owner' (owner-stated facts are ground truth)
472
+ // - sourceType 'session-debrief' → 'task-outcome' (verified by completion)
473
+ // - otherwise → 'agent' (default for all hook/agent writes)
474
+ // Owner and task-outcome sources are auto-verified as ground truth.
475
+ // Agent-inferred entries start unverified — consolidator promotes via corroboration.
383
476
  const resolvedSourceConfidence = sourceConfidenceParam ??
384
477
  (sourceType === 'manual'
385
478
  ? 'owner'
@@ -388,7 +481,7 @@ export async function observeBrain(projectRoot, params) {
388
481
  : 'agent');
389
482
  const memoryTier = 'short';
390
483
  const memoryType = 'episodic';
391
- const verified = false;
484
+ const verified = resolvedSourceConfidence === 'owner' || resolvedSourceConfidence === 'task-outcome';
392
485
  // Content-hash dedup: SHA-256 prefix of title+text
393
486
  const contentHash = createHash('sha256')
394
487
  .update(title + text)
@@ -909,4 +1002,43 @@ async function incrementCitationCounts(projectRoot, ids) {
909
1002
  }
910
1003
  }
911
1004
  }
1005
+ /**
1006
+ * Log a retrieval event to brain_retrieval_log for co-retrieval analysis.
1007
+ *
1008
+ * Creates the table on first use if it doesn't exist (self-healing).
1009
+ * Best-effort: errors are silently swallowed.
1010
+ */
1011
+ async function logRetrieval(projectRoot, query, entryIds, source, tokensUsed) {
1012
+ if (entryIds.length === 0)
1013
+ return;
1014
+ const { getBrainDb, getBrainNativeDb } = await import('../store/brain-sqlite.js');
1015
+ await getBrainDb(projectRoot);
1016
+ const nativeDb = getBrainNativeDb();
1017
+ if (!nativeDb)
1018
+ return;
1019
+ // Self-healing: create table if not exists
1020
+ const createSql = 'CREATE TABLE IF NOT EXISTS brain_retrieval_log (' +
1021
+ 'id INTEGER PRIMARY KEY AUTOINCREMENT,' +
1022
+ 'query TEXT NOT NULL,' +
1023
+ 'entry_ids TEXT NOT NULL,' +
1024
+ 'entry_count INTEGER NOT NULL,' +
1025
+ 'source TEXT NOT NULL,' +
1026
+ 'tokens_used INTEGER,' +
1027
+ "created_at TEXT NOT NULL DEFAULT (datetime('now'))" +
1028
+ ')';
1029
+ try {
1030
+ nativeDb.prepare(createSql).run();
1031
+ }
1032
+ catch {
1033
+ return;
1034
+ }
1035
+ try {
1036
+ nativeDb
1037
+ .prepare('INSERT INTO brain_retrieval_log (query, entry_ids, entry_count, source, tokens_used) VALUES (?, ?, ?, ?, ?)')
1038
+ .run(query, entryIds.join(','), entryIds.length, source, tokensUsed ?? null);
1039
+ }
1040
+ catch {
1041
+ /* best-effort */
1042
+ }
1043
+ }
912
1044
  //# sourceMappingURL=brain-retrieval.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"brain-retrieval.js","sourceRoot":"","sources":["../../src/memory/brain-retrieval.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"brain-retrieval.js","sourceRoot":"","sources":["../../src/memory/brain-retrieval.ts"],"names":[],"mappings":"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"}
@@ -53,39 +53,106 @@ export declare function searchBrain(projectRoot: string, query: string, options?
53
53
  * Used in tests to force re-detection.
54
54
  */
55
55
  export declare function resetFts5Cache(): void;
56
+ /**
57
+ * The RRF smoothing constant (research-proven at 60).
58
+ *
59
+ * Balances noise vs. signal: small values amplify top-rank differences;
60
+ * large values compress ranks toward a flat distribution. 60 is the
61
+ * standard value from Cormack, Clarke & Buettcher (SIGIR 2009).
62
+ */
63
+ export declare const RRF_K = 60;
64
+ /** A single ranked hit from one retrieval source before fusion. */
65
+ export interface RrfHit {
66
+ id: string;
67
+ type: string;
68
+ title: string;
69
+ text: string;
70
+ }
71
+ /** Fused result produced by reciprocalRankFusion. */
72
+ export interface RrfResult {
73
+ id: string;
74
+ /** Combined RRF score: sum of 1/(rank+RRF_K) across all source lists. */
75
+ rrfScore: number;
76
+ type: string;
77
+ title: string;
78
+ text: string;
79
+ /** Which retrieval sources contributed to this result. */
80
+ sources: Array<'fts' | 'vec' | 'graph'>;
81
+ /** BM25-derived FTS rank (0-based) — undefined if not in FTS results. */
82
+ ftsRank?: number;
83
+ /** Vector distance rank (0-based) — undefined if not in vector results. */
84
+ vecRank?: number;
85
+ }
86
+ /**
87
+ * Fuse ranked lists from multiple retrieval sources using Reciprocal Rank Fusion.
88
+ *
89
+ * Implements the RRF algorithm from Cormack, Clarke & Buettcher (SIGIR 2009):
90
+ *
91
+ * score(d) = Σ 1 / (k + rank(d, list)) for each list containing d
92
+ *
93
+ * where k=60 is the research-proven smoothing constant.
94
+ *
95
+ * Properties:
96
+ * - Rank-based: actual scores from each source are ignored (only rank matters).
97
+ * - Additive: items appearing in multiple lists accumulate higher scores.
98
+ * - Robust: the +60 constant prevents rank-1 items from dominating.
99
+ *
100
+ * @param sources - Named arrays of ranked hits (order = rank, index 0 = best)
101
+ * @param k - RRF smoothing constant (default: RRF_K = 60)
102
+ * @returns Array of fused results sorted by rrfScore descending
103
+ *
104
+ * @example
105
+ * ```ts
106
+ * const fused = reciprocalRankFusion([
107
+ * { source: 'fts', hits: ftsHits },
108
+ * { source: 'vec', hits: vecHits },
109
+ * ]);
110
+ * ```
111
+ */
112
+ export declare function reciprocalRankFusion(sources: Array<{
113
+ source: 'fts' | 'vec' | 'graph';
114
+ hits: RrfHit[];
115
+ }>, k?: number): RrfResult[];
56
116
  /** Result from hybridSearch combining multiple search signals. */
57
117
  export interface HybridResult {
58
118
  id: string;
119
+ /** RRF-fused score: sum of 1/(rank+60) across all source lists. */
59
120
  score: number;
60
121
  type: string;
61
122
  title: string;
62
123
  text: string;
63
124
  sources: Array<'fts' | 'vec' | 'graph'>;
125
+ /** Raw FTS rank (0-based) for transparency — undefined if FTS did not return this item. */
126
+ ftsRank?: number;
127
+ /** Raw vector rank (0-based) for transparency — undefined if vector did not return this item. */
128
+ vecRank?: number;
64
129
  }
65
- /** Options for hybridSearch weighting and limits. */
130
+ /** Options for hybridSearch. */
66
131
  export interface HybridSearchOptions {
67
- ftsWeight?: number;
68
- vecWeight?: number;
69
- graphWeight?: number;
70
132
  limit?: number;
133
+ /**
134
+ * RRF smoothing constant k. Default: 60 (research-proven).
135
+ * Larger k flattens rank differences; smaller k amplifies top-rank advantage.
136
+ */
137
+ rrfK?: number;
71
138
  }
72
139
  /**
73
- * Hybrid search across FTS5, vector similarity, and graph neighbors.
140
+ * Hybrid search across FTS5, vector similarity, and graph neighbors using
141
+ * Reciprocal Rank Fusion (RRF) for result combination.
74
142
  *
75
- * 1. Runs FTS5 search via existing searchBrain.
76
- * 2. Runs vector similarity via searchSimilar (if available).
77
- * 3. Runs graph neighbor expansion via getNeighbors (if query matches a node).
78
- * 4. Normalizes scores to 0-1 using min-max normalization.
79
- * 5. Combines with configurable weights.
80
- * 6. Deduplicates by ID, keeping highest combined score.
81
- * 7. Returns top-N sorted by score descending.
143
+ * Algorithm:
144
+ * 1. Run FTS5 search and vector similarity search in parallel.
145
+ * 2. Optionally expand via graph neighbors (best-effort).
146
+ * 3. Fuse all ranked lists with RRF: score = Σ 1/(rank+60).
147
+ * 4. Return top-N sorted by fused RRF score.
82
148
  *
83
- * Graceful fallback: if vec unavailable, redistributes weight to FTS5.
149
+ * Graceful degradation: vector and graph sources are silently skipped when
150
+ * unavailable — RRF naturally handles partial source lists.
84
151
  *
85
152
  * @param query - Search query text
86
153
  * @param projectRoot - Project root directory
87
- * @param options - Weight and limit configuration
88
- * @returns Array of hybrid results ranked by combined score
154
+ * @param options - Limit and RRF tuning
155
+ * @returns Array of hybrid results ranked by RRF score descending
89
156
  */
90
157
  export declare function hybridSearch(query: string, projectRoot: string, options?: HybridSearchOptions): Promise<HybridResult[]>;
91
158
  //# sourceMappingURL=brain-search.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"brain-search.d.ts","sourceRoot":"","sources":["../../src/memory/brain-search.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAOlC,oCAAoC;AACpC,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,QAAQ,EAAE,eAAe,EAAE,CAAC;IAC5B,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,YAAY,EAAE,mBAAmB,EAAE,CAAC;CACrC;AAED,sBAAsB;AACtB,MAAM,WAAW,kBAAkB;IACjC,yCAAyC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,MAAM,CAAC,EAAE,KAAK,CAAC,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,cAAc,CAAC,CAAC;CACzE;AAgCD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAsKhE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAiB7D;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAC/B,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,iBAAiB,CAAC,CA8B5B;AAqRD;;;GAGG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAGrC;AAMD,kEAAkE;AAClE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,KAAK,CAAC,KAAK,GAAG,KAAK,GAAG,OAAO,CAAC,CAAC;CACzC;AAED,qDAAqD;AACrD,MAAM,WAAW,mBAAmB;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,YAAY,EAAE,CAAC,CAkKzB"}
1
+ {"version":3,"file":"brain-search.d.ts","sourceRoot":"","sources":["../../src/memory/brain-search.ts"],"names":[],"mappings":"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"}