@kybernesis/brain-storage-sqlite 0.5.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.
@@ -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;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
@@ -5,6 +5,9 @@ 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 getDb is allowed) so brain-core/src stays getDb-free.
10
+ export { ensureSleepSchema, recoverStaleSleepRuns, resetSleepSchemaCache } from './sleep-store.js';
8
11
  const pool = new Map();
9
12
  function resolveDbPath(t, kind) {
10
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;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":"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"}
@@ -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"}
@@ -0,0 +1,227 @@
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 { getDb } from './index.js';
14
+ export const sqliteSleepMaintenance = {
15
+ // ── decay: policy-bearing fact UPDATEs (U3b) ──
16
+ async expireTemporalFacts(t) {
17
+ const db = getDb(t, 'timeline');
18
+ const r = db.prepare(`
19
+ UPDATE facts SET is_latest = 0, updated_at = datetime('now')
20
+ WHERE expires_at IS NOT NULL
21
+ AND expires_at < datetime('now')
22
+ AND is_latest = 1
23
+ `).run();
24
+ return r.changes;
25
+ },
26
+ async lastFactConfidenceDecayAt(t) {
27
+ const db = getDb(t, 'timeline');
28
+ const row = db.prepare(`
29
+ SELECT MAX(updated_at) as last_decay FROM facts
30
+ WHERE updated_at IS NOT NULL AND confidence < 0.85
31
+ `).get();
32
+ return row?.last_decay ?? null;
33
+ },
34
+ async decayFactConfidence(t) {
35
+ const db = getDb(t, 'timeline');
36
+ const r = db.prepare(`
37
+ UPDATE facts
38
+ SET confidence = MAX(confidence * 0.95, 0.15),
39
+ updated_at = datetime('now')
40
+ WHERE source_type IN ('ai-extraction', 'chat')
41
+ AND created_at < datetime('now', '-90 days')
42
+ AND last_reinforced_at IS NULL
43
+ AND COALESCE(is_retracted, 0) = 0
44
+ AND confidence > 0.15
45
+ AND is_latest = 1
46
+ `).run();
47
+ return r.changes;
48
+ },
49
+ // ── consolidate: title-normalization grouping + merge (U3d; stays SQL) ──
50
+ async fetchConsolidationGroups(t, threshold, limit) {
51
+ const db = getDb(t, 'timeline');
52
+ // Normalization (strip `[channel] ` prefix + trailing `...`) is done IN SQL —
53
+ // decision 3: keep it SQL, relocated verbatim, parity-asserted. NOT JS.
54
+ return db.prepare(`
55
+ SELECT
56
+ TRIM(REPLACE(
57
+ CASE WHEN INSTR(title, '] ') > 0
58
+ THEN SUBSTR(title, INSTR(title, '] ') + 2)
59
+ ELSE title
60
+ END,
61
+ '...', ''
62
+ )) as normalized_title,
63
+ COUNT(*) as cnt,
64
+ GROUP_CONCAT(id) as ids,
65
+ MIN(timestamp) as first_ts,
66
+ MAX(timestamp) as last_ts
67
+ FROM timeline_events
68
+ WHERE (is_pinned IS NULL OR is_pinned = 0)
69
+ GROUP BY normalized_title
70
+ HAVING COUNT(*) >= ?
71
+ ORDER BY cnt DESC
72
+ LIMIT ?
73
+ `).all(threshold, limit);
74
+ },
75
+ async sumAccessCounts(t, ids) {
76
+ const db = getDb(t, 'timeline');
77
+ const placeholders = ids.map(() => '?').join(',');
78
+ const row = db.prepare(`
79
+ SELECT COALESCE(SUM(COALESCE(access_count, 0)), 0) as total
80
+ FROM timeline_events WHERE id IN (${placeholders})
81
+ `).get(...ids);
82
+ return row.total;
83
+ },
84
+ async consolidateInto(t, keepId, removeIds, addedAccess) {
85
+ const db = getDb(t, 'timeline');
86
+ const placeholders = removeIds.map(() => '?').join(',');
87
+ db.prepare(`
88
+ UPDATE timeline_events
89
+ SET access_count = COALESCE(access_count, 0) + ?,
90
+ last_accessed = datetime('now')
91
+ WHERE id = ?
92
+ `).run(addedAccess, keepId);
93
+ db.prepare(`
94
+ DELETE FROM timeline_events WHERE id IN (${placeholders})
95
+ `).run(...removeIds);
96
+ },
97
+ // ── entity-hygiene: policy filters (U3e) ──
98
+ async cleanOrphans(t) {
99
+ const db = getDb(t, 'entityGraph');
100
+ db.prepare(`
101
+ DELETE FROM entity_relations WHERE
102
+ source_id NOT IN (SELECT id FROM entities) OR
103
+ target_id NOT IN (SELECT id FROM entities)
104
+ `).run();
105
+ db.prepare(`
106
+ DELETE FROM entity_mentions WHERE
107
+ entity_id NOT IN (SELECT id FROM entities)
108
+ `).run();
109
+ },
110
+ async fetchAllEntities(t) {
111
+ const db = getDb(t, 'entityGraph');
112
+ return db.prepare('SELECT id, name, type, mention_count FROM entities').all();
113
+ },
114
+ async fetchSameNameGroups(t) {
115
+ const db = getDb(t, 'entityGraph');
116
+ return db.prepare(`
117
+ SELECT normalized_name,
118
+ GROUP_CONCAT(id ORDER BY type) as ids,
119
+ GROUP_CONCAT(type ORDER BY type) as types,
120
+ GROUP_CONCAT(name ORDER BY type) as names,
121
+ GROUP_CONCAT(mention_count ORDER BY type) as mention_counts
122
+ FROM entities
123
+ GROUP BY normalized_name
124
+ HAVING COUNT(DISTINCT type) > 1
125
+ `).all();
126
+ },
127
+ async fetchVariantEntities(t, limit) {
128
+ const db = getDb(t, 'entityGraph');
129
+ return db.prepare(`
130
+ SELECT id, name, normalized_name, type, mention_count
131
+ FROM entities ORDER BY mention_count DESC, normalized_name ASC, type ASC LIMIT ?
132
+ `).all(limit);
133
+ },
134
+ async fetchEntityProfile(t, entityId) {
135
+ const db = getDb(t, 'entityGraph');
136
+ const mentions = db.prepare(`
137
+ SELECT context FROM entity_mentions
138
+ WHERE entity_id = ? AND context IS NOT NULL AND context != ''
139
+ ORDER BY timestamp DESC, context ASC LIMIT 5
140
+ `).all(entityId);
141
+ const related = db.prepare(`
142
+ SELECT DISTINCT e.name FROM entity_relations r
143
+ JOIN entities e ON (
144
+ (r.source_id = ? AND e.id = r.target_id) OR
145
+ (r.target_id = ? AND e.id = r.source_id)
146
+ )
147
+ ORDER BY r.strength DESC, e.name ASC LIMIT 10
148
+ `).all(entityId, entityId);
149
+ return {
150
+ contexts: mentions.map(m => m.context),
151
+ related: related.map(r => r.name),
152
+ };
153
+ },
154
+ async fetchPruneCandidates(t, pruneDate) {
155
+ const db = getDb(t, 'entityGraph');
156
+ // Bug B11B: ALL 5 filters must apply (omitting any over-prunes the graph).
157
+ return db.prepare(`
158
+ SELECT e.id, e.name, e.type, e.mention_count, e.last_seen, e.is_pinned
159
+ FROM entities e
160
+ WHERE e.mention_count <= 1
161
+ AND e.type = 'topic'
162
+ AND e.last_seen < ?
163
+ AND (e.is_pinned IS NULL OR e.is_pinned = 0)
164
+ AND NOT EXISTS (SELECT 1 FROM entity_relations WHERE source_id = e.id OR target_id = e.id)
165
+ `).all(pruneDate);
166
+ },
167
+ async fetchProfileCandidates(t, limit) {
168
+ const db = getDb(t, 'entityGraph');
169
+ // SQL verbatim from KAD entity-hygiene phase 5 — 3 columns, no mention_count.
170
+ return db.prepare(`
171
+ SELECT id, name, type FROM entities
172
+ WHERE mention_count >= 3
173
+ ORDER BY mention_count DESC, name ASC, type ASC LIMIT ?
174
+ `).all(limit);
175
+ },
176
+ // ── summarize + observe + reasoning: detection/heuristic SQL (U3f) ──
177
+ async fetchStaleSummaryIds(t, limit) {
178
+ const db = getDb(t, 'timeline');
179
+ const rows = db.prepare(`
180
+ SELECT id FROM timeline_events
181
+ WHERE (summary IS NULL
182
+ OR length(summary) < 50
183
+ OR summary LIKE '{%'
184
+ OR summary LIKE '# %'
185
+ OR length(summary) > 500)
186
+ AND (last_enriched IS NULL OR last_enriched < datetime('now', '-3 days'))
187
+ ORDER BY priority DESC
188
+ LIMIT ?
189
+ `).all(limit);
190
+ return rows.map(r => r.id);
191
+ },
192
+ async fetchUnprocessedConversations(t, limit) {
193
+ const db = getDb(t, 'timeline');
194
+ return db.prepare(`
195
+ SELECT te.id, te.source_path, te.title, te.summary, te.timestamp,
196
+ te.entities_json, te.topics_json
197
+ FROM timeline_events te
198
+ WHERE te.type = 'conversation'
199
+ AND te.summary IS NOT NULL
200
+ AND LENGTH(te.summary) > 50
201
+ AND NOT EXISTS (
202
+ SELECT 1 FROM timeline_events obs
203
+ WHERE obs.source_path LIKE 'observation://' || REPLACE(te.source_path, 'channel://', '') || '/%'
204
+ )
205
+ AND NOT EXISTS (
206
+ SELECT 1 FROM facts f
207
+ WHERE f.source_path LIKE 'fact://' || REPLACE(te.source_path, 'channel://', '') || '/%'
208
+ )
209
+ AND NOT EXISTS (
210
+ SELECT 1 FROM facts f
211
+ WHERE f.source_path LIKE 'realtime://' || REPLACE(te.source_path, 'channel://', '') || '/%'
212
+ )
213
+ ORDER BY te.timestamp DESC
214
+ LIMIT ?
215
+ `).all(limit);
216
+ },
217
+ async fetchEntityCooccurrence(t, entityId, limit) {
218
+ const db = getDb(t, 'entityGraph');
219
+ return db.prepare(`
220
+ SELECT e2.name, er.strength FROM entity_relations er
221
+ JOIN entities e2 ON e2.id = CASE WHEN er.source_id = ? THEN er.target_id ELSE er.source_id END
222
+ WHERE (er.source_id = ? OR er.target_id = ?) AND er.strength > 1
223
+ ORDER BY er.strength DESC LIMIT ?
224
+ `).all(entityId, entityId, entityId, limit);
225
+ },
226
+ };
227
+ //# sourceMappingURL=sleep-maintenance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sleep-maintenance.js","sourceRoot":"","sources":["../src/sleep-maintenance.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,29 @@
1
1
  /**
2
- * SleepStore (SQLite impl) — minimal 0.3.0 surface.
2
+ * SleepRepository (SQLite impl) — CRUD/persistence for the maintenance engine.
3
3
  *
4
- * The sleep maintenance engine is DEFERRED to 0.4.0 (it stays on direct
5
- * getDb/ensureSleepSchema in brain-core/sleep/**). The only sleep-table access a
6
- * migrated 0.3.0 module needs is ops.ts reading memory_edges, so that is all this
7
- * store implements. The read is tolerant of the table not existing yet (no sleep
8
- * run has happened) — matching ops.ts's original try/catch behaviour.
4
+ * The cohesive sleep store (decision 1): each method opens whichever DB kind it
5
+ * needs. As of U3a it carries the run lifecycle (sleep_runs), checkpoints,
6
+ * telemetry, schema bootstrap, and the existing memory_edges read. The
7
+ * per-step CRUD (tier/decay/link/queue/event reads+writes) lands at U3b–U3f.
8
+ *
9
+ * SQL moved VERBATIM from brain-core/sleep/{db,index,utils/checkpoint}.ts;
10
+ * behaviour held constant.
11
+ */
12
+ import type Database from 'better-sqlite3';
13
+ import type { TenantContext, SleepRepository } from '@kybernesis/brain-contracts';
14
+ /**
15
+ * Ensure the sleep schema exists; returns the pooled sleep handle.
16
+ *
17
+ * This is the PUBLIC re-export surface (brain-core/sleep/db.ts re-exports it),
18
+ * kept handle-returning for 0.5.0 API parity (U4 decision A: frozen public API).
19
+ * The sleep ENGINE no longer consumes the handle — 0.6.0 routes every step
20
+ * through the seam — so a future release can deprecate the handle return. Lives
21
+ * HERE (storage package) so brain-core/src stays free of raw getDb.
9
22
  */
10
- import type { SleepStore } from '@kybernesis/brain-contracts';
11
- export declare const sqliteSleepStore: SleepStore;
23
+ export declare function ensureSleepSchema(t: TenantContext): Database.Database;
24
+ /** Reap >2h-old 'running' rows to 'failed'; returns rows changed. (public re-export) */
25
+ export declare function recoverStaleSleepRuns(t: TenantContext): number;
26
+ /** Reset the per-tenant schema-init cache. (public re-export; test/utility) */
27
+ export declare function resetSleepSchemaCache(slug?: string): void;
28
+ export declare const sqliteSleepStore: SleepRepository;
12
29
  //# sourceMappingURL=sleep-store.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sleep-store.d.ts","sourceRoot":"","sources":["../src/sleep-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAiB,UAAU,EAAiB,MAAM,6BAA6B,CAAC;AAG5F,eAAO,MAAM,gBAAgB,EAAE,UAiB9B,CAAC"}
1
+ {"version":3,"file":"sleep-store.d.ts","sourceRoot":"","sources":["../src/sleep-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EACV,aAAa,EAAE,eAAe,EAI/B,MAAM,6BAA6B,CAAC;AAmFrC;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,aAAa,GAAG,QAAQ,CAAC,QAAQ,CAOrE;AAED,wFAAwF;AACxF,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAW9D;AAED,+EAA+E;AAC/E,wBAAgB,qBAAqB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAGzD;AAED,eAAO,MAAM,gBAAgB,EAAE,eAkR9B,CAAC"}
@@ -1,14 +1,188 @@
1
1
  /**
2
- * SleepStore (SQLite impl) — minimal 0.3.0 surface.
2
+ * SleepRepository (SQLite impl) — CRUD/persistence for the maintenance engine.
3
3
  *
4
- * The sleep maintenance engine is DEFERRED to 0.4.0 (it stays on direct
5
- * getDb/ensureSleepSchema in brain-core/sleep/**). The only sleep-table access a
6
- * migrated 0.3.0 module needs is ops.ts reading memory_edges, so that is all this
7
- * store implements. The read is tolerant of the table not existing yet (no sleep
8
- * run has happened) — matching ops.ts's original try/catch behaviour.
4
+ * The cohesive sleep store (decision 1): each method opens whichever DB kind it
5
+ * needs. As of U3a it carries the run lifecycle (sleep_runs), checkpoints,
6
+ * telemetry, schema bootstrap, and the existing memory_edges read. The
7
+ * per-step CRUD (tier/decay/link/queue/event reads+writes) lands at U3b–U3f.
8
+ *
9
+ * SQL moved VERBATIM from brain-core/sleep/{db,index,utils/checkpoint}.ts;
10
+ * behaviour held constant.
9
11
  */
10
12
  import { getDb } from './index.js';
13
+ /** Sleep schema DDL — identical to KAD (port-faithful). */
14
+ const SLEEP_SCHEMA = `
15
+ CREATE TABLE IF NOT EXISTS sleep_runs (
16
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
17
+ started_at TEXT NOT NULL,
18
+ completed_at TEXT,
19
+ status TEXT NOT NULL DEFAULT 'running' CHECK(status IN ('running', 'completed', 'failed', 'paused')),
20
+ checkpoint_step TEXT,
21
+ checkpoint_data TEXT,
22
+ metrics TEXT,
23
+ error_message TEXT,
24
+ created_at TEXT DEFAULT (datetime('now'))
25
+ );
26
+
27
+ CREATE INDEX IF NOT EXISTS idx_sleep_runs_status ON sleep_runs(status);
28
+ CREATE INDEX IF NOT EXISTS idx_sleep_runs_started ON sleep_runs(started_at DESC);
29
+
30
+ CREATE TABLE IF NOT EXISTS maintenance_queue (
31
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
32
+ item_type TEXT NOT NULL CHECK(item_type IN ('timeline', 'entity', 'file')),
33
+ item_id TEXT NOT NULL,
34
+ task TEXT NOT NULL,
35
+ priority INTEGER DEFAULT 0,
36
+ created_at TEXT NOT NULL DEFAULT (datetime('now')),
37
+ processed_at TEXT,
38
+ error_message TEXT,
39
+ UNIQUE(item_type, item_id, task)
40
+ );
41
+
42
+ CREATE INDEX IF NOT EXISTS idx_queue_pending ON maintenance_queue(processed_at) WHERE processed_at IS NULL;
43
+ CREATE INDEX IF NOT EXISTS idx_queue_priority ON maintenance_queue(priority DESC);
44
+
45
+ CREATE TABLE IF NOT EXISTS memory_edges (
46
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
47
+ from_path TEXT NOT NULL,
48
+ to_path TEXT NOT NULL,
49
+ relation TEXT NOT NULL DEFAULT 'related',
50
+ weight REAL DEFAULT 1.0,
51
+ confidence REAL DEFAULT 0.5,
52
+ shared_tags TEXT,
53
+ rationale TEXT,
54
+ method TEXT DEFAULT 'sleep-agent',
55
+ created_at TEXT NOT NULL DEFAULT (datetime('now')),
56
+ last_verified TEXT,
57
+ UNIQUE(from_path, to_path)
58
+ );
59
+
60
+ CREATE INDEX IF NOT EXISTS idx_edges_from ON memory_edges(from_path);
61
+ CREATE INDEX IF NOT EXISTS idx_edges_to ON memory_edges(to_path);
62
+ CREATE INDEX IF NOT EXISTS idx_edges_confidence ON memory_edges(confidence DESC);
63
+ CREATE INDEX IF NOT EXISTS idx_edges_relation ON memory_edges(relation);
64
+
65
+ CREATE TABLE IF NOT EXISTS sleep_telemetry (
66
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
67
+ run_id INTEGER REFERENCES sleep_runs(id),
68
+ step TEXT NOT NULL,
69
+ event_type TEXT NOT NULL,
70
+ count INTEGER DEFAULT 0,
71
+ duration_ms INTEGER,
72
+ metadata TEXT,
73
+ created_at TEXT DEFAULT (datetime('now'))
74
+ );
75
+
76
+ CREATE INDEX IF NOT EXISTS idx_telemetry_run ON sleep_telemetry(run_id);
77
+ CREATE INDEX IF NOT EXISTS idx_telemetry_step ON sleep_telemetry(step);
78
+
79
+ CREATE TABLE IF NOT EXISTS tier_transitions (
80
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
81
+ item_id INTEGER NOT NULL,
82
+ from_tier TEXT,
83
+ to_tier TEXT NOT NULL,
84
+ reason TEXT,
85
+ created_at TEXT NOT NULL DEFAULT (datetime('now'))
86
+ );
87
+
88
+ CREATE INDEX IF NOT EXISTS idx_tier_transitions_item ON tier_transitions(item_id);
89
+ `;
90
+ const initialized = new Set();
91
+ /**
92
+ * Ensure the sleep schema exists; returns the pooled sleep handle.
93
+ *
94
+ * This is the PUBLIC re-export surface (brain-core/sleep/db.ts re-exports it),
95
+ * kept handle-returning for 0.5.0 API parity (U4 decision A: frozen public API).
96
+ * The sleep ENGINE no longer consumes the handle — 0.6.0 routes every step
97
+ * through the seam — so a future release can deprecate the handle return. Lives
98
+ * HERE (storage package) so brain-core/src stays free of raw getDb.
99
+ */
100
+ export function ensureSleepSchema(t) {
101
+ const db = getDb(t, 'sleep');
102
+ if (!initialized.has(t.slug)) {
103
+ db.exec(SLEEP_SCHEMA);
104
+ initialized.add(t.slug);
105
+ }
106
+ return db;
107
+ }
108
+ /** Reap >2h-old 'running' rows to 'failed'; returns rows changed. (public re-export) */
109
+ export function recoverStaleSleepRuns(t) {
110
+ const db = ensureSleepSchema(t);
111
+ const r = db.prepare(`
112
+ UPDATE sleep_runs
113
+ SET status = 'failed',
114
+ completed_at = datetime('now'),
115
+ error_message = COALESCE(error_message, 'aborted by daemon restart')
116
+ WHERE status = 'running'
117
+ AND started_at < datetime('now', '-2 hours')
118
+ `).run();
119
+ return r.changes;
120
+ }
121
+ /** Reset the per-tenant schema-init cache. (public re-export; test/utility) */
122
+ export function resetSleepSchemaCache(slug) {
123
+ if (slug)
124
+ initialized.delete(slug);
125
+ else
126
+ initialized.clear();
127
+ }
11
128
  export const sqliteSleepStore = {
129
+ // ── run lifecycle + schema (U3a) ──
130
+ async ensureSchema(t) {
131
+ ensureSleepSchema(t);
132
+ },
133
+ async findRunningRun(t) {
134
+ const db = getDb(t, 'sleep');
135
+ const row = db.prepare(`SELECT id FROM sleep_runs WHERE status = 'running' LIMIT 1`).get();
136
+ return row ? row.id : null;
137
+ },
138
+ async startRun(t) {
139
+ const db = getDb(t, 'sleep');
140
+ const r = db.prepare(`INSERT INTO sleep_runs (started_at, status) VALUES (datetime('now'), 'running')`).run();
141
+ return r.lastInsertRowid;
142
+ },
143
+ async completeRun(t, runId, metricsJson) {
144
+ const db = getDb(t, 'sleep');
145
+ db.prepare(`
146
+ UPDATE sleep_runs
147
+ SET status = 'completed', completed_at = datetime('now'), metrics = ?
148
+ WHERE id = ?
149
+ `).run(metricsJson, runId);
150
+ },
151
+ async failRun(t, runId, errorMessage) {
152
+ const db = getDb(t, 'sleep');
153
+ db.prepare(`
154
+ UPDATE sleep_runs
155
+ SET status = 'failed', completed_at = datetime('now'), error_message = ?
156
+ WHERE id = ?
157
+ `).run(errorMessage, runId);
158
+ },
159
+ async recordTelemetry(t, runId, step, eventType, count, durationMs, metadataJson) {
160
+ try {
161
+ const db = getDb(t, 'sleep');
162
+ db.prepare(`
163
+ INSERT INTO sleep_telemetry (run_id, step, event_type, count, duration_ms, metadata)
164
+ VALUES (?, ?, ?, ?, ?, ?)
165
+ `).run(runId, step, eventType, count, durationMs, metadataJson);
166
+ }
167
+ catch { /* telemetry must never break the cycle */ }
168
+ },
169
+ async saveCheckpoint(t, runId, step, dataJson) {
170
+ const db = getDb(t, 'sleep');
171
+ db.prepare(`
172
+ UPDATE sleep_runs SET checkpoint_step = ?, checkpoint_data = ? WHERE id = ?
173
+ `).run(step, dataJson, runId);
174
+ },
175
+ async getLastCheckpoint(t, runId) {
176
+ const db = getDb(t, 'sleep');
177
+ const row = db.prepare(`
178
+ SELECT checkpoint_step, checkpoint_data FROM sleep_runs WHERE id = ?
179
+ `).get(runId);
180
+ return row ?? null;
181
+ },
182
+ async recoverStaleRuns(t) {
183
+ return recoverStaleSleepRuns(t);
184
+ },
185
+ // ── memory_edges (existing 0.5.0 surface) ──
12
186
  async getRelatedEdges(t, sourcePath, limit) {
13
187
  let db;
14
188
  try {
@@ -31,5 +205,173 @@ export const sqliteSleepStore = {
31
205
  return [];
32
206
  }
33
207
  },
208
+ // ── timeline_events: decay + tag (U3b) ──
209
+ async fetchDecayCandidates(t, limit) {
210
+ const db = getDb(t, 'timeline');
211
+ return db.prepare(`
212
+ SELECT id, title, source_path, timestamp, priority, decay_score, access_count, is_pinned
213
+ FROM timeline_events
214
+ WHERE tier != 'archive' OR tier IS NULL
215
+ ORDER BY priority DESC
216
+ LIMIT ?
217
+ `).all(limit);
218
+ },
219
+ async updateEventDecay(t, itemId, decayScore, priority) {
220
+ const db = getDb(t, 'timeline');
221
+ db.prepare(`UPDATE timeline_events SET decay_score = ?, priority = ? WHERE id = ?`).run(decayScore, priority, itemId);
222
+ },
223
+ async fetchTagCandidates(t, staleDate, limit) {
224
+ const db = getDb(t, 'timeline');
225
+ return db.prepare(`
226
+ SELECT id, source_path, title, summary, tags_json, topics_json
227
+ FROM timeline_events
228
+ WHERE (last_enriched IS NULL OR last_enriched < ?)
229
+ OR (tags_json IS NULL OR tags_json = '[]')
230
+ ORDER BY priority DESC
231
+ LIMIT ?
232
+ `).all(staleDate, limit);
233
+ },
234
+ async updateEventTags(t, itemId, tagsJson) {
235
+ const db = getDb(t, 'timeline');
236
+ db.prepare(`UPDATE timeline_events SET tags_json = ?, last_enriched = datetime('now') WHERE id = ?`).run(tagsJson, itemId);
237
+ },
238
+ // ── tier + link (U3c; cross-kind) ──
239
+ async getEdgeStats(t, sourcePath) {
240
+ const db = getDb(t, 'sleep');
241
+ return db.prepare(`
242
+ SELECT COUNT(*) as count, COALESCE(SUM(confidence), 0) as total_confidence
243
+ FROM memory_edges
244
+ WHERE from_path = ? OR to_path = ?
245
+ `).get(sourcePath, sourcePath);
246
+ },
247
+ async edgeExists(t, pathA, pathB) {
248
+ const db = getDb(t, 'sleep');
249
+ const row = db.prepare(`
250
+ SELECT id FROM memory_edges
251
+ WHERE (from_path = ? AND to_path = ?) OR (from_path = ? AND to_path = ?)
252
+ `).get(pathA, pathB, pathB, pathA);
253
+ return row !== undefined;
254
+ },
255
+ async insertMemoryEdge(t, edge) {
256
+ const db = getDb(t, 'sleep');
257
+ db.prepare(`
258
+ INSERT INTO memory_edges
259
+ (from_path, to_path, relation, confidence, shared_tags, rationale, method, created_at, last_verified)
260
+ VALUES (?, ?, ?, ?, ?, ?, 'sleep-agent', datetime('now'), datetime('now'))
261
+ `).run(edge.from_path, edge.to_path, edge.relation, edge.confidence, edge.shared_tags, edge.rationale);
262
+ },
263
+ async listEdgesByRelation(t, relation, limit) {
264
+ const db = getDb(t, 'sleep');
265
+ return db.prepare(`
266
+ SELECT id, from_path, to_path FROM memory_edges
267
+ WHERE relation = ?
268
+ LIMIT ?
269
+ `).all(relation, limit);
270
+ },
271
+ async updateEdgeRelation(t, edgeId, relation) {
272
+ const db = getDb(t, 'sleep');
273
+ db.prepare('UPDATE memory_edges SET relation = ? WHERE id = ?').run(relation, edgeId);
274
+ },
275
+ async enqueueResummarize(t, itemId, priority) {
276
+ const db = getDb(t, 'sleep');
277
+ db.prepare(`
278
+ INSERT OR REPLACE INTO maintenance_queue
279
+ (item_type, item_id, task, priority, created_at)
280
+ VALUES ('timeline', ?, 'resummarize', ?, datetime('now'))
281
+ `).run(itemId.toString(), priority);
282
+ },
283
+ async recordTierTransition(t, itemId, fromTier, toTier, reason) {
284
+ try {
285
+ const db = getDb(t, 'sleep');
286
+ db.prepare(`
287
+ INSERT INTO tier_transitions (item_id, from_tier, to_tier, reason)
288
+ VALUES (?, ?, ?, ?)
289
+ `).run(itemId, fromTier, toTier, reason);
290
+ }
291
+ catch { /* non-critical */ }
292
+ },
293
+ async fetchTierCandidates(t, limit) {
294
+ const db = getDb(t, 'timeline');
295
+ return db.prepare(`
296
+ SELECT id, source_path, priority, decay_score, tier, last_accessed, access_count, is_pinned
297
+ FROM timeline_events
298
+ LIMIT ?
299
+ `).all(limit);
300
+ },
301
+ async updateEventTier(t, itemId, tier) {
302
+ const db = getDb(t, 'timeline');
303
+ db.prepare(`UPDATE timeline_events SET tier = ? WHERE id = ?`).run(tier, itemId);
304
+ },
305
+ async fetchLinkCandidates(t, limit) {
306
+ const db = getDb(t, 'timeline');
307
+ return db.prepare(`
308
+ SELECT id, source_path, title, tier, tags_json, topics_json, entities_json
309
+ FROM timeline_events
310
+ WHERE (tags_json IS NOT NULL AND tags_json != '[]')
311
+ OR (topics_json IS NOT NULL AND topics_json != '[]')
312
+ ORDER BY priority DESC
313
+ LIMIT ?
314
+ `).all(limit);
315
+ },
316
+ // ── summarize + observe + reasoning (U3f) ──
317
+ async fetchResummarizeQueue(t, limit) {
318
+ const db = getDb(t, 'sleep');
319
+ return db.prepare(`
320
+ SELECT id as queue_id, item_id
321
+ FROM maintenance_queue
322
+ WHERE task = 'resummarize' AND processed_at IS NULL
323
+ ORDER BY priority DESC
324
+ LIMIT ?
325
+ `).all(limit);
326
+ },
327
+ async markQueueProcessed(t, queueId) {
328
+ const db = getDb(t, 'sleep');
329
+ db.prepare(`UPDATE maintenance_queue SET processed_at = datetime('now') WHERE id = ?`).run(queueId);
330
+ },
331
+ async markQueueError(t, queueId, error) {
332
+ const db = getDb(t, 'sleep');
333
+ db.prepare(`
334
+ UPDATE maintenance_queue
335
+ SET processed_at = datetime('now'), error_message = ?
336
+ WHERE id = ?
337
+ `).run(error, queueId);
338
+ },
339
+ async getEventForSummary(t, itemId) {
340
+ const db = getDb(t, 'timeline');
341
+ const row = db.prepare(`
342
+ SELECT id, source_path, title, tier, summary, tags_json, entities_json
343
+ FROM timeline_events WHERE id = ?
344
+ `).get(itemId);
345
+ return row ?? null;
346
+ },
347
+ async updateEventSummary(t, itemId, summary) {
348
+ const db = getDb(t, 'timeline');
349
+ db.prepare(`
350
+ UPDATE timeline_events
351
+ SET summary = ?, last_enriched = datetime('now')
352
+ WHERE id = ?
353
+ `).run(summary, itemId);
354
+ },
355
+ async getSummaryEdges(t, sourcePath, limit) {
356
+ const db = getDb(t, 'sleep');
357
+ return db.prepare(`
358
+ SELECT
359
+ CASE WHEN from_path = ? THEN to_path ELSE from_path END as related_path,
360
+ shared_tags
361
+ FROM memory_edges
362
+ WHERE from_path = ? OR to_path = ?
363
+ LIMIT ?
364
+ `).all(sourcePath, sourcePath, sourcePath, limit);
365
+ },
366
+ async findEntityIdByName(t, nameLower) {
367
+ const db = getDb(t, 'entityGraph');
368
+ const row = db.prepare('SELECT id FROM entities WHERE LOWER(name) = ? OR LOWER(normalized_name) = ? LIMIT 1').get(nameLower, nameLower);
369
+ return row ? row.id : null;
370
+ },
371
+ async fetchEntityStats(t, entityId) {
372
+ const db = getDb(t, 'entityGraph');
373
+ const row = db.prepare('SELECT * FROM entities WHERE id = ?').get(entityId);
374
+ return row ? { mention_count: row.mention_count, first_seen: row.first_seen, last_seen: row.last_seen } : null;
375
+ },
34
376
  };
35
377
  //# sourceMappingURL=sleep-store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sleep-store.js","sourceRoot":"","sources":["../src/sleep-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,MAAM,CAAC,MAAM,gBAAgB,GAAe;IAC1C,KAAK,CAAC,eAAe,CAAC,CAAgB,EAAE,UAAkB,EAAE,KAAa;QACvE,IAAI,EAAE,CAAC;QACP,IAAI,CAAC;YAAC,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,EAAE,CAAC;QAAC,CAAC;QACpD,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,OAAO,CAAC;;;;;;OAMjB,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,CAAoB,CAAC;QACvE,CAAC;QAAC,MAAM,CAAC;YACP,uEAAuE;YACvE,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"sleep-store.js","sourceRoot":"","sources":["../src/sleep-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,2DAA2D;AAC3D,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2EpB,CAAC;AAEF,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;AAEtC;;;;;;;;GAQG;AACH,MAAM,UAAU,iBAAiB,CAAC,CAAgB;IAChD,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC7B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACtB,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,qBAAqB,CAAC,CAAgB;IACpD,MAAM,EAAE,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC;;;;;;;GAOpB,CAAC,CAAC,GAAG,EAAE,CAAC;IACT,OAAO,CAAC,CAAC,OAAO,CAAC;AACnB,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,qBAAqB,CAAC,IAAa;IACjD,IAAI,IAAI;QAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;;QAC9B,WAAW,CAAC,KAAK,EAAE,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAoB;IAC/C,qCAAqC;IACrC,KAAK,CAAC,YAAY,CAAC,CAAgB;QACjC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,CAAgB;QACnC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC7B,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,4DAA4D,CAAC,CAAC,GAAG,EAAgC,CAAC;QACzH,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,CAAgB;QAC7B,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC7B,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,iFAAiF,CAAC,CAAC,GAAG,EAAE,CAAC;QAC9G,OAAO,CAAC,CAAC,eAAyB,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,CAAgB,EAAE,KAAa,EAAE,WAAmB;QACpE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC7B,EAAE,CAAC,OAAO,CAAC;;;;KAIV,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,CAAgB,EAAE,KAAa,EAAE,YAAoB;QACjE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC7B,EAAE,CAAC,OAAO,CAAC;;;;KAIV,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,CAAgB,EAAE,KAAa,EAAE,IAAY,EAAE,SAAiB,EAAE,KAAa,EAAE,UAAkB,EAAE,YAAoB;QAC7I,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAC7B,EAAE,CAAC,OAAO,CAAC;;;OAGV,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QAClE,CAAC;QAAC,MAAM,CAAC,CAAC,0CAA0C,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,CAAgB,EAAE,KAAa,EAAE,IAAY,EAAE,QAAgB;QAClF,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC7B,EAAE,CAAC,OAAO,CAAC;;KAEV,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,CAAgB,EAAE,KAAa;QACrD,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC7B,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC;;KAEtB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAmC,CAAC;QAChD,OAAO,GAAG,IAAI,IAAI,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,CAAgB;QACrC,OAAO,qBAAqB,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,8CAA8C;IAC9C,KAAK,CAAC,eAAe,CAAC,CAAgB,EAAE,UAAkB,EAAE,KAAa;QACvE,IAAI,EAAE,CAAC;QACP,IAAI,CAAC;YAAC,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,EAAE,CAAC;QAAC,CAAC;QACpD,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,OAAO,CAAC;;;;;;OAMjB,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,CAAoB,CAAC;QACvE,CAAC;QAAC,MAAM,CAAC;YACP,uEAAuE;YACvE,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,KAAK,CAAC,oBAAoB,CAAC,CAAgB,EAAE,KAAa;QACxD,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAChC,OAAO,EAAE,CAAC,OAAO,CAAC;;;;;;KAMjB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAwB,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,CAAgB,EAAE,MAAc,EAAE,UAAkB,EAAE,QAAgB;QAC3F,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAChC,EAAE,CAAC,OAAO,CAAC,uEAAuE,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACxH,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,CAAgB,EAAE,SAAiB,EAAE,KAAa;QACzE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAChC,OAAO,EAAE,CAAC,OAAO,CAAC;;;;;;;KAOjB,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAsB,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,CAAgB,EAAE,MAAc,EAAE,QAAgB;QACtE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAChC,EAAE,CAAC,OAAO,CAAC,wFAAwF,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC7H,CAAC;IAED,sCAAsC;IACtC,KAAK,CAAC,YAAY,CAAC,CAAgB,EAAE,UAAkB;QACrD,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC7B,OAAO,EAAE,CAAC,OAAO,CAAC;;;;KAIjB,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAmB,CAAC;IACnD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,CAAgB,EAAE,KAAa,EAAE,KAAa;QAC7D,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC7B,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC;;;KAGtB,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACnC,OAAO,GAAG,KAAK,SAAS,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,CAAgB,EAAE,IAAqB;QAC5D,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC7B,EAAE,CAAC,OAAO,CAAC;;;;KAIV,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACzG,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,CAAgB,EAAE,QAAgB,EAAE,KAAa;QACzE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC7B,OAAO,EAAE,CAAC,OAAO,CAAC;;;;KAIjB,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAoB,CAAC;IAC7C,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,CAAgB,EAAE,MAAc,EAAE,QAAgB;QACzE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC7B,EAAE,CAAC,OAAO,CAAC,mDAAmD,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACxF,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,CAAgB,EAAE,MAAc,EAAE,QAAgB;QACzE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC7B,EAAE,CAAC,OAAO,CAAC;;;;KAIV,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,CAAgB,EAAE,MAAc,EAAE,QAAuB,EAAE,MAAc,EAAE,MAAc;QAClH,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAC7B,EAAE,CAAC,OAAO,CAAC;;;OAGV,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,CAAgB,EAAE,KAAa;QACvD,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAChC,OAAO,EAAE,CAAC,OAAO,CAAC;;;;KAIjB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAuB,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,CAAgB,EAAE,MAAc,EAAE,IAAY;QAClE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAChC,EAAE,CAAC,OAAO,CAAC,kDAAkD,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACnF,CAAC;IAED,KAAK,CAAC,mBAAmB,CAAC,CAAgB,EAAE,KAAa;QACvD,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAChC,OAAO,EAAE,CAAC,OAAO,CAAC;;;;;;;KAOjB,CAAC,CAAC,GAAG,CAAC,KAAK,CAAuB,CAAC;IACtC,CAAC;IAED,8CAA8C;IAC9C,KAAK,CAAC,qBAAqB,CAAC,CAAgB,EAAE,KAAa;QACzD,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC7B,OAAO,EAAE,CAAC,OAAO,CAAC;;;;;;KAMjB,CAAC,CAAC,GAAG,CAAC,KAAK,CAA2B,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,CAAgB,EAAE,OAAe;QACxD,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC7B,EAAE,CAAC,OAAO,CAAC,0EAA0E,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACtG,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,CAAgB,EAAE,OAAe,EAAE,KAAa;QACnE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC7B,EAAE,CAAC,OAAO,CAAC;;;;KAIV,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,CAAgB,EAAE,MAAc;QACvD,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAChC,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC;;;KAGtB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAgC,CAAC;QAC9C,OAAO,GAAG,IAAI,IAAI,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,CAAgB,EAAE,MAAc,EAAE,OAAe;QACxE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;QAChC,EAAE,CAAC,OAAO,CAAC;;;;KAIV,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,CAAgB,EAAE,UAAkB,EAAE,KAAa;QACvE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC7B,OAAO,EAAE,CAAC,OAAO,CAAC;;;;;;;KAOjB,CAAC,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,KAAK,CAAqB,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,CAAgB,EAAE,SAAiB;QAC1D,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;QACnC,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CACpB,qFAAqF,CACtF,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAA+B,CAAC;QAC1D,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,CAAgB,EAAE,QAAgB;QACvD,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;QACnC,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC,GAAG,CAAC,QAAQ,CACI,CAAC;QAC/E,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,GAAG,CAAC,aAAa,EAAE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACjH,CAAC;CACF,CAAC"}
@@ -1,11 +1,11 @@
1
1
  /**
2
- * TimelineStore (SQLite impl). SQL moved verbatim from brain-core/timeline.ts
2
+ * TimelineRepository (SQLite impl). SQL moved verbatim from brain-core/timeline.ts
3
3
  * during the storage-seam migration (G2) — behaviour held constant.
4
4
  * ensureSchema creates timeline_events + timeline_fts + the facts TABLE (the
5
- * facts FTS index is owned by FactStore.ensureFactsTable).
5
+ * facts FTS index is owned by FactRepository.ensureFactsTable).
6
6
  */
7
- import type { TimelineStore } from '@kybernesis/brain-contracts';
7
+ import type { TimelineRepository } from '@kybernesis/brain-contracts';
8
8
  /** Test/utility hook — clears the per-slug schema-init cache. */
9
9
  export declare function resetTimelineSchemaCache(slug?: string): void;
10
- export declare const sqliteTimelineStore: TimelineStore;
10
+ export declare const sqliteTimelineStore: TimelineRepository;
11
11
  //# sourceMappingURL=timeline.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"timeline.d.ts","sourceRoot":"","sources":["../src/timeline.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAOV,aAAa,EACd,MAAM,6BAA6B,CAAC;AAwDrC,iEAAiE;AACjE,wBAAgB,wBAAwB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAG5D;AAuGD,eAAO,MAAM,mBAAmB,EAAE,aAiNjC,CAAC"}
1
+ {"version":3,"file":"timeline.d.ts","sourceRoot":"","sources":["../src/timeline.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAOV,kBAAkB,EACnB,MAAM,6BAA6B,CAAC;AAwDrC,iEAAiE;AACjE,wBAAgB,wBAAwB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAG5D;AAuGD,eAAO,MAAM,mBAAmB,EAAE,kBAiNjC,CAAC"}
package/dist/timeline.js CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
- * TimelineStore (SQLite impl). SQL moved verbatim from brain-core/timeline.ts
2
+ * TimelineRepository (SQLite impl). SQL moved verbatim from brain-core/timeline.ts
3
3
  * during the storage-seam migration (G2) — behaviour held constant.
4
4
  * ensureSchema creates timeline_events + timeline_fts + the facts TABLE (the
5
- * facts FTS index is owned by FactStore.ensureFactsTable).
5
+ * facts FTS index is owned by FactRepository.ensureFactsTable).
6
6
  */
7
7
  import { getDb } from './index.js';
8
8
  import { sanitizeFtsQuery } from './fts-sanitizer.js';
@@ -1 +1 @@
1
- {"version":3,"file":"timeline.js","sourceRoot":"","sources":["../src/timeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"timeline.js","sourceRoot":"","sources":["../src/timeline.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kybernesis/brain-storage-sqlite",
3
- "version": "0.5.0",
3
+ "version": "0.6.0",
4
4
  "description": "better-sqlite3 StructuredStore implementation for brain-core",
5
5
  "license": "MIT",
6
6
  "author": "David Cruwys (AppyDave)",
@@ -27,10 +27,10 @@
27
27
  "README.md"
28
28
  ],
29
29
  "dependencies": {
30
- "@kybernesis/brain-contracts": "0.5.0"
30
+ "@kybernesis/brain-contracts": "0.6.0"
31
31
  },
32
32
  "optionalDependencies": {
33
- "@kybernesis/brain-storage-vec": "0.5.0"
33
+ "@kybernesis/brain-storage-vec": "0.6.0"
34
34
  },
35
35
  "peerDependencies": {
36
36
  "better-sqlite3": ">=9.0.0"
@@ -38,7 +38,7 @@
38
38
  "devDependencies": {
39
39
  "@types/better-sqlite3": "^7.6.0",
40
40
  "better-sqlite3": "^12.0.0",
41
- "@kybernesis/brain-testkit": "0.5.0"
41
+ "@kybernesis/brain-testkit": "0.6.0"
42
42
  },
43
43
  "publishConfig": {
44
44
  "access": "public"