@bonginkan/maria 2.1.0 → 2.1.2
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 +25 -2
- package/dist/bin/maria.js +21013 -11461
- package/dist/bin/maria.js.map +1 -1
- package/dist/cli.js +20094 -10752
- package/dist/cli.js.map +1 -1
- package/dist/index.js +131662 -0
- package/dist/index.js.map +1 -0
- package/dist/metafile-cjs.json +1 -0
- package/dist/services/linux-command-intelligence/command-knowledge-base.d.ts +96 -0
- package/dist/services/linux-command-intelligence/command-knowledge-base.js +597 -0
- package/dist/services/linux-command-intelligence/command-knowledge-base.js.map +1 -0
- package/dist/services/linux-command-intelligence/context-analyzer.d.ts +111 -0
- package/dist/services/linux-command-intelligence/context-analyzer.js +427 -0
- package/dist/services/linux-command-intelligence/context-analyzer.js.map +1 -0
- package/package.json +5 -3
|
@@ -0,0 +1,427 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var events = require('events');
|
|
4
|
+
var os = require('os');
|
|
5
|
+
var child_process = require('child_process');
|
|
6
|
+
var util = require('util');
|
|
7
|
+
|
|
8
|
+
function _interopNamespace(e) {
|
|
9
|
+
if (e && e.__esModule) return e;
|
|
10
|
+
var n = Object.create(null);
|
|
11
|
+
if (e) {
|
|
12
|
+
Object.keys(e).forEach(function (k) {
|
|
13
|
+
if (k !== 'default') {
|
|
14
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
15
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function () { return e[k]; }
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
n.default = e;
|
|
23
|
+
return Object.freeze(n);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
var os__namespace = /*#__PURE__*/_interopNamespace(os);
|
|
27
|
+
|
|
28
|
+
var __defProp = Object.defineProperty;
|
|
29
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
30
|
+
var execAsync = util.promisify(child_process.exec);
|
|
31
|
+
var CommandIntent = /* @__PURE__ */ ((CommandIntent2) => {
|
|
32
|
+
CommandIntent2["FILE_OPERATION"] = "FILE_OPERATION";
|
|
33
|
+
CommandIntent2["PROCESS_MANAGEMENT"] = "PROCESS_MANAGEMENT";
|
|
34
|
+
CommandIntent2["SYSTEM_INFO"] = "SYSTEM_INFO";
|
|
35
|
+
CommandIntent2["NETWORK_OPERATION"] = "NETWORK_OPERATION";
|
|
36
|
+
CommandIntent2["PACKAGE_MANAGEMENT"] = "PACKAGE_MANAGEMENT";
|
|
37
|
+
CommandIntent2["PERFORMANCE_OPTIMIZATION"] = "PERFORMANCE_OPTIMIZATION";
|
|
38
|
+
CommandIntent2["DISK_MANAGEMENT"] = "DISK_MANAGEMENT";
|
|
39
|
+
CommandIntent2["USER_MANAGEMENT"] = "USER_MANAGEMENT";
|
|
40
|
+
CommandIntent2["SERVICE_CONTROL"] = "SERVICE_CONTROL";
|
|
41
|
+
CommandIntent2["LOG_ANALYSIS"] = "LOG_ANALYSIS";
|
|
42
|
+
CommandIntent2["SECURITY_AUDIT"] = "SECURITY_AUDIT";
|
|
43
|
+
CommandIntent2["BACKUP_RESTORE"] = "BACKUP_RESTORE";
|
|
44
|
+
CommandIntent2["CONTAINER_OPERATION"] = "CONTAINER_OPERATION";
|
|
45
|
+
CommandIntent2["UNKNOWN"] = "UNKNOWN";
|
|
46
|
+
return CommandIntent2;
|
|
47
|
+
})(CommandIntent || {});
|
|
48
|
+
var RiskLevel = /* @__PURE__ */ ((RiskLevel2) => {
|
|
49
|
+
RiskLevel2["SAFE"] = "SAFE";
|
|
50
|
+
RiskLevel2["LOW"] = "LOW";
|
|
51
|
+
RiskLevel2["MEDIUM"] = "MEDIUM";
|
|
52
|
+
RiskLevel2["HIGH"] = "HIGH";
|
|
53
|
+
RiskLevel2["CRITICAL"] = "CRITICAL";
|
|
54
|
+
return RiskLevel2;
|
|
55
|
+
})(RiskLevel || {});
|
|
56
|
+
var CommandCategory = /* @__PURE__ */ ((CommandCategory2) => {
|
|
57
|
+
CommandCategory2["READ_ONLY"] = "READ_ONLY";
|
|
58
|
+
CommandCategory2["WRITE"] = "WRITE";
|
|
59
|
+
CommandCategory2["DELETE"] = "DELETE";
|
|
60
|
+
CommandCategory2["SYSTEM_MODIFY"] = "SYSTEM_MODIFY";
|
|
61
|
+
CommandCategory2["NETWORK"] = "NETWORK";
|
|
62
|
+
CommandCategory2["PROCESS"] = "PROCESS";
|
|
63
|
+
CommandCategory2["SECURITY"] = "SECURITY";
|
|
64
|
+
return CommandCategory2;
|
|
65
|
+
})(CommandCategory || {});
|
|
66
|
+
var ActionType = /* @__PURE__ */ ((ActionType2) => {
|
|
67
|
+
ActionType2["IMMEDIATE"] = "IMMEDIATE";
|
|
68
|
+
ActionType2["SCHEDULED"] = "SCHEDULED";
|
|
69
|
+
ActionType2["CONDITIONAL"] = "CONDITIONAL";
|
|
70
|
+
ActionType2["MONITORING"] = "MONITORING";
|
|
71
|
+
ActionType2["PREVENTIVE"] = "PREVENTIVE";
|
|
72
|
+
return ActionType2;
|
|
73
|
+
})(ActionType || {});
|
|
74
|
+
var ContextAnalyzer = class extends events.EventEmitter {
|
|
75
|
+
static {
|
|
76
|
+
__name(this, "ContextAnalyzer");
|
|
77
|
+
}
|
|
78
|
+
intentPatterns;
|
|
79
|
+
systemState = null;
|
|
80
|
+
updateInterval = null;
|
|
81
|
+
constructor() {
|
|
82
|
+
super();
|
|
83
|
+
this.intentPatterns = this.initializeIntentPatterns();
|
|
84
|
+
this.startSystemMonitoring();
|
|
85
|
+
}
|
|
86
|
+
initializeIntentPatterns() {
|
|
87
|
+
const patterns = /* @__PURE__ */ new Map();
|
|
88
|
+
patterns.set("FILE_OPERATION" /* FILE_OPERATION */, [
|
|
89
|
+
/\b(file|files|directory|folder|copy|move|delete|remove|create|mkdir|touch|find|search|locate)\b/i,
|
|
90
|
+
/\b(ls|cd|pwd|cp|mv|rm|mkdir|rmdir|touch|find|grep|sed|awk)\b/i,
|
|
91
|
+
/\b(permission|chmod|chown|access)\b/i
|
|
92
|
+
]);
|
|
93
|
+
patterns.set("PROCESS_MANAGEMENT" /* PROCESS_MANAGEMENT */, [
|
|
94
|
+
/\b(process|processes|kill|stop|start|restart|pid|running|ps|top|htop)\b/i,
|
|
95
|
+
/\b(cpu|memory|usage|performance|slow|hang|frozen|unresponsive)\b/i,
|
|
96
|
+
/\b(service|daemon|systemctl|systemd)\b/i
|
|
97
|
+
]);
|
|
98
|
+
patterns.set("SYSTEM_INFO" /* SYSTEM_INFO */, [
|
|
99
|
+
/\b(system|info|information|status|check|show|display|version|kernel)\b/i,
|
|
100
|
+
/\b(uname|hostname|uptime|date|who|w|df|du|free)\b/i,
|
|
101
|
+
/\b(hardware|cpu|memory|disk|network)\b/i
|
|
102
|
+
]);
|
|
103
|
+
patterns.set("NETWORK_OPERATION" /* NETWORK_OPERATION */, [
|
|
104
|
+
/\b(network|connection|internet|wifi|ethernet|ip|port|socket)\b/i,
|
|
105
|
+
/\b(ping|traceroute|netstat|ss|lsof|tcpdump|curl|wget|nc)\b/i,
|
|
106
|
+
/\b(firewall|iptables|routing|dns)\b/i
|
|
107
|
+
]);
|
|
108
|
+
patterns.set("PACKAGE_MANAGEMENT" /* PACKAGE_MANAGEMENT */, [
|
|
109
|
+
/\b(install|uninstall|update|upgrade|package|dependency|library)\b/i,
|
|
110
|
+
/\b(apt|yum|dnf|snap|brew|npm|pip|gem|cargo|docker)\b/i,
|
|
111
|
+
/\b(software|application|program)\b/i
|
|
112
|
+
]);
|
|
113
|
+
patterns.set("PERFORMANCE_OPTIMIZATION" /* PERFORMANCE_OPTIMIZATION */, [
|
|
114
|
+
/\b(optimize|performance|speed|slow|fast|improve|enhance)\b/i,
|
|
115
|
+
/\b(cache|clean|cleanup|free|space|memory|swap)\b/i,
|
|
116
|
+
/\b(benchmark|profile|analyze)\b/i
|
|
117
|
+
]);
|
|
118
|
+
patterns.set("DISK_MANAGEMENT" /* DISK_MANAGEMENT */, [
|
|
119
|
+
/\b(disk|storage|partition|mount|unmount|filesystem|volume)\b/i,
|
|
120
|
+
/\b(df|du|fdisk|mkfs|fsck|mount|umount)\b/i,
|
|
121
|
+
/\b(space|full|usage|capacity)\b/i
|
|
122
|
+
]);
|
|
123
|
+
patterns.set("LOG_ANALYSIS" /* LOG_ANALYSIS */, [
|
|
124
|
+
/\b(log|logs|journal|syslog|error|warning|debug|trace)\b/i,
|
|
125
|
+
/\b(tail|head|journalctl|dmesg|last|history)\b/i,
|
|
126
|
+
/\b(analyze|parse|filter|search)\b/i
|
|
127
|
+
]);
|
|
128
|
+
patterns.set("SECURITY_AUDIT" /* SECURITY_AUDIT */, [
|
|
129
|
+
/\b(security|audit|vulnerability|scan|check|permission|access)\b/i,
|
|
130
|
+
/\b(sudo|root|privilege|authentication|password|ssh|ssl)\b/i,
|
|
131
|
+
/\b(firewall|selinux|apparmor|encryption)\b/i
|
|
132
|
+
]);
|
|
133
|
+
patterns.set("BACKUP_RESTORE" /* BACKUP_RESTORE */, [
|
|
134
|
+
/\b(backup|restore|archive|compress|extract|tar|zip|rsync)\b/i,
|
|
135
|
+
/\b(snapshot|recovery|disaster|migrate)\b/i,
|
|
136
|
+
/\b(save|preserve|protect)\b/i
|
|
137
|
+
]);
|
|
138
|
+
return patterns;
|
|
139
|
+
}
|
|
140
|
+
async analyzeUserIntent(input) {
|
|
141
|
+
const scores = /* @__PURE__ */ new Map();
|
|
142
|
+
for (const [intent, patterns] of this.intentPatterns) {
|
|
143
|
+
let score = 0;
|
|
144
|
+
for (const pattern of patterns) {
|
|
145
|
+
const matches = input.match(pattern);
|
|
146
|
+
if (matches) {
|
|
147
|
+
score += matches.length;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
scores.set(intent, score);
|
|
151
|
+
}
|
|
152
|
+
let maxScore = 0;
|
|
153
|
+
let detectedIntent = "UNKNOWN" /* UNKNOWN */;
|
|
154
|
+
for (const [intent, score] of scores) {
|
|
155
|
+
if (score > maxScore) {
|
|
156
|
+
maxScore = score;
|
|
157
|
+
detectedIntent = intent;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
this.emit("intentAnalyzed", { input, intent: detectedIntent, confidence: maxScore });
|
|
161
|
+
return detectedIntent;
|
|
162
|
+
}
|
|
163
|
+
async determineRequiredCommands(intent) {
|
|
164
|
+
const commands = [];
|
|
165
|
+
switch (intent) {
|
|
166
|
+
case "FILE_OPERATION" /* FILE_OPERATION */:
|
|
167
|
+
commands.push(
|
|
168
|
+
this.createCommand("ls", ["-la"], [], false, "SAFE" /* SAFE */, "READ_ONLY" /* READ_ONLY */),
|
|
169
|
+
this.createCommand("find", [".", "-type", "f"], [], false, "SAFE" /* SAFE */, "READ_ONLY" /* READ_ONLY */)
|
|
170
|
+
);
|
|
171
|
+
break;
|
|
172
|
+
case "PROCESS_MANAGEMENT" /* PROCESS_MANAGEMENT */:
|
|
173
|
+
commands.push(
|
|
174
|
+
this.createCommand("ps", ["aux"], [], false, "SAFE" /* SAFE */, "READ_ONLY" /* READ_ONLY */),
|
|
175
|
+
this.createCommand("top", ["-b", "-n", "1"], [], false, "SAFE" /* SAFE */, "READ_ONLY" /* READ_ONLY */)
|
|
176
|
+
);
|
|
177
|
+
break;
|
|
178
|
+
case "SYSTEM_INFO" /* SYSTEM_INFO */:
|
|
179
|
+
commands.push(
|
|
180
|
+
this.createCommand("uname", ["-a"], [], false, "SAFE" /* SAFE */, "READ_ONLY" /* READ_ONLY */),
|
|
181
|
+
this.createCommand("df", ["-h"], [], false, "SAFE" /* SAFE */, "READ_ONLY" /* READ_ONLY */),
|
|
182
|
+
this.createCommand("free", ["-h"], [], false, "SAFE" /* SAFE */, "READ_ONLY" /* READ_ONLY */)
|
|
183
|
+
);
|
|
184
|
+
break;
|
|
185
|
+
case "NETWORK_OPERATION" /* NETWORK_OPERATION */:
|
|
186
|
+
commands.push(
|
|
187
|
+
this.createCommand("netstat", ["-tuln"], [], false, "SAFE" /* SAFE */, "READ_ONLY" /* READ_ONLY */),
|
|
188
|
+
this.createCommand("ss", ["-tuln"], [], false, "SAFE" /* SAFE */, "READ_ONLY" /* READ_ONLY */)
|
|
189
|
+
);
|
|
190
|
+
break;
|
|
191
|
+
case "PERFORMANCE_OPTIMIZATION" /* PERFORMANCE_OPTIMIZATION */:
|
|
192
|
+
commands.push(
|
|
193
|
+
this.createCommand("vmstat", ["1", "5"], [], false, "SAFE" /* SAFE */, "READ_ONLY" /* READ_ONLY */),
|
|
194
|
+
this.createCommand("iostat", ["-x", "1", "5"], [], false, "SAFE" /* SAFE */, "READ_ONLY" /* READ_ONLY */)
|
|
195
|
+
);
|
|
196
|
+
break;
|
|
197
|
+
case "DISK_MANAGEMENT" /* DISK_MANAGEMENT */:
|
|
198
|
+
commands.push(
|
|
199
|
+
this.createCommand("df", ["-h"], [], false, "SAFE" /* SAFE */, "READ_ONLY" /* READ_ONLY */),
|
|
200
|
+
this.createCommand("du", ["-sh", "*"], [], false, "SAFE" /* SAFE */, "READ_ONLY" /* READ_ONLY */),
|
|
201
|
+
this.createCommand("lsblk", [], [], false, "SAFE" /* SAFE */, "READ_ONLY" /* READ_ONLY */)
|
|
202
|
+
);
|
|
203
|
+
break;
|
|
204
|
+
case "LOG_ANALYSIS" /* LOG_ANALYSIS */:
|
|
205
|
+
commands.push(
|
|
206
|
+
this.createCommand("journalctl", ["-xe", "--no-pager", "-n", "50"], [], false, "SAFE" /* SAFE */, "READ_ONLY" /* READ_ONLY */),
|
|
207
|
+
this.createCommand("dmesg", ["--level=err,warn", "-T"], [], false, "SAFE" /* SAFE */, "READ_ONLY" /* READ_ONLY */)
|
|
208
|
+
);
|
|
209
|
+
break;
|
|
210
|
+
default:
|
|
211
|
+
commands.push(
|
|
212
|
+
this.createCommand("echo", ["Intent not recognized"], [], false, "SAFE" /* SAFE */, "READ_ONLY" /* READ_ONLY */)
|
|
213
|
+
);
|
|
214
|
+
}
|
|
215
|
+
return commands;
|
|
216
|
+
}
|
|
217
|
+
async assessSystemState() {
|
|
218
|
+
const context = {
|
|
219
|
+
os: os__namespace.type(),
|
|
220
|
+
platform: os__namespace.platform(),
|
|
221
|
+
arch: os__namespace.arch(),
|
|
222
|
+
hostname: os__namespace.hostname(),
|
|
223
|
+
uptime: os__namespace.uptime(),
|
|
224
|
+
loadAverage: os__namespace.loadavg(),
|
|
225
|
+
totalMemory: os__namespace.totalmem(),
|
|
226
|
+
freeMemory: os__namespace.freemem(),
|
|
227
|
+
cpuUsage: await this.getCPUUsage(),
|
|
228
|
+
diskUsage: await this.getDiskUsage(),
|
|
229
|
+
networkInterfaces: os__namespace.networkInterfaces(),
|
|
230
|
+
currentUser: os__namespace.userInfo().username,
|
|
231
|
+
isRoot: process.getuid ? process.getuid() === 0 : false,
|
|
232
|
+
environmentVariables: process.env
|
|
233
|
+
};
|
|
234
|
+
return context;
|
|
235
|
+
}
|
|
236
|
+
async predictNextActions(currentState) {
|
|
237
|
+
const actions = [];
|
|
238
|
+
const context = currentState.context;
|
|
239
|
+
const memoryUsagePercent = (context.totalMemory - context.freeMemory) / context.totalMemory * 100;
|
|
240
|
+
if (memoryUsagePercent > 80) {
|
|
241
|
+
actions.push({
|
|
242
|
+
type: "IMMEDIATE" /* IMMEDIATE */,
|
|
243
|
+
command: this.createCommand(
|
|
244
|
+
"sync",
|
|
245
|
+
[],
|
|
246
|
+
[],
|
|
247
|
+
false,
|
|
248
|
+
"SAFE" /* SAFE */,
|
|
249
|
+
"SYSTEM_MODIFY" /* SYSTEM_MODIFY */,
|
|
250
|
+
"Sync filesystem buffers"
|
|
251
|
+
),
|
|
252
|
+
priority: 1,
|
|
253
|
+
reason: "High memory usage detected",
|
|
254
|
+
expectedOutcome: "Free up memory by syncing buffers"
|
|
255
|
+
});
|
|
256
|
+
actions.push({
|
|
257
|
+
type: "CONDITIONAL" /* CONDITIONAL */,
|
|
258
|
+
command: this.createCommand(
|
|
259
|
+
"echo",
|
|
260
|
+
["3"],
|
|
261
|
+
[],
|
|
262
|
+
true,
|
|
263
|
+
"MEDIUM" /* MEDIUM */,
|
|
264
|
+
"SYSTEM_MODIFY" /* SYSTEM_MODIFY */,
|
|
265
|
+
"Clear page cache"
|
|
266
|
+
),
|
|
267
|
+
priority: 2,
|
|
268
|
+
reason: "Memory usage critical",
|
|
269
|
+
expectedOutcome: "Drop caches to free memory"
|
|
270
|
+
});
|
|
271
|
+
}
|
|
272
|
+
for (const disk of context.diskUsage) {
|
|
273
|
+
const usage = parseInt(disk.usePercent);
|
|
274
|
+
if (usage > 90) {
|
|
275
|
+
actions.push({
|
|
276
|
+
type: "IMMEDIATE" /* IMMEDIATE */,
|
|
277
|
+
command: this.createCommand(
|
|
278
|
+
"find",
|
|
279
|
+
[disk.mountPoint, "-type", "f", "-size", "+100M"],
|
|
280
|
+
[],
|
|
281
|
+
false,
|
|
282
|
+
"SAFE" /* SAFE */,
|
|
283
|
+
"READ_ONLY" /* READ_ONLY */,
|
|
284
|
+
"Find large files"
|
|
285
|
+
),
|
|
286
|
+
priority: 1,
|
|
287
|
+
reason: `Disk usage critical on ${disk.mountPoint}`,
|
|
288
|
+
expectedOutcome: "Identify large files for cleanup"
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
const loadThreshold = os__namespace.cpus().length * 2;
|
|
293
|
+
const loadAvg = context.loadAverage?.[0];
|
|
294
|
+
if (loadAvg && loadAvg > loadThreshold) {
|
|
295
|
+
actions.push({
|
|
296
|
+
type: "MONITORING" /* MONITORING */,
|
|
297
|
+
command: this.createCommand(
|
|
298
|
+
"top",
|
|
299
|
+
["-b", "-n", "1", "-o", "%CPU"],
|
|
300
|
+
[],
|
|
301
|
+
false,
|
|
302
|
+
"SAFE" /* SAFE */,
|
|
303
|
+
"READ_ONLY" /* READ_ONLY */,
|
|
304
|
+
"Monitor CPU usage"
|
|
305
|
+
),
|
|
306
|
+
priority: 1,
|
|
307
|
+
reason: "High system load detected",
|
|
308
|
+
expectedOutcome: "Identify resource-intensive processes"
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
if (context.uptime > 86400 * 30) {
|
|
312
|
+
actions.push({
|
|
313
|
+
type: "PREVENTIVE" /* PREVENTIVE */,
|
|
314
|
+
command: this.createCommand(
|
|
315
|
+
"apt",
|
|
316
|
+
["update"],
|
|
317
|
+
[],
|
|
318
|
+
true,
|
|
319
|
+
"LOW" /* LOW */,
|
|
320
|
+
"SYSTEM_MODIFY" /* SYSTEM_MODIFY */,
|
|
321
|
+
"Update package lists"
|
|
322
|
+
),
|
|
323
|
+
priority: 3,
|
|
324
|
+
reason: "System running for over 30 days",
|
|
325
|
+
expectedOutcome: "Ensure package lists are current"
|
|
326
|
+
});
|
|
327
|
+
}
|
|
328
|
+
return actions.sort((a, b) => a.priority - b.priority);
|
|
329
|
+
}
|
|
330
|
+
createCommand(command, args, flags, sudo, risk, category, description = "") {
|
|
331
|
+
return {
|
|
332
|
+
command,
|
|
333
|
+
args,
|
|
334
|
+
flags,
|
|
335
|
+
sudo,
|
|
336
|
+
risk,
|
|
337
|
+
category,
|
|
338
|
+
description
|
|
339
|
+
};
|
|
340
|
+
}
|
|
341
|
+
async getCPUUsage() {
|
|
342
|
+
try {
|
|
343
|
+
const { stdout } = await execAsync("top -b -n 1 | grep 'Cpu(s)' | awk '{print $2}' | cut -d'%' -f1");
|
|
344
|
+
return parseFloat(stdout.trim()) || 0;
|
|
345
|
+
} catch {
|
|
346
|
+
return 0;
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
async getDiskUsage() {
|
|
350
|
+
try {
|
|
351
|
+
const { stdout } = await execAsync("df -h");
|
|
352
|
+
const lines = stdout.trim().split("\n").slice(1);
|
|
353
|
+
return lines.map((line) => {
|
|
354
|
+
const parts = line.split(/\s+/);
|
|
355
|
+
return {
|
|
356
|
+
filesystem: parts[0] || "",
|
|
357
|
+
size: parts[1] || "",
|
|
358
|
+
used: parts[2] || "",
|
|
359
|
+
available: parts[3] || "",
|
|
360
|
+
usePercent: parts[4] || "",
|
|
361
|
+
mountPoint: parts[5] || ""
|
|
362
|
+
};
|
|
363
|
+
});
|
|
364
|
+
} catch {
|
|
365
|
+
return [];
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
async updateSystemState() {
|
|
369
|
+
const context = await this.assessSystemState();
|
|
370
|
+
let activeServices = [];
|
|
371
|
+
let openPorts = [];
|
|
372
|
+
let runningProcesses = 0;
|
|
373
|
+
try {
|
|
374
|
+
const { stdout: psOutput } = await execAsync("ps aux | wc -l");
|
|
375
|
+
runningProcesses = parseInt(psOutput.trim()) - 1;
|
|
376
|
+
} catch {
|
|
377
|
+
}
|
|
378
|
+
try {
|
|
379
|
+
if (process.platform === "linux") {
|
|
380
|
+
const { stdout } = await execAsync("systemctl list-units --state=running --no-pager --no-legend | head -20");
|
|
381
|
+
activeServices = stdout.trim().split("\n").map((line) => line.split(/\s+/)[0] || "").filter((s) => s);
|
|
382
|
+
}
|
|
383
|
+
} catch {
|
|
384
|
+
}
|
|
385
|
+
try {
|
|
386
|
+
const { stdout } = await execAsync("netstat -tuln | grep LISTEN");
|
|
387
|
+
openPorts = stdout.trim().split("\n").map((line) => {
|
|
388
|
+
const match = line.match(/:(\d+)\s/);
|
|
389
|
+
return match && match[1] ? parseInt(match[1]) : 0;
|
|
390
|
+
}).filter((port) => port > 0);
|
|
391
|
+
} catch {
|
|
392
|
+
}
|
|
393
|
+
this.systemState = {
|
|
394
|
+
context,
|
|
395
|
+
runningProcesses,
|
|
396
|
+
activeServices,
|
|
397
|
+
openPorts,
|
|
398
|
+
recentCommands: [],
|
|
399
|
+
currentWorkingDirectory: process.cwd(),
|
|
400
|
+
timestamp: /* @__PURE__ */ new Date()
|
|
401
|
+
};
|
|
402
|
+
this.emit("systemStateUpdated", this.systemState);
|
|
403
|
+
}
|
|
404
|
+
startSystemMonitoring() {
|
|
405
|
+
this.updateSystemState();
|
|
406
|
+
this.updateInterval = setInterval(() => {
|
|
407
|
+
this.updateSystemState();
|
|
408
|
+
}, 3e4);
|
|
409
|
+
}
|
|
410
|
+
stopMonitoring() {
|
|
411
|
+
if (this.updateInterval) {
|
|
412
|
+
clearInterval(this.updateInterval);
|
|
413
|
+
this.updateInterval = null;
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
getSystemState() {
|
|
417
|
+
return this.systemState;
|
|
418
|
+
}
|
|
419
|
+
};
|
|
420
|
+
|
|
421
|
+
exports.ActionType = ActionType;
|
|
422
|
+
exports.CommandCategory = CommandCategory;
|
|
423
|
+
exports.CommandIntent = CommandIntent;
|
|
424
|
+
exports.ContextAnalyzer = ContextAnalyzer;
|
|
425
|
+
exports.RiskLevel = RiskLevel;
|
|
426
|
+
//# sourceMappingURL=context-analyzer.js.map
|
|
427
|
+
//# sourceMappingURL=context-analyzer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/services/linux-command-intelligence/context-analyzer.ts"],"names":["promisify","exec","CommandIntent","RiskLevel","CommandCategory","ActionType","EventEmitter","os"],"mappings":"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","file":"context-analyzer.js","sourcesContent":["import { EventEmitter } from 'events';\nimport * as os from 'os';\nimport { exec } from 'child_process';\nimport { promisify } from 'util';\n\nconst execAsync = promisify(exec);\n\nexport enum CommandIntent {\n FILE_OPERATION = 'FILE_OPERATION',\n PROCESS_MANAGEMENT = 'PROCESS_MANAGEMENT',\n SYSTEM_INFO = 'SYSTEM_INFO',\n NETWORK_OPERATION = 'NETWORK_OPERATION',\n PACKAGE_MANAGEMENT = 'PACKAGE_MANAGEMENT',\n PERFORMANCE_OPTIMIZATION = 'PERFORMANCE_OPTIMIZATION',\n DISK_MANAGEMENT = 'DISK_MANAGEMENT',\n USER_MANAGEMENT = 'USER_MANAGEMENT',\n SERVICE_CONTROL = 'SERVICE_CONTROL',\n LOG_ANALYSIS = 'LOG_ANALYSIS',\n SECURITY_AUDIT = 'SECURITY_AUDIT',\n BACKUP_RESTORE = 'BACKUP_RESTORE',\n CONTAINER_OPERATION = 'CONTAINER_OPERATION',\n UNKNOWN = 'UNKNOWN'\n}\n\nexport interface LinuxCommand {\n command: string;\n args: string[];\n flags: string[];\n sudo: boolean;\n risk: RiskLevel;\n category: CommandCategory;\n description: string;\n alternatives?: LinuxCommand[];\n}\n\nexport enum RiskLevel {\n SAFE = 'SAFE',\n LOW = 'LOW',\n MEDIUM = 'MEDIUM',\n HIGH = 'HIGH',\n CRITICAL = 'CRITICAL'\n}\n\nexport enum CommandCategory {\n READ_ONLY = 'READ_ONLY',\n WRITE = 'WRITE',\n DELETE = 'DELETE',\n SYSTEM_MODIFY = 'SYSTEM_MODIFY',\n NETWORK = 'NETWORK',\n PROCESS = 'PROCESS',\n SECURITY = 'SECURITY'\n}\n\nexport interface SystemContext {\n os: string;\n platform: string;\n arch: string;\n hostname: string;\n uptime: number;\n loadAverage: number[];\n totalMemory: number;\n freeMemory: number;\n cpuUsage: number;\n diskUsage: DiskUsage[];\n networkInterfaces: any;\n currentUser: string;\n isRoot: boolean;\n environmentVariables: Record<string, string>;\n}\n\nexport interface DiskUsage {\n filesystem: string;\n size: string;\n used: string;\n available: string;\n usePercent: string;\n mountPoint: string;\n}\n\nexport interface SystemState {\n context: SystemContext;\n runningProcesses: number;\n activeServices: string[];\n openPorts: number[];\n recentCommands: string[];\n currentWorkingDirectory: string;\n timestamp: Date;\n}\n\nexport interface Action {\n type: ActionType;\n command: LinuxCommand;\n priority: number;\n reason: string;\n expectedOutcome: string;\n}\n\nexport enum ActionType {\n IMMEDIATE = 'IMMEDIATE',\n SCHEDULED = 'SCHEDULED',\n CONDITIONAL = 'CONDITIONAL',\n MONITORING = 'MONITORING',\n PREVENTIVE = 'PREVENTIVE'\n}\n\nexport class ContextAnalyzer extends EventEmitter {\n private intentPatterns: Map<CommandIntent, RegExp[]>;\n private systemState: SystemState | null = null;\n private updateInterval: NodeJS.Timeout | null = null;\n\n constructor() {\n super();\n this.intentPatterns = this.initializeIntentPatterns();\n this.startSystemMonitoring();\n }\n\n private initializeIntentPatterns(): Map<CommandIntent, RegExp[]> {\n const patterns = new Map<CommandIntent, RegExp[]>();\n\n patterns.set(CommandIntent.FILE_OPERATION, [\n /\\b(file|files|directory|folder|copy|move|delete|remove|create|mkdir|touch|find|search|locate)\\b/i,\n /\\b(ls|cd|pwd|cp|mv|rm|mkdir|rmdir|touch|find|grep|sed|awk)\\b/i,\n /\\b(permission|chmod|chown|access)\\b/i\n ]);\n\n patterns.set(CommandIntent.PROCESS_MANAGEMENT, [\n /\\b(process|processes|kill|stop|start|restart|pid|running|ps|top|htop)\\b/i,\n /\\b(cpu|memory|usage|performance|slow|hang|frozen|unresponsive)\\b/i,\n /\\b(service|daemon|systemctl|systemd)\\b/i\n ]);\n\n patterns.set(CommandIntent.SYSTEM_INFO, [\n /\\b(system|info|information|status|check|show|display|version|kernel)\\b/i,\n /\\b(uname|hostname|uptime|date|who|w|df|du|free)\\b/i,\n /\\b(hardware|cpu|memory|disk|network)\\b/i\n ]);\n\n patterns.set(CommandIntent.NETWORK_OPERATION, [\n /\\b(network|connection|internet|wifi|ethernet|ip|port|socket)\\b/i,\n /\\b(ping|traceroute|netstat|ss|lsof|tcpdump|curl|wget|nc)\\b/i,\n /\\b(firewall|iptables|routing|dns)\\b/i\n ]);\n\n patterns.set(CommandIntent.PACKAGE_MANAGEMENT, [\n /\\b(install|uninstall|update|upgrade|package|dependency|library)\\b/i,\n /\\b(apt|yum|dnf|snap|brew|npm|pip|gem|cargo|docker)\\b/i,\n /\\b(software|application|program)\\b/i\n ]);\n\n patterns.set(CommandIntent.PERFORMANCE_OPTIMIZATION, [\n /\\b(optimize|performance|speed|slow|fast|improve|enhance)\\b/i,\n /\\b(cache|clean|cleanup|free|space|memory|swap)\\b/i,\n /\\b(benchmark|profile|analyze)\\b/i\n ]);\n\n patterns.set(CommandIntent.DISK_MANAGEMENT, [\n /\\b(disk|storage|partition|mount|unmount|filesystem|volume)\\b/i,\n /\\b(df|du|fdisk|mkfs|fsck|mount|umount)\\b/i,\n /\\b(space|full|usage|capacity)\\b/i\n ]);\n\n patterns.set(CommandIntent.LOG_ANALYSIS, [\n /\\b(log|logs|journal|syslog|error|warning|debug|trace)\\b/i,\n /\\b(tail|head|journalctl|dmesg|last|history)\\b/i,\n /\\b(analyze|parse|filter|search)\\b/i\n ]);\n\n patterns.set(CommandIntent.SECURITY_AUDIT, [\n /\\b(security|audit|vulnerability|scan|check|permission|access)\\b/i,\n /\\b(sudo|root|privilege|authentication|password|ssh|ssl)\\b/i,\n /\\b(firewall|selinux|apparmor|encryption)\\b/i\n ]);\n\n patterns.set(CommandIntent.BACKUP_RESTORE, [\n /\\b(backup|restore|archive|compress|extract|tar|zip|rsync)\\b/i,\n /\\b(snapshot|recovery|disaster|migrate)\\b/i,\n /\\b(save|preserve|protect)\\b/i\n ]);\n\n return patterns;\n }\n\n public async analyzeUserIntent(input: string): Promise<CommandIntent> {\n const scores = new Map<CommandIntent, number>();\n\n for (const [intent, patterns] of this.intentPatterns) {\n let score = 0;\n for (const pattern of patterns) {\n const matches = input.match(pattern);\n if (matches) {\n score += matches.length;\n }\n }\n scores.set(intent, score);\n }\n\n let maxScore = 0;\n let detectedIntent = CommandIntent.UNKNOWN;\n\n for (const [intent, score] of scores) {\n if (score > maxScore) {\n maxScore = score;\n detectedIntent = intent;\n }\n }\n\n this.emit('intentAnalyzed', { input, intent: detectedIntent, confidence: maxScore });\n return detectedIntent;\n }\n\n public async determineRequiredCommands(intent: CommandIntent): Promise<LinuxCommand[]> {\n const commands: LinuxCommand[] = [];\n\n switch (intent) {\n case CommandIntent.FILE_OPERATION:\n commands.push(\n this.createCommand('ls', ['-la'], [], false, RiskLevel.SAFE, CommandCategory.READ_ONLY),\n this.createCommand('find', ['.', '-type', 'f'], [], false, RiskLevel.SAFE, CommandCategory.READ_ONLY)\n );\n break;\n\n case CommandIntent.PROCESS_MANAGEMENT:\n commands.push(\n this.createCommand('ps', ['aux'], [], false, RiskLevel.SAFE, CommandCategory.READ_ONLY),\n this.createCommand('top', ['-b', '-n', '1'], [], false, RiskLevel.SAFE, CommandCategory.READ_ONLY)\n );\n break;\n\n case CommandIntent.SYSTEM_INFO:\n commands.push(\n this.createCommand('uname', ['-a'], [], false, RiskLevel.SAFE, CommandCategory.READ_ONLY),\n this.createCommand('df', ['-h'], [], false, RiskLevel.SAFE, CommandCategory.READ_ONLY),\n this.createCommand('free', ['-h'], [], false, RiskLevel.SAFE, CommandCategory.READ_ONLY)\n );\n break;\n\n case CommandIntent.NETWORK_OPERATION:\n commands.push(\n this.createCommand('netstat', ['-tuln'], [], false, RiskLevel.SAFE, CommandCategory.READ_ONLY),\n this.createCommand('ss', ['-tuln'], [], false, RiskLevel.SAFE, CommandCategory.READ_ONLY)\n );\n break;\n\n case CommandIntent.PERFORMANCE_OPTIMIZATION:\n commands.push(\n this.createCommand('vmstat', ['1', '5'], [], false, RiskLevel.SAFE, CommandCategory.READ_ONLY),\n this.createCommand('iostat', ['-x', '1', '5'], [], false, RiskLevel.SAFE, CommandCategory.READ_ONLY)\n );\n break;\n\n case CommandIntent.DISK_MANAGEMENT:\n commands.push(\n this.createCommand('df', ['-h'], [], false, RiskLevel.SAFE, CommandCategory.READ_ONLY),\n this.createCommand('du', ['-sh', '*'], [], false, RiskLevel.SAFE, CommandCategory.READ_ONLY),\n this.createCommand('lsblk', [], [], false, RiskLevel.SAFE, CommandCategory.READ_ONLY)\n );\n break;\n\n case CommandIntent.LOG_ANALYSIS:\n commands.push(\n this.createCommand('journalctl', ['-xe', '--no-pager', '-n', '50'], [], false, RiskLevel.SAFE, CommandCategory.READ_ONLY),\n this.createCommand('dmesg', ['--level=err,warn', '-T'], [], false, RiskLevel.SAFE, CommandCategory.READ_ONLY)\n );\n break;\n\n default:\n commands.push(\n this.createCommand('echo', ['Intent not recognized'], [], false, RiskLevel.SAFE, CommandCategory.READ_ONLY)\n );\n }\n\n return commands;\n }\n\n public async assessSystemState(): Promise<SystemContext> {\n const context: SystemContext = {\n os: os.type(),\n platform: os.platform(),\n arch: os.arch(),\n hostname: os.hostname(),\n uptime: os.uptime(),\n loadAverage: os.loadavg(),\n totalMemory: os.totalmem(),\n freeMemory: os.freemem(),\n cpuUsage: await this.getCPUUsage(),\n diskUsage: await this.getDiskUsage(),\n networkInterfaces: os.networkInterfaces(),\n currentUser: os.userInfo().username,\n isRoot: process.getuid ? process.getuid() === 0 : false,\n environmentVariables: process.env as Record<string, string>\n };\n\n return context;\n }\n\n public async predictNextActions(currentState: SystemState): Promise<Action[]> {\n const actions: Action[] = [];\n const context = currentState.context;\n\n // Check memory usage\n const memoryUsagePercent = ((context.totalMemory - context.freeMemory) / context.totalMemory) * 100;\n if (memoryUsagePercent > 80) {\n actions.push({\n type: ActionType.IMMEDIATE,\n command: this.createCommand(\n 'sync',\n [],\n [],\n false,\n RiskLevel.SAFE,\n CommandCategory.SYSTEM_MODIFY,\n 'Sync filesystem buffers'\n ),\n priority: 1,\n reason: 'High memory usage detected',\n expectedOutcome: 'Free up memory by syncing buffers'\n });\n\n actions.push({\n type: ActionType.CONDITIONAL,\n command: this.createCommand(\n 'echo',\n ['3'],\n [],\n true,\n RiskLevel.MEDIUM,\n CommandCategory.SYSTEM_MODIFY,\n 'Clear page cache'\n ),\n priority: 2,\n reason: 'Memory usage critical',\n expectedOutcome: 'Drop caches to free memory'\n });\n }\n\n // Check disk usage\n for (const disk of context.diskUsage) {\n const usage = parseInt(disk.usePercent);\n if (usage > 90) {\n actions.push({\n type: ActionType.IMMEDIATE,\n command: this.createCommand(\n 'find',\n [disk.mountPoint, '-type', 'f', '-size', '+100M'],\n [],\n false,\n RiskLevel.SAFE,\n CommandCategory.READ_ONLY,\n 'Find large files'\n ),\n priority: 1,\n reason: `Disk usage critical on ${disk.mountPoint}`,\n expectedOutcome: 'Identify large files for cleanup'\n });\n }\n }\n\n // Check load average\n const loadThreshold = os.cpus().length * 2;\n const loadAvg = context.loadAverage?.[0];\n if (loadAvg && loadAvg > loadThreshold) {\n actions.push({\n type: ActionType.MONITORING,\n command: this.createCommand(\n 'top',\n ['-b', '-n', '1', '-o', '%CPU'],\n [],\n false,\n RiskLevel.SAFE,\n CommandCategory.READ_ONLY,\n 'Monitor CPU usage'\n ),\n priority: 1,\n reason: 'High system load detected',\n expectedOutcome: 'Identify resource-intensive processes'\n });\n }\n\n // Preventive maintenance\n if (context.uptime > 86400 * 30) { // 30 days\n actions.push({\n type: ActionType.PREVENTIVE,\n command: this.createCommand(\n 'apt',\n ['update'],\n [],\n true,\n RiskLevel.LOW,\n CommandCategory.SYSTEM_MODIFY,\n 'Update package lists'\n ),\n priority: 3,\n reason: 'System running for over 30 days',\n expectedOutcome: 'Ensure package lists are current'\n });\n }\n\n return actions.sort((a, b) => a.priority - b.priority);\n }\n\n private createCommand(\n command: string,\n args: string[],\n flags: string[],\n sudo: boolean,\n risk: RiskLevel,\n category: CommandCategory,\n description: string = ''\n ): LinuxCommand {\n return {\n command,\n args,\n flags,\n sudo,\n risk,\n category,\n description\n };\n }\n\n private async getCPUUsage(): Promise<number> {\n try {\n const { stdout } = await execAsync(\"top -b -n 1 | grep 'Cpu(s)' | awk '{print $2}' | cut -d'%' -f1\");\n return parseFloat(stdout.trim()) || 0;\n } catch {\n return 0;\n }\n }\n\n private async getDiskUsage(): Promise<DiskUsage[]> {\n try {\n const { stdout } = await execAsync('df -h');\n const lines = stdout.trim().split('\\n').slice(1);\n \n return lines.map(line => {\n const parts = line.split(/\\s+/);\n return {\n filesystem: parts[0] || '',\n size: parts[1] || '',\n used: parts[2] || '',\n available: parts[3] || '',\n usePercent: parts[4] || '',\n mountPoint: parts[5] || ''\n };\n });\n } catch {\n return [];\n }\n }\n\n private async updateSystemState(): Promise<void> {\n const context = await this.assessSystemState();\n \n let activeServices: string[] = [];\n let openPorts: number[] = [];\n let runningProcesses = 0;\n\n try {\n const { stdout: psOutput } = await execAsync('ps aux | wc -l');\n runningProcesses = parseInt(psOutput.trim()) - 1;\n } catch {}\n\n try {\n if (process.platform === 'linux') {\n const { stdout } = await execAsync('systemctl list-units --state=running --no-pager --no-legend | head -20');\n activeServices = stdout.trim().split('\\n').map(line => line.split(/\\s+/)[0] || '').filter(s => s);\n }\n } catch {}\n\n try {\n const { stdout } = await execAsync('netstat -tuln | grep LISTEN');\n openPorts = stdout.trim().split('\\n').map(line => {\n const match = line.match(/:(\\d+)\\s/);\n return match && match[1] ? parseInt(match[1]) : 0;\n }).filter(port => port > 0);\n } catch {}\n\n this.systemState = {\n context,\n runningProcesses,\n activeServices,\n openPorts,\n recentCommands: [],\n currentWorkingDirectory: process.cwd(),\n timestamp: new Date()\n };\n\n this.emit('systemStateUpdated', this.systemState);\n }\n\n private startSystemMonitoring(): void {\n this.updateSystemState();\n this.updateInterval = setInterval(() => {\n this.updateSystemState();\n }, 30000);\n }\n\n public stopMonitoring(): void {\n if (this.updateInterval) {\n clearInterval(this.updateInterval);\n this.updateInterval = null;\n }\n }\n\n public getSystemState(): SystemState | null {\n return this.systemState;\n }\n}"]}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bonginkan/maria",
|
|
3
|
-
"version": "2.1.
|
|
4
|
-
"description": "🧠 MARIA Platform v2.1.
|
|
3
|
+
"version": "2.1.2",
|
|
4
|
+
"description": "🧠 MARIA Platform v2.1.2 Extended Command & Mode Edition - 5 New Slash Commands (workspace, db, api, deploy, monitor) + 2 New Internal Modes (Focus, Learning) + Enhanced Memory Intelligence with Multi-Source Deep Analysis and Advanced Knowledge Base Integration",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ai",
|
|
7
7
|
"cli",
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"coderag",
|
|
50
50
|
"document-processing",
|
|
51
51
|
"arxiv-integration",
|
|
52
|
-
"multi-agent-system",
|
|
52
|
+
"multi-agent-system",
|
|
53
53
|
"mcp-protocol",
|
|
54
54
|
"semantic-analysis",
|
|
55
55
|
"auto-research",
|
|
@@ -164,9 +164,11 @@
|
|
|
164
164
|
},
|
|
165
165
|
"devDependencies": {
|
|
166
166
|
"@types/cli-progress": "^3.11.5",
|
|
167
|
+
"@types/eslint": "^9.6.1",
|
|
167
168
|
"@types/figlet": "^1.5.8",
|
|
168
169
|
"@types/fs-extra": "^11.0.4",
|
|
169
170
|
"@types/inquirer": "^9.0.7",
|
|
171
|
+
"@types/js-yaml": "^4.0.9",
|
|
170
172
|
"@types/jsonwebtoken": "^9.0.5",
|
|
171
173
|
"@types/node": "^20.11.0",
|
|
172
174
|
"@types/prompts": "^2.4.9",
|