@kybernesis/brain-core 0.2.0 → 0.5.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"entity-graph.js","sourceRoot":"","sources":["../src/entity-graph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity-graph.js","sourceRoot":"","sources":["../src/entity-graph.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,10 @@
1
+ /**
2
+ * Fact store — public API. Behaviour now lives behind the storage seam
3
+ * (getStorage().facts); these are thin, signature-stable delegators so
4
+ * consumers and internal callers are unchanged (Stage 1, G1).
5
+ */
1
6
  import type { TenantContext, FactCategory, Fact } from '@kybernesis/brain-contracts';
2
- export declare const VALID_CATEGORIES: Set<"biographical" | "preference" | "event" | "relationship" | "temporal" | "opinion" | "plan" | "general">;
7
+ export declare const VALID_CATEGORIES: Set<"biographical" | "preference" | "relationship" | "plan" | "event" | "temporal" | "opinion" | "general">;
3
8
  export declare function ensureFactsTable(t: TenantContext): Promise<void>;
4
9
  export declare function storeFact(t: TenantContext, fact: Omit<Fact, 'id' | 'created_at' | 'is_latest' | 'access_count' | 'is_retracted'>): Promise<number>;
5
10
  export declare function retractFact(t: TenantContext, factId: number, retractedBy?: string): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"fact-store.d.ts","sourceRoot":"","sources":["../src/fact-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAGrF,eAAO,MAAM,gBAAgB,6GAG3B,CAAC;AAmGH,wBAAsB,gBAAgB,CAAC,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtE;AAED,wBAAsB,SAAS,CAC7B,CAAC,EAAE,aAAa,EAChB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,YAAY,GAAG,WAAW,GAAG,cAAc,GAAG,cAAc,CAAC,GACpF,OAAO,CAAC,MAAM,CAAC,CA2BjB;AAED,wBAAsB,WAAW,CAC/B,CAAC,EAAE,aAAa,EAChB,MAAM,EAAE,MAAM,EACd,WAAW,GAAE,MAA0B,GACtC,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,wBAAsB,aAAa,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAInF;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAKxF;AAED,wBAAsB,iBAAiB,CACrC,CAAC,EAAE,aAAa,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,YAAY,CAAA;CAAO,GAC9E,OAAO,CAAC,IAAI,EAAE,CAAC,CAqBjB;AAED,wBAAsB,kBAAkB,CACtC,CAAC,EAAE,aAAa,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,wBAAsB,UAAU,CAAC,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAKlE;AAED,wBAAsB,SAAS,CAC7B,CAAC,EAAE,aAAa,EAChB,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,YAAY,CAAA;CAAO,GAC/F,OAAO,CAAC,IAAI,EAAE,CAAC,CAcjB;AAED,wBAAsB,iBAAiB,CACrC,CAAC,EAAE,aAAa,EAChB,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GACzD,OAAO,CAAC,IAAI,EAAE,CAAC,CAYjB;AAED,wBAAsB,cAAc,CAClC,CAAC,EAAE,aAAa,EAChB,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAW,GACjB,OAAO,CAAC,IAAI,EAAE,CAAC,CAgBjB"}
1
+ {"version":3,"file":"fact-store.d.ts","sourceRoot":"","sources":["../src/fact-store.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AAGrF,eAAO,MAAM,gBAAgB,6GAG3B,CAAC;AAEH,wBAAsB,gBAAgB,CAAC,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtE;AAED,wBAAsB,SAAS,CAC7B,CAAC,EAAE,aAAa,EAChB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,YAAY,GAAG,WAAW,GAAG,cAAc,GAAG,cAAc,CAAC,GACpF,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,wBAAsB,WAAW,CAC/B,CAAC,EAAE,aAAa,EAChB,MAAM,EAAE,MAAM,EACd,WAAW,GAAE,MAA0B,GACtC,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,aAAa,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnF;AAED,wBAAsB,WAAW,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAExF;AAED,wBAAsB,iBAAiB,CACrC,CAAC,EAAE,aAAa,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,YAAY,CAAA;CAAO,GAC9E,OAAO,CAAC,IAAI,EAAE,CAAC,CAEjB;AAED,wBAAsB,kBAAkB,CACtC,CAAC,EAAE,aAAa,EAChB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,UAAU,CAAC,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAElE;AAED,wBAAsB,SAAS,CAC7B,CAAC,EAAE,aAAa,EAChB,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,YAAY,CAAA;CAAO,GAC/F,OAAO,CAAC,IAAI,EAAE,CAAC,CAEjB;AAED,wBAAsB,iBAAiB,CACrC,CAAC,EAAE,aAAa,EAChB,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GACzD,OAAO,CAAC,IAAI,EAAE,CAAC,CAEjB;AAED,wBAAsB,cAAc,CAClC,CAAC,EAAE,aAAa,EAChB,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAW,GACjB,OAAO,CAAC,IAAI,EAAE,CAAC,CAEjB"}
@@ -1,184 +1,44 @@
1
- import { getDb } from '@kybernesis/brain-storage-sqlite';
2
- import { sanitizeFtsQuery } from './fts-sanitizer.js';
1
+ /**
2
+ * Fact store public API. Behaviour now lives behind the storage seam
3
+ * (getStorage().facts); these are thin, signature-stable delegators so
4
+ * consumers and internal callers are unchanged (Stage 1, G1).
5
+ */
6
+ import { getStorage } from './storage.js';
3
7
  export const VALID_CATEGORIES = new Set([
4
8
  'biographical', 'preference', 'event', 'relationship',
5
9
  'temporal', 'opinion', 'plan', 'general',
6
10
  ]);
7
- function rowToFact(row) {
8
- return {
9
- id: row.id,
10
- content: row.content,
11
- source_path: row.source_path,
12
- source_conversation_id: row.source_conversation_id,
13
- entities: JSON.parse(row.entities_json || '[]'),
14
- timestamp: row.timestamp,
15
- confidence: row.confidence,
16
- category: row.category,
17
- created_at: row.created_at,
18
- is_latest: (row.is_latest ?? 1) === 1,
19
- superseded_by: row.superseded_by ?? undefined,
20
- expires_at: row.expires_at ?? undefined,
21
- updated_at: row.updated_at ?? undefined,
22
- access_count: row.access_count ?? 0,
23
- source_type: row.source_type ?? 'chat',
24
- is_retracted: (row.is_retracted ?? 0) === 1,
25
- retracted_by: row.retracted_by ?? undefined,
26
- last_reinforced_at: row.last_reinforced_at ?? undefined,
27
- project_id: row.project_id ?? undefined,
28
- tags: JSON.parse(row.tags_json || '[]'),
29
- classification: row.classification ?? undefined,
30
- connection_id: row.connection_id ?? undefined,
31
- source_did: row.source_did ?? undefined,
32
- };
33
- }
34
- // ─── Schema initialization ────────────────────────────────────────────────────
35
- // Facts table lives in timeline.db (same file as timeline_events).
36
- // Schema is created by timeline.ts ensureSchema. This module only ensures
37
- // the FTS index and triggers exist.
38
- const initialized = new Set();
39
- function ensureFactsFts(t) {
40
- if (initialized.has(t.slug))
41
- return;
42
- const db = getDb(t, 'timeline');
43
- // Bug Fix 1 (CANONICAL.md §6): The non-contentless facts_fts table must use
44
- // explicit DELETE FROM ... WHERE rowid = ? in triggers, NOT the ('delete', ...)
45
- // command form which is only valid for contentless FTS5 tables. Using the wrong
46
- // form threw SqliteError on every UPDATE/DELETE, silently swallowed by empty
47
- // catch{} in decay.ts, meaning KAD has NEVER expired temporal facts in production.
48
- db.exec(`
49
- CREATE VIRTUAL TABLE IF NOT EXISTS facts_fts USING fts5(
50
- content, entities,
51
- tokenize = 'unicode61 remove_diacritics 2'
52
- );
53
-
54
- CREATE TRIGGER IF NOT EXISTS facts_fts_ai AFTER INSERT ON facts BEGIN
55
- INSERT INTO facts_fts(rowid, content, entities) VALUES (new.id, new.content, new.entities_json);
56
- END;
57
-
58
- CREATE TRIGGER IF NOT EXISTS facts_fts_ad AFTER DELETE ON facts BEGIN
59
- DELETE FROM facts_fts WHERE rowid = old.id;
60
- END;
61
-
62
- CREATE TRIGGER IF NOT EXISTS facts_fts_au AFTER UPDATE ON facts BEGIN
63
- DELETE FROM facts_fts WHERE rowid = old.id;
64
- INSERT INTO facts_fts(rowid, content, entities) VALUES (new.id, new.content, new.entities_json);
65
- END;
66
- `);
67
- initialized.add(t.slug);
68
- }
69
- // ─── Operations ───────────────────────────────────────────────────────────────
70
11
  export async function ensureFactsTable(t) {
71
- ensureFactsFts(t);
12
+ return getStorage().facts.ensureFactsTable(t);
72
13
  }
73
14
  export async function storeFact(t, fact) {
74
- ensureFactsFts(t);
75
- const db = getDb(t, 'timeline');
76
- const result = db.prepare(`
77
- INSERT OR REPLACE INTO facts
78
- (content, source_path, source_conversation_id, entities_json, timestamp, confidence, category,
79
- expires_at, source_type, project_id, tags_json, classification, connection_id, source_did)
80
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
81
- `).run(fact.content, fact.source_path, fact.source_conversation_id, JSON.stringify(fact.entities), fact.timestamp, fact.confidence, fact.category, fact.expires_at ?? null, fact.source_type ?? 'chat', fact.project_id ?? null, JSON.stringify(fact.tags ?? []), fact.classification ?? null, fact.connection_id ?? null, fact.source_did ?? null);
82
- return result.lastInsertRowid;
15
+ return getStorage().facts.storeFact(t, fact);
83
16
  }
84
17
  export async function retractFact(t, factId, retractedBy = 'user-correction') {
85
- ensureFactsFts(t);
86
- const db = getDb(t, 'timeline');
87
- db.prepare(`
88
- UPDATE facts SET is_retracted = 1, retracted_by = ?, is_latest = 0, updated_at = datetime('now')
89
- WHERE id = ?
90
- `).run(retractedBy, factId);
18
+ return getStorage().facts.retractFact(t, factId, retractedBy);
91
19
  }
92
20
  export async function reinforceFact(t, factId) {
93
- ensureFactsFts(t);
94
- const db = getDb(t, 'timeline');
95
- db.prepare(`UPDATE facts SET last_reinforced_at = datetime('now'), updated_at = datetime('now') WHERE id = ?`).run(factId);
21
+ return getStorage().facts.reinforceFact(t, factId);
96
22
  }
97
23
  export async function getFactById(t, factId) {
98
- ensureFactsFts(t);
99
- const db = getDb(t, 'timeline');
100
- const row = db.prepare('SELECT * FROM facts WHERE id = ?').get(factId);
101
- return row ? rowToFact(row) : null;
24
+ return getStorage().facts.getFactById(t, factId);
102
25
  }
103
26
  export async function getFactsForEntity(t, entity, options = {}) {
104
- const { latestOnly = true, limit = 20, category } = options;
105
- ensureFactsFts(t);
106
- const db = getDb(t, 'timeline');
107
- const escapedEntity = entity.toLowerCase().replace(/[%_\\]/g, ch => `\\${ch}`);
108
- const entityPattern = `%${escapedEntity}%`;
109
- let sql = `
110
- SELECT * FROM facts
111
- WHERE LOWER(entities_json) LIKE ? ESCAPE '\\'
112
- AND COALESCE(is_retracted, 0) = 0
113
- `;
114
- const params = [entityPattern];
115
- if (latestOnly) {
116
- sql += ` AND COALESCE(is_latest, 1) = 1`;
117
- }
118
- if (category) {
119
- sql += ` AND category = ?`;
120
- params.push(category);
121
- }
122
- sql += ` ORDER BY timestamp DESC LIMIT ?`;
123
- params.push(limit);
124
- return db.prepare(sql).all(...params).map(rowToFact);
27
+ return getStorage().facts.getFactsForEntity(t, entity, options);
125
28
  }
126
29
  export async function markFactSuperseded(t, oldFactId, newFactId) {
127
- ensureFactsFts(t);
128
- const db = getDb(t, 'timeline');
129
- db.prepare('UPDATE facts SET is_latest = 0, superseded_by = ? WHERE id = ?').run(newFactId, oldFactId);
30
+ return getStorage().facts.markFactSuperseded(t, oldFactId, newFactId);
130
31
  }
131
32
  export async function factsCount(t) {
132
- ensureFactsFts(t);
133
- const db = getDb(t, 'timeline');
134
- const { count } = db.prepare('SELECT COUNT(*) as count FROM facts WHERE COALESCE(is_retracted, 0) = 0').get();
135
- return count;
33
+ return getStorage().facts.factsCount(t);
136
34
  }
137
35
  export async function listFacts(t, options = {}) {
138
- const { limit = 50, offset = 0, latestOnly = true, category } = options;
139
- ensureFactsFts(t);
140
- const db = getDb(t, 'timeline');
141
- let sql = 'SELECT * FROM facts WHERE COALESCE(is_retracted, 0) = 0';
142
- const params = [];
143
- if (latestOnly) {
144
- sql += ' AND COALESCE(is_latest, 1) = 1';
145
- }
146
- if (category) {
147
- sql += ' AND category = ?';
148
- params.push(category);
149
- }
150
- sql += ' ORDER BY timestamp DESC LIMIT ? OFFSET ?';
151
- params.push(limit, offset);
152
- return db.prepare(sql).all(...params).map(rowToFact);
36
+ return getStorage().facts.listFacts(t, options);
153
37
  }
154
38
  export async function listTemporalFacts(t, options = {}) {
155
- const { includeExpired = false, limit = 50 } = options;
156
- ensureFactsFts(t);
157
- const db = getDb(t, 'timeline');
158
- let sql = `SELECT * FROM facts WHERE expires_at IS NOT NULL AND COALESCE(is_retracted, 0) = 0`;
159
- const params = [];
160
- if (!includeExpired) {
161
- sql += ` AND (expires_at IS NULL OR expires_at > datetime('now'))`;
162
- }
163
- sql += ' ORDER BY expires_at ASC LIMIT ?';
164
- params.push(limit);
165
- return db.prepare(sql).all(...params).map(rowToFact);
39
+ return getStorage().facts.listTemporalFacts(t, options);
166
40
  }
167
41
  export async function searchFactsFts(t, query, limit = 20) {
168
- ensureFactsFts(t);
169
- const db = getDb(t, 'timeline');
170
- const sanitized = sanitizeFtsQuery(query);
171
- if (!sanitized)
172
- return [];
173
- try {
174
- const rowids = db.prepare(`SELECT rowid FROM facts_fts WHERE facts_fts MATCH ? LIMIT ?`).all(sanitized, limit);
175
- if (rowids.length === 0)
176
- return [];
177
- const placeholders = rowids.map(() => '?').join(',');
178
- return db.prepare(`SELECT * FROM facts WHERE id IN (${placeholders})`).all(...rowids.map(r => r.rowid)).map(rowToFact);
179
- }
180
- catch {
181
- return [];
182
- }
42
+ return getStorage().facts.searchFactsFts(t, query, limit);
183
43
  }
184
44
  //# sourceMappingURL=fact-store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fact-store.js","sourceRoot":"","sources":["../src/fact-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fact-store.js","sourceRoot":"","sources":["../src/fact-store.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAe;IACpD,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc;IACrD,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS;CACzC,CAAC,CAAC;AAEH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,CAAgB;IACrD,OAAO,UAAU,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,CAAgB,EAChB,IAAqF;IAErF,OAAO,UAAU,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,CAAgB,EAChB,MAAc,EACd,cAAsB,iBAAiB;IAEvC,OAAO,UAAU,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,CAAgB,EAAE,MAAc;IAClE,OAAO,UAAU,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,CAAgB,EAAE,MAAc;IAChE,OAAO,UAAU,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,CAAgB,EAChB,MAAc,EACd,UAA6E,EAAE;IAE/E,OAAO,UAAU,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,CAAgB,EAChB,SAAiB,EACjB,SAAiB;IAEjB,OAAO,UAAU,EAAE,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,CAAgB;IAC/C,OAAO,UAAU,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,CAAgB,EAChB,UAA8F,EAAE;IAEhG,OAAO,UAAU,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,CAAgB,EAChB,UAAwD,EAAE;IAE1D,OAAO,UAAU,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,CAAgB,EAChB,KAAa,EACb,QAAgB,EAAE;IAElB,OAAO,UAAU,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAC5D,CAAC"}
@@ -1,32 +1,11 @@
1
1
  /**
2
- * FTS5 query sanitizer — Bug Fix #2.
2
+ * FTS5 query sanitizer — re-export.
3
3
  *
4
- * KAD's naive sanitizer (`replace(/[?.,!'"]/g, '')`) silently breaks on:
5
- * - Hyphenated terms: "post-mortem" FTS5 reads as "post NOT mortem"
6
- * - Unicode: "café" the quote-strip mangled accented chars
7
- * - FTS5 operator tokens: bare AND/OR/NOT/NEAR are taken as operators
8
- * - Quoted phrases: embedded quotes broke the MATCH string
9
- *
10
- * This helper is the single shared sanitizer for all three FTS call sites:
11
- * 1. `searchFactsFts` in fact-store.ts
12
- * 2. `searchFactsDirect` in fact-retrieval.ts
13
- * 3. `queryTimeline` FTS MATCH path in timeline.ts
14
- */
15
- /**
16
- * Convert a natural-language query into a safe FTS5 MATCH expression.
17
- *
18
- * Strategy:
19
- * - Normalize unicode (NFC)
20
- * - Split on whitespace
21
- * - Strip leading/trailing punctuation from each token
22
- * - Replace hyphens with spaces (FTS5 leading `-` = NOT operator)
23
- * - Drop FTS5 reserved operator words
24
- * - Drop tokens shorter than 2 chars
25
- * - Double-quote each token so FTS5 treats it as a literal phrase
26
- * - Join with OR for broad matching
27
- *
28
- * Returns empty string when no usable tokens remain; callers must
29
- * skip the FTS query entirely on empty string to avoid a syntax error.
4
+ * The implementation now lives in @kybernesis/brain-storage-sqlite (FTS5 is a
5
+ * SQLite-dialect concern owned by the storage impl). This re-export keeps
6
+ * brain-core's public `sanitizeFtsQuery` export unchanged for consumers, and
7
+ * lets the not-yet-migrated brain-core FTS callers (fact-retrieval, hybrid-search)
8
+ * keep importing it from here until they migrate.
30
9
  */
31
- export declare function sanitizeFtsQuery(query: string): string;
10
+ export { sanitizeFtsQuery } from '@kybernesis/brain-storage-sqlite';
32
11
  //# sourceMappingURL=fts-sanitizer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fts-sanitizer.d.ts","sourceRoot":"","sources":["../src/fts-sanitizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA2BtD"}
1
+ {"version":3,"file":"fts-sanitizer.d.ts","sourceRoot":"","sources":["../src/fts-sanitizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC"}
@@ -1,61 +1,11 @@
1
1
  /**
2
- * FTS5 query sanitizer — Bug Fix #2.
2
+ * FTS5 query sanitizer — re-export.
3
3
  *
4
- * KAD's naive sanitizer (`replace(/[?.,!'"]/g, '')`) silently breaks on:
5
- * - Hyphenated terms: "post-mortem" FTS5 reads as "post NOT mortem"
6
- * - Unicode: "café" the quote-strip mangled accented chars
7
- * - FTS5 operator tokens: bare AND/OR/NOT/NEAR are taken as operators
8
- * - Quoted phrases: embedded quotes broke the MATCH string
9
- *
10
- * This helper is the single shared sanitizer for all three FTS call sites:
11
- * 1. `searchFactsFts` in fact-store.ts
12
- * 2. `searchFactsDirect` in fact-retrieval.ts
13
- * 3. `queryTimeline` FTS MATCH path in timeline.ts
14
- */
15
- const FTS5_RESERVED = new Set(['NEAR', 'AND', 'OR', 'NOT']);
16
- /**
17
- * Convert a natural-language query into a safe FTS5 MATCH expression.
18
- *
19
- * Strategy:
20
- * - Normalize unicode (NFC)
21
- * - Split on whitespace
22
- * - Strip leading/trailing punctuation from each token
23
- * - Replace hyphens with spaces (FTS5 leading `-` = NOT operator)
24
- * - Drop FTS5 reserved operator words
25
- * - Drop tokens shorter than 2 chars
26
- * - Double-quote each token so FTS5 treats it as a literal phrase
27
- * - Join with OR for broad matching
28
- *
29
- * Returns empty string when no usable tokens remain; callers must
30
- * skip the FTS query entirely on empty string to avoid a syntax error.
4
+ * The implementation now lives in @kybernesis/brain-storage-sqlite (FTS5 is a
5
+ * SQLite-dialect concern owned by the storage impl). This re-export keeps
6
+ * brain-core's public `sanitizeFtsQuery` export unchanged for consumers, and
7
+ * lets the not-yet-migrated brain-core FTS callers (fact-retrieval, hybrid-search)
8
+ * keep importing it from here until they migrate.
31
9
  */
32
- export function sanitizeFtsQuery(query) {
33
- const normalized = query.normalize('NFC');
34
- const rawTokens = normalized.split(/\s+/).filter(Boolean);
35
- const quoted = [];
36
- for (const raw of rawTokens) {
37
- // Strip leading/trailing punctuation (preserve inner chars including unicode)
38
- const stripped = raw.replace(/^[.,!?;:'"()\[\]{}|\\^*]+|[.,!?;:'"()\[\]{}|\\^*]+$/g, '');
39
- if (!stripped)
40
- continue;
41
- // Replace hyphens with spaces — FTS5 treats leading "-" as NOT operator
42
- const dehyphenated = stripped.replace(/-/g, ' ').trim();
43
- if (!dehyphenated)
44
- continue;
45
- // Split any sub-tokens produced by hyphen removal
46
- for (const sub of dehyphenated.split(/\s+/)) {
47
- if (sub.length < 2)
48
- continue;
49
- // Skip bare FTS5 reserved words
50
- if (FTS5_RESERVED.has(sub.toUpperCase()))
51
- continue;
52
- // Escape embedded double-quotes and wrap in quotes
53
- const escaped = sub.replace(/"/g, '');
54
- if (!escaped)
55
- continue;
56
- quoted.push(`"${escaped}"`);
57
- }
58
- }
59
- return quoted.join(' OR ');
60
- }
10
+ export { sanitizeFtsQuery } from '@kybernesis/brain-storage-sqlite';
61
11
  //# sourceMappingURL=fts-sanitizer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fts-sanitizer.js","sourceRoot":"","sources":["../src/fts-sanitizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAE5D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,8EAA8E;QAC9E,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,sDAAsD,EAAE,EAAE,CAAC,CAAC;QACzF,IAAI,CAAC,QAAQ;YAAE,SAAS;QAExB,wEAAwE;QACxE,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;QACxD,IAAI,CAAC,YAAY;YAAE,SAAS;QAE5B,kDAAkD;QAClD,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAC5C,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;gBAAE,SAAS;YAC7B,gCAAgC;YAChC,IAAI,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;gBAAE,SAAS;YACnD,mDAAmD;YACnD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACtC,IAAI,CAAC,OAAO;gBAAE,SAAS;YACvB,MAAM,CAAC,IAAI,CAAC,IAAI,OAAO,GAAG,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"fts-sanitizer.js","sourceRoot":"","sources":["../src/fts-sanitizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -6,6 +6,7 @@ export { findOrCreateEntity, addEntityAlias, addEntityMention, linkEntities, lin
6
6
  export type { ConversationEntity } from './entity-graph.js';
7
7
  export { ensureFactsTable, storeFact, retractFact, reinforceFact, getFactById, getFactsForEntity, markFactSuperseded, factsCount, listFacts, listTemporalFacts, searchFactsFts, VALID_CATEGORIES, } from './fact-store.js';
8
8
  export { sanitizeFtsQuery } from './fts-sanitizer.js';
9
+ export { setStorageProvider, resetStorageProvider, storageProviderIsExplicit, getStorage, } from './storage.js';
9
10
  export { setLLMProvider, resetLLMProvider, llmAvailable, callClaude, callClaudeJSON, } from './claude-call.js';
10
11
  export type { LLMProvider, ClaudeCallOpts } from './claude-call.js';
11
12
  export { indexChunk, semanticSearch, vectorStats, setEmbeddingProvider, resetEmbeddingProvider, embeddingAvailable, EMBEDDING_DIM, } from './vectors.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -3,6 +3,7 @@ export { addToTimeline, removeFromTimeline, updateTimelineEvent, deleteTimelineE
3
3
  export { findOrCreateEntity, addEntityAlias, addEntityMention, linkEntities, linkEntitiesWithType, getTypedRelationships, linkEntitiesFromConversation, getEntityContext, searchEntities, getRecentEntities, getMostMentionedEntities, getEntityGraphStats, detectEntitiesInQuery, mergeEntities, deleteEntity, getEntityProfile, saveEntityProfile, createContradiction, getOpenContradictions, resolveContradiction, applyContradictions, saveEntityInsight, getEntityInsights, markInsightsStale, getEntitiesForReasoning, markEntityReasoned, pinEntity, listPinned, } from './entity-graph.js';
4
4
  export { ensureFactsTable, storeFact, retractFact, reinforceFact, getFactById, getFactsForEntity, markFactSuperseded, factsCount, listFacts, listTemporalFacts, searchFactsFts, VALID_CATEGORIES, } from './fact-store.js';
5
5
  export { sanitizeFtsQuery } from './fts-sanitizer.js';
6
+ export { setStorageProvider, resetStorageProvider, storageProviderIsExplicit, getStorage, } from './storage.js';
6
7
  export { setLLMProvider, resetLLMProvider, llmAvailable, callClaude, callClaudeJSON, } from './claude-call.js';
7
8
  export { indexChunk, semanticSearch, vectorStats, setEmbeddingProvider, resetEmbeddingProvider, embeddingAvailable, EMBEDDING_DIM, } from './vectors.js';
8
9
  export { runSleepCycleNow, ensureSleepSchema, recoverStaleSleepRuns, DEFAULT_CONFIG as SLEEP_DEFAULT_CONFIG, } from './sleep/index.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEtD,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,YAAY,EACZ,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,2BAA2B,EAC3B,gBAAgB,EAChB,yBAAyB,EACzB,iBAAiB,EACjB,eAAe,GAChB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,4BAA4B,EAC5B,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,SAAS,EACT,UAAU,GACX,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,cAAc,EACd,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,cAAc,GACf,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,UAAU,EAAE,cAAc,EAAE,WAAW,EACvC,oBAAoB,EAAE,sBAAsB,EAAE,kBAAkB,EAChE,aAAa,GACd,MAAM,cAAc,CAAC;AAKtB,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,IAAI,oBAAoB,GACvC,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAG9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG1D,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAGvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,GACd,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEtD,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,YAAY,EACZ,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,2BAA2B,EAC3B,gBAAgB,EAChB,yBAAyB,EACzB,iBAAiB,EACjB,eAAe,GAChB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,oBAAoB,EACpB,qBAAqB,EACrB,4BAA4B,EAC5B,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,EACnB,qBAAqB,EACrB,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,kBAAkB,EAClB,SAAS,EACT,UAAU,GACX,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,cAAc,EACd,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,EACzB,UAAU,GACX,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,cAAc,GACf,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,UAAU,EAAE,cAAc,EAAE,WAAW,EACvC,oBAAoB,EAAE,sBAAsB,EAAE,kBAAkB,EAChE,aAAa,GACd,MAAM,cAAc,CAAC;AAKtB,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,IAAI,oBAAoB,GACvC,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAG9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAG1D,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAGvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,sBAAsB,GACvB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,GACd,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,UAAU,CAAC"}
package/dist/ops.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ops.d.ts","sourceRoot":"","sources":["../src/ops.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAA4B,MAAM,6BAA6B,CAAC;AAwK3F,wBAAsB,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CA+B/F;AAmED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,kBAAkB,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBpG;AAID,MAAM,WAAW,gBAAgB;IAC/B,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,gBAAgB,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAchG"}
1
+ {"version":3,"file":"ops.d.ts","sourceRoot":"","sources":["../src/ops.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAA4B,MAAM,6BAA6B,CAAC;AAkJ3F,wBAAsB,YAAY,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CA+B/F;AAmED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,kBAAkB,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBpG;AAID,MAAM,WAAW,gBAAgB;IAC/B,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,gBAAgB,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAchG"}
package/dist/ops.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * per CANONICAL.md §4). Output is byte-identical to what KAD renders.
4
4
  * Wire contract for MCP skills — do NOT change output format.
5
5
  */
6
- import { getDb } from '@kybernesis/brain-storage-sqlite';
6
+ import { getStorage } from './storage.js';
7
7
  import { getEntityContext, searchEntities, getEntityGraphStats, getMostMentionedEntities, getTypedRelationships, getEntityProfile, getOpenContradictions, getEntityInsights, } from './entity-graph.js';
8
8
  import { formatRelationship } from './relationship-extractor.js';
9
9
  import { getFactsForEntity } from './fact-store.js';
@@ -98,46 +98,25 @@ async function formatEntityContext(t, context) {
98
98
  }
99
99
  async function getRelatedMemories(t, entityName) {
100
100
  try {
101
- const db = getDb(t, 'timeline');
102
- let sleep = null;
103
- try {
104
- sleep = getDb(t, 'sleep');
105
- }
106
- catch {
107
- return [];
108
- }
101
+ const storage = getStorage();
109
102
  const entityLower = entityName.toLowerCase();
110
- const sourcePaths = db.prepare(`
111
- SELECT DISTINCT source_path FROM timeline_events
112
- WHERE LOWER(title) LIKE ? OR LOWER(tags_json) LIKE ? OR LOWER(entities_json) LIKE ?
113
- LIMIT 20
114
- `).all(`%${entityLower}%`, `%${entityLower}%`, `%${entityLower}%`);
103
+ const sourcePaths = await storage.timeline.findSourcePathsMatching(t, entityLower, 20);
115
104
  if (sourcePaths.length === 0)
116
105
  return [];
117
106
  const relatedPaths = new Set();
118
- for (const { source_path } of sourcePaths) {
119
- try {
120
- const edges = sleep.prepare(`
121
- SELECT CASE WHEN from_path = ? THEN to_path ELSE from_path END as related_path,
122
- confidence, shared_tags
123
- FROM memory_edges
124
- WHERE from_path = ? OR to_path = ?
125
- ORDER BY confidence DESC LIMIT 3
126
- `).all(source_path, source_path, source_path);
127
- for (const edge of edges) {
128
- if (!sourcePaths.some(s => s.source_path === edge.related_path)) {
129
- relatedPaths.add(edge.related_path);
130
- }
107
+ for (const source_path of sourcePaths) {
108
+ const edges = await storage.sleep.getRelatedEdges(t, source_path, 3);
109
+ for (const edge of edges) {
110
+ if (!sourcePaths.includes(edge.related_path)) {
111
+ relatedPaths.add(edge.related_path);
131
112
  }
132
113
  }
133
- catch { /* memory_edges may not exist */ }
134
114
  }
135
115
  if (relatedPaths.size === 0)
136
116
  return [];
137
117
  const lines = [];
138
118
  for (const path of relatedPaths) {
139
- const item = db.prepare('SELECT title, tier, timestamp FROM timeline_events WHERE source_path = ?')
140
- .get(path);
119
+ const item = await storage.timeline.getEventByPath(t, path);
141
120
  if (item) {
142
121
  const date = new Date(item.timestamp).toLocaleDateString();
143
122
  lines.push(`- ${item.title} [${date}] (${item.tier})`);
@@ -151,10 +130,7 @@ async function getRelatedMemories(t, entityName) {
151
130
  }
152
131
  async function trackEntityAccess(t, entityId) {
153
132
  try {
154
- const db = getDb(t, 'entityGraph');
155
- db.prepare(`
156
- UPDATE entities SET access_count = access_count + 1, last_accessed = datetime('now') WHERE id = ?
157
- `).run(entityId);
133
+ await getStorage().entities.trackAccess(t, entityId);
158
134
  }
159
135
  catch { /* non-critical */ }
160
136
  }