@kybernesis/brain-storage-sqlite 0.5.0 → 0.6.1

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,12 +1,12 @@
1
1
  /**
2
- * EntityGraphStore (SQLite impl). SQL moved verbatim from brain-core/entity-graph.ts
2
+ * EntityRepository (SQLite impl). SQL moved verbatim from brain-core/entity-graph.ts
3
3
  * during the storage-seam migration (G3) — behaviour held constant. The two
4
4
  * internal transactions (mergeEntities, deleteEntity) keep better-sqlite3's
5
5
  * synchronous db.transaction() INSIDE the method (the async is only at the
6
6
  * interface boundary); no premature RETURNING/async-tx rewrite (that is Stage 3).
7
7
  */
8
- import type { EntityGraphStore } from '@kybernesis/brain-contracts';
8
+ import type { EntityRepository } from '@kybernesis/brain-contracts';
9
9
  /** Test/utility hook — clears the per-slug schema-init cache. */
10
10
  export declare function resetEntityGraphSchemaCache(slug?: string): void;
11
- export declare const sqliteEntityGraphStore: EntityGraphStore;
11
+ export declare const sqliteEntityGraphStore: EntityRepository;
12
12
  //# sourceMappingURL=entity-graph.d.ts.map
@@ -1,5 +1,5 @@
1
1
  /**
2
- * EntityGraphStore (SQLite impl). SQL moved verbatim from brain-core/entity-graph.ts
2
+ * EntityRepository (SQLite impl). SQL moved verbatim from brain-core/entity-graph.ts
3
3
  * during the storage-seam migration (G3) — behaviour held constant. The two
4
4
  * internal transactions (mergeEntities, deleteEntity) keep better-sqlite3's
5
5
  * synchronous db.transaction() INSIDE the method (the async is only at the
@@ -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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"}
@@ -1,8 +1,8 @@
1
1
  /**
2
- * FactStore (SQLite impl). SQL moved verbatim from brain-core/fact-store.ts
2
+ * FactRepository (SQLite impl). SQL moved verbatim from brain-core/fact-store.ts
3
3
  * during the storage-seam migration (G1) — behaviour held constant.
4
4
  * Facts physically live in timeline.db (same file as timeline_events).
5
5
  */
6
- import type { FactStore } from '@kybernesis/brain-contracts';
7
- export declare const sqliteFactStore: FactStore;
6
+ import type { FactRepository } from '@kybernesis/brain-contracts';
7
+ export declare const sqliteFactStore: FactRepository;
8
8
  //# sourceMappingURL=fact-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fact-store.d.ts","sourceRoot":"","sources":["../src/fact-store.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAqC,SAAS,EAAE,MAAM,6BAA6B,CAAC;AA8FhG,eAAO,MAAM,eAAe,EAAE,SAgM7B,CAAC"}
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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * FactStore (SQLite impl). SQL moved verbatim from brain-core/fact-store.ts
2
+ * FactRepository (SQLite impl). SQL moved verbatim from brain-core/fact-store.ts
3
3
  * during the storage-seam migration (G1) — behaviour held constant.
4
4
  * Facts physically live in timeline.db (same file as timeline_events).
5
5
  */
@@ -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":"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"}
package/dist/index.d.ts CHANGED
@@ -3,6 +3,7 @@ export { createSqliteStorageProvider } from './provider.js';
3
3
  export { sanitizeFtsQuery } from './fts-sanitizer.js';
4
4
  export { resetTimelineSchemaCache } from './timeline.js';
5
5
  export { resetEntityGraphSchemaCache } from './entity-graph.js';
6
+ export { ensureSleepSchema, recoverStaleSleepRuns, resetSleepSchemaCache } from './sleep-store.js';
6
7
  import type { TenantContext } from '@kybernesis/brain-contracts';
7
8
  export type DbKind = 'timeline' | 'entityGraph' | 'vectors' | 'sleep' | 'idempotency';
8
9
  /**
@@ -1 +1 @@
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;AAChE,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;AAWhE,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
@@ -5,6 +5,17 @@ export { createSqliteStorageProvider } from './provider.js';
5
5
  export { sanitizeFtsQuery } from './fts-sanitizer.js';
6
6
  export { resetTimelineSchemaCache } from './timeline.js';
7
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 DB handles are allowed) so brain-core/src stays
10
+ // handle-free.
11
+ //
12
+ // F2 / circular-import guard: this re-export forms a cycle (index → sleep-store →
13
+ // index, since sleep-store imports `getDb` from here). It is eval-safe ONLY
14
+ // because `getDb` is a HOISTED function declaration never invoked at module-load.
15
+ // Do NOT convert `getDb` to a `const` arrow, and do NOT call it at top level in
16
+ // any module on this cycle — either would TDZ-throw on import
17
+ // ('Cannot access getDb before initialization').
18
+ export { ensureSleepSchema, recoverStaleSleepRuns, resetSleepSchemaCache } from './sleep-store.js';
8
19
  const pool = new Map();
9
20
  function resolveDbPath(t, kind) {
10
21
  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;AAEpC,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;AAKhE,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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"}
@@ -1 +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;AA6BrC,qDAAqD;AACrD,wBAAgB,oBAAoB,IAAI,IAAI,CAG3C;AA6BD,wBAAgB,2BAA2B,IAAI,eAAe,CAQ7D"}
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"}
package/dist/provider.js CHANGED
@@ -13,8 +13,11 @@ import { sqliteFactStore } from './fact-store.js';
13
13
  import { sqliteTimelineStore } from './timeline.js';
14
14
  import { sqliteEntityGraphStore } from './entity-graph.js';
15
15
  import { sqliteSleepStore } from './sleep-store.js';
16
+ import { sqliteSleepMaintenance } from './sleep-maintenance.js';
17
+ import { sqliteSearchQueries } from './search-queries.js';
18
+ import { sqliteFactRetrievalQueries } from './fact-retrieval-queries.js';
16
19
  // ─── Lazy vector store ────────────────────────────────────────────────────────
17
- // VectorStore is a first-class member of the bundle (decision #3 Option A), but
20
+ // VectorRepository is a first-class member of the bundle (decision #3 Option A), but
18
21
  // brain-storage-vec carries the sqlite-vec NATIVE binary. We load it lazily on
19
22
  // first vector use so it never costs apps anything at provider-creation time,
20
23
  // and brain-storage-sqlite keeps NO static dependency on sqlite-vec. If the
@@ -72,11 +75,19 @@ const lazyVectorStore = {
72
75
  };
73
76
  export function createSqliteStorageProvider() {
74
77
  return {
75
- timeline: sqliteTimelineStore,
76
- entities: sqliteEntityGraphStore,
77
- facts: sqliteFactStore,
78
- sleep: sqliteSleepStore,
79
- vectors: lazyVectorStore,
78
+ repositories: {
79
+ timeline: sqliteTimelineStore,
80
+ entities: sqliteEntityGraphStore,
81
+ facts: sqliteFactStore,
82
+ sleep: sqliteSleepStore,
83
+ vectors: lazyVectorStore,
84
+ },
85
+ // Business plane — populated per gate (U1 search, U2 fact-retrieval, U3 sleep).
86
+ domain: {
87
+ search: sqliteSearchQueries, // U1
88
+ factRetrieval: sqliteFactRetrievalQueries, // U2
89
+ sleep: sqliteSleepMaintenance, // U3b+
90
+ },
80
91
  };
81
92
  }
82
93
  //# sourceMappingURL=provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,iFAAiF;AACjF,gFAAgF;AAChF,+EAA+E;AAC/E,8EAA8E;AAC9E,4EAA4E;AAC5E,+EAA+E;AAC/E,kFAAkF;AAElF,IAAI,SAAS,GAAuB,IAAI,CAAC;AACzC,IAAI,aAAa,GAAG,KAAK,CAAC;AAE1B,KAAK,UAAU,YAAY;IACzB,IAAI,aAAa;QAAE,OAAO,SAAS,CAAC;IACpC,aAAa,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC;QAC1D,SAAS,GAAG,GAAG,CAAC,cAAc,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,oBAAoB;IAClC,SAAS,GAAG,IAAI,CAAC;IACjB,aAAa,GAAG,KAAK,CAAC;AACxB,CAAC;AAED,MAAM,eAAe,GAAgB;IACnC,KAAK,CAAC,SAAS,CAAC,CAAgB;QAC9B,MAAM,CAAC,GAAG,MAAM,YAAY,EAAE,CAAC;QAC/B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACpC,CAAC;IACD,KAAK,CAAC,SAAS,CAAC,CAAgB,EAAE,QAAgB;QAChD,MAAM,CAAC,GAAG,MAAM,YAAY,EAAE,CAAC;QAC/B,IAAI,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACrB,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAClC,CAAC;IACD,KAAK,CAAC,WAAW,CAAC,CAAgB,EAAE,KAAuB;QACzD,MAAM,CAAC,GAAG,MAAM,YAAY,EAAE,CAAC;QAC/B,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAC7E,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,CAAgB,EAAE,SAAmB,EAAE,KAAa;QAC/D,MAAM,CAAC,GAAG,MAAM,YAAY,EAAE,CAAC;QAC/B,IAAI,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;QAClB,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IACD,KAAK,CAAC,KAAK,CAAC,CAAgB;QAC1B,MAAM,CAAC,GAAG,MAAM,YAAY,EAAE,CAAC;QAC/B,IAAI,CAAC,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QAC9C,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;CACF,CAAC;AAEF,MAAM,UAAU,2BAA2B;IACzC,OAAO;QACL,QAAQ,EAAE,mBAAmB;QAC7B,QAAQ,EAAE,sBAAsB;QAChC,KAAK,EAAE,eAAe;QACtB,KAAK,EAAE,gBAAgB;QACvB,OAAO,EAAE,eAAe;KACzB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAQH,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,EAAE,0BAA0B,EAAE,MAAM,6BAA6B,CAAC;AAEzE,iFAAiF;AACjF,qFAAqF;AACrF,+EAA+E;AAC/E,8EAA8E;AAC9E,4EAA4E;AAC5E,+EAA+E;AAC/E,kFAAkF;AAElF,IAAI,SAAS,GAA4B,IAAI,CAAC;AAC9C,IAAI,aAAa,GAAG,KAAK,CAAC;AAE1B,KAAK,UAAU,YAAY;IACzB,IAAI,aAAa;QAAE,OAAO,SAAS,CAAC;IACpC,aAAa,GAAG,IAAI,CAAC;IACrB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC;QAC1D,SAAS,GAAG,GAAG,CAAC,cAAc,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,oBAAoB;IAClC,SAAS,GAAG,IAAI,CAAC;IACjB,aAAa,GAAG,KAAK,CAAC;AACxB,CAAC;AAED,MAAM,eAAe,GAAqB;IACxC,KAAK,CAAC,SAAS,CAAC,CAAgB;QAC9B,MAAM,CAAC,GAAG,MAAM,YAAY,EAAE,CAAC;QAC/B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACpC,CAAC;IACD,KAAK,CAAC,SAAS,CAAC,CAAgB,EAAE,QAAgB;QAChD,MAAM,CAAC,GAAG,MAAM,YAAY,EAAE,CAAC;QAC/B,IAAI,CAAC,CAAC;YAAE,OAAO,KAAK,CAAC;QACrB,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;IAClC,CAAC;IACD,KAAK,CAAC,WAAW,CAAC,CAAgB,EAAE,KAAuB;QACzD,MAAM,CAAC,GAAG,MAAM,YAAY,EAAE,CAAC;QAC/B,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAC7E,OAAO,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IACD,KAAK,CAAC,MAAM,CAAC,CAAgB,EAAE,SAAmB,EAAE,KAAa;QAC/D,MAAM,CAAC,GAAG,MAAM,YAAY,EAAE,CAAC;QAC/B,IAAI,CAAC,CAAC;YAAE,OAAO,EAAE,CAAC;QAClB,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IACD,KAAK,CAAC,KAAK,CAAC,CAAgB;QAC1B,MAAM,CAAC,GAAG,MAAM,YAAY,EAAE,CAAC;QAC/B,IAAI,CAAC,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;QAC9C,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;CACF,CAAC;AAEF,MAAM,UAAU,2BAA2B;IACzC,OAAO;QACL,YAAY,EAAE;YACZ,QAAQ,EAAE,mBAAmB;YAC7B,QAAQ,EAAE,sBAAsB;YAChC,KAAK,EAAE,eAAe;YACtB,KAAK,EAAE,gBAAgB;YACvB,OAAO,EAAE,eAAe;SACzB;QACD,gFAAgF;QAChF,MAAM,EAAE;YACN,MAAM,EAAE,mBAAmB,EAAE,KAAK;YAClC,aAAa,EAAE,0BAA0B,EAAE,KAAK;YAChD,KAAK,EAAE,sBAAsB,EAAE,OAAO;SAEvC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * SearchQueries (SQLite impl) — the hybrid-search candidate/factor SQL.
3
+ *
4
+ * Business plane (gate U1 of the 0.6.0 untangle). The SQL here moved VERBATIM
5
+ * from brain-core/hybrid-search.ts; behaviour is held constant. Only candidate
6
+ * generation + score-factor fetches live here — the scoring itself (RRF fusion,
7
+ * metadata weights, tier boosts, segment dedup) stays in brain-core.
8
+ *
9
+ * Each method is tolerant of a bad FTS token / missing column exactly as the
10
+ * original inline code was (try/catch → []), so parity holds.
11
+ */
12
+ import type { SearchQueries } from '@kybernesis/brain-contracts';
13
+ export declare const sqliteSearchQueries: SearchQueries;
14
+ //# sourceMappingURL=search-queries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-queries.d.ts","sourceRoot":"","sources":["../src/search-queries.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAEV,aAAa,EAId,MAAM,6BAA6B,CAAC;AAIrC,eAAO,MAAM,mBAAmB,EAAE,aA0EjC,CAAC"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * SearchQueries (SQLite impl) — the hybrid-search candidate/factor SQL.
3
+ *
4
+ * Business plane (gate U1 of the 0.6.0 untangle). The SQL here moved VERBATIM
5
+ * from brain-core/hybrid-search.ts; behaviour is held constant. Only candidate
6
+ * generation + score-factor fetches live here — the scoring itself (RRF fusion,
7
+ * metadata weights, tier boosts, segment dedup) stays in brain-core.
8
+ *
9
+ * Each method is tolerant of a bad FTS token / missing column exactly as the
10
+ * original inline code was (try/catch → []), so parity holds.
11
+ */
12
+ import { getDb } from './index.js';
13
+ import { sanitizeFtsQuery } from './fts-sanitizer.js';
14
+ export const sqliteSearchQueries = {
15
+ async temporalCandidates(t, term, limit) {
16
+ const db = getDb(t, 'timeline');
17
+ try {
18
+ const like = `%${term.toLowerCase()}%`;
19
+ return db.prepare(`
20
+ SELECT id, title, summary, source_path, timestamp, type
21
+ FROM timeline_events
22
+ WHERE LOWER(title) LIKE ? OR LOWER(summary) LIKE ?
23
+ ORDER BY timestamp DESC LIMIT ?
24
+ `).all(like, like, limit);
25
+ }
26
+ catch {
27
+ return []; // best-effort, matching the original inline behaviour
28
+ }
29
+ },
30
+ async metadataCandidates(t, query, limit) {
31
+ // Bug Fix #2: sanitize so hyphens / unicode / FTS5 reserved tokens don't throw.
32
+ const ftsQuery = sanitizeFtsQuery(query);
33
+ if (!ftsQuery)
34
+ return [];
35
+ const db = getDb(t, 'timeline');
36
+ try {
37
+ return db.prepare(`
38
+ SELECT t.id, t.source_path, t.title, t.summary, t.type, t.timestamp,
39
+ t.tier, t.priority, t.tags_json
40
+ FROM timeline_events t
41
+ JOIN timeline_fts fts ON t.id = fts.rowid
42
+ WHERE timeline_fts MATCH ? ORDER BY rank LIMIT ?
43
+ `).all(ftsQuery, limit);
44
+ }
45
+ catch {
46
+ return []; // FTS query failed (e.g. bad token) — candidates stays []
47
+ }
48
+ },
49
+ async entityAugmentedCandidates(t, query) {
50
+ const out = [];
51
+ try {
52
+ const db = getDb(t, 'timeline');
53
+ const entityDb = getDb(t, 'entityGraph');
54
+ const queryLower = query.toLowerCase();
55
+ const allEntities = entityDb.prepare('SELECT id, name FROM entities ORDER BY mention_count DESC LIMIT 100').all();
56
+ const matched = allEntities.filter(e => queryLower.includes(e.name.toLowerCase()) && e.name.length >= 3);
57
+ for (const ent of matched.slice(0, 3)) {
58
+ const mentions = entityDb.prepare('SELECT DISTINCT source_path FROM entity_mentions WHERE entity_id = ? ORDER BY timestamp DESC LIMIT 10').all(ent.id);
59
+ for (const m of mentions) {
60
+ const event = db.prepare('SELECT id, title, summary, source_path, timestamp, type FROM timeline_events WHERE source_path = ?').get(m.source_path);
61
+ if (event)
62
+ out.push(event);
63
+ }
64
+ }
65
+ }
66
+ catch (err) {
67
+ console.warn('[brain-storage-sqlite/search] entity augmentation failed', { err: String(err) });
68
+ }
69
+ return out;
70
+ },
71
+ async enrichByPath(t, sourcePath) {
72
+ const db = getDb(t, 'timeline');
73
+ try {
74
+ const row = db.prepare(`
75
+ SELECT tier, priority, tags_json, entities_json FROM timeline_events WHERE source_path = ?
76
+ `).get(sourcePath);
77
+ return row ?? null;
78
+ }
79
+ catch {
80
+ return null; // non-critical
81
+ }
82
+ },
83
+ };
84
+ //# sourceMappingURL=search-queries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-queries.js","sourceRoot":"","sources":["../src/search-queries.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * SleepMaintenance (SQLite impl) — the maintenance-engine policy encoded IN SQL.
3
+ *
4
+ * Business plane (gate U3 of the 0.6.0 untangle). Only statements whose business
5
+ * heuristic lives inside the SQL itself land here (policy UPDATEs, normalization
6
+ * GROUP BYs, multi-clause prune WHEREs, unprocessed-detection NOT EXISTS) —
7
+ * relocated VERBATIM from the brain-core sleep steps; behaviour held constant.
8
+ * The scoring/decision JS stays in the steps.
9
+ *
10
+ * Grows green per sub-gate (U3b decay; U3d consolidate; U3e entity-hygiene;
11
+ * U3f summarize/observe). See docs/specs/storage-untangle-0.6.0-progress.md.
12
+ */
13
+ import type { SleepMaintenance } from '@kybernesis/brain-contracts';
14
+ export declare const sqliteSleepMaintenance: SleepMaintenance;
15
+ //# sourceMappingURL=sleep-maintenance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sleep-maintenance.d.ts","sourceRoot":"","sources":["../src/sleep-maintenance.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACK,gBAAgB,EAGhC,MAAM,6BAA6B,CAAC;AAGrC,eAAO,MAAM,sBAAsB,EAAE,gBAmOpC,CAAC"}