@kybernesis/brain-storage-sqlite 0.2.0 → 0.6.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.
Files changed (41) hide show
  1. package/dist/entity-graph.d.ts +12 -0
  2. package/dist/entity-graph.d.ts.map +1 -0
  3. package/dist/entity-graph.js +620 -0
  4. package/dist/entity-graph.js.map +1 -0
  5. package/dist/fact-retrieval-queries.d.ts +12 -0
  6. package/dist/fact-retrieval-queries.d.ts.map +1 -0
  7. package/dist/fact-retrieval-queries.js +116 -0
  8. package/dist/fact-retrieval-queries.js.map +1 -0
  9. package/dist/fact-store.d.ts +8 -0
  10. package/dist/fact-store.d.ts.map +1 -0
  11. package/dist/fact-store.js +222 -0
  12. package/dist/fact-store.js.map +1 -0
  13. package/dist/fts-sanitizer.d.ts +30 -0
  14. package/dist/fts-sanitizer.d.ts.map +1 -0
  15. package/dist/fts-sanitizer.js +59 -0
  16. package/dist/fts-sanitizer.js.map +1 -0
  17. package/dist/index.d.ts +5 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +7 -0
  20. package/dist/index.js.map +1 -1
  21. package/dist/provider.d.ts +16 -0
  22. package/dist/provider.d.ts.map +1 -0
  23. package/dist/provider.js +93 -0
  24. package/dist/provider.js.map +1 -0
  25. package/dist/search-queries.d.ts +14 -0
  26. package/dist/search-queries.d.ts.map +1 -0
  27. package/dist/search-queries.js +84 -0
  28. package/dist/search-queries.js.map +1 -0
  29. package/dist/sleep-maintenance.d.ts +15 -0
  30. package/dist/sleep-maintenance.d.ts.map +1 -0
  31. package/dist/sleep-maintenance.js +227 -0
  32. package/dist/sleep-maintenance.js.map +1 -0
  33. package/dist/sleep-store.d.ts +29 -0
  34. package/dist/sleep-store.d.ts.map +1 -0
  35. package/dist/sleep-store.js +377 -0
  36. package/dist/sleep-store.js.map +1 -0
  37. package/dist/timeline.d.ts +11 -0
  38. package/dist/timeline.d.ts.map +1 -0
  39. package/dist/timeline.js +351 -0
  40. package/dist/timeline.js.map +1 -0
  41. package/package.json +6 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity-graph.js","sourceRoot":"","sources":["../src/entity-graph.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * FactRetrievalQueries (SQLite impl) — the 4-layer fact-retrieval candidate SQL.
3
+ *
4
+ * Business plane (gate U2 of the 0.6.0 untangle). SQL moved VERBATIM from
5
+ * brain-core/fact-retrieval.ts; behaviour held constant. Only candidate
6
+ * generation + the entity-graph BFS live here — the scoring (hop penalty,
7
+ * bridge/scene weights, source-priority tie-break, dedup, assembly) stays in
8
+ * brain-core. Each method keeps the original best-effort try/catch → [] / null.
9
+ */
10
+ import type { FactRetrievalQueries } from '@kybernesis/brain-contracts';
11
+ export declare const sqliteFactRetrievalQueries: FactRetrievalQueries;
12
+ //# sourceMappingURL=fact-retrieval-queries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fact-retrieval-queries.d.ts","sourceRoot":"","sources":["../src/fact-retrieval-queries.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAEV,oBAAoB,EAGrB,MAAM,6BAA6B,CAAC;AAGrC,eAAO,MAAM,0BAA0B,EAAE,oBAuHxC,CAAC"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * FactRetrievalQueries (SQLite impl) — the 4-layer fact-retrieval candidate SQL.
3
+ *
4
+ * Business plane (gate U2 of the 0.6.0 untangle). SQL moved VERBATIM from
5
+ * brain-core/fact-retrieval.ts; behaviour held constant. Only candidate
6
+ * generation + the entity-graph BFS live here — the scoring (hop penalty,
7
+ * bridge/scene weights, source-priority tie-break, dedup, assembly) stays in
8
+ * brain-core. Each method keeps the original best-effort try/catch → [] / null.
9
+ */
10
+ import { getDb } from './index.js';
11
+ export const sqliteFactRetrievalQueries = {
12
+ async searchFactsByFts(t, ftsQuery, limit) {
13
+ const db = getDb(t, 'timeline');
14
+ try {
15
+ return db.prepare(`
16
+ SELECT f.id, f.content, f.category, f.confidence, f.timestamp,
17
+ f.entities_json, f.is_latest, f.expires_at, f.source_conversation_id
18
+ FROM facts f
19
+ JOIN facts_fts fts ON f.id = fts.rowid
20
+ WHERE facts_fts MATCH ?
21
+ AND COALESCE(f.is_latest, 1) = 1
22
+ AND (f.expires_at IS NULL OR f.expires_at > datetime('now'))
23
+ ORDER BY rank
24
+ LIMIT ?
25
+ `).all(ftsQuery, limit);
26
+ }
27
+ catch (err) {
28
+ console.warn('[brain-storage-sqlite/fact-retrieval] FTS search failed', { err: String(err) });
29
+ return [];
30
+ }
31
+ },
32
+ async traverseEntityGraph(t, seedIds, maxHops, maxEntities) {
33
+ const entityDb = getDb(t, 'entityGraph');
34
+ const visited = new Map();
35
+ for (const id of seedIds)
36
+ visited.set(id, 0);
37
+ let frontier = [...seedIds];
38
+ for (let hop = 0; hop < maxHops && frontier.length > 0; hop++) {
39
+ const next = [];
40
+ for (const eid of frontier) {
41
+ try {
42
+ const connected = entityDb.prepare(`
43
+ SELECT CASE WHEN source_id = ? THEN target_id ELSE source_id END as cid
44
+ FROM entity_relations
45
+ WHERE source_id = ? OR target_id = ?
46
+ ORDER BY strength DESC LIMIT 10
47
+ `).all(eid, eid, eid);
48
+ for (const c of connected) {
49
+ if (!visited.has(c.cid) && visited.size < maxEntities) {
50
+ visited.set(c.cid, hop + 1);
51
+ next.push(c.cid);
52
+ }
53
+ }
54
+ }
55
+ catch { /* skip */ }
56
+ }
57
+ frontier = next;
58
+ }
59
+ return Array.from(visited.entries()).map(([id, hopDistance]) => ({ id, hopDistance }));
60
+ },
61
+ async getFactConversationId(t, factId) {
62
+ const db = getDb(t, 'timeline');
63
+ try {
64
+ const row = db.prepare('SELECT source_conversation_id FROM facts WHERE id = ?').get(factId);
65
+ return row ? row.source_conversation_id : null;
66
+ }
67
+ catch {
68
+ return null; // best-effort
69
+ }
70
+ },
71
+ async nearbyFactsInConversation(t, conversationId, excludeFactId, limit) {
72
+ const db = getDb(t, 'timeline');
73
+ try {
74
+ return db.prepare(`
75
+ SELECT id, content, category, confidence, timestamp, entities_json, source_conversation_id
76
+ FROM facts
77
+ WHERE source_conversation_id = ? AND id != ?
78
+ AND COALESCE(is_latest, 1) = 1
79
+ AND (expires_at IS NULL OR expires_at > datetime('now'))
80
+ ORDER BY ABS(id - ?) ASC LIMIT ?
81
+ `).all(conversationId, excludeFactId, excludeFactId, limit);
82
+ }
83
+ catch {
84
+ return []; // best-effort
85
+ }
86
+ },
87
+ async listBridgeCandidates(t, limit) {
88
+ const db = getDb(t, 'timeline');
89
+ try {
90
+ return db.prepare(`
91
+ SELECT id, content, category, confidence, timestamp, entities_json
92
+ FROM facts
93
+ WHERE COALESCE(is_latest, 1) = 1
94
+ AND (expires_at IS NULL OR expires_at > datetime('now'))
95
+ LIMIT ?
96
+ `).all(limit);
97
+ }
98
+ catch {
99
+ return []; // best-effort
100
+ }
101
+ },
102
+ async findSupportingSegments(t, parentPath, limit) {
103
+ const db = getDb(t, 'timeline');
104
+ try {
105
+ return db.prepare(`
106
+ SELECT source_path, summary, timestamp FROM timeline_events
107
+ WHERE source_path LIKE ? OR source_path = ?
108
+ ORDER BY timestamp ASC LIMIT ?
109
+ `).all(`${parentPath}%`, parentPath, limit);
110
+ }
111
+ catch {
112
+ return []; // best-effort
113
+ }
114
+ },
115
+ };
116
+ //# sourceMappingURL=fact-retrieval-queries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fact-retrieval-queries.js","sourceRoot":"","sources":["../src/fact-retrieval-queries.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * FactRepository (SQLite impl). SQL moved verbatim from brain-core/fact-store.ts
3
+ * during the storage-seam migration (G1) — behaviour held constant.
4
+ * Facts physically live in timeline.db (same file as timeline_events).
5
+ */
6
+ import type { FactRepository } from '@kybernesis/brain-contracts';
7
+ export declare const sqliteFactStore: FactRepository;
8
+ //# sourceMappingURL=fact-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fact-store.d.ts","sourceRoot":"","sources":["../src/fact-store.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAqC,cAAc,EAAE,MAAM,6BAA6B,CAAC;AA8FrG,eAAO,MAAM,eAAe,EAAE,cAgM7B,CAAC"}
@@ -0,0 +1,222 @@
1
+ /**
2
+ * FactRepository (SQLite impl). SQL moved verbatim from brain-core/fact-store.ts
3
+ * during the storage-seam migration (G1) — behaviour held constant.
4
+ * Facts physically live in timeline.db (same file as timeline_events).
5
+ */
6
+ import { getDb } from './index.js';
7
+ import { sanitizeFtsQuery } from './fts-sanitizer.js';
8
+ function rowToFact(row) {
9
+ return {
10
+ id: row.id,
11
+ content: row.content,
12
+ source_path: row.source_path,
13
+ source_conversation_id: row.source_conversation_id,
14
+ entities: JSON.parse(row.entities_json || '[]'),
15
+ timestamp: row.timestamp,
16
+ confidence: row.confidence,
17
+ category: row.category,
18
+ created_at: row.created_at,
19
+ is_latest: (row.is_latest ?? 1) === 1,
20
+ superseded_by: row.superseded_by ?? undefined,
21
+ expires_at: row.expires_at ?? undefined,
22
+ updated_at: row.updated_at ?? undefined,
23
+ access_count: row.access_count ?? 0,
24
+ source_type: row.source_type ?? 'chat',
25
+ is_retracted: (row.is_retracted ?? 0) === 1,
26
+ retracted_by: row.retracted_by ?? undefined,
27
+ last_reinforced_at: row.last_reinforced_at ?? undefined,
28
+ project_id: row.project_id ?? undefined,
29
+ tags: JSON.parse(row.tags_json || '[]'),
30
+ classification: row.classification ?? undefined,
31
+ connection_id: row.connection_id ?? undefined,
32
+ source_did: row.source_did ?? undefined,
33
+ };
34
+ }
35
+ // Facts table is created by timeline.ts ensureSchema. This impl only ensures
36
+ // the FTS index + triggers. Per-slug init cache (moved with the code).
37
+ const initialized = new Set();
38
+ function ensureFactsFts(t) {
39
+ if (initialized.has(t.slug))
40
+ return;
41
+ const db = getDb(t, 'timeline');
42
+ // Bug Fix 1 (CANONICAL.md §6): the non-contentless facts_fts table must use
43
+ // explicit DELETE FROM ... WHERE rowid = ? in triggers, NOT the ('delete', ...)
44
+ // command form which is only valid for contentless FTS5 tables.
45
+ db.exec(`
46
+ CREATE VIRTUAL TABLE IF NOT EXISTS facts_fts USING fts5(
47
+ content, entities,
48
+ tokenize = 'unicode61 remove_diacritics 2'
49
+ );
50
+
51
+ CREATE TRIGGER IF NOT EXISTS facts_fts_ai AFTER INSERT ON facts BEGIN
52
+ INSERT INTO facts_fts(rowid, content, entities) VALUES (new.id, new.content, new.entities_json);
53
+ END;
54
+
55
+ CREATE TRIGGER IF NOT EXISTS facts_fts_ad AFTER DELETE ON facts BEGIN
56
+ DELETE FROM facts_fts WHERE rowid = old.id;
57
+ END;
58
+
59
+ CREATE TRIGGER IF NOT EXISTS facts_fts_au AFTER UPDATE ON facts BEGIN
60
+ DELETE FROM facts_fts WHERE rowid = old.id;
61
+ INSERT INTO facts_fts(rowid, content, entities) VALUES (new.id, new.content, new.entities_json);
62
+ END;
63
+ `);
64
+ initialized.add(t.slug);
65
+ }
66
+ export const sqliteFactStore = {
67
+ async ensureFactsTable(t) {
68
+ ensureFactsFts(t);
69
+ },
70
+ async storeFact(t, fact) {
71
+ ensureFactsFts(t);
72
+ const db = getDb(t, 'timeline');
73
+ const result = db.prepare(`
74
+ INSERT OR REPLACE INTO facts
75
+ (content, source_path, source_conversation_id, entities_json, timestamp, confidence, category,
76
+ expires_at, source_type, project_id, tags_json, classification, connection_id, source_did)
77
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
78
+ `).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);
79
+ return result.lastInsertRowid;
80
+ },
81
+ async retractFact(t, factId, retractedBy = 'user-correction') {
82
+ ensureFactsFts(t);
83
+ const db = getDb(t, 'timeline');
84
+ db.prepare(`
85
+ UPDATE facts SET is_retracted = 1, retracted_by = ?, is_latest = 0, updated_at = datetime('now')
86
+ WHERE id = ?
87
+ `).run(retractedBy, factId);
88
+ },
89
+ async reinforceFact(t, factId) {
90
+ ensureFactsFts(t);
91
+ const db = getDb(t, 'timeline');
92
+ db.prepare(`UPDATE facts SET last_reinforced_at = datetime('now'), updated_at = datetime('now') WHERE id = ?`).run(factId);
93
+ },
94
+ async getFactById(t, factId) {
95
+ ensureFactsFts(t);
96
+ const db = getDb(t, 'timeline');
97
+ const row = db.prepare('SELECT * FROM facts WHERE id = ?').get(factId);
98
+ return row ? rowToFact(row) : null;
99
+ },
100
+ async getFactsForEntity(t, entity, options = {}) {
101
+ const { latestOnly = true, limit = 20, category } = options;
102
+ ensureFactsFts(t);
103
+ const db = getDb(t, 'timeline');
104
+ const escapedEntity = entity.toLowerCase().replace(/[%_\\]/g, ch => `\\${ch}`);
105
+ const entityPattern = `%${escapedEntity}%`;
106
+ let sql = `
107
+ SELECT * FROM facts
108
+ WHERE LOWER(entities_json) LIKE ? ESCAPE '\\'
109
+ AND COALESCE(is_retracted, 0) = 0
110
+ `;
111
+ const params = [entityPattern];
112
+ if (latestOnly) {
113
+ sql += ` AND COALESCE(is_latest, 1) = 1`;
114
+ }
115
+ if (category) {
116
+ sql += ` AND category = ?`;
117
+ params.push(category);
118
+ }
119
+ sql += ` ORDER BY timestamp DESC LIMIT ?`;
120
+ params.push(limit);
121
+ return db.prepare(sql).all(...params).map(rowToFact);
122
+ },
123
+ async markFactSuperseded(t, oldFactId, newFactId) {
124
+ ensureFactsFts(t);
125
+ const db = getDb(t, 'timeline');
126
+ db.prepare('UPDATE facts SET is_latest = 0, superseded_by = ? WHERE id = ?').run(newFactId, oldFactId);
127
+ },
128
+ async factsCount(t) {
129
+ ensureFactsFts(t);
130
+ const db = getDb(t, 'timeline');
131
+ const { count } = db.prepare('SELECT COUNT(*) as count FROM facts WHERE COALESCE(is_retracted, 0) = 0').get();
132
+ return count;
133
+ },
134
+ async listFacts(t, options = {}) {
135
+ const { limit = 50, offset = 0, latestOnly = true, category } = options;
136
+ ensureFactsFts(t);
137
+ const db = getDb(t, 'timeline');
138
+ let sql = 'SELECT * FROM facts WHERE COALESCE(is_retracted, 0) = 0';
139
+ const params = [];
140
+ if (latestOnly) {
141
+ sql += ' AND COALESCE(is_latest, 1) = 1';
142
+ }
143
+ if (category) {
144
+ sql += ' AND category = ?';
145
+ params.push(category);
146
+ }
147
+ sql += ' ORDER BY timestamp DESC LIMIT ? OFFSET ?';
148
+ params.push(limit, offset);
149
+ return db.prepare(sql).all(...params).map(rowToFact);
150
+ },
151
+ async listTemporalFacts(t, options = {}) {
152
+ const { includeExpired = false, limit = 50 } = options;
153
+ ensureFactsFts(t);
154
+ const db = getDb(t, 'timeline');
155
+ let sql = `SELECT * FROM facts WHERE expires_at IS NOT NULL AND COALESCE(is_retracted, 0) = 0`;
156
+ const params = [];
157
+ if (!includeExpired) {
158
+ sql += ` AND (expires_at IS NULL OR expires_at > datetime('now'))`;
159
+ }
160
+ sql += ' ORDER BY expires_at ASC LIMIT ?';
161
+ params.push(limit);
162
+ return db.prepare(sql).all(...params).map(rowToFact);
163
+ },
164
+ async searchFactsFts(t, query, limit = 20) {
165
+ ensureFactsFts(t);
166
+ const db = getDb(t, 'timeline');
167
+ const sanitized = sanitizeFtsQuery(query);
168
+ if (!sanitized)
169
+ return [];
170
+ try {
171
+ const rowids = db.prepare(`SELECT rowid FROM facts_fts WHERE facts_fts MATCH ? LIMIT ?`).all(sanitized, limit);
172
+ if (rowids.length === 0)
173
+ return [];
174
+ const placeholders = rowids.map(() => '?').join(',');
175
+ return db.prepare(`SELECT * FROM facts WHERE id IN (${placeholders})`).all(...rowids.map(r => r.rowid)).map(rowToFact);
176
+ }
177
+ catch {
178
+ return [];
179
+ }
180
+ },
181
+ async getFactContentsByCategory(t, category, limit, order) {
182
+ ensureFactsFts(t);
183
+ const db = getDb(t, 'timeline');
184
+ const where = `
185
+ WHERE category = ?
186
+ AND is_latest = 1
187
+ AND (expires_at IS NULL OR expires_at > datetime('now'))
188
+ `;
189
+ if (order === 'recent') {
190
+ const rows = db.prepare(`
191
+ SELECT content FROM facts ${where}
192
+ ORDER BY timestamp DESC
193
+ LIMIT ?
194
+ `).all(category, limit);
195
+ return rows.map(r => r.content);
196
+ }
197
+ // frecency: confidence DESC, access_count DESC — with a fallback for older DBs
198
+ // that predate the access_count column (port-faithful with user-profile.ts).
199
+ try {
200
+ const rows = db.prepare(`
201
+ SELECT content FROM facts ${where}
202
+ ORDER BY confidence DESC, access_count DESC
203
+ LIMIT ?
204
+ `).all(category, limit);
205
+ return rows.map(r => r.content);
206
+ }
207
+ catch {
208
+ try {
209
+ const rows = db.prepare(`
210
+ SELECT content FROM facts ${where}
211
+ ORDER BY confidence DESC
212
+ LIMIT ?
213
+ `).all(category, limit);
214
+ return rows.map(r => r.content);
215
+ }
216
+ catch {
217
+ return [];
218
+ }
219
+ }
220
+ },
221
+ };
222
+ //# sourceMappingURL=fact-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fact-store.js","sourceRoot":"","sources":["../src/fact-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * FTS5 query sanitizer — Bug Fix #2. (Moved here from brain-core during the
3
+ * storage-seam migration: FTS5 is a SQLite-dialect concern owned by the impl.
4
+ * brain-core re-exports `sanitizeFtsQuery` so its public API is unchanged, and
5
+ * a Stage-3 libsql impl — which keeps FTS5 — can share this verbatim.)
6
+ *
7
+ * KAD's naive sanitizer (`replace(/[?.,!'"]/g, '')`) silently breaks on:
8
+ * - Hyphenated terms: "post-mortem" → FTS5 reads as "post NOT mortem"
9
+ * - Unicode: "café" — the quote-strip mangled accented chars
10
+ * - FTS5 operator tokens: bare AND/OR/NOT/NEAR are taken as operators
11
+ * - Quoted phrases: embedded quotes broke the MATCH string
12
+ */
13
+ /**
14
+ * Convert a natural-language query into a safe FTS5 MATCH expression.
15
+ *
16
+ * Strategy:
17
+ * - Normalize unicode (NFC)
18
+ * - Split on whitespace
19
+ * - Strip leading/trailing punctuation from each token
20
+ * - Replace hyphens with spaces (FTS5 leading `-` = NOT operator)
21
+ * - Drop FTS5 reserved operator words
22
+ * - Drop tokens shorter than 2 chars
23
+ * - Double-quote each token so FTS5 treats it as a literal phrase
24
+ * - Join with OR for broad matching
25
+ *
26
+ * Returns empty string when no usable tokens remain; callers must
27
+ * skip the FTS query entirely on empty string to avoid a syntax error.
28
+ */
29
+ export declare function sanitizeFtsQuery(query: string): string;
30
+ //# sourceMappingURL=fts-sanitizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fts-sanitizer.d.ts","sourceRoot":"","sources":["../src/fts-sanitizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA2BtD"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * FTS5 query sanitizer — Bug Fix #2. (Moved here from brain-core during the
3
+ * storage-seam migration: FTS5 is a SQLite-dialect concern owned by the impl.
4
+ * brain-core re-exports `sanitizeFtsQuery` so its public API is unchanged, and
5
+ * a Stage-3 libsql impl — which keeps FTS5 — can share this verbatim.)
6
+ *
7
+ * KAD's naive sanitizer (`replace(/[?.,!'"]/g, '')`) silently breaks on:
8
+ * - Hyphenated terms: "post-mortem" → FTS5 reads as "post NOT mortem"
9
+ * - Unicode: "café" — the quote-strip mangled accented chars
10
+ * - FTS5 operator tokens: bare AND/OR/NOT/NEAR are taken as operators
11
+ * - Quoted phrases: embedded quotes broke the MATCH string
12
+ */
13
+ const FTS5_RESERVED = new Set(['NEAR', 'AND', 'OR', 'NOT']);
14
+ /**
15
+ * Convert a natural-language query into a safe FTS5 MATCH expression.
16
+ *
17
+ * Strategy:
18
+ * - Normalize unicode (NFC)
19
+ * - Split on whitespace
20
+ * - Strip leading/trailing punctuation from each token
21
+ * - Replace hyphens with spaces (FTS5 leading `-` = NOT operator)
22
+ * - Drop FTS5 reserved operator words
23
+ * - Drop tokens shorter than 2 chars
24
+ * - Double-quote each token so FTS5 treats it as a literal phrase
25
+ * - Join with OR for broad matching
26
+ *
27
+ * Returns empty string when no usable tokens remain; callers must
28
+ * skip the FTS query entirely on empty string to avoid a syntax error.
29
+ */
30
+ export function sanitizeFtsQuery(query) {
31
+ const normalized = query.normalize('NFC');
32
+ const rawTokens = normalized.split(/\s+/).filter(Boolean);
33
+ const quoted = [];
34
+ for (const raw of rawTokens) {
35
+ // Strip leading/trailing punctuation (preserve inner chars including unicode)
36
+ const stripped = raw.replace(/^[.,!?;:'"()\[\]{}|\\^*]+|[.,!?;:'"()\[\]{}|\\^*]+$/g, '');
37
+ if (!stripped)
38
+ continue;
39
+ // Replace hyphens with spaces — FTS5 treats leading "-" as NOT operator
40
+ const dehyphenated = stripped.replace(/-/g, ' ').trim();
41
+ if (!dehyphenated)
42
+ continue;
43
+ // Split any sub-tokens produced by hyphen removal
44
+ for (const sub of dehyphenated.split(/\s+/)) {
45
+ if (sub.length < 2)
46
+ continue;
47
+ // Skip bare FTS5 reserved words
48
+ if (FTS5_RESERVED.has(sub.toUpperCase()))
49
+ continue;
50
+ // Escape embedded double-quotes and wrap in quotes
51
+ const escaped = sub.replace(/"/g, '');
52
+ if (!escaped)
53
+ continue;
54
+ quoted.push(`"${escaped}"`);
55
+ }
56
+ }
57
+ return quoted.join(' OR ');
58
+ }
59
+ //# sourceMappingURL=fts-sanitizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fts-sanitizer.js","sourceRoot":"","sources":["../src/fts-sanitizer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,9 @@
1
1
  import Database from 'better-sqlite3';
2
+ export { createSqliteStorageProvider } from './provider.js';
3
+ export { sanitizeFtsQuery } from './fts-sanitizer.js';
4
+ export { resetTimelineSchemaCache } from './timeline.js';
5
+ export { resetEntityGraphSchemaCache } from './entity-graph.js';
6
+ export { ensureSleepSchema, recoverStaleSleepRuns, resetSleepSchemaCache } from './sleep-store.js';
2
7
  import type { TenantContext } from '@kybernesis/brain-contracts';
3
8
  export type DbKind = 'timeline' | 'entityGraph' | 'vectors' | 'sleep' | 'idempotency';
4
9
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAGtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,MAAM,MAAM,MAAM,GAAG,UAAU,GAAG,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,CAAC;AAgBtF;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAevE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAOjD;AAED,wBAAgB,QAAQ,IAAI,IAAI,CAK/B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAItC,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAGhE,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACnG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,MAAM,MAAM,MAAM,GAAG,UAAU,GAAG,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,CAAC;AAgBtF;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAevE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAOjD;AAED,wBAAgB,QAAQ,IAAI,IAAI,CAK/B"}
package/dist/index.js CHANGED
@@ -1,6 +1,13 @@
1
1
  import Database from 'better-sqlite3';
2
2
  import { mkdirSync } from 'node:fs';
3
3
  import { dirname } from 'node:path';
4
+ export { createSqliteStorageProvider } from './provider.js';
5
+ export { sanitizeFtsQuery } from './fts-sanitizer.js';
6
+ export { resetTimelineSchemaCache } from './timeline.js';
7
+ export { resetEntityGraphSchemaCache } from './entity-graph.js';
8
+ // Sleep schema helpers — public re-export surface for brain-core/sleep/db.ts.
9
+ // They live here (where raw getDb is allowed) so brain-core/src stays getDb-free.
10
+ export { ensureSleepSchema, recoverStaleSleepRuns, resetSleepSchemaCache } from './sleep-store.js';
4
11
  const pool = new Map();
5
12
  function resolveDbPath(t, kind) {
6
13
  switch (kind) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,MAAM,IAAI,GAAG,IAAI,GAAG,EAA6B,CAAC;AAElD,SAAS,aAAa,CAAC,CAAgB,EAAE,IAAY;IACnD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,UAAU,CAAC,CAAI,OAAO,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC;QAClD,KAAK,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;QACrD,KAAK,SAAS,CAAC,CAAK,OAAO,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC;QACjD,KAAK,OAAO,CAAC,CAAO,OAAO,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC;QAC/C,KAAK,aAAa;YAChB,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,iBAAiB;gBAAE,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,IAAI,4BAA4B,CAAC,CAAC;YACtG,OAAO,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC;IACrC,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAC,CAAgB,EAAE,IAAY;IAClD,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;IACjC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE3C,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC3B,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAChC,EAAE,CAAC,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAClC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC;IAE/B,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAClB,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,KAAK,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;QAC7B,IAAI,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC;gBAAC,EAAE,CAAC,KAAK,EAAE,CAAC;YAAC,CAAC;YAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;YAC1C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC;YAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,CAAC,KAAK,EAAE,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * SQLite StorageProvider — the default backend wired by brain-core's seam.
3
+ *
4
+ * The persistence stores (timeline, entities, facts) + the minimal sleep read +
5
+ * the lazy vector store are all real as of 0.3.0. The sleep maintenance engine,
6
+ * hybrid-search, and fact-retrieval remain on guarded direct getDb (deferred to
7
+ * 0.4.0 — see docs/specs/storage-architecture-0.3-and-0.4.md).
8
+ *
9
+ * The SQL that lands here is moved verbatim (port-faithful) from the
10
+ * corresponding brain-core module; behaviour is held constant.
11
+ */
12
+ import type { StorageProvider } from '@kybernesis/brain-contracts';
13
+ /** Reset the lazy vec-store cache (test/utility). */
14
+ export declare function resetLazyVectorStore(): void;
15
+ export declare function createSqliteStorageProvider(): StorageProvider;
16
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,eAAe,EAIhB,MAAM,6BAA6B,CAAC;AAgCrC,qDAAqD;AACrD,wBAAgB,oBAAoB,IAAI,IAAI,CAG3C;AA6BD,wBAAgB,2BAA2B,IAAI,eAAe,CAiB7D"}