@memclaw/memclaw 0.9.17 → 0.9.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.
@@ -1,63 +1,44 @@
1
- 'use strict';
1
+ "use strict";
2
2
  /**
3
3
  * Configuration management for MemClaw
4
4
  *
5
5
  * Handles platform-specific config paths, config file generation,
6
6
  * and auto-opening config files for user editing.
7
7
  */
8
- var __createBinding =
9
- (this && this.__createBinding) ||
10
- (Object.create
11
- ? function (o, m, k, k2) {
12
- if (k2 === undefined) k2 = k;
13
- var desc = Object.getOwnPropertyDescriptor(m, k);
14
- if (!desc || ('get' in desc ? !m.__esModule : desc.writable || desc.configurable)) {
15
- desc = {
16
- enumerable: true,
17
- get: function () {
18
- return m[k];
19
- }
20
- };
21
- }
22
- Object.defineProperty(o, k2, desc);
23
- }
24
- : function (o, m, k, k2) {
25
- if (k2 === undefined) k2 = k;
26
- o[k2] = m[k];
27
- });
28
- var __setModuleDefault =
29
- (this && this.__setModuleDefault) ||
30
- (Object.create
31
- ? function (o, v) {
32
- Object.defineProperty(o, 'default', { enumerable: true, value: v });
33
- }
34
- : function (o, v) {
35
- o['default'] = v;
36
- });
37
- var __importStar =
38
- (this && this.__importStar) ||
39
- (function () {
40
- var ownKeys = function (o) {
41
- ownKeys =
42
- Object.getOwnPropertyNames ||
43
- function (o) {
44
- var ar = [];
45
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
46
- return ar;
47
- };
48
- return ownKeys(o);
49
- };
50
- return function (mod) {
51
- if (mod && mod.__esModule) return mod;
52
- var result = {};
53
- if (mod != null)
54
- for (var k = ownKeys(mod), i = 0; i < k.length; i++)
55
- if (k[i] !== 'default') __createBinding(result, mod, k[i]);
56
- __setModuleDefault(result, mod);
57
- return result;
58
- };
59
- })();
60
- Object.defineProperty(exports, '__esModule', { value: true });
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ Object.defineProperty(exports, "__esModule", { value: true });
61
42
  exports.getDataDir = getDataDir;
62
43
  exports.getConfigPath = getConfigPath;
63
44
  exports.generateConfigTemplate = generateConfigTemplate;
@@ -67,29 +48,28 @@ exports.parseConfig = parseConfig;
67
48
  exports.validateConfig = validateConfig;
68
49
  exports.updateConfigFromPlugin = updateConfigFromPlugin;
69
50
  exports.mergeConfigWithPlugin = mergeConfigWithPlugin;
70
- const fs = __importStar(require('fs'));
71
- const path = __importStar(require('path'));
72
- const os = __importStar(require('os'));
73
- const child_process_1 = require('child_process');
51
+ const fs = __importStar(require("fs"));
52
+ const path = __importStar(require("path"));
53
+ const os = __importStar(require("os"));
54
+ const child_process_1 = require("child_process");
74
55
  // Platform-specific paths
75
56
  function getDataDir() {
76
- const platform = process.platform;
77
- if (platform === 'win32') {
78
- return path.join(
79
- process.env.LOCALAPPDATA || path.join(os.homedir(), 'AppData', 'Local'),
80
- 'memclaw'
81
- );
82
- } else if (platform === 'darwin') {
83
- return path.join(os.homedir(), 'Library', 'Application Support', 'memclaw');
84
- } else {
85
- return path.join(os.homedir(), '.local', 'share', 'memclaw');
86
- }
57
+ const platform = process.platform;
58
+ if (platform === 'win32') {
59
+ return path.join(process.env.LOCALAPPDATA || path.join(os.homedir(), 'AppData', 'Local'), 'memclaw');
60
+ }
61
+ else if (platform === 'darwin') {
62
+ return path.join(os.homedir(), 'Library', 'Application Support', 'memclaw');
63
+ }
64
+ else {
65
+ return path.join(os.homedir(), '.local', 'share', 'memclaw');
66
+ }
87
67
  }
88
68
  function getConfigPath() {
89
- return path.join(getDataDir(), 'config.toml');
69
+ return path.join(getDataDir(), 'config.toml');
90
70
  }
91
71
  function generateConfigTemplate() {
92
- return `# MemClaw Configuration
72
+ return `# MemClaw Configuration
93
73
  #
94
74
  # This file was auto-generated. Please fill in the required values below.
95
75
  # All sections are required - missing sections will cause config to be ignored.
@@ -134,222 +114,230 @@ enable_intent_analysis = false
134
114
  `;
135
115
  }
136
116
  function ensureConfigExists() {
137
- const dataDir = getDataDir();
138
- const configPath = getConfigPath();
139
- if (!fs.existsSync(dataDir)) {
140
- fs.mkdirSync(dataDir, { recursive: true });
141
- }
142
- if (!fs.existsSync(configPath)) {
143
- const template = generateConfigTemplate();
144
- fs.writeFileSync(configPath, template, 'utf-8');
145
- return { created: true, path: configPath };
146
- }
147
- return { created: false, path: configPath };
117
+ const dataDir = getDataDir();
118
+ const configPath = getConfigPath();
119
+ if (!fs.existsSync(dataDir)) {
120
+ fs.mkdirSync(dataDir, { recursive: true });
121
+ }
122
+ if (!fs.existsSync(configPath)) {
123
+ const template = generateConfigTemplate();
124
+ fs.writeFileSync(configPath, template, 'utf-8');
125
+ return { created: true, path: configPath };
126
+ }
127
+ return { created: false, path: configPath };
148
128
  }
149
129
  function openConfigFile(configPath) {
150
- return new Promise((resolve, reject) => {
151
- const platform = process.platform;
152
- let command;
153
- let args = [];
154
- if (platform === 'win32') {
155
- command = 'cmd';
156
- args = ['/c', 'start', '""', configPath];
157
- } else if (platform === 'darwin') {
158
- command = 'open';
159
- args = [configPath];
160
- } else {
161
- command = 'xdg-open';
162
- args = [configPath];
163
- }
164
- const proc = (0, child_process_1.spawn)(command, args, { detached: true, stdio: 'ignore' });
165
- proc.on('error', (err) => {
166
- reject(err);
167
- });
168
- proc.unref();
169
- resolve();
170
- });
130
+ return new Promise((resolve, reject) => {
131
+ const platform = process.platform;
132
+ let command;
133
+ let args = [];
134
+ if (platform === 'win32') {
135
+ command = 'cmd';
136
+ args = ['/c', 'start', '""', configPath];
137
+ }
138
+ else if (platform === 'darwin') {
139
+ command = 'open';
140
+ args = [configPath];
141
+ }
142
+ else {
143
+ command = 'xdg-open';
144
+ args = [configPath];
145
+ }
146
+ const proc = (0, child_process_1.spawn)(command, args, { detached: true, stdio: 'ignore' });
147
+ proc.on('error', (err) => {
148
+ reject(err);
149
+ });
150
+ proc.unref();
151
+ resolve();
152
+ });
171
153
  }
172
154
  function parseConfig(configPath) {
173
- const content = fs.readFileSync(configPath, 'utf-8');
174
- const config = {};
175
- let currentSection = '';
176
- for (const line of content.split('\n')) {
177
- const trimmed = line.trim();
178
- // Skip comments and empty lines
179
- if (trimmed.startsWith('#') || trimmed === '') continue;
180
- // Section header
181
- const sectionMatch = trimmed.match(/^\[(\w+)\]$/);
182
- if (sectionMatch) {
183
- currentSection = sectionMatch[1];
184
- config[currentSection] = {};
185
- continue;
186
- }
187
- // Key-value pair
188
- const kvMatch =
189
- trimmed.match(/^(\w+)\s*=\s*"([^"]*)"(?:\s*$|\s*#)/) ||
190
- trimmed.match(/^(\w+)\s*=\s*(\d+(?:\.\d+)?)(?:\s*$|\s*#)/) ||
191
- trimmed.match(/^(\w+)\s*=\s*(true|false)(?:\s*$|\s*#)/);
192
- if (kvMatch && currentSection) {
193
- const key = kvMatch[1];
194
- let value = kvMatch[2];
195
- // Convert to appropriate type
196
- if (value === 'true') value = true;
197
- else if (value === 'false') value = false;
198
- else if (/^\d+$/.test(value)) value = parseInt(value, 10);
199
- else if (/^\d+\.\d+$/.test(value)) value = parseFloat(value);
200
- config[currentSection] = config[currentSection] || {};
201
- config[currentSection][key] = value;
202
- }
203
- }
204
- // Apply defaults
205
- return {
206
- qdrant: {
207
- url: 'http://localhost:6334',
208
- collection_name: 'memclaw',
209
- timeout_secs: 30,
210
- ...(config.qdrant || {})
211
- },
212
- llm: {
213
- api_base_url: 'https://api.openai.com/v1',
214
- api_key: '',
215
- model_efficient: 'gpt-5-mini',
216
- temperature: 0.1,
217
- max_tokens: 4096,
218
- ...(config.llm || {})
219
- },
220
- embedding: {
221
- api_base_url: 'https://api.openai.com/v1',
222
- api_key: '',
223
- model_name: 'text-embedding-3-small',
224
- batch_size: 10,
225
- timeout_secs: 30,
226
- ...(config.embedding || {})
227
- },
228
- server: {
229
- host: 'localhost',
230
- port: 8085,
231
- ...(config.server || {})
232
- },
233
- logging: {
234
- enabled: false,
235
- log_directory: 'logs',
236
- level: 'info',
237
- ...(config.logging || {})
238
- },
239
- cortex: {
240
- enable_intent_analysis: false,
241
- ...(config.cortex || {})
242
- }
243
- };
155
+ const content = fs.readFileSync(configPath, 'utf-8');
156
+ const config = {};
157
+ let currentSection = '';
158
+ for (const line of content.split('\n')) {
159
+ const trimmed = line.trim();
160
+ // Skip comments and empty lines
161
+ if (trimmed.startsWith('#') || trimmed === '')
162
+ continue;
163
+ // Section header
164
+ const sectionMatch = trimmed.match(/^\[(\w+)\]$/);
165
+ if (sectionMatch) {
166
+ currentSection = sectionMatch[1];
167
+ config[currentSection] = {};
168
+ continue;
169
+ }
170
+ // Key-value pair
171
+ const kvMatch = trimmed.match(/^(\w+)\s*=\s*"([^"]*)"(?:\s*$|\s*#)/) ||
172
+ trimmed.match(/^(\w+)\s*=\s*(\d+(?:\.\d+)?)(?:\s*$|\s*#)/) ||
173
+ trimmed.match(/^(\w+)\s*=\s*(true|false)(?:\s*$|\s*#)/);
174
+ if (kvMatch && currentSection) {
175
+ const key = kvMatch[1];
176
+ let value = kvMatch[2];
177
+ // Convert to appropriate type
178
+ if (value === 'true')
179
+ value = true;
180
+ else if (value === 'false')
181
+ value = false;
182
+ else if (/^\d+$/.test(value))
183
+ value = parseInt(value, 10);
184
+ else if (/^\d+\.\d+$/.test(value))
185
+ value = parseFloat(value);
186
+ config[currentSection] = config[currentSection] || {};
187
+ config[currentSection][key] = value;
188
+ }
189
+ }
190
+ // Apply defaults
191
+ return {
192
+ qdrant: {
193
+ url: 'http://localhost:6334',
194
+ collection_name: 'memclaw',
195
+ timeout_secs: 30,
196
+ ...(config.qdrant || {})
197
+ },
198
+ llm: {
199
+ api_base_url: 'https://api.openai.com/v1',
200
+ api_key: '',
201
+ model_efficient: 'gpt-5-mini',
202
+ temperature: 0.1,
203
+ max_tokens: 4096,
204
+ ...(config.llm || {})
205
+ },
206
+ embedding: {
207
+ api_base_url: 'https://api.openai.com/v1',
208
+ api_key: '',
209
+ model_name: 'text-embedding-3-small',
210
+ batch_size: 10,
211
+ timeout_secs: 30,
212
+ ...(config.embedding || {})
213
+ },
214
+ server: {
215
+ host: 'localhost',
216
+ port: 8085,
217
+ ...(config.server || {})
218
+ },
219
+ logging: {
220
+ enabled: false,
221
+ log_directory: 'logs',
222
+ level: 'info',
223
+ ...(config.logging || {})
224
+ },
225
+ cortex: {
226
+ enable_intent_analysis: false,
227
+ ...(config.cortex || {})
228
+ }
229
+ };
244
230
  }
245
231
  function validateConfig(config) {
246
- const errors = [];
247
- if (!config.llm.api_key || config.llm.api_key === '') {
248
- errors.push('llm.api_key is required');
249
- }
250
- if (!config.embedding.api_key || config.embedding.api_key === '') {
251
- // Allow using llm.api_key for embedding if not specified
252
- if (config.llm.api_key && config.llm.api_key !== '') {
253
- config.embedding.api_key = config.llm.api_key;
254
- } else {
255
- errors.push('embedding.api_key is required');
256
- }
257
- }
258
- return {
259
- valid: errors.length === 0,
260
- errors
261
- };
232
+ const errors = [];
233
+ if (!config.llm.api_key || config.llm.api_key === '') {
234
+ errors.push('llm.api_key is required');
235
+ }
236
+ if (!config.embedding.api_key || config.embedding.api_key === '') {
237
+ // Allow using llm.api_key for embedding if not specified
238
+ if (config.llm.api_key && config.llm.api_key !== '') {
239
+ config.embedding.api_key = config.llm.api_key;
240
+ }
241
+ else {
242
+ errors.push('embedding.api_key is required');
243
+ }
244
+ }
245
+ return {
246
+ valid: errors.length === 0,
247
+ errors
248
+ };
262
249
  }
263
250
  /**
264
251
  * Update config.toml with values from OpenClaw plugin config
265
252
  * Only updates fields that are provided (non-empty) in pluginConfig
266
253
  */
267
254
  function updateConfigFromPlugin(pluginConfig) {
268
- const configPath = getConfigPath();
269
- // Ensure config file exists
270
- ensureConfigExists();
271
- // Parse existing config
272
- const existingConfig = parseConfig(configPath);
273
- // Track if any changes were made
274
- let updated = false;
275
- // Build updated config sections
276
- const updates = [];
277
- // LLM config updates
278
- if (pluginConfig.llmApiKey && pluginConfig.llmApiKey !== '') {
279
- updates.push({ section: 'llm', key: 'api_key', value: pluginConfig.llmApiKey });
280
- updated = true;
281
- }
282
- if (pluginConfig.llmApiBaseUrl && pluginConfig.llmApiBaseUrl !== '') {
283
- updates.push({ section: 'llm', key: 'api_base_url', value: pluginConfig.llmApiBaseUrl });
284
- updated = true;
285
- }
286
- if (pluginConfig.llmModel && pluginConfig.llmModel !== '') {
287
- updates.push({ section: 'llm', key: 'model_efficient', value: pluginConfig.llmModel });
288
- updated = true;
289
- }
290
- // Embedding config updates
291
- if (pluginConfig.embeddingApiKey && pluginConfig.embeddingApiKey !== '') {
292
- updates.push({ section: 'embedding', key: 'api_key', value: pluginConfig.embeddingApiKey });
293
- updated = true;
294
- }
295
- if (pluginConfig.embeddingApiBaseUrl && pluginConfig.embeddingApiBaseUrl !== '') {
296
- updates.push({
297
- section: 'embedding',
298
- key: 'api_base_url',
299
- value: pluginConfig.embeddingApiBaseUrl
300
- });
301
- updated = true;
302
- }
303
- if (pluginConfig.embeddingModel && pluginConfig.embeddingModel !== '') {
304
- updates.push({ section: 'embedding', key: 'model_name', value: pluginConfig.embeddingModel });
305
- updated = true;
306
- }
307
- if (!updated) {
308
- return { updated: false, path: configPath };
309
- }
310
- // Read current content
311
- let content = fs.readFileSync(configPath, 'utf-8');
312
- // Apply each update
313
- for (const { section, key, value } of updates) {
314
- // Escape value for TOML string
315
- const escapedValue = value.replace(/\\/g, '\\\\').replace(/"/g, '\\"');
316
- // Pattern to match the key in the correct section
317
- // This handles both existing keys and missing keys
318
- const sectionPattern = new RegExp(`(\\[${section}\\][^\\[]*?)(${key}\\s*=\\s*)"[^"]*"`, 's');
319
- const keyExistsInSection = sectionPattern.test(content);
320
- if (keyExistsInSection) {
321
- // Update existing key
322
- content = content.replace(sectionPattern, `$1$2"${escapedValue}"`);
323
- } else {
324
- // Add key to section
325
- const sectionStartPattern = new RegExp(`(\\[${section}\\]\\n)`, '');
326
- if (sectionStartPattern.test(content)) {
327
- content = content.replace(sectionStartPattern, `$1${key} = "${escapedValue}"\n`);
328
- }
329
- }
330
- }
331
- // Write updated content
332
- fs.writeFileSync(configPath, content, 'utf-8');
333
- return { updated: true, path: configPath };
255
+ const configPath = getConfigPath();
256
+ // Ensure config file exists
257
+ ensureConfigExists();
258
+ // Parse existing config
259
+ const existingConfig = parseConfig(configPath);
260
+ // Track if any changes were made
261
+ let updated = false;
262
+ // Build updated config sections
263
+ const updates = [];
264
+ // LLM config updates
265
+ if (pluginConfig.llmApiKey && pluginConfig.llmApiKey !== '') {
266
+ updates.push({ section: 'llm', key: 'api_key', value: pluginConfig.llmApiKey });
267
+ updated = true;
268
+ }
269
+ if (pluginConfig.llmApiBaseUrl && pluginConfig.llmApiBaseUrl !== '') {
270
+ updates.push({ section: 'llm', key: 'api_base_url', value: pluginConfig.llmApiBaseUrl });
271
+ updated = true;
272
+ }
273
+ if (pluginConfig.llmModel && pluginConfig.llmModel !== '') {
274
+ updates.push({ section: 'llm', key: 'model_efficient', value: pluginConfig.llmModel });
275
+ updated = true;
276
+ }
277
+ // Embedding config updates
278
+ if (pluginConfig.embeddingApiKey && pluginConfig.embeddingApiKey !== '') {
279
+ updates.push({ section: 'embedding', key: 'api_key', value: pluginConfig.embeddingApiKey });
280
+ updated = true;
281
+ }
282
+ if (pluginConfig.embeddingApiBaseUrl && pluginConfig.embeddingApiBaseUrl !== '') {
283
+ updates.push({
284
+ section: 'embedding',
285
+ key: 'api_base_url',
286
+ value: pluginConfig.embeddingApiBaseUrl
287
+ });
288
+ updated = true;
289
+ }
290
+ if (pluginConfig.embeddingModel && pluginConfig.embeddingModel !== '') {
291
+ updates.push({ section: 'embedding', key: 'model_name', value: pluginConfig.embeddingModel });
292
+ updated = true;
293
+ }
294
+ if (!updated) {
295
+ return { updated: false, path: configPath };
296
+ }
297
+ // Read current content
298
+ let content = fs.readFileSync(configPath, 'utf-8');
299
+ // Apply each update
300
+ for (const { section, key, value } of updates) {
301
+ // Escape value for TOML string
302
+ const escapedValue = value.replace(/\\/g, '\\\\').replace(/"/g, '\\"');
303
+ // Pattern to match the key in the correct section
304
+ // This handles both existing keys and missing keys
305
+ const sectionPattern = new RegExp(`(\\[${section}\\][^\\[]*?)(${key}\\s*=\\s*)"[^"]*"`, 's');
306
+ const keyExistsInSection = sectionPattern.test(content);
307
+ if (keyExistsInSection) {
308
+ // Update existing key
309
+ content = content.replace(sectionPattern, `$1$2"${escapedValue}"`);
310
+ }
311
+ else {
312
+ // Add key to section
313
+ const sectionStartPattern = new RegExp(`(\\[${section}\\]\\n)`, '');
314
+ if (sectionStartPattern.test(content)) {
315
+ content = content.replace(sectionStartPattern, `$1${key} = "${escapedValue}"\n`);
316
+ }
317
+ }
318
+ }
319
+ // Write updated content
320
+ fs.writeFileSync(configPath, content, 'utf-8');
321
+ return { updated: true, path: configPath };
334
322
  }
335
323
  /**
336
324
  * Merge plugin config with file config, preferring plugin config values
337
325
  */
338
326
  function mergeConfigWithPlugin(fileConfig, pluginConfig) {
339
- return {
340
- ...fileConfig,
341
- llm: {
342
- ...fileConfig.llm,
343
- api_base_url: pluginConfig.llmApiBaseUrl || fileConfig.llm.api_base_url,
344
- api_key: pluginConfig.llmApiKey || fileConfig.llm.api_key,
345
- model_efficient: pluginConfig.llmModel || fileConfig.llm.model_efficient
346
- },
347
- embedding: {
348
- ...fileConfig.embedding,
349
- api_base_url: pluginConfig.embeddingApiBaseUrl || fileConfig.embedding.api_base_url,
350
- api_key: pluginConfig.embeddingApiKey || fileConfig.embedding.api_key,
351
- model_name: pluginConfig.embeddingModel || fileConfig.embedding.model_name
352
- }
353
- };
327
+ return {
328
+ ...fileConfig,
329
+ llm: {
330
+ ...fileConfig.llm,
331
+ api_base_url: pluginConfig.llmApiBaseUrl || fileConfig.llm.api_base_url,
332
+ api_key: pluginConfig.llmApiKey || fileConfig.llm.api_key,
333
+ model_efficient: pluginConfig.llmModel || fileConfig.llm.model_efficient
334
+ },
335
+ embedding: {
336
+ ...fileConfig.embedding,
337
+ api_base_url: pluginConfig.embeddingApiBaseUrl || fileConfig.embedding.api_base_url,
338
+ api_key: pluginConfig.embeddingApiKey || fileConfig.embedding.api_key,
339
+ model_name: pluginConfig.embeddingModel || fileConfig.embedding.model_name
340
+ }
341
+ };
354
342
  }
355
- //# sourceMappingURL=config.js.map
343
+ //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "memclaw",
3
3
  "name": "MemClaw",
4
- "version": "0.9.17",
4
+ "version": "0.9.19",
5
5
  "description": "Layered semantic memory for OpenClaw with L0/L1/L2 tiered retrieval, easy setup, and migration from native memory",
6
6
  "kind": "memory",
7
7
  "skills": ["skills/memclaw", "skills/memclaw-maintance"],