@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.
- package/dist/index.js +23 -23
- package/dist/plugin-impl.d.ts +4 -1
- package/dist/plugin-impl.d.ts.map +1 -1
- package/dist/plugin-impl.js +396 -77
- package/dist/plugin-impl.js.map +1 -1
- package/dist/src/client.d.ts +85 -42
- package/dist/src/client.d.ts.map +1 -1
- package/dist/src/client.js +138 -80
- package/dist/src/client.js.map +1 -1
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +260 -272
- package/dist/src/config.js.map +1 -1
- package/openclaw.plugin.json +1 -1
- package/package.json +3 -3
- package/skills/memclaw/SKILL.md +197 -47
- package/skills/memclaw/references/best-practices.md +195 -272
- package/skills/memclaw/references/memory-structure.md +160 -0
- package/skills/memclaw/references/security.md +31 -0
- package/skills/memclaw/references/tools.md +243 -122
- package/skills/memclaw-maintance/SKILL.md +73 -46
- package/skills/memclaw-maintance/references/tools.md +10 -148
- package/skills/memclaw-maintance/references/troubleshooting.md +7 -4
- package/skills/lagacy/SKILL.md +0 -239
- package/skills/lagacy/references/maintenance.md +0 -110
- package/skills/lagacy/references/setup.md +0 -279
- package/skills/lagacy/references/tools.md +0 -170
package/dist/src/config.js
CHANGED
|
@@ -1,63 +1,44 @@
|
|
|
1
|
-
|
|
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
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
var
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
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(
|
|
71
|
-
const path = __importStar(require(
|
|
72
|
-
const os = __importStar(require(
|
|
73
|
-
const child_process_1 = require(
|
|
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
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
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
|
-
|
|
69
|
+
return path.join(getDataDir(), 'config.toml');
|
|
90
70
|
}
|
|
91
71
|
function generateConfigTemplate() {
|
|
92
|
-
|
|
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
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
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
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
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
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
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
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
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
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
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
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
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
|
package/dist/src/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQH,gCAaC;AAED,sCAEC;AAoCD,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"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"}
|
package/openclaw.plugin.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "memclaw",
|
|
3
3
|
"name": "MemClaw",
|
|
4
|
-
"version": "0.9.
|
|
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"],
|