@memtensor/memos-local-openclaw-plugin 0.3.16 โ†’ 0.3.18

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/README.md CHANGED
@@ -476,16 +476,19 @@ openclaw gateway stop && openclaw gateway start
476
476
 
477
477
  > **Tip:** To update all plugins at once: `openclaw plugins update --all`
478
478
 
479
- **If `openclaw plugins update` doesn't work** (plugin not in install registry):
479
+ **If `openclaw plugins update` doesn't work** (plugin not in install registry), reinstall:
480
480
 
481
481
  ```bash
482
+ rm -rf ~/.openclaw/extensions/memos-local-openclaw-plugin
482
483
  openclaw plugins install @memtensor/memos-local-openclaw-plugin
483
484
  ```
484
485
 
485
- This will reinstall the latest version. The postinstall script handles everything automatically โ€” no need to manually delete directories or run `npm install`.
486
+ > **Note:** `openclaw plugins install` requires the target directory to not exist. If you see `plugin already exists`, delete the directory first. Your memory data is stored separately at `~/.openclaw/memos-local/memos.db` and will not be affected.
486
487
 
487
488
  ## Troubleshooting
488
489
 
490
+ > ๐Ÿ“– **่ฏฆ็ป†ๆŽ’ๆŸฅๆŒ‡ๅ— / Detailed troubleshooting guide:** [docs/troubleshooting.html](https://memtensor.github.io/MemOS/apps/memos-local-openclaw/docs/troubleshooting.html) โ€” ๅŒ…ๅซ้€ๆญฅๆŽ’ๆŸฅๆต็จ‹ใ€ๆ—ฅๅฟ—ๆŸฅ็œ‹ๆ–นๆณ•ใ€ๅฎŒๅ…จ้‡่ฃ…ๆญฅ้ชค็ญ‰ใ€‚
491
+
489
492
  ### Common Issues
490
493
 
491
494
  1. **Note the exact error** โ€” e.g. `plugin not found`, `Cannot find module 'xxx'`, `Invalid config`.
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEtC,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAKD,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,aAAa,CAAM;gBAEf,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAyBzF,OAAO,CAAC,uBAAuB;IAuB/B,OAAO,CAAC,OAAO;IAuBf,kBAAkB,CAAC,iBAAiB,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,IAAI;IAQ/E,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAQ5E,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAM7C,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAM5C,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAO/D,iBAAiB,IAAI,IAAI;IAIzB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAO1D,OAAO,CAAC,kBAAkB;IAQpB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAOhC"}
1
+ {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEtC,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAKD,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,aAAa,CAAM;gBAEf,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM;IAyBzF,OAAO,CAAC,uBAAuB;IAuB/B,OAAO,CAAC,OAAO;IAuBf,kBAAkB,CAAC,iBAAiB,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,IAAI;IAQ/E,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAO5E,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAM7C,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAM5C,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAO/D,iBAAiB,IAAI,IAAI;IAIzB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAQ1D,OAAO,CAAC,kBAAkB;IAQpB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAOhC"}
package/dist/telemetry.js CHANGED
@@ -136,8 +136,7 @@ class Telemetry {
136
136
  this.maybeSendDailyPing();
137
137
  }
138
138
  trackToolCalled(toolName, latencyMs, success) {
139
- this.capture("tool_called", {
140
- tool_name: toolName,
139
+ this.capture(toolName, {
141
140
  latency_ms: Math.round(latencyMs),
142
141
  success,
143
142
  });
@@ -162,7 +161,8 @@ class Telemetry {
162
161
  this.capture("viewer_opened");
163
162
  }
164
163
  trackAutoRecall(hitCount, latencyMs) {
165
- this.capture("auto_recall", {
164
+ this.capture("memory_search", {
165
+ auto: true,
166
166
  hit_count: hitCount,
167
167
  latency_ms: Math.round(latencyMs),
168
168
  });
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"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"}
package/index.ts CHANGED
@@ -76,17 +76,27 @@ const memosLocalPlugin = {
76
76
 
77
77
  register(api: OpenClawPluginApi) {
78
78
  // โ”€โ”€โ”€ Ensure better-sqlite3 native module is available โ”€โ”€โ”€
79
+ const pluginDir = path.dirname(new URL(import.meta.url).pathname);
79
80
  let sqliteReady = false;
80
- try {
81
- require("better-sqlite3");
82
- sqliteReady = true;
83
- } catch (_e) {
84
- // Not ready โ€” attempt auto-rebuild
81
+
82
+ function trySqliteLoad(): boolean {
83
+ try {
84
+ const resolved = require.resolve("better-sqlite3", { paths: [pluginDir] });
85
+ if (!resolved.startsWith(pluginDir)) {
86
+ api.logger.warn(`memos-local: better-sqlite3 resolved outside plugin dir: ${resolved}`);
87
+ return false;
88
+ }
89
+ require(resolved);
90
+ return true;
91
+ } catch {
92
+ return false;
93
+ }
85
94
  }
86
95
 
96
+ sqliteReady = trySqliteLoad();
97
+
87
98
  if (!sqliteReady) {
88
- const pluginDir = path.dirname(new URL(import.meta.url).pathname);
89
- api.logger.warn(`memos-local: better-sqlite3 not found, attempting auto-rebuild in ${pluginDir} ...`);
99
+ api.logger.warn(`memos-local: better-sqlite3 not found in ${pluginDir}, attempting auto-rebuild ...`);
90
100
 
91
101
  try {
92
102
  const { spawnSync } = require("child_process");
@@ -103,16 +113,14 @@ const memosLocalPlugin = {
103
113
  if (stderr) api.logger.warn(`memos-local: rebuild stderr: ${stderr.slice(0, 500)}`);
104
114
 
105
115
  if (rebuildResult.status === 0) {
106
- // Clear require cache and retry
107
- try {
108
- delete require.cache[require.resolve("better-sqlite3")];
109
- } catch { /* ignore */ }
110
- try {
111
- require("better-sqlite3");
112
- sqliteReady = true;
116
+ Object.keys(require.cache)
117
+ .filter(k => k.includes("better-sqlite3") || k.includes("better_sqlite3"))
118
+ .forEach(k => delete require.cache[k]);
119
+ sqliteReady = trySqliteLoad();
120
+ if (sqliteReady) {
113
121
  api.logger.info("memos-local: better-sqlite3 auto-rebuild succeeded!");
114
- } catch (retryErr) {
115
- api.logger.warn(`memos-local: rebuild exited 0 but module still fails: ${retryErr}`);
122
+ } else {
123
+ api.logger.warn("memos-local: rebuild exited 0 but module still not loadable from plugin dir");
116
124
  }
117
125
  } else {
118
126
  api.logger.warn(`memos-local: rebuild exited with code ${rebuildResult.status}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memtensor/memos-local-openclaw-plugin",
3
- "version": "0.3.16",
3
+ "version": "0.3.18",
4
4
  "description": "MemOS Local memory plugin for OpenClaw โ€” full-write, hybrid-recall, progressive retrieval",
5
5
  "type": "module",
6
6
  "main": "index.ts",
@@ -190,8 +190,43 @@ try {
190
190
 
191
191
  phase(2, "ๆฃ€ๆŸฅ better-sqlite3 ๅŽŸ็”Ÿๆจกๅ— / Check native module");
192
192
 
193
- try {
194
- require("better-sqlite3");
193
+ const sqliteModulePath = path.join(pluginDir, "node_modules", "better-sqlite3");
194
+
195
+ function findSqliteBinding() {
196
+ const candidates = [
197
+ path.join(sqliteModulePath, "build", "Release", "better_sqlite3.node"),
198
+ path.join(sqliteModulePath, "build", "better_sqlite3.node"),
199
+ path.join(sqliteModulePath, "build", "Debug", "better_sqlite3.node"),
200
+ ];
201
+
202
+ const prebuildDir = path.join(sqliteModulePath, "prebuilds");
203
+ if (fs.existsSync(prebuildDir)) {
204
+ try {
205
+ const platformDir = `${process.platform}-${process.arch}`;
206
+ const pbDir = path.join(prebuildDir, platformDir);
207
+ if (fs.existsSync(pbDir)) {
208
+ const files = fs.readdirSync(pbDir).filter(f => f.endsWith(".node"));
209
+ for (const f of files) candidates.push(path.join(pbDir, f));
210
+ }
211
+ } catch { /* ignore */ }
212
+ }
213
+
214
+ for (const c of candidates) {
215
+ if (fs.existsSync(c)) return c;
216
+ }
217
+ return null;
218
+ }
219
+
220
+ function sqliteBindingsExist() {
221
+ const found = findSqliteBinding();
222
+ if (found) {
223
+ log(`Native binding found: ${DIM}${found}${RESET}`);
224
+ return true;
225
+ }
226
+ return false;
227
+ }
228
+
229
+ if (sqliteBindingsExist()) {
195
230
  ok("better-sqlite3 is ready.");
196
231
  console.log(`
197
232
  ${GREEN}${BOLD} โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
@@ -202,8 +237,9 @@ ${GREEN}${BOLD} โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
202
237
  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜${RESET}
203
238
  `);
204
239
  process.exit(0);
205
- } catch (_) {
206
- warn("better-sqlite3 native bindings not found.");
240
+ } else {
241
+ warn("better-sqlite3 native bindings not found in plugin dir.");
242
+ log(`Searched in: ${DIM}${sqliteModulePath}/build/${RESET}`);
207
243
  log("Running: npm rebuild better-sqlite3 (may take 30-60s)...");
208
244
  }
209
245
 
@@ -224,9 +260,7 @@ if (stdout) log(`rebuild output: ${DIM}${stdout.slice(0, 500)}${RESET}`);
224
260
  if (stderr) warn(`rebuild stderr: ${DIM}${stderr.slice(0, 500)}${RESET}`);
225
261
 
226
262
  if (result.status === 0) {
227
- try {
228
- delete require.cache[require.resolve("better-sqlite3")];
229
- require("better-sqlite3");
263
+ if (sqliteBindingsExist()) {
230
264
  ok(`better-sqlite3 rebuilt successfully (${elapsed}s).`);
231
265
  console.log(`
232
266
  ${GREEN}${BOLD} โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
@@ -237,8 +271,9 @@ ${GREEN}${BOLD} โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
237
271
  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜${RESET}
238
272
  `);
239
273
  process.exit(0);
240
- } catch (retryErr) {
241
- fail(`Rebuild completed but module still fails (${elapsed}s): ${retryErr.message}`);
274
+ } else {
275
+ fail(`Rebuild completed but bindings still missing (${elapsed}s).`);
276
+ fail(`Looked in: ${sqliteModulePath}/build/`);
242
277
  }
243
278
  } else {
244
279
  fail(`Rebuild failed with exit code ${result.status} (${elapsed}s).`);
package/src/telemetry.ts CHANGED
@@ -113,8 +113,7 @@ export class Telemetry {
113
113
  }
114
114
 
115
115
  trackToolCalled(toolName: string, latencyMs: number, success: boolean): void {
116
- this.capture("tool_called", {
117
- tool_name: toolName,
116
+ this.capture(toolName, {
118
117
  latency_ms: Math.round(latencyMs),
119
118
  success,
120
119
  });
@@ -144,7 +143,8 @@ export class Telemetry {
144
143
  }
145
144
 
146
145
  trackAutoRecall(hitCount: number, latencyMs: number): void {
147
- this.capture("auto_recall", {
146
+ this.capture("memory_search", {
147
+ auto: true,
148
148
  hit_count: hitCount,
149
149
  latency_ms: Math.round(latencyMs),
150
150
  });