@memtensor/memos-local-openclaw-plugin 1.0.2-beta.1 → 1.0.2-beta.2
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/index.ts +33 -26
- package/package.json +1 -1
package/index.ts
CHANGED
|
@@ -134,37 +134,44 @@ const memosLocalPlugin = {
|
|
|
134
134
|
sqliteReady = trySqliteLoad();
|
|
135
135
|
|
|
136
136
|
if (!sqliteReady) {
|
|
137
|
-
api.logger.warn(`memos-local: better-sqlite3 not found in ${pluginDir}, attempting auto-
|
|
137
|
+
api.logger.warn(`memos-local: better-sqlite3 not found in ${pluginDir}, attempting auto-fix ...`);
|
|
138
138
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
139
|
+
const { spawnSync } = require("child_process");
|
|
140
|
+
const clearCache = () => {
|
|
141
|
+
Object.keys(require.cache)
|
|
142
|
+
.filter(k => k.includes("better-sqlite3") || k.includes("better_sqlite3"))
|
|
143
|
+
.forEach(k => delete require.cache[k]);
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
const strategies = [
|
|
147
|
+
{ label: "npm rebuild better-sqlite3", cmd: ["npm", ["rebuild", "better-sqlite3"]] },
|
|
148
|
+
{ label: "npm install better-sqlite3 --no-save", cmd: ["npm", ["install", "better-sqlite3", "--no-save"]] },
|
|
149
|
+
{ label: "full npm install", cmd: ["npm", ["install", "--omit=dev"]] },
|
|
150
|
+
] as const;
|
|
147
151
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
if (
|
|
159
|
-
|
|
152
|
+
for (const { label, cmd } of strategies) {
|
|
153
|
+
if (sqliteReady) break;
|
|
154
|
+
api.logger.info(`memos-local: trying ${label} ...`);
|
|
155
|
+
try {
|
|
156
|
+
const r = spawnSync(cmd[0], cmd[1], {
|
|
157
|
+
cwd: pluginDir, stdio: "pipe", shell: true, timeout: 180_000,
|
|
158
|
+
});
|
|
159
|
+
const out = r.stdout?.toString()?.slice(0, 300) || "";
|
|
160
|
+
const err = r.stderr?.toString()?.slice(0, 300) || "";
|
|
161
|
+
if (out) api.logger.info(`memos-local: ${label} stdout: ${out}`);
|
|
162
|
+
if (err && r.status !== 0) api.logger.warn(`memos-local: ${label} stderr: ${err}`);
|
|
163
|
+
if (r.status === 0) {
|
|
164
|
+
clearCache();
|
|
165
|
+
sqliteReady = trySqliteLoad();
|
|
166
|
+
if (sqliteReady) {
|
|
167
|
+
api.logger.info(`memos-local: better-sqlite3 fixed via "${label}"`);
|
|
168
|
+
}
|
|
160
169
|
} else {
|
|
161
|
-
api.logger.warn(
|
|
170
|
+
api.logger.warn(`memos-local: ${label} exited with code ${r.status}`);
|
|
162
171
|
}
|
|
163
|
-
}
|
|
164
|
-
api.logger.warn(`memos-local:
|
|
172
|
+
} catch (e) {
|
|
173
|
+
api.logger.warn(`memos-local: ${label} error: ${e}`);
|
|
165
174
|
}
|
|
166
|
-
} catch (rebuildErr) {
|
|
167
|
-
api.logger.warn(`memos-local: auto-rebuild error: ${rebuildErr}`);
|
|
168
175
|
}
|
|
169
176
|
|
|
170
177
|
if (!sqliteReady) {
|
package/package.json
CHANGED