instar 0.28.90 → 0.28.92
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/core/SessionManager.d.ts +28 -8
- package/dist/core/SessionManager.d.ts.map +1 -1
- package/dist/core/SessionManager.js +88 -28
- package/dist/core/SessionManager.js.map +1 -1
- package/dist/memory/MemoryIndex.d.ts.map +1 -1
- package/dist/memory/MemoryIndex.js +22 -14
- package/dist/memory/MemoryIndex.js.map +1 -1
- package/dist/memory/NativeModuleHealer.d.ts +114 -0
- package/dist/memory/NativeModuleHealer.d.ts.map +1 -0
- package/dist/memory/NativeModuleHealer.js +282 -0
- package/dist/memory/NativeModuleHealer.js.map +1 -0
- package/dist/memory/SemanticMemory.d.ts.map +1 -1
- package/dist/memory/SemanticMemory.js +19 -8
- package/dist/memory/SemanticMemory.js.map +1 -1
- package/dist/memory/TopicMemory.d.ts.map +1 -1
- package/dist/memory/TopicMemory.js +10 -2
- package/dist/memory/TopicMemory.js.map +1 -1
- package/package.json +1 -1
- package/src/data/builtin-manifest.json +4 -4
- package/upgrades/0.28.91.md +37 -0
- package/upgrades/0.28.92.md +107 -0
- package/upgrades/side-effects/0.28.91.md +11 -0
- package/upgrades/side-effects/multishot-stuck-input-recovery.md +151 -0
- package/upgrades/side-effects/prop-399-native-module-healer.md +129 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryIndex.js","sourceRoot":"","sources":["../../src/memory/MemoryIndex.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MemoryIndex.js","sourceRoot":"","sources":["../../src/memory/MemoryIndex.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NativeModuleHealer — in-line self-heal for better-sqlite3 NODE_MODULE_VERSION mismatch.
|
|
3
|
+
*
|
|
4
|
+
* Background:
|
|
5
|
+
* ServerSupervisor.preflightSelfHeal handles the supervisor-spawn path
|
|
6
|
+
* (it rebuilds better-sqlite3 in `shadow-install` before forking the server).
|
|
7
|
+
* But CLI commands (`instar memory ...`, `instar semantic ...`) and any direct
|
|
8
|
+
* instantiation of SemanticMemory / TopicMemory / MemoryIndex bypass it.
|
|
9
|
+
*
|
|
10
|
+
* When Node is upgraded after Instar was installed, the native better-sqlite3
|
|
11
|
+
* binding throws NODE_MODULE_VERSION on construction. Without an in-line heal,
|
|
12
|
+
* the only fix is for the user to run `npm rebuild better-sqlite3` manually —
|
|
13
|
+
* and 1254 reports in the field show users hit this and file bug reports
|
|
14
|
+
* instead (cluster-degradation-semanticmemory-semanticmemory-init-failed-the-m).
|
|
15
|
+
*
|
|
16
|
+
* Strategy:
|
|
17
|
+
* 1. Wrap the better-sqlite3 constructor call in `openWithHeal`.
|
|
18
|
+
* 2. On NODE_MODULE_VERSION error, locate npm + the install prefix that
|
|
19
|
+
* contains the better-sqlite3 package, run `npm rebuild better-sqlite3
|
|
20
|
+
* --prefix <install_prefix>` synchronously.
|
|
21
|
+
* 3. Clear better-sqlite3 from `require.cache` so a fresh native binding
|
|
22
|
+
* is loaded on retry.
|
|
23
|
+
* 4. Retry the constructor once. If it still fails, throw.
|
|
24
|
+
* 5. Log heal events to `<stateDir>/native-module-heals.jsonl` for
|
|
25
|
+
* observability (consumed by health checks and DegradationReporter).
|
|
26
|
+
*
|
|
27
|
+
* Once-per-process guard:
|
|
28
|
+
* The rebuild is expensive (~30s) and shouldn't run more than once per
|
|
29
|
+
* process. After one attempt, subsequent failures throw immediately.
|
|
30
|
+
*
|
|
31
|
+
* Spec: PROP-399 (chronic, 24 cycles, 1254 field reports).
|
|
32
|
+
*/
|
|
33
|
+
export interface HealEvent {
|
|
34
|
+
/** Component that triggered the heal (e.g. 'SemanticMemory', 'TopicMemory', 'MemoryIndex'). */
|
|
35
|
+
component: string;
|
|
36
|
+
/** UTC ISO timestamp of the attempt. */
|
|
37
|
+
timestamp: string;
|
|
38
|
+
/** Whether the rebuild + retry succeeded. */
|
|
39
|
+
success: boolean;
|
|
40
|
+
/** Node version process is running. */
|
|
41
|
+
nodeVersion: string;
|
|
42
|
+
/** Detected install prefix where `npm rebuild` was run, if any. */
|
|
43
|
+
installPrefix?: string;
|
|
44
|
+
/** npm binary path used for the rebuild, if found. */
|
|
45
|
+
npmPath?: string;
|
|
46
|
+
/** Stderr tail (last 300 chars) on failure. */
|
|
47
|
+
errorTail?: string;
|
|
48
|
+
/** Duration of the rebuild attempt, in ms. */
|
|
49
|
+
durationMs?: number;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* NativeModuleHealer is a process-singleton. Stateful members track
|
|
53
|
+
* whether a heal has already been attempted this process so the
|
|
54
|
+
* expensive rebuild doesn't run on every open() retry.
|
|
55
|
+
*/
|
|
56
|
+
declare class NativeModuleHealerImpl {
|
|
57
|
+
private healAttempted;
|
|
58
|
+
private lastResult;
|
|
59
|
+
private stateDir;
|
|
60
|
+
/** Configure where heal events are persisted. Optional. */
|
|
61
|
+
configure(opts: {
|
|
62
|
+
stateDir?: string | null;
|
|
63
|
+
}): void;
|
|
64
|
+
/** Reset for testing. */
|
|
65
|
+
resetForTesting(): void;
|
|
66
|
+
/** Detect NODE_MODULE_VERSION errors. Tolerant of message wording variants. */
|
|
67
|
+
isNodeModuleVersionError(err: unknown): boolean;
|
|
68
|
+
/** Returns the last heal attempt result (or null if none). */
|
|
69
|
+
getLastResult(): HealEvent | null;
|
|
70
|
+
/**
|
|
71
|
+
* Wrap an open() / new Database(path) call. If it throws with
|
|
72
|
+
* NODE_MODULE_VERSION, run the heal once, then retry. Otherwise rethrow.
|
|
73
|
+
*
|
|
74
|
+
* The opener is passed in (rather than calling `new Database` directly)
|
|
75
|
+
* because each caller has different construction logic — TopicMemory does
|
|
76
|
+
* integrity checks, SemanticMemory does pragma setup, etc.
|
|
77
|
+
*
|
|
78
|
+
* The opener may be sync or async; both return paths are awaited.
|
|
79
|
+
*/
|
|
80
|
+
openWithHeal<T>(component: string, opener: () => T | Promise<T>): Promise<T>;
|
|
81
|
+
/**
|
|
82
|
+
* Run `npm rebuild better-sqlite3 --prefix <install_prefix>` synchronously.
|
|
83
|
+
* Returns true if the rebuild succeeded, false otherwise. Always logs
|
|
84
|
+
* a HealEvent.
|
|
85
|
+
*/
|
|
86
|
+
healBetterSqlite3(component: string): Promise<boolean>;
|
|
87
|
+
/**
|
|
88
|
+
* Resolve the npm-installable prefix for better-sqlite3. We want the
|
|
89
|
+
* directory whose `node_modules/better-sqlite3` is the one that just
|
|
90
|
+
* failed to load — that's the install prefix npm needs.
|
|
91
|
+
*
|
|
92
|
+
* Strategy: use require.resolve('better-sqlite3'), then walk up to find
|
|
93
|
+
* the parent of the `node_modules/better-sqlite3` segment.
|
|
94
|
+
*/
|
|
95
|
+
private findBetterSqlite3InstallPrefix;
|
|
96
|
+
/**
|
|
97
|
+
* Find npm on disk. Mirrors ServerSupervisor.findNpmPath logic.
|
|
98
|
+
*/
|
|
99
|
+
private findNpmPath;
|
|
100
|
+
/**
|
|
101
|
+
* Clear better-sqlite3 entries from Node's require cache so the fresh
|
|
102
|
+
* native binding is loaded on retry.
|
|
103
|
+
*/
|
|
104
|
+
private clearBetterSqlite3Cache;
|
|
105
|
+
/**
|
|
106
|
+
* Persist a heal event for observability. Best-effort; never throws.
|
|
107
|
+
* Logged to <stateDir>/native-module-heals.jsonl if stateDir is configured,
|
|
108
|
+
* otherwise to <os.tmpdir>/instar-native-module-heals.jsonl as a fallback.
|
|
109
|
+
*/
|
|
110
|
+
private logHealEvent;
|
|
111
|
+
}
|
|
112
|
+
export declare const NativeModuleHealer: NativeModuleHealerImpl;
|
|
113
|
+
export {};
|
|
114
|
+
//# sourceMappingURL=NativeModuleHealer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NativeModuleHealer.d.ts","sourceRoot":"","sources":["../../src/memory/NativeModuleHealer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAUH,MAAM,WAAW,SAAS;IACxB,+FAA+F;IAC/F,SAAS,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,OAAO,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAID;;;;GAIG;AACH,cAAM,sBAAsB;IAC1B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,UAAU,CAA0B;IAC5C,OAAO,CAAC,QAAQ,CAAuB;IAEvC,2DAA2D;IAC3D,SAAS,CAAC,IAAI,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI;IAInD,yBAAyB;IACzB,eAAe,IAAI,IAAI;IAMvB,+EAA+E;IAC/E,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO;IAS/C,8DAA8D;IAC9D,aAAa,IAAI,SAAS,GAAG,IAAI;IAIjC;;;;;;;;;OASG;IACG,YAAY,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAmClF;;;;OAIG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA6E5D;;;;;;;OAOG;IACH,OAAO,CAAC,8BAA8B;IAsBtC;;OAEG;IACH,OAAO,CAAC,WAAW;IA+BnB;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAY/B;;;;OAIG;IACH,OAAO,CAAC,YAAY;CAcrB;AAED,eAAO,MAAM,kBAAkB,wBAA+B,CAAC"}
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NativeModuleHealer — in-line self-heal for better-sqlite3 NODE_MODULE_VERSION mismatch.
|
|
3
|
+
*
|
|
4
|
+
* Background:
|
|
5
|
+
* ServerSupervisor.preflightSelfHeal handles the supervisor-spawn path
|
|
6
|
+
* (it rebuilds better-sqlite3 in `shadow-install` before forking the server).
|
|
7
|
+
* But CLI commands (`instar memory ...`, `instar semantic ...`) and any direct
|
|
8
|
+
* instantiation of SemanticMemory / TopicMemory / MemoryIndex bypass it.
|
|
9
|
+
*
|
|
10
|
+
* When Node is upgraded after Instar was installed, the native better-sqlite3
|
|
11
|
+
* binding throws NODE_MODULE_VERSION on construction. Without an in-line heal,
|
|
12
|
+
* the only fix is for the user to run `npm rebuild better-sqlite3` manually —
|
|
13
|
+
* and 1254 reports in the field show users hit this and file bug reports
|
|
14
|
+
* instead (cluster-degradation-semanticmemory-semanticmemory-init-failed-the-m).
|
|
15
|
+
*
|
|
16
|
+
* Strategy:
|
|
17
|
+
* 1. Wrap the better-sqlite3 constructor call in `openWithHeal`.
|
|
18
|
+
* 2. On NODE_MODULE_VERSION error, locate npm + the install prefix that
|
|
19
|
+
* contains the better-sqlite3 package, run `npm rebuild better-sqlite3
|
|
20
|
+
* --prefix <install_prefix>` synchronously.
|
|
21
|
+
* 3. Clear better-sqlite3 from `require.cache` so a fresh native binding
|
|
22
|
+
* is loaded on retry.
|
|
23
|
+
* 4. Retry the constructor once. If it still fails, throw.
|
|
24
|
+
* 5. Log heal events to `<stateDir>/native-module-heals.jsonl` for
|
|
25
|
+
* observability (consumed by health checks and DegradationReporter).
|
|
26
|
+
*
|
|
27
|
+
* Once-per-process guard:
|
|
28
|
+
* The rebuild is expensive (~30s) and shouldn't run more than once per
|
|
29
|
+
* process. After one attempt, subsequent failures throw immediately.
|
|
30
|
+
*
|
|
31
|
+
* Spec: PROP-399 (chronic, 24 cycles, 1254 field reports).
|
|
32
|
+
*/
|
|
33
|
+
import fs from 'node:fs';
|
|
34
|
+
import path from 'node:path';
|
|
35
|
+
import os from 'node:os';
|
|
36
|
+
import { spawnSync } from 'node:child_process';
|
|
37
|
+
import { createRequire } from 'node:module';
|
|
38
|
+
const require = createRequire(import.meta.url);
|
|
39
|
+
const HEAL_LOG_FILENAME = 'native-module-heals.jsonl';
|
|
40
|
+
/**
|
|
41
|
+
* NativeModuleHealer is a process-singleton. Stateful members track
|
|
42
|
+
* whether a heal has already been attempted this process so the
|
|
43
|
+
* expensive rebuild doesn't run on every open() retry.
|
|
44
|
+
*/
|
|
45
|
+
class NativeModuleHealerImpl {
|
|
46
|
+
healAttempted = false;
|
|
47
|
+
lastResult = null;
|
|
48
|
+
stateDir = null;
|
|
49
|
+
/** Configure where heal events are persisted. Optional. */
|
|
50
|
+
configure(opts) {
|
|
51
|
+
if (opts.stateDir)
|
|
52
|
+
this.stateDir = opts.stateDir;
|
|
53
|
+
}
|
|
54
|
+
/** Reset for testing. */
|
|
55
|
+
resetForTesting() {
|
|
56
|
+
this.healAttempted = false;
|
|
57
|
+
this.lastResult = null;
|
|
58
|
+
this.stateDir = null;
|
|
59
|
+
}
|
|
60
|
+
/** Detect NODE_MODULE_VERSION errors. Tolerant of message wording variants. */
|
|
61
|
+
isNodeModuleVersionError(err) {
|
|
62
|
+
const msg = err instanceof Error ? (err.message ?? '') : String(err);
|
|
63
|
+
// Common forms:
|
|
64
|
+
// "The module '...' was compiled against a different Node.js version using
|
|
65
|
+
// NODE_MODULE_VERSION 108. This version of Node.js requires NODE_MODULE_VERSION 115."
|
|
66
|
+
// "NODE_MODULE_VERSION mismatch"
|
|
67
|
+
return /NODE_MODULE_VERSION/i.test(msg);
|
|
68
|
+
}
|
|
69
|
+
/** Returns the last heal attempt result (or null if none). */
|
|
70
|
+
getLastResult() {
|
|
71
|
+
return this.lastResult;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Wrap an open() / new Database(path) call. If it throws with
|
|
75
|
+
* NODE_MODULE_VERSION, run the heal once, then retry. Otherwise rethrow.
|
|
76
|
+
*
|
|
77
|
+
* The opener is passed in (rather than calling `new Database` directly)
|
|
78
|
+
* because each caller has different construction logic — TopicMemory does
|
|
79
|
+
* integrity checks, SemanticMemory does pragma setup, etc.
|
|
80
|
+
*
|
|
81
|
+
* The opener may be sync or async; both return paths are awaited.
|
|
82
|
+
*/
|
|
83
|
+
async openWithHeal(component, opener) {
|
|
84
|
+
try {
|
|
85
|
+
return await opener();
|
|
86
|
+
}
|
|
87
|
+
catch (err) {
|
|
88
|
+
if (!this.isNodeModuleVersionError(err))
|
|
89
|
+
throw err;
|
|
90
|
+
// Already tried this process — don't loop, surface the original error
|
|
91
|
+
if (this.healAttempted) {
|
|
92
|
+
const last = this.lastResult;
|
|
93
|
+
const hint = last && !last.success
|
|
94
|
+
? ` (heal previously attempted and failed: ${last.errorTail ?? 'unknown'})`
|
|
95
|
+
: ' (heal previously attempted)';
|
|
96
|
+
const wrapped = err instanceof Error ? err : new Error(String(err));
|
|
97
|
+
wrapped.message = `${wrapped.message}${hint}`;
|
|
98
|
+
throw wrapped;
|
|
99
|
+
}
|
|
100
|
+
const healed = await this.healBetterSqlite3(component);
|
|
101
|
+
if (!healed) {
|
|
102
|
+
// Don't swallow the original error; rethrow with heal context
|
|
103
|
+
const wrapped = err instanceof Error ? err : new Error(String(err));
|
|
104
|
+
wrapped.message = `${wrapped.message} (in-line heal failed — see ${HEAL_LOG_FILENAME})`;
|
|
105
|
+
throw wrapped;
|
|
106
|
+
}
|
|
107
|
+
// Clear cached better-sqlite3 require entries so the fresh native
|
|
108
|
+
// binding is loaded on retry.
|
|
109
|
+
this.clearBetterSqlite3Cache();
|
|
110
|
+
// Retry once. If this still throws, surface the new error directly
|
|
111
|
+
// so the caller sees the post-rebuild failure mode.
|
|
112
|
+
return await opener();
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Run `npm rebuild better-sqlite3 --prefix <install_prefix>` synchronously.
|
|
117
|
+
* Returns true if the rebuild succeeded, false otherwise. Always logs
|
|
118
|
+
* a HealEvent.
|
|
119
|
+
*/
|
|
120
|
+
async healBetterSqlite3(component) {
|
|
121
|
+
if (this.healAttempted)
|
|
122
|
+
return false;
|
|
123
|
+
this.healAttempted = true;
|
|
124
|
+
const started = Date.now();
|
|
125
|
+
const event = {
|
|
126
|
+
component,
|
|
127
|
+
timestamp: new Date().toISOString(),
|
|
128
|
+
success: false,
|
|
129
|
+
nodeVersion: process.version,
|
|
130
|
+
};
|
|
131
|
+
const installPrefix = this.findBetterSqlite3InstallPrefix();
|
|
132
|
+
if (!installPrefix) {
|
|
133
|
+
event.errorTail = 'could not locate better-sqlite3 install prefix';
|
|
134
|
+
console.error(`[${component}] NativeModuleHealer: ${event.errorTail}`);
|
|
135
|
+
this.logHealEvent(event);
|
|
136
|
+
this.lastResult = event;
|
|
137
|
+
return false;
|
|
138
|
+
}
|
|
139
|
+
event.installPrefix = installPrefix;
|
|
140
|
+
const npmPath = this.findNpmPath();
|
|
141
|
+
if (!npmPath) {
|
|
142
|
+
event.errorTail = 'npm not found on PATH';
|
|
143
|
+
console.error(`[${component}] NativeModuleHealer: ${event.errorTail}`);
|
|
144
|
+
this.logHealEvent(event);
|
|
145
|
+
this.lastResult = event;
|
|
146
|
+
return false;
|
|
147
|
+
}
|
|
148
|
+
event.npmPath = npmPath;
|
|
149
|
+
console.log(`[${component}] NativeModuleHealer: rebuilding better-sqlite3 for Node ${process.version} (prefix=${installPrefix}). This may take ~30s.`);
|
|
150
|
+
let result;
|
|
151
|
+
try {
|
|
152
|
+
result = spawnSync(process.execPath, [npmPath, 'rebuild', 'better-sqlite3', '--prefix', installPrefix], {
|
|
153
|
+
encoding: 'utf-8',
|
|
154
|
+
timeout: 120_000,
|
|
155
|
+
cwd: installPrefix,
|
|
156
|
+
env: { ...process.env, npm_config_node_gyp: undefined },
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
catch (spawnErr) {
|
|
160
|
+
event.errorTail = `spawn failed: ${spawnErr instanceof Error ? spawnErr.message : String(spawnErr)}`;
|
|
161
|
+
event.durationMs = Date.now() - started;
|
|
162
|
+
console.error(`[${component}] NativeModuleHealer: ${event.errorTail}`);
|
|
163
|
+
this.logHealEvent(event);
|
|
164
|
+
this.lastResult = event;
|
|
165
|
+
return false;
|
|
166
|
+
}
|
|
167
|
+
event.durationMs = Date.now() - started;
|
|
168
|
+
if (result.status === 0) {
|
|
169
|
+
event.success = true;
|
|
170
|
+
console.log(`[${component}] NativeModuleHealer: rebuild succeeded in ${event.durationMs}ms`);
|
|
171
|
+
this.logHealEvent(event);
|
|
172
|
+
this.lastResult = event;
|
|
173
|
+
return true;
|
|
174
|
+
}
|
|
175
|
+
const stderrTail = (result.stderr || result.stdout || '').slice(-300);
|
|
176
|
+
event.errorTail = stderrTail || `npm exited ${result.status}`;
|
|
177
|
+
console.error(`[${component}] NativeModuleHealer: rebuild failed (status=${result.status}): ${event.errorTail}`);
|
|
178
|
+
this.logHealEvent(event);
|
|
179
|
+
this.lastResult = event;
|
|
180
|
+
return false;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Resolve the npm-installable prefix for better-sqlite3. We want the
|
|
184
|
+
* directory whose `node_modules/better-sqlite3` is the one that just
|
|
185
|
+
* failed to load — that's the install prefix npm needs.
|
|
186
|
+
*
|
|
187
|
+
* Strategy: use require.resolve('better-sqlite3'), then walk up to find
|
|
188
|
+
* the parent of the `node_modules/better-sqlite3` segment.
|
|
189
|
+
*/
|
|
190
|
+
findBetterSqlite3InstallPrefix() {
|
|
191
|
+
let resolved;
|
|
192
|
+
try {
|
|
193
|
+
resolved = require.resolve('better-sqlite3');
|
|
194
|
+
}
|
|
195
|
+
catch {
|
|
196
|
+
// Module not installed at all — heal can't help.
|
|
197
|
+
return null;
|
|
198
|
+
}
|
|
199
|
+
// resolved points at a JS file inside node_modules/better-sqlite3/...
|
|
200
|
+
// Walk up to find ".../node_modules/better-sqlite3", then the install
|
|
201
|
+
// prefix is the parent of node_modules.
|
|
202
|
+
const segments = resolved.split(path.sep);
|
|
203
|
+
for (let i = segments.length - 1; i > 0; i--) {
|
|
204
|
+
if (segments[i] === 'better-sqlite3' && segments[i - 1] === 'node_modules') {
|
|
205
|
+
// Install prefix = path up to (but not including) "node_modules"
|
|
206
|
+
return segments.slice(0, i - 1).join(path.sep) || path.sep;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return null;
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Find npm on disk. Mirrors ServerSupervisor.findNpmPath logic.
|
|
213
|
+
*/
|
|
214
|
+
findNpmPath() {
|
|
215
|
+
// Try the node sibling first (most reliable — matches the Node version)
|
|
216
|
+
const currentNodeDir = path.dirname(process.execPath);
|
|
217
|
+
const siblingNpm = path.join(currentNodeDir, 'npm');
|
|
218
|
+
if (fs.existsSync(siblingNpm))
|
|
219
|
+
return siblingNpm;
|
|
220
|
+
// Platform-common locations
|
|
221
|
+
const candidates = os.platform() === 'win32'
|
|
222
|
+
? ['C:\\Program Files\\nodejs\\npm.cmd', 'C:\\Program Files (x86)\\nodejs\\npm.cmd']
|
|
223
|
+
: ['/opt/homebrew/bin/npm', '/usr/local/bin/npm', '/usr/bin/npm'];
|
|
224
|
+
for (const candidate of candidates) {
|
|
225
|
+
if (fs.existsSync(candidate))
|
|
226
|
+
return candidate;
|
|
227
|
+
}
|
|
228
|
+
// PATH lookup as a last resort
|
|
229
|
+
try {
|
|
230
|
+
const which = spawnSync(os.platform() === 'win32' ? 'where' : 'which', ['npm'], {
|
|
231
|
+
encoding: 'utf-8',
|
|
232
|
+
timeout: 5000,
|
|
233
|
+
});
|
|
234
|
+
if (which.status === 0 && which.stdout.trim()) {
|
|
235
|
+
return which.stdout.trim().split(/\r?\n/)[0];
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
catch {
|
|
239
|
+
/* ignore */
|
|
240
|
+
}
|
|
241
|
+
return null;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Clear better-sqlite3 entries from Node's require cache so the fresh
|
|
245
|
+
* native binding is loaded on retry.
|
|
246
|
+
*/
|
|
247
|
+
clearBetterSqlite3Cache() {
|
|
248
|
+
try {
|
|
249
|
+
for (const key of Object.keys(require.cache)) {
|
|
250
|
+
if (key.includes(`${path.sep}better-sqlite3${path.sep}`)) {
|
|
251
|
+
delete require.cache[key];
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
catch {
|
|
256
|
+
/* ignore — best-effort */
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Persist a heal event for observability. Best-effort; never throws.
|
|
261
|
+
* Logged to <stateDir>/native-module-heals.jsonl if stateDir is configured,
|
|
262
|
+
* otherwise to <os.tmpdir>/instar-native-module-heals.jsonl as a fallback.
|
|
263
|
+
*/
|
|
264
|
+
logHealEvent(event) {
|
|
265
|
+
try {
|
|
266
|
+
const dir = this.stateDir || path.join(os.tmpdir(), 'instar');
|
|
267
|
+
try {
|
|
268
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
269
|
+
}
|
|
270
|
+
catch {
|
|
271
|
+
/* ignore */
|
|
272
|
+
}
|
|
273
|
+
const logPath = path.join(dir, HEAL_LOG_FILENAME);
|
|
274
|
+
fs.appendFileSync(logPath, JSON.stringify(event) + '\n');
|
|
275
|
+
}
|
|
276
|
+
catch {
|
|
277
|
+
/* ignore — observability shouldn't break the heal */
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
export const NativeModuleHealer = new NativeModuleHealerImpl();
|
|
282
|
+
//# sourceMappingURL=NativeModuleHealer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NativeModuleHealer.js","sourceRoot":"","sources":["../../src/memory/NativeModuleHealer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,SAAS,EAAyB,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAqB/C,MAAM,iBAAiB,GAAG,2BAA2B,CAAC;AAEtD;;;;GAIG;AACH,MAAM,sBAAsB;IAClB,aAAa,GAAG,KAAK,CAAC;IACtB,UAAU,GAAqB,IAAI,CAAC;IACpC,QAAQ,GAAkB,IAAI,CAAC;IAEvC,2DAA2D;IAC3D,SAAS,CAAC,IAAkC;QAC1C,IAAI,IAAI,CAAC,QAAQ;YAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IACnD,CAAC;IAED,yBAAyB;IACzB,eAAe;QACb,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,+EAA+E;IAC/E,wBAAwB,CAAC,GAAY;QACnC,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACrE,gBAAgB;QAChB,6EAA6E;QAC7E,yFAAyF;QACzF,mCAAmC;QACnC,OAAO,sBAAsB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED,8DAA8D;IAC9D,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,YAAY,CAAI,SAAiB,EAAE,MAA4B;QACnE,IAAI,CAAC;YACH,OAAO,MAAM,MAAM,EAAE,CAAC;QACxB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC;gBAAE,MAAM,GAAG,CAAC;YAEnD,sEAAsE;YACtE,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACvB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;gBAC7B,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO;oBAChC,CAAC,CAAC,2CAA2C,IAAI,CAAC,SAAS,IAAI,SAAS,GAAG;oBAC3E,CAAC,CAAC,8BAA8B,CAAC;gBACnC,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBACpE,OAAO,CAAC,OAAO,GAAG,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;gBAC9C,MAAM,OAAO,CAAC;YAChB,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACvD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,8DAA8D;gBAC9D,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBACpE,OAAO,CAAC,OAAO,GAAG,GAAG,OAAO,CAAC,OAAO,+BAA+B,iBAAiB,GAAG,CAAC;gBACxF,MAAM,OAAO,CAAC;YAChB,CAAC;YAED,kEAAkE;YAClE,8BAA8B;YAC9B,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAE/B,mEAAmE;YACnE,oDAAoD;YACpD,OAAO,MAAM,MAAM,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,iBAAiB,CAAC,SAAiB;QACvC,IAAI,IAAI,CAAC,aAAa;YAAE,OAAO,KAAK,CAAC;QACrC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAE1B,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAc;YACvB,SAAS;YACT,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,OAAO,CAAC,OAAO;SAC7B,CAAC;QAEF,MAAM,aAAa,GAAG,IAAI,CAAC,8BAA8B,EAAE,CAAC;QAC5D,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,KAAK,CAAC,SAAS,GAAG,gDAAgD,CAAC;YACnE,OAAO,CAAC,KAAK,CAAC,IAAI,SAAS,yBAAyB,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YACvE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,CAAC,aAAa,GAAG,aAAa,CAAC;QAEpC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACnC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,KAAK,CAAC,SAAS,GAAG,uBAAuB,CAAC;YAC1C,OAAO,CAAC,KAAK,CAAC,IAAI,SAAS,yBAAyB,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YACvE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;QAExB,OAAO,CAAC,GAAG,CACT,IAAI,SAAS,4DAA4D,OAAO,CAAC,OAAO,YAAY,aAAa,wBAAwB,CAC1I,CAAC;QAEF,IAAI,MAAgC,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,GAAG,SAAS,CAChB,OAAO,CAAC,QAAQ,EAChB,CAAC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,aAAa,CAAC,EACjE;gBACE,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,OAAO;gBAChB,GAAG,EAAE,aAAa;gBAClB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,mBAAmB,EAAE,SAAS,EAAE;aACxD,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,QAAQ,EAAE,CAAC;YAClB,KAAK,CAAC,SAAS,GAAG,iBAAiB,QAAQ,YAAY,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrG,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;YACxC,OAAO,CAAC,KAAK,CAAC,IAAI,SAAS,yBAAyB,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;YACvE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC;QAExC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;YACrB,OAAO,CAAC,GAAG,CAAC,IAAI,SAAS,8CAA8C,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC;YAC7F,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YACzB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;QACtE,KAAK,CAAC,SAAS,GAAG,UAAU,IAAI,cAAc,MAAM,CAAC,MAAM,EAAE,CAAC;QAC9D,OAAO,CAAC,KAAK,CACX,IAAI,SAAS,gDAAgD,MAAM,CAAC,MAAM,MAAM,KAAK,CAAC,SAAS,EAAE,CAClG,CAAC;QACF,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;OAOG;IACK,8BAA8B;QACpC,IAAI,QAAgB,CAAC;QACrB,IAAI,CAAC;YACH,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,iDAAiD;YACjD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,sEAAsE;QACtE,sEAAsE;QACtE,wCAAwC;QACxC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC1C,KAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,IAAI,QAAQ,CAAC,CAAC,CAAC,KAAK,gBAAgB,IAAI,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,cAAc,EAAE,CAAC;gBAC3E,iEAAiE;gBACjE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC;YAC7D,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,WAAW;QACjB,wEAAwE;QACxE,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;QACpD,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;YAAE,OAAO,UAAU,CAAC;QAEjD,4BAA4B;QAC5B,MAAM,UAAU,GACd,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO;YACvB,CAAC,CAAC,CAAC,oCAAoC,EAAE,0CAA0C,CAAC;YACpF,CAAC,CAAC,CAAC,uBAAuB,EAAE,oBAAoB,EAAE,cAAc,CAAC,CAAC;QACtE,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;gBAAE,OAAO,SAAS,CAAC;QACjD,CAAC;QAED,+BAA+B;QAC/B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE;gBAC9E,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;YACH,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC9C,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,YAAY;QACd,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACK,uBAAuB;QAC7B,IAAI,CAAC;YACH,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC7C,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,GAAG,iBAAiB,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;oBACzD,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,0BAA0B;QAC5B,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,YAAY,CAAC,KAAgB;QACnC,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,CAAC;YAC9D,IAAI,CAAC;gBACH,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACzC,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC;YAClD,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QAC3D,CAAC;QAAC,MAAM,CAAC;YACP,qDAAqD;QACvD,CAAC;IACH,CAAC;CACF;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,sBAAsB,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SemanticMemory.d.ts","sourceRoot":"","sources":["../../src/memory/SemanticMemory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAMH,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,eAAe,EACf,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,cAAc,EACd,UAAU,EACV,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAEnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAOzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"SemanticMemory.d.ts","sourceRoot":"","sources":["../../src/memory/SemanticMemory.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,6 +25,7 @@ import { DEFAULT_EVIDENCE_CAP_PER_ENTITY, MAX_EVIDENCE_CAP_PER_ENTITY, MAX_EVIDE
|
|
|
25
25
|
import { VectorSearch } from './VectorSearch.js';
|
|
26
26
|
import { buildPrivacySqlFilter } from '../utils/privacy.js';
|
|
27
27
|
import { isEntityVisibleAtScope as rendererIsEntityVisibleAtScope, isEvidenceVisibleAtScope as rendererIsEvidenceVisibleAtScope, } from './EvidenceRenderer.js';
|
|
28
|
+
import { NativeModuleHealer } from './NativeModuleHealer.js';
|
|
28
29
|
/**
|
|
29
30
|
* Strip FTS5 special syntax characters from a query.
|
|
30
31
|
* Prevents query manipulation via AND, OR, NOT, NEAR, *, column filters.
|
|
@@ -105,19 +106,29 @@ export class SemanticMemory {
|
|
|
105
106
|
async open() {
|
|
106
107
|
if (this.db)
|
|
107
108
|
return;
|
|
108
|
-
let BetterSqlite3;
|
|
109
|
-
try {
|
|
110
|
-
BetterSqlite3 = await import('better-sqlite3');
|
|
111
|
-
}
|
|
112
|
-
catch {
|
|
113
|
-
throw new Error('SemanticMemory requires better-sqlite3. Run: npm install better-sqlite3');
|
|
114
|
-
}
|
|
115
|
-
const constructor = BetterSqlite3.default || BetterSqlite3;
|
|
116
109
|
// Ensure parent directory exists
|
|
117
110
|
const dbDir = path.dirname(this.config.dbPath);
|
|
118
111
|
if (!fs.existsSync(dbDir)) {
|
|
119
112
|
fs.mkdirSync(dbDir, { recursive: true });
|
|
120
113
|
}
|
|
114
|
+
// Resolve the better-sqlite3 constructor through NativeModuleHealer.
|
|
115
|
+
// better-sqlite3 loads its native binding at module-load time, so a
|
|
116
|
+
// NODE_MODULE_VERSION mismatch throws inside `await import(...)`. The
|
|
117
|
+
// healer rebuilds better-sqlite3 synchronously and retries once. See PROP-399.
|
|
118
|
+
const constructor = await NativeModuleHealer.openWithHeal('SemanticMemory', async () => {
|
|
119
|
+
let BetterSqlite3;
|
|
120
|
+
try {
|
|
121
|
+
BetterSqlite3 = await import('better-sqlite3');
|
|
122
|
+
}
|
|
123
|
+
catch (importErr) {
|
|
124
|
+
// Preserve NODE_MODULE_VERSION errors so openWithHeal can detect them.
|
|
125
|
+
// Other errors (e.g. module not installed) get the original user-friendly message.
|
|
126
|
+
if (NativeModuleHealer.isNodeModuleVersionError(importErr))
|
|
127
|
+
throw importErr;
|
|
128
|
+
throw new Error('SemanticMemory requires better-sqlite3. Run: npm install better-sqlite3');
|
|
129
|
+
}
|
|
130
|
+
return BetterSqlite3.default || BetterSqlite3;
|
|
131
|
+
});
|
|
121
132
|
this.db = constructor(this.config.dbPath);
|
|
122
133
|
// Integrity check — auto-recover from corruption (JSONL is source of truth).
|
|
123
134
|
// Corrupt DBs are quarantined (renamed) not deleted, and a marker file is written
|