ciscollm-cli 1.3.3 → 1.3.4

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.
Files changed (72) hide show
  1. package/README.md +19 -25
  2. package/dist/cli/commands/monitorCommand.js +17 -0
  3. package/dist/cli/commands/monitorCommand.js.map +1 -1
  4. package/dist/cli/commands/runCommand.d.ts +1 -3
  5. package/dist/cli/commands/runCommand.js +126 -452
  6. package/dist/cli/commands/runCommand.js.map +1 -1
  7. package/dist/cli/ui/interactiveWizard.d.ts +1 -0
  8. package/dist/cli/ui/interactiveWizard.js +429 -0
  9. package/dist/cli/ui/interactiveWizard.js.map +1 -0
  10. package/dist/cli/ui/ui.js +0 -5
  11. package/dist/cli/ui/ui.js.map +1 -1
  12. package/dist/core/agent/AgentLoop.d.ts +3 -0
  13. package/dist/core/agent/AgentLoop.js +69 -14
  14. package/dist/core/agent/AgentLoop.js.map +1 -1
  15. package/dist/core/agent/DigitalTwin.d.ts +10 -0
  16. package/dist/core/agent/DigitalTwin.js +40 -0
  17. package/dist/core/agent/DigitalTwin.js.map +1 -0
  18. package/dist/core/agent/IntentTranslator.d.ts +6 -0
  19. package/dist/core/agent/IntentTranslator.js +37 -0
  20. package/dist/core/agent/IntentTranslator.js.map +1 -0
  21. package/dist/core/agent/MemoryManager.d.ts +14 -0
  22. package/dist/core/agent/MemoryManager.js +89 -0
  23. package/dist/core/agent/MemoryManager.js.map +1 -0
  24. package/dist/core/agent/MultiAgentCoordinator.js +0 -2
  25. package/dist/core/agent/MultiAgentCoordinator.js.map +1 -1
  26. package/dist/core/agent/NetworkPlanner.d.ts +8 -0
  27. package/dist/core/agent/NetworkPlanner.js +78 -0
  28. package/dist/core/agent/NetworkPlanner.js.map +1 -0
  29. package/dist/core/agent/PromptEngine.d.ts +1 -1
  30. package/dist/core/agent/PromptEngine.js +10 -5
  31. package/dist/core/agent/PromptEngine.js.map +1 -1
  32. package/dist/core/plugins/PluginManager.d.ts +17 -0
  33. package/dist/core/plugins/PluginManager.js +106 -0
  34. package/dist/core/plugins/PluginManager.js.map +1 -0
  35. package/dist/core/rollback/TransactionManager.js +0 -5
  36. package/dist/core/rollback/TransactionManager.js.map +1 -1
  37. package/dist/index.js +26 -61
  38. package/dist/index.js.map +1 -1
  39. package/dist/infrastructure/llm/LLMClient.d.ts +1 -0
  40. package/dist/infrastructure/llm/LLMClient.js +32 -7
  41. package/dist/infrastructure/llm/LLMClient.js.map +1 -1
  42. package/dist/infrastructure/protocols/SshSession.d.ts +1 -0
  43. package/dist/infrastructure/protocols/SshSession.js +5 -4
  44. package/dist/infrastructure/protocols/SshSession.js.map +1 -1
  45. package/dist/infrastructure/protocols/TelnetSession.d.ts +1 -0
  46. package/dist/infrastructure/protocols/TelnetSession.js +5 -1
  47. package/dist/infrastructure/protocols/TelnetSession.js.map +1 -1
  48. package/dist/server/shell-simulator.js +1 -2
  49. package/dist/server/shell-simulator.js.map +1 -1
  50. package/dist/server/ssh.js +2 -2
  51. package/dist/server/ssh.js.map +1 -1
  52. package/dist/server/telnet.js +2 -2
  53. package/dist/server/telnet.js.map +1 -1
  54. package/dist/shared/bootBanner.d.ts +1 -0
  55. package/dist/shared/bootBanner.js +93 -0
  56. package/dist/shared/bootBanner.js.map +1 -0
  57. package/package.json +1 -1
  58. package/dist/cli/commands/dashboardCommand.d.ts +0 -1
  59. package/dist/cli/commands/dashboardCommand.js +0 -16
  60. package/dist/cli/commands/dashboardCommand.js.map +0 -1
  61. package/dist/cli/commands/shellCommand.d.ts +0 -1
  62. package/dist/cli/commands/shellCommand.js +0 -44
  63. package/dist/cli/commands/shellCommand.js.map +0 -1
  64. package/dist/infrastructure/protocols/CmlSession.d.ts +0 -26
  65. package/dist/infrastructure/protocols/CmlSession.js +0 -448
  66. package/dist/infrastructure/protocols/CmlSession.js.map +0 -1
  67. package/dist/infrastructure/protocols/NetconfSession.d.ts +0 -74
  68. package/dist/infrastructure/protocols/NetconfSession.js +0 -553
  69. package/dist/infrastructure/protocols/NetconfSession.js.map +0 -1
  70. package/dist/server/dashboard.d.ts +0 -3
  71. package/dist/server/dashboard.js +0 -1149
  72. package/dist/server/dashboard.js.map +0 -1
@@ -0,0 +1,78 @@
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.NetworkPlanner = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const PluginManager_1 = require("../plugins/PluginManager");
9
+ class NetworkPlanner {
10
+ llmClient;
11
+ coordinator;
12
+ constructor(llmClient, coordinator) {
13
+ this.llmClient = llmClient;
14
+ this.coordinator = coordinator;
15
+ }
16
+ async generatePlan(goal) {
17
+ const topology = this.coordinator.getTopology();
18
+ let devicesStr = '';
19
+ if (topology.nodes.length > 0) {
20
+ devicesStr = topology.nodes.join(', ');
21
+ }
22
+ else {
23
+ devicesStr = Array.from(this.coordinator.getSessions().keys()).join(', ');
24
+ }
25
+ const plugins = PluginManager_1.PluginManager.getInstance().getDynamicTools().map(t => `- ${t.function.name}: ${t.function.description}`).join('\n');
26
+ const systemPrompt = `You are a Principal Network Architect orchestrating operations across multiple Cisco Enterprise devices.
27
+ Your task is to translate the user's high-level intent into a detailed Execution Blueprint (Orchestration Plan) before any commands are run on actual hardware.
28
+
29
+ === ENVIRONMENT ===
30
+ Available Devices: ${devicesStr}
31
+ Available Plugins/Scripts:
32
+ ${plugins || 'None'}
33
+
34
+ === INSTRUCTIONS ===
35
+ 1. Analyze the user's goal.
36
+ 2. Break it down into step-by-step device operations.
37
+ 3. For each step, specify:
38
+ - Target Device
39
+ - Action (What will be done, not necessarily the exact syntax, but the logical operation)
40
+ - Risk Level (LOW, MEDIUM, HIGH)
41
+ 4. Format your output as a clean, readable Markdown document with a clear structure. Do not output raw JSON, make it human readable.
42
+ 5. Use bullet points and bold text for clarity.
43
+
44
+ Example:
45
+ ### Orchestration Plan
46
+ **Step 1:** [Device: Core-1]
47
+ - **Action**: Configure OSPF process 1 and add network 10.0.0.0/24
48
+ - **Risk**: MEDIUM
49
+
50
+ **Step 2:** [Device: Dist-1]
51
+ - **Action**: Ping Core-1 to verify OSPF adjacency
52
+ - **Risk**: LOW
53
+ `;
54
+ const messages = [
55
+ { role: 'system', content: systemPrompt },
56
+ { role: 'user', content: `Goal: ${goal}` }
57
+ ];
58
+ console.log(chalk_1.default.magenta('\n=== ORCHESTRATION PLANNER ==='));
59
+ console.log(chalk_1.default.gray('Analyzing topology and generating execution blueprint...'));
60
+ let fullContent = '';
61
+ try {
62
+ const response = await this.llmClient.generateCompletion(messages, [], (chunk) => {
63
+ if (chunk.content) {
64
+ process.stdout.write(chalk_1.default.cyan(chunk.content));
65
+ fullContent += chunk.content;
66
+ }
67
+ });
68
+ console.log();
69
+ return response.content || fullContent;
70
+ }
71
+ catch (e) {
72
+ console.log(chalk_1.default.red(`\nFailed to generate orchestration plan: ${e.message}`));
73
+ throw e;
74
+ }
75
+ }
76
+ }
77
+ exports.NetworkPlanner = NetworkPlanner;
78
+ //# sourceMappingURL=NetworkPlanner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NetworkPlanner.js","sourceRoot":"","sources":["../../../src/core/agent/NetworkPlanner.ts"],"names":[],"mappings":";;;;;;AAGA,kDAA0B;AAC1B,4DAAyD;AAEzD,MAAa,cAAc;IACH;IAA8B;IAAlD,YAAoB,SAAoB,EAAU,WAAkC;QAAhE,cAAS,GAAT,SAAS,CAAW;QAAU,gBAAW,GAAX,WAAW,CAAuB;IAAG,CAAC;IAEjF,KAAK,CAAC,YAAY,CAAC,IAAY;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QAChD,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACJ,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9E,CAAC;QAED,MAAM,OAAO,GAAG,6BAAa,CAAC,WAAW,EAAE,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAErI,MAAM,YAAY,GAAG;;;;qBAIR,UAAU;;EAE7B,OAAO,IAAI,MAAM;;;;;;;;;;;;;;;;;;;;;CAqBlB,CAAC;QAEM,MAAM,QAAQ,GAAkB;YAC5B,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;YACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,IAAI,EAAE,EAAE;SAC7C,CAAC;QAEF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC,CAAC;QAEpF,IAAI,WAAW,GAAG,EAAE,CAAC;QACrB,IAAI,CAAC;YACD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,QAAQ,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC7E,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;oBAChD,WAAW,IAAI,KAAK,CAAC,OAAO,CAAC;gBACjC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,QAAQ,CAAC,OAAO,IAAI,WAAW,CAAC;QAC3C,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAChF,MAAM,CAAC,CAAC;QACZ,CAAC;IACL,CAAC;CACJ;AAlED,wCAkEC"}
@@ -1,3 +1,3 @@
1
1
  export declare class PromptEngine {
2
- static getSystemPrompt(stateInfo: string, commandReferenceHints?: string, strictReferenceMode?: boolean, topologyInfo?: string): string;
2
+ static getSystemPrompt(stateInfo: string, commandReferenceHints?: string, strictReferenceMode?: boolean, topologyInfo?: string, memoryInfo?: string): string;
3
3
  }
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PromptEngine = void 0;
4
4
  class PromptEngine {
5
- static getSystemPrompt(stateInfo, commandReferenceHints = 'Reference status: not loaded.', strictReferenceMode = false, topologyInfo = 'Topology not discovered yet.') {
5
+ static getSystemPrompt(stateInfo, commandReferenceHints = 'Reference status: not loaded.', strictReferenceMode = false, topologyInfo = 'Topology not discovered yet.', memoryInfo = 'No relevant past experiences found.') {
6
6
  return `You are a Senior Network Automation Engineer Agent executing operations on Cisco Enterprise Hardware (Switches & Routers).
7
7
  Your objective is to accomplish the user's goal safely using step-by-step commands.
8
8
 
@@ -10,9 +10,10 @@ Your objective is to accomplish the user's goal safely using step-by-step comman
10
10
  ${stateInfo}
11
11
  Topology: ${topologyInfo}
12
12
  Command Hints: ${commandReferenceHints} (Strict enforcement: ${strictReferenceMode})
13
+ Memory: ${memoryInfo}
13
14
 
14
15
  === COMPLIANCE RULES ===
15
- 1. Verify access level (USER_EXEC ">", PRIVILEGED_EXEC "#", GLOBAL_CONFIG "(config)#", INTERFACE_CONFIG "(config-if)#"). Run "enable" and "configure terminal" appropriately before configuration.
16
+ 1. Verify Access Level & Prompt: Pay close attention to the EXACT CLI prompt (e.g. "(config)#" vs "(config-vlan)#"). Do NOT run interface commands if you are not in the appropriate mode. Run "enable" and "configure terminal" appropriately before configuration.
16
17
  2. Single Tool Call: Generate EXACTLY ONE tool call per response. Wait for the output before proceeding.
17
18
  3. Errors: If a command fails or returns error markers, stop and change strategy. Do not repeat failed commands.
18
19
  4. Language: Always output in English.
@@ -31,9 +32,13 @@ You must invoke tools to execute commands or tests. You can do this in three way
31
32
  <parameter=destination>10.0.1.1</parameter> (for ping_test)
32
33
 
33
34
  === RESPONSE FORMAT ===
34
- First, write your thoughts:
35
- - CURRENT STATE: [Access level, device prompt]
36
- - PLAN: [Commands to execute next]
35
+ First, write your thoughts (Scratchpad Summarization & Tree of Thoughts):
36
+ - LAST ACTION: [What command did I just run?]
37
+ - RESULT: [What was the output? Did it succeed?]
38
+ - CURRENT STATE: [What is the EXACT device prompt right now?]
39
+ - ALTERNATIVES: [Generate 2 possible strategies/commands to use next]
40
+ - EVALUATION: [Evaluate which strategy is safer or more likely to succeed]
41
+ - PLAN: [Select the best step. Ensure commands match the CURRENT STATE]
37
42
  - ACTION: [Tool to run]
38
43
  Then, invoke the tool (or output one of the fallback blocks above).`;
39
44
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PromptEngine.js","sourceRoot":"","sources":["../../../src/core/agent/PromptEngine.ts"],"names":[],"mappings":";;;AAAA,MAAa,YAAY;IACf,MAAM,CAAC,eAAe,CACvB,SAAiB,EACjB,wBAAgC,+BAA+B,EAC/D,sBAA+B,KAAK,EACpC,eAAuB,8BAA8B;QAErD,OAAO;;;;EAId,SAAS;YACC,YAAY;iBACP,qBAAqB,yBAAyB,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;oEA0Bd,CAAC;IAClE,CAAC;CACH;AAzCD,oCAyCC"}
1
+ {"version":3,"file":"PromptEngine.js","sourceRoot":"","sources":["../../../src/core/agent/PromptEngine.ts"],"names":[],"mappings":";;;AAAA,MAAa,YAAY;IACf,MAAM,CAAC,eAAe,CACvB,SAAiB,EACjB,wBAAgC,+BAA+B,EAC/D,sBAA+B,KAAK,EACpC,eAAuB,8BAA8B,EACrD,aAAqB,qCAAqC;QAE1D,OAAO;;;;EAId,SAAS;YACC,YAAY;iBACP,qBAAqB,yBAAyB,mBAAmB;UACxE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oEA8BgD,CAAC;IAClE,CAAC;CACH;AA/CD,oCA+CC"}
@@ -0,0 +1,17 @@
1
+ export interface PluginDefinition {
2
+ name: string;
3
+ description: string;
4
+ script: string;
5
+ parameters: any;
6
+ pluginDir: string;
7
+ }
8
+ export declare class PluginManager {
9
+ private plugins;
10
+ private static instance;
11
+ private constructor();
12
+ static getInstance(): PluginManager;
13
+ private discoverPlugins;
14
+ getDynamicTools(): any[];
15
+ hasPlugin(name: string): boolean;
16
+ executePlugin(name: string, args: any): Promise<string>;
17
+ }
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PluginManager = void 0;
4
+ const fs_1 = require("fs");
5
+ const path_1 = require("path");
6
+ const os_1 = require("os");
7
+ const child_process_1 = require("child_process");
8
+ const ui_1 = require("../../cli/ui/ui");
9
+ class PluginManager {
10
+ plugins = new Map();
11
+ static instance;
12
+ constructor() {
13
+ this.discoverPlugins();
14
+ }
15
+ static getInstance() {
16
+ if (!PluginManager.instance) {
17
+ PluginManager.instance = new PluginManager();
18
+ }
19
+ return PluginManager.instance;
20
+ }
21
+ discoverPlugins() {
22
+ const searchPaths = [
23
+ (0, path_1.join)((0, os_1.homedir)(), '.ciscollm', 'plugins'),
24
+ (0, path_1.join)(process.cwd(), 'plugins')
25
+ ];
26
+ for (const basePath of searchPaths) {
27
+ if (!(0, fs_1.existsSync)(basePath))
28
+ continue;
29
+ try {
30
+ const entries = (0, fs_1.readdirSync)(basePath, { withFileTypes: true });
31
+ for (const entry of entries) {
32
+ if (entry.isDirectory()) {
33
+ const pluginDir = (0, path_1.join)(basePath, entry.name);
34
+ const manifestPath = (0, path_1.join)(pluginDir, 'plugin.json');
35
+ if ((0, fs_1.existsSync)(manifestPath)) {
36
+ try {
37
+ const manifestData = (0, fs_1.readFileSync)(manifestPath, 'utf8');
38
+ const manifest = JSON.parse(manifestData);
39
+ if (manifest.name && manifest.description && manifest.script && manifest.parameters) {
40
+ this.plugins.set(manifest.name, {
41
+ ...manifest,
42
+ pluginDir
43
+ });
44
+ ui_1.logger.info(`Loaded plugin tool: ${manifest.name}`);
45
+ }
46
+ else {
47
+ ui_1.logger.warn(`Invalid plugin.json in ${pluginDir}. Missing required fields.`);
48
+ }
49
+ }
50
+ catch (e) {
51
+ ui_1.logger.warn(`Failed to parse plugin.json in ${pluginDir}: ${e.message}`);
52
+ }
53
+ }
54
+ }
55
+ }
56
+ }
57
+ catch (e) {
58
+ ui_1.logger.warn(`Failed to read plugin directory ${basePath}: ${e.message}`);
59
+ }
60
+ }
61
+ }
62
+ getDynamicTools() {
63
+ const tools = [];
64
+ for (const [name, def] of this.plugins.entries()) {
65
+ tools.push({
66
+ type: 'function',
67
+ function: {
68
+ name: def.name,
69
+ description: def.description,
70
+ parameters: def.parameters
71
+ }
72
+ });
73
+ }
74
+ return tools;
75
+ }
76
+ hasPlugin(name) {
77
+ return this.plugins.has(name);
78
+ }
79
+ executePlugin(name, args) {
80
+ return new Promise((resolve) => {
81
+ const def = this.plugins.get(name);
82
+ if (!def) {
83
+ return resolve(`Error: Plugin ${name} not found.`);
84
+ }
85
+ const env = { ...process.env };
86
+ for (const [key, value] of Object.entries(args)) {
87
+ env[`CISCOLLM_ARG_${key.toUpperCase()}`] = String(value);
88
+ }
89
+ let argsJson = JSON.stringify(args).replace(/"/g, '\\"');
90
+ if (process.platform === 'win32') {
91
+ argsJson = argsJson.replace(/\\"/g, '""');
92
+ }
93
+ const command = `${def.script} "${argsJson}"`;
94
+ (0, child_process_1.exec)(command, { cwd: def.pluginDir, env }, (error, stdout, stderr) => {
95
+ if (error) {
96
+ resolve(`PLUGIN ERROR:\n${stderr || error.message}`);
97
+ }
98
+ else {
99
+ resolve(stdout || stderr || 'Plugin executed successfully with no output.');
100
+ }
101
+ });
102
+ });
103
+ }
104
+ }
105
+ exports.PluginManager = PluginManager;
106
+ //# sourceMappingURL=PluginManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PluginManager.js","sourceRoot":"","sources":["../../../src/core/plugins/PluginManager.ts"],"names":[],"mappings":"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"}
@@ -15,11 +15,9 @@ class TransactionManager {
15
15
  async initializeBackup(session) {
16
16
  const state = session.getState();
17
17
  if (state.currentMode === 'USER_EXEC') {
18
- console.log(chalk_1.default.cyan('❯ Elevating to privileged mode for backup...'));
19
18
  await session.execute('enable');
20
19
  }
21
20
  try {
22
- console.log(chalk_1.default.cyan('❯ Checking flash storage reachability...'));
23
21
  const flashCheck = await session.execute('dir flash:');
24
22
  if (flashCheck.includes('% Invalid') || flashCheck.includes('No such file') || flashCheck.includes('Error')) {
25
23
  console.warn(chalk_1.default.yellow('[!] Flash storage is not accessible or not found. Skipping backup creation.'));
@@ -42,13 +40,11 @@ class TransactionManager {
42
40
  return;
43
41
  }
44
42
  }
45
- console.log(chalk_1.default.cyan('❯ Creating device running-config backup on flash...'));
46
43
  const rawOutput = await session.execute(`copy running-config ${this.backupFilename}`);
47
44
  if (rawOutput.includes('Destination filename') || rawOutput.includes('?')) {
48
45
  const confirmOutput = await session.execute('');
49
46
  if (confirmOutput.includes('copied') || confirmOutput.includes('OK')) {
50
47
  this.backupCreated = true;
51
- console.log(chalk_1.default.green('[+] Running configuration backup successfully created.'));
52
48
  }
53
49
  else {
54
50
  console.warn(chalk_1.default.yellow('[!] Backup confirmation response did not confirm copy completion.'));
@@ -56,7 +52,6 @@ class TransactionManager {
56
52
  }
57
53
  else if (rawOutput.includes('copied') || rawOutput.includes('OK')) {
58
54
  this.backupCreated = true;
59
- console.log(chalk_1.default.green('[+] Running configuration backup successfully created.'));
60
55
  }
61
56
  else {
62
57
  console.warn(chalk_1.default.yellow('[!] Failed to backup running-config. Flash may be missing or read-only.'));
@@ -1 +1 @@
1
- {"version":3,"file":"TransactionManager.js","sourceRoot":"","sources":["../../../src/core/rollback/TransactionManager.ts"],"names":[],"mappings":";;;;;;AACA,kDAA0B;AAE1B,MAAa,kBAAkB;IACnB,eAAe,GAAa,EAAE,CAAC;IAC/B,oBAAoB,GAAuD,EAAE,CAAC;IAC9E,YAAY,GAAa,EAAE,CAAC;IAC5B,eAAe,GAAkB,IAAI,CAAC;IACtC,aAAa,GAAG,KAAK,CAAC;IACb,cAAc,GAAG,wBAAwB,CAAC;IAEpD,KAAK,CAAC,gBAAgB,CAAC,OAAoB;QAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QAEjC,IAAI,KAAK,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC,CAAC;YACxE,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC,CAAC;YACpE,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YACvD,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1G,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,MAAM,CAAC,6EAA6E,CAAC,CAAC,CAAC;gBAC1G,OAAO;YACX,CAAC;YAGD,MAAM,cAAc,GAAG,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,4BAA4B,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACjH,IAAI,cAAc,EAAE,CAAC;gBACjB,MAAM,SAAS,GAAG,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClD,IAAI,UAAU,GAAG,KAAK,CAAC;gBACvB,IAAI,CAAC;oBACD,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;oBACnE,IAAI,aAAa,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;wBACxD,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC;oBACtC,CAAC;gBACL,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;gBAEV,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,GAAG,CAAC,CAAC;gBACzD,IAAI,SAAS,GAAG,cAAc,EAAE,CAAC;oBAC7B,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,MAAM,CAAC,oCAAoC,SAAS,wCAAwC,cAAc,8DAA8D,CAAC,CAAC,CAAC;oBAC9L,OAAO;gBACX,CAAC;YACL,CAAC;YAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC,CAAC;YAC/E,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,uBAAuB,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;YAEtF,IAAI,SAAS,CAAC,QAAQ,CAAC,sBAAsB,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxE,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBAChD,IAAI,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBACnE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;oBAC1B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC,CAAC;gBACvF,CAAC;qBAAM,CAAC;oBACJ,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,MAAM,CAAC,mEAAmE,CAAC,CAAC,CAAC;gBACpG,CAAC;YACL,CAAC;iBAAM,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC,CAAC;YACvF,CAAC;iBAAM,CAAC;gBACJ,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,MAAM,CAAC,yEAAyE,CAAC,CAAC,CAAC;YAC1G,CAAC;QACL,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,MAAM,CAAC,uCAAuC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACrF,CAAC;IACL,CAAC;IAEM,aAAa,CAAC,OAAe;QAChC,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAElC,MAAM,eAAe,GAAG;YACpB,EAAE,KAAK,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE;YACnD,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE;YACrC,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE;YACjC,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE;YACjC,EAAE,KAAK,EAAE,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE;YACzD,EAAE,KAAK,EAAE,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE;YAC5D,EAAE,KAAK,EAAE,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE;YAC3C,EAAE,KAAK,EAAE,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE;YAC7C,EAAE,KAAK,EAAE,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE;SAC9C,CAAC;QAEF,IAAI,UAAU,GAAkB,IAAI,CAAC;QACrC,IAAI,eAAe,GAAa,EAAE,CAAC;QAEnC,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;YACjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YACxD,IAAI,KAAK,EAAE,CAAC;gBACR,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC;gBACtB,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC;gBAC7B,MAAM;YACV,CAAC;QACL,CAAC;QAED,IAAI,UAAU,EAAE,CAAC;YACb,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC3E,MAAM,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;gBAClE,IAAI,WAAW,EAAE,CAAC;oBACd,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;gBAC5B,CAAC;YACL,CAAC;YACD,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;gBAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACjC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;YAC5C,CAAC;QACL,CAAC;aAAM,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YAC1B,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC7D,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;gBACjG,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACvC,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACJ,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAChC,CAAC;QACL,CAAC;aAAM,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;YACzB,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAChC,CAAC;QAED,IAAI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;gBAC3B,OAAO,EAAE,KAAK;gBACd,YAAY,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC;aACvC,CAAC,CAAC;QACP,CAAC;IACL,CAAC;IAEO,YAAY,CAAC,OAAe;QAChC,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QACpC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;YACzB,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC;YAC3B,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;YACzB,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;YACxB,CAAC,KAAK,CAAC,UAAU,CAAC,oBAAoB,CAAC;YACvC,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC;YAC3B,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;YACzB,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC;YAC9B,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC;YACzB,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC;YAC5B,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;YAC1B,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC;YAC1B,CAAC,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC;YACjC,CAAC,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC;YACnC,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC;YAC9B,CAAC,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC;YAC/B,CAAC,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC;IAEM,KAAK,CAAC,eAAe,CAAC,OAAoB,EAAE,aAAsB;QACrE,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAC;QAG1D,MAAM,mBAAmB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QAC/C,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,WAAW,CAAC;QAG3D,MAAM,YAAY,GAAG,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;QAC5C,IAAI,aAAa,EAAE,CAAC;YAChB,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACvD,MAAM,WAAW,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;YACzE,IAAI,WAAW,EAAE,CAAC;gBACd,MAAM,eAAe,GAAG;oBACpB,EAAE,KAAK,EAAE,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE;oBACnD,EAAE,KAAK,EAAE,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE;oBACrC,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE;oBACjC,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE;oBACjC,EAAE,KAAK,EAAE,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE;oBACzD,EAAE,KAAK,EAAE,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE;oBAC5D,EAAE,KAAK,EAAE,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE;oBAC3C,EAAE,KAAK,EAAE,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE;oBAC7C,EAAE,KAAK,EAAE,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,WAAW,EAAE;iBAC9C,CAAC;gBACF,IAAI,0BAA0B,GAAa,EAAE,CAAC;gBAC9C,KAAK,MAAM,IAAI,IAAI,eAAe,EAAE,CAAC;oBACjC,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;oBACtE,IAAI,aAAa,EAAE,CAAC;wBAChB,0BAA0B,GAAG,IAAI,CAAC,KAAK,CAAC;wBACxC,MAAM;oBACV,CAAC;gBACL,CAAC;gBACD,MAAM,WAAW,GAAG,0BAA0B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpF,IAAI,WAAW,IAAI,WAAW,KAAK,WAAW,EAAE,CAAC;oBAC7C,YAAY,CAAC,GAAG,EAAE,CAAC;gBACvB,CAAC;YACL,CAAC;QACL,CAAC;QAED,IAAI,cAAc,GAAG,EAAE,CAAC;QAExB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC;gBACD,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,IAAI,CAAC,sDAAsD,IAAI,CAAC,cAAc,KAAK,CAAC,CAAC,CAAC;gBAEzG,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACjC,IAAI,KAAK,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;oBACpC,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACpC,CAAC;qBAAM,IAAI,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC/C,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACjC,CAAC;gBAED,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,qBAAqB,IAAI,CAAC,cAAc,QAAQ,CAAC,CAAC;gBAC9F,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;oBAClF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC,CAAC;oBACvE,cAAc,GAAG,aAAa,CAAC;oBAC/B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACjB,CAAC;qBAAM,CAAC;oBACJ,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,MAAM,CAAC,8EAA8E,CAAC,CAAC,CAAC;gBAC/G,CAAC;YACL,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAChB,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,MAAM,CAAC,8BAA8B,GAAG,CAAC,OAAO,sCAAsC,CAAC,CAAC,CAAC;YAChH,CAAC;QACL,CAAC;QAED,IAAI,CAAC,cAAc,EAAE,CAAC;YAClB,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,IAAI,CAAC,oCAAoC,IAAI,CAAC,oBAAoB,CAAC,MAAM,eAAe,CAAC,CAAC,CAAC;YAC9G,IAAI,gBAAgB,GAAa,CAAC,oBAAoB,CAAC,CAAC;YACxD,IAAI,sBAAsB,GAAa,EAAE,CAAC;YAE1C,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;gBAEtC,IAAI,YAAY,GAAG,KAAK,CAAC;gBACzB,IAAI,sBAAsB,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;oBACvD,YAAY,GAAG,IAAI,CAAC;gBACxB,CAAC;qBAAM,CAAC;oBACJ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC1C,IAAI,sBAAsB,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;4BAC/C,YAAY,GAAG,IAAI,CAAC;4BACpB,MAAM;wBACV,CAAC;oBACL,CAAC;gBACL,CAAC;gBAED,IAAI,YAAY,EAAE,CAAC;oBACf,IAAI,sBAAsB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACpC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAClC,CAAC;oBACD,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;wBAChC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACnC,CAAC;oBACD,sBAAsB,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC;gBAC9C,CAAC;gBAED,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC;gBAC3B,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;gBAClC,IAAI,UAAU,GAAG,EAAE,CAAC;gBAEpB,IAAI,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC/D,UAAU,GAAG,eAAe,CAAC;gBACjC,CAAC;qBAAM,IAAI,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;oBACtC,UAAU,GAAG,aAAa,CAAC;gBAC/B,CAAC;qBAAM,IAAI,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;oBACzC,UAAU,GAAG,UAAU,CAAC;gBAC5B,CAAC;qBAAM,IAAI,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;oBACzC,UAAU,GAAG,gBAAgB,CAAC;gBAClC,CAAC;qBAAM,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;oBACjC,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACpC,CAAC;qBAAM,CAAC;oBACJ,UAAU,GAAG,MAAM,KAAK,EAAE,CAAC;gBAC/B,CAAC;gBAED,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACtC,CAAC;YAED,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAE7B,IAAI,OAAO,GAAG,EAAE,CAAC;YACjB,KAAK,MAAM,WAAW,IAAI,gBAAgB,EAAE,CAAC;gBACzC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,0BAA0B,WAAW,GAAG,CAAC,CAAC,CAAC;gBAClE,OAAO,IAAI,MAAM,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAClD,CAAC;YACD,cAAc,GAAG,OAAO,CAAC;YACzB,IAAI,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;QAGD,MAAM,YAAY,GAAG,CAAC,eAAe,EAAE,kBAAkB,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;QACvG,IAAI,YAAY,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC,CAAC;YAC3E,IAAI,CAAC;gBACD,IAAI,YAAY,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACtC,IAAI,YAAY,CAAC,WAAW,KAAK,WAAW,EAAE,CAAC;oBAC3C,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACpC,CAAC;gBACD,MAAM,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;gBAC5C,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;oBACjC,IAAI,CAAC;wBACD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,mCAAmC,OAAO,GAAG,CAAC,CAAC,CAAC;wBACvE,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBACnC,CAAC;oBAAC,OAAO,cAAmB,EAAE,CAAC;wBAC3B,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,MAAM,CAAC,0CAA0C,OAAO,MAAM,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;oBAChH,CAAC;gBACL,CAAC;YACL,CAAC;YAAC,OAAO,GAAQ,EAAE,CAAC;gBAChB,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,MAAM,CAAC,sCAAsC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YACpF,CAAC;QACL,CAAC;QAED,OAAO,cAAc,CAAC;IAC1B,CAAC;IAEM,KAAK;QACR,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;QAC/B,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;QACvB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;IAChC,CAAC;IAEM,YAAY;QACf,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,MAAM,GAAG,CAAC,CAAC;IACnF,CAAC;CACJ;AAzTD,gDAyTC"}
1
+ {"version":3,"file":"TransactionManager.js","sourceRoot":"","sources":["../../../src/core/rollback/TransactionManager.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -10,24 +10,12 @@ const PlinkSerial_1 = require("./infrastructure/protocols/PlinkSerial");
10
10
  const ui_1 = require("./cli/ui/ui");
11
11
  const fs_1 = require("fs");
12
12
  const path_1 = require("path");
13
- // Import CLI command actions
14
13
  const runCommand_1 = require("./cli/commands/runCommand");
15
14
  const monitorCommand_1 = require("./cli/commands/monitorCommand");
16
15
  const serverCommand_1 = require("./cli/commands/serverCommand");
17
- const shellCommand_1 = require("./cli/commands/shellCommand");
18
- const dashboardCommand_1 = require("./cli/commands/dashboardCommand");
19
16
  const program = new commander_1.Command();
20
17
  const coordinatorWrapper = { active: null };
21
- const dashboardWrapper = { server: null };
22
18
  const cleanup = async () => {
23
- if (dashboardWrapper.server) {
24
- try {
25
- dashboardWrapper.server.close();
26
- ui_1.logger.info('Live Visual Control Dashboard server closed.');
27
- }
28
- catch { }
29
- dashboardWrapper.server = null;
30
- }
31
19
  if (coordinatorWrapper.active) {
32
20
  ui_1.logger.info('Cleaning up active terminal connections and sub-processes...');
33
21
  try {
@@ -78,51 +66,41 @@ program
78
66
  .name('ciscollm')
79
67
  .description('Autonomous Agent Interface managing local Cisco Hardware using LLM Tooling.')
80
68
  .version(cliVersion);
81
- program
69
+ function addConnectionOptions(cmd) {
70
+ return cmd
71
+ .option('--protocol <type>', 'Connection protocol (serial | ssh | telnet)', 'serial')
72
+ .option('--provider <type>', 'LLM provider mode (local | cloud)', 'local')
73
+ .option('--api-key <key>', 'API key for cloud provider (OpenRouter)')
74
+ .option('-c, --com <ports>', 'COM Port interface identifier(s), comma-separated (e.g. COM3 or COM3,COM4)')
75
+ .option('-b, --baud <rate>', 'Serial transmission baud rate constraint', '9600')
76
+ .option('--host <address>', 'Target IP address or hostname (comma-separated for multi-device)')
77
+ .option('--port <port>', 'Target connection port')
78
+ .option('-u, --username <name>', 'Device login username')
79
+ .option('-p, --password <pass>', 'Device login password')
80
+ .option('--env-password', 'Read device password from $CISCOLLM_PASS environment variable (safe for special chars)')
81
+ .option('--private-key <path>', 'SSH private key file path for protocols that support key-based auth')
82
+ .option('--passphrase <passphrase>', 'Passphrase for the SSH private key file')
83
+ .option('--local-type <type>', 'Local service type (ollama | lmstudio)')
84
+ .option('--model <name>', 'Model name for compilation')
85
+ .option('--endpoint <url>', 'Ollama/LM Studio/compatibility API server endpoint')
86
+ .option('--sessions <name>', 'Session name to save/load connection setup');
87
+ }
88
+ const runCmd = program
82
89
  .command('run')
83
- .description('Execute network configuration or optimization tasks on target Cisco hardware')
84
- .option('--protocol <type>', 'Connection protocol (serial | ssh | telnet)', 'serial')
85
- .option('--provider <type>', 'LLM provider mode (local | cloud)', 'local')
86
- .option('--api-key <key>', 'API key for cloud provider (OpenRouter)')
87
- .option('-c, --com <ports>', 'COM Port interface identifier(s), comma-separated (e.g. COM3 or COM3,COM4)')
88
- .option('-b, --baud <rate>', 'Serial transmission baud rate constraint', '9600')
89
- .option('--host <address>', 'Target IP address or hostname (comma-separated for multi-device)')
90
- .option('--port <port>', 'Target connection port')
91
- .option('-u, --username <name>', 'Device login username')
92
- .option('-p, --password <pass>', 'Device login password')
93
- .option('--env-password', 'Read device password from $CISCOLLM_PASS environment variable (safe for special chars)')
94
- .option('--private-key <path>', 'SSH private key file path for protocols that support key-based auth')
95
- .option('--passphrase <passphrase>', 'Passphrase for the SSH private key file')
96
- .option('--local-type <type>', 'Local service type (ollama | lmstudio)')
97
- .option('--model <name>', 'Model name for compilation')
98
- .option('--endpoint <url>', 'Ollama/LM Studio/compatibility API server endpoint')
90
+ .description('Execute network configuration or optimization tasks on target Cisco hardware');
91
+ addConnectionOptions(runCmd)
99
92
  .option('--strict-command-ref', 'Enable strict command validation against cf_command_ref.pdf index')
100
93
  .option('--no-ref-telemetry', 'Disable command-reference telemetry logs during startup')
101
94
  .option('--non-interactive', 'Disable interactive human-in-the-loop prompts (automatically reject dangerous commands)')
102
95
  .option('--rbac-role <role>', 'Role-based Access Control role (admin | read_only)', 'admin')
103
- .option('--dashboard-port <port>', 'Port to host the live Visual Control Dashboard', '3000')
104
96
  .option('-g, --goal <intent>', 'The execution goal for the agent to achieve')
105
97
  .action(async (options) => {
106
- await (0, runCommand_1.runAction)(options, coordinatorWrapper, dashboardWrapper, cleanup);
98
+ await (0, runCommand_1.runAction)(options, coordinatorWrapper, cleanup);
107
99
  });
108
- program
100
+ const monitorCmd = program
109
101
  .command('monitor')
110
- .description('Start the Closed-Loop Auto-Diagnosis & Healing Monitor (AIOps)')
111
- .option('--protocol <type>', 'Connection protocol (serial | ssh | telnet)', 'serial')
112
- .option('--provider <type>', 'LLM provider mode (local | cloud)', 'local')
113
- .option('--api-key <key>', 'API key for cloud provider (OpenRouter)')
114
- .option('-c, --com <ports>', 'COM Port interface identifier(s), comma-separated (e.g. COM3 or COM3,COM4)')
115
- .option('-b, --baud <rate>', 'Serial transmission baud rate constraint', '9600')
116
- .option('--host <address>', 'Target IP address or hostname (comma-separated for multi-device)')
117
- .option('--port <port>', 'Target connection port')
118
- .option('-u, --username <name>', 'Device login username')
119
- .option('-p, --password <pass>', 'Device login password')
120
- .option('--env-password', 'Read device password from $CISCOLLM_PASS environment variable (safe for special chars)')
121
- .option('--private-key <path>', 'SSH private key file path for protocols that support key-based auth')
122
- .option('--passphrase <passphrase>', 'Passphrase for the SSH private key file')
123
- .option('--local-type <type>', 'Local service type (ollama | lmstudio)')
124
- .option('--model <name>', 'Model name for compilation')
125
- .option('--endpoint <url>', 'Ollama/LM Studio/compatibility API server endpoint')
102
+ .description('Start the Closed-Loop Auto-Diagnosis & Healing Monitor (AIOps)');
103
+ addConnectionOptions(monitorCmd)
126
104
  .option('--non-interactive', 'Enable completely autonomous, non-interactive healing')
127
105
  .option('--min-confidence <confidence>', 'Minimum AI confidence threshold to apply remediation', '0.80')
128
106
  .action(async (options) => {
@@ -137,18 +115,5 @@ program
137
115
  .action((options) => {
138
116
  (0, serverCommand_1.serverAction)(options);
139
117
  });
140
- program
141
- .command('shell')
142
- .description('Launch the interactive Cisco IOS mock shell simulator directly')
143
- .action(() => {
144
- (0, shellCommand_1.shellAction)();
145
- });
146
- program
147
- .command('dashboard')
148
- .description('Start the Visual Control Dashboard server standalone')
149
- .option('--port <number>', 'Port for the dashboard server', '3000')
150
- .action((options) => {
151
- (0, dashboardCommand_1.dashboardAction)(options);
152
- });
153
118
  program.parse(process.argv);
154
119
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ export declare class LLMClient {
13
13
  reasoning?: string;
14
14
  }) => void): Promise<ChatMessage>;
15
15
  private estimatePromptTokens;
16
+ private isHallucinating;
16
17
  private estimateCompletionTokens;
17
18
  private generateCompletionStandard;
18
19
  private generateCompletionStream;
@@ -98,6 +98,16 @@ class LLMClient {
98
98
  }
99
99
  return Math.ceil(text.length / 3.8);
100
100
  }
101
+ isHallucinating(text) {
102
+ const lines = text.split(/\r?\n/).map(l => l.trim()).filter(l => l.length > 5);
103
+ if (lines.length >= 4) {
104
+ const last = lines[lines.length - 1];
105
+ if (lines[lines.length - 2] === last && lines[lines.length - 3] === last) {
106
+ return true;
107
+ }
108
+ }
109
+ return false;
110
+ }
101
111
  estimateCompletionTokens(message) {
102
112
  let text = message.content || '';
103
113
  if (message.reasoning_content) {
@@ -171,8 +181,11 @@ class LLMClient {
171
181
  let fullReasoning = '';
172
182
  const toolCallsAccumulator = [];
173
183
  let streamUsage = undefined;
184
+ let isAborted = false;
174
185
  return new Promise((resolve, reject) => {
175
186
  stream.on('data', (chunk) => {
187
+ if (isAborted)
188
+ return;
176
189
  buffer += decoder.write(chunk);
177
190
  const lines = buffer.split('\n');
178
191
  buffer = lines.pop() || '';
@@ -208,6 +221,25 @@ class LLMClient {
208
221
  if (contentChunk || reasoningChunk) {
209
222
  onChunk({ content: contentChunk, reasoning: reasoningChunk });
210
223
  }
224
+ if (toolCallsAccumulator.length === 0 && this.isHallucinating(fullReasoning + fullContent)) {
225
+ isAborted = true;
226
+ stream.destroy();
227
+ const duration_ms = Math.max(1, Date.now() - startTime);
228
+ const err = new Error('LLM_HALLUCINATION_LOOP');
229
+ err.partialMessage = {
230
+ role: 'assistant',
231
+ content: fullContent,
232
+ reasoning_content: fullReasoning,
233
+ usage: {
234
+ prompt_tokens: this.estimatePromptTokens(messages),
235
+ completion_tokens: this.estimateCompletionTokens({ role: 'assistant', content: fullContent, reasoning_content: fullReasoning }),
236
+ total_tokens: 0,
237
+ duration_ms: duration_ms,
238
+ tok_sec: 0
239
+ }
240
+ };
241
+ return reject(err);
242
+ }
211
243
  if (delta.tool_calls) {
212
244
  for (const tc of delta.tool_calls) {
213
245
  const idx = tc.index ?? 0;
@@ -343,13 +375,11 @@ class LLMClient {
343
375
  return;
344
376
  const args = {};
345
377
  let toolName = 'execute_ios_command';
346
- // 1. Try to find a JSON block in markdown
347
378
  const jsonBlockRegex = /```json\s*([\s\S]*?)\s*```/i;
348
379
  const jsonMatch = jsonBlockRegex.exec(content) || /(\{[\s\S]*?\})/.exec(content);
349
380
  if (jsonMatch) {
350
381
  try {
351
382
  const parsed = JSON.parse(jsonMatch[1].trim());
352
- // Check if it's formatted as standard OpenAI tool call
353
383
  if (parsed.function && typeof parsed.function === 'object') {
354
384
  const funcName = parsed.function.name;
355
385
  const funcArgs = typeof parsed.function.arguments === 'string'
@@ -367,7 +397,6 @@ class LLMClient {
367
397
  return;
368
398
  }
369
399
  }
370
- // Or if it's a direct dictionary of parameters
371
400
  if (parsed.command) {
372
401
  args.command = parsed.command;
373
402
  if (parsed.device)
@@ -408,7 +437,6 @@ class LLMClient {
408
437
  args.device = parsed.device;
409
438
  toolName = 'define_shell_function';
410
439
  }
411
- // If we extracted args from direct JSON
412
440
  if (Object.keys(args).length > 0) {
413
441
  message.tool_calls = [{
414
442
  id: `parsed_${Math.random().toString(36).substring(2, 11)}`,
@@ -422,10 +450,8 @@ class LLMClient {
422
450
  }
423
451
  }
424
452
  catch (e) {
425
- // Ignore JSON parsing errors and proceed to XML/Parameter parsing fallback
426
453
  }
427
454
  }
428
- // 2. Try XML parameter-based parsing
429
455
  const paramRegex = /<parameter=(\w+)>\s*([\s\S]*?)\s*<\/parameter>/g;
430
456
  let match;
431
457
  while ((match = paramRegex.exec(content)) !== null) {
@@ -433,7 +459,6 @@ class LLMClient {
433
459
  const val = match[2].trim();
434
460
  args[key] = val;
435
461
  }
436
- // Try direct XML tags like <execute_ios_command>show ip route</execute_ios_command>
437
462
  const xmlCommandRegex = /<execute_ios_command>\s*([\s\S]*?)\s*<\/execute_ios_command>/i;
438
463
  const xmlCommandMatch = xmlCommandRegex.exec(content);
439
464
  if (xmlCommandMatch) {