@thelapyae/geniclaw 1.0.0 → 1.1.0
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/bin/geniclaw.js +174 -33
- package/dist/config-manager.d.ts +1 -0
- package/dist/config-manager.d.ts.map +1 -1
- package/dist/config-manager.js.map +1 -1
- package/dist/queue-processor.js +41 -14
- package/dist/queue-processor.js.map +1 -1
- package/dist/skill-manager.d.ts +24 -0
- package/dist/skill-manager.d.ts.map +1 -0
- package/dist/skill-manager.js +114 -0
- package/dist/skill-manager.js.map +1 -0
- package/package.json +1 -1
package/bin/geniclaw.js
CHANGED
|
@@ -5,12 +5,14 @@ const fs = require('fs');
|
|
|
5
5
|
const os = require('os');
|
|
6
6
|
const { program } = require('commander');
|
|
7
7
|
const inquirer = require('inquirer');
|
|
8
|
+
const https = require('https'); // For simple URL fetch if needed in TUI directly or via script
|
|
8
9
|
|
|
9
10
|
// Config Paths
|
|
10
11
|
const LOCAL_DIR = path.join(process.cwd(), '.geniclaw');
|
|
11
12
|
const GENICLAW_WORK_DIR = process.env.GENICLAW_WORK_DIR || (fs.existsSync(LOCAL_DIR) ? LOCAL_DIR : path.join(os.homedir(), '.geniclaw'));
|
|
12
13
|
const CONFIG_FILE = path.join(GENICLAW_WORK_DIR, 'config.json');
|
|
13
14
|
const SESSIONS_DIR = path.join(GENICLAW_WORK_DIR, 'sessions');
|
|
15
|
+
const SKILLS_DIR = path.join(GENICLAW_WORK_DIR, 'skills');
|
|
14
16
|
|
|
15
17
|
const SCRIPT_PATH = path.join(__dirname, '../geniclaw.sh');
|
|
16
18
|
|
|
@@ -48,19 +50,39 @@ function saveConfig(config) {
|
|
|
48
50
|
fs.writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2));
|
|
49
51
|
}
|
|
50
52
|
|
|
51
|
-
//
|
|
52
|
-
function
|
|
53
|
-
if (!fs.existsSync(
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
53
|
+
// Helper: Get Skills
|
|
54
|
+
function getSkills() {
|
|
55
|
+
if (!fs.existsSync(SKILLS_DIR)) return [];
|
|
56
|
+
return fs.readdirSync(SKILLS_DIR)
|
|
57
|
+
.filter(f => f.endsWith('.json'))
|
|
58
|
+
.map(f => {
|
|
59
|
+
try { return JSON.parse(fs.readFileSync(path.join(SKILLS_DIR, f), 'utf8')); }
|
|
60
|
+
catch(e) { return null; }
|
|
61
|
+
})
|
|
62
|
+
.filter(s => s !== null);
|
|
59
63
|
}
|
|
60
64
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
return
|
|
65
|
+
// Helper: Install Skill
|
|
66
|
+
async function installSkillFromUrl(url) {
|
|
67
|
+
return new Promise((resolve, reject) => {
|
|
68
|
+
https.get(url, (res) => {
|
|
69
|
+
let data = '';
|
|
70
|
+
res.on('data', chunk => data += chunk);
|
|
71
|
+
res.on('end', () => {
|
|
72
|
+
try {
|
|
73
|
+
const skill = JSON.parse(data);
|
|
74
|
+
if (!skill.name || !skill.systemInstruction) {
|
|
75
|
+
reject(new Error("Invalid skill JSON"));
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
if (!fs.existsSync(SKILLS_DIR)) fs.mkdirSync(SKILLS_DIR, { recursive: true });
|
|
79
|
+
const safeName = skill.name.replace(/[^a-zA-Z0-9_-]/g, '_');
|
|
80
|
+
fs.writeFileSync(path.join(SKILLS_DIR, `${safeName}.json`), JSON.stringify(skill, null, 2));
|
|
81
|
+
resolve(skill);
|
|
82
|
+
} catch(e) { reject(e); }
|
|
83
|
+
});
|
|
84
|
+
}).on('error', reject);
|
|
85
|
+
});
|
|
64
86
|
}
|
|
65
87
|
|
|
66
88
|
// Interactive Menu
|
|
@@ -73,8 +95,10 @@ async function showMenu() {
|
|
|
73
95
|
try {
|
|
74
96
|
const config = loadConfig();
|
|
75
97
|
const activeSession = config.activeSession || 'default';
|
|
76
|
-
|
|
98
|
+
const activeSkill = config.activeSkill || 'None';
|
|
99
|
+
console.log(`Current Model: ${config.geminiModel || 'Default'}`);
|
|
77
100
|
console.log(`Active Session: 📂 ${activeSession}`);
|
|
101
|
+
console.log(`Active Skill: 🧠 ${activeSkill}`);
|
|
78
102
|
} catch (e) {}
|
|
79
103
|
console.log('');
|
|
80
104
|
|
|
@@ -91,7 +115,8 @@ async function showMenu() {
|
|
|
91
115
|
{ name: 'View Logs', value: 'logs' },
|
|
92
116
|
new inquirer.Separator(),
|
|
93
117
|
{ name: '📂 Manage Sessions', value: 'sessions' },
|
|
94
|
-
{ name: '🧠
|
|
118
|
+
{ name: '🧠 Manage Skills', value: 'skills' },
|
|
119
|
+
{ name: '🤖 Change Gemini Model', value: 'model' },
|
|
95
120
|
new inquirer.Separator(),
|
|
96
121
|
{ name: 'Exit', value: 'exit' }
|
|
97
122
|
]
|
|
@@ -113,6 +138,11 @@ async function showMenu() {
|
|
|
113
138
|
return showMenu();
|
|
114
139
|
}
|
|
115
140
|
|
|
141
|
+
if (action === 'skills') {
|
|
142
|
+
await manageSkills();
|
|
143
|
+
return showMenu();
|
|
144
|
+
}
|
|
145
|
+
|
|
116
146
|
if (action === 'logs') {
|
|
117
147
|
await showLogsMenu();
|
|
118
148
|
return showMenu();
|
|
@@ -178,7 +208,9 @@ async function changeModel() {
|
|
|
178
208
|
async function manageSessions() {
|
|
179
209
|
const config = loadConfig();
|
|
180
210
|
const activeSession = config.activeSession || 'default';
|
|
181
|
-
const sessions =
|
|
211
|
+
const sessions = fs.existsSync(SESSIONS_DIR)
|
|
212
|
+
? fs.readdirSync(SESSIONS_DIR).filter(file => fs.statSync(path.join(SESSIONS_DIR, file)).isDirectory())
|
|
213
|
+
: ['default'];
|
|
182
214
|
|
|
183
215
|
const { action } = await inquirer.prompt([
|
|
184
216
|
{
|
|
@@ -210,11 +242,6 @@ async function manageSessions() {
|
|
|
210
242
|
config.activeSession = session;
|
|
211
243
|
saveConfig(config);
|
|
212
244
|
console.log(`✅ Switched to session: ${session}`);
|
|
213
|
-
// We should ideally restart the queue processor or signal it, but usually it re-reads config per message
|
|
214
|
-
// Wait, our queue processor reads config inside processMessage, so it will pick it up instantly for NEW messages!
|
|
215
|
-
// BUT HistoryManager.load() might need to know.
|
|
216
|
-
// In our TS code, HistoryManager.getHistoryPath() calls SessionManager.getActiveSessionPath() which loads config.
|
|
217
|
-
// So it supports hot-swapping!
|
|
218
245
|
} else {
|
|
219
246
|
console.log('Already on this session.');
|
|
220
247
|
}
|
|
@@ -226,7 +253,7 @@ async function manageSessions() {
|
|
|
226
253
|
type: 'input',
|
|
227
254
|
name: 'name',
|
|
228
255
|
message: 'Enter new session name (alphanumeric):',
|
|
229
|
-
validate: input => /^[a-zA-Z0-9_-]+$/.test(input) ? true : 'Invalid name.
|
|
256
|
+
validate: input => /^[a-zA-Z0-9_-]+$/.test(input) ? true : 'Invalid name.'
|
|
230
257
|
}
|
|
231
258
|
]);
|
|
232
259
|
|
|
@@ -236,15 +263,12 @@ async function manageSessions() {
|
|
|
236
263
|
} else {
|
|
237
264
|
fs.mkdirSync(sessionPath, { recursive: true });
|
|
238
265
|
console.log(`✅ Session '${name}' created.`);
|
|
239
|
-
|
|
240
266
|
const { switchTo } = await inquirer.prompt([
|
|
241
267
|
{ type: 'confirm', name: 'switchTo', message: 'Switch to this session now?', default: true }
|
|
242
268
|
]);
|
|
243
|
-
|
|
244
269
|
if (switchTo) {
|
|
245
270
|
config.activeSession = name;
|
|
246
271
|
saveConfig(config);
|
|
247
|
-
console.log(`✅ Switched to session: ${name}`);
|
|
248
272
|
}
|
|
249
273
|
}
|
|
250
274
|
}
|
|
@@ -255,26 +279,141 @@ async function manageSessions() {
|
|
|
255
279
|
type: 'list',
|
|
256
280
|
name: 'session',
|
|
257
281
|
message: 'Select session to delete:',
|
|
258
|
-
choices: sessions.filter(s => s !== 'default' && s !== activeSession)
|
|
282
|
+
choices: sessions.filter(s => s !== 'default' && s !== activeSession)
|
|
259
283
|
}
|
|
260
284
|
]);
|
|
261
|
-
|
|
262
|
-
if (!session) {
|
|
263
|
-
console.log("No deletable sessions available (cannot delete 'default' or active session).");
|
|
264
|
-
} else {
|
|
285
|
+
if (session) {
|
|
265
286
|
const { confirm } = await inquirer.prompt([
|
|
266
|
-
{ type: 'confirm', name: 'confirm', message: `
|
|
287
|
+
{ type: 'confirm', name: 'confirm', message: `Delete '${session}' permanently?`, default: false }
|
|
267
288
|
]);
|
|
268
|
-
|
|
269
289
|
if (confirm) {
|
|
270
290
|
fs.rmSync(path.join(SESSIONS_DIR, session), { recursive: true, force: true });
|
|
271
|
-
console.log(`🗑️ Session
|
|
291
|
+
console.log(`🗑️ Session deleted.`);
|
|
272
292
|
}
|
|
273
293
|
}
|
|
274
294
|
}
|
|
295
|
+
return manageSessions();
|
|
296
|
+
}
|
|
275
297
|
|
|
276
|
-
|
|
277
|
-
|
|
298
|
+
async function manageSkills() {
|
|
299
|
+
const config = loadConfig();
|
|
300
|
+
const activeSkill = config.activeSkill || 'None';
|
|
301
|
+
const skills = getSkills();
|
|
302
|
+
|
|
303
|
+
const { action } = await inquirer.prompt([
|
|
304
|
+
{
|
|
305
|
+
type: 'list',
|
|
306
|
+
name: 'action',
|
|
307
|
+
message: `Manage Skills (Active: ${activeSkill})`,
|
|
308
|
+
choices: [
|
|
309
|
+
{ name: 'Acivate/Deactivate Skill', value: 'activate' },
|
|
310
|
+
{ name: 'Install Skill (from URL)', value: 'install' },
|
|
311
|
+
{ name: 'Create New Skill', value: 'create' },
|
|
312
|
+
{ name: 'List Installed Skills', value: 'list' },
|
|
313
|
+
{ name: 'Delete Skill', value: 'delete' },
|
|
314
|
+
{ name: 'Back', value: 'back' }
|
|
315
|
+
]
|
|
316
|
+
}
|
|
317
|
+
]);
|
|
318
|
+
|
|
319
|
+
if (action === 'back') return;
|
|
320
|
+
|
|
321
|
+
if (action === 'activate') {
|
|
322
|
+
const choices = [
|
|
323
|
+
{ name: 'None (Deactivate)', value: null },
|
|
324
|
+
new inquirer.Separator(),
|
|
325
|
+
...skills.map(s => ({ name: s.name, value: s.name }))
|
|
326
|
+
];
|
|
327
|
+
const { skill } = await inquirer.prompt([
|
|
328
|
+
{
|
|
329
|
+
type: 'list',
|
|
330
|
+
name: 'skill',
|
|
331
|
+
message: 'Select skill to activate:',
|
|
332
|
+
choices: choices,
|
|
333
|
+
default: activeSkill === 'None' ? null : activeSkill
|
|
334
|
+
}
|
|
335
|
+
]);
|
|
336
|
+
|
|
337
|
+
config.activeSkill = skill;
|
|
338
|
+
saveConfig(config);
|
|
339
|
+
console.log(skill ? `✅ Activated skill: ${skill}` : `✅ Skill deactivated.`);
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
if (action === 'install') {
|
|
343
|
+
const { url } = await inquirer.prompt([
|
|
344
|
+
{ type: 'input', name: 'url', message: 'Enter Skill JSON URL:' }
|
|
345
|
+
]);
|
|
346
|
+
try {
|
|
347
|
+
console.log('Downloading...');
|
|
348
|
+
const skill = await installSkillFromUrl(url);
|
|
349
|
+
console.log(`✅ Installed skill: ${skill.name}`);
|
|
350
|
+
const { activate } = await inquirer.prompt([
|
|
351
|
+
{ type: 'confirm', name: 'activate', message: 'Activate this skill now?', default: true }
|
|
352
|
+
]);
|
|
353
|
+
if (activate) {
|
|
354
|
+
config.activeSkill = skill.name;
|
|
355
|
+
saveConfig(config);
|
|
356
|
+
}
|
|
357
|
+
} catch(e) {
|
|
358
|
+
console.log(`❌ Failed: ${e.message}`);
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
if (action === 'create') {
|
|
363
|
+
// Simple creation wizard
|
|
364
|
+
const answers = await inquirer.prompt([
|
|
365
|
+
{ type: 'input', name: 'name', message: 'Skill Name:', validate: i => /^[a-z0-9_-]+$/.test(i) },
|
|
366
|
+
{ type: 'input', name: 'description', message: 'Description:' },
|
|
367
|
+
{ type: 'editor', name: 'instruction', message: 'System Instruction (Persona):' }
|
|
368
|
+
]);
|
|
369
|
+
|
|
370
|
+
const skill = {
|
|
371
|
+
name: answers.name,
|
|
372
|
+
version: "1.0.0",
|
|
373
|
+
description: answers.description,
|
|
374
|
+
author: "local",
|
|
375
|
+
systemInstruction: answers.instruction,
|
|
376
|
+
examples: []
|
|
377
|
+
};
|
|
378
|
+
|
|
379
|
+
if (!fs.existsSync(SKILLS_DIR)) fs.mkdirSync(SKILLS_DIR, { recursive: true });
|
|
380
|
+
fs.writeFileSync(path.join(SKILLS_DIR, `${skill.name}.json`), JSON.stringify(skill, null, 2));
|
|
381
|
+
console.log(`✅ Skill '${skill.name}' created.`);
|
|
382
|
+
}
|
|
383
|
+
|
|
384
|
+
if (action === 'list') {
|
|
385
|
+
console.log('\nInstalled Skills:');
|
|
386
|
+
skills.forEach(s => {
|
|
387
|
+
console.log(`- ${s.name}: ${s.description} (${s.active ? 'ACTIVE' : ''})`);
|
|
388
|
+
});
|
|
389
|
+
await promptContinue();
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
if (action === 'delete') {
|
|
393
|
+
const { skill } = await inquirer.prompt([
|
|
394
|
+
{
|
|
395
|
+
type: 'list',
|
|
396
|
+
name: 'skill',
|
|
397
|
+
message: 'Select skill to delete:',
|
|
398
|
+
choices: skills.map(s => ({ name: s.name, value: s.name}))
|
|
399
|
+
}
|
|
400
|
+
]);
|
|
401
|
+
if (skill) {
|
|
402
|
+
const { confirm } = await inquirer.prompt([
|
|
403
|
+
{ type: 'confirm', name: 'confirm', message: `Delete '${skill}'?`, default: false }
|
|
404
|
+
]);
|
|
405
|
+
if (confirm) {
|
|
406
|
+
fs.unlinkSync(path.join(SKILLS_DIR, `${skill}.json`));
|
|
407
|
+
if (config.activeSkill === skill) {
|
|
408
|
+
delete config.activeSkill;
|
|
409
|
+
saveConfig(config);
|
|
410
|
+
}
|
|
411
|
+
console.log(`🗑️ Skill deleted.`);
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
return manageSkills();
|
|
278
417
|
}
|
|
279
418
|
|
|
280
419
|
async function showLogsMenu() {
|
|
@@ -313,6 +452,8 @@ program
|
|
|
313
452
|
await changeModel();
|
|
314
453
|
} else if (command === 'sessions') {
|
|
315
454
|
await manageSessions();
|
|
455
|
+
} else if (command === 'skills') {
|
|
456
|
+
await manageSkills();
|
|
316
457
|
} else {
|
|
317
458
|
const args = process.argv.slice(2);
|
|
318
459
|
await runScript(args);
|
package/dist/config-manager.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-manager.d.ts","sourceRoot":"","sources":["../src/config-manager.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,iBAAiB,QAAiH,CAAC;AAChJ,eAAO,MAAM,WAAW,QAA8C,CAAC;AAGvE,MAAM,WAAW,SAAS;IAEtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAG/B,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,GAAG,eAAe,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,OAAO,CAAC;CAClG;AAED,qBAAa,aAAa;IACtB,OAAO,CAAC,MAAM,CAAC,YAAY,CAA0B;IAErD,MAAM,CAAC,IAAI,IAAI,SAAS;IAiBxB,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAcpC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI;CAKnD"}
|
|
1
|
+
{"version":3,"file":"config-manager.d.ts","sourceRoot":"","sources":["../src/config-manager.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,iBAAiB,QAAiH,CAAC;AAChJ,eAAO,MAAM,WAAW,QAA8C,CAAC;AAGvE,MAAM,WAAW,SAAS;IAEtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAG/B,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,GAAG,eAAe,GAAG,mBAAmB,GAAG,kBAAkB,GAAG,OAAO,CAAC;CAClG;AAED,qBAAa,aAAa;IACtB,OAAO,CAAC,MAAM,CAAC,YAAY,CAA0B;IAErD,MAAM,CAAC,IAAI,IAAI,SAAS;IAiBxB,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI;IAcpC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI;CAKnD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-manager.js","sourceRoot":"","sources":["../src/config-manager.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,4CAAoB;AAEpB,eAAe;AACf,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;AAC3C,QAAA,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;AACnI,QAAA,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,yBAAiB,EAAE,aAAa,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"config-manager.js","sourceRoot":"","sources":["../src/config-manager.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AACxB,4CAAoB;AAEpB,eAAe;AACf,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;AAC3C,QAAA,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;AACnI,QAAA,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,yBAAiB,EAAE,aAAa,CAAC,CAAC;AAuBvE,MAAa,aAAa;IACd,MAAM,CAAC,YAAY,GAAqB,IAAI,CAAC;IAErD,MAAM,CAAC,IAAI;QACP,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC,YAAY,CAAC;QAEhD,IAAI,YAAE,CAAC,UAAU,CAAC,mBAAW,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACD,MAAM,IAAI,GAAG,YAAE,CAAC,YAAY,CAAC,mBAAW,EAAE,MAAM,CAAC,CAAC;gBAClD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACrC,OAAO,IAAI,CAAC,YAAa,CAAC;YAC9B,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,OAAO,CAAC,KAAK,CAAC,0BAA2B,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YACpE,CAAC;QACL,CAAC;QAED,iBAAiB;QACjB,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,MAAiB;QACzB,IAAI,CAAC;YACD,0BAA0B;YAC1B,IAAI,CAAC,YAAE,CAAC,UAAU,CAAC,yBAAiB,CAAC,EAAE,CAAC;gBACpC,YAAE,CAAC,SAAS,CAAC,yBAAiB,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YACzD,CAAC;YAED,YAAE,CAAC,aAAa,CAAC,mBAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/D,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC;QAC/B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,OAAO,CAAC,KAAK,CAAC,0BAA2B,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC;QACpE,CAAC;IACL,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,OAA2B;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;;AAtCL,sCAuCC"}
|
package/dist/queue-processor.js
CHANGED
|
@@ -15,6 +15,7 @@ const generative_ai_1 = require("@google/generative-ai");
|
|
|
15
15
|
const dotenv_1 = __importDefault(require("dotenv"));
|
|
16
16
|
const config_manager_1 = require("./config-manager");
|
|
17
17
|
const session_manager_1 = require("./session-manager");
|
|
18
|
+
const skill_manager_1 = require("./skill-manager");
|
|
18
19
|
// Load environment variables
|
|
19
20
|
const SCRIPT_DIR = path_1.default.resolve(__dirname, '..');
|
|
20
21
|
const GENICLAW_WORK_DIR = process.env.GENICLAW_WORK_DIR || path_1.default.join(os_1.default.homedir(), '.geniclaw');
|
|
@@ -93,10 +94,6 @@ class HistoryManager {
|
|
|
93
94
|
// Memory Management
|
|
94
95
|
async function manageMemory(model, history, newContent) {
|
|
95
96
|
try {
|
|
96
|
-
// Calculate tokens
|
|
97
|
-
// We need to approximation or use countTokens if possible.
|
|
98
|
-
// To count tokens correctly, we need to construct the request.
|
|
99
|
-
// We'll approximate for speed or count if API allows.
|
|
100
97
|
// Construct full history for counting
|
|
101
98
|
const fullContent = [
|
|
102
99
|
...history,
|
|
@@ -112,15 +109,9 @@ async function manageMemory(model, history, newContent) {
|
|
|
112
109
|
if (totalTokens > MAX_HISTORY_TOKENS) {
|
|
113
110
|
log('WARN', `Context limit exceeded (${totalTokens}). Pruning history...`);
|
|
114
111
|
// Sliding Window: Remove oldest messages until we fit.
|
|
115
|
-
// Always keep latest message (newContent).
|
|
116
|
-
// Strategy: Remove from index 0 until we fit.
|
|
117
112
|
let prunedHistory = [...history];
|
|
118
|
-
// Safety break
|
|
119
113
|
let attempts = 0;
|
|
120
114
|
while (prunedHistory.length > 0 && attempts < 100) {
|
|
121
|
-
// Remove 2 items (user + model pair) to keep conversation flow, or just 1.
|
|
122
|
-
// Removing 1 might mess up turns if model expects strict user/model alternation?
|
|
123
|
-
// Gemini usually handles it, but pairs are safer.
|
|
124
115
|
prunedHistory.shift();
|
|
125
116
|
const currentContents = [
|
|
126
117
|
...prunedHistory,
|
|
@@ -133,7 +124,6 @@ async function manageMemory(model, history, newContent) {
|
|
|
133
124
|
}
|
|
134
125
|
attempts++;
|
|
135
126
|
}
|
|
136
|
-
// If we cant fit even with empty history (just new message), we just return empty history
|
|
137
127
|
return [];
|
|
138
128
|
}
|
|
139
129
|
return history;
|
|
@@ -182,12 +172,21 @@ async function processMessage(messageFile) {
|
|
|
182
172
|
let config = config_manager_1.ConfigManager.load();
|
|
183
173
|
// Prepare System Instruction
|
|
184
174
|
let systemInstruction = "";
|
|
175
|
+
// 1. User/Bot Onboarding Info
|
|
185
176
|
if (config.userName)
|
|
186
177
|
systemInstruction += `User's Name: ${config.userName}\n`;
|
|
187
178
|
if (config.botName)
|
|
188
179
|
systemInstruction += `Your Name: ${config.botName}\n`;
|
|
189
180
|
if (config.botPurpose)
|
|
190
181
|
systemInstruction += `Your Persona/Purpose: ${config.botPurpose}\n`;
|
|
182
|
+
// 2. Active Skill
|
|
183
|
+
const activeSkill = skill_manager_1.SkillManager.getActiveSkill();
|
|
184
|
+
if (activeSkill) {
|
|
185
|
+
systemInstruction += `\n--- ACTIVE SKILL: ${activeSkill.name} ---\n`;
|
|
186
|
+
systemInstruction += `${activeSkill.systemInstruction}\n`;
|
|
187
|
+
systemInstruction += `----------------------------------\n`;
|
|
188
|
+
log('INFO', `Using Skill: ${activeSkill.name}`);
|
|
189
|
+
}
|
|
191
190
|
// Get Model
|
|
192
191
|
if (!genAI)
|
|
193
192
|
await initGemini();
|
|
@@ -205,7 +204,6 @@ async function processMessage(messageFile) {
|
|
|
205
204
|
let history = HistoryManager.load();
|
|
206
205
|
// Check for Stats Command
|
|
207
206
|
if (message.trim() === '/stats') {
|
|
208
|
-
// Calculate current stats
|
|
209
207
|
let sessionName = config.activeSession || 'default';
|
|
210
208
|
let tokenCount = 0;
|
|
211
209
|
try {
|
|
@@ -214,7 +212,8 @@ async function processMessage(messageFile) {
|
|
|
214
212
|
tokenCount = result.totalTokens;
|
|
215
213
|
}
|
|
216
214
|
catch (e) { }
|
|
217
|
-
|
|
215
|
+
let skillInfo = activeSkill ? `\nActive Skill: \`${activeSkill.name}\`` : '';
|
|
216
|
+
const reply = `📊 **Session Stats**\nSession: \`${sessionName}\`${skillInfo}\nHistory Length: ${history.length} turns\nTokens Used: ~${tokenCount} / ${MAX_HISTORY_TOKENS}`;
|
|
218
217
|
const responseData = {
|
|
219
218
|
channel,
|
|
220
219
|
sender,
|
|
@@ -229,7 +228,35 @@ async function processMessage(messageFile) {
|
|
|
229
228
|
fs_1.default.unlinkSync(processingFile);
|
|
230
229
|
return;
|
|
231
230
|
}
|
|
231
|
+
// Inject Skill Examples into History (Transient, only for this turn if history is empty?
|
|
232
|
+
// Or strictly pre-pend?
|
|
233
|
+
// If we inject into history, it becomes part of the conversation.
|
|
234
|
+
// Let's prepend them transiently for the chat start if supported,
|
|
235
|
+
// OR just rely on System Instruction which is safer for context window management.
|
|
236
|
+
// Actually, few-shot examples are best in history.
|
|
237
|
+
// But if history is long, they might get pruned or be too far back.
|
|
238
|
+
// For simplicity in this iteration, we stick to System Instruction for the persona.
|
|
239
|
+
// If skill has specific examples, we could add them if history is empty.
|
|
240
|
+
if (history.length === 0 && activeSkill && activeSkill.examples && activeSkill.examples.length > 0) {
|
|
241
|
+
for (const example of activeSkill.examples) {
|
|
242
|
+
history.push({ role: 'user', parts: [{ text: example.input }] });
|
|
243
|
+
history.push({ role: 'model', parts: [{ text: example.output }] });
|
|
244
|
+
}
|
|
245
|
+
// Note: We don't save this to file, so it's "transient" for the first turn?
|
|
246
|
+
// Actually, if we pass it to `startChat`, it initializes the chat with it.
|
|
247
|
+
// If we don't save it, next time history is loaded, it's gone.
|
|
248
|
+
// That's actually perfect for "System Examples".
|
|
249
|
+
// BUT, `history` variable here is what we pass to `startChat`.
|
|
250
|
+
// If we assume `startChat` maintains it in memory object, that's fine.
|
|
251
|
+
// But we save `history` after generation.
|
|
252
|
+
// If we save it, it becomes permanent.
|
|
253
|
+
// Let's NOT save examples to persistent history to avoid cluttering or duplicating.
|
|
254
|
+
// So we pass a `chatHistory` to startChat but keep `history` (file) separate?
|
|
255
|
+
// No, file history is source of truth.
|
|
256
|
+
// Let's just USE SYSTEM INSTRUCTION for now.
|
|
257
|
+
}
|
|
232
258
|
// Memory Management: Prune if necessary
|
|
259
|
+
// Note: We pass `history` (from file) to manageMemory.
|
|
233
260
|
history = await manageMemory(model, history, message);
|
|
234
261
|
// Generate
|
|
235
262
|
let responseText;
|
|
@@ -238,7 +265,7 @@ async function processMessage(messageFile) {
|
|
|
238
265
|
const result = await chat.sendMessage(message);
|
|
239
266
|
const response = await result.response;
|
|
240
267
|
responseText = response.text();
|
|
241
|
-
// Save History
|
|
268
|
+
// Save History (append new turn)
|
|
242
269
|
history.push({ role: 'user', parts: [{ text: message }] });
|
|
243
270
|
history.push({ role: 'model', parts: [{ text: responseText }] });
|
|
244
271
|
HistoryManager.save(history);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue-processor.js","sourceRoot":"","sources":["../src/queue-processor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"queue-processor.js","sourceRoot":"","sources":["../src/queue-processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export interface SkillExample {
|
|
2
|
+
input: string;
|
|
3
|
+
output: string;
|
|
4
|
+
}
|
|
5
|
+
export interface Skill {
|
|
6
|
+
name: string;
|
|
7
|
+
version: string;
|
|
8
|
+
description: string;
|
|
9
|
+
author: string;
|
|
10
|
+
systemInstruction: string;
|
|
11
|
+
examples?: SkillExample[];
|
|
12
|
+
}
|
|
13
|
+
export declare class SkillManager {
|
|
14
|
+
static init(): void;
|
|
15
|
+
static listSkills(): Skill[];
|
|
16
|
+
static getSkill(name: string): Skill | null;
|
|
17
|
+
static startSkillCreation(name: string, description: string, instruction: string): void;
|
|
18
|
+
static saveSkill(skill: Skill): void;
|
|
19
|
+
static deleteSkill(name: string): boolean;
|
|
20
|
+
static activateSkill(name: string | undefined): void;
|
|
21
|
+
static getActiveSkill(): Skill | null;
|
|
22
|
+
static installFromUrl(url: string): Promise<string>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=skill-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-manager.d.ts","sourceRoot":"","sources":["../src/skill-manager.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,KAAK;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,YAAY,EAAE,CAAC;CAC7B;AAED,qBAAa,YAAY;IACrB,MAAM,CAAC,IAAI;IAMX,MAAM,CAAC,UAAU,IAAI,KAAK,EAAE;IAe5B,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;IAa3C,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAavF,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAOpC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAgBzC,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAIpD,MAAM,CAAC,cAAc,IAAI,KAAK,GAAG,IAAI;WAMxB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAwB5D"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.SkillManager = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const https_1 = __importDefault(require("https"));
|
|
10
|
+
const config_manager_1 = require("./config-manager");
|
|
11
|
+
const SKILLS_DIR = path_1.default.join(config_manager_1.GENICLAW_WORK_DIR, 'skills');
|
|
12
|
+
class SkillManager {
|
|
13
|
+
static init() {
|
|
14
|
+
if (!fs_1.default.existsSync(SKILLS_DIR)) {
|
|
15
|
+
fs_1.default.mkdirSync(SKILLS_DIR, { recursive: true });
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
static listSkills() {
|
|
19
|
+
this.init();
|
|
20
|
+
return fs_1.default.readdirSync(SKILLS_DIR)
|
|
21
|
+
.filter(file => file.endsWith('.json'))
|
|
22
|
+
.map(file => {
|
|
23
|
+
try {
|
|
24
|
+
const content = fs_1.default.readFileSync(path_1.default.join(SKILLS_DIR, file), 'utf8');
|
|
25
|
+
return JSON.parse(content);
|
|
26
|
+
}
|
|
27
|
+
catch (e) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
})
|
|
31
|
+
.filter((s) => s !== null);
|
|
32
|
+
}
|
|
33
|
+
static getSkill(name) {
|
|
34
|
+
this.init();
|
|
35
|
+
const skillPath = path_1.default.join(SKILLS_DIR, `${name}.json`);
|
|
36
|
+
if (fs_1.default.existsSync(skillPath)) {
|
|
37
|
+
try {
|
|
38
|
+
return JSON.parse(fs_1.default.readFileSync(skillPath, 'utf8'));
|
|
39
|
+
}
|
|
40
|
+
catch (e) {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
static startSkillCreation(name, description, instruction) {
|
|
47
|
+
this.init();
|
|
48
|
+
const skill = {
|
|
49
|
+
name,
|
|
50
|
+
version: '1.0.0',
|
|
51
|
+
description,
|
|
52
|
+
author: 'user',
|
|
53
|
+
systemInstruction: instruction,
|
|
54
|
+
examples: []
|
|
55
|
+
};
|
|
56
|
+
this.saveSkill(skill);
|
|
57
|
+
}
|
|
58
|
+
static saveSkill(skill) {
|
|
59
|
+
this.init();
|
|
60
|
+
const safeName = skill.name.replace(/[^a-zA-Z0-9_-]/g, '_');
|
|
61
|
+
const skillPath = path_1.default.join(SKILLS_DIR, `${safeName}.json`);
|
|
62
|
+
fs_1.default.writeFileSync(skillPath, JSON.stringify(skill, null, 2));
|
|
63
|
+
}
|
|
64
|
+
static deleteSkill(name) {
|
|
65
|
+
this.init();
|
|
66
|
+
const skillPath = path_1.default.join(SKILLS_DIR, `${name}.json`);
|
|
67
|
+
if (fs_1.default.existsSync(skillPath)) {
|
|
68
|
+
fs_1.default.unlinkSync(skillPath);
|
|
69
|
+
// If active, deactivate
|
|
70
|
+
const config = config_manager_1.ConfigManager.load();
|
|
71
|
+
if (config.activeSkill === name) {
|
|
72
|
+
config_manager_1.ConfigManager.update({ activeSkill: undefined });
|
|
73
|
+
}
|
|
74
|
+
return true;
|
|
75
|
+
}
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
static activateSkill(name) {
|
|
79
|
+
config_manager_1.ConfigManager.update({ activeSkill: name });
|
|
80
|
+
}
|
|
81
|
+
static getActiveSkill() {
|
|
82
|
+
const config = config_manager_1.ConfigManager.load();
|
|
83
|
+
if (!config.activeSkill)
|
|
84
|
+
return null;
|
|
85
|
+
return this.getSkill(config.activeSkill);
|
|
86
|
+
}
|
|
87
|
+
static async installFromUrl(url) {
|
|
88
|
+
this.init();
|
|
89
|
+
return new Promise((resolve, reject) => {
|
|
90
|
+
https_1.default.get(url, (res) => {
|
|
91
|
+
let data = '';
|
|
92
|
+
res.on('data', (chunk) => data += chunk);
|
|
93
|
+
res.on('end', () => {
|
|
94
|
+
try {
|
|
95
|
+
const skill = JSON.parse(data);
|
|
96
|
+
if (!skill.name || !skill.systemInstruction) {
|
|
97
|
+
reject(new Error('Invalid skill format: missing name or systemInstruction'));
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
this.saveSkill(skill);
|
|
101
|
+
resolve(skill.name);
|
|
102
|
+
}
|
|
103
|
+
catch (e) {
|
|
104
|
+
reject(new Error('Failed to parse skill JSON'));
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
}).on('error', (err) => {
|
|
108
|
+
reject(err);
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
exports.SkillManager = SkillManager;
|
|
114
|
+
//# sourceMappingURL=skill-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"skill-manager.js","sourceRoot":"","sources":["../src/skill-manager.ts"],"names":[],"mappings":"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"}
|