matryoshka-rlm 0.2.38 → 0.2.39
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.
|
@@ -2,10 +2,13 @@
|
|
|
2
2
|
* SessionDB - In-memory SQLite database for session state
|
|
3
3
|
*
|
|
4
4
|
* Provides:
|
|
5
|
-
* -
|
|
5
|
+
* - FTS4 full-text search for document lines
|
|
6
6
|
* - Handle storage for result sets
|
|
7
7
|
* - Checkpoint persistence for session resume
|
|
8
8
|
* - Symbol storage for tree-sitter extracted symbols
|
|
9
|
+
*
|
|
10
|
+
* Uses sql.js (WASM-based SQLite, zero native dependencies) instead of
|
|
11
|
+
* better-sqlite3 to avoid the deprecated prebuild-install dependency.
|
|
9
12
|
*/
|
|
10
13
|
import type { Symbol, SymbolKind } from "../treesitter/types.js";
|
|
11
14
|
export interface DocumentLine {
|
|
@@ -41,28 +44,39 @@ export declare class SessionDB {
|
|
|
41
44
|
private lastLoadStatus;
|
|
42
45
|
/** Tracks usage count per slug base for collision disambiguation */
|
|
43
46
|
private slugCounts;
|
|
47
|
+
private bm25Lines;
|
|
48
|
+
private bm25Index;
|
|
44
49
|
constructor();
|
|
45
50
|
private initSchema;
|
|
46
51
|
/**
|
|
47
52
|
* Check if database is open
|
|
48
53
|
*/
|
|
49
54
|
isOpen(): boolean;
|
|
55
|
+
/** Number of cached prepared statements (for tests / observability). */
|
|
56
|
+
preparedStatementCount(): number;
|
|
50
57
|
/**
|
|
51
58
|
* Get list of tables in database
|
|
52
59
|
*/
|
|
53
60
|
getTables(): string[];
|
|
54
61
|
/**
|
|
55
|
-
* Check if
|
|
62
|
+
* Check if the FTS virtual table exists.
|
|
63
|
+
*
|
|
64
|
+
* Note: under sql.js the table is FTS4, not FTS5 (sql.js doesn't ship FTS5).
|
|
65
|
+
* The name is kept for backwards-compatibility with existing callers.
|
|
56
66
|
*/
|
|
67
|
+
hasFTSTable(): boolean;
|
|
68
|
+
/** @deprecated Use hasFTSTable() — kept for backwards compatibility. */
|
|
57
69
|
hasFTS5(): boolean;
|
|
58
70
|
/**
|
|
59
|
-
* Load document content into the database
|
|
71
|
+
* Load document content into the database.
|
|
72
|
+
*
|
|
73
|
+
* FTS4 external-content tables need a manual index rebuild after the
|
|
74
|
+
* content table is modified, unlike FTS5 triggers. We run the rebuild
|
|
75
|
+
* inside the same atomic transaction so readers never see a stale index.
|
|
60
76
|
*/
|
|
61
77
|
loadDocument(content: string): number;
|
|
62
78
|
/**
|
|
63
79
|
* Truncation metadata from the most recent loadDocument() call.
|
|
64
|
-
* Callers can use this to warn the user when a downstream query
|
|
65
|
-
* may be operating on incomplete data.
|
|
66
80
|
*/
|
|
67
81
|
getLastLoadStatus(): LoadStatus;
|
|
68
82
|
/**
|
|
@@ -74,50 +88,36 @@ export declare class SessionDB {
|
|
|
74
88
|
*/
|
|
75
89
|
getLineCount(): number;
|
|
76
90
|
/**
|
|
77
|
-
* Search document using
|
|
91
|
+
* Search document using FTS (sanitizes user input)
|
|
78
92
|
*/
|
|
79
93
|
search(query: string): DocumentLine[];
|
|
80
94
|
/**
|
|
81
|
-
* Search with a raw
|
|
95
|
+
* Search with a raw FTS query (for trusted internal callers only)
|
|
82
96
|
* WARNING: Do not pass user input directly to this method
|
|
83
97
|
*/
|
|
84
98
|
searchRaw(query: string): DocumentLine[];
|
|
85
99
|
/**
|
|
86
|
-
* Search with
|
|
100
|
+
* Search with BM25 relevance ranking.
|
|
101
|
+
*
|
|
102
|
+
* sql.js bundles FTS3/4 but not FTS5, and FTS4's matchinfo() doesn't give
|
|
103
|
+
* us a real ranker out of the box. We score in JS using the BM25 index
|
|
104
|
+
* that's lazily built from the line cache populated by loadDocument().
|
|
87
105
|
*/
|
|
88
106
|
searchByRelevance(query: string): DocumentLine[];
|
|
89
107
|
/**
|
|
90
108
|
* Generate a unique handle name for a slug.
|
|
91
|
-
*
|
|
92
|
-
* Increments the per-slug counter and checks the candidate name against
|
|
93
|
-
* existing handles in SQLite. If a cross-slug collision is detected
|
|
94
|
-
* (e.g. slug "grep_error" count=2 produces "$grep_error_2" which was
|
|
95
|
-
* already taken by slug "grep_error_2" count=1), keeps incrementing
|
|
96
|
-
* until a free name is found.
|
|
97
109
|
*/
|
|
98
110
|
private nextUniqueHandle;
|
|
99
111
|
/**
|
|
100
112
|
* Create a handle for storing data array.
|
|
101
|
-
*
|
|
102
|
-
* @param data The array payload to store.
|
|
103
|
-
* @param command Optional Nucleus command string used to derive a
|
|
104
|
-
* descriptive handle name (e.g. `(grep "ERROR")` → `$grep_error`).
|
|
105
|
-
* Falls back to `$res`, `$res_2`, … when omitted.
|
|
106
113
|
*/
|
|
107
114
|
createHandle(data: unknown[], command?: string): string;
|
|
108
115
|
/**
|
|
109
116
|
* Create a memo handle for storing arbitrary context.
|
|
110
|
-
* Uses $memo prefix and "memo" type to distinguish from query result handles.
|
|
111
|
-
*
|
|
112
|
-
* @param data The array payload to store.
|
|
113
|
-
* @param label Optional label used to derive a descriptive handle name
|
|
114
|
-
* (e.g., "auth architecture" → `$memo_auth_architecture`).
|
|
115
|
-
* Falls back to `$memo`, `$memo_2`, … when omitted.
|
|
116
117
|
*/
|
|
117
118
|
createMemoHandle(data: unknown[], label?: string): string;
|
|
118
119
|
/**
|
|
119
120
|
* Delete all non-memo handles (query result handles)
|
|
120
|
-
* Preserves memo handles across document reloads
|
|
121
121
|
*/
|
|
122
122
|
clearQueryHandles(): void;
|
|
123
123
|
/**
|
|
@@ -125,7 +125,7 @@ export declare class SessionDB {
|
|
|
125
125
|
*/
|
|
126
126
|
getHandleMetadata(handle: string): HandleMetadata | null;
|
|
127
127
|
/**
|
|
128
|
-
* Get a slice of data stored in a handle
|
|
128
|
+
* Get a slice of data stored in a handle
|
|
129
129
|
*/
|
|
130
130
|
getHandleDataSlice(handle: string, limit: number, offset?: number): unknown[];
|
|
131
131
|
/**
|
|
@@ -142,15 +142,6 @@ export declare class SessionDB {
|
|
|
142
142
|
handleCount(): number;
|
|
143
143
|
/**
|
|
144
144
|
* Get the total byte size of a handle's stored JSON rows.
|
|
145
|
-
*
|
|
146
|
-
* Sums `length(data)` over the handle_data rows in a single SQL query,
|
|
147
|
-
* so callers can estimate token costs without re-serializing the whole
|
|
148
|
-
* array on the JS side. The data is already JSON-stringified in SQLite
|
|
149
|
-
* (see `createHandle`), so this is the authoritative serialized size
|
|
150
|
-
* minus the JSON array brackets and commas that would wrap it — close
|
|
151
|
-
* enough for a token-cost estimate.
|
|
152
|
-
*
|
|
153
|
-
* Returns 0 for unknown handles.
|
|
154
145
|
*/
|
|
155
146
|
getHandleDataByteSize(handle: string): number;
|
|
156
147
|
/**
|
|
@@ -166,7 +157,7 @@ export declare class SessionDB {
|
|
|
166
157
|
*/
|
|
167
158
|
saveCheckpoint(turn: number, bindings: Map<string, string>): void;
|
|
168
159
|
/**
|
|
169
|
-
* Get a checkpoint
|
|
160
|
+
* Get a checkpoint timestamp
|
|
170
161
|
*/
|
|
171
162
|
getCheckpointTimestamp(turn: number): number | null;
|
|
172
163
|
getCheckpoint(turn: number): Map<string, string> | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-db.d.ts","sourceRoot":"","sources":["../../src/persistence/session-db.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"session-db.d.ts","sourceRoot":"","sources":["../../src/persistence/session-db.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,12 +2,135 @@
|
|
|
2
2
|
* SessionDB - In-memory SQLite database for session state
|
|
3
3
|
*
|
|
4
4
|
* Provides:
|
|
5
|
-
* -
|
|
5
|
+
* - FTS4 full-text search for document lines
|
|
6
6
|
* - Handle storage for result sets
|
|
7
7
|
* - Checkpoint persistence for session resume
|
|
8
8
|
* - Symbol storage for tree-sitter extracted symbols
|
|
9
|
+
*
|
|
10
|
+
* Uses sql.js (WASM-based SQLite, zero native dependencies) instead of
|
|
11
|
+
* better-sqlite3 to avoid the deprecated prebuild-install dependency.
|
|
12
|
+
*/
|
|
13
|
+
import initSqlJs from "sql.js";
|
|
14
|
+
import { buildBM25Index, searchBM25 } from "../logic/bm25.js";
|
|
15
|
+
/**
|
|
16
|
+
* Wraps a sql.js prepared statement so it exposes the same .all(), .get(),
|
|
17
|
+
* .run() API as better-sqlite3. A single PreparedStmt is cached per SQL
|
|
18
|
+
* string by DbWrapper and reused across calls — bind() resets the statement
|
|
19
|
+
* so this is safe.
|
|
20
|
+
*/
|
|
21
|
+
class PreparedStmt {
|
|
22
|
+
stmt;
|
|
23
|
+
constructor(stmt) {
|
|
24
|
+
this.stmt = stmt;
|
|
25
|
+
}
|
|
26
|
+
all(...params) {
|
|
27
|
+
this.stmt.bind(params.length > 0 ? params : undefined);
|
|
28
|
+
const results = [];
|
|
29
|
+
while (this.stmt.step()) {
|
|
30
|
+
results.push(this.stmt.getAsObject());
|
|
31
|
+
}
|
|
32
|
+
return results;
|
|
33
|
+
}
|
|
34
|
+
get(...params) {
|
|
35
|
+
this.stmt.bind(params.length > 0 ? params : undefined);
|
|
36
|
+
return this.stmt.step() ? this.stmt.getAsObject() : undefined;
|
|
37
|
+
}
|
|
38
|
+
run(...params) {
|
|
39
|
+
this.stmt.run(params.length > 0 ? params : undefined);
|
|
40
|
+
}
|
|
41
|
+
free() {
|
|
42
|
+
this.stmt.free();
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Wraps a sql.js Database so it exposes the same .prepare(), .exec(),
|
|
47
|
+
* .run(), .pragma(), .transaction(), .close() API as better-sqlite3.
|
|
48
|
+
*
|
|
49
|
+
* Prepared statements are cached by SQL string so repeated queries reuse
|
|
50
|
+
* the same WASM Statement — otherwise sql.js leaks memory because every
|
|
51
|
+
* prepare() allocates a Statement that's only freed by db.close().
|
|
9
52
|
*/
|
|
10
|
-
|
|
53
|
+
class DbWrapper {
|
|
54
|
+
db;
|
|
55
|
+
_open;
|
|
56
|
+
stmtCache = new Map();
|
|
57
|
+
constructor() {
|
|
58
|
+
this.db = new SQL.Database();
|
|
59
|
+
this._open = true;
|
|
60
|
+
}
|
|
61
|
+
prepare(sql) {
|
|
62
|
+
const cached = this.stmtCache.get(sql);
|
|
63
|
+
if (cached)
|
|
64
|
+
return cached;
|
|
65
|
+
const stmt = new PreparedStmt(this.db.prepare(sql));
|
|
66
|
+
this.stmtCache.set(sql, stmt);
|
|
67
|
+
return stmt;
|
|
68
|
+
}
|
|
69
|
+
/** Number of cached prepared statements (for tests / observability). */
|
|
70
|
+
preparedStatementCount() {
|
|
71
|
+
return this.stmtCache.size;
|
|
72
|
+
}
|
|
73
|
+
/** Execute one or more SQL statements, ignoring any returned rows. */
|
|
74
|
+
exec(sql) {
|
|
75
|
+
this.db.exec(sql);
|
|
76
|
+
}
|
|
77
|
+
/** Execute a single SQL statement, ignoring any returned rows. */
|
|
78
|
+
run(sql) {
|
|
79
|
+
this.db.run(sql);
|
|
80
|
+
}
|
|
81
|
+
/** Return the rowid of the last INSERT (convenience wrapper). */
|
|
82
|
+
getLastInsertRowid() {
|
|
83
|
+
const rows = this.db.exec("SELECT last_insert_rowid()");
|
|
84
|
+
return rows[0]?.values[0]?.[0] ?? 0;
|
|
85
|
+
}
|
|
86
|
+
/** Set a PRAGMA. */
|
|
87
|
+
pragma(pragmaSql) {
|
|
88
|
+
this.db.run(`PRAGMA ${pragmaSql}`);
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Wrap a function so it executes inside a BEGIN / COMMIT / ROLLBACK
|
|
92
|
+
* transaction — identical semantics to better-sqlite3's db.transaction().
|
|
93
|
+
*
|
|
94
|
+
* If ROLLBACK itself throws (e.g. the connection was closed mid-tx), we
|
|
95
|
+
* preserve the original error from fn() as the .cause of the wrapper
|
|
96
|
+
* error so the root cause is never silently lost.
|
|
97
|
+
*/
|
|
98
|
+
transaction(fn) {
|
|
99
|
+
return ((...args) => {
|
|
100
|
+
this.db.run("BEGIN");
|
|
101
|
+
try {
|
|
102
|
+
fn(...args);
|
|
103
|
+
this.db.run("COMMIT");
|
|
104
|
+
}
|
|
105
|
+
catch (e) {
|
|
106
|
+
try {
|
|
107
|
+
this.db.run("ROLLBACK");
|
|
108
|
+
}
|
|
109
|
+
catch (rollbackErr) {
|
|
110
|
+
throw new Error(`Transaction failed and ROLLBACK also failed: ${rollbackErr instanceof Error ? rollbackErr.message : String(rollbackErr)}`, { cause: e });
|
|
111
|
+
}
|
|
112
|
+
throw e;
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
close() {
|
|
117
|
+
if (this._open) {
|
|
118
|
+
for (const stmt of this.stmtCache.values()) {
|
|
119
|
+
try {
|
|
120
|
+
stmt.free();
|
|
121
|
+
}
|
|
122
|
+
catch { /* ignore — db.close() frees anyway */ }
|
|
123
|
+
}
|
|
124
|
+
this.stmtCache.clear();
|
|
125
|
+
this.db.close();
|
|
126
|
+
this._open = false;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
// ---------------------------------------------------------------------------
|
|
131
|
+
// Module-level sql.js initialisation (top-level await – ESM only, Node ≥20).
|
|
132
|
+
// ---------------------------------------------------------------------------
|
|
133
|
+
const SQL = await initSqlJs();
|
|
11
134
|
/**
|
|
12
135
|
* Derive a short descriptive slug from a Nucleus command string.
|
|
13
136
|
*
|
|
@@ -54,47 +177,40 @@ export function commandToSlug(command) {
|
|
|
54
177
|
}
|
|
55
178
|
return slug || "res";
|
|
56
179
|
}
|
|
180
|
+
// ---------------------------------------------------------------------------
|
|
181
|
+
// SessionDB
|
|
182
|
+
// ---------------------------------------------------------------------------
|
|
57
183
|
export class SessionDB {
|
|
58
184
|
db;
|
|
59
185
|
lastLoadStatus = { truncated: false, storedLines: 0 };
|
|
60
186
|
/** Tracks usage count per slug base for collision disambiguation */
|
|
61
187
|
slugCounts = new Map();
|
|
188
|
+
// BM25 index over the currently loaded document, lazily built on the
|
|
189
|
+
// first relevance-ranked search and invalidated whenever the document is
|
|
190
|
+
// replaced. sql.js bundles FTS3/4 but not FTS5's bm25 ranker, so we
|
|
191
|
+
// compute scoring in JS.
|
|
192
|
+
bm25Lines = null;
|
|
193
|
+
bm25Index = null;
|
|
62
194
|
constructor() {
|
|
63
|
-
|
|
64
|
-
this.db = new Database(":memory:");
|
|
195
|
+
this.db = new DbWrapper();
|
|
65
196
|
this.db.pragma("foreign_keys = ON");
|
|
66
197
|
this.initSchema();
|
|
67
198
|
}
|
|
68
199
|
initSchema() {
|
|
69
200
|
if (!this.db)
|
|
70
201
|
return;
|
|
71
|
-
// Document lines table with FTS5
|
|
202
|
+
// Document lines table with FTS4 (sql.js bundles FTS3/4 but not FTS5)
|
|
72
203
|
this.db.exec(`
|
|
73
204
|
CREATE TABLE IF NOT EXISTS document_lines (
|
|
74
205
|
lineNum INTEGER PRIMARY KEY,
|
|
75
206
|
content TEXT NOT NULL
|
|
76
207
|
);
|
|
77
208
|
|
|
78
|
-
CREATE VIRTUAL TABLE IF NOT EXISTS document_lines_fts USING
|
|
209
|
+
CREATE VIRTUAL TABLE IF NOT EXISTS document_lines_fts USING fts4(
|
|
79
210
|
content,
|
|
80
|
-
content='document_lines'
|
|
81
|
-
content_rowid='lineNum'
|
|
211
|
+
content='document_lines'
|
|
82
212
|
);
|
|
83
213
|
|
|
84
|
-
-- Triggers to keep FTS in sync
|
|
85
|
-
CREATE TRIGGER IF NOT EXISTS document_lines_ai AFTER INSERT ON document_lines BEGIN
|
|
86
|
-
INSERT INTO document_lines_fts(rowid, content) VALUES (new.lineNum, new.content);
|
|
87
|
-
END;
|
|
88
|
-
|
|
89
|
-
CREATE TRIGGER IF NOT EXISTS document_lines_ad AFTER DELETE ON document_lines BEGIN
|
|
90
|
-
INSERT INTO document_lines_fts(document_lines_fts, rowid, content) VALUES('delete', old.lineNum, old.content);
|
|
91
|
-
END;
|
|
92
|
-
|
|
93
|
-
CREATE TRIGGER IF NOT EXISTS document_lines_au AFTER UPDATE ON document_lines BEGIN
|
|
94
|
-
INSERT INTO document_lines_fts(document_lines_fts, rowid, content) VALUES('delete', old.lineNum, old.content);
|
|
95
|
-
INSERT INTO document_lines_fts(rowid, content) VALUES (new.lineNum, new.content);
|
|
96
|
-
END;
|
|
97
|
-
|
|
98
214
|
-- Handles registry
|
|
99
215
|
CREATE TABLE IF NOT EXISTS handles (
|
|
100
216
|
handle TEXT PRIMARY KEY,
|
|
@@ -144,6 +260,10 @@ export class SessionDB {
|
|
|
144
260
|
isOpen() {
|
|
145
261
|
return this.db !== null;
|
|
146
262
|
}
|
|
263
|
+
/** Number of cached prepared statements (for tests / observability). */
|
|
264
|
+
preparedStatementCount() {
|
|
265
|
+
return this.db?.preparedStatementCount() ?? 0;
|
|
266
|
+
}
|
|
147
267
|
/**
|
|
148
268
|
* Get list of tables in database
|
|
149
269
|
*/
|
|
@@ -159,9 +279,12 @@ export class SessionDB {
|
|
|
159
279
|
return rows.map((r) => r.name);
|
|
160
280
|
}
|
|
161
281
|
/**
|
|
162
|
-
* Check if
|
|
282
|
+
* Check if the FTS virtual table exists.
|
|
283
|
+
*
|
|
284
|
+
* Note: under sql.js the table is FTS4, not FTS5 (sql.js doesn't ship FTS5).
|
|
285
|
+
* The name is kept for backwards-compatibility with existing callers.
|
|
163
286
|
*/
|
|
164
|
-
|
|
287
|
+
hasFTSTable() {
|
|
165
288
|
if (!this.db)
|
|
166
289
|
return false;
|
|
167
290
|
const stmt = this.db.prepare(`
|
|
@@ -171,20 +294,24 @@ export class SessionDB {
|
|
|
171
294
|
const row = stmt.get();
|
|
172
295
|
return row !== undefined;
|
|
173
296
|
}
|
|
297
|
+
/** @deprecated Use hasFTSTable() — kept for backwards compatibility. */
|
|
298
|
+
hasFTS5() {
|
|
299
|
+
return this.hasFTSTable();
|
|
300
|
+
}
|
|
174
301
|
/**
|
|
175
|
-
* Load document content into the database
|
|
302
|
+
* Load document content into the database.
|
|
303
|
+
*
|
|
304
|
+
* FTS4 external-content tables need a manual index rebuild after the
|
|
305
|
+
* content table is modified, unlike FTS5 triggers. We run the rebuild
|
|
306
|
+
* inside the same atomic transaction so readers never see a stale index.
|
|
176
307
|
*/
|
|
177
308
|
loadDocument(content) {
|
|
178
309
|
if (!this.db) {
|
|
179
310
|
this.lastLoadStatus = { truncated: false, storedLines: 0 };
|
|
180
311
|
return 0;
|
|
181
312
|
}
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
this.db.exec("DELETE FROM document_lines");
|
|
185
|
-
this.lastLoadStatus = { truncated: false, storedLines: 0 };
|
|
186
|
-
return 0;
|
|
187
|
-
}
|
|
313
|
+
this.bm25Lines = null;
|
|
314
|
+
this.bm25Index = null;
|
|
188
315
|
const originalLength = content.length;
|
|
189
316
|
let truncated = false;
|
|
190
317
|
let reason;
|
|
@@ -195,9 +322,13 @@ export class SessionDB {
|
|
|
195
322
|
truncated = true;
|
|
196
323
|
reason = `content size ${originalLength} exceeded MAX_CONTENT_SIZE (${MAX_CONTENT_SIZE} bytes)`;
|
|
197
324
|
}
|
|
198
|
-
//
|
|
199
|
-
|
|
200
|
-
|
|
325
|
+
// Handle empty document
|
|
326
|
+
if (!content) {
|
|
327
|
+
this.db.exec("DELETE FROM document_lines");
|
|
328
|
+
this.db.exec("DELETE FROM document_lines_fts");
|
|
329
|
+
this.lastLoadStatus = { truncated: false, storedLines: 0 };
|
|
330
|
+
return 0;
|
|
331
|
+
}
|
|
201
332
|
const MAX_LINES = 500_000;
|
|
202
333
|
const allLines = content.replace(/\r\n/g, "\n").replace(/\r/g, "\n").split("\n", MAX_LINES + 1);
|
|
203
334
|
let lines = allLines;
|
|
@@ -207,14 +338,20 @@ export class SessionDB {
|
|
|
207
338
|
reason = `line count exceeded MAX_LINES (${MAX_LINES})`;
|
|
208
339
|
}
|
|
209
340
|
const insert = this.db.prepare("INSERT INTO document_lines (lineNum, content) VALUES (?, ?)");
|
|
210
|
-
// Wrap
|
|
341
|
+
// Wrap content replacement + FTS rebuild in one atomic transaction.
|
|
342
|
+
// FTS4 external-content tables need a manual rebuild via the special
|
|
343
|
+
// 'rebuild' command after the content table is modified.
|
|
211
344
|
const replaceAll = this.db.transaction((lines) => {
|
|
212
345
|
this.db.exec("DELETE FROM document_lines");
|
|
213
346
|
for (let i = 0; i < lines.length; i++) {
|
|
214
347
|
insert.run(i + 1, lines[i]);
|
|
215
348
|
}
|
|
349
|
+
// Rebuild FTS index from the content table
|
|
350
|
+
this.db.exec("DELETE FROM document_lines_fts");
|
|
351
|
+
this.db.exec("INSERT INTO document_lines_fts(document_lines_fts) VALUES('rebuild')");
|
|
216
352
|
});
|
|
217
353
|
replaceAll(lines);
|
|
354
|
+
this.bm25Lines = lines;
|
|
218
355
|
this.lastLoadStatus = {
|
|
219
356
|
truncated,
|
|
220
357
|
reason,
|
|
@@ -228,8 +365,6 @@ export class SessionDB {
|
|
|
228
365
|
}
|
|
229
366
|
/**
|
|
230
367
|
* Truncation metadata from the most recent loadDocument() call.
|
|
231
|
-
* Callers can use this to warn the user when a downstream query
|
|
232
|
-
* may be operating on incomplete data.
|
|
233
368
|
*/
|
|
234
369
|
getLastLoadStatus() {
|
|
235
370
|
return this.lastLoadStatus;
|
|
@@ -268,7 +403,7 @@ export class SessionDB {
|
|
|
268
403
|
return row?.count ?? 0;
|
|
269
404
|
}
|
|
270
405
|
/**
|
|
271
|
-
* Search document using
|
|
406
|
+
* Search document using FTS (sanitizes user input)
|
|
272
407
|
*/
|
|
273
408
|
search(query) {
|
|
274
409
|
if (!this.db)
|
|
@@ -276,15 +411,13 @@ export class SessionDB {
|
|
|
276
411
|
const MAX_QUERY_LENGTH = 10_000;
|
|
277
412
|
if (query.length > MAX_QUERY_LENGTH)
|
|
278
413
|
query = query.slice(0, MAX_QUERY_LENGTH);
|
|
279
|
-
// Sanitize FTS5 special characters to prevent query injection
|
|
280
|
-
// Strips: quotes, wildcards, grouping, column selectors, boolean ops, prefix tokens
|
|
281
414
|
const sanitized = query.replace(/['"*()\-|{}:^~\[\]+@/\\]/g, " ").replace(/\b(AND|OR|NOT|NEAR)\b/gi, " ").trim();
|
|
282
415
|
if (!sanitized)
|
|
283
416
|
return [];
|
|
284
417
|
return this.searchRaw(sanitized);
|
|
285
418
|
}
|
|
286
419
|
/**
|
|
287
|
-
* Search with a raw
|
|
420
|
+
* Search with a raw FTS query (for trusted internal callers only)
|
|
288
421
|
* WARNING: Do not pass user input directly to this method
|
|
289
422
|
*/
|
|
290
423
|
searchRaw(query) {
|
|
@@ -293,7 +426,6 @@ export class SessionDB {
|
|
|
293
426
|
if (!query.trim())
|
|
294
427
|
return [];
|
|
295
428
|
const MAX_SEARCH_RESULTS = 100_000;
|
|
296
|
-
// Use FTS5 MATCH query
|
|
297
429
|
const stmt = this.db.prepare(`
|
|
298
430
|
SELECT d.lineNum, d.content
|
|
299
431
|
FROM document_lines d
|
|
@@ -306,43 +438,33 @@ export class SessionDB {
|
|
|
306
438
|
return stmt.all(query, MAX_SEARCH_RESULTS);
|
|
307
439
|
}
|
|
308
440
|
catch (err) {
|
|
309
|
-
console.error("[SessionDB]
|
|
441
|
+
console.error("[SessionDB] FTS query failed:", err instanceof Error ? err.message : String(err));
|
|
310
442
|
return [];
|
|
311
443
|
}
|
|
312
444
|
}
|
|
313
445
|
/**
|
|
314
|
-
* Search with
|
|
446
|
+
* Search with BM25 relevance ranking.
|
|
447
|
+
*
|
|
448
|
+
* sql.js bundles FTS3/4 but not FTS5, and FTS4's matchinfo() doesn't give
|
|
449
|
+
* us a real ranker out of the box. We score in JS using the BM25 index
|
|
450
|
+
* that's lazily built from the line cache populated by loadDocument().
|
|
315
451
|
*/
|
|
316
452
|
searchByRelevance(query) {
|
|
317
453
|
if (!this.db)
|
|
318
454
|
return [];
|
|
319
455
|
if (!query.trim())
|
|
320
456
|
return [];
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
JOIN document_lines d ON d.lineNum = f.rowid
|
|
326
|
-
WHERE document_lines_fts MATCH ?
|
|
327
|
-
ORDER BY bm25(document_lines_fts)
|
|
328
|
-
LIMIT ?
|
|
329
|
-
`);
|
|
330
|
-
try {
|
|
331
|
-
return stmt.all(query, MAX_SEARCH_RESULTS);
|
|
332
|
-
}
|
|
333
|
-
catch (err) {
|
|
334
|
-
console.error("[SessionDB] FTS5 relevance query failed:", err instanceof Error ? err.message : String(err));
|
|
335
|
-
return this.searchRaw(query);
|
|
457
|
+
if (!this.bm25Lines || this.bm25Lines.length === 0)
|
|
458
|
+
return [];
|
|
459
|
+
if (!this.bm25Index) {
|
|
460
|
+
this.bm25Index = buildBM25Index(this.bm25Lines);
|
|
336
461
|
}
|
|
462
|
+
const MAX_SEARCH_RESULTS = 100_000;
|
|
463
|
+
const ranked = searchBM25(query, this.bm25Lines, this.bm25Index, undefined, MAX_SEARCH_RESULTS);
|
|
464
|
+
return ranked.map((r) => ({ lineNum: r.lineNum, content: r.line }));
|
|
337
465
|
}
|
|
338
466
|
/**
|
|
339
467
|
* Generate a unique handle name for a slug.
|
|
340
|
-
*
|
|
341
|
-
* Increments the per-slug counter and checks the candidate name against
|
|
342
|
-
* existing handles in SQLite. If a cross-slug collision is detected
|
|
343
|
-
* (e.g. slug "grep_error" count=2 produces "$grep_error_2" which was
|
|
344
|
-
* already taken by slug "grep_error_2" count=1), keeps incrementing
|
|
345
|
-
* until a free name is found.
|
|
346
468
|
*/
|
|
347
469
|
nextUniqueHandle(slug) {
|
|
348
470
|
const checkExists = this.db.prepare("SELECT 1 FROM handles WHERE handle = ?");
|
|
@@ -355,16 +477,10 @@ export class SessionDB {
|
|
|
355
477
|
return candidate;
|
|
356
478
|
}
|
|
357
479
|
}
|
|
358
|
-
// Fallback: should never happen in practice
|
|
359
480
|
return `$${slug}_${Date.now()}`;
|
|
360
481
|
}
|
|
361
482
|
/**
|
|
362
483
|
* Create a handle for storing data array.
|
|
363
|
-
*
|
|
364
|
-
* @param data The array payload to store.
|
|
365
|
-
* @param command Optional Nucleus command string used to derive a
|
|
366
|
-
* descriptive handle name (e.g. `(grep "ERROR")` → `$grep_error`).
|
|
367
|
-
* Falls back to `$res`, `$res_2`, … when omitted.
|
|
368
484
|
*/
|
|
369
485
|
createHandle(data, command) {
|
|
370
486
|
if (!this.db)
|
|
@@ -376,7 +492,6 @@ export class SessionDB {
|
|
|
376
492
|
const slug = commandToSlug(command);
|
|
377
493
|
const handle = this.nextUniqueHandle(slug);
|
|
378
494
|
const now = Date.now();
|
|
379
|
-
// Insert handle metadata and data rows atomically in one transaction
|
|
380
495
|
const insertHandle = this.db.prepare(`
|
|
381
496
|
INSERT INTO handles (handle, type, count, created_at)
|
|
382
497
|
VALUES (?, ?, ?, ?)
|
|
@@ -391,7 +506,6 @@ export class SessionDB {
|
|
|
391
506
|
insertData.run(handle, i, JSON.stringify(items[i]));
|
|
392
507
|
}
|
|
393
508
|
catch {
|
|
394
|
-
// Skip non-serializable items (circular refs, BigInt, etc.)
|
|
395
509
|
insertData.run(handle, i, "null");
|
|
396
510
|
}
|
|
397
511
|
}
|
|
@@ -401,12 +515,6 @@ export class SessionDB {
|
|
|
401
515
|
}
|
|
402
516
|
/**
|
|
403
517
|
* Create a memo handle for storing arbitrary context.
|
|
404
|
-
* Uses $memo prefix and "memo" type to distinguish from query result handles.
|
|
405
|
-
*
|
|
406
|
-
* @param data The array payload to store.
|
|
407
|
-
* @param label Optional label used to derive a descriptive handle name
|
|
408
|
-
* (e.g., "auth architecture" → `$memo_auth_architecture`).
|
|
409
|
-
* Falls back to `$memo`, `$memo_2`, … when omitted.
|
|
410
518
|
*/
|
|
411
519
|
createMemoHandle(data, label) {
|
|
412
520
|
if (!this.db)
|
|
@@ -415,7 +523,6 @@ export class SessionDB {
|
|
|
415
523
|
if (data.length > MAX_HANDLE_ITEMS) {
|
|
416
524
|
data = data.slice(0, MAX_HANDLE_ITEMS);
|
|
417
525
|
}
|
|
418
|
-
// Derive slug from label, with "memo" prefix to stay in the memo namespace
|
|
419
526
|
let slug = "memo";
|
|
420
527
|
if (label) {
|
|
421
528
|
const labelSlug = label
|
|
@@ -452,7 +559,6 @@ export class SessionDB {
|
|
|
452
559
|
}
|
|
453
560
|
/**
|
|
454
561
|
* Delete all non-memo handles (query result handles)
|
|
455
|
-
* Preserves memo handles across document reloads
|
|
456
562
|
*/
|
|
457
563
|
clearQueryHandles() {
|
|
458
564
|
if (!this.db)
|
|
@@ -473,7 +579,7 @@ export class SessionDB {
|
|
|
473
579
|
return row ?? null;
|
|
474
580
|
}
|
|
475
581
|
/**
|
|
476
|
-
* Get a slice of data stored in a handle
|
|
582
|
+
* Get a slice of data stored in a handle
|
|
477
583
|
*/
|
|
478
584
|
getHandleDataSlice(handle, limit, offset = 0) {
|
|
479
585
|
if (!this.db)
|
|
@@ -557,15 +663,6 @@ export class SessionDB {
|
|
|
557
663
|
}
|
|
558
664
|
/**
|
|
559
665
|
* Get the total byte size of a handle's stored JSON rows.
|
|
560
|
-
*
|
|
561
|
-
* Sums `length(data)` over the handle_data rows in a single SQL query,
|
|
562
|
-
* so callers can estimate token costs without re-serializing the whole
|
|
563
|
-
* array on the JS side. The data is already JSON-stringified in SQLite
|
|
564
|
-
* (see `createHandle`), so this is the authoritative serialized size
|
|
565
|
-
* minus the JSON array brackets and commas that would wrap it — close
|
|
566
|
-
* enough for a token-cost estimate.
|
|
567
|
-
*
|
|
568
|
-
* Returns 0 for unknown handles.
|
|
569
666
|
*/
|
|
570
667
|
getHandleDataByteSize(handle) {
|
|
571
668
|
if (!this.db)
|
|
@@ -590,7 +687,6 @@ export class SessionDB {
|
|
|
590
687
|
deleteHandle(handle) {
|
|
591
688
|
if (!this.db)
|
|
592
689
|
return;
|
|
593
|
-
// Data will be cascade-deleted due to foreign key
|
|
594
690
|
const stmt = this.db.prepare("DELETE FROM handles WHERE handle = ?");
|
|
595
691
|
stmt.run(handle);
|
|
596
692
|
}
|
|
@@ -615,7 +711,7 @@ export class SessionDB {
|
|
|
615
711
|
stmt.run(turn, bindingsJson, Date.now());
|
|
616
712
|
}
|
|
617
713
|
/**
|
|
618
|
-
* Get a checkpoint
|
|
714
|
+
* Get a checkpoint timestamp
|
|
619
715
|
*/
|
|
620
716
|
getCheckpointTimestamp(turn) {
|
|
621
717
|
if (!this.db)
|
|
@@ -714,8 +810,8 @@ export class SessionDB {
|
|
|
714
810
|
INSERT INTO symbols (name, kind, startLine, endLine, startCol, endCol, signature, parentSymbolId)
|
|
715
811
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
|
|
716
812
|
`);
|
|
717
|
-
|
|
718
|
-
return
|
|
813
|
+
stmt.run(symbol.name, symbol.kind, symbol.startLine, symbol.endLine, symbol.startCol ?? null, symbol.endCol ?? null, symbol.signature ?? null, symbol.parentSymbolId ?? null);
|
|
814
|
+
return this.db.getLastInsertRowid();
|
|
719
815
|
}
|
|
720
816
|
/**
|
|
721
817
|
* Get a symbol by ID
|
|
@@ -803,12 +899,13 @@ export class SessionDB {
|
|
|
803
899
|
return;
|
|
804
900
|
this.db.exec(`
|
|
805
901
|
DELETE FROM document_lines;
|
|
902
|
+
DELETE FROM document_lines_fts;
|
|
806
903
|
DELETE FROM handles;
|
|
807
904
|
DELETE FROM checkpoints;
|
|
808
905
|
DELETE FROM symbols;
|
|
809
906
|
`);
|
|
810
|
-
|
|
811
|
-
|
|
907
|
+
this.bm25Lines = null;
|
|
908
|
+
this.bm25Index = null;
|
|
812
909
|
}
|
|
813
910
|
/**
|
|
814
911
|
* Close the database connection
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-db.js","sourceRoot":"","sources":["../../src/persistence/session-db.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"session-db.js","sourceRoot":"","sources":["../../src/persistence/session-db.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "matryoshka-rlm",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.39",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Recursive Language Model - Process documents larger than LLM context windows",
|
|
6
6
|
"main": "dist/lib.js",
|
|
@@ -82,10 +82,9 @@
|
|
|
82
82
|
"dependencies": {
|
|
83
83
|
"@modelcontextprotocol/sdk": "^1.0.0",
|
|
84
84
|
"@tree-sitter-grammars/tree-sitter-markdown": "^0.3.2",
|
|
85
|
-
"@types/
|
|
85
|
+
"@types/sql.js": "^1.4.11",
|
|
86
86
|
"@vscode/tree-sitter-wasm": "^0.3.0",
|
|
87
87
|
"@yogthos/tree-sitter-clojure": "^0.0.14",
|
|
88
|
-
"better-sqlite3": "^12.9.0",
|
|
89
88
|
"graphology": "^0.26.0",
|
|
90
89
|
"graphology-communities-louvain": "^2.0.2",
|
|
91
90
|
"graphology-dag": "^0.4.1",
|
|
@@ -95,6 +94,7 @@
|
|
|
95
94
|
"matryoshka-rlm": "^0.2.5",
|
|
96
95
|
"ramo": "^0.1.2",
|
|
97
96
|
"repl-sandbox": "^0.1.1",
|
|
97
|
+
"sql.js": "^1.14.1",
|
|
98
98
|
"tree-sitter": "^0.22.4",
|
|
99
99
|
"tree-sitter-css": "^0.21.1",
|
|
100
100
|
"tree-sitter-elixir": "^0.3.5",
|