ciscollm-cli 1.1.3 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +137 -17
  3. package/dist/core/agent/AgentLoop.js +2 -1
  4. package/dist/core/agent/AgentLoop.js.map +1 -1
  5. package/dist/core/agent/AutoHealer.d.ts +27 -0
  6. package/dist/core/agent/AutoHealer.js +387 -0
  7. package/dist/core/agent/AutoHealer.js.map +1 -0
  8. package/dist/core/agent/HierarchicalAgentManager.js +5 -5
  9. package/dist/core/agent/MultiAgentCoordinator.d.ts +3 -1
  10. package/dist/core/agent/MultiAgentCoordinator.js +11 -1
  11. package/dist/core/agent/MultiAgentCoordinator.js.map +1 -1
  12. package/dist/core/agent/PromptEngine.js +67 -66
  13. package/dist/core/agent/PromptEngine.js.map +1 -1
  14. package/dist/core/guardrails/AuditLogger.js +4 -4
  15. package/dist/core/guardrails/CommandFirewall.d.ts +2 -0
  16. package/dist/core/guardrails/CommandFirewall.js +99 -8
  17. package/dist/core/guardrails/CommandFirewall.js.map +1 -1
  18. package/dist/core/guardrails/PreExecutionValidator.d.ts +1 -0
  19. package/dist/core/guardrails/PreExecutionValidator.js +37 -0
  20. package/dist/core/guardrails/PreExecutionValidator.js.map +1 -1
  21. package/dist/core/rollback/TransactionManager.js +17 -0
  22. package/dist/core/rollback/TransactionManager.js.map +1 -1
  23. package/dist/index.js +142 -0
  24. package/dist/index.js.map +1 -1
  25. package/dist/infrastructure/llm/LLMClient.js +0 -1
  26. package/dist/infrastructure/llm/LLMClient.js.map +1 -1
  27. package/dist/infrastructure/protocols/BaseSession.d.ts +2 -1
  28. package/dist/infrastructure/protocols/BaseSession.js +2 -1
  29. package/dist/infrastructure/protocols/BaseSession.js.map +1 -1
  30. package/dist/infrastructure/protocols/PlinkSerial.d.ts +1 -0
  31. package/dist/infrastructure/protocols/PlinkSerial.js +67 -12
  32. package/dist/infrastructure/protocols/PlinkSerial.js.map +1 -1
  33. package/dist/server/index.js +8 -8
  34. package/dist/server/shell-simulator.d.ts +7 -1
  35. package/dist/server/shell-simulator.js +123 -61
  36. package/dist/server/shell-simulator.js.map +1 -1
  37. package/dist/server/ssh.js +31 -20
  38. package/dist/server/ssh.js.map +1 -1
  39. package/dist/server/telnet.js +11 -0
  40. package/dist/server/telnet.js.map +1 -1
  41. package/package.json +54 -52
  42. package/dist/infrastructure/llm/LocalLLMClient.d.ts +0 -7
  43. package/dist/infrastructure/llm/LocalLLMClient.js +0 -39
  44. package/dist/infrastructure/llm/LocalLLMClient.js.map +0 -1
@@ -3,72 +3,73 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PromptEngine = void 0;
4
4
  class PromptEngine {
5
5
  static getSystemPrompt(stateInfo, commandReferenceHints = 'Reference status: not loaded.', strictReferenceMode = false, topologyInfo = 'Topology not discovered yet.') {
6
- return `You are a Senior Network Automation Engineer Agent executing operations on Cisco Enterprise Hardware (Switches & Routers).
7
- Your objective is to accomplish the user's network configuration and troubleshooting goals safely, using step-by-step tool calls.
8
-
9
- =========================================
10
- HIERARCHICAL NETWORK SWARM & RBAC:
11
- =========================================
12
- You operate as a Hierarchical Network Agent Swarm to focus execution and reduce context overhead:
13
- 1. CORE AGENT: Manages core routing tables, dynamic routing protocols (OSPF, BGP, RIP), static routes, and IP SLAs.
14
- 2. DISTRIBUTION AGENT: Manages VLAN databases, trunking protocols, authentication (AAA), ACL firewalls, and NAT mappings.
15
- 3. ACCESS AGENT: Manages physical port assignments, speed/duplex, interface shut/no shut, port descriptions, and interface IPs.
16
- Specify which layer is performing the action in your thoughts (e.g., "[CORE AGENT] Configuring static route").
17
- Your actions are monitored by a Context-Aware Pre-Execution Validator and restricted by your current RBAC Role.
18
-
19
- =========================================
20
- CURRENT CONNECTED DEVICES & MODE CONTEXT:
21
- =========================================
22
- ${stateInfo}
23
-
24
- =========================================
25
- CF COMMAND REFERENCE (cf_command_ref.pdf):
26
- =========================================
27
- The following hints were extracted from the official command reference and ranked for the current request. Prefer these exact command forms and syntax whenever relevant.
28
- Strict reference enforcement: ${strictReferenceMode ? 'ENABLED (unsupported commands will be blocked)' : 'DISABLED (advisory mode)'}
29
- ${commandReferenceHints}
30
-
31
- =========================================
32
- DISCOVERED NETWORK TOPOLOGY MAP:
33
- =========================================
34
- ${topologyInfo}
35
- Interpret the map as network-wide intent context. Prefer plans that keep end-to-end reachability and avoid asymmetric intermediate states.
36
-
37
- =========================================
38
- CISCO IOS SHELL (IOS.sh) AUTOMATION GUIDE:
39
- =========================================
40
- 1. Capabilities: The connected Cisco devices support Cisco IOS Shell. You can utilize:
41
- - Variables: E.g., "TARGET_IP=10.0.1.5", and reference them as "$TARGET_IP" in commands.
42
- - Loop Constructs: E.g., "for i in 1 2; do ping 10.0.1.$i; done" to check connectivity.
43
- - Piping & Output Filtering: E.g., "| include GigabitEthernet" or "| grep ip" to filter CLI outputs.
44
- - Functions: E.g., "my_ping() { ping 10.0.1.1; }" to bind commands.
45
- 2. Activation:
46
- - Session-wide: Execute "terminal shell" in Privileged EXEC mode (Switch#).
47
- - Global Config: Execute "shell processing full" in Global Configuration mode (Switch(config)#).
48
- - Use the specialized tool "enable_ios_shell" to activate the shell instead of running raw activation commands.
49
-
50
- =========================================
51
- OPERATIONAL COMPLIANCE RULES:
52
- =========================================
53
- 1. Navigational Awareness: Verify the current device access level (e.g., USER_EXEC ">", PRIVILEGED_EXEC "#", GLOBAL_CONFIG "(config)#", INTERFACE_CONFIG "(config-if)#"). Change modes appropriately before running commands (e.g., issue "enable", "configure terminal").
54
- 2. Multi-Device Scope: When multiple target devices are connected, you must specify the "device" parameter in all tool calls to designate the destination.
55
- 3. Chaining Constraint: Issue commands step-by-step. Do not combine multiple unrelated configuration actions into a single tool call.
56
- 4. Validation Discipline: Use at most one inspection pass before a configuration block. Do not repeat show commands unless the device state changed or a command failed. After the configuration block completes, verify once with an inspection command or a ping_test, then stop if the verification is clean.
57
- 5. Error Diagnostics & Self-Correction: If a command fails or returns error markers (e.g., "% Unrecognized command", "% Invalid input"), stop. Do not repeat failed commands. Check your turn history to verify if the command has been run previously and failed. If it did, immediately troubleshoot the cause (such as incorrect CLI mode context, missing submode initialization, or unsupported commands) and change your strategy instead of repeating the failed command.
58
- 6. Language Policy: All reasoning blocks, arguments, tool calls, and output explanations must be written strictly in English.
59
- 7. Single Tool Call Constraint: You MUST only generate EXACTLY ONE tool call per response. Never generate multiple parallel tool calls (e.g. do not call execute_ios_command multiple times in a single turn). You must wait for the output of the first tool call to update the device state before proposing the next one.
60
- 8. Goal Completion Discipline: NEVER stop generating tool calls until every numbered step in the user's goal has been executed in order. Do not produce a summary or declare success while steps remain pending. Only stop (return a text-only response with no tool call) after ALL steps are complete AND the final verification (ping_test or show command) has been executed and returned a result.
61
-
62
- =========================================
63
- RESPONSE FORMAT PROTOCOL (CRITICAL):
64
- =========================================
65
- - You MUST always populate the "content" field of your response with a detailed, step-by-step Chain-of-Thought (CoT) reasoning block BEFORE proposing any tool calls.
66
- - You MUST format your thoughts by explicitly structuring them into these three sections:
67
- 1. CURRENT STATE ANALYSIS: [What is the current device status, context, and access level?]
68
- 2. TECHNICAL PLAN: [What is the detailed sequential plan, variables, loops, or shell configurations needed to achieve the goal?]
69
- 3. NEXT ACTION DETAILS: [What specific tool are you calling right now, what arguments/commands are you sending, and why?]
70
- - NEVER return an empty or whitespace-only "content" string when generating tool calls. The user must see your structured thoughts before execution occurs.
71
- - Do NOT use markdown bold formatting (e.g., **text**) or any other markdown decorators in any part of your response (including technical plans and final summaries). All responses must be clean, plain text.
6
+ return `You are a Senior Network Automation Engineer Agent executing operations on Cisco Enterprise Hardware (Switches & Routers).
7
+ Your objective is to accomplish the user's network configuration and troubleshooting goals safely, using step-by-step tool calls.
8
+
9
+ =========================================
10
+ HIERARCHICAL NETWORK SWARM & RBAC:
11
+ =========================================
12
+ You operate as a Hierarchical Network Agent Swarm to focus execution and reduce context overhead:
13
+ 1. CORE AGENT: Manages core routing tables, dynamic routing protocols (OSPF, BGP, RIP), static routes, and IP SLAs.
14
+ 2. DISTRIBUTION AGENT: Manages VLAN databases, trunking protocols, authentication (AAA), ACL firewalls, and NAT mappings.
15
+ 3. ACCESS AGENT: Manages physical port assignments, speed/duplex, interface shut/no shut, port descriptions, and interface IPs.
16
+ Specify which layer is performing the action in your thoughts (e.g., "[CORE AGENT] Configuring static route").
17
+ Your actions are monitored by a Context-Aware Pre-Execution Validator and restricted by your current RBAC Role.
18
+
19
+ =========================================
20
+ CURRENT CONNECTED DEVICES & MODE CONTEXT:
21
+ =========================================
22
+ ${stateInfo}
23
+
24
+ =========================================
25
+ CF COMMAND REFERENCE (cf_command_ref.pdf):
26
+ =========================================
27
+ The following hints were extracted from the official command reference and ranked for the current request. Prefer these exact command forms and syntax whenever relevant.
28
+ Strict reference enforcement: ${strictReferenceMode ? 'ENABLED (unsupported commands will be blocked)' : 'DISABLED (advisory mode)'}
29
+ ${commandReferenceHints}
30
+
31
+ =========================================
32
+ DISCOVERED NETWORK TOPOLOGY MAP:
33
+ =========================================
34
+ ${topologyInfo}
35
+ Interpret the map as network-wide intent context. Prefer plans that keep end-to-end reachability and avoid asymmetric intermediate states.
36
+
37
+ =========================================
38
+ CISCO IOS SHELL (IOS.sh) AUTOMATION GUIDE:
39
+ =========================================
40
+ 1. Capabilities: The connected Cisco devices support Cisco IOS Shell. You can utilize:
41
+ - Variables: E.g., "TARGET_IP=10.0.1.5", and reference them as "$TARGET_IP" in commands.
42
+ - Loop Constructs: E.g., "for i in 1 2; do ping 10.0.1.$i; done" to check connectivity.
43
+ - Piping & Output Filtering: E.g., "| include GigabitEthernet" or "| grep ip" to filter CLI outputs.
44
+ - Functions: E.g., "my_ping() { ping 10.0.1.1; }" to bind commands.
45
+ 2. Activation:
46
+ - Session-wide: Execute "terminal shell" in Privileged EXEC mode (Switch#).
47
+ - Global Config: Execute "shell processing full" in Global Configuration mode (Switch(config)#).
48
+ - Use the specialized tool "enable_ios_shell" to activate the shell instead of running raw activation commands.
49
+
50
+ =========================================
51
+ OPERATIONAL COMPLIANCE RULES:
52
+ =========================================
53
+ 1. Navigational Awareness: Verify the current device access level (e.g., USER_EXEC ">", PRIVILEGED_EXEC "#", GLOBAL_CONFIG "(config)#", INTERFACE_CONFIG "(config-if)#"). Change modes appropriately before running commands (e.g., issue "enable", "configure terminal").
54
+ 2. Multi-Device Scope: When multiple target devices are connected, you must specify the "device" parameter in all tool calls to designate the destination.
55
+ 3. Chaining Constraint: Issue commands step-by-step. Do not combine multiple unrelated configuration actions into a single tool call.
56
+ 4. Validation Discipline: Use at most one inspection pass before a configuration block. Do not repeat show commands unless the device state changed or a command failed. After the configuration block completes, verify once with an inspection command or a ping_test, then stop if the verification is clean.
57
+ 5. Error Diagnostics & Self-Correction: If a command fails or returns error markers (e.g., "% Unrecognized command", "% Invalid input"), stop. Do not repeat failed commands. Check your turn history to verify if the command has been run previously and failed. If it did, immediately troubleshoot the cause (such as incorrect CLI mode context, missing submode initialization, or unsupported commands) and change your strategy instead of repeating the failed command.
58
+ 6. Language Policy: All reasoning blocks, arguments, tool calls, and output explanations must be written strictly in English.
59
+ 7. Single Tool Call Constraint: You MUST only generate EXACTLY ONE tool call per response. Never generate multiple parallel tool calls (e.g. do not call execute_ios_command multiple times in a single turn). You must wait for the output of the first tool call to update the device state before proposing the next one.
60
+ 8. Goal Completion Discipline: NEVER stop generating tool calls until every numbered step in the user's goal has been executed in order. Do not produce a summary or declare success while steps remain pending. Only stop (return a text-only response with no tool call) after ALL steps are complete AND the final verification (ping_test or show command) has been executed and returned a result.
61
+ 9. Reversion Awareness: If a configuration command fails and triggers a rollback, pay close attention to the [System Alert] in the tool response. Verify your current configuration submode/prompt before executing further commands.
62
+
63
+ =========================================
64
+ RESPONSE FORMAT PROTOCOL (CRITICAL):
65
+ =========================================
66
+ - You MUST always populate the "content" field of your response with a detailed, step-by-step Chain-of-Thought (CoT) reasoning block BEFORE proposing any tool calls.
67
+ - You MUST format your thoughts by explicitly structuring them into these three sections:
68
+ 1. CURRENT STATE ANALYSIS: [What is the current device status, context, and access level?]
69
+ 2. TECHNICAL PLAN: [What is the detailed sequential plan, variables, loops, or shell configurations needed to achieve the goal?]
70
+ 3. NEXT ACTION DETAILS: [What specific tool are you calling right now, what arguments/commands are you sending, and why?]
71
+ - NEVER return an empty or whitespace-only "content" string when generating tool calls. The user must see your structured thoughts before execution occurs.
72
+ - Do NOT use markdown bold formatting (e.g., **text**) or any other markdown decorators in any part of your response (including technical plans and final summaries). All responses must be clean, plain text.
72
73
  - When you are done and no additional tool call is required, your final response must be a direct user-facing outcome summary with concrete results and next actions (if any). Do not end with meta statements such as "I should" or "I will".`;
73
74
  }
74
75
  }
@@ -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;QAEtD,OAAO;;;;;;;;;;;;;;;;EAgBb,SAAS;;;;;;gCAMqB,mBAAmB,CAAC,CAAC,CAAC,gDAAgD,CAAC,CAAC,CAAC,0BAA0B;EACjI,qBAAqB;;;;;EAKrB,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+OAsCiO,CAAC;IAC5O,CAAC;CACJ;AA3ED,oCA2EC"}
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;QAEtD,OAAO;;;;;;;;;;;;;;;;EAgBb,SAAS;;;;;;gCAMqB,mBAAmB,CAAC,CAAC,CAAC,gDAAgD,CAAC,CAAC,CAAC,0BAA0B;EACjI,qBAAqB;;;;;EAKrB,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+OAuCiO,CAAC;IAC5O,CAAC;CACJ;AA5ED,oCA4EC"}
@@ -54,10 +54,10 @@ class AuditLogger {
54
54
  const thoughtCleaned = entry.thought
55
55
  ? entry.thought.replace(/\r?\n/g, ' ').substring(0, 150) + '...'
56
56
  : '';
57
- const logMessage = `[${formattedTimestamp}] [Device: ${entry.deviceId}] [Role: ${entry.role.toUpperCase()}] [Status: ${entry.status}]
58
- Thought: ${thoughtCleaned || 'N/A'}
59
- Command: "${entry.command}"
60
- Result: ${outputCleaned || entry.reason || 'N/A'}
57
+ const logMessage = `[${formattedTimestamp}] [Device: ${entry.deviceId}] [Role: ${entry.role.toUpperCase()}] [Status: ${entry.status}]
58
+ Thought: ${thoughtCleaned || 'N/A'}
59
+ Command: "${entry.command}"
60
+ Result: ${outputCleaned || entry.reason || 'N/A'}
61
61
  --------------------------------------------------------------------------------\n`;
62
62
  try {
63
63
  fs.appendFileSync(this.logFile, logMessage, 'utf8');
@@ -2,6 +2,8 @@ export declare class CommandFirewall {
2
2
  private protectedInterfaces;
3
3
  private playbook;
4
4
  constructor(protectedInterfaces?: string[]);
5
+ static normalizeCiscoCommand(command: string): string;
6
+ static normalizeInterfaceName(name: string): string;
5
7
  checkCommand(command: string, currentInterfaceContext: string | null): {
6
8
  dangerous: boolean;
7
9
  reason?: string;
@@ -68,8 +68,95 @@ class CommandFirewall {
68
68
  console.warn(chalk_1.default.yellow(`[!] Warning loading safety playbook: ${e.message}`));
69
69
  }
70
70
  }
71
+ static normalizeCiscoCommand(command) {
72
+ const trimmed = command.trim();
73
+ const parts = trimmed.split(/\s+/);
74
+ if (parts.length === 0 || !parts[0])
75
+ return trimmed;
76
+ const firstToken = parts[0].toLowerCase();
77
+ if (firstToken === 'no' && parts.length > 1) {
78
+ const subNormalized = CommandFirewall.normalizeCiscoCommand(parts.slice(1).join(' '));
79
+ return `no ${subNormalized}`;
80
+ }
81
+ if (firstToken.startsWith('conf') && 'configure'.startsWith(firstToken)) {
82
+ if (parts[1] && parts[1].toLowerCase().startsWith('t') && 'terminal'.startsWith(parts[1].toLowerCase())) {
83
+ return 'configure terminal';
84
+ }
85
+ parts[0] = 'configure';
86
+ }
87
+ else if (firstToken.startsWith('int') && 'interface'.startsWith(firstToken)) {
88
+ parts[0] = 'interface';
89
+ if (parts[1]) {
90
+ parts[1] = CommandFirewall.normalizeInterfaceName(parts[1]);
91
+ }
92
+ }
93
+ else if (firstToken.startsWith('shut') && 'shutdown'.startsWith(firstToken)) {
94
+ parts[0] = 'shutdown';
95
+ }
96
+ else if (firstToken.startsWith('desc') && 'description'.startsWith(firstToken)) {
97
+ parts[0] = 'description';
98
+ }
99
+ else if (firstToken.startsWith('cry') && 'crypto'.startsWith(firstToken)) {
100
+ parts[0] = 'crypto';
101
+ if (parts[1] && parts[1].toLowerCase().startsWith('ke') && 'key'.startsWith(parts[1].toLowerCase())) {
102
+ parts[1] = 'key';
103
+ if (parts[2] && parts[2].toLowerCase().startsWith('ze') && 'zeroize'.startsWith(parts[2].toLowerCase())) {
104
+ parts[2] = 'zeroize';
105
+ }
106
+ }
107
+ }
108
+ else if (firstToken.startsWith('wr') && 'write'.startsWith(firstToken)) {
109
+ parts[0] = 'write';
110
+ if (parts[1] && parts[1].toLowerCase().startsWith('er') && 'erase'.startsWith(parts[1].toLowerCase())) {
111
+ parts[1] = 'erase';
112
+ }
113
+ }
114
+ else if (firstToken.startsWith('er') && 'erase'.startsWith(firstToken)) {
115
+ parts[0] = 'erase';
116
+ }
117
+ else if (firstToken.startsWith('reload') && 'reload'.startsWith(firstToken)) {
118
+ parts[0] = 'reload';
119
+ }
120
+ else if (firstToken === 'ip') {
121
+ if (parts[1] && parts[1].toLowerCase().startsWith('add') && 'address'.startsWith(parts[1].toLowerCase())) {
122
+ parts[1] = 'address';
123
+ }
124
+ else if (parts[1] && parts[1].toLowerCase().startsWith('access-g') && 'access-group'.startsWith(parts[1].toLowerCase())) {
125
+ parts[1] = 'access-group';
126
+ }
127
+ else if (parts[1] && parts[1].toLowerCase().startsWith('access-l') && 'access-list'.startsWith(parts[1].toLowerCase())) {
128
+ parts[1] = 'access-list';
129
+ }
130
+ }
131
+ else if (firstToken === 'aaa') {
132
+ if (parts[1] && parts[1].toLowerCase().startsWith('new') && 'new-model'.startsWith(parts[1].toLowerCase())) {
133
+ parts[1] = 'new-model';
134
+ }
135
+ }
136
+ return parts.join(' ');
137
+ }
138
+ static normalizeInterfaceName(name) {
139
+ const lower = name.toLowerCase();
140
+ if (lower.startsWith('gi') && !lower.startsWith('gigabitethernet')) {
141
+ return 'gigabitethernet' + name.substring(2);
142
+ }
143
+ if (lower.startsWith('fa') && !lower.startsWith('fastethernet')) {
144
+ return 'fastethernet' + name.substring(2);
145
+ }
146
+ if (lower.startsWith('te') && !lower.startsWith('tengigabitethernet')) {
147
+ return 'tengigabitethernet' + name.substring(2);
148
+ }
149
+ if (lower.startsWith('vl') && !lower.startsWith('vlan')) {
150
+ return 'vlan' + name.substring(2);
151
+ }
152
+ if (lower.startsWith('lo') && !lower.startsWith('loopback')) {
153
+ return 'loopback' + name.substring(2);
154
+ }
155
+ return name;
156
+ }
71
157
  checkCommand(command, currentInterfaceContext) {
72
- const normalized = command.toLowerCase().trim();
158
+ const normalizedCommand = CommandFirewall.normalizeCiscoCommand(command);
159
+ const normalized = normalizedCommand.toLowerCase().trim();
73
160
  if (this.playbook) {
74
161
  if (Array.isArray(this.playbook.blockedCommands)) {
75
162
  const isBlocked = this.playbook.blockedCommands.some((blocked) => normalized === blocked.toLowerCase().trim() || normalized.includes(blocked.toLowerCase().trim()));
@@ -115,9 +202,9 @@ class CommandFirewall {
115
202
  reason: `Destructive keyword detected ("${matchedDestructive}")`
116
203
  };
117
204
  }
118
- const interfaceMatch = /^interface\s+([A-Za-z0-9\/\.\-]+)/i.exec(command.trim());
205
+ const interfaceMatch = /^interface\s+([A-Za-z0-9\/\.\-]+)/i.exec(normalizedCommand);
119
206
  if (interfaceMatch) {
120
- const targetedInterface = interfaceMatch[1].toLowerCase().trim();
207
+ const targetedInterface = CommandFirewall.normalizeInterfaceName(interfaceMatch[1]).toLowerCase().trim();
121
208
  if (this.isProtected(targetedInterface) && normalized.includes('shutdown') && !normalized.includes('no shutdown')) {
122
209
  return {
123
210
  dangerous: true,
@@ -126,7 +213,7 @@ class CommandFirewall {
126
213
  }
127
214
  }
128
215
  if (currentInterfaceContext) {
129
- const activeIntf = currentInterfaceContext.toLowerCase().trim();
216
+ const activeIntf = CommandFirewall.normalizeInterfaceName(currentInterfaceContext).toLowerCase().trim();
130
217
  if (this.isProtected(activeIntf)) {
131
218
  if (normalized === 'shutdown') {
132
219
  return {
@@ -134,7 +221,7 @@ class CommandFirewall {
134
221
  reason: `Cannot shutdown active protected management interface: ${currentInterfaceContext}`
135
222
  };
136
223
  }
137
- if (normalized.startsWith('no ip address') || normalized.startsWith('no ip add')) {
224
+ if (normalized.startsWith('no ip address')) {
138
225
  return {
139
226
  dangerous: true,
140
227
  reason: `Cannot remove IP address configuration from protected interface: ${currentInterfaceContext}`
@@ -145,9 +232,13 @@ class CommandFirewall {
145
232
  return { dangerous: false };
146
233
  }
147
234
  isProtected(interfaceName) {
148
- return this.protectedInterfaces.some(p => p === interfaceName ||
149
- interfaceName.startsWith(p) ||
150
- p.startsWith(interfaceName));
235
+ const normalizedTarget = CommandFirewall.normalizeInterfaceName(interfaceName).toLowerCase().trim();
236
+ return this.protectedInterfaces.some(p => {
237
+ const normalizedP = CommandFirewall.normalizeInterfaceName(p).toLowerCase().trim();
238
+ return normalizedP === normalizedTarget ||
239
+ normalizedTarget.startsWith(normalizedP) ||
240
+ normalizedP.startsWith(normalizedTarget);
241
+ });
151
242
  }
152
243
  async verifyWithHuman(command, reason) {
153
244
  const isNonInteractive = process.env.CISCOLLM_NON_INTERACTIVE === 'true';
@@ -1 +1 @@
1
- {"version":3,"file":"CommandFirewall.js","sourceRoot":"","sources":["../../../src/core/guardrails/CommandFirewall.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CommandFirewall.js","sourceRoot":"","sources":["../../../src/core/guardrails/CommandFirewall.ts"],"names":[],"mappings":"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"}
@@ -6,4 +6,5 @@ export interface ValidationResult {
6
6
  }
7
7
  export declare class PreExecutionValidator {
8
8
  static validateCommand(command: string, deviceId: string, topology: NetworkTopology, currentInterfaceContext: string | null): ValidationResult;
9
+ private static ipInSubnet;
9
10
  }
@@ -12,6 +12,25 @@ class PreExecutionValidator {
12
12
  reason: `Command attempts to remove the default gateway route. This will disconnect remote SSH/Telnet sessions.`
13
13
  };
14
14
  }
15
+ const routeMatch = /^no\s+ip\s+route\s+(\d{1,3}(?:\.\d{1,3}){3})\s+(\d{1,3}(?:\.\d{1,3}){3})/i.exec(normalized);
16
+ if (routeMatch) {
17
+ const network = routeMatch[1];
18
+ const mask = routeMatch[2];
19
+ const ipRegex = /^\d{1,3}(?:\.\d{1,3}){3}$/;
20
+ const checkIps = ['192.168.1.254'];
21
+ if (ipRegex.test(deviceId)) {
22
+ checkIps.push(deviceId);
23
+ }
24
+ for (const ip of checkIps) {
25
+ if (PreExecutionValidator.ipInSubnet(ip, network, mask)) {
26
+ return {
27
+ safe: false,
28
+ warnLevel: 'CRITICAL',
29
+ reason: `Command attempts to remove the static route (${network}/${mask}) which covers the target device IP or local management IP (${ip}). This will sever SSH/Telnet connectivity.`
30
+ };
31
+ }
32
+ }
33
+ }
15
34
  if (normalized.startsWith('router ospf') || normalized.startsWith('router bgp') || normalized.startsWith('router rip')) {
16
35
  return {
17
36
  safe: true,
@@ -54,6 +73,24 @@ class PreExecutionValidator {
54
73
  warnLevel: 'INFO'
55
74
  };
56
75
  }
76
+ static ipInSubnet(ip, network, mask) {
77
+ try {
78
+ const ipParts = ip.split('.').map(Number);
79
+ const netParts = network.split('.').map(Number);
80
+ const maskParts = mask.split('.').map(Number);
81
+ if (ipParts.length !== 4 || netParts.length !== 4 || maskParts.length !== 4)
82
+ return false;
83
+ for (let i = 0; i < 4; i++) {
84
+ if ((ipParts[i] & maskParts[i]) !== (netParts[i] & maskParts[i])) {
85
+ return false;
86
+ }
87
+ }
88
+ return true;
89
+ }
90
+ catch {
91
+ return false;
92
+ }
93
+ }
57
94
  }
58
95
  exports.PreExecutionValidator = PreExecutionValidator;
59
96
  //# sourceMappingURL=PreExecutionValidator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PreExecutionValidator.js","sourceRoot":"","sources":["../../../src/core/guardrails/PreExecutionValidator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PreExecutionValidator.js","sourceRoot":"","sources":["../../../src/core/guardrails/PreExecutionValidator.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,23 @@ class TransactionManager {
25
25
  console.warn(chalk_1.default.yellow('[!] Flash storage is not accessible or not found. Skipping backup creation.'));
26
26
  return;
27
27
  }
28
+ const freeSpaceMatch = /(\d+)\s+bytes\s+free/i.exec(flashCheck) || /(\d+)\s+bytes\s+available/i.exec(flashCheck);
29
+ if (freeSpaceMatch) {
30
+ const freeBytes = parseInt(freeSpaceMatch[1], 10);
31
+ let configSize = 50000;
32
+ try {
33
+ const runningConfig = await session.execute('show running-config');
34
+ if (runningConfig && !runningConfig.includes('% Invalid')) {
35
+ configSize = runningConfig.length;
36
+ }
37
+ }
38
+ catch { }
39
+ const requiredMargin = Math.max(50000, configSize * 1.5);
40
+ if (freeBytes < requiredMargin) {
41
+ console.warn(chalk_1.default.yellow(`[!] Flash space is too low: only ${freeBytes} bytes free (required safety margin: ${requiredMargin} bytes). Skipping backup creation to prevent write failures.`));
42
+ return;
43
+ }
44
+ }
28
45
  console.log(chalk_1.default.cyan('❯ Creating device running-config backup on flash...'));
29
46
  const rawOutput = await session.execute(`copy running-config ${this.backupFilename}`);
30
47
  if (rawOutput.includes('Destination filename') || rawOutput.includes('?')) {
@@ -1 +1 @@
1
- {"version":3,"file":"TransactionManager.js","sourceRoot":"","sources":["../../../src/core/rollback/TransactionManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TransactionManager.js","sourceRoot":"","sources":["../../../src/core/rollback/TransactionManager.ts"],"names":[],"mappings":"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"}