@bonginkan/maria 2.1.2 → 2.1.5

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,427 +0,0 @@
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
@@ -1 +0,0 @@
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}"]}