@t0ken.ai/memoryx-openclaw-plugin 1.1.7 → 1.1.9

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/index.d.ts CHANGED
@@ -38,7 +38,6 @@ declare class ConversationBuffer {
38
38
  private lastActivityAt;
39
39
  private readonly ROUND_THRESHOLD;
40
40
  private readonly TIMEOUT_MS;
41
- private readonly MAX_CHARS_PER_MESSAGE;
42
41
  constructor();
43
42
  private generateId;
44
43
  addMessage(role: string, content: string): boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAqCH,UAAU,YAAY;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAUD,UAAU,OAAO;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,YAAY;IAClB,QAAQ,EAAE,KAAK,CAAC;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AA6ED,cAAM,kBAAkB;IACpB,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,cAAc,CAAsB;IAE5C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAK;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAS;;IAM/C,OAAO,CAAC,UAAU;IAIlB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IA2BlD,WAAW,IAAI,OAAO;IAiBtB,KAAK,IAAI;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,EAAE,CAAA;KAAE;IAgBzD,UAAU,IAAI;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,EAAE,CAAA;KAAE,GAAG,IAAI;IAOrE,SAAS,IAAI;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE;CAMhE;AAED,cAAM,aAAa;IACf,OAAO,CAAC,MAAM,CAMZ;IAEF,OAAO,CAAC,MAAM,CAAgD;IAC9D,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,YAAY,CAA6B;gBAErC,YAAY,CAAC,EAAE,YAAY;IA0BvC,OAAO,KAAK,OAAO,GAElB;IAED,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,UAAU;YAIJ,YAAY;IAgC1B,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,eAAe;YAQT,iBAAiB;IAqClB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAyB1D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,YAAY,CAAC;IAoD/D,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtC,SAAS,IAAI;QAChB,WAAW,EAAE,OAAO,CAAC;QACrB,SAAS,EAAE,OAAO,CAAC;QACnB,YAAY,EAAE;YAAE,YAAY,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,CAAA;SAAE,CAAA;KACjE;CAOJ;;;;;;kBAUiB,GAAG,iBAAiB,YAAY,GAAG,IAAI;;AANzD,wBA0EE;AAEF,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AA+CH,UAAU,YAAY;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAUD,UAAU,OAAO;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,YAAY;IAClB,QAAQ,EAAE,KAAK,CAAC;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AA0BD,cAAM,kBAAkB;IACpB,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,cAAc,CAAc;IACpC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,cAAc,CAAsB;IAE5C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAK;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;;IAM7C,OAAO,CAAC,UAAU;IAIlB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAuBlD,WAAW,IAAI,OAAO;IAiBtB,KAAK,IAAI;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,EAAE,CAAA;KAAE;IAgBzD,UAAU,IAAI;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,EAAE,CAAA;KAAE,GAAG,IAAI;IAOrE,SAAS,IAAI;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE;CAMhE;AAED,cAAM,aAAa;IACf,OAAO,CAAC,MAAM,CAMZ;IAEF,OAAO,CAAC,MAAM,CAAgD;IAC9D,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAS;IAC9C,OAAO,CAAC,YAAY,CAA6B;gBAErC,YAAY,CAAC,EAAE,YAAY;IA0BvC,OAAO,KAAK,OAAO,GAElB;IAED,OAAO,CAAC,UAAU;IAWlB,OAAO,CAAC,UAAU;YAIJ,YAAY;IAgC1B,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,eAAe;YAQT,iBAAiB;IAqClB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAyB1D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,YAAY,CAAC;IAoD/D,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAKtC,SAAS,IAAI;QAChB,WAAW,EAAE,OAAO,CAAC;QACrB,SAAS,EAAE,OAAO,CAAC;QACnB,YAAY,EAAE;YAAE,YAAY,EAAE,MAAM,CAAC;YAAC,cAAc,EAAE,MAAM,CAAA;SAAE,CAAA;KACjE;CAOJ;;;;;;kBAUiB,GAAG,iBAAiB,YAAY,GAAG,IAAI;;AANzD,wBA0EE;AAEF,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,CAAC"}
package/dist/index.js CHANGED
@@ -13,10 +13,10 @@ import * as fs from "fs";
13
13
  import * as path from "path";
14
14
  import * as os from "os";
15
15
  import * as crypto from "crypto";
16
- import Database from "better-sqlite3";
17
16
  const DEFAULT_API_BASE = "https://t0ken.ai/api";
18
17
  let logPath = "";
19
18
  let logStream = null;
19
+ let configPath = "";
20
20
  function getLogPath() {
21
21
  if (logPath)
22
22
  return logPath;
@@ -27,6 +27,16 @@ function getLogPath() {
27
27
  }
28
28
  return logPath;
29
29
  }
30
+ function getConfigPath() {
31
+ if (configPath)
32
+ return configPath;
33
+ configPath = path.join(os.homedir(), ".openclaw", "extensions", "memoryx-openclaw-plugin", "config.json");
34
+ const dir = path.dirname(configPath);
35
+ if (!fs.existsSync(dir)) {
36
+ fs.mkdirSync(dir, { recursive: true });
37
+ }
38
+ return configPath;
39
+ }
30
40
  function log(message) {
31
41
  const timestamp = new Date().toISOString();
32
42
  const line = `[${timestamp}] ${message}\n`;
@@ -41,53 +51,13 @@ function log(message) {
41
51
  }
42
52
  console.log(`[MemoryX] ${message}`);
43
53
  }
44
- let db = null;
45
- let dbPath = "";
46
- function getDbPath() {
47
- if (dbPath)
48
- return dbPath;
49
- const possiblePaths = [
50
- path.join(process.cwd(), "memoryx.sqlite"),
51
- path.join(os.homedir(), ".openclaw", "extensions", "memoryx-openclaw-plugin", "memoryx.sqlite"),
52
- path.join(os.homedir(), ".t0ken", "memoryx.sqlite")
53
- ];
54
- for (const p of possiblePaths) {
55
- if (fs.existsSync(p)) {
56
- dbPath = p;
57
- return dbPath;
58
- }
59
- }
60
- dbPath = path.join(os.homedir(), ".openclaw", "extensions", "memoryx-openclaw-plugin", "memoryx.sqlite");
61
- const dir = path.dirname(dbPath);
62
- if (!fs.existsSync(dir)) {
63
- fs.mkdirSync(dir, { recursive: true });
64
- }
65
- return dbPath;
66
- }
67
- function initDb() {
68
- const dbFile = getDbPath();
69
- const database = new Database(dbFile);
70
- database.exec(`
71
- CREATE TABLE IF NOT EXISTS config (
72
- key TEXT PRIMARY KEY,
73
- value TEXT
74
- )
75
- `);
76
- return database;
77
- }
78
- function getDb() {
79
- if (!db) {
80
- db = initDb();
81
- }
82
- return db;
83
- }
84
- class SQLiteStorage {
54
+ class JsonStorage {
85
55
  static load() {
86
56
  try {
87
- const database = getDb();
88
- const row = database.prepare("SELECT value FROM config WHERE key = 'config'").get();
89
- if (row) {
90
- return JSON.parse(row.value);
57
+ const filePath = getConfigPath();
58
+ if (fs.existsSync(filePath)) {
59
+ const data = fs.readFileSync(filePath, "utf-8");
60
+ return JSON.parse(data);
91
61
  }
92
62
  }
93
63
  catch (e) {
@@ -97,10 +67,8 @@ class SQLiteStorage {
97
67
  }
98
68
  static save(config) {
99
69
  try {
100
- const database = getDb();
101
- database.prepare(`
102
- INSERT OR REPLACE INTO config (key, value) VALUES ('config', ?)
103
- `).run(JSON.stringify(config));
70
+ const filePath = getConfigPath();
71
+ fs.writeFileSync(filePath, JSON.stringify(config, null, 2), "utf-8");
104
72
  }
105
73
  catch (e) {
106
74
  console.warn("[MemoryX] Failed to save config:", e);
@@ -116,7 +84,6 @@ class ConversationBuffer {
116
84
  lastActivityAt = Date.now();
117
85
  ROUND_THRESHOLD = 2;
118
86
  TIMEOUT_MS = 30 * 60 * 1000;
119
- MAX_CHARS_PER_MESSAGE = 32000;
120
87
  constructor() {
121
88
  this.conversationId = this.generateId();
122
89
  }
@@ -127,9 +94,6 @@ class ConversationBuffer {
127
94
  if (!content || content.length < 2) {
128
95
  return false;
129
96
  }
130
- if (content.length > this.MAX_CHARS_PER_MESSAGE) {
131
- return false;
132
- }
133
97
  const message = {
134
98
  role,
135
99
  content,
@@ -225,7 +189,7 @@ class MemoryXPlugin {
225
189
  return this.config.apiBaseUrl || DEFAULT_API_BASE;
226
190
  }
227
191
  loadConfig() {
228
- const stored = SQLiteStorage.load();
192
+ const stored = JsonStorage.load();
229
193
  if (stored) {
230
194
  this.config = {
231
195
  ...this.config,
@@ -235,7 +199,7 @@ class MemoryXPlugin {
235
199
  }
236
200
  }
237
201
  saveConfig() {
238
- SQLiteStorage.save(this.config);
202
+ JsonStorage.save(this.config);
239
203
  }
240
204
  async autoRegister() {
241
205
  try {
@@ -407,8 +371,8 @@ export default {
407
371
  if (pluginConfig?.apiBaseUrl) {
408
372
  api.logger.info(`[MemoryX] API Base: \`${pluginConfig.apiBaseUrl}\``);
409
373
  }
410
- api.logger.info(`[MemoryX] Database: ${getDbPath()}`);
411
- log(`Database path: ${getDbPath()}`);
374
+ api.logger.info(`[MemoryX] Config: ${getConfigPath()}`);
375
+ log(`Config path: ${getConfigPath()}`);
412
376
  log(`Log file: ${getLogPath()}`);
413
377
  log("Creating plugin instance");
414
378
  plugin = new MemoryXPlugin(pluginConfig);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@t0ken.ai/memoryx-openclaw-plugin",
3
- "version": "1.1.7",
3
+ "version": "1.1.9",
4
4
  "description": "MemoryX real-time memory capture and recall plugin for OpenClaw",
5
5
  "type": "module",
6
6
  "author": "MemoryX Team",
@@ -31,11 +31,8 @@
31
31
  ]
32
32
  },
33
33
  "devDependencies": {
34
- "@types/better-sqlite3": "^7.6.0",
35
34
  "@types/node": "^20.0.0",
36
35
  "typescript": "^5.0.0"
37
36
  },
38
- "dependencies": {
39
- "better-sqlite3": "^11.0.0"
40
- }
37
+ "dependencies": {}
41
38
  }