agentdb 3.0.0-alpha.18 → 3.0.0-alpha.19
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.
- package/dist/src/backends/rvf/SqlJsRvfBackend.d.ts +1 -0
- package/dist/src/backends/rvf/SqlJsRvfBackend.d.ts.map +1 -1
- package/dist/src/backends/rvf/SqlJsRvfBackend.js +35 -34
- package/dist/src/backends/rvf/SqlJsRvfBackend.js.map +1 -1
- package/dist/src/cli/agentdb-cli.js +1 -1
- package/dist/src/cli/agentdb-cli.js.map +1 -1
- package/dist/src/controllers/EmbeddingService.d.ts.map +1 -1
- package/dist/src/controllers/EmbeddingService.js +6 -1
- package/dist/src/controllers/EmbeddingService.js.map +1 -1
- package/dist/src/db-fallback.d.ts +26 -0
- package/dist/src/db-fallback.d.ts.map +1 -1
- package/dist/src/db-fallback.js +198 -26
- package/dist/src/db-fallback.js.map +1 -1
- package/dist/src/mcp/agentdb-mcp-server.js +12 -3
- package/dist/src/mcp/agentdb-mcp-server.js.map +1 -1
- package/package.json +8 -2
|
@@ -14,6 +14,32 @@
|
|
|
14
14
|
* - PRAGMA commands validated against whitelist
|
|
15
15
|
* - Removed eval() usage (replaced with async import)
|
|
16
16
|
*/
|
|
17
|
+
export interface FileFingerprint {
|
|
18
|
+
exists: boolean;
|
|
19
|
+
device?: number;
|
|
20
|
+
inode?: number;
|
|
21
|
+
mode?: number;
|
|
22
|
+
size?: number;
|
|
23
|
+
mtimeMs?: number;
|
|
24
|
+
ctimeMs?: number;
|
|
25
|
+
sha256?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface DatabaseFileState {
|
|
28
|
+
database: FileFingerprint;
|
|
29
|
+
wal: FileFingerprint;
|
|
30
|
+
shm: FileFingerprint;
|
|
31
|
+
journal: FileFingerprint;
|
|
32
|
+
}
|
|
33
|
+
export declare class SqlJsConcurrentModificationError extends Error {
|
|
34
|
+
readonly code = "AGENTDB_SQLJS_CONCURRENT_MODIFICATION";
|
|
35
|
+
constructor(filename: string);
|
|
36
|
+
}
|
|
37
|
+
export declare function captureDatabaseFileState(filename: string): DatabaseFileState;
|
|
38
|
+
export declare function loadSqlJsDatabaseFile(filename: string): {
|
|
39
|
+
data: Uint8Array | null;
|
|
40
|
+
state: DatabaseFileState;
|
|
41
|
+
};
|
|
42
|
+
export declare function persistSqlJsDatabase(filename: string, data: Uint8Array, expectedState: DatabaseFileState): DatabaseFileState;
|
|
17
43
|
/**
|
|
18
44
|
* Get the SQLite database implementation. Prefers native `better-sqlite3`
|
|
19
45
|
* when loadable; falls back to WASM `sql.js` (no build tools required).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db-fallback.d.ts","sourceRoot":"","sources":["../../src/db-fallback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;
|
|
1
|
+
{"version":3,"file":"db-fallback.d.ts","sourceRoot":"","sources":["../../src/db-fallback.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAcH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,eAAe,CAAC;IAC1B,GAAG,EAAE,eAAe,CAAC;IACrB,GAAG,EAAE,eAAe,CAAC;IACrB,OAAO,EAAE,eAAe,CAAC;CAC1B;AAED,qBAAa,gCAAiC,SAAQ,KAAK;IACzD,QAAQ,CAAC,IAAI,2CAA2C;gBAE5C,QAAQ,EAAE,MAAM;CAO7B;AAoCD,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAO5E;AAED,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,MAAM,GACf;IAAE,IAAI,EAAE,UAAU,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,iBAAiB,CAAA;CAAE,CA4BvD;AAoBD,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,UAAU,EAChB,aAAa,EAAE,iBAAiB,GAC/B,iBAAiB,CAyDnB;AAED;;;GAGG;AAEH,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,GAAG,CAAC,CA4C9D;AAED,4DAA4D;AAC5D,wBAAgB,oCAAoC,IAAI,IAAI,CAG3D;AAiPD;;GAEG;AAEH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAGtF;AAED;;;;;;;GAOG;AAEH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,GAAE,MAAmB,GAAG,GAAG,CA0JxF;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACvC,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAiBA"}
|
package/dist/src/db-fallback.js
CHANGED
|
@@ -15,11 +15,168 @@
|
|
|
15
15
|
* - Removed eval() usage (replaced with async import)
|
|
16
16
|
*/
|
|
17
17
|
import { validatePragmaCommand, ValidationError } from './security/input-validation.js';
|
|
18
|
+
import { createHash, randomUUID } from 'node:crypto';
|
|
18
19
|
import * as fs from 'fs';
|
|
19
20
|
import * as path from 'path';
|
|
20
21
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- cached impl (better-sqlite3 class or sql.js wrapper class)
|
|
21
22
|
let cachedImpl = null;
|
|
22
23
|
let cachedImplKind = null;
|
|
24
|
+
export class SqlJsConcurrentModificationError extends Error {
|
|
25
|
+
code = 'AGENTDB_SQLJS_CONCURRENT_MODIFICATION';
|
|
26
|
+
constructor(filename) {
|
|
27
|
+
super(`Refusing to overwrite "${filename}" because it changed after this sql.js instance opened. ` +
|
|
28
|
+
'Another process may have written to the database; reopen it before retrying.');
|
|
29
|
+
this.name = 'SqlJsConcurrentModificationError';
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
function fingerprintFile(filename) {
|
|
33
|
+
let fd;
|
|
34
|
+
try {
|
|
35
|
+
fd = fs.openSync(filename, 'r');
|
|
36
|
+
const before = fs.fstatSync(fd);
|
|
37
|
+
const data = fs.readFileSync(fd);
|
|
38
|
+
const after = fs.fstatSync(fd);
|
|
39
|
+
if (before.dev !== after.dev ||
|
|
40
|
+
before.ino !== after.ino ||
|
|
41
|
+
before.size !== after.size ||
|
|
42
|
+
before.mtimeMs !== after.mtimeMs ||
|
|
43
|
+
before.ctimeMs !== after.ctimeMs) {
|
|
44
|
+
throw new SqlJsConcurrentModificationError(filename);
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
exists: true,
|
|
48
|
+
device: after.dev,
|
|
49
|
+
inode: after.ino,
|
|
50
|
+
mode: after.mode,
|
|
51
|
+
size: after.size,
|
|
52
|
+
mtimeMs: after.mtimeMs,
|
|
53
|
+
ctimeMs: after.ctimeMs,
|
|
54
|
+
sha256: createHash('sha256').update(data).digest('hex'),
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
if (error.code === 'ENOENT')
|
|
59
|
+
return { exists: false };
|
|
60
|
+
throw error;
|
|
61
|
+
}
|
|
62
|
+
finally {
|
|
63
|
+
if (fd !== undefined)
|
|
64
|
+
fs.closeSync(fd);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
export function captureDatabaseFileState(filename) {
|
|
68
|
+
return {
|
|
69
|
+
database: fingerprintFile(filename),
|
|
70
|
+
wal: fingerprintFile(`${filename}-wal`),
|
|
71
|
+
shm: fingerprintFile(`${filename}-shm`),
|
|
72
|
+
journal: fingerprintFile(`${filename}-journal`),
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
export function loadSqlJsDatabaseFile(filename) {
|
|
76
|
+
const state = captureDatabaseFileState(filename);
|
|
77
|
+
if ((state.wal.exists && state.wal.size > 0) ||
|
|
78
|
+
(state.journal.exists && state.journal.size > 0)) {
|
|
79
|
+
throw new Error(`Refusing to open "${filename}" with sql.js while an active SQLite WAL or journal exists. ` +
|
|
80
|
+
'Checkpoint/close the other SQLite writer first.');
|
|
81
|
+
}
|
|
82
|
+
if (!state.database.exists)
|
|
83
|
+
return { data: null, state };
|
|
84
|
+
// fingerprintFile hashes the exact bytes read from a stable descriptor.
|
|
85
|
+
// Read once more and verify the digest so the returned bytes and baseline
|
|
86
|
+
// are guaranteed to describe the same database generation.
|
|
87
|
+
const data = fs.readFileSync(filename);
|
|
88
|
+
const digest = createHash('sha256').update(data).digest('hex');
|
|
89
|
+
if (digest !== state.database.sha256) {
|
|
90
|
+
throw new SqlJsConcurrentModificationError(filename);
|
|
91
|
+
}
|
|
92
|
+
if (data.length < 16 ||
|
|
93
|
+
data.subarray(0, 16).toString('utf8') !== 'SQLite format 3\u0000') {
|
|
94
|
+
throw new Error(`Refusing to open invalid SQLite database file "${filename}"`);
|
|
95
|
+
}
|
|
96
|
+
return { data: new Uint8Array(data), state };
|
|
97
|
+
}
|
|
98
|
+
function sameDatabaseFileState(left, right) {
|
|
99
|
+
return JSON.stringify(left) === JSON.stringify(right);
|
|
100
|
+
}
|
|
101
|
+
function fsyncDirectory(directory) {
|
|
102
|
+
let fd;
|
|
103
|
+
try {
|
|
104
|
+
fd = fs.openSync(directory, 'r');
|
|
105
|
+
fs.fsyncSync(fd);
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
// Some platforms/filesystems do not permit opening or syncing directories.
|
|
109
|
+
const code = error.code;
|
|
110
|
+
if (code !== 'EINVAL' && code !== 'EPERM' && code !== 'EISDIR')
|
|
111
|
+
throw error;
|
|
112
|
+
}
|
|
113
|
+
finally {
|
|
114
|
+
if (fd !== undefined)
|
|
115
|
+
fs.closeSync(fd);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
export function persistSqlJsDatabase(filename, data, expectedState) {
|
|
119
|
+
const directory = path.dirname(filename);
|
|
120
|
+
fs.mkdirSync(directory, { recursive: true });
|
|
121
|
+
if (fs.existsSync(filename) && fs.lstatSync(filename).isSymbolicLink()) {
|
|
122
|
+
throw new Error(`Refusing to replace symbolic-link database path "${filename}"`);
|
|
123
|
+
}
|
|
124
|
+
const lockPath = `${filename}.agentdb.lock`;
|
|
125
|
+
let lockFd;
|
|
126
|
+
let tempPath;
|
|
127
|
+
try {
|
|
128
|
+
try {
|
|
129
|
+
lockFd = fs.openSync(lockPath, 'wx', 0o600);
|
|
130
|
+
fs.writeSync(lockFd, `${process.pid}\n`);
|
|
131
|
+
fs.fsyncSync(lockFd);
|
|
132
|
+
}
|
|
133
|
+
catch (error) {
|
|
134
|
+
if (error.code === 'EEXIST') {
|
|
135
|
+
throw new SqlJsConcurrentModificationError(filename);
|
|
136
|
+
}
|
|
137
|
+
throw error;
|
|
138
|
+
}
|
|
139
|
+
if (!sameDatabaseFileState(captureDatabaseFileState(filename), expectedState)) {
|
|
140
|
+
throw new SqlJsConcurrentModificationError(filename);
|
|
141
|
+
}
|
|
142
|
+
tempPath = path.join(directory, `.${path.basename(filename)}.${process.pid}.${randomUUID()}.tmp`);
|
|
143
|
+
const tempFd = fs.openSync(tempPath, 'wx', 0o600);
|
|
144
|
+
try {
|
|
145
|
+
fs.writeFileSync(tempFd, Buffer.from(data));
|
|
146
|
+
if (expectedState.database.exists && expectedState.database.mode !== undefined) {
|
|
147
|
+
fs.fchmodSync(tempFd, expectedState.database.mode);
|
|
148
|
+
}
|
|
149
|
+
fs.fsyncSync(tempFd);
|
|
150
|
+
}
|
|
151
|
+
finally {
|
|
152
|
+
fs.closeSync(tempFd);
|
|
153
|
+
}
|
|
154
|
+
// Recheck after export/write so a non-cooperating SQLite writer cannot be
|
|
155
|
+
// silently overwritten merely because it raced with the temporary write.
|
|
156
|
+
if (!sameDatabaseFileState(captureDatabaseFileState(filename), expectedState)) {
|
|
157
|
+
throw new SqlJsConcurrentModificationError(filename);
|
|
158
|
+
}
|
|
159
|
+
fs.renameSync(tempPath, filename);
|
|
160
|
+
tempPath = undefined;
|
|
161
|
+
fsyncDirectory(directory);
|
|
162
|
+
return captureDatabaseFileState(filename);
|
|
163
|
+
}
|
|
164
|
+
finally {
|
|
165
|
+
if (tempPath) {
|
|
166
|
+
try {
|
|
167
|
+
fs.unlinkSync(tempPath);
|
|
168
|
+
}
|
|
169
|
+
catch { /* best-effort cleanup */ }
|
|
170
|
+
}
|
|
171
|
+
if (lockFd !== undefined) {
|
|
172
|
+
fs.closeSync(lockFd);
|
|
173
|
+
try {
|
|
174
|
+
fs.unlinkSync(lockPath);
|
|
175
|
+
}
|
|
176
|
+
catch { /* preserve the original error */ }
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
23
180
|
/**
|
|
24
181
|
* Get the SQLite database implementation. Prefers native `better-sqlite3`
|
|
25
182
|
* when loadable; falls back to WASM `sql.js` (no build tools required).
|
|
@@ -35,9 +192,14 @@ export async function getDatabaseImplementation() {
|
|
|
35
192
|
const mod = await import('better-sqlite3');
|
|
36
193
|
const BetterSqlite3 = mod.default ?? mod;
|
|
37
194
|
if (typeof BetterSqlite3 === 'function') {
|
|
195
|
+
// Importing the JS wrapper can succeed even when its native binding is
|
|
196
|
+
// missing or incompatible with the current Node ABI. Probe an actual
|
|
197
|
+
// in-memory connection before selecting it.
|
|
198
|
+
const probe = new BetterSqlite3(':memory:');
|
|
199
|
+
probe.close();
|
|
38
200
|
cachedImpl = BetterSqlite3;
|
|
39
201
|
cachedImplKind = 'better-sqlite3';
|
|
40
|
-
console.
|
|
202
|
+
console.error('✅ Using native better-sqlite3');
|
|
41
203
|
return cachedImpl;
|
|
42
204
|
}
|
|
43
205
|
}
|
|
@@ -47,7 +209,7 @@ export async function getDatabaseImplementation() {
|
|
|
47
209
|
}
|
|
48
210
|
// 2. Fall back to sql.js (WASM, no build tools).
|
|
49
211
|
try {
|
|
50
|
-
console.
|
|
212
|
+
console.error('✅ Using sql.js (WASM SQLite, no build tools required)');
|
|
51
213
|
// sql.js requires async initialization
|
|
52
214
|
const mod = await import('sql.js');
|
|
53
215
|
const SQL = await mod.default();
|
|
@@ -77,6 +239,7 @@ function createSqlJsWrapper(SQL) {
|
|
|
77
239
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- sql.js Database instance
|
|
78
240
|
db;
|
|
79
241
|
filename;
|
|
242
|
+
fileState;
|
|
80
243
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- sql.js Statement instances
|
|
81
244
|
activeStatements = new Map();
|
|
82
245
|
// Cache wrappers by SQL text so repeated db.prepare(sameSql) returns the
|
|
@@ -90,23 +253,18 @@ function createSqlJsWrapper(SQL) {
|
|
|
90
253
|
intervalId = null;
|
|
91
254
|
constructor(filename, _options) {
|
|
92
255
|
this.filename = filename;
|
|
256
|
+
const loaded = filename === ':memory:' ? null : loadSqlJsDatabaseFile(filename);
|
|
257
|
+
this.fileState = loaded?.state ?? null;
|
|
93
258
|
// In-memory database
|
|
94
259
|
if (filename === ':memory:') {
|
|
95
260
|
this.db = new SQL.Database();
|
|
96
261
|
}
|
|
97
262
|
else {
|
|
98
263
|
// File-based database - use safe fs module (no eval)
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
const buffer = fs.readFileSync(filename);
|
|
102
|
-
this.db = new SQL.Database(buffer);
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
this.db = new SQL.Database();
|
|
106
|
-
}
|
|
264
|
+
if (loaded.data) {
|
|
265
|
+
this.db = new SQL.Database(loaded.data);
|
|
107
266
|
}
|
|
108
|
-
|
|
109
|
-
console.warn('⚠️ Could not read database file:', error.message);
|
|
267
|
+
else {
|
|
110
268
|
this.db = new SQL.Database();
|
|
111
269
|
}
|
|
112
270
|
}
|
|
@@ -223,13 +381,8 @@ function createSqlJsWrapper(SQL) {
|
|
|
223
381
|
// Save to file if needed
|
|
224
382
|
if (this.filename !== ':memory:') {
|
|
225
383
|
try {
|
|
226
|
-
// Create parent directories if they don't exist
|
|
227
|
-
const dir = path.dirname(this.filename);
|
|
228
|
-
if (!fs.existsSync(dir)) {
|
|
229
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
230
|
-
}
|
|
231
384
|
const data = this.db.export();
|
|
232
|
-
|
|
385
|
+
this.fileState = persistSqlJsDatabase(this.filename, data, this.fileState);
|
|
233
386
|
}
|
|
234
387
|
catch (error) {
|
|
235
388
|
console.error('❌ Could not save database to file:', error.message);
|
|
@@ -238,6 +391,13 @@ function createSqlJsWrapper(SQL) {
|
|
|
238
391
|
}
|
|
239
392
|
}
|
|
240
393
|
close() {
|
|
394
|
+
let saveError;
|
|
395
|
+
try {
|
|
396
|
+
this.save();
|
|
397
|
+
}
|
|
398
|
+
catch (error) {
|
|
399
|
+
saveError = error;
|
|
400
|
+
}
|
|
241
401
|
// Clear interval timer
|
|
242
402
|
if (this.intervalId) {
|
|
243
403
|
clearInterval(this.intervalId);
|
|
@@ -254,9 +414,9 @@ function createSqlJsWrapper(SQL) {
|
|
|
254
414
|
}
|
|
255
415
|
this.activeStatements.clear();
|
|
256
416
|
this.statementCache.clear();
|
|
257
|
-
// Save to file before closing
|
|
258
|
-
this.save();
|
|
259
417
|
this.db.close();
|
|
418
|
+
if (saveError)
|
|
419
|
+
throw saveError;
|
|
260
420
|
}
|
|
261
421
|
pragma(pragma, _options) {
|
|
262
422
|
try {
|
|
@@ -316,6 +476,14 @@ export function wrapExistingSqlJsDatabase(rawDb, filename = ':memory:') {
|
|
|
316
476
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- prepared-statement wrapper objects
|
|
317
477
|
const statementCache = new Map();
|
|
318
478
|
let statementCounter = 0;
|
|
479
|
+
const loaded = filename === ':memory:' ? null : loadSqlJsDatabaseFile(filename);
|
|
480
|
+
let fileState = loaded?.state ?? null;
|
|
481
|
+
if (loaded?.data) {
|
|
482
|
+
const rawDigest = createHash('sha256').update(rawDb.export()).digest('hex');
|
|
483
|
+
if (rawDigest !== fileState.database.sha256) {
|
|
484
|
+
throw new SqlJsConcurrentModificationError(filename);
|
|
485
|
+
}
|
|
486
|
+
}
|
|
319
487
|
return {
|
|
320
488
|
prepare(sql) {
|
|
321
489
|
const cached = statementCache.get(sql);
|
|
@@ -409,15 +577,18 @@ export function wrapExistingSqlJsDatabase(rawDb, filename = ':memory:') {
|
|
|
409
577
|
},
|
|
410
578
|
save() {
|
|
411
579
|
if (filename !== ':memory:') {
|
|
412
|
-
const dir = path.dirname(filename);
|
|
413
|
-
if (!fs.existsSync(dir)) {
|
|
414
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
415
|
-
}
|
|
416
580
|
const data = rawDb.export();
|
|
417
|
-
|
|
581
|
+
fileState = persistSqlJsDatabase(filename, data, fileState);
|
|
418
582
|
}
|
|
419
583
|
},
|
|
420
584
|
close() {
|
|
585
|
+
let saveError;
|
|
586
|
+
try {
|
|
587
|
+
this.save();
|
|
588
|
+
}
|
|
589
|
+
catch (error) {
|
|
590
|
+
saveError = error;
|
|
591
|
+
}
|
|
421
592
|
for (const [, stmt] of activeStatements.entries()) {
|
|
422
593
|
try {
|
|
423
594
|
stmt.free();
|
|
@@ -426,8 +597,9 @@ export function wrapExistingSqlJsDatabase(rawDb, filename = ':memory:') {
|
|
|
426
597
|
}
|
|
427
598
|
activeStatements.clear();
|
|
428
599
|
statementCache.clear();
|
|
429
|
-
this.save();
|
|
430
600
|
rawDb.close();
|
|
601
|
+
if (saveError)
|
|
602
|
+
throw saveError;
|
|
431
603
|
},
|
|
432
604
|
pragma(pragma, _options) {
|
|
433
605
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db-fallback.js","sourceRoot":"","sources":["../../src/db-fallback.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"db-fallback.js","sourceRoot":"","sources":["../../src/db-fallback.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,10 @@ import { dirname } from 'path';
|
|
|
26
26
|
// ES module equivalent of __dirname
|
|
27
27
|
const __filename = fileURLToPath(import.meta.url);
|
|
28
28
|
const __dirname = dirname(__filename);
|
|
29
|
+
// stdout belongs exclusively to JSON-RPC when running over stdio. Route every
|
|
30
|
+
// transitive diagnostic (including legacy controller console.log calls) to
|
|
31
|
+
// stderr before database and embedding initialization begins.
|
|
32
|
+
console.log = (...args) => console.error(...args);
|
|
29
33
|
// ============================================================================
|
|
30
34
|
// Helper Functions for Core Vector DB Operations
|
|
31
35
|
// ============================================================================
|
|
@@ -2217,6 +2221,7 @@ async function main() {
|
|
|
2217
2221
|
// Clear intervals
|
|
2218
2222
|
clearInterval(keepAlive);
|
|
2219
2223
|
clearInterval(autoSaveInterval);
|
|
2224
|
+
let persistenceFailed = false;
|
|
2220
2225
|
// Save database before exit
|
|
2221
2226
|
try {
|
|
2222
2227
|
if (db && typeof db.save === 'function') {
|
|
@@ -2226,19 +2231,23 @@ async function main() {
|
|
|
2226
2231
|
}
|
|
2227
2232
|
}
|
|
2228
2233
|
catch (error) {
|
|
2234
|
+
persistenceFailed = true;
|
|
2229
2235
|
console.error('❌ Error saving database:', error.message);
|
|
2230
2236
|
}
|
|
2231
|
-
// Close database connection
|
|
2237
|
+
// Close database connection. close() persists sql.js itself, so only call
|
|
2238
|
+
// it after save when save succeeded; a failed optimistic save must not be
|
|
2239
|
+
// retried against the same stale snapshot.
|
|
2232
2240
|
try {
|
|
2233
|
-
if (db && typeof db.close === 'function') {
|
|
2241
|
+
if (!persistenceFailed && db && typeof db.close === 'function') {
|
|
2234
2242
|
db.close();
|
|
2235
2243
|
console.error('✅ Database connection closed');
|
|
2236
2244
|
}
|
|
2237
2245
|
}
|
|
2238
2246
|
catch (error) {
|
|
2247
|
+
persistenceFailed = true;
|
|
2239
2248
|
console.error('❌ Error closing database:', error.message);
|
|
2240
2249
|
}
|
|
2241
|
-
process.exit(0);
|
|
2250
|
+
process.exit(persistenceFailed ? 1 : 0);
|
|
2242
2251
|
};
|
|
2243
2252
|
process.on('SIGINT', shutdown);
|
|
2244
2253
|
process.on('SIGTERM', shutdown);
|